新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于TMS320DM642的網絡攝像機的設計及實現

        基于TMS320DM642的網絡攝像機的設計及實現

        作者: 時間:2008-09-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(可根據需要進行設置),分辨率為720480。然后對該圖像色度信號進行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幀/秒。而且可以同時采集多路視頻信號,滿足多個客戶的連接請求。本系統滿足了目前寬帶環境中的網絡視頻會議以及視頻監控的要求,其應用前景十分廣泛。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 龙井市| 汕头市| 宁国市| 湘阴县| 湘潭市| 莱阳市| 宜兰市| 六盘水市| 赤峰市| 广州市| 云浮市| 保山市| 全椒县| 广德县| 长兴县| 永安市| 建德市| 友谊县| 金乡县| 肇州县| 武安市| 碌曲县| 三穗县| 莆田市| 天祝| 湖北省| 阿尔山市| 韶山市| 深泽县| 惠来县| 宁河县| 民县| 巨鹿县| 霞浦县| 苍溪县| 鸡泽县| 南汇区| 郑州市| 沾化县| 平顶山市| 邵东县|