數(shù)字溫度傳感器DS18B20在衛(wèi)星電源系統(tǒng)中的應(yīng)用
根據(jù)DS18B20的通信協(xié)議,用主機(jī)控制DS18B20以完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每一次讀寫之前都要對DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。每一步操作必須嚴(yán)格按照時(shí)序規(guī)定進(jìn)行。DS18B20的工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序。
2.4 DS18B20使用注意事項(xiàng)
主機(jī)控制DS18B20完成溫度轉(zhuǎn)換時(shí),在每一次讀寫之前,都要對DS18B20進(jìn)行復(fù)位,而且該復(fù)位要求主CPU要將數(shù)據(jù)線下拉500μs,然后釋放。DS18B20收到信號后將等待16~60μs左右,之后再發(fā)出60~240μs的低脈沖。主CPU收到此信號即表示復(fù)位成功。實(shí)際上,較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償。由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送方式,因此,在對DS18B20進(jìn)行讀寫編程時(shí),必須嚴(yán)格地保證讀寫時(shí)序,否則,將無法正確讀取測溫結(jié)果。
對于在單總線上所掛DS18B20的數(shù)量問題,一般人們會誤認(rèn)為可以掛任意多個(gè)DS18B20,而在實(shí)際應(yīng)用中并非如此。若單總線上所掛DS18B20超過8個(gè)時(shí),則需要解決微處理器的總線驅(qū)動(dòng)問題,因此,在進(jìn)行蓄電池單體多點(diǎn)測溫系統(tǒng)設(shè)計(jì)時(shí)該問題要加以注意。
連接DS18B20的總線電纜是有長度限制的。試驗(yàn)中,當(dāng)采用普通信號電纜且其傳輸長度超過50 m時(shí),讀取的測溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。而將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通訊距離可達(dá)150 m,如采用帶屏蔽層且每米絞合次數(shù)更多的雙絞線電纜,則正常通信距離還可以進(jìn)一步加長。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變造成的,因此,在用DS18B20進(jìn)行長距離測溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問題。
在DS18B20測溫程序設(shè)計(jì)中,當(dāng)向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返同信號。這樣,一旦某個(gè)DS18B20接觸不好或斷線,在程序讀該DS18B20時(shí)就沒有返回信號,從而使程序進(jìn)入死循環(huán)。因此,在進(jìn)行DS18B20硬件連接和軟件設(shè)計(jì)時(shí),應(yīng)當(dāng)給予足夠的重視。
3 數(shù)字V-T曲線控制系統(tǒng)
3.1 硬件設(shè)計(jì)本文引用地址:http://butianyuan.cn/article/173773.htm
本設(shè)計(jì)選用美國Atmel公司的增強(qiáng)型Flash單片機(jī)AT89S52作為主處理器來完成主要的測控任務(wù),A999S52內(nèi)嵌的8 KB Flash ROM可在軟硬件上兼容AT89C52,但其最大的特點(diǎn)是集成了ISP接口,因而可直接在目標(biāo)板上進(jìn)行在
線編程。另外,設(shè)計(jì)中選用DALLAS公司的DS18B20作為溫度測量單元,其單總線上掛接的DS18B20采用外接VCC方式(而未用寄生供電),進(jìn)行多點(diǎn)測量;模數(shù)轉(zhuǎn)換采用ADI公司的AD574,精度為12 bit。其系統(tǒng)硬件組成如圖2所示。
3.2 軟件計(jì)
本系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計(jì)算溫度子程序、顯示數(shù)據(jù)刷新子程序等。編程時(shí)必須嚴(yán)格按照DS18B20的時(shí)序規(guī)定進(jìn)行。尤其需要注意的是,在多點(diǎn)溫度測量中,由于多個(gè)DS18B20掛在一條總線上,為識別不同的器件,在系統(tǒng)安裝之前,應(yīng)將主機(jī)逐個(gè)與DS18B20掛接,以讀出其序列號。具體是由主機(jī)先給DS18B20發(fā)一個(gè)復(fù)位脈沖,在DS18B20發(fā)回響應(yīng)脈沖給主機(jī)后,主機(jī)再發(fā)讀ROM命令(代碼33H),并發(fā)一個(gè)15μs左右的脈沖,接著再讀取DS18B20序列號的一位,并用同樣方法讀取序列號的每一位。其V-T曲線控制系統(tǒng)主程序和測溫子程序分別如圖3和圖4所示。
評論