用實(shí)時時鐘芯片DS1305啟動數(shù)據(jù)采集系統(tǒng)
掃描二維碼
隨時隨地手機(jī)看文章
關(guān)鍵詞:DS1305 低功耗 數(shù)據(jù)采集
引言
對于許多便攜式數(shù)據(jù)采集系統(tǒng),需要長時間無人看管地工作,如在石油鉆井下、輸油管道等場所。一般需要間隔數(shù)小時進(jìn)行一個采集,這樣系統(tǒng)大部分時間處空閑狀態(tài)。雖然現(xiàn)在低功耗單片機(jī)的睡眠狀態(tài)提供了降低功耗的一種方法,但低功耗不等于沒有功耗,系統(tǒng)長時間工作時不得不考慮功耗的問題。
為進(jìn)一步節(jié)省功耗,我們在研制一數(shù)據(jù)采集系統(tǒng)時,利用實(shí)時時鐘芯片DS1305設(shè)計一電源開關(guān)電路。利用該開關(guān)電路,可使系統(tǒng)在空頭時處于關(guān)閉狀態(tài),每當(dāng)采集時間到,由報警信號開啟單片機(jī)系統(tǒng)以進(jìn)行數(shù)據(jù)采集,在數(shù)據(jù)采集結(jié)束時,單片機(jī)關(guān)閉開關(guān)電路,系統(tǒng)斷電。這樣系統(tǒng)處于關(guān)閉狀態(tài),一直到下一次開關(guān)電路報警。
1 DS1305簡介
DS1305是美國Dallas公司推出的串行接口帶報警實(shí)時時鐘。它有20腳的TSSOP、16腳的DIP兩種封裝方式[1],工作電壓范圍從2.0~5.5V。
1.1 主要特性
DS1305用二一十進(jìn)制(BCD)碼表示實(shí)時時鐘的秒、分、小時、星期、日、月和年的時間信息,并且自動對小月(少于31天的月份)和閏年的日期進(jìn)行調(diào)整,兼有帶AM/PM指示12小時和24小時兩種時間指示格式。圖1為DS1305兩種引腳的排列。
DS1305提供了主電源和后備電源的雙電源引腳和一個電池輸入引腳;Vcc1為主電源,Vcc2為后備電源,可充電電源接此引腳,VBAT接3V的鋰紐扣電池或其它電源。VCCIF引腳用來驅(qū)動SDO和PF(電源失效輸出)引腳的電平和接口的電相兼容。DS1305只支持三種電源連接方式,如圖2所示。VCC1和VBAT供電時,VCC1大于VBAT0.2V時,正常對DS1305進(jìn)行訪問。當(dāng)VCC1小于CBAT時,DS1305進(jìn)入寫保護(hù)。VCC1、VCC2供電時,當(dāng)Vcc1比Vcc2大0.2V,Vcc1輸入作為電源;當(dāng)Vcc1小于Vcc2,Vcc2對DS1305供電。這種模式下,DS1305不能寫保護(hù)自己。當(dāng)Vcc1以+5V供電時,DS1305正常工作電流為1.28mA,時鐘保持電流最大為81μA,當(dāng)+2V供電時,正常工作電流為0.425mA,時鐘保持電流最大為25.3μA。
DS1305支持通過SPI串行數(shù)據(jù)端口或者標(biāo)準(zhǔn)的三線接口進(jìn)行時間的校正和數(shù)據(jù)的讀取,可進(jìn)行單字節(jié)的或連讀字節(jié)束發(fā)方式的訪問。SERMODE接地,串口訪問模式設(shè)定為標(biāo)準(zhǔn)3線模式:SD1(串口數(shù)據(jù)輸入)與SDO(串口數(shù)據(jù)輸出)連接在一起作為單一的I/O引腳,它與CE、SCLK組成3線模式。SERMODE接VCC,選擇SPI通信模式,具體操作可查閱有關(guān)資料。
INT0、INT1提供兩個可編程的中斷報警信號,可通過串行總線訪問和設(shè)定秒、分、時、星期的報警時間。
X1、X2引腳直接連接標(biāo)準(zhǔn)的32.768kHz晶振,無需外接其它元件。如實(shí)時時鐘有誤差,可以在振蕩器兩端并接6pF電容進(jìn)行調(diào)整。
1.2 操作方式
DS1305共有148個用戶RAM,其讀操作地址與寫操作地址空頭分開,當(dāng)其高位為1時,為寫操作地址空間,0為讀操作地址。除實(shí)時時鐘、日歷寄存器和通用寄存器之外,還有作一般數(shù)據(jù)存儲器用的96字節(jié)的NVRAM。對DS1305操作之前,必須對控制寄存器、狀態(tài)寄存器、涓流充電寄存器進(jìn)行初始化。
以下為控制寄存器(0F讀,8F字):
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
EOSC | WP | 0 | 0 | 0 | INTCN | AIE1 | AIE0 |
EOSC:設(shè)置為0使振蕩器開始工作,設(shè)置為1,DS1305處于低功耗閑置狀態(tài)。WP:寫保護(hù)位,上電初始化后,WP位處于三態(tài),在任何寫操作之前,該位必須清零。INTCN:中斷控制位,控制兩個中斷之間的聯(lián)系,置位后兩個中斷引腳INT0、INT1分別響應(yīng)各自的中斷(需中斷使能),清零后,中斷1、2報警時間匹配都只能引發(fā)INT0輸入低電平,INT1無效。ALE0、ALE1置1時中斷0、1使能。
狀態(tài)寄存器(讀10H)只有兩位IRQF0、INQF1,置位時分別表示中斷時間匹配。涓流充電寄存器(讀11H,寫91H)控制涓流充電的特性。
DS1305標(biāo)準(zhǔn)三線模式的讀寫操作過程,每個字節(jié)需要16個SCLK時鐘。通過CE引腳輸入高電平來啟動所有數(shù)據(jù)傳送,前8個SCLK周期為輸入寫命令,后8個SCLK周期為輸入或輸出的數(shù)據(jù)。輸入時,SCLK的上升沿數(shù)據(jù)有效;輸出時,SCLK的下降沿輸出數(shù)據(jù)有效。
2 用DS1305開啟數(shù)據(jù)采集系統(tǒng)
圖3所示的電路是利用DS1305組成的數(shù)據(jù)采集系統(tǒng)。89C51與DS1305使用標(biāo)準(zhǔn)三線形式進(jìn)行通信,74HC73為JK觸發(fā)器,輸入端J、K、CD接高電平,時鐘CLK接DS1305的中斷引腳INT0,輸出引腳Q與三極管組成數(shù)據(jù)采集系統(tǒng)的開關(guān)。此外,DS1305在主電源斷電時,可自動轉(zhuǎn)換使用備用電池繼續(xù)供電,不會造成時鐘的丟失。
在采集系統(tǒng)上電初始化時鐘芯片后,通過I/O口給JK觸發(fā)器CLK引腳一個負(fù)脈沖,Q引腳輸出為低,三極管截止,采集系統(tǒng)斷電,功耗降到零。但時鐘電路部分保持供電,在DS1305實(shí)時時鐘到設(shè)定采集時間,由INT0引腳發(fā)出中斷信號給觸發(fā)器CLK一個低電平。由于CD維持高電平,造成JK觸發(fā)器翻轉(zhuǎn),三極管導(dǎo)通,VCC給單片機(jī)上電復(fù)位。這樣就將數(shù)據(jù)采集系統(tǒng)喚醒??捎蓡纹瑱C(jī)控制,導(dǎo)通模擬電路,啟動傳感器、AD轉(zhuǎn)換器等進(jìn)行數(shù)據(jù)采集。采集結(jié)束后,單片機(jī)保存采集結(jié)果后,通過輸出引腳發(fā)送低脈沖到CLK引腳,使JK觸發(fā)器翻轉(zhuǎn),三極管截止,再次使得采集系統(tǒng)斷電,進(jìn)入瞬眠狀態(tài)直至下一個采集時間,如此循環(huán)。
下面例程是圖3電路所示系統(tǒng)的DS1305的初始化和讀寫程序,其中CE接P1.3,I/O引腳接P1.1,SCLK引腳接P1.2。
(1)DS1305初始化程序
RESETDS:CLR P1.2:置時鐘信號P1.2=0
CLR P1.3;置片選信號P1.3=0
SETB P1.3;置片選信號P1.3=1,DS1305使能
RET
(2)對DS1305進(jìn)行寫操作程序
DSW: MOV R7,#08H ;該子程序?yàn)橥ㄟ^單片機(jī)寫入地址或數(shù)據(jù)
WLOOP:RRC A ;A中為要寫入的數(shù)據(jù)或地址
MOV P1.1,C
SETB P1.2 ;時鐘信號
NOP
CLR P1.2 ;產(chǎn)生時鐘脈沖
DJNZ R7,WLOOP
RET
(3)對DS1305進(jìn)行讀操作程序
DSR:SETB P1.1 ;為讀數(shù)據(jù)做準(zhǔn)備。
CLR A
MOV R7,#08H
RLOOP:CLR R1.2 ;寫入地址后的第一個時鐘脈沖下降沿開始讀出數(shù)據(jù)
MOV C,P1.1
RRC A ;A中為讀出的8位數(shù)據(jù)
SETB P1.2
DJNZ R7,RLOOP
RET
結(jié)語
用DS1305控制的電源管理系統(tǒng),可使數(shù)據(jù)采集系統(tǒng)長時間在無人看管的環(huán)境中定時進(jìn)行數(shù)據(jù)采集。根據(jù)這一思想所設(shè)計的電路,經(jīng)筆者應(yīng)用在遠(yuǎn)程輸油管道上的壓力測量,經(jīng)過一個月的檢驗(yàn),采集時間準(zhǔn)確,系統(tǒng)工作可靠。