首页 | 期刊简介 | 编辑部 | 广告部 | 发行部 | 在线投稿 | 联系我们 | 产品信息索取
2024年12月26日星期四
2011年第01期
 
2010年第12期
 
2010年第11期
2010年第11期
 
2010年第10期
2010年第10期
 
2010年第09期
2010年第09期
 
2010年第09期
2010年第08期
 
2010年第07期
2010年第07期
 
2010年第06期
2010年第06期
 
2010年第05期
2010年第05期
 
2010年第04期
2010年第04期
 
2010年第03期
2010年第03期
 
2010年第02期
2010年第02期
 
2010年第01期
2010年第01期
 
2009年第12期
2009年第12期
 
2009年第11期
2009年第11期
 
2009年第10期
2009年第10期
 
2009年第9期
2009年第9期
 
2009年第8期
2009年第8期
 
2009年第7期
2009年第7期
 
2009年第6期
2009年第6期
 
2009年第5期
2009年第5期
 
2009年第4期
2009年第4期
 
2009年第3期
2009年第3期
 
2009年第2期
2009年第2期
 
2009年第1期
2009年第1期
 
2008年第12期
2008年第12期
 
2008年第11期
2008年第11期
 
2008年第10期
2008年第10期
 
2008年第9期
2008年第9期
 
2008年第8期
2008年第8期
 
2008年第7期
2008年第7期
 
2008年第6期
2008年第6期
 
2008年第5期
2008年第5期
 
2008年第4期
2008年第4期
 
2008年第3期
2008年第3期
 
2008年第2期
2008年第2期
 
2008年第1期
2008年第1期
嵌入式系统RTC/WatchDog的实现方案
Embedded System the RTC/WatchDog realization Scheme
■洛阳工业高等专科学校计算机系 李蒙 魏巍

摘 要 本文介绍了嵌入式系统的RTC/WatchDog实现方案、系统功能和特点,该方案使用了X1227 芯片,并阐述了如何通过I2C总线实现对X1227的控制,并给出了其应用的实例。
关键词 RTC/WatchDog  嵌入式系统 通信协议

概 述

嵌入式系统在工业控制及消费类产品中的应用越来越广泛,也逐步趋向高端平台,如CPU用Strong ARM SA1110 ,OS用WINCE。 但嵌入式系统的可靠工作离不开RTC/WatchDog, 而SA1110这款32位的CPU并没有硬件上的RTC/WatchDog,因此必须外扩一个RTC/ WatchDog芯片。
我们在设计以Strong ARM SA1110为CPU的多媒体电话实验板时,采用的RTC/ WatchDog芯片是Xicor 公司的X1227 ,X1227是专门为嵌入式系统设计,使用I2C串行总线接口,芯片的体积小,工作电流1.25 A,工耗很低,并用32.768KHz的晶振为输入,以秒、分、时、天、月、年为时间单位,并有记录星期的功能。WatchDog 的喂狗时间可在0.25s、0.75s、1.75s和关闭之间调整。X1227内还有4KB的EEPROM可存放系统的自检程序。此芯片可工作于3.3V,正好与SA1110的工作电压一致,SA1110可直接与X1227连接不必电平转换。
X1227有SOIC和TSSOP两种封装,SOIC的封装如图1所示。
引脚定义如下:
X1、X2 : 晶振的输入,输出端,为系统提供用于时钟的32.768KHz晶振接在这两个引脚上。
RESET/n:复位信号输出端,当WatchDog定时时间到,此引脚产生低电平。工作时,通过5K的电阻上拉,如不用WatchDog最好接地。
Vback: 后备电源输入,接Vcc或接电池,也可接大电容,确保系统掉电时,X1227可继续工作。
SCL:I2C总线的时钟输入端。
SDA:I2C总线的数据输入/输出端。

I2C总线的通信协议

