1 引言
21世紀是嵌入式計算系統時代,人們日常生活和工作中所接觸的儀器與設備中,都將嵌入具有強大計算能力的微處理器。嵌入式系統是任意包含一個可編程計算機的設備,但是這個設備不是作為通用計算機而設計的。即嵌入式計算系統是嵌入在其他設備中,起智能控制作用的專用計算機系統。一臺通用個人電腦不能稱為嵌入式計算系統,盡管有時會把它嵌入到某些設備中,而一臺包含有微處理器的打印機、數碼相機就可以算嵌入式計算系統。嵌入式計算系統已經廣泛地應用到工業控制設備系統、信息家電、智能家庭設備等眾多領域中。隨著因特網的迅速發展,Web應用程序的應用也越來越廣泛,它廣泛地用于各種監控系統、通信設備等領域。嵌入式系統日益與Internet技術和 WWW技術結合起來發展為嵌入式Web或嵌入式Internet技術。嵌入式設備與Internet的結合將代表著嵌入式技術的真正未來。下文介紹一種嵌入式智能家庭遠程監控系統,它是在Microchip公司提供硬件的基礎,在功能實現上獨立完成了TCP/IP協議、HTTP協議的編寫,并在此基礎上加載了實際的應用。
2 HTTP協議
HTTP是超文本傳輸協議的縮寫,用于傳送WWW方式的數據。HTTP協議采用了請求/響應模型。客戶端向服務器發送一個請求,請求頭包含請求的方法、URI、協議版本、以及包含請求修飾符、客戶信息和內容類似于MIME的消息結構。服務器以一個狀態行作為響應,相應的內容包括消息協議的版本,成功或者錯誤編碼加上包含服務器信息、實體元信息以及可能的實體內容。通常HTTP消息包括客戶機向服務器的請求消息和服務器向客戶機的響應消息。這兩種類型的消息由一個起始行,一個或者多個頭域,一個頭域結束的空行和可選的消息體組成。在Internet上,HTTP通訊通常發生在TCP/IP連接之上。缺省端口是TCP80,但其它的端口也是可用的。但這并不預示著HTTP協議在Internet或其它網絡的其它協議之上才能完成。HTTP只預示著一個可靠的傳輸。基于HTTP協議的客戶/服務器模式的信息交換過程,它分四個過程,建立連接、發送請求信息、發送響應信息、關閉連接。WWW服務器運行時,一直在TCP80端口監聽,等待連接的出現。
3 嵌入式遠程監控系統AllLightSYS的設計與實現
3.1 功能概要
這里所提及的系統,它的芯片類型是由Microchip公司提供的PIC18F6722。該機器是通過AllLight System和Internet相連,從而對住所內的電器進行遠程控制的Interface單元。它是通過Modem,Rote連接到Internet,使用手機的WEB瀏覽器訪問AllLight系統來遠程控制空調、電燈等電器的開和關,只要在手機的WEB瀏覽器上輸入該系統的URL后,在該登陸頁面上輸入遠程操作的AllLight的ControlUnit的編號,從而對登錄WEB I/F UNIT的用戶進行認證,經過認證的用戶可以繼續,認證不通過的轉到認證錯誤畫面。同時可以啟動該系統的防盜監視功能時,當有入侵者打開被監視的電器設備時,就可以向用戶手機(計算機終端)發送郵件進行提醒。這里最多可以控制的AllLightControlUnit數是32臺。 (如圖)
在手機的WEB瀏覽器上輸入WEB I/F UNIT的URL后,為了防止非法登錄,一旦用戶登錄3次失敗以后,外部的登錄將失效,WEB I/F UNIT將通過HTTP協議向AllLight服務器發送非法登錄的警告信號。警告信息中包含了WEB I/F UNIT的MAC地址(為了和用戶的郵件地址關聯)。AllLight專用服務器根據WEB I/F UNIT傳送警告信息中的MAC地址數據,將警告郵件發送到與MAC對應的用戶手機上。外部登錄的失效解除,是通過WEB I/F UNIT的外部登錄無效解除按鈕來實行的。
該系統還可以對和WEB I/F UNIT直接相連的AllLight Control Unit(Local Port連接)的回路進行監視。監視回路和檢測狀態(ON/OFF)是通過在WEBPAGE設定的,根據設定的內容對回路監視。如果是檢測到防盜信息,向AllLight專用服務器發送警告信號,AllLight專用服務器向用戶發送郵件。防盜監視機能的開和關是通過手機登陸頁面中的一個功能鍵來控制的。通過“外部接點”,可以對WEB I/F UNIT的防盜監視機能進行設定。因為只能在屋內通過開關解除防盜監視機能,回路狀態上的“有入侵者”通過回路狀態和設定的數據(監視回路,監視狀態)是否一致來判斷。回路不一致的情況下,在一定時間內,如果沒有解除“防盜監視機能”,判斷為“有入侵者”;如果在這段時間內,解除了“防盜監視機能”,判斷為“無入侵者”。上述的“一定時間”,是可以設定的數據。另外,當通過外部接點打開“防盜監視機能”時,為了避免屋內操作電器的誤判為“有入侵者”,設計了延時。
另外,在AllLightSystem設計了和PC機的Interface。和計算機的Interface是通過Ethernet實現的。將AllLightSystem的通信協議數據轉換成計算機使用的通信協議。只能在Local內使用。計算機和WEB I/F UNIT是靠Socket進行通信的。在WEB I/F UNIT中封裝Sokect的通信服務,連接端口通過設定機能設定。計算機發出連接請求后,建立連接。連接建立后,如果Sokect存在,進行以下處理。如果是從AllLightSystem發來數據包,收到的數據包加上TCP協議的包頭,向計算機發送。如果是從計算機發來的數據包,從收到的數據包(TCP數據包)中取出AllLight數據包,向AllLightSystem發送AllLight數據包。
通過外部接點(AllLight的配套機器:SX)的操作,在AllLightSystem的管理下,可以將電燈,空調等電器全關閉。
3.2 軟件實現
軟件構成圖
HTTP服務處理
接收從手機、計算機發送過來的HTTP數據包,通過HTTP服務將HTTP數據解析。將接收到的HTTP請求解析,根據請求的內容(WEBPAGE請求或CGI請求),發送WEBPAGE的內容或進行CGI處理。生成客戶端請求的WEBPAGE,將該WEBPAGE送到客戶端。如果,設定模式的數據限制了該客戶端請求的WEBPAGE,將錯誤頁面發送到客戶端。如果外部登錄FLAG是有效的,進行HTTP協議解析;如果外部登錄FLAG是無效的,為了禁止從Internet的登陸,檢查HTTP請求的IP協議的發包IP和WEB I/F UNIT的IP,子網掩碼是否是同一個網段,如果是同一個網段,進行HTTP協議解析,不是同網段,返回錯誤頁面。根據HTTP請求的CGI種類可以進行各種請求,例如,進行用戶認證處理是通過手機、計算機實行用戶認證,和登錄在WEB I/F UNIT上的內容進行一致性檢查。(用戶ID,PASSWORD)如果一致則認證失敗計數=0,將“主菜單”畫面的HTTP數據發送到客戶端。如果不一致則認證失敗計數+1,“登錄失敗”畫面的HTTP數據發送到客戶端。如果連續登錄3次不一致,外部登錄無效。進行防盜監視設定處理是將防盜監視機能FLAG設定成有效?無效,控制SL的LED(有效:紅燈ON,無效:綠燈ON),更新“主菜單”畫面的防盜監視狀態。處理后,將“主菜單”畫面的HTTP送到客戶端。
這里需要說明的是,由于WEB I/F UNIT的GlobalIP地址是動態分配的,所以必須構建AllLight的專用服務器,并且在該服務器上將WEB I/F UNIT的GlobalIP登錄。GlobalIP的登錄需要定期執行,在AllLight專用服務器上,是將WEB I/F UNIT的IP地址和MAC地址綁定的,因此,WEB I/F UNIT必須將自己的MAC地址通過HTTP協議傳送到AllLight專用服務器上。
AllLight響應的接收處理
通過PIC的UART機能,接收AllLightSystem發出的數據包。只響應AllLight ControlUnit發出的數據。(其它數據忽略。)如果遠程操作機能FLAG,防盜監視機能FLAG有效,根據接收到的數據更新WEB I/F UNIT的回路狀態數據。如果PC I/F機能FLAG有效,由于發送的數據是有AllLight協議的信息,為了使接受的數據能夠進行PC I/F處理,除去AllLight協議的報文頭。
AllLight指令發送處理
遠程操作機能如果FLAG有效,實行有效回路檢查。有效回路設定數據Check,如果指令控制的回路遠程操作有效,實行指令發送處理。根據手機發出的要求,將“ON”,“OFF”指令轉換成AllLight協議數據發送。如果是通過PC I/F處理,去掉TCP數據的報頭,將取出的數據加上AllLight協議的報頭,發送數據包。
4 結論
本文介紹了一個基于對嵌入式Web技術的家庭遠程操作監控系統的設計與實現,主要實現通過手機或電腦對自己家用電器進行監控和遠程操作,極大地保證了家庭的安全,也方便了人們的生活。本文作者的創新點就是:服務器的設計基于嵌入式WEB技術,支持動態IP,可以直接進入以太網,用戶無需使用專用的操作系統和軟件,可以直接通過瀏覽器進行操作,通過HTTP與嵌入式WEB進行通信。通過這次項目的完成,相信隨著網絡監控技術的發展,基于嵌入式WEB的遠程操作系統必將有良好的發展前景。