一种基于spi菊花链结构的通信系统、方法及设备
技术领域
1.本发明涉及通信技术领域,尤其涉及一种基于spi菊花链结构的通信系统、方法及设备。
背景技术:2.spi(serial peripheral interface)总线协议是一种同步、全双工、主从式串行总线,其通过时钟线(sck)与数据线(sdi,sdo)实现器件之间的数据传输,是微控制器与外围芯片之间使用较为广泛的接口之一。spi是一种串行的外围设备接口,是一种高速的、可全双工通信串行总线接口,具有通信简单、数据传输速率快等优点。spi采用主从式通信方式,spi主设备(spimaster,简称主机)为spi通信提供时钟信号,是通信的主动方,spi从设备(spisalve,简称从机)是spi通信过程的被动方,收发过程都由spi主设备控制。spi总线只能有一个主机(产生时钟信号),但可以有一个或多个从机,当spi总线挂载多个从机时,需要单独为每个从机提供片选信号(cs)。随着从机数量增加,主机将消耗过多的gpio端口资源用于产生每路片选信号。
3.菊花链拓扑(daisy chain topology),除了拥有为星状基础的网络,透过菊花链以增加更多的电脑到网络的最简易的方法,或串行下一个连接每台的电脑,如同菊花的花瓣一样。若是一个信息是针对电脑中途向下行时,每个系统弹起其沿线于序列中,直到该到达目的地为止。图1为现有技术中的菊花链结构示意图,如图1所示,通过将每个从机(slave1、slave2、
……
、slaven)的数据线顺序相连(前级sdo接后级sdi)可以实现菊花链(daisy chain)结构。此时,所有从机使用同一片选信号,数据按照连接顺序从一个从机传播到下一从机,最终依次传输回主机(master)。常规的菊花链结构在实际应用中,通信过程中数据获取的灵活性低,且从机无法主动向主机通知关键信息。
4.因此,亟需提供给一种更为可靠的基于spi菊花链结构的通信方案。
技术实现要素:5.本发明的目的在于提供一种基于spi菊花链结构的通信系统、方法及设备,用于解决现有技术的通信过程中数据获取的灵活性低,且从机无法主动向主机通知关键信息的问题。
6.为了实现上述目的,本发明提供如下技术方案:
7.本发明提供一种基于spi菊花链结构的通信系统,包括:
8.配置有spi接口的主机以及配置有从机spi接口的多个从机;所述主机与多个所述从机构成菊花链结构;
9.所述主机与多个所述从机之间基于定义后的spi协议进行通信;所述定义后的spi协议中至少包括:指令、从机地址、从机寄存器指针以及读写标志;所述指令用于指导所述菊花链结构中对应的从机执行特定操作;所述从机地址用于选择对应的从机执行相关指令;所述寄存器指针用于寻址从机内部寄存器堆;所述读写标志用于选择数据方向。
10.本发明提供一种基于spi菊花链结构的通信方法,所述方法应用于基于spi菊花链结构的通信系统,包括:
11.从机接收主机发送的指令信息;所述主机与多个所述从机构成菊花链结构;
12.根据所述指令信息,基于定义后的spi协议实现所述从机与主机之间的通信;所述定义后的spi协议中至少包括:指令、从机地址、从机寄存器指针以及读写标志;所述指令用于指导所述菊花链结构中对应的从机执行特定操作;所述从机地址用于选择对应的从机执行相关指令;所述寄存器指针用于寻址从机内部寄存器堆;所述读写标志用于选择数据方向。
13.本发明提供一种基于spi菊花链结构的通信设备,包括:
14.通信单元/通信接口,用于从机接收主机发送的指令信息;
15.处理单元/处理器,用于根据所述指令信息,基于定义后的spi协议实现所述从机与主机之间的通信;所述定义后的spi协议中至少包括:指令、从机地址、从机寄存器指针以及读写标志;所述指令用于指导所述菊花链结构中对应的从机执行特定操作;所述从机地址用于选择对应的从机执行相关指令;所述寄存器指针用于寻址从机内部寄存器堆;所述读写标志用于选择数据方向。
16.与现有技术相比,本发明提供的基于spi菊花链结构的通信系统,通过配置有spi接口的主机以及配置有从机spi接口的多个从机;所述主机与多个所述从机构成菊花链结构;所述主机与多个所述从机之间基于定义后的spi协议进行通信;所述定义后的spi协议中至少包括:指令、从机地址、从机寄存器指针以及读写标志。通过定义包含指令集的spi协议,保证基于spi菊花链结构的通信系统中主机和从机在通信时,可以满足单独访问指定从机、动态分配从机地址、以及支持中断等功能,可以有效提高数据获取的灵活性,且从机可以主动向主机通知关键信息,同时显著减少管脚资源的消耗。
附图说明
17.此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
18.图1为现有技术中的菊花链结构示意图;
19.图2为本发明提供的一种基于spi菊花链结构的通信系统示意图;
20.图3为本发明提供的寄存器编码示意图;
21.图4为本发明提供的菊花链结构的上电状态示意图;
22.图5为本发明提供的菊花链初始化状态示意图;
23.图6为本发明提供的“分配地址”指令工作时序图;
24.图7为本发明提供的“全局写”指令工作时序图;
25.图8为本发明提供的“全局读”指令工作时序图;
26.图9为本发明提供的“单独写”指令工作时序图;
27.图10为本发明提供的“单独读”指令工作时序图;
28.图11为本发明提供的“清除中断”指令工作时序图;
29.图12为本发明提供的一种基于spi菊花链结构的通信设备示意图。
具体实施方式
30.为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一阈值和第二阈值仅仅是为了区分不同的阈值,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
31.需要说明的是,本发明中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
32.本发明中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b的结合,a和c的结合,b和c的结合,或a、b和c的结合,其中a,b,c可以是单个,也可以是多个。
33.图1中的菊花链结构在实际应用中主要存在以下问题:
34.1)主机无法单独访问某一从机;
35.2)从机无法主动通知主机,即不支持中断功能;
36.3)只能实现简单的数据移入移出,不适用于具有复杂功能的从机;
37.4)当总线死机时无特定机制自动复位从机,必须重新上电全部从机。
38.基于上述问题,本发明提出一种基于spi菊花链结构的通信方案,该方案可以适用于绝大部分的多数据寄存器、需要读写功能、需要警报功能的传感器,可以有效提高数据获取的灵活性,同时显著减少了管脚资源的消耗。接下来,结合附图对本说明书实施例提供的方案进行说明:
39.图2为本发明提供的一种基于spi菊花链结构的通信系统示意图。如图1与图2所示,包括配置有spi接口的主机以及配置有从机spi接口的多个从机;所述主机与多个所述从机基于定义后的spi协议进行通信,spi协议中包括指令集,指令集中可以包括指令、从机地址、从机寄存器指针以及读写标志,主机给从机发送指令,以指示从机执行相应的操作;动态分配从机地址,可以满足主机访问指定的从机的需求。
40.对于其中任意一个从机,本发明通过2选1的开关设置模式,实现了两种工作模式:透传模式和发送模式。其中,开关闭合位置由从机内部接口逻辑控制。开关闭合至a点时,从机工作在透传模式,接收来自前级的数据并直接向后级转发。开关闭合至b点时,从机工作在发送模式,接收来自前级的数据并向后级发送本级输出数据。
41.上电完成时,所有所述从机处于透传模式中;所述主机发送初始化指令,启动对所有所述从机进行分配地址,完成对从机的地址分配。所述从机接收到所述初始化指令时,所有所述从机切换至发送模式。所有所述从机处于发送模式时,所述主机发送第一分配地址指令,所述菊花链结构中的第一个从机在接收到所述第一分配地址指令时,保存所述第一
分配地址指令的低三位作为自身的地址,向后一从机发送第二分配地址指令;所述第二分配地址指令中包含第二个从机的地址。
42.当从机需要发送数据时,必须先切换为发送模式,断开数据线的短接环,才能开始发送。此时,所发送数据将被处于透传模式的后级从机转发,返回主机接收端。发送完成后,从机必须切换回透传模式,重新连接数据线的短接环。从机需要发送数据时,切换至发送模式,断开数据线短接环,发送完成,从机切换至透传模式。根据主机发送的指令来切换至不同的工作模式。接收指令,按照指令调整工作模式。指令集中设置地址分配,从而主机在后续可以单独访问从机;添加了中断机制,无需额外的中断引脚设置即可实现中断;添加了寄存器堆,设置指针来索引寄存器,可以满足复杂功能的需要;设置读写标志,可以同时支持单独访问和全局访问。定义后的spi协议中的指令用于指导从机执行特定操作;从机地址用于选择特定从机执行指令;寄存器指针用于寻址从机内部寄存器堆;读写标志用于选择数据方向。
43.接下来,可以结合图3中的例子进行说明:
44.图3为本发明提供的寄存器编码示意图。如图3所示,采用8-bits数据位和1-bit停止位组成一个数据帧单元。采用3-bits地址(a[2:0]),即菊花链最多挂载8个从机。采用2-bits指针(p[1:0]),即从机内部寄存器堆由四个寄存器组成,如图3,当所有从机均处于透传模式时,数据线将短接成环。此时,主机发送端数据可以同时传达至所有从机,并直接返回主机接收端。主机根据接收端数据决定是否启动新的数据帧单元,即产生9拍时钟信号,直至当次通信结束。
[0045]
上述实施例中定义的指令集可以是:(a[2:0]为从机地址,p[1:0]为寄存器指针),如表1所示:
[0046][0047]
其中,指令集中可以包括的指令有:初始化(initialize),分配地址(assign address)、清除中断(clear interrupt)、全局写入(global write)、全局读出(global read)、单独写入(individual write)以及单独读出(individual read)等,其中,每个指令可以对应相应的数据格式,每一条指令是一个字节(8位),对该字节进行译码,就得到二进制数。
[0048]
接下来,对于指令集中定义的内容,分别进行说明:
[0049]
地址分配指令:为了实现单独访问某一从机,需要对菊花链上所有从机分配地址。常规做法为使用地址管脚,通过采取不同的电气连接组合来实现唯一的从机地址;或使用非易失存储器(如熔丝或eprom等)出厂预置唯一的从机地址。这些常规做法的缺点为需要
额外的管脚资源或非易失存储器模块。本方案中通过特定指令,根据从机所处菊花链位置进行从机地址的动态分配,从而可以保证主机可以单独访问从机。
[0050]
实际应用中,主机在监测到刚上电时,从机为透传模式,主机发送地址分配指令,为每一从机分配地址。主机控制整个从机链,上电时,默认为透传模式,从机接收什么信息就转发什么信息。主机分配地址时,需要把链断开,所以需要先发送初始化命令,所有从机将链断开,然后切换为发送模式,切换成发送模式之后,只有第一个从机能够接收到主机的地址分配命令,第一个从机处理完再按照顺序往后发分配地址命令,到最后一个从机再发送命令时,就发送给主机,从而构成环,主机接收到最后一个从机的分配地址命令之后,就可以知道有多少从机接收了地址分配指令,多少从机完成了地址分配。更为具体地,可以结合图4以及图5进行说明:
[0051]
图4为本发明提供的菊花链结构的上电状态示意图。图5为本发明提供的菊花链初始化状态示意图。上电完成后,菊花链工作状态如图4所示,所有从机均处于透传模式,数据线短接成环。此时,主机发送指令可以同时传达至所有从机,并返回主机接收端。主机发送“初始化”指令(initialize)启动地址分配。菊花链工作状态如图5所示,所有从机均切换到发送模式,并保持输出逻辑高。接着,主机必须发送“分配地址”指令(assign address)。接收到指令的从机将保存该指令的低三位作为自身的地址,向后级发送“分配地址”指令,其中低三位为自身地址加一;并且切换回透传模式。
[0052]
以三个从机组成的菊花链为例,地址分配的工作时序结合图6进行说明:
[0053]
图6为本发明提供的“分配地址”指令工作时序图,如图6所示,主机接收到返回的“分配地址”指令,低三位值为3;主机由此可知菊花链上一共挂载了3个从机,地址分别为0、1、2;同时,各从机均处于透传模式,数据线恢复到短接成环状态,等待下一条指令。
[0054]
通过上述方法,为各个从机动态分配地址,可以为每个从机分配地址,基于地址主机可以单独访问指定的从机,并且可以掌握各个从机接收指令以及完成地址分配的情况。
[0055]
可选的,所述系统还可以包括:
[0056]
读写模块,用于在所述清除中断模块进行中断清除之后,基于所述读写标志,调用所述读写标志对应的读写功能进行相应的读写;所述读写功能包括全局读、全局写、单独读以及单独写。
[0057]
读写模块的工作时序可以结合图7-10进行说明:
[0058]
图7为本发明提供的“全局写”指令工作时序图;图8为本发明提供的“全局读”指令工作时序图;图9为本发明提供的“单独写”指令工作时序图;图10为本发明提供的“单独读”指令工作时序图。如图7-10所示,“全局写”(global write)和“全局读”(global read)指令由最低位的读写标志区分。读写标志为0代表“全局写”,为1代表“全局读”。“全局写”指令将后续8-bits数据写入所有从机的特定寄存器中。目标寄存器由指针p[1:0]选定。工作时序如图7所示。
[0059]“全局读”指令将按照从机地址顺序依次读出所有从机的特定寄存器值。目标寄存器由指针p[1:0]选定。工作时序如图8所示。
[0060]“单独写”(individual write)和“单独读”(individual read)指令由最低位的读写标志区分。读写标志为0代表“单独写”,为1代表“单独读”。“单独写”指令将后续8-bits数据写入特定从机的特定寄存器中。目标从机由地址a[2:0]选定。目标寄存器由指针p[1:0]
选定。工作时序如图9所示。
[0061]“单独读”指令将读出特定从机的特定寄存器值。目标从机由地址a[2:0]选定。目标寄存器由指针p[1:0]选定。工作时序如图10所示(以地址2为例)。
[0062]
可选的,所述系统还可以包括:
[0063]
清除中断模块;
[0064]
所述spi协议中还设置有中断机制,当所述菊花链结构中存在至少一个从机发起中断请求时,所述主机启动所述清除中断模块进行清除中断处理。
[0065]
所述清除中断模块,具体可以包括:
[0066]
清除中断指令接收单元,用于接收所述主机发送的清除中断指令;
[0067]
中断使能标志关闭单元,用于在接收到所述清除中断指令之后,将所述中断使能标志进行关闭;所述中断使能标志用于允许所述菊花链结构中至少存在一个从机发起中断请求;
[0068]
指令转发单元,用于将所述清除中断指令向后一从机转发清除中断指令;
[0069]
清除中断单元,用于确定中断发起源,并进行相应的控制动作,以清除中断。
[0070]
在实际应用中,从机多以远端传感器为主,用于实时监控远端环境状态。在低功耗应用中,主机持续查询从机数据通常无法实现,但是,间歇查询又无法确保数据获取的及时性。以检测手机处理器温度的温度传感器为例,如果无法及时获知处理器过温情况并进行相应的降频等降温措施,系统可能会出现性能下降、无法工作甚至芯片烧毁的严重后果。
[0071]
现有技术中常规做法为增加警报管脚,用于实时通知主机。这种情况需要额外的管脚资源。本方案中,在spi协议中设置中断机制,用于从机主动通知主机,解决了现有技术中的上述缺点。从机内部设置中断使能标志,当标志开启时允许发起中断请求,否则禁止发起中断请求。当且仅当以下条件同时满足时,从机发起中断请求:
[0072]
a)中断使能标志开启;
[0073]
b)满足警报条件(以温度传感器为例,即检测温度超出温度上限);
[0074]
c)总线处于空闲状态(不处于某次通信过程中)。
[0075]
更进一步地,清除中断的工作时序可以结合图11进行说明,图11为本发明提供的“清除中断”指令工作时序图。从机切换为发送模式并保持输出逻辑低,经后级透传模式的从机转发至主机接收端。如图11所示,主机未启动通信时,时钟线sck保持逻辑低,发送端txd保持逻辑高。主机通过检测接收端rxd来判断是否有从机发起中断请求。如果接收端rxd保持逻辑高,说明菊花链上所有从机均未发起中断请求;如果接收端rxd保持逻辑低,说明菊花链上有一个或多个从机发起中断请求,从而实现从机对主机的主动通知。
[0076]
当主机检测到中断请求时,必须发送“清除中断”(clear interrupt)指令。接收到指令的从机将顺序执行以下三个步骤:
[0077]
a)关闭中断使能标志,避免在主机处理中断过程中再次触发中断;
[0078]
b)向后级发送“清除中断”指令;
[0079]
c)切换回透传模式。
[0080]
因为中断请求可能由一个或多个从机发起,所以主机需要持续启动新的数据帧单元(即发送9拍时钟),直至主机接收到返回的“清除中断”命令。这代表菊花链上所有从机均已完成对“清除中断”指令的响应,各从机均处于透传模式,数据线恢复到短接成环状态。此
时,主机可以发送“全局读”指令,读出所有从机的数据,确认中断发起源,并进行相应的控制动作(以温度传感器为例,即降频或开启风扇等),从而完成全部中断处理过程。
[0081]
所述spi协议中还可以包括自复位机制;当指定字节与数据字节之间的间隔超过预设时间或者连续接收空指令超过特定次数时,所述主机触发所述从机启动自复位机制。为了提高系统可靠性,本方案中设置的自复位机制,可以避免因主机时序不合要求、信号干扰或电源抖动等特殊情况而导致的总线死机。
[0082]
当总线出现以下情况之一时,从机可以复位接口:
[0083]
a)指令字节与数据字节间、数据字节与数据字节间的间隔超过特定时间;
[0084]
b)连续接收空指令(nop-1)超过特定次数。
[0085]
从而无需掉电即可使菊花链恢复正常状态。
[0086]
需要说明的是,本发明中使用的“模块”在实际应用中可以是虚拟功能单元,也可以是实际硬件结构,本方案对此不作具体限定。
[0087]
上述实施例中,基于spi菊花链结构的通信系统中,可以单独访问菊花链中的指定从机;动态分配从机地址,无需额外地址管脚或非易失存储器;支持总线中断功能,无需额外中断输出管脚;适用于绝大部分的多数据寄存器、需要读写功能、需要警报功能的传感器,可以有效提高数据获取的灵活性,同时显著减少了管脚资源的消耗。
[0088]
基于同样的思路,本发明还提供了一种基于spi菊花链结构的通信方法。
[0089]
该流程可以包括以下步骤:
[0090]
从机接收主机发送的指令信息;所述主机与多个所述从机构成菊花链结构;
[0091]
根据所述指令信息,基于定义后的spi协议实现所述从机与主机之间的通信;所述定义后的spi协议中至少包括:指令、从机地址、从机寄存器指针以及读写标志;所述指令用于指导所述菊花链结构中对应的从机执行特定操作;所述从机地址用于选择对应的从机执行相关指令;所述寄存器指针用于寻址从机内部寄存器堆;所述读写标志用于选择数据方向。
[0092]
上述方法,通过从机接收主机发送的指令信息;所述主机与多个所述从机构成菊花链结构;根据所述指令信息,基于定义后的spi协议实现所述从机与主机之间的通信。由于定以后的spi协议包括定义好的指令集,因此,可以实现主机可以单独访问菊花链中的指定从机;动态分配从机地址,无需额外地址管脚或非易失存储器;支持总线中断功能,无需额外中断输出管脚;适用于绝大部分的多数据寄存器、需要读写功能、需要警报功能的传感器,可以有效提高数据获取的灵活性,同时显著减少了管脚资源的消耗。
[0093]
需要说明的是,上述实施例中的方式仅是能够实现本说明书实施例中提供的方案的个别实施方式,并不表示本技术保护的全部范围,除了上述列举的方式外,还可以有更多的实现方式,对此,本说明书实施例不作具体限定。
[0094]
基于同样的思路,本说明书实施例还提供了一种基于spi菊花链结构的通信。图12为本发明提供的一种基于spi菊花链结构的通信设备示意图。可以包括:
[0095]
通信单元/通信接口,用于从机接收主机发送的指令信息;
[0096]
处理单元/处理器,用于根据所述指令信息,基于定义后的spi协议实现所述从机与主机之间的通信;所述定义后的spi协议中至少包括:指令、从机地址、从机寄存器指针以及读写标志;所述指令用于指导所述菊花链结构中对应的从机执行特定操作;所述从机地
址用于选择对应的从机执行相关指令;所述寄存器指针用于寻址从机内部寄存器堆;所述读写标志用于选择数据方向。
[0097]
如图12所示,上述终端设备还可以包括通信线路。通信线路可包括一通路,在上述组件之间传送信息。
[0098]
可选的,如图12所示,该终端设备还可以包括存储器。存储器用于存储执行本发明方案的计算机执行指令,并由处理器来控制执行。处理器用于执行存储器中存储的计算机执行指令,从而实现本发明实施例提供的方法。
[0099]
如图12所示,存储器可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路与处理器相连接。存储器也可以和处理器集成在一起。
[0100]
可选的,本发明实施例中的计算机执行指令也可以称之为应用程序代码,本发明实施例对此不作具体限定。
[0101]
在具体实现中,作为一种实施例,如图8所示,处理器可以包括一个或多个cpu,如图12中的cpu0和cpu1。
[0102]
在具体实现中,作为一种实施例,如图12所示,终端设备可以包括多个处理器,如图12中的处理器。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。
[0103]
上述主要从各个模块之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个模块为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件单元。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0104]
本发明实施例可以根据上述方法示例进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0105]
本说明书中的处理器还可以具有存储器的功能。存储器用于存储执行本发明方案的计算机执行指令,并由处理器来控制执行。处理器用于执行存储器中存储的计算机执行指令,从而实现本发明实施例提供的方法。
[0106]
存储器可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其
他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路与处理器相连接。存储器也可以和处理器集成在一起。
[0107]
可选的,本发明实施例中的计算机执行指令也可以称之为应用程序代码,本发明实施例对此不作具体限定。
[0108]
上述本发明实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processing,dsp)、asic、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0109]
一种可能的实现方式中,提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令被运行时,用于实现上述实施例中的逻辑运算控制方法和/或逻辑运算读取方法。
[0110]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、终端、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,dvd);还可以是半导体介质,例如,固态硬盘(solid state drive,ssd)。
[0111]
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步
骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
[0112]
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
技术特征:1.一种基于spi菊花链结构的通信系统,其特征在于,包括:配置有spi接口的主机以及配置有从机spi接口的多个从机;所述主机与多个所述从机构成菊花链结构;所述主机与多个所述从机之间基于定义后的spi协议进行通信;所述定义后的spi协议中至少包括:指令、从机地址、从机寄存器指针以及读写标志;所述指令用于指导所述菊花链结构中对应的从机执行特定操作;所述从机地址用于选择对应的从机执行相关指令;所述寄存器指针用于寻址从机内部寄存器堆;所述读写标志用于选择数据方向。2.根据权利要求1所述的系统,其特征在于,上电完成时,所有所述从机处于透传模式中;所述主机发送初始化指令,启动对所有所述从机进行分配地址,完成对从机的地址分配。3.根据权利要求2所述的系统,其特征在于,所述从机接收到所述初始化指令时,所有所述从机切换至发送模式。4.根据权利要求3所述的系统,其特征在于,所有所述从机处于发送模式时,所述主机发送第一分配地址指令,所述菊花链结构中的第一个从机在接收到所述第一分配地址指令时,保存所述第一分配地址指令的低三位作为自身的地址,向后一从机发送第二分配地址指令;所述第二分配地址指令中包含第一个从机的地址。5.根据权利要求1所述的系统,其特征在于,所述系统还包括:清除中断模块;所述spi协议中还设置有中断机制,当所述菊花链结构中存在至少一个从机发起中断请求时,所述主机启动所述清除中断模块进行清除中断处理。6.根据权利要求5所述的系统,其特征在于,所述清除中断模块,具体包括:清除中断指令接收单元,用于接收所述主机发送的清除中断指令;中断使能标志关闭单元,用于在接收到所述清除中断指令之后,将所述中断使能标志进行关闭;所述中断使能标志用于允许所述菊花链结构中至少存在一个从机发起中断请求;指令转发单元,用于将所述清除中断指令向后一从机转发清除中断指令;清除中断单元,用于确定中断发起源,并进行相应的控制动作,以清除中断。7.根据权利要求6所述的系统,其特征在于,所述系统还包括:读写模块,用于在所述清除中断模块进行中断清除之后,基于所述读写标志,调用所述读写标志对应的读写功能进行相应的读写;所述读写功能包括全局读、全局写、单独读以及单独写。8.根据权利要求1所述的系统,其特征在于,所述spi协议中还包括自复位机制;当指定字节与数据字节之间的间隔超过预设时间或者连续接收空指令超过特定次数时,所述主机触发所述从机启动自复位机制。9.一种基于spi菊花链结构的通信方法,所述方法应用于基于spi菊花链结构的通信系统,其特征在于,包括:从机接收主机发送的指令信息;所述主机与多个所述从机构成菊花链结构;根据所述指令信息,基于定义后的spi协议实现所述从机与主机之间的通信;所述定义后的spi协议中至少包括:指令、从机地址、从机寄存器指针以及读写标志;所述指令用于指
导所述菊花链结构中对应的从机执行特定操作;所述从机地址用于选择对应的从机执行相关指令;所述寄存器指针用于寻址从机内部寄存器堆;所述读写标志用于选择数据方向。10.一种基于spi菊花链结构的通信设备,其特征在于,包括:通信单元/通信接口,用于从机接收主机发送的指令信息;处理单元/处理器,用于根据所述指令信息,基于定义后的spi协议实现所述从机与主机之间的通信;所述定义后的spi协议中至少包括:指令、从机地址、从机寄存器指针以及读写标志;所述指令用于指导所述菊花链结构中对应的从机执行特定操作;所述从机地址用于选择对应的从机执行相关指令;所述寄存器指针用于寻址从机内部寄存器堆;所述读写标志用于选择数据方向。
技术总结本发明公开一种基于SPI菊花链结构的通信系统、方法及设备,涉及通信技术领域,用于解决现有技术的通信过程中数据获取的灵活性低,管脚资源的消耗大的问题。包括:配置有SPI接口的主机以及配置有从机SPI接口的多个从机;所述主机与多个所述从机构成菊花链结构;所述主机与多个所述从机之间基于定义后的SPI协议进行通信;所述定义后的SPI协议中至少包括:指令、从机地址、从机寄存器指针以及读写标志。通过定义包含指令集的SPI协议,保证基于SPI菊花链结构的通信系统中主机和从机在通信时,可以满足单独访问指定从机、动态分配从机地址、以及支持中断等功能,可以有效提高数据获取的灵活性,同时显著减少管脚资源的消耗。同时显著减少管脚资源的消耗。同时显著减少管脚资源的消耗。
技术研发人员:郑凯伦
受保护的技术使用者:北京中科银河芯科技有限公司
技术研发日:2022.02.18
技术公布日:2022/7/5