• 
    <ul id="auswy"><sup id="auswy"></sup></ul>
  • <ul id="auswy"></ul>
    ABB
    關注中國自動化產業發展的先行者!
    CAIAC 2025
    2025工業安全大會
    OICT公益講堂
    當前位置:首頁 >> 案例 >> 案例首頁

    案例頻道

    基于嵌入式系統的網絡視頻監控設備的設計與實現
    • 企業:     領域:運動控制與伺服系統     行業:電子制造    
    • 點擊數:2148     發布時間:2005-08-19 12:24:10
    • 分享到:
    具有圖像采集、傳輸和處理等功能的嵌入式視頻監控設備可以在Internet上傳輸圖像數據,基本上不受距離限制,無須重新布線;性能穩定,且便于安裝,維護。文中討論了以CMOS圖像采集芯片,ARM微處理器和嵌入式操作系統為核心的監控設備的軟硬件設計。重點介紹了ARM單片機子系統、圖像采集模塊、圖像存儲控制模塊等硬件部分的設計原理與實現。介紹了在uClinux下驅動程序、圖像采集、圖像壓縮算法、網絡通訊程序的實現原理與過程,以及圖像合成、處理的方法。



    1 引言

        隨著計算機技術及網絡技術的迅猛發展,視頻監控系統的發展趨勢必然是全面數字化、網絡化,即采用嵌入式網絡攝像機,利用網絡進行傳輸,并充分利用大規模集成電路和網絡的科技成果,及體積小巧、性能穩定、通訊便利等特點,將使監控無處不在成為現實。而目前,我國基于嵌入式技術的網絡視頻監控系統剛剛起步,所以研究并開發一種基于嵌入式系統的網絡視頻監控系統具有很大的工程實際意義。
        本文針對網絡視頻監控設備的實際應用需求,有機的結合圖像采集和嵌入式系統兩方面的新技術,設計了基于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]。“嵌入式網絡視頻監控設備”是第三代數字監控設備,系統結構如圖1。


        嵌入式網絡視頻監控設備體積小巧,具有圖像采集、圖像處理功能,帶有以太網接口,TCP/IP協議棧,性能比較穩定,可直接與Internet互連,系統的擴展性很好,監控區域幾乎無限,并且由于設備傳輸到網絡上是數字化視頻信號,可直接利用軟硬件進行處理。同時因為設備本身帶有操作系統,因此可以方便的進行后續開發,增加用戶所需功能,提高設備的智能程度。

    3 嵌入式監控系統硬件模塊的設計

    3.1系統總體設計

        硬件系統可以分為三個模塊:ARM集成開發模塊、圖像采集模塊、圖像存儲控制模塊。其中ARM集成開發模塊模塊的CPU采用三星的S3C4510B;圖像采集模塊中的CMOS圖像采集芯片采用Ommvision公司的OV7620,鏡頭采用桑來斯公司生產的DSL103鏡頭;圖像存儲模塊主要包括74LS244(八進制3狀態線緩沖器),4040(12位二進制串行計數器),512K 的SRAM  CY7C1049。功能原理框圖如圖2所示:


       
    系統工作過程可分為主要兩個步驟:圖像數據存儲和圖像數據讀出過程。系統上電之后,單片機將通過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最適合用于對價格及功耗敏感的應用場合[3]。
        系統中采用的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驅動程序、圖像數據采集程序、圖像壓縮程序、網絡傳輸程序四部分組成。系統控制流程圖5如下:



       
    如上圖所示,當將要采集圖像數據時,嵌入式系統通過I2C驅動程序設置OV7620內部寄存器的值,配置合適的圖像格式。當一幀圖像完全存儲到SRAM后,啟動圖像采集程序,將SRAM中的數據讀取到嵌入式系統內存中,并進行壓縮,最后打包發送到網絡上。

    4.2 I2C驅動程序的原理與實現

        系統上電之后,單片機將通過I2C總線對CMOS圖像傳感器的工作寄存器進行初始化設置,以便使圖像傳感器進入正常的工作狀態,如開窗口位置、逐行掃描方式、自動曝光、自動白平衡等。如果上位機需要調整CMOS圖像傳感器的工作參數,則可以通過地址端口寫入,雖然S3C4510B提供了I2C BUS。但是目前市面上的uClinux則沒有針對S3C4510B的I2C BUS的驅動。

    uClinux下I2C驅動程序主要數據結構及函數描述如下:
    #define DEVICE_NAME "i2c"  /* 定義設備的名稱 */
    #define I2C_MAJOR 89   /* 定義主設備號  */
    static volatile U8 priv_buf[128];
    static struct semaphore i2c_samsung_sem;
    static struct file_operations i2c_ops ;
    /* IIC 參數設置  */
    typedef struct
    { int i2c_speed;
      U8  i2c_slave;
      U8  i2c_addrlen;
      U8  i2c_operate;
      int i2c_pagesize;
      spinlock_t lock;
      U8 *buf;
    } I2C_PRIVATE_T;
    int __init i2c_samsung_init( void );/*  初始化函數 */
    static ssize_t i2c_read (struct file * file ,char * buf, size_t count, loff_t * f_ops);  /* 讀數據函數 */
    static ssize_t i2c_write (struct file * file ,const char * buf, size_t count, loff_t * f_ops);
     /* 寫數據函數 */
    static ssize_t i2c_ioctl (struct inode * inode ,struct file * file,
    unsigned int cmd, U32 data); /* 控制函數 */
    static ssize_t i2c_open (struct inode * inode ,struct file * file);
    /* 打開設備函數 */
    static ssize_t i2c_release(struct inode * inode ,struct file * file);
    /* 釋放設備函數 */
    static void s3c4510_i2c(int irq, void *dev_id, struct pt_regs *regs);
       /* i2C 中斷句柄函數 */
    int  init_module(void) /* 安裝驅動程序模塊函數 */
    void cleanup_module( void ) /*卸載驅動程序模塊函數 */
        同時通過在uClinux操作系統下編制調試IO數據讀取控制程序、圖像壓縮程序、網絡通信程序后,I2C驅動可以方便的修改OV7620寄存器數據,CPU可以通過IO高速的把數據讀到內存,圖像壓縮后體積明顯減小,通過網絡可以流暢的把圖像數據發送到客戶端。其中也有一些不足之處比如I2C驅動有時會由于干擾不能成功的修改OV7620的寄存器,還有待深入分析修改。

    4.4 圖像的合成與處理

        圖像的合成主要根據位圖文件的的數據結構、顏色空間模型概念,并結合彩色圖像合成原理對圖像進行合成。
        由于采集圖像時,不僅要受鏡頭的光學系統、照明的光強分布等因素影響,還要考慮CMOS圖像傳感器的分辨率等。因而采集的圖像經常具有噪聲和不明因素的干擾,為了能更好地進行圖像處理分析,可利用圖像的預處理,根據得到的實際圖像的信息進行修復。
        消除圖像噪聲的方法在圖像處理中稱為圖像平滑處理。圖像平滑處理主要有移動平均法和中值濾波法兩種。在移動平均法中,把噪聲成分也放到了平均計算之中,因此其輸出也受到噪聲的影響。而在中值濾波中,噪聲成分很難被選到,對輸出圖像不會有什么影響。因此,對同一塊圖像進行比較,中值濾波法在去除噪聲的能力上略勝一籌。本設備中利用中值濾波的程序實現了算法,測試結果表明圖像上的斑點基本被消除,處理后的圖像很清晰。

    5 結束語

        基于嵌入式系統的網絡視頻監控設備通過構筑一個基于S3C4510B和uClinux的嵌入式平臺,可便利的通過Internet與外界通信,較好的實現了視頻數據的采集、壓縮與網絡傳輸,達到實時監控的目的。經過壓縮編碼后圖像數據體積有了明顯的減小,圖像數據可以存儲到數據庫中,為數據的分析帶來很大的便利。我們深信,這樣一種基于嵌入式系統的網絡視頻監控系統具有很大的工程實際意義。

    熱點新聞

    推薦產品

    x
    • 在線反饋
    1.我有以下需求:



    2.詳細的需求:
    姓名:
    單位:
    電話:
    郵件: