鐘峰
摘要:嵌入式系統(tǒng)的應(yīng)用已經(jīng)成為研究的熱點(diǎn),該文從嵌入式系統(tǒng)的選題、需求分析、軟硬件設(shè)計(jì)及調(diào)試等進(jìn)行了詳細(xì)介紹和設(shè)計(jì)實(shí)例。力圖為人們今后的學(xué)習(xí)、工作和研究提供一定的幫助與借鑒。
關(guān)鍵詞:嵌入式;無線傳感器;應(yīng)用
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)02-0256-02
1 嵌入式系統(tǒng)的概述
嵌入式系統(tǒng)本身是一個相對模糊的定義。一種被廣泛認(rèn)可的定義是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。它與通用計(jì)算機(jī)技術(shù)最大的差異是必須支持硬件裁剪和軟件裁剪,以適應(yīng)應(yīng)用系統(tǒng)對體積、功能、功耗、可靠性和成本等的特殊要求。
嵌入式系統(tǒng)的開發(fā)主要可分為硬件層、驅(qū)動層、操作系統(tǒng)層和應(yīng)用層等4個。
硬件層:硬件層開發(fā)的主要工作是根據(jù)應(yīng)用的需求選擇適合的嵌入式處理器芯片,配置相應(yīng)的接口電器,為嵌入式應(yīng)用搭建一個硬件平臺。
驅(qū)動層:該層是介于嵌入式硬件和上層軟件之間的一個底層軟件開發(fā)包,主要目的是屏蔽下層硬件。本層一般有兩種功能:一是系統(tǒng)引導(dǎo),包括嵌入式處理器和基本芯片的初始化;二是提供設(shè)備的驅(qū)動接口,負(fù)責(zé)嵌入式系統(tǒng)與外設(shè)的信息交互。
操作系統(tǒng)層:嵌入式操作系統(tǒng)是嵌入式系統(tǒng)極為重要的組成部分。通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面等。嵌入式操作系統(tǒng)還可以分為實(shí)時操作系統(tǒng)和分時操作系統(tǒng)。
應(yīng)用層:應(yīng)用層的基本任務(wù)則相對簡單,主要是開發(fā)最終運(yùn)行在目標(biāo)機(jī)上的應(yīng)用軟件。如嵌入式游戲、家電控制軟件和多媒體播放軟件等。
2 嵌入式應(yīng)用系統(tǒng)的開發(fā)步驟
對于嵌入式應(yīng)用系統(tǒng)的一般開發(fā)步驟主要可分為以下幾個步驟。
1)方案論證:應(yīng)用系統(tǒng)的開發(fā)首先要確定開發(fā)題目,然后圍繞題目進(jìn)行方案調(diào)研。這個過程至關(guān)重要。制定方案的好壞,會直接影響以后開發(fā)工作的順利進(jìn)行。調(diào)研內(nèi)容則主要為了解決了解用戶需求,掌握軟硬件技術(shù)難度,針對主攻問題開展調(diào)研工作等問題。嵌入式應(yīng)用開發(fā)技術(shù)是一個軟硬件相結(jié)合的技術(shù),方案的論證設(shè)計(jì)還要權(quán)衡任務(wù)的軟硬件分工,盡量采納可借鑒的成熟技術(shù)。
2)硬件系統(tǒng)的設(shè)計(jì):硬件系統(tǒng)的設(shè)計(jì)主要包括處理器芯片的選擇、各個功能部件的選擇和接口的設(shè)計(jì)等。在處理器芯片的選擇上,大多要考慮所設(shè)計(jì)產(chǎn)品的應(yīng)用角度,綜合考慮性能、成本、技術(shù)支持等因素,選取滿足系統(tǒng)要求的芯片。功能部件的選擇一般都在相應(yīng)的輸入/輸出部件如數(shù)據(jù)采集系統(tǒng)的傳感器、控制系統(tǒng)的驅(qū)動部件和輸入用的鍵盤和鼠標(biāo)等。接口設(shè)計(jì)則要將硬件系統(tǒng)的各個功能模塊與微處理器連接到一起,構(gòu)成滿足對象全部要求的單片機(jī)硬件環(huán)境。
3)應(yīng)用軟件的設(shè)計(jì):應(yīng)用系統(tǒng)中任務(wù)的實(shí)現(xiàn)最終依靠程序的執(zhí)行來完成。應(yīng)用軟件設(shè)計(jì)的好壞,將決定系統(tǒng)的效率和優(yōu)劣。應(yīng)用軟件的設(shè)計(jì)依據(jù)就是使用流程。系統(tǒng)的控制流程和軟件模塊都要根據(jù)使用流程來確定。
4)軟硬件調(diào)試:一個嵌入式應(yīng)用系統(tǒng)的開發(fā),經(jīng)過了方案論證、硬件設(shè)計(jì)、軟件編寫和印刷板加工和焊接后,還要進(jìn)行軟硬件的調(diào)試來驗(yàn)證其設(shè)計(jì)的準(zhǔn)確性。利用開發(fā)裝置進(jìn)行調(diào)試時,應(yīng)先把硬件電路調(diào)通。硬件調(diào)試可采用分塊調(diào)試的方法先易后難、先局部再整體。對于分塊調(diào)試還可編制相應(yīng)模塊的測試程序。硬件調(diào)試成功后,驗(yàn)證存儲空間分配可行時,進(jìn)行自上而下的主程序設(shè)計(jì)調(diào)試。程序調(diào)試可在DEBUG環(huán)境下采用斷電調(diào)試或連續(xù)調(diào)試等方法進(jìn)行。
3 無線傳感器網(wǎng)絡(luò)應(yīng)用實(shí)例
“以應(yīng)用為中心”是嵌入式系統(tǒng)的基本特點(diǎn)?;跓o線傳感器網(wǎng)絡(luò)的安防系統(tǒng)在開發(fā)設(shè)計(jì)時也充分體現(xiàn)了這一特點(diǎn)。
1)系統(tǒng)的功能:在設(shè)計(jì)一個網(wǎng)絡(luò)系統(tǒng)前必須首先明確系統(tǒng)設(shè)計(jì)的需求。這樣才能順利規(guī)劃處系統(tǒng)功能以及功能模塊,從而確定系統(tǒng)的設(shè)計(jì)規(guī)模和總體框架。無線傳感器監(jiān)測系統(tǒng)主要需對監(jiān)測區(qū)域能夠?qū)崿F(xiàn)實(shí)時監(jiān)測,主控制器通過監(jiān)測無線傳感器的輸入信號進(jìn)行分析判別。在有報(bào)警信息時,由驅(qū)動報(bào)警輸出模塊輸出報(bào)警信息。
2)系統(tǒng)的主要模塊:根據(jù)系統(tǒng)網(wǎng)絡(luò)功能分析可知,系統(tǒng)的主要功能模塊將由無線傳感器模塊、控制器模塊和報(bào)警輸出模塊構(gòu)成??刂颇K是系統(tǒng)的控制中心,控制協(xié)調(diào)整個系統(tǒng)的操作運(yùn)行;無線傳感器模塊用來對監(jiān)測對象環(huán)境進(jìn)行實(shí)時監(jiān)測;報(bào)警輸出模塊則在發(fā)現(xiàn)有報(bào)警信息時,驅(qū)動報(bào)警輸出模塊輸出報(bào)警信息。
3)系統(tǒng)的框架組成:
系統(tǒng)的框架主要由通信模塊、控制器、報(bào)警輸出模塊和傳感器模塊構(gòu)成。其布局框架和相互關(guān)系具體如圖1所示。
4)系統(tǒng)的操作流程:明確了系統(tǒng)的框架組成和模塊之后,則可以很清晰的繪制出流程圖,然后由此確定出系統(tǒng)的控制流程和軟件模塊。系統(tǒng)網(wǎng)絡(luò)一旦通電后即可開始運(yùn)行,進(jìn)入布防狀態(tài)。在布防狀態(tài)下,當(dāng)傳感器檢測到報(bào)警信息時則向控制器發(fā)出信號,由驅(qū)動報(bào)警輸出模塊完成輸出報(bào)警等活動。如果在布防狀態(tài)下,接收到了有遙控手柄發(fā)出的撤防命令后,進(jìn)入撤防狀態(tài)。
4 系統(tǒng)設(shè)計(jì)
系統(tǒng)搭建思路完成之后,一般認(rèn)識到該系統(tǒng)的主要功能模塊得出的系統(tǒng)設(shè)計(jì)方案均需包含無線傳感器模塊、控制器模塊和報(bào)警輸出模塊等。
1)硬件設(shè)計(jì)
硬件設(shè)計(jì)首先要考慮無線傳感器技術(shù)。當(dāng)前應(yīng)用比較廣泛的傳感器技術(shù)包含有無線門磁感應(yīng)器、無線煙霧傳感器、無線紅外線熱釋電人體傳感器和無線遙控手柄等。無線門磁傳感器主要是監(jiān)測系統(tǒng)防護(hù)對象門窗的開關(guān)狀態(tài)。當(dāng)門窗不論以何種方式被打開后,無線門磁感應(yīng)器將立即發(fā)出特定的電波,向主機(jī)報(bào)警。無線紅外線熱釋電人體傳感器主要用于探測活動的人體。無線煙霧傳感器的主要價(jià)值就體現(xiàn)在其采用離子式煙霧傳感,可廣泛應(yīng)用于各種消防報(bào)警系統(tǒng)。
報(bào)警輸出模塊可以采用就地聲光報(bào)警、電話線路遠(yuǎn)程報(bào)警和發(fā)送短信等方式完成報(bào)警信息。值得一提的是就地聲光報(bào)警只能驚動非法入侵者,若無人在場則起不到報(bào)警作用,而電話線遠(yuǎn)程報(bào)警雖然可以實(shí)現(xiàn)遠(yuǎn)程報(bào)警功能,但是若入侵者事先切斷報(bào)警線路,則報(bào)警也會失效。所以,隨著GSM移動通信網(wǎng)絡(luò)的普及,利用GSM模塊實(shí)現(xiàn)基于遠(yuǎn)程消息的報(bào)警方式可以有效達(dá)到報(bào)警目的。而這一切的操作都要在控制器的操作運(yùn)行下完成。
2)接口設(shè)計(jì)
該系統(tǒng)中的接口設(shè)計(jì)主要考慮無線傳感器網(wǎng)絡(luò)的接口設(shè)計(jì)和報(bào)警輸出模塊的接口設(shè)計(jì)。傳感器的接入可采用有線接入和無線接入。受到傳輸距離、環(huán)境和可變性等多種因素的影響,傳統(tǒng)安全防范工作中大多采用有線方式連接。無線傳感器的連接則可以免去繁瑣的接線工作,直接通過RF射頻技術(shù)實(shí)現(xiàn)。
為了實(shí)現(xiàn)以短信方式的輸出報(bào)警,則該系統(tǒng)的輸出模塊接口設(shè)計(jì)采用GSM模塊,通過UART串行接口與主控制器連接。
3)軟件設(shè)計(jì)
系統(tǒng)控制器的工作主要通過執(zhí)行程序來實(shí)現(xiàn)。程序軟件的設(shè)計(jì)主要有主程序、布撤防控制中斷服務(wù)程序、傳感器中斷服務(wù)程序和報(bào)警短信發(fā)送程序等幾部分。主程序?yàn)殚_機(jī)初始化啟動,其他程序則均以中斷方式啟動。
① 主程序。主程序的控制流程主要是在系統(tǒng)通電開機(jī)以后,依次完成系統(tǒng)時鐘、LED、蜂鳴器、UART口、GPIO口的初始化等工作,然后延時十幾秒左右等待GSM模塊的初始化。最后調(diào)用init_sim()等函數(shù),完成初始化響應(yīng)后,系統(tǒng)進(jìn)入循環(huán),等待中斷事件。
② 布撤防控制中斷服務(wù)程序。其啟動由按鈕引發(fā)。系統(tǒng)的開、關(guān)傳感器(GPIO)被相應(yīng)的打開和關(guān)閉,然后通過設(shè)置高優(yōu)先級達(dá)到控制低優(yōu)先級的布撤防控要求。同時伴以LED燈的亮滅和蜂鳴器的不同提示音來達(dá)到指示布撤防的成功與否。
③ 傳感器中斷服務(wù)程序。傳感器動作時引發(fā)中斷服務(wù)后,首先要確定引發(fā)中斷的傳感器號,然后發(fā)送相應(yīng)的報(bào)警短信。傳感器號的數(shù)量可根據(jù)實(shí)際需要添加。
④ 報(bào)警短信發(fā)送程序。報(bào)警主要通過UART接口,向GSM模塊發(fā)送AT命令來實(shí)現(xiàn)。短信發(fā)送是一個AT命令執(zhí)行的過程,這里將短信息的格式設(shè)為PDU模式。
4)軟硬件調(diào)試
在所有開發(fā)裝置調(diào)試通過的程序,最終都要下載到應(yīng)用系統(tǒng)中的程序存儲器內(nèi)進(jìn)行脫機(jī)運(yùn)行。若脫機(jī)運(yùn)行正常則完成,若運(yùn)行有問題則應(yīng)分析原因,并修改程序重新輸入。
5 結(jié)束語
在計(jì)算機(jī)技術(shù)和信息網(wǎng)絡(luò)技術(shù)大發(fā)展的環(huán)境下,嵌入式系統(tǒng)的應(yīng)用越來越廣泛,而嵌入式產(chǎn)品以其小巧、使用方便、實(shí)用等特點(diǎn)越來越受到人們的青睞。嵌入式系統(tǒng)開發(fā),從選題、需求分析、軟硬件設(shè)計(jì)及調(diào)試等的研究,對嵌入式技術(shù)的推廣和產(chǎn)品的開發(fā)具有很大的促進(jìn)作用,符合社會對創(chuàng)新型、應(yīng)用型人才的需要。
參考文獻(xiàn):
[1] 紀(jì)君峰. 基于QT/E的嵌入式系統(tǒng)研究及應(yīng)用[D]. 北京郵電大學(xué), 2008.
[2] 房好帥,李楠,王慧娟. 基于ARM與ZigBee的嵌入式無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的設(shè)計(jì)[J]. 北華航天工業(yè)學(xué)院學(xué)報(bào). 2010(6).
[3] 銀強(qiáng). 對計(jì)算機(jī)嵌入式實(shí)時操作系統(tǒng)的研究及分析[J]. 價(jià)值工程, 2010(36).
[4] 王漫, 何寧. 面向無線傳感器網(wǎng)絡(luò)應(yīng)用的嵌入式操作系統(tǒng)綜述[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2007(6).