一种实现双MCU数据传输的SPI通信方法技术

技术编号:18809865 阅读:39 留言:0更新日期:2018-09-01 09:23
本发明专利技术公开一种实现双MCU数据传输的SPI通信方法,在传统SPI通信四线制基础上,主MCU通过增设的应答信号线ACK,获取从MCU发来的ACK应答信号,若ACK应答信号为正确ACK应答信号,则启动下一帧SPI数据包的传输,否则,则重新发送当前帧SPI数据包至从MCU;当主MCU通信不稳定时,主MCU通过增设的复位信号线RST发送复位信号至从MCU,以实现对主MCU和从MCU的复位;当从MCU通信不稳定时,从MCU通过增设的异常反馈信号线ABN发送报警信号至主MCU后,主MCU根据接收的报警信号,经增设的复位信号线RST发送复位信号至从MCU,以实现对主MCU和从MCU的软复位。

A SPI communication method for dual MCU data transmission

The invention discloses a SPI communication method for realizing data transmission of dual MCUs. On the basis of traditional SPI communication four-wire system, the main MCU obtains the ACK response signal from the MCU by adding an ACK response signal line. If the ACK response signal is the correct ACK response signal, the transmission of the next SPI packet is started, otherwise, the transmission of the next SPI packet is re-transmitted. The current frame SPI packet is sent to the slave MCU; when the communication between the master MCU and the slave MCU is unstable, the master MCU sends the reset signal to the slave MCU through the additional reset signal line RST to realize the reset of the master MCU and the slave MCU; when the communication between the slave MCU is unstable, the slave MCU sends the alarm signal to the master MCU through the additional abnormal feedback signal line ABN. The alarm signal is sent to the slave MCU by the additional reset signal line RST to realize the soft reset of the master MCU and the slave MCU.

