概述
特點
與傳統基於PC平台的監控系統相比,該嵌入式遠程監控系統在具備了穩定性與實時性的同時,以網路攝像機的形式出現,體積小、外形美觀、重量輕、易於安裝和操作,本系統設計的特點及實現的功能如下:
嵌入式平台
目前大部分監控系統採用商業化的作業系統(WindowsCE,VxWorks等)。存在著著作權、高成本和不可配置等問題,同時這些作業系統由於其用途的特殊性在穩定性和實時性兩方面存在著不可克服的難題,嵌入式Linux作業系統由於其原始碼的完全開放和免費性,通過研究其核心代碼,可以比較透徹的了解其可移植性、可裁剪性和良好的穩定性,從而在套用中將其實現。同時Linux的開放式原則使Linux下驅動的升級變得越來越方便。
數字式網路互聯
本系統對數位相機拍攝的原始圖像數據進行全數位化的JPEG數據壓縮,可以在對監控對象不問斷的全程監控過程中實現自動化,圖像數據存放在該網路伺服器的記憶體緩衝區中,並不斷的通過網路傳輸到用戶主機端刷新緩衝區,實現循環利用,進而保證了對監控對象的實時捕捉。同時,用戶可以方便的從任何一個網路接入點商看到當前被監控對象的現場圖片。這極大的降低了用戶的使用難度。
硬編碼
JPEG圖像壓縮標準是一個適用範圍廣泛的通用圖像壓縮標準,由於JPEG算法涉及到矩陣運算,如果採用軟體的方式編碼/解碼,就會大大降低系統的性能,編碼的效率不高,尤其不適用於資源有限的嵌入式系統。考慮到上述原因,採用了JPEG硬編碼技術。將JPEG壓縮算法固化到嵌入式處理器內部,以硬體的方式來達到高速的編碼/解碼,滿足實時監控系統的要求。
可靠性與穩定性
不言而喻,可靠性和穩定性是對監控系統的最基本也是最重要的要求。考慮到系統會被套用於不同的場合,周圍運行環境會有很大的差異,這就需要保證系統具有蚝時間連續工作的能力,同時在出現故障時有自監測和自修復的能力。從而在很大程度上減輕維護人員的工作量。使監控系統在無人看守的情況下也能正常運行。為了保證系統的可靠性和穩定性,在作業系統的驅動層上提供了對系統實時監測的功能,可根據其運行狀況進行相應的調整,使系統始終保持正確的運行狀態。在套用層上,提供了對於錯誤圖像數據的監測和處理機制,能夠有效地對數據進行分揀。本系統通過提高系統自身的排錯能力並同時為系統增加容錯機制保證了系統的可靠性和穩定性。
網路照相機系統
系統功能模型
根據網路照相機監控系統的功能要求,設計了如圖l所示的功能模型。整個系統由四大功能模組組成:圖像數據採集模組,圖像壓縮編碼模組,網路傳輸模組(包括有線和無線兩種方式)和用戶互動控制和監控播放模組。
各模組功能
(1)相機模組
本模組的主要任務是以一定的頻率不斷對原始圖像數據進行採集。選用0V7640數碼照相晶片作為數據採集模組,它採用CMOS型的感光晶片,能夠輸出彩色VGA(1600*1200)圖像陣列。在VGA模式下。其最大輸出量可以達到30fps,基本滿足實時監控的要求。周時由於其設計精巧,能耗低,適合套用於攜帶型產品。
(2)圖像壓縮編碼模組
本模組的主要任務是對從相機模組傳輸過來的原始蹦像數據(YUV4:2:2)進行JPEG壓縮編碼,生成標準JPEG圖片。由於從數位相機獲得的原始圖片數據量很大(一般每張圖片700K~900K),不適於通過網路實時傳輸,所以要先對圖像信息進行壓縮。由於採用硬編碼技術,大大提高了編碼效率。評測結果顯示,採用這種方法壓縮一張圖片所需的時間少於30ms,遠遠低於軟體編碼方式所需的時間。編碼器進行圖像編碼的步驟如下:
I)原始YuV圖像數據(1600*1200)經過Resizar模組,完成對圖像大小的裁剪;
2)經裁剪後的圖像數據進入編碼緩衝區中;
3)在編碼模組中對原始圖像進行JPEG壓縮;
4)利用DMA將編碼結果傳輸到記憶體中的緩衝區,為下一步進行網路傳輸做好準備。
(3)網路傳輸模組
本模組利用Linux的網路子系統把JPEG圖像數據經過有線網路或無線網路(IEEE802.11b)傳送到遠程用戶。在有線傳輸的結構中,採用專用的網卡晶片,並編寫其在Linux網路系統下硬體設備層的驅動;同時義設計了PCMCIA接口,通過使用該接口的無線網卡可以實現無線傳輸。
(4)用戶互動控制和監控播放模組
本模組主要功能是即時同放實時採集的視頻圖片井完成對拍攝照片類型的控制。考慮到用戶需求的多樣性,在用戶端實現了三種圖片顯示方式,包括實時的動態顯示.靜態圖片的捕捉和動畫製作。用戶可以利用這兒種方式的組合來準確分析監控現場的變化。在Linux系統中集成了支持CGI的用於嵌入式系統的高性能Web伺服器,並由它提供boaWeb服務。
嵌入式平台
(1)嵌入式Linux系統框架
嵌入式Linux套用系統的框架如圖3所示,它由硬體平台、設備驅動、Linux核心、Linux檔案系統和應用程式五部分組成。嵌入式Linux作業系統具有使用成本低,移植性好,可裁剪和豐富的開發技術資源等優點,因此己成為嵌入式行業的首選平台。
(2)Linux核心的裁剪和移植
通常所用的Linux系統都是通用的作業系統。為了能夠對更多的硬體平台和通用設備進行支持,系統中除了核心的基礎設施外,還包括了很多擴展功能。對下嵌入式系統來說,有限的資源使系統不能承受這些功能運行開銷,所以要根據具體項目的需要對核心中的各個子系統進行裁剪。
Linux作業系統的基本組件包括進程調度管理、記憶體管理、根檔案系統和IDF_JMEM設備驅動以及一些I/O子系統。對了網路照相機監控系統而言.可裁剪的組件包括各類檔案系統韻支持,字元設備驅動程式、塊設備驅動程式、網路設備驅動程式和各類網路協定等等。根據網路監控系統的需要,在保證系統基本功能的基礎上,保留對T-TCP/IP協定和PCMCIA標準等的支持,去掉所有無關功能模組,根據需要定製出最小使用核心。在本系統中,經裁剪壓縮後的核心人約在500K左右,可直接保存住Flash中。移植的主要任務就是對與特定硬體平台有戈的代碼進行相戍的修改平¨擴充。在該系統中,核心的移植主要分兩部分進行,以核心的入口函式start_kernel為分界線。分界線以前首先進入bootS對cpu(arm720t)、memory等進行初始化,然後進入head.armv.S膏找Processor和Architecture的類型,建立核心的初始化堆疊和臨時頁表,清除BSS段,同時TLB和Caches被刷新。最後進入start_kernel;分界線以後主要是初始化核心運行的基礎設施,包括進程調度系統.記憶體管理系統和設備驅動等,最後返同用戶空間執行用戶程式。
(3)檔案系統的建立
通常嵌入式系統Flash的容量都很小,一般只有幾M,因此在移植核心時戍採用ext2檔案系統的Ramdisk作為系統的初始根檔案系統,移植成功後可再將根檔案系統改為JFFS2、ROMFS或CRAMFS等。Ramdisk可以從網上下載,也可以自己通過命令製作。在Rarndisk映像中可以包含適合該照相機監控系統的應用程式,它是以gzip的形式壓縮的。如果在Bootloacler中正確的指定了Ramdisk的起始地址、大小以及ROOTDEV,則核心啟動時會以Ramdisk作為根檔案系統。根檔案系統掛載成功後,核心將打開控制台,嘗試啟動init進程,運行shell。
(4)驅動程式的開發
本系統中主要實現JPEG編碼器和網}的驅動。Linux利用面向對象的思想對所有的物理設備進行抽象並且定義了一個統一的接口(Interface)。對於所有硬體的訪問都是通過接口進行的,接口實際上向用戶提供了一個對於所有類型硬體的一致化的操作集合.從而禁止了各種硬體設備的實現細節,提高程式的易用性和通用性。Linux下的設備驅動程式可以按照兩種方式進行編澤:一種是直接靜態編譯成核心的一部分,另一種則是編譯成可以動態載入的模組。如果編譯進核心的話,會增加核心的大小。還要改動核心的源檔案,而且不能動態地卸載,不利於調試,所以推薦使用模組方式。比較兩者,第二種形式更加靈活,適於在調試過程中使用。
4系統測試結果與結論
系統硬體配置:ARM720T(主頻約50MHz),SDRAM(16M)。IO/IOOM網卡/802.11b無線網卡。
測試結果:利用IO/1OOM網卡或無線網卡,實現了"1600*1200圖像解析度的採集。幀率是30幀/s。在較穩定的拍攝環境下。所得到的圖像質量良好,實現了監控現場圖像的實時捕捉。本系統針對當前監控系統的不足,採用嵌入式數位化技術,從可靠性、靈活性和高效性等方面著手。設計井實現了一套全功能的網路照相機監視系統,並通過實驗驗證。考慮到套用環境的多樣性,在設計的過程中兼顧了各種情況下的使用特點。例如工廠企業的監控管理,家居小區的安防和公共場所的管理等等,因此具有廣泛的使用價值。此外,本系統還可以嘗試修改Linux核心的任務調度機制,縮短每個任務的運行時間,從而使整個系統的實時性增強。以滿足更高的實時性的要求。