摘要:介紹了一種基于I2C總線接口的多功能串行芯片X1288的性能特點和工作原理,給出了X1288在電子電能表設計中的應用方法,同時給出了X1288和AT89C52的連接電路。實際應用表明:X1288能簡化電路設計并可提高硬件的工作效率。 關鍵詞:X1288;I2C總線接口;電子電能表 1 引言 X1288是美國Xicor公司生產的一種集E2PROM、實時時鐘、日歷、CPU監(jiān)控和兩路報警于一體的多功能集成電路芯片。X1288的時鐘采用一種價格低廉的32.768kHz晶振,具有百分秒、秒、分、時、日、月、年及星期信息,并可設定兩個報警時間,其時鐘和報警寄存器的雙通道結構使得它能在讀寫數據時仍保持時鐘的準確性。此外,X1288還可提供32k字節(jié)的E2PROM陣列,并具有電源和CPU監(jiān)控功能。 X1288串行芯片一般采用I2C總線來實現與主控制器的數據交換。I2C是由Philips公司開發(fā)的一種用于內部IC控制的雙向二線串行總線,通過該總線可很好地解決現代電子系統(tǒng)中眾多IC之間,及IC與外界的通信需要,并可大大簡化電路設計,提高硬件電路的工作效率。 X1288芯片具有16腳SOIC或14腳TSSOP小體積封裝形式。圖1為14腳TSSOP封裝的引腳示意圖,各引腳的定義如下: X1、X2:這兩個引腳可分別用作片內振蕩器的反相放大器的輸入和輸出端。應用時需外接一個32.768kHz的石英晶體,其作用是為系統(tǒng)時鐘/振蕩器提供時間基準。 RESET:復位信號輸出端。當看門狗超時或電壓跌落到固定的VTRIP門限時,此引腳將向主處理器發(fā)送一個低電平有效的漏極開路輸出信號,以使電路系統(tǒng)快速復位。 SDA:串行數據端,為漏極開路輸出的雙向引腳,用于數據的輸入輸出。實際應用時需接上拉電阻,并應與其它漏極或集電極開路輸出端線相或。該端的輸入緩沖器總是處于激活狀態(tài),輸出電路可通過一個斜率控制的下拉控制輸出信號的下降時間。設計時通常把電路設計成400kHz的二線接口。 SCL:串行時鐘端口。 PHZ/IRQ:可編程頻率/中斷輸出端。當編程為頻率輸出時,該端接到內部振蕩器的輸出腳,以輸出頻率為32.768kHz、4096Hz或1Hz的信號,也可以無信號輸出。當編程為中斷輸出時,該端可在報警發(fā)生時激活,以向主機請求中斷。 VBACK:備用電源輸入端。當VCC小于VBACK-0.2V時,電源控制電路將切換至VBACK供電;而當VCC超過VBACK時,又會自動切回VCC供電方式,圖2所示是其電源控制過程示意圖。 X1228中的時鐘/控制寄存器(CCR)位于從E2PROM陣列中分離出來的一個區(qū)域,地址位于[000]0h~[003]Fh之間。CCR一般被分成5段,可分別用于狀態(tài)寄存器(1字節(jié))、實時時鐘(8字節(jié))、控制寄存器(4字節(jié))、報警寄存器1和報警寄存器0(各8字節(jié))。 3.1 狀態(tài)寄存器(SR) 狀態(tài)寄存器是易失性的,其地址是003Fh。表1所列是其命令格式,各命令字的具體含義如下:
BAT:后備電源標志位。當BAT為“1”時,表明器件在使用后備電源。 AL1、AL0:報警選擇位。X1288中有兩個報警寄存器,若其中的某一報警時間與實時時鐘相同時,相應的AL1或AL0位將變?yōu)椤埃薄?;當讀取SR的值后,該位又變?yōu)椤埃啊薄?/P> RWEL:時鐘/控制寄存器(CCR)寫入控制位。對CCR進行寫操作時,必須先使該位為“1”。 WEL:CCR和E2PROM的寫入控制位。在對CCR和E2PROM進行寫操作時,必須先使該位為“1”。同理,如果要寫入時鐘和控制寄存器,也必須先寫“02h”至SR(使RWEL為“1”),再寫“06h” (使WEL為“1”)。 RTCF:掉電標志位。當全部電源(包括VCC和VBACK)失效后,該位變?yōu)?“1”;而在系統(tǒng)再次上電后,如果要對RTC進行第一次有效寫操作,則應首先將使該位為“0”。 需要說明的是,雖然SR中的第3、4位沒有使用,但這些位必須置“0”。 實時時鐘寄存器的地址0030h~0037h分別對應秒、分、時、日、月、年、星期和百分秒,并采用BCD碼表示。通過啟動一條讀命令并確定相應的地址,即可讀取時間信息。因為時鐘是連續(xù)運行的,而每次讀操作都需要一定的時間,這就有可能在讀操作過程中使時間發(fā)生改變。本器件是由讀命令將時間鎖存在分立的鎖存器中,因而可以避免讀操作過程中時間發(fā)生變化。當一次讀出并不是由讀操作引起時,系統(tǒng)將發(fā)出報警。 可以通過向RTC寄存器中寫入數據來設定時間和日期。通過一次不完全連續(xù)的寫操作可避免改變當前時間,在RTC數據輸入字節(jié)之前的ACK位時,時鐘的下降沿會將當前的時間值裝載到分立的緩沖器中,以使時鐘繼續(xù)運行。而此時新的串行輸入數據將取代緩沖器的值。當有效的寫操作結束后,系統(tǒng)產生停止位時,這個新值才被裝載到RTC寄存器中。向RTC寫入單個字節(jié)并不對其它字節(jié)的數據產生影響。 當X1288在VCC和VBACK都失效以后,即使再次上電后,其時鐘也將停止增加,直到在時鐘寄存器中進行至少一個字節(jié)的寫操作以后。 讀出和設定時鐘應注意:百分秒寄存器(SSEC)是只讀的;小時寄存器(HR)中的MIL位是12/24時制選擇位?“1”為24時制,“0”為12時制?,H21位是AM/PM標志位?“1”代表PM,“0”代表AM?;星期中的七天只用三位(DY0~2)來計數,其值在0~6之間循環(huán),數字所代表星期中的哪一天可由設計者決定,缺省值為0。 3.3 控制寄存器 表2所示是4個控制寄存器的命令字列表,其中的DTR是數字化微調寄存器,它的作用是調整每秒的計數值和ppm誤差,以便在長時間內獲得更好的計時精度。DTR2是符號位,“1”為正補償,“0”為負補償;DTR1、DTR0可分別提供10ppm、20ppm的補償。由DTR0~DTR2三位可表示-30ppm~+30ppm的補償范圍。
ATR寄存器用來微調X1和X2之間的片內負載電容,其范圍從+116ppm~-37ppm,具體電容值的大小可由下式計算: CART=[(ATR的十進制值)×0.25]+11.0pF 實際上,數字和模擬結合起來的微調范圍可高達+146ppm。BL中的BP2~BP0位是塊保護位,這些位可用來決定對E2 PROM陣列中8個保護段的某些具體段提供寫保護(參見表3所列);WD1、WD0用來設置看門狗時限。
INT是中斷控制和頻率輸出寄存器,其中AL1E和AL0E是報警中斷信號(IRQ)的輸出使能位,這兩位分別結合SR中的AL1和AL0,可用來指示報警是否發(fā)生;IM是脈沖中斷方式控制位,當報警條件匹配時,IRQ將輸出一個單次脈沖,若IM設為“1”,則脈沖輸出是周期性的;FO1和FO0是頻率輸出控制位,主要用于選擇內部振蕩器的三種分頻輸出之一并在PHZ端輸出。 3.4 報警寄存器 X1288有兩個報警寄存器,地址分別在0000h~0007h和0008h~000Fh,通過這兩個報警寄存器可設置兩個報警時間。報警寄存器的內容與RTC很類似,不同之處在于其最高位被設置為使能位,而取消了HR中的12/24時制控制位。使能位規(guī)定了哪些寄存器可用來與實時時鐘寄存器作比較。通過設置EMOn位并結合其它使能位和特定的報警時間,用戶可以建立在每年的同一時間(精確到秒)觸發(fā)一次報警。用戶可以通過輪詢AL0和AL1軟標志來確定一次報警的發(fā)生,或者使能IRQ輸出作為一個硬件報警標志。當所有的使能位都被設置成“0”時,整個系統(tǒng)無報警。 X1288在應用時一般作為從器件通過串行I2C總線來實現與主控制器的通信。其中,SDA用來接收、發(fā)送數據;SCL用于接收產生的同步脈沖,當SCL為低時,SDA上的數據發(fā)生變化,為高時表明可以接收SDA上的數據。 I2C總線在SCL為高且SDA線上出現一個下降沿時啟動;而在SCL為高且SDA線上出現一個上升沿時停止。啟動和停止信號都由主控器產生,這樣,總線上帶有I2C接口的器件就能很容易地檢測到這些信號。但對于不具備這種接口的單片機來說,為了能夠準確地檢測到這些信號,必須保證在總線的一個時鐘周期內對SDA線至少進行兩次采樣。 I2C總線上的應答信號是用于表明數據傳輸成功的信號。當發(fā)送的設備發(fā)送了啟動位和8位數據之后,在第9個SCL有效時,接收設備將使SDA為低以產生有效的應答信號,該信號可用來說明數據已成功接收。當接收設備發(fā)送了表明數據已成功接收的應答信號之后,發(fā)送設備可選擇繼續(xù)發(fā)送數據或發(fā)送停止位以結束發(fā)送,如發(fā)送設備沒有收到接收設備的應答信號,則說明發(fā)送失敗,此時應重發(fā)。 一般情況下,I2C總線上可同時接多個設備,每個器件都有唯一的地址。X1288有兩個從設備地址(從地址的高4位):其中1010為訪問E2PROM陣列;1101為訪問CCR。從地址的3~1位為器件的選擇位,它們規(guī)定為111,最低位R/W用于定義此操作是讀或寫。I2C總線上傳送的每一個字節(jié)為8位,而啟動一次I2C總線后傳輸的字節(jié)數可以是一個,也可以是多個。每傳送一個字節(jié)后,都必須跟隨一個應答位,并且先發(fā)送的數據位為最高位。在全部數據傳送結束后主控制器發(fā)送終止信號。X1288有兩種寫操作方式,分別為單字節(jié)寫或頁面寫。圖4所示是對X1288完成一個字節(jié)的寫操作時序,由圖可見,寫操作共由四個字節(jié)組成,其中包括一個從地址字節(jié)、一個要訪問的地址字(2字節(jié))、一個字節(jié)的操作數。采用頁面寫時,它將以和單字節(jié)寫操作相同的方式啟動,但在第一個字節(jié)傳送之后不結束寫周期,主機可發(fā)送多于63個字節(jié)到存儲器陣列和多于7個字節(jié)到CCR。X1288有三種基本的讀操作方式:當前地址讀、隨機讀和序列讀。 在多用戶電子電能表的設計中,X1288的實時時鐘可保證系統(tǒng)時間的正確性,并為多費率的電價計量等提供準確的時間;當由于外部干擾而產生死循環(huán)時,單片機能自動復位;32k字節(jié)的E2PROM則可用于保證所有用戶的電能累積值、預交電費余額和異常故障等重要數據的可靠保存和靈活更改;當系統(tǒng)掉電時,系統(tǒng)中的電源管理系統(tǒng)將會自動轉為鋰離子電池供電方式。 X1288與單片機的接線如圖5所示, 由于AT89C52本身沒有帶I2C總線接口,設計中使用P1.6/ P1.7作為I2C總線接口的SCL/SDA。本電路為單主系統(tǒng),單片機只對X1288進行讀寫操作,因此可通過對I2C總線典型信號的時序模擬編制應用程序。文獻?2?中提供了一套I2C總線數據模擬傳送的通用軟件包,可方便地作為讀寫子程序來設計系統(tǒng)軟件,其中包括基本的啟動、停止、發(fā)送應答位、發(fā)送非應答位的子程序,同時還有應答位檢查、發(fā)送一個字節(jié)數據、接收一個字節(jié)數據、發(fā)送n個字節(jié)數據和接收n個字節(jié)數據等子程序。 X1288作為微處理器的外圍器件,它把最基本的功能組合在了一起,因而具有較高的性價比,可大大降低電路板的空間和功耗,因此,是系統(tǒng)可靠運行的關鍵器件。 |
- I2C串(5463)
I2C總線的工作原理和功能特點
2514
I2C總線的工作原理和應用
3134
I2C總線原理詳解
3925
I2C的定義及其類型簡介
電子式電能表的程序設計
電能計量集成電路芯片CS5460A電子資料
電能表
電能表是什么?
電能表潛動現象的原因及判定
電能表的分類以及命名規(guī)則
STM32三相電能表的電能參量怎么計算?
[原創(chuàng)]誰有電子式電能表的原理圖,它里面的控制芯片是用什么語言編寫的程序,屬于哪
【創(chuàng)龍TLZ7x-EasyEVM評估板試用連載】電能表設計
業(yè)內分享熱敏電阻在智能電能表中常用的型號及相關特性
使用CyControl編程I2C串行EEPROM導致失敗
基于單片機的數字電能表設計
復費率電能表中 鋰電池的使用一般應考慮哪些因素
常用的電能表主要分為哪些
感應系電能表的結構
請問電能表有哪些類型及型號含義?
鐵電存儲器FM24C256在電能表中的使用概述
HD-3005系列三相國網智能電能表校驗裝置
i2c總線介紹
0高精度的實時時間芯片X1288的原理及應用1
15I2C 串行總線技術在DSP 系統(tǒng)中的虛擬實現The Sim
9I2C總線在MCS51系列單片機數據采集系統(tǒng)中的實現
48基于S3C44B0X的I2C總線設計
30I2C總線應用中的幾個問題
51I2C總線接口模塊設計
41I2C總線
49PCA9564 并行總線轉I2C總線接口芯片簡介
51PCA9665并行總線轉I2C總線接口芯片簡介
46I2C Guid I2C指南
36基于ADE7758芯片的GPRS網絡電能表的設計與實現
91鐵電存儲器FM3116在電能表中的應用
49I2C總線在Linux系統(tǒng)中的驅動設計
40i2c總線
1403
I2C總線協(xié)議及其應用
1756
I2C總線的工作原理與應用
5200
CS5460A及其在電子式電能表中的應用
2866
I2C總線的單片機C語言實現及其應用
3293
I2C總線詳解
4147基于CPLD的I2C總線接口設計
96電子式多功能電能表在計量管理中的應用
2912互聯IC總線(I2C)
13電能表計量芯片原理與應用
36I2C總線及其在植入式電刺激器中如何應用
2I2C串行總線的組成及工作原理的詳細資料說明
6I2C通信協(xié)議應該如何學習
22電子式電能表和感應式電能表的區(qū)別
11965I2C系列的合集,可以系統(tǒng)學習I2C協(xié)議
3841I2C總線的基本通信總結
19393
你不能不知的I2C總線
14I2C接口配置ES7243錄音芯片,MCU(STM32)收不到I2C ACK的問題
10傳感器i2c與arduino連接_Nodemcu I2C接口連接Arduino
1硬件I2C與模擬I2C
81ESP32 之 ESP-IDF 教學(六)——I2C數據總線(I2C)
22一文看懂I2C協(xié)議
40什么是I2C協(xié)議?I2C的功能特點有哪些
9364類I2C介紹及應用注意事項
3123I2C通信協(xié)議及其工作原理
6713I2C子系統(tǒng)SW Architecture
1514
如何解決I2C器件死鎖的問題?
3964I2C串行總線協(xié)議是什么?I2C總線有哪些優(yōu)點?
2898什么是串口轉I2C?有什么特點?
2046i2c采樣是上升沿嗎?
4510遠程費控電能表在電能管理系統(tǒng)中的應用
1572
什么是I2C協(xié)議 I2C總線的控制邏輯
2428
簡單認識I2C通信協(xié)議
3491I2C總線通信原理 如何設計I2C總線電路
2047I2C總線設備地址設置方法
7449I2C總線在嵌入式系統(tǒng)中的應用
1276AS32X601的I2C模塊操作EEPROM詳解
446
電子發(fā)燒友App








評論