【正文】
}} Ⅴ .結(jié)論 本文作者創(chuàng)新點(diǎn): 1) 通過分析基于單總線方式和分組方式的多點(diǎn)溫度測試系統(tǒng)的交替檢測時(shí)間的差別,得出分組方式能明顯提高交替檢測速度; 2) 設(shè)計(jì)了一套基于 DS18B20分組方式的無線多點(diǎn)溫度測試系統(tǒng),這套系統(tǒng)已經(jīng)用于一家大型機(jī)械公司的瀝青運(yùn)輸車的技術(shù)改造中,并取得良好的效果。 temp_lsb |=temp_msb。 temp_msb =4 。 temp_lsb |=temp_msb。 temp_lsb = 4 。j++) {temp_lsb = temp_pad[j][0] 。 } for(j=0。j++) { match_ rom(j)。} For(j=0。j100。//跳過序列號檢驗(yàn) write_bytes(0x44 )。i8。以下程序?yàn)椴杉?,轉(zhuǎn)換模塊的主要內(nèi)容: void Get_ Temperature(void) { uchar i,j , temp_ lsb, temp_ msb。利用鍵盤和顯示配合讀取120點(diǎn) DS18B20的序列號,之后編號存入 DS1225Y中,一開始無線模塊設(shè)置為接收狀態(tài),以接收采集數(shù)據(jù)啟動(dòng)命令,轉(zhuǎn)換時(shí),無無線模塊設(shè)置為休眠狀態(tài),在進(jìn)行溫度數(shù)據(jù)上傳時(shí)模塊設(shè)置為發(fā)送狀態(tài),將 溫度數(shù)據(jù)和 DS18B20的系統(tǒng)編號發(fā)送給上位機(jī)。主程序負(fù)責(zé)鍵盤管理、系統(tǒng)初始化及各功能模塊的調(diào)用。 系統(tǒng)軟件功能和流程 溫度測試系統(tǒng)軟件部分,負(fù)責(zé)完成對 DSl8820的編號、數(shù)據(jù)采集及轉(zhuǎn)換、無線通訊及鍵盤管理等 ,為了調(diào)試程序方便,提高可靠性,采用了模塊化設(shè)計(jì),主要有鍵盤處理模塊、無線通訊模塊、溫度采集和處理模塊、顯示模塊等,軟件流程具體如圖所示??紤]到系統(tǒng)須存取 120個(gè) DSl8820的序列號。程序正常運(yùn)行時(shí),必須在小于 1. 6s的時(shí)間間隔內(nèi)向 MAX813的 WDI管腳發(fā)送一個(gè)脈沖信號,以清除芯片內(nèi)部看門狗定時(shí)器。因?yàn)橐獙?DS18B20的序列號進(jìn)行區(qū)分和編碼,所以增加了液晶模塊和鍵盤模塊 ,無線數(shù)傳部分則選用收發(fā)一體式無線模塊 PTR2021,該模塊可以有兩個(gè)業(yè)余頻段選擇 (433. 9MHd434. 33MHz),波特率可調(diào) (最高可達(dá) 20Kbit/ s),可以直接接收單片機(jī)串 I: I收據(jù)。上位機(jī)采用 PC機(jī),主要負(fù)責(zé)接收下位機(jī)發(fā)送過來的溫度數(shù)據(jù),并進(jìn)行顯示,存儲(chǔ)等數(shù)據(jù)管理工作以及簡單的人機(jī)交互。本文設(shè)計(jì)了一套用于瀝青運(yùn)輸車外殼溫度分布的無線溫度測試系統(tǒng)基于 DS18B20分組方式,總共 120個(gè)點(diǎn)。 Ⅳ .設(shè)計(jì)實(shí)例 瀝青運(yùn)輸車是用于原料場和路面之間的主要輸送設(shè)備 。因?yàn)?A/D轉(zhuǎn)換時(shí)間為 ( 9位精度) ,如果按最短時(shí)間計(jì)算,整個(gè)交替檢測時(shí)間分別為: ( 1)單總 線 495us+2}f8女 60+7)us+97. 35ms+. 495us+100(64*60+63+ 8*60+7+9*60+8)us=552. 534ms ( 2)分組模式 495us+28(860+7)us+97. 35ms+20(64+60+63+8+60+7+ 9460+8)us=189. 804ms 因?yàn)閿?shù)制轉(zhuǎn)換和存儲(chǔ)時(shí)間占整個(gè)交替檢測時(shí)間很小,以及無法確定晶振頻率,這里就不計(jì)算數(shù)制轉(zhuǎn)換和存儲(chǔ)時(shí)間。 圖 現(xiàn)在來分析單總線方式和分組方式測試系統(tǒng)耗時(shí),圖 46分別為 DSl8B20的復(fù)位時(shí)序、單片機(jī)寫一位和讀一位的時(shí)序。當(dāng)對 DS18B20進(jìn)行讀寫時(shí),必須嚴(yán)格保持時(shí)序要求。電源采取外部供電,由于每個(gè) DS18B20都是同步轉(zhuǎn)換,所以需要較強(qiáng)電流,不能用信號線供電,否則系統(tǒng)無法正常工作。有兩種供電方式:利用信號線高電平時(shí)借電供電,或直接用 +5V電源。溫度變換為數(shù)字可在 720ms內(nèi)完成,每一個(gè) DS18B20具有唯一的 64位的序列號(圖 1), DS18B20內(nèi)部有兩個(gè) 8位存儲(chǔ)器 RAM用來儲(chǔ)存溫度值 ( 0號和 1號),其中 0號存儲(chǔ)器存放溫度值的補(bǔ)碼, 1號存儲(chǔ)器存儲(chǔ)溫度值的符號。本文實(shí)現(xiàn)了一套人工環(huán)境實(shí)驗(yàn)室的多點(diǎn)溫度測試,明顯提高了原有測試系統(tǒng)的檢測效率。從而導(dǎo)致系統(tǒng)的交替檢測速度明顯下降,極大的影響了多點(diǎn)測溫系統(tǒng)的檢測效率。由于多點(diǎn)溫度測試系統(tǒng)采用的是單總線方式,所有的 DS18B20 傳感器掛在一根總線上,然后輪流讀取每一個(gè)測試點(diǎn)的溫度轉(zhuǎn)換值。在本文中,采取對 DS18B20合理的分組的方法,并在軟件上采取一定措施,從而明顯的提高交替檢測速度。Automation 2021,(2):2526 譯文: 基于 DS18B20 分組方式溫度測試系統(tǒng)設(shè)計(jì) 摘要: 當(dāng)用于多點(diǎn)測溫時(shí),所有的 DS18B20 傳感器都連接在單片機(jī)的某根總線上,采用輪流采集溫度數(shù)據(jù)的方式。 temperature_ vel[j] = temp_lsb。 temp_lsb %= 10 。 temp_msb = (temp_lsb/10) 。 temp_msb = 4 。 //the data conversion of the temperature value temp_msb = temp_pad[j][1] 。j120。 read_ scratchpads (j)。j15。 wait for the end of conversion {delay(1000)。j100。//skip over the serial numbers to check write_bytes(0x44 )。i8。 two out of three logic is performed according to the bit). The wireless module is set up as the sleep state during the conversion and the transforming state during the temperature data transmission. Packing sends the temperature data and the DS18B20 numbers in the system to epigenous machine. The parts of collection and conversion start the DS18B20 conversion, read the temperature data by grouping methods, store data and so on. The following procedure is the main content of collecting and conversion modules: void Get_ Temperature(void) { uchar i,j , temp_ lsb, temp_ msb。 the span of writing or reading the next bit is 1us. As the A/D conversion time is (9 precisions), if it is counted by the shortest way, the total timeconsuming of alternate test is calculated respectively as follows: (1) Single bus 495us+2*(8*60+7)us++495us+100*(64*60+63+8*60+7+9*60+8)us=4ms (2) Grouping mode 495us+2*(8*60+7)us++20(