主頁(yè)(http://www.130131.com):基于A(yíng)RM嵌入式的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)
基于arm 內(nèi)核的嵌入式系統(tǒng)在遠(yuǎn)程監(jiān)控報(bào)警系統(tǒng)中的設(shè)計(jì)實(shí)現(xiàn)與應(yīng)用。核心部分主要包 括 arm 嵌入式平臺(tái)設(shè)計(jì)及 μC-OS 嵌入式實(shí)時(shí)操作系統(tǒng)移植;人機(jī)交互界面 μCGUI 的設(shè)計(jì)與實(shí)現(xiàn);遠(yuǎn)程通 訊及自動(dòng)報(bào)警等;系統(tǒng)的設(shè)計(jì)還考慮到了擴(kuò)展性和通用性以及與其他監(jiān)控設(shè)備無(wú)縫連接等問(wèn)題。 1 引言 監(jiān)控系統(tǒng)現(xiàn)已成為現(xiàn)代化生產(chǎn)、生活中不可缺少的重要組成部分。目前,監(jiān)控系列產(chǎn)品 種類(lèi)繁多,大部分廣泛應(yīng)用于交通、醫(yī)院、銀行、家居、學(xué)校等安防領(lǐng)域。 隨著嵌入式系統(tǒng)的出現(xiàn),尤其是基于 arm 內(nèi)核芯片的嵌入式系統(tǒng)的出現(xiàn),使得監(jiān)控系統(tǒng)的應(yīng)用領(lǐng)域更為廣泛。本文設(shè)計(jì)的遠(yuǎn)程監(jiān)控報(bào)警系統(tǒng)除了作為安防功能外,還可以應(yīng)用于 以下領(lǐng)域:通訊領(lǐng)域:遠(yuǎn)程通訊、視頻會(huì)議和視頻點(diǎn)播、證券、遠(yuǎn)程教育等。醫(yī)療領(lǐng)域:病 房監(jiān)護(hù)、遠(yuǎn)程診斷等。工業(yè)領(lǐng)域:遠(yuǎn)程設(shè)備診斷、維護(hù)、維修,遠(yuǎn)程生產(chǎn)監(jiān)控等。家用領(lǐng)域:家用電器遠(yuǎn)程維護(hù);電、氣、火等重大事故自動(dòng)報(bào)警等。 2 系統(tǒng)設(shè)計(jì) 2.1系統(tǒng)組成 本文設(shè)計(jì)的遠(yuǎn)程監(jiān)控系統(tǒng)主要由中心控制器、數(shù)據(jù)終端、傳感器模塊、通訊模塊、接口模塊等幾部分組成。系統(tǒng)組成圖(如圖 1)。 
2.2中心控制器 系統(tǒng)核心負(fù)責(zé)數(shù)據(jù)采集判斷處理。為了提高系統(tǒng)工作效率,這里使用的是三星公司的 S3C2410芯片作為處理器。S3C2410 芯片是一款高性?xún)r(jià)比的 ARM 芯片,非常適合作手機(jī)、PDA 等手持設(shè)備。主要特性包括: arm920T 內(nèi)核,最高工作頻率 203MHz,LCD 控制器:可直接驅(qū)動(dòng)真彩液晶屏,最高支持 2048×1024 真彩液晶屏,2 個(gè) USB Host端口,1 個(gè)USB Device端口,支持 Nand flash 啟動(dòng)模式,SD 卡接口,UART、IIC、SPI、IIS 等多種類(lèi) 型串行接口, 4 通道DMA。 本文的監(jiān)控系統(tǒng)的 CPU 核心部分使用的是標(biāo)準(zhǔn)的 SO-DIMM200 金手指接口,便于后期 維護(hù)和升級(jí)。如果該監(jiān)控系統(tǒng)的使用環(huán)境較為苛刻,可以將 CPU替換為S3C2440芯片。 S3C2440完全兼容S3C2410全部特性(注意:芯片引腳不完全兼容)。與S3C2410芯片相比,S3C2440的性能更為優(yōu)越:最高工作頻率可達(dá)500MHz,內(nèi)部集成CMOS攝像頭接口,但價(jià)格較昂貴。 2.3數(shù)據(jù)終端 數(shù)據(jù)終端的主要功能是對(duì)監(jiān)控?cái)?shù)據(jù)進(jìn)行分析、處理,及時(shí)將數(shù)據(jù)匯報(bào)給監(jiān)控人員。同時(shí),監(jiān)控人員可以根據(jù)現(xiàn)場(chǎng)情況,使用數(shù)據(jù)終端對(duì)監(jiān)控的設(shè)備進(jìn)行遠(yuǎn)程控制。數(shù)據(jù)終端最大優(yōu)勢(shì) 就是安全、可靠、便于攜帶。一般情況下為了節(jié)約成本,可以將手機(jī)、PDA 等移動(dòng)通訊設(shè) 備作為數(shù)據(jù)終端使用。但是如果作為對(duì)高危環(huán)境或精密儀器的監(jiān)控系統(tǒng),數(shù)據(jù)終端需要專(zhuān)業(yè) 定制。這里使用的是中心控制器的作為數(shù)據(jù)終端,即中心控制器既作為數(shù)據(jù)采集發(fā)送中心,也可數(shù)據(jù)接收處理中心使用。
2.4通訊模塊 通訊模塊主要負(fù)責(zé)遠(yuǎn)程數(shù)據(jù)通訊。帶有 RS232/485、GPRS、CDMA 等一種或多種通訊 方式。需要根據(jù)現(xiàn)場(chǎng)環(huán)境和用戶(hù)需要進(jìn)行定制。通訊模塊與控制器通過(guò)接口總線(xiàn)連接,連接 方式為 TTL/RS232/RS485 等。 2.5傳感器模塊 傳感器模塊的主要功能是感知外部環(huán)境,對(duì)外部環(huán)境進(jìn)行實(shí)時(shí)監(jiān)測(cè)。由人體紅外傳感器、 振動(dòng)傳感器、超聲波傳感器、可燃?xì)怏w傳感器、溫度傳感器、濕度傳感器等一種或多種傳感 器組成?筛鶕(jù)現(xiàn)場(chǎng)監(jiān)測(cè)環(huán)境不同進(jìn)行定制。 2.6接口模塊 接口模塊主要作為系統(tǒng)擴(kuò)展功能使用,將控制器的 A/D 轉(zhuǎn)換、I2C、SPI 等多種接口進(jìn)行 外部擴(kuò)展。接口模塊沒(méi)有特定的功能,但可以根據(jù)需要與其他設(shè)備連接,例如可以與工業(yè)儀 器儀表或設(shè)備連接,實(shí)時(shí)對(duì)儀器或設(shè)備進(jìn)行監(jiān)控。 接口模塊雖然不是監(jiān)控系統(tǒng)的主要部分,但是對(duì)于整個(gè)系統(tǒng)來(lái)說(shuō)卻是不可缺少。因?yàn)楸疚牡谋O(jiān)控系統(tǒng)主要考慮到了系統(tǒng)的可擴(kuò)展性和與其它系統(tǒng)無(wú)縫連接。通過(guò)接口模塊可以很方 便的對(duì)監(jiān)控系統(tǒng)進(jìn)行升級(jí),并且可以實(shí)現(xiàn)與其他系統(tǒng)或設(shè)備的無(wú)縫連接。這也是本系統(tǒng)區(qū)優(yōu) 于其他監(jiān)控系統(tǒng)的主要功能。 3 軟件設(shè)計(jì) 3.1工作軟件 系統(tǒng)的軟件設(shè)計(jì)較為復(fù)雜,這里只給出了整個(gè)工作軟件流程(如圖 2)。
 3.2操作系統(tǒng)移植 S3C2410 芯片支持多種嵌入式操作系統(tǒng),如 WINCE、uCLinux 等。但考慮到監(jiān)控系統(tǒng) 的實(shí)時(shí)性要求,這里使用的是 μC/OS-II 嵌入式實(shí)時(shí)操作系統(tǒng)。μC/OS-II 是一個(gè)源碼公開(kāi)、可 移植、可固化、可裁剪、占先式的實(shí)時(shí)多任務(wù)操作系統(tǒng)。其絕大部分源碼是用 ANSI C 寫(xiě)的。 整個(gè)嵌入式系統(tǒng)分為兩大層:硬件層和軟件層。這里主要研究軟件層的架構(gòu)。軟件層主 要分為四個(gè)部分:實(shí)時(shí)操作系統(tǒng)內(nèi)核,與處理器相關(guān)部分,與應(yīng)用程序相關(guān)部分,用戶(hù)的應(yīng)用程序。移植 μC/OS-II 系統(tǒng)需要修改的文件有:應(yīng)用程序相關(guān)文件: OS_CFG.HINCLUDE.H; 處理器相關(guān)文件: OS_CPU.H、 OS_CPU_A.ASM、OS_CPU_C.C。 3.2.1 與處理器相關(guān)的代碼 這是移植中最關(guān)鍵的部分。內(nèi)核將應(yīng)用系統(tǒng)和底層硬件有機(jī)的結(jié)合成一個(gè)實(shí)時(shí)系統(tǒng),要 使同一個(gè)內(nèi)核能適用于不同的硬件體系,就需要在內(nèi)核和硬件之間有一個(gè)中間層,這就是與 處理器相關(guān)的代碼。處理器不同。這部分代碼也不同。我們?cè)谝浦矔r(shí)需要自己移植這部分代 碼。
