0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于總線傳遞數(shù)據的2種形式PIO、DMA的解析

MCU開發(fā)加油站 ? 2018-01-24 10:48 ? 次閱讀

總線上的數(shù)據的傳遞有兩種形式。一種為程控輸入/輸出(PIO)另一種為直接存儲器訪問(DMA)。

1、PIO

使用PIO時,CPU是主模塊,總線上數(shù)據的讀取由CPU上運行的軟件程序直接發(fā)起,傳遞的數(shù)據一定進過CPU(如下面的一、二所述)。

一、軟件指令或者將已經存放在CPU數(shù)據寄存器中的數(shù)據發(fā)送到目標被控模塊;

二、或者將目標被控模塊里的一個數(shù)據讀入,放到CPU的數(shù)據寄存器中。

例如:需要將數(shù)據從模塊A---轉移到----模塊B,軟件將這個任務分解為兩個PIO操作

第一步:從模塊A讀取數(shù)據,并存放到CPU的數(shù)據寄存器中;

第二步:將存放在CPU數(shù)據寄存器中的數(shù)據寫入到模塊B。

2、DMA

由于鏈接芯片與芯片之間的系統(tǒng)總線的時鐘頻率比CPU內部的時鐘頻率要低許多,用PIO讀寫大量的數(shù)據是一種非常低效的方式占用CPU的處理能力。所以需要利用專門的硬件來協(xié)助執(zhí)行,在芯片與芯片之間或者模塊與模塊之間數(shù)據傳輸。這就是DMA。

此時軟件只需要將傳輸數(shù)據要求使用PIO通知DMA硬件,DMA硬件按照要求執(zhí)行數(shù)據的傳輸。這期間CPU繼續(xù)進行其他工作。當DMA硬件執(zhí)行完畢數(shù)據的傳輸任務之后,通過中斷信號或這通過向主存儲的某個特定地址寫入特定的數(shù)值,通知軟件。
基于總線傳遞數(shù)據的2種形式PIO、DMA的解析

一個DMA硬件通常包括多個DMA通道。每個通道一般用于一對模塊之間的數(shù)據傳輸,通道之間相互獨立。

DMA描述符用于指定如何傳輸數(shù)據塊。一個DMA描述符至少包括數(shù)據傳輸?shù)脑吹刂罚⊿A)、目的地址(DA)、需要傳輸?shù)臄?shù)據量(data size)、和每次總線傳輸?shù)臄?shù)據量(transfer size)。有些DMA模塊要求軟件將DMA描述符的數(shù)據結構存放在主存儲器中,使用這個方法的好處時軟件可以十分有效的建立DMA描述符。在DMA執(zhí)行一個DMA數(shù)據傳輸任務之前,DMA先要用DMA的方法,將存放在CPU主存儲的DMA描述符讀到DMA模塊中。

DMA將一個數(shù)據塊的傳輸分為兩個步驟。

第一步:從源地址的被控模塊讀取數(shù)據;

第二步:將讀取的數(shù)據寫入目的地址的被控模塊。

根據DMA描述符的規(guī)定,DMA可以在傳輸了一個數(shù)據塊之后,自動的將源地址和目的地址更新到下一個數(shù)據塊地址,然后DMA開始傳輸下一個數(shù)據塊,一直傳輸完實際要求傳輸?shù)臄?shù)量級。假設一個DMA開始傳輸?shù)臄?shù)據量是128Byte,每次傳輸?shù)臄?shù)據塊是16Byte,為了完成這個DMA描述符指定的數(shù)據傳輸,DMA自動進行8次總線讀取和8次總線寫入。這些傳輸路徑不經過CPU

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據
    +關注

    關注

    8

    文章

    6756

    瀏覽量

    88614
  • 總線
    +關注

    關注

    10

    文章

    2848

    瀏覽量

    87840
  • dma
    dma
    +關注

    關注

    3

    文章

    555

    瀏覽量

    100213
  • PIO
    PIO
    +關注

    關注

    0

    文章

    18

    瀏覽量

    6181

原文標題:總線的兩種數(shù)據傳遞形式:PIO、DMA

