《電子技術(shù)應用》
您所在的位置:首頁 > 其他 > 設(shè)計應用 > 基于 ARM 嵌入式的遠程監(jiān)控系統(tǒng)設(shè)計
基于 ARM 嵌入式的遠程監(jiān)控系統(tǒng)設(shè)計
摘要: 基于ARM內(nèi)核的嵌入式系統(tǒng)在遠程監(jiān)控報警系統(tǒng)中的設(shè)計實現(xiàn)與應用,。
Abstract:
Key words :

基于 ARM 內(nèi)核的嵌入式系統(tǒng)在遠程監(jiān)控報警系統(tǒng)中的設(shè)計實現(xiàn)與應用,。核心部分主要包 括 ARM 嵌入式平臺設(shè)計及 µC-OS 嵌入式實時操作系統(tǒng)移植;人機交互界面 µCGUI 的設(shè)計與實現(xiàn),;遠程通 訊及自動報警等,;系統(tǒng)的設(shè)計還考慮到了擴展性和通用性以及與其他監(jiān)控設(shè)備無縫連接等問題,。
關(guān)鍵詞:  ARM;µC/OS-II,;  µCGUI  ,;遠程監(jiān)控

1  引言
監(jiān)控系統(tǒng)現(xiàn)已成為現(xiàn)代化生產(chǎn)、生活中不可缺少的重要組成部分,。目前,,監(jiān)控系列產(chǎn)品 種類繁多,大部分廣泛應用于交通,、醫(yī)院,、銀行、家居,、學校等安防領(lǐng)域,。
隨著嵌入式系統(tǒng)的出現(xiàn),尤其是基于 ARM 內(nèi)核芯片的嵌入式系統(tǒng)的出現(xiàn),,使得監(jiān)控系統(tǒng)的應用領(lǐng)域更為廣泛,。本文設(shè)計的遠程監(jiān)控報警系統(tǒng)除了作為安防功能外,還可以應用于 以下領(lǐng)域:通訊領(lǐng)域:遠程通訊,、視頻會議和視頻點播,、證券、遠程教育等,。醫(yī)療領(lǐng)域:病 房監(jiān)護,、遠程診斷等。工業(yè)領(lǐng)域:遠程設(shè)備診斷,、維護,、維修,遠程生產(chǎn)監(jiān)控等,。家用領(lǐng)域:
家用電器遠程維護,;電、氣,、火等重大事故自動報警等,。
2    系統(tǒng)設(shè)計
2.1、系統(tǒng)組成 本文設(shè)計的遠程監(jiān)控系統(tǒng)主要由中心控制器,、數(shù)據(jù)終端,、傳感器模塊、通訊模塊,、接口模塊等幾部分組成,。系統(tǒng)組成圖(如圖 1)  。
2.2、中心控制器 系統(tǒng)核心,,負責數(shù)據(jù)采集判斷處理,。為了提高系統(tǒng)工作效率,這里使用的是三星公司的 S3C2410  芯片作為處理器,。S3C2410 芯片是一款高性價比的 ARM 芯片,,非常適合作手機、
PDA 等手持設(shè)備,。主要特性包括: ARM920T 內(nèi)核,,最高工作頻率 203MHz, LCD 控制器: 可直接驅(qū)動真彩液晶屏,,最高支持 2048×1024 真彩液晶屏,,  2 個 USB  Host  端口    ,1 個 USB Device  端口,,支持 Nand flash 啟動模式,,SD 卡接口,  UART,、IIC,、SPI、IIS 等多種類 型串行接口,,  4 通道 DMA,。


本文的監(jiān)控系統(tǒng)的 CPU 核心部分使用的是標準的 SO-DIMM200 金手指接口,便于后期 維護和升級,。如果該監(jiān)控系統(tǒng)的使用環(huán)境較為苛刻,,可以將  CPU  替換為  S3C2440  芯片。 S3C2440 完全兼容 S3C2410 全部特性(注意:芯片引腳不完全兼容),。與 S3C2410 芯片相比,, S3C2440 的性能更為優(yōu)越:最高工作頻率可達 500MHz,內(nèi)部集成 CMOS 攝像頭接口,,但價 格較昂貴,。 
 


