CN107430577A - 利用笛卡尔寻址的低功率和低等待时间设备枚举 - Google Patents
利用笛卡尔寻址的低功率和低等待时间设备枚举 Download PDFInfo
- Publication number
- CN107430577A CN107430577A CN201680016955.3A CN201680016955A CN107430577A CN 107430577 A CN107430577 A CN 107430577A CN 201680016955 A CN201680016955 A CN 201680016955A CN 107430577 A CN107430577 A CN 107430577A
- Authority
- CN
- China
- Prior art keywords
- slave unit
- interface
- address
- node
- addresses
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1091—Interfacing with client-server systems or between P2P systems
-
- 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/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point 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/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0052—Assignment of addresses or identifiers to the modules of a bus system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/64—Asynchronous transfer mode [ATM] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
提供了一种不需要向通过P2P链路连接到主机设备的从设备预先指派地址的枚举技术。关于各设备之间的任何P2P链路,一个设备具有主接口并且剩余设备具有从接口。为了在主接口与从接口之间进行区分,可使用主/从状态位。每个P2P链路具有链路ID,该链路ID可与对应(主或从)接口的状态位级联以形成节点ID。主机设备从每个从设备接收唯一的经级联地址,该经级联地址表示该从设备的节点ID和该从设备与主机设备之间的任何居间接口的节点ID的级联。主机设备随后向每个从设备指派唯一的笛卡尔地址。
Description
L·米什拉,J·帕尼安和R·韦斯特费尔特
相关申请的交叉引用
本申请要求于2016年3月22日提交的美国专利申请No.15/077,841的权益。另外,本申请要求于2015年3月24日提交的美国临时申请No.62/137,687以及与2015年8月21日提交的美国临时申请No.62/208,312的权益。
技术领域
本申请涉及集成电路,尤其涉及集成电路的枚举。
背景
已经开发了数种数字信令协议以支持在诸如移动设备之类的系统中的各集成电路之间的通信。此类数字信令协议的示例包括:通用输入/输出(GPIO)和通用异步接收机发射机(UART)。随着技术进步,这些各式各样的数字信令协议已经被增强。例如,本申请内容的受让人已经开发出一种“虚拟”GPIO架构,其中GPIO有限状态机将通过GPIO接口从处理器接收的GPIO数据串行化并通过专用传送引脚来传送经串行化的GPIO数据。由于处理器不需要软件修改(因为处理器可以按常规方式继续与GPIO接口对接以通过常规GPIO引脚来传送GPIO数据),因此对GPIO数据进行虚拟化对于处理器而言是透明的。处理器由此不需要关于通过虚拟GPIO接口进行通信的软件或硬件修改。远程集成电路通过专用的接收引脚来接收经串行化的虚拟GPIO数据。另外,每个虚拟GPIO集成电路可包括时钟引脚以同步VGPIO的传送和接收。在其他实施例中,未利用时钟引脚以使得存在两引脚和三引脚虚拟GPIO实施例两者。
由于存在不同的数据信令协议配置,因此使系统中的主机处理器或主机设备在被标示为设备枚举的过程期间标识系统中的剩余设备正使用的特定配置是令人期望的。然而,现有的设备枚举技术是有问题的。例如,用于设备枚举的一种常规办法涉及在系统内的各个设备中烧入熔丝或类似的一次性可编程存储器。在上电之际,系统的主机设备读取各个剩余设备中的熔丝状态以获得它们的枚举数据。然而,这种基于熔丝的枚举遭受对熔丝的管芯面积要求。作为替换方案,I/O引导枚举涉及将专用引脚绑定到电源或接地以对枚举数据编程。I/O引导由此增加了封装成本并且需要电路板上的附加组件。最后,固件已被用于枚举,但这也增加了管芯需求和复杂性。
因此,在本领域中需要改善的枚举技术。
概述
提供了一种不需要向通过点对点(P2P)链路连接到主机设备的从设备预先指派地址的枚举技术。关于各设备之间的任何P2P链路,一个设备具有主接口并且剩余设备具有从接口。为了在主接口与从接口之间进行区分,可使用主/从状态位。每个P2P链路具有链路ID,该链路ID可与对应(主或从)接口的状态位级联以形成节点ID。每个主接口和从接口可被认为包括具有对应的节点ID的“节点”,该节点ID是节点的主/从状态和耦合到该节点的P2P链路的链路ID的级联。主机设备从从设备中的每个节点接收唯一的经级联地址,该经级联地址表示该节点的节点ID和该节点与主机设备之间的的任何居间节点的节点ID的级联。该唯一经级联地址在以下讨论中被指定为“面向主机(host-facing)节点ID”。
每个P2P链路耦合在对应的从接口与主接口之间。保证每个节点的面向主机节点ID是唯一的,因为耦合到具有一个以上从接口的(主或从)设备的主接口的P2P链路是唯一的。就此而言,每个P2P链路可具有默认链路ID,如果耦合到该P2P链路的主接口是设备中仅有的主接口(包括耦合到该P2P链路的主接口),则该默认链路ID不变。一种包括一个以上主接口的设备包括本文被指定为“节点聚集器”的状态机,该状态机被配置成:向耦合到多个主接口中的一个主接口的每个P2P链路指派唯一链路ID。例如,如果设备包括两个或更多个主接口,则节点聚集器可使主接口的P2P链路中的一个P2P链路保留其默认链路ID,而使剩余主接口的P2P链路变成各自具有唯一经改变的链路ID,以使得用于该设备的主接口的P2P链路的每个链路ID是唯一的。该唯一性随后保证每个节点的面向主机节点ID进而将是唯一的。
给定唯一的面向主机节点ID,主机设备随后向每个从设备指派位优化地址(诸如,唯一的笛卡尔地址),其中,每个笛卡尔地址包括X地址和Y地址。可使用笛卡尔地址来路由通过所得到的从设备网络而不会使路由表复杂化。
附图简述
图1A是根据本公开的一方面的其中没有设备具有一个以上主接口的示例P2P系统的框图。
图1B是根据本公开的一方面的主机设备中的主接口和从设备中的对应从接口的电路图。
图2是根据本公开的一方面的其中主机设备和一些从设备两者都包括一个以上主接口的示例P2P系统的框图。
图3是根据本公开的一方面的使用位优化地址来枚举多个从设备的操作的示例方法的流程图。
图3解说了根据本公开的一方面的其中每个从设备被指派唯一笛卡尔地址的从设备和主机设备的示例网络。
图4解说了其中每个从设备被指派唯一笛卡尔地址的从设备和主机设备的示例网络。
图5是根据本公开的一方面的在图4的网络中指派唯一笛卡尔地址的方法的流程图。
本公开的各实施例及其优势通过参考以下详细描述而被最好地理解。应当领会,相同参考标记被用来标识在一个或多个附图中所解说的相同元件。
详细描述
提供了消除向任何给定设备预先指派地址的需要的枚举系统和方法。由此有利地减小或消除了常规枚举技术(诸如使用熔丝、I/O引导、或固件)的复杂性和管芯面积需求。为了提供这些有利属性,主机设备包括一个或多个点对点(P2P)接口以用于与多个从设备进行通信。尽管仅存在一个主机设备,但从设备自身在对应P2P接口上相对于其他从设备可以是副主机。在所得到的系统内,任何两个节点之间的直接物理连接(P2P连接)不与任何其他节点共享。由于这些节点之间的P2P连接由此是唯一的,因此不需要预先指派地址。
由主机设备对从设备的枚举通过两个阶段发生。在第一枚举阶段中,主机获得从设备的“原始地址”。如本文将进一步解释的,原始地址表示设备的状态(从或主)和链路ID的级联。要注意,从设备可通过另一从设备链接到主机设备或集成电路(如本文所使用的,“设备”和“集成电路”可互换地使用)。例如,第一从设备可通过第二从设备链接到主机设备。相对于第一从设备,第二从设备是主设备,这仅仅意味着第二从设备相对于第一与第二从设备之间的P2P链路是“面向主机”设备。主机设备自身当然是最终的“面向主机”设备,因为主机设备在它与相关联的从设备的P2P链路上总是主设备。
关于从主设备到其从设备的P2P链路,每个链路具有唯一ID。可向每个P2P链路的默认ID给予某个二进制值,诸如零。在发起枚举之际,主机设备确定它具有多少P2P链路。主机设备的P2P链路中的一个P2P链路将保留其默认ID,而主机设备向剩余链路给予它们自己的唯一二进制ID。本文将进一步讨论“笛卡尔”寻址技术,该寻址技术是特别有利的,因为随后从设备中不需要路由表。如“笛卡尔”的指定所建议的,每个所得到的被指派地址实际上是一对地址。每一对中的第一个地址被认为是“X”坐标,而每一对中的剩余地址被认为是“Y”坐标。每个笛卡尔地址由此由(X,Y)地址对形成。该对中的第一地址可被认为是笛卡尔坐标系中的x坐标的等效物,而该对中的第二地址可被认为是笛卡尔坐标系中的y坐标的等效物。然而,在替换的实施例中可诸如通过指派相连续的二进制值来向每个从设备指派单个地址,尽管将领会,也可使用非连续的编号方案,只要向至主机的每个P2P链路指派唯一链路ID。为了区分与主机设备具有直接P2P链路的那些从设备相比于必须通过其他从设备来链接到主机设备的那些从设备,与主机设备具有直接P2P链路的从设备被标示为“第一跳”从设备。响应于枚举发起,主机设备向每个第一跳从设备信令通知什么链路ID将用于第一跳从设备与主机设备之间的P2P链路。
必须通过另一从设备耦合来与主机设备进行通信的从设备按定义不是第一跳从设备。介于非第一跳从设备与主机设备之间的从设备充当关于非第一跳从设备的主设备。此类“主”从设备可具有一个以上含有至该主从设备的直接P2P链路的从设备。主从设备随后将由枚举的发起触发以向具有至该主从设备的P2P链路的每个从设备传达用于该P2P链路的对应链路ID。针对任何给定的从设备(不管其是否充当另一从设备的主设备),该从设备仅与一个主设备具有P2P链路。每个从设备具有从接口,其通过该从接口在对应的P2P链路上与其主设备对接。在链路ID被全部指派的情况下,每个从设备随后可向其主设备报告其从接口的“节点ID”,该节点ID是其作为从设备的状态和用于该从设备与主设备之间的P2P链路的链路ID的级联。例如,从状态可由二进制零表示,其随后与链路ID级联以形成节点ID。
每个主从设备具有用于每个P2P链路的接口,该主从设备通过该接口直接耦合到其它从设备。该接口可被标示为主接口,因为它为另一从设备服务。可向此类主接口给予节点ID,该节点ID是对应链路ID和其作为主设备的状态的级联。例如,主状态可由二进制一表示,其随后与链路ID级联以形成主接口的节点ID。进而,主从设备具有用于P2P链路的从接口,该主从设备通过该从接口与其主设备通信。例如,第一跳从设备的主设备将是主机设备自身。所以第一跳从设备中用于至主机设备的P2P链路的接口是从接口并且因此被给予从状态。
关于图1A中所示的示例系统100将更好地领会所得到的各个节点ID的形成。主机设备105包括用于至第一跳从设备110中的从接口130的P2P链路140的主接口135。从设备115通过其从接口120耦合到P2P链路145,该P2P链路145进而耦合到第一跳从设备110中的主接口125。第一跳从设备110由此是从设备115的主从设备。系统100是其中没有设备具有一个以上主接口的示例网络。下面进一步讨论其中设备可具有两个或更多个主接口的网络。P2P链路140和145由此可由其默认链路ID来表示,诸如二进制零(或者某个其他适当的二进制值)。在其中设备包括两个或更多个主接口的实施例中,将需要向对应的P2P链路指派唯一链路ID,如前面讨论的。不管每个设备中的主接口数目如何,每个链路ID可包括多位字。以下讨论将假设链路ID由7位链路ID字表示,以使得没有设备可以包括128个以上不同的主接口。然而,将领会,在替换实施例中链路ID的宽度可扩展(或收缩)。使用相对宽的链路ID(诸如7位宽的链路ID)的优点在于,与具有例如三位宽的链路ID(其仅能够支持每设备八个唯一主接口)的实施例相比,所得到的对原始地址的指派中的误差传播被减小。
给定链路ID的该7位宽度,可如下进行对每个接口135、130、125和120指派节点ID。P2P链路140和145中的每一者的默认链路ID是[0 00 00 00]。针对每个接口作为从设备或主设备的一位状态与该链路ID级联以形成所得到的节点ID。从状态由0位表示,而主状态由1位表示。例如,从接口130和120两者的节点ID是[00 00 00 00]。相比之下,主接口135和125的面向主机节点ID是[10 00 00 00]。给定这种针对每个(主或从)接口的节点ID的指派,为每个接口确定了“面向主机节点ID”。面向主机节点ID是从给定从设备到主机设备105的每个节点ID的级联。例如,第一跳从设备110的面向主机节点ID是[00 00 00 00 10 0000 00]。相比之下,从设备115的面向主机节点ID是[00 00 00 00 10 00 00 00 00 00 0000 10 00 00 00]。针对每个从设备形成面向主机节点ID是相当有利的,因为即使没有诸如通过使用熔丝或引导I/O来向设备预先指派ID,也保证面向主机节点ID是唯一的。由此,系统100与常规枚举系统相比更加紧凑并且更不昂贵。
每个主接口和从接口可包括虚拟GPIO(VGI)接口,诸如图1B中针对混合虚拟GPIO系统104所示出的,该混合虚拟GPIO系统104包括主机集成电路(IC)101和从IC 106。以下讨论由此将涉及其中每个P2P链路是VGI链路的虚拟GPIO(VGI)实现。但是将领会,本文所公开的原理和技术广泛适用于任何适当的P2P链路。集成电路101和106各自包括GPIO接口103、混合虚拟GPIO FSM 117、以及UART接口116。主机IC 101中的UART接口116被配置成驱动传送引脚111,该传送引脚111通过传输线(诸如电路板迹线)耦合到从IC 106中的UART接口116的接收引脚112。类似地,从IC 106中的UART接口116的传送引脚111耦合到应用处理器IC 100中的UART接口116的接收引脚112。如本文所使用的,“引脚”是用于涵盖诸如焊盘或实际引脚之类的结构的通用术语,集成电路使用该结构来耦合到电路板上的引线或其他适当的传输线。
每个混合虚拟GPIO FSM 117如下讨论地来监视GPIO状态变化。在对应集成电路的上电重置(POR)时,每个UART接口116可被配置成:针对虚拟GPIO帧长度和消息接发信号帧长度使用相同的波特率和相同的设置。每个UART接口116还可以是由对应集成电路的处理器(CPU)102配置的软件,如由至每个UART接口116的CPU链路所指示的。
每个处理器102被配置成:通过对应的GPIO接口103来传送和接收GPIO信号。具体而言,每个处理器102可向对应的GPIO接口103呈现GPIO信号的传送集以供传输给远程处理器。类似地,当从远程处理器传送时,每个处理器102可从对应的GPIO接口103接收GPIO信号的接收集。关于GPIO信号的传送集,GIPO信号的第一部分可作为GPIO信号131在常规GPIO引脚126上传送和接收。为解说清晰起见,图1B中针对每个虚拟GPIO接口103仅标记了四个GPIO信号131,范围从GPIO信号#1到GPIO信号#4。GPIO信号131的实际数目可大于或小于四。从对应处理器102向每个GPIO接口103呈现的GPIO信号的传送集的剩余部分不通过常规GPIO引脚126来传送或接收。相反,每个GPIO接口103将剩余部分作为多个虚拟GPIO信号139提供给对应的混合虚拟GPIO FSM 117以使得它们可被串行化并在一帧或多帧虚拟GPIO信号中传送给集成电路101和106中的接收方集成电路。在系统104中,虚拟GPIO信号集合139的范围从第一虚拟GPIO信号(#1)到第m虚拟GPIO信号(#m)。正整数m的值可取决于给定实现的需要而不同。
另外,每个处理器102可将消息接发信号的传送集写入对应混合虚拟GPIO FSM117中的一组消息接发寄存器136。每个消息接发寄存器136对应于对应消息信号138的特定地址137。在系统104中,每个混合虚拟GPIO FSM 117被示出为具有范围从第0寄存器136到第M寄存器136的多个((M+1)个)消息接发寄存器。正整数M的值可取决于给定实现的需要而不同。每个混合虚拟GPIO FSM 117向对应UART接口116呈现其消息接发信号的传送集和虚拟GPIO信号的传送集,这在下面进一步解释。要注意,虚拟GPIO信号139并非像常规GPIO信号130的情况一样各自具有其自身专用引脚。这是相当有利的,因为混合虚拟GPIO系统104与常规GPIO实施例(其中虚拟GPIO信号139将各自需要其自身的GPIO引脚)相比实现了集成电路101和106引脚的显著减少。
由于虚拟GPIO信号139和消息接发信号138是通过有限状态机(诸如混合虚拟GPIOFSM 117)来传送和接收的,因此处理器102可以睡眠或处于另一种类型的休眠状态但仍然能够接收虚拟GPIO信号139和消息接发信号136。以此方式,混合虚拟GPIO系统104不仅有利地节省了每个GPIO接口103的引脚数目,而且还是低功率的。关于每个处理器102,GPIO信号130与虚拟GPIO信号139之间不存在差异:它们两者都被视为按需要通过GPIO接口103来传送和接收的GPIO信号。
响应于虚拟GPIO信号139中所选虚拟GPIO信号的变化,处理器102可能需要接收中断信号。例如,调制解调器功率管理器(MPM)140可监视所选虚拟GPIO信号139的状态(诸如通过中断配置寄存器(未解说)来编程的)。每个虚拟GPIO信号139可具有对应的中断配置寄存器。假如需要虚拟GPIO信号139响应于该信号改变状态而生成中断,则对应的配置寄存器将被相应地编程。类似地,假如虚拟GPIO信号139是不管该信号是否改变了状态都不会生成中断的信号,则对应的中断配置寄存器也将被相应地编程。MPM 141还可包括有限状态机。由此,就像混合虚拟GPIO FSM 117一样,MPM 141是低功率并且活跃的而不管其处理器102处于睡眠模式还是某种其他休眠状态中。
虚拟GPIO信号139可被细分成传送集和接收集。类似地,消息接发信号136可被细分成传送集和接收集。在对称系统中,每个集合将具有相同数目。然而,将领会,混合虚拟GPIO系统104的优点在于,该系统能够容易地容适其中虚拟GPIO信号139和消息接发信号136的传送集和接收集具有不同大小的非对称信令实施例。不管系统104是对称的还是非对称的,每个混合虚拟GPIO FSM 117从GPIO接口103并行地接收虚拟GPIO信号139的传送集,因为传送集中的每个信号在GPIO接口103与对应的混合虚拟GPIO FSM 117之间是在其自身引线(未解说)上载送的。相比之下,所得到的由混合虚拟GPIO FSM 117对传送集的传输发生在单个传送引脚111上。
将网络110与混合虚拟GPIO系统104进行比较,可以看到,主机IC 101中的主接口135是由混合虚拟GPIO FSM 117和UART 116以及MPM 141形成的。混合虚拟GPIO FSM 117、UART 116和MPM 141的集合形成VGI接口的一种实现。类似地,从IC 106中的从接口103由相同的组件形成。每个混合虚拟GPIO FSM 117可被配置成实践本文所讨论的枚举技术。引脚111与112之间的引线形成主机IC 101与从IC 106之间的P2P链路。
图2中示出了另一示例系统200。系统200比系统100或系统104更复杂,因为例如主机设备205包括分别用于与第一跳从设备250、255和265的对应P2P链路225、230和240的三个主接口210、215和220。主机设备205包括节点聚集器202,该节点聚集器202可包括诸如关于混合虚拟GPIO FSM 117所讨论的有限状态机。节点聚集器202被配置成:在系统200的上电(或触发枚举的某个其他适当的事件)之际,确定主机设备205内的主接口数目。给定对主接口的该计数,节点聚集器202随后可以为与主机设备205中的每个主接口相对应的P2P链路指派唯一链路ID。第一P2P链路(诸如P2P链路225)可保留其默认链路ID[00 00 00 0]。该默认链路ID被指定为链路-0。随后向主机设备205的每个剩余P2P链路(诸如链路230和240)指派新的并且唯一的链路ID,诸如通过从二进制零进行计数。P2P链路230由此被指派[0000 00 1]的链路ID(指定为链路-1),而P2P链路240可被指派[00 00 01 0]的链路ID(指定为链路-2)。至主机设备205的每个P2P链路的该唯一链路ID确保了即使缺少任何预先存在的ID指派(诸如通过使用熔丝或I/O引导),所得到的所有从设备的面向主机节点ID也将是唯一的。节点聚集器202随后标识至第一跳从设备255和265的经改变的唯一链路ID。由于从设备250随后未从主机聚集器202接收经改变的链路ID,因此可假设链路-0的默认链路ID[00 00 00 0]是有效的。
每个设备中的每个接口可被指定为“节点”而不管该接口是主接口还是从接口。第一跳从设备250、255和265由此具有两个节点ID:一个用于其从接口,并且另一个用于其主接口。在系统200中,第一跳从设备250包括用于P2P链路225的从接口245。从接口245的节点ID由此是其从状态(诸如由零位[0]表示)与P2P链路225的链路ID(链路-0[00 00 00 0])的级联。从接口245的节点ID由此是[00 00 00 00]。第一跳从设备250分别通过P2P链路275和206来充当从设备290和从设备201的主从设备。第一跳从设备250包括用于P2P链路275的主接口280和用于P2P链路206的主接口282。由于第一跳从设备250中有两个主接口,因此第一跳从设备250将包括节点聚集器(未解说)(诸如关于主机设备205所讨论的节点聚集器202)以用于向P2P 275指派链路-0ID并向P2P链路206指派链路-1ID。主接口282的节点ID由此是其作为主设备的状态(诸如由1位[1]表示)与链路ID(链路-1[00 00 00 1])的级联。主接口282的节点ID由此是[00 00 00 11]。类似地,主接口280的节点ID是[00 00 00 01]。要注意,以什么顺序来形成该级联无关紧要,只要其对于所有节点一致。
表面上,用于P2P链路275和206的链路ID(链路-0和链路-1)与分别用于P2P链路225和230的链路ID相同。但是这无关紧要,因为所得到的节点ID在系统200中仍然将是唯一的。从设备290包括用于P2P链路275的从接口295。类似地,从设备201包括用于P2P链路206的从接口211。
给定节点的最终面向主机ID由此是该给定节点的节点ID和该给定节点与主机设备之间的所有居间节点的节点ID的级联。例如,从接口295的面向主机ID是其节点ID与主接口280、从接口245、以及主接口210的节点ID的级联。为简洁起见,使用十六进制形式来示出图2中每个主接口或从接口的节点ID。从接口295的节点ID由此被表示为0X00。从接口295的面向主机ID由此是0X00与0X80(主接口28的节点ID)以及与0X00(从接口245的节点ID)以及与0X80(主接口280的节点ID)的级联。
要注意,第一跳从设备265与第一跳从设备250类似,因为第一跳从设备265包括分别用于对应的P2P链路226和241的两个主接口231和236。第一跳从设备265还包括用于至主机设备205的P2P链路240的从接口270。由于第一跳从设备265耦合到两个附加的从设备,第一跳从设备265由此将包括节点聚集器(未解说)(诸如关于节点聚集器202所讨论的)以用于向P2P链路226指派链路-0ID并向P2P链路241指派链路-1ID。P2P链路226耦合到从设备246中的从接口251。类似地,P2P链路241耦合到从设备256中的从接口261。对P2P链路226的链路ID指派由此从第一跳设备265被传达给从接口251。类似地,对P2P链路241的链路ID指派被传达给从接口261。
P2P链路226和241具有与用于耦合到第一跳从设备250的P2P链路275和206相同的链路ID。但是链路ID的这种交叠无关紧要,由于向P2P链路225和240指派的不同链路ID,因此保证所得到的向各个节点指派面向主机ID是唯一的。从设备246和290两者都是“端点”从设备,因为这些从设备不充当附加下游从设备的主设备。第一跳主接口280和231的节点ID以及第一跳从设备255中的第一跳主接口216的节点ID各自是0x80,而第一跳主接口282和236的节点ID是0x81。从接口295的节点ID与主接口280的节点ID的级联以及从接口251的节点ID与主接口231的节点ID的级联两者由此都是0x00,0x80。类似地,从接口211的节点ID与主接口282的节点ID的级联以及从接口261的节点ID与主接口236的节点ID的级联两者由此都是0x01,0x81。
但是这种相同的部分级联结果在进一步级联之际将变得唯一。例如,要注意,第一跳从设备250通过链路-0ID耦合到主机设备205,而第一跳从设备265通过链路-2ID耦合到主机设备205。尽管部分级联相同,但从接口295和251的最终面向主机节点ID由此将不同。具体而言,端点从设备290中从接口295的面向主机节点ID是0x00,0x80,0x00,0x80。相比之下,端点从设备246中从接口251的面向主机节点ID是0x00,0x80,0x02,0x82。类似地,从设备201中从接口211的面向主机节点ID是0X01,0X81,0X00,0X80,而从设备256中从接口261的面向主机节点ID是0X01,0X81,0X02,0X82。以此方式,所有节点(不管该节点是主接口还是从接口)最终具有唯一的面向主机节点ID。要注意,从设备256与多个I/O终端266对接。
第一跳从设备255通过第一跳主接口216在P2P链路221上耦合到主从设备271中具有节点ID 0X00的从接口276。进而,主从设备271包括具有节点ID 0X80的主接口281,该主接口281通过P2P链路289耦合到端点从设备286中具有节点ID 0X00的从接口291。给定P2P链路的物理拓扑可以不同。例如,每个P2P链路可包括2导线或者3导线虚拟GPIO链路。替换地,P2P链路可包括诸如针对P2P链路221所解说的电缆。
尽管所得到的面向主机节点ID都是唯一的,但要注意,它们相对较长并且由此关于涉及此类相对冗长地址的信令将涉及某种等待时间。主机设备205(或者某种其他适当的状态机)中的节点聚集器202由此可向每个从设备重新指派位优化地址。面向主机节点ID由此还可被指定为“中间”地址,因为它们可用对应的位优化地址来替代。再次参照系统200,将存在九个分开的从设备,它们将具有通过上面讨论的级联过程来确定的对应中间地址。由于存在九个此类中间地址,因此替代地可使用至少四位宽(或更宽的)位优化地址来标识各个从设备。所得到的位优化地址指派是相当有利的,因为不需要预定的地址以使得熔丝或I/O引导不是必要的。另外,位优化地址指派导致主机设备205与其从设备之间的低等待时间信令。
在向从设备中的每个节点(主接口或从接口)指派面向主机节点ID之后,主机设备中的节点聚集器202随后可以行进至使用其面向主机节点ID来寻址各节点,以使得可向每个节点指派更加位优化的地址。图1B的主机IC 101中的处理器102可被编程为用作节点聚集器202。替换地,节点聚集器202可包括专用的状态机。关于通过从设备中的节点将消息路由到各节点中被寻址的节点,节点聚集器202发送包括被寻址节点的面向主机节点ID的消息。该消息将从主机设备205通过其主接口(例如,主接口210、215、220中的一者)被传送,这些主接口通过居间节点最终耦合到被寻址节点。例如,如果主机设备205正在寻址从接口291,则对应消息通过主接口215被传送。从接口291的面向主机节点ID是0X00,0X80,0X00,0X80,0X01,0X81。该面向主机节点ID可被附连作为旨在用于从接口291的消息的报头。包括主接口215的每个居间节点被配置成:将其节点ID从接收到的面向主机节点ID中去除以形成部分面向主机节点ID,该部分面向主机节点ID随后被传送给下一下游节点。例如,主接口从面向主机节点ID中去除其节点ID 0X81以形成第一部分面向节点ID,该第一部分面向节点ID保持作为用于传送给第一跳从设备255中的从接口260的消息的报头(或者在某个其他预定义位置)。从接口260接收到的报头由此是0X00,0X80,0X00,0X80,0X01。从接口260从该报头中去除其节点ID以形成第二部分面向节点ID 0X00,0X80,0X00,0X80,该第二部分面向节点ID作为消息的新报头被传送给第一跳从设备255中的主接口216。主接口216随后从该报头中去除其节点ID以形成第三部分面向节点ID 0X00,0X80,0X00,该第三部分面向节点ID作为消息的新报头被传送给第二跳从设备271中的从接口276。从接口276从该报头中去除其节点ID以形成第四部分面向节点ID 0X00,0X80,该第四部分面向节点ID作为消息的新报头被传送给第二跳从设备271中的主接口281。主接口278随后从该报头中去除其节点ID以形成仅0X00的新报头,该新报头是被寻址节点(从接口291)的节点ID。主接口278随后将具有报头0X00的消息传送给从接口291。从接口291随后可以检查接收到的报头,以检测该报头就是与它自己的节点ID匹配的单个节点ID。从接口291由此可以确定对应的消息旨在用于从接口291以使得可以采取恰适的动作。例如,该消息可以是用于使从接口291用来自节点聚集器202的位优化地址来替代其节点ID的命令。另外,该消息可包括规则,诸如用于通过从节点来路由位优化地址的路由表。
类似于关于图2所讨论的来执行对图1A的网络100中节点ID的指派。由于网络100中的每个设备通过不多于一个P2P链路耦合到下游设备,P2P链路140和145可保留其默认链路ID,诸如[00 00 00 0]。将要领会,在替换的实施例中可使用少于7位(或者大于7位)的链路ID。就此而言,在网络100中可使用一位的默认链路ID,诸如[0]。给定这种一位的默认链路ID,端点从设备115中的从接口120可将其作为从接口的状态(诸如由[0]指定)级联到P2P链路145的默认链路ID[0]以形成节点ID[00]。第一跳从设备110中的主接口125随后可将其节点ID[01]级联到节点ID[00]以形成第一部分级联结果[0001]。进而,第一跳从设备110中的从接口130将其节点ID[00]级联到第一部分级联结果以形成第二部分级联结果[000100]。主接口135随后可将其节点ID[01]级联到第二部分级联结果以形成从接口120的面向主机节点ID[00010001],尽管由于主机设备105中仅存在一个主接口135以上不是必要的。类似地,主接口125的面向主机节点ID是[010001],而从接口130的面向主机节点是[0001]。类似于节点聚集器202的节点聚集器(未解说)随后可向从接口130、主接口125、以及从接口120指派位优化地址。由于存在三个此类节点,两位宽的位优化地址将唯一地标识网络100中的这些节点。
现在将关于图3的流程图来讨论一种地址指派的示例方法。该方法包括相对于一种系统来执行的动作300,该系统包括多个第一从设备,该多个第一从设备通过各自具有唯一链路ID的对应多个第一P2P链路耦合到主机设备,每个第一从设备包括耦合到对应第一P2P链路的从接口。动作300包括:从每个从接口向主机设备传送节点ID,该节点ID等于从状态位和对应的第一P2P链路的唯一链路ID的级联。系统200中的第一跳从设备250、255和265各自是第一从设备的示例。在已向所有的下游节点指派了面向主机节点ID之后,第一跳从设备250、255和265中的从接口将它们的节点ID发送给主机设备205中的对应主接口。
该方法还包括动作305:对节点ID的数目进行计数以确定唯一地标识每个从接口所需要的最小位数。由主机设备205中的节点聚集器202进行的计数是动作305的示例。最小位数随后等于log2(计数)的整数值,其中该计数是节点ID的数目。在替换的实施例中,位优化地址可包括比log2(计数)的整数值更多的位。
该方法还包括动作310:寻址每个从接口,其中用包括该从接口的节点ID的第一消息来寻址该从接口,以向该从接口指派至少最小位数宽的位优化地址。由主机设备205的节点聚集器202向第一跳从设备指派位优化地址是动作310的示例。
最后,该方法包括动作315:寻址每个从接口,其中用包括该从接口的位优化地址的第二消息来寻址该从接口以枚举该从接口。例如,每个第一跳从设备的从接口可将其状态标识为2导线或3导线虚拟GPIO接口,作为虚拟GPIO实现中动作310中的枚举的一部分。枚举的其他示例包括为从设备的从接口和主接口中的VGI接口指派帧长度。另外,枚举可以为每个VGI接口指派纠错算法以及流控制技术。
笛卡尔地址指派
向每个节点指派位优化地址可专用于辅助通过节点对消息进行路由。此类从设备到从设备通信一般将涉及存储在每个从设备中的路由表的用户。现在将讨论为从设备中的节点指派“笛卡尔”地址,该“笛卡尔”地址不是位优化的而是以相对于所得到的被指派地址的位效率稍微减小为代价而得到通过从设备的极大简化的路由。通过简单的地址比较,每个从设备节点可路由从另一从设备(或者从主机设备)接收到的分组,以使得总是到达恰适的目的地。
如由名称“笛卡尔”所暗示的,笛卡尔地址指派中的每个地址包括两个排序的地址(即,两个数字)。然而,将领会,在替换的实施例中,笛卡尔寻址可以基于N维空间中的N个坐标,其中N是大于2的整数。以下讨论由此将不失一般性地涉及2维笛卡尔寻址实现。每个地址对中的第一地址在本文中被标示为X地址,而每个地址对中剩余的第二地址被标示为Y地址。每个笛卡尔地址对由此包括(X,Y)地址对。笛卡尔寻址开始于某个根地址,诸如主机设备自身的(0,0)。Y地址指示从主机设备的跳数。例如,具有Y地址1的从设备具有至主机的直接P2P链路。由于这些从设备直接耦合到主机设备,它们还可被标示为“级1”从设备。类似地,具有Y地址2的从设备通过经级1从设备的连接而距离从设备一跳。具有Y地址2的这些从设备由此可被标示为“级2”从设备。Y地址的附加递增对应于从主机设备的附加跳跃:级3从设备具有Y地址3,级4从设备具有Y地址4,依此类推。
X地址涉及从设备在给定群集中的位置。如本文所使用的,从设备的“群集”是通过相同的级1从设备间接地耦合到主机设备的所有那些从设备。图4中示出了网络400的群集的示例组织。从设备的第一群集(群集-1)都直接或间接地耦合到第一级1从设备405。如本文所使用的,如果从设备距离另一设备一跳或多跳,则该从设备被称为间接地耦合到该另一设备。例如,级3从设备410距离级1从设备405一跳,因为级3从设备410通过P2P链路直接耦合到级2从设备415,该级2从设备415进而通过对应的P2P链路直接地耦合到级1从设备405。
关于X地址的指派,可向第一级1从设备(诸如设备405)给予X地址1(或某个其它起始整数)。相同的起始X地址随后被给予直接或间接地耦合到从设备405的所有从设备直至达到某一Y级,其中从设备耦合到后续Y级中的一个以上从设备。在网络400中,级2从设备415充当级3从设备410以及另一级3从设备420的主设备。从设备410由此可被给予与用于级2从设备415相同的起始X地址,但是级3从设备420需要更高的X地址,诸如起始地址加1(在该情形中为2)。级3从设备410的笛卡尔地址由此是(1,3),而对于级3从设备420是(2,3)。级3从设备420进而充当第一级4从设备425以及第二级4从设备430的主设备。从设备425由此可具有笛卡尔地址(2,4),而从设备430可具有笛卡尔地址(3,4)。没有从从设备425和430的进一步跳跃。
群集1具有另一级2从设备435,该级2从设备435具有至级1从设备405的直接P2P链路。该从设备的X地址从群集中最高的现有X地址(对于级4从设备430是3)递增。由此可向级2从设备435指派X地址4。级2从设备435的笛卡尔地址由此是(4,2)。可向直接耦合的级3从设备440和间接耦合的级4从设备445给予相同的X地址4。级3从设备440还充当另一级4从设备455的主设备,因此该从设备具有从从设备440递增的X地址(即,X地址5)。另一级3从设备450通过对应的P2P链路耦合到级2从设备435。从设备450的X地址由此针对群集中最大的现有X地址递增1,以使得从设备450的X地址可以等于6(针对从设备455的X地址5递增1)。
一旦已向群集1中的所有从设备指派了笛卡尔地址,就可从级1从设备460开始寻址第二群集(群集2)。级1从设备460的X地址从前一群集中的最大X地址递增。由此,从设备460的X地址可等于7(针对群集1的最大X地址递增一)。两个附加从设备465和470也可具有与从设备460相同的X地址,但具有与其相应级别相对应的经递增的Y地址。最后的从设备475具有经递增的X地址,因为从设备475和从设备470两者都直接耦合到从设备465。
与关于图1A和2所讨论的节点ID形成对比,笛卡尔地址是对应从设备的地址。主机设备向从设备指派笛卡尔地址。另外,每个从设备标识其面向主机的端口。在图1A和2的网络中该面向主机的端口被标示为从接口。例如,从设备420上的端口421是其面向主机的端口。另外,主机设备向给定群集中的每个从设备通知其群集的最小和最大X尺度。由于每个从设备知道这些基本事实(其群集的最小和最大地址以及其面向主机的端口和其笛卡尔地址),因此所得到的路由变得非常稳健而易于实现。例如,假设群集1中的级3从设备450具有给也在群集1中的级4从设备430的消息。由于没有从从设备450的进一步跳跃,因此从设备450默认将通过其面向从设备(slave facing)的端口来路由该消息,该面向从设备的端口通过对应的P2P链路耦合到级3从设备440。级3从设备430的笛卡尔地址是(3,4),而从设备440的X地址是(4,3)。由于来自任何给定从设备的上游分支绝不会引起X地址的减小,因此从设备440将接收到的针对笛卡尔地址(3,4)的消息通过其面向主机的端口路由到级2从设备435。级2从设备435将得到相同的路由结论,因为其X地址4大于正被路由的针对笛卡尔地址(3,4)的X地址3。由此,针对笛卡尔地址(3,4)的消息将被路由到级1从设备405。只要被路由消息的X地址大于或等于路由方从设备的X地址,该路由方从设备就将该消息向上游路由(至较高级),相比于通过其面向主机的端口向下游发送该消息。可在处理器(诸如处理器102)或有限状态机中执行该路由的逻辑。每个从设备可包括VGI接口以用于驱动其面向主机的端口。耦合到高级从设备的那些从设备还包括另一VGI接口以用于驱动其面向从设备的端口。
笛卡尔地址的指派可遵循图4中由每个从设备内写入的整数所指示的顺序。级1从设备405首先被指派,因此其由整数1指定。一旦向给定从设备(诸如级1从设备405)指派了其笛卡尔地址,接着向通过该给定从设备耦合并具有相同X地址的下一从设备指派其笛卡尔地址。级2从设备415具有相同的X地址但是在级2上,因此它是被指派笛卡尔地址的第二个从设备。类似地,级3从设备410具有相同的X地址但是在级3上,因此它是被指派笛卡尔地址的第三个从设备。其遵循指派顺序由此使得级3从设备420是第四个来接收笛卡尔地址指派,级4从设备425是第五个,级4从设备430是第六个,级2从设备435是第七个,级3从设备440是第八个,级4从设备445是第九个,级4从设备455是第十个,级3从设备450是第十一个,级1从设备460是第十二个,级2从设备465是第十三个,级3从设备470是第十四个,并且级3从设备475是第十五个。
级1从设备随后可以将接收到的消息路由到主机设备或者其群集内的上游。通过X地址是否在对应群集的边界内来确定级1从设备的该上游或下游决定。关于群集1,其从X=1延伸到X=6。由此,如果级1从设备405接收到具有7或更大的X坐标的消息,该级1从设备405将该消息向下游路由到主机设备,以使得主机设备可基于X坐标来将该消息路由到恰适的群集。在前一示例中,在级1从设备405处接收到的消息的X坐标是3,以使得级1从设备405将接收到的消息路由到级2从设备415。要注意,级2从设备415针对其上游路由具有两种可能的选择,因为它能够路由到级3从设备410或路由到级3从设备420。该规则由此使得上游路由被引导到具有小于或等于目的地笛卡尔地址的最大X地址的从设备。给定该规则,从设备415由此将消息路由到从设备420。从设备420也具有选择,但在该路由规则下将路由到级4从设备430。在接收到消息之际,每个从设备检查以查看该目的地笛卡尔地址是否与其自身的地址匹配。对于从设备430,将存在匹配,以使得即使任何从设备中缺少路由表,预期的从设备也将接收到其消息。
图5是为一系统指派唯一笛卡尔地址的示例方法的流程图,该系统包括第一从设备,该第一从设备通过第一点对点(P2P)链路耦合到主机设备,该系统还包括多个第二从设备,该多个第二从设备通过该第一从设备耦合到主机设备。该方法包括动作500:向第一从设备指派笛卡尔地址,该笛卡尔地址包括第一X地址和第一Y地址。图4中向第一跳从设备405指派笛卡尔地址(1,1)是第一从设备的示例。
该方法还包括通过以下操作向第二从设备中的每一者指派笛卡尔地址的动作505:向每个第二从设备指派Y地址,该Y地址取决于该第二从设备通过其耦合到第一从设备的居间第二从设备的数目而从第一Y地址递增,居间第二从设备的数目对于每个第二从设备是零或更大;以及向每个第二从设备指派X地址,该X地址取决于第二从设备中的其他第二从设备是否与被指派X地址的第二从设备共享相同的Y地址而从第一X地址递增。图4中向从设备415、410、425和430指派X和Y地址是动作505的示例。要注意,从设备420和430的X地址被递增,因为这些从设备中的每一者在其级别是第二从设备。类似地,这些从设备中的给定从设备的Y地址取决于在该给定从设备与第一跳从设备405之间有多少从设备介入而从第一跳从设备405的根Y地址递增。例如,从设备430通过从设备420和415耦合到第一跳从设备405。由此从设备430与第一跳从设备405距离3个从设备(自身计算在内)。从设备430的Y地址由此是第一跳从设备405的根Y地址,以使得从设备430的Y地址是3+1=4。
最后,该方法包括动作510:通过寻址每个第二从设备来枚举各第二从设备,其中用该第二从设备的笛卡尔地址对其进行寻址。图4中对从设备的枚举可如关于图2和3所讨论地进行,不同之处在于位优化寻址由笛卡尔寻址来替代。
如本领域普通技术人员至此将领会的并取决于手头的具体应用,可以在本公开的设备的材料、装置、配置和使用方法上做出许多修改、替换和变动而不会脱离本公开的范围。有鉴于此,本公开的范围不应当被限定于本文所解说和描述的特定实施例(因为其仅是作为本公开的一些示例),而应当与所附权利要求及其功能等同方案完全相当。
Claims (28)
1.一种主机设备,包括:
多个主接口,所述多个主接口对应于多个点对点(P2P)链路以用于耦合到对应的多个第一从设备,其中,每个第一从设备包括从接口以用于通过对应的P2P链路耦合到所述主机设备上的对应主接口;以及
节点聚集器,其被配置成:在发起针对所述多个第一从设备的枚举过程之际,向每个P2P链路指派唯一链路ID,所述节点聚集器被进一步配置成:从每个第一从设备的从接口接收唯一经级联地址,所述唯一经级联地址包括对应P2P链路的所述唯一链路ID,并且其中,所述节点聚集器被进一步配置成:通过对应主接口来寻址每个第一从设备,其中用包括该第一从设备的所述唯一经级联地址的消息通过对应主接口来寻址该第一从设备,所述消息包括要指派给该第一从设备的位优化地址,用于每个从设备的所述位优化地址短于用于每个第一从设备的所述唯一经级联地址。
2.如权利要求1所述的主机设备,其特征在于,所述节点聚集器被进一步配置成:标识每个唯一经级联地址对应于所述从接口还是对应于对应第一从设备中的主接口。
3.如权利要求1所述的主机设备,其特征在于,所述节点聚集器包括处理器。
4.如权利要求1所述的主机设备,其特征在于,所述节点聚集器包括状态机。
5.如权利要求3所述的主机设备,其特征在于,每个主接口包括:
有限状态机,其被配置成:将对应的GPIO信号传送集串行化成虚拟GPIO信号的至少一个第一帧;以及
通用异步接收机/发射机(UART)接口,其被配置成:响应于过采样时钟的循环,通过UART传送引脚来传送所述至少一个第一帧,其中,所述处理器被进一步配置成:向每个第一从设备的从接口指派帧长度,其中通过使用该第一从设备的位优化地址与该第一从设备进行通信来向该第一从设备的从接口指派帧长度,并且其中,每个有限状态机被进一步配置成:根据所指派的帧长度将对应的GPIO信号传送集串行化成虚拟GPIO信号的至少一帧。
6.如权利要求3所述的主机设备,其特征在于,所述第一从设备中的至少一些第一从设备各自包括主接口,该主接口通过附加P2P链路耦合到来自多个第二从设备中的对应第二从设备中的从接口,每个附加P2P链路具有链路ID,并且其中,所述节点聚集器被进一步配置成:从所述第二从设备中的从接口接收第二经级联节点ID,所述第二经级联节点ID等于各节点ID的级联。
7.如权利要求5所述的主机设备,其特征在于,所述有限状态机包括多个消息接发寄存器,并且其中,所述处理器被配置成:向所述消息接发寄存器写入多个消息接发信号,并且其中,所述有限状态机被进一步配置成:将来自所述消息接发寄存器的消息接发信号串行化成至少一个第二帧,并且其中,所述UART接口被进一步配置成:响应于所述过采样时钟的循环,通过所述UART传送引脚来传送所述至少一个第二帧。
8.一种方法,包括:
对于包括多个第一从设备的系统,所述多个第一从设备通过各自具有唯一链路ID的对应多个第一点对点(P2P)链路耦合到主机设备,每个第一从设备包括耦合到对应第一P2P链路的从接口,从每个从接口向所述主机设备传送节点ID,所述节点ID等于从状态位和对应第一P2P链路的所述唯一链路ID的级联;
对节点ID的数目进行计数以确定唯一地标识每个从接口所需要的最小位数;
寻址每个从接口,其中用包括该从接口的节点ID的第一消息来寻址该从接口,以向该从接口指派位优化地址,所述位优化地址是至少所述最小位数宽;以及
寻址每个从接口,其中用包括该从接口的位优化地址的第二消息来寻址该从接口以枚举该从接口。
9.如权利要求8所述的方法,其特征在于,所述系统包括第二从设备,所述第二从设备具有从接口,该从接口通过第二P2P链路耦合到所述第一从设备中的居间第一从设备中的主接口,所述方法进一步包括:在所述主机设备处从所述第二从设备中的从接口接收经级联地址,所述经级联地址等于所述第二从设备中的从接口的节点ID、所述第一从设备中的所述居间第一从设备中的主接口的节点ID、以及所述第一从设备中的所述居间第一从设备中的从接口的节点ID的级联。
10.如权利要求9所述的方法,其特征在于,进一步包括:从所述主机设备用包括所述经级联地址的第三消息来寻址所述第二从设备中的从接口,以向所述第二从设备中的从接口指派位优化地址。
11.如权利要求10所述的方法,其特征在于,寻址所述第二从设备中的从接口包括:通过所述第一从设备中的所述居间第一从设备中的从接口和主接口向所述第二从设备中的从接口传送所述第三消息。
12.如权利要求8所述的方法,其特征在于,枚举每个从接口包括:为每个从接口指派虚拟GPIO帧长度。
13.如权利要求8所述的方法,其特征在于,枚举每个从接口包括:向每个从接口指派流控制技术。
14.如权利要求8所述的方法,其特征在于,枚举每个从接口包括:向每个从接口指派纠错技术。
15.如权利要求8所述的方法,其特征在于,每个位优化地址是2的幂的位宽。
16.一种主机设备,包括:
多个主接口,所述多个主接口对应于多个点对点(P2P)链路以用于耦合到对应多个从设备中的每个从设备中的从接口;以及
节点聚集器,其被配置成:在发起枚举过程之际,向每个P2P链路指派唯一链路ID,所述节点聚集器被进一步配置成:从每个从接口接收唯一经级联地址,所述唯一经级联地址包括对应P2P链路的所述唯一链路ID,
并且其中,所述节点聚集器被进一步配置成:寻址每个从接口,其中用包括该从接口的经级联地址的消息来寻址该从接口,以向每个从设备重新指派笛卡尔地址,每个笛卡尔地址包括X地址和Y地址,其中,所述Y地址用于每个从设备并基于使该从设备耦合到所述主机设备所需要的通过任何居间从设备的跳跃数。
17.如权利要求16所述的主机设备,其特征在于,所述从设备被布置成各列,并且其中,每个从设备的X地址标识包括所述从设备的列。
18.如权利要求16所述的主机设备,其特征在于,每个节点聚集器包括处理器。
19.如权利要求16所述的主机设备,其特征在于,每个节点聚集器包括状态机。
20.如权利要求16所述的主机设备,其特征在于,每个主接口包括:
有限状态机,其被配置成:将对应的GPIO信号传送集串行化成虚拟GPIO信号的至少一个第一帧;以及
通用异步接收机/发射机(UART)接口,其被配置成:响应于过采样时钟的循环,通过UART传送引脚来传送所述至少一个第一帧,其中,所述处理器被进一步配置成:向每个第一从设备的从接口指派帧长度,其中通过使用该第一从设备的笛卡尔地址与该第一从设备进行通信来向该第一从设备的从接口指派帧长度,并且其中,每个有限状态机被进一步配置成:根据所指派的帧长度将对应的GPIO信号传送集串行化成虚拟GPIO信号的至少一帧。
21.如权利要求20所述的主机设备,其特征在于,每个有限状态机包括多个消息接发寄存器,并且其中,所述处理器被配置成:向所述消息接发寄存器写入多个消息接发信号,并且其中,所述有限状态机被进一步配置成:将来自所述消息接发寄存器的消息接发信号串行化成至少一个第二帧,并且其中,所述UART接口被进一步配置成:响应于所述过采样时钟的循环,通过所述UART传送引脚来传送所述至少一个第二帧。
22.如权利要求18所述的主机设备,其特征在于,所述处理器被配置成:通过寻址每个从设备来枚举每个从设备,其中使用该从设备的笛卡尔地址寻址该从设备,以向该从设备指派虚拟的GPIO帧长度。
23.如权利要求18所述的主机设备,其特征在于,所述处理器被配置成:通过寻址每个从设备来枚举每个从设备,其中使用该从设备的笛卡尔地址寻址该从设备,以向每个从接口指派流控制技术。
24.如权利要求18所述的主机设备,其特征在于,所述处理器被配置成:通过寻址每个从设备来枚举每个从设备,其中使用该从设备的笛卡尔地址寻址该从设备,以向每个从接口指派纠错技术。
25.一种方法,包括:
对于包括第一从设备的系统,所述第一从设备通过第一点对点(P2P)链路耦合到主机设备,所述系统进一步包括多个第二从设备,所述多个第二从设备通过所述第一从设备耦合到所述主机设备,向所述第一从设备指派笛卡尔地址,所述笛卡尔地址包括第一X地址和第一Y地址;
通过以下操作向所述第二从设备中的每个第二从设备指派笛卡尔地址:向每个第二从设备指派Y地址,所述Y地址取决于第二从设备中的居间第二从设备的数目而从所述第一Y地址递增,该第二从设备耦合通过所述居间第二从设备以耦合到所述第一从设备,第二从设备中的所述居间第二从设备的数目对于每个第二从设备是零或更大,以及向每个第二从设备指派X地址,所述X地址取决于第二从设备中的其他第二从设备是否与被指派所述X地址的第二从设备共享相同的Y地址而递增;以及
通过寻址每个第二从设备来枚举各第二从设备,其中用该第二从设备的笛卡尔地址寻址该第二从设备。
26.如权利要求25所述的方法,其特征在于,进一步包括:基于所述第二从设备中的第二第二从设备的笛卡尔地址,将消息从第二从设备中的第一第二从设备路由到所述第二从设备中的所述第二第二从设备。
27.如权利要求25所述的方法,其特征在于,每个第二从设备包括虚拟通用输入输出(GPIO)接口,其中,枚举每个第二从设备包括:向所述第二从设备指派虚拟GPIO帧长度。
28.如权利要求25所述的方法,其特征在于,进一步包括:向通过P2P链路耦合到所述主机设备的第三从设备指派笛卡尔地址,其中,所述第三从设备的笛卡尔地址包括比所述第二从设备的任何X地址大的经递增的X地址并且包括所述第一Y地址。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562137687P | 2015-03-24 | 2015-03-24 | |
US62/137,687 | 2015-03-24 | ||
US201562208312P | 2015-08-21 | 2015-08-21 | |
US62/208,312 | 2015-08-21 | ||
US15/077,841 US9979782B2 (en) | 2015-03-24 | 2016-03-22 | Low-power and low-latency device enumeration with cartesian addressing |
US15/077,841 | 2016-03-22 | ||
PCT/US2016/023826 WO2016154347A1 (en) | 2015-03-24 | 2016-03-23 | Low-power and low-latency device enumeration with cartesian addressing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107430577A true CN107430577A (zh) | 2017-12-01 |
CN107430577B CN107430577B (zh) | 2020-04-24 |
Family
ID=56976690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680016955.3A Expired - Fee Related CN107430577B (zh) | 2015-03-24 | 2016-03-23 | 利用笛卡尔寻址的低功率和低等待时间设备枚举 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9979782B2 (zh) |
EP (2) | EP3690665A1 (zh) |
JP (1) | JP2018509715A (zh) |
KR (1) | KR20170129150A (zh) |
CN (1) | CN107430577B (zh) |
WO (1) | WO2016154347A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9979782B2 (en) | 2015-03-24 | 2018-05-22 | Qualcomm Incorporated | Low-power and low-latency device enumeration with cartesian addressing |
US10459868B1 (en) * | 2016-09-20 | 2019-10-29 | Marvell International Ltd. | Modular chip expansion bridge and corresponding methods |
US20180357076A1 (en) * | 2017-06-12 | 2018-12-13 | Qualcomm Incorporated | Method to establish operating configuration in a vgmi interface |
US10496562B1 (en) * | 2018-08-13 | 2019-12-03 | Qualcomm Incorporated | Low latency virtual general purpose input/output over I3C |
CN110247997B (zh) * | 2019-06-26 | 2020-12-15 | 三维通信股份有限公司 | Das系统中ip地址分配和拓扑管理的方法、装置和存储介质 |
CN111552658B (zh) * | 2020-04-17 | 2022-05-06 | 北京中科银河芯科技有限公司 | 一种通信方法、通信控制装置及i2c总线系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216631A1 (en) * | 2004-03-24 | 2005-09-29 | Analog Devices, Inc. | Serial digital communication system and method |
CN101261614A (zh) * | 2007-01-29 | 2008-09-10 | 美高森美股份有限公司-模拟混合信号集团有限公司 | 可寻址串行外围接口 |
CN101432674A (zh) * | 2006-04-25 | 2009-05-13 | 德克萨斯仪器股份有限公司 | 内置集成电路寻址的方法及用于执行该方法的装置 |
WO2011053295A1 (en) * | 2009-10-29 | 2011-05-05 | Precision Microdynamics, Inc. | Network control architecture and protocol for a distributed control, data acquisition and data distribution system and process |
JP2011248564A (ja) * | 2010-05-26 | 2011-12-08 | Seiko Epson Corp | 中継装置およびプロセッサーシステム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675811A (en) * | 1995-08-18 | 1997-10-07 | General Magic, Inc. | Method for transmitting information over an intelligent low power serial bus |
US6363077B1 (en) | 1998-02-13 | 2002-03-26 | Broadcom Corporation | Load balancing in link aggregation and trunking |
US6363520B1 (en) | 1998-06-16 | 2002-03-26 | Logicvision, Inc. | Method for testability analysis and test point insertion at the RT-level of a hardware development language (HDL) specification |
US7051078B1 (en) | 2000-07-10 | 2006-05-23 | Cisco Technology, Inc. | Hierarchical associative memory-based classification system |
US7245623B1 (en) | 2002-01-08 | 2007-07-17 | Cisco Technology, Inc. | System and method using hierarchical parallel banks of associative memories |
US7660998B2 (en) | 2002-12-02 | 2010-02-09 | Silverbrook Research Pty Ltd | Relatively unique ID in integrated circuit |
US7457257B2 (en) * | 2005-11-17 | 2008-11-25 | International Business Machines Corporation | Apparatus, system, and method for reliable, fast, and scalable multicast message delivery in service overlay networks |
US8832238B2 (en) * | 2011-09-12 | 2014-09-09 | Microsoft Corporation | Recording stateless IP addresses |
US9979782B2 (en) | 2015-03-24 | 2018-05-22 | Qualcomm Incorporated | Low-power and low-latency device enumeration with cartesian addressing |
-
2016
- 2016-03-22 US US15/077,841 patent/US9979782B2/en active Active
- 2016-03-23 JP JP2017548409A patent/JP2018509715A/ja active Pending
- 2016-03-23 EP EP20164699.9A patent/EP3690665A1/en not_active Withdrawn
- 2016-03-23 CN CN201680016955.3A patent/CN107430577B/zh not_active Expired - Fee Related
- 2016-03-23 WO PCT/US2016/023826 patent/WO2016154347A1/en active Application Filing
- 2016-03-23 KR KR1020177026434A patent/KR20170129150A/ko unknown
- 2016-03-23 EP EP16713271.1A patent/EP3274856B1/en active Active
-
2018
- 2018-04-18 US US15/956,708 patent/US10924541B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216631A1 (en) * | 2004-03-24 | 2005-09-29 | Analog Devices, Inc. | Serial digital communication system and method |
CN101432674A (zh) * | 2006-04-25 | 2009-05-13 | 德克萨斯仪器股份有限公司 | 内置集成电路寻址的方法及用于执行该方法的装置 |
CN101261614A (zh) * | 2007-01-29 | 2008-09-10 | 美高森美股份有限公司-模拟混合信号集团有限公司 | 可寻址串行外围接口 |
WO2011053295A1 (en) * | 2009-10-29 | 2011-05-05 | Precision Microdynamics, Inc. | Network control architecture and protocol for a distributed control, data acquisition and data distribution system and process |
JP2011248564A (ja) * | 2010-05-26 | 2011-12-08 | Seiko Epson Corp | 中継装置およびプロセッサーシステム |
Also Published As
Publication number | Publication date |
---|---|
US20160285968A1 (en) | 2016-09-29 |
CN107430577B (zh) | 2020-04-24 |
WO2016154347A1 (en) | 2016-09-29 |
KR20170129150A (ko) | 2017-11-24 |
EP3274856A1 (en) | 2018-01-31 |
US9979782B2 (en) | 2018-05-22 |
EP3274856B1 (en) | 2020-06-17 |
US20180241816A1 (en) | 2018-08-23 |
JP2018509715A (ja) | 2018-04-05 |
EP3690665A1 (en) | 2020-08-05 |
US10924541B2 (en) | 2021-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107430577A (zh) | 利用笛卡尔寻址的低功率和低等待时间设备枚举 | |
CN208985152U (zh) | 通信系统 | |
CN103023824B (zh) | 基于周边组件接口快速通道PCIe的数据传输系统及方法 | |
CN105302484B (zh) | 批量读取以太网卡光模块中数字诊断信息的装置及方法 | |
CN102799509B (zh) | 基于双fpga芯片的高带宽可扩展复杂逻辑验证系统 | |
CN110489365A (zh) | 交换设备、外围部件互连高速系统及其初始化方法 | |
CN102868584B (zh) | 一种采用串行通信接口的同步时分多路复用总线通信方法 | |
KR20150024350A (ko) | 링 토폴로지 스테이터스 인디케이션 | |
CN104881382A (zh) | 一种主从设备连接装置及其地址识别方法 | |
CN105260260A (zh) | 具有数据校验功能的spi数据传输设备及数据校验方法 | |
CN104919763A (zh) | 通信装置、具有通信装置的路由器、总线系统以及具有总线系统的半导体电路的电路基板 | |
CN104899170A (zh) | 分布式智能平台管理总线ipmb连接方法及atca机框 | |
CN105786639A (zh) | 一种i2c总线数据的传输方法及系统 | |
CN105786734B (zh) | 数据传输的方法、扩展装置、外围设备及系统 | |
CN105446930A (zh) | 一种单选择端spi主从式多机双向通信方法 | |
CN109902056A (zh) | 一种串行传输的方法、装置、设备及计算机可读存储介质 | |
CN104410527A (zh) | 一种拓扑检测方法、交换机及热堆叠系统 | |
CN109150645B (zh) | 一种交换芯片的测试方法及系统 | |
US20090077344A1 (en) | Method for bus testing and addressing in mass memory components | |
CN105138485A (zh) | 一种串行总线地址管理装置 | |
JP2010166248A (ja) | 通信システム | |
CN106209307A (zh) | 多颗fpga片间互联方法与系统 | |
CN102790652A (zh) | 数据通信系统及方法 | |
CN105489160B (zh) | 一种led显示屏的数据传输装置、数据传输方法及系统 | |
US20180322084A1 (en) | Communication apparatus, communication method, program, and communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200424 Termination date: 20210323 |