基于LPC2214的家庭智能終端的設計與實(shí)現
智能家居是指利用先進(jìn)的計算機技術(shù)、網(wǎng)絡(luò )通信技術(shù)、綜合布線(xiàn)技術(shù),將與家居生活有關(guān)的名種子系統有機地結合,通過(guò)統籌管理,使家居生活更加舒適、安全、有效。作為小區智能化的重要組成部分,智能家居平臺是通過(guò)其核心——家庭智能終端實(shí)現家居智能化。智能家居終端可實(shí)現系統信息的采集、信息輸入、邏輯處理、信息輸出、聯(lián)動(dòng)控制等功能。早期的家庭智能終端網(wǎng)絡(luò )是基于電話(huà)網(wǎng)實(shí)現遠程監控和遠程控制。由于電話(huà)網(wǎng)絡(luò )的帶寬限制以及較高的使用成本,使得家庭智能終端無(wú)法推廣。隨著(zhù)計算機技術(shù)和通信技術(shù)的發(fā)展,基于IP技術(shù)的遠程通信已經(jīng)成為家庭智能終端開(kāi)發(fā)的重點(diǎn)。目前,基于8位單片機和TCP/IP協(xié)議的遠程通信設備已大量出現。但是由于8位單片機工作頻率和存儲量的限制,使得操作系統和完整的IP協(xié)議無(wú)法移植,遠程監控和遠程控制的實(shí)時(shí)性和大數據量可靠通信難以保證,從而成為家庭智能終端開(kāi)發(fā)的瓶頸。利用成熟的ARM芯片和μCOS-Ⅱ操作系統,可以有效地解決這一難題。
ARM(Advanced RISC Maehines)是精簡(jiǎn)指令集計算機,它集成了典型的RISC結構特性。除此之外,ARM體系結構還具有地址自動(dòng)增加和自動(dòng)減少的尋
|
從最初開(kāi)發(fā)至今,ARM已經(jīng)經(jīng)歷了5種主要的ARM指令集體系結構.以版本號V1-V5表示。常見(jiàn)的ARM7、ARM9、ARMl0、SecurCore系列芯片都是ARM V4以上的體系結構。ARM7TDMI系列芯片是目前應用最廣泛的ARM芯片。其廣泛應用于多媒體和嵌入式設備,包括Intemet設備、網(wǎng)絡(luò )和調制解調設備以及移動(dòng)電話(huà)、PDA等無(wú)線(xiàn)設備。
PLC2214是PhiliFs公司生產(chǎn)的一種高性?xún)r(jià)比的ARM7TDMI(-S)芯片,主要應用于Intemet網(wǎng)關(guān)、串行協(xié)議轉換、訪(fǎng)問(wèn)控制等領(lǐng)域。
1 家庭智能終端的系統結構與硬件組成
1.1 家庭智能終端的系統結構
家庭智能終端是家庭智能化的核心設備,是家庭內部網(wǎng)絡(luò )與外部網(wǎng)的中轉站。它通過(guò)各種協(xié)議轉換模塊和組網(wǎng)方式實(shí)現各項功能。該文提出的家庭智能終端主要具有以下功能:安全防范、聯(lián)動(dòng)控制、遠程控制和監控、信息采集、家庭信息管理。外部網(wǎng)絡(luò )利用局域網(wǎng)與遠程終端(用戶(hù)終端、小區管理終端、收費終端等)進(jìn)行信息傳送。此外考慮到因特網(wǎng)的不穩定性,系統還預留了PSTN接口以增加系統冗余。采用RS-485總線(xiàn)和藍牙技術(shù)實(shí)現家庭內部網(wǎng)絡(luò ),將無(wú)線(xiàn)與有線(xiàn)相結合滿(mǎn)足更多設備的需要。家庭智能終端的網(wǎng)絡(luò )系統如圖1所示。
1.2 家庭智能終端的硬件實(shí)現
本文以LPC2214-S作為中心控制芯片。LPC2214-S是基于實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI-S CPU的微控制器,并帶有256KB的高速片內Flash存儲器。片內128位寬度的存儲器接口和加速器結構可實(shí)現高達60MHz的操作頻率。LPC2214還在片內集成了16KB的SHAM,并且提供了豐富的接口資源,包括2個(gè)16C550工業(yè)標準UART異步串行口,1個(gè)高速PC接口(400Kbps),2個(gè)SPI接口及112個(gè)GPl0口。其片內Boot裝載程序可實(shí)現在系統編程(ISP)和在應用編程(IAP)。此外芯片提供空閑和掉電兩種低功耗模式。
由此可以看出,LPC2214-S具有高性能、低功耗、接口資源豐富的特點(diǎn)。這些特點(diǎn)可以較好地滿(mǎn)足基于網(wǎng)絡(luò )的家庭智能終端的設計需要。
作為家庭自動(dòng)化的控制中心,家庭智能終端除了具有局域網(wǎng)接口、PSTN接口、RS-485接口、藍牙接口外,還提供音頻視頻接口、HUB接口、RS-232接口、報警傳感器接口等。這些接口可以實(shí)現音視頻自動(dòng)切換、多臺PC同時(shí)上網(wǎng)、與PC機結合完成家庭事物管理等功能。圖2為家庭智能終端主控模塊的硬件實(shí)現圖。
1.3 家庭智能終端工作原理
利用基于藍牙技術(shù)的遙控設備或基于RS-485總線(xiàn)的有線(xiàn)鍵盤(pán),可以設置家庭智能終端的各項參數,打開(kāi)或關(guān)閉485總線(xiàn)或具有藍牙模塊的電器設備,設置報警模塊的報警方式、撤布防等。此外遙控設備和鍵盤(pán)上還有緊急求助按鈕,可以通過(guò)電話(huà)和網(wǎng)絡(luò )向遠程管理中心發(fā)送報警信號。家庭智能終端還具有聯(lián)動(dòng)控制模塊,當485總線(xiàn)或藍牙網(wǎng)絡(luò )上的一個(gè)設備發(fā)生某個(gè)特定的動(dòng)作時(shí).可以引發(fā)另外一些設備做設定的狀態(tài)變化,從而達到方便用戶(hù)和節省能耗的效果。以上介紹的是本地操作的工作原理。關(guān)于遠程控制和遠程監控,本文提供了兩種方式:基于電話(huà)網(wǎng)絡(luò )和基于互聯(lián)網(wǎng)。由于基于電話(huà)網(wǎng)絡(luò )的遠程控制和遠程監控已經(jīng)有了大量介紹,這里主要介紹互聯(lián)網(wǎng)方式的遠程控制和監控。
家庭智能終端是通過(guò)Web技術(shù)提供遠程監控和控制服務(wù)的。用戶(hù)在任意一臺連接到因特網(wǎng)的PC機上打開(kāi)Windows IE,登錄小區服務(wù)器,輸入家庭智能終端的IP地址和相關(guān)密碼,使可以看到智能終端上的Web頁(yè)。在Web頁(yè)上可以查看家庭內部網(wǎng)絡(luò )各種設備的狀態(tài).并且可以改變某些設備的狀態(tài)。這里利用小區網(wǎng)關(guān)完成小區局域同與外網(wǎng)的連接,小區內部局域網(wǎng)上的IP地址可以使用私有地址,從而節省費用。
2 家庭智能終端軟件設計
嵌入實(shí)時(shí)操作系統μCOS-Ⅱ是一種占先式多任務(wù)操作系統.可固化、可裁減、移植性好,具有良好的可靠性和穩定性。它支持64個(gè)任務(wù),具有信號量、消息郵箱、消息隊列等多種進(jìn)程間通信機制,已經(jīng)在商業(yè)領(lǐng)域得到了成功的應用。由于μCOS-Ⅱ操作系統本身并不帶TCP/IP協(xié)議棧,因此在操作系統上需要移植IP協(xié)議。本文采用μCOS-Ⅱ+LWIP來(lái)實(shí)現家庭智能終端的網(wǎng)絡(luò )通信。
2.1 家庭智能終端軟件的總體規劃
家庭智能終端軟件部分包括遠程通信模塊、RS-485通信模塊、無(wú)線(xiàn)通信模塊、232通信模塊、報警檢測模塊、聯(lián)動(dòng)控制模塊以及電話(huà)和語(yǔ)音控制模塊。根據以上劃分,在μCOS-II操作系統中定義了遠程通信任務(wù)、485通信任務(wù)、232通信任務(wù)、報警檢測任務(wù)、聯(lián)動(dòng)控制任務(wù)、電話(huà)語(yǔ)音控制任務(wù)以及藍牙通信任務(wù)。各任務(wù)的優(yōu)先級和堆??臻g分配如表l。
軟件設計采用模 塊化設計,保證程序具有良好的可移植性和可重用性,各種軟件模塊分別屬于不同的程序層。如圖3所示,筆者將軟件模塊分為三個(gè)程序集合,即軟件的程序層。內層是μCOS-Ⅱ內核,承擔任務(wù)管理、內存管理和時(shí)間管理功能。應用程序層主要完成數據處理和請求內核服務(wù)的功能。中間件層移植和編寫(xiě)各部分通信協(xié)議和底層接口芯片的驅動(dòng)程序。圖3中最外圍層為硬件接口層,它不是實(shí)際的軟件層,并不做軟件編寫(xiě)工作。智能終端的軟件部分非常復雜,由于篇幅所限,本文重點(diǎn)介紹操作系統的移植和遠程監控及控制。
2.2 μCOS-II操作系統在LPC2214上的移植
將μCOS-Ⅱ操作系統移植到PLC2214上需要0S_CPU.H、OS_CPEL_C.C、OS_CPU_A.ASM三個(gè)文件。OS_CPU.H主要定義不依賴(lài)于編譯的數據類(lèi)型、指定堆棧的生長(cháng)方式以及定義底層接口。
為了具有良好的可移植性,μCOS-II并不使用C語(yǔ)言中的short、im、long等數據類(lèi)型,而是以整數數據類(lèi)型代替。PLC2214有四種堆棧形式:滿(mǎn)遞減、滿(mǎn)遞增、空遞減、空遞增,但是ADS1.2編譯器只支持滿(mǎn)遞減堆棧,即選擇由上向下增長(cháng)方式。
定義底層接口是為了在C語(yǔ)言中調用匯編代碼高效地完成某些系統服務(wù)功能。本文采用軟中斷指令實(shí)現底層接口。底層接口代碼如下:
OS_CPU_C.C文件首先根據PLC2214體系結構和ADSl.2編譯器定義任務(wù)的堆棧結構。在定義堆棧結構的函數:OS_STK OSTaskStkInit(void(*task)void(*pd).void*plat,OS_STK**ptos,INT16U opt)中定義了一個(gè)全局變量OsEnterSum,主要用于對關(guān)中斷次數進(jìn)行計數,這樣可以實(shí)現開(kāi)中斷和關(guān)中斷的嵌套。此文件也包括實(shí)現軟中斷的詳細代碼。
此外,本文件還包括運行多任務(wù)時(shí)系統啟動(dòng)前調用最高優(yōu)先級任務(wù)的函數void0SStartHighRdy(void)以及幾個(gè)供用戶(hù)編寫(xiě)的Hook函數。
OS_CPU_A.ASM包括四個(gè)簡(jiǎn)單的匯編語(yǔ)言函數:調用啟動(dòng)前最高優(yōu)先級任務(wù)函數OSStartHigh Rdy(),從低優(yōu)先級任務(wù)切換到高優(yōu)先級任務(wù)的函數OSCtxSw()、OS-IntCtxSw(),時(shí)鐘節拍中斷處理函數OSTickISR()。任務(wù)切換函數在任務(wù)切換之前要利用堆棧保存被切換任務(wù)的有用狀態(tài)。LPC2214具有17個(gè)寄存器,但并不是所有的寄存器都需要進(jìn)入堆棧。為了節省堆??諉?wèn)和減少切換時(shí)的時(shí)間開(kāi)銷(xiāo),建立了一個(gè)任務(wù)切換時(shí)的堆棧結構,如圖4所示。
2.3 遠程監控和遠程控制
遠程監控與遠程控制的軟件設計采用客戶(hù)端一服務(wù)器方式。TCP/IP協(xié)議的傳輸層有兩個(gè)數據傳輸協(xié)議:傳輸控制協(xié)議TCP和用戶(hù)數據報傳輸協(xié)議UDP,二者各有特點(diǎn)。UDP協(xié)議是提供最少服務(wù)和費用的協(xié)議,它不基于連接來(lái)傳輸數據,因此UDP的傳送數據是不可靠的。TCP協(xié)議是基于連接的雙向傳輸的可靠數據傳輸協(xié)議,但是TCP協(xié)議的使用費用較高。在智能終端的設計中,充分考慮了數據傳輸的便利性和可靠性,并且鑒于A(yíng)RM系統能夠提供足夠的資源,根據數據的不同要求,采用了不同的傳輸層協(xié)議。在軟件設計中使用Socket API函數來(lái)編寫(xiě)UDP和TCP通信任務(wù)。TCP和UDP通信時(shí),Socket API的應用流程如圖5所示。
家庭智能終端是家庭內外信息交換和家電控制的平臺。本文采用Philipes公司的ARM7芯片LPC2214設計了硬件和軟件,克服了8位單片機處理速度慢、接口資源和存儲資源不足的限制。利用RS-485和藍牙網(wǎng)絡(luò )作為家庭內部網(wǎng)絡(luò ),局域網(wǎng)和電話(huà)網(wǎng)絡(luò )作為外部網(wǎng)絡(luò ),保證了大數據量傳輸的穩定性和可靠性,并且兼顧了傳統的電話(huà)網(wǎng)絡(luò )遠程控制方式。實(shí)踐表明。系統具有良好的實(shí)時(shí)性和穩定性,在高端家庭智能終端領(lǐng)域具有巨大的發(fā)展潛力。
評論