新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > DM642無線圖像傳輸的TS流傳輸新技術

        DM642無線圖像傳輸的TS流傳輸新技術

        作者: 時間:2011-12-23 來源:網絡 收藏

        2 實現
        2.1 McBSP實現
        McBSP由數據通道和控制通道組成,可以與外部設備連接,進行數據通信。數據的接收與發送分別工作于不同的引腳上,因此數據通信是全雙工的。其他的4個引腳用于控制信號(時鐘和同步信號)。
        這里采用EDMA進行McBSP與存儲器緩沖區之間的數據搬運。EDMA控制器讀取從外部設備接收到并保存在DRR(數據接收寄存器)的數據,或者將需要向外部設備發送的數據寫入DXR(數據發送寄存器)。被寫入DXR的數據經過XSR被移出到DX腳上。同理,接收的數據先被移入RSR,然后被拷貝到RBR,最后再被拷貝到DRR,這時就允許被EDMA訪問了。McBSP中內部數據的移出和外部數據的移入可以同時發生,即可以進行全雙工的數據通信。
        以EDMA接收數據的配置為例,配置參數RAM。EDMA通道接收數據源地址為McBSP0的DRR寄存器,地址計數模式為不變模式。設置EDMA通道接收數據目的地址為DSP片內存儲區PingBuffer首地址,確保第一次數據是到PingBuffer,地址計數模式同樣為遞增模式。配置源地址計數索引值,由于源地址為McBSP0的DRR寄存器,固定不變;配置目的地址計數索引值,由于接收數據為32位,所以srcBidx=srcCidx=4,這是因為DSP內的最小計數單元為1個字節,8bits;配置剩余的參數RAM傳輸參數,包括設置ACNT=4,BCNT=2 048,CCNT=1,采用一維傳輸A-SYN C。
        接下來是ping-pong傳輸的程序實現。替ping-pong各自分配1個通道,于是一共有3個通道,對應3個參數RAM。ping通道的參數RAM與主通道的參數RAM完全一致,pong通道的參數RAM與主通道相比,只需將pong通道接收數據目的地址改為PongBuffer首地址。隨后調用EDMA_link三次,分別將主通道和ping通道連接,ping通道和pong通道相互連接。EDMA中斷設置與GPIO輸出任務一樣。
        2.2 GPIO實現
        流輸出任務采用1D到1D的傳輸模式。SUM=01,DUM=00,即源地址是188字節的Buffer,目的地址是GPIO[8:15]對應的寄存器,GP4的外部觸發EDMA傳輸,傳輸188字節產生1次EDMA中斷。隊列優先級設置為緊急,來保證時序。以EXTINT5為EDMA觸發事件:
        c.jpg
        pong的參數RAM設置類似,只要將源地址改為pong,并將重載的參數RAM地址改為edmacfg_pong即可。
        中,EDMA的64個通道只產生一種中斷。當一個通道傳輸完成后,IPR(Interrupt Pending Register)寄存器里的相應位會被置1,EDMA中斷處理器通過查詢IPR寄存器,確定是哪個通道完成了傳輸,并調用相應的中斷服務程序,即tccCb(回調函數,即通道傳輸完成后所調用的中斷服務程序)。tccCb=edma_isr,該函數的作用是當一個接收Buffer被填滿時,在通道傳輸完成后發送一個旗語信號給信號處理程序,通知其對收到的數據進行處理。參數RAMOPT中TCINTEN位置1,以使能EDMA中斷。隨后,利用DSP/BIOS將EDMA中斷源和DSP的可屏蔽中斷5連接起來。編寫相應通道的EDMA中斷程序,傳輸完一個包后,檢查是否1幀的TS流傳完,用以生成數據有效信號(Dvalid),通知接收方哪些是有用數據。由于選用了的可屏蔽中斷5,還需使能IER寄存器里的對應位。
        TS流輸入則只需要將SUM=00,DUM=01,目的地址和源地址交換,再將EDMA中斷程序中目的地址變更到188字節后的地址。采用GP4作EDMA同步事件(即SPI時鐘),GPIO[8:15]作數據輸入,GP7作同步,采用GP6作外部中斷,用作數據有效線。在外部中斷中重載,在傳輸完成中斷中改變目的地址。如此則可順利接收到TS流。

        pid控制相關文章:pid控制原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兴安县| 新晃| 罗平县| 揭东县| 玛多县| 开封县| 正蓝旗| 大石桥市| 宁陕县| 双辽市| 邹城市| 武强县| 邵阳市| 蕉岭县| 公安县| 开平市| 沅陵县| 紫阳县| 井研县| 四会市| 海宁市| 靖宇县| 泽库县| 蒙山县| 正蓝旗| 安龙县| 建阳市| 托克逊县| 武鸣县| 邢台市| 石棉县| 麦盖提县| 巴楚县| 长宁区| 新宁县| 丹寨县| 玉溪市| 吴川市| 广东省| 南部县| 平利县|