當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]摘要:介紹了一種基于I2C總線接口的多功能串行芯片X1288的性能特點(diǎn)和工作原理,給出了X1288在電子電能表設(shè)計(jì)中的應(yīng)用方法,同時(shí)給出了X1288和AT89C52的連接電路。實(shí)際應(yīng)用表明:X1288能簡(jiǎn)化電路設(shè)計(jì)并可提高硬件的工作

摘要:介紹了一種基于I2C總線接口的多功能串行芯片X1288的性能特點(diǎn)和工作原理,給出了X1288在電子電能表設(shè)計(jì)中的應(yīng)用方法,同時(shí)給出了X1288和AT89C52的連接電路。實(shí)際應(yīng)用表明:X1288能簡(jiǎn)化電路設(shè)計(jì)并可提高硬件的工作效率。

    關(guān)鍵詞:X1288;I2C總線接口;電子電能表

1 引言

X1288是美國(guó)Xicor公司生產(chǎn)的一種集E2PROM、實(shí)時(shí)時(shí)鐘、日歷、CPU監(jiān)控和兩路報(bào)警于一體的多功能集成電路芯片。X1288的時(shí)鐘采用一種價(jià)格低廉的32.768kHz晶振,具有百分秒、秒、分、時(shí)、日、月、年及星期信息,并可設(shè)定兩個(gè)報(bào)警時(shí)間,其時(shí)鐘和報(bào)警寄存器的雙通道結(jié)構(gòu)使得它能在讀寫數(shù)據(jù)時(shí)仍保持時(shí)鐘的準(zhǔn)確性。此外,X1288還可提供32k字節(jié)的E2PROM陣列,并具有電源和CPU監(jiān)控功能。

X1288串行芯片一般采用I2C總線來(lái)實(shí)現(xiàn)與主控制器的數(shù)據(jù)交換。I2C是由Philips公司開發(fā)的一種用于內(nèi)部IC控制的雙向二線串行總線,通過(guò)該總線可很好地解決現(xiàn)代電子系統(tǒng)中眾多IC之間,及IC與外界的通信需要,并可大大簡(jiǎn)化電路設(shè)計(jì),提高硬件電路的工作效率。

2 X1288的引腳定義

X1288芯片具有16腳SOIC或14腳TSSOP小體積封裝形式。圖1為14腳TSSOP封裝的引腳示意圖,各引腳的定義如下:

X1、X2:這兩個(gè)引腳可分別用作片內(nèi)振蕩器的反相放大器的輸入和輸出端。應(yīng)用時(shí)需外接一個(gè)32.768kHz的石英晶體,其作用是為系統(tǒng)時(shí)鐘/振蕩器提供時(shí)間基準(zhǔn)。

RESET:復(fù)位信號(hào)輸出端。當(dāng)看門狗超時(shí)或電壓跌落到固定的VTRIP門限時(shí),此引腳將向主處理器發(fā)送一個(gè)低電平有效的漏極開路輸出信號(hào),以使電路系統(tǒng)快速?gòu)?fù)位。

SDA:串行數(shù)據(jù)端,為漏極開路輸出的雙向引腳,用于數(shù)據(jù)的輸入輸出。實(shí)際應(yīng)用時(shí)需接上拉電阻,并應(yīng)與其它漏極或集電極開路輸出端線相或。該端的輸入緩沖器總是處于激活狀態(tài),輸出電路可通過(guò)一個(gè)斜率控制的下拉控制輸出信號(hào)的下降時(shí)間。設(shè)計(jì)時(shí)通常把電路設(shè)計(jì)成400kHz的二線接口。

SCL:串行時(shí)鐘端口。

PHZ/IRQ:可編程頻率/中斷輸出端。當(dāng)編程為頻率輸出時(shí),該端接到內(nèi)部振蕩器的輸出腳,以輸出頻率為32.768kHz、4096Hz或1Hz的信號(hào),也可以無(wú)信號(hào)輸出。當(dāng)編程為中斷輸出時(shí),該端可在報(bào)警發(fā)生時(shí)激活,以向主機(jī)請(qǐng)求中斷。

