<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)控制系統(tǒng)中實(shí)現(xiàn)DMA數(shù)據(jù)傳送的方法

          單片機(jī)控制系統(tǒng)中實(shí)現(xiàn)DMA數(shù)據(jù)傳送的方法

          作者: 時(shí)間:2012-02-16 來(lái)源:網(wǎng)絡(luò) 收藏

          1 引 言  

          本文引用地址:http://www.ex-cimer.com/article/172090.htm

          許多中,信息的實(shí)時(shí)處理往往需要的批量。不管是采用軟件查詢,還是采用中斷技術(shù),它們都是依靠程序控制,每次都需要執(zhí)行若干條指令,因而傳輸速率受指令運(yùn)行速度的限制。例如,51系列單片機(jī)將外設(shè)某一存入片外RAM,至少要運(yùn)行2周期指令MOVX和更改地址指針DPTR指令各兩次,若采用12MHz時(shí)鐘,則需4μs??梢?,即使不考慮單片機(jī)的其它運(yùn)算,其數(shù)據(jù)速度也只能達(dá)到 250Kbyte/s。對(duì)于象高速數(shù)據(jù)采集等需要成批交換數(shù)據(jù)的場(chǎng)合,速度實(shí)在是太慢了。為了單片機(jī)與高速外設(shè)的數(shù)據(jù)交換,應(yīng)用接口擴(kuò)展電路和 控制器,在幾乎不占用單片機(jī)資源的情況下,了單片機(jī)數(shù)據(jù)傳送。

          2 幾點(diǎn)說(shuō)明  

          對(duì)于單片機(jī)中簡(jiǎn)單的數(shù)據(jù)傳送,只要應(yīng)用雙向RAM作為外存儲(chǔ)器或應(yīng)用簡(jiǎn)單的門控電路就可。但對(duì)于復(fù)雜的單片機(jī)控制系統(tǒng),要解決高速外設(shè)和低速CPU之間的矛盾,就不能象微機(jī)那樣通過(guò)出借系統(tǒng)總線來(lái)實(shí)現(xiàn)數(shù)據(jù)的DMA傳送,更不能因數(shù)據(jù)傳送而中斷CPU的工作。為此要求:

          (1)當(dāng)單片機(jī)控制系統(tǒng)需與高速外設(shè)交換數(shù)據(jù)時(shí),單片機(jī)只能作簡(jiǎn)單的響應(yīng),不能長(zhǎng)時(shí)間中斷工作。解決的辦法是采用擴(kuò)展數(shù)據(jù)存儲(chǔ)器系統(tǒng),數(shù)據(jù)交換時(shí)CPU只出借擴(kuò)展數(shù)據(jù)存儲(chǔ)器作為DMA數(shù)據(jù)交換的存儲(chǔ)器。

          (2)為便于單片機(jī)控制系統(tǒng)與高速數(shù)據(jù)采集或軟磁盤驅(qū)動(dòng)器等外設(shè)的連接,其DMA控制方式應(yīng)具有一致性,符合通用接口標(biāo)準(zhǔn)。

          信號(hào)線共6條,即:
          DMA請(qǐng)求信號(hào)DREQ;
          DMA響應(yīng)回答信號(hào)DACK;
          DMA傳送過(guò)程結(jié)束信號(hào)
          輸入/輸出設(shè)備讀寫信號(hào)線
          輸入/輸出設(shè)備準(zhǔn)備就緒信號(hào)線READY。

          (3)DMA傳送控制與接口盡量不占用單片機(jī)的前處理任務(wù)的緩急情況,相應(yīng)對(duì)DMA請(qǐng)求作出應(yīng)答,對(duì)DMA請(qǐng)求的應(yīng)答并不占用單片機(jī)的資源。

          3 電路實(shí)現(xiàn)原理

          3.1 存儲(chǔ)器擴(kuò)展電路 

          51系列單片機(jī)的外部存儲(chǔ)容量只有64K,在高速數(shù)據(jù)采集等情況下,其容量明顯不足。若以采樣率50KS/s計(jì)算,只能容納1s多的采樣量,況且要求 DMA傳送期間CPU要照常工作,包括對(duì)外部數(shù)據(jù)存儲(chǔ)器的訪問。這就要求對(duì)存儲(chǔ)容量進(jìn)行擴(kuò)展。將擴(kuò)展的存儲(chǔ)器用于DMA,原有的存儲(chǔ)器繼續(xù)作為工作存儲(chǔ)器。下面以圖3—1所示存儲(chǔ)器擴(kuò)展電路為例說(shuō)明存儲(chǔ)器擴(kuò)展的原理。為說(shuō)明問題的方便,省去了編碼電路,只以單片機(jī)的P2.7和P2.6作為片選線,下一節(jié)的DMA控制電路也簡(jiǎn)單以P2.5作片選線。因而特此說(shuō)明,原理電路中各寄存器的端口地址不惟一。

          20.jpg

          8155芯片內(nèi)具有256字節(jié)的RAM,2個(gè)8位(PA和PB)、1個(gè)6位(PC)可編程I/O口。編程設(shè)定PB口和PC口為輸出口,用于為6264提供地址;PA口為雙向輸入輸出口,作為6264的數(shù)據(jù)口。其地址分配為:

          21.jpg

          讀寫擴(kuò)展存儲(chǔ)器6264時(shí),在PB口送入6264的低8位地址,PC口送入另5位地址(PC口的另外1位作為單片機(jī)對(duì)DMA請(qǐng)求的應(yīng)答線)。通過(guò)讀寫 PA口即可完成擴(kuò)展存儲(chǔ)器的讀寫。雖然存取一次數(shù)據(jù)要用3條外部RAM讀寫指令,但這樣不但擴(kuò)展了存儲(chǔ)器容量,而且更重要的是在保證CPU不中斷工作的條件下,為數(shù)據(jù)的DMA傳送創(chuàng)造了條件。

          另外,這種存儲(chǔ)器擴(kuò)展方式,通過(guò)選用不同的擴(kuò)展芯片或選用多個(gè)擴(kuò)展芯片,可大大擴(kuò)展存儲(chǔ)器的容量,如采用8255并口擴(kuò)展芯片,即可擴(kuò)展64K的存儲(chǔ)容量。

          3.2 DMA控制電路

          利用通用DMA控制器構(gòu)成了圖3—2所示的單片機(jī)數(shù)據(jù)DMA傳送通道,它提供了4通道標(biāo)準(zhǔn)的DMA傳送接口信號(hào),其工作過(guò)程為:

          22.jpg


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();