何步職 高惠芳 李小龍
摘 要:提出以STM32F103單片機(jī)、DS18B20溫度傳感器、上位機(jī)溫度顯示組成的溫度采集系統(tǒng),闡述了整個(gè)系統(tǒng)的硬件構(gòu)成、軟件設(shè)計(jì)等。最終結(jié)果表明,基于CAN總線的溫度采集系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)易,穩(wěn)定可靠的特點(diǎn)。
關(guān)鍵詞:CAN總線;溫度測(cè)量;STM32F103單片機(jī);DS18B20溫度傳感器
中圖分類號(hào):TP274 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)06-00-02
0 引 言
數(shù)據(jù)采集系統(tǒng)是工農(nóng)業(yè)生產(chǎn)的重中之重,溫度信息更是與人們的日常生活息息相關(guān)。以485總線為通信方式的采集系統(tǒng)是市場(chǎng)的主流,但是卻存在組網(wǎng)能力差、傳輸速率低、可靠性不高等的缺點(diǎn)。因此,需要研發(fā)可以滿足遠(yuǎn)距離傳輸與控制要求并具有良好網(wǎng)絡(luò)通訊能力的溫度采集系統(tǒng)以滿足時(shí)代發(fā)展需求。
控制器局域網(wǎng)絡(luò)CAN(Controller Area Network)是一種能有效支持實(shí)時(shí)控制和分布式控制的串行通信網(wǎng)絡(luò),將CAN總線技術(shù)運(yùn)用于溫度采集系統(tǒng)中,不僅可以降低誤碼傳送率,還可提高系統(tǒng)內(nèi)部的通信實(shí)時(shí)性。因此,基于CAN總線設(shè)計(jì)的溫度采集系統(tǒng)具有組網(wǎng)能力強(qiáng)、傳輸快、可靠性高等優(yōu)點(diǎn)[1]。
1 系統(tǒng)總體結(jié)構(gòu)
CAN總線技術(shù)作為一種成本合理、可靠的、先進(jìn)的、功能完善的遠(yuǎn)程通訊方式正在被廣泛運(yùn)用,將CAN總線運(yùn)用于溫度采集系統(tǒng)非常具有現(xiàn)實(shí)意義。本文設(shè)計(jì)了一種基于CAN總線的多點(diǎn)溫度采集系統(tǒng),該系統(tǒng)以STM32F103作為中央處理器,用3個(gè)溫度傳感器DS18B20獲取3個(gè)點(diǎn)的溫度并傳遞到主機(jī)系統(tǒng)進(jìn)行顯示,CAN總線被作為主機(jī)與從機(jī)之間的通信介質(zhì)。通過(guò)上位機(jī)預(yù)設(shè)高臨界、低溫度值使得在此范圍之外的溫度會(huì)導(dǎo)致系統(tǒng)報(bào)警;TJA1050完成單片機(jī)與CAN總線的通信。本系統(tǒng)設(shè)計(jì)原理如圖1所示。
2 系統(tǒng)硬件電路設(shè)計(jì)
主機(jī)部分和從機(jī)部分是基于CAN總線的溫度采集系統(tǒng)設(shè)計(jì)的兩大模塊。主機(jī)部分由MCU主控單片機(jī)、仿真下載、RESET復(fù)位、串口、CAN收發(fā)器、時(shí)鐘電路、SB轉(zhuǎn)串口等組成;從機(jī)部分主要由MCU主控單片機(jī)、時(shí)鐘電路、仿真下載、RESET復(fù)位、DS18B20溫度傳感器等組成。整個(gè)系統(tǒng)的結(jié)構(gòu)框圖如圖2所示。
圖1 系統(tǒng)設(shè)計(jì)原理圖
圖2 系統(tǒng)的結(jié)構(gòu)框圖
本系統(tǒng)所采用的控制芯片是STM32F103C8T6,它的優(yōu)點(diǎn)是功耗低、管腳數(shù)量少,成本低。32字節(jié)的存儲(chǔ)器可以滿足存儲(chǔ)程序和數(shù)據(jù)的要求;有外部中斷與內(nèi)部中斷兩種中斷方式;外部中斷控制器可通過(guò)19路觸發(fā)器產(chǎn)生外部中斷請(qǐng)求,內(nèi)部中斷控制器完成43路中斷;內(nèi)部自帶CAN控制器;STM32F103滿足CAN2.0A/B協(xié)議[2],具備輸入輸出口,大部分管腳具有數(shù)模轉(zhuǎn)換功能的特性,并且輸出、輸入、外圍電路轉(zhuǎn)換等功能均可通過(guò)GPIO口利用軟件來(lái)實(shí)現(xiàn)。
DS18B20具備寬泛的電壓范圍使其不僅可以連接外部電源,還可與硬件連接作為寄生電源,具備-55°C~+125°C廣泛的溫度測(cè)量范圍,然而它之所以具備如此強(qiáng)大的市場(chǎng)競(jìng)爭(zhēng)力卻是由于其在-10°C~+85°C之間的精度為0.5°C。單總線接口方式使其運(yùn)用起來(lái)十分方便,僅需要一根線便可實(shí)現(xiàn)雙向通訊,將多個(gè)傳感器并用于一個(gè)系統(tǒng)中,組成一個(gè)可快速將溫度轉(zhuǎn)化為數(shù)字的網(wǎng)絡(luò)。
CAN總線收發(fā)器TJA1050遵從ISO 11898(國(guó)際標(biāo)準(zhǔn))標(biāo)準(zhǔn),其優(yōu)勢(shì)是速率高并具有電磁兼容性[3]。最高達(dá)到1 Mb/s,這可以使信息傳輸速率大大提升,并且可以通過(guò)連接110個(gè)以上的節(jié)點(diǎn)特征將各個(gè)溫度節(jié)點(diǎn)進(jìn)行組網(wǎng),滿足收集不同區(qū)域多個(gè)溫度節(jié)點(diǎn)信息的要求。
CH340G在本系統(tǒng)中被用作一個(gè)USB轉(zhuǎn)串口的工具,它具有全速USB接口,并且兼容USB2.0,CH340的驅(qū)動(dòng)程序能夠仿真標(biāo)準(zhǔn)串口,因此與絕大部分應(yīng)用程序完全兼容[4]。本系統(tǒng)中用于主機(jī)系統(tǒng)STM32單片機(jī)與PC機(jī)之間的連接,使用目的是保證主機(jī)系統(tǒng)正常與PC機(jī)連接。硬件全雙工串口,支持波特率100 b/s~3 Mb/s的特點(diǎn)可以與CAN協(xié)議完美結(jié)合。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件主要由主機(jī)軟件、從機(jī)軟件2部分構(gòu)成。以下將分別介紹這兩部分的程序流程圖與主要功能。
3.1 主機(jī)軟件設(shè)計(jì)
主機(jī)程序的功能是:主機(jī)模塊讀取CAN總線上傳的溫度信息并傳送到PC機(jī)中,在讀取到溫度信息時(shí)刷新溫度顯示,并在檢測(cè)到報(bào)警值修改后發(fā)送報(bào)警值修改命令。主機(jī)軟件設(shè)計(jì)流程如圖3所示。
圖3 主機(jī)軟件設(shè)計(jì)流程
3.2 從機(jī)軟件設(shè)計(jì)
從機(jī)系統(tǒng)的功能是:采集DS18B20溫度傳感器的溫度信息,并將所讀取到的溫度通過(guò)CAN總線傳輸?shù)街鳈C(jī)系統(tǒng)中,并且在收到報(bào)警設(shè)定命令時(shí)重新設(shè)定溫度報(bào)警值。從機(jī)軟件設(shè)計(jì)流程圖如圖4所示。
圖4 從機(jī)軟件設(shè)計(jì)流程圖
4 系統(tǒng)測(cè)試
3路溫度實(shí)時(shí)顯示與26°C超溫報(bào)警是本系統(tǒng)的兩個(gè)主要技術(shù)指標(biāo)。圖5是溫度顯示的測(cè)試界面。接收與發(fā)送均采用ASCII形式,并且串口通信波特率為9 600。
從圖5可知在測(cè)試環(huán)境溫度25°C下,3個(gè)溫度傳感器分別顯示的溫度為24.50°C、25.87°C、25.68°C,由于3個(gè)溫度傳感器存在細(xì)微差異,因此所測(cè)溫度略有不同。對(duì)傳感器2、傳感器3進(jìn)行升溫,在溫度超過(guò)26°C后馬上出現(xiàn)報(bào)警提示。測(cè)試結(jié)果表明:本系統(tǒng)所設(shè)計(jì)的溫度傳感器誤差較小,并且報(bào)警功能較為靈敏。
圖5 溫度顯示測(cè)試界面
5 結(jié) 語(yǔ)
采用內(nèi)置CAN總線的STM32單片機(jī)與高精度顯示溫度傳感器DS18B20結(jié)合而設(shè)計(jì)的基于CAN總線的溫度采集系統(tǒng)具有體積小、功耗低、集成度高、準(zhǔn)確性較高等優(yōu)點(diǎn)。實(shí)際調(diào)試結(jié)果表明該溫度傳感器不僅可以對(duì)3路溫度實(shí)時(shí)顯示,并且具備超溫報(bào)警功能,在工農(nóng)業(yè)生產(chǎn)等方面均有較大價(jià)值。
參考文獻(xiàn)
[1] 王毅峰,溫希東.基于 CAN 總線的智能控制器的設(shè)計(jì)[J].儀表技術(shù)與傳感器,2006(4):32-34.
[2] 陳志旺,等.STM32 嵌入式微控制器快速上手 [M].北京:電子工業(yè)出版社,2012.
[3] 覃磊,張杰.基于ZigBee技術(shù)的煤礦瓦斯監(jiān)測(cè)系統(tǒng)[J].計(jì)量與測(cè)試技術(shù),2007,34(1):18-20.
[4] 聶海峰,李靖,孫茂華.基于USB接口微波濕度計(jì)地面檢測(cè)系統(tǒng)的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,22(17):1-3.