基於AT91RM9200的嵌入式網路攝像機的設計與實現

來源:互聯網
上載者:User
基於AT91RM9200的嵌入式網路攝像機的設計與實現時間:2009-06-19 14:32:54
來源:微電腦資訊 作者:趙印偉 謝勝利

1. 引言

著通訊技術和網路技術的迅猛發展,通過網路遠程即時監控重要場所已倍受人們關注,網路攝像機在此背景下產生,並成為人們關注的焦點。網路攝像機要將高清晰
度的即時視頻資訊通過互連網傳送到監控終端,因其資訊量巨大,所以必須壓縮。通常人們採用DSP與MPEG-4演算法相結合的方案來實現,不僅編程工作量
大,而且產品的成本高。本文所介紹的網路攝像機採用專用的MPEG-4壓縮晶片、以嵌入式Linux作為作業系統,不僅開發便捷、成本低廉,而且即時性
好,適用範圍廣。
2. 系統總體設計
系統總體設計包括硬體設計和軟體設計兩部分。硬體設計模組主要包括微控制器模組、壓縮編碼模組、網路
介面模組和相機控制模組四部分。微控制器模組主要由主控晶片、DataFlash和SDRAM(1)組成。其中,主控晶片是整個控制系統的核心,它負責整
個系統的調度工作。DataFlash裡固化了嵌入式Linux核心、及其檔案系統、應用軟體和系統設定檔。SDRAM(1)作為記憶體供系統運行使用。
壓縮編碼模組由視頻資料擷取晶片、MPEG-4壓縮編碼晶片、SDRAM(2)組成,負責將視頻流轉化為MPEG-4碼流。網路介面模組主要是配合主控芯
片傳送MPEG-4碼流。相機的控制模組主要由串口晶片集成,其完成轉寄控制相機命令的功能。當系統啟動時,微控制器通SPI(Serial
Peripheral
Interface,串列外設介面)將Linux核心轉入SDRAM(1)中,系統從SDRAM(1)中啟動。系統啟動後,微控制器通過HPI(Host
Peripherial Interface, 主機介面)控制MPEG-4編碼模組。統結構1所示。

圖1 系統結構框圖

件設計部分主要包括嵌入式Linux移植、MPEG-4壓縮編碼模組、CGI控製程序和MPEG-4解碼程式四部分。嵌入式Linux系統存放到由
AT91RM9200控制的DataFlash裡,它負責整個系統軟體的調度工作。MPEG-4壓縮編碼模組主要負責類比視頻流的採集,並將數位視訊流壓
縮為MPEG-4資料流。CGI控製程序主要負責對攝像機的控制和對MPEG-4視頻流的相關設定。MPEG-4解碼程式主要負責對通過網路得到的
MPEG-4資料流的解碼工作。
3. 硬體設計
3.1微控制器模組
微控制器是本系統的核心組件,選用的是ATMEL公司的
AT91RM9200。它是一款基於ARM920T核的32位微控制器。其主頻為180MHz,處理速度快,功能強,性價比高,能很好滿足嵌入式
Linux系統的需求。它在系統中的主要作用是在系統上電時配置其他晶片的功能寄存器,在正常工作狀態下調度控制整個系統工作,通過片內乙太網路控制器控制
物理層晶片發送碼流。
    AT91RM9200通過片內的SPI匯流排和SDRAM控制器實現對外圍DataFlash和SDRAM的控制,利用片內的USART實現對串口晶片的控制,通過片內的乙太網路控制器對片外網路晶片進行控制。其控制原理圖2所示。

圖2 控制原理圖
3.2壓縮編碼模組

縮編碼模組包括類比視頻採集模組和MPEG-4壓縮模組。視頻採集晶片採用TI公司的TVP5150,資料壓縮晶片採用映佳公司的MPG440。
TVP5150輸入端可是兩種混合視頻訊號也可是S-Video端子的視頻訊號,支援NTSC、PAL、SECAM等3種制式,其輸出的資料色彩格式可以
為8bit 4:2:2數字訊號或者8bit同步ITU-R
BT.656數字訊號。MPG440晶片具有符合工業標準的16b/32b的雙向主機介面,分別用來與視頻採集晶片和微控制器晶片通訊。同時,具有移動偵
測、防偽浮水印、動態調整IP畫格比率、動態調整映像品質等特性,支援D1、VGA、CIF、QVGA、QCI等五種解析度模式。微控制器通過主機介面實現
MPG440的初始配置,也由此接收MPEG-4碼流。壓縮編碼模組的硬體設計原理3所示。

圖3 壓縮編碼電路
 TVP5150
的AI類比輸入口與類比網路攝影機輸出端串連,向視頻處理晶片傳送類比視頻訊號。類比訊號經過採樣處理之後通過YOUT0~YOUT7引腳送到MPG440,
採樣資料在PCLK的上升沿有效,MPG440的VIDEO_CLK在收到PCLK的上升沿時獲得YOUT的訊號。TVP5150分場同步脈衝和行同步脈
沖,分別對應其輸出端VSYNC、HSYNC。MPG440正是根據與之相連的VSYNC和HSYNC訊號線來實現映像的場同步和行同步操作。
MPG440的視頻輸入資料線DATA_TV0~DATA_TV7與TVP5150的YOUT0~YOUT7相連。MPG440在接收資料的同時,將其得
到的資料流傳送給MPEG-4壓縮編碼單元,編碼後的MPEG-4資料流暫存到SDRAM(2)中。MPG440片內PDMA控制器根據配置寄存器的設定
準確發起對SDRAM(2)訪問,同時將得到的資料流輸送往HPI(主機匯流排介面,Host Peripherial
Interface),以等待AT91RM9200通過DMA通道將資料發送到網路。
 
MPG440通過HPI與AT91RM9200通訊,AT91RM9200將MPG440的寄存器、儲存空間等資源作為其本身記憶體定址訪問。MPG440
由AT91RM9200選通線NCS4來選通,其在AT91RM9200定址空間中的位址區段為0X50000000到0X5FFFFFFF。通過對
MPG440一系列寄存器的設定,可以訪問MPG440系統儲存空間。MPG440中斷訊號RSC_INT0從通用I/O引腳的PB29輸入,當緩衝器填
滿時,RSC_INT0引腳置低提示AT91RM9200通過DMA通道提取MPEG-4資料流。編碼後視頻資料讀取過程和MPG440與主機通訊過程由
AT91RM9200讀訊號CFRD和寫訊號CFWE控制。
3.3網路模組
網路模組硬體設計原理4所示。

圖4 網路模組電路
AT91RM9200
的在片乙太網路卡連接埠和網路物理層晶片DM9161E的MII介面通訊。發送資料時,首先置發送使能訊號ETXEN有效。資料發送端ETX0~ETX1與
DM9161的ETXO~ETX1引腳對應串連,作為資料發送通道,以DM9161E的時鐘訊號REF_CLK發送資料。資料接收端ERX
0~ERX1與DM9161E的RXDO~RXD1引腳對應串連,作為資料接收通道。管理時鐘訊號EMDC和管理資料輸入輸出訊號EMDIO用來晶片控制
參數的寫入和讀取。DM9161E的MDINTR端用來產生中斷訊號。
片內乙太網路卡通過DMA通道進行資料的發送,不影響AT91RM9200的
正常運行。首先正確設定傳送控制寄存器和傳送地址寄存器的傳送資料區塊位元組數、資料區塊儲存首地址等參數,隨後依次從指定資料存放區區地址讀取1024b資料,
送入內部發送緩衝器中,由MAC對資料進行封裝發送,同時記錄已傳送位元組數,直到資料區塊發送完畢。當發送完一組資料後,發出DMA插斷要求,由
AT91RM9200進行相應的處理。整個網路子系統電路由AT91RM9200控制和調度。
4.軟體設計
嵌入式Linux系統主要由四
個部分組成:引導核心啟動的檔案(bootloader)、Linux核心檔案(kernel)、虛擬磁碟檔案(ramdisk)、使用者空間檔案
(user)。它們分別被放在DataFlash內的四個分區模組中。根據不同模組的具體功能採用不同的檔案系統:bootloader、kernel、
ramdisk,移植完成後不需要動態改變,使用較節省空間的ROMFS唯讀檔案系統;user模組內放置一些可以動態更新的設定檔等,需要進行較多的
讀寫操作,所以使用支援動態擦寫儲存的JFFS2檔案系統[1]。
Linux移植技術已經成熟,本文不作詳細的闡述。下文主要介紹MPEG-4壓縮編碼模組和CGI模組的程式設計。

