CN110334046A - 一种spi全双工的通信方法、装置及系统 - Google Patents

一种spi全双工的通信方法、装置及系统 Download PDF

Info

Publication number
CN110334046A
CN110334046A CN201910625154.2A CN201910625154A CN110334046A CN 110334046 A CN110334046 A CN 110334046A CN 201910625154 A CN201910625154 A CN 201910625154A CN 110334046 A CN110334046 A CN 110334046A
Authority
CN
China
Prior art keywords
spi
data
main device
main
receive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910625154.2A
Other languages
English (en)
Inventor
索思亮
简淦杨
蔡田田
习伟
匡晓云
姚浩
陶文伟
张文哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Southern Power Grid Co Ltd
Research Institute of Southern Power Grid Co Ltd
Original Assignee
China Southern Power Grid Co Ltd
Research Institute of Southern Power Grid Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Southern Power Grid Co Ltd, Research Institute of Southern Power Grid Co Ltd filed Critical China Southern Power Grid Co Ltd
Priority to CN201910625154.2A priority Critical patent/CN110334046A/zh
Publication of CN110334046A publication Critical patent/CN110334046A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/14Two-way operation using the same type of signal, i.e. duplex

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bidirectional Digital Transmission (AREA)

Abstract

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

Description

一种SPI全双工的通信方法、装置及系统
技术领域
本发明涉及通信技术领域,特别是涉及一种SPI全双工的通信方法、装置及系统。
背景技术
SPI(Serial Peripheral Interface,串行外设接口),是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为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全双工的通信方法的流程图;
图4为本发明实施例提供的第二种SPI全双工的通信时序图;
图5为本发明实施例提供的第三种SPI全双工的通信方法的流程图;
图6为本发明实施例提供的第三种SPI全双工的通信时序图;
图7为本发明实施例提供的一种SPI全双工的通信装置的结构示意图;
图8为本发明实施例提供的另一种SPI全双工的通信装置的结构示意图。
具体实施方式
本发明的核心是提供一种SPI全双工的通信方法、装置及系统,用于减少SPI全双工通信中的中断任务对通信资源的占用,从而提高传输速率和效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的第一种SPI全双工的通信方法的流程图;图2为本发明实施例提供的第一种SPI全双工的通信时序图。
如图1所示,基于SPI主器件,本发明实施例提供的SPI全双工的通信方法包括:
S101:当需要向SPI从器件发送主器件数据时,关闭接收中断。
根据SPI通信的特点包括三种数据传输情况:SPI主器件需要向SPI从器件发送主器件数据而SPI从器件无数据;SPI主器件需要向SPI从器件发送主器件数据而SPI从器件有数据;SPI从器件向SPI主器件发送从器件数据。
本发明实施例首先对SPI主器件需要向SPI从器件发送主器件数据而SPI从器件无数据的情况进行说明。
如图2所示,当需要与SPI从器件进行通信时,SPI主器件通过片选信号CS选中SPI从器件。
SPI主器件在上电后一直处于SPI中断接收状态,当SPI主器件向SPI从器件发送数据时,必须关闭SPI主器件的接收中断,防止发送函数被接收中断给抢断,而通过循环读取中断管脚信号来确认SPI从器件是否有数据。
步骤S101具体可以包括:
实时扫描主器件发送缓冲区;
当主器件发送缓冲区有数据时,则关闭接收中断。
S102:通过MOSI信号线向SPI从器件发送主器件数据直至主器件发送缓冲区为空,在发送主器件数据的同时判断是否同步接收到SPI从器件通过MISO信号线发送的标识数据;如果否,则进入步骤S103。
S103:确定SPI从器件未接收到主器件数据,并停止发送主器件数据。
需要说明的是,本申请中的“标识数据”均指不包括实质内容、仅作为标识存在的数据,如空字节“0x00”等,SPI主器件和SPI从器件需预先设定标识数据的类型用于标识已接收到数据(主器件数据或从器件数据)。
如图2所示,在SPI主器件向SPI从器件发送主器件数据时,SPI主器件通过同步时钟信号线CLK发送时钟信号;同时,SPI主器件通过MOSI信号线向SPI从器件发送主器件数据直至主器件发送缓冲区为空,SPI从器件则同步向SPI主器件发送标识数据以证明收到了主器件数据。当SPI主器件在发送主器件数据的同时没有接收到SPI从器件发送的标识数据,则证明SPI从器件未接收到主器件数据,为避免数据丢失,则停止发送主器件数据。
由于SPI允许数据一位一位地传送,所以上述同步传送可以为SPI主器件发送一个字节的有效数据(BYTE1至BYTEN),SPI从器件发送一个字节空字符(00)。
主器件数据发送至SPI从器件后存储于SPI从器件的从器件接收缓冲区等待处理。
本发明实施例提供的SPI全双工的通信方法,仅需SPI从器件设置中断源,SPI主器件在需要发送主器件数据时关闭接收中断,SPI从器件在需要发送从器件数据时将中断信号由低电平转为高电平,SPI主器件和SPI从器件彼此之间通过在接收到有效数据时同步向对方发送标识数据来告知对方已经接收到有效数据,在发送有效数据时如果没有接收到对方同步发送的标识数据则得到对方没有接收到有效数据的判断,从而在节省了主器件中断源的情况下,实现了原有SPI全双工通信的过程,节约了通信资源,进而提高了传输效率和速率,且实现了现有技术中的SPI全双工通信没有的应答机制,提高了数据可靠性。
图3为本发明实施例提供的第二种SPI全双工的通信方法的流程图;图4为本发明实施例提供的第二种SPI全双工的通信时序图。
在上述实施例的基础上,本发明实施例对SPI主器件需要向SPI从器件发送主器件数据而SPI从器件有数据的情况进行说明。
如图3所示,还是基于SPI主器件,本发明实施例提供的SPI全双工的通信方法还包括:
S301:当主器件发送缓冲区为空时,开启接收中断。
结合上述实施例中所述的步骤S101至步骤S103,如图4所示,SPI主器件在主器件发送缓冲区有数据时关闭接收中断后向SPI从器件发送主器件数据。当SPI主器件发送完毕,即主器件发送缓冲区为空时,开启接收中断。
S302:当检测到与SPI从器件对应的中断信号为高电平时,向SPI从器件发送标识数据,在发送标识数据的同时同步接收SPI从器件发送的从器件数据,并将从器件数据存于主器件接收缓冲区,直至中断信号转为低电平。
当SPI主器件检查到中断信号INT为高电平时,则接收由SPI从器件通过MISO信号线发送的从器件数据。
与上述实施例同理的是,SPI主器件在接收从器件的同时同步向SPI从器件发送标识数据以通知SPI从器件收到了从器件数据,而SPI从器件在未收到标识数据时则确定SPI主器件没有接收到从器件数据,为避免从器件数据丢失而停止发送从器件数据。
SPI主器件对于接收到的从器件数据存储于主器件接收缓冲区中,为了避免从器件数据在SPI主器件中丢失,本发明实施例提供的SPI全双工的通信方法还包括:
当主器件接收缓冲区已满时,停止向SPI从器件发送标识数据以停止接收从器件数据。
在双向通信的过程中,不论是主器件接收缓冲区还是从器件接收缓冲区都可能会存在标识数据,则在处理数据时,对于SPI主器件来说,本发明实施例提供的SPI全双工的通信方法还包括:
判断中断信号是否为低电平;
如果是,则确定主器件接收缓冲区中的数据为标识数据,删除主器件接收缓冲区中的标识数据;
如果否,则确定主器件接受缓冲区中的数据不为标识数据,按预设协议分析处理主器件接受缓冲区中的数据。
SPI从器件在处理从器件接收缓冲区的数据时,如果接收到的数据是在发送从器件数据时接收到的,则不处理此数据,为避免占用从器件接收缓冲区,则删除该标识数据。
图5为本发明实施例提供的第三种SPI全双工的通信方法的流程图;图6为本发明实施例提供的第三种SPI全双工的通信时序图。
在上述实施例的基础上,本发明实施例对SPI从器件向SPI主器件发送从器件数据的情况进行说明。
如图5所示,基于SPI从器件,本发明实施例提供的SPI全双工的通信方法包括:
S501:当需要向SPI主器件发送从器件数据时,将中断信号由低电平转为高电平。
如图6所示,当SPI从器件需要发送从器件数据时,拉高中断信号。SPI主器件检测到INT信号线上升沿,开启接收中断,并通过同步时钟信号线CLK发送时钟信号。
S502:通过MISO信号线向SPI主器件发送从器件数据直至从器件发送缓冲区为空,在发送从器件数据的同时判断是否同步接收到SPI主器件通过MOSI信号线发送的标识数据;如果否,则进入步骤S503。
S503:确定SPI主器件未接收到从器件数据,并停止发送从器件数据。
SPI从器件在向SPI主器件发送从器件数据的同时,SPI主器件向SPI从器件发送标识数据。SPI主器件检测中断信号,若为高电平,则重复发送标识数据并接受从器件数据,直至中断信号转为低电平。
当SPI从器件在发送从器件数据的同时未接收到SPI主器件同步发送的标识数据,则证明SPI主器件未接收到从器件数据,为避免从器件数据丢失而停止发送从器件数据。
在上述实施例的基础上,一种SPI全双工的通信方法包括:
SPI主器件向SPI从器件发送主器件数据时,关闭接收中断,通过MOSI信号线向SPI从器件发送主器件数据直至主器件发送缓冲区为空,在发送主器件数据的同时判断是否同步接收到SPI从器件通过MISO信号线发送的标识数据;如果否,则确定SPI从器件未接收到主器件数据,并停止发送主器件数据;
SPI从器件向SPI主器件发送从器件数据时,将中断信号由低电平转为高电平;通过MISO信号线向SPI主器件发送从器件数据直至从器件发送缓冲区为空,在发送从器件数据的同时判断是否同步接收到SPI主器件通过MOSI信号线发送的标识数据;如果否,则确定SPI主器件未接收到从器件数据,并停止发送从器件数据。
上文详述了SPI全双工的通信方法对应的各个实施例,在此基础上,本发明还公开了与上述方法对应的SPI全双工的通信装置。
图7为本发明实施例提供的一种SPI全双工的通信装置的结构示意图。
如图7所示,本发明实施例提供的SPI全双工的通信装置包括:
接收控制单元701,用于当需要向SPI从器件发送主器件数据时,关闭接收中断;
主器件通信交互单元702,用于通过MOSI信号线向SPI从器件发送主器件数据直至主器件发送缓冲区为空,在发送主器件数据的同时判断是否同步接收到SPI从器件通过MISO信号线发送的标识数据;如果否,则确定SPI从器件未接收到主器件数据,并停止发送主器件数据。
图8为本发明实施例提供的另一种SPI全双工的通信装置的结构示意图。
如图8所示,本发明实施例提供的SPI全双工的通信装置包括:
发送控制单元801,用于当需要向SPI主器件发送从器件数据时,将中断信号由低电平转为高电平;
从器件通信交互单元802,用于通过MISO信号线向SPI主器件发送从器件数据直至从器件发送缓冲区为空,在发送从器件数据的同时判断是否同步接收到SPI主器件通过MOSI信号线发送的标识数据;如果否,则确定SPI主器件未接收到从器件数据,并停止发送从器件数据。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
上文详述了SPI全双工的通信方法及装置对应的各个实施例,在此基础上,本发明还公开了与上述方法及装置对应的SPI全双工的通信系统。
本发明实施例提供的SPI全双工的通信系统包括通过SPI总线连接的SPI主器件和SPI从器件;
其中,SPI主器件用于向SPI从器件发送主器件数据时,关闭接收中断,通过MOSI信号线向SPI从器件发送主器件数据直至主器件发送缓冲区为空,在发送主器件数据的同时判断是否同步接收到SPI从器件通过MISO信号线发送的标识数据;如果否,则确定SPI从器件未接收到主器件数据,并停止发送主器件数据;
SPI从器件用于向SPI主器件发送从器件数据时,将中断信号由低电平转为高电平;通过MISO信号线向SPI主器件发送从器件数据直至从器件发送缓冲区为空,在发送从器件数据的同时判断是否同步接收到SPI主器件通过MOSI信号线发送的标识数据;如果否,则确定SPI主器件未接收到从器件数据,并停止发送从器件数据。
由于系统部分的实施例与方法及装置部分的实施例相互对应,因此系统部分的实施例请参见方法及装置部分的实施例的描述,这里暂不赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置及系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上对本发明所提供的一种SPI全双工的通信方法、装置及系统进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

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主器件通过MOSI信号线发送的标识数据;
如果否,则确定所述SPI主器件未接收到所述从器件数据,并停止发送所述从器件数据。
8.一种SPI全双工的通信装置,其特征在于,包括:
发送控制单元,用于当需要向SPI主器件发送从器件数据时,将中断信号由低电平转为高电平;
从器件通信交互单元,用于通过MISO信号线向所述SPI主器件发送所述从器件数据直至从器件发送缓冲区为空,在发送所述从器件数据的同时判断是否同步接收到所述SPI主器件通过MOSI信号线发送的标识数据;如果否,则确定所述SPI主器件未接收到所述从器件数据,并停止发送所述从器件数据。
9.一种SPI全双工的通信方法,其特征在于,包括:
SPI主器件向SPI从器件发送主器件数据时,关闭接收中断,通过MOSI信号线向所述SPI从器件发送所述主器件数据直至主器件发送缓冲区为空,在发送所述主器件数据的同时判断是否同步接收到所述SPI从器件通过MISO信号线发送的标识数据;如果否,则确定所述SPI从器件未接收到所述主器件数据,并停止发送所述主器件数据;
所述SPI从器件向所述SPI主器件发送从器件数据时,将中断信号由低电平转为高电平;通过所述MISO信号线向所述SPI主器件发送所述从器件数据直至从器件发送缓冲区为空,在发送所述从器件数据的同时判断是否同步接收到所述SPI主器件通过所述MOSI信号线发送的标识数据;如果否,则确定所述SPI主器件未接收到所述从器件数据,并停止发送所述从器件数据。
10.一种SPI全双工的通信系统,其特征在于,包括通过SPI总线连接的SPI主器件和SPI从器件;
其中,所述SPI主器件用于向SPI从器件发送主器件数据时,关闭接收中断,通过MOSI信号线向所述SPI从器件发送所述主器件数据直至主器件发送缓冲区为空,在发送所述主器件数据的同时判断是否同步接收到所述SPI从器件通过MISO信号线发送的标识数据;如果否,则确定所述SPI从器件未接收到所述主器件数据,并停止发送所述主器件数据;
所述SPI从器件用于向所述SPI主器件发送从器件数据时,将中断信号由低电平转为高电平;通过所述MISO信号线向所述SPI主器件发送所述从器件数据直至从器件发送缓冲区为空,在发送所述从器件数据的同时判断是否同步接收到所述SPI主器件通过所述MOSI信号线发送的标识数据;如果否,则确定所述SPI主器件未接收到所述从器件数据,并停止发送所述从器件数据。
CN201910625154.2A 2019-07-11 2019-07-11 一种spi全双工的通信方法、装置及系统 Pending CN110334046A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910625154.2A CN110334046A (zh) 2019-07-11 2019-07-11 一种spi全双工的通信方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910625154.2A CN110334046A (zh) 2019-07-11 2019-07-11 一种spi全双工的通信方法、装置及系统

