CN111010881B - 串行通信协议 - Google Patents
串行通信协议 Download PDFInfo
- Publication number
- CN111010881B CN111010881B CN201880010262.2A CN201880010262A CN111010881B CN 111010881 B CN111010881 B CN 111010881B CN 201880010262 A CN201880010262 A CN 201880010262A CN 111010881 B CN111010881 B CN 111010881B
- Authority
- CN
- China
- Prior art keywords
- slave
- input
- output
- byte
- master
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 99
- 230000005540 biological transmission Effects 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 28
- 238000012546 transfer Methods 0.000 claims description 11
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 230000001960 triggered effect Effects 0.000 claims description 5
- 235000015429 Mirabilis expansa Nutrition 0.000 description 10
- 244000294411 Mirabilis expansa Species 0.000 description 10
- 235000013536 miso Nutrition 0.000 description 10
- 238000013479 data entry Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- 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
- G06F13/4256—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a clocked protocol
-
- 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
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种用于菊花链式从装置的串行通信协议,其消除了对在从装置的输入与输出之间循环整个字节的虚设时钟的需求,替代地需要一组较短虚设时钟循环,从而改进串行通信系统的效率。
Description
技术领域
本公开涉及一种串行通信协议,且涉及实施所述协议的方法和设备。
背景技术
串行通信协议的实例是串行外围接口(serial peripheral interface;SPI)实施的协议。此串行外围接口是在嵌入系统和各种其他情景中使用的常见通信接口。
虽然SPI并未正式标准化,但图1示出SPI接口的特性。主装置100与一个或多个从装置102通信,且所述装置交换不同类型的逻辑信号。第一逻辑信号SCK 104是主装置输出的时钟并且用以协调SPI协议的操作中的事件的时序。
第二逻辑信号106是将数据输入到从装置的从输入信号,其来自主装置100或来自菊花链配置中的另一从装置。此信号通常被称为主输出从输入(master output slaveinput;MOSI)信号。第三逻辑信号MISO 108是从输出信号并且用于从装置的数据输出,以被提供为用于主装置100或菊花链配置中的另一从装置的输入。此信号通常被称为主输入从输出(master input slave output;MISO)信号。第四逻辑信号110是从主装置100输出的从选择信号。所述从选择信号通常为低态有效的并且用以选择性地启用从装置102与主装置100的通信。
因为SPI并非正式的标准,所以逻辑信号104到110的具体标记可在不同实施方案间是不同的。举例来说,从选择信号110也可被称为SS且时钟通常被称为CLK或SCLK。
SPI总线可与单个主装置和一个或多个从装置一起操作。如果如在图1的实例中所示,使用单个从装置,那么从选择信号110可固定在逻辑低处。
多个SPI装置不可个别寻址。如果需要在多个装置之间进行通信,那么需要进行修改。图2示出并联从连接的布置,其中主微控制器200设置有多个从选择输出,为每一从装置102提供一个从选择输出且所述从选择输出在此图式中针对从装置102a、102b到102N编号为CSB1、CSB2到CSBn,其中N是系统中的从装置的总数。
每一从装置102受同一时钟SCK驱动,且微控制器200将独立从选择信号分配给每一从装置102,使得可为所述从装置个别寻址。从装置102中的每一个具有相同地址,且单个从输出线208用以命令所有从装置。因为所有从装置共享同一时钟和数据线,所以仅其中其低态有效从选择输入被断言为低的从装置将对时钟和数据线上的活动作出应答和响应。
当从装置的数目变大时,此系统变得难以实施。可减小硬件和布局复杂性的替代性方案是将从装置以菊花链形式连接在一起,这意味着从装置的数据输入和输出彼此串联连接。在图3中示出此连接的实例。
此处,所有从装置302共享同一时钟104和从选择信号110。然而,在此配置中,仅第一从装置302a直接从微控制器300接收数据。剩余的从装置即从装置302b到302N(其中N是从装置的总数)各自从所述链中的前述从装置302的从输出逻辑信号接收其数据。实际上,从装置302充当单个大移位寄存器。由主装置300输出的数据输入到第一从装置302a且接着发送给每一连续的从装置302b到302n。有可能在菊花链配置中仅提供两个从装置。
由从装置在链中的位置自动设置每一从装置302的装置地址。第一装置具有装置地址DevAddr=0x01,菊花链中的第二装置具有装置地址DevAddr=0x02,等等。装置地址0x00和0x3f用于如下所述的专用的广播写入命令。
根据此协议,需要在写入或读取操作期间取决于菊花链中的装置的数目而写入特定数目的字节。这意味着需要大约M*N个虚设时钟循环,其中M是字节中的位数,且N是菊花链配置中的从装置的数目。
如上所述,以菊花链形式连接从装置与并联连接从装置相比提供改进的布局和硬件效率。然而,当菊花链装置的数目开始变大时,所需的虚设时钟循环的数目造成填充每一从装置的寄存器所花费的时间的延迟增加。
此增加的延迟减小系统的效率。
发明内容
根据本公开的第一方面,提供一种串行通信设备,其包括:主装置,其具有主输入和主输出;多个从装置,其各自包括从输入和从输出,所述多个从装置布置成菊花链配置,其中第一从装置被布置成在其从输入处从所述主输出接收数据,且一个或多个连续的从装置被布置成从在前的从装置的从输出接收数据;其中所述主装置被布置成发送包括子字节音节的通信帧,所述子字节音节选择性地触发自从输入到从输出的数据传输。
任选地,所述通信帧包括定义从装置地址的装置地址字节,且所述子字节音节被提供为所述地址字节的初始部分。
任选地,所述触发的自从输入到从输出的数据传输在所述装置地址字节的剩余部分被所述从输入接收之前开始。
任选地,所述子字节音节包括一个位。
任选地,单个位保持在第一逻辑值处以指示通信帧的开始。
任选地,最终从装置调整延迟以确保到所述主装置的输入经字节对齐。
任选地,所述延迟的所述调整由嵌入于所述通信帧中选优地嵌入于所述地址字节中的专用命令进行设置。
任选地,所述延迟的所述调整由所述从装置中的寄存器进行设置,所述寄存器具有可被设置成告知一个从装置进行字节对齐的值。
任选地,所述串行通信设备被配置成使得每一从装置存储其标识以确定其在从装置链中的位置,并且在通信帧的传输期间,在同一时钟循环中将数据自从输入传送到从输出。
任选地,所述串行通信设备被配置成使得:在初始通信帧的传输期间,每一从装置被配置成基于针对所述从装置在所述从输入与从输出之间的延迟来确定其在所述链中的位置;且此后在后续通信帧的传输期间,所述从装置在所述同一时钟循环中将数据从其从输入传送到其从输出。
任选地,所述串行通信设备包括串行外围接口。
根据本公开的第二方面,提供一种串行通信设备,其包括:主装置,其具有主输入和主输出;多个从装置,其各自包括从输入和从输出,所述多个从装置布置成菊花链配置,其中第一从装置被布置成在其从输入处从所述主输出接收数据,且一个或多个连续的从装置被布置成从在前的从装置的从输出接收数据;其中每一从装置存储其标识以确定其在从装置链中的位置,并且在通信帧的传输期间,在同一时钟循环中将数据自从输入传送到从输出。
任选地,所述串行通信设备被配置成使得:在初始通信帧的传输期间,每一从装置被配置成基于针对所述从装置在所述从输入与从输出之间的延迟来确定其在所述链中的位置;且此后在后续通信帧的传输期间,所述从装置在所述同一时钟循环中将数据从其从输入传送到其从输出。
任选地,所述从输入与从输出之间的所述延迟是k个字节,其中k是所述从装置在所述链中的所述位置。
任选地,所述从输入与从输出之间的所述延迟是k个子字节音节,其中k是所述从装置在所述链中的所述位置。
应了解,第二方面的特征可与第一方面的特征组合,即,第二方面中包括的“零延迟”概念可使用第一方面的“位对齐”概念,以便在其中需要初始化步骤的那些具体实施方案中列举从装置地址;因而,可包括第一方面的所有特征本身作为第二方面的构成部件。同样地,第二方面中包括的“零延迟”概念可按需要使用已知用于从装置地址列举的字节对齐方法。
本公开还包括由第一和第二方面实施的方法。根据本公开的第三方面,提供一种在串行通信设备中在装置之间传送数据的方法,所述串行通信设备包括主装置、多个从装置,所述主装置具有主输入和主输出,所述多个从装置各自包括从输入和从输出,所述多个从装置布置成菊花链配置,其中第一从装置被布置成在其从输入处从所述主输出接收数据,且一个或多个连续的从装置被布置成从在前的从装置的从输出接收数据;其中,根据所述方法:所述主装置发送包括子字节音节的通信帧,从装置在其从输入处接收所述通信帧,且接着在接收到所述子字节音节后即刻在其从输出处输出数据。
任选地,所述通信帧包括定义从装置地址的装置地址字节,且所述子字节音节被提供为所述地址字节的初始部分。
任选地,触发的自从输入到从输出的数据传输在所述装置地址字节的剩余部分被所述从输入接收之前开始。
任选地,所述子字节音节包括一个位。
任选地,单个位保持在第一逻辑值处以指示通信帧的开始。
任选地,最终从装置调整延迟以确保到所述主装置的输入经字节对齐。
任选地,所述延迟的所述调整由嵌入于所述通信帧中选优地嵌入于所述地址字节中的专用命令进行设置。
任选地,所述延迟的所述调整由所述从装置中的寄存器进行设置,所述寄存器具有可被设置成告知一个从装置进行字节对齐的值。
任选地,每一从装置存储其标识以确定其在从装置链中的位置,并且在通信帧的传输期间,在同一时钟循环中将数据自从输入传送到从输出。
任选地,在初始通信帧的传输期间,每一从装置基于针对所述从装置在所述从输入与从输出之间的延迟来确定其在所述链中的位置;且此后在后续通信帧的传输期间,所述从装置在所述同一时钟循环中将数据从其从输入传送到其从输出。
任选地,所述方法为串行外围接口协议的部分。
根据本公开的第四方面,提供一种在串行通信设备中在装置之间传送数据的方法,所述串行通信设备包括主装置、多个从装置,所述主装置具有主输入和主输出,所述多个从装置各自包括从输入和从输出,所述多个从装置布置成菊花链配置,其中第一从装置被布置成在其从输入处从所述主输出接收数据,且一个或多个连续的从装置被布置成从在前的从装置的从输出接收数据;其中,根据所述方法,每一从装置存储其标识以确定其在从装置链中的位置,并且在通信帧的传输期间,在同一时钟循环中将数据自从输入传送到从输出。
任选地,在初始通信帧的传输期间,每一从装置基于针对所述从装置在所述从输入与从输出之间的延迟来确定其在所述链中的位置;且此后在后续通信帧的传输期间,所述从装置在所述同一时钟循环中将数据从其从输入传送到其从输出。
任选地,所述从输入与从输出之间的所述延迟是k个字节,其中k是所述从装置在所述链中的所述位置。
任选地,所述从输入与从输出之间的所述延迟是k个子字节音节,其中k是所述从装置在所述链中的所述位置。
根据更进一步的方面,本公开也可提供微控制器,其被配置成用于形成第一或第二方面的设备的部分,并且用于执行第三和第四方面的方法的部分;和/或从装置,其被配置成用于形成第一或第二方面的设备的部分,用于执行第三和第四方面的方法的部分。
附图说明
现将参考附图仅以实例方式描述本公开,在附图中:
图1示出串行外围接口系统的已知一般原理;
图2示出SPI系统中的多个从装置的现有并联连接;
图3示出SPI系统中的从装置的现有菊花链式连接;
图4示出根据已知SPI通信协议将单个数据条目写入到单个装置的实例;
图5示出根据相同的已知SPI串联连接协议从单个装置读取单个数据条目的实例;
图6示出适于执行本公开的微控制器的结构。
图7示出根据本公开的SPI协议将单个数据条目写入到单个装置中的实例;
图8示出根据图7中示出的协议从单个装置读取单数据的实例;
图9示出可为需要的微控制器提供的任选的字节对齐;和
图10示出本公开的“零延迟”实施方案的操作的实例。
具体实施方式
本公开提供与现有协议相比改进的SPI菊花链。
关于图4和5示出现有协议的操作,其可与如图3中所示的菊花链式从装置的系统一起使用。
在所有从装置302之间共享从选择信号CSB 110。当所述从选择信号被驱动为低时,启用从装置并且准备读取和写入数据。在从输入信号(MOSI,106)与从输出信号(MISO,108)之间存在一个字节的延迟,其表现为在从输出信号(MISO,108)输出的初始数据处的字节的虚设时钟循环的价值。通过对在启用从选择信号之后在从输入信号(MOSI,106)处接收的空字节的数目计数(或作为等效方案,通过从输出信号(MISO,108)输出的空字节的数目)来列举每一从装置的装置地址。如果其列举的地址匹配由形成通信帧的部分的地址字段指定的地址,那么从装置作用于所述数据,如下所述。
一旦从选择信号能够开始主装置与从装置之间的数据通信,命令从主装置传播到菊花链式装置的任何具体从装置所花费的时间延迟为m*k的数目的时钟循环,其中m是位中的字节数且k是链上的从装置的第k位置。链中的最终从装置在其接收命令之前需要m*N个时钟循环的延迟,且对于大链,此延迟可导致显著的低效率。
根据本公开的串行通信协议的规范,在通信帧中在主装置与从装置之间交换数据。每一通信帧具有命令部分和数据部分,且每一相应部分可包括一个或多个字节的包。
字节是包括多个位(其可具有值一或零)的信息的单位。最常见的字节大小是八位,但应了解,可提供任何数目个位作为一字节且本公开不限于任何特定的字节大小。
通信帧的命令部分包括有关通信帧的大小的信息,包括所包括的数据字节的数目。
命令部分包括装置地址、任选的数量字段,以及寄存器地址。数据部分包括一个或多个数据字节。
装置地址包括一个字节且包括意指广播的值B作为其最高有效位,其设置为B=1以告知系统将消息广播到所有装置,或设置为B=0以告知系统将正常消息发送到单一装置。
装置地址的下一最高有效位是值S,其指示通信帧是用于仅一个字节(S=1)的数据传输还是用于数据块(S=0)。装置地址字节的剩余六位DevAddr[5:0]指定从地址。
如上所述,由从装置在链中的位置自动设置每一从装置302的装置地址。第一装置具有装置地址DevAddr=0x01,菊花链中的第二装置具有装置地址DevAddr=0x02,等等。
第一保留的装置地址此处为0x00被保留以指示应将相同的数据写入到所有装置的同一寄存器(广播位B设置为1)
第二保留的装置地址此处为0x3F用以指示应将不同数据写入到所有装置的同一寄存器(广播位B设置为1)。
剩余的值此处为0x01到0x3E用作从装置1到62的装置地址。
命令部分包括任选的数量字段,其仅在传输数据块(通过如上所述的装置地址字节中的S=0的设置来检测到)的情况下使用。在所述情况下,数量字段指定通信帧中的数据字节数。其具有从0x00到0xFF的值。
命令部分包括寄存器地址,其定义被执行读取或写入操作的从装置的寄存器地址。最高有效位标记为RW,意指读取/写入,并且设置为RW=0以指示到寄存器地址的写入操作,或设置为RW=1以指示从寄存器地址的读取操作。
接着,寄存器地址字节的剩余位RegAddr[6:0]定义地址,且具有0x00到0x7F的值。
通信帧则包括一个或多个数据字节,其提供数据有效载荷且具有值0x00到0xFF。
图4示出根据此协议将单个数据字写入到单个装置中的实例。所述图示示出从选择信号xCSB 110、时钟SCK 104与和第一从装置302相关联的从输入MOSI 306和从输出MISO308一起的迹线。
在时间402,从选择线110开始装置地址列举并且保持为低,直到主装置300将信号拉到高以结束数据转移的时间404为止。
从输入306从主装置接收包括装置地址字节DA7:DA0、寄存器地址字节RA7:RA0和数据有效载荷D7:D0的通信帧。
在一个字节的延迟之后,将通信帧传送到从输出308。
因而,菊花链中的每一连续的从装置在接收期望的数据之前必须等待另一个字节的延迟。因而,如果在一个菊花链中存在N个从装置,那么此方法需要在可填充整个链之前存在m*N个虚设时钟循环的延迟,其中m是字节中的位数。必须循环经过额外的N-1个字节0x00。
图5示出根据同一协议将单个数据字读取到单个装置中的实例。此处可见,如果在菊花链中存在N个从装置,那么在可填充整个链之前还有m*N个虚设时钟循环的延迟,其中m是字节中的位数。必须循环经过额外的N+1个字节0x00。
此协议经字节对齐且易于用作为主装置的一个微处理器和作为从装置的多个其他装置进行实施。然而,随着从装置的数目增加,每一装置的信息量增加,此经字节对齐协议当面对大数据传输时会遇到一些困难,且在将数据传播到从装置时涉及的延迟可将效率减小到不可接受的水平。
本公开提供新的串行通信协议,其提供相对于上述协议且以及相对于一般领域的改进。将在本文中具体参考SPI进行描述,但应了解,本文中描述的概念可具有较宽广应用。
根据本公开的串行通信通过消除对从输入与从输出之间的一个字节的延迟的要求来改进传输效率。从输入与从输出之间的延迟可选择为子字节音节(syllable)(例如位或半字节(nibble));或在存储从装置的情况下,可完全消除延迟(这意味着在通信帧的传输期间,在同一时钟循环中将数据自从输入传送到从输出)。在可在从输入与输出之间涉及字节延迟或子字节音节延迟的初始列举步骤期间,可将从装置存储于适合的从装置存储器中。根据这些方面中的任一个或其组合的从输入与从输出之间的延迟的减小可显著减小命令从主装置传播穿过从装置的菊花链所花费的时间量,从而改进系统效率。
任选的特征是确保从环回到主微处理器的最后一个从装置的字节对齐。此任选的特征可在微处理器无法处置未经字节对齐的指令的情况下提供,不过如果微处理器可处置未经字节对齐,那么可忽略此特征。
根据本公开的一个方面,从输入与输出之间的延迟设置为子字节音节。“子字节音节”大体是指一起提供通信帧的分量的一个或多个位。所述位数小于形成字节的位数(所以,在八位字节的实例中,子包音节可包括一到七个位中的任一个)。在优选实施方案中,子字节音节包括一个位但其也可包括两个位或其他数目个位。
关于图6到9示出根据此方面的具体实施方案的串行通信协议的操作。
代替需要约m*N个虚设时钟(针对在N个从装置中每字节m位),根据此方面的新协议,仅需要N个虚设时钟。
所述协议可用具有与图3中示出的设置类似的设置的系统实施。然而,根据本公开的微控制器可设置有定制软件和/或固件例如ASIC或FPGA以提供根据本公开的不同功能性。在图6中示出根据本公开的微控制器600。应了解,本公开不限于任何特定类型的微控制器,仅有的限制是根据所附权利要求书,必须提供相关输出以供与本文中要求的系统和方法一起使用。具体微控制器结构在本公开的范围之外但为本领域技术人员所熟知且不必在本文中进行详细描述。
一般说来,根据本公开的微控制器600包括微处理器602和存储器604。微控制器600经由输入606和输出608与其他部件介接。在优选实施方案中,输出608可包括时钟104和从选择信号110和MOSI输出306,而输入606可包括MISO输入308。应了解,如所属领域的技术人员将显而易见,根据本公开的微控制器可设置有多个额外的输出和/或输入。
根据本公开,可通过存储器604中的待微处理器602执行的指令的记录来启用新的串行通信协议,因此形成为本公开提供改进如现有技术中已知的现有微控制器300的能力的新微控制器600。
如前所述(即,如参考图4和5所描述),由从装置在链中的位置自动设置每一从装置的装置地址。
第一保留的装置地址此处为0x00被保留以指示应将相同的数据写入到所有装置的同一寄存器。
第二保留的装置地址此处为0x3F用以指示应将不同的数据写入到所有装置的同一寄存器。
第三保留的装置地址此处为0x3E用以指示菊花链中的从装置的总数。
剩余的值此处为0x01到0x3D用作从装置1到61的装置地址。
当从选择信号保持为低(为零)时,将启动所有从装置。
地址和数据经由MISO和MOSI线的传输组织于字节包中,可用以下数据类型、装置地址、数据数目、寄存器地址和有效载荷数据中的一或多个构建每一消息。
在优选实施方案中,数据类型可如下定义:
装置地址:为具体从装置寻址并且定义协议信息:
数量字段:在S=0的情况下定义数据帧中的数据字节的数目,或具有命令3E的从装置数
寄存器地址:定义待读取或写入的从装置寄存器地址。
数据:包含数据有效载荷。
位 | 含义 | 值 |
数据[7:0] | 数据 | 0x00到0xFF |
在上述实例中,保留地址(例如0x3E)用以指示菊花链中的从装置的总数。有可能使用各个不同的专用命令或定义的从寄存器告知一个从装置其需要字节对齐,即,将来自其从输出的适当同步信号提供到主输入。从装置可引入适当的延迟以确保发生上述情况。
从寄存器实施方式的非限制性实例是定义从装置中的一个控制寄存器“daisy_end_enable”(寄存器地址是0x00):值0x00意指其不是最终装置,而0x01意指其是最终装置。可默认设置为0x00。如果最终装置是链上的仅可写入装置地址=0x03、寄存器地址=0x00、数据=0x01的第三装置,那么所述第三装置将知道其为链上的最终装置且不需要专用命令例如“装置ID=0x3E”。
在图7中示出使用此协议的写入操作的实例,其示出将数据写入到单个装置中的情况。所述操作类似于上文关于图4所描述的操作,不同之处在于在此情况下可见,在代替一个字节的一个位的延迟之后将通信帧传送到从输出308。
类似地,图8示出从单个装置读取单个数据的实例。所述操作类似于上文关于图5所描述的操作,不同之处在于在此情况下可见,在代替一个字节的一个位的延迟之后将通信帧传送到从输出308。
因而,可见将传输延迟从m个时钟循环减小到仅一个时钟循环(其中在一个字节中存在m个时钟循环,在此情况下,m=8)。
作为选项,如果从装置被识别为菊花链中的最后一个装置(其装置地址等于由0x3E命令指示的装置号),那么延迟时钟可从一个时钟自动调整到不同数目个时钟,高达字节的位长度,使得最后一个从装置的从输出的框架开始旗标(DA7)之前的零总是等于m*k,以在微处理器仅可处理字节信息的情况下有助于对齐用于微处理器的数据。这在图9中示出,其中示出针对最后一个从装置选择性地增加延迟。
根据本公开的另一方面,可完全消除菊花链中的从输入与从输出之间的延迟,这意味着在通信帧的传输期间,在同一时钟循环中将数据自从输入传送到从输出。通过将从装置地址存储在从装置处使得上述情况为可能的。装置可硬编码于装置中,存储于适合的非易失性存储器处;或可在使用如在图4和5中所示的字节延迟协议或根据第一方面并且如在图7到9中所示的子字节音节延迟的初始步骤中列举所述装置。
此处将论述此概念的一个非限制性实例:
1.每个从装置可设置有一个命名为Device_ID[7:0]的专用寄存器(寄存器地址0xFF)。
2.在一开始,Dev_addr_en默认为零,所以每个从地址延迟MOSI到MISO。
3.在转移第一数据帧之后或通过专用命令,每个装置通过计算零数或零字节数来获得其个别装置ID,且将Dev_addr_en设置为高,这意味着已告知每一装置的装置ID。
(使用专用命令将更容易理解,可定义0x3D是针对装置ID计算且Dev_addr_en设置为高,且0x3C是针对装置ID清零并且Dev_addr_en也清零),专用命令并非必需的而是容易理解的。
4.在Dev_addr_en设置为高之后,所有从装置将直接绕过MOSI到MISO,接着不再需要额外的虚设时钟。
5.一个用于读取的实例是如下在Dev_addr_en为高之后,且每一装置已获得其个别装置ID。
在图10中示出此操作。如此处可见,从输入信号和从输出信号由同一上升时钟边缘触发。
可在不脱离本公开的范围的情况下对上文做出各种改进和修改。举例来说,虽然具体实施方案涉及SPI,但应了解,本公开可应用于其他协议。
Claims (26)
1.一种串行通信设备,包括:
主装置,所述主装置具有主输入和主输出;以及
多个从装置,所述多个从装置各自包括从输入和从输出,所述多个从装置布置成菊花链配置,其中第一从装置被布置成在其从输入处从所述主输出接收数据,并且一个或多个连续的从装置被布置成从在前的从装置的从输出接收数据,其中
所述主装置被布置成发送包括子字节音节的通信帧,所述子字节音节选择性地触发自从输入到从输出的数据传输,所述通信帧包括定义从装置地址的装置地址字节,且所述子字节音节被提供为所述地址字节的初始部分;以及
所述触发的自从输入到从输出的数据传输在所述装置地址字节的剩余部分被所述从输入接收之前开始。
2.如权利要求1所述的串行通信设备,其中所述子字节音节包括一个位。
3.如权利要求2所述的串行通信设备,其中所述一个位保持在第一逻辑值处以指示通信帧的开始。
4.如权利要求1所述的串行通信设备,其中最终从装置调整延迟以确保到所述主装置的输入经字节对齐。
5.如权利要求4所述的串行通信设备,其中所述延迟的所述调整由嵌入于所述通信帧中的专用命令进行设置。
6.如权利要求5所述的串行通信设备,其中所述延迟的所述调整由嵌入于所述地址字节中的专用命令进行设置。
7.如权利要求4所述的串行通信设备,其中所述延迟的所述调整由所述从装置中的寄存器进行设置,所述寄存器具有可被设置成告知一个从装置进行字节对齐的值。
8.如权利要求1所述的串行通信设备,其被配置成使得每一从装置存储其标识以确定其在从装置的菊花链中的位置,并且在通信帧的传输期间,在同一时钟循环中将数据自从输入传送到从输出。
9.如权利要求8所述的串行通信设备,其被配置成使得:
在初始通信帧的传输期间,每一从装置被配置成基于针对所述从装置在所述从输入与从输出之间的延迟来确定其在所述菊花链中的位置;
且此后在后续通信帧的传输期间,所述从装置在所述同一时钟循环中将数据从其从输入传送到其从输出。
10.如权利要求1所述的串行通信设备,其包括串行外围接口。
11.一种串行通信设备,其包括:
主装置,其具有主输入和主输出;以及
多个从装置,其各自包括从输入和从输出,所述多个从装置布置成菊花链配置,其中第一从装置被布置成在其从输入处从所述主输出接收数据,并且一个或多个连续的从装置被布置成从在前的从装置的从输出接收数据,其中
所述串行通信设备被配置成使得:
在初始通信帧的传输期间,每一从装置被配置成基于针对所述从装置在所述从输入与从输出之间的延迟来确定其在所述菊花链中的位置;
且此后在后续通信帧的传输期间,由所述从装置在同一时钟循环中将数据从其从输入传送到其从输出。
12.如权利要求11所述的串行通信设备,其中所述从输入与从输出之间的所述延迟是k个字节,其中k是所述从装置在所述菊花链中的所述位置。
13.如权利要求11所述的串行通信设备,其中所述从输入与从输出之间的所述延迟是k个子字节音节,其中k是所述从装置在所述菊花链中的所述位置。
14.一种在串行通信设备中在装置之间传送数据的方法,所述串行通信设备包括主装置、多个从装置,所述主装置具有主输入和主输出,所述多个从装置各自包括从输入和从输出,所述多个从装置布置成菊花链配置,其中第一从装置被布置成在其从输入处从所述主输出接收数据,并且一个或多个连续的从装置被布置成从在前的从装置的从输出接收数据;其中,根据所述方法,
所述主装置发送包括子字节音节的通信帧,所述通信帧包括定义从装置地址的装置地址字节,且所述子字节音节被提供为所述地址字节的初始部分;
从装置在其从输入处接收所述通信帧;其中触发的自从输入到从输出的数据传输在所述装置地址字节的剩余部分被所述从输入接收之前开始。
15.如权利要求14所述的方法,其中所述子字节音节包括一个位。
16.如权利要求15所述的方法,其中所述一个位保持在第一逻辑值处以指示通信帧的开始。
17.如权利要求14所述的方法,其中最终从装置调整延迟以确保到所述主装置的输入经字节对齐。
18.如权利要求17所述的方法,其中所述延迟的所述调整由嵌入于所述通信帧中的专用命令进行设置。
19.如权利要求18所述的方法,其中所述延迟的所述调整由嵌入于所述地址字节中的专用命令进行设置。
20.如权利要求17所述的方法,其中所述延迟的所述调整由所述从装置中的寄存器进行设置,所述寄存器具有可被设置成告知一个从装置进行字节对齐的值。
21.如权利要求14所述的方法,其中每一从装置存储其标识以确定其在从装置的菊花链中的位置,并且在通信帧的传输期间,在同一时钟循环中将数据自从输入传送到从输出。
22.如权利要求21所述的方法,其中:
在初始通信帧的传输期间,每一从装置基于针对所述从装置在所述从输入与从输出之间的延迟来确定其在所述菊花链中的位置;
且此后在后续通信帧的传输期间,由所述从装置在所述同一时钟循环中将数据从其从输入传送到其从输出。
23.如权利要求14所述的方法,所述方法是串行外围接口协议的部分。
24.一种在串行通信设备中在装置之间传送数据的方法,所述串行通信设备包括主装置、多个从装置,所述主装置具有主输入和主输出,所述多个从装置各自包括从输入和从输出,所述多个从装置布置成菊花链配置,其中第一从装置被布置成在其从输入处从所述主输出接收数据,并且一个或多个连续的从装置被布置成从在前的从装置的从输出接收数据;其中,根据所述方法,
在初始通信帧的传输期间,每一从装置基于针对所述从装置在所述从输入与从输出之间的延迟来确定其在所述菊花链中的位置;
且此后在后续通信帧的传输期间,由所述从装置在同一时钟循环中将数据从其从输入传送到其从输出。
25.如权利要求24所述的方法,其中所述从输入与从输出之间的所述延迟是k个字节,其中k是所述从装置在所述菊花链中的所述位置。
26.如权利要求24所述的方法,其中所述从输入与从输出之间的所述延迟是k个子字节音节,其中k是所述从装置在所述菊花链中的所述位置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/099002 WO2020029020A1 (en) | 2018-08-06 | 2018-08-06 | Serial communication protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111010881A CN111010881A (zh) | 2020-04-14 |
CN111010881B true CN111010881B (zh) | 2024-08-23 |
Family
ID=69227934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880010262.2A Active CN111010881B (zh) | 2018-08-06 | 2018-08-06 | 串行通信协议 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10990559B2 (zh) |
CN (1) | CN111010881B (zh) |
WO (1) | WO2020029020A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11295828B2 (en) * | 2019-03-08 | 2022-04-05 | Analog Devices International Unlimited Company | Multi-chip programming for phased array |
CN111625487B (zh) * | 2020-04-17 | 2024-05-31 | 惠州市德赛西威汽车电子股份有限公司 | 一种spi通信系统及其通信方法 |
CN114035524A (zh) * | 2021-11-11 | 2022-02-11 | 成都卡诺普机器人技术股份有限公司 | 控制方法和自动控制系统 |
KR20230089771A (ko) | 2021-12-14 | 2023-06-21 | 주식회사 엘엑스세미콘 | 직렬통신 기반의 데이터 전송 시스템 및 데이터 전송 방법 |
KR20230093682A (ko) | 2021-12-20 | 2023-06-27 | 주식회사 엘엑스세미콘 | 하이브리드 디밍 제어 장치 및 방법 |
KR20230094431A (ko) | 2021-12-21 | 2023-06-28 | 주식회사 엘엑스세미콘 | 백라이트 유닛 제어 시스템 및 방법 |
CN115328845B (zh) * | 2022-08-26 | 2023-05-12 | 润芯微科技(江苏)有限公司 | 一种四线串行外设接口通信协议设计的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9913676D0 (en) * | 1999-06-11 | 1999-08-11 | Mitel Corp | System architecture for electronic devices |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928501B2 (en) * | 2001-10-15 | 2005-08-09 | Silicon Laboratories, Inc. | Serial device daisy chaining method and apparatus |
CN2750381Y (zh) * | 2004-09-15 | 2006-01-04 | 北京中星微电子有限公司 | 串行通信总线外部设备接口 |
US8335868B2 (en) * | 2006-03-28 | 2012-12-18 | Mosaid Technologies Incorporated | Apparatus and method for establishing device identifiers for serially interconnected devices |
DE102006040709B4 (de) * | 2006-08-30 | 2008-08-14 | Sick Ag | Datenübertragungsverfahren in einer Daisy-Chain-Anordnung |
US7565470B2 (en) * | 2007-12-04 | 2009-07-21 | Holylite Microelectronics Corp. | Serial bus device with address assignment by master device |
US9946679B2 (en) * | 2011-10-05 | 2018-04-17 | Analog Devices, Inc. | Distributed audio coordination over a two-wire communication bus |
US9176919B2 (en) * | 2012-06-06 | 2015-11-03 | Honeywell International Inc. | Process controller having multi-channel serial communications link |
US9559389B2 (en) * | 2013-07-10 | 2017-01-31 | Datang Nxp Semiconductors Co., Ltd. | Daisy chain communication bus and protocol |
US10055376B1 (en) * | 2015-01-15 | 2018-08-21 | Maxim Integrated Products, Inc. | Serial peripheral interface system with slave expander |
US20170083468A1 (en) * | 2015-09-21 | 2017-03-23 | Qualcomm Incorporated | Identifying multiple identical devices on a shared bus |
JP6457417B2 (ja) * | 2016-03-22 | 2019-01-23 | ファナック株式会社 | シリアル通信分岐機器およびシリアル通信システム |
US10642769B2 (en) * | 2017-03-24 | 2020-05-05 | Analog Devices Global Unlimited Company | Serial peripheral interface daisy chain mode system and apparatus |
-
2018
- 2018-08-06 WO PCT/CN2018/099002 patent/WO2020029020A1/en active Application Filing
- 2018-08-06 CN CN201880010262.2A patent/CN111010881B/zh active Active
-
2019
- 2019-09-12 US US16/568,840 patent/US10990559B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9913676D0 (en) * | 1999-06-11 | 1999-08-11 | Mitel Corp | System architecture for electronic devices |
Also Published As
Publication number | Publication date |
---|---|
US20200042487A1 (en) | 2020-02-06 |
CN111010881A (zh) | 2020-04-14 |
WO2020029020A1 (en) | 2020-02-13 |
US10990559B2 (en) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111010881B (zh) | 串行通信协议 | |
US8122202B2 (en) | Reduced pin count interface | |
JP5927263B2 (ja) | ホストコンピュータシステムとメモリとの間の通信方法およびメモリ | |
US11063850B2 (en) | Slave-to-master data and out-of-sequence acknowledgements on a daisy-chained bus | |
US8898415B2 (en) | Simultaneous read and write data transfer | |
US20030074505A1 (en) | Serial device daisy chaining method and apparatus | |
US20080147897A1 (en) | Memory controller including a dual-mode memory interconnect | |
US20110258366A1 (en) | Status indication in a system having a plurality of memory devices | |
KR20150024350A (ko) | 링 토폴로지 스테이터스 인디케이션 | |
WO2007036047B1 (en) | Multiple independent serial link memory | |
US20120089770A1 (en) | Flash memory devices with high data transmission rates and memory systems including such flash memory devices | |
KR20180030511A (ko) | 8 비트 미만의 바이트들 및 가변 패킷 크기를 갖는 spi 인터페이스 | |
US20160364354A1 (en) | System and method for communicating with serially connected devices | |
US10860509B1 (en) | Multi-device burst update method | |
US11947478B2 (en) | Methods for identifying target slave address for serial communication interface | |
US20040078500A1 (en) | Serial peripheral interface and related methods | |
EP0690382B1 (en) | Computer system with a multiplexed address bus and pipelined write operations | |
EP3968332A1 (en) | Spi nor memory with optimized read and program operation | |
US20220188254A1 (en) | Methods for identifying target slave address for serial communication interface | |
US20240311219A1 (en) | Dynamic random access memory (dram) device with write error protection | |
US11626149B2 (en) | SPI NOR memory with optimized read and program operation | |
US11556492B1 (en) | Synchronous serial interface allowing communication with multiple peripheral devices using a single chip select | |
US20240212743A1 (en) | Integrated circuit memory devices with unidirectional ports for concurrent interface operations | |
CN115309689A (zh) | 使用主机对菊花链中的多个从机进行编程和控制的方法 | |
CN117501252A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: Britain Address after: Burnend, UK Applicant after: Reza Design (UK) Ltd. Address before: London Applicant before: Dialog Semiconductor (UK) Ltd. Country or region before: Britain |
|
GR01 | Patent grant | ||
GR01 | Patent grant |