a)OS_CPU.H 包括了用#define 定義的與處理器相關(guān)的常量,宏和類(lèi)型定義,有系統(tǒng)數(shù)據(jù)類(lèi)型定義,棧 增長(zhǎng)方向定義,關(guān)中斷和開(kāi)中斷定義,系統(tǒng)軟中斷的定義等等。 b)OS_CPU_A.ASM 這部分需要對(duì)處理器的寄存器進(jìn)行操作,所以必須用匯編語(yǔ)言來(lái)編寫(xiě)。包括四個(gè)子函數(shù): OSStartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。OSStartHighRdy()在多任務(wù) 系統(tǒng)啟動(dòng)函數(shù) OSStart()中調(diào)用。完成的功能是:設(shè)置系統(tǒng)運(yùn)行標(biāo)志位 OSRunning = TRUE; 將就緒表中最高優(yōu)先級(jí)任務(wù)的棧指針 Load 到 SP 中,并強(qiáng)制中斷返回。這樣就緒的最高優(yōu)先 級(jí)任務(wù)就如同從中斷里返回到運(yùn)行態(tài)一樣,使得整個(gè)系統(tǒng)得以運(yùn)轉(zhuǎn)。OSCtxSw()在任務(wù)級(jí)任 務(wù)切換函數(shù)中調(diào)用的。任務(wù)級(jí)切換是通過(guò) SWI 或者 TRAP 人為制造的中斷來(lái)實(shí)現(xiàn)的。ISR 的向 量地址必須指向 OSCtxSw()。這一中斷完成的功能:保存任務(wù)的環(huán)境變量(主要是寄存器的值, 通過(guò)入棧來(lái)實(shí)現(xiàn)),將當(dāng)前 SP 存入任務(wù) TCB 中,載入就緒最高優(yōu)先級(jí)任務(wù)的 SP,恢復(fù)就緒最高 優(yōu)先級(jí)任務(wù)的環(huán)境變量,中斷返回。這樣就完成了任務(wù)級(jí)的切換。
(中國(guó)集群通信網(wǎng) | 責(zé)任編輯:陳曉亮) |