微控制器和1-Wire溫度傳感器的軟件接口
1-wire(一線制)數(shù)字溫度傳感器
本文引用地址:http://m.butianyuan.cn/article/20597.htmdallas公司產(chǎn)的1-wire(一線制)數(shù)字溫度傳感器己被廣泛應(yīng)用于各工業(yè)控制與撿測的設(shè)備儀器之中,但如何應(yīng)嵌入與連接在系統(tǒng)之術(shù)是設(shè)計人員所關(guān)切的技術(shù)問題。
dsl8b20、ds18c20或dsl822是業(yè)內(nèi)更高精度( 0.5℃)的1-wire多點數(shù)字溫度傳感器,其特點是:
*具有1-wire數(shù)字接口
*唯一的64位序列號
*寬廣的溫度測量范圍為-55℃至+125℃
*具有非易失用戶(2字節(jié)eeprom)可編程觸發(fā)點的過熱告警
*測量分辨率可由用戶配置為9至12位
*封裝形式包括to-92,150mil8腳soic和倒裝片
dsl8x20或dsl822溫度傳感器內(nèi)部結(jié)構(gòu)圖見圖0所示。
目前有數(shù)種方法,可將1-wire器件,如dsl8b20、dsl822或dsl8s20與微控制器接口。這些方法包括:從簡單的軟件方案,到串行接口芯片,如ds2480及dallas 1-wire asic即(將經(jīng)過整合的半導(dǎo)體超高規(guī)模集成電路硬件描述語言1-wire主控器制造成專用集成電路)等 。本文陳述了一種簡單的軟件解決方案,可實現(xiàn)微控制器和任意個數(shù)的dsl8x20或dsl822溫度傳感器之間的1-wire通信。
硬件配置
圖1的框圖說明了在采用多個1-wire溫度傳感器時,該硬件配置很簡單。一線制(1-wire)總線向所有的器件既提供通信連接,又提供工作電源??偩€電源經(jīng)由一個連接于3v至5.5v電源端的4.7kf2上拉電阻提供。由于每個器件具有唯一的64位rom識別碼,所以掛接在總線上的1-wire器件數(shù)量幾乎不受限制。多個1-wire溫度傳感器通過1-wire總線與采用ds5000(與mcs-8051單片機兼容)的微控制器相接口。
接口時序
與dsl8x20/dsl822的通信,通過操作時隙完成1-wire總線上的數(shù)據(jù)傳輸。每個通信周期起始于微控制器發(fā)出復(fù)位脈沖,其后緊跟dsl8x20/dsl822發(fā)出的應(yīng)答脈沖,如圖2所示。
當(dāng)主機將1-wire總線從邏輯高(空閑狀態(tài))拉為邏輯低時,即啟動一個寫時隙。所有的寫時隙必須在60 s至120 s(見圖3 60
s
讀時隙起始于微處理器將總線拉低1 s,接著釋放總線,這樣dsl8x20/dsl822就能夠接管總線,輸出有效數(shù)據(jù)(高或低)。所有讀時隙在60 s至120 s完成,且在每個循環(huán)之間至少 需要1 s的恢復(fù)時間(圖3)。
軟件控制
為了精確地控制1-wire接口的特殊時序要求,必須先建立幾個關(guān)鍵的函數(shù)。第一個函數(shù)應(yīng)該是延時函數(shù),它是所有讀和寫控制的組成部分。這個函數(shù)完全依賴于微處理器的速度。為了更好地理解,值此以ds5000(與8051兼容)微控制器(工作時鐘11.059mhz)為例。圖4列舉了一個用于創(chuàng)建時間延時的c(c語言)原型函數(shù)。
由于每個通信周期起始于微處理器發(fā)出的復(fù)位脈沖,因而復(fù)位函數(shù)(見圖5)是下一個最為重要的函數(shù)。復(fù)位時隙為480 s。首先以參數(shù)3,接著以參數(shù)25分別調(diào)用延時函數(shù)數(shù),將產(chǎn)生所要求的復(fù)位脈沖,緊接著復(fù)位之后微處理器釋放總線,以便dsl8x20/dsl822通過拉低總線來指示其是否在線。如果多個溫度傳感器在此總線上,它們將同時發(fā)出應(yīng)答脈沖。
讀和寫函數(shù)實例如圖6、7、8和9所示,提供了所有讀/寫數(shù)據(jù)位和字節(jié)操作的基本結(jié)構(gòu)。
結(jié)束語
以上是新型多點1-wire數(shù)字溫度傳感器與微控制器軟件接口簡易的設(shè)計方案,經(jīng)過多路溫度巡迥監(jiān)控系統(tǒng)在現(xiàn)場采集與檢測使用,其特點是具有較高的性能比,即程式簡單、檢測準(zhǔn)確、使用方便可靠。
評論