江汉大学2008届本科生毕业论文
4.4 FM31xx的功能应用
FM31xx的所有功能操作都是基于IC总线的,且FM31xx只能做为从机,但经过实验验证,有些功能并不像其使用说明书所述。下面分别介绍FM31xx各功能的使用方法及实验结果。
4.4.1 FM31xx存储器的读写操作
FM31xx系列存储器的读写操作和普通的IC器件的读写操作基本相同。使用的从机地址是1010xxxxb。它有两个器件选择引脚,同一总线上最多可以有4个FM31xx芯片。所有系列芯片一致使用两字节的存储器地址,最近使用的存储地址可保存。如果地址到达最后一个字节地址,则地址计数器将翻转到0000h。FM31xx使用说明书上标称的最大总线速度可以达到1MHz,实验测得的最大速度可达到950kHz(1MHz时会出现读写错误。) 4.4.2 片内处理器的读写操作
FM31xx片内处理器的所有读写操作都与存储器的读写操作相类似。所不同的只是,处理器可使用不同的从机地址(1101xxxxb) ,而存储器只需要一字节的存储器地址。
(1) 实时时钟操作
FM31xx的实时时钟能以BCD格式提供时间和日期信息。它可以由外部后备电源或电容永久供电。时钟使用一个32.768kHz晶振来提供,并可以使用软件校准模式来提高时钟精确性。使用后备电源时,要先给Vdd引脚上电,然后再断开,此时后备电源的工作电流要比直接使用后备电源的电流小很多。实验测得的直接使用后备电源时的电流为1.5μA左右。给Vdd上电再断开后再次测量,其后备电源的电流只有0.6μA。这一点在使用后备电源时一定要注意。此外,还应注意后备电源的电压最大为3.75V,故在使用5V电源时,不能直接把Vbak 引脚接入5V;在使用非充电电源的时候,配件控制寄存0Bh中VBC位应该清零以防止电源
26
2
2
江汉大学2008届本科生毕业论文
充电。事实上,实时时钟也可支持电容供电。当在配件控制寄存器0Bh中的VBC位置位时,其电源为电容充电,充电电流大约15μA,该电流会一直维持到Vbak引脚电压达到或接近Vdd。在系统掉电情况下, 1μF的电容可使RTC大约工作1.5秒。
(2) 看门狗
看门狗是一个可编程定时器, FM31xx使用说明书介绍的定时时间以100ms为单位,定时范围从100ms到3秒。但根据实验测量结果看,其定时时间以164ms为单位,定时范围从164ms到4920ms。
定时向看门狗复位寄存器09h写入00001010b可防止看门狗复位。因为看门狗溢出后会产生RST引脚复位,实验测得164ms后会再次启动看门狗。
(3)低电平复位与手动复位
FM31xx系列都有一个低压复位引脚RST,其内部有弱上拉电阻开漏输出。其它芯片的复位端可以连接到RST引脚线或。当电源电压Vdd大于可编程门限电压时
(通过配件控制寄存器0x0B中VTP1位和VTP0位对门限电压进行编程,出厂默认值是2.6V) , RST引脚处于弱上拉状态;相反,如果低于门限电压, RST引脚则被拉低(此时没有考虑看门狗复位) ,并在Vdd低到不能维持芯片工作之前一直保持低电平。当电源电压再次上升到大于门限电压(Vtp)时,实验测得RST引脚将继续维持低电压,其时间Trpu大约为 164ms(并非说明书上的100ms) ,从而确保系统具有足够的复位时间,之后再回到弱上拉状态。图3所示是其复位操作时序。当Vdd低于门限电压时, IC总线不工作。
RST引脚也允许手动复位,当RST输入端检测到外部低压,实验测得的拉低RST引脚时间为164ms。如图3(b)所示。
2
(4)低压报警与比较器操作
电源电压低于一定值时会产生低压报警,比较器将产生非屏蔽中断。其实现方法是将一个电位器接到电源电压上,分压端接到PFI引脚,并把PFI引脚的电压值和内部1.2V电压相比较。当PFI引脚电压低于1.2V时, CAL/PFO引脚输出低电平;当PFI引脚大于1.2V时, CAL/PFO引脚输出高电平。此外,此功能也可以做为一般的比较器使用。
(5)事件计数器操作
FM31xx有两个后备电源供电的事件计数器,其输入引脚CNT1和CNT2是可编程的边
27
江汉大学2008届本科生毕业论文
沿触发器,每个计数器连接一个16位计数器。当输入引脚有边沿变化时,各计数器的相应寄存器的值就会递增。当然,也可合并为一个32位计数器。
(6)序列号
该寄存器提供有一个64位的可读可写非易失性序列号。一旦配件控制寄存器0Bh中的SNL位置位,此寄存器单元将被锁定。由于8字节数据位(寄存器地址为0x11-0x18)和锁存位SNL都是由处理器配件的器件标识来访问的,因此,序列号与存储单元是明显分开的。由于序列号能够被无限次地写入数据,因此,这些位是通用存储器。然而,当其一旦被锁定,序列号就不可以改变,锁定位SNL也不能被撤销。序列号被锁存后寄存器仍然能被系统读取。
使用FM31xx时要特别注意,其掉电后,有些寄存器的值可能不会复位而保持原来的值。如写配件控制寄存器0x0B中VTP1位和VTP0位的值对门限电压进行的编程,在掉电后就不会丢失。
4.5 小结
FM31xx芯片具有多种功能,可和多种微处理器搭配使用,因而可减小硬件电路的复杂性。随着铁电存储器的广泛应用,它的性价比将会越来越高。从而广泛用于数据的存储、电压监测、高精度时钟等不同的场合。
注:FM31xx读写子程序见附录
第5章 实时时钟
为了实现发生警情时,对发生警情的时间进行记录,且为了保证系统的可靠运行,要求系统进行自检并定时上报系统运行状态,因此需要系统具有实时时钟功能。本设计选用了实时时钟芯片DS12887。
DS12887是美国达拉斯半导体公司(Dallas)推出的实时时钟芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池,和常用的时钟芯片MC146818B和DS1287的管脚兼容,采用DS12887芯片设计的时钟电路不需任何外围电路和器件,并具有良好的微机接口。DS12887芯片具有微功耗、外围接口简单、精度高、工作稳定可靠等优点,它功能丰富、应用广泛,特别在工业控制及智能仪器仪表中有广泛用途。
5.1 DS12887主要功能简介与结构框图
5.1.1 DS12887时钟芯片的主要功能简介 DS12887时钟芯片的主要功能有:可作为PC机的时钟和日历;与MC146818B和DS1287 的管脚兼容;在没有外部电源的情况下可工作10年以上,不丢失数据;自带晶体振荡器及锂电池;可计算到2100年前的秒、分、小时、星期、日、月、年7种日历信息,并有闰年
28
江汉大学2008届本科生毕业论文
补偿功能;二进制数码或BCD码表示时间、日历和闹钟;12和24小时两种制式,12小时时钟模式带有PM和AM指示,有夏令时功能;Motorola和Intel总线时序选择;128字节RAM单元与软件接口,其中14字节为时钟单元和控制/状态寄存器,114字节为通用RAM,可由用户使用,所有RAM单元数据都具有掉电保护功能(非易失性RAM);可编程方波输出;中断信号输出IRQ和总线兼容,定闹中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行置位测试。 5.1.2 DS12887时钟芯片的结构
DS12887时钟芯片内部由振荡电路、分频电路、周期中断/方波选择电路、14字节时钟和控制单元、114字节用户非易失RAM、十进制/二进制计数器、总线接口电路、电源开关写保护单元和内部锂电池等部分组成,DS12887芯片的内部结构框图如图所示。
5.2 DS12887时钟芯片的引脚排列及引脚功能
5.2.1 DS12887时钟芯片的引脚排列
DS12887时钟芯片的引脚排列如图2所示。
29
江汉大学2008届本科生毕业论文
5.2.2 DS12887时钟芯片的引脚功能 DS12887时钟芯片的引脚功能如下: AD0-AD7为地址/数据复用总线; NC为空脚;
MOT为总线模式选择(Motorola/Intel),当此脚接到Vcc时,选用的是Motorola总线时序,当它接地或不接时,选用的是Intel总线时序; CS为片选端;
AS为地址锁存允许端; R/W在Intel总线下作为写; DS在Intel总线下作为读;
RESET为复位端,复位端对时钟、日历、RAM无效,系统上电时复位端要保持低电平200ms以上DS12887才可以正常工作; IRQ为中断请求输出端;
SQW为方波输出端,当Vcc低于4.25V时没有作用; Vcc为+5V电源; GND为接地端。
5.3 DS12887时钟芯片的地址分配及状态控制寄存器
5.3.1 DS12887时钟芯片的地址分配
DS12887芯片有128个RAM单元,其中4个单元用作控制寄存器,它们在任何时间都可访问,即使更新周期也不例外,10个单元用作存放时钟字节,114字节为通用RAM,DS12887时钟芯片的地址分配如图3所示。
30