您的位置 首页 资料

I2C串行芯片X1288及其在电子电能表中的使用

摘要:介绍了一种基于I2C总线接口的多功能串行芯片X1288的性能特点和工作原理,给出了X1288在电子电能表设计中的应用方法,同时给出了 X1288和AT89C52的连接电路。实际应用表明:X12

摘要:介绍了一种根据I2C总线接口的多功用串行芯片X1288的功用特色和作业原理,给出了X1288在电子电能表规划中的运用办法,一同给出了 X1288和AT89C52的衔接电路。实践运用标明:X1288能简化电路规划并可进步硬件的作业效率。 要害词:X1288;I2C总线接口;电子电能表 1 导言 X1288是美国Xicor公司出产的一种集E2PROM、实时时钟、日历、CPU监控和两路报警于一体的多功用集成电路芯片。X1288的时钟选用一种价格低廉的32.768kHz晶振,具有百分秒、秒、分、时、日、月、年及星期信息,并可设定两个报警时刻,其时钟和报警寄存器的双通道结构使得它能在读写数据时仍坚持时钟的精确性。此外,X1288还可供给32k字节的E2PROM阵列,并具有电源和CPU监控功用。 X1288串行芯片一般选用I2C总线来完结与主操控器的数据交换。I2C是由Philips公司开发的一种用于内部IC操控的双向二线串行总线,经过该总线可很好地处理现代电子体系中很多IC之间,及IC与外界的通讯需求,并可大大简化电路规划,进步硬件电路的作业效率。 2 X1288的引脚界说

1.jpg

X1288芯片具有16脚SO%&&&&&%或14脚TSSOP小体积封装方法。图1为14脚TSSOP封装的引脚示意图,各引脚的界说如下: X1、X2:这两个引脚可别离用作片内振荡器的反相放大器的输入和输出端。运用时需外接一个32.768kHz的石英晶体,其作用是为体系时钟/振荡器供给时刻基准。 RESET:复位信号输出端。当看门狗超时或电压跌落到固定的VTRIP门限时,此引脚将向主处理器发送一个低电平有用的漏极开路输出信号,以使电路体系快速复位。 SDA:串行数据端,为漏极开路输出的双向引脚,用于数据的输入输出。实践运用时需接上拉电阻,并应与其它漏极或集电极开路输出端线相或。该端的输入缓冲器总是处于激活状况,输出电路可经过一个斜率操控的下拉操控输出信号的下降时刻。规划时一般把电路规划成400kHz的二线接口。 SCL:串行时钟端口。 PHZ/IRQ:可编程频率/中止输出端。当编程为频率输出时,该端接到内部振荡器的输出脚,以输出频率为32.768kHz、4096Hz或1Hz的信号,也可以无信号输出。当编程为中止输出时,该端可在报警发生时激活,以向主机恳求中止。

2.jpg

