基于CAN總線的多點溫度采集系統(tǒng)設(shè)計
掃描二維碼
隨時隨地手機看文章
引 言
數(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ì)。通過上位機預設(shè)高臨界、低溫度值使得在此范圍之外的溫度會導致系統(tǒng)報警 ;TJA1050 完成單片機與CAN 總線的通信。本系統(tǒng)設(shè)計原理如圖 1 所示。
2 系統(tǒng)硬件電路設(shè)計
主機部分和從機部分是基于 CAN 總線的溫度采集系統(tǒng)設(shè)計的兩大模塊。主機部分由MCU 主控單片機、仿真下載、RESET 復位、串口、CAN 收發(fā)器、時鐘電路、SB 轉(zhuǎn)串口等組成;從機部分主要由 MCU 主控單片機、時鐘電路、仿真下載、RESET 復位、DS18B20 溫度傳感器等組成。整個系統(tǒng)的結(jié)構(gòu)框圖如圖 2 所示。
本系統(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ū)動程序 能夠仿真標準串口,因此與絕大部分應用程序完全兼容 [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.2 從機軟件設(shè)計
從機系統(tǒng)的功能是 :采集 DS18B20 溫度傳感器的溫度信 息,并將所讀取到的溫度通過 CAN 總線傳輸?shù)街鳈C系統(tǒng)中, 并且在收到報警設(shè)定命令時重新設(shè)定溫度報警值。從機軟件 設(shè)計流程圖如圖 4 所示。

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 結(jié) 語
采用內(nèi)置 CAN 總線的STM32 單片機與高精度顯示溫度傳感器DS18B20 結(jié)合而設(shè)計的基于 CAN 總線的溫度采集系統(tǒng)具有體積小、功耗低、集成度高、準確性較高等優(yōu)點。實際調(diào)試結(jié)果表明該溫度傳感器不僅可以對 3 路溫度實時顯示, 并且具備超溫報警功能,在工農(nóng)業(yè)生產(chǎn)等方面均有較大價值。