VBACK:備用電源輸入端。當(dāng)VCC小于VBACK-0.2V時(shí),電源控制電路將切換至VBACK供電;而當(dāng)VCC超過(guò)VBACK時(shí),又會(huì)自動(dòng)切回VCC供電方式,圖2所示是其電源控制過(guò)程示意圖。

3?。兀保玻福傅闹饕拇嫫骷捌涔δ?/b>

X1228中的時(shí)鐘/控制寄存器(CCR)位于從E2PROM陣列中分離出來(lái)的一個(gè)區(qū)域,地址位于[000]0h~[003]Fh之間。CCR一般被分成5段,可分別用于狀態(tài)寄存器(1字節(jié))、實(shí)時(shí)時(shí)鐘(8字節(jié))、控制寄存器(4字節(jié))、報(bào)警寄存器1和報(bào)警寄存器0(各8字節(jié))。

3.1 狀態(tài)寄存器(SR)

狀態(tài)寄存器是易失性的,其地址是003Fh。表1所列是其命令格式,各命令字的具體含義如下:

表1 狀態(tài)寄存器(SR)

地址 名稱 7 6 5 4 3 2 1 0 缺省值
003Fh SR BAT AL1 AL0 0 0 RWEL WEL RTCF 01h

BAT:后備電源標(biāo)志位。當(dāng)BAT為“1”時(shí),表明器件在使用后備電源。

AL1、AL0:報(bào)警選擇位。X1288中有兩個(gè)報(bào)警寄存器,若其中的某一報(bào)警時(shí)間與實(shí)時(shí)時(shí)鐘相同時(shí),相應(yīng)的AL1或AL0位將變?yōu)?ldquo;1”;當(dāng)讀?。樱业闹岛?,該位又變?yōu)?ldquo;0”。

RWEL:時(shí)鐘/控制寄存器(CCR)寫入控制位。對(duì)CCR進(jìn)行寫操作時(shí),必須先使該位為“1”。

WEL:CCR和E2PROM的寫入控制位。在對(duì)CCR和E2PROM進(jìn)行寫操作時(shí),必須先使該位為“1”。同理,如果要寫入時(shí)鐘和控制寄存器,也必須先寫“02h”至SR(使RWEL為“1”),再寫“06h” (使WEL為“1”)。

RTCF:掉電標(biāo)志位。當(dāng)全部電源(包括VCC和VBACK)失效后,該位變?yōu)?“1”;而在系統(tǒng)再次上電后,如果要對(duì)RTC進(jìn)行第一次有效寫操作,則應(yīng)首先將使該位為“0”。

需要說(shuō)明的是,雖然SR中的第3、4位沒(méi)有使用,但這些位必須置“0”。



    3.2 實(shí)時(shí)時(shí)鐘(RTC)

實(shí)時(shí)時(shí)鐘寄存器的地址0030h~0037h分別對(duì)應(yīng)秒、分、時(shí)、日、月、年、星期和百分秒,并采用BCD碼表示。通過(guò)啟動(dòng)一條讀命令并確定相應(yīng)的地址,即可讀取時(shí)間信息。因?yàn)闀r(shí)鐘是連續(xù)運(yùn)行的,而每次讀操作都需要一定的時(shí)間,這就有可能在讀操作過(guò)程中使時(shí)間發(fā)生改變。本器件是由讀命令將時(shí)間鎖存在分立的鎖存器中,因而可以避免讀操作過(guò)程中時(shí)間發(fā)生變化。當(dāng)一次讀出并不是由讀操作引起時(shí),系統(tǒng)將發(fā)出報(bào)警。

