一种基于SPI的通信方法及SPI主机、SPI从机技术

技术编号:17812672 阅读:119 留言:0更新日期:2018-04-28 05:28
本申请提供了一种基于SPI的通信方法,SPI主机通过改变SS引脚的电平状态,或者通过向从机发送无效数据,告知从机下行数据发送结束。因此,从机和主机之间无需“握手”协商主机向从机发送的数据量,主机和从机的任意一方只需进行两次传输的过程,与现有技术相比,减少了主机和从机交互次数,从而能够提高SPI通信传输的性能。

【技术实现步骤摘要】
一种基于SPI的通信方法及SPI主机、SPI从机
本申请涉及通信领域,尤其涉及一种基于SPI的通信方法及SPI主机、SPI从机。
技术介绍
SPI(SerialPeripheralInterface)是一种串行的外围设备接口,是一种高速的、可全双工通信串行总线接口,具有通信简单、数据传输速率快等优点。如图1所示,SPI采用主从式通信方式,SPI主设备(SPIMaster,简称主机)为SPI通信提供时钟信号,是通信的主动方,SPI从设备(SPISalve,简称从机)是SPI通信过程的被动方,收发过程都由SPI主设备控制。主设备和从设备通过四根线实现物理连接,四根线分别连接主设备和从设备的MISO、MOSI、SS和SCK引脚。通过连接线连接的引脚的功能如下:1)SCK:串行时钟信号,由主设备提供。2)MOSI:主设备数据输出,从设备数据输入。3)MISO:主设备数据输入,从设备数据输出。4)SS(图1中的SS表示低电平有效):从设备使能信号,由主设备控制。当有多个从设备的时候,因为每个从设备上都有一个片选引脚接入到主设备机中,当主设备和某个从设备通信时,将需要将从设备对应的片选引脚电平拉低或者是拉高。目前,因为SPI主设备和SPI从设备之间的通信过程中缺少确认从设备是否接收完主设备发送的数据的应答机制,所以,基于SPI的通信协议,需要SPI主设备和SPI从设备之间进行频繁交互,而导致性能下降。
技术实现思路
本申请提供了一种基于SPI的通信方法及设备,目的在于解决如何提高SPI通信性能的问题。为了实现上述目的,本申请提供了以下技术方案:一种基于SPI的通信方法,应用在SPI主机,所述SPI主机与SPI从机的SS引脚相连,所述方法包括:向所述从机发送下行数据;在发送所述下行数据结束后,改变所述从机的SS引脚的电平,或者,向所述从机发送无效数据。可选的,在所述向所述从机发送无效数据之后,还包括:接收所述从机发送的状态特征码;依据所述状态特征码确定所述从机处于非就绪状态。可选的,在所述依据所述状态特征码确定所述从机处于非就绪状态之后,还包括:继续向所述从机发送所述无效数据。一种基于SPI的通信方法,应用在SPI从机,所述SPI从机与SPI主机的SS引脚相连,所述方法包括:接收所述主机发送的下行数据;在监测到所述SS引脚的电平变化,或者,在接收到无效数据的情况下,结束接收所述下行数据。可选的,在所述接收到无效数据之后,还包括:在所述从机处于非就绪状态的情况下,向所述主机发送状态特征码,所述状态特征码用于指示所述从机处于所述非就绪状态。可选的,所述结束接收所述下行数据包括:处理接收到的所述下行数据;在所述处理接收到的所述下行数据之后,还包括:在完成所述下行数据的处理后,向所述主机发送上行数据。一种SPI主机,所述SPI主机与SPI从机的SS引脚相连,所述SPI主机包括:通信接口,用于向所述从机发送下行数据;控制器,用于在发送所述下行数据结束后,改变所述从机的SS引脚的电平,或者,控制所述通信接口向所述从机发送无效数据。可选的,所述通信接口还用于:在所述向所述从机发送无效数据之后,接收所述从机发送的状态特征码;所述控制器还用于:依据所述状态特征码确定所述从机处于非就绪状态。可选的,所述控制器还用于:在依据所述状态特征码确定所述从机处于非就绪状态之后,控制所述通信接口继续向所述从机发送所述无效数据。一种SPI从机,所述SPI从机与SPI主机的SS引脚相连,所述SPI从机包括:通信接口,用于接收所述主机发送的下行数据;控制器,用于在监测到所述SS引脚的电平变化,或者,在接收到无效数据的情况下,结束接收所述下行数据。可选的,所述控制器还用于:在所述通信接口接收到所述无效数据之后,在所述从机处于非就绪状态的情况下,控制所述通信接口向所述主机发送状态特征码,所述状态特征码用于指示所述从机处于所述非就绪状态。可选的,所述控制器用于结束接收所述下行数据包括:所述控制器具体用于,处理接收到的所述下行数据;所述控制器还用于:在处理接收到的所述下行数据之后,在完成所述下行数据的处理后,控制所述通信接口向所述主机发送上行数据。本申请所述的基于SPI的通信方法,SPI主机通过改变SS引脚的电平状态,或者通过向从机发送无效数据,告知从机下行数据发送结束。因此,从机和主机之间无需“握手”协商主机向从机发送的数据量,主机和从机的任意一方只需进行两次传输的过程,与现有技术相比,减少了主机和从机交互次数,从而能够提高通信传输的性能。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为SPI主机和从机的连接示意图;图2为本申请实施例公开的一种基于SPI的通信方法的流程图;图3为本申请实施例公开的一种基于SPI的通信方法中数据传输次数的示意图;图4为本申请实施例公开的又一种基于SPI的通信方法中数据传输次数的示意图;图5(a)为本申请实施例公开的基于SPI的通信方法中从机传输数据的流程图;图5(b)为本申请实施例公开的基于SPI的通信方法中主机传输数据的流程图;图6为本申请实施例公开的基于SPI的通信方法中MOSI线和MISO线发送数据的对照示意图;图7为本申请实施例公开的SPI主机和SPI从机的结构示意图。具体实施方式图1所示的SPI的通信过程为:主机通过SS线向被选中的从机发送片选信号(预设为高电位或低电位,本实施例中,以低电平为例),从机检测到SS引脚的片选信号后,开始接收主机发送的数据。也就是说,只有SS片选信号为预设的使能信号时,主机对从机的操作才有效,这就使得在同一总线上连接多个SPI设备成为可能。SPI是一种串行通信接口,数据是一位一位的在传输线上传输的。在通信时,由SCK提供时钟脉冲,MOSI和MISO则基于此脉冲完成数据传输。主机通过MOSI线输出数据,在时钟上升沿或下降沿时输出一位数据,从设备在紧接着的下降沿或上升沿读取一位数据,以完成一位数据传输。主机的数据输入也使用同样原理。这样,通过至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。SCK信号线只由主机控制,从设备不能控制信号线。在一个基于SPI的设备中,至少有一个主机。因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出,因此,SPI还是一个全双工的数据通信接口。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,简单高效。本申请实施例公开的基于SPI的通信方法的目的在于,简化主机和从机之间的数据传输流程,从而提高SPI系统的性能。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图2为本申请实施例公开的一种基于SPI的通信方法,包括以下步骤:S201:主机在向选中的从机发送片选信号后,判断从机是否为就本文档来自技高网...
一种基于SPI的通信方法及SPI主机、SPI从机

