多节点链接网络上的GPIO到GPIO通信的制作方法

文档序号:11590290阅读:421来源:国知局

相关申请的交叉引用

本申请要求于2016年1月29日提交的标题为“gpio-to-gpiocommunicationonamulti-nodedaisy-chainednetwork”的美国临时专利申请no.62/289,066的优先权。该优先权申请通过引用整体并入本文。



背景技术:

随着电子部件尺寸减小,并且随着性能期望的增加,更多组件被包括在先前未仪器化或仪器更少的设备中。在一些设置中,用于在这些组件之间(例如,在车辆中)交换信号的通信基础设施需要厚而重的电缆束。

附图说明

通过以下结合附图的详细描述将容易理解实施例。为了便于描述,相同的附图标记表示相同的结构元件。在附图中,通过示例而非限制的方式示出了实施例。

图1是根据各种实施例的示例性双线通信系统的框图。

图2是根据各种实施例,可以包括在图1的系统的节点中的节点收发器的框图。

图3是根据各种实施例,用于图1的系统中的通信的同步控制帧的一部分的图。

图4是根据各种实施例,在图1的系统中用于通信的超帧的图。

图5示出了根据各种实施例,用于图1的系统的不同操作模式中的同步控制帧的示例格式。

图6示出了根据各种实施例,在图1的系统的不同操作模式下的同步响应帧的示例格式。

图7是根据各种实施例,图2的总线协议电路的各种组件的框图。

图8-11示出了根据本文描述的总线协议的各种实施例的沿着双线总线的信息交换的示例。

图12示出根据各种实施例的双线总线的环形拓扑及其上的单向通信方案。

图13示意性地示出了根据各种实施例,可以用作图1的系统中的节点或主机的设备。

图14示出了根据本文描述的总线协议的各种实施例的沿着双线总线的信息交换的示例。

图15是根据各种实施例的其中从节点耦合到能量存储设备和外围设备的布置的框图。

图16描绘了图1的系统的实施例。以及可由主机执行以选择性地路由系统周围的音频的方法的流程图。

图17是根据各种实施例,可以在图16所示的系统周围的音频的选择性路由期间由从节点执行的方法的流程图。

图18描绘了图1的系统的实施例,其中从节点具有作为外围设备的无线收发器。

图19描绘了图1的系统的实施例,其中主机耦合到无线收发器。

图20-23描绘了根据各种实施例,可以包括在图20的系统中的麦克风、麦克风电缆和音频接收设备的示例布置。

图24示出根据各种实施例,其中从节点接近耦合到车辆的车顶的天线的布置。

图25示出了根据各种实施例,在图1的系统中多种类型的视听设备作为从节点的布置。

图26示出了根据各种实施例,图1的机器人肢体和系统的布置,以使得能够在机器人肢体的传感器和致动器之间进行通信。

图27是根据各种实施例,包括发送和接收邮箱的系统100的组件的布置的框图。

图28示出根据各种实施例,车辆中的从节点和相关联的外围设备的布置。

图29是图1的系统的元件和总线监视器的布置的框图。

图30是根据各种实施例,用于开始总线监视器的操作的方法的流程图。

图31-34示出根据各种实施例,可用于支持gpio到gpio通信的各种寄存器。

图35描绘根据各种实施例,用于管理gpio数据更新的主节点中的示例状态机。

图36和图37示出了根据各种实施例的将多个从节点映射为虚拟端口的输入并且将主节点映射为来自虚拟端口的输出的系统行为的示例。

图38提供了根据各种实施例的对距离逻辑的gpio的系统级可视化。

图39和40示出根据各种实施例,用于通过距离输入和输出引脚的gpio的示例gpiodnmsk交叉开关。

图41示出了根据各种实施例,在主节点和从节点的示例布置中的距离功能性示例gpio。

图42和图43示出根据各种实施例,不同的gpiodnmsk和gpiodinv设置以及它们对于来自从节点的不同贡献的对gpiooen的值的影响。

具体实施方式

随着电子部件尺寸减小,并且随着性能期望的增加,更多组件被包括在先前未仪器化或仪器较少的设备中。这种朝向增加的仪器的驱动通常被用于在组件之间交换信号的通信基础设施限制。例如,在汽车(以及其他封闭和/或移动系统,例如机器人系统)中的传感器(例如麦克风,摄像机等)的增加已经导致部件之间的过度的布线。这种过度的布线伴随着系统复杂性和重量的增加,以及性能和可靠性的降低。

这里描述的是在双线总线(例如,双绞线对)上提供低等待时间,时分复用(tdm)通信的通信系统。在这些系统中,双向同步数据(例如,数字音频),时钟和同步信号可以由双线总线提供,支持总线上的节点之间的直接点对点连接,并且允许多个菊花链节点在不同位置处贡献或消耗tdm信道内容。这些通信系统实现下游业务(例如,从主节点到最后一个从节点),上游业务(例如,到来自从节点的主节点)和在相同的双线总线上的功率传输。

在下面的详细描述中,参考形成其一部分的附图,其中相同的附图标记始终表示相同的部件,并且其中通过可以实施的示例性实施例的方式示出。应当理解,在不脱离本公开的范围的情况下,可以利用其他实施例,并且可以进行结构或逻辑改变。因此,以下详细描述不应被视为具有限制意义。

各种操作可以以最有助于理解所要求保护的主题的方式依次被描述为多个离散动作或操作。然而,描述的顺序不应被解释为暗示这些操作必须是顺序相关的。具体地,这些操作可以不按照呈现的顺序执行。所描述的操作可以以与所描述的实施例不同的顺序来执行。在附加实施例中可以执行各种附加操作和/或可以省略所描述的操作。

出于本公开的目的,短语“a和/或b”是指(a),(b)或(a和b)。为了本公开的目的,短语“a,b和/或c”是指(a),(b),(c),(a和b),(a和c),(b和c)或(a,b和c)。

各种组件在本文中可以以单数形式提及或示出(例如,“处理器”,“外围设备”等),但这仅仅是为了便于讨论,并且以单数形式提及的任何元件可以包括根据本文教导的多个这样的元件。

该描述使用短语“在实施例中”或“在一些实施例中”,其可以各自指代相同或不同实施例中的一个或多个。此外,关于本公开的实施例使用的术语“包括”,“包括”,“具有”等是同义的。如本文所使用的,术语“电路”可以指代专用集成电路(asic),电子电路和光学电路,处理器(共享的,专用的或成组的)和/或其组合的一部分,或执行一个或多个软件或固件程序的存储器(共享,专用或组),组合逻辑电路和/或提供所描述的功能的其他合适的硬件。主节点在本文中也可以被称为主“设备”;类似地,从节点在本文中可以被称为从“设备”。

可以根据本申请要求优先权的任何现有专利申请中公开的任何适当的相关实施例来执行本文所述的任何实施例。具体地,在任何优先权文件中公开的汽车音频总线(a2b)系统的任何实施例可以与这里描述的实施例的任何组合来实现。例如,如在2013年7月12日提交的美国临时申请no.61/845,542中所讨论的,功率切换和诊断可以包括在本文所描述的双线通信系统中。在另一示例中,如在2013年7月8日提交的美国临时申请no.61/843,902中所讨论的。在另一示例中,数字相位检测器可以包括在本文所述的双线通信系统中,如美国临时申请在另一示例中,本文描述的双线通信系统可以包括在2013年7月8日提交的美国临时申请no.61/843,891中讨论的状态机功能。

图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的链路可以各自由单个双绞线对(例如,非屏蔽双绞线)形成。

主机110可以包括对主节点102进行编程的处理器,并且用作沿着总线106传输的各种有效载荷的发起者和接收者。具体地,主机110可以是集成电路间声音(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发送的数据信号,功率信号等),并接收“上游”信号(例如,102沿着总线106朝向主节点传送)。主节点102可以提供用于通过总线106进行同步数据传输的时钟信号。如本文所使用的,“同步数据”可以包括在两个连续传输往返于从节点之间具有固定时间间隔的连续流传输的数据(例如,音频信号)。在一些实施例中,由主节点102提供的时钟信号可以从由主机110提供给主节点102的i2s输入导出。从节点104可以是可寻址的网络连接点,表示在总线106上向下游传输或在总线106上传输的数据帧的可能目的地。从节点104还可以表示下游或上游数据帧的可能源。系统100可以允许控制信息和其它数据在总线106上从两个方向从一个节点传输到下一个节点。一个或多个从节点104也可以由通过总线106传输的信号供电。

具体地,主节点102和从节点104中的每一个可以包括正上游终端(表示为“ap”),负上游终端(表示为“an”),正下游终端(表示为“bp”)和负下游终端(表示为“bn”)。节点的正和负下游端子可以分别耦合到相邻下游节点的正和负上游端子。如图1所示,主节点102可以包括正和负上游终端,但是这些终端可以不使用;在其他实施例中,主节点102可以不包括正和负上游终端。沿着总线106的最后一个从节点104可(图1中的从节点2)以包括正和负下游终端,但是这些终端可以不使用;在其他实施例中,沿着总线的最后的从节点104可以不包括正和负下游终端。

如下面详细讨论的,主节点102可以周期性地向下游发送同步控制帧,可选地与用于一个或多个从节点104的数据一起发送。例如,主节点102可以48khz的频率发送同步控制帧每1024比特(表示超帧),导致总线106上的有效比特率为49.152mbps。可以支持其他速率,包括例如44.1khz。同步控制帧可以允许从节点104识别每个超帧的开始,并且结合物理层编码/信令,可以允许每个从节点104从总线106导出其内部操作时钟。同步控制帧可以包括用于用信号通知同步开始的前导码,以及允许各种寻址模式(例如,正常,广播,发现),配置信息(例如,写入从节点104的寄存器)的控制字段,i2c信息,在从节点104处的某些通用输入/输出(gpio)引脚的远程控制以及其他服务。跟随在前导码和有效载荷数据之后的同步控制帧的一部分可以被加扰,以便减少同步控制帧中的信息被误认为是新的前导码的可能性,并且使相关电磁发射的频谱变平。

同步控制帧可以在从节点104(可选地连同其他数据,其可以来自主节点102,但另外地或可选地可以来自一个或多个上游从节点104或者来自从节点104本身)之间传递,直到它到达已经由主节点102配置为最后一个从节点104或已经自识别为最后一个从节点104的最后一个从节点104(即,图1中的从节点2)。一旦接收到同步控制帧,最后的从节点104可以发送同步响应帧,随后是被允许发送的任何数据(例如,指定时隙中的24位音频样本)。同步响应帧可以在从节点104之间(可选地与来自下游从节点104的数据一起)向上游传递,并且基于同步响应帧,每个从节点104能够识别时隙(如果有的话),其中允许从节点104进行发送。

在一些实施例中,系统100中的从节点104中的一个或多个可以耦合到外围设备108并与其通信。例如,使用i2s,脉冲密度调制(pdm),tdm和/或i2c协议,从节点104可以被配置为从相关外围设备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通信并控制主节点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可以包括上游收发器122和下游收发器124。上游收发器122可以耦合到上面参照图1讨论的正上游端子和负上游端子,并且下游收发器124可以耦合到上面参照图1讨论的正和负下游端子。在一些实施例中,上游收发器122和下游收发器124可以各自是差分信令(ds)收发器。在一些实施例中,上游收发器122可以是低压ds(lvds)收发器,下游收发器124可以是lvds收发器。系统100中的每个节点可以被ac耦合到总线106,并且可以使用预定形式的ds(lvds或多点lvds(mlvds)或类似信令)沿着总线106(例如,经由上游收发器122和/或下游收发器124)传送数据信号,具有合适编码以通过总线106提供定时信息(例如,差分曼彻斯特编码,双相标记编码,曼彻斯特编码,非归零,反相(nrzi)编码具有游程长度限制或任何其它合适的编码)。在一些实施例中,总线106可以由同轴电缆提供,并且上游和下游信号可以是驱动同轴电缆的单端信号。

上游收发器122和下游收发器124可与总线协议电路126通信,并且总线协议电路126可与锁相环(pll)128和电压调节器电路130以及其它组件通信。当节点收发器120上电时,电压调节器电路130可以提高由pll128用作上电复位的“电源良好”信号。

如上所述,系统100中的一个或多个从节点104可以与数据同时地接收在总线106上传输的功率。对于功率分配(其是可选的,因为一些从节点104可以被配置为仅具有提供给它们的本地功率),主节点102可以在主节点102和从节点0之间的总线链路上放置dc偏置(例如,通过将下游端子中的一个连接到由电压调节器提供的电压源,并且将另一个下游端子连接到地)。dc偏压可以是预定电压,诸如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的本地电源可用于向一个或多个下游从节点提供功率。

在一些实施例中,上游滤波电路132可以设置在上游收发器122和电压调节器电路130之间,下游滤波电路131可以设置在下游收发器124和电压调节器电路130之间。由于每个链路总线106可以携带ac(信号)和dc(功率)分量,上游滤波电路132和下游滤波电路131可以分离ac和dc分量,将ac分量提供给上游收发器122和下游收发器124,并且将dc分量提供给电压调节器130。上游收发器122和下游收发器124的线路侧上的ac耦合基本上将收发器122和124与线路上的dc分量隔离,以允许高速双向通信。如上所述,dc分量可以被抽头用于功率,并且上游滤波电路132和下游滤波电路131可以包括铁氧体,共模扼流圈或电感器,以例如减小提供给电压调节器电路130的ac分量。在一些实施例中,上游滤波电路132可以包括在上游收发器122中,和/或下游滤波电路131可以包括在下游收发器124中;在其他实施例中,滤波电路可以在收发器122和124的外部。可以从上游滤波电路132和下游滤波电路131通过vssn端子提供返回电流,vssn端子可以通过节点收发器120连接到vss(例如,地)。上游滤波电路132和下游滤波电路131可以包括用于电流连接和回流连接的dc电压端子。

