基于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
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:同步数字体制(SDH)数字交叉连接(SDXC)矩阵的设计原理
下一篇:CA条件接受系统

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
信道
缓冲
串口
方式

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved