基於TMS320DM642的網路攝像機的設計及實現

來源:互聯網
上載者:User
基於TMS320DM642的網路攝像機的設計及實現
[日期:2008-9-18] 來源:電子技術應用  作者:岑 鴻, 洪孝炬 [字型: ]

 

隨著網路技術和多媒體技術的廣泛應用,數字網路視頻得到了飛速發展。在網路視頻會議和網路監控領域中,將傳統的類比視頻訊號轉換成數位視訊訊號,並且藉助於現有的IP網路進行傳輸已成為當今的一大熱點。
  從技術實現方式來講,通常是採用網路攝像機來實現。目前市場上的網路攝像機一般有兩類:一類是普通攝像機加視頻網關構成,但是這種方案體積龐大、操作繁瑣;另一類是把全部網路接入功能都整合在攝像機中,其體積小、功能全、便於使用和維護。後一類攝像機有多種解決方案,本文提出一種基於嵌入式DSP的設計方案,並且給出具體的硬體及軟體實現。
1 硬體系統設計
1.1 嵌入式處理器TMS320DM642
  TMS320DM642(以下簡稱DM462)是TI公司近來發布的新一代多媒體處理器,它基於其第二代高效能的VelociTI VLIW結構,適用於多種數位媒體應用。DM642的時鐘頻率為600MHz,指令速度高達4800MIPS。這款DSP的兩大特色在於:第一,擁有三個可配置的視頻介面(VP),可同時採集三路視頻訊號;第二,整合了乙太網路介面,10/100Mbps模式自適應,能工作在全雙工系統或半雙工模式下,並具有硬體流量控制和服務品質保證(QoS)支援。DM642的功能十分強大,它是構成多媒體通訊系統的最佳平台之一。
1.2 硬體整體架構
  本系統的硬體平台由六部分組成,分別是視頻採集、資料存放區、視頻處理、視頻顯示、網路和電源管理。其結構框圖1所示。

  視頻採集部分採用類比PAL制網路攝影機,配合高精度視頻A/D轉換器得到數位影像。A/D轉換器採用TI公司的TVP5145晶片,其採樣精度達到10bit,輸出支援CCIR-656和BT656等格式。
  資料存放區部分的RAM採用三星公司的SDRAM。為配合DM642的64位EMIF(外部儲存空間介面),使用四片SDRAM,每片工作在16位元模式,單片容量為32MB。資料存放區部分的ROM採用ATMEL公司的NOR型的Flash晶片,總容量為256KB,資料匯流排為8位。本系統中的SDRAM用來存放系統運行時的代碼以及臨時映像資料,Flash用來儲存系統自啟動代碼以及系統程式碼。
  視頻顯示部分採用數字LCD,可省去數/模轉換晶片,只需一片CPLD驅動LCD。CPLD採用Altera公司的MAX3000系列。這部分作為協助工具功能,可根據實際運用場合進行選擇。
  DM642的乙太網路控制器(即EMAC)屬於資料連結層,因此需外接物理層晶片才能進行網路通訊。這裡採用Intel公司的LXT971A晶片,它提供了MII(Media Independent Interface)介面,可以方便地和DM642串連。
  電源管理部分在一個硬體系統設計中佔有舉足輕重的地位。本系統的電源模組採用MAXIM公司的解決方案,包括一片MAX1762晶片(產生1.4V電源給DM642核心供電)以及兩片MAX1626(分別產生3.3V電源給DM642的I/O供電和產生5V電源給LCD的逆變器供電)。
2 裝置驅動設計
  TI為DM642的VP口開發了一個兩層裝置驅動模型。上層驅動稱為Class Driver,用於串連應用程式和下層驅動;下層驅動稱為Mini Driver,更靠近底層硬體。應用時只需根據這個模型編寫驅動程式就可以了。
  對於乙太網路口,TI提供了一個網路開發組件(NDK),為在DSP上開發網路應用程式提供了平台。有了這個平台,在開發網路應用程式時,就不用過多考慮資料如何封裝成IP包,也不用過多關心TCP/IP協議內部的工作機制,這樣可以縮短產品的開發週期及上市時間。
2.1 視頻連接埠的兩層裝置驅動模型
  兩層裝置驅動模型2所示。最上層是應用程式,最下層是底層硬體,包括DM642的VP口和視頻A/D晶片。中間大花括弧括起來的部分即為裝置驅動。圖中還有一層晶片支援庫(CSL),它提供配置及控製片上外設的C語言介面。

  根據VP口的特點,裝置驅動的兩層驅動模型的每一層又細分了兩層。從圖2可以看到,把Class Driver分為FVID Class Driver和GIO Class Driver。前者更靠近應用程式,它提供一些特別適用於映像的API函數;後者提供與Mini Driver進行通訊的API函數。Mini Driver分成通用部分和特殊部分,這樣分的優勢在於:當改變硬體構成時,無需重寫Mini Driver,只需修改特殊部分即可,提高了代碼的重複使用性。
2.2 網路開發組件
  網路開發組件的核心即為一系列TCP/IP協議棧庫。包括:(1)棧庫和網路工具庫,它含有一些經過最佳化編譯的協議棧代碼;(2)作業系統適應庫,它用來協調TCP/IP協議棧和DSP/BIOS之間的介面;(3)網路控制及調度庫,它決定TCP/IP環境的初始化以及網路相關事件是如何被調度的;(4)多種硬體抽象層平台庫,為TI公司的多種開發板(比如DSK、TEB和EVM等)提供支援。由於本系統為自行開發,所以不涉及HAL。
  協議棧庫的流程框圖3所示,其中灰色模組分別代表前述五個庫。

