智能控制與嵌入式系統(tǒng)智能家居控制系統(tǒng)研究與設(shè)計(jì)

發(fā)布時(shí)間:2024-03-21
根據(jù)ieee的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助裝置、機(jī)器和設(shè)備運(yùn)行的裝置”。從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機(jī)械等附屬裝置。目前國內(nèi)一個(gè)普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)以其占用資源少、專用性強(qiáng)、功耗低的特點(diǎn)使其廣泛應(yīng)用在移動通信、工業(yè)生產(chǎn)、安全監(jiān)控等領(lǐng)域。以其在性能、體積及功耗等方面的優(yōu)勢在智能家居領(lǐng)域得到越來越廣泛的應(yīng)用。
隨著嵌入式技術(shù)、網(wǎng)絡(luò)及信息技術(shù)的發(fā)展,針對人們對智能家居的追求,提出了一種基于arm9的嵌入式智能家居控制系統(tǒng)的解決方案。介紹了嵌入式linux系統(tǒng)的軟硬件平臺,結(jié)合實(shí)例闡述了嵌入式qt圖形界面系統(tǒng)、嵌入式數(shù)據(jù)庫sqlite等關(guān)鍵技術(shù)在嵌入式智能家居控制系統(tǒng)中的應(yīng)用。該方案解決了控制系統(tǒng)的可視化操作問題,提高了系統(tǒng)數(shù)據(jù)管理效率,并具有通用性可移植到其他硬件或軟件平臺應(yīng)用。
系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
本文將控制系統(tǒng)分為現(xiàn)場控制級(主機(jī))和多個(gè)控制對象級(分機(jī))。主機(jī)設(shè)備能夠收集到控制對象的各種信息,對這些數(shù)據(jù)進(jìn)行處理,并能夠在設(shè)定的條件下產(chǎn)生報(bào)警。通過該系統(tǒng),可以得到家居的各種運(yùn)行狀態(tài)(例如,房間溫度、濕度,煤氣泄漏報(bào)警等),并能根據(jù)現(xiàn)場情況做出相應(yīng)的調(diào)整控制(例如,照明及家電控制等)。其家居控制系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 家居控制系統(tǒng)結(jié)構(gòu)圖
文章僅研究設(shè)計(jì)智能家居的分機(jī)部分,圖1中的gsm和gprs等遠(yuǎn)程通信模塊作為以后系統(tǒng)的擴(kuò)展升級。主機(jī)mcu選用arm9芯片s3c2410,因其具有豐富的功能端口而適合設(shè)計(jì)要求和日后擴(kuò)展。s3c2410嵌入式微處理器集成了眾多的常用資源,例如,lcd控制器、nand flash控制器、sdram控制器、系統(tǒng)片選邏輯以及一些常用的通信接口等資源。
分機(jī)采用16位單片機(jī)msp430f149,主要考慮此芯片的低功耗性能,具有超低功耗的msp單片機(jī)可以完成分機(jī)家居現(xiàn)場的控制功能。報(bào)警信息的采集就是對各傳感器的信息采集;對各種家電的控制是通過控制連接在家電電源的繼電器來實(shí)現(xiàn);現(xiàn)場控制手動命令是通過觸摸屏來實(shí)現(xiàn)的。各分機(jī)通過nrf905收發(fā)模塊與主機(jī)進(jìn)行無線通信。各分機(jī)通過連接不同的傳感器或控制器來實(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)平臺定制
windows ce是微軟公司嵌入式、移動計(jì)算平臺的基礎(chǔ),它是一個(gè)開放的、可升級的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作系統(tǒng),它是精簡的windows 95,windows ce的圖形用戶界面相當(dāng)出色。
windows ce作業(yè)系統(tǒng)是windows家族中最新的成員,專門設(shè)計(jì)給掌上型電腦(hpcs)所使用的電腦環(huán)境。這樣的作業(yè)系統(tǒng)可使完整的可攜式技術(shù)與現(xiàn)有的windows桌面技術(shù)整合工作。 windows ce 被設(shè)計(jì)成針對小型設(shè)備(它是典型的擁有有限內(nèi)存的無磁盤系統(tǒng))的通用操作系統(tǒng),windows ce 可以通過設(shè)計(jì)一層位于內(nèi)核和硬件之間代碼來用設(shè)定硬件平臺,這即是眾所周知的硬件抽象層(hal)(在以前解釋時(shí),這被稱為 oemc (原始設(shè)備制造)適應(yīng)層,即 oal; 內(nèi)核壓縮層,即 kal。 以免與微軟的 windows nt 操作系統(tǒng) hal 混淆) 。
windows ce平臺的定制過程
(1)選擇操作系統(tǒng)的基本配置,并且為特定的平臺選擇相應(yīng)的微處理器和板級支持包bsp(board support packet)。本系統(tǒng)終端采用s3c2410處理器,因此我們導(dǎo)入了和硬件平臺相關(guān)的smdk2410.cec文件。
(2)利用標(biāo)準(zhǔn)開發(fā)向?qū)?,根?jù)windows ce的架構(gòu)創(chuàng)建一個(gè)定制平臺,根據(jù)目標(biāo)硬件設(shè)備開發(fā)boot loader、設(shè)備驅(qū)動程序,適當(dāng)?shù)牟脺p、添加組件。
(3)通過以太網(wǎng)、usb或串口將鏡像文件下載到目標(biāo)設(shè)備,可以使用platform builder提供的調(diào)試工具查看windows ce.net的運(yùn)行情況并進(jìn)行調(diào)試,若需要,進(jìn)行重復(fù)配置、封裝、下載及調(diào)試,直到滿足要求,完成平臺的創(chuàng)建。
(4)最后,導(dǎo)出相應(yīng)的sdk(software development kit)軟件開發(fā)工具包,運(yùn)行后安裝到evc中,使得可以進(jìn)行特定硬件平臺上的應(yīng)用程序開發(fā)。sdk包含程序庫、頭文件、示例程序源代碼和庫函數(shù)使用文檔,同時(shí)還包括編程指導(dǎo)和api參與以及設(shè)備驅(qū)動工具包(ddk)。
安裝bsp
bsp即board support package,板級支持包。它來源于嵌入式操作系統(tǒng)與硬件無關(guān)的設(shè)計(jì)思想,操作系統(tǒng)被設(shè)計(jì)為運(yùn)行在虛擬的硬件平臺上。對于具體的硬件平臺,與硬件相關(guān)的代碼都被封裝在bsp中,由bsp向上提供虛擬的硬件平臺,bsp與操作系統(tǒng)通過定義好的接口進(jìn)行交互。bsp是所有與硬件相關(guān)的代碼體的集合。一個(gè)成熟的商用操作系統(tǒng),其被廣泛應(yīng)用的必要條件之一就是能夠支持眾多的硬件平臺,并實(shí)現(xiàn)應(yīng)用程序的硬件無關(guān)性。一般來說,這種無關(guān)性都是由操作系統(tǒng)實(shí)現(xiàn)的。
bsp就是為軟件操作系統(tǒng)正常運(yùn)行提供最基本、最原始的硬件操作的軟件模塊,它和操作系統(tǒng)息息相關(guān),但又不屬于操作系統(tǒng)的一部分。bsp可以分為三大部分:
1:系統(tǒng)上電時(shí)的硬件初始化。
2:為操作系統(tǒng)訪問硬件驅(qū)動程序提供支持。
3:集成的硬件相關(guān)和硬件無關(guān)的操作系統(tǒng)所需的軟件模塊。
開發(fā)bsp需要的條件
·目標(biāo)硬件:硬件調(diào)測完畢,經(jīng)過必要的軟件測試
·必要的硬件設(shè)計(jì)文檔:如地址空間的分布,cpu和其他芯片的工作模式等。
·操作系統(tǒng)
·交叉開發(fā)工具:編譯器、匯編器、鏈接器等
·下載機(jī)制:bootrom或仿真器等
2bsp實(shí)際開發(fā)的主要過程
1.掌握開發(fā)中使用的操作系統(tǒng),和在這種操作系統(tǒng)下開發(fā)bsp的要求。
2.研讀所選cpu的資料。
3.研讀硬件設(shè)計(jì)文擋。
4.研讀電路板中器件的資料。
5.找一個(gè)bsp模板,熟悉它并在此基礎(chǔ)上開發(fā)自己的bsp。從頭研制bsp工作量極大,也沒有必要。
6.利用仿真器進(jìn)行調(diào)試,開發(fā)最小bsp系統(tǒng)。
7.在最小bsp的基礎(chǔ)上,利用tornado集成開發(fā)環(huán)境,進(jìn)一步調(diào)試外圍設(shè)備,配置、完善系統(tǒng)。
8.調(diào)試單板上的設(shè)備驅(qū)動程序。
把windows ce.net移植到新硬件平臺由平臺構(gòu)造器(platform builder)完成。platform builder 是一個(gè)定制基于windows ce.net 操作系統(tǒng)的嵌入式平臺的集成開發(fā)環(huán)境(ide)。我們?yōu)橐粋€(gè)硬件平臺構(gòu)建ce系統(tǒng),在pb里實(shí)際上就是創(chuàng)建平臺,然后編譯平臺,得到ce映像文件的過程。所以我們首先需要創(chuàng)建一個(gè)平臺。bsp是連接一個(gè)硬件平臺和操作系統(tǒng)內(nèi)核功能的橋梁,所以,首先pb會要求選擇bsp。
platform builder 是微軟公司提供給windows ce 開發(fā)人員進(jìn)行基于windows ce 平臺下嵌入式操作系統(tǒng)定制的集成開發(fā)環(huán)境。它提供了所有進(jìn)行設(shè)計(jì)、創(chuàng)建、編譯、測試和調(diào)試windows ce 操作系統(tǒng)平臺的工具。它運(yùn)行在桌面windows 下,開發(fā)人員可以通過交互式的環(huán)境來設(shè)計(jì)和定制內(nèi)核、選擇系統(tǒng)特性,然后進(jìn)行編譯和調(diào)試,如果開發(fā)板和platform builder提供得相同,那么只需重新編譯,生成相應(yīng)的系統(tǒng)鏡像下載到開發(fā)板即可。但是實(shí)際情況更多的可能是處理器相同,但是板上的各種外圍硬件接口不盡相同,這時(shí)候可以通過修改platform builder中相同或相近處理器的bsp來完成一個(gè)新的bsp,這樣可以大大減少bsp的研發(fā)時(shí)間。這里我們利用廠商直接提供的bsp,節(jié)省了開發(fā)時(shí)間,也可以提高成功率。同時(shí),開發(fā)人員還可以利用platform builder 來進(jìn)行驅(qū)動程序開發(fā)和應(yīng)用程序項(xiàng)目的開發(fā)等等。
圖2 生成系統(tǒng)鏡像
定制windows ce操作系統(tǒng)鏡像
pb定制基于本平臺的操作系統(tǒng)鏡像的步驟如下。
(1)選擇bsp:本系統(tǒng)開發(fā)板cpu是samsungsmdk2410s3c2410,所以選“s3c2410:armv4”bsp。
(2)選擇平臺類型。本文選擇了手持設(shè)備。在“available configurations”列表中,選擇“mobile handheld”,并輸入“platform name:sbc2410”。
(3)選擇基本類庫及所需要的網(wǎng)絡(luò)通信服務(wù),平臺配置完畢。
(4)右鍵單擊“sbc2410 features”選項(xiàng)的“setting…”。在對話框build option屬性頁中,選擇[enable full kernel mode],windows ce中所有線程都會運(yùn)行在核心態(tài)。這會使整個(gè)系統(tǒng)相對不穩(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)的形式列在特性目錄中。加入usb鍵盤鼠標(biāo)支持特性,加入usb移動存儲設(shè)備(u盤、移動硬盤)支持,加入打印機(jī)設(shè)備相關(guān)的驅(qū)動(如果不加入打印機(jī)設(shè)備相關(guān)的驅(qū)動,在編譯應(yīng)用程序時(shí)會出現(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設(shè)定在同一網(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)。有警告是正常的,因?yàn)槟承┙M件是有風(fēng)險(xiǎn)的,例如,一些網(wǎng)絡(luò)組件,所以只要沒有錯誤,說明定制沒有問題。
此時(shí),我們用usb電纜連接主機(jī)和目標(biāo)機(jī)(開發(fā)板),在pc端已安裝了samsung提供的usb驅(qū)動的前提下,使用2410提供的專用下載工具dnw把生成的nk.bin和nk.nb0下載到開發(fā)板中,這樣根據(jù)我們的目標(biāo)機(jī)系統(tǒng)定制的windows ce就可以在開發(fā)平臺上正常運(yùn)行了。
創(chuàng)建平臺sdk
sdk(software development kit, 即軟件開發(fā)工具包 )一般是一些被軟件工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。
完成了平臺的定制后,接著可以利用platform builder來創(chuàng)建sdk,sdk為平臺上其他應(yīng)用程序的開發(fā)提供支持。sdk(software development kit)是一系列頭文件、庫文件、文檔、平臺管理器和運(yùn)行時(shí)庫的總稱。一旦創(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來管理已經(jīng)安裝的sdk。注意,在安裝開發(fā)工具時(shí),默認(rèn)會安裝一個(gè)稱作“standard sdk”的sdk。由于windows ce操作系統(tǒng)特性,不可能存在“標(biāo)準(zhǔn)”的sdk。所謂standard sdk,只不過是微軟把windows ce中最常用的一些功能取出來作為一個(gè)“標(biāo)準(zhǔn)”的sdk,使用standard sdk開發(fā)的應(yīng)用程序,可在大多數(shù)windows ce平臺上運(yùn)行。但是standard sdk也并不是萬能的,例如,standard sdk不支持中文和directx等。platform builder提供了sdk wizard向?qū)?,來?chuàng)建和生成sdk,最后build過程完成后即可生成名為sbc2410_sdk.msi的sdk文件。此時(shí)在生成目錄中找到sbc2410_sdk.msi,雙擊安裝,就可以將生成的sdk安裝到evc中進(jìn)行應(yīng)用程序的開發(fā)了。
2 應(yīng)用軟件開發(fā)
目前,針對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)試和測試。但是必須安裝相應(yīng)的為特定平臺開發(fā)的sdk,本文就是自己導(dǎo)出的sdk。
智能家居系統(tǒng)的主機(jī)應(yīng)用程序通過兩個(gè)對話框?qū)崿F(xiàn)分機(jī)設(shè)備的基本讀/寫過程:measure對話框主要實(shí)現(xiàn)對輸入量信息的采集及對系統(tǒng)運(yùn)行狀態(tài)的監(jiān)視,control對話框主要用于主機(jī)發(fā)送控制信息給分機(jī)系統(tǒng)。這兩個(gè)對話框通過主窗體調(diào)用完成對整個(gè)家居系統(tǒng)的測量與控制。主機(jī)應(yīng)用程序流程圖如圖3所示。智能家居系統(tǒng)應(yīng)用程序以1路模擬量輸入、3路數(shù)字量輸入及相應(yīng)的4路輸出控制量為例實(shí)現(xiàn)智能控制功能。
圖3 主機(jī)應(yīng)用程序流程圖
evc,以太網(wǎng)虛連接(ethernet virtual connection),與atm技術(shù)中的pvc/svc的概念是非常類似的。evc是描述一種端到端的概念,我們可以把它想象成邏輯管道,以太網(wǎng)幀一旦進(jìn)入到管道中,是不會泄露的,除非從管道的另一個(gè)口子出來。evc可以更規(guī)范的描述成:“兩個(gè)或更多uni關(guān)聯(lián)起來的一個(gè)實(shí)例”。
evc在電信級以太網(wǎng)業(yè)務(wù)中扮演著非常重要的角色,依靠著在有限的網(wǎng)絡(luò)資源里構(gòu)建統(tǒng)計(jì)復(fù)用的邏輯管道,流量可以有效的隔離開來,通過對邏輯管道及其中的流量施加相應(yīng)的控制,電信級以太網(wǎng)就具有了比較完備的流量控制能力,這是成為電信級業(yè)務(wù)的重要特征。
evc的開發(fā)環(huán)境與visual c++基本一致。首先,選擇項(xiàng)目類型、項(xiàng)目存放路徑、項(xiàng)目名稱及平臺類型;然后選擇項(xiàng)目的樣式和支持的語言;接下來,確定一些其他的選項(xiàng);選擇完畢后,就可以得到一個(gè)程序的框架。項(xiàng)目類型我們選擇wce mfc appwizard,項(xiàng)目名稱為smarthome,在支持的cpu類型中我們選中了arm和x86(應(yīng)該根據(jù)開發(fā)環(huán)境來選擇)。對于我們來說,首先要在pc上進(jìn)行調(diào)試,然后編譯成適合使用的應(yīng)用程序,目標(biāo)機(jī)是arm cpu,所以我們需要wce x86和wce arm。(如果你要開發(fā)商用軟件或者想讓更多的人使用你的程序,應(yīng)該考慮更多種類的cpu)編譯運(yùn)行,成功啟動microsoft activesync同步軟件,這時(shí)可將在pc上生成的exe文件復(fù)制到移動設(shè)備下my documents文件夾下。智能家居系統(tǒng)應(yīng)用程序以1路模擬量、3路數(shù)字量輸入及相應(yīng)的4路輸出控制量為例實(shí)現(xiàn)智能控制功能,如圖4所示。
圖4 運(yùn)行界面
上一個(gè):mesto品牌工業(yè)閥門(原裝正品價(jià)格實(shí)惠)
下一個(gè):疲勞駕駛是危害公共安全罪嗎

溫濕度范圍
i32020配什么主板(i3臺式辦公夠用嗎)
陽春砂黃潛蠅防治
lol全屏任務(wù)欄不消失(lol全屏窗口)
游戲本性價(jià)比比較高的,性價(jià)比較高的游戲本推薦
N95呼吸阻力測試儀
十首超甜表白粵語情歌
桑樹斷梢病有效防治方法
“茶禪一味”與日常生活的相融
qq名字為什么是紅的變成綠的(qq名字為什么是紅色的)
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos