當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式智能家居控制系統(tǒng)的研究與設(shè)計(jì)

系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
本文將控制系統(tǒng)分為現(xiàn)場(chǎng)控制級(jí)(主機(jī))和多個(gè)控制對(duì)象級(jí)(分機(jī))。現(xiàn)場(chǎng)控制級(jí)設(shè)備能夠收集到控制對(duì)象的各種信息,對(duì)這些數(shù)據(jù)進(jìn)行處理,并能夠在設(shè)定的條件下產(chǎn)生報(bào)警。通過(guò)該系統(tǒng),可以得到家居的各種運(yùn)行狀態(tài)(例如,房間溫度、濕度,煤氣泄漏報(bào)警等),并能根據(jù)現(xiàn)場(chǎng)情況做出相應(yīng)的調(diào)整控制(例如,照明及家電控制等)。其家居控制系統(tǒng)結(jié)構(gòu)如圖1所示。

圖1 家居控制系統(tǒng)結(jié)構(gòu)圖


本文僅研究設(shè)計(jì)智能家居的現(xiàn)場(chǎng)控制部分,圖1中的GSM和GPRS等遠(yuǎn)程通信模塊作為以后系統(tǒng)的擴(kuò)展升級(jí)。主機(jī)MCU選用ARM9芯片S3C2410,因其具有豐富的功能端口而適合設(shè)計(jì)要求和日后擴(kuò)展。S3C2410嵌入式微處理器集成了眾多的常用資源,例如,LCD控制器、NAND Flash控制器、SDRAM控制器、系統(tǒng)片選邏輯以及一些常用的通信接口等資源。


分機(jī)采用16位單片機(jī)MSP430F149,主要考慮此芯片的低功耗性能,具有超低功耗的MSP單片機(jī)可以完成分機(jī)家居現(xiàn)場(chǎng)的控制功能。報(bào)警信息的采集就是對(duì)各傳感器的信息采集;對(duì)各種家電的控制是通過(guò)控制連接在家電電源的繼電器來(lái)實(shí)現(xiàn);現(xiàn)場(chǎng)控制手動(dòng)命令是通過(guò)觸摸屏來(lái)實(shí)現(xiàn)的。各分機(jī)通過(guò)nRF905收發(fā)模塊與主機(jī)進(jìn)行無(wú)線通信。各分機(jī)通過(guò)連接不同的傳感器或控制器來(lái)實(shí)現(xiàn)不同的功能。

系統(tǒng)軟件開發(fā)
在Windows CE.net產(chǎn)品的開發(fā)中,有兩個(gè)重要的方面,一個(gè)是內(nèi)核定制,另一個(gè)是應(yīng)用程序的開發(fā)。微軟在這兩個(gè)方面都提供了非常好的開發(fā)工具,這就是內(nèi)核定制工具Platform Builder和應(yīng)用程序開發(fā)工具Embedded Visual C++。


1 操作系統(tǒng)平臺(tái)定制
Windows CE平臺(tái)的定制過(guò)程


(1)選擇操作系統(tǒng)的基本配置,并且為特定的平臺(tái)選擇相應(yīng)的微處理器和板級(jí)支持包BSP(Board Support Packet)。本系統(tǒng)終端采用S3C2410處理器,因此我們導(dǎo)入了和硬件平臺(tái)相關(guān)的smdk2410.cec文件。


(2)利用標(biāo)準(zhǔn)開發(fā)向?qū)В鶕?jù)Windows CE的架構(gòu)創(chuàng)建一個(gè)定制平臺(tái),根據(jù)目標(biāo)硬件設(shè)備開發(fā)Boot Loader、設(shè)備驅(qū)動(dòng)程序,適當(dāng)?shù)牟脺p、添加組件,如有需要還須對(duì)某些配置文件進(jìn)行修改,然后封裝所需要的各功能模塊,編譯生成OS鏡像文件。


(3)通過(guò)以太網(wǎng)、USB或串口將鏡像文件下載到目標(biāo)設(shè)備,可以使用Platform Builder提供的調(diào)試工具查看Windows CE.net的運(yùn)行情況并進(jìn)行調(diào)試,若需要,進(jìn)行重復(fù)配置、封裝、下載及調(diào)試,直到滿足要求,完成平臺(tái)的創(chuàng)建。


(4)最后,導(dǎo)出相應(yīng)的SDK(Software Development Kit)軟件開發(fā)工具包,運(yùn)行后安裝到EVC中,使得可以進(jìn)行特定硬件平臺(tái)上的應(yīng)用程序開發(fā)。SDK包含程序庫(kù)、頭文件、示例程序源代碼和庫(kù)函數(shù)使用文檔,同時(shí)還包括編程指導(dǎo)和API參與以及設(shè)備驅(qū)動(dòng)工具包(DDK)。


