DMA_IP设计_详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DMA结构框图
首先由DMA在芯片中的位置来分析其所需模块:
DMA结构框图
系统总线
中断 内存 CPU S 接 口 M 接 口 地址寄存器 时序与控制
字数计数寄存器
通道请求
FIFO
设备
DMA模块介绍
时序与控制模块:
1、命令寄存器:接收系统时钟、复位、片选、发读/写 控制等信号; 2、操作方式寄存器:系统初始化时软件编程规定数据传 输等方式; 3、状态机寄存器:标志某个通道响应状态及数据传输是 否完成等状态;
(3)DMA的数据传送是以数据块为基本单位进行的,因此,无论是输入还是输 出操作,都是通过循环来实现的。 (4)DMA读数据和写数据是分开的: DMA会率先进行读数据操作,从源地址读取数据至FIFO中,每次读一个字或一 个字节,当FIFO中数据量够一次Burst操作后,写数据开始行动,将数据从FIFO 中写到目地地址所指向的模块中。若FIFO满,则自动停止读数据,若FIFO空则 自动停止写数据。当读数据部分完成了此次DMA传输要求的长度,则状态机 进入下一个子状态,等待写数据完成,归还总线。至此DMA控制器回到空闲 状态,等待下一次DMA传输。
选择型DMA控制器
外设1 R A M 多路型DMA控制器 C P U D M A 。 。 外设2
外设n
外设1 R A M
外设2
外设n
C P U
D M A
。。。
DMA模块信号
控制类信号: HREST 复位信号 HRQ 请求总线信号 HCLK 时钟信号 HLDA 接收总线允许信号 CS 片选信号 DREQx 接收外设请求信号 IOR IO读控制信号 DACKx 发出外设允许信号 IOW IO写控制信号 EOP 发出传输结束信号 MEMR 存储器读控制信号 MEMW 存储器写控制信号 主设接口信号: HBURST 规定BURST传输类型,SINGLE、INCR、WRAP HGRANT 总线授权信号 HTRANS 当前传输状态,NONSEQ、SEQ、IDLE、BUSY HADDR 传输当前地址信息 HRDATA 写数据总线 HWDATA 读数据总线 从设接口信号: HREADY 从设响应信号,用于短时间无法响应主设时 HRESP 从设响应信号,用于回复主设传输情况
DMA的功能
DMA IP的基本功能有五个:
AMBA总线
总 线 响 应
内存
CPU
总 线 请 求
DMA 请求
DMAC
DMA
响应
设备
专用DMA特定功能:(1)对于AMBA总线而言,支持burst传输 (2)多数支持操作系统的嵌入式系统使用虚拟内存技术, 使得操作系统层面上连续的内存地址与物理地址之间并非一一映射,但DMA 并不一定了解,故多数高级嵌入式系统中DMA控制器支持LLI技术。LLI用于 软件申请DMA传输时。
DMA模块介绍
地址寄存器:(两寄存器共用一个端口地址) 1、基地址寄存器:初始化编程时由CPU写入,整个DMA传送期 间不再改变,只能写入不能读出,保存内存数据块首地址; 2、现行地址寄存器:初始值与上相同,DMA传送期间,不断通 过加1或减1来修改访问存储器的地址指针,指出当前正在访问的存储 器地址,可写入也可读出;
DMA结构框图
DMA主状态机
复位 空闲 DMA请求 中断 总线授权 传输错误 源—FIFO ERROR DMA请求撤销 中断
传输错误 DMA结束 FIFO--目的
DMA数据源自文库输具体过程
DMA方式传送数据有三个过程:准备阶段、数据传送阶段、传 送结束。
DREQ
HRQ CPU 经总线裁决 后,CPU失 去控制权 HLDA DM A DACK R/W 经优先级或 屏蔽处理 告知已传完, DM 要求撤销请 A 求 MEMR/MEMW 由被动态进 入主动态 DREQ无 效后,归 还总线 CPU DATA I/O
DMA IP 设计
目 录
1 2
IP的原理及功能
结构框图及各模块介绍
3
4 5
数据传输具体过程
初始化编程
功能测试
DMA IP的原理
1、DMA的作用就是在存储器和I/0设备之间进行成批、高速的数据传 输。 2、数据传输共有四种方式:无条件方式、查询方式、中断方式、DMA 传输方式。其中前三种都是在CPU控制下进行,因此传输速率受CPU 指令运行速度的限制。而DMA是外设与存储器或存储器之间直接传输 数据的方法,传输速率主要取决于存储器存取速度。
DMA数据传输具体过程
(5)数据由存储器传送到外设(读):由MEMR信号有效从存储器读到FIFO, 由IOW信号有效把数据传送给外设; 数据由外设传送到存储器(写):则IOR信号有效从外设把数据传送到 FIFO,由MEMW信号有效把数据写入到内存。 (6)存储器到存储器的传送要用到两个通道,比如通道0的地址编程为源 地址,通道1的地址编程为目的地址;一般用于数据块搜索。 (7)只要外设保持对DMA的请求,DMA将保持对总线的控制,传输完成后, 首先通知外设取消DMA请求,使DREQ无效,放弃总线。 (8)DMA完成一次数据传输之后,向CPU发中断,一旦中断请求得到响应, CPU停止主程序的执行,转去执行中断服务程序做一些DMA的结束处理工 作,包括校验送入内存的数据是否正确、决定继续用DMA方式传送还是 结束传送;测试传送过程中是否发生错误。
DMA的初始化编程
(5)写入屏蔽寄存器; (6)写入命令寄存器,以控制DMA的工作; (7)写入请求寄存器,若有软件请求,则写入指定通道,若无软件请求 ,则完成前六步后由DREQ启动DAM传输。 由于不同芯片的寄存器端口地址不同,这里不再举例。
关于复位
复位是ASIC设计中最容易出问题的一环。DMA控制器主要有两种复 位方式,一种是上电复位,即异步复位,另一种是软件复位,即同步 复位。
异步复位:通过将全部D触发器的RESET端接到复位信号线上,无需时 钟就可以实现的复位。一般情况下在上电的时候作一次。
同步复位:根据功能的需要,当系统出现故障,或软件需要强行中止一 次DMA传输的时候,则需要软件通过配置寄存器实现复位功能。此时 就需要同步复位。
DMA功能测试
版图模拟 实验验证 系统 投片 软件模拟 结果分 析比较 版图模拟验证
单元
电路
模块
DMA功能测试
模拟验证方法图示
问题综合:
1、DMA请求总线时,在嵌入式系统中是向 CPU发起请求还是向某个仲裁器发起请求。
DMA模块介绍
通道请求模块: 1、DMA请求寄存器:外设有DMA请求时,DMA请求寄存器中相应位置 “1“,并由控制模块向CPU发起总线请求; 2、屏蔽寄存器:软件编程规定某通道请求被屏蔽; 3、优先级判别:当有多个通道请求时,优先级判别电路根据优先级判 别法来决定响应哪个通道请求; DMA通道的优先级由编程来决定: (1)固定优先级:规定每个通道的优先级是固定的,即通道0的优先级 最高,依次最低。 (2)循环优先级:规定刚被服务的通道优先级最低,依次循环。这样就 可以保证每个通道都有机会被服务。
DMA模块介绍
字数寄存器:(两寄存器共用一个端口地址) 1、基字数寄存器:初始化时编程由CPU写入 ,整个DMA传送期间不 再改变,只能写入不能读出,保存数据块初始大小; 2、现行字数寄存器:初始值与上相同,DMA传送期间,每传送一个 字节减1,当由0减到FFFFH时,产生DMA传送结束信号。
DMA控制器分类
DMA的初始化编程
在进行DMA传输之前,CPU要对其进行初始化编程,主要包括以下几步: 1、总清除命令,使其复位,与硬件复位信号RESET相同,做好接收新命令的准备; 2、根据所选通道,定入相应通道的基地址寄存器和当前地址寄存器初值; 3、写入基字节计数寄存器和当前字节计数寄存器的初值; 4、写入方式控制寄存器,确定工作方式和传输类型; 传输方式: (1)单字节传送 每次传送一个字节的数据,HRQ信号无效,释放总线控制权。 (2)数据块传送 连续传送,每传送一个字节自动修改地址,并使字节数减1,直到所规定节字传送完, 或收到外部信号。 (3)请求传送 如果有DMA请求,DMA才有可能占用总线,与数据块传送不同的是,每传送完一个字节 后检查DREQ信号是否有效,若有效则继续传,若无效则交回总线,等DREQ再次有效, 从暂停处开始传送。 (4)级联传送 用于扩展通道数量。
I/O I/O
DMA
RAM
I/O
DMA数据传输具体过程
DMA数据传输的几点说明: (1)CPU首先检查DMA状态,如果可用则向DMA控制器送入起始地址和数据块大 小(即初始化),然后CPU继续执行原来的主程序。当外设准备好输入或输出 数据时,它才发起DMA请求。 (2)当外设向DMA发起DREQ请求、DMA向CPU发起总线请求DRQ时,CPU在执行 完本机器周期后响应该请求,并使CPU的总线驱动器处于高阻态,然后CPU与 总线相脱离,DMA控制器接管并向内存提供地址
3、DMA以硬件控制取代软件控制进行信息传送,采用专门的硬件, 由DMA控制器控制总线,行使地址修改、控制数据传送等功能,减少 中间环节,提高系统工作效率。
4、DMA有两个工作模式: 主控工作模式:DMA接管总线,直接在IO接口和存储器之间读写操作, 这是DMA与其它外设的最根本区别; 从设工作模式:DMA的控制功能是通过初始化编程来设置的,CPU对 其写入或读出时,它是一个从属设备。