CN107562666A - 基于spi总线的设备间通信的方法、***及相关装置 - Google Patents
基于spi总线的设备间通信的方法、***及相关装置 Download PDFInfo
- Publication number
- CN107562666A CN107562666A CN201710882738.9A CN201710882738A CN107562666A CN 107562666 A CN107562666 A CN 107562666A CN 201710882738 A CN201710882738 A CN 201710882738A CN 107562666 A CN107562666 A CN 107562666A
- Authority
- CN
- China
- Prior art keywords
- spi
- communication
- frame
- frame structure
- slave units
- 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
- Small-Scale Networks (AREA)
Abstract
本申请公开了一种基于SPI总线的设备间通信的方法,包括:利用数量均为1的MISO线、MOSI线、SCLK线以及NCS线将SPI主设备与各SPI从设备相连接;根据主从设备之间的通信需求生成携带有目标SPI设备识别信息的预设通信协议,并利用通信协议预设通信协议实现与各通信协议SPI从设备间的通信,以在仅使用1根通信协议NCS线的情况下实现SPI主从设备间的通信。该方法仅需使用1根片选信号线就能够实现目标电子设备的确定、数据的读写,极大的节省了通信连接建立的运维成本,增加了布线空间的利用率。本申请还同时公开了一种基于SPI总线的设备间通信的***及相关装置,具有上述有益效果。
Description
技术领域
本申请涉及电子设备通信技术领域,特别涉及一种基于SPI总线的设备间通信的方法、***、装置以及计算机可读存储介质。
背景技术
多个电子设备或电子元器件间的互连互通,常用总线连接,常用的总线有SPI(Serial Peripheral Interface,串行外设接口)总线,IIC(Inter-Integrated Circuit,集成电路总线,又被称为I2C)总线,CAN(Controller Area Network,控制器局域网络)总线等,而具体选择哪种总线通信通常需要依据传输数据量的大小、传输速度的要求以及总线信号的数量几方面因素以及集中总线的特性和优缺点选择。
其中,CAN总线与IIC总线的优点是只需要2跟信号线,总线上可以挂多个从设备,缺点是传输速率相对于SPI设备速率较低;SPI总线使用四根信号线,传输速度快,缺点是当从设备有多个时,需要每个从设备单独的一根片选信号,所以从设备多时需要的信号线较多。在一主多从设备之间需要高速进行通信时,会因采用SPI总线造成的片选信号线的数量过多,导致十分混乱,占用十分有限的布线空间。
所以,如何在一主多从的电子设备之间采用SPI总线实现高速通信的基础上,提供一种无须每增加一个从设备也相应增加一根片选信号线、通信连接建立准确、节省布线空间、减少通信连接建立的运维成本的设备间通信机制是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种基于SPI总线的设备间通信的方法、***、装置以及计算机可读存储介质,其在一主多从的电子设备之间采用SPI总线实现高速通信的基础上,能够使用1根片选信号线实现目标电子设备的确定、数据的读写,极大的节省了通信连接建立的运维成本,增加了布线空间的利用率。
为解决上述技术问题,本申请提供一种基于SPI总线的设备间通信的方法,该方法包括:
利用数量均为1的MISO线、MOSI线、SCLK线以及NCS线将SPI主设备与各SPI从设备相连接;
根据主从设备之间的通信需求生成携带有目标SPI设备识别信息的预设通信协议,并利用所述预设通信协议实现与各所述SPI从设备间的通信,以在仅使用1根所述NCS线的情况下实现SPI主从设备间的通信。
可选的,根据主从设备之间的通信需求生成携带有目标SPI设备识别信息的预设通信协议,包括:
根据所述通信需求依次按照帧开始、帧类型、设备地址、帧长度、数据以及帧结束的顺序生成SPI通信帧结构;
根据所述SPI通信帧结构中各部分参数的不同,生成至少包含查询帧、点对点写数据帧、点对点读数据帧以及广播帧在内的预设通信协议。
可选的,利用所述预设通信协议实现与各所述SPI从设备间的通信,包括:
根据外部输入的需求选择信息确定所述预设通信协议中SPI通信帧结构的具体类型;
根据所述具体类型在所述SPI通信帧结构中各部分进行相应参数的设置,得到目标帧结构;
利用所述目标帧结构实现所述SPI主设备与各所述SPI从设备间的通信。
可选的,根据所述具体类型在所述SPI通信帧结构中各部分进行对应参数的设置,得到目标帧结构,包括:
当所述SPI主设备需要查询各所述SPI从设备的基本信息时,将所述SPI通信帧结构中帧类型部分的参数设置为查询帧,得到SPI查询帧;其中,所述基本信息包括在线状态、状态信息、版本信息以及故障信息中的至少一个。
可选的,利用所述目标帧结构实现所述SPI主设备与各所述SPI从设备间的通信,包括;
各所述SPI从设备从与所述SPI主设备相连的MOSI线接收所述SPI查询帧;
采用时分复用的方式将各所述SPI从设备的基本信息依次通过所述MISO线传输至所述SPI主设备。
本申请还提供了一种基于SPI总线的设备间通信的***,该***包括:
SPI总线连接单元,用于利用数量均为1的MISO线、MOSI线、SCLK线以及NCS线将SPI主设备与各SPI从设备相连接;
设备通信单元,用于根据主从设备之间的通信需求生成携带有目标SPI设备识别信息的预设通信协议,并利用所述预设通信协议实现与各所述SPI从设备间的通信,以在仅使用1根所述NCS线的情况下实现SPI主从设备间的通信。
可选的,所述设备通信单元包括:
SPI通信帧结构布置子单元,用于根据所述通信需求依次按照帧开始、帧类型、设备地址、帧长度、数据以及帧结束的顺序生成SPI通信帧结构;
预设通信协议生成子单元,用于根据所述SPI通信帧结构中各部分参数的不同,生成至少包含查询帧、点对点写数据帧、点对点读数据帧以及广播帧在内的预设通信协议;
具体类型确定子单元,用于根据外部输入的需求选择信息确定所述预设通信协议中SPI通信帧结构的具体类型;
目标帧结构获得子单元,用于根据所述具体类型在所述SPI通信帧结构中各部分进行相应参数的设置,得到目标帧结构;
通信实现子单元,用于利用所述目标帧结构实现所述SPI主设备与各所述SPI从设备间的通信。
可选的,所述目标帧结构获得子单元包括:
SPI查询帧设置模块,用于将所述SPI通信帧结构中帧类型部分的参数设置为查询帧,得到SPI查询帧。
本申请还提供了一种基于SPI总线的设备间通信装置,该基于SPI总线的设备间通信装置包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所述的基于SPI总线的设备间通信的方法的步骤。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所述的基于SPI总线的设备间通信的方法的步骤。
本申请所提供的一种基于SPI总线的设备间通信的方法,通过利用数量均为1的MISO线、MOSI线、SCLK线以及NCS线将SPI主设备与各SPI从设备相连接;根据主从设备之间的通信需求生成携带有目标SPI设备识别信息的预设通信协议,并利用所述预设通信协议实现与各所述SPI从设备间的通信,以在仅使用1根所述NCS线的情况下实现SPI主从设备间的通信。
显然,本申请所提供的技术方案,在仅利用1根NCS线将SPI主设备与各SPI从设备相连接后,搭配携带有目标SPI设备识别信息的预设通信协议,并根据通信需求更改该预设通信协议的内容使其具有不同的功能。该方法在一主多从的电子设备之间采用SPI总线实现高速通信的基础上,能够使用1根片选信号线实现目标电子设备的确定、数据的读写,极大的节省了通信连接建立的运维成本,增加了布线空间的利用率。本申请同时还提供了一种基于SPI总线的设备间通信的***、装置以及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中一主多从SPI设备之间利用SPI总线实现通信连接的结构示意图;
图2为本申请实施例所提供的一种基于SPI总线的设备间通信的方法的流程图;
图3为本申请实施例所提供的另一种基于SPI总线的设备间通信的方法的流程图;
图4为本申请实施例所提供的又一种基于SPI总线的设备间通信的方法的流程图;
图5为本申请实施例所提供的一种基于SPI总线的设备间通信的***的结构框图;
图6为本申请实施例所提供的另一种基于SPI总线的设备间通信的***的结构示意图。
具体实施方式
本申请的核心是提供一种基于SPI总线的设备间通信的方法、***、装置以及计算机可读存储介质,其在一主多从的电子设备之间采用SPI总线实现高速通信的基础上,能够使用1根片选信号线实现目标电子设备的确定、数据的读写,极大的节省了通信连接建立的运维成本,增加了布线空间的利用率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
SPI总线是一种高速的,全双工,同步的通信总线,在芯片的管脚上占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,如今越来越多的芯片集成了这种通信协议,其拥有的四根信号线分别是:
(1)MISO–主设备数据输入,从设备数据输出;
(2)MOSI–主设备数据输出,从设备数据输入;
(3)SCLK–时钟信号,由主设备产生;
(4)NCSn–从设备片选使能信号,由主设备控制。
标准的SPI总线,在一个SPI主设备与多个SPI从设备相连的情况下,为每个从设备分配一个片选使能信号,如果有多个SPI从设备,也就相应的需要与SPI从设备数量相同的NCSn线来为其提供一个片选是使能信号。
请参见图1,图1为现有技术中一主多从SPI设备之间利用SPI总线实现通信连接的结构示意图,对从SPI设备操作前需要先将与目标SPI从设备相连的NCSn上的片选使能信号置为低电平,其它片选使能信号置为高电平,当目标SPI从设备检测到自身的片选使能信号为低电平时,就根据要求通过与SPI主设备相连的MISO线向SPI主设备输出数据。这样一来,在SPI从设备数量较多的情况下,与SPI数量一致的NCSn线不仅需要一定空间来设置接口、占用布线空间,还面临诸如运维成本较高等其它问题。
以下结合图2,图2为本申请实施例所提供的一种基于SPI总线的设备间通信的方法的流程图。
其具体包括以下步骤:
S101:利用数量均为1的MISO线、MOSI线、SCLK线以及NCS线将SPI主设备与各SPI从设备相连接;
本申请建立在一主多从设备间需要进行高速数据通信的基础上,选用符合高速数据通信的SPI总线,且区别于现有技术中为每个SPI从设备均分配一条单独与SPI主设备相连的NCSn线,即利用数量均为1的MISO线、MOSI线、SCLK线以及NCS线将SPI主设备与各SPI从设备相连接,以在此基础上创造性的搭配一套能够实现同样目的的通信协议,能够大大减少NCSn线的数量,节省布线空间。
换句话说,只需要一根NCSn信号线,各SPI从设备共用这一根NCSn线,无需向原来一样,每个SPI从设备均通过单独的NCSn线与SPI主设备相连。
具体如何使得各SPI从设备能够共用这一根NCSn线,首先在连接方式上多种多样,例如,考虑到各SPI从设备相对于SPI主设备的方位,将该NCSn线的布线方式按照合适方位进行布置,还可以在距离各SPI从设备相对较近的位置从该NCSn线中开出并联的分支,实现共用效果;也可以通过其它方式来实现,此处并不做具体限定,应视实际情况结合各影响因素来综合考虑并选择最适合自身的方式。
S102:根据主从设备之间的通信需求生成携带有目标SPI设备识别信息的预设通信协议;
S103:利用预设通信协议实现与各SPI从设备间的通信,以在仅使用1根NCS线的情况下实现SPI主从设备间的通信。
在S101的基础上,S102和S103旨在根据主从设备之间的通信需求生成携带有目标SPI设备识别信息的预设通信协议,并利用预设通信协议实现与各SPI从设备间的通信,以在仅使用1根NCS线的情况下实现SPI主从设备间的通信。
该预设通信协议最关键的一点就是要携带目标SPI设备的识别信息,以供目标SPI设备精准的接收到和SPI主设备能够精准定位目标,在现有技术中是通过物理的NCSn线并置于低电平来定位目标SPI设备,本申请将利用传统的物理上的识别方式创造性的利用携带有目标SPI设备识别信息的预设通信协议来实现。
其中,该预设通信协议是一种最少也能够定位目标SPI设别的信息,其表现形式多种多样,例如,可以将其设计为分为各个部分的帧结构,该帧结构根据需要可以设计由多信息共同组成,并在该帧结构中放入SPI主设备和各SPI从设备就能识别的识别信息来实现定位目标SPI设备;也可以是一种对应关系查询表或者是其它能够实现相同功能的类似数据,此处并不做具体限定,可视实际情况结合具体应用场景、设备种类、设备型号、支持识别信息类型等等各影响因素来综合考虑并选择最适合的方式。
进一步的,根据该帧结构各部分内容的不同,所能起到的作用也不尽相同,可以实现包括遍历查询、写数据、读数据以及广播信息在内的诸多目的。更进一步的,还可以在该SPI主设备上增设记录功能,用户记录该SPI设备接收到了来自哪个SPI从设备的数据、向哪个SPI从设备发送了什么数据等等内容在内的信息,并可以生成相应的日志查询文件,便于后续进行查询和定位等。对于帧结构的各部分组成、日志查询文件的具体表现形式等并不做具体限定,可自行选择较为合适的方案。
基于上述技术方案,本申请实施例提供的一种基于SPI总线的设备间通信的方法,在仅利用1根NCS线将SPI主设备与各SPI从设备相连接后,搭配携带有目标SPI设备识别信息的预设通信协议,并根据通信需求更改该预设通信协议的内容使其具有不同的功能。该方法在一主多从的电子设备之间采用SPI总线实现高速通信的基础上,能够使用1根片选信号线实现目标电子设备的确定、数据的读写,极大的节省了通信连接建立的运维成本,增加了布线空间的利用率。
以下结合图3,图3为本申请实施例所提供的另一种基于SPI总线的设备间通信的方法的流程图。
本实施例是针对上一实施例中S102和S103中如何生成预设通信协议以及如何利用该预设通信协议实现通信所做出的一个具体限定,其它步骤与上一实施例大体相同,相同部分可参见上一实施例相关部分,在此不再赘述。
其具体包括以下步骤:
S201:根据通信需求依次按照帧开始、帧类型、设备地址、帧长度、数据以及帧结束的顺序生成SPI通信帧结构;
本步骤采用不同的帧结构作为该预设通信协议的表现形式,并根据主从SPI设备之间的通信需求依次按照帧开始、帧类型、帧长度、数据以及帧结束的顺序生成SPI通信帧结构。
其中,该SPI通信帧结构中的帧开始部分是作为该帧结构的开头部分,含有特殊的识别编码,作用在于能够让各识别终端在读取到这一部分内容是,判定接下来的内容属于一个新的帧结构,而不是前一个或任意一个。
帧类型,可以理解为对帧结构的一个分类,是对该类型帧结构所起的目的进行划分出来的,可以包括查询帧、点对点写、点对点读以及广播帧在内的多种类型,因为考虑到不同的帧类型可能需要不同的编解码方式、配套的内容解析方法等等,此处作用为真正的数据部分做铺垫,以便解读数据。
设备地址,即使目标SPI设备对应的地址,可以是物理地址也可以是逻辑地址等;帧长度,顾名思义就是这个帧结构的长度,作为引导继续向后解读的指导;数据部分即存放该类型帧结构真正要实现的目的;帧结束相对于帧开始是一个结束信号。
按照上述各部分的排序组成该SPI通信帧结构,其中,该SPI通信帧结构各部分的表现形式多种多样,例如采用不同的进制进行信息的转换,采用不同的间隔和组合等等,此处并不做具体限定,可以根据实际情况结合各方面的制约条件进行综合考虑。
S202:根据SPI通信帧结构中各部分参数的不同,生成至少包含查询帧、点对点写数据帧、点对点读数据帧以及广播帧在内的预设通信协议;
在S201的基础上,本步骤通过将真实参数置入该SPI通信帧结构中各部分,生成至少包含查询帧、点对点写数据帧、点对点读数据帧以及广播帧在内的预设通信协议。
其中,查询帧是SPI主设备获取各SPI从设备参数信息的一个帧结构;点对点写数据帧是该SPI主设备想要将目标数据写入到目标SPI从设备的一个帧结构;点对点读数据帧是该SPI主设备想要从目标SPI从设备中读取目标数据的一个帧结构;广播帧是SPI设备需要将某些信息同时发送到所有SPI从设备的一个帧结构。各类型帧结构想要实现其各自的目的,最重要的就是定位目标SPI设备,即通过精准定位目标SPI设备的设备地址来进行识别,虽然所有SPI从设备都会接收到各类型帧结构,只需由各SPI从设备根据自身的设备地址与接收到的帧结构中的设备地址做判断,判断是否是自身即可进行后续流程。
S203:根据外部输入的需求选择信息确定预设通信协议中SPI通信帧结构的具体类型;
S204:根据具体类型在SPI通信帧结构中各部分进行相应参数的设置,得到目标帧结构;
在S202的基础上,S203旨在外部输入的需求选择信息确定该预设通信协议中SPI通信帧结构的具体表现形式,即决定是哪种类型的帧结构。紧接着由S204根据S203已决定好的具体类型的SPI通信帧结构,并依次进行各部分参数的设置,得到完成的目标帧结构。
其中,该外部输入的需求选择信息的表现形式多种多样,可以由外部信息输入设备直接输入的需求选择信息,也可以是像触摸显示屏那样能够将位置选择信息转化为相应的需求选择信息等,此处并不做具体限定。
S205:利用目标帧结构实现SPI主设备与各SPI从设备间的通信。
在S204的基础上,本步骤旨在利用该目标帧结构实现该SPI主设备与各SPI从设备之间的通信,例如,通过查询帧实现该SPI主设备获取各SPI从设备的参数信息,当然,也可以利用其它类型的帧结构实现其他目的。
以下结合图4,图4为本申请实施例所提供的又一种基于SPI总线的设备间通信的方法的流程图。
本实施例是针对上一实施例中S204和S205中如何得到目标帧结构以及如何利用该目标帧结构实现SPI主设备与各SPI从设备间的通信所做出的一个具体限定,其它步骤与上一实施例大体相同,相同部分可参见上一实施例相关部分,在此不再赘述。
其具体包括以下步骤:
S301:当SPI主设备需要查询各SPI从设备的基本信息时,将SPI通信帧结构中帧类型部分的参数设置为查询帧,得到SPI查询帧;
S302:各SPI从设备从与SPI主设备相连的MOSI线接收SPI查询帧;
S303:采用时分复用的方式将各SPI从设备的基本信息依次通过MISO线传输至SPI主设备;
本实施通过查询帧的例子进行一个具体实现方式的描述,其中因为只有一根MISO线的缘故,若所有SPI从设备均在同一时间或同一时间间隔内向SPI主设备发送自身的参数信息,必定会造成参数信息的混杂和无法解读,故此处采用时分复用的方式解决这一隐患。当然,也可以采用其它方式实现参数信息的有序传输,例如分组传输、补零法等等,此处并不做具体限定,应视实际情况结合各制约因素进行综合考虑。
基于上述技术方案,本申请实施例提供的一种基于SPI总线的设备间通信的方法,在仅利用1根NCS线将SPI主设备与各SPI从设备相连接后,搭配携带有目标SPI设备识别信息的预设通信协议,并根据通信需求更改该预设通信协议的内容使其具有不同的功能。该方法在一主多从的电子设备之间采用SPI总线实现高速通信的基础上,能够使用1根片选信号线实现目标电子设备的确定、数据的读写,极大的节省了通信连接建立的运维成本,增加了布线空间的利用率。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到更具本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图5,图5为本申请实施例所提供的一种基于SPI总线的设备间通信的***的结构框图。
该***可以包括:
SPI总线连接单元100,用于利用数量均为1的MISO线、MOSI线、SCLK线以及NCS线将SPI主设备与各SPI从设备相连接;
设备通信单元200,用于根据主从设备之间的通信需求生成携带有目标SPI设备识别信息的预设通信协议,并利用预设通信协议实现与各SPI从设备间的通信,以在仅使用1根NCS线的情况下实现SPI主从设备间的通信。
其中,设备通信单元200包括:
SPI通信帧结构布置子单元,用于根据通信需求依次按照帧开始、帧类型、帧长度、数据以及帧结束的顺序生成SPI通信帧结构;
预设通信协议生成子单元,用于根据SPI通信帧结构中各部分参数的不同,生成至少包含查询帧、点对点写数据帧、点对点读数据帧以及广播帧在内的预设通信协议;
具体类型确定子单元,用于根据外部输入的需求选择信息确定预设通信协议中SPI通信帧结构的具体类型;
目标帧结构获得子单元,用于根据具体类型在SPI通信帧结构中各部分进行相应参数的设置,得到目标帧结构;
通信实现子单元,用于利用目标帧结构实现SPI主设备与各SPI从设备间的通信。
其中,目标帧结构获得子单元包括:
SPI查询帧设置模块,用于将SPI通信帧结构中帧类型部分的参数设置为查询帧,得到SPI查询帧。
其中,通信实现子单元包括:
查询帧接收模块,用于各SPI从设备从与SPI主设备相连的MOSI线接收SPI查询帧;
时分复用传输模块,用于采用时分复用的方式将各SPI从设备的基本信息依次通过MISO线传输至SPI主设备。
以上各单元可以应用于以下的一个具体的实际例子中:
请参见图6,图6为本申请实施例所提供的另一种基于SPI总线的设备间通信的***的结构示意图。
整个通信***由一块主控板和7块信号采集板组成。主控板和信号采集板间通过底板连接。主控板对各个信号采集板见需要进行配置以及信号采集,各信号采集板间不需通信。由于传输数据量较大,IIC总线和CAN总线无法满足性能要求,板件信号线数量有限,所以采用SPI总线,以及定义一套通信协议,共用一条片选信号,满足设备传输需求。
通信协议分为四种帧类型:(1)查询帧;(2)点对点写数据帧;(3)点对点读数据帧;(4)广播帧。
下面对四种帧格式进行详细说明:
1)查询帧:
SPI主设备将片选使能信号线(NCSn)设置为低电平,输出时钟与数据。
其具体帧结构组成如下:
帧开始 帧类型 帧长度 数据 帧结束
查询帧
此时SPI从设备都能收到数据,判断帧类型为查询帧,则将准备好的数据同时在MISO线上输出数据。为避免冲突,各SPI从设备根据SPI主设备的时钟采用时分复用的方式。SPI从设备1在DATA1时间发送,其他时间管脚输出为高电平,SPI从设备2在DATA2时间发送,其他时间管脚输出为高电平,以此类推。每个SPI从设备发送的DATA时间段发送若干个数据:
DATA1 DATA2 DATA3 DATA4 DATA5 DATA6 DATA7
另外一种变通的方法是:如果每个SPI从设备的有效数据为N,SPI从设备数量为M,则发送N乘以M个数据,即有效数据是N,其他位置填充数据0xFF,相当于在其他时间段管脚输出高电平。
查询帧用于SPI主设备查询各SPI从设备的基本信息,如在线状态,状态信息,版本信息,故障信息等,可以把所有待收集的数据组成一个数据包一次性查询回来,也可以分成多个帧查询。
2)点对点写数据帧
如果需要只将数据发送给某一个SPI从设备,可以采用点对点传输帧格式,即数据部分的长度变长,可以是几个字节或者几K字节,此处可以依据需求和从设备的处理能力确定。
各SPI从设备收到后根据帧类别和设备地址判断接收到的设备地址是否为本SPI设备的地址,对于不是本SPI设备的地址,则将MISO高阻。如果是的话,则准备接收和处理发来的数据。
帧开始 帧类型 设备地址 帧长度 数据 帧结束
点对点写数据 目标SPI设备地址 几字节或几K字节
3)点对点读数据帧
SPI主设备先写数据通知需要读取哪个SPI从设备的设备地址,目标SPI从设备收到后根据设备地址判断是否输出数据以及高阻,SPI主设备负责读取数据。
帧开始 帧类型 设备地址 帧长度 数据 帧结束
点对点读数据 目标SPI设备地址 几字节或几K字节
4)广播帧
广播帧用于将主设备的信息广播发送到所有单元。
帧开始 帧类型 设备地址 帧长度 数据 帧结束
广播帧 所有SPI从设备的地址
对设备地址的编码,可以采用每个从设备占用1bit的方式,如果bit位为1,则说明设备地址被选中,如果bit位全1说明为广播所有从设备都接收,如果bit位为1的多于1个说明是组播。
比如对于8个从设备,可以使用1个字节作为设备地址,bit7~bit0分别代表1个从设备,bit0为1(设备地址数值0x01)说明1号从设备被选中,如果bit0,bit3为1(设备地址数值0x03)1号和2号设备被选中,如果bit7~bit0都为1(设备地址0xff)说明所有设备被选中。
本申请还提供了一种基于SPI总线的设备间通信装置,可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然该设置装置还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种基于SPI总线的设备间通信的方法,其特征在于,包括:
利用数量均为1的MISO线、MOSI线、SCLK线以及NCS线将SPI主设备与各SPI从设备相连接;
根据主从设备之间的通信需求生成携带有目标SPI设备识别信息的预设通信协议,并利用所述预设通信协议实现与各所述SPI从设备间的通信,以在仅使用1根所述NCS线的情况下实现SPI主从设备间的通信。
2.根据权利要求1所述的方法,其特征在于,根据主从设备之间的通信需求生成携带有目标SPI设备识别信息的预设通信协议,包括:
根据所述通信需求依次按照帧开始、帧类型、设备地址、帧长度、数据以及帧结束的顺序生成SPI通信帧结构;
根据所述SPI通信帧结构中各部分参数的不同,生成至少包含查询帧、点对点写数据帧、点对点读数据帧以及广播帧在内的预设通信协议。
3.根据权利要求1或2所述的方法,其特征在于,利用所述预设通信协议实现与各所述SPI从设备间的通信,包括:
根据外部输入的需求选择信息确定所述预设通信协议中SPI通信帧结构的具体类型;
根据所述具体类型在所述SPI通信帧结构中各部分进行相应参数的设置,得到目标帧结构;
利用所述目标帧结构实现所述SPI主设备与各所述SPI从设备间的通信。
4.根据权利要求3所述的方法,其特征在于,根据所述具体类型在所述SPI通信帧结构中各部分进行对应参数的设置,得到目标帧结构,包括:
当所述SPI主设备需要查询各所述SPI从设备的基本信息时,将所述SPI通信帧结构中帧类型部分的参数设置为查询帧,得到SPI查询帧;其中,所述基本信息包括在线状态、状态信息、版本信息以及故障信息中的至少一个。
5.根据权利要求4所述的方法,其特征在于,利用所述目标帧结构实现所述SPI主设备与各所述SPI从设备间的通信,包括;
各所述SPI从设备从与所述SPI主设备相连的MOSI线接收所述SPI查询帧;
采用时分复用的方式将各所述SPI从设备的基本信息依次通过所述MISO线传输至所述SPI主设备。
6.一种基于SPI总线的设备间通信的***,其特征在于,包括:
SPI总线连接单元,用于利用数量均为1的MISO线、MOSI线、SCLK线以及NCS线将SPI主设备与各SPI从设备相连接;
设备通信单元,用于根据主从设备之间的通信需求生成携带有目标SPI设备识别信息的预设通信协议,并利用所述预设通信协议实现与各所述SPI从设备间的通信,以在仅使用1根所述NCS线的情况下实现SPI主从设备间的通信。
7.根据权利要求6所述的***,其特征在于,所述设备通信单元包括:
SPI通信帧结构布置子单元,用于根据所述通信需求依次按照帧开始、帧类型、设备地址、帧长度、数据以及帧结束的顺序生成SPI通信帧结构;
预设通信协议生成子单元,用于根据所述SPI通信帧结构中各部分参数的不同,生成至少包含查询帧、点对点写数据帧、点对点读数据帧以及广播帧在内的预设通信协议;
具体类型确定子单元,用于根据外部输入的需求选择信息确定所述预设通信协议中SPI通信帧结构的具体类型;
目标帧结构获得子单元,用于根据所述具体类型在所述SPI通信帧结构中各部分进行相应参数的设置,得到目标帧结构;
通信实现子单元,用于利用所述目标帧结构实现所述SPI主设备与各所述SPI从设备间的通信。
8.根据权利要求7所述的***,其特征在于,所述目标帧结构获得子单元包括:
SPI查询帧设置模块,用于将所述SPI通信帧结构中帧类型部分的参数设置为查询帧,得到SPI查询帧。
9.一种基于SPI总线的设备间通信装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述基于SPI总线的设备间通信的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述基于SPI总线的设备间通信的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710882738.9A CN107562666B (zh) | 2017-09-26 | 2017-09-26 | 基于spi总线的设备间通信的方法、***及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710882738.9A CN107562666B (zh) | 2017-09-26 | 2017-09-26 | 基于spi总线的设备间通信的方法、***及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107562666A true CN107562666A (zh) | 2018-01-09 |
CN107562666B CN107562666B (zh) | 2020-10-23 |
Family
ID=60982483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710882738.9A Active CN107562666B (zh) | 2017-09-26 | 2017-09-26 | 基于spi总线的设备间通信的方法、***及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107562666B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108055186A (zh) * | 2018-01-30 | 2018-05-18 | 浙江鸿泉车联网有限公司 | 一种主从处理器通信方法及装置 |
CN108768450A (zh) * | 2018-06-01 | 2018-11-06 | 威创集团股份有限公司 | 通信方法和***、计算机存储介质 |
CN109240971A (zh) * | 2018-09-26 | 2019-01-18 | 威创集团股份有限公司 | 通信方法、装置及*** |
CN109359073A (zh) * | 2018-09-18 | 2019-02-19 | 深圳吉迪思电子科技有限公司 | 一种基于spi总线的设备间通信方法及设备拓扑结构 |
CN109639379A (zh) * | 2018-12-20 | 2019-04-16 | 武汉耐普登科技有限公司 | 传感器组件及传感器*** |
CN111625487A (zh) * | 2020-04-17 | 2020-09-04 | 惠州市德赛西威汽车电子股份有限公司 | 一种spi通信***及其通信方法 |
CN112822002A (zh) * | 2021-01-04 | 2021-05-18 | 北京地平线信息技术有限公司 | 基于spi的通信方法及装置、电子设备和存储介质 |
CN114138703A (zh) * | 2022-02-07 | 2022-03-04 | 成都时识科技有限公司 | 基于串行外设接口进行通信的方法、装置及芯片 |
CN115061961A (zh) * | 2022-06-29 | 2022-09-16 | 西安易朴通讯技术有限公司 | 一种基于spi的通信方法与装置 |
CN115080477A (zh) * | 2022-05-30 | 2022-09-20 | 杭州初灵信息技术股份有限公司 | 一种串行通信的方法和*** |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2682480Y (zh) * | 2003-12-31 | 2005-03-02 | 上海贝岭股份有限公司 | 一种集成在芯片内的spi同步串行通讯接口电路 |
CN2710264Y (zh) * | 2004-03-09 | 2005-07-13 | 国电南京自动化股份有限公司 | 时分多路实时通讯总线 |
CN1637256A (zh) * | 2004-01-07 | 2005-07-13 | 株式会社日立制作所 | 数据通信装置及使用该装置的控制器 |
CN101174253A (zh) * | 2006-06-02 | 2008-05-07 | 旺宏电子股份有限公司 | 在多模总线的多引脚传输数据的方法及装置 |
CN102508812A (zh) * | 2011-11-30 | 2012-06-20 | 上海大学 | 一种基于spi总线的双处理器通信方法 |
WO2012155674A1 (zh) * | 2011-07-25 | 2012-11-22 | 中兴通讯股份有限公司 | 一种并发访问方法、***及接口装置 |
US20130111085A1 (en) * | 2011-10-28 | 2013-05-02 | Sumitomo Electric Industries, Ltd. | Apparatus installing devices controlled by mdio or spi protocol and method to control the same |
CN103377170A (zh) * | 2012-04-26 | 2013-10-30 | 上海宝信软件股份有限公司 | 异构处理器间spi高速双向对等数据通信*** |
CN104133792A (zh) * | 2013-05-03 | 2014-11-05 | 珠海全志科技股份有限公司 | 精简串行总线通信方法及*** |
US20150100716A1 (en) * | 2013-10-09 | 2015-04-09 | Goodrich Corporation | Systems and methods of using an spi controller |
US20150103845A1 (en) * | 2012-10-11 | 2015-04-16 | Jiangsu Xidiannanzi Smart Electric Power Equipment Co., Ltd | Synchronization time-division multiplexing bus communication method adopting serial communication interface |
-
2017
- 2017-09-26 CN CN201710882738.9A patent/CN107562666B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2682480Y (zh) * | 2003-12-31 | 2005-03-02 | 上海贝岭股份有限公司 | 一种集成在芯片内的spi同步串行通讯接口电路 |
CN1637256A (zh) * | 2004-01-07 | 2005-07-13 | 株式会社日立制作所 | 数据通信装置及使用该装置的控制器 |
CN2710264Y (zh) * | 2004-03-09 | 2005-07-13 | 国电南京自动化股份有限公司 | 时分多路实时通讯总线 |
CN101174253A (zh) * | 2006-06-02 | 2008-05-07 | 旺宏电子股份有限公司 | 在多模总线的多引脚传输数据的方法及装置 |
WO2012155674A1 (zh) * | 2011-07-25 | 2012-11-22 | 中兴通讯股份有限公司 | 一种并发访问方法、***及接口装置 |
US20130111085A1 (en) * | 2011-10-28 | 2013-05-02 | Sumitomo Electric Industries, Ltd. | Apparatus installing devices controlled by mdio or spi protocol and method to control the same |
CN102508812A (zh) * | 2011-11-30 | 2012-06-20 | 上海大学 | 一种基于spi总线的双处理器通信方法 |
CN103377170A (zh) * | 2012-04-26 | 2013-10-30 | 上海宝信软件股份有限公司 | 异构处理器间spi高速双向对等数据通信*** |
US20150103845A1 (en) * | 2012-10-11 | 2015-04-16 | Jiangsu Xidiannanzi Smart Electric Power Equipment Co., Ltd | Synchronization time-division multiplexing bus communication method adopting serial communication interface |
CN104133792A (zh) * | 2013-05-03 | 2014-11-05 | 珠海全志科技股份有限公司 | 精简串行总线通信方法及*** |
US20150100716A1 (en) * | 2013-10-09 | 2015-04-09 | Goodrich Corporation | Systems and methods of using an spi controller |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108055186A (zh) * | 2018-01-30 | 2018-05-18 | 浙江鸿泉车联网有限公司 | 一种主从处理器通信方法及装置 |
CN108055186B (zh) * | 2018-01-30 | 2020-08-25 | 浙江鸿泉车联网有限公司 | 一种主从处理器通信方法及装置 |
CN108768450A (zh) * | 2018-06-01 | 2018-11-06 | 威创集团股份有限公司 | 通信方法和***、计算机存储介质 |
CN109359073A (zh) * | 2018-09-18 | 2019-02-19 | 深圳吉迪思电子科技有限公司 | 一种基于spi总线的设备间通信方法及设备拓扑结构 |
CN109240971A (zh) * | 2018-09-26 | 2019-01-18 | 威创集团股份有限公司 | 通信方法、装置及*** |
CN109639379A (zh) * | 2018-12-20 | 2019-04-16 | 武汉耐普登科技有限公司 | 传感器组件及传感器*** |
CN111625487A (zh) * | 2020-04-17 | 2020-09-04 | 惠州市德赛西威汽车电子股份有限公司 | 一种spi通信***及其通信方法 |
CN111625487B (zh) * | 2020-04-17 | 2024-05-31 | 惠州市德赛西威汽车电子股份有限公司 | 一种spi通信***及其通信方法 |
CN112822002A (zh) * | 2021-01-04 | 2021-05-18 | 北京地平线信息技术有限公司 | 基于spi的通信方法及装置、电子设备和存储介质 |
CN114138703A (zh) * | 2022-02-07 | 2022-03-04 | 成都时识科技有限公司 | 基于串行外设接口进行通信的方法、装置及芯片 |
CN114138703B (zh) * | 2022-02-07 | 2022-05-03 | 成都时识科技有限公司 | 基于串行外设接口进行通信的方法、装置及芯片 |
CN115080477A (zh) * | 2022-05-30 | 2022-09-20 | 杭州初灵信息技术股份有限公司 | 一种串行通信的方法和*** |
CN115080477B (zh) * | 2022-05-30 | 2024-01-30 | 杭州初灵信息技术股份有限公司 | 一种串行通信的方法和*** |
CN115061961A (zh) * | 2022-06-29 | 2022-09-16 | 西安易朴通讯技术有限公司 | 一种基于spi的通信方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107562666B (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562666A (zh) | 基于spi总线的设备间通信的方法、***及相关装置 | |
CN102523129B (zh) | 一种通用的航空总线测试分析方法及其装置 | |
CN103064805B (zh) | Spi控制器及通信方法 | |
CN103439677A (zh) | 一种数字表计检测方法及*** | |
CN111294413B (zh) | 一种互联网协议ip地址的确定方法、装置和可读介质 | |
CN101089838A (zh) | 一种实现i2c读写时序的方法 | |
CN103200078A (zh) | 网关、通讯网络及数据处理方法 | |
CN201035568Y (zh) | 一种usb设备逻辑编号与物理编号映射的装置 | |
CN103905410A (zh) | 一种将自定义协议转换成Modbus协议的多路通讯协议转换器 | |
CN204331878U (zh) | 一种停车场管理***中的控制电路 | |
CN103577485B (zh) | 主从模式查询***及方法 | |
CN103069793A (zh) | 用于将音频和视频流从音频/视频源映射到多个音频/视频接收端的***和方法 | |
CN104461603B (zh) | 一种信息处理方法及电子设备 | |
CN202385128U (zh) | 网关及通讯网络 | |
CN104680769A (zh) | 一种智能手机蓝牙转红外抄表*** | |
CN103856466A (zh) | 一种可自动配置协议的采集终端装置 | |
CN202693680U (zh) | M-bus三相电子式电能表 | |
CN204992516U (zh) | 微机保护装置及电力设备 | |
CN105093937B (zh) | 楼宇控制***设计设备和方法 | |
CN208172840U (zh) | 设备管理***及仓库管理*** | |
CN102722975A (zh) | 一种基于profibus的智能电表数据抄读方法及*** | |
CN206004851U (zh) | 一种带交换机功能的机顶盒 | |
CN204761798U (zh) | 可重构多路灯光控制装置 | |
CN205943043U (zh) | 一种用电信息采集*** | |
CN103580928A (zh) | 一种对设备控制可视化操作的***及方法 |
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 |