McBSP 与SPI通信的时序与波特率配置分析
2016-03-22陶建中陈振娇
孙 敬,陶建中,陈振娇
(1. 江南大学物联网工程学院,江苏 无锡 214062;2. 中国电子科技集团公司第58研究所,江苏 无锡 214035)
McBSP 与SPI通信的时序与波特率配置分析
孙 敬1,2,陶建中1,2,陈振娇2
(1. 江南大学物联网工程学院,江苏 无锡 214062;2. 中国电子科技集团公司第58研究所,江苏 无锡 214035)
摘 要:为了解决多通道缓冲串行口McBSP与外围设备串行通信过程中出现数据丢失、数据串扰等问题,提高串行通信的稳定性,对数据收发双方的时序及其传输速率进行分析与改进。基于SPI协议设计McBSP与SPI通信的接口,分析了McBSP与SPI的串行通信问题,着重分析了仿真中的时序问题,并给出了波特率的正确配置方法。仿真结果表明,适当的波特率配置可提高串行通信的稳定性与准确性,同时能够满足实际应用需求。
关键词:串行通信;McBSP;SPI协议;波特率
1 引言
近年来,对于McBSP串行通信功能的验证是通信界研究的一个重要课题。为了提高串行通信的稳定性,已经提出了很多改进方法,如使用过采样的方法将同步串口模拟成异步串口进行通信[1~2];或者针对各领域不同的应用需求,选择不同的串行协议等[3~5]。由此可知,已提出的现有改进方法中,既有对传输所用接口的改进,也有对串行协议的选择处理,两种不同的改进思路对提高串行通信的稳定性有很明显的效果[5~7]。McBSP是在标准串行接口的基础之上对功能进行扩展,因此具有与标准串行接口相同的基本功能,但是McBSP串口不支持通用异步收发适配器UART(Universal Asynchronous Receiver/ Transmitter)。为此,本文基于SPI协议以McBSP与SPI串行通信为例,对McBSP串行通信功能进行仿真与验证。
2 串行通信波特率的分析
同型设备之间进行串行通信,所有可用的波特率值都能进行通信,但异型设备仅在某些波特率值能通信。基于SPI协议实现McBSP与外围设备的串行通信,关键在于两设备波特率的设置问题。
理想状况下,发送端波特率fa和接收端的波特率fb保持一致时,接收端的采样点正好对应于每个接收位的中间段,如图1所示。当接收端的波特率与发送端不一致时,接收端的采样点就会相对接收位的中间段有一偏移量,这个偏移量与收发双方波特率的差值有关。当收发双方的波特率差值过大时,使接收位上的偏移量足够大,使得数据接收端出现多收、漏收错误[8]。
当接收端的比特率大于发送端的波特率(即fb>fa)时,接收端的采样相对接收位的中间段有向左的偏移量,随着接收位数的增多,会在某个接收位上被连续采样两次,从而产生重码错误,如图2所示。当接收端的比特率小于发送端的波特率(即fb 图3 fa> fb(虚线为fa=fb的采样点) 通过分析,要使一串行帧被正确接收,该接收位上的采样点相对于中间段的偏移量最大不超过接收位的半个数据位。实现McBSP与外围设备正常的串行通信,对收发双方的波特率设置有严格要求。 图4 McBSP作SPI从设备的连接图 3.1硬件接口设计 本文选择SPI作主设备,提供时钟和设备使能[9];McBSP作从设备,接收时钟和设备使能[10~11]。McBSP的外部引脚包括串行数据发送引脚DX、串行数据接收引脚DR、发送时钟引脚CLKX、接收时钟引脚CLKR、发送帧同步引脚FSX、接收帧同步引脚FSR及外部提供的采样时钟引脚CLKG[12]。SPI模块有4个外部引脚:SPI从输出/主输入引脚(SOMl)、SPI从输入/主输出(SIMO)、SPI 串行时钟引脚(SPICLK)以及SPI从发送使能引脚(SPISTE)。 当McBSP配置为从设备时,必须由主设备从外部产生时钟和从使能信号。因此,必须将FSX和CLKX设置为输入引脚,DX作为MOSI信号,而MISO作为DR信号。McBSP配置为SPI从设备时的接口图如图4所示。 SPI模块有主模式和从模式2种工作方式,125种可编程波特率和1~16个可编程数据长度[12~14]。根据MOSI及SOMI上的数据在SCK的极性和相位,SPI可分为4种时钟模式[15]:无相位延迟的下降沿、有相位延迟的下降沿、无相位延迟的上升沿以及有相位延迟的上升沿。 3.2McBSP与SPI模块配置 在McBSP与SPI的通信过程中,CLKX信号由主设备SPI产生,使能McBSP内部的采样率发生器,利用其内部时钟对输入的CLKX和FSX信号进行同步处理,CPU时钟作为采样率发生器的时钟源[12]。McBSP模块参数配置可分为如下3个步骤: (1)设置McBSP处于复位状态; (2)配置McBSP各控制寄存器参数; (3)待McBSP复位状态结束, 使能McBSP的采样率生成器和接收寄存器。 详细的McBSP相关寄存器配置如表1所示。 表1 McBSP相关字段的设置 对于所有SPI 受控模式,CLKX必须至少为8个CLKG周期,即McBSP的接收速率至少是SPI发送速率的8倍,才能满足McBSP与SPI串行通信的正确性。通过设置CLKSM=1,CLKGDV=1(CLKG为LSPCLK/2),借助于最大LSPCLK速度, CLKX可获得最大的传输速率,即LSPCLK/16,从而使SPI的波特率也尽可能大,所以SPI波特率寄存器的值必须不小于0F[15]。 SPI有125 种可编程波特率,SPI波特率的计算公式如下: 当SPIBRR为 0、1或2时,SPI波特率= LSPCLK/4; 当SPIBRR=3~127时,SPI波特率=LSPCLK/ (SPIBRR+1)。 式中,LSPCLK是设备的低速外围时钟频率,SPIBRR是主SPI设备中的SPIBRR的值。SPI配置的部分汇编代码如下: …… MOVLXARO, #7840; SPICCR(设置SPI的时钟极性,使能SPI发送和回送模式,字长16位) MOV*, #0X9F MOVLXARO,#7841; SPICTL(设置SPI作主设备及SPI的相位极性,使能中断模式) MOV*, #0X17 …… 在McBSP与SPI通信的仿真过程中,参照上节的参数配置,设置McBSP的最大分频速率,并分别配置SPI波特率寄存器SPIBRR=10和SPIBRR=0F,仿真的结果波形如图5、图6所示。 图5 McBSP_CLKGDV=1,SPI_SPIBRR=10 由图5所示,McBSP数据接收端出现数据丢失的情况,而SPI数据接收端正确接收数据,说明SPI数据发送端正确。经过进一步分析得出,McBSP作为SPI的从设备,时钟由SPI提供,在发送时钟经过GPIO口有同步设置,导致McBSP的系统建立时间不够。因此,数据接收端会出现数据丢失的情况。 由图5、图6对比可得,当配置SPIBRR=0F时,McBSP正确接收数据;当配置SPIBRR=10时,McBSP接收数据丢失。数据丢失是因为McBSP的时序有错误,McBSP时钟由SPI提供,SPI的时钟取决于其波特率的设置,即SPI的波特率的奇偶配置对接收时序有影响。 当(SPIBRR+1)的值为偶数时,SPICLK的输出波形是占空比为50%的方波。当(SPIBRR+1)的值为奇数且SPIBRR大于3时,SPI就变为不对称。当时钟极性为0时,SPICLK高电平时间比低电平时间多了一个CLKOUT,导致时序出现错误,如图7所示。 图7 (SPIBRR+1)的值为奇数且SPIBRR>3,CLOCK POLARITY=0 针对McBSP数据接收端出现数据丢失的情况,将GPIO口时钟信号出错的地方延迟1个周期,或者将McBSP的时钟信号延迟1个周期,输出结果正确。 根据上述分析,配置不同的McBSP与SPI的通信波特率,相应的仿真结果如图8、图9、图10所示。 由图9可以看出,在McBSP_CLKGDV=1、SPI_SPIBRR=0E的配置下,McBSP最后一个接收位被采样多次,多接收了数据0000。在该配置下,McBSP接收端的波特率大于发送端SPI波特率的8倍,采样点就会相对于每一接收位的中间有一个向左的偏移量,若在某个接收位上,偏移量恰好等于或大于接收位的半位,该接收位就会被采样多次。 由图10可以看出,在McBSP_CLKGDV=1、SPI_SPIBRR=15的配置下,McBSP接收位上采样次数减少,数据接收漏掉了0055。在该配置下,McBSP接收端的波特率小于发送端SPI波特率的8倍,采样点就会相对于每一接收位的中间有一向右的偏移量,若在某一接收位上,偏移量正好大于或等于一接收位的半位,该接收位就不会被采样,从而产生漏码错误。 图8 McBSP_CLKGDV=1,SPI_SPIBRR=0F 图9 McBSP_CLKGDV=1,SPI_SPIBRR=0E 图10 McBSP_CLKGDV=1,SPI_SPIBRR=15 表2 数据发送端SPI与接收端McBSP的波特率配置 由表2可知,配置McBSP的接受速率CLKGDV,借助于最大LSPCLK速度,CLKX可获得最大的传输速率,从而使SPI的波特率也尽可能大,在McBSP_CLKGDV=1、SPI_SPIBRR=0E的配置下,McBSP能够正确接受SPI发送的所有数据。在基于SPI协议McBSP的通信应用的系统中,波特率起着至关重要的作用。当McBSP串行通信出现数据丢失、数据串扰等情况时,优先考虑波特率对其的影响。 综上所述,在基于SPI协议的McBSP串行通信中,适当地调整波特率可提高该通信的正确性与稳定性。本文针对数据接收端出现数据丢失、数据串扰等情况时,在满足收发双方的时序要求下,主设备波特率的值优先考虑偶数配置。由于本实验的数据有限,在其他串行通信协议的应用下该结论是否适用,还需进一步探讨与实验验证。 参考文献: [1] 陈伊卿. 基于TMS320C6455McBSP串口的数据传输的设计与实现[J]. 计算机光盘软件与应用,2013,03: 51-53. [2] 杨剑,贾冲,杨吉斌. 基于DSP同步串口的异步串行通信接口的设计与实现[J]. 电子技术应用,2006,01: 112-114,117. [3] 宋兵跃,吴军辉,黄斌. 单片机的高效串行通信研究[J].单片机与嵌入式系统应用,2010,01: 27-29. [4] 毛建权,季晓勇. 基于SPI的DSP与MCU双向通信的设计与实现[J]. 科学技术与工程,2007,15: 3911-3913,3918. [5] 江贤志,刘华章,张教育,饶伎云,孙磊. 基于C8051F020单片机的RS485串行通信设计[J]. 电子测量技术,2014,03: 121-124. [6] 朱磊,纪爱燕,章为川. McBSP与常用串行接口通信兼容方案设计[J]. 电子测量技术,2011,05: 111-115. [7] 张云昌,张令弥,赵建洋. 基于McBSP的TMS320C6713异步串行通信的实现[J]. 电子科技,2009,07: 55-58. [8] 常江,胡丹,常亮. 串行通信中波特率的设置与误差分析[J]. 四川工业学院学报,2004,02: 22-25. [9] 高峰,王学通. McBSP技术在数据传输中的应用[J]. 电子设计工程,2011,08: 133-136. [10] 陈伊卿. 基于TMS320C6455 McBSP串口的数据传输的设计与实现[J]. 计算机光盘软件与应用,2013,03: 51-53. [11] 张伟,熊康碧. TMS320C6713中利用McBSP实现和PC机的串口通信[J]. 计算机与数字工程,2010,06: 157-160. [12] 刘金河,于刚,陆锋. 基于TMS320C6713DSK McBSP输入输出通信的软件设计[J]. 现代电子技术,2008,01: 134-136. [13] 屈姗姗,夏威,何子述. 基于TMS320DM6437的McBSP与EDMA实现串口通信[J]. 电子设计工程,2010,12: 17-20. [14] 关星,王伟力,朱景其,陈廷. 基于TMS320F2812多通道缓冲串口高速实时数据采集接口设计[J]. 自动化技术与应用,2007,01:125-128. [15] 李棡宇,杨家玮. 用SPI总线实现DSP和MCU之间的高速通信[J]. 电子元器件应用,2006,11:28-30. 孙 敬(1990—),女,安徽宿州人,江南大学硕士研究生,研究方向为高性能DSP的电路设计与研究。 电路设计 The Functional Verification and Simulation of McBSP Communication Based on SPI Protocol SUN Jing1,2, TAO Jianzhong1,2, CHEN Zhenjiao2 Abstract:In order to dealing with the issues, that data loss and crosstalk in the serial communication between McBSP and peripheral equipments. The researches and improvements on the clock and rate of both sides are done to increase the accuracy of McBSP serial communication. Based on SPI protocol, designing the communication interface and simulating the serial communication between the McBSP and SPI are carried out. Though analyzing the clock in the experiment, the correct setting of the baud rate is obtained in the paper. Experiment and analysis demonstrate that proper setting of the master’s baud rate can increase the accuracy of McBSP serial communication, which encouraging the meaningful and useful researches. Keywords:serial communication; McBSP; SPI protool; baud rate 作者简介: 收稿日期:2015-8-30 中图分类号:TN402 文献标识码:A 文章编号:1681-1070(2016)01-0016-053 McBSP与SPI接口的设计
4 仿真与分析
5 结论
(1. Jiangnan University, Wuxi 214062, China; 2. China Electronics Technology Group Corporation No.58 Research Institute, Wuxi 214035,China)