基于TMS320VC8420多信道缓冲串口的DMA方式数据传输

2006-05-07 15:50:10来源: 电子技术应用

信道缓冲串口(McBSP)的基础上,分析了其控制寄存器的配置和工作过程,并给出了直接存储器访问(DMA)方式下利用McBSP进行通信的方法及程序代码。

TMS320VC5402是TI公司C54x系列定点DSP芯片中的新产品它集中了此系列早期产品的优点,并提供了许多新的功能,开发和使用更加方便。C5402具有灵活的指令系统和操作性能,它可选择助记符指令或算术指令作为编程指令,同时支持汇编语言和C语言的单独或混合编程。C5402采用改进的Harvanl处理结构,指令流水线操作。计算和处理速度很高,系统单指令周期可达到10ns。在片内提供16k的RAM用作程序和数据存储,其最大可扩展寻址空间为1M字节。C5402提供的McBSP串口和DAM数据传送方式极大地方便它在通信领域的应用和开发。C5402由于其高性能价格而成为当前语言和静态图象处理和主流产品。本文主要介绍C5402和McBSP原理、配置以及DAM方式下如何实现利用McBSP的通信。

1 C5402 McBSP串口的特点

C5402提供了两个多信道缓冲串口:McBSP和McBSP1。McBSP基于54x系列DSP标准串口,它提供了以下功能:

全双工同步或异步通信功能;

实现连续的发送和接收数据流的功能;

与工业标准编解码器、模拟接口芯片(AICs)以及其他串行连A/D和D/A器件的直接接口;

外部时钟输入或内部可编程时钟两种进控制方式;

独立可编程的发送和接收帧同步。

多信道数据传输,最多可扩展于至高无上28个信道;

μ律和A律压缩扩展,用于数据压缩;

帧同步和数据时钟优先级可编程,实现不同信道的数据流帧同步和传输优先级控制。

2 McBSP的工作过程

C5402的McBSP的接口信号包括:接收数据DR、发送数据DX、发送时钟CLKX、接收时钟CLKR、接收帧同步 FSR、发送帧同步FSX和外部输入时钟CLKS。其内部结构如图1所示。其中内部数据的发送和接收移位及缓存;时钟和帧同步生在与控制模块实现McBSP数据传输波特率设置以及同步传输时同步信号的产生的判断;C5402提供了多信道传输模式,通过多信道选择模块过行配置;CPU和DMA中断模块用于触发CPU或DMA控制器的中断响应。

McBSP通过DX和DR实现DSP与外部设备的通信数据交换。其中DX完成数据的发送,DR用来接收数据。同时通过CLKX、CLKR、FSR和FSX实现时钟和帧同步控制。DSP通过McBSP的16位控制寄存器接入内部外设总线

通过McBSP发送数据时,CPU或DAM控制器将被发送数据写入数据发送寄存器DXR[1,2]。若传输转移寄存器XSR[1,2]中有数据,是DXR[1,2]中的值移向XSR[1,2],再由XSR[1,2]将数据移到DX上发送;若XSR[1,2]不为空,则等待将XSR[1,2]中的数据全部移到DX脚发送之后才将DXR[1,2]中的值复制到XSR[1,2],然后移位到DX。

McBSP的接收缓冲寄存器包括三个:接收移位寄存器RSR[1,2]、接收缓冲寄存器[1,2]和接收数据寄存器DRR[1,2]。到达DR接收脚的数据移存到RSR[1,2],一旦接收到一个字(可以是8、12、16、24或32位),检查RBR[1,2],在CPU 或DMA控制器没有对DRR[1,2]进行操作时可以将RBR[1,2]中的数据复制到DRR[1,2],CPU或DMA控制器通过读取DRR[1,2]中的数据来实现串口数据接入。

3 子地址控制寄存器及其配置

McBSP通过一系列存储器映射控制寄存器来进行配置和操作。它采用子地址寻址方案。McBSP通过复接器将一组子地址寄存器复接到存储器映射的一位置上。复接器由子块地址寄存器SPSAx控制。子块数据寄存器SPSDx用于指定子地址寄存器中数据的读写。其内部连方式如图2所示。这种方法的好处是可以将多个寄存器映射到一个较小的存储空间。

为访问某个指定的子地址寄存器,首先要将相应的子地址写入SPSAx,SPSAx驱动复接器,使其与SPSDx相联,接入相应子地址寄存器所在的实际物理存储位置。当向SPSDx写入数据时,数据送入前面子块地址寄存器中所指定的内嵌数据寄存器;娄从SPSDx读取数据时,也接入前面子块地址寄存器中所指定的内嵌数据寄存器。

以配置McBSPO的控制寄存器(SPCR1_0t SPCR2_0)为例,代码如下:

SPSA_0 .set 38h;定义子块地址寄存器映射位置

SPSD_0 .set 39h;定义子块数据寄存器映射位置

