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