本申请要求于2017年7月14日提交的标题为“HYBRID POWER ARRANGEMENTS INCOMMUNICATION SYSTEMS”的美国临时专利申请No.62/532,658的优先权。该优先权申请的全部内容通过引用并入本文。
具体实施方式
本文公开了用于使用本地电源和从通信总线导出的功率的自适应组合对通信系统中的从设备供电的系统和技术。在一些以前的系统中,从设备可以被配置为仅由专用本地电源(例如,电池、电压调节器或其他电源)供电,或者配置成仅通过从通信总线的上游部分上的偏置电压提取的电力供电(例如通过经由低通滤波器(LPF)网络对来自该上游部分的电压进行滤波)。在一些这样的先前系统中,如果本地供电从设备的电源中断或失效(例如由于碰撞或其他影响、电力调节器故障、电气故障、其他机械损坏、部件故障等),本地供电的从设备将不再能够通过通信总线进行通信(例如,从设备将不再响应设备的上游或下游),并且本地供电从设备下游的任何从设备也将被切断通信。
本文公开的各种系统和技术允许本地电力从设备从通信总线汲取电力,如果本地电源不再足够的话(其在本文中可被称为“混合电力”配置、“多个电源的自适应使用”排列或“适应性电源”排列)。本文公开的一些系统和技术与可由通信系统执行的线路诊断兼容,因为本地供电的从设备可以“切换”到从通信总线提取功率而不触发故障或其他性能标志。本文公开的一些系统和技术还允许在本地供电从设备的下游设备的从设备在本地电源从设备本地电源发生故障的情况下,从通信总线获取电源。
在下面的详细描述中,参考形成其一部分的附图,其中相同的附图标记始终表示相同的部分,并且其中通过可实施的示例性实施例的方式示出。应该理解,在不脱离本公开的范围的情况下可以利用其他实施例并且可以进行结构或逻辑改变。因此,下面的详细描述不是限制性的。
各种操作可以以最有助于理解所要求保护的主题的方式依次被描述为多个离散的动作或操作。然而,描述的顺序不应被解释为暗示这些操作必须依赖于顺序。特别是,这些操作可能不会按照演示顺序执行。所描述的操作可以以与所述实施例不同的顺序来执行。在附加实施例中可以执行各种附加操作和/或可以省略所描述的操作。
为了本公开的目的,短语“A和/或B”意指(A)、(B)或(A和B)。出于本公开的目的,短语“A、B和/或C”表示(A)、(B)、(C)、(A和B)、(A和C)、(B和C)、或(A、B和C)。
本文中可以以单数形式(例如,“处理器”、“周边设备”等)来引用或说明各种组件,但是这仅仅是为了便于讨论,并且根据本文的教导,以单数提及的任何元件可以包括多个这样的元件。
该描述使用短语“在实施例中”或“在实施例中”,其可以分别指代一个或多个相同或不同的实施例。此外,关于本公开的实施例所使用的术语“包括”、“包含”、“具有”等是同义的。如这里所使用的,术语“电路”可以指的是专用集成电路(ASIC)的一部分,或者包括专用集成电路(ASIC)、电子电路、和光电路、执行一个或多个软件或固件程序的处理器(共享的、专用的或成组的)和/或存储器(共享的、专用的或成组的)、组合逻辑电路、和/或其他提供所述功能的合适硬件。主节点在这里也可以被称为主设备“设备”,类似地,从节点在这里可以被称为从属“设备”。如本文所使用的,“单极设备”可以是允许电流在一个方向上基本上自由地流动,但高度阻止电流沿相反方向流动的单极设备。
图1是根据各种实施例的说明性半双工双线通信系统100的框图。系统100包括主机110、主节点102和至少一个从节点104。在图1中,图示了三个从节点(0、1和2)。图1中三个从节点104的描述仅仅是说明性的,并且根据需要,系统100可以包括一个、两个或更多从节点104。
主节点102可以通过双线总线106与从节点104进行通信。总线106可包括沿总线106的相邻节点之间的不同双线总线链路,以菊花链方式沿着总线106连接节点。例如,如图1所示,总线106可以包括将主节点102耦合到从节点0的链接、将从节点0耦合到从节点1的链接、以及将从节点1耦合到从节点2的链接。在一些实施方案中,总线106的链路可以分别由单根双绞线(例如非屏蔽双绞线)形成。在一些实施方案中,总线106的链路可以各自由同轴电缆形成(例如,芯提供“正”线,屏蔽提供“负”线,反之亦然)。
主机110可以包括对主节点102进行编程的处理器,并且充当沿着总线106发送的各种有效载荷的发起者和接收者。特别地,主机110可以是沿着总线106发生的内部集成电路声音(I2S)通信的主设备。主机110可以经由I2S/时分多路复用(TDM)总线和/或内部集成电路(I2C)总线与主节点102通信。在一些实施方案中,主节点102可以是位于主机110的壳体内的收发器(例如,下面参考图2讨论的节点收发器120)。主节点102可以由主机110在I2C总线上编程以用于配置和回读,并且可以被配置为为所有从节点104生成时钟、同步和成帧。在一些实施方案中,主节点102中的主机110之间的I2C控制总线可以嵌入到通过总线106传输的数据流中,从而允许主机110直接访问一个或多个从节点104的寄存器和状态信息,以及实现远距离的I2C-到-I2C通信以允许主机110控制周边设备108。
主节点102可产生沿着总线106从主节点102发射出的“下游”信号(例如,数据信号、功率信号等),并接收“上游”信号(例如,沿着总线106向主节点102传送)。主节点102可以为总线106上的同步数据传输提供时钟信号。如本文所使用的,“同步数据”可以包括连续传输的数据(例如,音频信号),具有沿总线106进行往来于相同节点的两次连续传输之间的固定时间间隔。在一些实施方案中,由主节点102提供的时钟信号可以从主机110提供给主节点102的I2S输入中导出。从节点104可以是可寻址网络连接点,其表示在总线106上或在总线106上游向下游传输的数据帧的可能目的地。从节点104也可以表示下游或上游数据帧的可能来源。系统100可以允许控制信息和其他数据在总线106上从一个节点到下一个在两个方向上传送。如从下面进一步讨论的,从节点104中的一个或多个也可以由通过总线106传输的信号供电。在一些实施方案中,根据本文讨论的任何实施例,从节点104中的一个或多个能够自适应地在总线106提供的功率与本地电源提供的功率之间切换。
具体地,主节点102和从节点104中的每一个可以包括正上游终端(表示为“AP”)、负上游终端(表示为“AN”)、正下游终端(表示为“BP”)和负向下游终端(表示为“BN”)。节点的正和负下游终端可以分别耦合到相邻下游节点的正和负上游终端。如图1所示,主节点102可以包括正和负上游终端,但这些终端可能不会使用;在其他实施例中,主节点102可以不包括正和负上游终端。沿着总线106(图1中的从节点2)的最后一个从节点104可以包括正和负下游终端,但是可以不使用这些终端;在其他实施例中,沿着总线的最后一个从节点104可能不包括正和负下游终端。
如下面详细讨论的,主节点102可以周期性地向下游发送同步控制帧,可选地连同旨在用于从节点104中的一个或多个的数据一起。例如,主节点102可以以48kHz的频率每1024位(表示超帧)发送同步控制帧,导致总线106上的有效比特率为49.152Mbps。其他频率可能会得到支持,包括,例如44.1kHz。同步控制帧可以允许从节点104识别每个超帧的开始,并且还可以允许每个从节点104从总线106导出其内部操作时钟(结合物理层编码/信号)。同步控制帧可以包括用于发信号通知同步开始的前导码,以及允许各种寻址模式(例如,正常、广播、发现)、配置信息(例如,写入从节点104的寄存器)、I2C信息的传送、从节点104处的某些通用输入/输出(GPIO)引脚的远程控制以及其他服务的控制领域。遵循前导码和有效载荷数据的同步控制帧的一部分可以被加扰以降低同步控制帧中的信息被误认为新的前导码的可能性,并且使有关的电磁发射的频谱变平坦。
同步控制帧可以从节点104之间传递(可选地与可能来自主节点102的其他数据一起,或者另外或可选地可以来自节点104上的一个或多个上游或来自节点104本身),直到它到达最后一个从节点104(即,从图1中的节点2),其已经由主节点102配置为最后一个从节点104或者已经自己将其自身标识为最后一个从节点104。一旦接收到同步控制帧,最后一个从节点104可以发送同步响应帧,同步响应帧后面是允许发送的任何数据(例如,指定时隙中的24比特音频样本)。同步响应帧可以从节点104(可选地连同来自下游节点104的数据)之间上行传递,并且基于同步响应帧,每个从节点104可以能够识别允许从节点104发送的时隙(如果有的话)。
在一些实施方案中,系统100中的从节点104中的一个或多个可以耦合到周边设备108并与周边设备108通信。例如,从节点104可以被配置为使用I2S、脉冲密度调制(PDM)、TDM和/或I2C协议从相关的周边设备108读取数据和/或将数据写入相关的周边设备108,如下所述。虽然“周边设备108”在本文中可以以单数形式提及,但这仅仅是为了便于讨论,并且单个从节点104可以与零个、一个或多个周边设备耦合。可以包括在周边设备108中的周边设备的示例可以包括数字信号处理器(DSP)、现场可编程门阵列(FPGA)、ASIC、模数转换器(ADC)、数模转换器(DAC)、编解码器、麦克风、麦克风阵列、扬声器、音频放大器、协议分析器、加速度计或其他运动传感器、环境条件传感器(例如温度、湿度和/或气体传感器)、有线或无线通信收发器、显示设备(例如触摸屏显示器)、用户界面组件(例如按钮、拨号盘或其他控件)、照相机(例如摄像机)、存储设备或者传输和/或接收数据的任何其他合适的设备。本文详细讨论了不同的周边设备配置的一些例子。
在一些实施方案中,周边设备108可以包括配置用于内部集成电路声音(I2S)通信的任何设备;周边设备108可以通过I2S协议与相关的从节点104进行通信。在一些实施方案中,周边设备108可包括配置用于内部集成电路(I2C)通信的任何设备;周边设备108可以通过I2C协议与相关的从节点104进行通信。在一些实施方案中,从节点104可能不会耦合到任何周边设备108。
从节点104及其相关的周边设备108可以包含在单独的壳体中并通过有线或无线通信连接耦合或者可以包含在共同的壳体中。例如,作为周边设备108连接的扬声器可以与用于相关联的从节点104(例如,下面参照图2讨论的节点收发器120)的硬件封装,使得用于相关从节点104的硬件被包含在包括其他扬声器组件的外壳内。对于任何类型的周边设备108也是如此。
如上所述,主机110可以使用多通道I2S和I2C通信协议与主节点102进行通信并对其进行控制。具体地,主机110可以经由I2S将数据发送到主节点102中的帧缓冲器(未示出),并且主节点102可以从帧缓冲器读取数据并沿着总线106发送数据。类似地,主节点102可以将经由总线106接收到的数据存储在帧缓冲器中,然后可以经由I2S将数据发送到主机110。
每个从节点104可以具有可以通过来自主节点102的通信来配置的内部控制寄存器。下面详细讨论了许多这样的寄存器。每个从节点104可以接收下游数据并且可以进一步向下游重传数据。每个从节点104可以接收和/或生成上游数据和/或向上游重传数据和/或向上游交易添加数据。
沿总线106的通信可能发生在周期性超帧中。每个超帧可以以下游同步控制帧开始;被划分为下游传输(也称为“下游部分”)、上游传输(也称为“上游部分”)和不传输(总线106不被驱动)的时段;并且在传输另一个下游同步控制帧之前结束。主节点102可以被编程(通过主机110)具有多个下游部分以传输到从节点104中的一个或多个节点以及从节点104中的一个或多个接收的多个上游部分。每个从节点104可以被编程(通过主节点102)具有多个下游部分以向下传输总线106、多个下游部分用于消耗、多个上游部分重新传输总线106、以及多个其中从节点104可以从相关周边设备108发送从节点104接收到的数据的上游部分。下面参考图2-12更详细地讨论沿着总线106的通信。
主节点102和从节点104中的每一个可以包括用于管理系统100的组件之间的通信的收发器。图2是根据各种实施例的可被包括在图1的系统100的节点(例如,主节点102或从节点104)中的节点收发器120的框图。在一个实施方案中,节点收发器120可以包括在系统100的每个节点中,并且控制信号可以通过主(MSTR)引脚提供给节点收发器120以指示节点收发器120是作为主器件(例如,当MSTR引脚为高电平时)还是作为从器件(例如,当MSTR引脚为低电平时)。
节点收发器120可包括上游差分信令(DS)收发器122和下游DS收发器124。上游DS收发器122可以耦合到上面参考图1讨论的正和负上游终端,并且下游DS收发器124可以耦合到上面参考图1讨论的正和负下游终端。在一些实施方案中,上游DS收发器122可以是低电压DS(LVDS)收发器,下游DS收发器124可以是LVDS收发器。系统100中的每个节点可以AC耦合到总线106,并且数据信号可以使用具有适当编码的DS的预定形式(例如,LVDS或多点LVDS(MLVDS)或类似的信令)沿着总线106传送(例如,经由上游DS收发器122和/或下游DS收发器124),以通过总线106提供定时信息(例如,差分曼彻斯特编码、双相标记编码、曼彻斯特编码、具有游程长度限制的不归零倒置(NRZI)编码或任何其他合适的编码)。
上游DS收发器122和下游DS收发器124可以与总线协议电路126通信,并且总线协议电路126可以与锁相环(PLL)128和电压调节器电路130以及其他部件通信。当节点收发器120加电时,电压调节器电路130可以提升PLL 128使用的“电源良好”信号作为加电复位。
如上所述,系统100中的从节点104中的一个或多个可以接收通过总线106与数据同时发送的功率。对于功率分配(这是可选的,因为从节点104中的一些可以被配置为仅具有提供给它们的本地功率),主节点102可以在主节点102和从节点0之间的总线链路上放置直流偏置(例如,通过将其中一个下游端子连接到由电压调节器提供的电压源,另一个下游端子连接到地)。直流偏压可以是预定的电压(例如5V、8V)、汽车电池的电压或更高的电压。每个连续的从节点104可以选择性地切换其上行总线链路以恢复电力(例如,使用电压调节器电路130)。该功率可以用于为从节点104本身(以及可选地一个或多个耦合到从节点104的周边设备108)供电。从节点104还可以选择性地使用来自上游总线链路或来自本地电源的恢复功率来偏置用于下一个在线从节点104的下游总线链路。例如,从节点0可以使用上游总线链路106上的DC偏置来恢复从节点0本身和/或一个或多个关联的周边设备108的功率,和/或从节点0可以从其上游总线链路106恢复功率以偏置其下游总线链路106。
因此,在一些实施方案中,系统100中的每个节点可以通过下游总线链路向后面的下游节点提供电力。节点的供电可以以有序的方式执行。例如,在经由总线106发现并配置从节点0之后,主节点102可以指示从节点0向其下游总线链路106提供电力以向从节点1提供电力;在从节点1被发现和配置之后,主节点102可以指示从节点1向其下游总线链路106提供电力以便向从节点2提供电力(以及对于附加的耦合到总线106的从节点104等)。在一个实施方案中,一个或多个从节点104可以是本地供电的,代替或者除了从其上游总线链路供电之外。在一些这样的实施方案中,给定从节点104的本地电源可用于向一个或多个下游从节点提供电力。根据本文讨论的任何实施例,从节点104也能够自适应地在由总线106提供的功率和由本地电源提供的功率之间进行切换。
在一些实施方案中,上游滤波电路132可以设置在上游DS收发器122和电压调节器电路130之间,并且下游滤波电路131可以设置在下游DS收发器124和电压调节器电路130之间。由于总线106的每个链路可以承载AC(信号)和DC(功率)分量,上游滤波电路132和下游滤波电路131可以分离AC和DC分量,将AC分量提供给上游DS收发器122和下游DS收发器124,并且将DC分量提供给电压调节器电路130。在上游DS收发器122和下游DS收发器124的线路侧上的AC耦合基本上将收发器122和124与线路上的DC分量隔离,以允许高速双向通信。如上所述,DC分量可以被抽头以获得功率,并且上游滤波电路132和下游滤波电路131可以包括铁氧体、共模扼流圈或电感器,例如以减少提供给电压调节器电路130的AC分量。在一些实施方案中,上游滤波电路132可以被包括在上游DS收发器122中,并且/或者下游滤波电路131可以被包括在下游DS收发器124中;在其他实施例中,滤波电路可以在收发器122和124的外部。
节点收发器120可以包括用于节点收发器120和外部设备155之间的I2S、TDM和PDM通信的收发器127。虽然“外部设备155”可以在本文中以单数形式提及,但这仅仅是为了易于说明,并且多个外部设备可以通过I2S/TDM/PDM收发器127与节点收发器120通信。如本领域所知,I2S协议用于承载脉冲编码调制(PCM)信息(例如,在印刷电路板(PCB)上的音频芯片之间)。如本文所使用的,“I2S/TDM”可以指使用TDM将I2S立体声(2频道)内容扩展到多个频道。如本领域中已知的,可以在Σ-Δ转换器中使用PDM,并且具体而言,PDM格式可以表示在抽取之前的过采样的1位Σ-ΔADC信号。PDM格式通常用作数字麦克风的输出格式。I2S/TDM/PDM收发器127可以与总线协议电路126和用于与外部设备155通信的引脚进行通信。六个引脚、BCLK、SYNC、DTX[1:0]和DRX[1:0]在图2中示出;BCLK引脚可用于I2S位时钟,SYNC引脚可用于I2S帧同步信号,DTX[1:0]和DRX[1:0]引脚分别用于发送和接收数据通道。尽管图2中示出了两个发送引脚(DTX[1:0])和两个接收引脚(DRX[1:0]),但是可以使用任何期望数量的接收和/或发送引脚。
当节点收发器120被包括在主节点102中时,外部设备155可以包括主机110,并且I2S/TDM/PDM收发器127可以提供可以接收来自主机110的数据并将数据与主机110的I2S接口时钟同步地发送给主机110的I2S从设备(关于BCLK和SYNC)。具体地,可以在SYNC引脚处接收I2S帧同步信号作为来自主机110的输入,并且PLL 128可以使用该信号来生成时钟。当节点收发器120包括在从节点104中时,外部设备155可以包括一个或多个周边设备108,并且I2S/TDM/PDM收发器127可以提供可以控制I2S与周边设备108通信的I2S时钟主机(用于BCLK和SYNC)。特别地,I2S/TDM/PDM收发器127可以在SYNC引脚处提供I2S帧同步信号作为输出。节点收发器120中的寄存器可以确定哪些和多少个I2S/TDM信道作为总线106上的数据时隙被传输。节点收发器120中的TDM模式(TDMMODE)寄存器可以存储在TDM发送或接收引脚上的连续SYNC脉冲之间适合多少TDM信道的值。连同对信道大小的了解,节点收发器120可以自动设置BCLK速率以匹配采样时间内(例如,48kHz)的比特数。
节点收发器120可以包括用于节点收发器120与外部设备157之间的I2C通信的收发器129。虽然“外部设备157”在这里可以以单数形式提及,但这仅仅是为了便于说明,并且多个外部设备可以经由I2C收发器129与节点收发器120通信。如本领域所知,I2C协议使用时钟(SCL)和数据(SDA)线来提供数据传输。I2C收发器129可以与总线协议电路126和用于与外部设备157通信的引脚通信。图2中示出了四个引脚ADR1、ADR2、SDA和SCL;当节点收发器120充当I2C从设备(例如,当它被包括在主节点102中)时,ADR1和ADR2可用于修改由节点收发器120使用的I2C地址,并且SDA和SCL分别用于I2C串行数据和串行时钟信号。当节点收发器120被包括在主节点102中时,外部设备157可以包括主机110,并且I2C收发器129可以提供可以从主机110接收编程指令的I2C从设备。具体地,可以在SCL引脚处接收I2C串行时钟信号作为来自主机110的输入以用于寄存器访问。当节点收发器120被包括在从节点104中时,外部设备157可以包括周边设备108,I2C收发器129可以提供I2C主设备以允许I2C收发器根据主机110提供的指令对一个或多个周边设备进行编程,并通过总线106发送到节点收发器120。特别地,I2C收发器129可以在SCL引脚处提供I2C串行时钟信号作为输出。
节点收发器120可以包括与总线协议电路126通信的中断请求(IRQ)引脚。当节点收发器120经由I2C收发器129被包括在主节点102中时,总线协议电路126可以通过IRQ引脚向主机110提供事件驱动的中断请求。当节点收发器120包括在从节点104中时(例如,当MSTR引脚为低电平时),IRQ引脚可以用作具有中断请求能力的GPIO引脚。
系统100可以以多种不同操作模式中的任何一种操作。总线106上的节点可各自具有指示当前启用哪种操作模式的寄存器。以下是可能实施的各种操作模式示例的说明。在待机运行模式下,减少总线活动以实现全球节能;所需的唯一通信量是最小的下游前导码以保持每个节点(例如,PLL128)的PLL同步。在待机操作模式中,不支持总线106上的读取和写入。在发现操作模式中,主节点102可以沿着总线106发送预定信号并等待合适的响应以映射沿总线106分布的从节点104的拓扑。在正常操作模式中,可以从从节点104获得完全寄存器访问以及通过总线106访问和来自周边设备108的访问。正常模式可以由主机110在有或没有同步上行数据的情况下以及有或没有同步下行数据全局地配置。
图3是根据各种实施例的用于系统100中的通信的同步控制帧180的一部分的图。特别地,同步控制帧180可以用于数据时钟恢复和PLL同步,如下所述。如上所述,因为总线106上的通信可以在两个方向上发生,所以通信可以时间复用到下游部分和上游部分。在下游部分中,同步控制帧和下游数据可以从主节点102发送,而在上游部分中,同步响应帧和上游数据可以从每个从节点104发送到主节点102。同步控制帧180可以包括前导码182和控制数据184。每个从节点104可以被配置为使用所接收的同步控制帧180的前导码182作为用于馈送PLL 128的时基。为了促进这个,前导码182不遵循有效控制数据184的“规则”,因此可以容易地从控制数据184中区分出来。
例如,在一些实施方案中,沿着总线106的通信可以首先使用时钟编码,在零差分曼彻斯特编码方案上进行转换。根据这样的编码方案,每个比特时间以时钟转换开始。如果数据值为零,则编码信号在位时间的中间再次转换。如果数据值为1,则编码信号不会再次转换。图5中所示的前导码182可能违反编码协议(例如,通过使得在比特时间5、7和8的开始处不发生时钟转换),这意味着前导码182可能不匹配控制数据184的任何合法的(例如,正确编码的)模式。另外,前导码182不能通过对控制数据184采取合法模式并强制总线106在单位时间或多位时间段内变高或变低。图5中示出的前导码182仅是说明性的,并且同步控制帧180可以包括可以以任何合适的方式违反控制数据184所使用的编码的不同前导码182。
总线协议电路126可以包括差分曼彻斯特解码器电路,其在从总线106恢复的时钟上运行,并检测同步控制帧180以向PLL 128发送帧同步指示符。以这种方式,同步控制帧180可以在不使用系统时钟或更高速的过采样时钟的情况下被检测到。因此,从节点104可以从总线106接收PLL同步信号,而不需要在从节点104处的晶体时钟源。
如上所述,沿着总线106的通信可能发生在周期性超帧中。图4是根据各种实施例的超帧190的图。如图6所示,超帧可以以同步控制帧180开始。当同步控制帧180被用作PLL128的定时源时,超帧传送的频率(“超帧频率”)可以与同步信号频率相同。在音频数据沿着总线106发送的一些实施例中,超帧频率可以与系统100中使用的音频采样频率相同(例如48kHz或44.1kHz),但是可以使用任何合适的超帧频率。每个超帧190可被划分为下游传输192的时段、上游传输194的时段和不传输196的时段(例如,当总线106未被驱动时)。
在图4中,超帧190被示出具有下游传输192的初始时段和上游传输194的后期。下游传输192的时段可以包括同步控制帧180和X下游数据时隙198,其中X可以是零。如上所述,在同步控制帧180中,总线106上的基本上所有信号可以是行编码的,并且同步信号以同步前导码182的形式从主节点102向下游转发到最后一个从节点104(例如从节点104C)。下游、TDM、同步数据可以被包括在同步控制帧180之后的X个下游数据时隙198中。下游数据时隙198可以具有相等的宽度。如上所述,PLL128可以提供节点用于定时通过总线106的时钟的时钟。在总线106用于传输音频数据的一些实施例中,PLL 128可以以音频采样频率的倍数(例如,音频采样频率的1024倍,在每个超帧中产生1024位时钟)操作。
上行传输194的周期可以包括同步响应帧197和Y上行数据时隙199,其中Y可以是零。在一些实施方案中,每个从节点104可以消耗一部分下游数据时隙198。最后一个从节点(例如,来自图1中的节点2)可以响应(在预定的响应时间之后存储在最后一个从节点的寄存器中)同步响应帧197。上游TDM同步数据可以由紧接在同步响应帧197之后的上游数据时隙199中的每个节点104添加。上游数据时隙199可以具有相等的宽度。如果在超帧190的同步控制帧180中请求读取其寄存器之一,或者如果在超帧190的同步控制帧180中请求远程I2C读取,不是最后一个从节点的从节点104(例如,图1中的从节点0和1)可以用其自己的上游响应来替代接收到的同步响应帧197。
如上所述,同步控制帧180可以开始每个下游传输。在一些实施方案中,同步控制帧180的长度可以是64位,但是可以使用任何其他合适的长度。如上所述,同步控制帧180可以以前导码182开始。在一些实施方案中,当同步控制帧180被从节点104重传到下游从节点104时,前导码182可以通过从节点104发送而不是被重发来生成。
同步控制帧180的控制数据184可以包括包含用于控制总线106上的事务的数据的字段。这些字段的示例在下面讨论,并且一些实施例在图5中示出。具体地,图5示出了根据各种实施例的正常模式、I2C模式和发现模式下的同步控制帧180的示例格式。在一些实施方案中,不同的前导码182或同步控制帧180完全可以用在待机模式下,使得从节点104不需要接收全部同步控制帧180,直到发送到正常模式的转换为止。
在一些实施方案中,同步控制帧180可以包括计数(CNT)字段。CNT字段可以具有任何合适的长度(例如,2位),并且可以从先前超帧中使用的值增加(模拟字段的长度)。从节点104接收到一个意想不到的可能被编程为返回一个中断的CNT值。
在一些实施方案中,同步控制帧180可以包括节点寻址模式(NAM)字段。NAM字段可以具有任何合适的长度(例如2位)并且可以用于控制对总线106上的从节点104的寄存器的访问。在正常模式下,基于从节点104的ID和寄存器的地址,从节点104的寄存器可以读取和/或写入。广播事务是应该由每个从节点104进行的写入。在一些实施方案中,NAM字段可以提供四种节点寻址模式,包括“无”(例如,未寻址到任何特定的从节点104的数据)、“正常”(例如,数据单播到在下面讨论的地址字段中指定的特定从节点104)、“广播”(例如,从节点104发往全部)和“发现”。
在一些实施方案中,同步控制帧180可以包括I2C字段。I2C字段可以具有任何合适的长度(例如1比特)并且可以用于指示包括I2C事务的下游传输192的时段。I2C字段可以指示主机110已经提供了用于远程访问充当关于相关联的从节点104的I2C从设备的周边设备108的指令。
在一些实施方案中,同步控制帧180可以包括节点字段。节点字段可以具有任何合适的长度(例如,4位)并且可以用于指示哪个从节点被寻址用于正常访问和I2C访问。在发现模式中,该字段可以用于编程从节点104的节点ID寄存器中新发现的从节点104的标识符。如以下讨论的,当节点104被主节点102发现时,系统100中的每个从节点104可以被分配唯一ID。在一些实施方案中,主节点102不具有节点ID,而在其他实施例中,主节点102可具有节点ID。在一些实施方案中,连接到总线106上的主节点102(例如,图1中的从节点0)的从节点104将从节点0开始,并且每个连续的从节点104将具有比先前的从节点高1的数字。然而,这仅仅是说明性的,并且可以使用任何合适的从节点识别系统。
在一些实施方案中,同步控制帧180可以包括读/写(RW)字段。RW字段可以具有任何合适的长度(例如1位),并且可以用于控制正常访问是读取(例如RW==1)还是写入(例如RW==0)。
在一些实施方案中,同步控制帧180可以包括地址字段。地址字段可以具有任何合适的长度(例如,8位)并且可以用于通过总线106来寻址从节点104的特定寄存器。对于I2C事务,地址字段可以用I2C控制值替换,例如START/STOP、WAIT、RW和DATA VLD。对于发现事务,地址字段可以具有预定值(例如,如图5所示)。
在一些实施方案中,同步控制帧180可以包括数据字段。数据字段可以具有任何合适的长度(例如,8位),并且可以用于正常、I2C和广播写入。可以使用乘以4的RESPCYCS值来确定在正被接收的同步控制帧180的开始和正在发送的同步响应帧197的开始之间新发现的节点应该允许经过多少个周期。当NAM字段指示发现模式时,下面讨论的节点地址和数据字段可以被编码为RESPCYCS值,当乘以合适的可选乘数(例如,4)时,其指示从同步控制帧180的末端到同步响应帧197的开始的时间(以比特为单位)。这允许新发现的从节点104确定用于上游传输的适当时隙。
在一些实施方案中,同步控制帧180可以包括循环冗余校验(CRC)字段。CRC字段可以具有任何合适的长度(例如,16比特),并且可以用于在前导码182之后发送同步控制帧180的控制数据184的CRC值。在一些实施方案中,可以根据CCITT-CRC错误检测方案来计算CRC。
在一些实施方案中,前导码182和CRC字段之间的同步控制帧180的至少一部分可以被加扰以降低该间隔中的一系列比特将周期性地匹配前导码182的可能性(并且因此可能被从节点104误解释为新超帧190的开始),以及如上所述减少电磁发射。在一个这样的实施方案中,同步控制帧180的CNT字段可以由加扰逻辑使用,以确保加扰字段从一个超帧到下一个超帧被不同地加扰。这里描述的系统100的各种实施例可以省略加扰。
除了或代替诸如上面讨论的加扰和/或错误编码之类的技术外,可以使用其他技术来确保前导码182可以由从节点104唯一地标识或降低前导码182在同步控制帧180中出现的可能性。例如,可以使用较长的同步序列来降低同步控制帧180的其余部分的特定编码将与其匹配的可能性。另外地或可选地,同步控制帧的其余部分可以被构造为使得同步序列不会发生,例如通过在适当的位处放置固定的“0”或“1”值。
主节点102可以向从节点104发送读取和写入请求,包括专用于总线106上的通信的请求和I2C请求。例如,主节点102可以向一个或多个指定的从节点104(使用NAM和节点字段)发送读取和写入请求(使用RW字段指示)并且可以指示该请求是否是针对总线106特定的从节点104的请求、针对从节点104的I2C请求或者I2C请求被传递到在从节点104的一个或多个I2C端口处耦合到从节点104的I2C兼容的周边设备108。
转向上游通信,同步响应帧197可以开始每个上游传输。在一些实施方案中,同步响应帧197的长度可以是64位,但是可以使用任何其他合适的长度。同步响应帧197还可以包括前导码,如上面参考同步控制帧180的前导码182所讨论的,接着是数据部分。在下行传输结束时,总线106上的最后一个从节点104可以等待,直到RESPCYCS计数器已经到期,然后开始向上游传送同步响应帧197。如果上游从节点104已经被正常的读取或写入事务处理为目标,则从节点104可以生成其自己的同步响应帧197并且替换从下游接收的那个。如果任何从节点104在预期时间没有从下游从节点104看到同步响应帧197,则从节点104将生成其自己的同步响应帧197并开始向上游发送它。
同步响应帧197的数据部分可以包括包含用于将响应信息传送回主节点102的数据的字段。下面讨论这些字段的示例,并且图6中示出了一些实施例。具体地,图6示出根据各种实施例的正常模式、I2C模式和发现模式下的同步响应帧197的示例格式。
在一些实施方案中,同步响应帧197可以包括计数(CNT)字段。CNT字段可以具有任何合适的长度(例如,2比特),并且可以用于在先前接收的同步控制帧180中发送CNT字段的值。
在一些实施方案中,同步响应帧197可以包括确认(ACK)字段。ACK字段可以具有任何合适的长度(例如,2比特),并且可以由从节点104插入以在从节点104生成同步响应帧197时确认在先前同步控制帧180中接收的命令。可以在ACK字段中传送的示例指示符包括等待、确认、不确认(NACK)和重试。在一些实施方案中,ACK字段的大小可以被确定为通过从节点104发送它已经接收并处理广播消息(例如,通过向主节点102发送广播确认)的确认。在一些这样的实施方案中,从节点104还可以指示从节点104是否具有要发送的数据(其可以用于例如基于需求的上游传输,诸如来自小键盘或触摸屏的非TDM输入,或者用于优先化的上游传输,诸如当从节点104希望报告错误或紧急状况时)。
在一些实施方案中,同步响应帧197可以包括I2C字段。I2C字段可以具有任何合适的长度(例如,1比特)并且可以用于传送先前接收到的同步控制帧180中的I2C字段的值。
在一些实施方案中,同步响应帧197可以包括节点字段。节点字段可以具有任何合适的长度(例如,4比特),并且可以用于发送生成同步响应帧197的从节点104的ID。
在一些实施方案中,同步响应帧197可以包括数据字段。数据字段可以具有任何合适的长度(例如,8位),并且其值可以取决于事务的类型以及生成同步响应帧197的从节点104的ACK响应。对于发现事务,数据字段可以包括在先前接收的同步控制帧180中的RESPCYCS字段的值。当ACK字段指示NACK时,或者当同步响应帧197响应广播事务时,数据字段可以包括广播确认(BA)指示符(其中最后的从节点104可以指示是否接收到广播写入而没有错误)、发现错误(DER)指示符(指示发现事务中新发现的从节点104是否与现有的从节点104匹配)以及CRC错误(CER)指示符(指示NACK是否由CRC错误引起)。
在一些实施方案中,同步响应帧197可以包括CRC字段。CRC字段可以具有任何合适的长度(例如,16比特)并且可以用于在前导码和CRC字段之间传送用于同步响应帧197的该部分的CRC值。
在一些实施方案中,同步响应帧197可以包括中断请求(IRQ)字段。IRQ字段可以具有任何合适的长度(例如,1位)并且可以用于指示已经从节点104发信号通知中断。
在一些实施方案中,同步响应帧197可以包括IRQ节点(IRQNODE)字段。IRQNODE字段可以具有任何合适的长度(例如,4比特),并且可以用于发送已经发信号通知由IRQ字段呈现的中断的从节点104的ID。在一些实施方案中,从节点104生成IRQ字段将把它自己的ID插入到IRQNODE字段中。
在一些实施方案中,同步响应帧197可以包括第二CRC(CRC-4)字段。CRC-4字段可以具有任何合适的长度(例如,4比特),并且可以用于发送IRQ和IRQNODE字段的CRC值。
在一些实施方案中,同步响应帧197可以包括IRQ字段、IRQNODE字段和CRC-4字段作为同步响应帧197的最后比特(例如,最后10比特)。如上所述,这些与中断相关的字段可以以CRC-4的形式具有它们自己的CRC保护(因此不受前面的CRC字段的保护)。任何需要向主节点102发信号的从节点104将其中断信息插入到这些字段中。在一些实施方案中,具有中断挂起的从节点104可具有比还具有中断待决的下游的任何从节点104更高的优先级。沿着总线106的最后一个从节点104(例如,图1中的从节点2)可以总是填充这些中断字段。如果最后的从节点104没有未决的中断,则最后的从节点104可以将IRQ比特设置为0,将IRQNODE字段设置为其节点ID,并提供正确的CRC-4值。为了方便起见,传送中断的同步响应帧197在本文中可被称为“中断帧”。
在一些实施方案中,前导码182和CRC字段之间的同步响应帧197的至少一部分可以被加扰以减少发射。在一些这样的实施方案中,同步响应帧197的CNT字段可以被加扰逻辑使用,以确保加扰的字段从一个超帧到下一个不同地被加扰。这里描述的系统100的各种实施例可以省略加扰。
除了或代替诸如上面讨论的加扰和/或错误编码之类的技术,可以使用其他技术来确保前导码182可以由从节点104唯一地标识或降低前导码182在同步响应帧197中的其他地方出现的可能性。例如,可以使用较长的同步序列来降低同步响应帧197的其余部分的特定编码将与其匹配的可能性。附加地或替代地,同步响应帧的其余部分可以被构造成使得不能发生同步序列,例如通过在适当的位处放置固定的“0”或“1”值。
图7是根据各种实施例的图2的总线协议电路126的框图。总线协议电路126可包括控制电路154,以根据本文所述的总线106的协议控制节点收发器120的操作。特别地,控制电路154可以控制用于传输的同步帧的生成(例如,同步控制帧或同步响应帧,如上所述)、接收到的同步帧的处理、以及接收到的同步控制帧中指定的控制操作的执行。如下所述,控制电路154可以包括可编程寄存器。控制电路154可以创建和接收同步控制帧、对接收的消息(例如,当总线协议电路126被包括在从节点104中时,或者当总线协议电路126被包括在主节点102中时,与同步控制帧相关联)进行适当反应,并且将框架调整到不同的操作模式(例如,正常、发现、待机等)。
当节点收发器120准备用于沿总线106传输的数据时,前导码电路156可以被配置为生成用于传输的同步帧的前导码,并且从接收的同步帧接收前导码。在一些实施方案中,下游同步控制帧前导码可以由主节点102每1024位发送一次。如上所述,一个或多个从节点104可以与下游同步控制帧前导码同步并从前导码产生本地的、相位对准的主时钟。
CRC插入电路158可以被配置为生成用于传输的同步帧的一个或多个CRC。帧/压缩电路160可以被配置为从I2S/TDM/PDM收发器127(例如,从与收发器127相关联的帧缓冲器)和/或I2C收发器129获取输入数据、可选地压缩数据,并且可选地为数据生成奇偶校验位或纠错码(ECC)。多路复用器(MUX)162可以将来自前导码电路156的前导码、同步帧和数据多路复用成流以进行传输。在一些实施方案中,发送流可以在发送之前由加扰电路164加扰。
例如,在一些实施方案中,帧/压缩电路160可应用浮点压缩方案。在这样的实施例中,控制电路154可以发送3比特以指示该数量中有多少重复符号比特,接着是符号比特和N-4比特数据,其中N是要通过总线106传输的数据的大小。数据压缩的使用可以在需要时由主节点102配置。
在一些实施方案中,进入节点收发器120的接收流可以由解扰电路166解扰。解复用器(DEMUX)168可以从接收流中解复用前导码、同步帧和数据。接收侧的CRC校验电路159可以检查接收到的同步帧是否有正确的CRC。当CRC校验电路159识别输入同步控制帧180中的CRC故障时,可以向控制电路154通知该故障并且不会在同步控制帧180的控制数据184中执行任何控制命令。当CRC校验电路159在进入的同步响应帧197中识别出CRC失败时,控制电路154可以被通知失败并且可以在中断帧中产生用于传输到主机110的中断。Deframe/解压缩电路170可以接收接收数据、可选地检查其奇偶性、可选地执行错误检测和校正(例如单错误校正-双错误检测(SECDED))、可选地解压缩数据、并且可以将接收数据写入I2S/TDM/PDM收发器127(例如,与收发器127相关联的帧缓冲器)和/或I2C收发器129。
如上所述,可以在超帧190内的TDM数据时隙中沿着总线106发送上游和下游数据。控制电路154可以包括专用于管理总线106上的这些数据时隙的寄存器,下面讨论其中的一些例子。当控制电路154被包括在主节点102中时,这些寄存器中的值可以由主机110编程到控制电路154中。当控制电路154被包括在从节点104中时,这些寄存器中的值可以由主节点102编程到控制电路154中。
在一些实施方案中,控制电路154可以包括下游时隙(DNSLOTS)寄存器。当节点收发器120被包括在主节点102中时,该寄存器可以保存下游数据时隙的总数的值。该寄存器还可以定义主节点102中I2S/TDM/PDM收发器127将用于组合的I2S/TDM/PDM接收的数据插槽的数量。在从节点104中,如下面参照LDNSLOTS进一步详细讨论的,该寄存器可以定义在添加本地生成的下游时隙之前或之后向下游传递到下一个从节点104的数据时隙的数量。
在一些实施方案中,控制电路154可以包括本地下行时隙(LDNSLOTS)寄存器。这个寄存器可能在主节点102中未被使用。在从节点104中,该寄存器可以定义从节点104将使用并且不重传的数据插槽的数量。备选地,该寄存器可以定义从节点104可以贡献给下游总线链路106的时隙的数量。
在一些实施方案中,控制电路154可以包括上游时隙(UPSLOTS)寄存器。在主节点102中,该寄存器可以保持上行数据时隙总数的值。该寄存器还可以定义主节点102中I2S/TDM/PDM收发器127将用于I2S/TDM发送的时隙数量。在从节点104中,该寄存器可以定义从节点104开始添加其自己的数据之前在上游传递的数据槽的数量。
在一些实施方案中,控制电路154可以包括本地上行时隙(LUPSLOTS)寄存器。这个寄存器可能在主节点102中未被使用。在从节点104中,该寄存器可以定义从节点104将在向上游发送之前从下游接收的数据添加的数据时隙的数量。该寄存器还可以定义从节点104中的I2S/TDM/PDM收发器127将用于组合的I2S/TDM/PDM接收的数据插槽的数量。
在一些实施方案中,控制电路154可以包括广播下行时隙(BCDNSLOTS)寄存器。这个寄存器可能在主节点102中未被使用。在从节点104中,该寄存器可以定义广播数据时隙的数量。在一些实施方案中,广播数据时隙可能总是出现在数据字段的开头。广播数据时隙中的数据可以被多个从节点104使用,并且可以由所有从节点104向下游传递,无论它们是否被使用。
在一些实施方案中,控制电路154可以包括时隙格式(SLOTFMT)寄存器。该寄存器可以定义上行和下行传输的数据格式。I2S/TDM/PDM收发器127的数据大小也可以由该寄存器决定。在一些实施方案中,有效数据大小包括8、12、16、20、24、28和32位。该寄存器还可能包含用于启用下游和上游流量的浮点压缩的位。当启用浮点压缩时,I2S/TDM数据大小可以比总线106上的数据大小大4位。当启用数据插槽时,系统100中的所有节点可以具有与SLOTFMT相同的值,并且节点可以通过广播写入进行编程,使得所有节点将用相同的值更新。
图8至图11示出了根据这里描述的总线协议的各种实施例的沿总线106的信息交换的示例。具体而言,图8-11图示了每个从节点104作为周边设备108耦合到一个或多个扬声器和/或一个或多个麦克风的实施例。这仅仅是说明性的,因为根据本文描述的技术,周边设备108的任何期望的布置可以耦合到任何特定的从节点104。
首先,图8示出根据各种实施例的用于总线106上的双向通信的信令和定时考虑。从图8中描绘的节点104具有各种数量的传感器/致动器元件,并且因此不同数量的数据可以被发送到或从各个从节点104接收。具体地,从节点1具有两个元件,从节点4具有四个元件,从节点5有三个元件,所以主节点102发送的数据包括从节点1开始的两个时隙、从节点4开始的四个时隙和从节点5开始的三个时隙。类似地,从节点0具有三个元件,从节点2具有三个元件,从节点3具有三个元件,从节点6具有一个元件,从节点7具有四个元件,因此从节点104向上游传输的数据包括相应的时隙数量。应该指出的是,元件和时隙之间不需要有一对一的相关性。例如,包括在周边设备108中的具有三个麦克风的麦克风阵列可以包括组合来自三个麦克风的信号(并且可能还有从主节点102或从其他从节点104接收的信息)的DSP,以产生单个数据样本,取决于处理类型,它可以对应于单个时隙或多个时隙。
在图8中,主节点102发送同步控制帧(SCF),随后是用于耦合到特定从节点104(SD)的扬声器的数据。每个连续的从节点104转发SCF并且还至少转发目的地为下游从节点104的任何数据。特定的从节点104可以转发所有数据,或者可以移除以该从节点104为目的地的数据。当最后一个从节点104接收到SCF时,该从节点104发送同步响应帧(SRF),其可选地随后是允许从节点104发送的任何数据。每个连续的从节点104转发SRF以及来自下游从节点104的任何数据,并且可选地插入来自耦合到特定从节点104(MD)的一个或多个麦克风的数据。在图8的示例中,主节点102将数据发送到从节点1、4和5(在图8中描绘为活动说话者),并从从节点7、6、3、2和0(在图8中作为麦克风阵列示出)接收数据。
根据各种实施例,图9示意性地图示了从下游传输的数据的动态移除以及数据插入到上游传输的过程,从下游DS收发器124的角度来看。在图9中,如图8所示,主节点102以相反的顺序发送SCF,接着是用于从节点1、4和5(SD)的数据(例如,从节点5的数据之后是从节点4的数据,其后是从节点1的数据等)(参见标记为MASTER的行)。当从节点1接收到该传输时,从节点1移除其自己的数据并且仅转发到从节点2的SCF,接着是从节点5和4的数据。从节点2和3转发数据不变(参见标记为SLAVE 2的行),使得从节点1转发的数据由从节点4接收(参见标记为SLAVE 3的行)。从节点4移除其自己的数据并且向从节点5只转发SCF,接着是从节点5的数据,并且类似地,从节点5移除其自己的数据并且向从节点6只转发SCF。从节点6将SCF转发到节点7(请参阅标记为SLAVE6的行)。
此时,从节点7向从节点6传送SRF,然后传送其数据(请参见标记为SLAVE6的行)。从节点6向从节点5转发SRF以及来自从节点7的数据和它自己的数据,从节点5依次将从节点4的SRF连同来自从节点7和6的数据一起转发到从节点4。从节点4没有要添加的数据,所以它只是将数据转发到从节点3(参见标记为SLAVE3的行),该数据将数据连同其自己的数据一起转发到从节点2(参见标记为SLAVE2的行),其将数据连同其自己的数据一起转发至从节点1。从节点1没有要添加的数据,所以它将数据转发到从节点0,该节点将数据与自己的数据一起转发。结果,主节点102接收SRF,接着是来自从节点7、6、3、2和0的数据(参见标记为MASTER的行)。
图10示出了从下游DS收发器124的角度动态地从下游传输中移除数据和将数据插入上游传输的另一示例,如图9中所示,尽管在图10中,从节点104与作为周边设备108的传感器和致动器都耦合,使得主节点102向下游发送数据到所有从节点104并从所有从节点104接收数据。而且,在图10中,数据是根据它所指定的节点地址或从中发出的节点地址来排序的。标记为“Y”的数据槽可以用于数据完整性检查或数据校正。
图11示出了从下游DS收发器124的角度来看,如图9所示,从下游传输动态移除数据并将数据插入上游传输的另一示例,尽管在图11中,数据以顺序被传输到下游和上游而不是逆序。每个从节点104处的缓冲允许选择性地添加、移除和/或转发数据。
如上所述,每个从节点104可以从下游或上游传输移除数据和/或可以将数据添加到下游或上游传输。因此,例如,主节点102可以将单独的数据样本发送到多个从节点104中的每一个,并且每个这样的从节点104可以移除其数据样本并仅转发旨在用于下游从节点的数据。另一方面,从节点104可以从下游从节点104接收数据并将数据与附加数据一起转发。根据需要传输尽可能少的信息的一个优点是减少系统100共同消耗的功率量。
系统100还可以支持从主节点102到从节点104的广播传输(和多播传输),具体地通过配置从节点104的下行时隙使用。每个从节点104可以处理广播传输并将其传递给下一个从节点104,但是特定的从节点104可以“消费”广播消息(即,不将广播传输传递给下一从节点104)。
系统100还可支持上游传输(例如,从特定从节点104到一个或多个其他从节点104)。这种上行传输可以包括单播、多播和/或广播上行传输。对于上游寻址,如以上参照下游传输所讨论的,从节点104可以确定是否从上游传输移除数据和/或是否基于从节点104的上游时隙使用的配置将上游传输一直传递到下一个上游从节点104。因此,例如,除了或代替将数据传递给主节点102以外,数据还可以由特定从节点104传递给一个或多个其他从节点104。这种从-从关系可以被配置,例如,通过主节点102。
因此,在各种实施例中,从节点104可以作为主动/智能中继器节点,具有选择性地转发、丢弃和添加信息的能力。从节点104通常可以执行这样的功能而不必对所有数据进行解码/检查,因为每个从节点104知道其将接收/发送数据的相关时隙,并且因此可以从时隙中删除数据或将数据添加到时隙中。尽管从节点104可能不需要解码/检查所有数据,但是从节点104通常可以重新计时它发送/转发的数据。这可以提高系统100的稳健性。
在一些实施方案中,总线106可以被配置用于环形拓扑中的单向通信。例如,图12示出了根据各种实施例的主节点102和环形拓扑中的四个从节点104的布置1200,并且示出了布置1200中的单向通信的信令和定时考虑因素。在这些实施方案中,节点收发器120可包括仅接收收发器(MASTER IN)和仅发送收发器(MASTER OUT),而不是两个双向收发器用于上行和下行通信。在图12所示的链路层同步方案中,主节点102发送SCF180,可选地随后是耦合到各个从节点104的三个扬声器的“下游”数据1202(如上面参考图8-11所讨论的,用于不同讲话者的数据可以以任何适当的顺序排列),并且每个连续的从节点104将同步控制帧180与来自之前从节点104的任何“上游”数据和其自身的“上游”数据一起转发以提供“上游”数据1204(例如,来自八个不同麦克风的数据可以以任何合适的顺序排列,如以上参考图8-11所讨论的)。
如本文所述,可以以多种方式中的任何一种方式在系统100的元件之间传送数据。在一个实施方案中,数据可以作为一组同步数据时隙的一部分在上游(例如,使用数据时隙199)由从节点104或下游(例如,使用数据时隙198)由从节点104或主节点102发送。这种数据的量可以通过改变数据槽中的位数或包括额外的数据槽来调整。数据还可以通过包含在同步控制帧180或同步响应帧197中而在系统100中传送。以这种方式传送的数据可以包括来自主机110的I2C控制数据(具有与从节点104相关联的周边设备108的响应);访问从节点104的寄存器(例如,用于发现和配置插槽和接口),其可以包括从主机110/主节点102到从节点104的写访问以及从从节点104到主机110/主节点102的读访问;以及经由从周边设备108到主机110的中断的事件信令。在一些实施方案中,GPIO引脚可用于将信息从节点104传送到主节点102(例如,通过使主节点102通过I2C轮询GPIO引脚,或者通过让从节点104的节点收发器120在中断请求引脚处产生中断)。例如,在一些这样的实施方案中,主机110可以通过I2C向主节点102发送信息,然后主节点102可以通过GPIO管脚将该信息发送给从机。这里讨论的在总线106上传输的任何类型的数据可以使用这些通信路径中的任何一个或多个传输。这里可以公开系统100内的其他类型的数据和数据通信技术。
本公开的实施例可以被实现为使用任何合适的硬件和/或软件来根据需要进行配置的系统。图13示意性地示出根据各种实施例的可用作系统100中的主机或节点(例如,主机110、主节点102或从节点104)的设备1300。图13中示出了包括在设备1300中的多个组件,但是这些组件中的任何一个或多个可以被省略或复制,如适用于该应用。
另外,在各种实施例中,设备1300可以不包括图13中所示的一个或多个组件,但是设备1300可以包括用于耦合到一个或多个组件的接口电路。例如,设备1300可以不包括显示设备1306,但可以包括显示设备1306可以耦合到的显示设备接口电路(例如,连接器和驱动器电路)。在另一组示例中,设备1300可以不包括音频输入设备1324或音频输出设备1308,但是可以包括音频输入设备1324或音频输出设备1308可以耦合到的音频输入或输出设备接口电路(例如,连接器和支持电路)。
设备1300可以包括节点收发器120,根据本文公开的任何实施例,用于在设备1300耦合到总线106时管理沿总线106的通信。设备1300可以包括处理设备1302(例如,一个或多个处理设备),其可以被包括在节点收发器120中或与节点收发器120分开。如这里所使用的,术语“处理设备”可以指设备或设备的一部分,其处理来自寄存器和/或存储器的电子数据以将该电子数据转换成可以存储在寄存器和/或存储器中的其他电子数据。处理设备1302可以包括一个或多个DSP、ASIC、中央处理单元(CPU)、图形处理单元(GPU)、密码处理器或任何其他合适的处理设备。设备1300可以包括存储器1304,其本身可以包括一个或多个存储器设备,诸如易失性存储器(例如动态随机存取存储器(DRAM))、非易失性存储器(例如只读存储器(ROM))、闪存、固态存储器和/或硬盘驱动器。
在一些实施方案中,存储器1304可以用于存储编程指令的工作副本和永久副本,以使设备1300执行本文公开的技术中的任何合适的技术。在一些实施方案中,用于执行上述技术的机器可访问媒体(包括非暂时性计算机可读存储介质)、方法、系统和设备是本文公开的用于通过双线总线通信的实施例的说明性示例。例如,计算机可读介质(例如,存储器1304)可以在其上存储指令,当由处理设备1302中包括的一个或多个处理设备执行时,使得设备1300执行本文公开的任何技术。
在一些实施方案中,设备1300可以包括另一个通信芯片1312(例如,一个或多个其他通信芯片)。例如,通信芯片1312可以被配置为管理无线通信以用于传送去往和来自设备1300的数据。术语“无线”及其派生词可用于描述可通过使用经过非固体介质的调制电磁辐射来传送数据的电路、设备、系统、方法、技术、通信信道等。该术语并不暗示相关设备不包含任何电线,尽管在一些实施例中它们可能不包含任何电线。
通信芯片1312可以实现多种无线标准或协议中的任何一种,包括但不限于电气和电子工程师协会(IEEE)标准,其包括Wi-Fi(IEEE 802.11系列)、IEEE 802.16标准(例如,IEEE 802.16-2005年修订)、长期演进(LTE)项目以及任何修订、更新和/或修订(例如,高级LTE项目、超移动宽带(UMB)项目(也称为“3GPP2”)等)。IEEE 802.16兼容宽带无线接入(BWA)网络通常被称为WiMAX网络,这是代表全球微波接入互操作性(WorldwideInteroperability for Microwave Access)的首字母缩略词,它是通过符合IEEE 802.16标准的兼容性和互操作性测试的产品的认证标志。一个或多个通信芯片1312可以根据全球移动通信系统(GSM)、通用分组无线电服务(GPRS)、通用移动电信系统(UMTS)、高速分组接入(HSPA)、演进的HSPA(E-HSPA)或LTE网络操作。一个或多个通信芯片1312可以根据增强型数据GSM演进(EDGE)、GSMEDGE无线电接入网络(GERAN)、通用陆地无线电接入网络(UTRAN)或演进的UTRAN(E-UTRAN)来操作。一个或多个通信芯片1312可以根据码分多址(CDMA)、时分多址(TDMA)、数字增强无绳通信(DECT)、演进数据优化(EV-DO)及其派生协议、以及被指定为3G、4G、5G等的任何其他无线协议来操作。在其他实施例中,通信芯片1312可以根据其他无线协议进行操作。设备1300可以包括天线1322以促进无线通信和/或接收其他无线通信(诸如AM或FM无线电传输)。
在一些实施方案中,通信芯片1312可以使用不同于此处描述的用于总线106的协议的协议来管理有线通信。有线通信可以包括电气、光学或任何其他合适的通信协议。可以由通信芯片1312启用的有线通信协议的示例包括以太网、控制器区域网络(CAN)、I2C、面向媒体的系统传输(MOST)或任何其他合适的有线通信协议。
如上所述,通信芯片1312可以包括多个通信芯片。例如,第一通信芯片1312可以专用于诸如Wi-Fi或蓝牙的较短距离无线通信,并且第二通信芯片1312可以专用于诸如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、EV-DO或其他等的较远距离无线通信。。在一些实施方案中,第一通信芯片1312可以专用于无线通信,第二通信芯片1312可以专用于有线通信。
设备1300可以包括电池/电源电路1314。电池/电源电路1314可以包括一个或多个能量存储设备(例如,电池或电容器)和/或用于将设备1300的组件耦合到与设备1300分离的能源的电路(例如,交流电源、汽车电池提供的电压等)。例如,电池/电力电路1314可以包括上面参照图2所讨论的上游滤波电路132和下游滤波电路131,并且可以通过总线106上的偏置来充电。电池/电力电路1314可以包括以下讨论的任何支持电路320或321。
设备1300可以包括显示设备1306(或对应的接口电路,如上所述)。显示设备1306可以包括例如抬头显示器、计算机监视器、投影仪、触摸屏显示器、液晶显示器(LCD)、发光二极管显示器或平板显示器的任何视觉指示器。
设备1300可以包括音频输出设备1308(或对应的接口电路,如上所述)。音频输出设备1308可以包括例如产生可听指示符的任何设备,例如扬声器、耳机或耳塞。
设备1300可以包括音频输入设备1324(或相应的接口电路,如上所述)。音频输入设备1324可以包括生成表示声音的信号的任何设备,诸如麦克风、麦克风阵列或数字乐器(例如,具有乐器数字接口(MIDI)输出的乐器)。
设备1300可以包括全球定位系统(GPS)设备1318(或相应的接口电路,如上所述)。如本领域所知,GPS设备1318可以与基于卫星的系统通信并且可以接收设备1300的位置。
设备1300可以包括另一个输出设备1310(或对应的接口电路,如上所述)。其他输出设备1310的示例可以包括音频编解码器、视频编解码器、打印机、用于向其他设备提供信息的有线或无线发射器或附加存储设备。另外,这里讨论的周边设备108中的任何合适的周边设备可以包括在另一个输出设备1310中。
设备1300可以包括另一个输入设备1320(或相应的接口电路,如上所述)。其他输入设备1320的示例可以包括加速计、陀螺仪、图像捕获设备、键盘、诸如鼠标的光标控制设备、手写笔、触摸板、条形码阅读器、快速响应(QR)码阅读器或射频识别(RFID)阅读器。另外,这里讨论的任何合适的传感器或周边设备108可以包括在另一个输入设备1320中。
以上参考设备1300描述的显示器、输入、输出、通信或存储器设备中的任何合适的可用作系统100中的周边设备108。可替代地或另外地,以上参照设备1300描述的显示器、输入、输出、通信或存储器设备中的合适的显示器、输入、输出、通信或存储器设备可以包括在主机(例如主机110)或节点(例如,主节点102或从节点104)。
图14-16示出了用于图1的系统100中的自适应功率的各种系统和技术。这些系统和技术可以与这里公开的系统100的任何实施例一起使用,包括主节点102和从节点104的任何实施例。尽管图14-16示出了直接耦合到主设备的自适应供电从设备,但这仅仅是为了便于说明,并且自适应供电从设备可以是一个或多个其他从设备的下游(其本身可以是本地供电、由总线106供电、或者根据本文的任何实施例自适应地供电)。关于图14-16的各个实施例讨论的某些电路和操作细节可以应用于图14-16的其他实施例,但是为了说明的经济性可以不重复。二极管被描述为包括在图14-16所示的各种实施例中,但是可以使用任何合适的单极设备来代替二极管或者除二极管之外。图14-16中任一图示的电压调节器可以由任何合适的电源(例如电池)提供。
图14-16描绘了自适应电力布置,其允许从设备在本地电源故障时开始从上游总线106提取电力。在这些布置中,有两个用于收发器的备用电源路径。从总线106提供的从本地电源到“幻象电源”的“切换”可以允许从设备保持系统100中上游和下游的通信,并且可以允许在从设备处对故障进行远程诊断。此外,附加的下游从设备可以被供电并被发现。以这种方式,尽管上游从设备受到损害,但下游从设备仍然可用于系统100的其余部分。在一些实施方案中,当本地电源发生故障并且从属收发器已经开始使用总线电源后,从属收发器一旦再次变得可用时就可以恢复使用本地电源(例如,一旦本地电源提供的电压超过总线偏置,如下所述)。可以执行电源之间的这种切换,而不必由系统100的其余部分重新发现从设备,并且不会中断沿系统100的通信。
具体而言,图14-16描绘了自适应电力布置,其允许从设备由总线106上的本地电源或偏置电压选择性地供电,而不触发线路诊断故障。例如,当从设备从总线106提取电力时,收发器中的线路诊断可能正在监测“对地短路”线路故障。当检测到故障时,系统100中的通信可能会受到影响。本文公开的自适应功率布置可以向系统接地返回路径提供高DC阻抗,该系统接地返回路径充分地将上游设备与从设备的本地接地隔离,以避免错误的“对地短路”线路故障。另外,本文所公开的自适应功率布置可以被构造成使得特定从设备的本地接地回路是所提供的任何电压偏置的优选路径,打破了上游设备在上电和发现期间可能通常对环路电流断言的控制,并且减轻了高浪涌电流的风险以及上游总线偏置电压崩溃的可能性。
在图14所示的实施例中,主收发器和从收发器可以分别具有它们自己的支持电路320和321。用于主收发器的支持电路320可以包括本地电源(由关联的电压调节器(VREG)指示)、低通滤波器网络(LPF)和高通滤波器网络(HPF)等等。支持电路320的LPF和HPF可以是上面讨论的上游滤波电路132/下游滤波电路131的一部分。在一些实施方案中,根据需要,本文公开的任何LPF可包括铁氧体磁珠(或类似的电感元件)和电容器。总线106可以通信地耦合主收发器和从收发器。总线106可以具有由主电源提供的偏置电压(例如,DC电压)(例如,通过二极管,如所示)。用于从收发器的支持电路321可以包括本地电源(由相关电压调节器(VREG)指示)、低通滤波器网络和高通滤波器网络。支持电路321的LPF和HPF可以是上面讨论的上游滤波电路132/下游滤波电路131的一部分。
支持电路321还可以包括用于实现上述自适应功率功能的电路。特别地,图14示出了耦合在总线106(如图所示,总线106的“负”线)和地之间以阻止地线被线诊断“看到”(从而避免触发“对地短路”故障)。二极管303的使用可以使得上游节点(例如,图14中的主节点)处的线路诊断所需的控制的自由度能够正确地操作。
图14还包括两个“高侧”二极管301和302,其可以从任一电源(总线106上的偏置电压,或本地电源)具有较高电势向从收发器提供电力。当电源从本地电源切换到总线106时,支持电路321还可以包括闯入控制电路322以控制电流被提供给从收发器的速率。在图14的实施例中,涌入控制电路322可以包括耦合有滤波器(包括电阻器304和306,以及布置在RC网络中的电容器309)的晶体管307(例如,所示的PFET、NFET或任一极性的另一个开关设备)。可以选择滤波器中的元件的值以实现由总线106提供的功率的期望接通时间,从而减小过量浪涌电流的风险。支持电路321可以包括在二极管302和二极管303之间的另外的滤波器,其包括电阻器305和电容器308。
支持电路320或321的任何组件可以采取任何合适的值。在一些实施方案中,电阻器306可具有40千欧姆至200千欧姆(例如,100千欧姆)之间的电阻。在一些实施方案中,电阻器304可以具有5千欧姆至50千欧姆(例如,10千欧姆)之间的电阻。在一些实施方案中,电容器309可具有20纳法和50纳法之间的电容(例如33纳法)。在其中突入控制电路322包括PFET 307的一些实施例中,电阻器306可以是100千欧姆电阻器并且电阻器304可以是10千欧姆电阻器。在涌入式控制电路322包括NFET的一些实施例中,电阻器306可以是100千欧的电阻器,电阻器304可以是80千欧的电阻器。在一些实施方案中,总线106上的偏压(由主收发器的电源提供)可以在4伏特和8伏特之间(例如,7伏特)。在一些实施方案中,由本地从电源提供的电压可能大于4伏特(例如,8伏特)。在一些实施方案中,本地从电源提供的电压可能大于总线106上的偏压;当满足该条件时,从收发器可以由其本地电源供电,并且当违反该条件时,从收发器可以通过总线106上的偏置供电。
任何合适的部件都可以用在支持电路320或321中。例如,如上所述,任何二极管可以由另一个单极设备提供。在一些实施方案中,二极管可以是低泄漏二极管或光电二极管。在一些实施方案中,二极管可能具有小于1微安的泄漏。
图15-16示出了图14的装置的扩展,其容纳适应性地从设备下游的附加从设备。这些布置允许下游从设备由总线106供电而不会中断,而不管自适应供电从设备是由总线106本地供电还是在两者之间切换。一个或多个下游从设备本身可以根据本文公开的任何技术自适应地供电。
在图15和16中,示出了支持电路321的“B侧”,包括耦合到总线106的下游段的LPF和HPF。该支持电路包括耦合在从设备的本地电源和总线106的下游段的“正”线之间的二极管311。
图15的实施例包括耦合在从收发器的电压输入和二极管311的输出端子之间的二极管310。因为自适应供电从设备在不同电源之间转换,二极管310可以减轻或防止对额外的下游从设备的供电中断(未示出),允许与其他下游从设备进行通信,而无需重新发现。
图16的实施例包括耦合在二极管301的输入端子和二极管311的输出端子之间的二极管313。类似于上面参照图15所讨论的二极管310,二极管313可以减轻或防止由于设备在不同的电源之间转换而导致中断向另外的下游从设备(未示出)供电,允许与另外的下游从设备进行通信而不会重新发现。图16的实施例可以降低在系统100中的节点上发生的电压降,并且允许自适应供电从收发器的电压输入看到与提供给下一个下游从设备的偏置电压相同的电压。
以下段落提供了本文公开的各种实施例的例子。
例子1是一种能够自适应地利用多个电源的从设备,包括:上行收发器,用于耦合到通信系统总线的上行链路;和耦合到所述总线的上行链路和本地电源的电路,其中所述电路从提供所述本地电源切换到为所述从设备供电,从而提供由所述总线的上行链路供应的总线电力为所述从设备供电。
例子2包括例子1的主旨,并且进一步指出当所述本地电源提供的电压下降到所述总线的上行链路的偏置电压以下时,所述电路从提供所述本地电源切换到为所述从设备供电,从而提供由所述总线的上行链路供应的总线电力为所述从设备供电。
例子3包括例子1-2中任一项所述的主旨,并且进一步指出所述电路包括单极设备,以耦合在所述总线的上行链路和参考地之间。
例子4包括例子3的主旨,并且进一步指出所述单极设备限制从所述总线的上行链路到所述参考地的电流流动。
例子5包括例子1-4中任一项所述的主旨,并且进一步指出所述电路包括滤波器,以在所述电路切换到提供由总线的上行链路供应的总线电力为所述从设备供电时控制接通时间。
例子6包括例子1-5中任一项所述的主旨,并且进一步指出所述电路进一步从提供由总线的上行链路供应的总线电力切换到为所述从设备供电,从而提供所述本地电源为所述从设备供电。
例子7包括例子6的主旨,并且进一步指出当所述总线的上行链路的偏置电压下降到所述本地电源提供的电压以下时,所述电路从提供由总线的上行链路供应的总线电力切换到为所述从设备供电,从而提供所述本地电源为所述从设备供电。
例子8包括例子1-7中任一项所述的主旨,并且进一步指出在不会中断沿着所述总线的上行链路的通信的情况下,所述电路从提供所述本地电源切换到为所述从设备供电,从而提供由所述总线的上行链路供应的总线电力为所述从设备供电。
例子9包括例子1-8中任一项所述的主旨,并且进一步指出在不会触发线路故障的情况下,所述电路从提供所述本地电源切换到为所述从设备供电,从而提供由所述总线的上行链路供应的总线电力为所述从设备供电。
例子10包括例子1-9中任一项所述的主旨,并且进一步指出所述总线的上行链路是双线链路。
例子11包括例子1-10中任一项所述的主旨,并且进一步包括:下游收发器,用于耦合到通信系统的总线的下游链路;其中所述电路还向所述下游链路提供电力。
例子12包括例子11的主旨,并且进一步指出当所述本地电源为所述从设备供电时,所述电路从所述本地电源向所述下游链路提供电力。
例子13包括例子12的主旨,并且进一步指出当所述总线电源为所述从设备供电时,所述电路从所述总线电源向所述下游链路提供电力。
例子14包括例子1-13中任一项所述的主旨,并且进一步指出在不触发通信系统中的从设备的重新发现的情况下,所述电路从提供所述本地电源切换到为所述从设备供电,从而提供由所述总线的上行链路供应的总线电力为所述从设备供电。
例子15包括例子1-14中任一项所述的主旨,并且进一步指出所述上行收发器定期从所述总线的上行链路接收同步控制帧。
例子16包括例子1-15中任一项所述的主旨,并且进一步包括:处理电路,用于基于由所述上行收发器从所述上游设备通过所述上行链路接收的信号来产生时钟信号,其中,所述从设备通过总线接收和提供信号的时序基于所述时钟信号。
例子17包括例子16的主旨,并且进一步指出基于信号产生时钟信号包括基于所述信号中的同步控制帧的前导码产生时钟信号。
例子18是一种能够自适应地利用多个电源为通信设备供电的通信系统,包括:主设备;从设备;和所述主设备和所述从设备之间的通信链路,其中所述主设备在所述通信链路上提供偏置电压,并且所述从设备包括在所述通信链路上从由本地电源供电切换到由偏置电压供电的电路。
例子19包括例子18的主旨,并且进一步指出所述从设备是第一从设备,所述通信链路是第一通信链路,并且所述通信系统还包括:第二从设备;和在所述第一从设备和所述第二从设备之间的第二通信链路。
例子20包括例子19的主旨,并且进一步指出所述电路进一步在所述第二通信链路上提供偏置电压。
例子21包括例子18-20中任一项所述的主旨,并且进一步包括:与所述从设备耦合的扬声器或麦克风。
例子22是一种在通信系统中为从设备供电而不中断通信系统中的通信的方法,包括:利用本地电源为从设备供电;并在检测到本地电源中断或不足时,利用来自上游通信链路的偏置电压为从设备供电。
例子23包括例子22的主旨,并且进一步包括:在利用来自上游通信链路的偏置电压为从设备供电后,在检测到本地电源恢复或充足时,利用本地电源为从设备供电,
例子24包括例子22-23中任一项所述的主旨,并且进一步包括:在检测本地电源的中断或不足时在上游通信链路上发送或接收数据,其中发送或接不中断。
例子25包括例子22-24中任一项所述的主旨,并且进一步包括:在检测到本地电源中断或不足时,利用来自上游通信链路的偏置电压为下游通信链路产生偏置电压。
例子26是一种在通信系统中为从设备供电而不中断通信系统中的通信的方法,包括:利用第一电源为所述从设备供电;和在所述第一电源中断或不足时,利用第二电源给所述从设备供电,其中所述第一电源与所述第二电源不同,所述第一电源为来自上游通信链的本地电源和偏置电压中的一种,并且所述第二电源是来自上游通信链路的本地电源和偏置电压中的另一种。
例子27包括例子26的主旨,并且进一步包括:在利用所述第二电源为所述从设备供电之后,在所述第一电源恢复或充足时,利用所述第一电源为所述从设备供电。
例子28包括例子26-27中任一项所述的主旨,并且进一步包括:在所述第一电源中断或不足时在所述上游通信链路上发送或接收数据,其中发送或接收不中断。
例子29包括例子26-28中任一项所述的主旨,并且进一步包括:在所述第一电源中断或不足时,利用所述第二电源为所述下游通信链路产生偏置电压。
例子30是根据本文公开的任何实施例的具有自适应功率功能的通信系统。
例子31是根据本文公开的任何实施例的向从设备提供适应性电力的方法。
例子32是根据本文公开的任何实施例耦合到从设备以向从设备提供自适应功率功能的支持电路。
例子33是一种在通信系统中操作从设备的方法,包括:在从本地电源接收电力的同时参与通信系统中的通信,和在通信系统中继续参与通信,不中断或重新发现,同时停止从本地电源接收电力并从总线偏置接收电源。
例子34可包括例子33的主旨,并且可以进一步指定,当从本地电源接收的电压降低到从总线偏置接收的电压以下时,停止从本地电源接收电力并且从总线偏置接收电力被触发。
例子35可包括例子33-34中任一项所述的主旨,并且可以进一步包括:在通信系统中继续参与通信之后,不中断或重新发现,同时停止从本地电源接收电力并且从总线偏差接收电力,在通信系统中继续参与通信而不中断或重新发现,同时停止从总线偏置接收电源并从本地电源接收电源。
例子36是从设备,其包括用于执行本文公开的任何自适应功率方法的装置。