数字通信接口中的动态寻址系统和方法与流程

文档序号:31847393发布日期:2022-10-19 00:11阅读:206来源:国知局
数字通信接口中的动态寻址系统和方法与流程

1.本公开涉及数字通信接口中、特别是在串行接口中、更特别地根据由mipi(移动工业处理器接口)联盟定义的i3c(改进的集成电路间)协议操作的动态寻址系统和方法。


背景技术:

2.例如在嵌入式系统中,通常使用数字通信接口来实现至少一个主设备或主机设备(例如,数字处理器或控制器)与若干从设备(例如,传感器设备)之间的数字通信,若干从设备被耦合到同一数字通信总线或线路并且可以由主设备单独寻址。
3.必须为每个从设备提供唯一的地址,以允许主设备正确地寻址到同一个从设备的数据通信。
4.具体地,在已知的解决方案中,主设备被配置为在数据通信之前的地址分配初始化步骤期间向每个从设备分配唯一地址。
5.当多个相同的从设备被耦合到同一通信总线(例如,i3c总线)时,可能会出现问题;在这种情况下,在初始化期间确实很难区分各个从设备,以允许主设备分配相应的唯一地址。
6.例如,多个相同的从设备可以是被耦合到相同的通信总线的相同传感器设备(即,相同类型和制造商的传感器)、冗余传感器或专门用于不同功能的传感器。通常,这些传感器将具有相同的静态地址,使得必须提供解决方案,使得它们能够被主设备区分。
7.在可能的已知解决方案中,专用于每个从设备的gpio(通用输入输出)引脚被用于区分它们的静态地址。就gpio引脚和pcb迹线而言,这是一种简单但成本高昂的解决方案,而且它不可扩展,存在的从设备越多,所需的gpio引脚就越多。例如,基于每个设备专用的gpio引脚的可用性,根据i2c协议的通信总线中的从设备可以具有相同的静态地址和该静态地址的多达128个变型。
8.根据另一已知解决方案,在设计或制造阶段期间,使用一次性可编程(otp)地址变化位来定义各种从设备的地址变化。该解决方案允许定义一些地址变化,但由于每个从设备需要专用地址变化位和专用编程,因此需要相关成本。
9.i3c协议提供动态地址分配(daa)程序,允许从设备由主设备分配动态地址,并且将从设备的静态地址修改为由同一主设备选择的地址。
10.根据i3c协议的第一解决方案,每个从设备的动态地址根据同一从设备的静态地址(通常为i2c静态地址)来设置。然而,如前所述,该静态地址是固定的,并且特别是在多个相同设备被耦合到同一通信总线的情况下,很难使其从一个设备到另一设备有所不同。
11.根据i3c协议的第二解决方案,动态寻址基于从设备在开漏(open-drain)模式下在总线上进行仲裁来赢得地址分配轮次,其中从设备对pid(临时标识)值(例如,48位的值)进行仲裁。
12.pid值是允许主设备区分各种从设备的唯一id。该临时id可以随机生成(通过随机数生成器),也可以针对每个从设备固定,包含制造商id、部件id和实例id(instid);实例id
部分可以被用于区分相同的从设备并且可以借助otp编程或基于pin的变化来定义。
13.此外,根据例如用于设备地址标识的引脚或可编程位的数目,该已知的解决方案通常对唯一可寻址的从设备的数目有限制。此外,随机数生成器通常不是真生成器,并且对于同一制造商的设备将是相同的,因为用于将来自单个制造商的相同设备区分开来的真随机数生成器对于诸如传感器设备等小型设备来说既昂贵又复杂。


技术实现要素:

