新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DM642的視頻處理系統設計與實現

        基于DM642的視頻處理系統設計與實現

        作者: 時間:2009-03-10 來源:網絡 收藏

        2.5 I2C總線
        I2C總線是一種由Philips公司開發的兩線式串行總線,用于連接微控制器及其外圍設備。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和器件引腳的數量,降低了互聯成本。它支持多主控,其中任何能夠進行發送和接收的設備都可以成為主控端。
        I2C總線由數據線SDA和時鐘SCL構成串行總線,可發送和接收數據,在CPU與被控IC之間、IC與IC之間雙向傳送。在數據傳送過程中共有3種信號,分別是開始信號、結束信號和應答信號。其中,開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據;結束信號:SCL為低電平時,SDA由低電平向高電平跳變,結束傳送數據;應答信號:接收數據的IC在接收到8 bit數據后,向發送數據的IC發出特定的低電平脈沖。表示己收到數據。CPU向受控單元發出一個信號后,等待受控單元發出一個應答信號,CPU接收到應答信號后,根據實際情況判斷是否繼續傳輸信號。若未收到應答信號,則認為受控單元出現故障。
        集成有一條I2C總線.為總線的主設備。系統用I2C總線連接了以下從設備:2路解碼器SAA7113H的控制口、1路編碼器SAA7105H的控制口和1路實時時鐘RTC。每個I2C總線的從設備均對應一個從設備地址,I2C總線以此從設備地址區分所訪問的是哪個從設備。通過I2C總線配置上述器件的寄存器。
        2.6 網絡接口
        DM642的網絡接口由EMAC與MDIO兩部分組成的。其主要功能有:符合IEEE802.3協議;支持傳媒無關接口(MII);8個獨立的發送與接收通路;同步的10/100 Mbit的數據操作;廣播及多幀的傳送。
        系統選用LXT971ALC作為10/100Base一TX以太網收發器。LXT971ALC的MII接口與DM642的MII接口對接。DM642的MII不支持TXER,它通過求反發送幀CRC來指出網絡錯誤,所以LXT971ALC上的TXER引腳直接接為無效。系統只采用10/lOOBase-TX方式,信號經Hll02 1:1變壓器變換成TX+、TX一、RX+和RX一信號,連接到RJ45連接器上。RJ45連接器選用406549一l,其上帶2個LED指示燈,綠色LED,用作指示連接狀態;黃色LED正常情況下用于指示數據傳輸。

        本文引用地址:http://www.104case.com/article/152595.htm

        3 系統調試
        3.1 通道的驅動
        系統中視頻解碼通道使用SAA7113,編碼通道使用SAA7105H。這2個器件需要經過寄存器配置才能正常工作,因為寄存器數量眾多,直接逐個配置寄存器相當復雜。系統開發了DSP/BIOS的應用程序,可以調用FWID API函數,對視頻通道的驅動。以下是幾個接口函數的使用說明:
        (1)初始化工作 FVID_croat(name,mode,*status,
        optArgs,*attm)參數說明:String name:device driver的名字,該device driver在DSP/BIOS中定義;Int mode:指定設備的打開模式為輸入/輸出;Int*status:該參數是application送給mini―driver的一個狀態指針,由mini―dIiver來返回狀態的;PtroptArgs:用于初始化FVID channel的具體參數,用結構體的形式打包,并將指向該結構體的指針傳送給mini―driver進行;FVID_Attrs *attrs:FVID_Attrs結構參數為空,表示FVID_alloc,FVID_free,FVID_exchange calls為非block形式,無論成功與否,立刻返回。
        (2)發送控制命令到mini―driver FVID_control(disChan,VPORT_CMD_START, NULL)參數說明:FVID_HandlevidChan:fvid通道句柄;Int cmd:cmd命令;Ptr args:cmd命令附帶的信息。該函數發送一個控制命令給mini―dTiver,將由mini―driver做相應的響應,在這里通知vport端口開始工作。
        (3)給VP口分配緩沖區FVID_alloc(fvidChan,bufp)參數說明:FVID_handle fvidChan:fvid通道句柄;Ptr bafp:分配的緩沖區指針。該函數從mini―ditver獲取緩沖區指針。
        (4)FVID_exchange(fvidChan,bufp) 參數說明:FVID_handle fvidChan:fvid通道句柄;Ptr butp:交換的緩沖區指針。該函數將轉換好的圖像數據發送給mini―driver,并傳回空緩沖區指針,FVID_exchange函數相當于順序執行FVID_free和FVID_alloc函數。利用FVID的API函數可方便配置和驅動視頻通道,視頻的采集和輸出。
        3.2 VGA輸出
        VGA(VideoGraphic Array)接口,即視頻圖形陣列,也叫DSub接口。VGA接口采用非對稱分布的15針連接方式,其工作原理是將顯存內以數字格式存儲的圖像信號在RAMDAC里經過模擬調制成模擬高頻信號,然后再輸出到顯示設備成像。視頻編碼器SAA7105H支持VGA輸出,SAA7105H被配置為VGA輸出時,送輸出緩沖區的數據必須為RGB格式,而非YUV4:2:2。用戶可以自行編寫相應的轉換函數,或者調用TI img64.lib庫中的IMG_ycbcr422p_rgb565函數視頻格式的轉換。SAA7105H最高可實現XGA輸出,即1 024x768分辨率。
        3.3 程序從Flash的引導
        在系統上調試程序時,利用仿真器把程序下載到SDRAM內執行。當程序調試完畢應用時,應該把程序燒寫到外部Flash里,實現系統每次上電后程序從Flash引導加載自動運行,省去每次利用仿真器下載程序。
        DM642是以ROM方式引導系統的,當DSP上電或復位時,內核處于復位狀態,并自動以ROM的讀寫時序從Flash的第0頁起始地址開始復制lK字節的代碼到DSP的片內內存起始地址為O的地址空間。然后釋放CPU,使其從0地址開始運行程序。即第一次引導只能引導1K字節的程序。執行第一步引導的程序,將用戶自己的程序從Flash中搬到運行的地址中,然后進入c_int00,完成整個BOOT過程。
        Flash燒寫根據不同的硬件,燒寫步驟略有不同,但基本過程相同。系統Flash的燒寫過程:①把引導程序文件boot.asm添加到要燒寫的工程中,在BIOS中添加BOOT段,修改相應的CMD文件,編譯原工程生成新的.out文件;②使用hex6x工具把生成的COFF格式的.out文件轉化為.hex文件;③用FlashBurn建立.ccd文件;④用FlashBurn打開建立的.ccd文件,先擦除Flash,然后燒寫Flash。
        按照上述步驟燒寫程序到Flash,在系統上電后程序將自動執行。應該注意的是,燒寫程序后的系統仿真環境將難以進去,解決的辦法是一邊反復按復位鍵,一邊打開仿真環境則可進去。DM642有多種引導,本系統默認方式為EMIFA通過8-bit Flash引導。

        4 結語
        系統研究并實現了一個通用的DM642的視頻處統。采用了針對多媒體應用開發的專用媒體芯片DM642,該芯片配有豐富的外設接口,減小了系統硬件的復雜度,提高了系統的性價比;通過外接的SDRAM編程實現MPEG一2、MPEG-4、H.264等多種視頻壓縮編解碼算法,靈活性大,實用性強,優于專用的視頻編解碼系統;由于DM642的高速運算能力,實時性強也是系統的一大優點。該系統作為視頻處理的通用平臺,在此基礎上增加一些其他功能即可應用于交通、監控等諸多領域。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洛扎县| 彭泽县| 叶城县| 石狮市| 辽源市| 北京市| 武鸣县| 商丘市| 伽师县| 武乡县| 微山县| 汉源县| 玛多县| 疏勒县| 丁青县| 白水县| 灵寿县| 朔州市| 西吉县| 大荔县| 渝中区| 灵宝市| 山西省| 城固县| 万年县| 闵行区| 东丽区| 错那县| 鄱阳县| 陇南市| 萍乡市| 维西| 霍山县| 师宗县| 南城县| 黄平县| 长春市| 安化县| 铜梁县| 大厂| 台安县|