DS1629及其與單片機的接口設(shè)計
摘要:介紹兩線數(shù)字溫度傳感器/實時時鐘芯片DS1629的特點、工作原理、應(yīng)用中的接口設(shè)計和應(yīng)注意的問題。
本文引用地址:http://m.butianyuan.cn/article/149076.htm關(guān)鍵詞:DS1629;兩線總線;溫度測量;單片機;接口設(shè)計
1DS1629的結(jié)構(gòu)特性
DS1629是專門為了方便溫度的數(shù)字化測量而設(shè)計的一種芯片,溫度的測量精度為±2.0℃(典型值)。
DS1629由6個部分組成:數(shù)字溫度傳感器、實時時鐘、兩線串行接口、數(shù)據(jù)寄存器、溫度和時鐘報警比較器及時鐘分頻器和緩沖器。由制造商標(biāo)定的溫度傳感器無需外部器件。芯片一上電就開始進(jìn)行溫度轉(zhuǎn)換。主機(通常為單片機)可以周期性地讀取溫度寄存器中最新轉(zhuǎn)換的溫度值;由于轉(zhuǎn)換是在“后臺”進(jìn)行的,讀數(shù)據(jù)并不影響轉(zhuǎn)換的過程。二進(jìn)制數(shù)據(jù)的讀/寫通過兩線總線進(jìn)行,高位在前,每個寄存器的訪問都采用8位的命令協(xié)議。芯片的引腳分布圖如圖1所示,引腳的功能為:SDA:串行口數(shù)據(jù)I/O端;SCL:串行口時鐘I/O端;ALRM:報警輸出;GND:接地端;X2:
32.768kHz反饋輸出;X1:32.768kHz晶振輸入;OSC:振蕩器輸出;VDD:2.2V~5.5V電源。
2DS1629的工作原理
在DS1629中,溫度測量采用的是片上的溫度測量技術(shù),測量范圍為-55℃到+125℃,芯片可以通過編程配置為轉(zhuǎn)換一次即保存轉(zhuǎn)換結(jié)果,然后轉(zhuǎn)到待命狀態(tài);也可以配置成連接轉(zhuǎn)換的工作模式。
2.1實時時鐘/日歷功能
DS1629的實時時鐘/日歷數(shù)據(jù)是通過兩線的命令協(xié)議C0h來訪問的。如果兩線控制字的讀/寫控制位置為0,主機(單片機)就設(shè)置時鐘(把數(shù)據(jù)寫入時鐘寄存器),反之則從時鐘寄存器讀取當(dāng)前的時間值。
2.2報警功能
當(dāng)DS1629的溫度達(dá)到或超過存儲在溫度觸發(fā)寄存器TH中的上限時,溫度報警標(biāo)志TAF就變?yōu)橛行У母唠娖讲⒁恢北3值綔囟认陆档綔囟认孪藜拇嫫鱐L中的值。
當(dāng)時鐘寄存器中的數(shù)值與時鐘報警寄存器中的數(shù)值—致時,時鐘報警標(biāo)志CAF有效并一直保持到總線上的主機(單片機)通過C0h命令或C7h命令對時鐘寄存器或時鐘報警寄存器進(jìn)行讀/寫操作時為止。
2.3SRAM的操作
DS1629中32個字節(jié)的SRAM是為用戶設(shè)計的,其地址范圍為00h~1Fh,可以通過兩線協(xié)議17h對其進(jìn)行讀/寫操作,讀/寫操作可以是單字節(jié)模式或頁模式。
2.4配置/狀態(tài)寄存器的操作
對配置/狀態(tài)寄存器的訪問是通過ACh命令來實現(xiàn)的,數(shù)據(jù)的讀寫總是高位(MSb)在前,低位(LSb)在后,對高位字節(jié)(MSB)可以進(jìn)行讀/寫操作,對低位字節(jié)(LSB)則只能進(jìn)行讀操作,其格式如表1所示,各位的具體含義如下:
(1)溫度轉(zhuǎn)換模式位ISH。該位為1時,芯片在收到開始轉(zhuǎn)換命令后進(jìn)行轉(zhuǎn)換;該位為0時則芯片連續(xù)進(jìn)行溫度轉(zhuǎn)換并把最后一次的轉(zhuǎn)換結(jié)果保存在溫度寄存器中。其默認(rèn)值是0。(2)報警信號控制位POL。(3)上電轉(zhuǎn)換狀態(tài)位CNV(默認(rèn)值是0)。該位與ISH的不同組合確定具體的工作模式。當(dāng)CNV和ISH為00時,芯片一上電就連續(xù)進(jìn)行轉(zhuǎn)換;為01時芯片在上電后自動進(jìn)行一次溫度轉(zhuǎn)換,隨后的轉(zhuǎn)換是由溫度轉(zhuǎn)換命令啟動的;為10時芯片在上電后進(jìn)入待命狀態(tài),一旦有開始轉(zhuǎn)換命令就連續(xù)進(jìn)行轉(zhuǎn)換;為11時芯片上電后進(jìn)入待命狀態(tài),一有命令就啟動一次轉(zhuǎn)換并保存結(jié)果。(4)報警模式控制位A1和A0(默認(rèn)值為00)。(5)振蕩器輸出設(shè)定位OS1和OS0(默認(rèn)值為11)。(6)時鐘報警標(biāo)志位CAF。(7)溫度報警標(biāo)志位TAF。(8)時鐘報警鎖存位CAL。
2.5兩線串行數(shù)據(jù)總線
DS1629支持兩線總線和雙向數(shù)據(jù)協(xié)議。通過漏極開路輸出的I/O線SDA和SCL連接到總線上,在總線上屬于從機。
根據(jù)讀寫控制位的不同數(shù)值,兩線總線有兩種不同的數(shù)據(jù)傳輸類型:(1)數(shù)據(jù)從主機(單片機)發(fā)送器傳送到從機接收器,主機(單片機)傳送的第一個字節(jié)是從機的地址,隨后是若干字節(jié)的數(shù)據(jù),從機每收到—個字節(jié)的數(shù)據(jù)就返回一個確認(rèn)位。(2)數(shù)據(jù)由從機發(fā)送器傳送到主機(單片機)接收器,第一字節(jié)(從機地址)由主機(單片機)發(fā)送,從機返回—個確認(rèn)位,隨后若干字節(jié)的數(shù)據(jù)由從機發(fā)送給主機(單片機)。除了最后—個字節(jié)外,主機(單片機)在收到所有的數(shù)據(jù)后需返回—個確認(rèn)位。在收到最后—個字節(jié)時,主機(單片機)返回一個“非確認(rèn)(高電平)”信號。
主機(單片機)產(chǎn)生串行時鐘信號及起始和結(jié)束信號,一次數(shù)據(jù)傳送以結(jié)束信號或重復(fù)的開始信號為結(jié)束。因為重復(fù)的開始信號也是下一次數(shù)據(jù)傳輸?shù)拈_始,所以總線不會被釋放。
DS1629有如下兩種操作模式:(1)從機接收模式。串行數(shù)據(jù)和時鐘分別通過SDA和SCL接收,每接收—個字節(jié)就返回—個確認(rèn)位,只有在數(shù)據(jù)傳輸?shù)拈_始和最后才識別開始和結(jié)束信號。在從機的地址和方向位(即讀/寫控制位)收到以后,地址的識別由硬件來完成。(2)從機發(fā)送模式。這—模式下第一字節(jié)的接收和處理與接收模式相同。但在這—模式下傳輸方向位將表示傳輸方向被反向,串行數(shù)據(jù)由DS1629通過SDA送出,而時鐘信號則通過SCL輸入。
2.6從機地址
控制字是主機(單片機)發(fā)出的開始信號后的第一個字節(jié),它由高4位控制碼、3位地址碼和讀/寫控制位組成。對DS1629而言,控制碼為二進(jìn)制數(shù)1001。隨后的3位(A2、A1、A0)是設(shè)備的選擇位,由硬件設(shè)為高電平??刂谱值淖畹臀唬ㄗx/寫位)確定操作的具體類型,該位為1時讀操作,反之則為寫操作。
2.7控制字
DS1629的控制字有(1)配置寄存器指令A(yù)Ch。若讀/寫位為0,該指令寫入配置寄存器。該指令送出后,隨后的數(shù)據(jù)字節(jié)被寫入控制寄存器;若讀/寫位為1,隨后讀出的是存儲在配置寄存器中的數(shù)據(jù)。(2)溫度開始轉(zhuǎn)換命令EEh。(3)溫度結(jié)束轉(zhuǎn)換命令22h。(4)讀溫度結(jié)果命令A(yù)Ah。(5)訪問時鐘指令C0h。(6)訪問時鐘報警指令C7h。(7)訪問溫度上限TH指令A(yù)1h。(8)訪問溫度下限TL指令A(yù)2h。(9)訪問存儲器指令17h。
評論