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