基于A(yíng)RM的智能綜合監控基站方案設計
引言
傳統的監控系統類(lèi)似大體可以分為四種:防盜放火報警監控系統,門(mén)禁系統、考勤或巡更系統,環(huán)境檢測系統,視頻監視系統。
目前市場(chǎng)上通常對某個(gè)區域(例如倉庫)的全面監控管理是由以上四種類(lèi)型的監控系統的簡(jiǎn)單相加,各分系統之間相對獨立,到上層監控中心才進(jìn)行綜合,這樣作勢必會(huì )造成布線(xiàn)煩瑣、維護力度大、升級困難、成本增加,而且系統的聯(lián)網(wǎng)方式單一也可能造成系統的魯棒性不高,處理突發(fā)事件的能力不強,針對這樣一種現狀,文中提高了一種基于32位高性能處理器AT91RM9200的智能綜合監控基站方案。
1 系統結構
本基站最大的特點(diǎn)在于將各個(gè)子系統在底層進(jìn)行綜合集成,并且采用PSTN、GPRS和TCP/IC三種聯(lián)網(wǎng)方式。無(wú)論從成本、智能化程度,還是從安裝使用便利程度上看都是絕對的優(yōu)勢。系統結構如圖1所示。
整個(gè)系統可分為兩個(gè)部分:上層的監控中心和下層的監控基站。監控基站和監控中心通過(guò)以太網(wǎng)或者電話(huà)網(wǎng)連接起來(lái),此外管理人員也可以通過(guò)GPRS訪(fǎng)問(wèn)監控基站。監控基站由RS485總線(xiàn)連接前端溫濕度變送器等環(huán)境數據測量設備和門(mén)禁讀卡器,根據實(shí)際需求可以?huà)燧d多個(gè)設備。煙霧感應器和紅外報警器一般是干接點(diǎn)的輸出形式,可以?huà)燧d到基站的開(kāi)關(guān)量接口;門(mén)磁電鎖通過(guò)專(zhuān)用的門(mén)禁電源也可以?huà)燧d到基站的開(kāi)關(guān)量接口上,為了減少視頻傳輸數據量,攝像頭的數據線(xiàn)經(jīng)過(guò)MEPG4視頻壓縮編碼設備進(jìn)行壓縮,再通過(guò)基站的USB主口將壓縮數據流讀到基站緩存,再通過(guò)網(wǎng)絡(luò )送到上層監控中心,由上層監控中心解碼讀取。
這種體系結構具有很好的擴展性,可以方便地根據實(shí)際情況增加或減少監控基站的數量,且對上層監控中心的影響不大,另外,系統具有靈活的網(wǎng)絡(luò )控制管理功能,只要給定權限,網(wǎng)絡(luò )上任何一臺計算機都可作為監控中心進(jìn)行遠程監控,實(shí)現了監控管理的層次化、網(wǎng)絡(luò )化和分布化。
2 硬件組成及設計
為了盡快實(shí)現這一方案,快速搭建一個(gè)原型,在硬件的設計上采用了模塊化的設計思想,硬件結構圖如圖2所示。
2.1 最小系統
最小系統即基站的處理中心,主芯片選用Atmel公司的基于ARM920T內核的高性能嵌入式芯片AT91RM9200,運算速度高達200MIPS。AT91RM9200集成了豐富的外圍部件,包括系統外圍和應用(用戶(hù))外圍。系統外圍包括電源管理控制器(PMC)、系統定時(shí)器(ST)、實(shí)時(shí)時(shí)鐘(RTC)、高級中斷控制器(AIC)、并行I/0(PIO)控制器、調試單元(DU);應用外圍包括USB主端口、USB設備端口、以太網(wǎng)10/100BaseT MAC控制器、多媒體閃存(MMC)卡接口、同步串行控制(SSC)、USART、串行外圍接口(SPI)、TWO-wire兩線(xiàn)接口、定時(shí)器/計數器。AT91RM9200集成了高速片上SRAM和低延遲的外部總線(xiàn)接口(EBI),EBI對外部存儲器或映射于存儲器的外設提供了無(wú)縫的連接。EBI中內置了控制器,用于控制同步DRAM、突發(fā)訪(fǎng)問(wèn)模式的Flash存儲器和靜態(tài)存儲器;EBI還提供了與SmartMedia、CompactFlash和NAND Flash的接口??蓴U展的Flash接口為整個(gè)系統的升級和擴展提供了方便。
主芯片外接1片16 MB Flash和2片16 MB SDRAM來(lái)擴展存儲空間和內存。存儲空間和內存大小,視實(shí)際應用的需要可進(jìn)一步擴展。
2.2 外圍接口
外圍接口包括1個(gè)USB主口、2個(gè)RS485串行接口、2個(gè)RS232串行接口、1個(gè)以太網(wǎng)口、1個(gè)RS232調試串口、1個(gè)JTAG口、3路干接點(diǎn)輸入接口、3路數字量輸出接口、5 V電源輸入接口。
USB主口用于視頻壓縮模塊數據流的傳輸;為了軟件設計上的方便,考慮到RS485設備協(xié)議的不同,設計兩個(gè)RS485接口,一個(gè)用于連接大連北方測控集團的溫濕度變送器,一個(gè)用于連接廣州微動(dòng)力公司的RS485讀卡器;兩個(gè)RS232串行接口,一個(gè)用于連接深圳百億公司的GPRS M0DEM,一個(gè)用于連接北京天石公司的嵌入式調制解調器,以實(shí)現GPRS訪(fǎng)問(wèn)和接入電話(huà)網(wǎng)絡(luò )的功能;一個(gè)以太網(wǎng)口實(shí)現接入以太網(wǎng)的功能;3路干接點(diǎn)輸入接口用于連接深圳迪萊克公司的煙霧感應器和被動(dòng)式紅外探測器;3路數字量輸出接口通過(guò)電磁繼電器可以根據實(shí)際需求來(lái)控制門(mén)磁電鎖、空調、消防噴頭、聲光報警器等。
AT91RM9200集成了豐富的外圍部件,所以在外圍接口的設計上只需要少量的芯片就可以實(shí)現。
2.3視頻壓縮模塊
視頻壓縮模塊原本和基站是集成在一起的??紤]到實(shí)際應用時(shí),某些場(chǎng)合沒(méi)有以太網(wǎng),只能通過(guò)電話(huà)網(wǎng)絡(luò )和監控中心連接,在這種情況下視頻傳輸是沒(méi)有意義的,所以把視頻壓縮模塊獨立出來(lái),能夠應用并且需要應用視頻監控的場(chǎng)合,就將視頻壓縮模塊掛載到基站的USB主口上。
為了縮短開(kāi)發(fā)周期,視頻壓縮模塊采用美國WIS公司的支持多格式的MPEG24視頻編碼芯片GO7007SB。GO7007SB采用多種WIS專(zhuān)利技術(shù),可方便地實(shí)現多種格式、多種標準的音/視頻壓縮及報警、動(dòng)態(tài)檢測、OSD(On Screen Display)、內嵌web服務(wù)器等功能。通過(guò)適當的配置,視頻流的輸出格式可以是MPEG一1、MPEG一2、MPEG一4、H.263、MJPEG格式。GO7007SB可以無(wú)須膠合地與CMOS/CCD圖像感光芯片相連,同時(shí),提供了EEPROM、SDRAM、USB等控制通道以及HPI等豐富的外圍接口。
GO7007SB只支持數字視頻接口,而模擬攝像頭成本較低,可以采用Philips公司的視頻解碼芯片SAA711A將模擬攝像頭傳過(guò)來(lái)的模擬視頻數據轉換成數字視頻數據流送給GO7007SB進(jìn)行壓縮編碼。
3 基站軟件組成及設計
基站的軟件設計有幾個(gè)版本。這里以加入視頻監控,從以太網(wǎng)傳輸數據的版本為例來(lái)加以說(shuō)明。
3.1 軟件主要功能
軟件的主要功能如下:
?、賹?shí)時(shí)檢測和處理前端傳感器發(fā)送的數據,并且通過(guò)判斷來(lái)確定前端的被監控場(chǎng)所的情況是否正常。若出現緊急情況,則自動(dòng)啟動(dòng)滅火、警報等裝置工作,并且將有關(guān)的情況和數據通過(guò)網(wǎng)絡(luò )和短信的形式發(fā)送給主控中心的管理者。
?、谀軌驅?shí)時(shí)接收網(wǎng)絡(luò )發(fā)來(lái)的命令,在對命令的類(lèi)型進(jìn)行自動(dòng)處理和判斷后實(shí)現相應的功能(例如對傳感器的查詢(xún)和短信模塊的控制);同時(shí)主控中心能夠通過(guò)網(wǎng)絡(luò )接收前端傳感器的有關(guān)數據。
?、勰軌蛲ㄟ^(guò)視頻編碼模塊將視頻數據進(jìn)行壓縮處理,并且將壓縮好的視頻數據通過(guò)網(wǎng)絡(luò )實(shí)時(shí)地發(fā)送到監控中心。
?、苡脩?hù)能夠通過(guò)短信的方式查詢(xún)智能控制終端前方的傳感器狀態(tài),并且可以控制門(mén)禁系統。當有緊急情況出現時(shí),智能控制終端能夠通過(guò)短信的方式進(jìn)行報警。
5)基站能夠自動(dòng)識別和處理門(mén)禁系統的數據,自動(dòng)判斷用戶(hù)的權限,將用戶(hù)的進(jìn)出進(jìn)行記錄,并且將最新記錄傳給主控中心作記錄的備份。
3.2 軟件架構
整個(gè)軟件采用嵌入式操作系統Linux作為基站功能實(shí)現上的主要載體。Linux是多任務(wù)操作系統,在軟件整體劃分上主要分五個(gè)線(xiàn)程,系統上電起動(dòng)后五個(gè)線(xiàn)程并行工作。五個(gè)線(xiàn)程之間的關(guān)系如圖3所示。
這五個(gè)線(xiàn)程分別是:
視頻傳輸線(xiàn)程,負責將壓縮好的數據通過(guò)網(wǎng)絡(luò )傳給主控制中心。
網(wǎng)口接收線(xiàn)程,負責接收和處理主控中心通過(guò)網(wǎng)口下發(fā)的指令和數據。
傳感器檢測線(xiàn)程,負責檢測前端傳感器的狀態(tài),并對相應的數據進(jìn)行處理。
門(mén)禁檢測線(xiàn)程,負責對門(mén)禁系統進(jìn)行控制。
GSM短信檢測線(xiàn)程,負責對短信命令的接收,并根據命令作相應的處理。
下面以網(wǎng)口接收線(xiàn)程為例,詳細介紹此線(xiàn)程模塊的設計,網(wǎng)絡(luò )接收線(xiàn)程流程如圖4所示。
網(wǎng)絡(luò )接收線(xiàn)程起始處于接收狀態(tài),當它接收到信息時(shí),根據所定義的信息標識來(lái)確定接收到的是數據還是命令,如果判定是命令,則根據命令的定義來(lái)區分命令的種類(lèi)并作相應的處理,在網(wǎng)絡(luò )接收線(xiàn)程的設計中使用了select函數作為接收和處理函數。select()機制中提供fd_set的數據結構,實(shí)際上是一個(gè)long類(lèi)型的數組,每一個(gè)數組元素都能與一個(gè)打開(kāi)的文件句柄(不管是Socket句柄,還是其他文件或者命名管道或者設備句柄)建立聯(lián)系。建立聯(lián)系的工作由程序員完成,當調用Select()時(shí),由內核根據I/O狀態(tài)修改fd_set的內容,由此來(lái)通知執行了select()進(jìn)程的哪一個(gè)Socket或文件可讀。具體解釋為:
ndfs:select需要監視的文件句柄數,視進(jìn)程中打開(kāi)的文件數而定,一般設為需要監視各文件中的最大文件號加1。
readfds:select()監視的可讀文件句柄集合。
writefds:select()監視的可寫(xiě)文件句柄集合。
exceptfds:select()監視的異常文件句柄集合。
timeout:本次select()的超時(shí)結束時(shí)間。(見(jiàn)/usr/sys/select.h,可精確至百萬(wàn)分之一秒。)
當readfds或writefds中映象的文件可讀或可寫(xiě)或超時(shí),本次select()就結束返回。程序員利用一組系統提供的宏在select()結束時(shí)便可判斷哪一文件可讀或可寫(xiě)。對Socket編程特別有用的就是readfds。
幾個(gè)相關(guān)的宏解釋如下:
FD_ZERO(fd_set*fdset):清空f(shuō)dset與所有文件句柄的聯(lián)系。
FD_SET(int fd,fd_set*fdset):建立文件句柄fd與fdset的聯(lián)系。
FD_CLR(int fd,fd_set*fdset):清除文件句柄fd與fdset的聯(lián)系。
FD_ISSET(int fd,fdset*fdset):檢查fdset聯(lián)系的文件句柄fd是否可讀寫(xiě),>0表示可讀寫(xiě)。(關(guān)于fd_set及相關(guān)宏的定義見(jiàn)/usr/include/sys/types.h)
這樣,socket只需在有數據讀的時(shí)間才讀入,大致如下:
所以一個(gè)FD_ISSET(sockfd)就相當于通知了sockfd可讀。
結語(yǔ)
基于A(yíng)T91RM9200的智能綜合監控基站具有性能穩定可靠,集成化智能化程度高,無(wú)需專(zhuān)人看管,可擴展性好,資源利用率高等明顯優(yōu)點(diǎn)。因此,開(kāi)發(fā)基于A(yíng)T91RM9200的智能綜合監控基站具有較高的技術(shù)先進(jìn)性和廣闊的市場(chǎng)前景,是一件非常有意義的事情。
評論