节点收发器120可以包括用于节点收发器120和外部设备155之间的收发器127i2s,用于tdm和pdm通信。尽管在此可以以单数形式提及“外部设备155”,但这仅仅为了便于示例,并且多个外部设备可以经由i2s/tdm/pdm收发器127与节点收发器120通信。如本领域中已知的,i2s协议用于携带脉冲编码调制(pcm)信息(例如,在印刷电路板上的音频芯片之间)。如本文所使用的,“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可以提供i2s从设备(关于bclk和sync),其可以从主机110接收数据,并且与主机110的i2s接口时钟同步地向主机110发送数据。特别地,可以在sync引脚处接收i2s帧同步信号作为来自主机110的输入,并且pll128可以使用该信号来生成时钟。当节点收发器120包括在从节点104中时,外部设备155可以包括一个或多个外围设备108,并且i2s/tdm/pdm收发器127可以提供i2s时钟主机(用于bclk和sync),其可以控制i2s通信。具体地,i2s/tdm/pdm收发器127可以在sync引脚处提供i2s帧同步信号作为输出。节点收发器120中的寄存器可以确定哪些和多少i2s/tdm信道作为数据时隙通过总线106发送。节点收发器120中的tdm模式(tdmmode)寄存器可以存储多少个tdm信道tdm发送或接收引脚上的连续sync脉冲。与信道大小的知识一起,节点收发器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从设备。特别地,i2c串行时钟信号可以在scl引脚处作为来自主机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和从外围设备108访问。正常模式可以由主机110全局配置,具有或不具有同步上游数据和具有或没有同步下游数据。

图3是根据各种实施例的用于系统100中的通信的同步控制帧180的一部分的图。具体地,同步控制帧180可以用于数据时钟恢复和pll同步,如下所述。如上所述,因为通过总线106的通信可以在两个方向上发生,所以通信可以被时间复用到下游部分和上游部分。在下游部分中,可以从主节点102发送同步控制帧和下游数据,而在上游部分中,同步响应帧和上游数据可以从每个从节点104发送到主节点102。同步控制帧180可以包括前导码182和控制数据184。每个从节点104可以被配置为使用接收到的同步控制帧180的前导码182作为用于馈送pll128的时基。为了促进这一点,前导码182不遵循有效控制数据184的“规则”,因此可以容易地与控制数据184区分开。

例如,在一些实施例中,可以使用时钟优先,零差分曼彻斯特编码方案上的转换来对沿着总线106的通信进行编码。根据这种编码方案,每个位时间从时钟转变开始。如果数据值为零,则编码信号在位时间的中间再次转变。如果数据值为1,则编码信号不再次转变。图5中所示的前导码182可能违反编码协议(例如,通过具有在比特时间5,7和8的开始处不发生的时钟转变),这意味着前导码182可能不匹配任何合法(例如,正确编码)的模式此外,前导码182不能通过获取控制数据184的合法模式并且对于单个位时间或多个位时间周期强制总线106为高或低而被再现。图5中所示的前导码182仅是示例性的,并且同步控制帧180可以包括可以以任何合适的方式违反控制数据184所使用的编码的不同的前导码182。

总线协议电路126可以包括差分曼彻斯特解码器电路,其在从总线106恢复的时钟上运行,并且检测同步控制帧180以向pll128发送帧同步指示符。以这种方式,同步控制帧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可以为零。总线106上的基本上所有信号可以被线路编码,并且同步信号以同步控制帧中的同步前导码182的形式从主节点102向下游转发到最后的从节点104(例如,从节点104c)180,如上所述。下游tdm同步数据可以包括在同步控制帧180之后的x个下游数据时隙198中。下游数据时隙198可以具有相等的宽度。如上所述,pll128可以提供节点用于对通过总线106的通信进行定时的时钟。在其中总线106用于传输音频数据的一些实施例中,pll128可以在多个音频采样频率(例如,1024个音频采样频率,导致每个超帧中的1024位时钟)。

上游传输的周期194可以包括同步响应帧197和y个上游数据时隙199,其中y可以为零。在一些实施例中,每个从节点104可以消耗下游数据时隙198的一部分。最后的从节点(例如,图1中的从节点2)可以响应同步响应帧197(在最后从节点的寄存器中存储的预定响应时间之后)。同步响应帧197之后的上游数据时隙199中的每个从节点104可以添加上游tdm同步数据。上游数据时隙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比特),并且可以从先前超帧中使用的值递增(对字段的长度进行模数)。接收到意外的cnt值的从节点104可以被编程为返回中断。

在一些实施例中,同步控制帧180可以包括节点寻址模式(nam)字段。nam字段可以具有任何合适的长度(例如,2比特),并且可以用于控制通过总线106对从节点104的寄存器的访问。在正常模式中,从节点104的寄存器可以从/基于从节点104的id和寄存器的地址被写入。广播事务是应当由每个从节点104进行的写入。在一些实施例中,nam字段可以提供四个节点寻址模式,包括“无”(例如,不寻址到任何特定从节点104的数据),“正常”(例如,数据单播到在下面讨论的地址字段中指定的特定从节点104),“广播”(例如,寻址到所有从节点104)和“发现”。

在一些实施例中,同步控制帧180可以包括i2c字段。i2c字段可以具有任何合适的长度(例如,1位),并且可用于指示下游传输192的周期包括i2c事务。i2c字段可以指示主机110已经提供指令以远程访问作为关于相关联的从节点104的i2c从设备的外围设备108。

在一些实施例中,同步控制帧180可以包括节点字段。节点字段可以具有任何合适的长度(例如,4比特),并且可用于指示针对正常和i2c访问寻址哪个从节点。在发现模式中,该字段可以用于对从节点104的节点id寄存器中的新发现的从节点104的标识符进行编程。当从节点104由主节点102发现,如下所述。在一些实施例中,主节点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和datavld。对于发现事务,地址字段可以具有预定值(例如,如图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可以(使用rw字段)向一个或多个指定的从节点104(使用nam和节点字段)发送读和写请求,并且可以指示该请求是否是对从节点104的请求专用于总线106的i/o请求,对从节点104的i2c请求或者将被传递到在从节点104的一个或多个i2c端口处耦合到从节点104的i2c兼容外围设备108的i2c请求。

转到上游通信,同步响应帧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。在一些实施例中,用于生成irq字段的从节点104将将其自己的id插入到irqnode字段中。

在一些实施例中,同步响应帧197可以包括第二crc(crc-4)字段。crc-4字段可以具有任何合适的长度(例如,4比特),并且可用于传送用于irq和irqnode字段的crc值。

在一些实施例中,同步响应帧197可以包括作为同步响应帧197的最后位(例如,最后10位)的irq字段、irqnode字段和crc-4字段。如上所述,这些中断相关字段可以具有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中的其他地方出现的可能性,除了或代替技术例如如上所述的加扰和/或错误编码。例如,可以使用更长的同步序列,以便减少同步响应帧180的剩余部分的特定编码将与其匹配的可能性。另外或替代地,同步响应帧的其余部分可以被构造为使得同步序列不能发生,例如通过将固定的“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是要发送的数据的大小,当需要时,主节点102可以配置数据压缩的使用。

在一些实施例中,进入节点收发器120的接收流可以由解扰电路166解扰。解复用器(demux)168可以从接收流中解复用前导码,同步帧和数据。接收侧的crc检查电路159可以检查所接收的同步帧以获得正确的crc。当crc检查电路159识别输入同步控制帧180中的crc故障时,可以向控制电路154通知该故障,并且不会在同步控制帧180的控制数据184中执行任何控制命令。当crc检查电路159识别输入同步响应帧197中的crc故障,则可以通知控制电路154故障,并且可以在中断帧中产生用于传输到主机110的中断。解压缩/解压缩电路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中,该寄存器可以定义数据时隙,其在添加本地产生的下游时隙之前或之后被传递到下一个从节点104,如下面参照ldnslots进一步详细讨论的。

在一些实施例中,控制电路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发送或从各个从节点104接收不同量的数据。具体来说,从节点1具有两个元件,从节点4具有四个元件,图5中所示的系统具有三个元件,因此由主节点102发送的数据包括用于从节点1的两个时隙,用于从节点4的四个时隙和用于从节点5的三个时隙。类似地,从节点0具有三个元件:从节点2具有三个元件,从节点3具有三个元件,从节点6具有一个元件,并且从节点7具有四个元件,因此由那些从节点104向上游发送的数据包括相应数量的时隙。应当注意,不必在元素和时隙之间具有一对一的相关性。例如,包括在具有三个麦克风的外围设备108中的麦克风阵列可以包括数字信号处理器,该数字信号处理器组合来自三个麦克风的信号(以及可能还有从主节点102或从其他从节点104接收的信息)以产生单个数据样本,其取决于处理的类型,可以对应于单个时隙或多个时隙。

在图8中,主节点102发送同步控制帧(scf),随后是耦合到特定从节点104(sd)的扬声器的数据。每个连续的从节点104转发同步控制帧,并且还转发至少任何目的地为下游从节点104的数据。特定的从节点104可以转发所有数据或者可以移除去往该从节点104的数据。当最后的从节点104接收同步控制帧,从节点104发送同步响应帧(srf),可选地跟随从节点104被允许发送的任何数据。每个连续的从节点104将同步响应帧连同来自下游从节点104的任何数据一起转发,并且可选地插入来自耦合到特定从节点104(md)的一个或多个麦克风的数据。在图1的示例中,如图8所示,主节点102向从节点1,4和5(在图8中被描绘为有源扬声器)发送数据,并且从从节点7,6,3,2和0(在图8中被描绘为麦克风阵列)。

图9-11示出在系统100中各种示例数据传输操作。在图9-11中,scfs被示出为相邻节点之间时间对准,所述srf用于示出作为相邻节点之间时间延迟;这仅仅是为了便于示例,而scf和srf可能从节点到节点具有相似的时间延迟。时隙“y”也是下游数据的一部分。

图9示意性地示出根据各种实施例的从下游收发器124的角度来看,从下游传输动态移除数据和将数据插入到上游传输中。在图9中,如图8,主节点102以相反的顺序(例如,用于从节点5的数据后面是用于从节点4的数据)发送同步控制帧(scf),其后是用于从节点1、4和5之后是从节点1的数据等)(参见标记为master的行)。当从节点1接收到该传输时,从节点1去除其自己的数据,并且仅向从节点2转发同步控制帧,随后是从节点5和4的数据。从节点2和3不改变地转发数据(参见行标记为slave2),使得由从节点1转发的数据被从节点4接收(参见标记为从节点3的行)。从节点4去除其自己的数据,并且仅向从节点5转发同步控制帧,其后跟随有用于从节点5的数据,并且类似地,从节点5去除其自己的数据,并且仅向同步控制帧转发到从节点6。从节点6将同步控制帧转发到从节点7(参见标记为slave6的行)。

在这一点上,从节点7向从节点6发送同步响应帧(srf),其后是其数据(参见标记为从属节6的行)。从节点6将同步响应帧连同来自从节点7的数据及其自己的数据一起转发到从节点5,从节点5继而将同步响应帧连同来自从节点7和6的数据一起转发到从节点4从节点4没有要添加的数据,因此它简单地将数据转发到从节点3(参见标记为slave3的行),其将数据连同其自己的数据一起转发到从节点2(参见标记为slave2的行),其继而将数据连同其自己的数据一起转发到从节点1.从节点1没有要添加的数据,因此它将数据转发到从节点0,从节点0将数据与其自己的数据一起转发。结果,主节点102接收同步响应帧,其后跟随来自从节点7,6,3,2和0的数据(参见标记为master的行)。

图10示出了从下游收发器124的角度动态移除来自下游传输的数据和将数据插入上游传输的另一示例,如图9所示,但在图10中,从节点104与作为外围设备108的传感器和致动器耦合,使得主节点102向下游向所有从节点104发送数据,并从所有从节点104接收回数据。同样在图10中,数据基于它所指向的或从其发起的节点地址来排序。标记为“y”的数据时隙可以用于数据完整性校验或数据校正;在一些实施例中,标记为“y”的数据时隙可以额外地或替代地包括在下行数据中。

图11示出了从下游收发器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,数据可以由特定从节点104传递到一个或多个其他从节点104。这样的从-从关系可以例如经由主节点102来配置。

因此,在各种实施例中,从节点104可以作为有源/智能中继器节点操作,具有选择性地转发、丢弃和添加信息的能力。从节点104通常可以执行这样的功能,而不必解码/检查所有数据,因为每个从节点104知道它将在其中接收/发送数据的相关时隙,并且因此可以从其中移除数据或添加数据进入时隙。尽管从节点104可能不需要解码/检查所有数据,但是从节点104通常可以重新计时其发送/转发的数据。这可以提高系统100的鲁棒性。

在一些实施例中,总线106可以被配置为用于环形拓扑中的单向通信。例如,图12示出了环形拓扑中的主节点102和四个从节点104的布置1200,并且示出了根据各种实施例的用于布置1200中的单向通信的信令和定时考虑。在这样的实施例中,节点中的收发器120可以包括仅接收收发器(masterin)和仅发送收发器(masterout),而不是用于上游和下游通信的两个双向收发器。在图12所示的链路层同步方案中,主节点102发送同步控制帧(scf)180,可选地跟随耦合到各个从节点104的三个扬声器的“下游”数据1202(用于不同扬声器的数据可以以任何合适的顺序排列,如如上文参考图8-11所讨论的),并且每个连续的从节点104将同步控制帧180连同来自先前从节点104的任何“上游”数据和其自身的“上游”数据一起转发,以提供“上游”数据1204(例如,来自八个不同麦克风的数据可以以任何合适的顺序排列,如上文参考图8-11所讨论的)。

如本文所述,数据可以以多种方式中的任一种在系统100的元件之间传送。在一些实施例中,数据可作为一组同步数据时隙的一部分由从节点104上游发送(例如,使用数据时隙199)或由从节点104或主节点102下游发送(例如,使用数据时隙198)。可以通过改变数据时隙中的比特数或者包括额外的数据时隙来调整这种数据的量。数据还可以通过包括在同步控制帧180或同步响应帧197中而在系统100中传送。以这种方式传送的数据可以包括来自主机110的i2c控制数据(具有来自与从机相关联的外围设备108的响应节点104);访问从节点104的寄存器(例如,用于发现和配置插槽和接口),其可以包括从主机110/主节点102到从节点104的写访问以及从从节点104到主机110的读访问/主节点102;以及经由从外围设备108到主机110的中断的事件信令。在一些实施例中,gpio引脚可以用于将信息从从节点104传送到主节点102(例如,通过使主节点102轮询gpio引脚通过i2c,或通过使从节点104的节点收发器120在中断请求引脚产生中断)。例如,在一些这样的实施例中,主机110可以经由i2c向主节点102发送信息,然后主节点102可以经由gpio引脚将该信息发送到从机。可以使用这些通信路径中的任何一个或多个来传输本文讨论的通过总线106传输的任何类型的数据。本文可以公开系统100内的其他类型的数据和数据通信技术。