SPCR1_0 .set 00h;定义SPCR1_0的映射子地址

SPCR2_0 .set 01h;定义SPCR2_0的映射子地址

STMSPCRI1_0,SPSA_0;将SPCRI_0的地址写入SPSA_0

STM#K_SPGR1_0CONFIG,SPSD_0

STMSPGR2_0,SPSA_0;将SPCR2_0的地址写入SPSA_0

STM #K_SPGR2_0_CONFIG,SPSD_0;

将配置值写入SPSD_0

在将SPCR1_0和SPCR2_0的子地址写入SPSA_0之后再将数据写入SPSD_0,内部复接器就自动将配置数K_SPGR1_0_CONFIG和K_SPGR2_0_CONFIG分别写入子地址寄存器SPGR1_0和SPGR2_0, 完成寄存器配置。

4 实现DMA方式的数据传输

C5402内部提供了DMA控制器,可以方便地实现McBSP的DMA方式的数据传输(发送或接收)。C5402的DMA的有6个可编程的DMA信道,可独立实现读写等不同内容的操作。其控制寄存器包括信道优先级和使能控制寄存器(DMPREC)、子块地址寄存器(DMSA)和子块地址访问寄存器(DMSDN和DMSDI),每个信道的控制寄存器则采用子地址和形式,包括源地址寄存器(DMCTRx)、目的地址寄存器(DMSDI)、记数寄存器(DMCTRx)、同步选择和帧同记寄存器(DMSFGx)以及传输模式控制寄存器(DMMCRx)。利用DMA方式通过McBSP进行数据传输时,首先要由McBSP产生一个事件报告DMA控制器,从而触发DMA模式进行数据传输,DMA将设定的数据传输完毕后,触发DMA中断,CPU响应DMA中断而进行中断服务程序。

McBSP所能产生的事件包括DMA接收同步事(REVT)和DMA发送同步事件(XEVT)。通过DMSFGx寄存器来选择。以一个DMA方式下的McBSP发送数据为例,其代码如下:

;McBSP初始化

stm SPCR1_0,SPSA_0;SPCR1_0初始化

stm #SPCR1 _0_RESET,SPSD_0

stm SPCR2_0,SPCRA_0;SPCR2_0初始化

stm #K_SPCR2_0_RESET,SPSD_0

stm PCR_0,SPSA_0

#K_PCR_0_RESET,SPSD_0;管脚控制寄存器

PCR_0初始化

Rsbx INTM;中断使能

stm #K_IMR_RESET,IMB;中断屏幕寄存器IMB初始化

stm RCR1_0,SPSA_0;接收控制寄存器RSR1_0初始化

stm #K_RSR1_0,RESET,SPSD_0

stm RGR2_0,SPSA _0;接收控制寄存器RCR2_0初始化

stm XCR1_0,SPSA_0;发送控制寄存器XCR1_0初始化

stm #K_XCR1_0_RESET,SPSD_0

stm XCR2_0,SPSA_0;发送控制寄存器XCR2_0初始化

stm #K_XCR2_0_RESET,SPSD_0

stm SRGR1_0,SPSA_0;抽样率生成器SRGR1_0初始化

stm #K_SRGR1_0_RESET,SPSD_0

stm SRGR2_0,SPSA_0;抽样率生成器SRGR2_0初始化

stm #K_SRGR2_0_RESET,SPSD_0

nop

nop

McBSPO使能

stm SPCR1_0,SPSA_0

stm #K_SPCR1_0_ENABLE,SPSD_0;接收使能

stm SPCR2_0,SPSA_0

stm #K_SPCR2_0_ENABLE,SPSD_0;发送使能

nop

nop

;利用DMA信道0作为数据传输通道

stm DMSRCO,DMSA;设置数据源发送发地址

stm #K SOURCE_ADDR,DMSDN

stm DMDSTO,DMSA;设置数据目的地址

stm #K_DST _ADDR,DMSDN

stm DMCTRO,DMSA;设置发送数据的缓冲大小

stm #K_BUFFER_SIXE,DMSDN

stm DMSFCO,DMSA;设置同步事件和帧缓冲寄存器stm #K_SFC_VALUE,DMSDN

stm DMMCRO,DMSA设置传输模式寄存器

stm #K_MCR_VALUE,DMSDN

stm DMIDXO,DMSA;设计数器 累加值

stm #K_IDX_VALUE,DMSDN

stm #K_PREC_VALUE,DMPREC;设置信道优先级和信道使能

DMA芭后台形式进行数据传输,不需要CPPU进行控制,可通过控制寄存器的设置使得在数据传输完成或发生错误时产生DMA中断,CPU响应进入中断服务程序。

关键字:信道  缓冲  串口  方式

编辑: 引用地址:http://www.eeworld.com.cn/wltx/qtjs/200605/2532.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
信道
缓冲
串口
方式

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved