DS18B20在空調檢測系統溫度采集模塊中的應用
DS18B20溫度寄存器中的溫度值以9 bit數據格式表示,而輸出溫度則是以16 bit符號擴展的二進(jìn)制補碼形式提供,其中低8 bit用補碼表示,第9 bit~16 bit為擴展符號位??照{檢測系統所需檢測的溫度值均在0 ℃以上,這樣,只需讀取緩存9個(gè)字節的前兩個(gè)字節即可。
2.2 DS18B20硬件連接
DS18B20器件都有一個(gè)唯一的64 bit ROM地址,通過(guò)協(xié)議就能識別這些序列號,這樣多個(gè)DS18B20可以?huà)旖釉谕粭l單總線(xiàn)上,構成多點(diǎn)溫度采集網(wǎng)絡(luò )。由于DS18B20具有“單總線(xiàn)”的技術(shù)特點(diǎn),因此可以采用兩種不同的方式連接單片機。
(1)單端口并聯(lián)連接:所有DS18B20均連接在同一條總線(xiàn)上,然后再連接到單片機的某個(gè)I/O端口。這種連接方式具有硬件開(kāi)銷(xiāo)小的優(yōu)點(diǎn),理論上一根總線(xiàn)可以?huà)旖?56個(gè)DS18B20,但若連接的數字傳感器數量較多,單片機需要花較多的時(shí)間才能獲得每個(gè)傳感器的序列號,會(huì )降低系統的實(shí)時(shí)性,同時(shí)使得軟件編程變得復雜。
(2)多端口并行連接:每個(gè)DS18B20獨占單片機某個(gè)I/O端口。這種并行連接方式使得單片機能夠對所有的數字傳感器進(jìn)行并行操作,同一時(shí)間能實(shí)現多個(gè)輸入輸出,實(shí)現對溫度數據的快速讀取,從而提高系統的實(shí)時(shí)性,同時(shí)也使得軟件編程變得簡(jiǎn)單,縮短了項目的開(kāi)發(fā)周期。這種連接方式的缺點(diǎn)是硬件開(kāi)銷(xiāo)比較大。
根據空調檢測系統的實(shí)際需要,系統使用16片DS18B20構成小型溫度數據采集網(wǎng)絡(luò ),結合單端口并聯(lián)連接和多端口并行連接的連接特點(diǎn),每個(gè)I/O端口連接兩片DS18B20,共使用8個(gè)I/O端口,單片機與16片DS18B20連接框圖如圖2所示。DS18B20芯片的DQ端和單片機的I/O端口相連,并接上一個(gè)4.3 kΩ的上拉電阻,芯片的GND端接地線(xiàn), VDD端接5 V電源線(xiàn)。AT89S52是一種低功耗、高性能CMOS 8 bit微控制器,具有8 KB Flash,256 B RAM,32 bit I/O口線(xiàn),3個(gè)16 bit定時(shí)器/計數器,其資源性能可以滿(mǎn)足空調檢測系統溫度采集的需要。
3.1 DS18B20溫度采集
DS18B20溫度采集基本流程:?jiǎn)纹瑱C發(fā)出復位脈沖,當信號線(xiàn)上的DS18B20發(fā)出存在脈沖后,即完成DS18B20的初始化工作;單片機檢測到存在脈沖,便發(fā)起ROM操作命令;發(fā)送內存操作指令,啟動(dòng)DS18B20溫度轉換;延時(shí)2 μs等待溫度轉換完成;發(fā)出匹配ROM命令后緊接著(zhù)發(fā)送片內ROM序列號;讀取序列號對應的DS18B20暫存器,從而讀出溫度值;讀完一個(gè)DS18B20溫度值后,接著(zhù)轉向下一個(gè)DS18B20的操作。這樣的操作循環(huán)進(jìn)行,從而完成對所有DS18B20溫度值的讀取。溫度采集基本流程圖[1]如圖4所示。 溫濕度控制器相關(guān)文章:溫濕度控制器原理 熱電偶相關(guān)文章:熱電偶原理
評論