本公开的实施例可以使用任何合适的硬件和/或软件实现到系统中以根据需要配置。图13示意性地示出根据各种实施例的可用作系统100中的主机或节点(例如,主机110、主节点102或从节点104)的设备1300。在图13中示出了多个部件,但是可以省略或复制这些组件中的任何一个或多个,以适合于应用。

另外,在各种实施例中,设备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,存储器1304本身可以包括一个或多个存储器设备,诸如易失性存储器(例如,动态随机存取存储器(dram))、非易失性存储器(例如,只读存储器(rom))、闪存、固态存储器和/或硬盘驱动器。

在一些实施例中,存储器1304可以用于存储编程指令的工作副本和永久副本,以使得设备1300执行本文公开的技术中的任何合适的技术。在一些实施例中,用于执行上述技术的机器可访问介质(包括非暂时性计算机可读存储介质)、方法、系统和设备是本文公开的用于通过双线总线进行通信的实施例的示例性示例。例如,计算机可读介质(例如,存储器1304)可以具有存储在其上的指令,当由包括在处理设备1302中的处理设备中的一个或多个执行时,使得设备1300执行所公开的技术。

在一些实施例中,设备1300可以包括另一通信芯片1312(例如,一个或多个其他通信芯片)。例如,通信芯片1312可以被配置为管理用于向和从设备1300传送数据的无线通信。术语“无线”及其派生词可以用于描述电路、设备、系统、方法、技术、通信通道等,其可以通过使用调制的电磁辐射通过非固体介质来传送数据。该术语并不意味着相关联的设备不包含任何导线,尽管在一些实施例中它们可能不包括。

通信芯片1312可以实现多种无线标准或协议中的任何一种,包括但不限于包括wi-fi(ieee802.11家族),ieee802.16标准(例如,ieee802.11标准)的电气和电子工程师协会ieee802.16-2005修正),长期演进(lte)项目以及任何修改,更新和/或修订(例如,高级lte项目,超移动宽带(umb)项目(也称为“3gpp2”)等等。)。ieee802.16兼容的宽带无线接入(bwa)网络通常被称为wimax网络,wimax网络是代表微波接入的全球互通性的缩写,wimax是通过针对ieee802.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可以包括用于促进无线通信和/或接收其他无线通信(诸如am或fm无线电传输)的天线1322。

在一些实施例中,通信芯片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分离(例如,ac线路功率,由汽车电池提供的电压等)。例如,电池/电源电路1314可以包括上面参照图2讨论的上游滤波电路132和下游滤波电路131,并且可以通过总线106上的偏置来充电。

设备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)中。

抽取支持更低的采样率,并使用多个插槽来支持更高的采样率

在一些实施例中,总线106的节点可以支持单个高带宽音频采样率(例如,44.1khz-48khz)。然而,许多数字音频信号可能不总是需要由总线106支持的完整音频频谱。例如,一些音频噪声消除应用可能不需要通过总线106发送的一些音频信号的全带宽。通过抽取信号不需要全带宽,多个信道可以在单个音频流内被“打包”,并且沿着总线106独立地分布到不同的从节点104。例如,抽取的音频流可以包括多信道噪声消除流,多信道活动声音音频,或其他较低带宽流。低于40khz的采样率可能足够用于例如人类语音,较低质量的音频和fm无线电的传输。

在同步数字音频网络(例如,总线106)内,提供多个音频流的常规方法通常需要以由最高音频带宽信道的需要选择的采样率提供所有流。所有其它信道可能被迫保持相同的高采样音频速率,因此如果不需要高采样音频速率,则可能浪费数字吞吐量。假定总数字总线吞吐量有限,该常规冗余可以降低要发送的可能信道的数量。

如果音频被替代地抽取,则总线106可以通过在主节点102处复用流并且选择性地收听或接收在从属节点处的一个或多个信道来允许在单个音频时隙内传输多个音频信道节点104。

如果数字音频信号需要比总线106的超帧速率更高的采样速率,则还可以使用总线106通过在多个信道上传输音频信号来支持更高的采样速率(例如,在多个在单个超帧190内的数据时隙)。例如,从节点104可以使用多个数据时隙以比超帧速率更高的采样速率(例如,使两个数据时隙加倍超帧速率,四个数据时隙使超帧速率加倍等)来进行发射。对于更高质量的音频(例如,专业音频)和dvd音频,大于48khz的采样率可是期望的。

为了在从节点104中支持两倍和四倍的采样速率,主节点102可以在其到主机110的采样频率接口处使用两倍和四倍的tdm数据信道的量。为了增加采样速率,多个整个通道和/或通道的分数。

在一些实施例中,单个外围设备108(与从节点104相关联)的数据可以占据多个下游数据时隙198。该数据可以是例如音频数据。在一些实施例中,来自单个外围设备108(与从节点104相关联)的数据可以占据多个上游数据时隙199。图14示出了根据本文描述的总线协议的各种实施例的沿着双线总线106的信息交换的示例。如图14的“主发送”行所示,一个下游数据时隙可以被发往与从节点1相关联的扬声器的发言者数据占据,并且两个下游数据时隙(sd2(1)和sd2(2))可以被发往与发言者相关联因此,与从节点2相关联的扬声器可以以与从节点1相关联的扬声器的速率的两倍速率接收数据。多个数据时隙的类似使用可以发生在上游数据时隙199中。

在一些实施例中,第一超帧190的上游数据时隙199中的特定数据时隙可以包括来自第一外围设备的数据,而第二超帧190的上游数据时隙199中的特定数据时隙可以包括数据从不同的第二外围设备。例如,如图4的“主接收”行中的第一同步响应帧之后所示,如图14所示,第一上游数据时隙可以被来自与从节点1相关联的麦克风的麦克风数据占用,并且第二上游数据时隙可以被来自与从节点0相关联的麦克风a(md0a)的麦克风数据占用。如图14的“主接收”行中的第二同步响应帧之后所示,第一上游数据时隙可以再次被来自与从节点1相关联的麦克风的麦克风数据占用,但第二上游数据时隙可以被来自与从节点0(md0b)相关联的麦克风b的麦克风数据占用。因此,与从节点1相关联的麦克风可以以与从节点104相关联的麦克风的速率的两倍的速率在总线106上提供数据。多个数据时隙的类似使用可发生在下游数据时隙198中。图14示出了其中与同一从节点相关联的多个外围设备共享特定上游数据时隙的示例,在一些实施例中,与不同从节点相关联的多个外围设备可以共享特定上游数据时隙。

如上所述,经由i2s/tdm总线(例如,使用节点收发器120的i2s/tdm/pdm收发器127)与外围设备108耦合的从节点104可以与外围设备108通信以小于超帧速率的速率。从节点104中的设置可以通过什么因子确定从外围设备通信相对于超帧速率(例如,2倍,4倍等)以及多个外围设备108(或多个信道到耦合到从节点104的单个外围设备108)可以通过时分复用共享从节点104和主节点102之间的通信时隙(例如,两个外围设备108可以交替地将数据放置在从节点104和主节点102之间的给定通信时隙主节点102和从节点104)。在一些实施例中,当数据速率降低时,当“缩减数据速率”外围设备108花费很长时间将数据发送回从节点104时,从节点104可以在外部设备108的在数据应被发送到主节点102(具有存储在从节点104处的整数)的时间之前的整数个超帧。

在一些实施例中,节点收发器120的i2s/tdm/pdm收发器127可以相对于超帧速率以降低的速率运行。例如,在48khz超帧速率下允许的降低速率可以包括24khz、12khz、6khz、4khz、3khz、2.4khz、2khz、1.71khz和1.5khz。节点收发器127可以发送由i2s/tdm/pdm收发器127在上游或下游接收的数据。不同的从节点104的i2s/tdm/pdm收发器127可以以不同的速率运行。在一些实施例中,主节点102的i2s/tdm/pdm收发器127可以在系统100中以最高数据速率运行。

在一些实施例中,总线106上的数据时隙可以被配置为以完全连续的音频速率(例如,48khz)运行,或者通过跳过用于超帧190的数据时隙以减小的速率运行,包含数据(例如,当在系统100中仅存在“降低的采样率”麦克风节点作为外围设备108时)。该方法可以通过减少总线106上的活动水平而不增加总线106上的信道带宽来节省功率。

在一些实施例中,总线106上的数据时隙可以被配置为以完全连续的音频速率运行,或者通过将用于特定从节点104的总线数据时隙分时为多个i2s/tdm信道,而不跳过超帧190的数据时隙。当不同类型的外围设备108沿着总线106耦合到从节点104(例如,耦合到一个从节点104的多轴加速度计,耦合到另一个从节点104的麦克风或放大器节点等)。这种方法可以增加总线106上的信道带宽并节省一些功率。

总线106上的节点可以包括用于存储与降低速率操作相关的配置信息的一个或多个寄存器(例如,在存储器1304中)。例如,i2srrate寄存器可以定义字段rrdiv,其可以用于将超帧速率降低到降低的i2s速率。例如,如上所述,对于48khz的超帧速率,rrdiv可以设置为24khz、12khz、6khz、4khz、3khz、2.4khz、2khz、1.71khz或1.5khz的降低速率。在一些实施例中。i2srrate寄存器还可以包括控制位rbus,其可以用于使能总线106上的减少速率的数据时隙。在一些实施例中,i2srrate寄存器可以被定义为仅主控,自动广播,以确保该值为在总线的所有节点内是相同的,而在其他实施例中,不需要是这种情况。

i2srate寄存器可以包括用于选择从节点i2s/tdm速率作为超帧速率的整数倍的字段(例如,3比特字段),或者是超帧速率的一部分。i2srate寄存器还可以包括reduce位,用于通过钉扎减少或复制i2s/tdm数据以满足超帧速率来控制增加速率的从节点104中的rx数据的处理。share字段可以允许在总线106上实现数据时隙的共享。

i2srrctl寄存器可以提供用于允许节点的处理设备1302跟踪包含新的降低速率样本的全速率帧的比特。设置i2srrctl寄存器中的envlsb位可能导致每个数据通道的最低有效位(lsb)在发送新采样时置1,否则清零。将i2srrctl寄存器中的enxbit位置1可能会导致在每个数据通道的数据字lsb后使用一个额外的位。该额外比特可以在发送新采样时被设置,否则被清除。在一些实施例中,数据字长度可以小于信道宽度(例如,32位i2s信道中的24位数据字),并且该额外位可以指示新的采样(而通道中的剩余位可以仍然指示错误数据)。将i2srrctl寄存器中的enstrb位置1可将adr1引脚配置为指示更新速率数据更新帧的选通。对于“全速率”节点,在i2srrctl寄存器中设置enchan位可以将节点配置为产生额外的i2s/tdm数据通道,以指示更新速率数据更新的帧。

i2srrsoffs寄存器可以提供用于在速率降低的从节点104中以超帧增量移动sync边沿的字段。i2srrsoffs寄存器的rrsoffset字段可以存储用于将速率较低的从节点104的sync边沿在时间上较早地移动多个超帧的值。当i2s/tdm接收数据需要多于一个超帧190的存取时间时,该寄存器可用于最小化在总线106上传送的降低速率数据的等待时间。在一些实施例中,在降低速率的从节点104中,在数据应当被发送到主机110或其他处理器之前,活动sync边缘可以发生在两个超帧190。将rrsoffset设置为n可能导致sync边缘先于n个超帧发生。仍然可以在相同超帧190中的总线106上发送接收数据,而不管rrsoffset值如何。

传输辅助电源和电池电源

如上所述,从节点104可以由它们自己的电源本地供电和/或可以从总线106提取功率。在一些实施例中,从节点104可以提取辅助输出功率,用于为与从节点104作为外围设备108,以通过放大器(并且可能与连接到相同或不同的从节点104的其他放大器组合)创建足够的音频来为扬声器供电。放大器可以是“智能的”(例如,具有其自己的数字信号处理能力)或不是(例如,没有数字信号处理)。

在其中用于从节点104的主本地电源故障的紧急情况下,经由总线106发送辅助功率可能是特别有利的;在车辆中,例如,警告消息和其他警报仍然可以通过音频系统传输。从总线106提取辅助电源还可以消除与本地电源到从节点104(与例如有源扬声器相关联)的连接和布线相关联的成本。

另外,在总线106将功率传递到从节点104的实施例中,总线106可提供支持局部功率存储(例如,对一个或多个电池,电容器,超级电容器充电)的电流,从而减小或消除了对与从节点104(例如,音频放大器)相关联的外围设备108供电的额外的本地或幻影电源的需要。在一些实施例中,来自总线106的有限功率可用于馈送具有本地能量存储装置的从节点106,其中能量存储装置在峰值功率需求的时间期间提供必要的能量,同时在低的时间功率需求。当应用于具有高波峰因数的音频信号时,这可能是特别有利的。在一些实施例中,本地电池也可用于本地供电的从节点104(例如,以减少局部电源的线径)。

图15是布置1500的框图,其中从节点104耦合到能量存储设备1502和外围设备108(例如扬声器)。在一些实施例中,从节点104可以从总线106提取功率(例如,如上文参考图1和图2所讨论的),并且可以使用该功率来至少部分地将能量存储在能量存储装置能量存储装置1502可包括任何合适的能量存储装置,例如电容器或电池。特别地,从节点104的节点收发器120(未示出)可以包括电源电路1314,用于在总线106上接收电压偏置,并且将来自电压偏置的能量提供给能量存储装置1502。从节点104可以选择性地使用能量存储装置1502来驱动扬声器108。在一些实施例中,从节点104可以选择性地使用能量存储装置1502来驱动功率到总线106上,以向另一个从节点104提供功率。能量存储装置1502可以连接到放大器,收发器和/或其他组件或外围设备108(例如,数字信号处理器,adc,dac,电池管理电路等)。

具有扬声器和麦克风作为外围设备的节点

在一些实施例中,从节点104可以与扬声器相关联,作为外围设备108(主要使用下游通信),麦克风作为外围设备108(使用大多数上游通信),或扬声器和麦克风(使用由总线106支持的上游和下游通信)。用于从节点104的扬声器和麦克风的数量可以根据应用而变化,并且可以是任何合适的组合。这里讨论与作为外围设备的扬声器和麦克风相关联的从节点104的多个示例。在这些实施例的一些中,从节点104的节点收发器120的外围设备通信电路(例如,i2s/tdm/pdm收发器127,i2c收发器129或具有中断请求能力的一个或多个gpio引脚)具有至少一个扬声器和至少一个麦克风。主机110可以(经由主节点102)将数据推送到总线106上以与这些设备通信和/或从这些设备接收来自总线106(经由主节点102)的数据。