VBACK:备用电源输入端。当VCC小于VBACK-0.2V时,电源操控电路将切换至VBACK供电;而当VCC超越VBACK时,又会主动切回VCC供电方法,图2所示是其电源操控进程示意图。 3 X1288的首要寄存器及其功用 X1228中的时钟/操控寄存器(CCR)坐落从E2PROM阵列中分离出来的一个区域,地址坐落[000]0h~[003]Fh之间。CCR一般被分红5段,可别离用于状况寄存器(1字节)、实时时钟(8字节)、操控寄存器(4字节)、报警寄存器1和报警寄存器0(各8字节)。 3.1 状况寄存器(SR) 状况寄存器是易失性的,其地址是003Fh。表1所列是其指令格局,各指令字的详细意义如下: 表1 状况寄存器(SR) 地址称号 7 6 5 4 3 2 1 0 缺省值 003Fh SR BAT AL1 AL0 0 0 RWEL WEL RTCF 01h BAT:后备电源标志位。当BAT为“1”时,标明器材在运用后备电源。 AL1、AL0:报警挑选位。X1288中有两个报警寄存器,若其间的某一报警时刻与实时时钟相一同,相应的AL1或AL0位将变为“1”;当读取SR的值后,该位又变为“0”。 RWEL:时钟/操控寄存器(CCR)写入操控位。对CCR进行写操作时,有必要先使该位为“1”。 WEL:CCR和E2PROM的写入操控位。在对CCR和E2PROM进行写操作时,有必要先使该位为“1”。同理,假如要写入时钟和操控寄存器,也有必要先写“02h”至SR(使RWEL为“1”),再写“06h” (使WEL为“1”)。 RTCF:掉电标志位。当悉数电源(包含VCC和VBACK)失效后,该位变为 “1”;而在体系再次上电后,假如要对RTC进行第一次有用写操作,则应首要将使该位为“0”。 需求阐明的是,尽管SR中的第3、4位没有运用,但这些位有必要置“0”。 图4 3.2 实时时钟(RTC) 实时时钟寄存器的地址0030h~0037h别离对应秒、分、时、日、月、年、星期和百分秒,并选用BCD码标明。经过发动一条读指令并确认相应的地址,即可读取时刻信息。因为时钟是接连运转的,而每次读操作都需求必定的时刻,这就有或许在读操作进程中使时刻发生改动。本器材是由读指令将时刻锁存在分立的锁存器中,因而可以防止读操作进程中时刻发生变化。当一次读出并不是由读操作引起时,体系将宣布报警。 可以经过向RTC寄存器中写入数据来设定时刻和日期。经过一次不完全接连的写操作可防止改动当时时刻,在RTC数据输入字节之前的ACK位时,时钟的下降沿会将当时的时刻值装载到分立的缓冲器中,以使时钟持续运转。而此刻新的串行输入数据将替代缓冲器的值。当有用的写操作完毕后,体系发生中止位时,这个新值才被装载到RTC寄存器中。向RTC写入单个字节并不对其它字节的数据发生影响。 当X1288在VCC和VBACK都失效今后,即便再次上电后,其时钟也将中止添加,直到在时钟寄存器中进行至少一个字节的写操作今后。 读出和设定时钟应留意:百分秒寄存器(SSEC)是只读的;小时寄存器(HR)中的MIL位是12/24时制挑选位“1”为24时制,“0”为12时制,H21位是AM/PM标志位“1”代表PM,“0”代表AM;星期中的七天只用三位(DY0~2)来计数,其值在0~6之间循环,数字所代表星期中的哪一天可由规划者决议,缺省值为0。 3.3 操控寄存器 表2所示是4个操控寄存器的指令字列表,其间的DTR是数字化微调寄存器,它的作用是调整每秒的计数值和ppm差错,以便在长时刻内取得更好的计时精度。DTR2是符号位,“1”为正补偿,“0”为负补偿;DTR1、DTR0可别离供给10ppm、20ppm的补偿。由DTR0~DTR2三位可标明-30ppm~+30ppm的补偿规模。 表2 操控寄存器 地址称号 7 6 5 4 3 2 1 0 缺省值 0013h DTR 0 0 0 0 0 DTR2 DTR1 DTR0 00h 0012h ATR 0 0 ATR5 ATR4 ATR3 ATR2 ATR1 ATR0 00h 0011h INT IM AL1E AL0E FO1 FO0 只读只读只读 00h 0010h BL BP2 BP1 BP0 WD1 WD0 只读只读只读 00h ATR寄存器用来微调X1和X2之间的片内负载电容,其规模从+116ppm~-37ppm,详细%&&&&&%值的巨细可由下式核算: CART=[(ATR的十进制值)%26;#215;0.25]+11.0pF 实践上,数字和模仿结合起来的微调规模可高达+146ppm。BL中的BP2~BP0位是块维护位,这些位可用来决议对E2 PROM阵列中8个维护段的某些详细段供给写维护(参见表3所列);WD1、WD0用来设置看门狗时限。 表3 块维护位与E2PROM阵列维护区 BP2 BP1 BP0 被维护的地址阵列中被锁部分 0 0 0 无无 0 0 1 6000h~7FFFh 高端1/4 0 1 0 4000h~7FFFh 高端1/2 0 1 1 0000h~7FFFh 全阵列 1 0 0 0000h~007Fh 第一页 1 0 1 0000h~00FFh 第二页 1 1 0 0000h~01FFh 前四页 1 1 1 0000h~03FFh 前八页INT是中止操控和频率输出寄存器,其间AL1E和AL0E是报警中止信号(IRQ)的输出使能位,这两位别离结合SR中的AL1和AL0,可用来指示报警是否发生;IM是脉冲中止方法操控位,当报警条件匹配时,IRQ将输出一个单次脉冲,若IM设为“1”,则脉冲输出是周期性的;FO1和FO0是频率输出操控位,首要用于挑选内部振荡器的三种分频输出之一并在PHZ端输出。 3.4 报警寄存器 X1288有两个报警寄存器,地址别离在0000h~0007h和0008h~000Fh,经过这两个报警寄存器可设置两个报警时刻。报警寄存器的内容与RTC很相似,不同之处在于其最高位被设置为使能位,而取消了HR中的12/24时制操控位。使能位规则了哪些寄存器可用来与实时时钟寄存器作比较。经过设置EMOn位并结合其它使能位和特定的报警时刻,用户可以建立在每年的同一时刻(精确到秒)触发一次报警。用户可以经过轮询AL0和AL1软标志来确认一次报警的发生,或许使能IRQ输出作为一个硬件报警标志。当一切的使能位都被设置成“0”时,整个体系无报警。 4 I2C总线数据传送方法 X1288在运用时一般作为从器材经过串行I2C总线来完结与主操控器的通讯。其间,SDA用来接纳、发送数据;SCL用于接纳发生的同步脉冲,当SCL为低时,SDA上的数据发生变化,为高时标明可以接纳SDA上的数据。 I2C总线在SCL为高且SDA线上呈现一个下降沿时发动;而在SCL为高且SDA线上呈现一个上升沿时中止。发动和中止信号都由主控器发生,这样,总线上带有I2C接口的器材就能很容易地检测到这些信号。但关于不具备这种接口的单片机来说,为了可以精确地检测到这些信号,有必要确保在总线的一个时钟周期内对SDA线至少进行两次采样。 I2C总线上的应对信号是用于标明数据传输成功的信号。当发送的设备发送了发动位和8位数据之后,在第9个SCL有用时,接纳设备将使SDA为低以发生有用的应对信号,该信号可用来阐明数据已成功接纳。当接纳设备发送了标明数据已成功接纳的应对信号之后,发送设备可挑选持续发送数据或发送中止位以完毕发送,如发送设备没有收到接纳设备的应对信号,则阐明发送失利,此刻应重发。 一般情况下,I2C总线上可一同接多个设备,每个器材都有仅有的地址。X1288有两个从设备地址(从地址的高4位):其间1010为拜访E2PROM阵列;1101为拜访CCR。从地址的3~1位为器材的挑选位,它们规则为111,最低位R/W用于界说此操作是读或写。I2C总线上传送的每一个字节为8位,而发动一次I2C总线后传输的字节数可所以一个,也可所以多个。每传送一个字节后,都有必要跟从一个应对位,而且先发送的数据位为最高位。在悉数数据传送完毕后主操控器发送中止信号。X1288有两种写操作方法,别离为单字节写或页面写。图4所示是对X1288完结一个字节的写操作时序,由图可见,写操作共由四个字节组成,其间包含一个从地址字节、一个要拜访的地址字(2字节)、一个字节的操作数。选用页面写时,它将以和单字节写操作相同的方法发动,但在第一个字节传送之后不完毕写周期,主机可发送多于63个字节到存储器阵列和多于7个字节到CCR。X1288有三种根本的读操作方法:当时地址读、随机读和序列读。

3.jpg

5 运用实例 在多用户电子电能表的规划中,X1288的实时时钟可确保体系时刻的正确性,并为多费率的电价计量等供给精确的时刻;当因为外部搅扰而发生死循环时,单片机能主动复位;32k字节的E2PROM则可用于确保一切用户的电能累积值、预交电费余额和反常毛病等重要数据的牢靠保存和灵敏更改;当体系掉电时,体系中的电源办理体系将会主动转为锂离子电池供电方法。 X1288与单片机的接线如图5所示, 因为AT89C52自身没有带I2C总线接口,规划中运用P1.6/ P1.7作为I2C总线接口的SCL/SDA。本电路为单主体系,单片机只对X1288进行读写操作,因而可经过对I2C总线典型信号的时序模仿编制运用程序。文献2中供给了一套I2C总线数据模仿传送的通用软件包,可方便地作为读写子程序来规划体系软件,其间包含根本的发动、中止、发送应对位、发送非应对位的子程序,一同还有应对位查看、发送一个字节数据、接纳一个字节数据、发送n个字节数据和接纳n个字节数据等子程序。 6 完毕语 X1288作为微处理器的外围器材,它把最根本的功用组合在了一同,因而具有较高的性价比,可大大下降电路板的空间和功耗,因而,是体系牢靠运转的要害器材。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/291961.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部