多點溫度監(jiān)控系統(tǒng)的設計
目前許多場合都要對溫度進行控制。如倉庫,不同的儲藏室儲存物品的溫度都不同;再比如醫(yī)院,為了使病人的治療效果最好,需要對每一個病房的溫度進行控制。該文研究的多點溫度監(jiān)控系統(tǒng)能夠對多個位置的溫度進行設置、檢測,根據(jù)溫度設置值與檢測值來控制調溫設備運轉,調節(jié)溫度。
l 系統(tǒng)的總體結構及功能
本系統(tǒng)的總體結構框圖如圖1所示,為了滿足多通道數(shù)據(jù)采集和處理,系統(tǒng)采用了一臺上位機和多個下位機的集總式結構。上位機采用AT89S51單片機,下位機采用AT89C2051單片機。上位機與下位機之間采用RS 485總線通信。其中上位機系統(tǒng)配置液晶顯示屏、按鍵。按鍵用于調整各個點的預置溫度和系統(tǒng)時間,查詢各個點的預置溫度值、實際溫度值以及調溫設備運行情況,輸入下位機的控制信息。液晶顯示屏用于顯示系統(tǒng)時間,以及各點的預置溫度值、實際溫度值和調溫設備運行情況,如1 min內沒有任何操作,則液晶顯示屏上開始循環(huán)顯示各個點的實際溫度值、預置溫度值以及調溫設備運轉情況,每一個點的數(shù)據(jù)在液晶屏上顯示的時間是8 s。下位機負責溫度采集和控制調溫設備運轉,溫度傳感器采用DSl8820。上位機首先將預置溫度值發(fā)送到下位機,下位機將實際溫度與預置溫度進行比較后輸出調溫設備控制信號,并將實際溫度與調溫設備運轉狀態(tài)發(fā)送到上位機。
2 硬件電路設計
2.1 下位機電路設計
下位機電路主要由三部分構成:溫度采集電路、RS 485總線接口電路、調溫設備的控制電路,其電路原理圖如圖2所示。
2.1.1 溫度采集電路
溫度傳感器采用DSl8820,其是一種單總線智能型溫度傳感器,只有三線接口,分別為地線、數(shù)據(jù)線、電源線。DSl8820輸出信號為數(shù)字信號,處理器與DSl8820通過數(shù)據(jù)線來完成雙向通信,因此采用DSl8820使得電路十分簡單。溫度變換功率可以來源于外電源,也可以來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DSl8820供電。DSl8820的電壓范圍為+3.O~+5.5 V,測溫范圍為一55~+125℃,固有的測溫分辨率為O.5℃,最高精度可達0.067 5℃,最大的轉換時間為200 ms。一條總線上面可以掛接多個Dsl8820實現(xiàn)多點測溫。本系統(tǒng)中每臺下位機只接一個DSl8820。
采用單片機的P3.7口與DS18820進行通信,采集溫度信號,由于其是雙向通信,內部結構是開漏,所以在總線上要加一個10。kΩ上拉電阻。
2.1.2 RS 485總線接口電路
本系統(tǒng)上位機與下位機之間采用RS 485總線通信,其通信距離可達1 200 m。總線驅動芯片采用MAX485,RO接單片機的RXD,DI接TXD,MAX485芯片的發(fā)送和接收功能轉換由芯片的RE,DE端控制。DE=1時,MAX485處于發(fā)送狀態(tài);RE=O,DE=0時,芯片處于接收狀態(tài)。將RE,DE接在單片機的一根口線P3.4上。
在上電復位時,為了避免分機咬總線的情況,總線上的各分機應處于接收狀態(tài)。而在上電復位時,單片機各端口處于高電平狀態(tài),硬件電路穩(wěn)定也需要一定的時間,則可能向總線發(fā)送信息,為了避免這種情況,將P3.4口接一個74HCl4反相器,使MAX485上電時處于接收狀態(tài)。另外在數(shù)據(jù)傳輸之前,先要通過一個低電平起始位實現(xiàn)握手,給R0外接10 kΩ上拉電阻,防止干擾信號誤觸發(fā)產生負跳變,使單片機進入接收狀態(tài)??偩€上面掛接多個分機,其中任何一只芯片故障就可能將總線“拉死”,因此在MAX485的A,B口線與總線之間各串接一只20Ω的電阻實現(xiàn)總線隔離。如果是最后一臺分機,則在差分端口A,B之間接120 Ω的平衡匹配電阻,減少由于不匹配而引起的反射,并且能夠吸收噪聲,抑止干擾,保證通信質量。注意不能在中間分機節(jié)點上并接平衡匹配電阻。
2.1.3 輸出控制電路
上位機向下位機發(fā)送命令和預置溫度,下位機接收到之后,解析命令,并將預置溫度與實際溫度比較,根據(jù)命令和比較結果,利用P3.5口控制調溫設備。當P3.5輸出低電平時,U1導通發(fā)光,使晶體管導通,從而T1導通,驅動繼電器K工作,使調溫設備導通工作。當P3.5為高電平時,U1不導通,晶體管不導通,T1也截止,繼電器不通電,調溫設備不工作。
2.2 上位機電路
上位機電路包括RS 485總線接口電路、鍵盤電路和液晶顯示電路。其中總線接口電路與下位機總線接口電路基本一致。其電路原理圖如圖3所示。下面介紹鍵盤電路和顯示電路。
2.2.1 鍵盤電路
上位機電路中提供6個按鍵用于溫度設置、溫度查詢、系統(tǒng)時間設置、工作/待機設置。它們是“ON/OFF”鍵、“+”鍵、“—”鍵、“SET”鍵、“ENQ”鍵、“TIME”鍵,分別與AT89S51的P2.0,P2.1,P2.2,P2.3,P2.4,P2.5相連?!癝IET”鍵用于選擇下位機,之后可按“ON/OFF”鍵使對應的下位機工作/待機,也可按“+”,“一”鍵給該分機設置預置溫度?!癊NQ”鍵用于查詢下位機的預置溫度、實際溫度值和調溫設備運轉狀態(tài)。設置系統(tǒng)時間需先按“TIME”鍵選擇時或分,然后利用“+”,“一”鍵設置系統(tǒng)時間。
2.2.2 顯示電路
上位機系統(tǒng)采用16×2字符型液晶模組(LCM),其為按鍵操作提供可視化依據(jù),內部集成了LCD控制器、LCD驅動器、LCD顯示裝置。LCM與單片機的接口電路比較簡單,單片機的P1口接LCM的數(shù)據(jù)總線,P3.5,P3.6,P3.7用于控制LCM。LCM的第一行顯示系統(tǒng)時間,第二行顯示分機的設置溫度、實際溫度和工作狀態(tài)。如果在1 m內沒有任何操作,則液晶顯示屏上開始循環(huán)顯示各個點的實際溫度值、預置溫度值以及工作狀態(tài),每一個點的數(shù)據(jù)在液晶屏上顯示的時間是8 s。
3 RS 485通信協(xié)議
為實現(xiàn)上位機與多臺下位機通信可靠穩(wěn)定,上位機與下位機通信波特率都為9 600 b/s,通信方式均為串行工作方式3,每幀通信數(shù)據(jù)包括1個起始位,1個停止位,8個數(shù)據(jù)位,1個奇校驗位。通信模式采用主/從方式,上位機為主機,下位機為從機,主機地址為1,從機地址是2,3,4,…;主機與從機之間采用一問一答方式,從機之間不能相互通信。每個上行/下行的數(shù)據(jù)包的字節(jié)個數(shù)都是一樣的,從機收到數(shù)據(jù)包后向主機回復一個數(shù)據(jù)包。每個數(shù)據(jù)包長度為4 B,下行數(shù)據(jù)包格式:地址信息(1 B)、命令信息(1 B)、溫度設置值(1 B)、檢驗碼(1 B);上行數(shù)據(jù)包格式:主機地址信息(1 B)、命令應答信息(1 B)、實測溫度值(1 B)、檢驗碼(1 B)。命令信息和命令應答信息就是指從機的工作狀態(tài)。
主機采用輪詢方式訪問各從機,在發(fā)出指令后,主機進入查詢狀態(tài),等待從機應答。從機不斷查詢總線,如主機訪問地址與從機地址相符,并且校驗通過,則執(zhí)行指令,并保存設置溫度值,然后將相關信息以上行數(shù)據(jù)包格式發(fā)回主機。如不是本機地址或校驗碼錯誤,則丟棄指令及數(shù)據(jù)。傳輸過程中的誤碼校驗采用校驗和的方式,即先將要發(fā)送的數(shù)據(jù)包的所有字節(jié)相加,然后截短到一個字節(jié)長度。
4 系統(tǒng)軟件設計
4.1 下位機程序設計
下位機程序主要包括DSl8820傳感器溫度采集子程序、串行通信子程序、輸出控制子程序。主程序循環(huán)調用溫度采集子程序和輸出控制子程序,利用串行中斷來接收上位機發(fā)送的信息并回復主機(上位機),接收數(shù)據(jù)包的長度是4 B,發(fā)送數(shù)據(jù)包的長度也是4 B。其串行中斷接收發(fā)送程序流程圖如圖4所示。
4.2 上位機程序設計
上位機程序主要包括鍵盤掃描子程序、串行通信子程序、液晶顯示子程序。
利用T0產生50 ms定時中斷來進行時間換算、實時更新液晶顯示屏上的信息;在主程序中利用循環(huán)來查詢按鍵、向下位機發(fā)送數(shù)據(jù);利用串行中斷來接收下位機的回復數(shù)據(jù)。上位機接收數(shù)據(jù)過程與下位機接收數(shù)據(jù)過程一樣,其主程序流程圖如圖5所示。系統(tǒng)采用一問一答的通信方式,上位機是主機,在向從機(下位機)發(fā)送完數(shù)據(jù)之后要調用延時程序等待從機的回復。
5 結 語
該系統(tǒng)能夠實現(xiàn)多點溫度檢測控制,操作方便,配置簡單,有效地節(jié)省了人力物力,實現(xiàn)自動化,具有通用性,可用于多種場合,具有很好的實用價值。