|
新型E PROM-CSI24C021及其在电话拨号控制器中的应用
|
New E PROM: CSI24C021 and its Application In Telephone
Dialer Controller
|
■北方交通大学现代通信研究所 熊磊 张鹏 姚冬苹
|
概述
CSI24C021是Catalyst公司推出的新一代E2PROM,它集E2PROM, 精确复位控制器和看门狗(WDT)三种功能于一体,不仅减少了外围器件,缩小了对电路板空间的占用,提高了可靠性,同时也降低了系统功耗和成本,便于系统的小型化低功耗设计。
CSI24C021为I2C总线结构,只需2根线(SDA SCL)即可实现完善的全双工同步数据传送。芯片的存储容量为256字节;采用低功耗设计,可最低工作在2.7V;性能稳定,数据可保持长达100年,能反复擦写1,000,000次。
工作原理
1.看门狗(WDT)
单片机系统运行时受到外部干扰,程序有时会出现"跑飞",而进入死循环,导致整个系统瘫痪。为了防止这一现象的发生,在对系统稳定性要求较高的场合往往加入看门狗电路。CSI24C021内部集成了看门狗定时器,一旦系统死机,无法在1.6s内对CSI24C021进行一次操作(即改变SDA管脚上的电平),内部的看门狗定时器将会溢出,CSI24C021
将产生一个复位信号,强迫单片机重新启动。
2.数据读写
CSI24C021支持I2C 总线数据传送协议。I2C 总线是PHILIPS 公司推出的芯片间串行数据传输总线,2根线(SDASCL)即可实现完善的全双工同步数据传送,能够十分方便地构成多机系统和外围器件扩展系统。在I2C
总线数据传送协议中将器件分为主器件与从器件。主器件与从器件都可进行数据收发,但收发过程由主器件控制。CSI24C021是作为从器件来进行操作的。
一个完整的数据收发过程可分为以下五部分:启动总线、器件寻址、数据传送、终止总线和应答。
2.1总线的启动和终止
在SCL为高电平时,SDA上一个由高到低的跳变就可以启动总线,反之一个由低到高的跳变就会终止总线。CSI24C021捕捉到SDA上的变化后便会给予应答。
2.2应答
在成功完成1字节数据传输后,在SCL的一个由低到高再由高到低的周期里,保持SDA为低电平,即为应答信号。
2.3器件寻址
I2C器件没有片选信号,主器件依靠对从器件寻址中确定选中哪个I2C器件。I2C器件的从地址是由I2C总线委员会实行统一发配的。CSI24C021的从器件地址高4位为1010,接下来三位为任意位,最后一位
决定是进行读还是写操作。
2.4写操作
主器件启动总线后发送器件从地址(其中R/W=0),当收到CSI24C021的回应表示从器件已经选中,接着发送数据存放在CSI24C021中地址,收到回应后发送1字节数据,收到回应后继续发送数据直到数据全部发送完毕后,主器件结束总线,从而完成了数据写操作。由于CSI24C021的页写缓冲区为16字节,所以一次最多只能写入16字节数据,如果要写入的数据多于16个,就重复上一过程。
2.5读操作
主器件启动总线后发送从器件地址(其中R/W=0),收到CSI24C021的回应后发送读数据的地址,从而执行了一次"伪写操作",收到回应后,再次启动总线并发送从器件地址,此时置R/W
=1,收到回应后,就可以开始读取数据。一次读操作可以将CSI24C021中所有的数据全部读出。
硬件连接
CSI24C021采用的是I2C总线结构,与AT89C51进行数据交换只需将SDA和SCL分别与AT89C51的I/O口相接便可。需要注意的是,即使不使用CSI24C021的复位功能,RESET上的上拉电阻和/RESET上的下拉电阻也不可缺少,否则芯片将不能正常工作。(如图1所示)
典型应用
下面以笔者设计开发的电话拨号控制器为例介绍CSI24C021的具体应用。
现在一些单位为了防止工作人员私自使用单位电话拨打长途电话,往往采用给电话加锁的方式予以控制。但这种方法不仅既不方便也不安全,而且只能控制长话而无法对其他电话(如信息台,IP电话)的拨打进行控制。为了解决这一问题笔者研制了电话拨号控制器,系统框图如图2所示。
电话拨号控制器主要由微处理器AT89C51、CSI24C021、双音多频收发器MT8880和继电器组成。其工作原理是:普通用户拨出的电话号码为模拟的双音多频码。首先由MT8880对其进行数字解码。解码后,单片机根据从CSI24C024中取出设置,对电话号码进行比较分析,如果判定该号码为普通用户允许拨打的号码,单片机将通过MT8880将号码拨出,同时通过继电器将本地电话与电话网接通,此时用户就可以进行正常通话。如果用户拨打禁止拨打的号码(如:长话,信息台),单片机将终止该项服务。高级用户需要使用电话时,首先按"#"以进入密码输入状态,输入的密码由MT8880解码并与从CSI24C021中读出的事先设置好的密码进行比较。确认无误后,用户就可以拨打其权限许可的电话号码了。此外高级用户还可以对拨号器进行设置(如修改密码,设置允许普通用户拨打的号码)。用户通话结束时,无论哪一方先行挂机,单片机都将通过继电器断开电话与电话网之间的连接。当MT8880监测到有电话呼入时,单片机将通过继电器将电话与电话网接通,因此该系统并不影响电话呼入。另外,根据实际需要,拨号器还可以设置多个用户级别。
在该系统中,CSI24C021中存储了高级用户的密码和允许普通用户拨打的电话号码族。密码设置方法与普通IC卡电话相同。设置号码族的方法如下:
如要允许普通用户拨打市内电话,以北京为例,北京市内固定电话为8位,分别以6和8开头。高级用户在密码输入正确后,按"*"号,进入号码族设置状态,接着输入6#######(#为非限定为位),最后输入"*"表示确认。听到"嘀嘀"两声,表示系统接受了6字头号码的设置。其它电话号码的设置方法与之类似。
此外,该系统还可以扩展常用电话号码记忆与快速拨号,电话使用情况记录等功能。
|
|