14.在一个实施例中,数字通信系统包括:主设备;以及多个从设备,多个从设备在操作中,通过共享数据通信总线与主设备通信地耦合,从设备在地址分配过程中以菊花链配置耦合在一起,其中每个从设备具有菊花链输入和菊花链输出,第一个从设备的菊花链输入被耦合到主设备的菊花链使能输出,后续从设备的菊花链输入被耦合到在菊花链配置中的先前从设备的菊花链输出,并且其中主设备在操作中基于从设备在菊花链配置中的布置,将相应的动态地址分配给从设备。在一个实施例中,主设备在操作中从可用的不同动态地址列表中为每个从设备分配相应的动态地址。在一个实施例中,在地址分配过程期间,从设备基于菊花链配置的布置,被分配相应不同的临时标识值,并且主设备在操作中基于不同的临时标识值而分配不同的动态地址。在一个实施例中,从设备具有循环递增的内部计数器,并且在地址分配过程结束时确定相应的临时标识值;并且其中菊花链输入的高值被设计为阻断内部计数器并且从第一个从设备开始到最后一个从设备循环地分配给菊花链配置中的从设备,其余从设备具有菊花链输入的低值,低值被设计为使能相应内部计数器。
15.在一个实施例中,方法包括:通过共享通信总线,将主设备和多个从设备耦合在一起;将多个从设备以菊花链配置耦合在一起,每个从设备具有菊花链输入和菊花链输出,多个从设备的第一个从设备的菊花链输入被耦合到主设备的菊花链使能输出,并且多个从设备的后续从设备的菊花链输入被耦合到菊花链配置中的先前从设备的菊花链输出;由主设备基于从设备在菊花链配置中的位置,为从设备分配相应的动态地址。在一个实施例中,方法包括基于从设备在菊花链配置中的位置,向从设备分配相应的不同临时标识值,其中由主设备分配相应的动态地址基于从设备的不同临时标识值。
16.在一个实施例中,主设备包括:接口,其在操作中经由通信总线将主设备耦合到多个从设备,多个从设备以菊花链配置耦合在一起;菊花链使能输出,其在操作中将主设备耦合到菊花链配置的第一个从设备的菊花链输入;菊花链反馈输入,其在操作中将主设备耦合到菊花链配置的最后一个从设备的菊花链输出;以及控制电路装置,其被耦合到接口、菊花链使能输出和菊花链反馈输入,其中控制电路装置在操作中基于从设备在菊花链配置中的相应位置,将相应的动态地址分配给多个从设备中的从设备。
附图说明
17.为了更好地理解本公开,现在仅通过非限制性示例并参考附图描述其示例实施例,其中:
18.图1示出了根据本公开的一个方面的被配置用于动态寻址的数字通信系统的示意框图;
19.图2a-图2c示出了根据本公开的第一实施例的分别处于初始、中间和最终动态寻
址操作状态的图1的数字通信系统;
20.图3示出了根据本公开的第一实施例的图1的数字通信系统中由从设备执行的动态寻址操作的流程图;
21.图4示出了根据本发明的第一实施例的图1的数字通信系统中由主设备执行的动态寻址操作的流程图;
22.图5a-图5c示出了根据本公开的第二实施例的分别处于初始、中间和最终动态寻址操作状态的图1的数字通信系统;
23.图6示出了根据本公开的第二实施例的图1的数字通信系统中由从设备执行的动态寻址操作的流程图;以及
24.图7示出了根据本公开的第二实施例的图1的数字通信系统中由主设备执行的动态寻址操作的流程图。
具体实施方式
25.如将详细讨论的,本公开提供了用于在动态寻址初始化阶段期间,基于主设备对菊花链布置的定义来不同地寻址相同通信总线上的多个(甚至相同)从设备的方式(数据通信的预备)。
26.如图1所示,数字系统1包括主(或主机)设备2,主设备2通过数字通信总线5(在根据i3c协议操作的示例中)与若干从设备4通信,数字通信总线5包括数据通信线data(用于从设备和主设备之间的双向数据通信)和时钟线clk(承载用于同步的时钟信号)。如图所示,主设备2包括接口22,接口22在操作中将一个或多个处理核心28、一个或多个存储器30和一个或多个状态机32耦合到通信总线5。
27.根据本公开的一个方面,在动态寻址初始化阶段中,从设备4由主设备2根据专用菊花链(或串联)布置来布置,每个从设备4具有菊花链输入dc_in和菊花链输出dc_out。
28.从设备4的菊花链输入dc_in通常被耦合到菊花链布置中的先前设备的菊花链输出dc_out,除了第一个从设备4(在示例中为设备0)的菊花链输入dc_in被耦合到主设备2的菊花链使能输出dc_en24,并且最后一个从设备4(在示例中为设备n)的菊花链输出dc_out被耦合到相同主设备2的菊花链反馈输入fb_in 26。换言之,菊花链输入由主设备2提供,并且最后菊花链输出被发送回相同的主设备2,作为反馈。
29.注意,从设备4的菊花链输入dc_in可以对应于通常可用的设置地址(sa)输入o pin,在已知解决方案中使用的输入用于提供相同从设备4的静态地址的设置(例如,相同静态地址的最高有效位设置);此外,从设备4的菊花链输出dc_out可以对应于中断输出,中断输出在常规操作中用于将中断从从设备4通信到主设备2和/或其他从设备4。
30.如将详细讨论的,从设备4的菊花链输出dc_out将被用于允许设置菊花链布置中的后续从设备4的动态地址。
31.在第一实施例中,动态寻址解决方案利用从设备4的静态地址来分配相应的动态地址,从而在最少修改和使用单个静态地址的情况下,提供了针对多个设备寻址(甚至对于相同的设备)来优化该方法的选项。
32.在初始步骤(如图2a所示)中,主设备2的菊花链使能输出dc_en被设置为“1”(数字高)或者与内部电源电压(vdd)连接的固定值。这使得链中的第一个从设备4(设备0)具有连
接到菊花链使能输出dc_en的菊花链输入dc_in,其静态地址具有第一配置“sa1”,其设置地址位(sa)具有高值。
33.所有其他从设备4的菊花链输入dc_in被连接到驱动低值“0”(数字低)的先前从设备的菊花链输出dc_out,因此它们的静态地址将具有第二不同的配置“sa0”,其设置地址位具有低值。
34.主设备2然后被配置为向第一个从设备4分配不同于sa0/sa1(该动态地址例如从主设备2可用的地址列表中获取)的动态地址(通常分配给菊花链布置中具有静态地址sa1并且尚未被分配动态地址的唯一从设备4)。
35.需要注意,由i3c协议提供的命令“setdasa”(用于主设备将动态地址分配给具有已知静态地址的从设备)可以被主设备2用于从已知的静态地址开始设置动态地址。
36.该操作允许重新使用相同的静态地址sa1来为菊花链布置中的下一从设备4分配动态地址。
37.实际上,如图2b所示,一旦第一个从设备设备0的动态地址被分配,同一第一个从设备的菊花链输出dc_out被驱动为高值“1”(数字高),使得链中的下一从设备4(在该情况下是第二个从设备,设备1)将其静态地址设置为“sa1”。
38.如图2b所示,主设备2已为第二个从设备设备1分配了不同的动态地址(同样基于静态地址sa1),使得同一第二个从设备的菊花链输出dc_out被驱动为高值“1”。这已将静态地址sa1移位到菊花链布置中的第三个从设备设备2,继而第三个从设备设备2然后由同一主设备2分配其相应不同的动态地址。
39.主设备2检查菊花链反馈输入fb_in的值来确定动态寻址过程是否完成:如果值为“0”,则同一主设备2将继续动态地址分配过程(如前所述,在迭代循环中,链中具有静态地址sa1的下一从设备被分配相应不同的动态地址);如果值为“1”(如图2c所示),则主设备2将确定动态地址分配过程完成,链中的所有从设备4均已接收到相应不同的动态地址。
40.注意,主设备2还可以使用内部增量计数器来验证动态寻址过程的结束,利用耦合到数字通信总线5的已知数目的从设备4交叉检查计数器值;这对于检查菊花链布置中所有从设备4的正确连接和/或链中插入的未知设备的存在可能是有用的。
41.图3示出了先前讨论的由从设备4执行的动态地址分配操作的示意流程图。
42.如前所述,从设备4在第一步骤10中检查相应菊花链输入dc_in的值。
43.如果该位的值为“0”,则如步骤11所示,设置地址位被设置为低值(确定静态地址为第二配置“sa0”);如果该位的值为“1”,则如步骤12所示,设置地址位被设置为高值(确定静态地址的第一配置“sa1”)。
44.如步骤13所示,从设备4检查是否已分配了相应的动态地址。
45.如果它已被分配,步骤14,则相应的菊花链输出dc_out被设置为高值“1”;如果尚未分配,则步骤15,相应的菊花链输出dc_out被设置为低值“0”。
46.因此,所讨论的动态寻址解决方案允许从设备4将动态地址设置标志或令牌发送到与链中的下一从设备耦合的输出端口(借助菊花链输出dc_out);该标志然后将被用作链中下一从设备的静态地址的设置地址输入。通过在迭代循环中这样做,所有从设备4可以通过使用单个静态地址(由设置地址位sa1确定)而被分配不同的动态地址。
47.图4示出了先前讨论的由主设备2执行的动态地址分配操作的示意流程图。
48.在第一步骤20中,主设备2建立从设备4的菊花链布置并且将第一个从设备的菊花链输入dc_in连接到vdd(或高逻辑电平)。
49.然后,主设备2例如如迭代步骤21所示,使用由i3c协议提供的“setdasa”命令,从而发起设置链中从设备4的动态地址的循环,从设备4在每次迭代中具有被设置为第一配置“sa1”的静态地址。
50.如前所述,主设备1可以具有m个列表(m是任何合适的数目,高于或等于与数字通信总线5连接的从设备4的数目n)可用的不同动态地址d_add[m]分配给相应从设备4,其中m是在每次循环迭代时递增的索引。
[0051]
如步骤22所示,在每次迭代中,在分配了从设备4的动态地址之后,主设备2检查菊花链反馈输入fb_in来确定动态寻址过程的状态:如果值为“0”,则同一主设备2将继续动态地址分配的过程(如前所述,使用静态地址sa1来分配链中下一设备相应不同的动态地址),返回步骤21;如果值为“1”,则主设备2确定动态地址分配过程完成,如步骤24所示,链中的所有从设备4已接收到相应不同的动态地址。
[0052]
动态寻址解决方案的第二实施例设想使用从设备4的临时id(pid)值来分配相应不同的动态地址,特别是即使在相同的从设备被耦合到数字通信总线5的情况下,提供用于设置区别pid值的可变部分(例如,实例id、instid、部件)的简单且有效的方法。
[0053]
同样对于该第二实施例,如图5a所示,主设备2以设置从设备4的相同菊花链布置开始,并且此外将第一个从设备设备0的菊花链输入dc_in连接到vdd(或高逻辑电平)。
[0054]
在该情况下,菊花链输入dc_in的高值确定了针对第一个从设备设备0,阻断同一从设备4内部的计数器;计数器(从零计数值开始)确定同一从设备4的pid值的实例id部分,其稍后将用于动态地址配置(例如,根据i3c协议提供的entdaa命令,此处不详细讨论)。
[0055]
相反,菊花链输入dc_in的低值(因为所有先前设备的菊花链输出dc_out为低或逻辑“0”)确定针对菊花链布置中的所有其他从设备4,使能内部计数器,计数器因此能够递增其计数值。
[0056]
主设备2然后在数字通信总线5上发送用于从设备4设置实例id的自定义命令,在数字通信总线5上的从设备4的数目小于或等于16的情况下(作为备选,可以设想更多的字节数),实例id包括例如两个数据字节。数据字节是无用的(具有“无关”值),但在该数据传输期间发送的时钟脉冲被用于将菊花链输入dc_in重新锁存到从设备4的菊花链输出dc_out并且如果被使能,则递增相同从设备4的内部计数器。
[0057]
因此,在每个时钟周期之后,具有菊花链输出dc_out“1”(并且内部计数器暂停)的从设备4的数目增加,如图5b所示,表示动态地址分配过程的中间情况。这些从设备4的内部计数器将因此停止在相应不同的增量计数器值处。
[0058]
一旦最后一个从设备4的菊花链输出dc_out为“1”,如图5c所示,主设备2然后发送命令(例如,根据i3c协议的entdaa命令)来分配从设备4的动态地址,从设备4均可以基于它们的临时id(pid)值来区分。
[0059]
具体地,根据该解决方案,根据相应内部计数器的不同递增值,pid的实例id字段对于各种从设备4将不同。
[0060]
注意,如果实例id字段具有4位,则对于该实施例,多达16个从设备4可以被提供不同的动态地址。如果存在更多的从设备4,内部计数器将溢出,并且第16设备之后的设备将
具有相同的实例id字段;在该情况下,根据本发明的一个方面,不论菊花链输入dc_in的值如何,菊花链输出dc_out也将被强制为“1”,以强制中断动态地址分配过程(甚至在达到完整的计数器值之前)。
[0061]
然而,很明显,如果需要,基于从设备4的数目,更高数目的位可以被用于内部计数器和pid值的实例id字段。
[0062]
图6示出了根据第二实施例的由从设备4执行的用于动态地址分配的先前讨论的操作的示意流程图。
[0063]
在第一步骤30中,每个从设备4检查数字通信总线5上存在由主设备2提供的设置实例id命令(setinstid ccc)。
[0064]
如果上述命令存在,则如步骤31所示,从设备4检查菊花链输入dc_in的值;否则,同一从设备4等待实例id命令。
[0065]
如果菊花链输入dc_in的值为高(“1”),则确定实例id值的内部计数器被停止(因此,在所有后续时钟周期中,相同的实例id值将保持不变)并且菊花链输出dc_out被设置为高值,步骤32。
[0066]
相反,如果菊花链输入dc_in的值为低,则从设备4检查实例id内部计数器是否已满,步骤33。
[0067]
如果计数器已满,则内部计数器再次停止,并且在上述步骤32处,菊花链输出dc_out被设置为高值。
[0068]
相反,如果实例id计数器未满,则相同的计数器在步骤34处递增,并且菊花链输出dc_out的值被驱动为低值。
[0069]
图7示出了先前讨论的在该情况下由主设备2执行的动态地址分配操作的示意流程图。
[0070]
在第一步骤40中,主设备2建立从设备4的菊花链布置并且将第一个从设备设备0的菊花链输入dc_in连接到vdd(或高逻辑电平)。
[0071]
然后,在步骤41处,主设备2在数字通信总线5上发送自定义设置实例id命令(setinstid ccc),自定义设置实例id命令在示例中具有最多两个字节的数据(然而再次强调,不同数据量可以被提供,例如,如果设想最多八个从设备4,则仅提供一个字节,或者如果更多数目的从设备4被耦合到数字通信总线5,则可以提供多于两个字节)。
[0072]
当最后一个从设备设备n的菊花链输出dc_out为“1”时,主设备2然后等待菊花链反馈输入fb_in具有高值,如步骤42所示,之后主设备2发送使用先前确定的临时id(pid)值来分配动态地址的命令(例如,根据i3c协议的标准entdaa命令),以区别和区分从设备4。
[0073]
由于各个从设备4的pid值均不同(由于每个从设备4具有不同的实例id,是不同的内部计数器递增的结果),主设备2将能够在动态地址分配过程期间分配所有不同的动态地址。
[0074]
从前面的描述中可以清楚地看出所提出的解决方案的优点。
[0075]
在任何情况下,再次强调,所公开的动态寻址系统和方法允许甚至相同特征的设备被分配不同的动态地址并且在相同的数字通信总线上使用,相对于已知解决方案提供了提高的效率和灵活性。
[0076]
所提出的实施例还允许从设备基于其与主设备的距离来编号和标识,这可能有助
于例如在物联网应用中验证哪个设备已阻断连接。
[0077]
唯一分配的动态地址还可以用于确定设备的位置,这基于菊花链序列是已知的,并且可以用于从不同位置收集多个数据并基于它们的动态地址唯一地标识设备。
[0078]
具体地,根据第二实施例的解决方案中的每个实例id也可以被用作物联网、工业和汽车应用的位置id。
[0079]
此外,主设备输入处的反馈线还可以被用作主设备的安全检查,以验证是否已为所有从设备正确分配了动态地址。
[0080]
具体地,在第一实施例中,主设备可以验证在初始化阶段期间编程的设备的期望数目已达到。
[0081]
在第二实施例的情况下,主设备在设置实例id命令之后的多个时钟周期后接收反馈;通过对时钟进行计数并将该值与已分配动态地址的从设备数目进行比较(例如,使用entdaa过程),主设备可以验证总线上存在正确数目的设备,并且例如没有设备在总线上偷偷地破坏通信。
[0082]
在i3c协议中分配动态地址的可能性,结合其速度和灵活性,使得该实施例可用于多个应用领域;实现该特征,主设备可以使用多个设备并且需要最少的编程和自定义。
[0083]
此外清楚的是,可以在不脱离本公开的范围的情况下,对本文中已描述和图示的内容进行修改和变化。
[0084]
具体地,需要强调,本公开的实施例也可以有利地实现用于需要将动态地址分配给与相同数字通信总线耦合的若干(甚至相同)从设备的其他数字接口协议(不同于i3c协议)。
[0085]
数字通信系统(1)可以被概括为包括:主设备(2)和通过共享数据通信总线(5)与主设备(2)通信地耦合的多个从设备(4),其中在地址分配过程期间,主设备(2)被配置用于将不同的相应动态地址分配给从设备(4),以寻址从设备(4)用于进行数据通信,其特征在于,从设备(4)在地址分配过程期间被设计为布置在菊花链配置中,其中每个从设备(4)具有菊花链输入(dc_in)和菊花链输出(dc_out),从设备的菊花链输入被耦合到菊花链配置中的先前从设备的菊花链输出,第一个从设备的菊花链输入被耦合到主设备(2)的菊花链使能输出(dc_en),并且主设备(2)被配置为基于从设备在菊花链配置中的布置,将相应动态地址分配给从设备(4)。
[0086]
菊花链输入(dc_in)可以被设计为设置从设备(4)的静态地址(sa);并且主设备(2)可以被配置为基于从设备(4)的静态地址分配相应的动态地址。
[0087]
菊花链输入(dc_in)的高值可以被设计为针对相应的从设备(4)设置第一静态地址(sa1),并且可以在从第一个从设备开始到最后一个从设备的菊花链配置中,被循环分配给从设备,其余从设备(4)具有菊花链输入(dc_in)低值,菊花链输入(dc_in)低值可以被设计为设置第二不同的静态地址(sa0);并且主设备(2)可以被配置为在假设第一静态地址(sa1)的每个周期向从设备(4)分配相应不同的动态地址,动态地址不同于第一和第二静态地址。
[0088]
主设备(2)可以被配置为在地址分配过程的初始步骤中,通过驱动菊花链使能输出(dc_en),将第一个从设备(4)的菊花链输入(dc_in)设置为高值;并且被分配动态地址的从设备(4)可以被配置为将相应的菊花链输出(dc_out)驱动为高电平,从而将菊花链布置
中的后续从设备(4)的菊花链输入(dc_in)设置为高值。
[0089]
主设备(2)可以被配置为从可用的不同动态地址的列表中将相应的动态地址分配给每个从设备(4)。
[0090]
在地址分配过程期间,从设备(4)可以基于菊花链配置中的布置而被分配相应不同的临时标识值(pid);并且主设备(2)可以被配置为基于不同的临时标识值分配不同的动态地址。
[0091]
从设备(4)可以具有循环递增的内部计数器,并且在地址分配过程结束时确定相应的临时标识值;并且菊花链输入(dc_in)的高值可以被设计为阻断内部计数器,并且在从第一个从设备开始到最后一个从设备的菊花链配置中可循环地分配给从设备(4),其余从设备(4)具有菊花链输入(dc_in)的低值,菊花链输入(dc_in)的低值可以被设计为使能相应的内部计数器。
[0092]
主设备(2)可以被配置为在地址分配过程的初始步骤中,通过驱动菊花链使能输出(dc_en),将第一个从设备(4)的菊花链输入(dc_in)设置为高值;并且具有高菊花链输入的从设备(4)可以被配置为将相应的菊花链输出(dc_out)驱动为高电平,从而将菊花链布置中的后续从设备(4)的菊花链输入(dc_in)设置为高值。
[0093]
从设备(4)的内部计数器可以被设计为确定从设备(4)的临时标识值(pid)的实例id部分;并且主设备(2)可以被配置为利用i3c协议提供的entdaa命令,基于不同的临时标识值来确定相应不同的动态地址。
[0094]
根据菊花链布置的系统,最后一个从设备(4)的菊花链输出(dc_out)可以被耦合到主设备(2)的菊花链反馈输入(fb_in);并且主设备(2)可以被配置为检查菊花链反馈输入(fb_in)的值来确定动态寻址过程是否完成。
[0095]
主设备(2)可以被配置为检查菊花链反馈输入(fb_in)的值,以进一步验证动态地址已被正确分配给与数字通信总线(5)耦合的所有从设备(4)。
[0096]
所分配的动态地址可以被设计为基于它们在菊花链配置中的布置来提供从设备(4)的位置信息。
[0097]
数字通信总线(5)可以被配置为根据i3c协议进行操作。
[0098]
数字通信系统(1)中的动态寻址方法,数字通信系统(1)可以被概括为包括主设备(2)和通过共享数据通信总线(5)与主设备(2)通信地耦合的多个从设备(4),
[0099]
方法包括,在地址分配过程期间,由主设备(2)为从设备(4)分配不同的相应动态地址,以寻址从设备(4)进行数据通信,
[0100]
其特征在于,在地址分配过程期间,将从设备(4)布置为菊花链配置,其中每个从设备(4)具有菊花链输入(dc_in)和菊花链输出(dc_out),从设备的菊花链输入被耦合到菊花链配置中的先前从设备的菊花链输出,第一个从设备的菊花链输入被耦合到主设备(2)的菊花链使能输出(dc_en),
[0101]
并且在该情况下,由主设备(2)向从设备(4)分配相应的动态地址基于它们在菊花链配置中的布置。
[0102]
菊花链输入(dc_in)可以被设计为设置从设备(4)的静态地址(sa);并且由主设备(2)分配相应的动态地址可以基于从设备(4)的静态地址。
[0103]
在地址分配过程期间,基于菊花链配置中的布置,为从设备(4)分配不同的临时标
识值(pid);并且其中,由主设备(2)分配不同的动态地址可以基于不同的临时标识值。
[0104]
在一个实施例中,数字通信系统包括:主设备;以及多个从设备,多个从设备在操作中,通过共享数据通信总线与主设备通信地耦合,在地址分配过程期间,从设备以菊花链配置耦合在一起,其中每个从设备具有菊花链输入和菊花链输出,第一个从设备的菊花链输入被耦合到主设备的菊花链使能输出,后续从设备的菊花链输入被耦合到菊花链配置中的先前从设备的菊花链输出,并且其中主设备在操作中基于从设备在菊花链配置中的布置将相应的动态地址分配给从设备。在一个实施例中,多个从设备的菊花链输入是从设备的静态地址设置位,并且主设备在操作中基于从设备的静态地址分配相应的动态地址。在一个实施例中,菊花链输入的高值针对相应的从设备设置第一静态地址,并且在从多个从设备中的第一个从设备开始到最后一个从设备的菊花链配置中,循环地分配给从设备,多个从设备中的其余从设备具有菊花链输入的低值,低值设置第二不同的静态地址;并且其中主设备在操作中在假设第一静态地址的每个循环中向从设备分配相应的不同动态地址,动态地址不同于第一和第二静态地址。在一个实施例中,主设备在操作中通过驱动菊花链使能输出,在地址分配过程的初始步骤中将第一个从设备的菊花链输入设置为高值;并且其中已分配动态地址的第一个从设备在操作中将第一个从设备的菊花链输出驱动为高电平,从而将菊花链配置中的后续从设备的菊花链输入设置为高值。在一个实施例中,主设备在操作中从可用的不同动态地址列表中为每个从设备分配相应的动态地址。在一个实施例中,在地址分配过程期间,从设备基于菊花链配置的布置而被分配相应不同的临时标识值,并且主设备在操作中基于不同的临时标识值分配不同的动态地址。在一个实施例中,从设备具有循环递增的内部计数器,并在地址分配过程结束时确定相应的临时标识值;并且其中菊花链输入的高值被设计为阻断内部计数器并且在从第一个从设备开始到最后一从设备的菊花链配置中,循环地分配给从设备,其余从设备具有菊花链输入的低值,低值被设计为使能相应的内部计数器。在一个实施例中,主设备在操作中通过驱动菊花链使能输出,在地址分配过程的初始步骤中将第一个从设备的菊花链输入设置为高值,并且其中具有高菊花链输入的从设备在操作中将相应的菊花链输出驱动为高电平,从而将菊花链配置中后续从设备的菊花链输入设置为高值。在一个实施例中,从设备的内部计数器被设计为确定从设备的临时标识值的实例id部分;并且其中主设备被配置为利用i3c协议提供的entdaa命令,基于不同的临时标识值,确定相应的不同动态地址。在一个实施例中,根据菊花链布置,最后一个从设备的菊花链输出被耦合到主设备的菊花链反馈输入;并且主设备在操作中检查菊花链反馈输入的值来确定动态寻址过程是否完成。在一个实施例中,主设备在操作中检查菊花链反馈输入的值来验证动态地址已被正确地分配给与数字通信总线耦合的所有从设备。在一个实施例中,所分配的动态地址基于从设备在菊花链配置中的布置来提供从设备的位置信息。在一个实施例中,数字通信总线在操作中根据i3c协议操作。
[0105]
在一个实施例中,方法包括:通过共享通信总线将主设备和多个从设备耦合在一起;将多个从设备以菊花链配置耦合在一起,每个从设备具有菊花链输入和菊花链输出,多个从设备的第一个从设备的菊花链输入被耦合到主设备的菊花链使能输出,并且多个从设备的后续从设备的菊花链输入被耦合到菊花链配置中的先前从设备的菊花链输出;由主设备基于从设备在菊花链配置中的位置为从设备分配相应的动态地址。在一个实施例中,菊花链输入是从设备的静态地址设置输入,并且由主设备分配相应的动态地址基于从设备的
静态地址。在一个实施例中,方法包括基于从设备在菊花链配置中的位置,向从设备分配相应的不同临时标识值,其中由主设备分配相应的动态地址基于从设备的不同临时标识值。
[0106]
在一个实施例中,主设备包括:接口,其在操作中经由通信总线将主设备耦合到多个从设备,多个从设备以菊花链配置耦合在一起;菊花链使能输出,其在操作中将主设备耦合到菊花链配置的第一个从设备的菊花链输入;菊花链反馈输入,其在操作中将主设备耦合到菊花链配置的最后一个从设备的菊花链输出;以及控制电路装置,其被耦合到接口、菊花链使能输出和菊花链反馈输入,其中控制电路装置在操作中基于从设备在菊花链配置中的相应位置向多个从设备中的从设备分配相应的动态地址。在一个实施例中,第一个从设备的菊花链输入是第一个从设备的静态地址设置输入,第二个从设备的菊花链输入是第二个从设备的静态地址设置输入并且被耦合到第一个从设备的菊花链输出,并且相应动态地址的分配基于从设备的静态地址。在一个实施例中,分配相应的动态地址包括:基于从设备在菊花链配置中的位置,为多个从设备中的从设备分配相应的临时标识值;以及基于从设备的相应临时标识值分配相应的动态地址。在一个实施例中,将相应临时标识值分配给多个从设备中的从设备包括顺序地禁用多个从设备的计数器。在一个实施例中,基于从设备的相应临时标识值分配相应动态地址包括响应于经由菊花链反馈输入接收的、将相应临时标识值分配给从设备完成的指示而分配相应动态地址。
[0107]
一些实施例可以采取计算机程序产品的形式或者包括计算机程序产品。例如,根据一个实施例,提供了计算机可读介质,计算机可读介质包括适于执行上述方法或功能中的一个或多个的计算机程序。介质可以是将由适当的驱动装置或经由适当的连接读取的物理存储介质,诸如例如只读存储器(rom)芯片,或磁盘,诸如数字多功能盘(dvd-rom)、压缩盘(cd-rom)、硬盘、存储器、网络或便携式媒体制品,包括以一个或多个条形码或一个或多个此类计算机可读介质上存储并可由合适的阅读器设备读取的其他相关代码编码。
[0108]
此外,在一些实施例中,一些或所有方法和/或功能可以以其他方式实现或提供,诸如至少部分地以固件和/或硬件实现或提供,固件和/或硬件包括但不限于一个或多个专用集成电路(asic)、数字信号处理器、分立电路、逻辑门、标准集成电路、控制器(例如,通过执行适当的指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)等以及采用rfid技术的器件及其各种组合。
[0109]
上述各种实施例可以被组合来提供进一步的实施例。如果需要,实施例的各方面可以被修改为采用各种专利、申请和出版物的概念来提供更进一步的实施例。
[0110]
可以根据以上详细描述对实施例进行这些和其他改变。一般而言,在所附权利要求中,所使用的术语不应被解释为将权利要求限制为在说明书和权利要求中公开的特定实施例,而应被解释为包括所有可能的实施例以及权利要求所要求保护的等同物的全部范围。因此,权利要求不受本公开内容的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1