首页> 中国专利> 基于SPI总线的数据通信方法、SPI通信设备及SPI通信系统

基于SPI总线的数据通信方法、SPI通信设备及SPI通信系统

摘要

本发明公开了一种基于SPI总线的数据通信方法、SPI通信设备即SPI通信系统,其中,基于SPI总线的数据通信方法通过接收从设备主动发送的当前状态信息,判断其是否存在需要发送的第二数据信息,当满足预设通信状态时,主设备启动通信动作,接收满足预设通信状态的从设备,进而解决了相关技术中SPI通信中从设备需要向主设备发送数据信息时,通过主设备轮询各个从设备的方式获取从设备是否需要发送数据信息,导致的数据通信时延高、主设备CPU能耗高、CPU占用资源大、效率低的技术问题。

著录项

  • 公开/公告号CN116010322A

    专利类型发明专利

  • 公开/公告日2023-04-25

    原文格式PDF

  • 申请/专利权人 浙江国芯智源微电子有限公司;

    申请/专利号CN202310153023.5

  • 发明设计人 张健;姚嘉荣;王斌;

    申请日2023-02-10

  • 分类号G06F13/40(2006.01);G06F13/42(2006.01);

  • 代理机构深圳市深联知识产权代理事务所(普通合伙) 44357;

  • 代理人黄立强

  • 地址 312065 浙江省绍兴市柯桥区齐贤街道官湖沿村1幢二楼D区

  • 入库时间 2023-06-19 19:23:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-05-12

    实质审查的生效 IPC(主分类):G06F13/40 专利申请号:2023101530235 申请日:20230210

    实质审查的生效

  • 2023-04-25

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及数据通信技术领域,尤其是涉及一种基于SPI总线的数据通信方法、SPI通信设备及SPI通信系统。

背景技术

SPI是串行外设接口(Serial Peripheral Interface)的缩写,SPI通信主要用在电子元器件的寄存器配置和读取,也有部分利用SPI的高速率将其应用在CPU的协同通信中。相关技术中,CPU的协同通信主要是通过主设备轮询从设备,定时周期性检查从设备是否有数据需要主动发送,来满足从设备主动发送数据的需求,从而实现双工通信。但是,通过轮询的方式导致主设备CPU利用率低,长时间处于空跑状态,设备能耗高,而且轮询的方式无法满足低时延应用场景的需求。

因此,如何克服相关技术SPI通信中通过轮询的方式解决从设备发送数据的需求进而导致的时延高、能耗高、效率低的技术的问题,成为本领域技术人员需要解决的技术难题。

发明内容

本发明实施例提出一种基于SPI总线的数据通信方法、SPI通信设备及SPI通信系统,用以解决相关技术中SPI通信时延高、能耗高及效率低的技术问题。

第一方面,本发明的一个实施例提供了一种基于SPI总线的数据通信方法,其包括:

判断主设备的发送FIFO是否存储有待发送第一数据信息;

若是,则主设备启动通信动作,向目标从设备发送所述第一数据信息,直至所述主设备的发送FIFO为空;

所述主设备还接收至少一个从设备的当前状态信号;

若所述当前状态信号中存在满足预设通信状态,

则所述主设备接收满足所述预设通信状态的从设备发送的第二数据信息。

本发明实施例的基于SPI总线的数据通信方法至少具有如下有益效果:

本发明实施例中一种基于SPI总线的数据通信方法,其包括在判断主设备的发送FIFO是否存储有待发送的第一数据信息,若是则主设备启动通信动作,向目标从设备发送第一数据信息,直至将主设备的发送FIFO中的第一数据信息发送完成,主设备还接受至少一个从设备的当前状态信号,当主设备接收的当前状态信号中存在满足预设通信状态时,主设备启动通信动作,接收满足预设通信状态的从设备所发送的第二数据信息;本发明实施例一种基于SPI总线的数据通信方法通过接收从设备主动发送的当前状态信息,判断其是否存在需要发送的第二数据信息,当满足预设通信状态时,主设备启动通信动作,接收满足预设通信状态的从设备,进而解决了相关技术中SPI通信中从设备需要向主设备发送数据信息时,通过主设备轮询各个从设备的方式获取从设备是否需要发送数据信息,导致的数据通信时延高、主设备CPU能耗高、CPU占用资源大、效率低的技术问题,提供了一种低时延、能耗低且高效的基于SPI总线通信的数据通信方法。

