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