感应碰撞

在其中系统100包括在车辆中的一些实施例中,总线106可以提供数字网络,以帮助在碰撞期间理解车辆的完整性和事故水平。麦克风和/或其他传感器(包括在外围设备108中)可以用于感测相关联的从节点104附近的环境的状态,并且感测的信息可以在希望收集信息的应用上游或下游传输对车辆的安全和完整性。其他感测的示例可以包括超声传感器,视觉传感器或机电传感器(例如,加速度计和陀螺仪)等。

会议系统

在一些实施例中,系统100可以将与一个从节点104(或多个从节点106)相关联的麦克风采样的音频分发给与另一个从节点104(或多个其他从节点104)相关联的扬声器。例如,总线106可以在车辆(例如,汽车、豪华轿车、客车、小型货车、飞机等)周围分配获取的本地麦克风信息,使得可以在乘客和驾驶员、驾驶员到后座椅、或任何一对位置之间提供音频信息。系统100的一些实施例可以将由与从节点104中的任一个相关联的麦克风采样的音频广播到由总线106提供的音频网络中的许多其他从节点104。总线106还可以在任何合适的两个点(例如,消息、数据文件、内容流等)。

在一些实施例中,从节点104可以包括外围设备通信电路(例如i2s/tdm/pdm收发器127,节点收发器120的i2c收发器129或具有中断请求能力的一个或多个gpio引脚)以与麦克风和会议用户接口元件(例如,作为外围设备108)通信。当用户希望将来自麦克风的音频提供给耦合到总线106的另一设备时,用户可以致动会议用户接口元件。会议用户接口元件可以是例如按钮,姿势识别设备,麦克风(例如耦合到可以执行语音识别任务以识别开始和结束会议的命令的处理设备)或触摸屏显示器的指定部分。在由用户激活会议用户接口元件时,从节点104可以在总线104上的上游和/或下游提供来自麦克风的数据,以便由一个或多个其他设备(例如,节点或主机)接收和/110)。在一些实施例中,主机110可以接收麦克风数据并且可以将其路由到总线106上的另一个从节点104用于回放。从节点104还可以响应于会议用户接口元件的致动而提供路由数据,以指示麦克风数据的源和/或麦克风数据的期望目的地(a)。

例如,图16描绘了主机110,主节点102和两个从节点104及其相关联的外围设备108的布置1600以及方法1602的流程图,方法1602可以由布置1600的主机110执行以选择性地路由音频。在布置1600中,从节点0可以与单个扬声器相关联,而从节点1可以与扬声器,麦克风和充当会议用户接口元件的按钮相关联。方法1602可以表示对布置1600内的数据的路由的“主机为中心”的方法。

在1604,主机110可以向从节点0提供音乐0。音乐0表示在“标称”操作期间被路由到从节点0的任何期望的数据流。在一些实施例中,音乐0可以是视频数据,语音数据或任何其它合适的数据。主机110可以使用本文公开的任何总线协议经由主节点102通过总线106在1604向从节点0提供音乐0。

在1606,主机110可以向从节点1提供音乐1。音乐1表示在“标称”操作期间被路由到从节点1的任何期望的数据流。在一些实施例中,音乐1可以是视频数据,语音数据或任何其它合适的数据。主机110可以使用本文公开的任何总线协议经由主节点102在总线106上在1606向从节点1提供音乐1。

在1608,主机110可以从从节点1接收按钮数据。按钮数据可以指示按钮的状态(例如,按钮是否已被用户按下)。主机110可以在1608经由主节点102使用本文所公开的总线协议中的任一个在总线106上从从节点1接收按钮数据。

在1610,主机110可以从从节点1接收麦克风数据。麦克风数据可以是与从节点1相关联的麦克风作为外围设备108捕获的音频数据。主机110可以从从节点接收麦克风数据1在1610处经由主节点102使用本文公开的任何总线协议经由总线106。

在1612,主机110可以确定在1608处接收的按钮数据是否指示该按钮已被用户按下。如果主机110在1612确定按钮没有被按下,则主机110可以返回到1604并继续向从节点0提供音乐0。

如果主机110在1612处确定按钮已被按下,则主机110可进行到1614并将麦克风数据从从节点1提供到从节点0。主机110可将麦克风数据提供到从节点1而不是音乐1,中断用于麦克风数据的音乐1。从节点1可以向其相关联的扬声器提供麦克风数据,从而将与从节点1相关联的麦克风收集的音频提供给与从节点0相关联的扬声器。主机110可以在1614向从节点1提供麦克风数据经由主节点102使用本文公开的任何总线协议经由总线106。

在1616,主机110可停止向从节点1提供音乐1(以使与从节点1相关联的扬声器安静,而与从节点1相关联的麦克风正将其数据发射到总线上的其它装置),且接着可以返回到1612以确定按钮是否仍然被按压。在一些实施例中,主机110可以在1616处减少音乐1的音量,而不是停止其提供。在一些实施例中,主机110可以在1616使音乐1的音量静音,而不是停止其提供。

图17是根据各种实施例,在布置1500周围的音频的选择性路由期间可以由图16的布置1600的从节点0执行的方法1700的流程图。方法1700可以表示在布置1600内的数据路由的“以从节点为中心”的方法。

在1702,从节点0可以从主机110接收音乐0。如上面参考1604所讨论的,音乐0表示在“标称”操作期间被路由到从节点0的任何期望的数据流。在一些实施例中,音乐0可以是视频数据,语音数据或任何其它合适的数据。主机110可以使用本文公开的任何总线协议经由主节点102在总线106上在1702向从节点0提供音乐0。

在1704,从节点0可以向与从节点0相关联的扬声器提供音乐0作为外围设备108。作为响应,扬声器可以输出音乐0作为可听信号。

在1706处,从节点0可以从从节点1接收按钮数据。按钮数据可以指示与从节点1相关联的按钮的状态(例如,按钮是否已被用户按下)。在一些实施例中,从节点0可以通过总线106直接从从节点1接收按钮数据(例如,数据不必首先去往主节点102)。在一些实施例中,从节点0可以经由主节点102和/或经由主机110从从节点1接收按钮数据。通常,从节点0可以在1706使用总线协议。

在1708处,从节点0可以从从节点1接收麦克风数据。麦克风数据可以是由与从节点1相关联的麦克风作为外围设备108捕获的音频数据。在一些实施例中,从节点0可以通过总线106直接从从节点1接收麦克风数据(例如,没有数据首先必须去往主节点102)。在一些实施例中,从节点0可以经由主节点102和/或经由主机110从从节点1接收麦克风数据。通常,从节点0可以在1708使用以下任一项从从节点1接收麦克风数据:本文公开的总线协议。

在1710,从节点0可以确定在1706处接收的按钮数据是否指示该按钮已被用户按下。如果从节点0在1710确定按钮没有被按下,则从节点0可以返回到1702并继续从主机110接收音乐0。

如果从节点0在1710确定按钮已经被按下,则从节点0可以进行到1712并且向与从节点0相关联的扬声器提供麦克风数据。从节点0可以提供麦克风数据到扬声器而不是音乐0,中断用于麦克风数据的音乐0。从节点0然后可以返回到1710以确定按钮是否仍然被按压。

路由语音呼叫

在一些实施例中,系统100可以提供用于路由来自单个接收器的进入和离开语音呼叫(例如,在车辆内不同位置周围路由呼叫)的数字音频网络。利用低等待时间的下游和上游信道,可以在整个车辆中以许多有趣的方式路由高质量语音呼叫。

在一些实施例中,从节点104可以包括外围设备通信电路(诸如i2s/tdm/pdm收发器127,节点收发器120的i2c收发器129或具有中断请求能力的一个或多个gpio引脚)无线收发器可以接收语音呼叫,并且从节点104可以将表示语音呼叫的数据放置在总线106上(例如,上游或下游)。

例如,图18描绘了系统100的实施例,其中无线收发器包括在与从节点1相关联的外围设备108中。从节点1可以从无线收发器接收语音呼叫数据,并且可以将其提供给系统中的其他设备100(上游和/或下游),根据本文公开的任何总线协议。根据本文所公开的总线协议中的任一个,从节点1还可以从系统100中的任何其他设备接收数据,并将其提供给无线收发器用于包括在输出语音传输中。

在另一示例中,图19描绘了系统100的实施例,其中无线收发器1902耦合到主机110(例如,使用任何合适的通信协议)。主机110可以根据本文公开的任何总线协议从无线收发器1902接收数据并将其提供给系统100中的其他设备。根据本文所公开的总线协议中的任一个,主机110还可以从系统100中的任何其他设备接收数据,并将其提供给无线收发器1902,以包括在输出语音传输中。

通信接收器和发射器

如上面参照来自语音呼叫的无线收发器所讨论的,代替或除了向连接到总线106的从节点104提供扬声器和麦克风作为外围设备108之外,从节点104还可以与外围设备108,一个或多个通信收发器。这样的收发器的示例可以包括蓝牙模块,近场收发器,无线因特网收发器,以太网收发器,以太网音频视频桥接(eavb)收发器,用于在物联网(iot)应用中传输数据的收发器等。系统100可以有效提供扩展总线106的物理层通信链路,以不仅提供下游和上游音频通信,而且提供流通信。可以使用总线同步地传输音频,视频和任何合适的信息(其中数据与音频i2s/tdm,i2c,irq等同时传输,如上面参照i2s/tdm/pdm收发器127和i2c收发器129)。该功能对于递送和接收时间编码媒体或在不同数据流之间的定时很重要的应用中可能是特别有利的。上面参考图1和2讨论的实施例。图18和19也可应用于任何合适的通信接收器和发射器。

例如,在一些实施例中,与从节点104相关联的蓝牙模块可以与移动设备通信以经由蓝牙向总线106(例如,向从节点104或主节点102)发送信号,使得该信号可以被传递到系统100中的其他设备(例如,音频信号可以由与连接到总线106的从节点104相关联的扬声器播放)。更一般地,本文公开的总线协议可以用作到其他通信系统的桥和/或桥接多个通信系统。

内容路由

在一些实施例中,系统100可以提供允许音频内容本地传输到任意一个或多个从节点104的数字音频网络。例如,系统100可以被配置为选择性地将音频路由到不同的数字音频网络的部分(例如,后声道,前声道,在车辆的特定座位处的扬声器等)。以上参照图1和2讨论了该功能的示例。除了音频之外,这种选择性路由可以应用于任何其它合适类型的流传输内容。

自动混合

在一些实施例中,由系统100启用的节点间通信可以用于从包括在外围设备108中的许多麦克风收集音频信号,以避免在由数字分布式音频网络实现的双重通话和/或回声。具体地,总线106上的不同从节点104可以知道在总线106上传输的音频信号,并且可以通过响应地调整它们的音频输出来进行补偿。如上面参照图16和17所示,可以以分布式方式(例如,通过包括在一个或多个从节点104中的处理设备1302)或以集中式方式(例如,通过包括在主节点102或主机110中的处理设备1302)。

束形成

在一些实施例中,系统100向总线106上的多个从节点104递送和收集同步音频内容的能力可以支持波束形成应用。这样的应用可以包括检测扬声器位于何处和/或形成波束,以确保输出音频聚焦在特定区域(但是在该区域之外具有减小的或没有可听见性)。任何合适的聚焦传输或接收音频应用也可以利用系统100。

麦克风连接

在一些实施例中,系统100可以用于提供与现有的模拟麦克风,连接器和前置放大器兼容并且使用标准屏蔽三导体麦克风布线来操作的麦克风数字互连。

已经进行了以前的尝试来引入用于专业音频和声音增强的数字麦克风。在这些尝试中,音频信号在胶囊处直接从模拟转换为数字,然后数字地传输。这种方法需要定制麦克风,特殊数字电缆和数字接收器,因此不能与专业音频生态系统的其余部分兼容。

系统100可以用于通过使用节点收发器120将包含在标准麦克风公头xlr连接器(或连接到麦克风的其他壳体)中的adc连接到总线106来提供数字互连系统。adc可以是直接耦合到任何现有的模拟动态,驻极体或电容器型麦克风的输出,并且可以通过标准麦克风偏置48v“幻象电源”供电。adc可以将模拟麦克风信号转换为数字信号,并且可以使用标准麦克风电缆通过总线106(经由节点收发器120)传输该数字信号。在大多数实施例中,通过总线106的通信的高频信号特性可以与公共导体组上的较低频率模拟麦克风信号组合,而不彼此干扰,使得两者可以在相同电缆上传输,以及根据需要容易地分离。由于总线106由双线链路形成,所以可以通过标准麦克风布线来提供链路,并且因为通过总线106的通信通常以比标准音频高得多的频率进行传输,所以通过总线106的通信可以被组合麦克风布线与现有的模拟麦克风信号为向后/向前兼容性。

在麦克风的接收端,可以使用多个不同的互连布置。在一些实施例中,互连可以包括节点收发器120和数字输出,数字输出可以转换为标准s/pdif、aes/ebu、aes42或用于连接到音频接收设备的另一数字格式(例如,混合器或音频输入设备)。在一些实施例中,互连可以包括节点收发器和dac,并且可以将模拟信号发送到标准麦克风输入。这种方法的优点可以包括使用较低噪声的数字互连而不是模拟互连。在一些实施例中,互连可以连接到模拟麦克风输入,其中经由节点收发器120发送的信号在音频带之外,并且因此与模拟设备向后兼容。在一些实施例中,互连可以包括用于数字输出和模拟信号的双接收器连接,为用户提供用于在数字信号和用于不同应用的模拟信号之间进行选择的选项(例如,用于次级前置放大器的模拟信号和转换)。

在一些实施例中,节点收发器120和dac可以直接构建到xlr连接器或使用48v“幻象电源”供电的互连盒中。整个布置可以包括具有节点收发器120的标准麦克风电缆和麦克风连接器内的转换器。

这些实施例可以应用于多个麦克风设置并且用于创建“数字蛇”。在这样的实施例中,可以通过一个标准麦克风电缆经由总线106组合和发送多个麦克风信号(模拟或数字),而不需要任何大的多导体或专用数字电缆。在接收端,节点收发器120可以将每个音频输入通道分离以互连到标准音频硬件,如上所述。

