摘 要:隨著信息家電的發展以及人們對Internet 依賴性的增強,家庭網絡代表一種新理念正被越來越多的人所關注。利用藍牙技術可以將微機與各種智能家電設備連接成一個方便實用的嵌入式無線家庭網關。在研究該家庭網關應完成功能的基礎之上,提出以S3C2410為核心的家庭控制子網的實現方案。該家庭網關對外與Internet相連,對內采用藍牙BlueCore2 External模塊和家電通信,從而實現通過Internet 上的計算機對家庭內部設備的遠程監控。
關鍵詞:信息家電;家庭網絡;藍牙技術;家庭網關
中圖分類號:TP393.1 文獻標識碼:B
文章編號:1004-373X(2008)10-067-03
Design and Implementation of Information Appliance Network System
Based on Bluetooth Technology
LIU Xin,LIU Damao
(College of Physics and Information Engineering,Fuzhou University,Fuzhou,350002,China)
Abstract:With the development of information electrical appliance and Internrt,more and more attentions are paid to home network which presents a new concept.For setting up an embedded wireless home gateway,it may connect thecomputer and intelligent electrical appliances by using the bluetooth technology.Firstly it researches the function that home gateway should complete.Next it brings forward the implementation scheme of home control sub-network based on S3C2410.This home gateway connects to the Internet outside,wirelessly connects with the home appliance by using BlueCore2 External module inside. So it can accomplish to long-range monitor and control of the home appliances by using the Internet computer.
Keywords:information electrical appliance;home network;bluetooth technology;home gateway
1 前 言
隨著科技的進步與社會的發展,人們對生活品質的追求也日益提高,傳統家用電器已經逐漸無法滿足現代家庭的需要。一方面,傳統家電無法自動獲取外界的信息,形成信息的孤島;另一方面,不同的家電之間互相獨立,無法協同工作。為了解決這些問題,出現了融合現代通信技術和計算機技術,使傳統家電智能化并具有網絡功能的信息家(Information Electrical Appliance,IEA)\\[1\\]。各種信息家電進行有線或無線連接,形成家庭網絡,隨時隨地為家庭成員提供各種與家居生活密切相關的服務。
藍牙(Bluetooth)技術是一項開放的、全球統一的短距離無線通信協議規范,其目的是取代現有的各種電子設備上的有線接口。目前,家庭聯網面臨主要問題就是缺乏完整統一的標準,而藍牙技術的優勢在于全球標準的統一,具有互操作性,以及能非常方便地實現快速、靈活、安全、低成本、低功耗的數據和語音通信,因此藍牙技術在家庭無線網絡系統中的發展潛力巨大。應用藍牙技術,通過無線通信使信息設備之間建立聯系。設備可以相互之間自動地進行聯絡與確認,通過相應的控制軟件,不需要用戶干預就可以建立連接傳輸數據。
2 家電信息網絡的系統設計
2.1 總體結構
家庭網絡代表家庭信息化的一種新理念正越來越多地被人們所關注。家庭網絡最終實現每一個電子設備之間的互連,并且與Internet相連。其總體結構如圖1所示。

