温馨提示
确定要将该版块隐藏吗?你可以在“栏目设置”中将其恢复。
温馨提示
添加关注成功!
你可以去个人中心查看你关注的人与关注你的人
 
温馨提示
确定要移除此人吗?移除后,此人将不在你的列表中显示,也不能接收你的动态。
 
温馨提示
是否要取消关注?
 

请输入登录信息  

博主
姓名:
单位:
职位:
访问人数:49593
博客等级:
搜房币:
博主公告
    龙人专业提供ARM 开发板 嵌入式 嵌入式系统开发 嵌入式解决方案 嵌入式软件 嵌入式软件开发 S3C2440 2440开发板 Xscale开发 PXA270 270开发板 EP9315 IXP425等系列板!
我的文档
日历
最近访客
关注博客发文动态
正文
嵌入式DMA寄存器介绍 (2009-10-28 9:53:25) [发送到微博]
DMA寄存器是主机控制DMA的窗口,包括控制状态寄存器、地址寄存器、字节寄存器、中断状态寄存器和中断屏蔽寄存器。描述符FIFO是一个32×256的FIFO,在链式DMA模式下可以暂存128组DMA的描述符。DMA状态机是控制PCI总线传输的核心,主模式下的DMA有主模式写和主模式读两种类型。主要模式写是把数据通道RAM里的数据包通过PCI总线传送到从设备,主模式读则读取设备的数据包传送到数据通道RAM中。深圳龙人嵌入式提供各种嵌入式开发方案,欢迎来电咨询。
一、DMA寄存器
    DMA寄存器的地址直接映射到PCI的地址空间,其基地址由PCI Core中的配置寄存器Bar0决定。主机通过访问这些寄存器来控制DMA操作。
    1、控制状态寄存器:主机通过寄存器配置DMA状态机,同时也可以获得当前数据传输的状态。
    2、地址寄存器:保存PCI总线地址,即DMA传输的目标地址。当地址寄存器完成写操作,DMA状态机将被启动。
    3、字节寄存器:其初始值为一次DMA传输数据的大小,PCI每传送一个数据,字节寄存器的值就减1,减到0则DMA停止传输。
    4、中断状态寄存器:不主机提供PCI设备的中断状态。
    5、中断屏蔽寄存器:可以屏蔽PCI设备的中断请求。
二、DMA状态机
    1、空闲状态:状态机无数据传输时默认停留在这一状态。通过写DMA寄存器,可启动一次DMA传输。
    2、装载寄存器状态:当链式传输时,时入装载寄存器状态。将描述符FIFO中的一组描述符装入字节寄存器和地址寄存器后,进入寄存器有效状态。
    3、寄存器有效状态:DMA传输前,如果外部FIFO中的数据已经准备好,则进入等待请求状态。
    4、等待请求状态:等待一个数据包从外部FIFO状入数据通道RAM,进入请求状态。
    5、请求状态:申请PCI总线的控制权,进入等待允许状态。
    6、等待允许状态:当PCI设备获得了总线的控制权,进入准备状态。
    7、准备状态:当数据传输结束或者PCI总线终止传输,则进入结束状态;当PCI总线插入等待周期,则返回等待请求状态,重新申请总线的控制权;当PCI总线的地址期结束将要进入数据期,则进入传输状态。
    8、传输状态:当数据传输结束或者PCI总线终止传输,则进入结束状态;当PCI总线插入等待周期,则返回等待请求状态,重新申请总线的控制权;当本次数据传输结束,便是本次链式DMA没有结束,则进入装载寄存器状态。
    9、结束状态:一次DMA结束,或者一次链式DMA结束,状态机进入结束状态,同时发出中断信号。
    10、错误状态:当PCI abort、PCI SYSTEM ERROR、PCI parity ERROR、FIFO full等错误出现时,状态机进入错误状态,同时发出中断信号。
三、DMA操作流程
    链式DMA可以认为是一组DMA的串连,其中每一次DMA的数据包大小和目标地址可以不同,直到这一组DMA结束,发出一个中断信号。以主模式写为例,主机首先把多组字节寄存器和地址寄存器的值写入描述符FIFO,每一组字节寄存器和地址寄存器就是一个描述符;主机再写中断屏蔽寄存器和控制状态寄存器即启动了DMA状态机,开始链式的数据传输。与非链式DMA相比,链式DMA有更多的优点。
阅读 (1026) | 评论 (0) | 转载 | 收藏 | 举报/意见
文章评论:
您现在发表的是匿名评论。
发表评论
昵称 (您可以在此修改昵称,不超过20个字符或10个汉字)
内容
评论并转载文章 分享到微博 
搜房用户可以先登录再评论

对不起,您的账号尚未进行真实身份信息注册,评论不能同步到微博!

copyright © SouFun.com Limited, All Rights Reserved. 搜房公司 版权所有