图20-23描绘根据各种实施例,可包括在系统100中的麦克风2002、麦克风电缆2010和音频接收装置2020的示例布置。在这些布置中的每一个中,麦克风2002具有电缆连接器2004。麦克风电缆2010具有耦合到电缆连接器2004的第一连接器2006和耦合到音频接收设备2020的第二连接器2012。一个或多个导体耦合第一连接器2006和第二连接器2012之间传输数据。一个或多个导体可以是例如标准麦克风电缆。音频接收设备2020可以具有电缆连接器2018以耦合到麦克风电缆2010的第二连接器2012。在一些实施例中,电缆连接器2004,第一连接器2006,第二连接器2012和电缆连接器2018可以是xlr连接器,或者可以具有任何其它合适的几何形状。

图20描绘了布置2000,其中adc2008设置在第一连接器2006中或附近,并且从模拟麦克风信号生成数字输出,该数字输出被提供给设置在第二连接器2012中或附近的节点收发器120。节点收发器120可以包括四条导线,其提供用于在四条导线的上游对上传输的上游信号和/或用于在四条导线的下游对上传输的下游信号。adc2008的数字输出可以与节点收发器120的输出并行地(例如,在其自身的导线或导线上)提供。音频接收装置2020的电缆连接器2018可以接收传送节点收发器120的输出的四条导线,并且将这四条导线上的信号路由到总线106,并且可以接收传送adc2008的数字输出的导线,将数字输出路由到任何合适的数字音频输入。

图21示出了布置2100,其中adc2008设置在第一连接器2006中或附近,并且从模拟麦克风信号生成数字输出。该数字输出被提供给设置在第二连接器2012中或接近第二连接器2012的节点收发器120。如图20所示,节点收发器120的输出可以包括提供用于在四条线路的上游对上传输的上游信号和/或用于在四条线路的下游对上传输的下游信号的四条线。adc2008的数字输出可以与设置在第二连接器2012中或其附近的dac2016并行地提供。dac2016的模拟输出可以与节点收发器120的输出并行地提供(例如,在其自身的电线或电线上)。音频接收装置2020的电缆连接器2018可以接收传送节点收发器120的输出的四条导线,并将这四条导线上的信号路由到总线106,并且可以接收传送dac2016的模拟输出的导线,将模拟输出路由到任何合适的模拟音频输入。

图22示出了布置2200,其中adc2008设置在第一连接器2006中或附近,并且从模拟麦克风信号生成数字输出,该数字输出被提供给也布置在第一连接器2006中或附近的节点收发器120。节点收发器120的输出可以包括提供用于在四条导线的上游对上传输的上游信号和/或用于在四条导线的下游对上传输的下游信号的四根导线。麦克风2002的模拟输出可以与节点收发器120的输出(例如,在至少四条导线的公共集合上)组合。音频接收设备2020的电缆连接器2018可以接收与麦克风2002的模拟输出结合的节点收发器120的输出的四条导线,并且将这四条导线路由到总线106和任何合适的模拟音频输入。如上所述,因为通过总线106传送的信号通常在频率上不与模拟音频信号重叠,所以可以在相同的导体集合上传送信号,并且提取期望的信号(例如,通过滤波或由于最终接收设备来识别另一频带中的信号)。

图23示出了布置2300,其中adc2008设置在第一连接器2006中或附近,并且从模拟麦克风信号生成数字输出。该数字输出被提供给设置在第二连接器2012中或接近第二连接器2012的节点收发器120。如图20所示,节点收发器120的输出可以包括提供用于在四条线路的上游对上传输的上游信号和/或用于在四条线路的下游对上传输的下游信号的四条线。adc2008的数字输出可以与第二连接器2012中的节点收发器120的输出(例如,在其自身的导线或导线上)并行地提供,并且可以并行地提供来自麦克风2002的模拟麦克风信号到音频接收设备2020的电缆连接器2018可以接收传送节点收发器120的输出的四条导线,并将这四条导线上的信号路由到总线106接收传送模拟麦克风信号的导线并将该模拟信号路由到任何合适的模拟音频输入,并接收传送adc2008的数字输出的导线,并将该数字信号路由到任何合适的数字音频输入。

尽管图20-23示出了麦克风电缆2010内的各种位置中的各种部件,但是这些布置仅仅是示例性的,并且可以适当地重新定位部件。例如,在一些实施例中,组件(例如,adc2008,节点收发器120和/或dac2016)中的一些或全部可以位于电缆连接器2004或电缆连接器2018中。如上所述,在一些实施例中,模拟麦克风信号可以与由节点收发器120产生的总线106上的业务和/或由adc2008产生的模拟麦克风信号的数字表示共享导体。

射频接收器作为总线上的一个节点

如上面参照来自语音呼叫的无线收发器所讨论的,代替或除了向连接到总线106的从节点104提供扬声器和麦克风作为外围设备108之外,从节点104还可以与外围设备108,诸如fm(频率调制)接收器,am(振幅调制)接收器,卫星无线电接收器,电视/媒体接收器或其它空中信号接收器的一个或多个无线电接收器。在常规的车辆设置中,接收器具有安装到车顶,后窗,后扰流板或车辆的其它部分的天线,其具有将天线连接回车辆前部的头部无线电单元的长导线。这种常规方法可能遭受由于长导线的电磁干扰,这可能需要其他车载电子设备必须被仔细地设计和控制,以便不干扰在长导线上携带的信号的频率。

为了减轻这些问题并改进设计灵活性和性能,在系统100的一些实施例中,节点收发器120(例如,包括在从节点104中)可以包括与天线通信的外围设备通信电路,天线耦合到车顶或车辆的其他部分,并且外围设备通信电路可以经由有线连接与天线通信。节点收发器120可以位于靠近天线处,并且由天线接收的数据可以通过总线106传送到头单元(例如,主节点102或包括在头单元中的主机110),而不是通过将天线耦合到头单元的单个长导体。这可以通过在不易受来自其它车载电子设备的干扰的频带中数字地发送接收的数据来减少或消除电磁干扰问题。

图24示出根据各种实施例的其中从节点104接近耦合到车辆的车顶的天线2404的布置2400。天线2404(以及任何相关联的无线电接收器电路)可以是从节点104的外围设备108,并且可以经由任何合适的外围设备通信电路将接收到的无线电数据提供给从节点104。从节点104可以经由总线106将接收到的无线电数据(例如,以原始或处理形式)提供给车辆的头单元2402中的主节点102。

与天线(例如,i2s/tdm/pdm收发器127,i2c收发器129和/或具有节点收发器120的中断请求能力的一个或多个gpio管脚)通信的外围设备通信电路可以接口具有用于与天线相关联的无线电接收机的现有i2s和/或i2c接口,因此节点收发器120可以容易地与无线电接收机接口。在一些实施例中,节点收发器120还可以在通过总线106发送所接收的无线电信号之前(例如,内部)提供采样率转换器(例如,内置)以处理接收的无线电信号(通常固定在合适的载波频率)以对应于超帧速率的音频采样频率)。从无线电接收器接收的数据然后可以在总线106上的从节点104(例如,到扬声器或用于向用户的其它递送)上传或下游传输。

传输压缩视频

如上所述,除了或替代通过总线106传输音频,视频可以通过总线106传输。在一些实施例中,压缩视频(或低质量视频,诸如后视摄像机或具有适当数据速率的后座视频监视器)也可以通过总线106发送。例如,可以发送来自摄像机的压缩视频,或者可以发送用于视频显示的压缩视频。

用户接口控件

麦克风和任何合适的传感器可以被包括在系统106中作为外围设备108,以提供用户接口或改善音频应用。麦克风和/或传感器在车辆设置中的应用可以包括免提用户界面(例如,语音控制/命令),远程信息处理,驾驶员监控,紧急/路边援助和姿势识别应用。例如,麦克风可以嵌入在座椅安全带或车辆内的任何合适的位置。总线106可以提供用于发送由麦克风和任何合适的传感器收集的音频数据的有效通信信道。在一些实施例中,系统100中还可以包括任何合适的i2c设备,例如手势识别传感器,按钮,存储器设备,显示器等(例如,由于外围设备108可以与包括在节点收发器120)。

背板连接

在一些实施例中,系统100可以用于以低等待时间互连不同子系统(例如,包括在不同控制板中或在同一板上)。特别地,系统100可以用于菊花链连接多个板以创建更大的系统。系统100还可以通过相同的总线106将板与较小的设备互连。会议室,娱乐系统,对讲系统,智能家庭,监视系统和紧急系统等可以利用总线106来互连子系统。

在一些实施例中,系统100可以用于将音频视频设备互连在一起用于演出舞台,录音室或任何其他合适的娱乐设置。通过使用双线总线106,相对于传统的粗线缆技术,可以有利地减少互连视听设备所需的布线。视听设备可以包括扬声器,混音控制台,乐器,时间编码设备,照明设备,放大器,视频显示器,烟火和任何其他合适的设备。例如,图25示出了布置2500,其中多种类型的视听设备包括节点收发器120,并且因此用作从节点104并且可以沿着总线106通信。具体地,主咨询台2502可以包括主机110和主节点102,并且节点收发器120可以包括在或耦合到混合控制台2504、乐器2506、照明设备2508、放大器2510、扬声器2512和烟火控制台2514中。这些设备中的每一个可以用作外围设备108,并且可以使用任何合适的外围设备通信电路(例如,i2s/tdm/pdm收发器127、i2c收发器129和/或具有中断请求能力的一个或多个gpio引脚)与其相关联的节点收发器120通信。根据本文公开的任何总线协议,来自这些设备的数据可以由节点收发器120沿着总线106提供给其他设备。

系统100可以用于在任何合适的设置中互连设备。例如,系统100可以用于以上面参照图25讨论的方式互连具有许多传感器和子系统(例如,用于患者监测应用)的医疗设备。相对于常规方法,使用双线总线106可以减少连接这些传感器和系统的布线。

振动测量

在一些实施例中,系统100可用于互连麦克风和其它传感器,其被布置成在材料经受压力测试时或在使用期间监测材料(例如碳纤维材料)的许多部分。材料可以包括例如材料板,物体,铁轨,桥梁,车辆或建筑物。根据本文公开的任何总线协议,这些麦克风和其他传感器,和/或产生用于材料或物体的结构测试的刺激的装置也可以使用系统100内的总线106有效地连接。

控制系统

在一些实施例中,如上所述,系统100可以提供低延迟菊花链通信架构。由于系统100的数据传输中的低等待时间和同步性,系统100可以为控制系统,特别是可以受益于减少的布线和/或控制系统的控制系统提供有效的通信信道,其可以通过控制系统可以有利地使用系统100在总线106上的节点之间传送命令或者与总线106上的节点的状态相关联的数据,以实现控制功能。

当系统100在具有容错要求的系统中实现时,从节点104可以以环形配置连接在总线上,其中从节点104中的任何一个可以被配置为最后的从节点104。以上参照图12讨论了环配置的示例。如果环中的总线链路发生故障,则环配置可以提供用于维持节点间连接的容错配置。总线106还可以利用本文所讨论的节点发现机制来发现环路中从故障恢复的正确的最后的从节点104。

通过低延迟通信链路的分布式处理

系统100可以用于在不同的从节点104之间分布处理操作。如上所述,这对于期望在节点处执行本地处理同时仍然具有低等待时间通信的控制系统是有利的链路互连节点。例如,安全/安全功能可以分布在多个从节点104之间。从节点104可以实现用于防止与该从节点104相关联的一个或多个外围设备108(例如,监视和控制机器人肢体的设备)的机制过度使用力或过早地对局部检测到的问题作出反应。系统100可以实现分布式本地处理,这可以减轻或避免立即需要从从节点104向中央处理器(其具有潜在危及系统)传送信息。

在一些实施例中,系统100的广播功能可以由从节点104采用以监听作为用于其他从节点104的外围设备108的其他传感器/伺服/致动器,并且相应地进行反应,而不依赖于中央处理器(例如,在主机110处)。

利用由系统100实现的分布式处理,假肢和其他机器人应用可以被赋予等同于肌肉记忆的处理,其中从节点104可以独立地处理并对其环境和他们自己的状态做出反应,而不需要主节点102和/或主机110的干扰。

人工四肢

系统100的各种实施例可以有利地应用于通常存在于人造/机器人肢体中以及通常在机器人中的控制系统。传感器和致动器以及使用机器人系统的这样的传感器和致动器可以用作外围设备108以便在总线106上从节点104。在一些实施例中,如上所述,这些传感器和致动器也可以由总线106供电。有利地,布线可以减少为菊花链双线系统,而不是大束线,从而在机器人的形状因数方面提供优点。

一个示例是机器人腿,其中膝关节需要来自一个或多个脚传感器的信息,并且脚关节需要来自一个或多个膝传感器的信息。通常,集中式处理器将使用大量的电线连接到传感器和致动器。利用系统100,可以从该常规方法减少导线的数量,从而根据本文公开的任何总线协议技术经由总线106全局分布信息,从而实现更快的本地化处理。

例如,图26示出了具有膝关节2602,踝关节2604和脚关节2606的机器人肢体2600。图26还示出了系统100的布置2608,其可以用于使得用于机器人肢体2600的传感器和致动器能够沿着机器人肢体2600传送数据。特别地,布置2608可以包括具有外围设备108其包括膝部传感器,具有包括膝盖执行器的外围设备108的从节点1,具有包括脚踝传感器的外围设备108的从节点2,具有外围设备108的从设备节点3,外围设备108包括脚踝执行器,具有包括脚传感器的外围设备108的从节点4,以及具有包括脚致动器的外围设备108的从节点5。由外围设备108中包括的任何传感器生成的数据可以被传送到相关联的从节点104,然后可以在上游和/或下游传送,以便最终到达一个或多个其他从节点104(例如,用于驱动包括在外围设备108中的任何致动器)。

以上关于机器人肢体所讨论的相同优点还可以适用于涉及许多较小的电子子系统(每个执行子系统的一些局部处理)的任何机器人系统。在机器人中连接传感器和伺服系统的系统100的使用不限于连接传感器和致动器,而是系统100可以用于连接任何合适的电子设备,诸如存储器,处理器,扬声器,麦克风,灯,无线电接收器等。例如,系统100可应用于游戏应用中的身体传感器的网络,对身体运动的研究或通过身体运动控制其他机械。

传感器或设备网络