Publications (1)

Publication Number Publication Date
CN110334046A true CN110334046A (zh) 2019-10-15

Family

ID=68146369

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910625154.2A Pending CN110334046A (zh) 2019-07-11 2019-07-11 一种spi全双工的通信方法、装置及系统

Country Status (1)

Country Link
CN (1) CN110334046A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111130710A (zh) * 2019-12-10 2020-05-08 常州新途软件有限公司 一种基于spi的双工通信方法
CN112333066A (zh) * 2020-09-29 2021-02-05 中国船舶重工集团公司第七0七研究所 一种提高can总线通讯可靠性的技术方法
CN112491513A (zh) * 2020-11-13 2021-03-12 北京经纬恒润科技股份有限公司 一种spi通信方法、装置及系统
CN112822002A (zh) * 2021-01-04 2021-05-18 北京地平线信息技术有限公司 基于spi的通信方法及装置、电子设备和存储介质
CN113992317A (zh) * 2021-09-28 2022-01-28 山东云海国创云计算装备产业创新中心有限公司 一种spi通信方法、装置及存储介质
CN114338260A (zh) * 2020-09-28 2022-04-12 宝能汽车集团有限公司 车辆数字仪表的显示控制系统与方法、车辆
CN116962112A (zh) * 2023-09-20 2023-10-27 中国船舶集团有限公司第七〇七研究所 基于标准spi总线连接的双机全双工数据透明传输方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150809A (zh) * 2007-11-03 2008-03-26 青岛海信移动通信技术股份有限公司 移动终端处理器串口唤醒与流控的方法
CN102110070A (zh) * 2009-12-23 2011-06-29 北京中电华大电子设计有限责任公司 一种提高串行外围设备接口传输效率的实现方法
CN102722462A (zh) * 2012-05-05 2012-10-10 美的集团有限公司 一种同步通信装置及其控制方法
CN102819512A (zh) * 2012-06-28 2012-12-12 惠州市德赛西威汽车电子有限公司 一种基于spi的全双工通信装置及其方法
CN103064815A (zh) * 2012-12-29 2013-04-24 广东志成冠军集团有限公司 一种单spi总线控制多can接口的控制方法
CN107301138A (zh) * 2017-06-01 2017-10-27 深圳震有科技股份有限公司 一种串行总线桥接方法及串行总线系统
CN107370651A (zh) * 2017-06-26 2017-11-21 中国人民解放军91388部队 一种spi从机之间的通信方法
CN109344639A (zh) * 2018-10-30 2019-02-15 南方电网科学研究院有限责任公司 一种配网自动化双重防护安全芯片、数据传输方法及设备
CN109582616A (zh) * 2018-12-05 2019-04-05 张洋 基于串行总线的通信系统和方法
CN208873145U (zh) * 2018-10-30 2019-05-17 南方电网科学研究院有限责任公司 一种配网自动化IPSec安全芯片
CN109902053A (zh) * 2017-12-07 2019-06-18 厦门雅迅网络股份有限公司 一种基于双控制器的spi通信方法、终端设备及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150809A (zh) * 2007-11-03 2008-03-26 青岛海信移动通信技术股份有限公司 移动终端处理器串口唤醒与流控的方法
CN102110070A (zh) * 2009-12-23 2011-06-29 北京中电华大电子设计有限责任公司 一种提高串行外围设备接口传输效率的实现方法
CN102722462A (zh) * 2012-05-05 2012-10-10 美的集团有限公司 一种同步通信装置及其控制方法
CN102819512A (zh) * 2012-06-28 2012-12-12 惠州市德赛西威汽车电子有限公司 一种基于spi的全双工通信装置及其方法
CN103064815A (zh) * 2012-12-29 2013-04-24 广东志成冠军集团有限公司 一种单spi总线控制多can接口的控制方法
CN107301138A (zh) * 2017-06-01 2017-10-27 深圳震有科技股份有限公司 一种串行总线桥接方法及串行总线系统
CN107370651A (zh) * 2017-06-26 2017-11-21 中国人民解放军91388部队 一种spi从机之间的通信方法
CN109902053A (zh) * 2017-12-07 2019-06-18 厦门雅迅网络股份有限公司 一种基于双控制器的spi通信方法、终端设备及存储介质
CN109344639A (zh) * 2018-10-30 2019-02-15 南方电网科学研究院有限责任公司 一种配网自动化双重防护安全芯片、数据传输方法及设备
CN208873145U (zh) * 2018-10-30 2019-05-17 南方电网科学研究院有限责任公司 一种配网自动化IPSec安全芯片
CN109582616A (zh) * 2018-12-05 2019-04-05 张洋 基于串行总线的通信系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
强小燕等: "CRC校验在SPI接口设计中的实现", 《电子与封装》 *
陈中等: "基于MSP430单片机的SPI总线通信控制系统研究", 《淮海工学院学报(自然科学版)》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111130710A (zh) * 2019-12-10 2020-05-08 常州新途软件有限公司 一种基于spi的双工通信方法
CN114338260A (zh) * 2020-09-28 2022-04-12 宝能汽车集团有限公司 车辆数字仪表的显示控制系统与方法、车辆
CN112333066A (zh) * 2020-09-29 2021-02-05 中国船舶重工集团公司第七0七研究所 一种提高can总线通讯可靠性的技术方法
CN112491513A (zh) * 2020-11-13 2021-03-12 北京经纬恒润科技股份有限公司 一种spi通信方法、装置及系统
CN112491513B (zh) * 2020-11-13 2023-06-16 北京经纬恒润科技股份有限公司 一种spi通信方法、装置及系统
CN112822002A (zh) * 2021-01-04 2021-05-18 北京地平线信息技术有限公司 基于spi的通信方法及装置、电子设备和存储介质
CN113992317A (zh) * 2021-09-28 2022-01-28 山东云海国创云计算装备产业创新中心有限公司 一种spi通信方法、装置及存储介质
CN116962112A (zh) * 2023-09-20 2023-10-27 中国船舶集团有限公司第七〇七研究所 基于标准spi总线连接的双机全双工数据透明传输方法
CN116962112B (zh) * 2023-09-20 2023-12-15 中国船舶集团有限公司第七〇七研究所 基于标准spi总线连接的双机全双工数据透明传输方法

