賈利娜++李云紅++姚韻
摘要:為了克服工農(nóng)業(yè)生產(chǎn)過程中溫度檢測環(huán)境范圍大等困難,設(shè)計(jì)了基于STM32的無線溫度采集系統(tǒng)。系統(tǒng)以STM32F103RBT6為核心控制器,利用DS18B20溫度傳感器進(jìn)行溫度采集,利用nRF24L01無線收發(fā)裝置進(jìn)行無線傳輸溫度數(shù)據(jù)。設(shè)計(jì)了溫度采集系統(tǒng)實(shí)現(xiàn)方案框圖并介紹了溫度采集系統(tǒng)軟件實(shí)現(xiàn)思路。數(shù)字型溫度傳感器DS18B20的使用提高了溫度采集系統(tǒng)的精度和抗干擾能力,并且簡化了外圍電路。
關(guān)鍵詞:STM32;DS18B20;nRF24L01;溫度采集
中圖分類號(hào):TP274 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)11-0209-03
Abstract: In order to overcome difficulties of a wide range of the detected ambient temperature environment during the industrial and agricultural production, the wireless temperature collection system based on STM32 is designed. The system uses the STM32F103ZET6 as the core controller and uses the DS18B20 temperature sensor for temperature data collection , uses the nRF24L01 wireless transmitters to transmit temperature data. The diagram of the temperature acquisition system is designed and implementation idea of software of the temperature acquisition system is introduced. Digital temperature sensor DS18B20 is used to improve the accuracy and anti-jamming capability of the temperature acquisition system, and simplifying the peripheral circuits.
Key words: STM32;DS18B20;nRF24L01;Temperature collection
1概述
在工農(nóng)業(yè)生產(chǎn)過程中,溫度是重要的參數(shù)之一,與生產(chǎn)效益、產(chǎn)品質(zhì)量、安全生產(chǎn)等息息相關(guān),因此對(duì)溫度采集進(jìn)行研究具有重要意義。在文獻(xiàn)[1]中,賈云峰等人提出了一種無線傳輸?shù)臏囟炔杉到y(tǒng)的設(shè)計(jì),系統(tǒng)采用無線裝置有效地進(jìn)行溫度采集,使用靈活方便,但由于采用的是PT1000鉑熱電阻模擬溫度傳感器,需要進(jìn)行信號(hào)調(diào)理電路的設(shè)計(jì),增加了設(shè)計(jì)的難度,系統(tǒng)采用的模/數(shù)轉(zhuǎn)換器為AD7705,不利于提高精度,本文采用的是DS18B20數(shù)字型溫度傳感器[2-3],能有效地解決之上提出的問題;在文獻(xiàn)[4]中,楊丹丹等人提出了基于單片機(jī)的溫度采集系統(tǒng)1設(shè)計(jì),系統(tǒng)采用的是89C51單片機(jī),單片機(jī)引腳較少,不利于系統(tǒng)進(jìn)行擴(kuò)展,并且單片的處理能力較STM32低,本文采用STM32作為核心控制器芯片[5],可以有效提高系統(tǒng)的處理能力和執(zhí)行效率。此設(shè)計(jì)結(jié)合使用nRF24L01[6]設(shè)計(jì)了一套無線溫度采集系統(tǒng),測量準(zhǔn)確快速,為生產(chǎn)打下了良好的基礎(chǔ)。
2系統(tǒng)總體設(shè)計(jì)
無線數(shù)據(jù)傳輸系統(tǒng)包括點(diǎn)對(duì)點(diǎn)傳輸、點(diǎn)對(duì)多點(diǎn)傳輸和多點(diǎn)對(duì)多點(diǎn)傳輸。本文設(shè)計(jì)了一個(gè)點(diǎn)對(duì)多點(diǎn)的無線溫度采集系統(tǒng),由一個(gè)上位機(jī)和10個(gè)下位機(jī)組成。系統(tǒng)是以STM32f103RBT6為核心控制器芯片,采用DS18B20數(shù)字型溫度傳感器,以nRF24L01芯片為無線收發(fā)裝置。溫度采集系統(tǒng)主要包括發(fā)送端和接收端兩部分。系統(tǒng)總體設(shè)計(jì)框圖如圖1所示:
3硬件設(shè)計(jì)
3.1控制器的選擇
核心控制器采用的是STM32F103RBT6芯片,此款芯片采用高性能、低成本、低功耗的ARM Cortex-M3?32位RISC內(nèi)核,在72MHz的頻率操作,具有高速的嵌入式存儲(chǔ)器(閃存和SRAM多達(dá)128字節(jié)和20字節(jié)),增強(qiáng)的I/O外設(shè)和兩個(gè)APB總線。所有器件提供兩個(gè)12位ADC,三個(gè)通用16位定時(shí)器和一個(gè)PWM定時(shí)器,以及擁有先進(jìn)的、標(biāo)準(zhǔn)的通訊接口:有兩個(gè)I2C接口和SPI接口,三個(gè)串行外設(shè)接口,一個(gè)USB和一個(gè)CAN接口。STM32F103RBT6工作于2~3.6V電源,功耗為36mA,而待機(jī)時(shí)只有2μA,是32位市場上功耗非常低的產(chǎn)品。工作時(shí)的溫度范圍為-40℃~85℃,完全可以滿足溫度采集現(xiàn)場的要求。
3.2 DS18B20介紹及溫度采集電路設(shè)計(jì)
DS18B20是美國DALLAS半導(dǎo)體公司生產(chǎn)的ON-BOARD專利技術(shù)的數(shù)字型溫度傳感器,具有硬件開銷低,體積小、精度高、抗干擾能力強(qiáng)等特點(diǎn)。測量溫度范圍為-55~+125℃,精度為±0.5℃,測溫分辨率為0.1℃,用戶可自定義非易失性的報(bào)警上下限值。通過編程可實(shí)現(xiàn)9~12位的數(shù)字讀數(shù)方式。設(shè)計(jì)中采用DS18B20可以省去復(fù)雜的模數(shù)轉(zhuǎn)化,使設(shè)計(jì)變得更加智能、便捷,并且DS18B20在惡劣的環(huán)境下穩(wěn)定性、精度也都很高。
本文設(shè)計(jì)的是10路溫度采集系統(tǒng),由于每一路溫度采集電路均相同,所以僅對(duì)其中一路進(jìn)行介紹。由于DS18B20是1-wire總線接口器件,因此它與STM32的硬件接口十分簡單,只需占用STM32的一個(gè)雙向的I/O口,其接口電路如圖2所示。當(dāng)溫度采集電路工作時(shí),由程序來讀取溫度傳感器DS18B20采集到的溫度數(shù)據(jù),之后發(fā)送到STM32進(jìn)行處理。溫度傳感器DS18B20的輸入輸出引腳連接到STM32的PA3引腳上。單總線接口器件需要接一個(gè)大約4.7kΩ左右的上拉電阻,當(dāng)總線空閑時(shí),使其狀態(tài)為高電平。
3.3 無線傳輸模塊
在本文中,無線傳輸模塊采用的是nRF24L01芯片,該芯片具有全球開放的2.4G的ISM頻段,可以免許可證使用;最高速率可達(dá)2Mbit/s,抗干擾能力強(qiáng)并且具有高效的GFSK調(diào)制;具有125個(gè)可供選擇的頻道,可以滿足調(diào)頻通信和多點(diǎn)通信的需要;內(nèi)部具有點(diǎn)對(duì)多點(diǎn)通信地址控制和CRC錯(cuò)檢;在1.9V-3.6V低電壓段工作;可以設(shè)置自動(dòng)應(yīng)答模式,使得數(shù)據(jù)可以進(jìn)行可靠傳輸。nRF24L01芯片與STM32的接口電路非常簡單,使用SPI接口就可以實(shí)現(xiàn)與STM32之間的通信,配置方便易行,最大的SPI速度可以達(dá)到18MHz。
3.4 系統(tǒng)復(fù)位
復(fù)位電路中的外部看門狗電路是以STWD100作為核心芯片,使得系統(tǒng)具有很強(qiáng)的電磁兼容性能,可以有效地防止程序“跑飛”,提高了系統(tǒng)的可靠性。復(fù)位電路工作在溫度采集系統(tǒng)上電或復(fù)位的過程中,控制CPU的復(fù)位狀態(tài),防止CPU發(fā)出錯(cuò)誤的指令、執(zhí)行錯(cuò)誤的操作。
4 軟件設(shè)計(jì)
4.1 系統(tǒng)軟件設(shè)計(jì)
簡單的外圍電路的搭建還無法做到設(shè)計(jì)的要求,還需要進(jìn)行軟件部分的設(shè)計(jì)才能實(shí)現(xiàn)溫度采集的功能。溫度采集系統(tǒng)的軟件設(shè)計(jì)是以STM32為基礎(chǔ),利用模塊化程序設(shè)計(jì)的思想,通過主程序調(diào)用的方式實(shí)現(xiàn)溫度采集系統(tǒng)的各個(gè)功能。模塊主要包括溫度采集模塊、顯示模塊、報(bào)警模塊等。結(jié)構(gòu)模塊化思想的使用使得編程思路清晰明確,并且方便對(duì)系統(tǒng)進(jìn)行修改和擴(kuò)展。軟件開發(fā)過程是在支持STM32的開發(fā)平臺(tái)Keil μVersion5.0上進(jìn)行的。在Keil μVersion5.0開發(fā)平臺(tái)上可以進(jìn)行程序編譯、下載、調(diào)試和模擬等。程序的設(shè)計(jì)采用C語言,程序結(jié)構(gòu)清晰明了。溫度采集系統(tǒng)的主程序流程圖如圖3所示:
溫度采集部分是整個(gè)系統(tǒng)的核心部分,能否很好地進(jìn)行溫度值的采集是實(shí)現(xiàn)系統(tǒng)功能的關(guān)鍵。溫度采集部分的軟件設(shè)計(jì)實(shí)現(xiàn)了溫度采集,數(shù)據(jù)處理,數(shù)據(jù)保存等功能,DS18B20傳感器讀取溫度值的程序流程圖如圖4所示:
報(bào)警模塊是將采集到的溫度值與預(yù)先設(shè)定的溫度值進(jìn)行比較,若發(fā)現(xiàn)采集到的溫度值高于或者低于預(yù)先設(shè)定的報(bào)警值,則進(jìn)行報(bào)警處理,并發(fā)出報(bào)警信號(hào)。如果采集的溫度值在預(yù)先設(shè)定的溫度值范圍內(nèi),則正常進(jìn)行溫度采集。報(bào)警裝置流程圖如圖5所示:
4.2 系統(tǒng)通信協(xié)議
上位機(jī)微處理器啟動(dòng)上位機(jī)和下位機(jī)之間的通信,在各個(gè)溫度采集點(diǎn),依次對(duì)10個(gè)溫度傳感器進(jìn)行地址編號(hào),上位機(jī)采用逐一查詢的方式檢測各個(gè)下位機(jī)有沒有接收到通信請(qǐng)求,下位機(jī)采用中斷的方式對(duì)上位機(jī)發(fā)送的地址信息進(jìn)行處理。通信數(shù)據(jù)里面包含有各個(gè)下位機(jī)的地址,如果地址與下位機(jī)地址相符,下位機(jī)則執(zhí)行命令。通信協(xié)議格式如表1所示。
5 結(jié)束語
本文設(shè)計(jì)了一個(gè)性能穩(wěn)定、適用性強(qiáng)的溫度采集系統(tǒng),對(duì)目標(biāo)區(qū)域的溫度采集準(zhǔn)確快速,節(jié)約了大量的人力、物力,具有很強(qiáng)的實(shí)用性。并且系統(tǒng)具有很好的移植性,可以用于倉庫、機(jī)房、溫室大棚等位置的溫度采集,具有一定的推廣價(jià)值。
參考文獻(xiàn):
[1] 賈云峰,付成偉.一種無線傳輸?shù)臏囟炔杉到y(tǒng)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2015,38(24):136-138.
[2] 付藝豪,許建明,李忠.基于DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)[J].技術(shù)交流,2016(4):187-188.
[3] 顏麗娜.基于DS18B20測溫系統(tǒng)的設(shè)計(jì)[J].機(jī)械與電子,2010(11):496-497.
[4] 楊丹丹,楊風(fēng),馬慧卿.基于單片機(jī)的溫度采集系統(tǒng)設(shè)計(jì)[J].山西電子技術(shù),2014(3):19-21.
[5] 白建民. 基于STM32F103T6的溫度控制系統(tǒng)設(shè)計(jì)[J].價(jià)值工程,2013(28):240-241.
[6] 陳鋒. 基于nRF24L01的無線溫度監(jiān)測系統(tǒng)[J].工業(yè)控制計(jì)算機(jī),2010,23(12):71-72.