主頁(http://www.by236.com):基于嵌入式系統的網絡視頻監控設備的設計與實現 【中國集群通信網】隨著計算機技術及網絡技術的迅猛發展,視頻監控系統的發展趨勢必然是全面數字化、網絡化,即采用嵌入式網絡攝像機,利用網絡進行傳輸,并充分利用大規模集成電路和網絡的科技成果,及體積小巧、性能穩定、通訊便利等特點,將使監控無處不在成為現實。而目前,我國基于嵌入式技術的網絡視頻監控系統剛剛起步,所以研究并開發一種基于嵌入式系統的網絡視頻監控系統具有很大的工程實際意義。 本文針對網絡視頻監控設備的實際應用需求,有機的結合圖像采集和嵌入式系統兩方面的新技術,設計了基于ARM 32位單片機系統和圖像采集存儲系統的嵌入式網絡視頻監控設備,并實現了視頻數據的采集、壓縮與網絡傳輸。 2 ARM與嵌入式網絡視頻監控設備 32位嵌入式處理器中有MIPS、ARM、M-CORE等等。ARM(Advanced RISC Machines)處理器本身是32位系統,其內核具有性能高、成本低和能耗省的特點。 支持ARM的嵌入式操作系統主要有:Windows CE、Vxworks、uClinux等[1]。uClinux是“Micro-Control-Linux”縮寫,意即“針對微控制領域而設計的Linux系統”[2]主要是面對沒有MMU并且資源很少的嵌入式系統。高性能、高集成度將是嵌入式系統的發展方向[4]。“嵌入式網絡視頻監控設備”是第三代數字監控設備。 嵌入式網絡視頻監控設備體積小巧,具有圖像采集、圖像處理功能,帶有以太網接口,TCP/IP協議棧,性能比較穩定,可直接與Internet互連,系統的擴展性很好,監控區域幾乎無限,并且由于設備傳輸到網絡上是數字化視頻信號,可直接利用軟硬件進行處理。同時因為設備本身帶有操作系統,因此可以方便的進行后續開發,增加用戶所需功能,提高設備的智能程度。 3 嵌入式監控系統硬件模塊的設計 3.1系統總體設計 硬件系統可以分為三個模塊:ARM集成開發模塊、圖像采集模塊、圖像存儲控制模塊。其中ARM集成開發模塊模塊的CPU采用三星的S3C4510B;圖像采集模塊中的CMOS圖像采集芯片采用Ommvision公司的OV7620,鏡頭采用桑來斯公司生產的DSL103鏡頭;圖像存儲模塊主要包括74LS244(八進制3狀態線緩沖器),4040(12位二進制串行計數器),512K 的SRAM CY7C1049。 系統工作過程可分為主要兩個步驟:圖像數據存儲和圖像數據讀出過程。系統上電之后,單片機將通過I2C總線對CMOS圖像傳感器的工作寄存器進行初始化設置,以便使圖像傳感器進入正常的工作狀態,如開窗口位置、逐行掃描方式、自動曝光、自動平衡等。如果上位機需要調整CMOS圖像傳感器的工作參數,則可以通過地址端口寫入;隨后,CMOS圖像傳感器輸出的8位圖像數據在邏輯控制電路的協調控制下,順序存入靜態RAM構成的圖像數據緩沖器。如果上位機沒有發出讀數據的命令,則此過程一直進行下去,新的圖像數據不斷地覆蓋原有的數據;如果上位機發出讀取圖像數據的命令,則等待一幀完整的圖像寫入后,單片機將CMOS圖像傳感器的圖像輸出通道關閉,然后將SRAM中的數據順序從IO讀入。讀完一幀圖像后,再將CMOS圖像傳感器的圖像輸出通道打開重新開始新的一幀圖像的采集。 3.2 ARM集成開發模塊模塊的設計 本系統CPU S3C4510B是基于以太網應用系統的高性價比16/32位RISC微控制器,內含一個由ARM公司設計的16/32位ARM7TDMI RISC處理器,ARM7TDMI為低功耗高性能的16/32位核。該CPU最適合用于對價格及功耗敏感的應用場合。 系統中采用的Flash存儲器MBM29F016在本系統中用來存放uClinux操作系統程序代碼。SDRAM是高速的動態隨機存取存儲器,在系統中主要用作程序的運行空間、數據及堆棧區。RTL8201是一種全雙工以太網控制器,當系統中主處理器要向網上發送數據時,先將一幀數據通過遠程DMA通道送到RTL8201中的發送緩存區,然后發出傳送數據命令。RTL8201在完成了上一幀的發送后,再完成此幀的發送。RTL8201接收到的數據通過MAC比較,CRC校驗后,由FIFO存到接收緩沖區,收滿一幀后,以中斷的方式通知主處理器。 3.3 OV7620攝像頭模塊電路設計 由于OV7620集成度高,外圍電路設計非常簡單,僅由石英晶體和一些電阻、電容等元件組成。 3.4圖像存儲模塊的硬件設計 圖像存儲模塊采用兩個計數器4040作為RAM的地址信號,分別采集和讀取利用PCLK或ARM的IO脈沖信號作為計數器的時鐘信號。本模塊利用MAX+plusⅡ 軟件仿真了硬件時序,分析組合邏輯電路及時序邏輯電路,驗證了數字系統設計的準確性。 4 嵌入式系統控制軟件的設計與實現 4.1系統控制流程 系統軟件模塊主要在嵌入式操作系統uClinux下用C語言實現。其主要作用在于控制硬件設備,完成預定的圖像采集、壓縮、傳輸功能。按控制時序方向依次為I2C驅動程序、圖像數據采集程序、圖像壓縮程序、網絡傳輸程序四部分組成。 當將要采集圖像數據時,嵌入式系統通過I2C驅動程序設置OV7620內部寄存器的值,配置合適的圖像格式。當一幀圖像完全存儲到SRAM后,啟動圖像采集程序,將SRAM中的數據讀取到嵌入式系統內存中,并進行壓縮,最后打包發送到網絡上。 4.2 I2C驅動程序的原理與實現 系統上電之后,單片機將通過I2C總線對CMOS圖像傳感器的工作寄存器進行初始化設置,以便使圖像傳感器進入正常的工作狀態,如開窗口位置、逐行掃描方式、自動曝光、自動白平衡等。如果上位機需要調整CMOS圖像傳感器的工作參數,則可以通過地址端口寫入,雖然S3C4510B提供了I2C BUS。但是目前市面上的uClinux則沒有針對S3C4510B的I2C BUS的驅動。 同時通過在uClinux操作系統下編制調試IO數據讀取控制程序、圖像壓縮程序、網絡通信程序后,I2C驅動可以方便的修改OV7620寄存器數據,CPU可以通過IO高速的把數據讀到內存,圖像壓縮后體積明顯減小,通過網絡可以流暢的把圖像數據發送到客戶端。其中也有一些不足之處比如I2C驅動有時會由于干擾不能成功的修改OV7620的寄存器,還有待深入分析修改。 4.4 圖像的合成與處理 圖像的合成主要根據位圖文件的的數據結構、顏色空間模型概念,并結合彩色圖像合成原理對圖像進行合成。
|