3 軟體設計及實現
  TI公司的DSP開發軟體包括整合式開發環境(CCS)、 即時作業系統(DSP/BIOS)、第三方演算法庫標準(eXpressDSP)。DSP/BIOS是一個使用者可裁剪的即時作業系統,包含記憶體管理、線程管理、中斷、外設管理和任務調度等功能。另外,還需使用JPEG標準進行映像壓縮,因為採用JPEG進行網路傳輸時,如果出現網路短暫阻塞,可將當前幀拋棄而不影響下一幀的映像,所以能夠保證系統的即時性要求。在本系統中調用了TI提供的JPEG演算法庫來完成JPEG壓縮。
3.1 軟體流程結構
  根據本系統的要求,整個軟體系統分為五個任務模組,每個模組完成各自的功能。這五個任務模組分別為輸入任務、處理任務、輸出任務、網路任務以及控制任務,其流程4所示。下面敘述任務間調度及分別完成的功能。

  (1) 輸入任務
  該任務模組主要完成將VP口採集到的數位影像存入動態分配的記憶體空間中,映像格式為YUV4:2:2(可根據需要進行設定),解析度為720×480。然後對該映像色度訊號進行4:2:0重採樣,這樣做的目的是為了調用JPEG演算法庫。完成以上兩步後,輸入任務模組發出一個訊息給處理任務模組,告知映像在記憶體空間中的位置,讓處理任務模組去做進一步的處理。接著,輸入任務模組等待處理任務模組回複,收到回複訊息後,繼續採集下一幀映像。
  (2) 處理任務模組
  該任務模組主要完成JPEG壓縮。處理任務模組首先獲得一個從輸入任務模組發出的訊息,並且從中得到映像資料。接著進行JPEG壓縮,如前所述,壓縮調用了JPEG演算法庫,其壓縮的速度和效能比較好。在處理任務模組完成映像壓縮後,發出三個訊息:第一個發給輸入任務模組,使其繼續採集下一幀映像;第二個發給網路任務模組,把JPEG映像在記憶體中的位置以及位元組數告訴網路任務模組供其處理,同時,處理任務模組將等待網路任務模組回複訊息;最後一個訊息發給輸出任務模組,告知原始映像在記憶體中的位置,讓輸出任務模組把它輸出到LCD進行顯示。同樣,它也將等待輸出任務模組回複訊息。
  (3) 輸出任務模組
  該任務模組完成將採集到的原始映像輸出到LCD進行顯示。由於採集到的是YUV映像,而本系統的LCD使用RGB訊號作為輸入,這需要經過數位影像格式轉換,該轉換交由CPLD完成。
  (4) 網路任務模組
  該任務模組完成網路傳輸功能。分三部分實現:第一部分先獲得一個從處理任務模組發出的訊息,從中得到JPEG映像的大小和在記憶體中的位置,並通過UDP協議的Socket通訊端將其發送給客戶。同時發出一個訊息給處理任務模組,告知已獲得JPEG映像,可進行下一幀映像的壓縮。第二部分進行協議棧的初始化,包括IP地址、子網路遮罩和網關的設定。如果要串連Internet,必須設定DHCP,動態分配IP地址。除此以外,還要選擇哪種網路服務,DM642支援Telnet、HTTP、Data server等服務,本系統使用HTTP服務。第三部分為載入網頁,在PC機上用HTML編寫網頁,在該網頁中內嵌一段JavaApplet小程式以實現本系統和用戶端的互動。HTML檔案不能直接載入給DM642,必須在DOS環境下使用binsrc外掛程式把它轉換成用C語言描述的資料數組。當使用者通過IE瀏覽器訪問本系統時,HTTP伺服器通過嵌入式檔案系統訪問記憶體中的HTML網頁(即訪問那個用C語言描述的資料數組),該檔案系統是基於RAM的檔案系統,它駐留在OS.LIB中。同時,JavaApplet小程式隨同HTML檔案下載到用戶端並由IE瀏覽器解釋執行。
  (5) 控制任務模組
  該任務模組完成在HTML網頁上對JPEG壓縮效能的控制。在網頁中接收的使用者自訂參數,通過DSP/BIOS中的郵箱機制傳遞給處理任務模組,從而修改JPEG的壓縮參數,改變壓縮品質。圖5所示即為接收使用者修改參數的對話方塊,1表示壓縮品質最差,100表示壓縮品質最好。

  這些任務的初始化在系統的main( )函數裡實現。另外,對DM642晶片的初始化(包括初始化寄存器、二級緩衝(L2)的設定等)均在dm642init( )函數中完成,該函數定義在DSP/BIOS的使用者初始化函數列表中,在此不再贅述。
  本文提出的基於TMS320DM642的網路攝像機的設計方案已成功實現。在用戶端開啟IE瀏覽器,即可看到即時監控的映像,映像顯示較流暢,在區域網路內的映像幀率可以達到30幀/秒。而且可以同時採集多路視頻訊號,滿足多個客戶的串連請求。本系統滿足了目前寬頻環境中的網路視頻會議以及視頻監控的要求,其應用前景十分廣泛。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.