基于CAN總線的多點紅外測溫系統設計
摘要:在工業控制領域,溫度測量是不可或缺的工作。隨著工業控制精細化、多點化要求,多點測溫系統的需求空間越來越大。本文基于CAN總線設計了一個多點測溫系統,硬件電路由微處理器、CAN控制器與驅動器、數字測溫芯片DS18B20、LCD、復位電路等幾部分組成,單片機STC89C52RC是硬件電路的核心,承擔 CAN控制器的初始化、數據收發控制等任務。實驗證明,該系統精度高,可靠性好,結構簡單,成本低,適用范圍內可取代傳統測溫系統。
本文引用地址:http://www.j9360.com/article/202207/436784.htm關鍵詞:CAN總線;多點測溫系統;DS18B20溫度傳感器
1 引言
在工業控制領域,溫度測量是不可或缺的工作。隨著工業控制精細化、多點化要求,多點測溫系統的需求空間越來越大。CAN(控制器域網,Controller Area Network)總線在組網和通信功能上的優點以及它的高價比決定了它在眾多領域具有廣闊的發展前景,尤其是在分布在多點測溫應用方面。本文基于 CAN 總線設計了一個多點紅外測溫系統,能夠實時對多點進行測溫,具有測溫范圍廣、精度高、環境適應能力強等特點。
2 硬件設計
CAN 總線多點測溫系統主要由現場設備,主控設備和計算機組成,系統總體結構圖如圖 1。
圖1 系統結構圖
2.1 溫度測量電路設計
DS18B20 傳感器可以把溫度直接轉換成串行數字信號供微控制器進行處理。由于每個傳感器含有唯一的硅串行數,故一條總線上可以有任意多個 DS18B20 芯片。 本設計中的 DS18B20 是在模擬的現場節點上的,采用不同材質的通信電纜,其最大測溫范圍不一樣。因此,使用 DS18B20 設計長距離測溫系統時,電容與阻抗匹配問題是不可忽略的一個因素。DS18B20 的寄生電源模式有兩項基本功能,一是保證微處理器和 DS18B20 之間的正常通訊,二是為 DS18B20 提供電源。實際應用中當單總線上所掛 DS18B20 超過 8 個時,就需要考慮微總線驅動問題,這一點進行測溫時要尤為注意。
2.2 CAN總線通訊節點電路設計
本文選用選用 STC 的單片機做為主控器,選用 CAN 控制器和 CAN 驅動器來構建 CAN 通訊網絡。主要由三部分構成:微控制 STC89C52、獨立 CAN 通 信控制器 SJA1000 和 CAN 總線收發器 PCA82C250;微處理器 STC89C52 負責 SJA1000 的 初始化,通過控制 SJA1000 實現數據 的接收與發送;SJA1000 的 AD0 ~ AD7 連接到 STC89C52 的 P0 口上,CS 連接到 STC89C52 的 P2.0,P2.0 為 0 的 CPU 片外存貯器地址可選中 SJA1000,CPU 通過這些地址可對 SJA1000 執行相應的讀寫操作。
2.3 數碼管顯示電路設計
由于 STC89C52 的 P1、P2、P3 口內部都有上拉電阻,為了減少硬件電路的復雜度,在這里選用 STC89C52 的 P1 口來做為數碼管的段碼控制口,P2 口的四位做為數碼管的位選信號,從而省去了數碼管復雜的驅動電路,也降低了硬件設計的難度;為了節省單片機的端口資源,同時降低成本,這兒選用四位一體的共陰數碼管做為顯示設備,采用動態掃描的方法顯示,比著用四個獨立的數碼管來顯示要容易的多,硬件也簡單的多。
2.4 液晶接口電路設計
根據設計要求,主控板需要將模擬的三個現場節點的溫度值讀取過來并在液晶上顯示,為了能夠同時顯示漢字和字符,這兒選用 YJD12864 做為液晶顯示模塊,相比于只能顯示字符的 1602,12864 的顯示更加美觀,更加人性化。YJD12864 有并行數據傳輸和串行數據傳輸兩種工作方式,本設計選用 8 位并行傳輸方式,STC 單片機的 P1 口做為 12864 的數據口;P2.1 接 12864 的 4 腳,用來向 12864 發送數據和控制指令;P2.2 接 12864 的 5 腳,用來通知 12864 本次操作是讀操作還是寫操作;P2.3 接 12864 的 6 腳,對 12864 操作的使能信號,高電平使能操作。
2.5 串口通訊電路設計
設計要求中規定,現場設備將溫度值傳給主控設備,然后主控設備再將數據傳送到上位機顯示,并且上位機可以隨時更改現場設備參數,從而實現遠程控制;為了滿足上述設計要求,這里使用 485 加 232 的方式通訊,由于 232 的傳輸距離有限,雖然 CAN 總線寬范圍的傳輸距離能夠彌補 232 這一缺點,且設計成本低,但考慮到現場的各種干擾信號比較復雜,一旦現場噪聲到達極值時可能會連同上位機一并損壞;而 485 則不同,它是一個半雙工通訊器件,其采用平衡壓差的方式傳輸數據,使得數據線上的衰減和干擾都大大降低,從而加大了傳輸距離,提高了抗干擾能力,故在這里又加了一層 485 的通訊,不僅使現場和上位機有效地隔離,而且進一步加大了數據傳輸的距離。
3 軟件設計
智能 CAN 總線節點的軟件主要用來完成三項任務:一是溫度傳感器的采樣;二是現場節點將數據傳送給主控節點,由主控節點將數據處理之后送給上位機顯示;三是主控節點隨時準備接收上位機傳來的參數,并通過 CAN 總線發給現場節點修改相關參數。主控節點的流程如圖 2。
圖2 主控節點流程圖
3.1 溫度采樣系統軟件設計
該系統,主要操作包括高低溫報警數據的寫入、溫度數據的讀取、數據處理、碼制轉換以及數碼顯示等幾部分;對 DS18B20 處理時要注意以下幾點:①每次讀寫之前要復位;②收到信號后等待 16 ~ 60 μs 后發出 60 ~ 240 μs 的存在低脈沖,主 CPU 收到此信號后表示復位成功;③緊接著依次發送一條 ROM 指令、RAM 指令,這樣才能對 DS18B20 進行正確操作。
3.2 CAN通訊控制器初始化
CAN 初始化主要是設置 SJA1000 的參數。需要初始化的 CAN 控制寄存器有:模式寄存器、時鐘分頻寄存器、接收代碼寄存器、輸出控制寄存器等。SJA1000 的初始化程序如下:
3.3 LCD顯示及串口發送接收軟件設計
液晶 YJD12864 的初始化程序流程圖如圖 3 所示。
在這里需要說明一下,上位機給主控板發數據時,當發送的第1個數據是字符“$”,最后1個數據是字符“*”時,主控板才認為接收到的是有效數據,否則,主控板不對接收到的數據進行處理;用發送的第 2 個字符來區分要發送的數據是送給哪一個現場節點的,字符“A” 表示現場節點 1,字符“B”表示現場節點 2,字符“C”表示現場節點 3;第 3 ~ 6 個字符是要傳送的高低溫報警值,高溫在前,低溫在后。
4 實驗結果分析
為了驗證設計系統的穩定性和準確性,對系統顯示模塊、測溫模塊、CAN 總線模塊及串口通信進行調試。調試完畢后,我們用設計的測溫系統在實驗室不同時間段不同地點采集十組數據,其中上午測試五組,下午測試五組,除了測溫方式不同,其他因素全部相同,具體數據如表 1 所示。
由表可知,系統對照值與測量值,最大偏差小于0.2,系統測溫方案的可靠性較強。
5 結語
本文利用紅外輻射測溫的原理,計了一種基于 CAN 總線和 DS18B20 為傳感器的多點紅外測溫系統,硬件電路由單片機 STC89C52、CAN 控制器、測溫芯片 DS18B20、LCD、LED、串行通訊口、復位電路等幾部分組成。基于 CAN 總線的多點紅外測溫系統具有測溫范圍廣、精度高、環境適應能力強等特點。該系統通過 CAN 適配器與計算機連接,可以方便地構成分布式測控系統。實驗表明,該系統不僅具有高精度溫度測控功能,而且通過 CAN 總線實現對多個地區溫度進行集中監控,具有測溫范圍廣、精度高、環境適應能力強等特點。
參考文獻:
[1] 王奧運,范冰新,潘文強等.基于CAN總線的遠程溫度采集系統[J].山西電子技術,2015(3)19-21.
[2] 湯鍇杰,栗燦,王迪等.基于DSB18B20的數字式溫度采集報警系統設[J].傳感器與微系統,2014,33(3):99-102.
[3] 周鵬.基于STC89C52單片機的溫度檢測系統設計[J].現代電子技術,2012,35(22):10-13.
[4] 楊盛泉,劉海泉,劉白林.ZigBee與RS485混合網絡的糧情監控系統的研究[J].西安工業大學學報,2016,36(9):749-756.
[5] 楊博雄,倪玉華.無線傳感網絡[M].北京:人民郵電出版社,2015.
(注:本文轉載自《電子產品世界》2022年7月期)
評論