摘 要: 本文根據(jù)監(jiān)控系統(tǒng)的發(fā)展現(xiàn)狀,提出了一個基于以太網(wǎng)的嵌入式數(shù)字家庭監(jiān)控系統(tǒng)的設計方案,并初步比較完整的完成了該監(jiān)控系統(tǒng)的開發(fā)。系統(tǒng)采用嵌入式現(xiàn)場監(jiān)控器進行數(shù)據(jù)采集,現(xiàn)場監(jiān)控器由數(shù)據(jù)采集卡和網(wǎng)絡通訊卡組成,現(xiàn)場控制卡負責接收監(jiān)控中心發(fā)出的控制命令,它們都是由一塊51單片機控制,其軟件開發(fā)都是使用了C51和51匯編程序。
關(guān)鍵字: 監(jiān)控系統(tǒng);嵌入式系統(tǒng);單片機
1 引言
隨著科技的進步及對生活質(zhì)量要求的不斷提高,信息技術(shù)和網(wǎng)絡化技術(shù)的發(fā)展,為家用電器居家環(huán)境集中控制和遠程遙控提供了可能。將信息技術(shù)與家電控制技術(shù)相融合,在很大程度上實現(xiàn)家庭生活的信息化和自動化,滿足人們舒適、快節(jié)奏的生活需要,當家庭采用了監(jiān)控系統(tǒng)之后,各種電子設備就能夠在幾乎無需過問的情況下進行操作。鑒于這種數(shù)字化家庭的發(fā)展趨勢,遠程監(jiān)控作為一種理想的有效的而且快捷方便的實現(xiàn)途徑己被廣泛采用。
[align=center]
圖1 現(xiàn)場控制卡的硬件框圖[/align]
2 系統(tǒng)總體設計
本系統(tǒng)將采用上、下位機的方式組建監(jiān)控系統(tǒng)。下位機工作于監(jiān)控現(xiàn)場,采用51系列單片機控制;上位機則用于監(jiān)控中心,使用一臺PC機。單片機通過各種傳感器,采集數(shù)據(jù),通過以太網(wǎng)卡控制芯片實現(xiàn)的網(wǎng)絡接口將監(jiān)控數(shù)據(jù)傳給異地的PC機,PC機的遠程監(jiān)控端接收監(jiān)控信息并存儲,然后進行相應處理并發(fā)出相應的報警信息。同時,PC機也可以向單片機發(fā)送指令,控制單片機的監(jiān)控行為。控制命令發(fā)出去以后,負責現(xiàn)場控制的單片機接受命令,經(jīng)過信息處理以后再執(zhí)行。
3 監(jiān)控系統(tǒng)硬件設計
對于現(xiàn)場監(jiān)控器和現(xiàn)場控制器都是分別由各自的單片機來組成,現(xiàn)場控制器的硬件設計與現(xiàn)場監(jiān)控器硬件設計一樣,都是包含了單片機最小系統(tǒng)的擴展,再加上各自的功能模塊。圖1是現(xiàn)場控制卡的硬件框圖。
系統(tǒng)硬件設計主要包括兩部分內(nèi)容:一是單片機系統(tǒng)的擴展部分設計,主要是系統(tǒng)存儲器的擴展,存儲器擴展指EPROM, RAM的擴展等。二是功能模塊的設計,包括通信功能模塊、電機驅(qū)動模塊。
3.1 單片機系統(tǒng)的擴展
3.1.1 系統(tǒng)存儲器的擴展
本系統(tǒng)使用的單片機為78E58B單片機。78E58B是一款以8051為核心的單片機,它具有集成度高、指令功能強、運算速度快、I/O接口功能強、可靠性高等優(yōu)點,包含32K字節(jié)的片內(nèi)Flash電擦寫程序存儲器:4K字節(jié)附加ROM; 512字節(jié)片內(nèi)RAM;三個16位定時器/計數(shù)器;一個串口。該芯片還包括8個中斷源,2個中斷優(yōu)先級的中斷資源。32K字節(jié)的程序存儲器對于系統(tǒng)來說己經(jīng)足夠了,所以沒有擴展外部程序存儲器,所以在硬件框圖中不必添加外部ROM,節(jié)省了系統(tǒng)開銷,還可以省卻部分電路、連線,減少了干擾源。然而,78E58B只有512字節(jié)的片內(nèi)RAM遠遠不能滿足系統(tǒng)功能的要求,故采用了8K字節(jié)的靜態(tài)RAM 6264作為外部數(shù)據(jù)存儲器。
3.1.2 復位電路設計
本系統(tǒng)的復位電路采用了電平式開關(guān)復位與上電復位,另外復位引腳還與網(wǎng)絡通訊卡上MCU的一個I/O口連接。使用這種復位電路,當該MCU中的程序在運行過程中出現(xiàn)問題的時候,就可以通過網(wǎng)絡通訊卡上的MCU使之復位,重新恢復正常工作。雖然這種復位電路干擾易串入復位端,但是一般不會造成單片機的錯誤復位。復位電路如圖所示,但要注意的是這種復位電路要與手動的開關(guān)復位電路隔離,以免復位功能失效,甚至短路。
3.2 接口實現(xiàn)
3.2.1 RS232異步串行通信單元
本系統(tǒng)采用RS232最簡單的全雙工通信方式,只用了三根線,即串行接收RXD,串行發(fā)送TXD和接地線GND。將“串行發(fā)送”和“串行接收”交叉連接,地線直接相連,其余信號線都不用。用軟件來實現(xiàn)通信的“握手”、空閑檢測等功能。并且選用MAX232串口通信信號轉(zhuǎn)換芯片來實現(xiàn)RS232與TTL的電平和正負邏輯電平的轉(zhuǎn)換。通過MAX232的TTL和RS-232的輸入/輸出端口,自動的調(diào)節(jié)了單片機的TTL電平信號和RS-232的串口通信信號的電平匹配。
設計這部分硬件單元,主要是為了系統(tǒng)調(diào)試的需要。在調(diào)試階段,通過串行通信端口,向計算機輸出調(diào)試的結(jié)果,有利于觀察系統(tǒng)運行的狀態(tài)。另外一個目的是為了將來系統(tǒng)擴展的需要,可以方便的通過串行通信端口,向系統(tǒng)輸入必要的命令和信息。
3.2.2 單片機雙機并行互連的實現(xiàn)方法
實現(xiàn)現(xiàn)場控制卡和網(wǎng)絡通訊卡的連接實際上就是實現(xiàn)兩卡上單片機的互連。本來單片機帶有串口,利用串口進行互連通信非常方便,但是系統(tǒng)中的單片機的串口都要用于對外連接,所以單片機的串口就不能用做系統(tǒng)內(nèi)單片機之間的通信接口了。但是,單片機的并行端口也能相互連接來進行數(shù)據(jù)通信,因此就通過單片機的并行端口來實現(xiàn)現(xiàn)場控制卡和網(wǎng)絡通訊卡直接的互連。在本系統(tǒng)中,可根據(jù)不同的使用要求,來采用不同的并行連接方法。目前可用的連接方法包括以下三種:單向并行通信接口;主從并行通信接口;無主從雙向并行通信接口。
3.3 驅(qū)動電機電路
3.3.1 驅(qū)動電路
單片機本身具備一定的驅(qū)動能力,其I/O口的電流在l0m A左右,像驅(qū)動發(fā)光二極管之類的器件并不需要特殊的驅(qū)動電路,但是對于直流電機這類負載較大的器件,單片機無法為其提供較大的電流,尤其在直流電機剛啟動時,電機的啟動電流往往會達到其正常工作電流的數(shù)倍,所以,這一類的器件就需要專門的驅(qū)動電路完成對其的驅(qū)動,而單片機只是完成對其控制方面的工作。驅(qū)動電路的基本功能是要有足夠的電流驅(qū)動電機轉(zhuǎn)動。原理圖如圖3所示。
[align=center]
圖3 單片機驅(qū)動直流電機原理框圖[/align]
3.3.2 光耦合器
光耦合器是把發(fā)光器件和光敏器件組裝在一起,通過光線實現(xiàn)藕合,構(gòu)成電-光-電的轉(zhuǎn)換器件。光耦合器可用于較遠距離的信號隔離傳送。可以起到隔離兩個系統(tǒng)地線的作用,是兩個系統(tǒng)的電源相互獨立,消除地電位不同所產(chǎn)生的影響,具有很強的抑制噪聲干擾的能力。 還可以作為信號隔離轉(zhuǎn)換、脈沖系統(tǒng)間的電平匹配、強電與弱電之間隔離、高壓開關(guān)等。光耦合器的應用時系統(tǒng)具有較高的電氣隔離和抗干擾能力。
4 監(jiān)控系統(tǒng)軟件設計
4.1 現(xiàn)場控制卡的軟件開發(fā)
本系統(tǒng)的控制軟件就是用在C語言程序中嵌入用匯編語言開發(fā)的功能模塊的方法開發(fā)的。設計用到的工具是KEIL公司的MCS-51系列單片機集成開發(fā)環(huán)境。它的功能非常強大,實現(xiàn)從文本代碼編輯到生成可用于燒到目標ROM的二進制或者HEX格式的文件的所有功能。集合了文本編輯器、C語言編譯器、匯編編譯器、連接定位器、目標處理器模擬仿真器以及庫文件管理器等51開發(fā)工具套件。軟件開發(fā)采用項目管理方式,多個模塊(多個文件、放在一個項目當中,管理方便。
軟件的流程圖如圖4所示。
[align=center]
圖4 軟件流程圖[/align]
4.2 現(xiàn)場控制卡和網(wǎng)絡通訊卡間的通信
通過并口擴展,系統(tǒng)采用兩個8位并口分別用作數(shù)據(jù)的輸入與輸出,并采用一個8位并口用作聯(lián)絡信息的傳送,該并口的高4位和低4位分別用于聯(lián)絡信號的輸入和輸出。通信采用的是查詢法,通過查詢聯(lián)絡信息的狀態(tài)來指導完成整個通信過程。這些聯(lián)絡信息分別與系統(tǒng)內(nèi)的三種內(nèi)部通信相對應,包括配置信息的傳輸、控制信息的傳輸和環(huán)境信息的傳輸。
4.2.1 配置信息的傳輸
配置信息的傳輸主要是在系統(tǒng)剛啟動時進行,由網(wǎng)絡通訊卡發(fā)起。首先由網(wǎng)絡通訊卡將第一個字節(jié)的配置信息輸出到網(wǎng)絡通訊卡的輸出并口上,并同時輸出“發(fā)送配置信息”(0001)的聯(lián)絡信號。數(shù)據(jù)采集卡以一定的頻率掃描聯(lián)絡信號輸入口,收到“發(fā)送配置信息”的聯(lián)絡信號后,馬上讀取相應的數(shù)據(jù)輸入口,獲得第一個字節(jié)的配置信息,并發(fā)出“收到配置信息”(0010)的聯(lián)絡信號,完成第一個字節(jié)的傳送。接著,網(wǎng)絡通訊卡與現(xiàn)場控制卡繼續(xù)以幾乎相同的方法傳送第二個字節(jié)的配置信息,稍有不同的只是把聯(lián)絡信號“發(fā)送配置信息”和“收到配置信息”都按位取反,即第二次通信的聯(lián)絡信號變?yōu)椤鞍l(fā)送配置信息”(1110)和“收到配置信息”(1101),直到數(shù)據(jù)傳送完畢,雙方以“傳輸結(jié)束”(1111)的聯(lián)絡信息結(jié)束本次通信。通過這種方法,網(wǎng)絡通訊卡和現(xiàn)場控制卡只要分別輸出一次聯(lián)絡信號,就可以傳送一個字節(jié)的數(shù)據(jù),協(xié)議簡單,數(shù)據(jù)傳輸快捷。
4.2.2 控制信息的傳輸
控制信息的傳輸同樣是由網(wǎng)絡通訊卡發(fā)起的。當網(wǎng)絡通訊卡從數(shù)據(jù)采集卡上獲取到報警信息或是處于監(jiān)控中心的用戶有需求時,從上位機發(fā)送控制命令以后,網(wǎng)絡通訊卡將一個字節(jié)的控制信息輸出到相應的并口上,并通過其輸出聯(lián)絡線輸出“發(fā)送控制信息”(0100)的聯(lián)絡信息,現(xiàn)場控制卡收到“發(fā)送控制信息”的聯(lián)絡信息以后,馬上讀取相應的數(shù)據(jù),并發(fā)送“收到控制信息”(1000)?,F(xiàn)場控制卡收到該信號以后,以“傳輸結(jié)束(1111)”結(jié)束本次通訊。
4.2.3 環(huán)境信息的傳輸
環(huán)境信息的傳輸由網(wǎng)絡通訊卡發(fā)起,并不斷地循環(huán)進行。首先,網(wǎng)絡通訊卡將所要讀取環(huán)境信息的編號通過數(shù)據(jù)并口輸出,并輸出聯(lián)絡信號“環(huán)境信息查詢”(1100)。數(shù)據(jù)采集卡收到該信號后,通過數(shù)據(jù)輸入并口獲得網(wǎng)絡通訊卡要查詢的環(huán)境信息的通道編號,把相應的環(huán)境信息數(shù)據(jù)通過數(shù)據(jù)輸出并口輸出,同時輸出聯(lián)絡信號“環(huán)境信息送到”(1010)。網(wǎng)絡通訊卡收到該信號后,就可以繼續(xù)查詢下一個環(huán)境信息了。
4.3 監(jiān)控數(shù)據(jù)庫
目前用于數(shù)據(jù)庫開發(fā)的開發(fā)環(huán)境有很多,例如:Delphi, Visual Basic, PowerBuilder和SQL Server等。隨著Visual C++的數(shù)據(jù)庫開發(fā)功能的不斷加強,它作為一種方便易用的開發(fā)工具在實際開發(fā)中被廣泛應用。 本系統(tǒng)監(jiān)控數(shù)據(jù)庫設計便采用的是Visual C++,其界面包括系統(tǒng)登錄、軟件主界面、用戶信息管理和工作人員信息管理、環(huán)境信息和報警信息管理和監(jiān)控器配置信息管理。
5 本文作者創(chuàng)新點
本文實現(xiàn)了一整套比較完整的嵌入式監(jiān)控系統(tǒng)。文中介紹了整個系統(tǒng)的解決方案,現(xiàn)場控制卡的硬件設計、軟件設計,以及現(xiàn)場控制卡與網(wǎng)絡通訊卡之間的通信。本系統(tǒng)與一般監(jiān)控系統(tǒng)相比,主要特點是現(xiàn)場監(jiān)控設備能直接上網(wǎng),而系統(tǒng)又利用了Ethernet:作為監(jiān)控信息的網(wǎng)絡傳輸信道,并采用了廉價的51系列單片機作為現(xiàn)場監(jiān)控設備的MCU,以及使用了源代碼公開的μC/OS-Ⅱ?qū)崟r內(nèi)核最為現(xiàn)場監(jiān)控設備的軟件平臺,使系統(tǒng)具備了較高的性價比。
參考文獻:
[1] 楊武剛. 單片機典型模塊設計實例導航[M]. 人民郵電出版社,2004. 5
[2] 黃穎、張小飛. 網(wǎng)絡監(jiān)控系統(tǒng)的設計和實現(xiàn)[J]. 計算機工程與應用,2003. 22
[3] 黃樂天, 謝意. 實用高精度智能恒溫加熱器系統(tǒng)設計[J]. 2005, 10-1: 36-38
[4] 孫媛、王水清. 基于以太網(wǎng)嵌入式家庭監(jiān)控網(wǎng)絡系統(tǒng)的設計[J]. 江南大學學報(自然科學版)2003. 1
[5] 周文舉. 基于單片機紅外無線通信的抄表系統(tǒng)[J].微計算機信息, 2006,2-2 : 45-47、113