摘 要: 介紹一種以PT1000鉑熱電阻為溫度傳感器,以AD7705模/數(shù)轉(zhuǎn)換器進(jìn)行電壓采集,利用NRF24L01進(jìn)行無線傳輸,采用STM32F103VE芯片作為控制器的溫度采集系統(tǒng)。詳細(xì)介紹軟件設(shè)計(jì)、硬件電路設(shè)計(jì),數(shù)據(jù)采集以及數(shù)據(jù)傳輸各部分工作情況,并給出了實(shí)際測試結(jié)果。
關(guān)鍵詞: 鉑熱電阻; 模數(shù)轉(zhuǎn)換器; 無線數(shù)據(jù)傳輸; 溫度采集系統(tǒng)
中圖分類號: TN911?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2015)24?0136?03
Design for temperature acquisition system of wireless transmission
JIA Yunfeng, FU Chengwei
(School of Physics, Jilin University, Changchun 130012, China)
Abstract: The temperature acquisition system is introduced in this paper, in which the platinum thermistors PT1000 is taken as the temperature sensor, the voltage is acquired with A/D converter AD7705, NRF24L01 is applied to conducting wireless transmission, and the chip STM32F103VE is adopted as the temperature acquisition system of the controller. The software design, hardware circuit design, and working conditions of data acquisition and transmission are introduced in detail. The practical test results are provided.
Keywords: platinum thermistor; A/D converter; wireless data transmission; temperature acquisition system
0 引 言
在日常生活和工業(yè)生產(chǎn)中,溫度是一個(gè)必不可少的參數(shù),對溫度的監(jiān)測尤為重要。普通的溫度采集系統(tǒng)需要信號線進(jìn)行通信,為了解決信號線帶來的困擾,設(shè)計(jì)了采用無線數(shù)據(jù)通信的溫度采集系統(tǒng)。
1 系統(tǒng)總體設(shè)計(jì)
該系統(tǒng)包含信號采集、信號發(fā)射和信號接收三個(gè)主要部分。信號采集部分將采集信號傳遞至發(fā)射端,發(fā)射端將數(shù)據(jù)通過電磁波發(fā)射到大氣中,無線接收端在接收到相應(yīng)的電磁波后,可對數(shù)據(jù)進(jìn)行處理和存儲。
圖1 系統(tǒng)工作流程圖
2 元器件選擇與結(jié)構(gòu)設(shè)計(jì)
2.1 單片機(jī)
本系統(tǒng)選用的是STM32F103VE微處理器。STM32系列微控制器是專門針對于高性能、低成本、低功耗而設(shè)計(jì)的嵌入式處理器,采用代碼密度的Thumb?2指令集和提高中斷響應(yīng)的緊耦合嵌套向量中斷控制器[1]。STM32運(yùn)行速度更快,性能更高,且在核上設(shè)計(jì)了單周期乘法制定的硬件觸發(fā)[2]。
2.2 溫度傳感器及采集電路
本系統(tǒng)選用PT1000鉑電阻作為溫度傳感器,在中低溫測量范圍內(nèi)鉑熱電阻具有更好的精度、線性度和穩(wěn)定性。為提高精度,消除導(dǎo)線電阻,選用三線制PT1000,同時(shí)配合相應(yīng)的電路使用,具體電路如圖2所示。采集電路將PT1000隨溫度變化的電阻值轉(zhuǎn)變?yōu)殡S溫度變化的電壓值,以便通過模/數(shù)轉(zhuǎn)換器進(jìn)行采集。
在實(shí)際應(yīng)用時(shí),需要考慮PT1000的自熱問題,因此應(yīng)保證通過PT1000的電流小于1 mA;同時(shí)需要盡可能提高電壓變化范圍,以此保證更高采集精度。此系統(tǒng)實(shí)際應(yīng)用中最低采集溫度為-50 ℃,經(jīng)計(jì)算此電路采用電阻大小為:R9=3 900 Ω,R10=3 900 Ω,R19=750 Ω,這樣設(shè)計(jì)既保證了PT1000不會因?yàn)樽詿釂栴}影響采集誤差,同時(shí)提高了采集精度。在實(shí)際應(yīng)用中,可以根據(jù)不同工作需求,對R9,R10,R19的阻值進(jìn)行適當(dāng)調(diào)整。
圖2 采集電路
2.3 模數(shù)轉(zhuǎn)換器
該系統(tǒng)所用模/數(shù)轉(zhuǎn)換器為AD7705電壓采集芯片,其具有16位精度,可進(jìn)行雙通道全差分模擬輸入采集,片內(nèi)包含一個(gè)低通數(shù)字濾波器,能有效地消除在模/數(shù)轉(zhuǎn)換過程中產(chǎn)生的噪聲,而且片內(nèi)包含一個(gè)1~128倍增益的可編程放大器,通過設(shè)置不同的增益倍數(shù),可相應(yīng)的提高測量精度。
2.3.1 硬件設(shè)計(jì)
AD7705與STM32F103VE連接電路見圖3,經(jīng)過AD7705轉(zhuǎn)換的數(shù)字量便可寫入NRF24L01進(jìn)行無線傳輸。
圖3 AD7705接口電路
2.3.2 軟件控制
對AD7705的初始化,需要對相應(yīng)參數(shù)進(jìn)行配置,AD7705采用雙通道全差分工作方式,增益倍數(shù)為1,刷新速率為500 Hz。
AD7705對兩個(gè)通道的采集不能同時(shí)進(jìn)行,在電路中采集雙通道電壓,需要在兩個(gè)采集通道之間進(jìn)行切換,在每次切換通道之后需要進(jìn)行芯片內(nèi)部的自校準(zhǔn),如圖4所示。
TM7705_WriteByte(REG_SETUP | WRITE | CH_1);
//寫通信寄存器,下一步是寫設(shè)置寄存器,通道1 TM7705_WriteByte(MD_CAL_SELF | __CH1_GAIN_BIPOLAR_BUF | FSYNC_0); //啟動自校準(zhǔn)
TM7705_WaitDRDY(); //等待自校準(zhǔn)完成
TM7705_WriteByte(0x38);
//向通信寄存器寫入讀取數(shù)據(jù)寄存器中數(shù)據(jù)的指令
圖4 AD7705工作流程
2.4 無線模塊
NRF2401芯片內(nèi)置硬件CRC校驗(yàn)和點(diǎn)對多點(diǎn)通信地址控制,集成了頻率合成器、晶體振蕩器和調(diào)制解調(diào)器[3]。
NRF2401提供直接模式和突發(fā)模式兩種通信模式。直接模式需要在發(fā)送前添加校驗(yàn)碼和地址碼,在接收端判斷本機(jī)地址并檢查數(shù)據(jù)傳輸[4]。而突發(fā)模式不僅功耗低,抗干擾能力強(qiáng),而且數(shù)據(jù)可從低速控制器寫入,無需添加校驗(yàn),并以1 Mb/s高速發(fā)射,因此采用突發(fā)模式可以使系統(tǒng)達(dá)到更高的工作效率。
2.4.1 硬件設(shè)計(jì)
NRF24L01電路如圖5所示。
2.4.2 軟件控制
SPI_Write_Buf((WRITE_REG1 + TX_ADDR), TX_ADDRESS, TX_ADR_WIDTH);
//寫本地地址
SPI_Write_Buf((WRITE_REG1 + RX_ADDR_P0), RX_ADDRESS, RX_ADR_WIDTH);
//寫接收端地址SPI_RW_Reg((WRITE_REG1 + RF_CH), 0); //設(shè)置信道工作為2.4GHZ,收發(fā)必須一致
SPI_RW_Reg((WRITE_REG1 + RF_SETUP), 0x07);
//設(shè)置發(fā)射速率為1 MHz,發(fā)射功率為最大值0 dB
SPI_RW_Reg((WRITE_REG1 + RX_PW_P0), RX_PLOAD_WIDTH); //設(shè)置接收數(shù)據(jù)長度,本次設(shè)置為32 B
SPI_WR_Reg(WRITE_REG1 + CONFIG, 0x0f); //接收模式
SPI_WR_Reg(WRITE_REG1 + CONFIG, 0x0e); //發(fā)射模式
圖5 NRF24L01電路
3 軟件設(shè)計(jì)及計(jì)算方法
3.1 軟件設(shè)計(jì)流程
首先進(jìn)行各部分初始化,單片機(jī)部分主要包括時(shí)鐘、I/O口、SPI、定時(shí)器和外部中斷的初始化,AD7705的初始化包括進(jìn)行自校準(zhǔn)以及配置刷新速率,無線模塊的初始化主要為工作模式的配置。經(jīng)過初始化,單片機(jī)通過SPI1讀取AD7705采集到的數(shù)據(jù),再通過SPI2把數(shù)據(jù)寫入到發(fā)射端的無線模塊,啟動無線發(fā)射,并判斷NRF24L01是否發(fā)送成功,如果未成功,則重新啟動發(fā)射。接收端單片機(jī)通過NRF24L01接收中斷判斷成功接收到數(shù)據(jù),單片機(jī)讀取數(shù)據(jù)后通過CAN總線傳送至上位機(jī)進(jìn)行存儲。
3.2 計(jì)算方法
AD7705采集到的電壓為Vadc,則采集電路兩端的電壓為:
[Volt=Vadc×2 50065 535] (1)
PT1000的電阻值:[R=VCCR10+R19+VoltVCC-VCCR10+R19+VoltR9] (2)
實(shí)際應(yīng)用中選取的電阻值如下:R9=3 983.6 Ω,R10=3 959.4 Ω,R19=748.3 Ω,VCC=5 V。
根據(jù)式(1)、式(2)可計(jì)算出PT1000的電阻值,通過查詢PT1000分度表可得到當(dāng)前的溫度值。
4 實(shí)際測試及結(jié)果
將密封好的模塊置于專業(yè)制冷測試的冰箱中,開啟系統(tǒng)后,系統(tǒng)正常工作,將冰箱調(diào)節(jié)至不同溫度進(jìn)行測試,每隔1 min記錄1次數(shù)據(jù)。從數(shù)據(jù)中抽取在-40 ℃時(shí)的數(shù)據(jù),制成圖6溫度曲線。
圖6 溫度曲線
5 結(jié) 語
該系統(tǒng)擺脫了信號線的束縛,使用更為靈活,采集精度高,誤差在0.3 ℃以內(nèi),結(jié)構(gòu)簡單,但在遠(yuǎn)距離的情況下受障礙物干擾較大,需進(jìn)一步改善本系統(tǒng),以提高其在復(fù)雜環(huán)境下的通信距離。
參考文獻(xiàn)
[1] 劉建平.單片2.4 GHz無線收發(fā)一體芯片nRF24L01及其應(yīng)用[J].國外電子元器件,2004(12):36?38.
[2] 王永宏,徐煒,郝立平.STM32系列ARM Cortex?M3微控制器原理與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008.
[3] 白春雨.基于nRF24L01的2.4 GHz無線通信系統(tǒng)設(shè)計(jì)[J].無線電通信技術(shù),2011,3(4):45?46.
[4] 于超然.基于NRF24L01無線模塊的井下流量數(shù)據(jù)傳輸設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014,37(15):41?44.
[5] 張莉,董銀麗.牛頓法與解析法在Pt100鉑熱電阻溫度計(jì)算中的特性分析[J].現(xiàn)代電子技術(shù),2010,33(11):135?137.
[6] 陳志文,王瑋.基于Pt100鉑熱電阻的溫度變送器設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2010,33(8):197?199.