圖 1 監(jiān)控系統(tǒng)組成框圖


2.3、數(shù)據(jù)終端 數(shù)據(jù)終端的主要功能是對監(jiān)控數(shù)據(jù)進行分析,、處理,,及時將數(shù)據(jù)匯報給監(jiān)控人員。同時,, 監(jiān)控人員可以根據(jù)現(xiàn)場情況,,使用數(shù)據(jù)終端對監(jiān)控的設(shè)備進行遠程控制。數(shù)據(jù)終端最大優(yōu)勢 就是安全,、可靠,、便于攜帶。    一般情況下為了節(jié)約成本,,可以將手機,、PDA 等移動通訊設(shè) 備作為數(shù)據(jù)終端使用。但是如果作為對高危環(huán)境或精密儀器的監(jiān)控系統(tǒng),,數(shù)據(jù)終端需要專業(yè) 定制,。這里使用的是中心控制器的作為數(shù)據(jù)終端,即中心控制器既作為數(shù)據(jù)采集發(fā)送中心,, 也可數(shù)據(jù)接收處理中心使用,。
2.4、通訊模塊
通訊模塊主要負責遠程數(shù)據(jù)通訊,。帶有  RS232/485,、GPRS、CDMA  等一種或多種通訊 方式,。需要根據(jù)現(xiàn)場環(huán)境和用戶需要進行定制,。通訊模塊與控制器通過接口總線連接,連接 方式為 TTL/RS232/RS485 等
2.5,、傳感器模塊 傳感器模塊的主要功能是感知外部環(huán)境,,對外部環(huán)境進行實時監(jiān)測。由人體紅外傳感器,、 振動傳感器,、超聲波傳感器、可燃氣體傳感器,、溫度傳感器,、濕度傳感器等一種或多種傳感 器組成??筛鶕?jù)現(xiàn)場監(jiān)測環(huán)境不同進行定制,。
2.6、接口模塊
接口模塊主要作為系統(tǒng)擴展功能使用,,將控制器的 A/D 轉(zhuǎn)換,、I2C、SPI 等多種接口進行 外部擴展,。接口模塊沒有特定的功能,,但可以根據(jù)需要與其他設(shè)備連接,例如可以與工業(yè)儀 器儀表或設(shè)備連接,,實時對儀器或設(shè)備進行監(jiān)控,。
接口模塊雖然不是監(jiān)控系統(tǒng)的主要部分,但是對于整個系統(tǒng)來說卻是不可缺少,。因為本文的監(jiān)控系統(tǒng)主要考慮到了系統(tǒng)的可擴展性和與其它系統(tǒng)無縫連接,。通過接口模塊可以很方 便的對監(jiān)控系統(tǒng)進行升級,,并且可以實現(xiàn)與其他系統(tǒng)或設(shè)備的無縫連接。這也是本系統(tǒng)區(qū)優(yōu) 于其他監(jiān)控系統(tǒng)的主要功能,。
3  軟件設(shè)計
3.1,、工作軟件
系統(tǒng)的軟件設(shè)計較為復雜,這里只給出了整個工作軟件流程(如圖 2),。

 
 
圖 2  軟件流程圖

3.2,、操作系統(tǒng)移植