家電信息網絡的特點是多元信息處理,包括各類信息的采集、加工、管理、存儲、交互等,因此有必要建立一個功能強大的信息處理平臺。在智能家庭網絡中,家庭網關擔當信息處理平臺的角色。他一方面完成家庭網絡中各種不同通信協議之間的轉換和信息共享,以及同外部通信網絡之間的數據交換功能;另一方面負責對家庭中各個信息家電的管理和控制。同時,各個信息家電也可通過家庭網關與外部網絡相聯,實現信息的交互和共享。
家庭主網網關是一個嵌入式設備,具有服務器功能,向家庭內部提供以太網連網方式。
他實現基本功能為:
(1)嵌入式TCP/IP 協議棧他負責家庭主網網關和外部Internet 網絡的通信;
(2)嵌入式Web 服務器(WebServer)嵌入式Web服務器是家庭網關面向外部通信網絡和遠程監控用戶的窗口,遠程監控用戶通過網頁以CGI 形式改變和控制家庭智能終端的參數和狀態;
(3)內部網絡協議轉換:擔負著智能家庭局域網內部各種不同協議子網之間的協議轉換工作;
(4) 家庭智能控制與管理功能是智能家庭網關的核心,根據遠程監控用戶的指令對各種不同智能應用終端的參數設置和控制\\[2\\]。
家庭控制子網是在家庭網絡中包含子網關、移動控制終端、三表三防設備和信息家電終端(Information Appliance,IA)等低速設備的網段。任何家電和設備都能直接或通過子網網關進行連接,實現智能控制和信息交流。
家庭控制子網內部設備的連接有很多方式,可分為有線和無線2大類。有線技術的數據傳輸速率相對較高,可靠性強,但靈活性差、布線復雜。采用無線通信技術可以免去在家庭內部布線的煩惱,新增的家電設備也可以很方便加入家庭網絡之中,從而解決移動設備的聯網問題。無線方案主要包括WIFI,HomeRF、藍牙、紅外等,在這些家庭無線聯網方案中,藍牙技術更加適合家庭內部聯網技術。這是因為藍牙技術是作為一種“電纜替代”的技術提出來的,發展到今天已經演化成一種個人信息網絡平臺:藍牙適用于在短距離(大約10 m)范圍內替代電纜,如果增大發射功率,傳輸距離可達100 m,基本滿足家庭內部使用的需要;抗干擾能力強,可以不對準,可以不在同一房間,鏈接最大數目可達7個,同時區分硬件;藍牙系統具有連接的普遍性、標準的開放性以及很強的擴展性,可以滿足家庭網絡中更多的需要。
家庭主網網關和子網網關在物理上可以是同一實體。家庭子網網關主要具有以下功能:給出友好的人機界面:用戶可以進入任一個電器的控制選項界面,控制各子網設備,操作簡單;管理各種子網設備:當新的設備加入到家庭控制子網網絡系統中時,子網網關可以通過添加設備文件來添加新的設備,同時具有刪除設備的功能。與各個通信模塊進行數據交換:子網網關與各個通信模塊之間的通信協議遵從家庭控制子網通信協議。
無線家庭控制子網通信協議的結構如圖2所示。其中,UDCP屬于應用層協議,其作用是進行整個子網中設備的添加、刪除、狀態查詢、參數配置等系統管理及根據設備描述文件進行控制。UDCP協議為各種家電的管理和控制提供統一的接口,他利用設備文件讀取被管理設備的相應信息。用戶通過外部網絡對信息家電進行控制,實際上就是UDCP層進行透明的數據傳輸。

2.2 系統設計方案
在作為系統核心的家庭網關中,主網網關和子網網關位于同一個物理平臺。圖3是本文研制的嵌入式網關的硬件框圖,處理器采用ARM920T內核處理器S3C2410,由其控制接口模塊和藍牙收發模塊,以使用戶可以通過Internet遠程訪問家庭網絡。網關、家電終端和移動控制終端均采用相同的藍牙收發模塊硬件,藍牙芯片采用英國CSR (Cambridge Silicon Radio)公司的BlueCore2 External。選用Linux嵌入式操作系統為軟件平臺。

