摘要:為避免電路系統(tǒng)在上電或斷電后出現(xiàn)計時不準確的異常狀況,提出采用高精度時鐘芯片DS3231的解決方案。介紹DS3231的特點、工作原理以及引腳功能,設計其與微控制器進行通信時的軟件、硬件接口,并給出相應的原理圖與流程圖,此方案對DS3231在一般的電路系統(tǒng)設計中具有通用性。由于DS3231是目前精度最高,并集成有溫補振蕩器和晶體的實時時鐘芯片,因此該方案對那些對計時精度要求極高的應用具有一定的借鑒意義。
關鍵詞:DS3231;I2C總線;實時時鐘;接口;通信
隨著科技的迅猛發(fā)展,一些相應的精密儀器也隨之問世,這些儀器中通常都需要設置準確的時鐘,以保證時段的正確切換。DS323l是Maxim/Dallas公司生產的一款低成本、超高精度的I2C實時時鐘芯片,該器件不僅能夠在一定溫度范同內提供優(yōu)于±2 min/a的計時精度,而且省去制造過程中晶體安裝和布線校準工序。這里給出一種基于DS323l的高精度時鐘接口設計方案。
1 硬件設計
1.1 DS3231器件
DS323l是低成本,高精度I2C實時時鐘(RTC),具有集成的溫補晶體振蕩器(TCXO)和1個32.768 kHz的晶體。該晶體包含電池輸入端,斷開主電源仍可保持精確計時。集成晶體振蕩器可提高器件的長期精確度,并減少生產的元件數(shù)。DS3231提供商級和工業(yè)級溫度范圍,采用16引腳、300 mil的SO封裝。RTC保持秒、分、時、星期、日期、月和年信息。當遇到少于31天的月份,將自動調整月末日期,包括閏年補償。時鐘的工作格式可以是24小時或帶-AM/PM指示的12小時格式。提供2個可編程日歷鬧鐘和l路可編程方波輸出。地址與數(shù)據通過I2C雙向串行傳輸。通過精密的、經過溫度補償?shù)碾妷夯鶞屎捅容^器來監(jiān)視VCC狀態(tài),檢測電源故障,提供復位輸出,并在必要時自動切換到備用電源。另外,監(jiān)視引腳可作為手動按鈕輸入。以產生外部復位信號。
DS323l的引腳功能說明如下:32 kHz是32 kHz頻率輸出;VCC用于主電源的DC引腳;為低電平有效中斷或方波輸出:是低電平有效復位引腳;N.C.表示無連接,外部必須接地;GND為地;VBAT為備用電源輸入;SDA為串行數(shù)據輸入、輸出;SCL為串行時鐘輸入。
1.2硬件接口設計
圖1為DS323l時鐘與微控制器連接的典型接口電路。
微控制器通過I2C總線與DS3231連接,DS3231的與微控制器的相連。DS3231的VCC接系統(tǒng)電源VCC,VBAT為備用電池輸入,該引腳應連接一個低泄漏電容進行去耦。為低電平有效中斷或方波輸出,該漏極開路輸出要求外接上拉電阻,如果不使用,可保持開路。微控制器主要通過I2C總線向時鐘芯片DS323l寫時間信息,DS323l以寫入的時間信息為基準精確走時。上電后,微控制器從時鐘芯片讀取時間信息并存入內存供系統(tǒng)使用,器件每隔64 s測量一次溫度,通過調節(jié)晶體的負載電容,使其在指定溫度達到O ppm的精度,最終達到提高時鐘精度的目的。即使系統(tǒng)斷電一段時間后重新上電,時鐘芯片內的實時數(shù)據仍能被正確讀出。
2 軟件接口程序設計
DS323l采用I2C總線與系統(tǒng)微控制器進行通信,I2C總線是由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設備,由于接口直接在組件之上,因此I2C總線占用空間少。減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。它支持多主控,任何能夠進行發(fā)送和接收的設備都可以成為主總線。一個主控能夠控制信號的傳輸和時鐘頻率。
I2C總線通過兩根連線(串行時鐘線SCL和雙向傳送SDA)實現(xiàn)半雙工同步數(shù)據傳輸,確保兩器件之間地址和數(shù)據信息的雙向傳輸。它采用器件地址的硬件設置方法(即每個器件具有一個確定的ID),通過軟件尋址,從而避免器件的片選信號線尋址,使硬件系統(tǒng)擴展靈活簡便。為保證通信正常,必須保證I2C總線上的數(shù)據能夠順利傳送。在數(shù)據開始傳送前,首先讓I2C接口進行初始化。圖2為I2C總線初始化流程。
DS3231的I2C接口的初始化操作可通過微控制器在總線上發(fā)送一個有效START條件來實現(xiàn),因為微控制器產生的START信號能夠終止DS3231的I2C接口當前的數(shù)據收、發(fā)過程,并將該接口置于START條件后的待命狀態(tài)。但要發(fā)送一個有效的START條件,必須在DS323l釋放SDA數(shù)據線時才能實現(xiàn)。如果SDA數(shù)據線處于低電平狀態(tài),這時,可以讓系統(tǒng)微控制器產生一個附加的SCL脈沖來迫使DS323l接口送出下一位數(shù)據。假設下一位數(shù)據仍然為邏輯“0”,就繼續(xù)產生附加的SCL脈沖,經過多個SCL脈沖后,DS323l就會釋放SDA數(shù)據總線。
完成I2C總線的初始化后,接著進行控制和狀態(tài)寄存器的初始化設置,確定正確的數(shù)據范圍,就可以運行相應的測控程序。
3 結束語
本文首先簡介DS323l的特點、工作原理及引腳功能,設計了高精度時鐘器件DS3231與微控制器之間通信的硬件接口與軟件接口,本設計具有一定的通用性,對應用DS3231器件進行系統(tǒng)設計有一定的借鑒意義。