面向智能家居的嵌入式傳感網(wǎng)網(wǎng)關(guān)的研究與設計
4 家庭網(wǎng)關(guān)軟件設計
4.1 構建網(wǎng)關(guān)嵌入式Linux操作系統
網(wǎng)關(guān)系統硬件平臺與功能應用之間,需要專(zhuān)門(mén)的負責管理存儲器分配,中斷處理以及任務(wù)調度等功能的軟件模塊,這就是嵌入式操作系統。嵌入式操作系統是用來(lái)支持嵌入式應用的系統的軟件,包括硬件相關(guān)的底層驅動(dòng),系統內核,通信協(xié)議,圖形用戶(hù)界面等。
本文的網(wǎng)關(guān)系統是面向WSN和Internet,GSM互聯(lián)的通信應用,主要完成異構網(wǎng)絡(luò )之間的通信和控制,因此需要選擇實(shí)時(shí)的操作系統。在眾多的嵌入式實(shí)時(shí)操作系統中,從開(kāi)發(fā)成本,軟件支持和代碼開(kāi)放的角度考慮,本文將采用Linux操作系統作為網(wǎng)關(guān)的系統的操作系統。
4.2 建立交叉編譯環(huán)境
交叉編譯就是在一個(gè)平臺上生成另一個(gè)平臺上可以執行的代碼。這里的平臺包括體系結構和操作系統。同一體系結構上可以運行不同操作系統。同樣,同一個(gè)操作系統也可以在不同的體系結構上運行。
本文是在裝有Ubuntu 9.10(基于X86架構的Linux操作系統)的PC機上為網(wǎng)關(guān)系統建立了基于A(yíng)RM9的交叉編譯環(huán)境。建立之后,就可以在PC機上對將在網(wǎng)關(guān)系統上運行的應用程序進(jìn)行編譯,從而生成可以在網(wǎng)關(guān)系統上運行的可執行代碼,最后下到網(wǎng)關(guān)系統上。這也就是目前嵌入式程序開(kāi)發(fā)的宿主機/目標機(HOST/TARGET)模式。
Linux交叉編譯環(huán)境的內容,主要分為4個(gè)部分:GCC編譯器(C語(yǔ)言編譯器),二進(jìn)制工具包(Binutils),標準C庫(Glibc)和Linux內核頭文件。Glibc和GCC都有很多版本,需要根據實(shí)際需要選擇合適的版本。
4.3 網(wǎng)關(guān)應用程序設計
本次網(wǎng)關(guān)系統的應用軟件架構圖4所示。其主要功能是依據傳感器配置文件,分類(lèi)解析WSN中的數據,為用戶(hù)提供Socket數據服務(wù)和XML-RPC遠程調用服務(wù)。其工作流程是:網(wǎng)關(guān)程序啟動(dòng)以后,從XML文件夾中解析所有的傳感器配置文件;監聽(tīng)串口數據,利用傳感器配置文件解析數據生成XML數據流;創(chuàng )建Socket服務(wù)器,等待客戶(hù)端數據請求,提供XML格式的Socket服務(wù);創(chuàng )建XML-Socket遠程調用服務(wù)器,完成用戶(hù)的XML請求。本文引用地址:http://dyxdggzs.com/article/150878.htm
程序設計思路如圖5所示:網(wǎng)關(guān)程序啟動(dòng),完成參數初始化,解析XML文件夾下的所有傳感器配置文件,創(chuàng )建3個(gè)類(lèi)的實(shí)例。4個(gè)任務(wù)隊列。Serialcomm類(lèi)創(chuàng )建兩條線(xiàn)程用讀串口和寫(xiě)串口,這樣可以保證數據的實(shí)時(shí)性?;谕瑯拥牡览?,XMLParser類(lèi)和XMLComm類(lèi)也是雙線(xiàn)程并行工作。這樣就組成了從WSN和Internet的上行通道(圖5中的虛線(xiàn)表示),以及Internet到WSN的下行通道(圖5中的粗線(xiàn)表示)。
評論