>
摘要:介绍了基于串行EEPROM的CPU监控器X4043/45工作原理,讨论了它在小脑电刺激系统中的应用,并总结了其与单片机通讯时的一些实践经验。
关键词:EEPROM;CPU监控器;单片机;电刺激
高等动物中枢神经系统内存在复杂的反射性神经保护机制,在局部脑血流(rCBF)降到生理必须阈值以下之前,通过一系列反射,对全身循环加以调整,从而实现机体的自我神经保护。近十余年来,由于电刺激小脑顶核(FNS)导致神经保护途径的发现,国内外学者围绕中枢神经源性神经保护机制进行了一系列研究,研究证实,条件性中枢神经源性神经保护是机体固有的,受内外环境刺激后被激活,使大脑对缺血、缺氧等伤害性刺激的耐受性增高,并可持续一段时间的一种自身保护机制。它是通过激活一系列神经反射而产生的神经保护反映,其典型代表是FNS,脑组织对后续发生的局灶性或全脑性缺血性脑损伤的耐受程度明显增强,产生维持一定时间的脑保护作用。基于此原理,我们设计了小脑电刺激系统。
在我们设计的小脑电刺激系统中经常碰到需要在线进行某些参数设置和修改,且掉电不能丢失数据,本系统采用51单片机作为中央控制单元,由于控制模式和参数比较复杂,单片机的资源接近耗近,在这种情况下,所以我们最好选用一种接口线少且成本低廉的串行EEPROM存储器。尤其是在软件运行中需要对程序进行监控,选用Xicor公司新近推出的带4Kb EEPROM的CPU监控器X4043/45将给本系统带来很大方便,本文报道X4043/45的工作原理以及在小脑电刺激系统中的应用。
1. X4043/45器件的工作原理
X4043/45是Xicor公司新近推出的带4Kb EEPROM的CPU监控器,它具有四种功能:
上电复位、看门狗定时器、电源电压监控和块锁(Block lockTM)保护的串行EEPROM存储器组成在一个封装之内。这种组合降低了成本、减少了电路板空间和增加了可靠性。
看门狗定时器对微控制器提供了一个独立的保护机制。当系统故障时,在可选的超时时间之后,器件将激活/RESET信号,用户可以从三个预置的值中选择一个超时时间。一旦选定,即使在断电后重启电源时也不会改变。
器件的低VCC检测电路,可以保护系统免受低电压之影响,当VCC将到最小VCC转换点以下时,系统复位。复位一直持续到VCC回到正常工作电平并且稳定为止,并且有5个工业标准的转换电压门限可以选用。
X4043/45的存储器部分是具有XICOR块锁保护的CMOS 4Kb串行EEPROM。该阵列内部的组织是×8。器件具有二线接口的特性,其软件协议允许工作在I2C总线上。
器件利用了XICOR公司专有的Direct WriteTM晶片,提供最小为1000000次擦写和最少为100年的数据保存期。
1. 1看门狗定时器
看门狗定时器电路通过监视SDA及SCL引脚来监视微处理器是否激活。微处理器必须周期性的触发串行数据引脚(SDA)由高到低,而SCL为高(这是一个“开始”位),这要在看门狗的超时周期满期之前以避免RESET信号。在状态寄存器中的两个非易失性控制位可以决定看门狗的超时周期。微处理器可以改变这些看门狗控制位,或者它们可以将通过WP脚连接到高电位而被“锁定”。
1. 2 控制寄存器
控制寄存器向用户提供用于改变块锁和看门狗定时器设置的机制。块闭锁和看门狗定时器设置的各位是非易失性的。
1.2 .1控制寄存器各位的定义
控制寄存器各位的定义如下:
RWEL:寄存器写使能锁存(易失的)。RWEL位必须在要向控制寄存器写入前置“1”。
WEL:写使能锁存(易失的)。
WD1和WD0位控制看门狗定时器的超时周期,如下表所示:
1. 3串行接口工作原理
1.3.1开始条件
所有的命令都由开始条件前导,它是一个当SCL为HIGH在SDA线上由HIGH至LOW的跳变。器件不断地监视SDA和SCL线上的开始条件,并且在没有遇到这个条件以前不响应任何命令,见图1
图1 有效的开始和停止条件
1.3.2停止条件
所有的通信必须以停止条件来终止,它是一个当SCL为HIGH时在SDA线上由LOW至HIGH的跳变。在一次读操作后,停止条件也被用来将器官置入电源等待方式。在发送器已释放总线后,可以仅只发送一个停止条件,见图1。
1.3.3应答
应答是一个软件协议,用来表示数据传送成功。发送器件不管是主机还是从机,在发送8位后即释放总线。在第九个时钟周期,接收器将SDA拉低作为它已接收到8位数据的应答。
1.3.4字节写
对于一次写操作,器件需要一个字节的从地址和一个字地址字节。这使主机可以访问阵列内的任何一个字。在收到8位数据字节之后,器件再响应一个应答。
然后主机通过产生一个停止条件以终止传送,在这时器件开始向非易失性存储器写入的内部周期,在这个内部写周期时,器件的输入被禁止,因此器件将不响应主机的任何请求,SDA输出端处于高阻抗。
1.3. 5页面写
器件能够进行页面写操作。它也以与字节写同样的方式初始化;但是在第一个数据字节传送以后不终止写周期,主机可以发送数目不受限制的8位字节。在每个字节接收之后,器件将响应一个应答,而地址则内部加1。页地址保持不变。当计数器达到本页的末尾时,它将“返转”并回到同一页的“0”。主机通过发出一个停止条件来终止数据字节的装载。地址、应答和数据传送过程见图2。
图2 字节写过程
1.3.6串行读操作
读操作以与写操作同样的方式开始,但从地址字节中的R/W位被置为1。有三种基本的操作:当前地址读、随机读和连续读。下面主要介绍连续读。
连续地址读方式中,数据的输出是连续的,从地址n输出数据接着是从地址n+1输出数据。读操作时的数据计数器自动增加,可通过所有的页和所有的地址,可以在一次操作中串行读出整个存储器的内容。在地址空间的末端,计数器“翻转”到地址0000H而器件对每一个接收到的应答连续输出数据。图3所示连续读方式关于应答和数据传送序列。
图3 连续读序列
1.3.7 X4043/45从地址和字节地址寻址
在一个开始条件之后,主机必须输出一个从地址字节。从地址和字节地址如下表所示:
2. X4043/45与51系列单片机的通讯
在笔者研制的小脑电刺激系统中,使用了X4045与AT89C52单片机的通讯,说明X4043/45在生物医学仪器开发中的应用。X4045与AT89C52单片机连接硬件电路图如图5所示。由于AT89C52没有监控功能,所以选用带4Kb EEPROM的CPU监控器X4045来监控程序,防止出现“死机”现象。
在电路图中,C1是去耦电容,为阻值0.01uF的陶瓷电容器,因为电源系统的干扰源大部分是高次谐波,C1起到抗噪声和防止高次谐波干扰的作用。R1可以降低RESET上的电流。
图4 X4045与AT89C52单片机连接硬件电路图
实际使用表明,在本系统中编写的X4045控制寄存器的程序,能实现600ms监控作用,并已经应用于小脑电刺激系统中。
3.结束语
尽管FNS的神经保护作用在20世纪80年代已被发现,但直到近10年,对其保护作用机制的认识才得到逐步深化,并开始得到临床重视。我们研制的小脑电刺激器采用自身脑电进行生物仿生电流,并能显示脑电波形,能无创、安全应用在治疗脑卒中、脑外伤、视网膜中央动脉阻塞等均取得了预期疗效,还可能对改进老年患者的认知功能,防治偏头痛等疾病。
在实现该电路功能的过程中应该注意:在向控制寄存器写之前,必须用两步来设置WEL和RWEL位,整个过程需要三步。控制寄存器的修改只能通过直接向寄存器地址写一个字节的操作来完成,并且每次寄存器写操作只允许一个数据字节。在送字节至寄存器去初始化非易失性位(这些位存储WD1、WD0、BP2、BP1、和BP0)之后,用户必须发出一个“停止”位。在第一个字节写入后X4043/45将不应答任何数据字节。改变控制寄存器中任何非易失性位需要以下步骤:
1) 写02H至控制寄存器将WEL位置1。
2) 写06H至控制寄存器,将RWEL和WEL两位都置1。
3) 写一个值到控制寄存器,这个值使各位控制位都置成所需的状态。
4) 在前面的各次操作之间发生一次读操作将不影响寄存器的写操作。
实际使用表明,使用上述硬件电路和相应程序能实现存储和读写数据,并且能够实现理想的CPU监控器功能。在应用X4045与AT89C52通讯中,作者深深体会到对于读写操作必须严格按照其时序进行,要仔细谨慎,否则事倍功半。其X4045的读写程序遵循I2C总线规范,碍于篇幅,不再赘述。