根据本发明另一些实施例的基于SPI总线通信的数据通信方法,所述向目标从设备发送所述第一数据信息包括:

所述主设备向所述目标从设备发起时钟信号后,所述主设备向所述目标从设备发送所述第一数据信息。

根据本发明另一些实施例的基于SPI总线通信的数据通信方法,所述第一数据信息包括第一前导符信息、第一校验信息、第一数据长度信息和第一数据传输内容信息;

所述目标从设备接收所述第一数据信息后,根据所述第一校验信息和所述第一数据长度信息判断所述第一数据信息的有效性;

若所述第一数据信息为有效信息,则将所述第一数据信息进行传输处理;

否则将所述第一数据信息丢弃。

根据本发明另一些实施例的基于SPI总线通信的数据通信方法,所述主设备接收满足所述预设通信状态的从设备发送的第二数据信息包括:

所述主设备向满足所述预设通信状态的从设备发起时钟信号后,所述主设备接收满足所述预设通信状态的从设备发送的所述第二数据信息。

根据本发明另一些实施例的基于SPI总线通信的数据通信方法,所述第二数据信息包括第二前导符信息、第二校验信息、第二数据长度信息和第二数据传输内容信息;

所述主设备接收到所述第二数据信息后,根据所述第二校验信息和所述第二数据长度信息判断所述第二数据信息的有效性;

若所述第二数据信息为有效信息,则将所述第二数据信息进行传输处理;

否则将所述第二数据信息丢弃。

根据本发明另一些实施例的基于SPI总线通信的数据通信方法,所述数据通信方法还包括:

所述主设备完成接收满足所述预设通信状态的从设备发送的所述第二数据信息后,满足所述预设通信状态的从设备改变所述当前状态信号,并将改变后的所述当前状态信号发送至所述主设备。

根据本发明另一些实施例的基于SPI总线通信的数据通信方法,所述主设备还接收多个从设备的当前状态信号;

多个从设备具有不同的优先等级;

所述主设备根据所述优先等级依次接收满足所述预设通信状态的从设备发送的第二数据信息。

第二方面,本发明的一个实施例提供了一种SPI通信主设备,包括:

主设备端MOSI接口,用于向从设备发送第一数据信息;

主设备端MISO接口,用于接收从设备的第二数据信息;

主设备端CS接口,用于发送使能信号控制从设备的工作状态;

主设备端SCLK接口,用于向从设备发送时钟信号;

至少一个主设备端IO接口,用于接收从设备的当前状态信息;

主设备控制单元,用于判断主设备端发送FIFO是否存储有所述第一数据信息;若是,则控制所述主设备端CS接口向从设备发送使能信号,并控制所述主设备端SCLK接口向从设备发送时钟信号后,控制所述主设备端MOSI接口向从设备发送所述第一数据信息;

或者,用于判断所述主设备端IO接口接收的所述当前状态信息是否满足预设通信状态;若是,则控制所述主设备端CS接口向从设备发送使能信号,并控制所述主设备端SCLK接口向从设备发送时钟信号后,控制所述主设备端MISO接口接收所述第二数据信息。

第三方面,本发明的一个实施例提供了一种SPI通信从设备,包括:

从设备端数MOSI接口,用于接收主设备的第一数据信息;

从设备端MISO接口,用于向主设备发送第二数据信息;

从设备控端CS接口,用于接收主设备发送的使能信号;

从设备端SCLK接口,用于接收主设备发送的时钟信号;

从设备端IO接口,用于向主设备发送从设备的当前状态信息;

从设备控制单元,用于根据从设备端FIFO是否存储有待发送的所述第二数据信息,控制所述从设备端IO接口向主设备发送所述当前状态信息。

第四方面,本发明的一个实施例提供了一种SPI通信系统,包括上述的SPI通信主设备和至少一个上述的SPI通信从设备。

附图说明

图1是本发明实施例一种基于SPI总线的数据通信方法的一具体实施例流程示意图;

图2是本发明实施例本发明实施例一种基于SPI总线的数据通信方法中第一数据信息的一具体实施例组成示意图;

图3是本发明实施例本发明实施例一种基于SPI总线的数据通信方法中第二数据信息的一具体实施例组成示意图;

