中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于散列DMA的高速串口驅(qū)動設計

        基于散列DMA的高速串口驅(qū)動設計

        作者: 時間:2010-05-26 來源:網(wǎng)絡 收藏

        1 概 述

        本文引用地址:http://www.antipu.com.cn/article/151844.htm

        由于在電報通信、工控和數(shù)據(jù)采集等領(lǐng)域有著廣泛的應用,絕大多數(shù)嵌入式處理器都內(nèi)置了通用異步收發(fā)器(UART)。UART數(shù)據(jù)傳輸主要通過中斷或的方式實現(xiàn)。

        中斷方式是在接收到數(shù)據(jù)或需要發(fā)送數(shù)據(jù)時產(chǎn)生中斷,在中斷服務程序中讀寫UART的緩沖區(qū)(FIFO)實現(xiàn)數(shù)據(jù)傳輸。由于通信速率一般比較低(典型值不超過115 200 bps),大多數(shù)嵌入式系統(tǒng)都采用中斷方式來傳輸數(shù)據(jù)。然而,中斷服務程序需要占用CPU的時間,而串口速度的提升也必將導致CPU更頻繁地響應UART中斷,這勢必會造成嵌入式系統(tǒng)的性能下降。

        數(shù)據(jù)傳輸無需CPU的參與,是一種更加高效的數(shù)據(jù)傳輸方式?,F(xiàn)有的數(shù)據(jù)傳輸方案都是DMA塊傳輸方式(即Block DMA)。這種方式下每次傳輸完一個數(shù)據(jù)塊后產(chǎn)生一個DMA中斷,在串口通信中,頻繁的DMA中斷仍然會影響系統(tǒng)的性能。本文散列DMA(seatter DMA)的傳輸方式提出了一套完整的工業(yè)級串口方案,實現(xiàn)了波特率高達12 Mbps的UART數(shù)據(jù)傳輸。

        2 DMA數(shù)據(jù)傳輸?shù)奶攸c

        DMA(Direct Memory Access,直接存儲器訪問),是指數(shù)據(jù)在內(nèi)存與I/O設備間的直接傳輸,數(shù)據(jù)操作由DMA控制器(DMAC)完成而不需要CPU的參與,大大提高了CPU的利用率。因此,DMA是數(shù)據(jù)傳輸?shù)睦硐敕绞?。利用DMA進行數(shù)據(jù)傳輸時應注意以下幾點:

        ①DMA傳輸需要占用系統(tǒng)總線,在此期間CPU不能使用總線。如果外設在進行數(shù)據(jù)傳輸時不能有任何的間斷,就必須保證傳輸期間DMAC對系統(tǒng)總線的獨占,這可能會影響其他需要使用總線進行數(shù)據(jù)傳輸?shù)脑O備。所以,系統(tǒng)總線在DMA傳輸期間是否可被搶占,要依據(jù)嵌入式系統(tǒng)的特定環(huán)境來決定。

        ②DMA傳輸存在緩存一致性(cache coherency)問題。如圖1所示,DMAC和CPU是兩個平行的單元,CPU總是通過數(shù)據(jù)緩存來訪問內(nèi)存中的數(shù)據(jù),而DMAC則直接訪問內(nèi)存。如果內(nèi)存中的數(shù)據(jù)被DMAC更新,而數(shù)據(jù)緩存中的數(shù)據(jù)尚未被更新,CPU獲得的某些地址的值可能并不是內(nèi)存中的真實值。為了避免這個問題,可在DMAC更新完內(nèi)存數(shù)據(jù)后或CPU讀取被更新過的數(shù)據(jù)前刷新數(shù)據(jù)緩存,或是使用不被數(shù)據(jù)緩存映射的非緩存(non-cacheable)內(nèi)存區(qū)域。


        上一頁 1 2 3 下一頁

        關(guān)鍵詞: 驅(qū)動 設計 串口 高速 DMA 基于

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