嵌入式智能家庭網(wǎng)關的軟件設計方案
智能家庭網(wǎng)關的實現(xiàn),PC機完全可以滿足要求。
雖然處理能力較強,但以PC 機為載體存在著一些的缺點,如成本昂貴,體積較大,不易移動等,所以用其當作硬件載體性價比太低。隨著現(xiàn)代電子技術的發(fā)展,嵌入式技術得到了空前的發(fā)展。本設計正是基于嵌入式系統(tǒng)進行設計的。
1 操作系統(tǒng)與開發(fā)工具
1.1 Windows CE
本系統(tǒng)的操作系統(tǒng)采用的是微軟公司的嵌入式Windows CE 5.0.
Windows CE 是一個典型的嵌入式操作系統(tǒng),它是微軟專門為信息設備、移動應用、消費類電子產(chǎn)品和嵌入式應用等非PC 領域設計的操作系統(tǒng)產(chǎn)品。開發(fā)人員可以利用豐富靈活的控件庫在Windows CE環(huán)境下為嵌入式應用建立各種專門的圖形用戶界面。
Windows CE 甚至還能支持諸如手寫體和聲音識別、動態(tài)影像、3D圖形等特殊應用。
Windows CE被設計成為一種高度模塊化的操作系統(tǒng),以適應不同的類型智能設備對于操作系統(tǒng)映像大小的不同要求,系統(tǒng)設計者可以根據(jù)設備的性質只選擇那些必要的模塊或模塊中的組件包含進操作系統(tǒng)映像,其中內核(Kernel)、圖形窗口事件子系統(tǒng)(GWES)、文件系統(tǒng)(Filesys)和通信(Communication)模塊是4個主要的模塊。
總之,Windows CE設計簡單靈活,是為適應嵌入式而推出的新型操作系統(tǒng),尤其友好的圖形界面正好迎合本設計的菜單界面開發(fā),成為本設計所采用的嵌入式操作系統(tǒng)。
1.2 Microsoft Visual Studio
本系統(tǒng)開發(fā)工具是Microsoft Visual Studio,采用的語言是C# .Microsoft Visual Studio 為Windows CE提供了可視化的開發(fā)環(huán)境。
Microsoft Visual Studio是微軟公司推出的開發(fā)環(huán)境。是目前流行的Windows 平臺應用程序開發(fā)環(huán)境NET Compact Framework 是微軟為移動智能設備開發(fā)的運行環(huán)境,同時提供調用本機API的能力。
.NET Compact Framework 為設備提供了強大的。NET Framework 編程平臺。它是。NET Framework完整版的一個子集。為了適應它所在設備本身的限制,.NET Compact Framework 大約實現(xiàn)了完整版框架30%的類和方法。
2 需求分析
2.1 需求分析
家庭網(wǎng)關的實際功能規(guī)劃應該根據(jù)用戶的實際需求展開,對于一般住戶,家中普遍具有水電表及各種電器等,因此這里主要針對這幾項,把系統(tǒng)在功能的實現(xiàn)分為以下幾大類:
(1) 設置:主要用于家庭網(wǎng)關本身的管理,以及增刪電器設備、修改遠程服務器的IP和端口等;(2) 電器:包含幾種具有代表性的家庭常用電器,如熱水器、空調、冰箱等;(3) 抄表:管理各種抄表系統(tǒng),如水表、電表、煤氣量表等。
2.2 界面需求分析
界面的設計要求滿足以下幾點:
(1) 界面美觀、簡潔、用戶界面友好,易于被用戶接受;(2) 對菜單采用分級方式管理,易于用戶使用;(3) 使用盡可能大的字體,不會出現(xiàn)誤單擊操作,良好的人機交流。
2.3 安全需求分析
系統(tǒng)在安全管理方面分以下幾點:
(1) 為了方便用戶,初次使用不需要密碼登錄;(2) 用戶可以根據(jù)需要是否設置密碼;(3) 根據(jù)需要可以對已經(jīng)設置的密碼進行修改和刪除。
3 家庭網(wǎng)關的軟件設計
嵌入式智能家庭網(wǎng)關的具體功能包括:
本地控制:用戶通過網(wǎng)關上的鍵盤和顯示屏,對家用設備進行現(xiàn)場控制。
遠程控制:遠程用戶可以通過Internet對家庭設備進行控制和查詢。
其系統(tǒng)結構圖如圖1 所示。

圖1 家庭網(wǎng)關應用結構圖
家庭網(wǎng)關對內連接了家庭網(wǎng)絡、信息家電、智能儀表、消防與安防設備等。針對不同模塊的特點,可以設計與家庭網(wǎng)關的不同接口。為了與現(xiàn)有設備的兼容及滿足各個組成部分的功能需求,與家庭網(wǎng)絡部分的連接采用RJ-45接口標準;信息家電的種類繁多,無法用統(tǒng)一的接口來互聯(lián),可以選擇信息開關或繼電器等配合紅外遙控器使用;水表、電表、煤氣表等智能儀表設備一般是每月一次查看且需要傳輸?shù)臄?shù)據(jù)量不大,所以可以RS-485 或CAN 總線這些較為簡單的總線接口標準;對于消防和安防設備,長期處于布防、監(jiān)控狀態(tài),且諸如視頻圖像對帶寬和速率要求比較嚴格,所以采用同軸電纜或光纖接入。
{$page$}
3.1 總體架構
主程序的流程圖如圖2 所示。上電開機后程序進入初始化(如判斷是否有預設密碼),在主窗體中有代表幾個不同類型的圖標,點擊不同的圖標按鈕可以進入相應的子菜單中,對子菜單進行操作。

