- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于TMS320DM6437的McBSP与EDMA实现串口通信
基于TMS320DM6437的McBSP与EDMA实现串口通信TMS320DM6437是专为高性能、低成本视频应用开发的,主频600 MHz,32位定点,采用达芬奇(DaVinci(TM))技术。该器件采用TI第3代超长指令集结构(VelociTI.3)的TMS320C64x+DSP内核,主频可达600 MHz,支持8个8位或4个16位并行MAC运算,峰值处理能力高达4 800MIPS。基于TMS320DM6437诸多特点,这里提出一种实现DSP与FPGA的双向数据交换设计方案,采用TMS320DM6437的McBSP和EDMA实现异步串口通信。 McBSP接口是全双工串行接口,提供收发数据双缓冲以处理连续的数据流,并可独立配置收发部分,接收和发送都可使用独立的帧信号和时钟源。TMS320DM6437有2个独立的McBSP接口(McBSP0和McBSPl)。EDMA可处理该处理器上所有内存单元和外设的数据传输,且不占用DSP时钟周期,EDMA还提供针对McBSP的同步事件,可方便控制数据传输。接收数据时,FPGA的数据通过McBSP传到DSP的DRR寄存器中,触发McBSP接收同步事件,EDMA将数据搬入DSP内存。发送数据时,当EDMA从DSP内存中将数据搬入DSP的DXR寄存器时,利用McBSP发送同步事件,将数据传输给FPGA。1 硬件接口电路设计McBsP接口的硬件连接如图1所示。DSP的McBSP接口可由内部时钟发生器或外部器件提供收/发时钟信号(CLKR/CLKX)及收/发帧同步信号(FSR/FSX)。为了简化FPGA内部时序,以上信号均由FPGA提供。图1中的EN_IN、EN_OUT为DSP控制FPGA中McBSP接口的使能信号,它们均与DSP的GPIO相连。当EN_IN为高时,FPGA接收DSP的数据;当EN_OUT为高时,FPGA开始向DSP发送数据。
2 软件程序设计传统的C6000型DSP对McBSP和EDMA进行操作时,多使用TI公司提供的CSL(Chip Support Library)进行编程操作,由于TMS320DM6437不支持CSL,而是改用PSP(Proeessor Support Package),所以对TMS320DM6437 McBSP接口采用PSP提供的McBSP Driver,主要用McBSP Driver提供的LLC层API进行编程。LLC层提供基于不同平台的驱动核心抽象。在该层可进行寄存器操作,宏定义,并且底层API可直接与硬件通信。对应的EDMA程序开发则采用EDMA LLD(EDMA low Level Driver)提供的各种库进行编程。LLD实际上包含2个库用于管理EDMA外设:一个是EDMA RM(EDMA Resource Manager),管理所有的EDMA硬件资源以及中断;另一个是EDMA DRV(EDMA Driver),完成所有EDMA相关配置,并且通过RM满足资源需求。当调用DRV层API进行操作时,实际上是通过DRV层API调用RM层API来对EDMA外设寄存器进行直接操作来配置EDMA硬件。本例中实现DSP和FPGA通信时,McBSP所需的帧同步信号以及时钟信号均由FPGA产生,McBSP发送过来32 bit的数据,DSP内部采用EDMA方式接收数据,McBSP接收同步事件触发EDMA传输。将数据放入DSP片内二级存储器的缓冲区,等待DSP处理。为了保证后写入的数据不会覆盖先写入的还没来得及被DSP处理的数据,片内二级存储器缓冲区采用乒乓缓冲结构。同样,DSP发送32bit数据给FPGA时,也是通过EDMA方式,由McBSP发送同步事件触发EDMA传输。2.1 McBSP配置McBSP的开启以及参数配置均采用LLC提供的API以及数据结构完成。但是因为TMS320DM6437的引脚多采用引脚复用,并且GPIO和McBSP引脚复用到一起,由于本例中McBSP帧同步信号是由外部源产生,为了保证能监测到第一个帧同步信号,需先在PINMUX寄存器里将复用的引脚配置成GPIO模式,等检测到帧同步信号后,再将复用的引脚恢复成McBSP模式。2.1.1 接收数据格式配置McBSP接收数据格式在数据结构LLC_RcvDataSetup中设置,该数据结构在McBSP Driver提供的头文件llc_mcbsp Type.h中定义,在编译工程文件的时候需包含此头文件。接收数据为单帧数据,一个数据帧长度为4个字节,采用帧同步信号检测模式,不进行压缩,数据传输延迟一个比特,采用McBSP同步事件产生中断。McBSP发送数据格式在数据结构LLC_XmitDatasetup中设置,具体参数和接收数据格式保持一致。M-cBSP帧同步和时钟参数在数据结构
文档评论(0)