CN109726163A - 一种基于spi的通信***、方法、设备和储存介质 - Google Patents
一种基于spi的通信***、方法、设备和储存介质 Download PDFInfo
- Publication number
- CN109726163A CN109726163A CN201811648586.7A CN201811648586A CN109726163A CN 109726163 A CN109726163 A CN 109726163A CN 201811648586 A CN201811648586 A CN 201811648586A CN 109726163 A CN109726163 A CN 109726163A
- Authority
- CN
- China
- Prior art keywords
- slave
- data
- interface module
- spi interface
- interrupt
- 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.)
- Granted
Links
Landscapes
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
本发明实施例公开了一种基于SPI的通信***、方法、设备和储存介质,该***包括:一个配置有通用SPI接口模块的主机和至少一个配置有从机SPI接口模块的从机;从机SPI接口模块包括数据区、串行时钟引脚、主机输入/从机输出数据引脚、主机输出/从机输入数据引脚和从机选择引脚;数据区包括中断寄存器,中断寄存器中设置有主机触发从机的第一中断位和从机触发主机的第二中断位;主机的预设引脚连接到从机SPI接口模块的中断寄存器,以便主机对第一中断位进行写操作和对第二中断位进行读操作;所述从机设置为第一中断位进行读操作和对第二中断位进行写操作。本发明实施例有效降低CPU处理SPI接口数据的负荷。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种基于SPI的通信***、方法、设备和储存介质。
背景技术
串行外设接口(Serial Peripheral Interface,SPI)是一种同步串行外设接口,该接口一般使用4条线:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线NSS。
如图1所示,常用的SPI接口,需要发送数据,就将数据写入发送缓冲区,SPI接口就开始发送;同时接收数据到接收缓冲区中,接收的数据可以通过中断或轮询的方式由中央处理器(Central Processing Unit,CPU)处理。
但现有技术中,数据发送的时候,如果从机接收缓冲区满,主机仍然继续发送,造成数据流的损失。数据按字节发送,没有校验机制,CPU按字节接收数据时,因频繁的中断调用而导致CPU处理能力效率低下。
发明内容
本发明实施例提供一种基于SPI的通信***、方法、设备和储存介质,以实现降低CPU处理SPI接口数据的负荷。
第一方面,本发明实施例提供了一种基于SPI的通信***,包括:
一个配置有通用SPI接口模块的主机和至少一个配置有从机SPI接口模块的从机;所述从机SPI接口模块包括数据区、串行时钟引脚、主机输入/从机输出数据引脚、主机输出/从机输入数据引脚和从机选择引脚;所述数据区包括中断寄存器、主到备缓冲区和备到主缓存区,所述中断寄存器中设置有主机触发从机的第一中断位和从机触发主机的第二中断位;所述通用SPI接口模块和所述从机SPI接口模块对应引脚信号连接;所述主机的预设引脚连接到所述从机SPI接口模块的中断寄存器,以便所述主机对所述第一中断位进行写操作和对所述第二中断位进行读操作;所述从机设置为对所述第一中断位进行读操作和对所述第二中断位进行写操作。
第二方面,本发明实施例还提供了一种基于SPI的通信方法,包括:
当主机发送数据时,根据待发送数据,按照预设数据帧结构,生成数据帧;其中,所述数据帧的结构为1字节的帧长、0-60字节的净荷和2字节的CRC校验值;
读取从机SPI接口模块的中断寄存器;
如果所述中断寄存器的第一中断位被清除,以两字节为单位向所述从机SPI接口模块发送所述数据帧;其中,前一字节为写入数据地址,后一字节为与所述写入数据地址对应的所述数据帧的数据,所述写入数据地址的第1个bit位为读写操作标识位,并标识为写操作,第2-7个bit位对应所述从机SPI接口模块中的主到备缓存区的地址;
每当一个所述数据帧发送完成后,对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第一中断位置位,以触发从机产生中断,从机执行SPI数据接收操作。
第三方面,本发明实施例还提供了一种基于SPI的通信方法,包括:
当从机发送数据时,根据待发送数据,按照预设数据帧结构,生成数据帧;其中,所述数据帧的结构为1字节的帧长、0-60字节的净荷和2字节的CRC校验值;
读取从机SPI接口模块的中断寄存器;
如果所述中断寄存器的第二中断位被清除,以两字节为单位向所述从机SPI接口模块发送所述数据帧;其中,前一字节为写入数据地址,后一字节为与所述写入数据地址对应的所述数据帧的数据,所述写入数据地址的第1个bit位为读写操作标识位,并标识为写操作,第2-7个bit位对应所述从机SPI接口模块中的备到主缓存区的地址;
每当一个所述数据帧发送完成后,对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第二中断位置位,以触发主机产生中断,主机执行SPI数据接收操作。
第四方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
通用SPI接口模块;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的基于SPI的通信方法。
第五方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
从机SPI接口模块;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的基于SPI的通信方法。
第六方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例所提供基于SPI的通信方法。
第七方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例所提供基于SPI的通信方法。
本发明实施例,通过优化从机的SPI接口模块以及提供数据交换模块,为SPI接口提供了基于帧的通信机制,通过中断寄存器,为SPI接口提供了数据流的控制和数据应答机制,通过以上机制,有效的降低了CPU处理SPI接口数据的负荷。
附图说明
图1为现有技术中的通用SPI接口模块的结构示意图;
图2是本发明实施例中的一种基于SPI的通信***的结构示意图;
图3是本发明实施例中的从机SPI接口模块201的结构示意图;
图4是本发明实施例中的地址字节的内容结构图;
图5是本发明实施例中的一种基于SPI的通信方法的流程图;
图6是本发明实施例中的数据帧的结构图;
图7是本发明实施例中的另一种基于SPI的通信方法的流程图;
图8是本发明实施例中的一种设备的结构示意图;
图9是本发明实施例中的另一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例
图2为本发明实施例提供的一种基于SPI的通信***的结构示意图,本实施例可适用于主机和从机基于SPI接口进行通信的情况,该***包括:
一个配置有通用SPI接口模块101的主机10和至少一个配置有从机SPI接口模块201的从机20。图2中,以一个主机和一个从机连接为例。
如图3所示,所述从机SPI接口模块201包括数据区、串行时钟引脚CLK、主机输入/从机输出数据引脚MISO、主机输出/从机输入数据引脚MOSI和从机选择引脚NSS。这四个引脚与主机10的通用SPI接口模块101的引脚一一对应连接。从机选择引脚NSS为低电平有效,即主机10的通用SPI接口模块101的从机选择引脚输出低电平,则该从机被选中。
所述数据区包括中断寄存器、主到备缓冲区和备到主缓存区,所述中断寄存器中设置有主机触发从机的第一中断位和从机触发主机的第二中断位;图3中,以SI表示第一中断位,以MI表示第二中断位,但第一中断位和第二中断位不限于图3中配置的bit位。所述通用SPI接口模块和所述从机SPI接口模块对应引脚信号连接;所述主机的预设引脚连接到所述从机SPI接口模块的中断寄存器,以便所述主机对所述第一中断位进行写操作和对所述第二中断位进行读操作;所述从机设置为对所述第一中断位进行读操作和对所述第二中断位进行写操作。
其中,主机10和从机20都可以对从机SPI接口模块201的中断寄存器进行读写操作。对于主机10,当主机10发送数据时,读取从机SPI接口模块201的中断寄存器,当中断寄存器的第一中断位被清除时,向从机SPI接口模块201发送数据,以备从机20从从机SPI接口模块201的主到备缓冲区拷贝数据。当主机10接收数据时,读取从机SPI接口模块201的中断寄存器,如果中断寄存器的第二中断位置位,读取从机SPI接口模块201的备到主缓存区数据。对于从机20,当从机20发送数据时,读取从机SPI接口模块201的中断寄存器,当中断寄存器的第二中断位被清除时,向从机SPI接口模块201发送数据,以备主机10从从机SPI接口模块201的备到主缓冲区拷贝数据。当从机20接收数据时,读取从机SPI接口模块201的中断寄存器,如果中断寄存器的第一中断位置位,读取从机SPI接口模块201的主到备缓存区数据。
具体的,从机SPI接口模块201是一个包含SPI接口功能的IP核,如图3所示。MOSI引脚接收主机到从机的信息,同时MISO引脚发送从机到主机的信息。从机SPI接口模块201以两个字节为处理周期,第一个字节是地址,该字节内容如图4所示。第一个bit位是WRB位,用来指示这个处理周期是写操作还是读操作。后面七个bit位是数据区的地址,地址范围从0到127。
以主机对从机SPI接口模块201为例,如果WRB为1,表明是主机写操作,从机SPI接口模块201会将从MOSI引脚接收到的第二字节数据按第一字节的地址拷贝到主到备缓冲区中。如果WRB为0,表明是主机读操作,从机SPI接口模块201按第一字节的地址从备到主缓冲区拷贝一字节数据,并通过MISO引脚将该字节数据送给主机。可以理解的是,从机对从机SPI接口模块进行读写操作的过程类似,只是从机与从机SPI接口模块之间收发数据的路径不同。
对地址为0的中断寄存器,允许主机完成对中断寄存器的读操作或写操作。对读操作,如果MOSI引脚收到第一字节为0的地址,从机SPI接口模块201会在第二个字节将中断寄存器的内容通过MISO引脚发送给主机。对写操作,如果从MOSI引脚收到第一字节为0x80的地址,从机SPI接口模块201会将从MOSI引脚接收的第二个字节写到中断寄存器中。可以理解的是,从机对从机SPI接口模块进行读写操作的过程类似,只是从机与从机SPI接口模块之间收发寄存器的数据的路径不同。
本实施例还提供一种基于SPI的通信方法。如图5所示,当主机发送数据,从机接收数据时,该方法包括:
步骤510、当主机发送数据时,根据待发送数据,按照预设数据帧结构,生成数据帧。其中,如图6所示,所述数据帧的结构为1字节的帧长、0-60字节的净荷和2字节的CRC校验值。
步骤520、读取从机SPI接口模块的中断寄存器。
步骤530、如果所述中断寄存器的第一中断位被清除,以两字节为单位向所述从机SPI接口模块发送所述数据帧。
其中,前一字节为写入数据地址,后一字节为与所述写入数据地址对应的所述数据帧的数据,所述写入数据地址的第1个bit位为读写操作标识位,并标识为写操作,即第1个bit位为1,第2-7个bit位对应所述从机SPI接口模块中的主到备缓存区的地址,即数据将要写入主到备缓存区的目标寄存器。
步骤540、每当一个所述数据帧发送完成后,对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第一中断位置位。这样设置之后,可以触发从机产生中断,进而从机执行SPI数据接收操作。
步骤550、当从机接收数据时,按内存映射读取主到备缓存区的数据帧。
步骤560、当读取完所述数据帧后,进行CRC校验;
步骤570、如果CRC校验成功,保存读取到的数据;
步骤580、如果CRC校验失败,丢弃读取到的数据;
步骤590、对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第一中断位清除。
其中,将第一中断位清除,以通知主机,从机已完成数据的接收,这样,主机下次发送数据时,读取到中断寄存器的第一中断位被清除,便可以进行数据发送了。
如图7所示,当从机发送数据,主机接收数据时,该方法包括:
步骤710、当从机发送数据时,根据待发送数据,按照预设数据帧结构,生成数据帧。其中,所述数据帧的结构为1字节的帧长、0-60字节的净荷和2字节的CRC校验值。
步骤720、读取从机SPI接口模块的中断寄存器。
步骤730、如果所述中断寄存器的第二中断位被清除,以两字节为单位向所述从机SPI接口模块发送所述数据帧。
其中,前一字节为写入数据地址,后一字节为与所述写入数据地址对应的所述数据帧的数据,所述写入数据地址的第1个bit位为读写操作标识位,并标识为写操作,第2-7个bit位对应所述从机SPI接口模块中的备到主缓存区的地址。
步骤740、每当一个所述数据帧发送完成后,对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第二中断位置位。以触发主机产生中断,主机执行SPI数据接收操作。
步骤750、当主机接收数据时,读取从机SPI接口模块的中断寄存器。
步骤760、如果所述中断寄存器的第二中断位置位,向所述从机SPI接口模块发送一字节的预设数据地址,以读取出待接收数据帧的帧长。
其中,所述预设数据地址的第1个bit位为读写操作标识位,并标识为读操作,第2-7个bit位为所述从机SPI接口模块中的备到主缓存区首寄存器地址。
步骤770、根据所述待接收数据帧的帧长,以一字节为单位,循环读取备到主缓存区余下的数据。
步骤780、当读取完所述余下的数据后,进行CRC校验。
步骤790、如果CRC校验成功,保存读取到的数据。
步骤7100、如果CRC校验失败,丢弃读取到的数据。
步骤7110、对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第二中断位清除。
如图3所示,主机可以通过设置SI对应的bit位触发给从机的中断。从机可以通过设置MI对应的bit位,并输出GPIO管脚,如果主机连接该GPIO管脚作为硬中断接口,则此bit位可以作为从机触发主机的中断位。
本实施例的技术方案,通过优化从机的SPI接口模块以及提供数据交换模块,为SPI接口提供了基于帧的通信机制,通过中断寄存器,为SPI接口提供了数据流的控制和数据应答机制,通过以上机制,有效的降低了CPU处理SPI接口数据的负荷。
图8为本发明实施例提供的一种设备的结构示意图,如图8所示,该设备包括处理器810、存储器820和通用SPI接口模块830;设备中处理器810的数量可以是一个或多个,图8中以一个处理器810为例;设备中的处理器810、存储器820和通用SPI接口模块830可以通过总线或其他方式连接,图8中以通过总线连接为例。
存储器820作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于SPI的通信方法对应的程序指令/模块。处理器810通过运行存储在存储器820中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述应用于主机的基于SPI的通信方法。
存储器820可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器820可进一步包括相对于处理器810远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。通用SPI接口模块830用于主机与从机进行SPI通信。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种基于SPI的通信方法,包括:
当主机发送数据时,根据待发送数据,按照预设数据帧结构,生成数据帧;其中,所述数据帧的结构为1字节的帧长、0-60字节的净荷和2字节的CRC校验值;
读取从机SPI接口模块的中断寄存器;
如果所述中断寄存器的第一中断位被清除,以两字节为单位向所述从机SPI接口模块发送所述数据帧;其中,前一字节为写入数据地址,后一字节为与所述写入数据地址对应的所述数据帧的数据,所述写入数据地址的第1个bit位为读写操作标识位,并标识为写操作,第2-7个bit位对应所述从机SPI接口模块中的主到备缓存区的地址;
每当一个所述数据帧发送完成后,对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第一中断位置位,以触发从机产生中断,从机执行SPI数据接收操作。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的应用于主机的基于SPI的通信方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例所述的方法。
图9为本发明实施例提供的一种设备的结构示意图,如图9所示,该设备包括处理器910、存储器920和从机SPI接口模块930;设备中处理器910的数量可以是一个或多个,图9中以一个处理器910为例;设备中的处理器910、存储器920和从机SPI接口模块930可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器920作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于SPI的通信方法对应的程序指令/模块。处理器910通过运行存储在存储器920中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述应用于从机的基于SPI的通信方法。
存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器920可进一步包括相对于处理器910远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。从机SPI接口模块930用于主机与从机进行SPI通信。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种基于SPI的通信方法,包括:
当从机发送数据时,根据待发送数据,按照预设数据帧结构,生成数据帧;其中,所述数据帧的结构为1字节的帧长、0-60字节的净荷和2字节的CRC校验值;
读取从机SPI接口模块的中断寄存器;
如果所述中断寄存器的第二中断位被清除,以两字节为单位向所述从机SPI接口模块发送所述数据帧;其中,前一字节为写入数据地址,后一字节为与所述写入数据地址对应的所述数据帧的数据,所述写入数据地址的第1个bit位为读写操作标识位,并标识为写操作,第2-7个bit位对应所述从机SPI接口模块中的备到主缓存区的地址;
每当一个所述数据帧发送完成后,对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第二中断位置位,以触发主机产生中断,主机执行SPI数据接收操作。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的应用于从机的基于SPI的通信方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种基于SPI的通信***,其特征在于,包括:
一个配置有通用SPI接口模块的主机和至少一个配置有从机SPI接口模块的从机;所述从机SPI接口模块包括数据区、串行时钟引脚、主机输入/从机输出数据引脚、主机输出/从机输入数据引脚和从机选择引脚;所述数据区包括中断寄存器、主到备缓冲区和备到主缓存区,所述中断寄存器中设置有主机触发从机的第一中断位和从机触发主机的第二中断位;所述通用SPI接口模块和所述从机SPI接口模块对应引脚信号连接;所述主机的预设引脚连接到所述从机SPI接口模块的中断寄存器,以便所述主机对所述第一中断位进行写操作和对所述第二中断位进行读操作;所述从机设置为对所述第一中断位进行读操作和对所述第二中断位进行写操作。
2.一种基于SPI的通信方法,其特征在于,包括:
当主机发送数据时,根据待发送数据,按照预设数据帧结构,生成数据帧;其中,所述数据帧的结构为1字节的帧长、0-60字节的净荷和2字节的CRC校验值;
读取从机SPI接口模块的中断寄存器;
如果所述中断寄存器的第一中断位被清除,以两字节为单位向所述从机SPI接口模块发送所述数据帧;其中,前一字节为写入数据地址,后一字节为与所述写入数据地址对应的所述数据帧的数据,所述写入数据地址的第1个bit位为读写操作标识位,并标识为写操作,第2-7个bit位对应所述从机SPI接口模块中的主到备缓存区的地址;
每当一个所述数据帧发送完成后,对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第一中断位置位,以触发从机产生中断,从机执行SPI数据接收操作。
3.根据权利要求2所述的方法,其特征在于,还包括:
当主机接收数据时,读取从机SPI接口模块的中断寄存器;
如果所述中断寄存器的第二中断位置位,向所述从机SPI接口模块发送一字节的预设数据地址,以读取出待接收数据帧的帧长;所述预设数据地址的第1个bit位为读写操作标识位,并标识为读操作,第2-7个bit位为所述从机SPI接口模块中的备到主缓存区首寄存器地址;
根据所述待接收数据帧的帧长,以一字节为单位,循环读取备到主缓存区余下的数据;
当读取完所述余下的数据后,进行CRC校验;
如果CRC校验成功,保存读取到的数据;
如果CRC校验失败,丢弃读取到的数据;
对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第二中断位清除。
4.一种基于SPI的通信方法,其特征在于,包括:
当从机发送数据时,根据待发送数据,按照预设数据帧结构,生成数据帧;其中,所述数据帧的结构为1字节的帧长、0-60字节的净荷和2字节的CRC校验值;
读取从机SPI接口模块的中断寄存器;
如果所述中断寄存器的第二中断位被清除,以两字节为单位向所述从机SPI接口模块发送所述数据帧;其中,前一字节为写入数据地址,后一字节为与所述写入数据地址对应的所述数据帧的数据,所述写入数据地址的第1个bit位为读写操作标识位,并标识为写操作,第2-7个bit位对应所述从机SPI接口模块中的备到主缓存区的地址;
每当一个所述数据帧发送完成后,对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第二中断位置位,以触发主机产生中断,主机执行SPI数据接收操作。
5.根据权利要求4所述的方法,其特征在于,还包括:
当从机接收数据时,按内存映射读取主到备缓存区的数据帧;
当读取完所述数据帧后,进行CRC校验;
如果CRC校验成功,保存读取到的数据;
如果CRC校验失败,丢弃读取到的数据;
对所述从机SPI接口模块的中断寄存器执行写操作,将所述中断寄存器的第一中断位清除。
6.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
通用SPI接口模块;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求2或3所述的基于SPI的通信方法。
7.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
从机SPI接口模块;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求4或5所述的基于SPI的通信方法。
8.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求2或3所述的基于SPI的通信方法。
9.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求4或5所述的基于SPI的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811648586.7A CN109726163B (zh) | 2018-12-30 | 2018-12-30 | 一种基于spi的通信***、方法、设备和储存介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811648586.7A CN109726163B (zh) | 2018-12-30 | 2018-12-30 | 一种基于spi的通信***、方法、设备和储存介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109726163A true CN109726163A (zh) | 2019-05-07 |
CN109726163B CN109726163B (zh) | 2020-12-11 |
Family
ID=66298644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811648586.7A Active CN109726163B (zh) | 2018-12-30 | 2018-12-30 | 一种基于spi的通信***、方法、设备和储存介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109726163B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110531686A (zh) * | 2019-09-28 | 2019-12-03 | 徐州可云智能科技有限公司 | 一种基于单主多从协议实现多主机的装置及其方法 |
CN110765058A (zh) * | 2019-09-12 | 2020-02-07 | 深圳震有科技股份有限公司 | Gpio实现spi从机功能方法、***、设备及介质 |
CN111427815A (zh) * | 2020-03-05 | 2020-07-17 | 深圳震有科技股份有限公司 | 一种基于spi接口的核间通讯方法、终端及存储介质 |
CN111625281A (zh) * | 2020-05-25 | 2020-09-04 | 上海载德信息科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN111984581A (zh) * | 2020-08-14 | 2020-11-24 | 广州邦讯信息***有限公司 | 一种基于Linux的SPI总线主从设备通讯***、方法及装置 |
CN112416832A (zh) * | 2020-11-06 | 2021-02-26 | 光华临港工程应用技术研发(上海)有限公司 | 基于mips架构处理器的通信*** |
CN113176966A (zh) * | 2021-03-12 | 2021-07-27 | 青芯半导体科技(上海)有限公司 | 一种检查spi接收数据有效性的***及方法 |
CN114338260A (zh) * | 2020-09-28 | 2022-04-12 | 宝能汽车集团有限公司 | 车辆数字仪表的显示控制***与方法、车辆 |
CN115543898A (zh) * | 2022-09-26 | 2022-12-30 | 南京国电南自维美德自动化有限公司 | 一种通信总线扩展方法及装置 |
CN115834739A (zh) * | 2023-02-16 | 2023-03-21 | 石家庄科林电气股份有限公司 | 一种台区智能融合终端spi通信中不定长数据帧的接收方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1083639A (zh) * | 1992-07-21 | 1994-03-09 | 先进显微设备股份有限公司 | 集成电路以及使用该集成电路的无绳电话 |
CN1159032A (zh) * | 1994-11-10 | 1997-09-10 | 摩托罗拉公司 | 后台操作模式下透明操作的数据处理器及其实现的方法 |
EP1085722A3 (en) * | 1999-09-15 | 2006-12-13 | Koninklijke Philips Electronics N.V. | End-of-message handling and interrupt generation in a CAN module providing hardware assembly of multi-frame CAN messages |
CN101997834A (zh) * | 2009-08-10 | 2011-03-30 | 北京多思科技发展有限公司 | 支持高性能安全协议的装置 |
CN103814550A (zh) * | 2011-09-27 | 2014-05-21 | 罗伯特·博世有限公司 | 用于运行通信装置的方法 |
CN104020704A (zh) * | 2014-06-19 | 2014-09-03 | 大连理工大学 | I/o口模拟spi接口的迷你嵌入式控制器装置和方法 |
CN104616056A (zh) * | 2014-08-06 | 2015-05-13 | 斯凯瑞利(北京)科技有限公司 | 基于电子标签的数据传输***及其电子标签 |
CN104809094A (zh) * | 2015-05-25 | 2015-07-29 | 中国电子科技集团公司第四十七研究所 | Spi控制器及其通信方法 |
CN104955173A (zh) * | 2015-07-07 | 2015-09-30 | 无锡集敏科技有限公司 | Zigbee无线组网方法 |
CN105468563A (zh) * | 2015-12-28 | 2016-04-06 | 杭州士兰控股有限公司 | Spi从设备、spi通信***及spi通信方法 |
CN105805885A (zh) * | 2015-11-30 | 2016-07-27 | 张胜国 | 智能室内空间环境调节*** |
US20160253277A1 (en) * | 2015-02-26 | 2016-09-01 | Red Hat Israel, Ltd. | Shared pci interrupt line management |
-
2018
- 2018-12-30 CN CN201811648586.7A patent/CN109726163B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1083639A (zh) * | 1992-07-21 | 1994-03-09 | 先进显微设备股份有限公司 | 集成电路以及使用该集成电路的无绳电话 |
CN1159032A (zh) * | 1994-11-10 | 1997-09-10 | 摩托罗拉公司 | 后台操作模式下透明操作的数据处理器及其实现的方法 |
EP1085722A3 (en) * | 1999-09-15 | 2006-12-13 | Koninklijke Philips Electronics N.V. | End-of-message handling and interrupt generation in a CAN module providing hardware assembly of multi-frame CAN messages |
CN101997834A (zh) * | 2009-08-10 | 2011-03-30 | 北京多思科技发展有限公司 | 支持高性能安全协议的装置 |
CN103814550A (zh) * | 2011-09-27 | 2014-05-21 | 罗伯特·博世有限公司 | 用于运行通信装置的方法 |
CN104020704A (zh) * | 2014-06-19 | 2014-09-03 | 大连理工大学 | I/o口模拟spi接口的迷你嵌入式控制器装置和方法 |
CN104616056A (zh) * | 2014-08-06 | 2015-05-13 | 斯凯瑞利(北京)科技有限公司 | 基于电子标签的数据传输***及其电子标签 |
US20160253277A1 (en) * | 2015-02-26 | 2016-09-01 | Red Hat Israel, Ltd. | Shared pci interrupt line management |
CN104809094A (zh) * | 2015-05-25 | 2015-07-29 | 中国电子科技集团公司第四十七研究所 | Spi控制器及其通信方法 |
CN104955173A (zh) * | 2015-07-07 | 2015-09-30 | 无锡集敏科技有限公司 | Zigbee无线组网方法 |
CN105805885A (zh) * | 2015-11-30 | 2016-07-27 | 张胜国 | 智能室内空间环境调节*** |
CN105468563A (zh) * | 2015-12-28 | 2016-04-06 | 杭州士兰控股有限公司 | Spi从设备、spi通信***及spi通信方法 |
Non-Patent Citations (2)
Title |
---|
MICROCHIP TECHNOLOGY INC: ""Serial Peripheral Interface (SPI)"", 《HTTP://WWW.MICROCHIP.COM》 * |
TEXAS INSTRUMENTS: ""KeyStone Architecture Serial Peripheral Interface (SPI) User Guide"", 《WWW.TI.COM》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765058A (zh) * | 2019-09-12 | 2020-02-07 | 深圳震有科技股份有限公司 | Gpio实现spi从机功能方法、***、设备及介质 |
CN110531686A (zh) * | 2019-09-28 | 2019-12-03 | 徐州可云智能科技有限公司 | 一种基于单主多从协议实现多主机的装置及其方法 |
CN111427815A (zh) * | 2020-03-05 | 2020-07-17 | 深圳震有科技股份有限公司 | 一种基于spi接口的核间通讯方法、终端及存储介质 |
CN111625281A (zh) * | 2020-05-25 | 2020-09-04 | 上海载德信息科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN111984581A (zh) * | 2020-08-14 | 2020-11-24 | 广州邦讯信息***有限公司 | 一种基于Linux的SPI总线主从设备通讯***、方法及装置 |
CN111984581B (zh) * | 2020-08-14 | 2022-05-10 | 广州邦讯信息***有限公司 | 一种基于Linux的SPI总线主从设备通讯***、方法及装置 |
CN114338260A (zh) * | 2020-09-28 | 2022-04-12 | 宝能汽车集团有限公司 | 车辆数字仪表的显示控制***与方法、车辆 |
CN112416832A (zh) * | 2020-11-06 | 2021-02-26 | 光华临港工程应用技术研发(上海)有限公司 | 基于mips架构处理器的通信*** |
CN113176966A (zh) * | 2021-03-12 | 2021-07-27 | 青芯半导体科技(上海)有限公司 | 一种检查spi接收数据有效性的***及方法 |
CN115543898A (zh) * | 2022-09-26 | 2022-12-30 | 南京国电南自维美德自动化有限公司 | 一种通信总线扩展方法及装置 |
CN115834739A (zh) * | 2023-02-16 | 2023-03-21 | 石家庄科林电气股份有限公司 | 一种台区智能融合终端spi通信中不定长数据帧的接收方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109726163B (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726163A (zh) | 一种基于spi的通信***、方法、设备和储存介质 | |
GB2257538A (en) | Air conditioning control. | |
US20070079015A1 (en) | Methods and arrangements to interface a data storage device | |
JPH1078889A (ja) | マイクロコンピュータ | |
CN101261611A (zh) | 一种***设备间的数据传输装置和传输方法 | |
JP2004021351A (ja) | Icカード及びその制御方法 | |
CN109426511A (zh) | 软核更新方法和*** | |
CN116486868A (zh) | 计算高速链路(CXL)上的高速非易失性存储器(NVMe) | |
WO2023030128A1 (zh) | 通信方法、装置、电子设备、存储介质及片上*** | |
EP2194458A2 (en) | Request processing device, request processing system, and access testing method | |
JP6249117B1 (ja) | 情報処理装置 | |
CN112860595B (zh) | Pci设备或pcie设备、数据存取方法及相关组件 | |
CN106940684B (zh) | 一种按比特写数据的方法及装置 | |
KR101109600B1 (ko) | 직접 메모리 접근 제어를 이용한 데이터 전송 방법 및 그장치 | |
US20130111079A1 (en) | Data processing device, chain and method, and corresponding computer program | |
US7577560B2 (en) | Microcomputer logic development device | |
US20040186949A1 (en) | XIP system and method for serial memory | |
JP4985483B2 (ja) | 計算機システム、ネットワークブートロードシステム、及び、そのブートロード方法 | |
US20230236742A1 (en) | NONVOLATILE MEMORY EXPRESS (NVMe) OVER COMPUTE EXPRESS LINK (CXL) | |
CN111049566B (zh) | 信息传递方法和机载lrm模块 | |
CN115203107B (zh) | 一种总线接口配置方法、***以及电子设备 | |
CN117951048A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
JP2005301714A (ja) | マルチcpuシステム、そのデータ転送方法、及びそのプログラム | |
JP2853607B2 (ja) | ジョブ間通信システム | |
JPS60144068A (ja) | フアクシミリ送信モジユ−ル |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 523000 Room 401 and 402, building 5, No. 24, industrial East Road, Songshanhu Park, Dongguan City, Guangdong Province Patentee after: Guangdong daguangxin Technology Co.,Ltd. Address before: 523808 the first, second and third floors of building 16, small and medium-sized science and technology enterprise Pioneer Park, North Industrial City, Songshanhu high tech Industrial Development Zone, Dongguan City, Guangdong Province Patentee before: Guangdong Dapu Telecom Technology Co.,Ltd. |
|
CP03 | Change of name, title or address |