色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

          基于散列DMA的高速串口驅動設計

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

          接收數(shù)據(jù)時,對方發(fā)過來的數(shù)據(jù)量一般是未知的。構造含有100個節(jié)點的循環(huán)鏈表結構,每個節(jié)點對應的傳輸塊大小為接收FIFO Level。數(shù)據(jù)源地址為UART數(shù)據(jù)寄存器的地址,首節(jié)點的目的地址為接收數(shù)據(jù)內存區(qū)域的首地址,此后節(jié)點的目的地址每次向后偏移(FIFO Level×2)個字節(jié),數(shù)據(jù)位寬為16(8個數(shù)據(jù)位,4個狀態(tài)位,4個保留位)。當接收到的數(shù)據(jù)達到接收內存區(qū)域的80%(RECV_TH)時,需要通知數(shù)據(jù)發(fā)送方停止數(shù)據(jù)傳輸,在第80個節(jié)點處設置中斷,該節(jié)點為閾值節(jié)點。采用本文的方案接收1幀不超過RECV_TH大小的數(shù)據(jù),最多產(chǎn)生一次RTI中斷。當接收到的數(shù)據(jù)量少于FIFOLevel時不會觸發(fā)接收,在RTI中斷中把UART接收FIFO中的數(shù)據(jù)復制到內存中的數(shù)據(jù)接收區(qū),同時使接收節(jié)點的目的地址向后偏移相應的長度并更新閾值節(jié)點的位置。接收數(shù)據(jù)流程如圖4所示。如果采用DMA塊傳輸方式,就必須額外使用一個環(huán)形數(shù)據(jù)緩沖區(qū)(Ring Buffer),每次接收到指定大小的數(shù)據(jù)塊后產(chǎn)生DMA中斷,在中斷服務程序中將接收到的數(shù)據(jù)復制到環(huán)形數(shù)據(jù)緩沖區(qū)中。

          3.3 測試

          本文的方案直接應用于工業(yè)級的HMI產(chǎn)品,必須經(jīng)過嚴格的測試。利用3臺西門子S7系列PLC和1臺產(chǎn)品樣機搭建令牌網(wǎng),使用西門子MPI協(xié)議進行測試,并利用數(shù)據(jù)分析工具ProfiTrace監(jiān)測通信過程。測試結果表明,2 400 bps~12 Mbps的各個波特率下都能進行穩(wěn)定的數(shù)據(jù)通信。

          結 語

          本文詳細介紹了DMA數(shù)據(jù)傳輸?shù)奶攸c和散列DMA的工作方式。在此基礎上,提出了一套散列DMA的方案,發(fā)送數(shù)據(jù)完全由DMAC完成,無需觸發(fā)任何中斷,接收1幀不超過接收區(qū)閾值的數(shù)據(jù)最多產(chǎn)生1次RTI中斷。和現(xiàn)有的各種利用DMA塊傳輸進行數(shù)據(jù)通信的方案相比,中斷次數(shù)大幅減少,大大提高了數(shù)據(jù)傳輸?shù)男省T趹昧吮痉桨傅娜藱C界面產(chǎn)品上,實現(xiàn)了波特率高達12 Mbps的穩(wěn)定數(shù)據(jù)傳輸。對于在其他平臺上設計實現(xiàn),本方案是一個很好的參考。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