【技术实现步骤摘要】
一种实现双MCU数据传输的SPI通信方法
本专利技术涉及数据通信领域,尤其涉及一种实现双MCU数据传输的SPI通信方法。
技术介绍
机器人控制系统的主要任务是控制机器人在工作空间中的运动位置、姿态和轨迹、操作顺序及动作的时间等项。机器人的运动控制系统是机器人的重要组成部分。随着机器人产业的快速发展,分散控制方式应用的越来越普遍,这种方式实时性好,多个MCU协同工作,易于实现高速、高精度控制,扩展方便,可实现智能控制。SPI(SerialPeripheralInterface,串行外设接口)是一种全双工的高速同步通信总线,通信协议灵活,可控度高,而且很多MCU芯片支持带DMA传输方式的硬件SPI接口,使SPI通信变得更加简便,占用的资源更少,非常适用于机器人控制系统中多个MCU之间的高速通信。传统的SPI通信由一个主设备和一个从设备组成,使用四条线:串行时钟信号SCLK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和从机片选信号线CS,并没有一个有效的通信协议确保其通信的稳定性。
技术实现思路
本专利技术的目的是提供一种实现双MCU数据传输的SPI通信方法。该SPI通信方法中,增加了通过应答信号线ACK、复位信号线RST以及异常反馈信号线ABN的信号确认机制,以保证主MCU和从MCU之间的正常数据通信。为实现上述专利技术目的,本专利技术提供以下技术方案:一种实现双MCU数据传输的SPI通信方法,包括采用MOSI、MISO、SCLK以及CS四条连接线,实现主MCU与从MCU之间的通信,所述SPI通信方法还包括:主MCU通过增设的应答信号线ACK,获取从MCU发来的ACK应答信号,若ACK应答信号为正确ACK应答信号,则启动下一帧SPI数据包的传输,若ACK应答信号为错误ACK应答信号,则重新发送当前帧SPI数据包至从MCU;当主MCU通信不稳定时,主MCU通过增设的复位信号线RST发送复位信号至从MCU,以实现对主MCU和从MCU的复位,重新开始传输SPI数据包;当从MCU通信不稳定时,从MCU通过增设的异常反馈信号线ABN发送报警信号至主MCU后,主MCU根据接收的报警信号,经增设的复位信号线RST发送复位信号至从MCU,以实现对主MCU和从MCU的软复位,重新开始传输SPI数据包。在该SPI通信方法中,对主MCU和从MCU均对每次接收的数据进行CRC校验,从MCU根据校验结果生成相应的ACK应答信号,并将其发送给主MCU,主MCU收到正确ACK应答信号后,才进行下一帧SPI数据包的传输,以确保每帧数据包的稳定,同时,主MCU和从MCU均统计CRC检验结果情况,进而确定主MCU通信和从MCU的通信稳定性,在主MCU通信不稳定时,主MCU及时通过发送复位信号的形式,实现对主MCU和从MCU的复位,在从MCU通信不稳定时,从MCU及时通过反馈报警信号,主MCU根据反馈信号仍然通过发送复位信号的形式,实现对主MCU和从MCU的软复位,以此提高主MCU和从MCU之间数据传输的稳定性。其中,所述SPI通信方法中,对于每次数据传输,从MCU对接收的SPI数据包排序并做CRC校验,若CRC校验正确,则生成正确ACK应答信号,若CRC校验错误,则生成错误ACK应答信号,然后将正确ACK应答信号或错误ACK应答信号经应答信号线ACK发送至主MCU。其中,判断主MCU通信不稳定的过程为:每次数据传输中,主MCU对接收的SPI数据包排序并做CRC校验,若CRC校验错误,主MCU发送停止信号至从MCU,结束本次数据传输;若以N次作为一个传输周期,在一个传输周期内,主MCU出现CRC校验错误的次数超过1/3*N,则判定主MCU通信不稳定。判断从MCU通信不稳定的过程为:若以N次作为一个传输周期,在一个传输周期内,从MCU出现CRC校验错误的次数超过1/3*N,则判定从MCU通信不稳定。一般情况下,以10次作为一个传输周期,若传输周期太小,会影响双MCU之间数据传输的效率,传输周期太大,会影响双MCU之间数据传输的稳定性,因此,以10次作为一个传输周期是最优的选择。具体地,SPI数据包以一个字作为最小传输单元,每个SPI数据包包括帧头标识、数据长度、通信数据序列以及校验值。若SPI数据包为主MCU发送的数据包,则主MCU根据帧头标识,对通信数据进行CRC计算,生成校验值,该校验值随数据包一起发送至从MCU,以便从MCU对接收的通信数据进行校验。当从MCU接收到SPI数据包后,根据帧头标识,对接收的通信数据进行CRC计算生成校验值,若该校验值与SPI数据包中包含的校验值一致,则表明CRC校验正确,否则,校验不正确。其中,主MCU的SPI数据包和从MCU的SPI数据包均分为常规模式和调试模式,主MCU通过更改SPI数据包类型参数的方式,实现SPI数据包模式的切换。常规模式和调试模式中的帧头标识和通信数据序列均不相同。具体地,主MCU和从MCU的发送数组都有两组,采用双缓冲发送模式。当数据包类型等于0时,即为常规模式,主MCU和从MCU收发常规数据包;如果数据包类型为1,即为调试模式,此时,主MCU和从MCU双向收发调试数据包。MCU上电时,数据包默认为常规模式。其中,主MCU和从MCU均采用DMA方式实现数据的读写。其中,在所述SPI通信方法中;主MCU和从MCU的MOSI、MISO、SCLK以及CS四条连接线分别经过差分收发器转换成低压差分信令(LVDS)后进行连接。这样不但延长了SPI通信距离,而且增强了抗干扰能力。其中,所述CRC校验采用CRC16-CCITT的校验方式:x16+x12+x5+1。与现有技术相比,本专利技术具有的有益效果为:本专利技术通过在主MCU和从MCU基于SPI总线进行数据传输时,设置应答信号线ACK、复位信号线RST和异常反馈信号线ABN,采用DMA方式来实现全双工高速数据搬移,实现方法简单易行,成本较低廉,且本专利技术的提出的信号确认机制提升了数据传输的可靠性。附图说明图1是实施例提供的双MCU数据传输系统的整体架构图;图2是实施例提供的双MCU数据传输系统的连接框图;图3是实施例提供的SPI主从设备的差分延长示意图;图4是实施例提供的SPI主设备的数据收发流程图;图5是实施例提供的SPI从设备的数据收发流程图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本专利技术进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本专利技术,并不限定本专利技术的保护范围。图1是实施例提供的用于机器人控制器的双MCU数据传输系统的整体架构图。如图1所示,该系统包括控制器、驱动器、电机以及编码器等。控制器的MCU使用32位实时DSP芯片TMS320F28335,其工作频率高达150MHz,作为SPI主设备,同时负责数据通信、电机控制算法和外围功能的处理。具体地,控制器的MCU作为SPI主设备用到的功能单元除了硬件SPI接口,还包括定时器单元(Timer)、直接内存访问控制器(DMA)以及外部存储芯片(EEPROM),控制器的MCU通过I2C方式读写EEPROM。驱动器的MCU采用32位ARM处理器STM32F103,其内部资源丰富,功能强大,用作SPI从设备,同时用于驱动电机的本文档来自技高网...