可以通過(guò)向RTC寄存器中寫入數(shù)據(jù)來(lái)設(shè)定時(shí)間和日期。通過(guò)一次不完全連續(xù)的寫操作可避免改變當(dāng)前時(shí)間,在RTC數(shù)據(jù)輸入字節(jié)之前的ACK位時(shí),時(shí)鐘的下降沿會(huì)將當(dāng)前的時(shí)間值裝載到分立的緩沖器中,以使時(shí)鐘繼續(xù)運(yùn)行。而此時(shí)新的串行輸入數(shù)據(jù)將取代緩沖器的值。當(dāng)有效的寫操作結(jié)束后,系統(tǒng)產(chǎn)生停止位時(shí),這個(gè)新值才被裝載到RTC寄存器中。向RTC寫入單個(gè)字節(jié)并不對(duì)其它字節(jié)的數(shù)據(jù)產(chǎn)生影響。

當(dāng)X1288在VCC和VBACK都失效以后,即使再次上電后,其時(shí)鐘也將停止增加,直到在時(shí)鐘寄存器中進(jìn)行至少一個(gè)字節(jié)的寫操作以后。

讀出和設(shè)定時(shí)鐘應(yīng)注意:百分秒寄存器(SSEC)是只讀的;小時(shí)寄存器(HR)中的MIL位是12/24時(shí)制選擇位?“1”為24時(shí)制,“0”為12時(shí)制?,H21位是AM/PM標(biāo)志位?“1”代表PM,“0”代表AM?;星期中的七天只用三位(DY0~2)來(lái)計(jì)數(shù),其值在0~6之間循環(huán),數(shù)字所代表星期中的哪一天可由設(shè)計(jì)者決定,缺省值為0。

3.3 控制寄存器

表2所示是4個(gè)控制寄存器的命令字列表,其中的DTR是數(shù)字化微調(diào)寄存器,它的作用是調(diào)整每秒的計(jì)數(shù)值和ppm誤差,以便在長(zhǎng)時(shí)間內(nèi)獲得更好的計(jì)時(shí)精度。DTR2是符號(hào)位,“1”為正補(bǔ)償,“0”為負(fù)補(bǔ)償;DTR1、DTR0可分別提供10ppm、20ppm的補(bǔ)償。由DTR0~DTR2三位可表示-30ppm~+30ppm的補(bǔ)償范圍。

表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寄存器用來(lái)微調(diào)X1和X2之間的片內(nèi)負(fù)載電容,其范圍從+116ppm~-37ppm,具體電容值的大小可由下式計(jì)算:

CART=[(ATR的十進(jìn)制值)×0.25]+11.0pF

實(shí)際上,數(shù)字和模擬結(jié)合起來(lái)的微調(diào)范圍可高達(dá)+146ppm。BL中的BP2~BP0位是塊保護(hù)位,這些位可用來(lái)決定對(duì)E2 PROM陣列中8?jìng)€(gè)保護(hù)段的某些具體段提供寫保護(hù)(參見表3所列);WD1、WD0用來(lái)設(shè)置看門狗時(shí)限。

表3 塊保護(hù)位與E2PROM陣列保護(hù)區(qū)

BP2 BP1 BP0 被保護(hù)的地址 陣列中被鎖部分
0 0 0 無(wú) 無(wú)
0 0 1 6000h~7FFFh 高端1/4
0 1 0 4000h~7FFFh 高端1/2
0 1 1 0000h~7FFFh 全陣列
1 0 0 0000h~007Fh 第一頁(yè)
1 0 1 0000h~00FFh 第二頁(yè)
1 1 0 0000h~01FFh 前四頁(yè)
1 1 1 0000h~03FFh 前八頁(yè)

INT是中斷控制和頻率輸出寄存器,其中AL1E和AL0E是報(bào)警中斷信號(hào)(IRQ)的輸出使能位,這兩位分別結(jié)合SR中的AL1和AL0,可用來(lái)指示報(bào)警是否發(fā)生;IM是脈沖中斷方式控制位,當(dāng)報(bào)警條件匹配時(shí),IRQ將輸出一個(gè)單次脈沖,若IM設(shè)為“1”,則脈沖輸出是周期性的;FO1和FO0是頻率輸出控制位,主要用于選擇內(nèi)部振蕩器的三種分頻輸出之一并在PHZ端輸出。

