DSP 第四章 DMA
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.3.3
DMA寄存器—目的地址寄存器
1) 24位寄存器 2)通过全局控制寄存器中的DECDST,INCDST实现地址修 改以选通相应固定地址的通信信道 3)只能对该寄存器进行写操作
4.3.3
DMA寄存器—传输计数寄存器
1) 24位寄存器,反映传输字数 2)系统复位时,传输计数寄存器置0 3)完成一次传输,计数器减1,计数值 为0时,若TCINT=1,触发DMA中断 4)当计数寄存器值为0时,DMA通道 没有被挂起,计数寄存器将继续减少到 负值;通道的传输最大字数1000000h (167.77216万次)
4.3.3
DMA寄存器—全局控制寄存器
DMA通道控制寄存器 全局控制寄存器控制DMA的操作并反映DMA在每一个周期 内的变化状态。通过对全局控制器的特殊位的操作能够使得 源地址和目的地址增加、减少或者同步。系统复位时,DMA 控制寄存器的所有位都置0。
位 0-1 2-3 4 5 6 7 8-9 10 11 12-31
(6)Dபைடு நூலகம்A 传输计数方式:Bit 10
TC=0,计数器减为0,不停止DMA传输;为1,停止DMA传输 (7)DMA 传输计数中断:Bit 11
TCINT=0,传输结束后,DMA中断无效;为1,传输结束后, 启动DMA中断
4.3.3
DMA寄存器—源地址寄存器
1) 24位寄存器 2)通过全局控制寄存器中的DECSRC,INCSRC实现地 址修改以选通相应固定地址的通信信道 3)只能对该寄存器进行读操作
DMA 小结
1 DMA寄存器 DMA寄存器的位置 DMA全局控制寄存器的结构 DMA的初始化和启动设置 目的、源地址寄存器与传输寄存器间的关系 2 DMA的同步方式 无同步,源同步,目的同步,源和目的同步 3 DMA的操作过程 4 DMA的应用
.data 化过了,在程序中为了处理中断,只对 ST和IE进行了初始化)。 DMA .word 808000h ; DMA全局控制寄存器地址 RESET .word 0C40h ; DMA全局控制寄存器复位初始化值 CONTROL .word 0C43h ; DMA全局控制寄存器初始化 SOURCE .word ZERO ; 数据源地址DATA SOURCE ADDRESS DESTIN . word ARRAY ; 数据的目的地址 COUNT .word 128 ; 传输字的数目 .text START: LDP DMA ;装载数据页指针 LDI @DMA ,AR0 ;指向DMA全局控制寄存器 LDI @RESET,R0 ;复位DMA STI R0,*AR0 LDI @SOURCE,R0 ;初始化DMA源地址寄存器 STI R0,*+AR0(4) LDI @DESTIN,R0 ;初始化DMA目的地址寄存器 STI R0, *+AR0(6) LDI @COUNT,R0 ;初始化DMA传输计数器寄存器 STI R0,*+AR0(8) OR 400h,IE ;使能从DMA到CPU的中断 OR 2000h ,ST ;使能CPU全局中断 LDI @CONTROL,R0 ;初始化DMA全局控制寄存器 STI R0,*AR0 ;启动DMA传输 .END
4.3.4
DMA中断及同步机制—同步机制
(1)同步禁止,当SYNC=00 时,不产生同步,只要没有 冲突,DMA就可随时执行 读、写操作,所有的中断被 忽略,但DMA中的中断使能 位不会发生改变。
4.3.4
DMA中断及同步机制—同步机制
(2)源同步,当SYNC=01 时,DMA 将与源同步。 DMA接收一次中断执行一次 读操作。之后从总体上禁止 所有的DMA中断。
4.3.3 DMA寄存器
DMA具有4个寄存器。 全局控制寄存器:包含DMA通道的状态和模式信息。 源地址寄存器:包含将要被读出数据的存储器地址。 目的地址寄存器:包含将要被写入数据的存储器地址。 传输计数寄存器:包含将要被移动的块的大小。
808000h 808004h 808006h 808008h DMA全局控制寄存器 DMA源地址寄存器 DMA目的地址寄存器 DMA传输计数器
4.3.4
DMA中断及同步机制—同步机制
(3)目的同步,当SYNC=10 时,DMA与目的同步。开始 所有的中断都不考虑直到读 操作完成。直到DMA接收到 一次中断才执行一次写操 作,但读操作无须等待中 断。
4.3.4
DMA中断及同步机制—同步机制
(4)源和目的同步,当 SYNC=11时,DMA将与源和 目的同步,接收到中断时执 行读操作,下一次中断再执 行写操作。
4.3.1
DMA 控制器特性
能够对处理器的任意存储单元进行输入/输出操作(对片内存 储器、片外存储器和片内串口输入/输出操作); DMA操作的同时并不影响CPU的传输速度。DMA控制器具有专用 的片内地址和数据总线,所有DMA通道的访问都由DMA控制器决 断,并占用DMA的专用总线; 存储器到存储器的单通道DMA传输,DMA通道由4个寄存器控制; 源地址寄存器和目的地址寄存器自动增减; 由内部(片内定时器、串行口)中断和外部中断(中断3-中 断0)来同步数据传输。
11 DMA处于工作忙碌中(读、写数据,等待源中断,目的中 断,同步操作)
(3)DMA 源地址改变模式:Bit 4 Bit 5
(4)DMA 目的地址改变模式:Bit 6 Bit 7
(5)DMA 同步控制方式:Bit 9 Bit 8
SYNC = 00 同步禁止,DMA不响应任何同步操作; = 01 源同步,中断允许执行读操作; = 01 目的同步,中断允许执行写操作; =11 源和目的同步,中断允许执行读、写操作。
例:利用DMA通道,将地址809800H开始的5个数据转存到地址809900H开始的地 址中,传输完向CPU发送一个中断。
分析: 全局寄存器的复位值: 0C50H 源地址寄存器:809800H 目的地址寄存器:809900H 传输寄存器:5 寄存器地址:808000H,808004H,808006H, 808008H 中断允许:IE=400H 中断相应:ST=2000H (GIE=‘1’)
名称 START STAT INCSRC DECSRC INCDST DECDST SYNC TC TCINT 保留
复位值 0-0 0-0 0 0 0 0 0-0 0 0 0-0
功
能
控制DMA启动、停止。停止时不会丢失任何数据。这两位的组合功能 显示DMA在每一个机器周期内的变化状态,这两位的组合功能与DMA状态 若INCSRC=1,则源地址每执行一次读操作后加1。 若DECSRC=1,源地址每执行一次读操作后减1,若DECSRC=INCSRC,则源地 址不被修改。 如果INCDST=1,则目的地址在每执行一次写操作后加1。 若DECDST=1,目的地址在每执行一次写操作后减1,若DECDST=INCDST,则 目的地址不被修改。 同步控制方式,具体操作见表2.30。 DMA计数器方式控制。若TC=0,当计数器减少到0时,不停止DMA;若TC=1, 当计数器减少到0时,停止DMA。 若TCINT=1,允许DMA中断;TCINT=0,DMA中断无效。 读作0
外部或内部存储器 DMA通道 临时寄存器 由DMA源地址寄存 器指向存储器 外部或内部存储器 由DMA目的地址 寄存器指向存储器
每次数据写入时,传输计数器的值减少。当传输计数器减至0时 块传输停止,最后一次传输的写操作完成后,DMA通道设置DMA控制 寄存器的传输计数器中断(TCINT)标志。 数据块传输完后,DMA控制器可以通过编程实现以下事件: ★停止传输,直到重新编程(TC=1),设置传输计数器 ★继续传输数据(TC=0) ★产生一个中断信号告知CPU块传输已经完成(TCINT=1)
(3) DMA的字传输 读操作,DMA通道从源地址寄存器中读取一个字,把它写入DMA 通道的临时寄存器中。读操作后,源地址寄存器是否增加、减少或 保持不变取决于DMA全局控制寄存器的INCSRC或DECSRC位的设置。 写操作,DMA将临时寄存器中的值写入到目的地址寄存器指向的 目的地址。写操作后,目的地址寄存器增加减少或保持不变取决于 DMA全局控制寄存器的INCDRC或DECDRC位的设置。
4.3 DMA 控制器(Direct Memory Access)
DMA 是TMS320VC33的可编程外围设备,能够在存储器之 间传输大批量的数据,但不影响CPU操作,使得DSP可以与低速 外部存储器以及外围设备接口,而不降低CPU的运算能力,改进 了系统性能,提高了数据处理能力。 主要内容 DMA控制器的特性 DMA基本操作 DMA寄存器 DMA中断及同步机制 DMA初始化和重构
(2)STAT :Bit 2 3 功能:DMA状态位,显示DMA在每一个机器周期内的变化状态 00 复位状态值,DMA在多次传输过程中处于保持。DMA is being held between DMA transfer (between a write and a read) 01 DMA在当前执行过程中(读、写)保持, DMA is being held in the middle of a DMA transfer (between a read and a write) 10 保留
CPU和DMA控制器的访问操作并行进行。 当CPU和DMA控制器请求同一资源时,CPU具有 更高优先级,即DMA的操作必须等到CPU释放 资源后执行。
4.3.4
DMA中断及同步机制—中断
(1)中断原则:DMA通道传输完毕后通过DMA的全局控制寄存 器的TCINT位发送一个中断给CPU,CPU中断使能寄存器的 EDINT位必须置位,从而允许CPU被DMA中断。 (2)可接收中断:外部中断、定时器、串行口的中断。 (3)DMA通过同步来实现对中断的接收。CPU中断控制寄存器 可以检测到所有的DMA中断,并对中断标志寄存器进行设置。
4.3.2 DMA基本操作
操作过程: (1) DMA的寄存器初始化 -----进行DMA传输前的准备(源地址寄存器、 目的地址寄存器、传输计数器、模式加载) (2) DMA的操作开始 -----启动DMA工作 (3) DMA的数据传输 -----完成数据传输
4.3.2 DMA基本操作
(1) DMA的寄存器初始化 将需要读出的存储器单元地址赋给DMA的源地址寄存器。 将需要写入的存储器单元地址赋给DMA的目的地址寄存器。 将需要传输的字长赋给传输计数器。 将DMA通道控制寄存器以适当的模式加载,通过中断的方式 同步DMA控制寄存器的读写。 (2) DMA的开始 设置DMA全局控制寄存器的START位,启动DMA控制器开始 工作。
4.3.2 DMA基本操作
一批数据需要从存储器的一个区域传传输到另一个区域 主要解决以下问题: (1) 数据从哪里来 ——源地址 (2) 数据到哪里去 ——目的地址 (3) 数据量有多少 ——计数器 (4) 传输如何进行 ——全局控制控制器
808000h 808004h 808006h 808008h DMA全局控制寄存器 DMA源地址寄存器 DMA目的地址寄存器 DMA传输计数器
(1)START : Bit 0 1 功能:DMA开始控制位,保证安全退出DMA操作,不至于丢 失数据。 00 DMA完成当前正在进行的操作,禁止任何数据再次被读 入,取消所有悬挂的读写操作,进入复位,以便开始新的执行 任务 01 10 DMA保持,完成当前读、写后,不再进行任何操作 如果DMA的传输已经开始,则完成当前操作(读或写); 如果传输还没有进行,则停止当前操作 11 DMA从复位状态或先前状态开始启动
4.3.4
DMA初始化和重构—同步机制
① 清除DMA的全局控制寄存器START位,使DMA处于保持状态。 ② 配置DMA全局控制寄存器(START=00)以及DMA源、目的寄存器和 传输计数器; ③ 启动DMA。
注意: ① 启动DMA之前应重新配置寄存器; ② DMA和CPU优先级关系,合理分配存储器; ③ 当应用中断同步时,必须确保每一个中断被接收,否则DMA将 无法完成一个数据块的传输; ④ 当执行串行口写/读数据时,需要读、写同步,以保证数据的 有效性; ⑤ DMA完成一组数据的传输后,设置DMA控制寄存器的TCINT位, IF寄存器的EDINT位必须置为1。