S3C2410 芯片支持多種嵌入式操作系統(tǒng),如 WINCE,、uCLinux 等,。但考慮到監(jiān)控系統(tǒng) 的實時性要求,這里使用的是 µC/OS-II 嵌入式實時操作系統(tǒng),。µC/OS-II 是一個源碼公開,、可 移植、可固化,、可裁剪,、占先式的實時多任務操作系統(tǒng)。其絕大部分源碼是用 ANSI C 寫的,。 整個嵌入式系統(tǒng)分為兩大層:硬件層和軟件層,。這里主要研究軟件層的架構(gòu)。軟件層主 要分為四個部分:實時操作系統(tǒng)內(nèi)核,,與處理器相關(guān)部分,,與應用程序相關(guān)部分,用戶的應 用程序,。
移植 µC/OS-II 系統(tǒng)需要修改的文件有:應用程序相關(guān)文件: OS_CFG.H    INCLUDE.H,; 處理器相關(guān)文件:  OS_CPU.H、  OS_CPU_A.ASM,、OS_CPU_C.C  ,。
3.2.1 與處理器相關(guān)的代碼 這是移植中最關(guān)鍵的部分。內(nèi)核將應用系統(tǒng)和底層硬件有機的結(jié)合成一個實時系統(tǒng),,要 使同一個內(nèi)核能適用于不同的硬件體系,,就需要在內(nèi)核和硬件之間有一個中間層,這就是與 處理器相關(guān)的代碼,。處理器不同,。這部分代碼也不同。我們在移植時需要自己移植這部分代 碼,。
a)OS_CPU.H
 
包括了用#define 定義的與處理器相關(guān)的常量,,宏和類型定義,有系統(tǒng)數(shù)據(jù)類型定義,棧 增長方向定義,,關(guān)中斷和開中斷定義,,系統(tǒng)軟中斷的定義等等,。
b)OS_CPU_A.ASM
這部分需要對處理器的寄存器進行操作,所以必須用匯編語言來編寫,。包括四個子函數(shù): OSStartHighRdy(),,OSCtxSw(),OSIntCtxSw(),,OSTickISR()。OSStartHighRdy()在多任務 系統(tǒng)啟動函數(shù) OSStart()中調(diào)用,。完成的功能是:設(shè)置系統(tǒng)運行標志位 OSRunning  =  TRUE,; 將就緒表中最高優(yōu)先級任務的棧指針 Load 到 SP 中,并強制中斷返回,。這樣就緒的最高優(yōu)先 級任務就如同從中斷里返回到運行態(tài)一樣,,使得整個系統(tǒng)得以運轉(zhuǎn)。OSCtxSw()在任務級任 務切換函數(shù)中調(diào)用的,。任務級切換是通過 SWI 或者 TRAP 人為制造的中斷來實現(xiàn)的,。ISR 的向 量地址必須指向 OSCtxSw()。這一中斷完成的功能:保存任務的環(huán)境變量(主要是寄存器的值, 通過入棧來實現(xiàn)),將當前 SP 存入任務 TCB 中,,載入就緒最高優(yōu)先級任務的 SP,恢復就緒最高 優(yōu)先級任務的環(huán)境變量,,中斷返回。這樣就完成了任務級的切換,。OSIntCtxSw()在退出中斷
服務函數(shù) OSIntExit()中調(diào)用,實現(xiàn)中斷級任務切換.由于是在中斷里調(diào)用,,所以處理器的寄 存器入棧工作已經(jīng)做完,就不用作這部分工作了,。具體完成的任務,;調(diào)整棧指針(因為調(diào)用 函數(shù)會使任務棧結(jié)構(gòu)與系統(tǒng)任務切換時堆棧標準結(jié)構(gòu)不一致),保存當前任務 SP,,載入就緒 最高優(yōu)先級任務的 SP,,恢復就緒最高優(yōu)先級任務的環(huán)境變量,中斷返回,。這樣就完成了中斷 級任務切換,。OSTickISR()系統(tǒng)時鐘節(jié)拍中斷服務函數(shù),這是一個周期性中斷,,為內(nèi)核提供
時鐘節(jié)拍,。頻率越高系統(tǒng)負荷越重。其周期的大小決定了內(nèi)核所能給應用系統(tǒng)提供的最小時 間間隔服務,。一般只限于 ms 級(跟 MCU 有關(guān)),對于要求更加苛刻的任務需要用戶自己建立中 斷來解決.該函數(shù)具體內(nèi)容:保存寄存器(如果硬件自動完成就可以省略),,調(diào) OSIntEnter(), 調(diào)用 OSTimeTick(),,調(diào)用 OSIntExit(),,恢復寄存器,,中斷返回。
c) OS_CPU_C.C
該文件中共定義了 6 個函數(shù),,但是最重要的是 OSTaskStkInit().其他都是對系統(tǒng)內(nèi)核的擴展 時用的.    OSTaskStkInit()是在用戶建立任務時系統(tǒng)內(nèi)部自己調(diào)用的,,對用戶任務的堆棧 進行初始化。使建立好的進入就緒態(tài)任務的堆棧與系統(tǒng)發(fā)生中斷并且將環(huán)境變量保存完畢時 的棧結(jié)構(gòu)一致,。這樣就可以用中斷返回指令使就緒的任務運行起來,。