系统100可以用于实现任何合适的控制系统以减少布线,同时提供低等待时间的通信链路。这些控制系统可以包括机械(重型,大型工业机械),装配线设备(具有许多控制器和传感器),无人机(自动飞行机器人),自主控制系统,动力控制系统等。诸如传感器(或传感器块),控制器和/或致动器(例如,小致动器)的设备可以同步工作以提供它们各自的功能,并且系统100可以在这些设备之间提供有效的低延迟通信链路在向这些装置提供功率的同时不需要过多的布线(和重量)。传感器网络通常还可以利用系统100的特征以减少布线,并且还使用总线106作为用于传感器的功率输送网络。

分布式智能支持

在一些实施例中,从节点104和主机110可以各自包括,接收和发送用于在它们之间通信的邮箱。一些实施例可以使用i2c用于邮箱通信;从节点104(例如,由i2c收发器129管理)的i2c接口可以被配置为i2c从设备,使得处理设备可以通过i2c对从节点104进行编程并且启动对邮箱的读取和/或写入。

在一些实施例中,用于从节点104的节点收发器120可以包括,接收和发送可以用作用于主机110的处理设备1302和处理设备1302之间的通信的输入和输出“邮箱”的寄存器。(例如,与节点收发器120分离的处理设备)。通过在完成向邮箱的数据写入时触发的中断,可以向主机110和从节点104通知它们各自的邮箱中的数据。节点收发器120可以被配置为在完成向相关邮箱的数据写入时生成到包括在从节点104中的处理设备1302的中断。

图27是布置2700的框图,其中从节点0包括具有接收邮箱2710和发送邮箱2712的节点收发器120,节点收发器120可用于与主机110的接收邮箱2704和发送邮箱2708通信(经由主节点102)。具体地,提供给接收邮箱2710的数据可以经由节点收发器120产生的中断传送到从节点0的处理设备1302,并且从节点0的处理设备1302可以通知节点收发器120:数据在发送邮箱2712中以用于发送到主机110。

节点收发器120可以包括用于控制这些邮箱的多个寄存器。在一些实施例中,mbox0ctl和mbox1ctl寄存器可以提供字段以启用这些邮箱并且控制邮箱的方向,消息长度和中断启用。

在默认情况下,邮箱0可以被配置为接收邮箱(例如,接收邮箱2710,由主机110写入并由从节点104的处理设备1302读取)。邮箱1可以默认配置为发送邮箱(例如,发送邮箱2712,由从节点104的处理设备1302写入并由主机110读取)。

mboxxctl寄存器的mbxlen字段可以定义相关联的邮箱的长度。如果此字段为0,mboxxb0可能是邮箱的最后一个字节。如果此字段为1,mboxxb1可能是邮箱的最后一个字节。如果此字段为2,mboxxb2可能是邮箱的最后一个字节。如果此字段为3,mboxxb3可能是邮箱的最后一个字节。

对于启用的接收邮箱,如果mboxxctl寄存器的mbxfien位被置位,则在从节点104的处理设备1302的中断可以在主机110写入相关邮箱的最后字节之后发生,并且节点收发器120确定不需要总线重试。如果设置mboxxctl寄存器的mbxeien字段,则在从节点104的处理设备1302读取相关邮箱的最后字节之后,可以发生到主机110的中断。

对于启用的发送邮箱,如果设置了mbxfien字段,则在从节点104的处理设备1302写入相关邮箱的最后字节之后,可以发生到主机110的中断。如果mbxeien失败,则在从节点104的处理设备1302的中断可以在相关邮箱的最后字节被主机110读取并且节点收发器120确定不需要总线重试之后发生。

在一些实施例中,mbox0stat和mbox1stat寄存器可以提供邮箱的状态信息。当邮箱已填满时,mboxxstat寄存器的相关mbxfull位可能变为高电平,mbxempty位可能变为低电平。当邮箱被清空时,mboxxstat寄存器的相关mbxempty位可能变为高电平,mbxfull位可能变为低电平。当相关联的邮箱向主机110或本地处理器(例如,从节点104的处理设备1302)发送中断时,包括在mboxxstat寄存器中的mbxeirq和mbxfirq位可以变高,并且当中断被处理时可以变为低主机110或本地处理器。

在一些实施例中,mbox0bn和mbox1bn寄存器可以包含邮箱数据。在一些示例中,每个邮箱可以保存高达32位的数据。mboxxbn寄存器中的mbxlen字段可以定义邮箱中的活动字节数。在一些实施例中,每个邮箱可以支持8,16,24,或32位消息。

传感器支持

在一些车辆应用中,系统100可以包括在总线106上的从节点104的布置,以互连分别位于机舱的左侧和右侧的两个麦克风,以及耦合到从节点的环境传感器104位于总线106上并位于麦克风之间并靠近挡风玻璃。环境传感器可测量用于空气重新布线的温度和湿度(例如,用于除雾和气候控制功能)和/或环境气体(例如氨,一氧化碳,二氧化氮)以改善乘客舒适性。麦克风可以是例如微机电系统(mems)麦克风阵列。

在一些实施例中,从节点104的节点收发器120包括外围设备通信电路(例如,i2s/tdm/pdm收发器127,i2c收发器129和/或具有中断请求能力的一个或多个gpio引脚)与车辆中的环境传感器(诸如湿度传感器,温度传感器和/或气体传感器)通信。在一些实施例中,主机110可以基于来自经由从节点104,总线106和主节点102传输到主机110的环境传感器的数据来生成用于车辆中的气候控制系统的控制指令。例如,图。图28示出了系统100的布置2800,其中从节点0(在机舱的左侧)具有包括麦克风和扬声器的外围设备108,从节点1(靠近挡风玻璃2802)具有外围设备设备108包括湿度和/或温度传感器,从节点2具有包括气体传感器的外围设备108,并且从节点3(在机舱的右侧)具有包括麦克风和扬声器的外围设备108。

当麦克风包括在机舱的左侧和右侧上的车辆中(例如,为了降噪和/或波束成形)时,用于耦合这些麦克风的电缆可以由耦合到外围设备的中间从节点104执行靠近挡风玻璃区域的气候控制功能(加热通风和空调(hvac)和/或空气监测功能)的设备。在一些情况下,用于从节点104的外围设备可以包括湿度和/或温度传感器,其可以提供允许测量挡风玻璃表面处的露点的湿度和/或温度信息,并且能够预测挡风玻璃雾化,使得车辆中的hvac系统可以“准时”操作以防止雾化。这样的系统可以通过“始终开启”或手动控制的hvac系统来节省能量,并且可以通过避免挡风玻璃雾化来提高车辆操作期间的安全性。可以在一些实施例中使用的湿度和/或温度传感器的示例是由measurementspecialtiesofhampton,virginia制造的htu21d传感器。类似地,由检测车厢的空气中的不想要的化学品的存在的气体传感器产生的数据可以用于触发车辆中的hvac系统的操作,以改善通风并减少化学浓度。可以在一些实施例中使用的气体传感器的示例是由瑞士的sgxsensortech制造的mics-6814传感器。

集成加速度计

在一些实施例中,从节点104可以与外围设备108相关联,外围设备108包括集成到与节点收发器120(例如,上游收发器122和/或下游收发器124)相同的板中的加速度计(例如,多轴加速度计)。音频输入和输出,例如麦克风和扬声器,也可以耦合到同一个板。这种实施例的一个应用可以是道路噪声消除,其中测量底盘的振动以及音频分量消除。

测试设备支持

在一些实施例中,节点的收发器120可以在“总线监视模式”或“bmm”配置,其中节点收发器120监视总线106的区段上的上游和/或下游的活动,用于主从节点行为(例如,什么信号来往于主和/或从节点)。在一些实施例中,节点收发器120的上游收发器122监视下游数据,并且将它提供给协议分析器(例如,经由使用i2s/tdm/pdm收发127的i2s总线)。在总线监视模式下操作的节点收发器120在本文中可以称为“总线监视器”或“bm”。在该模式中,节点收发器120的下游收发器124可以被禁用。总线监视器可以不与其它从节点104以菊花链形式连接,而是可以接入正好在待监视的从节点104的上游的一对导线中,并且可以由主节点102发现,即使它不具有全部典型的从节点104中的节点收发器120的功能。总线监视器可以最初由与总线监视器通信的处理器(例如,经由i2c协议)配置。

因此,在一些实施例中,充当总线监视器的节点收发器120可以包括外围设备通信电路(例如,i2s/tdm/pdm收发器127,i2c收发器129和/或一个或多个gpio引脚,中断请求能力),以将通过总线106从上游设备接收的信号提供给协议分析器。在一些实施例中,工作在总线监视模式下的节点收发器120可以禁用其下游收发器124。上游收发器122可以被配置为仅接收数据而不发送。

图29是根据各种实施例的系统100的元件和总线监视器的布置2900的框图。在布置2900中,总线监视器设备2902可以包括总线监视器2906和处理设备2908,处理设备2908经由i2c和/或i2s与总线监视器2906通信(例如,使用i2s/tdm/pdm收发器127和/或总线监视器的i2c收发器129)。处理设备2908可以采用上面参考图1讨论的任何处理设备1302的形式。bmm2906可以接入刚好在从节点1的上游的总线106的两条导线中,并且隔离电路2904可以设置在bmm2906和总线106之间。隔离电路2904可以包括模拟电路以隔离总线106从bmm2906的负载。

在一些实施例中,总线监视模式可以使节点收发器120用作被动bm,也称为嗅探器。bm可以使用其i2s端口将来自总线106的业务传送到协议分析器。bm在系统100中可以是无源的,因为它侦听总线同步控制帧180控制写入以配置其总线特性以匹配bm正在监视的从节点104的那些,但不响应同步控制帧180。

上游收发器122可以看到上游和下游数据,因为bm不是菊花链的。在一些实施例中,在经由上游收发器122接收到下游数据时,bm可以将接收到的同步控制帧180及其对应的下游数据时隙198加载到下游帧缓冲器中。在一些实施例中,在经由上游收发器122接收到上游数据时,bm可以将接收到的同步响应帧及其相应的上游数据时隙加载到上游帧缓冲器中。bm可以向i2s/tdm/pdm收发器127提供下游和上游数据,以提供给协议分析器(例如,处理设备2908)。

节点收发器120可以包括一个或多个寄存器以支持bmm。在一些实施例中,节点收发器120可以包括bmmcfg寄存器。bmmcfg寄存器可以包括bmmen位(以指示节点收发器120是否要在bmm中操作),bmmrxen位(当节点收发器在bmm中时启用或禁用上游收发器122)和bmmndsc节点(以指示系统100的启动和发现过程是否在bm被附接和启用之前或之后发生)。

图30是根据各种实施例的用于开始bm的操作的方法3000的流程图。方法3000可以由总线监视器设备2902中的处理设备2908执行,并且可以被描述为参考bm2906执行。

在3002处,处理设备2908可以启用bm2906中的bmm。在启用bmm之前,bm2906可以默认为节点收发器120的标准配置。在3002启用bmm可以包括设置上面讨论的bmmen位。

在3004,处理设备2908可以在将bm附接到要监视的从节点104(例如,图29的从节点1)上游的总线106的链路之后,使能上游收发器122。在3004处启用上游收发器122可以包括设置上面讨论的bmmrxen位。

在3006,处理设备2908可以使用经由i2c收发器129发送的命令来配置bm2906的i2s/tdm/pdm收发器127以用于传输。

在3008,在bm2906被主机110发现并且bm2906的pll128锁定之后,处理设备2908可以经由bm的i2s/tdm/pdm收发器127从总线106接收数据。如上所述,bm2906可以窥探总线同步控制帧180控制写入,以配置其总线特性(例如,dnslots和upslots的值),以匹配正在被监视的从节点104的那些(例如,从图29的节点1)。

bm可以嗅出其所连接的总线106的段,并且还可以当bm104允许在发现期间监视总线106时学习下游从节点104的配置。有些监测的参数可应用到整个总线106(例如,所有的从节点104),一些用于紧邻下游的从节点104,一些用于进一步下游的从节点104。bm可以监视发现,存储来自最近发现的参数,使用已知参数设定或尝试不同的参数变化,直到已经实现成功解码(例如,音乐数据已经被解码)。

在一些实施例中,如果主机110使用通过主节点102中继到作为bm的从节点104的控制指令来启用该功能,则只能在总线106上向下游发送的有效载荷。在一些这样的实施例中,如果bm没有通过主节点102相应地配置,则bm只能输出(“嗅探”)同步控制和响应帧数据,但不输出数据时隙中的有效载荷。这可以提供某种级别的内容保护,因为数据被加扰,并且当主机110允许时,bm只能访问有效载荷数据。

gpio到gpio通信

在一些实施例中,节点收发器120可支持多个节点收发器120之间的通用输入或输出(gpio),而在初始编程之后无需主机110的介入。在一些这样的实施例中,主机110可能仅需要用于节点收发器120的虚拟端口的初始设置。

在一些实施例中,可以使用多个虚拟端口(例如,8个虚拟端口)。主节点102可以管理虚拟端口(也可以称为“gpio总线端口”,“虚拟端口映像”或“虚拟端口镜像”),并且可以通过读取gpioddat寄存器下面)。多个寄存器(例如,10或11个寄存器)可以用于允许每个节点收发器120(例如,从节点104的)将gpio引脚映射到虚拟端口。在一些实施例中,gpio引脚可以是输入(其可以改变虚拟端口)或输出(其可以反映虚拟端口)。在一些实施例中,多个虚拟端口可以被映射到一个gpio输出引脚(例如,将值并入在一起)。在一些实施例中,多个gpio输入引脚可以被映射到一个虚拟端口。例如,多个gpio输入引脚值可以被“或”在一起,即使它们来自多个节点收发器120。

图31-43示出了gpio到gpio通信系统和技术的各种示例。以下参照这些附图示出或讨论的任何实施例可以与本文公开的任何其它实施例组合。这些图中的特定数量的元件(例如,如图31所示的gpioden寄存器中的8位)的使用或说明仅仅是示例,并且系统和技术可以应用于或可以并入任何期望的和适当数量的任何元素。另外,为了清楚说明,这里可以使用寄存器,变量,数据槽等的特定名称,但是如本文所述使用的任何数据结构可以具有任何合适的名称或其他标识符。