安裝BSP
把Windows CE.net移植到新硬件平臺(tái)由平臺(tái)構(gòu)造器(Platform Builder)完成。Platform Builder 4.2是一個(gè)定制基于Windows CE.net 4.2操作系統(tǒng)的嵌入式平臺(tái)的集成開發(fā)環(huán)境(IDE)。我們?yōu)橐粋€(gè)硬件平臺(tái)構(gòu)建CE系統(tǒng),在PB里實(shí)際上就是創(chuàng)建平臺(tái),然后編譯平臺(tái),得到CE映像文件的過(guò)程。所以我們首先需要?jiǎng)?chuàng)建一個(gè)平臺(tái)。板級(jí)支持包(BSP)是連接一個(gè)硬件平臺(tái)和操作系統(tǒng)內(nèi)核功能的橋梁,所以,首先PB會(huì)要求選擇BSP。


Platform Builder本身就提供了多種目標(biāo)板的BSP,如果開發(fā)板和Platform Builder提供得相同,那么只需重新編譯,生成相應(yīng)的系統(tǒng)鏡像下載到開發(fā)板即可。但是實(shí)際情況更多的可能是處理器相同,但是板上的各種外圍硬件接口不盡相同,這時(shí)候可以通過(guò)修改Platform Builder中相同或相近處理器的BSP來(lái)完成一個(gè)新的BSP,這樣可以大大減少BSP的研發(fā)時(shí)間。這里我們利用廠商直接提供的BSP,節(jié)省了開發(fā)時(shí)間,也可以提高成功率。

圖2 生成系統(tǒng)鏡像


[!--empirenews.page--]定制Windows CE操作系統(tǒng)鏡像


PB定制基于本平臺(tái)的操作系統(tǒng)鏡像的步驟如下。


(1)選擇板級(jí)支持包:本系統(tǒng)開發(fā)板CPU是S3C2410,所以選“SAMSUNGSMDK2410:ARMV4”BSP。


(2)選擇平臺(tái)類型。本文選擇了手持設(shè)備。在“Available configurations”列表中,選擇“Mobile Handheld”,并輸入“Platform name:sbc2410”。


(3)選擇基本類庫(kù)及所需要的網(wǎng)絡(luò)通信服務(wù),平臺(tái)配置完畢。


(4)右鍵單擊“SBC2410 features”選項(xiàng)的“Setting…”。在對(duì)話框Build Option屬性頁(yè)中,選擇[Enable Full Kernel Mode],Windows CE中所有線程都會(huì)運(yùn)行在核心態(tài)。這會(huì)使整個(gè)系統(tǒng)相對(duì)不穩(wěn)定,但是也可提高系統(tǒng)的運(yùn)行效率。選擇[Enable Images Larger than 32MB],Windows CE的最終運(yùn)行時(shí)映像可大于32MB。


(5)利用Platform Builder進(jìn)行Windows CE.net操作系統(tǒng)的定制和開發(fā)一個(gè)重要的步驟就是在Platform Builder提供的特性目錄(Catalog)中進(jìn)行特性選擇。這是因?yàn)镻latform Builder中已經(jīng)將Windows CE.net操作系統(tǒng)用到的大量的組件以特性(Feature)的形式列在特性目錄中。加入U(xiǎn)SB鍵盤鼠標(biāo)支持特性,加入U(xiǎn)SB移動(dòng)存儲(chǔ)設(shè)備(U盤、移動(dòng)硬盤)支持,加入打印機(jī)設(shè)備相關(guān)的驅(qū)動(dòng)(如果不加入打印機(jī)設(shè)備相關(guān)的驅(qū)動(dòng),在編譯應(yīng)用程序時(shí)會(huì)出現(xiàn)“syntax error:identifier ‘LPDOCINFO’”錯(cuò)誤),加入網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)。


(6)更改適合自己網(wǎng)絡(luò)環(huán)境的IP地址、DNS、網(wǎng)關(guān)地址等網(wǎng)絡(luò)參數(shù),通過(guò)編輯platform.reg平臺(tái)注冊(cè)表文件中相關(guān)的鍵值,來(lái)修改網(wǎng)絡(luò)參數(shù)。我的PC的IP:202.114.57.102,所以目標(biāo)機(jī)的IP設(shè)定為202.114.57.10,在同一網(wǎng)段內(nèi)。


(7)單擊菜單Build→Build Platform開始編譯系統(tǒng)。編譯完畢,將會(huì)在C:WINCE420PUBLICsbc2410RelDirSAMSUNG_SMDK2410ARMV4Release目錄下生成NK.bin和NK.nb0映像文件。編譯開始大約10分鐘后看到編譯信息:SBC2410-0 error(s),30 warning(s)。有警告是正常的,因?yàn)槟承┙M件是有風(fēng)險(xiǎn)的,例如,一些網(wǎng)絡(luò)組件,所以只要沒(méi)有錯(cuò)誤,說(shuō)明定制沒(méi)有問(wèn)題。


此時(shí),我們用USB電纜連接主機(jī)和目標(biāo)機(jī)(開發(fā)板),在PC端已安裝了SAMSUNG提供的USB驅(qū)動(dòng)的前提下,使用2410提供的專用下載工具DNW把生成的NK.bin和NK.nb0下載到開發(fā)板中,這樣根據(jù)我們的目標(biāo)機(jī)系統(tǒng)定制的Windows CE就可以在開發(fā)平臺(tái)上正常運(yùn)行了。
創(chuàng)建平臺(tái)SDK