3.2.2  與應用相關(guān)的代碼
這部分包括兩個文件:OS_CFG.H,  INCLUDES.H。  用戶根據(jù)自己的應用系統(tǒng)來定制合適 的內(nèi)核服務功能,。    OS_CFG.H 來配置內(nèi)核,,用戶根據(jù)需要對內(nèi)核進行定制,留下需要的部 分,去掉不需要的部分,,設(shè)置系統(tǒng)的基本情況,。比如系統(tǒng)可提供的最大任務數(shù)量,是否定制 郵箱服務,,是否需要系統(tǒng)提供任務掛起功能,,是否提供任務優(yōu)先級動態(tài)改變功能等等。 INCLUDES.H 系統(tǒng)頭文件,,整個實時系統(tǒng)程序所需要的文件,,包括了內(nèi)核和用戶的頭文件。


3.3,、用戶圖形接口
雖然 µC/OS-II 操作系統(tǒng)具有很高的實時性,,但不像 WINCE、uCLinux 等操作系統(tǒng)那樣 有良好的圖形界面支持,。所以,,在使用液晶和觸摸屏的情況下需要移植用戶圖形接口程序。
這里使用的是 µC/GUI,。µC/GUI 是一個軟件模塊集合,,通過該模塊可以在我們的嵌入式產(chǎn)品 中加入用戶圖形接口(GUI)。µC/GUI 具有很高的執(zhí)行效率,,并且與處理器和 LCD 控制器相 獨立,。該模塊可以工作在單任務或者多任務環(huán)境,可以支持不同大小的顯示方式,。
通過 µC/GUI 我們可以很方便的在液晶屏繪制圖形和界面,。如果需要多種字體支持,必 須自己將相應的字體字庫加入到 µC/GUI  中,。為了避免出現(xiàn)亂碼,,盡量使用 GB2312 國標字 庫。


3.4,、關(guān)于字庫的兼容性問題

我們國內(nèi)通常使用的漢字字庫是 GB 碼,,但國際上使用的是 UNICODE 碼  ,,所以如果數(shù)
 
據(jù)終端使用的是手機、PDA 等移動通信設(shè)備,,那么在數(shù)據(jù)發(fā)送前必須進行字碼轉(zhuǎn)換,,即 GB  碼 轉(zhuǎn)換為 UNICODE  碼或者 UNICODE 碼轉(zhuǎn)換為 GB 碼。
由于 GB 碼與 UNICODE 碼在排列組合上沒有任何規(guī)律,,所以通常字碼轉(zhuǎn)換的方法就是 查表法,。


4  、結(jié)束語
基于 ARM9 嵌入式系統(tǒng)的遠程監(jiān)控系統(tǒng)與以往的監(jiān)控系統(tǒng)不同,,高性能的處理器芯片大 大提高了系統(tǒng)的性能,。使監(jiān)控系統(tǒng)能夠工作在比較惡劣的環(huán)境中。并且在設(shè)計上充分考慮到 了系統(tǒng)的可擴展性和兼容性問題,,實現(xiàn)了本系統(tǒng)與其他系統(tǒng)的無縫連接,。以滿足不同工作環(huán) 境的需要,。
作者創(chuàng)新觀點:本文設(shè)計的遠程監(jiān)控系統(tǒng)應用范圍更廣,,更靈活、方便,。通過各個功能模塊 的不同組合,,可以十分方便快速的應用于各個領(lǐng)系域,真正實現(xiàn)智能化,、自動化且具有較高 的性價比,。

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