【技术保护点】
一种基于SPI的通信方法,其特征在于,应用在SPI主机,所述SPI主机与SPI从机的SS引脚相连,所述方法包括:向所述从机发送下行数据;在发送所述下行数据结束后,改变所述从机的SS引脚的电平,或者,向所述从机发送无效数据。

【技术特征摘要】
1.一种基于SPI的通信方法,其特征在于,应用在SPI主机,所述SPI主机与SPI从机的SS引脚相连,所述方法包括:向所述从机发送下行数据;在发送所述下行数据结束后,改变所述从机的SS引脚的电平,或者,向所述从机发送无效数据。2.根据权利要求1所述的方法,其特征在于,在所述向所述从机发送无效数据之后,还包括:接收所述从机发送的状态特征码;依据所述状态特征码确定所述从机处于非就绪状态。3.根据权利要求2所述的方法,其特征在于,在所述依据所述状态特征码确定所述从机处于非就绪状态之后,还包括:继续向所述从机发送所述无效数据。4.一种基于SPI的通信方法,其特征在于,应用在SPI从机,所述SPI从机与SPI主机的SS引脚相连,所述方法包括:接收所述主机发送的下行数据;在监测到所述SS引脚的电平变化,或者,在接收到无效数据的情况下,结束接收所述下行数据。5.根据权利要求4所述的方法,其特征在于,在所述接收到无效数据之后,还包括:在所述从机处于非就绪状态的情况下,向所述主机发送状态特征码,所述状态特征码用于指示所述从机处于所述非就绪状态。6.根据权利要求5所述的方法,其特征在于,所述结束接收所述下行数据包括:处理接收到的所述下行数据;在所述处理接收到的所述下行数据之后,还包括:在完成所述下行数据的处理后,向所述主机发送上行数据。7.一种SPI主机,其特征在于,所述SPI主机与SPI从机的SS引脚相连,所述SPI主机包括:通信接...

【专利技术属性】
技术研发人员:肖佐楠郑茳邓洲匡启和王廷平
申请(专利权)人:苏州国芯科技有限公司
类型:发明
国别省市:江苏,32

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

1