完成了平臺(tái)的定制后,接著可以利用Platform Builder來(lái)創(chuàng)建SDK,SDK為平臺(tái)上其他應(yīng)用程序的開發(fā)提供支持。SDK(Software Development Kit)是一系列頭文件、庫(kù)文件、文檔、平臺(tái)管理器和運(yùn)行時(shí)庫(kù)的總稱。一旦創(chuàng)建了SDK,就可以將它導(dǎo)出或者安裝到別的計(jì)算機(jī)上,開發(fā)者可以將創(chuàng)建的SDK導(dǎo)入Embedded Visual C++或 Visual Studio中,進(jìn)行應(yīng)用程序的開發(fā)、調(diào)試和運(yùn)行。


在Embedded Visual C++中,提供了Platform Manager來(lái)管理已經(jīng)安裝的SDK。注意,在安裝開發(fā)工具時(shí),默認(rèn)會(huì)安裝一個(gè)稱作“Standard SDK”的SDK。由于Windows CE操作系統(tǒng)特性,不可能存在“標(biāo)準(zhǔn)”的SDK。所謂Standard SDK,只不過(guò)是微軟把Windows CE中最常用的一些功能取出來(lái)作為一個(gè)“標(biāo)準(zhǔn)”的SDK,使用Standard SDK開發(fā)的應(yīng)用程序,可在大多數(shù)Windows CE平臺(tái)上運(yùn)行。但是Standard SDK也并不是萬(wàn)能的,例如,Standard SDK不支持中文和DirectX等。Platform Builder提供了SDK Wizard向?qū)?,?lái)創(chuàng)建和生成SDK,最后Build過(guò)程完成后即可生成名為SBC2410_SDK.msi的SDK文件。此時(shí)在生成目錄中找到SBC2410_SDK.msi,雙擊安裝,就可以將生成的SDK安裝到EVC中進(jìn)行應(yīng)用程序的開發(fā)了。


2 應(yīng)用軟件開發(fā)
目前,針對(duì)Windows CE應(yīng)用開發(fā)的軟件有很多種,在使用的時(shí)候根據(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)試和測(cè)試。但是必須安裝相應(yīng)的為特定平臺(tái)開發(fā)的SDK,本文就是自己導(dǎo)出的SDK


智能家居系統(tǒng)的主機(jī)應(yīng)用程序通過(guò)兩個(gè)對(duì)話框?qū)崿F(xiàn)分機(jī)設(shè)備的基本讀/寫過(guò)程:Measure對(duì)話框主要實(shí)現(xiàn)對(duì)輸入量信息的采集及對(duì)系統(tǒng)運(yùn)行狀態(tài)的監(jiān)視,Control對(duì)話框主要用于主機(jī)發(fā)送控制信息給分機(jī)系統(tǒng)。這兩個(gè)對(duì)話框通過(guò)主窗體調(diào)用完成對(duì)整個(gè)家居系統(tǒng)的測(cè)量與控制。主機(jī)應(yīng)用程序流程圖如圖3所示。智能家居系統(tǒng)應(yīng)用程序以1路模擬量輸入、3路數(shù)字量輸入及相應(yīng)的4路輸出控制量為例實(shí)現(xiàn)智能控制功能。

圖3 主機(jī)應(yīng)用程序流程圖

圖4 運(yùn)行界面


EVC的開發(fā)環(huán)境與Visual C++基本一致。首先,選擇項(xiàng)目類型、項(xiàng)目存放路徑、項(xiàng)目名稱及平臺(tái)類型;然后選擇項(xiàng)目的樣式和支持的語(yǔ)言;接下來(lái),確定一些其他的選項(xiàng);選擇完畢后,就可以得到一個(gè)程序的框架。項(xiàng)目類型我們選擇WCE MFC APPWizard,項(xiàng)目名稱為SmartHome,在支持的CPU類型中我們選中了ARM和X86(應(yīng)該根據(jù)開發(fā)環(huán)境來(lái)選擇)。對(duì)于我們來(lái)說(shuō),首先要在PC上進(jìn)行調(diào)試,然后編譯成適合使用的應(yīng)用程序,目標(biāo)機(jī)是ARM CPU,所以我們需要WCE X86和WCE ARM。(如果你要開發(fā)商用軟件或者想讓更多的人使用你的程序,應(yīng)該考慮更多種類的CPU)編譯運(yùn)行,成功啟動(dòng)Microsoft ActiveSync同步軟件,這時(shí)可將在PC上生成的exe文件復(fù)制到移動(dòng)設(shè)備下My Documents文件夾下。智能家居系統(tǒng)應(yīng)用程序以1路模擬量、3路數(shù)字量輸入及相應(yīng)的4路輸出控制量為例實(shí)現(xiàn)智能控制功能,如圖4所示。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