王建珍


本文給出了一種基于RS-485總線的遠程溫度控制系統的設計方法,不僅可以在本地顯示溫度測量值,還能通過RS-485總線把測量值發送給主機端,實現遠程通信。
【關鍵詞】單片機 溫度 RS-485總線
在倉庫管理、蔬菜大棚等行業,往往需要對各點溫度進行測量和控制,而傳統的用溫度計逐一測量的方法存在測量誤差大、隨機性強及效率低下的缺點。所以,有必要設計一個高效、高精度、使用方便的溫度控制系統。本文提出了一種遠程溫控系統,該系統能夠對重要數據進行保存,在主機端顯示當前時間,設定溫度上限值并發送給從機,各從機通過溫度傳感器自動測出當前溫度并發送給主機,當溫度超過上限值時,通過蜂鳴器報警并啟動相應的風扇進行降溫。
1 系統總體設計
如圖1所示,遠程溫控系統由主機端、RS-485總線和各個從機端組成。主機端可置于主控室,各個從機端可置于需測量溫度的各個點,如各倉庫。本文以兩個測量點為例說明。
主機端包括主機、按鍵鍵盤、液晶LCD2002、繼電器1、繼電器2、風扇1、風扇2、時鐘芯片DS1302、存儲芯片AT24C02及總線接口MAX487組成。其主機采用單片機AT89C52,通過按鍵鍵盤設置溫度上限值和時間,將設置的溫度上限值發送給從機端,接收從機端發來的當前溫度測量值,如果從機1所在測量點當前溫度測量值超出上限值時,閉合繼電器1,啟動風扇1。類似地,如果從機2所在測量點當前溫度測量值超出上限值時,閉合繼電器2,啟動風扇2。
從機端由從機、液晶LCD1602、溫度傳感器DS18B20及總線接口MAX487等組成。從機也采用單片機AT89C52,接收主控機系統發來的溫度上限值,通過溫度傳感器DS18B20測出當前溫度顯示在液晶LCD1602上并發送給主機。
主機和從機均采用AT89C52單片機,AT89C52有32個I/O口,內含8kB的可反復擦寫的Flash只讀程序存儲器(ROM)和256B的隨機存取數據存儲器(RAM)。單片機晶振頻率設為11.0592MHZ。主機端采用查詢的方式,從機端采用中斷方式。
主機端與從機端通過RS-485總線進行通信。RS-485總線工作方式為半雙工方式。網絡的傳輸線是雙絞線。
RS-485接口芯片選用Maxim公司的MAX487,這是一款半雙工收發器件。在某一時刻,一個發送,一個接收。采用差分信號進行數據傳輸,在同一個RS-485總線系統中,其發送器只能為一個,接收器最多可達32個,最大傳輸速率為10Mbps,最大傳輸距離為400英尺。
2 硬件電路設計
2.1 主機端
如圖2所示,主機端電路主要由單片機、液晶顯示模塊、按鍵鍵盤、蜂鳴器、時鐘DS1302、存儲器AT24C02、繼電器等組成。液晶顯示模塊用于顯示當前時間和溫度值。按鍵鍵盤由SET、UP、DOWN和OUT四個按鍵組成,這四個按鍵一端分別和單片機的P1.4、P1.5、P1.6、P1.7相連,另一端接地。繼電器RL1、RL2分別和單片機的P2.0、P2.1相連(圖2中未畫出RL2),接插件J1連接風扇電路。當主機接收到從機1發來的溫度測量值大于設定的溫度上限值時,RL1線圈得電,啟動相應的風扇1電路,以達到降溫的目的。類似地,當主機接收到從機2發來的溫度測量值大于設定的溫度上限值時,RL2線圈得電,啟動相應的風扇2電路。
2.2 從機端
如圖3所示,從機端包括單片機、溫度傳感器DS18B20、液晶顯示模塊、MAX487和蜂鳴器組成。單片機AT89C52的RXD與TXD分別與MAX487的RO與DI相連,進行串行數據通信。P3.4與P3.5分別與MAX487的/RE、DE相連,以控制接收器與驅動器使能。采用串行中斷方式。從機通過DS18B20進行溫度采集,然后通過LCD1602進行顯示,主機發來的溫度上限值顯示于第一行,從機所在位置的溫度值顯示于第二行。
3 軟件設計
3.1 RS-485總線通信協議
(1)主機把查詢地址發送給從機。
(2)從機接收查詢地址,并與本從機地址進行比較,如兩地址相同則發送從機地址,采集溫度十位、個位、小數位,并進行累加和校驗。
(3)主機接收從機發來的數據。
(4)主機發送溫度上限值十位、個位。
(5)從機接收溫度上限值命令。
(6)主機如果未查詢完所有的從機,就返回(1)繼續查詢下一個從機
(7)通信速率為9600bps,數據幀格式:1位起始位,9位數據位,1位停止位,即串行口工作方式為方式3。
(8)主機發送從機地址和溫度上限值的校驗方式均為偶校驗(每幀數據的第8位即D7為偶校驗位),主機接收從機發送的匹配地址和采集到的溫度值時的校驗方式為累加和校驗。
(9)從機接收主機發送的從機地址和溫度上限值時的校驗方式為偶校驗((每幀數據的第8位即D7為偶校驗位),從機發送匹配地址和采集到的溫度值時的校驗方式為累加和校驗。
3.2 主機端程序設計
主機端程序包括主程序、液晶顯示功能程序、DS1302實時時鐘功能子程序、AT24C02掉電存儲功能子程序、蜂鳴器報警功能子程序、繼電器輸出控制子程序、按鍵鍵盤子程序及主機通信子程序。其主程序流程如圖4所示。
首先,進行液晶初始化、時鐘芯片初始化、串行口和T0初始化,然后判斷狀態標志是否為0,如不為0,則進入時間調整模式;如為0,則進入正常工作模式;當進入正常工作狀態時,先調液晶顯示溫度和時間函數,使顯示溫度和時間,再調鍵掃描函數,掃描各功能鍵,設定溫度上限值。然后調串行通信函數,串行發送溫度上限值,最后對接收到的溫度測量值進行判斷,如從機1的溫度測量值大于溫度上限值,則蜂鳴器響1聲報警;如從機2的溫度測量值大于溫度上限值,則蜂鳴器響2聲報警。
主機通信子程序流程如圖5所示。
3.3 從機端程序設計
從機端程序包括從機主程序和從機通信中斷服務子程序。從機主程序流程如圖6所示。
從機通信中斷服務子程序流程如圖7所示。
4 結束語
基于RS485總線的遠程溫度控制系統具有靈敏度高、精度高、體積小、功耗低的特點。系統結構簡單,開發成本低,具有較高的性價比。
參考文獻
[1]張志良.單片機原理與控制技術[M].北京:機械工業出版社,2008.
[2]甕嘉民等.單片機典型系統設計與制作實例解析[M].北京:電子工業出版社,2014.
作者單位
蘇州信息職業技術學院 江蘇省蘇州市 215200