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