X1227通过串行的I2C总线实现与系统的通信,SDA用来接受和发送数据,SCL接收产生的同步脉冲,当SCL为低时SDA的上数据变化,SCL为高时表明SDA上的数据可以接收。如图2所示。
任何命令的执行必须有一个启始位,通信的启始位条件是:当SCL为高时,SDA线上有一个下降沿。任何命令的结束传输必须有一个停止位,通信的停止位条件是:当SCL为高时,SDA线上有一个上升沿。如图3所示。
应答信号是是用于表明数据传输成功的信号。当发送的设备发送了启始位和8位数据之后,在第9个SCL有效时,接收设备将使SDA为低电平产生有效的应答信号,说明数据已成功接收,这时发送设备有两种选择可继续发送数据或发送停止位结束发送。如发送设备没有收到接收设备的应答信号,说明发送失败,需要重新发送。如图4所示。
因为系统的I2C总线上可同时接多个设备,因此每个I2C设备都有自己的地址,X1227也不例外,X1227有两个从设备地址,1010 为访问4KB EEPROM, 1101为访问CCR(时钟/控制寄存器),用于控制RTC和WatchDog。
完成一次字节访问的操作如图5所示。一共由四个字节组成,一个从地址字节,一个要访问的地址字(16位),一个8位的操作数,从地址字节最后一位决定了此次操作是读还是写,读是1,写是0。

X1227的主要功能

通过X1227的I2C接口可将RTC写入X1227的CCR中,注意在CCR中存放的是BCD码,如在CCR的HR(小时)寄存器写入23点时,必须写为0010 0011,读RTC的时钟也得到BCD码,使用前必须转换。在X1227中有两个报警寄存器,当报警寄存器定时的时间与RTC的时间一致时,会自动设置CCR中的SR(状态)寄存器中的相应位为1,实现定时报警功能。报警寄存器的精度到秒。通过写CCR中的BL(块保护)寄存器中的WD1,WD0两位实现对WatchDog的设置,控制喂狗的最短时间,见表1, 注意上电缺省为00,在初期的调试阶段,必须先用程序将其改为11,使WatchDog无效,系统才能在不喂狗时正常工作。使WatchDog定时器清零采用的喂狗指令是通过I2C接口送一个启始位给X1227,为是X1227进入Stand By 模式必须再送一个停止位,两个信号的时间间隔要小于WatchDog定时器设置的时间,才可将WatchDog定时器清零。
X1227还为系统提供了4K EEPROM 可用于存放自检程序,或系统关键的数据,当系统掉电时关键数据不会丢失。

应用实例

在以SA1110为CPU的多媒体电话终端上,保证系统死机时可自动复位和系统时间的正确性,及通话费率的可靠保存并可灵活更改,成为此系统可靠运行的关键。
采用X1227便可实现以上功能,用X1227的RTC保证系统时间的正确性,用其WatchDog对系统监控,当系统死机或程序异常时,不能及时喂狗,在X1227的RESET/n引脚将输出一个250ms的低电平信号,使SA1110可靠复位。通话费率等系统关键数据,写入X1227的EEPROM中,一旦系统完全掉电,数据也不会丢失,并可在资费调整时通过写X1227的EEPROM,实现对资费标准的灵活修改。
X1227可在3.3V电压正常工作,因此X1227可直接与SA1110连接。连线关系如图6。
SDA接SA1110的GPIO25, SCL接SA1110的GPIO26,通过软件模拟的方式,实现SA1110与X1227的I2C接口通信,完成对X1227的控制。X1227的RESET/n接SA1110的RESET/n,确保在当系统异常时,X1227的WatchDog可使系统复位。软件工作流程图如图7。

影响,并使设计工程师的创造性提高到了新的水平。

 
         
版权所有《世界电子元器件》杂志社
地址:北京市海淀区上地东路35号颐泉汇 邮编:100085
电话:010-62985649
E-mail:dongmei@eccn.com