基于CAN總線的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
數(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 所示。
本系統(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.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 系統(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 結(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à)值。