《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于LPC2214和μC/OS-II的家庭智能終端的設(shè)計(jì)與實(shí)現(xiàn)
基于LPC2214和μC/OS-II的家庭智能終端的設(shè)計(jì)與實(shí)現(xiàn)
摘要: 本文采用NXP公司的ARM7芯片LPC2214和μCOS-Ⅱ操作系統(tǒng)設(shè)計(jì)了硬件和軟件,,克服了8位單片機(jī)處理速度慢,、接口資源和存儲(chǔ)資源不足的限制。利用RS-485和藍(lán)牙網(wǎng)絡(luò)作為家庭內(nèi)部網(wǎng)絡(luò),,局域網(wǎng)和電話網(wǎng)絡(luò)作為外部網(wǎng)絡(luò),保證了大數(shù)據(jù)量傳輸?shù)姆€(wěn)定性和可靠性,,并且兼顧了傳統(tǒng)的電話網(wǎng)絡(luò)遠(yuǎn)程控制方式,。實(shí)踐表明。系統(tǒng)具有良好的實(shí)時(shí)性和穩(wěn)定性,,在高端家庭智能終端領(lǐng)域具有巨大的發(fā)展?jié)摿Α?
Abstract:
Key words :

        智能家居是指利用先進(jìn)的計(jì)算機(jī)技術(shù),、網(wǎng)絡(luò)通信技術(shù)、綜合布線技術(shù),,將與家居生活有關(guān)的名種子系統(tǒng)有機(jī)地結(jié)合,,通過(guò)統(tǒng)籌管理,使家居生活更加舒適,、安全,、有效。作為小區(qū)智能化的重要組成部分,,智能家居平臺(tái)是通過(guò)其核心——家庭智能終端實(shí)現(xiàn)家居智能化,。智能家居終端可實(shí)現(xiàn)系統(tǒng)信息的采集、信息輸入,、邏輯處理,、信息輸出、聯(lián)動(dòng)控制等功能,。早期的家庭智能終端網(wǎng)絡(luò)是基于電話網(wǎng)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控和遠(yuǎn)程控制,。由于電話網(wǎng)絡(luò)的帶寬限制以及較高的使用成本,使得家庭智能終端無(wú)法推廣。隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的發(fā)展,,基于IP技術(shù)的遠(yuǎn)程通信已經(jīng)成為家庭智能終端開(kāi)發(fā)的重點(diǎn),。目前,基于8位單片機(jī)和TCP/IP協(xié)議的遠(yuǎn)程通信設(shè)備已大量出現(xiàn),。但是由于8位單片機(jī)工作頻率和存儲(chǔ)量的限制,,使得操作系統(tǒng)和完整的IP協(xié)議無(wú)法移植,遠(yuǎn)程監(jiān)控和遠(yuǎn)程控制的實(shí)時(shí)性和大數(shù)據(jù)量可靠通信難以保證,,從而成為家庭智能終端開(kāi)發(fā)的瓶頸,。利用成熟的ARM芯片和μCOS-Ⅱ操作系統(tǒng),可以有效地解決這一難題,。

        ARM(Advanced RISC Maehines)是精簡(jiǎn)指令集計(jì)算機(jī),,它集成了典型的RISC結(jié)構(gòu)特性。除此之外,,ARM體系結(jié)構(gòu)還具有地址自動(dòng)增加和自動(dòng)減少的尋址模式,、多寄存器加載和存儲(chǔ)指令等特性。

        從最初開(kāi)發(fā)至今,,ARM已經(jīng)經(jīng)歷了5種主要的ARM指令集體系結(jié)構(gòu).以版本號(hào)V1-V5表示,。常見(jiàn)的ARM7、ARM9,、ARMl0,、SecurCore系列芯片都是ARM V4以上的體系結(jié)構(gòu)。ARM7TDMI系列芯片是目前應(yīng)用最廣泛的ARM芯片,。其廣泛應(yīng)用于多媒體和嵌入式設(shè)備,,包括Intemet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)設(shè)備以及移動(dòng)電話,、PDA等無(wú)線設(shè)備,。

        LPC2214是NXP公司生產(chǎn)的一種高性價(jià)比的ARM7TDMI(-S)芯片,主要應(yīng)用于Intemet網(wǎng)關(guān),、串行協(xié)議轉(zhuǎn)換,、訪問(wèn)控制等領(lǐng)域。

1 家庭智能終端的系統(tǒng)結(jié)構(gòu)與硬件組成

