基于DS1820的單總線多點測溫技術
3.2 軟件設計
程序處理是整個系統(tǒng)的關鍵,簡潔的硬件結構是靠復雜的軟件來支持的。多個器件掛在一條總線上去識別不同的器件,在程序設計過程中一般有初始化命令、傳送ROM命令、傳送RAM命令、數(shù)據(jù)交換命令4個步驟。
需要注意的是,無論是單點還是多點溫度檢測,在系統(tǒng)安裝及工作之前,應將主機逐個與DS182掛接,讀出其序列號。它的工作過程為:主機發(fā)出一個脈沖,待“0”電平大于480μs后,復位DA1820,在DS1820所發(fā)響應脈沖由主機接收后,主機再發(fā)讀ROM命令代碼33H,然后發(fā)一個脈沖(15μs),并接著讀取DS1820序列號的1位。用同樣方法讀取序列號的56位。另外,由于DS1820單線通信功能是分時完成的,遵循嚴格的時隙概念,因此系統(tǒng)對DS1820和各種操作必須按協(xié)議進行,即初始化DS182(發(fā)復位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。
在正常測溫情況下,DS1820的測溫分辨率為0.5℃。這對于精度要求高的場合有所不足。在詳細分析DS1820測溫原理的基礎上,采取直接讀取DS1820內部暫存寄存器的方法,將DS1820的測溫分辨率提高到0.1~0.01℃。圖4為軟件設計的總流程。本文引用地址:http://cafeforensic.com/article/162232.htm
4 結語
雖然DS1820具有測溫系統(tǒng)簡單,測溫精度高,連接方便,占用口線少等優(yōu)點,但在實際應用中還應注意以下幾方面的問題:
系統(tǒng)硬件雖然簡單,但需要相對復雜的軟件進行補償;由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS1820進行讀/寫編程時,必須嚴格地保證讀/寫時序,否則將無法讀取測溫結果。
在DS1820的有關資料中均未提及單總線上所掛DS1820數(shù)量問題,容易使人誤認為可以掛任意多個DS1820,在實際應用中并非如此。當單總線上所掛DS1820超過8個時,就需要解決微處理器的總線驅動問題,這一點在進行多點測溫系統(tǒng)設計時要加以注意。連接DS1820的總線電纜是有長度限制的。由于信號電纜本身存在電阻,距離過長時將導致信號衰減。試驗中,當采用普通信號電纜傳輸長度超過50 m時,讀取的測溫數(shù)據(jù)將發(fā)生錯誤;當總線電纜改為雙絞線帶屏蔽電纜時,正常通信距離可達150 m;當采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時,正常通信距離能進一步加長。這種情況主要是由總線分布電容使信號波形產生畸變造成的。因此,在用DS1820進行長距離測溫系統(tǒng)設計時要充分考慮總線分布電容和阻抗匹配的問題。
評論