一种SPI全双工的通信方法、装置及系统制造方法及图纸

技术编号:22308145 阅读:22 留言:0更新日期:2019-10-16 08:15
本发明专利技术公开了一种SPI全双工的通信方法、装置及系统,仅需SPI从器件设置中断源,SPI主器件在需要发送主器件数据时关闭接收中断,SPI从器件在需要发送从器件数据时将中断信号由低电平转为高电平,SPI主器件和SPI从器件彼此之间通过在接收到有效数据时同步向对方发送标识数据来告知对方已经接收到有效数据,在发送有效数据时如果没有接收到对方同步发送的标识数据则得到对方没有接收到有效数据的判断,从而在节省了主器件中断源的情况下,实现了原有SPI全双工通信的过程,节约了通信资源,进而提高了传输效率和速率,且实现了现有技术中的SPI全双工通信没有的应答机制,提高了数据可靠性。

A SPI full duplex communication method, device and system

【技术实现步骤摘要】
一种SPI全双工的通信方法、装置及系统
本专利技术涉及通信
,特别是涉及一种SPI全双工的通信方法、装置及系统。
技术介绍
SPI(SerialPeripheralInterface,串行外设接口),是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,如今越来越多的芯片集成了这种通信协议。SPI的通信以主从方式工作,这种模式通常有一个主器件和一个或多个从器件,需要至少四根线,事实上三根也可以(单向传输时),也是所有基于SPI的器件共有的,它们是MISO(主器件输入从器件输出)、MOSI(主器件输出从器件输入)、SCLK(同步时钟)、CS(片选信号)。然而,基于现有的SPI全双工通信方式,主从器件都需要设置中断源,不仅操作复杂,还占用了较多的资源,影响传输速率和效率。如何减少SPI全双工通信中的中断任务对通信资源的占用,从而提高传输速率和效率,是本领域技术人员需要解决的技术问题。
技术实现思路
本专利技术的目的是提供一种SPI全双工的通信方法、装置及系统,用于减少SPI全双工通信中的中断任务对通信资源的占用,从而提高传输速率和效率。为解决上述技术问题,本专利技术提供一种SPI全双工的通信方法,基于SPI主器件,包括:当需要向SPI从器件发送主器件数据时,关闭接收中断;通过MOSI信号线向所述SPI从器件发送所述主器件数据直至主器件发送缓冲区为空,在发送所述主器件数据的同时判断是否同步接收到所述SPI从器件通过MISO信号线发送的标识数据;如果否,则确定所述SPI从器件未接收到所述主器件数据,并停止发送所述主器件数据。可选的,所述当需要向SPI从器件发送主器件数据时,关闭接收中断,具体包括:实时扫描所述主器件发送缓冲区;当所述主器件发送缓冲区有数据时,则关闭所述接收中断。可选的,还包括:当所述主器件发送缓冲区为空时,开启所述接收中断;当检测到与所述SPI从器件对应的中断信号为高电平时,向所述SPI从器件发送所述标识数据,在发送所述标识数据的同时同步接收所述SPI从器件发送的从器件数据,并将所述从器件数据存于主器件接收缓冲区,直至所述中断信号转为低电平。可选的,还包括:当所述主器件接收缓冲区已满时,停止向所述SPI从器件发送标识数据以停止接收所述从器件数据。可选的,还包括:判断所述中断信号是否为低电平;如果是,则确定所述主器件接收缓冲区中的数据为所述标识数据,删除所述主器件接收缓冲区中的所述标识数据;如果否,则确定所述主器件接受缓冲区中的数据不为所述标识数据,按预设协议分析处理所述主器件接受缓冲区中的数据。为解决上述技术问题,本专利技术还提供一种SPI全双工的通信装置,包括:接收控制单元,用于当需要向SPI从器件发送主器件数据时,关闭接收中断;主器件通信交互单元,用于通过MOSI信号线向所述SPI从器件发送所述主器件数据直至主器件发送缓冲区为空,在发送所述主器件数据的同时判断是否同步接收到所述SPI从器件通过MISO信号线发送的标识数据;如果否,则确定所述SPI从器件未接收到所述主器件数据,并停止发送所述主器件数据。为解决上述技术问题,本专利技术还提供一种SPI全双工的通信方法,基于SPI从器件,包括:当需要向SPI主器件发送从器件数据时,将中断信号由低电平转为高电平;通过MISO信号线向所述SPI主器件发送所述从器件数据直至从器件发送缓冲区为空,在发送所述从器件数据的同时判断是否同步接收到所述SPI主器件通过MOSI信号线发送的标识数据;如果否,则确定所述SPI主器件未接收到所述从器件数据,并停止发送所述从器件数据。为解决上述技术问题,本专利技术还提供一种SPI全双工的通信装置,包括:发送控制单元,用于当需要向SPI主器件发送从器件数据时,将中断信号由低电平转为高电平;从器件通信交互单元,用于通过MISO信号线向所述SPI主器件发送所述从器件数据直至从器件发送缓冲区为空,在发送所述从器件数据的同时判断是否同步接收到所述SPI主器件通过MOSI信号线发送的标识数据;如果否,则确定所述SPI主器件未接收到所述从器件数据,并停止发送所述从器件数据。为解决上述技术问题,本专利技术还提供一种SPI全双工的通信方法,包括:SPI主器件向SPI从器件发送主器件数据时,关闭接收中断,通过MOSI信号线向所述SPI从器件发送所述主器件数据直至主器件发送缓冲区为空,在发送所述主器件数据的同时判断是否同步接收到所述SPI从器件通过MISO信号线发送的标识数据;如果否,则确定所述SPI从器件未接收到所述主器件数据,并停止发送所述主器件数据;所述SPI从器件向所述SPI主器件发送从器件数据时,将中断信号由低电平转为高电平;通过所述MISO信号线向所述SPI主器件发送所述从器件数据直至从器件发送缓冲区为空,在发送所述从器件数据的同时判断是否同步接收到所述SPI主器件通过所述MOSI信号线发送的标识数据;如果否,则确定所述SPI主器件未接收到所述从器件数据,并停止发送所述从器件数据。为解决上述技术问题,本专利技术还提供一种SPI全双工的通信系统,包括通过SPI总线连接的SPI主器件和SPI从器件;其中,所述SPI主器件用于向SPI从器件发送主器件数据时,关闭接收中断,通过MOSI信号线向所述SPI从器件发送所述主器件数据直至主器件发送缓冲区为空,在发送所述主器件数据的同时判断是否同步接收到所述SPI从器件通过MISO信号线发送的标识数据;如果否,则确定所述SPI从器件未接收到所述主器件数据,并停止发送所述主器件数据;所述SPI从器件用于向所述SPI主器件发送从器件数据时,将中断信号由低电平转为高电平;通过所述MISO信号线向所述SPI主器件发送所述从器件数据直至从器件发送缓冲区为空,在发送所述从器件数据的同时判断是否同步接收到所述SPI主器件通过所述MOSI信号线发送的标识数据;如果否,则确定所述SPI主器件未接收到所述从器件数据,并停止发送所述从器件数据。本专利技术所提供的SPI全双工的通信方法、装置及系统,仅需SPI从器件设置中断源,SPI主器件在需要发送主器件数据时关闭接收中断,SPI从器件在需要发送从器件数据时将中断信号由低电平转为高电平,SPI主器件和SPI从器件彼此之间通过在接收到有效数据时同步向对方发送标识数据来告知对方已经接收到有效数据,在发送有效数据时如果没有接收到对方同步发送的标识数据则得到对方没有接收到有效数据的判断,从而在节省了主器件中断源的情况下,实现了原有SPI全双工通信的过程,节约了通信资源,进而提高了传输效率和速率,且实现了现有技术中的SPI全双工通信没有的应答机制,提高了数据可靠性。附图说明为了更清楚的说明本专利技术实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的第一种SPI全双工的通信方法的流程图;图2为本专利技术实施例提供的第一种SPI全双工的通信时序图;图3为本专利技术实施例提供的第二种SPI全双工的通信方法的流程图;图本文档来自技高网...