3.4 報(bào)警寄存器

X1288有兩個(gè)報(bào)警寄存器,地址分別在0000h~0007h和0008h~000Fh,通過(guò)這兩個(gè)報(bào)警寄存器可設(shè)置兩個(gè)報(bào)警時(shí)間。報(bào)警寄存器的內(nèi)容與RTC很類似,不同之處在于其最高位被設(shè)置為使能位,而取消了HR中的12/24時(shí)制控制位。使能位規(guī)定了哪些寄存器可用來(lái)與實(shí)時(shí)時(shí)鐘寄存器作比較。通過(guò)設(shè)置EMOn位并結(jié)合其它使能位和特定的報(bào)警時(shí)間,用戶可以建立在每年的同一時(shí)間(精確到秒)觸發(fā)一次報(bào)警。用戶可以通過(guò)輪詢AL0和AL1軟標(biāo)志來(lái)確定一次報(bào)警的發(fā)生,或者使能IRQ輸出作為一個(gè)硬件報(bào)警標(biāo)志。當(dāng)所有的使能位都被設(shè)置成“0”時(shí),整個(gè)系統(tǒng)無(wú)報(bào)警。

4?。桑玻每偩€數(shù)據(jù)傳送方式

X1288在應(yīng)用時(shí)一般作為從器件通過(guò)串行I2C總線來(lái)實(shí)現(xiàn)與主控制器的通信。其中,SDA用來(lái)接收、發(fā)送數(shù)據(jù);SCL用于接收產(chǎn)生的同步脈沖,當(dāng)SCL為低時(shí),SDA上的數(shù)據(jù)發(fā)生變化,為高時(shí)表明可以接收SDA上的數(shù)據(jù)。

I2C總線在SCL為高且SDA線上出現(xiàn)一個(gè)下降沿時(shí)啟動(dòng);而在SCL為高且SDA線上出現(xiàn)一個(gè)上升沿時(shí)停止。啟動(dòng)和停止信號(hào)都由主控器產(chǎn)生,這樣,總線上帶有I2C接口的器件就能很容易地檢測(cè)到這些信號(hào)。但對(duì)于不具備這種接口的單片機(jī)來(lái)說(shuō),為了能夠準(zhǔn)確地檢測(cè)到這些信號(hào),必須保證在總線的一個(gè)時(shí)鐘周期內(nèi)對(duì)SDA線至少進(jìn)行兩次采樣。

I2C總線上的應(yīng)答信號(hào)是用于表明數(shù)據(jù)傳輸成功的信號(hào)。當(dāng)發(fā)送的設(shè)備發(fā)送了啟動(dòng)位和8位數(shù)據(jù)之后,在第9個(gè)SCL有效時(shí),接收設(shè)備將使SDA為低以產(chǎn)生有效的應(yīng)答信號(hào),該信號(hào)可用來(lái)說(shuō)明數(shù)據(jù)已成功接收。當(dāng)接收設(shè)備發(fā)送了表明數(shù)據(jù)已成功接收的應(yīng)答信號(hào)之后,發(fā)送設(shè)備可選擇繼續(xù)發(fā)送數(shù)據(jù)或發(fā)送停止位以結(jié)束發(fā)送,如發(fā)送設(shè)備沒(méi)有收到接收設(shè)備的應(yīng)答信號(hào),則說(shuō)明發(fā)送失敗,此時(shí)應(yīng)重發(fā)。

