MSP430程序库十四DMA程序库

上传人:豆浆 文档编号:23881615 上传时间:2017-12-03 格式:DOC 页数:9 大小:230.50KB
返回 下载 相关 举报
MSP430程序库十四DMA程序库_第1页
第1页 / 共9页
MSP430程序库十四DMA程序库_第2页
第2页 / 共9页
MSP430程序库十四DMA程序库_第3页
第3页 / 共9页
MSP430程序库十四DMA程序库_第4页
第4页 / 共9页
MSP430程序库十四DMA程序库_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《MSP430程序库十四DMA程序库》由会员分享,可在线阅读,更多相关《MSP430程序库十四DMA程序库(9页珍藏版)》请在金锄头文库上搜索。

1、MSP430 程序库DMA 程序库直接存储器存取(DMADirect Memory Access)方式是用硬件实现存储器与存储器之间或存储器与 IO 设备之间直接进行高速数据传送,不需要 CPU 的干预。这种方式通常用来传送数据块。MSP430f16x 系列单片机内部含有 DMA 模块,而且几乎内部所有外设都可以触发 DMA 开始存取数据。这里实现了这个模块的程序通用的函数库,方便使用。 硬件介绍: MSP430F15X/16X 系列单片机具有 DMA 控制器,从而能够为数据高速传输提供保证。例如,通过 DMA 控制器可以直接将 ADC 转换存贮器的内容传到 RAM 单元。MSP430 系列单

2、片机扩展的 DMA 具有来之所有外设的触发器,不需要 CPU 的干预即可提供先进的可配置的数据传输能力,从而加速了基于 MCU 的信号处理进程,DMA 传输的触发来源对 CPU 来说是完全透明的,DMA 控制器可在内存与外部及外部硬件之间进行精确的传输控制。DMA 消除了数据传输延迟时间以及各种开销,从而可以解放 16为 RISC CPU,以便其将更多的时间用于处理数据,而非执行正在处理的任务。MSP430F16x 系列单片机的 DMA 模块有以下特点:数据传送不需要 CPU 介入,完全由 DMA 控制器自行管理。在整个地址空间范围内传输数据,块方式传输可达 65536字节;能够提高片内外设数

3、据吞吐能力,实现高速传输,每个字或者字节的传输仅需要2 个 MCLK;减少系统功耗,即使在片内外设进行数据输入或输出时,CPU 也可以处于超低功耗模式而不需唤醒;字节和字数据可以混合传送:DMA 传输可以是字节到字节、字到字、字节到字或者字到字节。当字到字节传输时,只有字中较低字节能够传输,当从字节到字传输时,传输到字的低字节,高字节被自动清零;四种传输寻址模式:固定地址到固定地址、固定地址到块地址、块地址到固定地址以及块地址到块地址;触发方式灵活:边沿或者电平触发。单个、块或突发块传输模式:每次触发 DMA 操作,可以根据需要传输不同规模的数据DMA 的四种寻址模式如下图所示:DMA 控制器

4、模块: 3 个独立的传输通道:通道 0、通道 1 和通道 2。每个通道都有源地址寄存器、目的地址寄存器、传送数据长度寄存器和控制寄存器。每个通道的触发请求可以分别允许和禁止;可配置的通道优先权:优先权裁决模块,传输通道的优先级可以调整,对同时有触发请求的通道进行优先级裁决,确定哪个通道的优先级最高。MSP430 的 DMA 控制器可以采用固定优先级,还可以采用循环优先级。程序命令控制模块,每个 DMA 通道开始传输之前,CPU 要编程给定相关的命令和模式控制,以决定 DMA通道传输的类型;可配置的传送触发器:触发源选择模块,DMAREQ(软件触发)、Timer_ACCR2 输出、Timer_B

5、CCR2 输出、I2C 数据接收准备好、I2C 数据发送准备好、USART 接收发送数据、DAC12 模块 DAC12IFG、 ADC12 模块的 ADC12IFGx、DMAxIFG、DMAE0 外部触发源。并且还具有触发源扩充能力。DMA 有六种传输模式:单字或者单字节传输;块传输;突发块传输;重复单字或者单字节传输;重复块传输;重复突发块传输。前三个,传输完成后 DMAEN 自动复位;再次传输时需要重新置位 DMAEN 位以使能 DMA 通道。后三个为重复模式,一次传输完成后,DMAEN 不复位;再次出发时,可以再次启动数据传输。六种传输模式通过 DMADTx 寄存器设置:DMADTx T

6、ransfer Mode Description000 Single transfer Each transfer requires a trigger. DMAEN isautomatically cleared when DMAxSZ transfers havebeen made.001 Block transfer A complete block is transferred with one trigger. DMAEN is automatically cleared at the end of theblock transfer.010, 011 Burst-block tra

7、nsfer CPU activity is interleaved with a block transfer.DMAEN is automatically cleared at the end of theburst-block transfer.100 Repeated single transfer Each transfer requires a trigger. DMAEN remainsenabled.101 Repeated block transfer A complete block is transferred with one trigger.DMAEN remains

