高精度時(shí)鐘芯片SD2001E及其應(yīng)用
摘要:介紹一種內(nèi)置晶振、充電電池、串行NVRAM的高精度和免調(diào)校實(shí)時(shí)時(shí)鐘芯片SD2001E。由該芯片構(gòu)成的時(shí)鐘電路具有精度高、外圍電路和接口電路簡(jiǎn)單的特點(diǎn)。文中詳細(xì)描述芯片的主要特性、引腳說明及其工作原理,給出在嵌入式系統(tǒng)中的應(yīng)用方法、硬件接口電路及應(yīng)用程序。
關(guān)鍵詞:SD2001E 實(shí)時(shí)時(shí)鐘 單片機(jī) 實(shí)時(shí)時(shí)鐘電路在以單片機(jī)為核心構(gòu)成的智能儀器儀表、測(cè)控系統(tǒng)、工業(yè)控制等領(lǐng)域有著廣泛的應(yīng)用,但現(xiàn)有的時(shí)鐘電路存在著外圍電路(如需外接晶振、電池)和接口電路(并行接口)復(fù)雜、功能單一等缺點(diǎn)。SD2001E則是在內(nèi)部集成了實(shí)時(shí)時(shí)鐘電路、串行非易失性SRAM、可充電電池、晶振及電池管理電路的新型實(shí)時(shí)時(shí)鐘芯片。該芯片與單片機(jī)的接口電路采用工業(yè)標(biāo)準(zhǔn)I2C總線,從而簡(jiǎn)化了接口電路設(shè)計(jì)。利用該芯片無需擴(kuò)展任何外圍元件,即可構(gòu)成一個(gè)高精度實(shí)時(shí)時(shí)鐘及具有256Kb非易失性SRAM的數(shù)據(jù)存儲(chǔ)電路。 1 主要特性及引腳說明 SD2001E時(shí)鐘芯片的主要特性如下: *年、月、日、星期、時(shí)、分、秒的BCD碼輸入/輸出; *I2C總線接口(包括實(shí)時(shí)時(shí)鐘部分和SRAM部分); *自動(dòng)日歷到2099年(包括閏年自動(dòng)換算功能); *內(nèi)置晶振,出廠前已對(duì)時(shí)鐘進(jìn)行校準(zhǔn),保證精度為±4×10 -6,即時(shí)鐘年誤差小于2min; *低功耗,典型值為1.0μA(VDD=3.5V); *工作電壓為3.0~5.5V(其中NVRAM在4.5~5.5V工作); *可設(shè)置的兩路鬧鐘輸出及32 768Hz~1Hz的方波信號(hào)輸出; *可設(shè)置的每分鐘固定中斷輸出或選定頻率固定中斷輸出; *內(nèi)置充電電路和充電電池,充滿一次可保持內(nèi)部時(shí)鐘走時(shí)時(shí)間超過1年以上,可滿充電次數(shù)達(dá)200次; *內(nèi)置電源管理電路,當(dāng)VDD≥3.0V,內(nèi)部電池不耗電; *內(nèi)置穩(wěn)定電路及電池掉電檢測(cè)電路; *內(nèi)置256Kb的非易失性SRAM,其擦寫次數(shù)為100億次,且沒有內(nèi)部寫延時(shí)。 SD2001E采用24腳DIP封裝形式。各引腳的功能如表1所列,其外形及引腳排列如圖1所示。
2 工作原理 SD2001E內(nèi)部包括實(shí)時(shí)時(shí)鐘與NVRAM兩部分,內(nèi)部原理框圖如圖2所示。 SD2001E實(shí)時(shí)時(shí)鐘是基于I2C總線的器件,故對(duì)該器件的操作必須嚴(yán)格遵守總線時(shí)序。當(dāng)CPU發(fā)出起始條件,建立與實(shí)時(shí)時(shí)鐘連接后,CPU通過SDA總線連續(xù)輸出4位器件地址、3位操作指令和1位讀/寫指令,其格式如下:
實(shí)時(shí)時(shí)鐘器件的地址固定為“0110”,接下來的3位操作指令構(gòu)成了對(duì)實(shí)時(shí)時(shí)鐘部分的8條操作指令,具體指令含義如表2所列。
CPU通過發(fā)送不同操作指令,選擇相應(yīng)的寄存器從而完成相應(yīng)的操作功能。SD2001E實(shí)時(shí)時(shí)鐘部分共包括4個(gè)寄存器,分別分別如下: (1)實(shí)時(shí)數(shù)據(jù)寄存器 實(shí)時(shí)數(shù)據(jù)寄存器是一個(gè)56位的存儲(chǔ)器。它以BCD碼方式存儲(chǔ),包括年、月、日、星期、時(shí)、分、秒的數(shù)據(jù),數(shù)據(jù)格式如圖3所示。任何讀/寫操作或?qū)崟r(shí)數(shù)據(jù)存取命令都通過發(fā)送或接收年數(shù)據(jù)的第一位“LBS”執(zhí)行的。 *年數(shù)據(jù)(00~99):設(shè)置最后兩位數(shù)字(00~99),通過自動(dòng)日歷功能計(jì)至2099年。 *月數(shù)據(jù)(01~12):每月包含天數(shù)通過自動(dòng)日歷功能來更改。1、3、5、7、8、10、12為1~31;4、6、9、11為1~30;2(閏年)為1~29;2(普通)為1~28。 *天數(shù)(01~31)。 *星期數(shù)據(jù)(00~06):七進(jìn)制計(jì)數(shù)器,對(duì)應(yīng)于星期內(nèi)每一天來設(shè)置。 *小時(shí)數(shù)據(jù)(00~23或00~11):12小時(shí)進(jìn)制,0為AM,1為PM;對(duì)于24小時(shí)進(jìn)制,這一位沒有意義,但必須設(shè)置為“0”或“1”。 *分?jǐn)?shù)據(jù)(00~59)。 *秒數(shù)據(jù)(00~59)與測(cè)試標(biāo)志。 *TEST:在測(cè)試模式變?yōu)椤?”。 狀態(tài)寄存器是一個(gè)8位寄存器。該寄存器用來顯示和設(shè)置實(shí)時(shí)時(shí)鐘的工作模式,狀態(tài)寄存器格式如下。 12/24:設(shè)置12小時(shí)制或24小時(shí)制:0為12小時(shí)制;1為24小時(shí)制。 INT1AE:設(shè)置從INT1腳輸出的報(bào)警中斷的狀態(tài)。設(shè)定報(bào)警時(shí)間并設(shè)此位為“1”時(shí)INT1寄存器開始有效,0:報(bào)警中斷輸出禁止;1:報(bào)警中斷輸出允許。 INT1ME:確定INT1腳的輸出為每分鐘邊沿中斷或每分鐘固定中斷。為了設(shè)為每分鐘固定中斷輸出,應(yīng)將INT1ME和INT1FE置1。0:報(bào)警中斷或可選的頻率的固定中斷輸出;1:每分鐘邊沿中斷或每分鐘固定中斷輸出。 INT1FE:設(shè)定INT1腳的輸出為每分鐘固定中斷(周期1分鐘,占空比50%)或選定頻率的固定中斷。如果選定頻率固定中斷輸出被允許時(shí),INT1寄存器被認(rèn)為是頻率/事件的數(shù)據(jù),0:報(bào)警中斷或每分鐘邊沿中斷輸出;1:每分鐘固定中斷輸出或選定頻率固定中斷輸出。 INT2AE、INT2ME、INT2FE位用于設(shè)置從INT2腳輸出的報(bào)警中斷的狀態(tài),各位含義同上。 (3)兩組報(bào)警時(shí)間/頻率事件設(shè)置寄存器 有兩組16位報(bào)警時(shí)間/頻率事件設(shè)置寄存器,用于設(shè)置報(bào)警時(shí)間或頻率事件,由INTxAE與INTxFE控制。設(shè)定的AM/PM標(biāo)志位必須同12小時(shí)制或24小時(shí)制相對(duì)應(yīng),否則,設(shè)定的小時(shí)數(shù)將與報(bào)警數(shù)據(jù)不匹配。該寄存器為只寫寄存器(x:1或2)。 INTxFE=1時(shí),INT1與INT2寄存器被視為是頻率事件數(shù)據(jù)(f0~f15位對(duì)應(yīng)頻率為32 768~1Hz),對(duì)相應(yīng)位置“1”,則對(duì)應(yīng)頻率以“與”的方式輸出。INT1寄存器內(nèi)容如圖4(b)所示。 2.2 非易失數(shù)據(jù)寄存器 SD2001E內(nèi)部還具有256Kb的非易失性數(shù)據(jù)寄存器。該存儲(chǔ)器是一種性能優(yōu)良的可擦寫100億次且無內(nèi)部寫延時(shí)的數(shù)據(jù)存儲(chǔ)器,可用于保存系統(tǒng)設(shè)置參數(shù)及采集的數(shù)據(jù)。 NVRAM的操作方式如下:首先,CPU發(fā)出開始信號(hào)給SD2001E,然后CPU發(fā)出包括4位控制代碼,1位讀/寫指令的8位數(shù)據(jù),即“從器件地址”,前4位稱為“SRAM器件代碼”,固定為“1010”。接下來的3位在這里固定為“000”,從器件地址的最低位為讀寫控制位,該位為“1”表示對(duì)從器件進(jìn)行讀操作,為“0”表示對(duì)從器件進(jìn)行寫操作,接下來就可對(duì)SD2001E進(jìn)行讀寫操作。寫操作可分為單字節(jié)寫操作和連續(xù)寫操作。讀操作有三種操作方式:立即地址讀操作、同地址讀操作、連續(xù)讀操作。其操作過程和操作時(shí)序與I2C總線SRAM的讀寫操作相同,這里不再詳述。 3 SD2001E在嵌入式系統(tǒng)中的應(yīng)用 SD2001E可廣泛應(yīng)用于智能儀器儀表系統(tǒng)、水/電/氣表等IC卡應(yīng)用系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、工業(yè)控制系統(tǒng)、測(cè)控系統(tǒng)、門禁系統(tǒng)、家用電器等嵌入式應(yīng)用領(lǐng)域。利用SD2001E可為系統(tǒng)提供以下功能。 (1)實(shí)時(shí)時(shí)鐘日歷 SD2001E可為系統(tǒng)提供高精度的時(shí)鐘及日歷功能,以滿足具有定時(shí)數(shù)據(jù)采集、輸出控制、數(shù)據(jù)保存及定時(shí)報(bào)警等功能的嵌入式系統(tǒng)需要,同時(shí)也可為系統(tǒng)提供時(shí)間及日期顯示功能。 (2)數(shù)據(jù)保存 嵌入式系統(tǒng)一般均需要涉及到系統(tǒng)設(shè)置參數(shù)及采集數(shù)據(jù)保存的問題。通常的做法是,通過擴(kuò)展1片E2PROM芯片來保存設(shè)置參數(shù)及采集的數(shù)據(jù),但E2PROM存在擦寫壽命有限及數(shù)據(jù)存儲(chǔ)的可靠性不高等問題;而利用SD2001E片內(nèi)32KB、擦寫數(shù)為100億次的高性能NVRAM,則幾乎不用考慮存儲(chǔ)器的擦寫壽命及數(shù)據(jù)存儲(chǔ)的可靠性問題。因而,SD2001E為需頻繁讀寫數(shù)據(jù)的應(yīng)用領(lǐng)域提供了很好的解決方案。 (3)頻率輸出 對(duì)于需要固定頻率輸出或需要以ms或s為單位的定時(shí)應(yīng)用領(lǐng)域,可以通過設(shè)置頻率事件數(shù)據(jù)給INT1寄存器,并置INT1ME位為“0”和INT1FE位為“1”。此時(shí),從INT1引腳將輸出頻率為32 768Hz~1Hz的固定頻率,利用單片機(jī)的計(jì)數(shù)器或中斷次數(shù)軟件計(jì)數(shù)的方法可得到以ms或s為單位的任意時(shí)間輸出。 (4)定時(shí)輸出 當(dāng)系統(tǒng)需要以分鐘為基本單位的定時(shí)輸出時(shí)(如采集周期固定的多路數(shù)據(jù)采集、巡回檢測(cè)系統(tǒng)等),可將SD2001E狀態(tài)寄存器的INT1ME位置為“1”,INT1FE位置為“0”,以選擇為每分鐘邊沿中斷輸出或?qū)NT1ME、INT1FE位同時(shí)置“1”選擇為每分鐘固定中斷輸出。通過單片機(jī)的計(jì)數(shù)器或中斷次數(shù)軟件計(jì)數(shù)的方法,可得到以min為單位的任意時(shí)間輸出。 (5)定時(shí)報(bào)警 對(duì)于具有定時(shí)報(bào)警輸出要求的系統(tǒng),可通過SD2001E的INT1寄存器來設(shè)置報(bào)警時(shí)間(小時(shí)和分鐘數(shù)據(jù)),并將狀態(tài)寄存器中的INT1AE位置為“1”、INT1ME位及INT1FE位置為“0”來實(shí)現(xiàn)。需要指出的是SD2001E定時(shí)報(bào)警中斷為每天一或二次。對(duì)于需要用到長(zhǎng)時(shí)間定時(shí)的報(bào)警系統(tǒng),如每月或每年一次的報(bào)警系統(tǒng),可通過軟件編程的方法設(shè)定報(bào)警中斷的時(shí)間。 下面以AT89C52單片機(jī)為例,給出SD2001E與單片機(jī)的典型接口電路。由于AT89C52單片機(jī)沒有I2C總線接口,故這里使用AT89C52的P3.3、P3.4口線,來模擬I2C總線,其中SDA與P3.4相連,SCL與P3.3相連。SD2001E內(nèi)部SRAM的I2C總線接口SDAE與SDA并聯(lián),SCLE與SCL并聯(lián)。此外,為了實(shí)現(xiàn)定時(shí)報(bào)警中斷輸出的功能,還將SD2001E INT1端與單片機(jī)的INT0外中斷端相連,具體的硬件連接電路如圖5所示。網(wǎng)絡(luò)補(bǔ)充版(http://www.dpj.com.cn)給出與上述硬件電路對(duì)應(yīng)的子程序,包括SD2001E初始化子程序,實(shí)時(shí)時(shí)鐘數(shù)據(jù)讀、寫子程序與INT1中斷輸出子程序。程序采用模擬I2C總線軟件包編制。 由于SD2001E高精度時(shí)鐘日歷芯片將可充電池、晶振充電電路及256Kb的NVRAM集成在了一起,又采用了簡(jiǎn)單的I2C總線接口,因而該器件無需擴(kuò)展任何外圍元件就可構(gòu)成一個(gè)功能完善的時(shí)鐘日歷電路,同時(shí)又可為系統(tǒng)提供一個(gè)容量為32KB的高性能非易失性數(shù)據(jù)存儲(chǔ)單元,故該器件是嵌入式系統(tǒng)時(shí)鐘電路的良好選擇。 |