一般情況下,I2C總線上可同時(shí)接多個(gè)設(shè)備,每個(gè)器件都有唯一的地址。X1288有兩個(gè)從設(shè)備地址(從地址的高4位):其中1010為訪問(wèn)E2PROM陣列;1101為訪問(wèn)CCR。從地址的3~1位為器件的選擇位,它們規(guī)定為111,最低位R/W用于定義此操作是讀或?qū)?。I2C總線上傳送的每一個(gè)字節(jié)為8位,而啟動(dòng)一次I2C總線后傳輸?shù)淖止?jié)數(shù)可以是一個(gè),也可以是多個(gè)。每傳送一個(gè)字節(jié)后,都必須跟隨一個(gè)應(yīng)答位,并且先發(fā)送的數(shù)據(jù)位為最高位。在全部數(shù)據(jù)傳送結(jié)束后主控制器發(fā)送終止信號(hào)。X1288有兩種寫操作方式,分別為單字節(jié)寫或頁(yè)面寫。圖4所示是對(duì)X1288完成一個(gè)字節(jié)的寫操作時(shí)序,由圖可見,寫操作共由四個(gè)字節(jié)組成,其中包括一個(gè)從地址字節(jié)、一個(gè)要訪問(wèn)的地址字(2字節(jié))、一個(gè)字節(jié)的操作數(shù)。采用頁(yè)面寫時(shí),它將以和單字節(jié)寫操作相同的方式啟動(dòng),但在第一個(gè)字節(jié)傳送之后不結(jié)束寫周期,主機(jī)可發(fā)送多于63個(gè)字節(jié)到存儲(chǔ)器陣列和多于7個(gè)字節(jié)到CCR。X1288有三種基本的讀操作方式:當(dāng)前地址讀、隨機(jī)讀和序列讀。

5 應(yīng)用實(shí)例

在多用戶電子電能表的設(shè)計(jì)中,X1288的實(shí)時(shí)時(shí)鐘可保證系統(tǒng)時(shí)間的正確性,并為多費(fèi)率的電價(jià)計(jì)量等提供準(zhǔn)確的時(shí)間;當(dāng)由于外部干擾而產(chǎn)生死循環(huán)時(shí),單片機(jī)能自動(dòng)復(fù)位;32k字節(jié)的E2PROM則可用于保證所有用戶的電能累積值、預(yù)交電費(fèi)余額和異常故障等重要數(shù)據(jù)的可靠保存和靈活更改;當(dāng)系統(tǒng)掉電時(shí),系統(tǒng)中的電源管理系統(tǒng)將會(huì)自動(dòng)轉(zhuǎn)為鋰離子電池供電方式。

X1288與單片機(jī)的接線如圖5所示, 由于AT89C52本身沒(méi)有帶I2C總線接口,設(shè)計(jì)中使用P1.6/ P1.7作為I2C總線接口的SCL/SDA。本電路為單主系統(tǒng),單片機(jī)只對(duì)X1288進(jìn)行讀寫操作,因此可通過(guò)對(duì)I2C總線典型信號(hào)的時(shí)序模擬編制應(yīng)用程序。文獻(xiàn)?2?中提供了一套I2C總線數(shù)據(jù)模擬傳送的通用軟件包,可方便地作為讀寫子程序來(lái)設(shè)計(jì)系統(tǒng)軟件,其中包括基本的啟動(dòng)、停止、發(fā)送應(yīng)答位、發(fā)送非應(yīng)答位的子程序,同時(shí)還有應(yīng)答位檢查、發(fā)送一個(gè)字節(jié)數(shù)據(jù)、接收一個(gè)字節(jié)數(shù)據(jù)、發(fā)送n個(gè)字節(jié)數(shù)據(jù)和接收n個(gè)字節(jié)數(shù)據(jù)等子程序。

6 結(jié)束語(yǔ)

X1288作為微處理器的外圍器件,它把最基本的功能組合在了一起,因而具有較高的性價(jià)比,可大大降低電路板的空間和功耗,因此,是系統(tǒng)可靠運(yùn)行的關(guān)鍵器件。

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