ARM9开发板入门:对S3C2410数据手册中DMA部分的解读<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
深圳龙人计算机嵌入式系统开发中心专业提供嵌入式开发技术服务和嵌入式产品如ARM9开发板和XScale开发板、ARM9核心板、ARM9学习板、ARM工控板及ARM仿真器ARM开发工具等。
之所以要介绍DMA,因为它对性能太重要了!只有活用了DMA,CPU的性能才能上去!S3c2410有四个DMA,每个DMA支持工作方式基本相同,但支持的source Dest可能略有不同。
本文龙人计算机为您解读S3C2410数据手册中DMA部分:
DMA请求源:通过设置DCON[23]位SWHW_SEL值,选择硬/软件请求,并可进一步通过设置HWSRCSEL[26:24]位选择HW模式下的每个DMA通道的请求源
DMA工作过程:使用三态FSM(有限状态机)进行操作,分三步操作:
Stage-1 初始状态,等待DMA请求,若请求到达,进入Stage-2。此阶段,DMA ACK和INT REQ都为0。
Stage-2 DMA ACK变为1,计数器CURR_TC从DCON[19:0]加载数值。注意:此时DMA ACK仍然为1,知道它随后在stage-3中被清0。
Stage-3 在此状态,对DMA进行原子操作的sub-FSM(子状态机)被初始化它从源地址读取数据然后写入目的地址(此操作需要考虑数据大小和传输尺寸)。
每一次DMA传输,必须先得到请求。
有两种请求模式:Demand和Handshake。差别在于是否等待DREQ信号无效:
Handshake模式下,DMA控制器在开始下一次传输之前要一直等待直到DREQ信号无效。如果DREQ信号无效了,DMA 控制器使DACK无效后继续等待下一次DREQ信号有效,之后又开始数据传输,且使DACK信号有效。
Demand模式下,DMA控制器不等待DREQ信号无效。如果传输完毕后DREQ还是继续有效,DMA控制器只是先无效DACK信号,然后又开始新一轮的传输。数据手册上建议对外部DMA请求使用Handshake模式,以避免不经意的开始新一轮数据传输。
S3C2410 ARM9 ARM9开发板 DMA ARM开发板
有两种传输模式:Single service和Whole service。差别在于三态FSM操作的Stage-3:
在Stage-3状态,对DMA进行原子操作的Sub-FSM被初始化,它从源地址读取数据然后写入目的地址(此操作需要考虑数据大小和传输尺寸)。
Whole service模式下,这种读、写操作重复进行直到计数器(CURR_TC)变为0;而Single service模式下读和写操作只进行一次。
数据手册上提醒注意:就算是Whole service传输模式,每一次sub-fsm的原子传输后DMA也会释放总线,然后再试图重新获得总线,以保证其他设备能够有机会获得总线使用权。
每次原子传输(Sub-FSM中)的单元尺寸分为Unit(1次读和写操作,单块数据)和Burst4(分别执行4次连续读、写操作,4块数据)。
在整体服务模式下,使用传统的DMA 计数器,状态机会停留在状态三,直到DMA计数器的值减为零,再回到状态一,等待下一次DMA请求。2410 DMA 数据传输模式:共有两种数据传输模式:
单位数据传输模式:执行一次读操作和一次写操作。
并发数据传输模式:执行四次读操作和四次写操作。2410 DMA 的基本时序:nXDREQ请求生效并经过2CLK周期同步后,nXDACK响应并开始生效,但至少还要经过3CLK的周期延迟,DMA控制器才可获得总线的控制权,并开始数据传输。2410 DMA 的两种协议模式:请求模式:If XnXDREQ remains asserted, the next transfer starts immediately. Otherwise it waits for XnXDREQ to be asserted.
握手模式:If XnXDREQ is deasserted, DMA deasserts XnXDACK
深圳龙人嵌入式产品事业部是国内最强最精最专业的开发板集散地包括ARM开发板、ARM9开发板、Xscale开发板、2410开发板(ARM9)、2440开发板(ARM9)、44B0X开发板(ARM7)、DSP开发板、单片机开发板、FPGA开发板、CPLD开发板等各类精品开发板!网址:http://www.armlab.net
联 系 电 话:+86-0755-83346939 83662100 余小姐
销 售 Email:beijingshenzhen@126.com
联 系 地 址: 深圳市福田区福虹路世界贸易广场B座13F 邮 编:518033
文章评论(0条评论)
登录后参与讨论