在一些实施例中,寄存器或其它数据结构可用于存储与gpio至gpio功能相关的数据。下面参照图1和2讨论各种示例寄存器及其操作。31-34。例如,图31描绘了可以为节点收发器120的每个gpio引脚提供使能位的gpio超距离使能(gpioden)寄存器的示例。设置这些位中的一个可以使得本地节点收发器120将gpio引脚映射到一个或更多的虚拟端口。在一些实施例中,根据下面的表1,引脚必须可用于gpio。在一些实施例中,如果设置了gpiooen寄存器(具有对应于每个通用io引脚x的一个位ioxoen)中的ioxoen,则引脚将是距离上的gpio的输出。否则,该引脚将作为距离上的gpio输入。在一些实施例中,可能不需要设置ioxien(在gpioien寄存器中,类似于gpiooen寄存器配置)。

表格1.确定gpio的引脚可用

图32描绘了可以控制节点收发器120中的gpio引脚和虚拟端口之间的映射功能的gpio过距离掩模(gpiodnmsk)寄存器的示例。在一些实施例中,如果gpio引脚是输入,则本地节点收发器120将更新对应于高的iodnmsk位的虚拟端口。如果gpio引脚是输出,则对应于高的iodnmsk位的虚拟端口可以被or运算在一起以产生gpio输出值。

图33描绘了gpio随距离数据(gpioddat)寄存器的示例,其可以提供节点收发器120的虚拟端口的值。在一些实施例中,该寄存器可以是只读的。在一些实施例中,主机110可以总是从主节点102读取该寄存器。

图34描绘了gpio过距离反转(gpiodinv)寄存器的示例,其可以使得能够将gpio引脚反转为输入或输出。如果gpio引脚是到虚拟端口的输入,则可以从引脚施加反转。如果引脚是来自虚拟端口的输出,则可以在输出到gpio引脚的路径上应用反转。如果多个节点收发器120正在更新相同的虚拟端口,则gpiodinv寄存器设置可以用于将行为从有线or改变为有线and。例如,要创建多个高电平有效的gpio位的有线and,应将gpio输入和gpio输出反相。

在一些实施例中,当多于一个节点收发器120具有映射到相同虚拟端口的gpio输入时,输入引脚可以被视为到虚拟端口中的有线or。当虚拟端口为低(非活动)时,设置虚拟端口的任何请求可导致从主节点102的广播写入,其将更新系统中从节点104的节点收发器120上的所有gpioddat寄存器。当虚拟端口为高(活动)时,清除虚拟端口的任何请求导致来自主节点102的特殊命令,其允许所有从节点104对该请求投票。如果任一从节点104拒绝该请求,则主节点102看到该请求的拒绝,并且gpioddat寄存器保持它们的值。如果从节点104没有拒绝该请求,则主节点102看到该请求的接受,并且跟随更新的gpioddat值。

图35描绘了用于管理gpioddat更新的示例状态机。在一些实施例中,状态机可以由主节点102或由系统100中的任何其它合适的设备执行。为了便于示例,图35的状态机如下讨论为由主节点102执行。从空闲状态3502开始,当主节点102确定清除总线gpio端口或主节点102接收到srf时,主节点102可以转换到检查状态3504与请求清除总线gpio端口。主节点102可以保持在检查状态3504,直到接收到确认(ack)或非确认(nack)为止;如果接收到nack(意味着至少一个从节点104没有“同意”清除总线gpio端口),则主节点102可以返回到空闲状态3502,而不改变总线gpio端口。如果在主节点102处于检查状态时没有接收到nack,则主节点102可以转换到更新状态3506并广播写新值。主节点102可以保持在更新状态3506,直到更新被确认为止;一旦更新被确认,主节点102可以返回到空闲状态3502。当主节点102确定设置总线gpio端口时,主节点102可以从空闲状态3502直接转换到更新状态3506,主节点102接收srf以及设置总线gpio端口(不经过检查状态3504)的请求。

以下示例示出了本文描述的用于gpio远距离功能的一个特定使用场景。从主节点的drx1引脚到从节点的adr1/io1引脚2:

·将0x04写入主节点gpiod6msk,以将drx1映射到虚拟端口2

·将0x40写入主节点gpioden,以在drx1上启用gpio远程访问

·将0x02写入从属节点2gpiooen以使能adr1/io1的gpio输出

·将0x04写入从属节点2gpiod2msk,以将虚拟端口2映射到adr1/io1

·将0x02写入从节点2gpioden,以在adr1/io1上通过远程访问启用gpio

·每当主节点102上的drx1转换时,主节点102可以经过图35的状态机。

·每当从节点2看到对gpioddat的广播写入时,gpioddat的位2的值将在adr1/io1引脚上驱动

从从节点1的dtx1管脚到主节点102的adr1/io1引脚:

·将0x10写入从属节点1gpiod4msk以将dtx1映射到虚拟端口4

·将0x10写入从节点1gpioden,以在dtx1上使能gpio过距离访问

·将0x02写入主节点102gpiooen以使能adr1/io1的gpio输出

·将0x10写入主节点102gpiod2msk,以将虚拟端口4映射到adr1/io1

·将0x02写入主节点102gpioden以在adr1/io1上启用gpio过距访问

·每当从节点1上的dtx1转换时,从节点1可以发送指示虚拟端口4上的改变和改变的方向(设置或清除)的特殊srf,

·每当主节点接收到该特殊srf时,它可以通过图35的状态机。

·当从节点1接收到对gpioddat的更新值的检查时,其可以将对虚拟端口4的改变标记为已采用

从从节点0到2上的adr1/io1引脚到主节点102的adr1/io1引脚:

·将0x01写入从属节点2gpiod2msk以将adr1/io1映射到虚拟端口0

·将0x02写入从节点2gpioden,以在adr1/io1上使能gpio过距访问

·将0x01写入从属节点1gpiod2msk以将adr1/io1映射到虚拟端口0

·将0x02写入从节点1gpioden,以在adr1/io1上通过远程访问启用gpio

·将0x01写入从属节点0gpiod2msk,以将adr1/io1映射到虚拟端口0

·将0x02写入从节点0gpioden,以在adr1/io1上通过远程访问启用gpio

·将0x02写入主节点102gpiooen以使能adr1/io1的gpio输出

·将0x01写入主节点102gpiod2msk以将虚拟端口0映射到adr1/io1

·将0x02写入主节点102gpioden,以在adr1/io1上通过远程访问启用gpio

·每当主节点102看到指示对虚拟端口的改变的srf时,它可以经过图35的状态机。

·当对gpioddat的广播写入以ack完成时,主节点102中的gpioddat的值可能会更新,并且位0的值可能会反映在adr1/io1引脚上

图36和图37示出了将多个从节点104映射为虚拟端口0的输入并且将主节点102映射为来自虚拟端口0的输出的系统行为的示例。在图36中,从节点0请求清除被拒绝的虚拟端口0。具体地,gpio引脚在从节点0上从高到低,具有清除请求的srf由从节点0生成。主节点102移动到检查状态(根据图35所示的状态机),并且发送scf以检查端口0是否可以被清除。此请求被从节点2拒绝,因为gpio输入引脚为高电平。

在图37中,从节点2请求清除虚拟端口0,其被接受。在从节点2上的gpio引脚从高到低之后,由从节点2生成具有清除请求的srf。主节点102移动到检查状态(根据图35所示的状态机),并且发送scf检查端口0是否可以清除。该请求被接受,并且主节点102移动到更新状态。一旦gpioddat的广播写入完成,主节点102上的输出gpio引脚将从高变为低。

在距离功能上支持gpio的各种实施例的逻辑可以采取多种形式中的任何一种。例如,图38提供了如本文所讨论的,距离逻辑上的gpio的系统级可视化。图39和40分别示出了用于通过距离输入和输出引脚的gpio的示例gpiodnmsk交叉开关,如本文所讨论的。

如上所述,通过距离功能的gpio可以包括将来自不同从节点104的输入引脚组合成虚拟端口(例如,虚拟8位端口)的or逻辑。可以为每个从节点104中的每个输出引脚选择来自虚拟端口的一个比特。如上所述,可以通过反相输入和输出来实现逻辑。图41示出了主节点102和从节点104的示例布置中的距离功能性示例gpio。如图41所示,每个从节点0,1和2具有作为其相关联的外围设备108的一部分的扬声器。从节点0,1和2可以从其扬声器向主机110单独发送过驱动信号(例如,dsp),并且主机110可以同时向从节点0,1和2的所有扬声器发送静音信号。在一些实施例中,gpio到gpio等待时间可以是3个音频时钟周期或者(例如,62.5微秒或更短)。

图42和图43示出了不同的gpiodnmsk和gpiodinv设置及其对来自从节点104的不同贡献的gpiooen的值的影响。在图42中,虚拟端口位0处的“0”是gpio引脚2上的“低”输入,gpiodinv中位置2上的非反相位“0”,位置2中的输入使能“0”的gpiooen,在gpiod2msk中的位置0处为“1”。在虚拟端口位1处的“1”是gpio输入引脚4处的“高”输入,gpiodinv中位置4处的反相位“1”,gpiooen位置4处的输入使能“0”和gpiod4msk中位置1处的“1”。在虚拟端口位2处的“1”是gpio输入引脚7处的“低”输入,gpiodinv中的位置7处的反相位“1”,gpiooen的位置7中的输入使能“0”和gpiod7msk中位置2处的“1”。

图43将输出引脚添加到图42的输入引脚设置。特别地,gpio引脚0处的“低”输出是虚拟端口位3处的“0”,gpiod0msk的位置3处的“1”,位置0处的输出使能“1”的结果gpiooen,以及gpiodinv的位置0处的非反相“0”。gpio引脚3上的“高”输出是虚拟端口位4处的“1”,gpiod3msk的位置4处的“1”,gpiooen的位置3处的输出使能“1”-在gpiodinv的位置3反转“0”。gpio引脚5上的“低”输出是虚拟端口位4处的“1”,gpiod5msk的位置4处的“1”,gpiooen的位置5处的输出使能“1”以及反相“1”在gpiodinv的位置5。在gpiodnmsk的一些实施例中,引脚必须可用于gpio(例如,不用于i2s/tdm或pdm)。

根据本文公开的任何实施例,本文描述的任何实施例可以以任何期望的组合与gpio至gpio通信功能组合。

以下段落提供本文公开的各种实施方案的示例。

示例a1是用于低等待时间通信的从节点收发器,包括:上游收发器电路,用于接收通过双线总线从上游设备发送的第一信号,并且通过双线总线将第二信号提供给上游设备;下游收发器电路,以向所述双线总线向下游设备提供下游的第三信号,并且通过所述双线总线从所述下游设备接收第四信号;以及时钟电路,用于基于所述第一信号中的同步控制帧的前导码在所述从节点收发器处生成时钟信号,其中,由所述从节点收发器通过所述双线总线接收和提供信号的定时是基于时钟信号。

示例a2可以包括示例a1的主题,并且还可以指定同步控制帧与第一信号的超帧中的下游数据相关联,下游数据包括多个数据时隙,以及用于单个外围设备的数据与所述从节点收发器通信的设备占用所述多个数据时隙中的两个或更多个。

示例a3可以包括示例a2的主题,并且还可以指定用于单个外围设备的数据是音频数据。

示例a4可以包括示例a1-a3中任一个的主题,并且还可以指定:第一信号包括第一同步控制帧和相关联的第一下游数据以及第二同步控制帧和相关联的第二下游数据;所述第一下游数据包括具有特定索引并且包括用于与所述从节点收发器通信的第一外围设备的数据的数据时隙;并且所述第二下游数据包括具有所述特定索引并且包括与所述第一外围设备不同的第二外围设备的数据,所述第二外围设备与所述从节点收发器通信。

示例a5可以包括示例a4的主题,并且还可以指定第一和第二外围设备是不同的麦克风。

示例a6可以包括示例a1-a5中任一项的主题,并且还可以指定第二信号包括同步响应帧,同步响应帧与第二信号的超帧中的上游数据相关联,上游数据包括多个数据时隙,并且源自与从节点收发器通信的单个外围设备的数据占用多个数据时隙中的两个或更多个。

示例a7可以包括示例a6的主题,并且可以进一步指定源自单个外围设备的数据是音频数据。

示例a8可以包括示例a1-a7中任一个的主题,并且还可以指定:第二信号包括第一同步响应帧和相关联的第一上游数据以及第二同步响应帧和相关联的第二上游数据;

第一上游数据包括具有特定索引并包括源自与所述从节点收发器通信的第一外围设备的数据的数据时隙;并且所述第二上游数据包括具有所述特定索引并且包括源自与所述从节点收发器通信的不同于所述第一外围设备的第二外围设备的数据的数据时隙。

示例a9可以包括示例a8的主题,并且可以进一步指定第一和第二外围设备是不同的麦克风。

示例a10可以包括示例a1-a9中任一个的主题,并且还可以包括功率电路,用于从双向总线从上游设备接收电压偏置,并且将来自电压偏置的能量提供给能量存储装置,其耦合到所述从节点收发器。

示例a11可以包括示例a1-a10中任一个的主题,并且还可以包括用于与至少一个扬声器和至少一个麦克风通信的外围设备通信电路。

示例a12可以包括示例a11的主题,并且还可以指定外围设备通信电路包括内部集成电路声音(i2s)收发器、时分复用(tdm)收发器、脉冲密度调制(pdm)收发器、内部集成电路(i2c)收发器或通用输入/输出(gpio)引脚。

示例a13可以包括示例a1-a12中任一个的主题,并且还可以包括用于与麦克风和会议用户界面元件通信的外围设备通信电路,其中,当用户激活会议用户界面元件时,希望将来自麦克风的音频提供给耦合到双线总线的另一设备,并且其中第二信号包括当会议用户接口元件被致动时源自麦克风的数据。

示例a14可以包括示例a1-a13中任一个的主题,并且还可以包括用于与无线收发器通信的外围设备通信电路,其中,所述无线收发器用于接收语音呼叫,并且其中所述上游收发器电路是以包括表示第二信号中的语音呼叫的数据。

示例a15可以包括示例a1-a14中任一个的主题,并且还可以指定上游设备耦合到无线收发器,无线收发器要接收语音呼叫,上游收发器电路是接收表示第一信号中的语音呼叫的数据。

示例a16可包括示例a1-a15中的任一者的主题,且可进一步指定主机装置耦合到双线总线的主装置,主机装置耦合到无线收发器,无线收发器接收语音呼叫,并且上游收发器电路用于接收表示第一信号中的语音呼叫的数据。