8、enabled.110, 111 Repeated burst-block CPU activity is interleaved with a block transfer.transfer DMAEN remains enabled.单字或者单字节传输:DMA 通道被定义为单字或者单字节传输模式,每个字或者字节的传输都要触发信号触发。设置 DMADTx=0 就定义了单字或者单字节传输模式,规定的传输完毕后 DMAEN 位自动清除,如果需要再次传输,必须重新置位 DMAEN。如果设置 DMADTx4 为重复单字或者单字节传输模式, DMAEN 位一直保持置位,每次触发伴随一次传输。DMAxS

9、Z 寄存器保存传输的单元个数,如果该寄存器为 0,则没有传输。传输之前 DMAxSZ 寄存器的值写入到一个临时的寄存器中,每次操作之后DMAxSZ 做减操作。当 DMAxSZ 减为零的时候,它所对应的临时寄存器将原来的值重新置入 DMAxSZ,同时相应的 DMAIFG 标志置位。块传输模式:在块传输模式,每次触发可以传输一个数据块。设置 DMADTx=1 为块传输模式,每个数据块传输完毕,DMAEN 位自动清除,在触发传输下一个数据块之前,该位要被重新置位。在传输某个数据块期间,其他的传输请求将被忽略。设置 DMADTx=5 为重复块传输模式,某个数据块传输完毕,DMAEN 位仍然保持置位,之

10、后,新的触发可以引起又一次数据块传送。DMAxSZ 寄存器保存数据块所包含的单元个数。DMASRCINCR 和 DMADSTINCR 反映在数据块传输过程中的目的地址和源地址的变化情况。在块传输或者重复块传输过程中,DMAxSA,DMAxDA,DMAxSZ 寄存器的值写入到对应的临时寄存器中,DMAxSA,DMAxDA 寄存器所对应的临时值在块传输过程中增加或者减少,而 DMAxSZ 在块传输过程中减计数,始终反映当前数据块还有多少单元没有传输完毕,当 DMAxSZ 减为 0,它所对应的临时寄存器将原来的值重新置入 DMAxSZ,同时相应的 DMAIFG 被置位。在块传输过程中, CPU 暂停

11、工作,不参与数据的传输。数据块需要 2MCLKDMAxSZ 个时钟周期。当每个数据块传输完毕,CPU 按照暂停前的状态重新开始执行。突发块传输模式:这个和块传输模式类似,只不过每传输 4 个字或字节,DMA 释放内部总线,CPU 运行 2 个 MCLK 周期;在传输过程中 CPU 有 20%的执行时间,而块传输需要等 DMA 完全传送完之后,CPU 方能运行。DMA 触发源:每个通道的触发源有 DMAxTSELx 位进行控制的,这些位必须在 DMAEN 位为 0 是进行设置,否则可能出现不可预料的 DMA 触发。DMAxTSELx Operation0000 DMAREQ bit (softw

12、are trigger)0001 TACCR2 CCIFG bit0010 TBCCR2 CCIFG bit0011 URXIFG0 (UART/SPI mode), USART0 data received (I2C mode)0100 UTXIFG0 (UART/SPI mode), USART0 transmit ready (I2C mode)0101 DAC12_0CTL DAC12IFG bit0110 ADC12 ADC12IFGx bit0111 TACCR0 CCIFG bit1000 TBCCR0 CCIFG bit1001 URXIFG1 bit1010 UTXIFG1

13、bit1011 Multiplier ready1100 No action1101 No action1110 DMA0IFG bit triggers DMA channel 1DMA1IFG bit triggers DMA channel 2DMA2IFG bit triggers DMA channel 01111 External trigger DMAE0另外,单片机的中断程序不影响 DMA 的传输,当 DMA 传输过程中,单片机不响应中外部 NMI 中断(必须 DMA 的控制位 ENNMI 位为 1 时响应 NMI 中断,否则不予处理)外的所有中断;必须等待 DMA 数据传送结

14、束之后才运行系统的中断处理程序。DMA 的中断:数据传送过程中,DMAxSZ 寄存器值减为 0 时,DMA 置位 DMAIFG,DMA 的中断和 DAC12 模块共享中断向量,使用中断时需要软件判断具体是那个中断。中断响应后 DMAIFG 不会自动复位,使用时必须软件清零 DMAIFG 位。DMA 的寄存器如下:Register Short Form Register Type Address Initial StateDMA control 0 DMACTL0 Read/write 0122h Reset with PORDMA control 1 DMACTL1 Read/write 0124h Reset with PORDMA channel 0 control DMA0CTL Read/write 01E0h Reset with PORDMA channel 0 source address DMA0SA Read/write 01E2h UnchangedDMA channel 0 destination address DMA0DA Read/write 01E4h UnchangedDMA channel 0 transfer size DMA0SZ Read/write 01E6h UnchangedD

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号