图4是本发明实施例一种基于SPI总线的数据通信方法的另一具体实施例流程示意图;

图5是本发明实施例一种基于SPI总线的数据通信方法中一主一从模式连接示意图;

图6是本发明实施例一种基于SPI总线的数据通信方法中一主三从模式连接示意图;

图7是本发明实施例一种SPI通信主设备的一具体实施例接口示意图;

图8是本发明实施例一种SPI通信从设备的一具体实施例接口示意图;

图9是本发明实施例一种SPI通信系统的一具体实施例连接示意图。

具体实施方式

以下将结合实施例对发明的构思及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。

在本发明实施例的描述中,如果涉及到“若干”,其含义是一个以上,如果涉及到“多个”,其含义是两个以上,如果涉及到“大于”、“小于”、“超过”,均应理解为不包括本数,如果涉及到“以上”、“以下”、“以内”,均应理解为包括本数。如果涉及到“第一”、“第二”,应当理解为用于区分技术特征,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

参照图1,本发明实施例提供了一种基于SPI总线的数据通信方法,其包括以下步骤:

S100、判断主设备的发送FIFO是否存储有待发送的第一数据信息;

S200、若是,则主设备启动通信动作,向目标从设备发送第一数据信息,直至主设备端发送FIFO为空;

S300、主设备还接受至少一个从设备的当前状态信号;

S400、判断接收的当前状态信号是否存在满足预设通信状态的从设备;

S500、主设备接收满足预设通信状态的从设备发送的第二数据信息。

本实施例中,主设备中的控制单元判断主设备的发送FIFO(first in,firstout缓存器)存储有待发送的第一数据信息时,主设备启动与目标从设备的通信动作,向目标从设备发送第一数据信息直至将主设备的发送FIFO存储的第一数据内容完全发送完成。在完成主设备的发送FIFO存储的第一数据信息的传输或者主设备未存在需要向从设备发送数据信息时(主设备的发送FIFO为空),主设备还接收至少一个从设备的当前状态信息,其中,主设备可以连接一个或多个从设备,当接收的当前状态信息中存在满足预设通信状态的从设备,则主设备向满足预设通信状态的从设备发起通信动作,并接收该从设备发送的第二数据信息。本实施例中,从设备向主设备发送其当前状态信息,当主设备接收的当前状态信息满足预设通信条件时,即得知对应的从设备有发送数据的需求,进而启动通信动作,接收满足预设通信状态的从设备发送的第二数据信息,解决了相关技术中SPI通信主设备需要对SPI通信从设备进行轮询的方式,来查询从设备是否有向主设备传输数据的需求,进而导致的数据传输时延高、主设备能耗高的技术问题。

在一些实施例中,步骤S100中的主设备向目标设备发送第一数据信息具体包括:主设备根据第一数据信息获得的目标从设备信息,向该目标从设备发送时钟信号后,向该目标从设备发送第一数据信息。其中,目标从设备接收的第一数据信息暂时存储其接收FIFO中。

参照图2,在一些实施例中,第一数据信息包括第一前导符信息、第一校验信息、第一数据长度信息和第一数据传输内容信息。本实施例中,第一前导符信息用于提醒目标从设备之后接收的数据信息为有效信息,有利于信息接收的有效性。目标从设备将接收的第一前导符信息、第一校验信息、第一数据长度信息和第一数据传输内容信息暂存在其接收FIFO中,并根据其中的第一校验信息和第一数据长度信息判断接收的第一数据信息的有效性,其中,若判断第一校验信息或第一数据长度信息中的任一信息为非法信息,则目标从设备将接收的第一数据信息丢弃,以为下一次数据信息传输做准备。当目标从设备判断接收的第一数据信息为有效信息时,将其接收FIFO中的第一传输内容信息传输至应用层进行后续数据处理。

在一些实施例中,步骤S500中的主设备接收满足预设通信状态的从设备发送的第二数据信息包括:主设备向满足预设通信状态的从设备发起时钟信号后,主设备接收满足预设通信状态的从设备发送的第二数据信息。本实施例中,主设备通过一个或多个I/O接口分别与一个或多个从设备分别一一对应连接,当从设备需要向主设备发送数据时,从设备将其与主设备连接的I/O接口输出的高电平改变为输出低电平,则主设备即可得知对应的从设备处于满足预设通信状态,主设备通过CS片选信号选中对应的从设备,并输出时钟信号至该从设备后,该从设备将第二数据信息发送至主设备中,主设备将接收的第二数据信息暂存在其接收FIFO中。

