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