Similar Documents

Publication Publication Date Title
CN110334046A (zh) 一种spi全双工的通信方法、装置及系统
CN106453383B (zh) 一种基于uart的主从多机通讯系统及方法
CN100496048C (zh) 多主通信系统
CN102023954B (zh) 具有多路i2c总线的装置、处理器、系统主板及工控计算机
CN102819512A (zh) 一种基于spi的全双工通信装置及其方法
CN101911000A (zh) 用于连接电子装置的控制总线
CN202084028U (zh) 一种模块化多串口扩展装置
CN103714029A (zh) 新型二线同步通信协议及应用
CN107819659B (zh) 一种基于spi的智能级联通信网络
CN108111382A (zh) 基于i3c总线的通信装置及其通信方法
CN100478928C (zh) 用于事务撤销的数据处理系统和方法
CN1333560C (zh) 一种适用于强电磁干扰环境下的高性能光纤can通讯系统
CN105593834A (zh) 用于芯片间通信的通信系统
KR20160016843A (ko) 데이터 통신 방법, 통신 제어기 및 회로 배열체
CN107370651A (zh) 一种spi从机之间的通信方法
CN107239423A (zh) 一种基于扩展iic接口的装置
CN100445973C (zh) 总线控制权仲裁方法与仲裁器
CN116521609A (zh) 多主机与多从机系统、zynq仲裁器及其数据处理的方法
CN209860929U (zh) 一种通信总线结构
CN100412837C (zh) 多通道内部集成电路
CN100462952C (zh) 接口可配置的通用串行总线控制器
CN103051736B (zh) 一种控制信息的处理方法和i2c总线设备
CN114281739A (zh) 一种数据交换系统及方法
US20210303496A1 (en) Actuation of data transmission lanes between states
CN1581126A (zh) Iic总线控制系统及其实现方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20191015

RJ01 Rejection of invention patent application after publication