基於ARM的智能綜合監控基站方案設計

基於ARM的智能綜合監控基站方案設計

技術分類: 測試與測量  嵌入式系統  | 2007-11-30 來源:單片機及嵌入式系統應用 | 作者:石崇林 喻曉峯

  引言

  傳統的監控系統類似大體可以分爲四種:防盜放火報警監控系統,門禁系統、考勤或巡更系統,環境檢測系統,視頻監視系統。

  目前市場上通常對某個區域(例如倉庫)的全面監控管理是由以上四種類型的監控系統的簡單相加,各分系統之間相對獨立,到上層監控中心才進行綜合,這樣作勢必會造成佈線煩瑣、維護力度大、升級困難、成本增加,而且系統的聯網方式單一也可能造成系統的魯棒性不高,處理突發事件的能力不強,針對這樣一種現狀,文中提高了一種基於32位高性能處理器AT91RM9200的智能綜合監控基站方案。

  1 系統結構

  本基站最大的特點在於將各個子系統在底層進行綜合集成,並且採用PSTN、GPRS和TCP/IC三種聯網方式。無論從成本、智能化程度,還是從安裝使用便利程度上看都是絕對的優勢。系統結構如圖1所示。

系統結構

  整個系統可分爲兩個部分:上層的監控中心和下層的監控基站。監控基站和監控中心通過以太網或者電話網連接起

 
來,此外管理人員也可以通過GPRS訪問監控基站。監控基站由RS485總線連接前端溫溼度變送器等環境數據測量設備和門禁讀卡器,根據實際需求可以掛載多個設備。煙霧感應器和紅外報警器一般是幹接點的輸出形式,可以掛載到基站的開關量接口;門磁電鎖通過專用的門禁電源也可以掛載到基站的開關量接口上,爲了減少視頻傳輸數據量,攝像頭的數據線經過MEPG4視頻壓縮編碼設備進行壓縮,再通過基站的USB主口將壓縮數據流讀到基站緩存,再通過網絡送到上層監控中心,由上層監控中心解碼讀取。

  這種體系結構具有很好的擴展性,可以方便地根據實際情況增加或減少監控基站的數量,且對上層監控中心的影響不大,另外,系統具有靈活的網絡控制管理功能,只要給定權限,網絡上任何一臺計算機都可作爲監控中心進行遠程監控,實現了監控管理的層次化、網絡化和分佈化。

  2 硬件組成及設計

  爲了儘快實現這一方案,快速搭建一個原型,在硬件的設計上採用了模塊化的設計思想,硬件結構圖如圖2所示。

硬件結構圖

  2.1 最小系統

  最小系統即基站的處理中心,主芯片選用Atmel公司的基於ARM920T內核的高性能嵌入式芯片AT91RM9200,運算速度高達200MIPS。AT91RM9200集成了豐富的外圍部件,包括系統外圍和應用(用戶)外圍。系統外圍包括電源管理控制器(PMC)、系統定時器(ST)、實時時鐘(RTC)、高級中斷控制器(AIC)、並行I/0(PIO)控制器、調試單元(DU);應用外圍包括USB主端口、USB設備端口、以太網10/100BaseT MAC控制器、多媒體閃存(MMC)卡接口、同步串行控制(SSC)、USART、串行外圍接口(SPI)、TWO-wire兩線接口、定時器/計數器。AT91RM9200集成了高速片上SRAM和低延遲的外部總線接口(EBI),EBI對外部存儲器或映射於存儲器的外設提供了無縫的連接。EBI中內置了控制器,用於控制同步DRAM、突發訪問模式的Flash存儲器和靜態存儲器;EBI還提供了與SmartMedia、CompactFlash和NAND Flash的接口。可擴展的Flash接口爲整個系統的升級和擴展提供了方便。

  主芯片外接1片16 MB Flash和2片16 MB SDRAM來擴展存儲空間和內存。存儲空間和內存大小,視實際應用的需要可進一步擴展。

  2.2 外圍接口

  外圍接口包括1個USB主口、2個RS485串行接口、2個RS232串行接口、1個以太網口、1個RS232調試串口、1個JTAG口、3路幹接點輸入接口、3路數字量輸出接口、5 V電源輸入接口。

  USB主口用於視頻壓縮模塊數據流的傳輸;爲了軟件設計上的方便,考慮到RS485設備協議的不同,設計兩個RS485接口,一個用於連接大連北方測控集團的溫溼度變送器,一個用於連接廣州微動力公司的RS485讀卡器;兩個RS232串行接口,一個用於連接深圳百億公司的GPRS M0DEM,一個用於連接北京天石公司的嵌入式調制解調器,以實現GPRS訪問和接入電話網絡的功能;一個以太網口實現接入以太網的功能;3路幹接點輸入接口用於連接深圳迪萊克公司的煙霧感應器和被動式紅外探測器;3路數字量輸出接口通過電磁繼電器可以根據實際需求來控制門磁電鎖、空調、消防噴頭、聲光報警器等。

  AT91RM9200集成了豐富的外圍部件,所以在外圍接口的設計上只需要少量的芯片就可以實現。