1.1 家庭智能終端的系統(tǒng)結(jié)構(gòu)

        家庭智能終端是家庭智能化的核心設(shè)備,,是家庭內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)的中轉(zhuǎn)站,。它通過(guò)各種協(xié)議轉(zhuǎn)換模塊和組網(wǎng)方式實(shí)現(xiàn)各項(xiàng)功能。該文提出的家庭智能終端主要具有以下功能:安全防范,、聯(lián)動(dòng)控制,、遠(yuǎn)程控制和監(jiān)控、信息采集,、家庭信息管理,。外部網(wǎng)絡(luò)利用局域網(wǎng)與遠(yuǎn)程終端(用戶終端,、小區(qū)管理終端、收費(fèi)終端等)進(jìn)行信息傳送,。此外考慮到因特網(wǎng)的不穩(wěn)定性,,系統(tǒng)還預(yù)留了PSTN接口以增加系統(tǒng)冗余。采用RS-485總線和藍(lán)牙技術(shù)實(shí)現(xiàn)家庭內(nèi)部網(wǎng)絡(luò),,將無(wú)線與有線相結(jié)合滿足更多設(shè)備的需要,。家庭智能終端的網(wǎng)絡(luò)系統(tǒng)如圖1所示。

1.2 家庭智能終端的硬件實(shí)現(xiàn)

        本文以LPC2214-S作為中心控制芯片,。LPC2214-S是基于實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI-S CPU的微控制器,,并帶有256KB的高速片內(nèi)Flash存儲(chǔ)器。片內(nèi)128位寬度的存儲(chǔ)器接口和加速器結(jié)構(gòu)可實(shí)現(xiàn)高達(dá)60MHz的操作頻率,。LPC2214還在片內(nèi)集成了16KB的SHAM,,并且提供了豐富的接口資源,包括2個(gè)16C550工業(yè)標(biāo)準(zhǔn)UART異步串行口,,1個(gè)高速PC接口(400Kbps),,2個(gè)SPI接口及112個(gè)GPl0口。其片內(nèi)Boot裝載程序可實(shí)現(xiàn)在系統(tǒng)編程(ISP)和在應(yīng)用編程(IAP),。此外芯片提供空閑和掉電兩種低功耗模式,。

        由此可以看出,LPC2214-S具有高性能,、低功耗,、接口資源豐富的特點(diǎn)。這些特點(diǎn)可以較好地滿足基于網(wǎng)絡(luò)的家庭智能終端的設(shè)計(jì)需要,。

        作為家庭自動(dòng)化的控制中心,家庭智能終端除了具有局域網(wǎng)接口,、PSTN接口,、RS-485接口、藍(lán)牙接口外,,還提供音頻視頻接口,、HUB接口、RS-232接口,、報(bào)警傳感器接口等,。這些接口可以實(shí)現(xiàn)音視頻自動(dòng)切換、多臺(tái)PC同時(shí)上網(wǎng),、與PC機(jī)結(jié)合完成家庭事物管理等功能,。圖2為家庭智能終端主控模塊的硬件實(shí)現(xiàn)圖。

1.3 家庭智能終端工作原理

        利用基于藍(lán)牙技術(shù)的遙控設(shè)備或基于RS-485總線的有線鍵盤(pán),,可以設(shè)置家庭智能終端的各項(xiàng)參數(shù),,打開(kāi)或關(guān)閉485總線或具有藍(lán)牙模塊的電器設(shè)備,設(shè)置報(bào)警模塊的報(bào)警方式、撤布防等,。此外遙控設(shè)備和鍵盤(pán)上還有緊急求助按鈕,,可以通過(guò)電話和網(wǎng)絡(luò)向遠(yuǎn)程管理中心發(fā)送報(bào)警信號(hào)。家庭智能終端還具有聯(lián)動(dòng)控制模塊,,當(dāng)485總線或藍(lán)牙網(wǎng)絡(luò)上的一個(gè)設(shè)備發(fā)生某個(gè)特定的動(dòng)作時(shí).可以引發(fā)另外一些設(shè)備做設(shè)定的狀態(tài)變化,,從而達(dá)到方便用戶和節(jié)省能耗的效果。以上介紹的是本地操作的工作原理,。關(guān)于遠(yuǎn)程控制和遠(yuǎn)程監(jiān)控,,本文提供了兩種方式:基于電話網(wǎng)絡(luò)和基于互聯(lián)網(wǎng)。由于基于電話網(wǎng)絡(luò)的遠(yuǎn)程控制和遠(yuǎn)程監(jiān)控已經(jīng)有了大量介紹,,這里主要介紹互聯(lián)網(wǎng)方式的遠(yuǎn)程控制和監(jiān)控,。

        家庭智能終端是通過(guò)Web技術(shù)提供遠(yuǎn)程監(jiān)控和控制服務(wù)的。用戶在任意一臺(tái)連接到因特網(wǎng)的PC機(jī)上打開(kāi)Windows IE,,登錄小區(qū)服務(wù)器,,輸入家庭智能終端的IP地址和相關(guān)密碼,使可以看到智能終端上的Web頁(yè),。在Web頁(yè)上可以查看家庭內(nèi)部網(wǎng)絡(luò)各種設(shè)備的狀態(tài).并且可以改變某些設(shè)備的狀態(tài),。這里利用小區(qū)網(wǎng)關(guān)完成小區(qū)局域同與外網(wǎng)的連接,小區(qū)內(nèi)部局域網(wǎng)上的IP地址可以使用私有地址,,從而節(jié)省費(fèi)用,。

