摘要:介绍TMS320VC8420的多信道缓冲串口(McBSP)的基础上,分析了其控制寄存器的配置和工作过程,并给出了直接存储器访问(DMA)方式下利用McBSP进行通信的方法及程序代码。
关键词:McBSP 子地址寄存器 DMA
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响应进入中断服务程序。
- 是德科技 FieldFox 手持式分析仪配合 VDI 扩频模块,实现毫米波分析功能
- 高通推出其首款 RISC-V 架构可编程连接模组 QCC74xM,支持 Wi-Fi 6 等协议
- Microchip推出广泛的IGBT 7 功率器件组合,专为可持续发展、电动出行和数据中心应用而设计
- 英飞凌推出新型高性能微控制器AURIX™ TC4Dx
- Rambus宣布推出业界首款HBM4控制器IP,加速下一代AI工作负载
- 恩智浦FRDM平台助力无线连接
- 大联大诠鼎集团推出基于Qualcomm产品的Wi-Fi 7家庭网关方案
- 专访Silicon Labs:深度探讨蓝牙6.0的未来发展趋势
- Works With线上开发者大会即将展开,在线领略全球活动内容精髓
- CGD和Qorvo将共同革新电机控制解决方案
- 是德科技 FieldFox 手持式分析仪配合 VDI 扩频模块,实现毫米波分析功能
- 贸泽开售可精确测量CO2水平的 英飞凌PASCO2V15 XENSIV PAS CO2 5V传感器
- 玩法进阶,浩亭让您的PCB板端连接达到新高度!
- 长城汽车研发新篇章:固态电池技术引领未来
- 纳芯微提供全场景GaN驱动IC解决方案
- 解读华为固态电池新专利,2030 叫板宁德时代?
- 让纯电/插混车抓狂?中企推全球首款-40℃可放电增混电池,不怕冷
- 智驾域控知多少:中低端车型加速上车,行泊一体方案占主体
- Foresight推出六款先进立体传感器套件 彻底改变工业和汽车3D感知