飞思卡尔防篡改特性MCU强劲智能电表解决方案
重置。而在电表中,这个过程一般都在电表校准时完成。
除此之外,固件可以通过使用ADC内部温度传感器来实施篡改检测。例如,当温度超出一个特定运行范围或是温度有迅速的变化(当被冻住或同焊接装置接触时),固件就会在存储器中记录这样一个行为,然后在读数时(AMR或手工读数)报告该篡改,并且点亮篡改LED灯。
篡改事件时间戳
iRTC可以检测到以下篡改事件:
•当系统运行时移除电池(即VDD开启)
•当系统关闭时移除电池(如,VDD关闭。POR自动检测)
•如上所述外部篡改事件(如防篡改开关或标志的打开)
当有篡改事件被检测出来后,iRTC会在寄存器中记录日期(年/月/日)和时间(小时/分钟/秒)。在一个电能表应用中,这会让授权读取数据的人了解(通过固件)自电表安装以来,其受攻击的时间和受攻击次数。而配电公司也会就此依据向消费者开出账单或执行罚款。另外,AMR还可在篡改事件发生后就能立刻发出提醒。
iRTC补偿
iRTC包括一个专用的振荡器,它依靠一个外部晶体作为其运行计时的时钟源。这个晶体的特性会依压力、电压、温度或一定化学物质而改变,这会改变晶体特性,这也会让时钟变快或变慢。iRTC会就时钟产生的不精准作出纠正,继续在iRTC计数器中生成精确的时间,以保持时间的精确。如果晶体走的过快,iRTC就会去除一定的脉冲计数,反之,如果时钟走得慢,它就会加上一些脉冲,纠正就是这样完成的。iRT可以纠正时钟的不精确,从低至0.119 ppm到高至3906ppm1。
电表开发者可以使用ADC内部温度传感器,并在系统内存中保留晶体的温度概况,以决定所需校准的尺度。iRTC校准总是在被称为"纠正间隔"的特殊间隔完成,而被加或去掉的脉冲数量被称为"纠正值"。固件必须决定这两个值,并将其编程至iRTC寄存器中以执行纠正行为。
举个例子,如果温度的变化导致32.768 kHz晶体频率减缓,如图3所示,那么iRTC就会减缓计数,1Hz时钟的周期就会增加。为将计秒时钟(或1Hz时钟)带至正确数值,iRTC则会于特殊纠正间隔内减少时钟脉冲。
图3 – iRTC时钟补偿
同样道理,当晶体频率走高,iRTC就可以编程增加必要的震荡器时钟数量以保持正确的时间。
如果纠正需要在可接受范围外执行,那么固件会显示篡改信号或是晶体失败。
防止恶意代码更改RTC注册设置
所有的iRTC注册以及备份存储都由一个写入保护机制来保护,这样任何来自恶意或失控代码的写入都不能更改iRTC寄存器的设置,除非它通过一个预先规定的解锁序列。
图4显示了iRTC寄存器上的写入保护。这一寄存器在POR上前15秒是未上锁的,然后自动上锁。在15秒之后如果想对它进行编程,就必须有一个特殊的序列写入控制寄存器,该程序只能是有效/安全的程序。一旦解锁,寄存器也会在开锁2秒后自动上锁CPU可以在这两次失败前选择锁定寄存器。
图4 –写入保护序列
这一写入序列额外的好处就是保护寄存器免受ESD或外部噪音的干扰,而这些干扰可以触发行为改变寄存器设置。由于任何寄存器的写入都必须经历一个固定的序列,所以ESD或噪音要摧毁寄存器是几乎不可能的。
低电压时防止寄存器崩溃
黑客或许会想要降低电压以写入RTC寄存器,从而改变设置或更改数值(因为数字逻辑在低电压状态下也许不会工作),这样也会带来时间上的错误。iRTC可以检测出电压的下降在某一特定阈值以下,所有RTC寄存器写入入口都会自动关闭,直到电压回到正常运行水平。CPU在这一事件中也会中断。
强大单向计数器的单调计数
iRTC还整合了一个单向或单调计数器,当写入条件为true时,CPU的写入周期就会增加。这是一个32位计数器,可以用来保持电能脉冲的数目,如采用kWh计算,它就是终端客户的计量单位。
单调计数器对付篡改的能力非常强大,因为计数器只在POR上清除,除非电表重置,否则是不可能被重新加载的。在它上面的每一次写入都会使值增加,因此恶意代码是不会对其数值有所减少的。作为RTC寄存器空间的一部分,它还使其免受误写入的困扰,正如在前面所介绍的一样。
强大的固件代码更新
MCF512EM256提供高效和远程的代码替换,如需要,还可选择返回旧代码。微控制器中有两块128kB的闪存,顺序排列。每一组阵列都有单独绘制的闪存寄存器。基于iRTC内部的控制位,这两组阵列的地址可以交换。这就使得用户可以在第一个闪存阵列中执行任务时又能更新第二个闪存阵列中的固件。所有的更新都可以在微控制器运行期间发生。这就让公共事业公司可以远程更新代码而无需进
- 智能电表之自动抄表主流方案盘点(02-28)
- 如何设计一款“合格”的智能电表?(09-10)
- 瑞萨智能电表(单相)参考方案(02-26)
- 瑞萨半导体单相智能电表解决方案(03-08)
- 基于第二代NB-PLC调制解调平台的MC-10260A方案(02-26)
- 瑞萨低功耗的MCU、更安全、更丰富的外围器件的智能电表解决方案(03-08)