天天看點

基于ARM9的嵌入式的遠端監控系統設計

1 引言

    監控系統現已成為現代化生産、生活中不可缺少的重要組成部分。目前,監控系列産品 種類繁多,大部分廣泛應用于交通、醫院、銀行、家居、學校等安防領域。

    随着嵌入式系統的出現,尤其是基于 ARM 核心晶片的嵌入式系統的出現,使得監控系統的應用領域更為廣泛。本文設計的遠端監控報警系統除了作為安防功能外,還可以應用于 以下領域:通訊領域:遠端通訊、視訊會議和視訊點播、證券、遠端教育等。醫療領域:病 房監護、遠端診斷等。工業領域:遠端裝置診斷、維護、維修,遠端生産監控等。家用領域:家用電器遠端維護;電、氣、火等重大事故自動報警等。

2 系統設計

2.1系統組成

    本文設計的遠端監控系統主要由中心控制器、資料終端、傳感器子產品、通訊子產品、接口子產品等幾部分組成。系統組成圖(如圖 1)。

2.2中心控制器

    系統核心負責資料采集判斷處理。為了提高系統工作效率,這裡使用的是三星公司的 S3C2410晶片作為處理器。S3C2410 晶片是一款高成本效益的 ARM 晶片,非常适合作手機、PDA 等手持裝置。主要特性包括: ARM920T 核心,最高工作頻率 203MHz,LCD 控制器:可直接驅動真彩液晶屏,最高支援 2048×1024 真彩液晶屏,2 個 USB  Host端口,1 個USB Device端口,支援 Nand flash 啟動模式,SD 卡接口,UART、IIC、SPI、IIS 等多種類 型串行接口,  4 通道DMA。

    本文的監控系統的 CPU 核心部分使用的是标準的 SO-DIMM200 金手指接口,便于後期 維護和更新。如果該監控系統的使用環境較為苛刻,可以将  CPU替換為S3C2440晶片。 S3C2440完全相容S3C2410全部特性(注意:晶片引腳不完全相容)。與S3C2410晶片相比,S3C2440的性能更為優越:最高工作頻率可達500MHz,内部內建CMOS攝像頭接口,但價格較昂貴。  

基于ARM9的嵌入式的遠端監控系統設計

圖1 監控系統組成框圖

2.3資料終端

    資料終端的主要功能是對監控資料進行分析、處理,及時将資料彙報給監控人員。同時,監控人員可以根據現場情況,使用資料終端對監控的裝置進行遠端控制。資料終端最大優勢 就是安全、可靠、便于攜帶。一般情況下為了節約成本,可以将手機、PDA 等移動通訊設 備作為資料終端使用。但是如果作為對高危環境或精密儀器的監控系統,資料終端需要專業 定制。這裡使用的是中心控制器的作為資料終端,即中心控制器既作為資料采集發送中心,也可資料接收進行中心使用。

2.4通訊子產品

    通訊子產品主要負責遠端資料通訊。帶有  RS232/485、GPRS、CDMA  等一種或多種通訊 方式。需要根據現場環境和使用者需要進行定制。通訊子產品與控制器通過接口總線連接配接,連接配接 方式為 TTL/RS232/RS485 等。

2.5傳感器子產品

    傳感器子產品的主要功能是感覺外部環境,對外部環境進行實時監測。由人體紅外傳感器、 振動傳感器、超音波傳感器、可瓦斯體傳感器、溫度傳感器、濕度傳感器等一種或多種傳感 器組成。可根據現場監測環境不同進行定制。

2.6接口子產品

    接口子產品主要作為系統擴充功能使用,将控制器的 A/D 轉換、I2C、SPI 等多種接口進行 外部擴充。接口子產品沒有特定的功能,但可以根據需要與其他裝置連接配接,例如可以與工業儀 器儀表或裝置連接配接,實時對儀器或裝置進行監控。

    接口子產品雖然不是監控系統的主要部分,但是對于整個系統來說卻是不可缺少。因為本文的監控系統主要考慮到了系統的可擴充性和與其它系統無縫連接配接。通過接口子產品可以很方 便的對監控系統進行更新,并且可以實作與其他系統或裝置的無縫連接配接。這也是本系統區優 于其他監控系統的主要功能。

3 軟體設計

3.1工作軟體

    系統的軟體設計較為複雜,這裡隻給出了整個工作軟體流程(如圖 2)。

圖2  軟體流程圖

基于ARM9的嵌入式的遠端監控系統設計

3.2作業系統移植

    S3C2410 晶片支援多種嵌入式作業系統,如 WINCE、uCLinux 等。但考慮到監控系統 的實時性要求,這裡使用的是 μC/OS-II 嵌入式實時作業系統。μC/OS-II 是一個源碼公開、可 移植、可固化、可裁剪、占先式的實時多任務作業系統。其絕大部分源碼是用 ANSI C 寫的。 整個嵌入式系統分為兩大層:硬體層和軟體層。這裡主要研究軟體層的架構。軟體層主 要分為四個部分:實時作業系統核心,與處理器相關部分,與應用程式相關部分,使用者的應用程式。移植 μC/OS-II 系統需要修改的檔案有:應用程式相關檔案: OS_CFG.H    INCLUDE.H; 處理器相關檔案:  OS_CPU.H、  OS_CPU_A.ASM、OS_CPU_C.C。

3.2.1 與處理器相關的代碼

    這是移植中最關鍵的部分。核心将應用系統和底層硬體有機的結合成一個實時系統,要 使同一個核心能适用于不同的硬體體系,就需要在核心和硬體之間有一個中間層,這就是與 處理器相關的代碼。處理器不同。這部分代碼也不同。我們在移植時需要自己移植這部分代 碼。