示例a17可以包括示例a1-a16中任一个的主题,并且还可以包括与耦合到车辆的车顶或其他部分的天线通信的外围设备通信电路,其中外围设备通信电路与天线通过有线连接。

示例a18可以包括示例a17的主题,并且还可以指定上游设备是位于车辆的头单元处的主设备。

示例a19可以包括示例a1-a18中任一个的主题,并且还可以指定从节点收发器被包括在扬声器,混合控制台,乐器,时间编码设备,放大器,视频显示器或烟火技术安慰。

示例a20可以包括示例a1-a19中任一个的主题,并且还可以包括与机器人肢体的关节处的传感器或致动器通信的外围设备通信电路。

示例a21可以包括示例a1-a20中任一个的主题,并且还可以包括接收邮箱和发送邮箱,其中主机设备将在向数据提供给下游设备时生成用于传输到下游设备的中断所述发送邮箱和所述下游设备在向所述接收邮箱提供数据时生成用于传输到所述主机设备的中断。

示例a22可以包括示例a1-a21中任一个的主题,并且还可以包括与车辆中的湿度或温度传感器通信的外围设备通信电路。

示例a23可以包括示例a1-a22中任一个的主题,并且还可以包括与车辆中的气体传感器通信的外围设备通信电路。

示例a24可以包括示例a1-a23中任一个的主题,并且还可以包括外围设备通信电路,以向协议分析器提供第一信号或第二信号,并且其中下游收发器电路被禁用。

示例a25可以包括示例a1-a24中的任一个的主题,并且可以进一步指定在同步控制帧中向下游发送数据。

示例a26可以包括示例a1-a25中任一个的主题,并且还可以指定在同步响应帧中向上游传输数据。

示例b1是用于低等待时间通信的主节点收发器,包括:用于从主机设备接收i2s信号的集成电路间声音(i2s)接收器,其中i2s信号提供时钟信息;时钟电路,用于基于所述时钟信息生成时钟信号;以及下游收发器电路,用于通过双线总线向下游设备提供第一信号,并且通过所述双线总线接收来自所述下游设备的第二信号,其中所述第一信号的同步控制帧的前导码是基于所述时钟信号,并且所述下游设备基于所述前导码生成其自己的时钟信号。

示例b2可以包括示例b1的主题,并且还可以指定同步控制帧与第一信号的超帧中的下游数据相关联,下游数据包括多个数据时隙,以及用于单个外围设备的数据耦合到所述下游设备的设备占用所述多个数据时隙中的两个或更多个。

示例b3可以包括示例b2的主题,并且可以进一步指定用于单个外围设备的数据是音频数据。

示例b4可以包括示例b1-b3中任一个的主题,并且还可以指定:第一信号包括第一同步控制帧和相关联的第一下游数据以及第二同步控制帧和相关联的第二下游数据;所述第一下游数据包括具有特定索引并且包括耦合到所述下游设备的第一外围设备的数据的数据时隙;并且所述第二下游数据包括具有所述特定索引并且包括耦合到所述下游设备的与所述第一外围设备不同的第二外围设备的数据的数据时隙。

示例b5可以包括示例b4的主题,并且可以进一步指定第一和第二外围设备是不同的麦克风。

示例b6可以包括示例b1-b5中任一项的主题,并且还可以指定第二信号包括同步响应帧,同步响应帧与第二信号的超帧中的上游数据相关联,上游数据包括多个数据时隙,并且在耦合到下游设备的单个外围设备处发起的数据占用多个数据时隙中的两个或更多个。

示例b7可以包括示例b6的主题,并且可以进一步指定源自单个外围设备的数据是音频数据。

示例b8可以包括示例b1-b7中的任一个的主题,并且还可以指定:第二信号包括第一同步响应帧和相关联的第一上游数据以及第二同步响应帧和相关联的第二上游数据;所述第一上游数据包括具有特定索引并且包括源自耦合到所述下游设备的第一外围设备的数据的数据时隙;并且所述第二上游数据包括具有所述特定索引并且包括起源于耦合到所述下游设备的不同于所述第一外围设备的第二外围设备的数据的数据时隙。

示例b9可以包括示例b8的主题,并且可以进一步指定第一和第二外围设备是不同的麦克风。

示例b10可以包括示例b1-b9中任一个的主题,并且还可以指定第一信号包括耦合到下游设备的至少一个扬声器的数据,并且第二信号包括源自至少一个麦克风的数据耦合到下游设备。

示例b11可以包括示例b1-b10中任一项的主题,并且还可以包括用于与无线收发器通信的外围设备通信电路,其中,所述无线收发器要接收语音呼叫,并且其中所述下游收发器电路是以包括表示第一信号中的语音呼叫的数据。

示例b12可以包括示例b1-b11中任一项的主题,并且还可以指定下游设备耦合到无线收发器,无线收发器要接收语音呼叫,下游收发器电路要接收表示第二信号中的语音呼叫的数据。

示例c1是主机设备,包括:向主节点收发器提供i2s信号的集成电路间(i2s)收发器电路,其中主节点收发器是双线总线的主设备,i2s信号提供时钟信息,所述主节点收发器基于所述时钟信息生成时钟信号,所述主节点收发器将通过所述双线总线向下游设备提供第一信号,同步控制帧的前导码所述第一信号基于所述时钟信号,所述下游设备基于所述前导码生成自己的时钟信号;内部集成电路(i2c)收发器电路,用于从所述主节点收发器接收第一i2c信号,并向所述主节点收发器提供第二i2c信号;以及处理电路,用于基于所述第一i2c信号生成用于所述下游设备的数据,其中所述下游设备的数据将被包括在所述第二i2c信号中并且将由所述主节点收发器通过所述两个i2c信号传输到所述下游设备线总线。

示例c2可以包括示例c1的主题,并且还可以指定第一信号包括耦合到下游设备的至少一个扬声器的数据。

示例c3可以包括示例c1-c2中任一个的主题,并且还可以指定:i2s收发器电路系统将经由双线总线和主节点收发器接收来自耦合到下游设备;所述i2c收发器电路经由所述双线总线和所述主节点收发器接收用户已经激活耦合到所述下游设备的会议用户接口元件的指示;并且i2s收发器电路用于响应于所述指示并且经由双线总线和主节点收发器将音频提供给双线总线上的另一下游设备。

示例c4可以包括示例c1-c3中任一项的主题,并且还可以指定下游设备耦合到无线收发器,无线收发器要接收语音呼叫,并且i2c收发器电路将接收表示经由主节点收发器和双线总线的语音呼叫的数据。

示例c5可以包括示例c1-c4中的任一个的主题,并且还可以指定下游设备有线连接到耦合到车辆的车顶或其他部分的天线,并且主节点收发器位于头部单元。

示例c6可以包括示例c1-c5中任一项的主题,并且还可以指定主机设备包括接收邮箱和发送邮箱,并且其中主机设备生成用于传输到下游设备,当数据提供给发送邮箱时。

示例c7可以包括示例c1-c6中任一项的主题,并且还可以指定下游设备耦合到车辆中的环境传感器,并且处理电路用于生成用于气候控制的控制指令系统基于来自传感器的数据通过主节点收发器和双线总线传送到主机设备。

示例d1是麦克风电缆,包括:耦合到麦克风的第一连接器;第二连接器,其耦合到音频接收装置;导体,用于在所述第一连接器和所述第二连接器之间传输数据;以及从节点收发器,包括上游收发器电路,用于接收通过双线总线从上游设备发送的第一信号并且通过双线总线向上游设备提供第二信号;时钟电路,用于生成时钟信号在所述从节点收发器处,基于所述第一信号中的同步控制帧的前导码,其中由所述节点收发器通过所述双线总线接收和提供信号的定时是基于所述时钟信号,以及外围设备通信电路耦合到所述导体以接收在所述第一连接器和所述第二连接器之间传输的数据,其中所述数据包括在所述第二信号中。

示例d2可以包括示例d1的主题,并且还可以指定从节点收发器被包括在第一连接器中。

示例d3可以包括示例d1-d2中任一项的主题,并且还可以指定包括在第二连接器中的从节点收发器。

示例d4可以包括示例d1-d3中任一个的主题,并且还可以指定从节点收发器设置在第一连接器和第二连接器之间。

示例d5可以包括示例d1-d4中任一个的主题,并且还可以包括模数转换器(adc),以将在第一连接器处接收的模拟麦克风输入转换为数字信号,其中数据传输在第二连接器的第一连接器之间包括数字信号。

示例d6可以包括示例d5的主题,并且还可以指定第二连接器将向音频接收设备提供第二信号和数字信号。

示例d7可以包括示例d5-d6中任一项的主题,并且还可以指定第二连接器用于向音频接收设备提供第二信号和模拟麦克风输入。

示例d8可以包括示例d7的主题,并且还可以指定提供第二信号,并且模拟麦克风输入包括提供第二信号和模拟麦克风输入的和。

示例d9可以包括示例d7-d8中任一项的主题,并且还可以指定第二连接器用于进一步将数字信号提供给音频接收设备。

示例d10可以包括示例d5-d9中任一项的主题,并且还可以包括数模转换器以将数字信号转换为模拟信号。

示例d11可以包括示例d10的主题,并且还可以指定第二连接器将向音频接收设备提供第二信号和模拟信号。

示例e1是包括任何示例a的任一个示例a的从节点收发器中的一个或多个的系统,其通过两线总线链路与示例b中的任一个的主节点收发器耦合。

示例e2可以包括示例e1的主题,并且还可以包括耦合到主节点收发器的示例c中的任一个的主机设备。

实施例e3是根据本文公开的任何技术的方法。

示例e4是包括用于执行本文公开的任何技术的装置的设备。

示例e5是其上具有指令的一个或多个非暂时性计算机可读介质,其响应于系统的一个或多个处理设备的执行,使系统执行本文公开的任何技术。

示例f1可以包括本文公开的gpio至gpio通信功能的任何实施例。

示例f2可以包括上述示例a-e中任一个的主题,并且还可以包括本文公开的gpio到gpio通信功能的任何实施例。

示例g1是低等待时间通信系统中的主节点收发器,包括下游收发器电路,用于通过总线向下游设备分配虚拟端口标识符到下游的通用输入/输出(gpio)引脚设备,其中所述虚拟端口标识符标识虚拟端口,以及通过所述总线向所述下游设备分配所述gpio引脚作为输入引脚或输出引脚。

示例g2可以包括示例g1的主题,并且还可以指定虚拟端口标识符包括与gpio引脚相关联的虚拟端口号的指示。

示例g3可以包括示例g2的主题,并且还可以指定下游设备是第一下游设备,第一下游设备的gpio引脚是第一gpio引脚,并且下游收发器电路进一步通过所述总线将不同于所述第一下游设备的第二下游设备的所述虚拟端口标识符分配给所述第二下游设备的第二gpio管脚。

示例g4可以包括示例g3的主题,并且还可以包括gpio数据电路,以在第一gpio引脚是输入引脚并且第二gpio引脚是输入引脚时对该值执行or逻辑运算以及第二gpio引脚的值来确定虚拟端口的值。

示例g5可以包括示例g2-4中的任一个的主题,并且还可以指定虚拟端口是第一虚拟端口,虚拟端口号是第一虚拟端口号,并且下游收发器电路进一步通过总线向所述下游设备分配第二虚拟端口标识符给所述下游设备的gpio引脚,其中所述第二虚拟端口标识符包括与所述第一虚拟端口号不同的第二虚拟端口号,标识与所述第一虚拟端口不同的第二虚拟端口。

示例g6可以包括示例g5的主题,并且可以进一步指定,当gpio引脚是输出引脚时,下游设备将对第一虚拟端口和第二虚拟端口的值执行或逻辑操作,虚拟端口来确定gpio引脚的值。

示例g7可以包括示例g1-6中任一个的主题,并且可以进一步指定下游收发器电路进一步通过总线向下游设备发送设置或清除虚拟端口的指令。

示例g8可以包括示例g7的主题,并且可以进一步指定下游设备是第一下游设备,并且下游收发器电路还用于通过总线从第二下游设备接收请求设置或清除所述虚拟端口,其中所述下游收发器电路用于响应于接收到设置或清除所述虚拟端口的请求而发送用于设置或清除所述虚拟端口的指令。

示例g9可以包括示例g7的主题,并且还可以指定该指令是清除虚拟端口,并且主节点收发器还包括gpio数据电路,以确定主节点下游的至少一个设备收发器拒绝该指令,并且响应于该确定,维持在主节点收发器的存储器中设置的虚拟端口。

示例g10可以包括示例g9的主题,并且可以进一步指定该确定包括识别从下游的至少一个设备接收的非确认。

示例g11可以包括示例g7的主题,并且还可以指定该指令是设置虚拟端口,并且主节点收发器还包括gpio数据电路,以将虚拟端口设置在主节点的存储器中收发器。

示例g12可以包括示例g1-11中任一项的主题,并且还可以包括主机接口电路,以将主节点收发器通信地耦合到主机设备。

示例g13可以包括示例g12的主题,并且还可以指定主机接口电路包括内部集成电路(i2c)电路。

示例g14可以包括示例g1-13中任一项的主题,并且还可以指定总线是双线总线。

示例h1是低等待时间通信系统中的从节点收发器,包括上游收发器电路,以便:通过总线从主节点收发器接收虚拟端口标识符到通用输入/输出(gpio)引脚的分配,其中所述虚拟端口标识符标识虚拟端口,以及通过所述总线从所述主节点收发器接收所述gpio引脚作为输入引脚或输出引脚的分配。

示例h2可以包括示例h1的主题,并且还可以指定虚拟端口标识符包括与gpio引脚相关联的虚拟端口号的指示,gpio引脚是第一gpio引脚,并且上游收发器电路还通过总线从主节点收发器接收虚拟端口标识符到下游设备的第二gpio引脚的分配,其中下游设备在来自从节点收发器的总线上的下游。

示例h3可以包括示例h2的主题,并且还可以包括下游收发器电路,以在总线下游传输虚拟端口标识符到下游设备的第二gpio管脚的分配。

示例h4可包括示例h1-3中任一者的主题,且可进一步包含gpio数据电路以反转gpio引脚的值。

示例h5可包括示例h1-4中的任一者的主题,且可进一步指定上游收发器电路进一步经由总线从主节点收发器接收用以改变gpio的值的指令销。

示例h6可包括示例h1-5中任一者的主题,且可进一步指定gpio引脚是从节点收发器的多个gpio引脚中的一者。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1