另外,在一些实施例中,主设备连接有多个从设备时,多个从设备具有不同的优先等级,主设备根据不同的优先等级依次接收满足预设通信状态的从设备发送的第二数据信息。本实施例中,主设备设置有不同I/O接口分别与多个从设备连接,主设备设置的不同I/O接口即不同的优先等级,因此,当存在多个从设备需要向主设备发送数据(即满足预设通信状态)时,主设备根据接收的当前状态信号的I/O接口的不同优先等级,依次接收多个从设备发送的第二数据信息。

参照图3,在一些实施例中,第二数据信息包括第二前导符信息、第二校验信息、第二数据长度信息和第二数据传输内容信息。本实施例总,第一前导符信息用于提醒主设备之后接收的从设备发送的数据信息为有效信息,有利于信息接收的有效性。主设备将接收的第二前导符信息、第二校验信息、第二数据长度信息和第二数据传输内容信息暂存在其接收FIFO中,并根据其中的第二校验信息和第二数据长度信息判断接收的第二数据信息的有效性,其中,若判断第二校验信息或第二数据长度信息中的任一信息为非法信息,则主设备将接收的第二数据信息丢弃,以为下一次数据信息传输做准备。当主设备判断接收的第二数据信息为有效信息时,将其接收FIFO中的第二传输内容信息传输至其应用层进行后续数据处理。

参照图4,在一些实施例中,基于SPI总线的数据通信方法还包括步骤:

S600、满足预设通信状态的从设备将第二数据信息传输至主设备后,改变当前状态信号,并将改变后的当前状态信号传输至主设备。

本实施例中,满足通信状态的从设备将第二数据信息暂存在其发送FIFO中,当其发送FIFO中的数据信息完全传输至主设备时,该从设备检测到其发送FIFO为空,则将其当前状态信号改变后发送至主设备中,停止数据传输动作,为下一次数据传输做准备。

参照图5,以下通过一主一从模式来阐述本发明实施例基于SPI总线的数据通信方法的数据传输过程:

本实施例中,主设备包括四线SPI接口(CS接口、SCLK接口、MISO接口、MOSI接口)和主设备端接口MIO;从设备包括四线SPI接口(CS接口、SCLK接口、MISO接口、MOSI接口)和从设备从设备端IO接口SIO。本实施例中,主设备的四线SPI接口分别与从设备的四线SPI接口连接,从设备的从设备从设备端IO接口SIO通过I/O请求线与主设备的主设备端接口MIO连接。本实施例中,主设备检查主设备端发送FIFO是否存储有待发送的第一数据信息,若是,则通过CS接口向从设备发送低电平信号,启动从设备处于工作状态用于接收第一数据信息,第一数据信息中包括有第一前导符信息、第一校验信息、第一数据长度信息和第一数据传输内容信息,主设备通过SCLK接口时钟信号给从设备,主设备再通过MOSI接口将第一前导符信息、第一校验信息、第一数据长度信息和第一数据传输内容信息传输至从设备,从设备将接收的信息暂存至其接收FIFO中,并根据其中的第一校验信息和第一数据长度信息判断接收的第一数据信息的有效性,其中,若判断第一校验信息或第一数据长度信息中的任一信息为非法信息,则目标从设备将接收的第一数据信息丢弃,以为下一次数据信息传输做准备。当主设备中的发送FIFO为空,从设备中需要向主设备发送第二数据信息时,从设备通过I/O请求线发送低电平信号至主设备,通知主设备启动与从设备的数据通信。从设备中需要发送的第二数据信息暂存在其发送FIFO中,第二数据信息包括第二前导符信息、第二校验信息、第二数据长度信息和第二数据传输内容信息。主设备在接收到从设备发送的低电平信号后,通过CS接口向从设备发送低电平信号,启动从设备处于工作状态用于发送第二数据信息。本实施例中,主设备通过SCLK接口时钟信号给从设备发送第一次时钟信号,用于接收第二数据信息中的第二前导符信息、第二校验信息和第二长度信息,主设第二长度信息给从设备发送第二次时钟信号,用于读取第二数据传输内容信息并暂存在其接收FIFO中,主设备通过第二校验信息和第二长度信息判断接收的第二数据信息的有效性,其中,若判断第二校验信息或第二数据长度信息中的任一信息为非法信息,则主设备将接收的第二数据信息丢弃,以为下一次数据信息传输做准备。当主设备判断接收的第二数据信息为有效信息时,将其接收FIFO中的第二传输内容信息传输至其应用层进行后续数据处理。在从设备完成第二数据信息的传输后,其将通过I/O请求线发送至主设备的低电平改为高电平,停止主设备与从设备间的数据通信。

