嵌入式智能家居控制系統(tǒng)的研究與設(shè)計
PB定制基于本平臺的操作系統(tǒng)鏡像的步驟如下。
(1)選擇板級支持包:本系統(tǒng)開發(fā)板CPU是S3C2410,所以選“SAMSUNGSMDK2410:ARMV4”BSP。
(2)選擇平臺類型。本文選擇了手持設(shè)備。在“Available configurations”列表中,選擇“Mobile Handheld”,并輸入“Platform name:sbc2410”。
(3)選擇基本類庫及所需要的網(wǎng)絡(luò)通信服務(wù),平臺配置完畢。
(4)右鍵單擊“SBC2410 features”選項的“Setting…”。在對話框Build Option屬性頁中,選擇[Enable Full Kernel Mode],Windows CE中所有線程都會運行在核心態(tài)。這會使整個系統(tǒng)相對不穩(wěn)定,但是也可提高系統(tǒng)的運行效率。選擇[Enable Images Larger than 32MB],Windows CE的最終運行時映像可大于32MB。
(5)利用Platform Builder進行Windows CE.net操作系統(tǒng)的定制和開發(fā)一個重要的步驟就是在Platform Builder提供的特性目錄(Catalog)中進行特性選擇。這是因為Platform Builder中已經(jīng)將Windows CE.net操作系統(tǒng)用到的大量的組件以特性(Feature)的形式列在特性目錄中。加入USB鍵盤鼠標支持特性,加入USB移動存儲設(shè)備(U盤、移動硬盤)支持,加入打印機設(shè)備相關(guān)的驅(qū)動(如果不加入打印機設(shè)備相關(guān)的驅(qū)動,在編譯應(yīng)用程序時會出現(xiàn)“syntax error:identifier ‘LPDOCINFO’”錯誤),加入網(wǎng)絡(luò)設(shè)備驅(qū)動。
(6)更改適合自己網(wǎng)絡(luò)環(huán)境的IP地址、DNS、網(wǎng)關(guān)地址等網(wǎng)絡(luò)參數(shù),通過編輯platform.reg平臺注冊表文件中相關(guān)的鍵值,來修改網(wǎng)絡(luò)參數(shù)。我的PC的IP:202.114.57.102,所以目標機的IP設(shè)定為202.114.57.10,在同一網(wǎng)段內(nèi)。
(7)單擊菜單Build→Build Platform開始編譯系統(tǒng)。編譯完畢,將會在C:WINCE420PUBLICsbc2410RelDirSAMSUNG_SMDK2410ARMV4Release目錄下生成NK.bin和NK.nb0映像文件。編譯開始大約10分鐘后看到編譯信息:SBC2410-0 error(s),30 warning(s)。有警告是正常的,因為某些組件是有風險的,例如,一些網(wǎng)絡(luò)組件,所以只要沒有錯誤,說明定制沒有問題。
此時,我們用USB電纜連接主機和目標機(開發(fā)板),在PC端已安裝了SAMSUNG提供的USB驅(qū)動的前提下,使用2410提供的專用下載工具DNW把生成的NK.bin和NK.nb0下載到開發(fā)板中,這樣根據(jù)我們的目標機系統(tǒng)定制的Windows CE就可以在開發(fā)平臺上正常運行了。
創(chuàng)建平臺SDK
完成了平臺的定制后,接著可以利用Platform Builder來創(chuàng)建SDK,SDK為平臺上其他應(yīng)用程序的開發(fā)提供支持。SDK(Software Development Kit)是一系列頭文件、庫文件、文檔、平臺管理器和運行時庫的總稱。一旦創(chuàng)建了SDK,就可以將它導(dǎo)出或者安裝到別的計算機上,開發(fā)者可以將創(chuàng)建的SDK導(dǎo)入Embedded Visual C++或 Visual Studio中,進行應(yīng)用程序的開發(fā)、調(diào)試和運行。
在Embedded Visual C++中,提供了Platform Manager來管理已經(jīng)安裝的SDK。注意,在安裝開發(fā)工具時,默認會安裝一個稱作“Standard SDK”的SDK。由于Windows CE操作系統(tǒng)特性,不可能存在“標準”的SDK。所謂Standard SDK,只不過是微軟把Windows CE中最常用的一些功能取出來作為一個“標準”的SDK,使用Standard SDK開發(fā)的應(yīng)用程序,可在大多數(shù)Windows CE平臺上運行。但是Standard SDK也并不是萬能的,例如,Standard SDK不支持中文和DirectX等。Platform Builder提供了SDK Wizard向?qū)?,來?chuàng)建和生成SDK,最后Build過程完成后即可生成名為SBC2410_SDK.msi的SDK文件。此時在生成目錄中找到SBC2410_SDK.msi,雙擊安裝,就可以將生成的SDK安裝到EVC中進行應(yīng)用程序的開發(fā)了。
2 應(yīng)用軟件開發(fā)
目前,針對Windows CE應(yīng)用開發(fā)的軟件有很多種,在使用的時候根據(jù)具體情況選擇適合應(yīng)用的軟件開發(fā)工具。Embedded Visual C++支持WinCE App/DLL/COM/Lib using Win32 API,MFC,ATL and STL等功能,它與Visual C++6.0具有相似的工程管理模式和用戶界面,易于調(diào)試和測試。但是必須安裝相應(yīng)的為特定平臺開發(fā)的SDK,本文就是自己導(dǎo)出的SDK。
智能家居系統(tǒng)的主機應(yīng)用程序通過兩個對話框?qū)崿F(xiàn)分機設(shè)備的基本讀/寫過程:Measure對話框主要實現(xiàn)對輸入量信息的采集及對系統(tǒng)運行狀態(tài)的監(jiān)視,Control對話框主要用于主機發(fā)送控制信息給分機系統(tǒng)。這兩個對話框通過主窗體調(diào)用完成對整個家居系統(tǒng)的測量與控制。主機應(yīng)用程序流程圖如圖3所示。智能家居系統(tǒng)應(yīng)用程序以1路模擬量輸入、3路數(shù)字量輸入及相應(yīng)的4路輸出控制量為例實現(xiàn)智能控制功能。
圖3 主機應(yīng)用程序流程圖
圖4 運行界面
EVC的開發(fā)環(huán)境與Visual C++基本一致。首先,選擇項目類型、項目存放路徑、項目名稱及平臺類型;然后選擇項目的樣式和支持的語言;接下來,確定一些其他的選項;選擇完畢后,就可以得到一個程序的框架。項目類型我們選擇WCE MFC APPWizard,項目名稱為SmartHome,在支持的CPU類型中我們選中了ARM和X86(應(yīng)該根據(jù)開發(fā)環(huán)境來選擇)。對于我們來說,首先要在PC上進行調(diào)試,然后編譯成適合使用的應(yīng)用程序,目標機是ARM CPU,所以我們需要WCE X86和WCE ARM。(如果你要開發(fā)商用軟件或者想讓更多的人使用你的程序,應(yīng)該考慮更多種類的CPU)編譯運行,成功啟動Microsoft ActiveSync同步軟件,這時可將在PC上生成的exe文件復(fù)制到移動設(shè)備下My Documents文件夾下。智能家居系統(tǒng)應(yīng)用程序以1路模擬量、3路數(shù)字量輸入及相應(yīng)的4路輸出控制量為例實現(xiàn)智能控制功能,如圖4所示。
評論