【技术保护点】
1.一种实现双MCU数据传输的SPI通信方法,包括采用MOSI、MISO、SCLK以及CS四条连接线,实现主MCU与从MCU之间的通信,其特征在于,所述SPI通信方法还包括:主MCU通过增设的应答信号线ACK,获取从MCU发来的ACK应答信号,若ACK应答信号为正确ACK应答信号,则启动下一帧SPI数据包的传输,若ACK应答信号为错误ACK应答信号,则重新发送当前帧SPI数据包至从MCU;当主MCU通信不稳定时,主MCU通过增设的复位信号线RST发送复位信号至从MCU,以实现对主MCU和从MCU的软复位,重新开始传输SPI数据包;当从MCU通信不稳定时,从MCU通过增设的异常反馈信号线ABN发送报警信号至主MCU后,主MCU根据接收的报警信号,经增设的复位信号线RST发送复位信号至从MCU,以实现对主MCU和从MCU的软复位,重新开始传输SPI数据包。

【技术特征摘要】
1.一种实现双MCU数据传输的SPI通信方法,包括采用MOSI、MISO、SCLK以及CS四条连接线,实现主MCU与从MCU之间的通信,其特征在于,所述SPI通信方法还包括:主MCU通过增设的应答信号线ACK,获取从MCU发来的ACK应答信号,若ACK应答信号为正确ACK应答信号,则启动下一帧SPI数据包的传输,若ACK应答信号为错误ACK应答信号,则重新发送当前帧SPI数据包至从MCU;当主MCU通信不稳定时,主MCU通过增设的复位信号线RST发送复位信号至从MCU,以实现对主MCU和从MCU的软复位,重新开始传输SPI数据包;当从MCU通信不稳定时,从MCU通过增设的异常反馈信号线ABN发送报警信号至主MCU后,主MCU根据接收的报警信号,经增设的复位信号线RST发送复位信号至从MCU,以实现对主MCU和从MCU的软复位,重新开始传输SPI数据包。2.如权利要求1所述的实现双MCU数据传输的SPI通信方法,其特征在于,所述SPI通信方法中,对于每次数据传输,从MCU对接收的SPI数据包排序并做CRC校验,若CRC校验正确,则生成正确ACK应答信号,若CRC校验错误,则生成错误ACK应答信号,然后将正确ACK应答信号或错误ACK应答信号经应答信号线ACK发送至主MCU。3.如权利要求1所述的实现双MCU数据传输的SPI通信方法,其特征在于,判断主MCU通信不稳定的过程为:每次数据传输中,主MCU对接收的SPI数据包排序并做CRC校验,若CRC校验错误,主MCU发送停止信...

【专利技术属性】
技术研发人员:宋孙浩张驰李荣舒鑫东陈庆盈
申请(专利权)人:中国科学院宁波材料技术与工程研究所
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1