邏輯上的主網網關由Web服務器、CGI程序、IAC(Inter-Application Communication,應用間進程)駐留進程組成。Web服務器與CGI程序負責為客戶瀏覽器提供靜態、動態的HTTP網頁;IAC駐留進程負責接收CGI程序發出的控制命令,并與子網網關主程序交互。該進程在系統啟動時,緊跟子網網關主程序啟動,在整個網關運行期間一直存在。邏輯上的子網網關由串口驅動模塊、虛擬串口驅動模塊、TCP/IP/PPP組件、配置管理程序、設備描述文件及注冊表、子網網關主程序組成\\[3\\]。
2.3 軟件的設計與實現
2.3.1 BuleZ在嵌入式Linux中的移植
BuleZ是官方Linux Bluetooth棧,由主機控制接口(Host Control Interface,HCI)層、Bluetooth協議核心、邏輯鏈路控制和適配協議、SCO音頻層、其他Bluetooth服務、用戶空間后臺進程以及配置工具組成。
Bluetooth規范支持針對Bluetooth HCI數據分組的UART和USB傳輸機制。BlueZ棧對這2個傳輸機制都支持。BlueZ BNEP(Bluetooth網絡封裝協議)實現Bluetooth上的以太網仿真,從而使TCP/IP可以直接運行于Bluetooth之上\\[4\\]。
在Linux下安裝BlueZ,必須針對內核版本打補丁,可以在BlueZ官方網站www.bluez.org/patches.html下載相應的補丁文件。本文用的是Linux-2.4.20-8,需要下載patch-2.4.20-mhl8.gz的補丁文件。
首先進入內核子目錄,再對該目錄下的文件進行補丁安裝(一定要在root用戶下):
#cd /user/src/linux-2.4.20-8
#gzip -dc./patch-2.4.20-mhl8.gz | patch -pl
然后配置內核文件:
#make menuconfig
配置完選項后,可以編譯內核:
#make dep
#make zImage
如果不出錯,就可以移植BlueZ的基礎庫最后安裝編譯好的新內核。
2.3.2 主網關程序
IAC是主網關程序的核心和樞紐,負責接收CGI(通用網關接口)程序發出的控制命令以及與子網關應用程序交互。IAC以進程的方式運行,在系統啟動時,緊跟子網關應用程序啟動,在網關程序運行期間一直存在\\[1\\]。
IAC駐留進程與CGI程序之間采用直接內存訪問的方式進行通信。在高端RAM中劃出兩塊區間SRV_WBUF和CGI_WBUF。
CGI程序將控制命令轉成UDCP數據報文的形式寫入CGI_WBUF后,向IAC進程駐留進程發送信號SIGUSR1,通知駐留進程有命令到來。IAC駐留進程在SIGUSR1信號處理函數中,從CGI_WBUF讀取數據并使用UDCP_SendData()將命令發送給子網網關。
IAC駐留進程收到來自子網網關的UDCP數據報文,則將報文信息寫入SRV_WBUF,供CGI程序讀取。
2.3.3 子網網關主程序
子網網關主程序是一個在嵌入式系統上運行的用戶態進程,負責藍牙協議棧消息派送、進行串口、虛擬串口、Socket、UDCP 、藍牙協議棧各任務的調度。子網關應用程序工作流程如圖5所示。
串口數據處理子模塊 當串口有數據時,調用read系統函數讀串口數據,并將數據送往HCI傳輸層處理。HCI傳輸層直接和串口打交道,將串口送來的數據打包成相應的HCI包送給上層協議處理,或將上層協議送來的數據寫向串口。
Socket數據處理子模塊 子網網關程序初始化完畢后就進入主循環,主循環的作用一是為藍牙協議棧派發信息。二是用select處理藍牙模塊,主網網關,上層來的數據,監聽串口、虛擬串口和socket。一旦從串口、虛擬串口和socket設備取得一個事件或數據包就應該停止監聽,立即交藍牙協議棧和UDCP處理。

3 結 語
本文討論一個基于ARM處理器S3C2410及Linux的無線家庭網關的軟硬件設計。與其他的家庭網關相比,首先該家庭網關采用藍牙技術,省掉了布線的麻煩;其次,本系統能隨時隨地通過瀏覽器瀏覽網頁,就達到對家電的遠程控制,擺脫了傳統家電一對一的控制模式,對家電的管理變得更加容易,完全符合當前家電向智能化、信息化、網絡化、人性化方向發展的趨勢。
參 考 文 獻
[1]沈連豐,宋鐵成,葉芝慧.嵌入式系統及其開發應用\\[M\\].北京:電子工業出版社,2005.
[2]白清利,張東來.嵌入式家庭網關功能分析與設計實現\\[J\\].微計算機信息,2006,22(20):10-12,96.
[3]袁宇恒,葉芝慧,沈連豐.基于藍牙技術的家庭網絡控制子網設計與研制\\[J\\].東南大學學報:自然科學版,2006,36(1):13-18.
[4]黃濤,白創,徐靖.嵌入式無線互連系統開發\\[M\\].北京:中國電力出版社,2007.
[5]彭月平,稅冬東,劉長泉.ROK 101 007/1型藍牙模塊的特性及其應用\\[J\\].國外電子元器件,2006(6):41-43.
作者簡介 劉 新 男,1978年出生,碩士研究生。研究方向為信號與信息處理、嵌入式系統及應用。
劉大茂 男,教授,碩士生導師。研究方向為嵌入式系統及應用。