工控网首页
>

应用设计

>

SPI协议下TMS320C6000 DSP芯片与C8051 FXXX单片机的通信

SPI协议下TMS320C6000 DSP芯片与C8051 FXXX单片机的通信

2006/5/23 9:08:00
关键词:McBSP;TMS320C6204;C8051F231;DSP;SPI 中图分类号:TP368.1 文献标识码:A The Communication Between TMS320C6000 DSP and CS051FXXX under SPI protocol WANG Liang, HUANG Hong-quan (College of Electrical Engineering, GuangXi University, Nanning, 530004, China) Abstract: The SPI protocol is introduced in this paper. There have configuration and the interface circuit between TMS320C6204 and C8051F231. And present corresponding procedures between the transmitter and receiver. Key words: McBSP; TMS320C6204; C8051F231; DSP; SPI 1 概述 TMS320C6000 DSP[1](数字信号处理)芯片是美国TI公司推出的定、浮点兼容的DSPs系列芯片,一般具有2到3个高速、全双工、多通道缓冲串行接口(McBSP),其方便的数据流控制可使其与大多数高速的同步串行外围设备接口。而51系列单片机中的C8051FXXX单片机是由Cygnal公司最新推出一种高性能的单片机,具有丰富的串行接口:如标准的全双工UART串行总线及MO TOROLA的SPI串行总线。因此,二者之间可以进行高速的串行通信。 SPIt2j(Serial Peripheral Interface——串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS。SPI接口的最大特点是由主设备时钟信号的出现与否来界定主/从设备间的通信。一旦检测到主设备时钟信号,数据开始传输,时钟信号无效后,传输结束。在这期间,要求从设备必须被使能(SS信号保持有效)。 本文以TI公司的DSP TMS320C6204作为从设备与Cygnal的C8051F231单片机作为主设备进行通信的为实例,介绍了将TMS320C6204 DSP的多通道缓冲串行口McBSP(Multi - channel Buffered Serial Port)配置为SPI模式,从而实现 DSP与单片处理器(带SPI总线接口)之间的高速通信设计方法,同时给出了实现方法的相应程序框图。 2 TMS320C6204 DSP的多通道缓冲串口 McBSP[3]。多通道缓冲串行口McBSP的功能是提供器件内外数据的串行交换。同以前的串口相比,McBSP串口具有相当大的灵活性。表1给出了有关 TMS320CA204的McBSP管脚说明。其中串口接收、发送时钟和同步帧信号既可由外部设备提供,又可由内部时钟发生器提供,从而大大的提高了通信的灵活性。
McBSP中的传输时钟具有停止模式控制选项,这保证了与SPI协议的兼容性。McBSP支持两种SPI传输格式,可在SPCR寄存器的CLKSTP位中设置。表2列出了CLKSTP与CLKXP相配合对串口时钟工作模式的控制。
其他有关寄存器的配置: 当DSP中的McBSP作为SPI的从设备时,McBSP的CLKX管脚和FSX管脚配置为输入管脚(管脚控制寄存器PCR中的CLKXM=FSXM=0)。串口按照主控时钟进行数据同步传输。输入的CLKX和FSX信号同时也分别作为McBSP内部接收端的CLKR信号和FSR信号。在进行数据传输之前,外部主设备必须先将FSX信号置为有效(低电平)。 作为SPI从设备时,McBSP的RCR/XCR寄存器中的(R/X)DATDLY位必须置为0,以保证发送的第一个数据能够出现在DX管脚上;(R/X) DATDLY=0也保证了对于接收,一旦检测到串行时钟CLKX有效,就可以立刻接收数据。 尽管CLKX信号有外部主设备产生,McBSP内部的采样率发生器仍必须被使能,并被设置为相应的SPI模式。因为McBSP需要利用内部的采样率发生器产生的时钟信号,对输入的CLKX和 FSX信号进行同步化处理。采样率发生器应当设置为采用CPU时钟作为采样率发生器的时钟源(采样率发生器SRGR的CLKSM=1),以及必须保证内部的CLKG信号频率(由SRGR的 CLKGDV位控制)至少是SPI数据传输率的8倍,比如可以令CLKGDV=1,将采样率发生器设置为最大的速率。
3 C8051F231单片机[4] C8051F231单片机本身带有SPI串行外设接口,因此可以与DSP的McBSP进行无缝的通信接口。其SPI所使用的四个信号是:MOSI,MISO,SCK,NSS(相当于DSP中的FSX)。由于它作为 SPI的主设备,因此需要提供主控时钟信号和从设备使能信号,此外还要提供要传输的内容。这就需要设置四个相应寄存器:(1)配置寄存器 SPIOCFG:用来设置时钟信号和SPI的位计数、帧长度;(2)控制寄存器SPIOCN:用来设置各种标志位和SPI的允许位;(3)时钟频率寄存器 SPIOCXR:当SPI模式配置为主方式操作时,由该寄存器的8位决定SCK输出的频率;(4)数据寄存器SPIODAT:用于发送和接收数据。 在SPI所使用的四个信号中应该特别注意从设备使能信号NSS,它是一个输入信号,主器件用它来选择处于从方式的SPI模块。在主方式时,用于禁止SPI模块;当处于从方式时,它被拉为低电平以启动一次数据传输,并在传输期间保持低电平。在本实验中,我们可以将它置为高电平空闲,而将通用I/O口P2.4与DSP的FSX端连接,通过在软件中将P2.4口拉为低电平来启动数据传输。 4 原理图 我们以TI公司的TMS320C6204(DSP)芯片与Cygnal公司的C8051F231(单片机)之间的接口为例(这里DSP作为从设备),原理图如下[5]:
5 程序设计举例[6] 在这里以主设备C8051F231发送8位字节,从设备TMS320C6204接收字节为例给出收、发双方的程序流程图。 5.1 发送端程序框图:(C8051F231)
5.2 接受端程序框图:(DSP) 这里为了便于验证通讯的结果,本例利用了定时器0和1的两个通用输出口TOUT0和 TOUTl,当检测到有数据进入DRR(McBSP中的接收缓冲器)时在程序中将TOUT0的管脚状态置为高电平作为标志位;将DRR中的数据读出后与发送的数据进行比较,如果结果相等则将TOUTl的管脚状态置为高电平作为标志。试验结果证明:当通讯结束时TOUT0和TOUTl都为高电平时,说明通讯成功。
6 结束语 串行SPI通信协议是一种标准的通信协议,很多场合下都采用这种机制。文中以单片机作为主设备而DSP作为从设备为例简述了二者至间的通讯接口以及相应程序流程图,试验证明我们在SPI协议下,DSP与51单片机之间实现了串行通信。目前,在很多的工程设计中涉及到DSP与单片机的通信问题,本文中的方法具有一定的参考价值。参考文献 [1] TMS320C6204 FIXED- POINT DIGITAL SIGNAL PRO-CESSOR[J]. Texas Instruments Incorporated, 2001. [2] 赵训威.基于TMS320C6200系列DSP芯片应用与开发[M]. 北京:人民邮电出版社,2002. [3] 任丽香,马淑芬,李方慧.TMS320C6000系列DSPs的原理与 应用[M].北京:电子工业出版社,2000. [4] 李刚,林凌.与8051兼容的高性能、高速单片机——C8051FXXX[M].北京:北京航天航空大学出版社,2002.5. [5] TMS320C6000 Peripherals Reference Guide[B]. Texas Instruments Incorporated, 2002. [6] TMS320C6000 Programmer s Guide[B]. Texas Instruments Incorporated, 2002.
投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机