2 家庭智能終端軟件設(shè)計(jì)

        嵌入實(shí)時(shí)操作系統(tǒng)μCOS-Ⅱ是一種占先式多任務(wù)操作系統(tǒng).可固化、可裁減,、移植性好,,具有良好的可靠性和穩(wěn)定性。它支持64個(gè)任務(wù),,具有信號(hào)量,、消息郵箱、消息隊(duì)列等多種進(jìn)程間通信機(jī)制,,已經(jīng)在商業(yè)領(lǐng)域得到了成功的應(yīng)用,。由于μCOS-Ⅱ操作系統(tǒng)本身并不帶TCP/IP協(xié)議棧,因此在操作系統(tǒng)上需要移植IP協(xié)議,。本文采用μCOS-Ⅱ+LWIP來(lái)實(shí)現(xiàn)家庭智能終端的網(wǎng)絡(luò)通信,。

2.1 家庭智能終端軟件的總體規(guī)劃

        家庭智能終端軟件部分包括遠(yuǎn)程通信模塊、RS-485通信模塊,、無(wú)線通信模塊,、232通信模塊、報(bào)警檢測(cè)模塊,、聯(lián)動(dòng)控制模塊以及電話和語(yǔ)音控制模塊,。根據(jù)以上劃分,,在μCOS-Ⅱ操作系統(tǒng)中定義了遠(yuǎn)程通信任務(wù)、485通信任務(wù),、232通信任務(wù),、報(bào)警檢測(cè)任務(wù)、聯(lián)動(dòng)控制任務(wù),、電話語(yǔ)音控制任務(wù)以及藍(lán)牙通信任務(wù),。各任務(wù)的優(yōu)先級(jí)和堆棧空間分配如表l,。

        軟件設(shè)計(jì)采用模塊化設(shè)計(jì),,保證程序具有良好的可移植性和可重用性,各種軟件模塊分別屬于不同的程序?qū)?。如圖3所示,,筆者將軟件模塊分為三個(gè)程序集合,即軟件的程序?qū)?。?nèi)層是μCOS-Ⅱ內(nèi)核,,承擔(dān)任務(wù)管理、內(nèi)存管理和時(shí)間管理功能,。應(yīng)用程序?qū)又饕瓿蓴?shù)據(jù)處理和請(qǐng)求內(nèi)核服務(wù)的功能,。中間件層移植和編寫(xiě)各部分通信協(xié)議和底層接口芯片的驅(qū)動(dòng)程序。圖3中最外圍層為硬件接口層,,它不是實(shí)際的軟件層,,并不做軟件編寫(xiě)工作。智能終端的軟件部分非常復(fù)雜,,由于篇幅所限,,本文重點(diǎn)介紹操作系統(tǒng)的移植和遠(yuǎn)程監(jiān)控及控制。
 