a)OS_CPU.H

    包括了用#define 定義的與處理器相關的常量,宏和類型定義,有系統資料類型定義,棧 增長方向定義,關中斷和開中斷定義,系統軟中斷的定義等等。

b)OS_CPU_A.ASM

    這部分需要對處理器的寄存器進行操作,是以必須用彙編語言來編寫。包括四個子函數: OSStartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。OSStartHighRdy()在多任務 系統啟動函數 OSStart()中調用。完成的功能是:設定系統運作标志位 OSRunning  =  TRUE; 将就緒表中最高優先級任務的棧指針 Load 到 SP 中,并強制中斷傳回。這樣就緒的最高優先 級任務就如同從中斷裡傳回到運作态一樣,使得整個系統得以運轉。OSCtxSw()在任務級任 務切換函數中調用的。任務級切換是通過 SWI 或者 TRAP 人為制造的中斷來實作的。ISR 的向 量位址必須指向 OSCtxSw()。這一中斷完成的功能:儲存任務的環境變量(主要是寄存器的值, 通過入棧來實作),将目前 SP 存入任務 TCB 中,載入就緒最高優先級任務的 SP,恢複就緒最高 優先級任務的環境變量,中斷傳回。這樣就完成了任務級的切換。OSIntCtxSw()在退出中斷

服務函數 OSIntExit()中調用,實作中斷級任務切換.由于是在中斷裡調用,是以處理器的寄 存器入棧工作已經做完,就不用作這部分工作了。具體完成的任務;調整棧指針(因為調用 函數會使任務棧結構與系統任務切換時堆棧标準結構不一緻),儲存目前任務 SP,載入就緒 最高優先級任務的 SP,恢複就緒最高優先級任務的環境變量,中斷傳回。這樣就完成了中斷 級任務切換。OSTickISR()系統時鐘節拍中斷服務函數,這是一個周期性中斷,為核心提供

時鐘節拍。頻率越高系統負荷越重。其周期的大小決定了核心所能給應用系統提供的最小時 間間隔服務。一般隻限于 ms 級(跟 MCU 有關),對于要求更加苛刻的任務需要使用者自己建立中 斷來解決.該函數具體内容:儲存寄存器(如果硬體自動完成就可以省略),調 OSIntEnter(), 調用 OSTimeTick(),調用 OSIntExit(),恢複寄存器,中斷傳回。

c) OS_CPU_C.C 

    該檔案中共定義了 6 個函數,但是最重要的是 OSTaskStkInit().其他都是對系統核心的擴充 時用的.    OSTaskStkInit()是在使用者建立任務時系統内部自己調用的,對使用者任務的堆棧 進行初始化。使建立好的進入就緒态任務的堆棧與系統發生中斷并且将環境變量儲存完畢時 的棧結構一緻。這樣就可以用中斷傳回指令使就緒的任務運作起來。

3.2.2與應用相關的代碼

    這部分包括兩個檔案:OS_CFG.H,  INCLUDES.H。  使用者根據自己的應用系統來定制合适 的核心服務功能。    OS_CFG.H 來配置核心,使用者根據需要對核心進行定制,留下需要的部 分,去掉不需要的部分,設定系統的基本情況。比如系統可提供的最大任務數量,是否定制 郵箱服務,是否需要系統提供任務挂起功能,是否提供任務優先級動态改變功能等等。 INCLUDES.H 系統頭檔案,整個實時系統程式所需要的檔案,包括了核心和使用者的頭檔案。

3.3使用者圖形接口

    雖然 μC/OS-II 作業系統具有很高的實時性,但不像 WINCE、uCLinux 等作業系統那樣 有良好的圖形界面支援。是以,在使用液晶和觸摸屏的情況下需要移植使用者圖形接口程式。這裡使用的是 μC/GUI。μC/GUI 是一個軟體子產品集合,通過該子產品可以在我們的嵌入式産品 中加入使用者圖形接口(GUI)。μC/GUI 具有很高的執行效率,并且與處理器和 LCD 控制器相 獨立。該子產品可以工作在單任務或者多任務環境,可以支援不同大小的顯示方式。

通過 μC/GUI 我們可以很友善的在液晶屏繪制圖形和界面。如果需要多種字型支援,必 須自己将相應的字型字庫加入到 μC/GUI  中。為了避免出現亂碼,盡量使用 GB2312 國标字庫。

3.4關于字庫的相容性問題

    我們國内通常使用的漢字字庫是 GB 碼,但國際上使用的是 UNICODE 碼  ,是以如果資料終端使用的是手機、PDA 等移動通信裝置,那麼在資料發送前必須進行字碼轉換,即 GB  碼 轉換為 UNICODE  碼或者 UNICODE 碼轉換為 GB 碼。由于 GB 碼與 UNICODE 碼在排列組合上沒有任何規律,是以通常字碼轉換的方法就是 查表法。

4結束語 

    基于 ARM9 嵌入式系統的遠端監控系統與以往的監控系統不同,高性能的處理器晶片大 大提高了系統的性能。使監控系統能夠工作在比較惡劣的環境中。并且在設計上充分考慮到 了系統的可擴充性和相容性問題,實作了本系統與其他系統的無縫連接配接。以滿足不同工作環 境的需要。

作者創新觀點:本文設計的遠端監控系統應用範圍更廣,更靈活、友善。通過各個功能子產品 的不同組合,可以十分友善快速的應用于各個領系域,真正實作智能化、自動化且具有較高 的成本效益。

繼續閱讀