智能仪器仪表的数据保护措施<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
刘焕成
摘 要:本文从提高仪器、仪表的可靠性出发,讨论了保证以单片机为核心的智能仪器、仪表内工作数据的安全措施。全文重点集中在并行EEPROM数据的软件、硬件及综合保护技术上,并给出了并行EEPROM <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />28C256软件数据写保护的C51参考程序。
关键词:单片机;软件数据写保护;并行EEPROM
1引言
由于大容量EEPROM的应用,系统数据误改写与丢失问题随之而来。如数据丢失或非法改写,仪器仪表将无法正常工作。一般而言,工业现场的环境都比较恶劣,电网电压的大幅度波动、闪电、雷击等都可能造成仪器仪表中的数据被非法改写。例如,在雷电较多的地区,即使仪器仪表采取了防雷措施,有时也出现因EEPROM中数据被改写而不能工作的情况,而系统的硬件并未损坏。重写工作参数后,系统工作正常。因此,重视和采取多种措施保护仪器仪表数据很有必要。
非易失性存贮器分串行和并行两种,选用哪种存贮芯片,根据仪器仪表的功能而定。由于串行EEPROM存贮器的读、写操作有严格的时序要求,结合芯片上的硬件写保护功能,这种存贮器的数据安全性问题较并行EEPROM容易解决。由使用的经验知,I2C 2总线接口芯片,SPI、MICROWIRE等3总线接口芯片,数据被非法改写的几率很小。所以,本文重点讨论并行EEPROM存贮器的数据安全措施。
2并行EEPROM存贮器的数据安全措施
2.1并行EEPROM的选型
并行EEPROM型号多,存贮容量从小到大形成系列。同等容量的存贮器,其功能因不同的制造厂商而不同。即使是同一厂商制造的,容量相同但不同型号的产品,功能也不尽相同。表1是几种型号的并行EEPROM存贮器的几个重要性能参数。
由表1可见,如数据要求保护,则在选用时,应特别关注芯片是否有软件写保护功能。芯片的其他功能,如数据查询(Data polling)、就绪/忙(READY/BUSY)的使用,因可以缩短写操作的时间,选型时也应注意。
2.2并行EEPROM的软件写保护功能及应用
对于具有软件写保护功能的EEPROM存贮器,同一容量、不同型号和厂商的芯片,其软件写保护的使能和禁止操作的逻辑和时序是相同的。这一特点给用户带来很大方便,使得用户的EEPROM操作程序可在相同容量及相同操作方式的EEPROM芯片间移植。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
图1、图2、图3是具有软件写保护功能的EEPROM存贮器28C64、28C256/512的软件写保护功能应用的逻辑图和时序图(注意:28C256和28C512两者的操作方式是相同的)。
第3部分为用Franklin C51编写的8031对28C256的软件写保护功能的测试程序。通过调试、运行该程序可以进一步了解芯片软件写保护功能的特点。
以28C256为例,参照图1和图3,对芯片进行写操作时,首先要对芯片进行解除软件写保护(USDP)操作:方法是连续向芯片几个特殊单元分别写特定的数据,即:①5555H单元写AAH;②2AAAH单元写55H;③5555H单元写80H;④5555H单元写AAH;⑤2AAAH单元写55H;⑥5555H单元写20H,延时一个写周期(参照表1或厂商提供的技术手册)以上的时间,则芯片的软件写保护功能被取消。这时可以用通常的方式进行写操作了。当不需要对芯片写数据时,启动芯片的软件写保护(SDP)功能,以防止芯片内的数据被非法改写。实现过程与USDP相类似:①5555H单元写AAH;②2AAAH单元写55H;③5555H单元写A0H,延时一个写周期以上的时间,则芯片的软件写保护功能被启动。这时对芯片的任何写操作都失败。此外有几个问题说明如下:
1软件写保护(SDP)及解除软件写保护(USDP)操作时,不会对所涉及的数据单元的数据进行改写,这是因为在进行此种操作时序时,EEPROM芯片会自动识别。因此,EEPROM芯片的数据单元都是可用的。
2图1(b)和图2(a)的操作方式可以节省对EEPROM的操作时间(一个写周期),但最多只能写一页数据,这是因为在一个写周期后,芯片已进入SDP状态。
3软件写保护及解除的操作应以连续的方式进行,每个写命令数据间隔必须小于1个写周期,否则芯片将以单个字节或页写操作对待写入的数据,并改写上述有关单元的数据。为此,当程序进行软件写保护及解除的操作时,最好将系统所有的中断关闭,以免操作过程被打断而发生错误写操作或无效操作。
4软件写保护与否不影响芯片的读操作。
2.3提高EEPROM数据安全性的其他措施
Ⅰ.硬件写保护措施
在软件写保护的基础上,增加硬件写保护措施,可使仪器仪表EEPROM数据安全性达到相当高的程度。图4是硬件写保护的实例。在此图例的基础上可变换出其他方式的硬件写保护电路。
其实现原理如下:80C31的WR(低有效)和P1.4接1/4四重二输入或门的输入端,或门的输出接28C256的写使能WE(低有效)。80C31复位后,P1口为高电平,这时无论WR为“高”或“低”,28C256的WE始终为“高”,非法写被禁止;当要正常进行写操作时,程序命P1.4为“低”,打开或门,80C31的写逻辑电平(WR为“低”)才能送到28C256的WE端,对28C256的写操作才能生效。当写操作完成后,程序命P1.4为“高”,或门被关闭,从而实现了硬件写保护。硬件写保护与软件写保护结合,更有利于系统数据的安全。
Ⅱ.使用“看门狗”芯片
系统在偶然因素的干扰下(如电网电压的波动、闪电雷击、某些强电磁干扰等),它的应用程序也可能“跑飞”。虽然一个好的设计程序“跑飞”的可能性很小,但为预防万一,最好用一片复位控制器WDT(“看门狗”)芯片,在程序“跑飞”时及时对系统复位。使系统重新回到正常运行状态,将损失降到最低。
Ⅲ.应用程序的保护措施
上文介绍的软、硬件保护措施都是在应用、管理程序可控的前提下起作用的。若程序“跑飞”,而恰巧“飞”到解除软件写保护程序,接下来又进行写操作,则仪表的数据必然被非法改写。这种情况要尽可能排除。虽然WDT能及时对单片机复位,但由于WDT定时器的定时长度是固定的(如CAT1161的WDT定时器为1.4秒),在这段时间里,“跑飞”的程序可能已对仪器仪表的数据参数进行了改写。这个问题最好用软件的方法在程序中加以解决。根据经验可采取以下措施:
1修改EEPROM数据的程序入口应尽可能少,减少“跑飞”的程序进入该入口的机会;
2每个修改EEPROM数据的程序入口处加“命令”判断,只有在“命令”为有效时才能进入改写EEPROM数据程序段;在修改EEPROM数据的程序出口处将命令字改写为无效。下次,即使程序“飞”来也不能进入改写EEPROM数据程序段。
3软件写保护操作程序
下文为用Franklin C51编写的80C31对28C256-32K字节并行EEPROM的软件写保护操作程序。80C31时钟频率11.0592MHz,28C256的地址安排在0000~7FFFH,P1.4为芯片硬件写保护控制位,如图4所示。本程序已通过调试,供参考。
注:本程序的写周期延时(7ms)是对AT28C256编写的。调试X28C256时,写周期延时可为5ms(最小值),其他公司芯片写周期延时值可参考其技术手册。
文章评论(0条评论)
登录后参与讨论