微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 多CPU系统共享串行EEPROM

多CPU系统共享串行EEPROM

时间:07-19 来源:互联网 点击:
1 引言

随着微电子技术的飞速发展,单片机的价格已变得十分低廉,特别是ATMEL公司的89系列单片机,内置闪速(Flash)存储器,具有51系列单片机的内核,尤其是89C2051只有20个引脚,2K Flash程序存储器,本身已是一个完整的微处理机系统,具有很高的性能价格比。此类CPU可以作为可编程器件用于构成一个比较复杂的应用系统,此方法比使用PAL、GAL等产品的性能价格比更高。现今软件工程中比较流行的方法是面向对象的模块化设计,其思想是将复杂的系统划分成任务单一的模块,有利于多人共同开发大规模软件。工控机也大多采用模块化设计,根据工控具体情况可方便地组成应用系统。同样一个小的应用系统也可用单片机作为可编程器件模块来构成。即将系统划分成任务单一的模块,每个器件模块编程简单,性能可靠,抗干扰性能强,从而大大节省设计和编程时间。但同时也出现了一个怎样实现各器件模块间交换信息的问题,对于速度要求比较高时,可采用并行通信或并行RAM共享方案;而对速度要求比较低时,可采用串行通信方法,但此方案要占用CPU的串行口的资源,且多点对多点的通信编程也比较困难。而共享串行EEPROM的方案能够解决这一矛盾,下面以智能热量仪为例介绍此方案。

2 系统的模块化设计

根据具体情况将系统划分成若干功能单一的模块。划分的原则是:实时性强的任务由一独立器件模块来完成,信息在器件模块之间的交换要少,且时间性要求要低。

根据智能热量仪要求将其划分成三个器件模块,功能框图如图1所示。CPU1完成智能热量仪物理量的采集,即温差、压力、流量、压差或频率的采集,并能输出控制信号,包括电流和开关量输出;CPU2实现人机对话功能:显示各物理量(温度、压力、压差、频率、瞬时流量或累积热量),接收仪表参数的输入等; CPU3完成与上位机间的通信和打印功能。EEPROM 93LC66连接这三个器件模块。为了编程方便,三个CPU的P1.0~P1.3都依次连接EEPROM的CS、CLK、DI、DO;而三个CPU的 P1.4、P1.5则连在一起,作为EEPROM状态的标志,用来协调三个CPU的工作。


图1 智能热量仪组成框图

3 分时共享EEPROM

电路的核心器件是EEPROM(93LC66),它同时与三个CPU的P1.0~P1.3相接,所以,三个CPU只能分时访问EEPROM。也就是说,同一时间只能有一个CPU访问它,不访问时将P1.0~P1.3初始化为高电平,否则会出现竞争。这就要求CPU在访问EEPROM前,必须知道 EEPROM的状态,为此,将三个CPU的P1.4、P1.5分别连接在一起作为标志,三者的状态编码00、01、10分别表示CPU1至CPU3中的哪一个在访问EEPROM;CPU都不访问EEPROM时,各CPU初始化标志P1.4、P1.5为高电平,即11。某CPU要访问EEPROM时,先测试标志P1.4、P1.5,若为11,说明此时CPU可以访问EEPROM,立即将标志P1.4、P1.5置成此CPU的标志码,表示EEPROM处于忙状态,其它CPU不能再访问EEPROM;该CPU访问完EEPROM后,再将P1.4、P1.5置为高电平。为了防止几个CPU同时测试P1.4、 P1.5位,可规定CPU1访问EEPROM的优先级比CPU2、CPU3的高。CPU2或CPU3在测试完P1.4、P1.5后,若为11,此CPU立即将P1.4、P1.5置成自己的标志,再测试一下置为1的位是否还为1;若为0,说明有其它CPU在同时访问EEPROM,则退出等待;若还为1,则进行访问EEPROM。

CPU1将采集来的数据进行处理,根据EEPROM内的仪表参数计算出瞬时的流量和热量,进行热量的累积,每5s将数据写入EEPROM一次,并根据瞬时量计算出输出量送给D/A转换电路,输出控制电流;CPU2定时地从EEPROM内读出各物理量暂存在CPU内,根据从键盘接收的命令显示相应的物理量,还可将键盘送来的仪表参数写入EEPROM;CPU3也定时地从EEPROM内读出数据存在CPU内,定时或立即打印出来,并和上位机进行串行通信。各 CPU在分时使用EEPROM的工作过程中,已实现了数据交换。

4 延长EEPROM工作寿命的方法

各CPU频繁地擦写串行EEPROM,93LC′ ′ 系列的EEPROM擦写次数典型值为100万次,这是指某一位由1写为0或由0写为1的次数。而实际上写入EEPROM的数据,对于某一位来说,写入的数据并不是每次都是要变化的,实际测试可证明擦写次数大于500万次。按300万次算,若5s写一次,只能写150天左右,显然,这是不能满足要求的。为此,可采用一种利用存储器空间延长EEPROM工作寿命的方法。其方法为:数据存放的地址不是固定的,而是用一个固定的基地址加上EEPROM内的一个单元的内容(即偏移地址)作为真正的地址;若发现存储单元已坏(写入和读出的内容不同),则偏移地址加一,重新写入。如果采用100倍的存储器空间冗余,可将EEPROM的实际寿命延长100倍。对于智能热量仪,写入EEPROM的数据为14字节,采用35倍冗余,选用93LC66,可使其寿命大于14年。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top