4.1 MPEG-4壓縮編碼模組程式設計
該模組主要完成MPG440和TI5150相關寄存器的配置,並保證MPEG-4碼流的正常輸出。當嵌
入式Linux系統啟動後,首先配置MPG440的相關寄存器,其初始化完成後,通過I2C匯流排對TVP5150進行初始化配置[2]。當系統開始壓縮編
碼時,MPEG-4碼流接收儲存程式由MPEG-440的資料流緩衝器標誌訊號控制。當1024b緩衝器滿時,RISC_INT0置於低電平,微控制器通
過DMA通道從MPG440的HPI口將碼流送到PC機端。MPEG-4壓縮編碼模組程式流程4所示。

圖5 MPEG-4壓縮編碼模組程式流程圖
4.2 CGI程式模組設計
CGI(Common
Gateway
Interface)是外部擴充應用程式與WWW伺服器互動的一個標準介面。本系統CGI的工作過程:在PC機端的IE瀏覽器中輸入網路攝像機IP地址,
嵌入式網路伺服器根據請求,將相應的控制頁面反饋給IE瀏覽器,使用者填寫表單,然後提交,CGI程式提取表單的資訊,根據不同資訊來分別處理相應的事件,
如調節MPEG-4相關屬性、相機的相關操作等。CGI控制原理5所示。

圖6 CGI控制原理圖
CGI模組的設計主要包括三部分:嵌入式web伺服器的配置、html頁面的編寫、CGI程式的設計。
嵌入式web伺服器採用的是Apache,其配置是以設定檔的形式提供,放在Ramdisk中/etc/httpd/conf/目錄下。其配置主要涉及以下三個方面:
○1配置根檔案的路徑:“DocumentRoot  /home/httpd/html”,html頁面必須放到此目錄下。
○2配置CGI外部程式所放的路徑:“ScriptAlias /cgi-bin/ home/httpd/cgi-bin/”。
○3配置環境變數:“SetEenv D_LIBRARY_PATH=/lib:/usr/local/lib:/usr/lib”,該變數將會被傳送到 CGI 指令碼和SSI頁面,以保證CGI程式能正確找到所依賴的庫。
網頁編寫採用html與shtml相結合的方式。html的解析速度較快,shtml可以在普通網頁中嵌入外部CGI程式,通過這種方式將系統的預設配置反饋給用戶端。
CGI程式採用的是C語言和shell指令碼相結合的方式, 具體編寫過程,與通常的了Linux下編程相同。限於篇幅,不再贅述。
4.3 MPEG-4解碼程式
映佳科技已提供供二次開發的MPEG-4解碼外掛程式OCX,OCX在PC機端註冊後,OCX函數可方便地被網頁調用,從而實現在PC機端觀看即時映像。
5 總結
 本文介紹了一種利用AT91RM9200、TVP5150,MPG440和DM9161E等晶片設計的嵌入式網路攝像機。經測試,該系統穩定、可靠、即時性好、映像品質出色。該產品可廣泛應用於交通監控和工業監控以及家庭監控、視頻會議話等眾多領域。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.