2.3視頻壓縮模塊

  視頻壓縮模塊原本和基站是集成在一起的。考慮到實際應用時,某些場合沒有以太網,只能通過電話網絡和監控中心連接,在這種情況下視頻傳輸是沒有意義的,所以把視頻壓縮模塊獨立出來,能夠應用並且需要應用視頻監控的場合,就將視頻壓縮模塊掛載到基站的USB主口上。

 

  爲了縮短開發週期,視頻壓縮模塊採用美國WIS公司的支持多格式的MPEG24視頻編碼芯片GO7007SB。GO7007SB採用多種WIS專利技術,可方便地實現多種格式、多種標準的音/視頻壓縮及報警、動態檢測、OSD(On Screen Display)、內嵌web服務器等功能。通過適當的配置,視頻流的輸出格式可以是MPEG一1、MPEG一2、MPEG一4、H.263、MJPEG格式。GO7007SB可以無須膠合地與CMOS/CCD圖像感光芯片相連,同時,提供了EEPROM、SDRAM、USB等控制通道以及HPI等豐富的外圍接口。

  GO7007SB只支持數字視頻接口,而模擬攝像頭成本較低,可以採用Philips公司的視頻解碼芯片SAA711A將模擬攝像頭傳過來的模擬視頻數據轉換成數字視頻數據流送給GO7007SB進行壓縮編碼。

  3 基站軟件組成及設計

  基站的軟件設計有幾個版本。這裏以加入視頻監控,從以太網傳輸數據的版本爲例來加以說明。

  3.1 軟件主要功能

  軟件的主要功能如下:

  ①實時檢測和處理前端傳感器發送的數據,並且通過判斷來確定前端的被監控場所的情況是否正常。若出現緊急情

 
況,則自動啓動滅火、警報等裝置工作,並且將有關的情況和數據通過網絡和短信的形式發送給主控中心的管理者。

  ②能夠實時接收網絡發來的命令,在對命令的類型進行自動處理和判斷後實現相應的功能(例如對傳感器的查詢和短信模塊的控制);同時主控中心能夠通過網絡接收前端傳感器的有關數據。

  ③能夠通過視頻編碼模塊將視頻數據進行壓縮處理,並且將壓縮好的視頻數據通過網絡實時地發送到監控中心。

  ④用戶能夠通過短信的方式查詢智能控制終端前方的傳感器狀態,並且可以控制門禁系統。當有緊急情況出現時,智能控制終端能夠通過短信的方式進行報警。

  5)基站能夠自動識別和處理門禁系統的數據,自動判斷用戶的權限,將用戶的進出進行記錄,並且將最新記錄傳給主控中心作記錄的備份。

  3.2 軟件架構

  整個軟件採用嵌入式操作系統Linux作爲基站功能實現上的主要載體。Linux是多任務操作系統,在軟件整體劃分上主要分五個線程,系統上電起動後五個線程並行工作。五個線程之間的關係如圖3所示。

五個線程之間的關係

  這五個線程分別是:

  • 視頻傳輸線程,負責將壓縮好的數據通過網絡傳給主控制中心。
  • 網口接收線程,負責接收和處理主控中心通過網口下發的指令和數據。
  • 傳感器檢測線程,負責檢測前端傳感器的狀態,並對相應的數據進行處理。
  • 門禁檢測線程,負責對門禁系統進行控制。
  • GSM短信檢測線程,負責對短信命令的接收,並根據命令作相應的處理。

  下面以網口接收線程爲例,詳細介紹此線程模塊的設計,網絡接收線程流程如圖4所示。

網絡接收線程流程圖

  網絡接收線程起始處於接收狀態,當它接收到信息時,根據所定義的信息標識來確定接收到的是數據還是命令,如果判定是命令,則根據命令的定義來區分命令的種類並作相應的處理,在網絡接收線程的設計中使用了select函數作爲接收和處理函數。select()機制中提供fd_set的數據結構,實際上是一個long類型的數組,每一個數組元素都能與一個打開的文件句柄(不管是Socket句柄,還是其他文件或者命名管道或者設備句柄)建立聯繫。建立聯繫的工作由程序員完成,當調用Select()時,由內核根據I/O狀態修改fd_set的內容,由此來通知執行了select()進程的哪一個Socket或文件可讀。具體解釋爲:

程序

 

  • ndfs:select需要監視的文件句柄數,視進程中打開的文件數而定,一般設爲需要監視各文件中的最大文件號加1。
  • readfds:select()監視的可讀文件句柄集合。
  • writefds:select()監視的可寫文件句柄集合。
  • exceptfds:select()監視的異常文件句柄集合。
  • timeout:本次select()的超時結束時間。(見/usr/sys/select.h,可精確至百萬分之一秒。)

  當readfds或writefds中映象的文件可讀或可寫或超時,本次select()就結束返回。程序員利用一組系統提供的宏在select()結束時便可判斷哪一文件可讀或可寫。對Socket編程特別有用的就是readfds。

  幾個相關的宏解釋如下:

  • FD_ZERO(fd_set*fdset):清空fdset與所有文件句柄的聯繫。
  • FD_SET(int fd,fd_set*fdset):建立文件句柄fd與fdset的聯繫。
  • FD_CLR(int fd,fd_set*fdset):清除文件句柄fd與fdset的聯繫。
  • FD_ISSET(int fd,fdset*fdset):檢查fdset聯繫的文件句柄fd是否可讀寫,>0表示可讀寫。(關於fd_set及相關宏的定義見/usr/include/sys/types.h)

  這樣,socket只需在有數據讀的時間纔讀入,大致如下:

程序

  所以一個FD_ISSET(sockfd)就相當於通知了sockfd可讀。

  結語

  基於AT91RM9200的智能綜合監控基站具有性能穩定可靠,集成化智能化程度高,無需專人看管,可擴展性好,資源利用率高等明顯優點。因此,開發基於AT91RM9200的智能綜合監控基站具有較高的技術先進性和廣闊的市場前景,是一件非常有意義的事情。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章