参照图6,以下通过一主三从模式来阐述本发明实施例基于SPI总线的数据通信方法的数据传输过程:

本实施中,主设备包括四线SPI接口(CS接口、SCLK接口、MISO接口、MOSI接口)和主设备端第一IO接口MIO1、主设备端第二IO接口MIO2和主设备端第三IO接口MIO3,第一从设备的从设备端IO接口与主设备的主设备端第一IO接口MIO1通过第一IO请求线连接,第二从设备的从设备端IO接口与主设备的主设备端第二IO接口MIO2通过第二IO请求线连接,第三从设备的从设备端IO接口与主设备的主设备端第三IO接口MIO3通过第三1O请求线连接。本实施例中,主设备向第一从设备、第二从设备或第三从设备发送第一数据信息的过程与上述实施例一主一从模式相互参照对应,第一从设备、第二从设备和第三从设备中紧存在一个从设备需要与主设备进行数据通信同样与上述实施例一主一从模式相互参照对应,在此不做赘述。另外,本实施例中,当第一从设备、第二从设备和第三从设备中的任意两个或三个同时需要向主设备发送第二数据信息时,主设备根据预设的的主设备端第一IO接口MIO1、主设备端第二IO接口MIO2和主设备端第三IO接口MIO3的不同优先等级,依次按照优先等级从高至低接收其中两个或三个从设备的第二数据信息,主设备接收各个从设备发送的数据信息的过程同样与上述实施例一主一从模式相互参照对应,在此不做赘述。

参照图7,本发明的一个实施例提出了一种SPI通信主设备,包括:

主设备端MOSI接口,用于向从设备发送第一数据信息;

主设备端MISO接口,用于接收从设备的第二数据信息;

主设备端CS接口,用于发送使能信号控制从设备的工作状态;

主设备端SCLK接口,用于向从设备发送时钟信号;

至少一个主设备端IO接口,用于接收从设备的当前状态信息;

主设备控制单元,用于判断主设备端发送FIFO是否存储有第一数据信息;若是,则控制主设备端CS接口向从设备发送使能信号,并控制主设备端SCLK接口向从设备发送时钟信号后,控制主设备端MOSI接口向从设备发送第一数据信息;

或者,用于判断主设备端IO接口接收的当前状态信息是否满足预设通信状态;若是,则控制主设备端CS接口向从设备发送使能信号,并控制主设备端SCLK接口向从设备发送时钟信号后,控制主设备端MISO接口接收所述第二数据信息。

本实施例中SPI通信主设备的数据信息传输的过程与上述实施例任一实施例中的基于SPI总线的数据通信方法相互参照对应,在此不做赘述。

参照图8,本发明的一个实施例提出了一种SPI通信从设备,包括:

从设备端数MOSI接口,用于接收主设备的第一数据信息;

从设备端MISO接口,用于向主设备发送第二数据信息;

从设备控端CS接口,用于接收主设备发送的使能信号;

从设备端SCLK接口,用于接收主设备发送的时钟信号;

从设备端IO接口,用于向主设备发送从设备的当前状态信息;

从设备控制单元,用于根据从设备端FIFO是否存储有待发送的所述第二数据信息,控制从设备端IO接口向主设备发送当前状态信息。

本实施例中SPI通信从设备的数据信息传输的过程与上述实施例任一实施例中的基于SPI总线的数据通信方法相互参照对应,在此不做赘述。

参照图9,本发明的一个实施例提出了一种SPI通信系统,包括如上述实施例中的SPI通信主设备和如上述实施例中的SPI通信从设备。其中,SPI通信主设备和SPI通信从设备的的数据信息传输的过程与上述实施例任一实施例中的基于SPI总线的数据通信方法相互参照对应,在此不做赘述。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。此外,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号