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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM系統(tǒng)中DMA方式在數(shù)據(jù)采集中的應(yīng)用

          ARM系統(tǒng)中DMA方式在數(shù)據(jù)采集中的應(yīng)用

          作者: 時(shí)間:2010-04-08 來源:網(wǎng)絡(luò) 收藏

          1 引言
          作為一種16/32位高性能、低成本、低功耗的嵌入式RISC微處理器。普遍于工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信、無線等產(chǎn)品。大多數(shù)微控制器都集成了控制器。且直接內(nèi)存存取()作為一種獨(dú)立于CPU的后臺(tái)批量傳輸技術(shù),以其快速、高效的特點(diǎn)在采集領(lǐng)域得到了廣泛的。本文以三星公司的S3C2410為例,介紹了其內(nèi)部控制器的特點(diǎn)和使用方法.以S3C2410和FPGA為核心結(jié)合DMA技術(shù)設(shè)計(jì)了CCD相機(jī)采集,并且給出Linux操作系統(tǒng)下DMA設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)方法。

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

          2 DMA工作過程簡(jiǎn)介
          S3C2410是基于920T內(nèi)核的RISC微處理器.主頻可達(dá)203 MHz,適用于信息家電、手持設(shè)備、移動(dòng)終端等領(lǐng)域。S3C2410可提供4個(gè)DMA通道.用于系統(tǒng)總線內(nèi)部或與外圍總線之間的交換?,F(xiàn)以外部DMA請(qǐng)求為例簡(jiǎn)要介紹DMA的工作過程。圖1所示為DMA基本工作時(shí)序。

          圖1 DMA基本工作時(shí)序圖
          當(dāng)需要進(jìn)行DMA操作時(shí),外部DMA請(qǐng)求引腳XnXDREQ置為低電平。此時(shí)DMA控制器向CPU發(fā)出占用總線的請(qǐng)求,當(dāng)總線請(qǐng)求成功后,XnXDACK引腳變?yōu)榈碗娖剑硎綜PU已經(jīng)將總線使用權(quán)交給DMA控制器,可以進(jìn)行數(shù)據(jù)傳輸。當(dāng)數(shù)據(jù)傳輸完成后應(yīng)答信號(hào)XnXDACK置為高電平,通知CPU完成一次DMA操作。
          S3C2410提供了3種不同的DMA操作模式,分別是單服務(wù)命令模式、單服務(wù)握手模式和全服務(wù)握手模式。在利用DMA進(jìn)行數(shù)據(jù)傳輸前必須對(duì)其相關(guān)寄存器進(jìn)行設(shè)置。主要有:源地址寄存器、目的地址寄存器和各自的控制寄存器,以及配置DMA模式的控制寄存器等。

          3 采集系統(tǒng)硬件設(shè)計(jì)
          根據(jù)DMA的特點(diǎn),設(shè)計(jì)了基于ARM和FPGA的CCD相機(jī)采集系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖2所示。

          FPGA選用Altera公司的Cyclone系列器件EP1C6T144C8,可為CCD相機(jī)提供工作所需的驅(qū)動(dòng)時(shí)序.同時(shí)接收經(jīng)模數(shù)轉(zhuǎn)換的CCD輸出圖像數(shù)據(jù)。S3C2410通過DMA從FPGA內(nèi)部采集數(shù)據(jù),通過數(shù)據(jù)線、DMA信號(hào)線、片選信號(hào)和輸出時(shí)鐘線與FPGA相連。


          上一頁 1 2 3 下一頁

          評(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); })();