微控制器和1-Wire溫度傳感器的軟件接口
1-wire(一線制)數字溫度傳感器
本文引用地址:http://www.104case.com/article/20597.htmdallas公司產的1-wire(一線制)數字溫度傳感器己被廣泛應用于各工業(yè)控制與撿測的設備儀器之中,但如何應嵌入與連接在系統(tǒng)之術是設計人員所關切的技術問題。
dsl8b20、ds18c20或dsl822是業(yè)內更高精度( 0.5℃)的1-wire多點數字溫度傳感器,其特點是:
*具有1-wire數字接口
*唯一的64位序列號
*寬廣的溫度測量范圍為-55℃至+125℃
*具有非易失用戶(2字節(jié)eeprom)可編程觸發(fā)點的過熱告警
*測量分辨率可由用戶配置為9至12位
*封裝形式包括to-92,150mil8腳soic和倒裝片
dsl8x20或dsl822溫度傳感器內部結構圖見圖0所示。

目前有數種方法,可將1-wire器件,如dsl8b20、dsl822或dsl8s20與微控制器接口。這些方法包括:從簡單的軟件方案,到串行接口芯片,如ds2480及dallas 1-wire asic即(將經過整合的半導體超高規(guī)模集成電路硬件描述語言1-wire主控器制造成專用集成電路)等 。本文陳述了一種簡單的軟件解決方案,可實現(xiàn)微控制器和任意個數的dsl8x20或dsl822溫度傳感器之間的1-wire通信。
硬件配置
圖1的框圖說明了在采用多個1-wire溫度傳感器時,該硬件配置很簡單。一線制(1-wire)總線向所有的器件既提供通信連接,又提供工作電源。總線電源經由一個連接于3v至5.5v電源端的4.7kf2上拉電阻提供。由于每個器件具有唯一的64位rom識別碼,所以掛接在總線上的1-wire器件數量幾乎不受限制。多個1-wire溫度傳感器通過1-wire總線與采用ds5000(與mcs-8051單片機兼容)的微控制器相接口。

接口時序
與dsl8x20/dsl822的通信,通過操作時隙完成1-wire總線上的數據傳輸。每個通信周期起始于微控制器發(fā)出復位脈沖,其后緊跟dsl8x20/dsl822發(fā)出的應答脈沖,如圖2所示。

當主機將1-wire總線從邏輯高(空閑狀態(tài))拉為邏輯低時,即啟動一個寫時隙。所有的寫時隙必須在60 s至120 s(見圖3 60
s

讀時隙起始于微處理器將總線拉低1 s,接著釋放總線,這樣dsl8x20/dsl822就能夠接管總線,輸出有效數據(高或低)。所有讀時隙在60 s至120 s完成,且在每個循環(huán)之間至少 需要1 s的恢復時間(圖3)。
軟件控制
為了精確地控制1-wire接口的特殊時序要求,必須先建立幾個關鍵的函數。第一個函數應該是延時函數,它是所有讀和寫控制的組成部分。這個函數完全依賴于微處理器的速度。為了更好地理解,值此以ds5000(與8051兼容)微控制器(工作時鐘11.059mhz)為例。圖4列舉了一個用于創(chuàng)建時間延時的c(c語言)原型函數。
由于每個通信周期起始于微處理器發(fā)出的復位脈沖,因而復位函數(見圖5)是下一個最為重要的函數。復位時隙為480 s。首先以參數3,接著以參數25分別調用延時函數數,將產生所要求的復位脈沖,緊接著復位之后微處理器釋放總線,以便dsl8x20/dsl822通過拉低總線來指示其是否在線。如果多個溫度傳感器在此總線上,它們將同時發(fā)出應答脈沖。







讀和寫函數實例如圖6、7、8和9所示,提供了所有讀/寫數據位和字節(jié)操作的基本結構。
結束語
以上是新型多點1-wire數字溫度傳感器與微控制器軟件接口簡易的設計方案,經過多路溫度巡迥監(jiān)控系統(tǒng)在現(xiàn)場采集與檢測使用,其特點是具有較高的性能比,即程式簡單、檢測準確、使用方便可靠。
評論