圖2 主程序的流程圖
3.2 主窗體
主窗體要求簡單、直觀。主窗口只顯示分成的幾個類型及所需的操作按鈕。為了更直觀的表示各個類型,分別使用相應的圖標來表示,以示區(qū)別,并在圖標上方的中間顯示該類型的名稱,并且把選中狀態(tài)的類型顯示為浮動狀態(tài)。主窗口界面如圖3所示。

圖3 主窗體界面
3.3 子窗體
3.3.1 "設置"子窗體
"設置"子窗體的界面如圖4 所示。

圖4 "設置"子窗體界面
(1) 修改密碼。
修改密碼時,首先比較用戶輸入的原密碼經(jīng)過加密后與從Config.xml文件讀出的相應信息進行比較,若不同則提示用戶重新輸入,若相同則再次比較用戶兩次輸入的新密碼,只有兩次輸入一致才把新密碼替換原始密碼,然后將新密碼加密后重新寫入Config.xml文件中,下次登錄時使用。修改密碼流程圖如圖5所示。

圖5 修改密碼流程圖
(2) 添加/移除設備。
加載Config.xml數(shù)據(jù)并相應填入Combox控件中,選擇Combox控件中的的設備名稱,然后點擊"添加"或"移除"按鈕對設備進行增刪,并修改Config.xml中對應的值。
(3) 設置服務器參數(shù)可以點擊"查看IP和端口"從Config.xml中獲取IP和端口;點擊"修改IP和端口"修改Comfig.xml中的對應信息,并與服務器進行重新連接。
{$page$}
3.3.2 "電器"子窗體
在"電器"子窗體中點擊對應的電器設備彈出相應的設備控制面板(如熱水器)對該設備進行控制。熱水器面板中的初始化函數(shù)對設備的溫度和狀態(tài)進行采集并把采集的數(shù)據(jù)顯示到相應的控件上。熱水器控制面板界面如圖6所示。

圖6 熱水器控制面板界面
點擊"確定"按鈕,根據(jù)左邊NumericUpDown控件的數(shù)值和CheckBox控件來控制熱水器的溫度和開關、點擊"查看水溫" 按鈕可以從右邊的TextBox控件和CheckBox控件中看到當前熱水器的溫度和開關狀態(tài)、點擊"返回" 按鈕退出。熱水器控制程序流程圖如圖7所示。

圖7 熱水器控制程序流程圖
3.3.3 "抄表"子窗體
可實現(xiàn)抄錄電表、水表和煤氣表的讀數(shù)。因為抄表系統(tǒng)只需實現(xiàn)讀操作,而沒有寫操作,所以TextBox是只讀屬性。界面如圖8所示。

圖8 "抄表"子窗體
3.4 Internet遠程控制
把家庭網(wǎng)關接入Internet并在"設置"子窗體的"Server"選項卡(見圖4)中輸入設置服務器的IP 地址和端口號,然后啟動網(wǎng)絡通信模塊,創(chuàng)建Winsock套接字,綁定IP地址和端口號,服務器了保存了該系統(tǒng)的套接字。以后遠程用戶通過Internet從服務器獲得保存在服務器端該系統(tǒng)Winsock 套接字并與處于偵聽狀態(tài)的套接字連接,從而對該系統(tǒng)進行控制。 遠程控制主機通過瀏覽器在遠端可以實時地控制家用設備,從而實現(xiàn)遠程控制的目標。
家庭網(wǎng)關的網(wǎng)絡模塊主要有兩大功能:一方面負責對遠程用戶控制命令的接收和分析,再根據(jù)結果控制家居設備;另一方面通過Internet將用戶需要獲取的家居設備狀態(tài)送到遠程瀏覽器。
下面以對熱水器的控制為例進行說明。熱水器的遠程控制界面如圖9所示。

圖9 熱水器的遠程控制界面
(1) 獲取熱水器的狀態(tài)。
獲取熱水器的狀態(tài)是由"獲取"按鈕來處理的,它獲取熱水器的在當前的溫度和開關狀態(tài),并顯示在文本框和復選框。
(2) 設置熱水器的狀態(tài)。
設置熱水器的狀態(tài)是由"設置"按鈕來處理的,它設置熱水器的開關和熱水器的要加熱到的溫度。
發(fā)送數(shù)據(jù)到設備的核心代碼如下:

3.5 文件的讀寫操作
在文件操作的過程中,因為這里并不是為了純文本的操作,而只是為了要提取或存儲配置的信息,所以需要精確地定位到對應的信息在文件中的位置,為了實現(xiàn)這個要求,本設計對XML(可擴展標記語文)文件進行了讀寫操作。XML具有易于編輯、便于管理、適于存檔、容易查詢等諸多優(yōu)點。
其中有一個只對文件進行讀操作,采用的方法是對XML 文件進行反序列化操作,把XML 文件加載到內存中去。
4 結語
本文介紹了嵌入式智能家庭網(wǎng)關的軟件設計過程,主體界面采用的是Microsoft Visual Studio 編寫,應用于硬件上采用觸摸屏作為輸入輸出設備的系統(tǒng)。Internet遠程控制功能給居家生活帶來更多安全、舒適和便利。為現(xiàn)代智能家庭常用的一些設備的統(tǒng)一管理提供一個可行的管理框架和實現(xiàn)方案。