文章出處:【微信號:mcugeek,微信公眾號:MCU開發(fā)加油站】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    圖文并茂解析stm32 DMA

    總線上。DMA總共有7個通道,各個通道的DMA映射關系如下:外設的事件連接至相應DMA通道,每個通道均可以通過軟件觸發(fā)實現(xiàn)存儲器內部的DMA
    發(fā)表于 02-12 15:42

    請問DMA傳輸數(shù)據的過程是什么?

    網上有說DMA內存到外設間傳輸數(shù)據的過程為:1、內存 到 外設2、內存 到 DMAC 到 外設3、內存 到 數(shù)據總線
    發(fā)表于 01-30 06:36

    ISA總線的標準DMA技術在Linux中的實現(xiàn)

    1.DMA概述   DMA是外設與主存之間的一種數(shù)據傳輸機制。一般來說,外設與主存之間存在兩種數(shù)據傳輸方法:(1)Pragrammed I/O(PI
    發(fā)表于 07-01 08:10

    串口DMA+中斷的形式如何接收不定長的數(shù)據

    串口DMA+中斷的形式如何接收不定長的數(shù)據
    發(fā)表于 12-08 06:07

    DMA工作原理與常用函數(shù)解析

    【嵌入式系統(tǒng)】DMA工作原理與常用函數(shù)解析1、DMA基本原理直接存儲器訪問通道(DMA, Direct Memory Access)用來提供在外設和存儲器之間或者存儲器和存儲器之間的高
    發(fā)表于 12-16 07:15

    DMA可以傳遞多少數(shù)據?

    DMA有什么用? 有多少個DMA資源?DMA可以傳遞多少數(shù)據?
    發(fā)表于 02-14 07:46

    體驗紫光PCIE之DMA讀寫/PIO內存讀寫TLP解析

    1.1 PIO內存讀寫操作TLP解析 PCIE有三空間——內存空間、IO空間、配置空間,其中內存空間是目前PCIE設備常用的空間,IO空間是為了兼容以前的PCI設備(PCIE設備幾乎不用IO空間了
    發(fā)表于 11-17 15:08

    基于Linux嵌入式系統(tǒng)的ISA總線DMA的實現(xiàn)

      1.DMA概述   DMA是外設與主存之間的一種數(shù)據傳輸機制。一般來說,外設與主存之間存在兩種數(shù)據傳輸方法:(1)Pragrammed I/O(
    發(fā)表于 08-27 15:37 ?541次閱讀

    ISA總線DMA技術

    DMA是外設與主存之間的一種數(shù)據傳輸機制。一般來說,外設與主存之間存在兩種數(shù)據傳輸方法:(1)Pragrammed I/O(PIO)方法
    發(fā)表于 05-14 10:04 ?3473次閱讀

    基于Linux的ISA總線DMA的實現(xiàn)

    DMA是外設與主存之間的一種數(shù)據傳輸機制。一般來說,外設與主存之間存在兩種數(shù)據傳輸方法:(1)Pragrammed I/O(PIO)方法,也即由CPU通過內存讀寫指令或I/O指令來持續(xù)
    發(fā)表于 11-14 17:44 ?1280次閱讀

    基于Linux嵌入式系統(tǒng)的ISA總線DMA的實現(xiàn)

    1.DMA概述 DMA是外設與主存之間的一種數(shù)據傳輸機制。一般來說,外設與主存之間存在兩種數(shù)據傳輸方法:(1)Pragrammed I/O(PIO
    發(fā)表于 12-07 19:13 ?335次閱讀

    I2C總線物理拓撲結構_I2C總線協(xié)議解析

    I2C 總線在物理連接上非常簡單,分別由SDA(串行數(shù)據線)和SCL(串行時鐘線)及上拉電阻組成。通信原理是通過對SCL和SDA線高低電平時序的控制,來 產生I2C
    的頭像 發(fā)表于 09-24 14:12 ?6090次閱讀
    I<b class='flag-5'>2</b>C<b class='flag-5'>總線</b>物理拓撲結構_I<b class='flag-5'>2</b>C<b class='flag-5'>總線</b>協(xié)議<b class='flag-5'>解析</b>

    如何將QCC5127的PIO2作為普通PIO口使用

    ? 本文介紹如何將QCC5127的PIO2作為普通PIO口使用。猜測:該方法除了適用于PIO2,應該也同樣適用于PIO32、PIO34、
    的頭像 發(fā)表于 01-18 13:48 ?3614次閱讀
    如何將QCC5127的<b class='flag-5'>PIO2</b>作為普通<b class='flag-5'>PIO</b>口使用

    總線數(shù)據傳遞形式PIODMA介紹資料下載

    電子發(fā)燒友網為你提供兩總線數(shù)據傳遞形式PIO
    發(fā)表于 04-19 08:46 ?4次下載
    兩<b class='flag-5'>種</b><b class='flag-5'>總線</b><b class='flag-5'>數(shù)據</b>兩<b class='flag-5'>種</b><b class='flag-5'>傳遞</b><b class='flag-5'>形式</b>:<b class='flag-5'>PIO</b>、<b class='flag-5'>DMA</b>介紹資料下載

    基于STM32F407的DMA解析-ADC單通道DMA讀取數(shù)據

    現(xiàn)場的過程,通過硬件為 RAM 與 I/O 設備開辟一條直接傳送數(shù)據的通路,能使 CPU 的效率大為提高。 STM32F407ZGT6 有 2DMA 控制器(DMA1 和
    發(fā)表于 11-25 09:51 ?5次下載
    基于STM32F407的<b class='flag-5'>DMA</b><b class='flag-5'>解析</b>-ADC單通道<b class='flag-5'>DMA</b>讀取<b class='flag-5'>數(shù)據</b>