【技术保护点】
1.一种SPI全双工的通信方法,其特征在于,基于SPI主器件,包括:当需要向SPI从器件发送主器件数据时,关闭接收中断;通过MOSI信号线向所述SPI从器件发送所述主器件数据直至主器件发送缓冲区为空,在发送所述主器件数据的同时判断是否同步接收到所述SPI从器件通过MISO信号线发送的标识数据;如果否,则确定所述SPI从器件未接收到所述主器件数据,并停止发送所述主器件数据。

【技术特征摘要】
1.一种SPI全双工的通信方法,其特征在于,基于SPI主器件,包括:当需要向SPI从器件发送主器件数据时,关闭接收中断;通过MOSI信号线向所述SPI从器件发送所述主器件数据直至主器件发送缓冲区为空,在发送所述主器件数据的同时判断是否同步接收到所述SPI从器件通过MISO信号线发送的标识数据;如果否,则确定所述SPI从器件未接收到所述主器件数据,并停止发送所述主器件数据。2.根据权利要求1所述的通信方法,其特征在于,所述当需要向SPI从器件发送主器件数据时,关闭接收中断,具体包括:实时扫描所述主器件发送缓冲区;当所述主器件发送缓冲区有数据时,则关闭所述接收中断。3.根据权利要求1所述的通信方法,其特征在于,还包括:当所述主器件发送缓冲区为空时,开启所述接收中断;当检测到与所述SPI从器件对应的中断信号为高电平时,向所述SPI从器件发送所述标识数据,在发送所述标识数据的同时同步接收所述SPI从器件发送的从器件数据,并将所述从器件数据存于主器件接收缓冲区,直至所述中断信号转为低电平。4.根据权利要求3所述的通信方法,其特征在于,还包括:当所述主器件接收缓冲区已满时,停止向所述SPI从器件发送所述标识数据以停止接收所述从器件数据。5.根据权利要求3所述的通信方法,其特征在于,还包括:判断所述中断信号是否为低电平;如果是,则确定所述主器件接收缓冲区中的数据为所述标识数据,删除所述主器件接收缓冲区中的所述标识数据;如果否,则确定所述主器件接受缓冲区中的数据不为所述标识数据,按预设协议分析处理所述主器件接受缓冲区中的数据。6.一种SPI全双工的通信装置,其特征在于,包括:接收控制单元,用于当需要向SPI从器件发送主器件数据时,关闭接收中断;主器件通信交互单元,用于通过MOSI信号线向所述SPI从器件发送所述主器件数据直至主器件发送缓冲区为空,在发送所述主器件数据的同时判断是否同步接收到所述SPI从器件通过MISO信号线发送的标识数据;如果否,则确定所述SPI从器件未接收到所述主器件数据,并停止发送所述主器件数据。7.一种SPI全双工的通信方法,其特征在于,基于SPI从器件,包括:当需要向SPI主器件发送从器件数据时,将中断信号由低电平转为高电平;通过MISO信号线向所述SPI主器件发送所述从器件数据直至从器件发送缓冲区为空,在发送所述从器件数据的同时判断是否同步接收到所述SPI主器件...

【专利技术属性】
技术研发人员:索思亮简淦杨蔡田田习伟匡晓云姚浩陶文伟张文哲
申请(专利权)人:南方电网科学研究院有限责任公司中国南方电网有限责任公司
类型:发明
国别省市:广东,44

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

1