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