SPI数据播发系统和方法与流程

文档序号:32117687发布日期:2022-11-09 06:23阅读:130来源:国知局
SPI数据播发系统和方法与流程
spi数据播发系统和方法
技术领域
1.本发明涉及数据通信技术领域,尤其涉及一种spi数据播发系统和方法。


背景技术:

2.高速同步串行口spi(serial periphral interface)是一种标准的四线同步双向串行总线,是串行外围设备接口。spi通信时需要指定主机和从机,对于从机而言,无法主动发起数据传输。传统方法中,从机无法将数据分发到除主机外的其他spi设备上。对于从机的数据分发传统方法主要是将数据进行转发,需要额外通过一个spi接口,将需要转发的数据作为主机转发出去,如图1所示,当图1中间的spi芯片发送数据给右侧两个spi芯片时,需要另外使用一个spi端口作为spi主机;且数据既需要从左侧的spi从端口发送,又需要从右侧spi主端口发送,数据转换会占用一定的系统时间,影响数据通信效率。


技术实现要素:

3.本发明实施例提供一种spi数据播发方法,旨在解决现有的数据播发方法需要另外使用一个spi端口作为spi主机,使得数据既需要从左侧的spi从端口发送,又需要从右侧spi主端口发送,数据转换会占用一定的系统时间,影响数据通信效率的问题。在需要从设备向从设备进行数据分发时,主设备拉低片选信号,使得主设备与第二从设备进入数据接收状态,第一从设备进入数据分发状态,通过第一从设备向主设备和第二从设备分发数据,与现有技术相比,不需要增加额外的spi主端口,利用现有从设备来实现从设备向从设备分发数据的功能,不需要另外设置spi主端口占用,提高数据通信效率。
4.第一方面,本发明实施例提供一种spi数据播发系统,spi数据播发系统包括主设备、第一从设备以及第二从设备,所述第一从设备以及所述第二从设备均与所述主设备通信连接;
5.其中,所述主设备的片选信号端口分别与所述第一从设备的片选信号端口和所述第二从设备的片选信号端口通信连接,所述主设备的输出端口与所述第一从设备的输入端口通信连接,所述主设备的输入端口分别与所述第一从设备的输出端口和所述第二从设备的输入端口通信连接,所述第一从设备的输出端口与所述第二从设备的输入端口通信连接。
6.可选的,所述第一从设备的输入端口还与所述第二从设备的输出端口通信连接。
7.可选的,所述主设备、所述第一从设备以及所述第二从设备均包括ss端口与sck端口,所述主设备还包括miso端口和mosi端口,所述第一从设备以及所述第二从设备还包括sdo端口和sdi端口;
8.所述主设备的ss端口分别与所述第一从设备的ss端口和所述第二从设备的ss端口通信连接,所述主设备的sck端口分别与所述第一从设备的sck端口和所述第二从设备的sck端口通信连接,所述主设备的miso端口分别与所述第一从设备的sdo端口和所述第二从设备的sdi端口通信连接,所述主设备的mosi端口与所述第一从设备的sdi端口通信连接;
9.所述第一从设备的sdo端口还与所述第二从设备的sdi端口通信连接。
10.可选的,所述第一从设备的sdi端口还与所述第二从设备的sdo端口通信连接。
11.可选的,所述第二从设备的数量为多个。
12.第二方面,本发明实施例提供一种spi数据播发方法,spi数据播发方法包括以下步骤:
13.当检测需要第一从设备向第二从设备分发数据时,主设备拉低片选信号;
14.所述主设备将拉低后的片选信号通过所述主设备的片选信号端口发送到所述第一从设备和所述第二从设备,以使得所述第一从设备通过所述第一从设备的输出端口向所述主设备和所述第二从设备的发送数据。
15.可选的,所述主设备将拉低后的片选信号通过所述主设备的片选信号端口发送到所述第一从设备和所述第二从设备的步骤包括:
16.所述主设备将拉低后的片选信号通过所述主设备的ss端口发送到所述第一从设备和所述第二从设备,其中,所述第一从设备通过所述第一从设备的ss端口接收所述拉低后的片选信号后,进入数据发送状态,以及所述第二从设备通过所述第二从设备的ss端口接收所述拉低后的片选信号后,进入数据接收状态。
17.可选的,所述第一从设备通过所述第一从设备的输出端口向所述主设备和所述第二从设备的发送数据的步骤包括:
18.所述第一从设备通过所述第一从设备的sdo端口向所述主设备和所述第二从设备发送数据,其中,所述主设备通过所述主设备的miso端口接收所述第一从设备的发送数据,以及所述第二从设备通过所述第二从设备的sdi端口接收所述第一从设备的发送数据。
19.可选的,所述spi数据播发方法还包括:
20.所述主设备通过所述主设备的sck端口向所述第一从设备和所述第二从设备发送参考时钟信号,其中,所述第一从设备通过所述第一从设备的sck端口接收所述参考时钟信号,并根据所述参考时钟信号进行时钟同步,以及所述第二从设备通过所述第二从设备的sck端口接收所述参考时钟信号,并根据所述参考时钟信号进行时钟同步。
21.本发明实施例中,当检测需要第一从设备向第二从设备分发数据时,主设备拉低片选信号;所述主设备将拉低后的片选信号通过所述主设备的片选信号端口发送到所述第一从设备和所述第二从设备,以使得所述第一从设备通过所述第一从设备的输出端口向所述主设备和所述第二从设备的发送数据。在需要从设备向从设备进行数据分发时,主设备拉低片选信号,使得主设备与第二从设备进入数据接收状态,第一从设备进入数据分发状态,通过第一从设备向主设备和第二从设备分发数据,与现有技术相比,不需要增加额外的spi主端口,利用现有从设备来实现从设备向从设备分发数据的功能,不需要另外设置spi主端口占用,提高数据通信效率。
附图说明
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1是现有技术提供一种spi数据播发系统的架构图;
24.图2是本发明实施例提供的一种spi数据播发系统的架构图;
25.图3是本发明实施例提供的一种spi时序示意图;
26.图4是本发明实施例提供的一种spi数据播发方法的流程图。
具体实施方式
27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.请参考图1,图1是本发明实施例提供的一种spi数据播发系统的架构图,如图1所示,spi数据播发系统包括主设备、第一从设备以及第二从设备,上述第一从设备以及上述第二从设备均与上述主设备通信连接。
29.进一步的,上述主设备可以是任意类型的支持spi模式的主机,上述第一从设备以及第二从设备可以是任意类型的支持spi模式的从机。需要说明的是,上述spi为高速同步串行口,是一种标准的四线同步双向串行总线,是串行外围设备接口。
30.上述主设备上设置有四个端口,上述从设备也设置有四个端口,通过信号线将主设备上的四个端口与从设备的四个端口对应连接。上述主设备与从设备之间的同步可以通过时钟信号进行同步,在四个端口中有一个端口是传输时钟信号的。主设备和从设备都具有移位寄存器,当主设备向自己的移位寄存器写入数据时,数据会通过信号线传输到从设备的移位寄存器中,同时,从设备移位寄存器里的数据,也会通过信号线传输到主设备的移位寄存器,完成一次数据交换。
31.其中,上述主设备包括片选信号端口、输入端口、输出端口以及时钟同步端口,上述从设备包括片选信号端口、输入端口、输出端口以及时钟同步端口,从设备为第一从设备和第二从设备。上述的端口也可以称为引脚或接口。
32.上述主设备的片选信号端口分别与上述第一从设备的片选信号端口和上述第二从设备的片选信号端口通信连接,上述主设备的输出端口与上述第一从设备的输入端口通信连接,上述主设备的输入端口分别与上述第一从设备的输出端口和上述第二从设备的输入端口通信连接,上述第一从设备的输出端口与上述第二从设备的输入端口通信连接。
33.通过主设备的片选信号端口,可以将片选信号传输到第一从设备和第二从设备,第一从设备通过第一从设备的片选信号端口接收来自主设备的片选信号。需要说明的是,从设备是否被选中的,只有片选信号为预先规定的使能信号时(高电位或低电位),对此从设备的操作才有效。通过片选信号,对第一从设备和对第二从设备进行选择和操作。
34.上述主设备的输出端口与上述第一从设备的输入端口通信连接,上述主设备的输入端口分别与上述第一从设备的输出端口和上述第二从设备的输入端口通信连接。
35.当需要通过第一从设备向第二从设备发送数据时,主设备拉低片选信号,并通过主设备的片选信号端口向第一从设备和第二从设备发送拉低后的片选信号,第一从设备通过第一从设备的片选信号端口接收到拉低后的片选信号后,进入数据分发状态,第二从设备通过第二从设备的片选信号端口接收到拉低后的片选信号后,进入数据接收状态。
36.主设备通过主设备的输出端口向第一从设备发送数据,第一从设备通过第一从设备的输入端口接收主设备发送的数据,第一从设备通过第一从设备的输出端口向第二从设备发送数据,第二从设备通过第二从设备的输入端口接收第一从设备发送的数据。同时,第一从设备通过第一从设备的输出端口向主设备发送数据,主设备通过主设备的输入端口接收第一从设备发送的数据。
37.在本发明实施例中,在需要从设备向从设备进行数据分发时,主设备拉低片选信号,使得主设备与第二从设备进入数据接收状态,第一从设备进入数据分发状态,通过第一从设备向主设备和第二从设备分发数据,与现有技术相比,不需要增加额外的spi主端口,利用现有从设备来实现从设备向从设备分发数据的功能,不需要另外设置spi主端口占用,提高数据通信效率。
38.可选的,上述第一从设备的输入端口还与上述第二从设备的输出端口通信连接。
39.具体的,上述第一从设备的输入端口与上述第二从设备的输出端口通信连接,可以使得第二从设备通过第二从设备的输出端口向第一从设备发送数据,完成第一从设备与第二从设备的数据交换,再通过第一从设备与主设备进行数据交换。
40.在一种可能的实施例中,上述第二从设备的输出端口也可以不连接其他端口,或者第二从设备的输出端口与第一从设备的输入端口信号连接,但第二从设备不发送任何信号。
41.可选的,上述主设备、上述第一从设备以及上述第二从设备为支持spi模式的设备,上述主设备、上述第一从设备以及上述第二从设备均包括ss端口与sck端口,上述主设备还包括miso端口和mosi端口,上述第一从设备以及上述第二从设备还包括sdo端口和sdi端口。
42.其中,上述ss端口为片选信号端口,sck端口为时钟同步端口,miso端口为主设备的输入端口,mosi端口为主设备的输出端口。上述sdo端口为从设备的输出端口,上述sdi端口为从设备的输入端口。ss端口用于spi信号的片选,当该信号被拉低时,表示从设备可以向主机发送数据。
43.上述主设备的ss端口分别与上述第一从设备的ss端口和上述第二从设备的ss端口通信连接,上述主设备的sck端口分别与上述第一从设备的sck端口和上述第二从设备的sck端口通信连接,上述主设备的miso端口分别与上述第一从设备的sdo端口和上述第二从设备的sdi端口通信连接,上述主设备的mosi端口与上述第一从设备的sdi端口通信连接。上述第一从设备的sdo端口还与上述第二从设备的sdi端口通信连接。
44.在本发明实施例中,当第一从设备向第二从设备分发消息时,主设备的sck端口通过信号线连接到从设备的sck端口,用于时钟同步;主机的ss端口通过信号线接至所有从设备的ss端口,用于控制第二从设备能够接收数据,第一从设备可以发送数据。第二从设备的sdo端口通过信号线接到主机的miso端口,及接到第一从设备的sdi端口,用于和主设备通信,以及向第二从设备发送数据。
45.从设备的通信由主设备发起,当主设备将ss信号拉低,表示第一从设备能够向主设备及第二从设备发送数据。ss片选信号被主机拉低后,第二从设备进入信号接收状态,接收数据。
46.可选的,上述第一从设备的sdi端口还与上述第二从设备的sdo端口通信连接。
47.具体的,上述第一从设备的sdi端口与上述第二从设备的sdo端口通信连接,可以使得第二从设备通过第二从设备的sdo端口向第一从设备发送数据,完成第一从设备与第二从设备的数据交换,再通过第一从设备与主设备进行数据交换。
48.在一种可能的实施例中,上述第二从设备的sdo端口也可以不连接其他端口,或者第二从设备的sdo端口与第一从设备的sdi端口信号连接,但第二从设备不发送任何信号。
49.可选的,上述第二从设备的数量为多个。
50.可以通过一个第一从设备向多个第二从设备进行数据发送,不需要额外设置主设备端口。
51.需要说明的是,spi数据的传输是在串行同步时钟信号的控制下进行的。具体的,请参考图3,图3是本发明实施例提供的一种spi时序图,如图3所示,主机的时钟发生器一方面控制主机的移位寄存器,另一方面通过从机的sck信号线来控制从机的移位寄存器,从而保证主机与从机的数据交换是同步进行的。spi串行同步时钟可以设置为不同的极性(clock polarity,cpol)与相位(clock phase,cpha)。时钟的极性(cpol)用来决定在总线空闲时,同步时钟(sck)信号线上的电位是高电平还是低电平。当时钟极性为0时(cpol=0),sck信号线在空闲时为低电平;当时钟极性为1时(cpol=1),sck信号线在空闲时为高电平;时钟的相位(cpha)用来决定何时进行信号采样。当时钟相位为1时(cpha=1),在sck信号线的第二个跳变沿进行采样;上述跳变沿究竟是上升沿还是下降沿,取决于时钟的极性。当时钟极性为0(cpol=0)时,取下降沿;当时钟极性为1(cpol=1)时,取上升沿。当时钟相位为0时(cpha=0),在sck信号线的第一个跳变沿进行采样。跳变沿同样与时钟极性有关,当时钟极性为0(cpol=0)时,取上升沿;当时钟极性为1(cpol=1)时,取下降沿。
52.可选的,请参见图4,图4是本发明实施例提供的一种spi数据播发方法的流程图,用于本发明实施例中任一所述的spi数据播发系统,如图4所示,spi数据播发方法包括以下步骤:
53.401、当检测需要第一从设备向第二从设备分发数据时,主设备拉低片选信号。
54.在本发明实施例中,可以通过开关信号来检测是否需要第一从设备向第二从设备分发数据,当检测到开关信号为打开时,则可以认为检测到需要第一从设备向第二从设备分发数据。
55.当检测需要第一从设备向第二从设备分发数据时,主设备拉低片选信号,使得片选信号为低电平。
56.402、主设备将拉低后的片选信号通过主设备的片选信号端口发送到第一从设备和第二从设备,以使得第一从设备通过第一从设备的输出端口向主设备和第二从设备的发送数据。
57.在本发明实施例中,上述主设备上设置有四个端口,上述从设备也设置有四个端口,通过信号线将主设备上的四个端口与从设备的四个端口对应连接。上述主设备与从设备之间的同步可以通过时钟信号进行同步,在四个端口中有一个端口是传输时钟信号的。主设备和从设备都具有移位寄存器,当主设备向自己的移位寄存器写入数据时,数据会通过信号线传输到从设备的移位寄存器中,同时,从设备移位寄存器里的数据,也会通过信号线传输到主设备的移位寄存器,完成一次数据交换。
58.其中,上述主设备包括片选信号端口、输入端口、输出端口以及时钟同步端口,上
述从设备包括片选信号端口、输入端口、输出端口以及时钟同步端口,从设备为第一从设备和第二从设备。上述的端口也可以称为引脚或接口。
59.上述主设备的片选信号端口分别与上述第一从设备的片选信号端口和上述第二从设备的片选信号端口通信连接,上述主设备的输出端口与上述第一从设备的输入端口通信连接,上述主设备的输入端口分别与上述第一从设备的输出端口和上述第二从设备的输入端口通信连接,上述第一从设备的输出端口与上述第二从设备的输入端口通信连接。
60.通过主设备的片选信号端口,可以将片选信号传输到第一从设备和第二从设备,第一从设备通过第一从设备的片选信号端口接收来自主设备的片选信号。需要说明的是,从设备是否被选中的,只有片选信号为预先规定的使能信号时(高电位或低电位),对此从设备的操作才有效。通过片选信号,对第一从设备和对第二从设备进行选择和操作。
61.上述主设备的输出端口与上述第一从设备的输入端口通信连接,上述主设备的输入端口分别与上述第一从设备的输出端口和上述第二从设备的输入端口通信连接。
62.当需要通过第一从设备向第二从设备发送数据时,主设备拉低片选信号,并通过主设备的片选信号端口向第一从设备和第二从设备发送拉低后的片选信号,第一从设备通过第一从设备的片选信号端口接收到拉低后的片选信号后,进入数据分发状态,第二从设备通过第二从设备的片选信号端口接收到拉低后的片选信号后,进入数据接收状态。
63.主设备通过主设备的输出端口向第一从设备发送数据,第一从设备通过第一从设备的输入端口接收主设备发送的数据,第一从设备通过第一从设备的输出端口向第二从设备发送数据,第二从设备通过第二从设备的输入端口接收第一从设备发送的数据。同时,第一从设备通过第一从设备的输出端口向主设备发送数据,主设备通过主设备的输入端口接收第一从设备发送的数据。
64.进一步的,上述第一从设备的输入端口还与上述第二从设备的输出端口通信连接。
65.具体的,上述第一从设备的输入端口与上述第二从设备的输出端口通信连接,可以使得第二从设备通过第二从设备的输出端口向第一从设备发送数据,完成第一从设备与第二从设备的数据交换,再通过第一从设备与主设备进行数据交换。
66.在一种可能的实施例中,上述第二从设备的输出端口也可以不连接其他端口,或者第二从设备的输出端口与第一从设备的输入端口信号连接,但第二从设备不发送任何信号。
67.可选的,上述主设备、上述第一从设备以及上述第二从设备为支持spi模式的设备,上述主设备、上述第一从设备以及上述第二从设备均包括ss端口与sck端口,上述主设备还包括miso端口和mosi端口,上述第一从设备以及上述第二从设备还包括sdo端口和sdi端口。
68.其中,上述ss端口为片选信号端口,sck端口为时钟同步端口,miso端口为主设备的输入端口,mosi端口为主设备的输出端口。上述sdo端口为从设备的输出端口,上述sdi端口为从设备的输入端口。ss端口用于spi信号的片选,当该信号被拉低时,表示从设备可以向主机发送数据。
69.上述主设备的ss端口分别与上述第一从设备的ss端口和上述第二从设备的ss端口通信连接,上述主设备的sck端口分别与上述第一从设备的sck端口和上述第二从设备的
sck端口通信连接,上述主设备的miso端口分别与上述第一从设备的sdo端口和上述第二从设备的sdi端口通信连接,上述主设备的mosi端口与上述第一从设备的sdi端口通信连接。上述第一从设备的sdo端口还与上述第二从设备的sdi端口通信连接。
70.在主设备将拉低后的片选信号通过所述主设备的片选信号端口发送到所述第一从设备和所述第二从设备的步骤中,主设备可以将拉低后的片选信号通过主设备的ss端口发送到第一从设备和第二从设备,其中,第一从设备通过第一从设备的ss端口接收拉低后的片选信号后,进入数据发送状态,以及第二从设备通过第二从设备的ss端口接收拉低后的片选信号后,进入数据接收状态。
71.可选的,在第一从设备通过所述第一从设备的输出端口向所述主设备和所述第二从设备的发送数据的步骤中,第一从设备可以通过第一从设备的sdo端口向主设备和第二从设备发送数据,其中,主设备通过主设备的miso端口接收第一从设备的发送数据,以及第二从设备通过第二从设备的sdi端口接收第一从设备的发送数据。
72.在本发明实施例中,当第一从设备向第二从设备分发消息时,主设备的sck端口通过信号线连接到从设备的sck端口,用于时钟同步;主机的ss端口通过信号线接至所有从设备的ss端口,用于控制第二从设备能够接收数据,第一从设备可以发送数据。第二从设备的sdo端口通过信号线接到主机的miso端口,及接到第一从设备的sdi端口,用于和主设备通信,以及向第二从设备发送数据。
73.从设备的通信由主设备发起,当主设备将ss信号拉低,表示第一从设备能够向主设备及第二从设备发送数据。ss片选信号被主机拉低后,第二从设备进入信号接收状态,接收数据。
74.可选的,上述第一从设备的sdi端口还与上述第二从设备的sdo端口通信连接。
75.具体的,上述第一从设备的sdi端口与上述第二从设备的sdo端口通信连接,可以使得第二从设备通过第二从设备的sdo端口向第一从设备发送数据,完成第一从设备与第二从设备的数据交换,再通过第一从设备与主设备进行数据交换。
76.在一种可能的实施例中,上述第二从设备的sdo端口也可以不连接其他端口,或者第二从设备的sdo端口与第一从设备的sdi端口信号连接,但第二从设备不发送任何信号。
77.可选的,在spi数据播发方法中,主设备还可以通过主设备的sck端口向第一从设备和第二从设备发送参考时钟信号,其中,第一从设备通过第一从设备的sck端口接收参考时钟信号,并根据参考时钟信号进行时钟同步,以及第二从设备通过第二从设备的sck端口接收参考时钟信号,并根据参考时钟信号进行时钟同步。
78.需要说明的是,spi数据的传输是在串行同步时钟信号的控制下进行的。具体的,主机的时钟发生器一方面控制主机的移位寄存器,另一方面通过从机的sck信号线来控制从机的移位寄存器,从而保证主机与从机的数据交换是同步进行的。spi串行同步时钟可以设置为不同的极性与相位。时钟的极性用来决定在总线空闲时,同步时钟信号线上的电位是高电平还是低电平。当时钟极性为0时,sck信号线在空闲时为低电平;当时钟极性为1时,sck信号线在空闲时为高电平;时钟的相位用来决定何时进行信号采样。当时钟相位为1时,在sck信号线的第二个跳变沿进行采样;上述跳变沿究竟是上升沿还是下降沿,取决于时钟的极性。当时钟极性为0时,取下降沿;当时钟极性为1时,取上升沿。当时钟相位为0时,在sck信号线的第一个跳变沿进行采样。跳变沿同样与时钟极性有关,当时钟极性为0时,取上
升沿;当时钟极性为1时,取下降沿。
79.本发明实施例中,当检测需要第一从设备向第二从设备分发数据时,主设备拉低片选信号;所述主设备将拉低后的片选信号通过所述主设备的片选信号端口发送到所述第一从设备和所述第二从设备,以使得所述第一从设备通过所述第一从设备的输出端口向所述主设备和所述第二从设备的发送数据。在需要从设备向从设备进行数据分发时,主设备拉低片选信号,使得主设备与第二从设备进入数据接收状态,第一从设备进入数据分发状态,通过第一从设备向主设备和第二从设备分发数据,与现有技术相比,不需要增加额外的spi主端口,利用现有从设备来实现从设备向从设备分发数据的功能,不需要另外设置spi主端口占用,提高数据通信效率。
80.需要说明的是,本发明实施例提供的spi数据播发方法可以应用于可以进行spi数据播发的单片机、智能手机、电脑、服务器等设备。
81.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存取存储器(random access memory,简称ram)等。
82.以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1