CN111966621A - 突发读取/写入模式的spi协议 - Google Patents
突发读取/写入模式的spi协议 Download PDFInfo
- Publication number
- CN111966621A CN111966621A CN202010427747.0A CN202010427747A CN111966621A CN 111966621 A CN111966621 A CN 111966621A CN 202010427747 A CN202010427747 A CN 202010427747A CN 111966621 A CN111966621 A CN 111966621A
- Authority
- CN
- China
- Prior art keywords
- slave
- network
- slave device
- data
- command
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/403—Bus networks with centralised control, e.g. polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
Abstract
在具有以菊花链配置连接的主设备和从设备的网络中,所述主设备传输选择性地使所述从设备能够执行网络操作的芯片选择(CS)信号。所述主设备控制多个未设旁路的从设备以突发模式操作,在所述突发模式下,所述多个从设备中的每个从设备在单个CS选通内读取或写入多组数据。所述未设旁路的从设备使用所述网络中的从设备总数(NUM_SLAVES)来确定何时以突发模式操作。所述网络支持所述主设备确定NUM_SLAVES并且然后向所述从设备连续广播所述NUM_SLAVES的操作。所述网络还支持对单独从设备设旁路的旁路从设备操作和单从设备操作。相比常规的SPI菊花链网络,所述网络可以以更快的速度读取和/或写入数据。
Description
技术领域
本发明总体上涉及用于连接电子网点的协议,并且更具体地说,涉及以主从菊花链配置连接的并且支持SPI(串行外围接口)通信协议的电子网点的网络。
背景技术
图1是包括主设备110和N个从设备120(1)-120(N)的以菊花链配置连接的并且支持SPI协议的网点的常规网络100的框图。在此菊花链配置中,主设备110是(i)第一从设备120(1)上游最接近的网络网点和(ii)最后一个从设备120(N)下游最接近的网络网点。
主设备110和N个从设备120各自具有主出从入(MOSI)串行端口和主入从出(MISO)串行端口,其中主设备110的MOSI端口直接连接到第一从设备120(1)的MOSI端口,第一(N-1)从设备120(i)中的每个从设备的MISO端口直接连接到最接近的下游从设备120(i+1)的MOSI端口,并且第N个从设备120(N)的MISO端口直接连接到主设备110的MISO端口。
另外,主设备110和N个从设备120各自具有并行系统时钟端口SCLK和并行芯片选择端口CS_B,其中主设备110分别向N个从设备120的那些端口广播系统时钟信号SCLK和低有效芯片选择信号CS_B。注意,如本文所使用的,可以使用相同的标记来指代端口和其信号。例如,主设备310将SCLK信号从其SCLK端口传输到每个从设备120的SCLK端口。
根据SPI协议,当芯片选择CS_B为低时,在系统时钟SCLK的每个周期,数据的一个位从上游网点串行地传输到最接近的下游网点(即,从主设备MOSI到从设备1MOSI,从从设备i MISO到从设备i+1MOSI以及从从设备N MISO到主MISO)。
在一个可能的SPI实施方案中,每个串行传输的消息(例如,命令或数据)的大小(SPI_WL)是16位,并且每个从设备120具有16位移位寄存器(图1中未示出),从设备120在CS_B为低的每个SCLK周期将每个传入位从其最接近的上游网点接收到所述移位寄存器中并且从设备120在CS_B为低的每个SCLK周期将每个传出位从所述移位寄存器传输到其最接近的下游网点。
当CS_B变为高时,每个从设备120处理当前存储在其移位寄存器中的消息。所述处理可以涉及执行用于将数据从从设备120内的指定存储器位置检索到所述从设备的移位寄存器中的读取命令或用于将数据从所述从设备的移位寄存器移动到从设备120内的指定存储器位置中的写入命令。
当CS_B再次变为低时,每个从设备120将再次恢复以每个SCLK周期一个位传输来自其移位寄存器的数据并且将数据接收到其移位寄存器中。
在网络100中,需要用对网络100中的从设备120的总数以及网络100中的每个从设备120的位置的先验知识对主设备110进行预编程。另一方面,每个从设备120通常从不需要知道网络100中从设备120的总数或不需要具有所述知识。
图2是具有三个(N=3)从设备120的SPI网络100中的读取操作的实施方案的定时图。时间线标记的“M_MOSI(MOSI S1)”表示从主设备110的MOSI端口传输到第一从设备120(1)的MOSI端口的数据,时间线标记的“MISO S1(MOSI S2)”表示从第一从设备120(1)的MISO端口传输到第二从设备120(2)的MOSI端口的数据,时间线标记的“MISO S2(MOSI S3)”表示从第二从设备120(2)的MISO端口传输到第三从设备120(3)的MOSI端口的数据,并且时间线标记的“MISO S3(M_MOSI)”表示从第三从设备120(3)的MISO端口传输到主设备110的MOSI端口的数据。
在时间t1时,主设备110驱动CS_B为低并且网络100中的每个网点开始向最接近的下游网点传输所述网点的移位寄存器的内容。因此,在时间t1时,主设备110开始向第一从设备120(1)传输旨在用于第三从设备120(3)的第一读取命令CMD1_S3。
在时间t2(即,t1之后的16个SCLK周期)时,CMD1_S3将存储在第一从设备120(1)的移位寄存器中。在时间t2时,主设备110开始向第一从设备120(1)传输旨在用于第二从设备120(2)的第一读取命令CMD1_S2,并且第一从设备120(1)开始向第二从设备120(2)传输CMD1_S3。
在时间t3(即,t2之后的16个SCLK周期)时,CMD1_S3将存储在第二从设备120(2)的移位寄存器中,并且CMD1_S2将存储在第一从设备120(1)的移位寄存器中。在时间t3时,主设备110开始向第一从设备120(1)传输旨在用于第一从设备120(1)的第一读取命令CMD1_S1,第二从设备120(2)开始向第三从设备120(3)传输CMD1_S3,并且第一从设备120(1)开始向第二从设备120(2)传输CMD1_S2。
在时间t4(即,t3之后的16个SCLK周期)时,CMD1_S3将存储在第三从设备120(3)的移位寄存器中,CMD1_S2将存储在第二从设备120(2)的移位寄存器中,并且CMD1_S1将存储在第一从设备120(1)的移位寄存器中。在时间t4时,主设备110驱动CS_B为高,使得每个从设备120处理存储在其移位寄存器中的消息,其中在此例子中,每个消息是针对对应的从设备120内的(可能不同的)指定存储器位置的读取命令。如此,在时间t4到时间t5的时期期间,每个从设备120(i)用所请求数据(即,RESP_i)加载其移位寄存器。时间t4与时间t5之间的最小持续时间取决于具体设计。所述最小持续时间可以短到一个时钟周期,但通常更长。
在时间t5时,主设备110再次驱动CS_B为低,从而恢复数据传送操作。具体地说,在时间t5时,主设备110开始向第一从设备120(1)传输旨在用于第三从设备120(3)的第二命令CMD2_S3,第一从设备120(1)开始向第二从设备120(2)传输其响应RESP_1,第二从设备120(2)开始向第三从设备120(3)传输其响应RESP_2,并且第三从设备120(3)开始向主设备110传输其响应RESP_3。
在时间t6(即,t5之后的16个SCLK周期)时,主设备110开始向第一从设备120(1)传输旨在用于第二从设备120(2)的第二命令CMD2_S2,第一从设备120(1)开始向第二从设备120(2)传输CMD_S3,第二从设备120(2)开始向第三从设备120(3)传输RESP_1,并且第三从设备120(3)开始向主设备110传输RESP_2。
在时间t7(即,t6之后的16个SCLK周期)时,主设备110开始向第一从设备120(1)传输旨在用于第一从设备120(1)的第二命令CMD2_S1,第一从设备120(1)开始向第二从设备120(2)传输CMD_S2,第二从设备120(2)开始向第三从设备120(3)传输CMD_S3,并且第三从设备120(3)开始向主设备110传输其RESP_1。
在时间t8(即,t7之后的16个SCLK周期)时,所有三个响应RESP_1、RESP_2和RESP_3将已经由主设备110接收,CMD2_S3将存储在第三从设备120(3)的移位寄存器中,CMD2_S2将存储在第二从设备120(2)的移位寄存器中,并且CMD2_S1将存储在第一从设备120(1)的移位寄存器中。在时间t8时,主设备110再次驱动CS_B为高,使得每个从设备120处理存储在其移位寄存器中的消息,以此类推。
注意,在时间t5与t8之间的CS_B选通期间,从每个从设备120读取仅一组数据。此外,在时间t1与t4之间将读取命令传输到从设备320并且在时间t5与t8之间传输那些读取命令的结果出现于不同的CS_B选通期间。
发明内容
根据本发明的一个方面,提供一种用于网络的网点,所述网络包括以菊花链配置连接的主设备和多个从设备,其中:
所述网点是以下之一:所述主设备或所述从设备之一;
所述主设备传输芯片选择(CS)信号,所述芯片选择(CS)信号选择性地使能所述从设备执行网络操作;并且
所述主设备控制多个从设备以突发模式操作,在所述突发模式下,所述多个从设备中的每个从设备在单个CS选通内读取或写入多组数据。
根据一个或多个实施例,所述网点是所述主设备。
根据一个或多个实施例,所述网点是所述多个从设备中的一个从设备。
根据一个或多个实施例,所述从设备包括:
芯片选择端口,所述芯片选择端口从所述主设备接收所述CS信号;
时钟端口,所述时钟端口从所述主设备接收时钟信号;
数据输入端口,所述数据输入端口从所述网络中的最接近的上游网点接收传入数据;
数据输出端口,所述数据输出端口向所述网络中的最接近的下游网点传输传出数据;
移位寄存器(SR),所述SR从所述数据输入端口接收所述传入数据并且输出SR输出数据;
多路复用器(MUX),所述MUX具有从所述移位寄存器接收所述SR输出数据的第一MUX输入端口、从所述数据输入端口接收所述传入数据的第二MUX输入端口、向所述数据输出端口传输MUX输出数据的MUX输出端口以及接收MUX控制信号的MUX控制端口,所述MUX控制信号选择性地指示所述MUX:(i)在所述第一MUX输入端口处以所述MUX输出数据的形式输出所述SR输出数据或(ii)在所述第二MUX输入端口处以所述MUX输出数据的形式输出所述传入数据;以及
控制器,所述控制器生成所述MUX控制信号。
根据一个或多个实施例:
当所述从设备执行旁路从设备命令或单从设备命令时,所述控制器生成所述MUX控制信号,以指示所述MUX在所述第二MUX输入端口处以所述MUX输出数据的形式输出所述传入数据;并且
当所述从设备执行软从设备复位命令或软网络复位命令时,所述控制器生成所述MUX控制信号,以指示所述MUX在所述第一MUX输入端口处以所述MUX输出数据输出所述SR输出数据。
根据一个或多个实施例:
所述从设备具有移位寄存器(SR),所述SR以基于已知消息大小的时间间隔从所述网络中的最接近的上游网点按顺序接收所述消息大小的单独网络消息;并且
所述从设备在每个CS选通期间的每个时间间隔处解译其移位寄存器中的每个网络消息,以确定所述网络消息是否是要执行的命令。
根据一个或多个实施例:
所述从设备具有移位寄存器(SR),所述SR从所述网络中的最接近的上游网点按顺序接收单独网络消息;并且
当所述主设备终止CS选通时,所述从设备不解译或执行其移位寄存器中的网络消息。
根据一个或多个实施例:
所述主设备和所述从设备各自存储所述网络中的从设备总数的NUM_SLAVES值;并且
每个从设备使用所述NUM_SLAVES值来确定何时执行突发模式命令。
根据一个或多个实施例:
所述主设备和所述从设备不具有所述网络中的所述从设备总数的先验知识;
在所述突发模式之前,所述主设备向所述网络中的第一从设备传输地址分配命令;
每个从设备通过以下执行所述地址分配命令:(i)使所述网络中的最接近的上游网点的接收到的网络地址递增,以确定其自身的网络地址以及(ii)向所述网络中的最接近的下游网点传输其自身的网络地址;
所述主设备将所述NUM_SLAVES值设置成等于所述网络中的最后一个从设备的所述网络地址;并且
所述主设备传输网络大小命令以向每个从设备通知所述NUM_SLAVES值。
根据一个或多个实施例:
所述主设备指示至少一个从设备被配置成在一个或多个剩余从设备保持处于非旁路模式的同时处于旁路模式;并且
所述主设备然后指示所述一个或多个剩余从设备在所述至少一个从设备处于所述旁路模式的同时执行突发模式操作。
根据一个或多个实施例,所述主设备然后指示所述至少一个从设备被重新配置成处于所述非旁路模式。
根据一个或多个实施例:
所述主设备指示除了一个从设备之外的所有从设备被配置成在所述一个从设备保持处于非旁路模式的同时处于旁路模式;并且
所述主设备然后指示所述一个从设备在其它从设备处于所述旁路模式时执行读取/写入操作。
根据一个或多个实施例,所述主设备然后指示所有设旁路的从设备被配置成处于所述非旁路模式。
根据一个或多个实施例,在每个CS选通期间的每个时钟周期,所述网路中的每个网点向所述网络中的最接近的下游网点传输数据位。
根据一个或多个实施例,所述网络是串行外围接口(SPI)网络。
根据本发明的第二方面,提供一种网络,包括以菊花链配置连接的主设备和多个从设备,其中:
所述主设备传输选择性地使所述从设备能够执行网络操作的芯片选择(CS)信号;并且
所述主设备控制多个从设备以突发模式操作,在所述突发模式下,所述多个从设备中的每个从设备在单个CS选通内读取或写入多组数据。
附图说明
本发明的实施例是通过例子示出的并且不受附图的限制,在附图中,相同的附图标记指示类似的元件。附图中的元件为了简洁和清晰而示出的并且不一定按比例绘制。例如,可以为了清晰起见而夸大层和区域的厚度。
图1是常规SPI菊花链网络的示意性框图;
图2是具有三个从设备的图1的SPI网络的实施方案的读取操作的定时图;
图3是根据本发明的一个实施例的SPI菊花链网络的示意性框图;
图4是图3的网络中的从设备的简化示意性框图;
图5是图3的网络中的16位命令的格式的表示;
图6是标识由图3的网络支持的多个不同的命令的表;
图7是具有三个从设备的图3的网络中的地址分配操作的实施方案的定时图;
图8是具有三个从设备的图3的网络中的大小广播操作的实施方案的定时图;
图9是具有三个从设备的图3的网络中的突发读取操作的实施方案的定时图;
图10是具有三个从设备的图3的网络中的突发写入操作的实施方案的定时图;
图11是具有三个从设备的图3的网络中的混合突发读取/写入操作的实施方案的定时图;并且
图12是具有三个从设备的图3的网络中的旁路从设备操作的实施方案的定时图。
具体实施方式
本文公开了本发明的详细的说明性实施例。然而,出于描述本发明的示例实施例的目的,本文公开的具体结构和功能细节仅是代表性的。本发明的实施例可以以许多替代形式体现并且不应被解释为仅限于本文所示的实施例。另外,本文所使用的术语是出于仅描述特定实施例的目的并且不旨在限制本发明的示例实施例。
如本文所使用的,除非上下文另外清楚地指明,否则单数形式“一个/种(a/an)”和“所述(the)”旨在也包括复数形式。另外应当理解的是,术语“包括(comprises/comprising)”、“具有(has/having)”、“包括(includes/includes)”指定所述特征、步骤或组件的存在,但是不排除一个或多个其它特征、步骤、组件的存在或添加。还应该注意的是,在一些替代性实施方案中,标注的功能/动作可以不按附图中标注的顺序发生。例如,根据所涉及的功能/动作,连续示出的两个图实际上可以基本上同时执行或有时可以按相反顺序执行。除非另有说明,否则术语“或”应被解释为包含性的。
根据本发明的某些实施例,菊花链网络的主设备和从设备与图1的常规主从菊花链SPI网络100相比支持实现更高效地(例如,更快地)将数据移位到从设备中并且将数据移位出从设备的SPI协议。
本发明的一个实施例是一种网络或一种包括主设备和多个从设备的以菊花链配置连接的网络的网点,其中所述网点是主设备或从设备中的一个从设备。主设备(i)传输选择性地使从设备能够执行网络操作的芯片选择(CS)信号和(ii)控制多个从设备以突发模式操作,在所述突发模式下,多个从设备中的每个从设备在单个CS选通内读取或写入多组数据。
图3是根据本发明的一个实施例的包括主设备310和N个从设备320(1)-320(N)的以菊花链配置连接的网点的SPI网络300的框图。与图1的主设备110和从设备120相似,图3的主设备310和从设备320各自具有类似的SCLK、CS_B、MOSI和MISO端口。
图4是图3的每个从设备320的简化框图。与图1的从设备120相似,从设备320具有输入端口MOSI、SCLK和CS_B、16位移位寄存器(SR)402以及输出端口MISO。另外,从设备320具有反相器404、多路复用器(mux)406、旁路控制逻辑408和控制器410。
虽然图中未明确地呈现,但是主设备310具有两个移位寄存器:连接到其MOSI输出端口的用于向第一从设备320(1)传输消息的传出移位寄存器和连接到其MISO输入端口的用于从第N从设备320(N)接收消息的传入移位寄存器。
在MOSI端口处从图3的网络300中的最接近的上游网点接收到的传入数据信号401施加到(i)mux 406的逻辑1输入端口和(ii)移位寄存器402的数据输入端口两者。移位寄存器402也接收SCLK时钟信号,所述SCLK时钟信号用于对以下计时:(i)按每个周期一个位进入移位寄存器402的传入数据信号401和(ii)按每个周期一个位从移位寄存器402到mux406的逻辑0输入端口的SR数据信号403。
当来自旁路控制逻辑408的mux控制信号409为高(即,逻辑1)时,mux 406提供其逻辑1输入端口处的输出数据信号407形式的数据。否则,当mux控制信号409为低(即,逻辑0)时,mux 406提供其逻辑0输入端口处的输出数据信号407形式的数据。如下文另外描述的,当从设备320被配置成处于默认的非旁路模式时,mux控制信号409为低并且mux 406提供输出数据信号407的SR数据信号403。当从设备320被配置成处于旁路模式时,mux控制信号409为高并且mux 406提供输出数据信号407的传入数据信号401。
反相器404使CS_B信号反相,以形成输出使能信号405。虽然图4中未示出,但是MISO端口具有接收以下的与(AND)门(或与门的逻辑等效物):(i)来自反相器404的输出使能信号405以及(ii)来自mux 406的输出数据信号407。当CS_B为高时,输出使能信号405为低并且MISO端口中的与门阻止输出数据信号407从MISO端口传输到图3的网络300中的最接近的下游网点。另一方面,当CS_B为低时,输出使能信号405为高并且MISO端口中的与门允许将输出数据信号407从MISO端口传输到最接近的下游网点。
当从设备320被配置成处于默认的非旁路模式并且CS_B为低时,从设备320将接收进入其移位寄存器402的传入数据信号401;解译其移位寄存器402的内容;如果那些内容对应于要执行的命令,则执行所述命令;并且向网络300中的最接近的下游网点传输其移位寄存器402的(可能经过更新的)内容。另一方面,当从设备320被配置成处于旁路模式并且CS_B为低时,从设备320将向网络300中的最接近的下游网点立即传输传入数据信号401,使得从设备320对在此时正在执行的网络操作实际上是透明的。注意,虽然从设备320处于旁路模式,但是从设备320将仍接收进入其移位寄存器402中的传入数据信号401;解译其移位寄存器402的内容;并且如果那些内容对应于要执行的命令,则执行所述命令。如下文所解释的,这种离线处理使主设备310能够指示设旁路的从设备320在不需要必须执行对整个网络300的硬件复位的情况下将自身重新配置成回到默认的未设旁路模式。除非另外明确说明,否则以下所提及的每个从设备320被假设为处于非旁路模式。
在一些替代性实施例中,将旁路的从设备320重新配置成回到未设旁路的模式的唯一方式是利用硬复位。在此类实施例中,设旁路的从设备320不需要能够接收、解译或执行其移位寄存器402中的命令。
根据本发明的某些实施例,图3的主设备310和从设备320不具有对网络300中的从设备总数的先验知识,并且每个从设备320不具有对其在网络300内的位置的先验知识。然而,主设备310和从设备320支持用于确定两者的特定网络操作。具体地说,主设备310和从设备320支持地址分配操作,在所述地址分配操作期间,每个从设备320确定其在网络300内的位置(即,其网络地址)并且主设备310确定网络300中的从设备总数。另外,主设备310和从设备320支持大小广播操作,在所述大小广播操作期间,主设备310向从设备320(串行地)广播网络300中的从设备总数。
在那两个操作之后并且利用所产生信息,主设备310和从设备320支持与图1的常规主从菊花链SPI网络100相比可以分别更高效地将数据传送出从设备320并且将数据传送到从设备320的读取操作和写入操作。
如下文另外描述的,主设备310和从设备320还支持旁路从设备操作,在所述旁路从设备操作中,主设备310命令特定从设备320将自身重新配置成处于旁路模式,这实际上使得从设备320对随后的读取和/或写入操作是透明的。另外,主设备310和从设备320支持软从设备复位操作,在所述软从设备复位操作中,主设备310命令特定从设备320将自身重新配置成回到默认的非旁路模式,以便终止针对所述特定从设备320的旁路从设备操作。
主设备310和从设备320还支持单从设备操作,其中主设备310命令除单个已标识的从设备320之外的所有从设备320将自身配置成处于旁路模式下,这使主设备310能够仅利用所述单个已标识的从设备320执行随后的读取和/或写入操作。另外,主设备310和从设备320支持软网络复位操作,其中所有从设备320将自身配置成处于默认的非旁路模式下,以便终止单从设备操作。
图5是图3的网络300中的每个16位命令REG_ADDR[15:0]的格式的表示。如下文关于图6所描述的,四位REG_ADDR[15:12](在图4中标记的C3-C0)标识命令的类型,并且接下来的12位REG_ADDR[11:0]含有与所述命令相关联的数据。注意,对于数据消息,如用于传送读取或写入数据的那些数据消息,所有16位都可以用于数据。
图6是标识由图3的网络300支持的多个不同的命令的表。注意,图6只是表示由网络300支持的不同命令的一种可能的方式。
如下文关于图7另外描述的,主设备310使用地址分配命令[C3:C0]=[0100]来执行地址分配操作,在所述地址分配操作期间,每个从设备320确定其在网络内的位置的网络地址,其中第一从设备320(1)的网络地址为1,第二从设备320(2)的网络地址为2,以此类推,并且主设备310确定网络300中的从设备320的总数。
如下文关于图8另外描述的,主设备310使用网络大小命令[0110]来执行大小广播操作,在所述大小广播操作期间,向每个从设备320通知网络300中的从设备总数。
如下文关于图9另外描述的,主设备310使用从从设备读取命令[1010]来指示从设备320检索并传输来自从设备的本地存储器内的一个或多个连续位置的一组或多组数据。
如下文关于图10另外描述的,主设备310使用写入到从设备命令[0010]来指示从设备320将一组或多组数据写入到从设备的本地存储器内的一个或多个连续位置中。
如下文关于图12另外描述的,主设备310使用旁路从设备命令[1000]来指示从设备320将自身配置成处于旁路模式下。
主设备310使用软从设备复位命令[1110]来指示被配置成处于旁路模式下的从设备320将自身重新配置回处于默认的非旁路模式下。
主设备310使用单从设备命令[1100]来指示除一个从设备320之外的所有从设备320将自身配置成处于旁路模式下。单从设备命令用于配置网络300以便进行随后的单从设备操作,其中主设备310仅从网络300中的所述一个从设备320读取数据并且仅将数据写入到所述一个从设备320。
主设备310使用软网络复位命令[1111]来指示每个从设备320将自身重新配置成处于默认的非旁路模式下。软网络复位命令用于在单从设备操作完成时复位网络300,而不必执行对网络300的硬复位。
主设备310使用虚设命令[0000]来指示从设备320不进行任何动作。
图6中未示出的[C3:C0]的值可以用于由网络300支持的其它现有命令或者为要在将来定义的命令而保留。
主设备310和从设备320各自维持自CS_B由主设备310最后一次驱动为低以后的SCLK周期的总数的本地计数器。当主设备310驱动CS_B为高时,主设备310和从设备320都复位其本地SCLK周期计数器。主设备310使用其计数器来调度网络300中的操作,并且从设备320使用其计数器来确定何时解译其移位寄存器402的内容并且(如果适当的话)何时基于其移位寄存器402的内容执行操作。
在一些实施方案中,主设备310和从设备320中的本地计数器可以是模P计数器,其中P为包长度与网络300中的(未设旁路的)从设备320的总数的乘积。例如,对于具有三个从设备320的网络300以及16的包长度,模P计数器将从1到48重复计数。
具体地说,每个从设备320自CS_B被驱动为低以后每间隔16个SCLK周期解译其移位寄存器402的内容。如下文另外描述的,一旦从设备320解译出其SR内容对应于一些命令类型之一,那些命令类型就要由从设备320执行,而其它命令类型要由从设备320仅以其它间隔执行。
例如,一旦任何从设备320解译出其SR内容对应于地址分配命令、网络大小命令、旁路从设备命令、单从设备命令、软从设备复位命令和软网络复位命令的命令类型之一,这些命令就要被执行。
另一方面,只有当从设备320的SCLK周期计数器等于16与网络300中的从设备总数的乘积时,写入到从设备命令和从从设备读取命令才要由从设备320执行。因此,在下文描述的具有三个从设备320的示例网络300中,每个从设备320仅在CS_B被驱动为低之后的3x16或48个SCLK周期将执行其移位寄存器402中的写入到从设备命令或从从设备读取命令。
主设备310未将数据传输命令(即,写入到从设备和从从设备读取)与同一CS_B选通中的任何其它命令混合,因此确保从设备320可以区分数据消息与命令消息。
虽然在具有16位消息的主从菊花链网络300,其中从设备320具有16位移位寄存器402并且图6示出了特定的命令组的上下文中描述了本发明,但是本领域技术人员将理解,在替代性实施例中,消息和移位寄存器可以具有其它合适的大小,和/或不同的值和/或不同的位的数量可以用于相同的或不同的命令组。
在优选的场景中,在网络300中执行的第一网络操作是地址分配操作,使得每个从设备320可以确定其在网络320内的位置,并且主设备310可以确定网络300中的从设备总数。优选地,第二网络操作是大小广播操作,使得每个从设备320将被通知网络300中的从设备总数。在那时,可以执行如读取操作和写入操作等其它网络操作。
如本文所使用的,单个网络操作对应于在一个CS_B选通期间(即,从主设备310驱动CS_B为低的时间直到主设备310下一次驱动CS_B为高的时间)由主设备310和从设备320执行的处理。与图1的常规SPI网络100的从设备120不同,图3的SPI网络300的从设备320在CS_B被驱动为高时不对所述从设备320的移位寄存器402的内容进行处理。相反,由从设备320进行的与网络操作相关联的所有处理在CS_B为低时发生。图3的主设备310驱动CS_B为高以终止网络操作。
示例地址分配操作
图7是具有N=3个从设备320的图3的网络300中的地址分配操作的实施方案的定时图。在地址分配操作期间,每个从设备320接收最接近的上游网点的网络地址,递增所述地址,存储递增的地址作为所述从设备320的网络地址,并且将所述从设备320的网络地址传输到最接近的下游网点。主设备310通过向第一从设备320(1)传输网络地址值0来开始操作。当第三且最后一个从设备320(3)向主设备310传输所述从设备320(3)的网络地址值(即,3)时,主设备310保存所述网络地址值作为网络300中的从设备320的总数(NUM_SLAVES)。
图7所示的时间线类似于图2所示的类似地标记的时间线。对于下文所描述的所有其它定时图也是如此。
在时间t1时,主设备310驱动CS_B为低并且网络300中的每个网点开始向最接近的下游网点传输所述网点的移位寄存器的内容。因此,在时间t1时,主设备310开始向第一从设备320(1)传输16位(十六进制)消息0x4000,而每个从设备320向最接近的下游网点传输默认的虚设消息0x0000。
在时间t2(即,时间t1之后的16个SCLK周期)时,消息0x4000存储在第一从设备320(1)的移位寄存器中,并且第一从设备320(1)解译消息0x4000。具体地说,第一从设备320(1)将消息值0x4解译为对应于地址分配命令(即,图6中的二进制[0100])。如此,第一从设备320(1)通过以下执行地址分配命令:(i)将12位命令数据值0x000递增为0x001并且(ii)存储值0x001作为所述第一从设备320(1)的网络地址。注意,在时间t2时,第二从设备320(2)和第三从设备320(3)也将解译其移位寄存器的内容,但是因为其移位寄存器将含有虚设命令0x0000,所以那些从设备320将不会进行任何动作。在时间t2时,第一从设备320(1)开始向第二从设备320(2)传输所述第一从设备320(1)的SR值0x4001。注意,在此实施方案中,在时间t2时,主设备310开始传输消息0x0000。在替代性实施方案中,主设备310可以重新传输消息0x4000以对网络300实现相同的净效应。
在时间t3(即,时间t2之后的16个SCLK周期)时,消息0x4001存储在第二从设备320(2)的移位寄存器中,并且第二从设备320(2)解译消息0x4001。具体地说,第二从设备320(2)将消息值0x4解译为对应于地址分配命令。如此,第二从设备320(2)通过以下执行地址分配命令:(i)将12位消息数据值0x001递增为0x002并且(ii)存储值0x002作为所述第二从设备320(2)的网络地址。注意,在时间t3时,第一从设备320(1)和第三从设备320(3)也将解译其移位寄存器的内容,但是因为那些移位寄存器将含有虚设命令0x0000,所以那些从设备320将不会进行任何动作。在时间t3时,第二从设备320(2)开始向第三从设备320(3)传输所述第二从设备320(2)的SR值0x4002。
在时间t4(即,时间t3之后的16个SCLK周期)时,消息0x4002存储在第三从设备320(3)的移位寄存器中,并且第三从设备320(3)解译消息0x4002。具体地说,第三从设备320(3)将命令值0x4解译为对应于地址分配命令。如此,第三从设备320(3)通过以下执行地址分配命令:(i)将12位消息数据值0x002递增为0x003并且(ii)存储值0x003作为所述第三从设备320(3)的网络地址。在时间t4时,第三从设备320(3)开始向主设备310传输所述第三从设备320(3)的SR值0x4003。
在时间t5(即,时间t4之后的16个SCLK周期)时,主设备310将已经接收到消息0x4003,此时,主设备310将会将0x003解译为指示网络300中的从设备320的总数(即,NUM_SLAVES=3)。如此,在时间t5时,主设备310驱动CS_B为高以终止地址分配操作。
示例大小广播操作
图8是具有N=3个从设备320的图3的网络300中的大小广播操作的实施方案的定时图。在大小广播操作期间,主设备310(串行地)广播网络300中的从设备320的总数(在此例子中,NUM_SLAVES=3)。每个从设备320从最接近的上游网点接收NUM_SLAVES,将NUM_SLAVES的值存储在所述从设备320的从设备总数的本地参数中,并且向最接近的下游网点传输NUM_SLAVES。基于主设备310对网络300中的从设备320的总数的了解,所述主设备310将了解网络大小命令何时到达网络300中的最后一个从设备320(3)。
在时间t1时,主设备310驱动CS_B为低并且开始向第一从设备320(1)传输16位(十六进制)消息0x6003。
在时间t2(即,时间t1之后的16个SCLK周期)时,消息0x6003存储在第一从设备320(1)的移位寄存器中,并且第一从设备320(1)解译消息0x6003。具体地说,第一从设备320(1)将消息值0x6解译为对应于网络大小命令(即,图6中的二进制[0110])。如此,第一从设备320(1)通过存储12位命令数据值0x003作为所述第一从设备320(1)的网络300中的从设备总数的本地值来执行网络大小命令。在时间t2时,第一从设备320(1)开始向第二从设备320(2)传输所述第一从设备320(1)的SR值0x6003。
在时间t3(即,时间t2之后的16个SCLK周期)时,消息0x6003存储在第二从设备320(2)的移位寄存器中,并且第二从设备320(2)以与第一从设备320(1)相同的方式对消息0x6003进行处理。在时间t3时,第二从设备320(2)开始向第三从设备320(3)传输所述第二从设备320(2)的SR值0x6003。
在时间t4(即,时间t3之后的16个SCLK周期)时,消息0x6003存储在第三从设备320(3)的移位寄存器中,并且第三从设备320(3)以与第一从设备320(1)和第二从设备320(2)相同的方式对消息0x6003进行处理。在时间t4时,主设备310了解消息0x6003已经到达第三从设备320(3)并且大小广播操作完成。如此,在时间t4时,主设备310驱动CS_B为高。
在已经执行了图8的大小广播操作之后,每个从设备320了解网络300中的从设备总数。利用所述信息并且通过对自CS_B被驱动为低以后的SCLK周期的数量进行计数,每个从设备320可以确定其何时被允许执行从从设备读取命令或写入到从设备命令。例如,如果网络300具有三个从设备320,则每个从设备320了解其被允许在SC_B被驱动为低之后的(3x16)个或48个SCLK周期执行其移位寄存器中的从从设备读取命令或写入到从设备命令。
如本文所使用的,术语“突发操作”是指其中在单个CS_B选通中从至少一个从设备320读取两组或更多组数据和/或将所述两组或更多组数据写入到所述至少一个从设备320的网络操作。如下所述,网络300支持其中在单个CS_B选通中从未设旁路的从设备读取多组数据的突发读取操作、其中在单个CS_B选通中将多组数据写入到未设旁路的从设备的突发写入操作和其中在单个CS_B选通中从一个或多个未设旁路的从设备读取多组数据和将多组数据写入到剩余一个或多个未设旁路的从设备的混合突发读取/写入操作。在此类突发操作期间,未设旁路的从设备被视为在对应的突发模式下操作。
示例突发读取操作
图9是具有N=3个从设备320的图3的网络300中的突发读取操作的实施方案的定时图。在突发读取操作期间,主设备310传输从从设备读取命令以指示每个从设备320开始从指定的本地存储器位置读取数据并且向网络300中的最接近的下游网点传输所述数据。
参考图9,在时间t1时,主设备310驱动CS_B为低并且开始向第一从设备320(1)传输16位从从设备读取命令R_ADDR3,其中R_ADDR3的前4位是[1010],指示R_ADDR3是如图6中的从从设备读取命令,并且R_ADDR3的最后12位标识第三从设备320(3)内的特定存储器位置(ADDR3)。
在时间t2(即,在时间t1之后的16个SCLK周期)时,第一从设备320(1)将其移位寄存器的内容(即,R_ADDR3)解译为从从设备读取命令,但是因为自CS_B被驱动为低以后尚未对48个SCLK周期进行计数,所以第一从设备320(1)未执行所述从从设备读取命令。相反,在时间t2时,第一从设备320(1)开始向第二从设备320(2)传输R_ADDR3,并且主设备310开始向第一从设备320(1)传输16位从从设备读取命令R_ADDR2,其中R_ADDR2的前4位也是[1010]并且R_ADDR2的最后12位标识第二从设备320(2)内的特定存储器位置(ADDR2)。
在时间t3(即,在时间t2之后的16个SCLK周期)时,第一从设备320(1)将其移位寄存器的内容(即,R_ADDR2)解译为从从设备读取命令,并且第二从设备320(2)将其移位寄存器的内容(即,R_ADDR3)也解译为从从设备读取命令,但是因为自CS_B被驱动为低以后尚未对48个SCLK周期进行计数,所以第一从设备320(1)和第二从设备320(2)未执行那些从从设备读取命令。相反,在时间t3时,第二从设备320(2)开始向第三从设备320(3)传输R_ADDR3,第一从设备320(1)开始向第二从设备320(2)传输R_ADDR2,并且主设备310开始向第一从设备320(1)传输16位从从设备读取命令R_ADDR1,其中R_ADDR1的前4位也是[1010]并且R_ADDR1的最后12位标识第一从设备320(1)内的特定存储器位置(ADDR1)。
在时间t4(即,时间t3之后的16个SCLK周期)时,第一从设备320(1)的移位寄存器将含有R_ADDR1,第二从设备320(2)的移位寄存器将含有R_ADDR2,并且第三从设备320(3)的移位寄存器将含有R_ADDR3。而且,在时间t4时,每个从设备320将确定自CS_B被驱动为低以后已经对48个SCLK周期进行了计数。如此,每个从设备320将解译存储在其移位寄存器中的消息,确定所述消息为从从设备读取命令,并且执行所述命令。因此,在时间t4时,第一从设备320(1)将从其存储器位置ADDR1检索16位的数据(DATA1_1)并将所述数据存储在其移位寄存器中,第二从设备320(2)将从其存储器位置ADDR2检索16位的数据(DATA2_1)并将所述数据存储在其移位寄存器中,并且第三从设备320(3)将从其存储器位置检索16位的数据(DATA3_1)并将所述数据存储在其移位寄存器中。尽管图9中未明确示出,但是来自从设备320的响应包可以含有除来自寻址到的存储器位置的数据之外的信息,如状态、错误校验码、从设备网络地址、来自主设备310的命令回波。
在时间t4时,每个从设备320将开始向最接近的下游网点传输所述每个从设备320的SR内容。因此,第一从设备320(1)将开始向第二从设备320(2)传输DATA1_1,第二从设备320(2)将开始向第三从设备320(3)传输DATA2_1,并且第三从设备320(3)将开始向主设备310传输DATA3_1。
在时间t5(即,时间t4之后的16个SCLK周期)时,每个从设备320将继续向最接近的下游网点传输所述每个从设备320的SR内容。因此,第二从设备320(2)将开始向第三从设备320(3)传输DATA1_1,并且第三从设备320(3)将开始向主设备310传输DATA2_1。
在时间t6(即,时间t5之后的16个SCLK周期)时,第三从设备320(3)将开始向主设备310传输DATA1_1。
在时间t7(即,时间t6之后的16个SCLK周期)之前,第一组突发数据(DATA1_1、DATA2_1、DATA3_1)将已经由主设备310接收。此外,因为从设备320了解网络300中的从设备总数,所以每个从设备320将了解第一组突发数据已经由主设备310在时间t7(即,时间t4之后的48个SCLK周期,此时,从设备320开始传输当前数据组)时接收。
如图9所示,在t4时开始,主设备310开始传输向从设备320指示要继续突发读取模式的虚设命令0x0000。如此,尽管图9中未明确示出,但是在时间t7时开始,对每个从设备内的接下来的存储器位置重复时间t4到t7的处理。因此,在时间t7时,每个从设备320将另一个16位的数据检索到其移位寄存器中。具体地说,第一从设备320(1)递增其存储器位置值ADDR1并且从所述下一个存储器位置检索数据DATA1_2,第二从设备320(2)递增其存储器位置值ADDR2并且从所述下一个存储器位置检索数据DATA2_2,并且第三从设备320(3)递增其存储器位置值ADDR3并且从所述下一个存储器位置检索数据DATA3_2。在时间t7时,所有三个从设备320开始向最接近的下游网点传输所述三个从设备320的SR内容。
只要主设备310保持CS_B为低并且继续传输虚设命令0x0000,此处理就继续。
图9表示由从设备320从时间t8到时间t11对最后一组读取数据(DATA1_n、DATA2_n、DATA3_n)进行的类似处理。在时间t11时,基于主设备310的本地SCLK计数器,所述主设备310确定其已经从第一从设备320(1)接收到最后一个数据消息DATA1_n并且驱动CS_B为高以终止突发读取操作。
注意,在图9的单个CS_B选通期间,从时间t1到时间t4,主设备310向所有从设备320传输从从设备读取命令,并且从时间t4到时间t11,每个从设备320将多组数据从连续的本地存储器位置传输到主设备310。因此,在单个突发读取网络操作期间,多组数据是从从设备320读取的。
示例突发写入操作
图10是具有N=3个从设备320的图3的网络300中的突发写入操作的实施方案的定时图。在突发写入操作期间,主设备310传输写入到从设备命令以指示每个从设备320将随后传输的数据存储到从设备320内的指定存储器位置中。
因为网络300具有三个从设备320,所以每个从设备320了解其被允许在CS_B被驱动为低之后的(3x16)或48个SCLK周期执行其移位寄存器中的写入到从设备命令。在所述情况下,每个从设备320还知道移位寄存器将含有在(6x16)或96个SCLK周期之后,并且潜在地再次在(9x16)或144个SCLK周期之后等要存储在其本地存储器,直到主设备310通过驱动CS_B为高来终止突发写入操作的数据。
参考图10,在时间t1时,主设备310驱动CS_B为低并且开始向第一从设备320(1)传输16位写入到从设备命令W_ADDR3,其中W_ADDR3的前4位是[0010],指示W_ADDR3是如图6中的从从设备读取命令,并且W_ADDR3的最后12位标识第三从设备320(3)内的特定存储器位置(ADDR3)。
在时间t2(即,在时间t1之后的16个SCLK周期)时,第一从设备320(1)将其移位寄存器的内容(即,W_ADDR3)解译为写入到从设备命令,但是因为自CS_B被驱动为低以后尚未对48个SCLK周期进行计数,所以第一从设备320(1)未执行所述写入到从设备命令。相反,在时间t2时,第一从设备320(1)开始向第二从设备320(2)传输W_ADDR3,并且主设备310开始向第一从设备320(1)传输16位写入到从设备命令W_ADDR2,其中W_ADDR2的前4位也是[0010]并且W_ADDR2的最后12位标识第二从设备320(2)内的特定存储器位置(ADDR2)。
在时间t3(即,在时间t2之后的16个SCLK周期)时,第一从设备320(1)将其移位寄存器的内容(即,W_ADDR2)解译为写入到从设备命令,并且第二从设备320(2)将其移位寄存器的内容(即,W_ADDR3)也解译为写入到从设备命令,但是因为自CS_B被驱动为低以后尚未对48个SCLK周期进行计数,所以第一从设备320(1)和第二从设备320(2)未执行那些写入到从设备命令。相反,在时间t3时,第二从设备320(2)开始向第三从设备320(3)传输W_ADDR3,第一从设备320(1)开始向第二从设备320(2)传输W_ADDR2,并且主设备310开始向第一从设备320(1)传输16位写入到从设备命令W_ADDR1,其中R_ADDR1的前4位也是[0010]并且W_ADDR1的最后12位标识第一从设备320(1)内的特定存储器位置(ADDR1)。
在时间t4(即,时间t3之后的16个SCLK周期)时,第一从设备320(1)的移位寄存器将含有W_ADDR1,第二从设备320(2)的移位寄存器将含有W_ADDR2,并且第三从设备320(3)的移位寄存器将含有W_ADDR3。而且,在时间t4时,每个从设备320将确定自CS_B被驱动为低以后已经对48个SCLK周期进行了计数。如此,每个从设备320将解译存储在其移位寄存器中的消息,确定所述消息为写入到从设备命令,并且执行所述命令。因此,第一从设备320(1)将会将其本地存储器指针设定为值ADDR1,第二从设备320(2)将会将其本地存储器指针设定位值ADDR2,并且第三从设备320(3)将会将其本地存储器指针设定为ADDR3。尽管图10中未明确示出,但是网点320可以传输回含有如状态、错误校验码、从设备网络地址、来自主设备310的命令回波等信息的响应包。
在时间t4时,主设备310将开始向第一从设备320(1)传输DATA3_1。
在时间t5(即,时间t4之后的16个SCLK周期)时,主设备310将开始向第一从设备320(1)传输DATA2_1,并且第一从设备320(1)将开始向第二从设备传输DATA3_1。
在时间t6(即,时间t5之后的16个SCLK周期)时,主设备310将开始向第一从设备320(1)传输DATA1_1,第一从设备320(1)将开始向第二从设备320(2)传输DATA2_1,并且第二从设备320(2)将开始向第三从设备320(3)传输DATA3_1。
在时间t7(即,时间t6之后的16个SCLK周期)时,第一从设备320(1)的移位寄存器将含有DATA1_1,第二从设备320(2)的移位寄存器将含有DATA2_1,并且第三从设备320(3)的移位寄存器将含有DATA3_1。而且,在时间t7时,每个从设备320将确定当从设备320接收到具有本地存储器地址的写入到从设备命令时,自时间t4以后已经有48个SCLK周期。如此,每个从设备320将会将其移位寄存器的内容存储到由所述每个从设备320的本地存储器指针标识的存储器位置中。
虽然图10中未明确示出,但是在时间t7时,对每个从设备内的接下来的存储器位置重复时间t4到t7的处理。因此,在时间t7时,主设备310开始向第一从设备320(1)传输DATA3_2,接着传输DATA2_2,然后传输DATA1_2。如此,在下一组48个SCLK周期之后,每个从设备320将再次了解其移位寄存器含有要存储的数据。每个从设备320递增其本地存储器指针以将所述数据存储在其下一个存储器位置中。只要主设备310保持CS_B为低,此处理就继续。
图10表示由从设备320从时间t8到时间t11对最后一组数据(DATA3_n、DATA2_n、DATA1_n)进行的类似处理。在时间t11时,基于主设备310的本地SCLK计数器,所述主设备310确定最后一组数据已经由从设备320接收并存储,并且驱动CS_B为高以终止突发写入操作。
注意,在图10的单个CS_B选通期间,从时间t1到时间t4,主设备310向所有从设备320传输写入命令,并且从时间t4到时间t11,每个从设备320从主设备310接收多组数据并且将所述多组数据存储到连续的本地存储器位置中。因此,在单个突发写入网络操作期间,多组数据写入到从设备320。
示例混合突发读取/写入操作
图11是具有N=3个从设备320的图3的网络300中的混合突发读取/写入操作的实施方案的定时图。在此特定例子中,在单个突发操作中,从第一从设备320(1)和第三从设备320(3)读取数据,并且所述数据写入到第二从设备320(2)。如此,图11的定时图本质上是图9的第一从设备320(1)和第三从设备320(3)的定时图与图10的第二从设备320(2)的定时图的组合。
具体地说,从时间t1到时间t4,主设备310向第一从设备320(1)和第三从设备320(3)传输从从设备读取命令R_ADDR1和R_ADDR2并且向第二从设备320(2)传输写入到从设备命令W_ADDR2。
在时间t4时,三个从设备320执行其相应的命令。具体地说,第一从设备320(1)和第三从设备320(3)将第一组读取数据(即,分别为RDATA1_1和RDATA3_1)从其本地存储器复制到其移位寄存器中,而第二从设备320(2)保存命令W_ADDR2中指定的本地地址位置。
从时间t4到时间t7,从设备320向主设备310传输读取数据RDATA1_1和RDATA3_1,而主设备310向第二从设备320(2)传输第一组写入数据WDATA2_1。
在时间t7时,第一从设备320(1)和第三从设备320(3)将第二组读取数据(即,分别为RDATA1_2和RDATA3_2)从其本地存储器复制到其移位寄存器中,而第二从设备320(2)将写入数据WDATA2_1存储到其本地存储器中并且递增其本地地址指针。
从时间t7开始,重复从第一从设备320(1)和第三从设备320(3)读取数据并将数据写入到第二从设备320(2)的过程直到突发模式在时间t11时结束,此时,主设备310驱动CS_B为高。
示例旁路从设备操作
图12是在具有N=3个从设备320的图3的网络300中的旁路从设备操作的实施方案的定时图,在所述旁路从设备操作中,主设备310指示第二从设备320(2)将自身配置成处于旁路模式。在旁路从设备操作期间,主设备310传输旁路从设备命令0x8002,其中0x8值指示消息是图6中的旁路从设备命令[1000],并且0x002值指示第二从设备320(2)是所述命令的预期从设备。
在时间t1时,主设备310驱动CS_B为低并且开始向第一从设备320(1)传输旁路从设备命令0x8002。在时间t2(即,时间t1之后的16个SCLK周期)时,第一从设备320(1)确定其移位寄存器的内容是旁路从设备命令但是所述第一从设备320(1)并非所述命令的预期从设备。因此,第一从设备320(1)不执行所述命令。
在时间t2时,第一从设备320(1)开始向第二从设备320(2)传输旁路从设备命令0x8002。在时间t3(即,时间t2之后的16个SCLK周期)时,第二从设备320(2)确定其移位寄存器的内容是旁路从设备命令并且所述第二从设备320(2)并非所述命令的预期从设备。如此,第二从设备320(2)将执行所述命令并将自身配置成处于旁路模式。
具体地并且再次参考图4,在确定移位寄存器402含有旁路从设备命令0x8002之后,第二从设备320(2)中的控制器410指示所述第二从设备320(2)的旁路控制逻辑408将所述第二从设备320(2)的mux控制信号409设置为高,使得所述第二从设备320(2)的mux 406将直接转发随后的输出数据信号407的传入数据信号401。如此,当处于旁路模式时,会将第二从设备320(2)从第一从设备320(1)接收的每个位立即传输到第三从设备320(3)。在那种情况下,网络300将如同第二从设备320(2)不存在一样操作。
由于主设备310知道第二从设备320(2)是旁路从设备命令的预期从设备,因此主设备310知道到时间t3时第二从设备320(2)将已接收到旁路从设备命令并已对所述旁路从设备命令进行了处理。如此,在时间t3时,主设备310驱动SC_B为高以结束旁路从设备操作。
注意,虽然未在图12中表示,但是主设备310可以传输一个或多个另外的旁路从设备命令以将一个或多个其它从设备320配置成处于旁路模式。这可以在相同的网络操作中(即,在图12的CS_B选通期间)或在不同的网络操作中(即,在不同的CS_B选通期间)进行。
虽然未在图12中明确表示,但是为了与处于旁路模式的第二从设备320(2)一起正常工作,在时间t4时,主设备310再次驱动CS_B为低并且传输网络大小命令0x6002,以关于网络300中的(未设旁路的)从设备320的总数(即,现在为2)对从设备320进行更新。在那种情况下,包括设旁路的第二从设备320(2)的每个从设备320将针对网络300中的从设备总数而更新所述每个从设备320的本地参数(NUM_SLAVES)的值。这使得网络300能够利用以下实施随后的突发读取操作和/或突发写入操作:(i)处于旁路模式的第二从设备320(2)以及(ii)第一从设备320(1)和第三从设备320(3),所述第一从设备320(1)和第三从设备320(3)在(2x16)或32个SCLK周期的间隔而非48个SCLK周期的间隔时执行从从设备读取命令和/或写入到从设备命令。在替代性场景中,主设备310可以在相同的或不同的CS_B选通期间在旁路从设备命令0x8002之前或之后传输网络大小命令0x6002。
注意,从设备320将保留其先前确定的网络地址,使得例如第三从设备320(3)将继续使用网络地址3作为其在网络300内的位置。如下文所描述的,这使得主设备310能够向任何从设备320,包括设旁路的从设备320(2)传输目标命令。
在可以仅用硬复位将设旁路的从设备320重新配置成处于非旁路模式的替代性实施例中,主设备310可以重新传输地址分配命令0x4000以便重新分配地址,在这种情况下,从设备320(3)然后将具有新的网络地址2。
虽然设旁路的第二从设备320(2)将传入数据信号401从第一从设备320(1)立即传输到第三从设备320(3),但是传入数据信号401也会加载到设旁路的第二从设备320(2)的移位寄存器402中,并且即使第二从设备320(2)处于旁路模式,第二从设备320(2)也将继续每16个SCLK周期解译其移位寄存器402的内容。以此方式,主设备310可以随后发射并且第二从设备320(2)将(在32个SCLK周期之后)执行所述软从设备复位命令0xE002,以将自身重新配置回到处于默认的非旁路模式(其中,所述第二从设备320(2)的mux控制信号409再次具有逻辑0值)。针对此软从设备复位操作的定时图类似于针对旁路从设备操作的图12的定时图。
示例单从设备操作
如先前所描述的,网络300可以被配置成用于其中主设备310用仅单个目标从设备320执行读取操作和写入操作的单从设备操作。例如,为了配置网络300以便用第二从设备320(2)进行单从设备操作,主设备310可以使用类似于图12的定时图的定时图传输单从设备命令0xC002、然后使用与图8的定时图类似的定时图传输网络大小命令0x6001。响应于单从设备命令0xC002,除了第二从设备320(2)之外,每个从设备320将将自身配置成处于旁路模式。响应于网络大小命令0x6001,每个从设备320将更新其本地网络大小参数NUM_SLAVES以具有值1。然后,主设备310可以随后传输适当的从从设备读取命令和/或写入到从设备命令,所述适当的从从设备读取命令和/或写入到从设备命令将由仅第二从设备320(2)在(1x16)个或16个SCLK周期的间隔时执行。
在替代性场景中,主设备310可以向第一从设备320(1)和第三从设备320(3)传输两个适当的旁路从设备命令从而配置网络300,以便于用第二从设备320(2)进行单从设备操作。在此,然而,主设备310还将传输网络大小命令0x6001,用于用第二从设备320(2)进行随后的高效读取和/或写入操作。
主设备310可以随后传输并且从设备320中的所有从设备将随后执行所述软网络复位命令0xF000,以使用类似于图8的定时图的定时图将每个从设备320重新配置成处于其默认的非旁路模式。可替换的是,主设备310可以向第一从设备320(1)和第三从设备320(3)传输软从设备复位命令。在任一情况中,主设备310还将传输网络大小命令0x6003(在相同的或不同的网络操作期间在一个或多个复位命令之前或之后),以指示每个从设备320更新其本地网络大小参数NUM_SLAVES以再次具有值3。
优点
图3的本发明SPI网络300可以提供优于图1的常规SPI网络100的优点。一个优点是,本发明网络300能够在突发模式下在单个CS_B选通期间读取和/或写入多组数据。这种能力使本发明网络300相比于常规网络100能够更高效地执行读取和写入操作。例如,假设网络100和300各自具有三个从设备,SCLK时钟频率为10MHz,CS_B最小高时间为1微秒并且消息长度为16位,那么常规网络100可以在1064微秒内执行每个从设备100次写入,而本发明网络300仅用485微秒,提高了54%。对于每个从设备100次读取,常规网络100花费590微秒,而本发明网络300仅花费485微秒,提高了18%。
另一个优点是,本发明网络300将任何一个或多个从设备320配置成处于旁路模式,使得即使从设备中的一个或多个从设备有故障也可以执行突发操作的能力。这在遵守某些行业标准,如针对数据完整性的ISO26262汽车安全完整性等级(ASIL)要求中以及在工厂产品开发以及持续质量改进(CQI)评估期间的故障网点的调试和隔离中可能是非常有用的。
另一个优点是,主设备310通过将其它从设备320中的所有从设备配置成处于旁路模式而与仅单从设备320高效通信的能力。
另一个优点是,网络300在运行中确定系统中的从设备320的数量并且还向从设备320分配位置地址的能力。这在使用可重复使用(主、从)组件建立可缩放的且灵活的系统中非常有用。位置地址提供了在菊花链网络中从一个从设备到另一个从设备伪装的数据的高可检测性,并且因此有助于建立可靠的系统。
虽然已经在SPI菊花链网络的上下文中描述了本发明,但也可以在非SPI菊花链网络的上下文中实施本发明。例如,本发明可以替代性地在支持如在图3的网络300的CS_B信号中为高有效而非低有效的芯片选择(CS)信号的菊花链网络的上下文中实施。在此替代性网络中,单个CS选通将对应于在CS信号下一次被驱动为低的时间之前将CS信号驱动为高的时间。
尽管本文参考特定实施例描述了本发明,但是在不脱离如下面的权利要求中所阐述的本发明的范围的情况下,可以进行各种修改和改变。因此,说明书和附图应被视为具有说明性而非限制性意义,并且所有这种修改旨在包括在本公开的范围内。本文关于特定实施例描述的任何益处、优点或问题解决方案不旨在被解释为任何或所有权利要求的关键、必需或必要的特征或要素。
应该理解,本文所述的示例性方法的步骤不一定需要按所描述的顺序执行,并且此类方法的步骤的顺序应被理解为仅是示例性的。同样,此类方法中可以包括另外的步骤,并且在与本发明的各个实施例一致的方法中也可以省略或组合某些步骤。
虽然以下方法权利要求(如果有的话)中的元素是以具有对应标记的特定顺序叙述的,但是除非权利要求陈述以其它方式暗示用于实施那些元素中的一些或所有元素的特定顺序,否则那些元素不一定旨在限制于以所述特定顺序实施。
本文对“一个实施例”或“实施例”的提及意味着结合所述实施例描述的具体特征、结构或特性可以包含在本发明的至少一个实施例中。在本说明书中各个地方出现的短语“在一个实施例中”不一定全部指代同一个实施例,也不是与其它实施例必定相互排斥的单独实施例或替代性实施例。上述情况适用于术语“实施方案”。
Claims (10)
1.一种用于网络的网点,其特征在于,所述网络包括以菊花链配置连接的主设备和多个从设备,其中:
所述网点是以下之一:所述主设备或所述从设备之一;
所述主设备传输芯片选择(CS)信号,所述芯片选择(CS)信号选择性地使能所述从设备执行网络操作;并且
所述主设备控制多个从设备以突发模式操作,在所述突发模式下,所述多个从设备中的每个从设备在单个CS选通内读取或写入多组数据。
2.根据权利要求1所述的网点,其特征在于,所述网点是所述主设备。
3.根据权利要求1所述的网点,其特征在于,所述网点是所述多个从设备中的一个从设备。
4.根据权利要求3所述的网点,其特征在于,所述从设备包括:
芯片选择端口,所述芯片选择端口从所述主设备接收所述CS信号;
时钟端口,所述时钟端口从所述主设备接收时钟信号;
数据输入端口,所述数据输入端口从所述网络中的最接近的上游网点接收传入数据;
数据输出端口,所述数据输出端口向所述网络中的最接近的下游网点传输传出数据;
移位寄存器(SR),所述SR从所述数据输入端口接收所述传入数据并且输出SR输出数据;
多路复用器(MUX),所述MUX具有从所述移位寄存器接收所述SR输出数据的第一MUX输入端口、从所述数据输入端口接收所述传入数据的第二MUX输入端口、向所述数据输出端口传输MUX输出数据的MUX输出端口以及接收MUX控制信号的MUX控制端口,所述MUX控制信号选择性地指示所述MUX:(i)在所述第一MUX输入端口处以所述MUX输出数据的形式输出所述SR输出数据或(ii)在所述第二MUX输入端口处以所述MUX输出数据的形式输出所述传入数据;以及
控制器,所述控制器生成所述MUX控制信号。
5.根据权利要求4所述的网点,其特征在于:
当所述从设备执行旁路从设备命令或单从设备命令时,所述控制器生成所述MUX控制信号,以指示所述MUX在所述第二MUX输入端口处以所述MUX输出数据的形式输出所述传入数据;并且
当所述从设备执行软从设备复位命令或软网络复位命令时,所述控制器生成所述MUX控制信号,以指示所述MUX在所述第一MUX输入端口处以所述MUX输出数据输出所述SR输出数据。
6.根据权利要求3所述的网点,其特征在于:
所述从设备具有移位寄存器(SR),所述SR以基于已知消息大小的时间间隔从所述网络中的最接近的上游网点按顺序接收所述消息大小的单独网络消息;并且
所述从设备在每个CS选通期间的每个时间间隔处解译其移位寄存器中的每个网络消息,以确定所述网络消息是否是要执行的命令。
7.根据权利要求3所述的网点,其特征在于:
所述从设备具有移位寄存器(SR),所述SR从所述网络中的最接近的上游网点按顺序接收单独网络消息;并且
当所述主设备终止CS选通时,所述从设备不解译或执行其移位寄存器中的网络消息。
8.根据权利要求1所述的网点,其特征在于:
所述主设备和所述从设备各自存储所述网络中的从设备总数的NUM_SLAVES值;并且
每个从设备使用所述NUM_SLAVES值来确定何时执行突发模式命令。
9.根据权利要求8所述的网点,其特征在于:
所述主设备和所述从设备不具有所述网络中的所述从设备总数的先验知识;
在所述突发模式之前,所述主设备向所述网络中的第一从设备传输地址分配命令;
每个从设备通过以下执行所述地址分配命令:(i)使所述网络中的最接近的上游网点的接收到的网络地址递增,以确定其自身的网络地址以及(ii)向所述网络中的最接近的下游网点传输其自身的网络地址;
所述主设备将所述NUM_SLAVES值设置成等于所述网络中的最后一个从设备的所述网络地址;并且
所述主设备传输网络大小命令以向每个从设备通知所述NUM_SLAVES值。
10.一种网络,其特征在于,包括以菊花链配置连接的主设备和多个从设备,其中:
所述主设备传输选择性地使所述从设备能够执行网络操作的芯片选择(CS)信号;并且
所述主设备控制多个从设备以突发模式操作,在所述突发模式下,所述多个从设备中的每个从设备在单个CS选通内读取或写入多组数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/417,608 US20200371977A1 (en) | 2019-05-20 | 2019-05-20 | Spi protocol for burst read/write mode |
US16/417,608 | 2019-05-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111966621A true CN111966621A (zh) | 2020-11-20 |
Family
ID=70682639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010427747.0A Pending CN111966621A (zh) | 2019-05-20 | 2020-05-18 | 突发读取/写入模式的spi协议 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200371977A1 (zh) |
EP (1) | EP3742679A1 (zh) |
CN (1) | CN111966621A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598566A (zh) * | 2020-12-04 | 2022-06-07 | 山东新松工业软件研究院股份有限公司 | 一种基于spi总线的通信系统及方法 |
CN114697412A (zh) * | 2022-02-17 | 2022-07-01 | 上海类比半导体技术有限公司 | 从设备、菊花链系统、数据传输方法 |
CN114756498A (zh) * | 2020-12-29 | 2022-07-15 | Tcl科技集团股份有限公司 | 芯片、主控芯片、芯片通信方法、芯片阵列及相关设备 |
CN115033517A (zh) * | 2022-05-30 | 2022-09-09 | 浙江大学 | 一种基于多个单线spi接口实现多线spi接口传输的装置 |
CN117118777A (zh) * | 2023-10-23 | 2023-11-24 | 合肥为国半导体有限公司 | 一种通信系统及方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DK3453145T3 (da) * | 2016-05-02 | 2019-11-18 | Sew Eurodrive Gmbh & Co | Fremgangsmåde til nødafbrydelse af et bussystem samt bussystem |
KR102430232B1 (ko) * | 2020-12-10 | 2022-08-09 | 현대모비스 주식회사 | 직렬 통신 장치 및 방법 |
US11630796B2 (en) * | 2021-05-07 | 2023-04-18 | Infineon Technologies Ag | Serial peripheral interface (SPI) automatic register address incrementation across data frames |
US11847087B2 (en) * | 2021-09-16 | 2023-12-19 | Qualcomm Incorporated | Systems and methods for chip operation using serial peripheral interface (SPI) with reduced pin options |
US11860730B2 (en) | 2021-12-06 | 2024-01-02 | Waymo Llc | Low-overhead, bidirectional error checking for a serial peripheral interface |
CN114625689B (zh) * | 2022-02-17 | 2024-05-03 | 上海类比半导体技术有限公司 | 从设备、菊花链系统、数据传输方法 |
DE102022127607A1 (de) | 2022-10-19 | 2024-04-25 | Elmos Semiconductor Se | Elektronisches Modul für eine Daisy-Chain und zum Erzeugen einer eindeutigen ID-Nummer |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009044936B4 (de) * | 2009-09-24 | 2022-10-13 | Robert Bosch Gmbh | Verfahren zum Austauschen von Daten |
US9274997B2 (en) * | 2012-05-02 | 2016-03-01 | Smsc Holdings S.A.R.L. | Point-to-point serial peripheral interface for data communication between devices configured in a daisy-chain |
US9158728B2 (en) * | 2012-09-13 | 2015-10-13 | General Electric Company | Systems and methods for improved linking of master and slave devices |
US10642769B2 (en) * | 2017-03-24 | 2020-05-05 | Analog Devices Global Unlimited Company | Serial peripheral interface daisy chain mode system and apparatus |
-
2019
- 2019-05-20 US US16/417,608 patent/US20200371977A1/en not_active Abandoned
-
2020
- 2020-05-12 EP EP20174179.0A patent/EP3742679A1/en not_active Withdrawn
- 2020-05-18 CN CN202010427747.0A patent/CN111966621A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598566A (zh) * | 2020-12-04 | 2022-06-07 | 山东新松工业软件研究院股份有限公司 | 一种基于spi总线的通信系统及方法 |
CN114756498A (zh) * | 2020-12-29 | 2022-07-15 | Tcl科技集团股份有限公司 | 芯片、主控芯片、芯片通信方法、芯片阵列及相关设备 |
CN114697412A (zh) * | 2022-02-17 | 2022-07-01 | 上海类比半导体技术有限公司 | 从设备、菊花链系统、数据传输方法 |
CN114697412B (zh) * | 2022-02-17 | 2024-02-06 | 上海类比半导体技术有限公司 | 从设备、菊花链系统、数据传输方法 |
CN115033517A (zh) * | 2022-05-30 | 2022-09-09 | 浙江大学 | 一种基于多个单线spi接口实现多线spi接口传输的装置 |
CN115033517B (zh) * | 2022-05-30 | 2023-12-19 | 浙江大学 | 一种基于多个单线spi接口实现多线spi接口传输的装置 |
CN117118777A (zh) * | 2023-10-23 | 2023-11-24 | 合肥为国半导体有限公司 | 一种通信系统及方法 |
CN117118777B (zh) * | 2023-10-23 | 2024-01-02 | 合肥为国半导体有限公司 | 一种通信系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200371977A1 (en) | 2020-11-26 |
EP3742679A1 (en) | 2020-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966621A (zh) | 突发读取/写入模式的spi协议 | |
TWI410980B (zh) | 縮減接腳數介面 | |
US20020129196A1 (en) | Dual clock domain read fifo | |
JP5753989B2 (ja) | 複数のメモリデバイスを有するシステムの状態表示 | |
EP3323051B1 (en) | Spi interface with less-than-8-bit bytes and variable packet size | |
US8521980B2 (en) | Simultaneous read and write data transfer | |
CN114286992B (zh) | 菊花链复杂命令 | |
US20170019142A1 (en) | Semiconductor device and system | |
JP6435101B2 (ja) | 揮発性シャドウメモリを介した不揮発性メモリへのアクセス | |
US7970959B2 (en) | DMA transfer system using virtual channels | |
EP3859542A1 (en) | Spi broadcast mode | |
JP2015520459A (ja) | リングトポロジーステータス指示 | |
CN111010881A (zh) | 串行通信协议 | |
US20100272162A1 (en) | Synchronous serial programmable interface | |
CN116414767A (zh) | 一种对基于axi协议乱序响应的重排序方法及系统 | |
JP6452293B2 (ja) | 異なるタイミング要件をもつコマンドそれぞれによる異なるタイプのメモリへのアクセス | |
US4750115A (en) | Data communication system between two different data transmission systems | |
US20220164298A1 (en) | Memory sequencer system and a method of memory sequencing using thereof | |
CN114691554A (zh) | 闪存的控制方法、闪存晶粒以及闪存 | |
KR20200110219A (ko) | 직렬 주변기기 인터페이스 마스터 | |
WO2011134051A1 (en) | Serially connected memory having subdivided data interface | |
EP1211603A1 (en) | Interface for multi-processor | |
EP0382342A2 (en) | Computer system DMA transfer | |
WO2024001332A1 (zh) | 多端口存储器、多端口存储器的读写方法及装置 | |
RU2055392C1 (ru) | Устройство последовательно-параллельного обмена |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20201120 |
|
WD01 | Invention patent application deemed withdrawn after publication |