2.2 μCOS-Ⅱ操作系統(tǒng)在LPC2214上的移植

        將μCOS-Ⅱ操作系統(tǒng)移植到LPC2214上需要0S_CPU.H,、OS_CPEL_C.C,、OS_CPU_A.ASM三個(gè)文件。OS_CPU.H主要定義不依賴于編譯的數(shù)據(jù)類(lèi)型,、指定堆棧的生長(zhǎng)方式以及定義底層接口。

        為了具有良好的可移植性,,μCOS-Ⅱ并不使用C語(yǔ)言中的short,、im、long等數(shù)據(jù)類(lèi)型,,而是以整數(shù)數(shù)據(jù)類(lèi)型代替,。LPC2214有四種堆棧形式:滿遞減、滿遞增,、空遞減,、空遞增,,但是ADS1.2編譯器只支持滿遞減堆棧,即選擇由上向下增長(zhǎng)方式,。

        定義底層接口是為了在C語(yǔ)言中調(diào)用匯編代碼高效地完成某些系統(tǒng)服務(wù)功能,。本文采用軟中斷指令實(shí)現(xiàn)底層接口。底層接口代碼如下:

        OS_CPU_C.C文件首先根據(jù)LPC2214體系結(jié)構(gòu)和ADSl.2編譯器定義任務(wù)的堆棧結(jié)構(gòu),。在定義堆棧結(jié)構(gòu)的函數(shù):OS_STK OSTaskStkInit(void(*task)void(*pd).void*plat,,OS_STK**ptos,INT16U opt)中定義了一個(gè)全局變量OsEnterSum,主要用于對(duì)關(guān)中斷次數(shù)進(jìn)行計(jì)數(shù),這樣可以實(shí)現(xiàn)開(kāi)中斷和關(guān)中斷的嵌套,。此文件也包括實(shí)現(xiàn)軟中斷的詳細(xì)代碼,。

        此外,本文件還包括運(yùn)行多任務(wù)時(shí)系統(tǒng)啟動(dòng)前調(diào)用最高優(yōu)先級(jí)任務(wù)的函數(shù)void0SStartHighRdy(void)以及幾個(gè)供用戶編寫(xiě)的Hook函數(shù),。

        OS_CPU_A.ASM包括四個(gè)簡(jiǎn)單的匯編語(yǔ)言函數(shù):調(diào)用啟動(dòng)前最高優(yōu)先級(jí)任務(wù)函數(shù)OSStartHigh Rdy(),,從低優(yōu)先級(jí)任務(wù)切換到高優(yōu)先級(jí)任務(wù)的函數(shù)OSCtxSw()、OS-IntCtxSw(),,時(shí)鐘節(jié)拍中斷處理函數(shù)OSTickISR(),。任務(wù)切換函數(shù)在任務(wù)切換之前要利用堆棧保存被切換任務(wù)的有用狀態(tài)。LPC2214具有17個(gè)寄存器,,但并不是所有的寄存器都需要進(jìn)入堆棧,。為了節(jié)省堆棧空問(wèn)和減少切換時(shí)的時(shí)間開(kāi)銷(xiāo),,建立了一個(gè)任務(wù)切換時(shí)的堆棧結(jié)構(gòu),,如圖4所示。
 

2.3 遠(yuǎn)程監(jiān)控和遠(yuǎn)程控制

        遠(yuǎn)程監(jiān)控與遠(yuǎn)程控制的軟件設(shè)計(jì)采用客戶端一服務(wù)器方式,。TCP/IP協(xié)議的傳輸層有兩個(gè)數(shù)據(jù)傳輸協(xié)議:傳輸控制協(xié)議TCP和用戶數(shù)據(jù)報(bào)傳輸協(xié)議UDP,,二者各有特點(diǎn)。UDP協(xié)議是提供最少服務(wù)和費(fèi)用的協(xié)議,,它不基于連接來(lái)傳輸數(shù)據(jù),,因此UDP的傳送數(shù)據(jù)是不可靠的。TCP協(xié)議是基于連接的雙向傳輸?shù)目煽繑?shù)據(jù)傳輸協(xié)議,,但是TCP協(xié)議的使用費(fèi)用較高,。在智能終端的設(shè)計(jì)中,充分考慮了數(shù)據(jù)傳輸?shù)谋憷院涂煽啃?,并且鑒于ARM系統(tǒng)能夠提供足夠的資源,,根據(jù)數(shù)據(jù)的不同要求,采用了不同的傳輸層協(xié)議,。在軟件設(shè)計(jì)中使用Socket API函數(shù)來(lái)編寫(xiě)UDP和TCP通信任務(wù),。TCP和UDP通信時(shí),Socket API的應(yīng)用流程如圖5所示,。
 

        家庭智能終端是家庭內(nèi)外信息交換和家電控制的平臺(tái),。本文采用NXP公司的ARM7芯片LPC2214和μCOS-Ⅱ操作系統(tǒng)設(shè)計(jì)了硬件和軟件,,克服了8位單片機(jī)處理速度慢、接口資源和存儲(chǔ)資源不足的限制,。利用RS-485和藍(lán)牙網(wǎng)絡(luò)作為家庭內(nèi)部網(wǎng)絡(luò),,局域網(wǎng)和電話網(wǎng)絡(luò)作為外部網(wǎng)絡(luò),保證了大數(shù)據(jù)量傳輸?shù)姆€(wěn)定性和可靠性,,并且兼顧了傳統(tǒng)的電話網(wǎng)絡(luò)遠(yuǎn)程控制方式,。實(shí)踐表明。系統(tǒng)具有良好的實(shí)時(shí)性和穩(wěn)定性,,在高端家庭智能終端領(lǐng)域具有巨大的發(fā)展?jié)摿Α?/p>

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。