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