DM642無(wú)線(xiàn)圖像傳輸的TS流傳輸新技術(shù)
2.3 ping-pong操作的改進(jìn)
由于原來(lái)程序McBSP通過(guò)EDMA傳輸到ping或pong中,在EDMA傳輸完成中斷的過(guò)程中還需要復制數據(memcpy)到公共緩沖區。復制數據是一個(gè)很費時(shí)的過(guò)程,但程序不宜停留在中斷的時(shí)間過(guò)長(cháng),故而希望EDMA能直接傳到公共緩沖區中。本文引用地址:http://dyxdggzs.com/article/155407.htm
如圖4所示,在建立McBSP和EDMA通信時(shí),將ping目的地址改變成公共緩沖池的首地址,將pong目的地址變?yōu)榫彌_池下一個(gè)緩沖區的首地址。再在EDMA傳輸完成中斷的過(guò)程中改變上一次用的PaRAM的目的地址,即ping完成,則中斷改變ping的目的地址。這樣對原程序改變較小,并且占用的參數RAM也較少。但要求ping,pong通道必須處在同一優(yōu)先級隊列中。當重新轉載其中一個(gè)時(shí),才不會(huì )影響另一個(gè)通道。
3 測試結果
圖5是用連續自增的數在32 Mb/s的速度下以McBSP方式在FPGA的SignalTap II中看到的時(shí)序。
圖6是時(shí)鐘為9 MHz時(shí)TS輸出任務(wù)在FPGA的SignalTap II中看到的TS流時(shí)序。實(shí)測中,輸入任務(wù)在接收板DSP接收到TS流數據,數據率為9 MB/s,數據有效(Dvalid)上升沿來(lái)時(shí),得同步頭0x47。
TS流在SDRAM存放的基地址為0x804DBC88,前4個(gè)字節(即0x47 0x40 0x45 0x10)是TS包的包頭,從包頭的定義規范可以看到,第1個(gè)字節0x47為T(mén)S包的同步字節;第2個(gè)字節0x40說(shuō)明這個(gè)TS包包含1個(gè)PES包的包頭,它傳輸的優(yōu)先級為0級,在這個(gè)包中不存在傳輸錯誤;第2個(gè)字節和第3個(gè)字節表明這個(gè)TS包的PID是0x45,是這個(gè)設計中的視頻包的PID;第4個(gè)字節說(shuō)明在這個(gè)TS包中僅有有效載荷,沒(méi)有自適應區。188字節后再次出現同步字節0x47,0x00表示不是第1個(gè)TS包,PID也是0x45。再過(guò)188個(gè)字節還是同步字節0x47??梢?jiàn),TS流的輸入輸出任務(wù)都較好地實(shí)現了它們的功能。
結語(yǔ)
本文介紹了一種基于DM642和EP3C55F484的無(wú)線(xiàn)視頻傳輸系統的實(shí)現方式,并就TS流傳輸進(jìn)行了討論。測試結果證明,項目中提出的McBSP和GPIO結合EDMA方式都成功實(shí)現了TS流的輸入和輸出傳輸,GPIO方式速度較快,信道中直接采用GPIO的方式要比模擬McBSP接口簡(jiǎn)單得多,并用改進(jìn)的乒乓方式提高程序運行效率。
pid控制相關(guān)文章:pid控制原理
評論