对比其他的数字音频分发机制(如USB音频),由于需要能感知AVB的交换机,AVB可能看起来成本较高。因为这个原因,提出菊花链AVB的案例:一台带有两个以太网端口(称其为A与B)和一台内置“交换机”的AVB终端设备,引号引住交换机是因为这并不是一台全功能的交换机。
图3给出的即为一种布局案例。一台笔记本电脑与节点1相连,节点1与节点2相连,节点2与节点3相连,网络到此结束。每一个节点由2个端口(对称的)组成,连接端口的逻辑如下:
● 如果只有一个端口被插入,节点就相当于一台普通的AVB终端设备
● 如果两个端口都被接入,此节点主要担当两个端口之间的桥:所有数据流都正常通过。此节点自己将会接入任一经过此设备的AVB数据流,并且偶尔会消除或者产生一个数据包:例如当响应SRP、PTP或配置协议中任意一个时。
这就意味着依据交换容量节点需要的资源很少。到达端口A的数据将会流向B,除非它已被本地的节点预定,到达B的流也将流向A,除非它已被本地的节点预定。偶尔会在本地生成数据包,节点必须了解这些数据包应该去向A还是B。桥接A与B的软件必须是能感知AVB的,并且必须参与进来,例如时钟同步。
值得注意的是,现在既不需要路由表也不需要缓冲存储,完成这样简单的任务也不需要操作系统。这就意味着在成本方面,一台菊花链AVB终端设备与普通的AVB终端设备外加一个以太网PHY和插口的成本是差不多的。
这种方法有一些局限性:
● 和一台交换机不同,一个菊花链网络需要为流过整条菊花链的末向数据流预留流量;在1台带有7个节点的交换机里,所有7个节点理论上都可以接收100 Mbits的流量。在一个菊花链系统中,这可能需要第一个节点传输700 Mbits/s。然而,在一个AVB系统中,大多数数据流都是多路传送音频数据流,很小部分的流量为特殊的节点预留。因此,链上的节点都接听到相同的流,一条菊花链上几乎没有额外的数据流。
● 一秒限制:它指的是为了保证一个2ms的端对端延迟,AVB标准不支持在一个网络中有多于7台交换机,这就把一条单菊花链限制到7个节点范围内。有两种方法可以解决这个问题:首先,可以在一个封闭系统内放弃那2ms的延迟。其次,可以在菊花链中使用一台交换机。倘若一条4个节点的菊花链与交换机的每个端口都相连,那么一台交换机就可以使用4倍的节点数,减少了所需基础设施的成本。
因为这些限制,菊花链AVB非常适合于用于小规模系统。
菊花链实施案例
已经在带有16个逻辑核的XMOS芯片的基础上开发出了一种菊花链AVB节点。系统的硬件和软件结构如图4所示。的系统所用硬件包括:
● 一片带有16个逻辑核的xCORE多核微控制器
● 两个带有磁体和插口的以太网PHY
● 一个可以生成字时钟的低抖动锁相环(PLL)
● 一个带有输入输出级的编码解码器(CODEC)
微控制器运行7个任务来控制2个以太网端口:输入数据包、输出数据包和两个端口间的路由数据包。另外6个任务实现AVB栈,分别是主叫者/接听者、PTP与媒体时钟恢复、I2S控制、SRP/MRP和1722.1恢复与控制任务。所有的13个任务适合于128kByte的片上存储,从而不再需要排除外部RAM。用一片外部闪存芯片来存储固定数据和开机映像。其软件与高通道数AVB产品的软件非常相似,唯一不同的部分是MII接口和缓存。
通过采用一片XMOS sliceKIT卡加两片以太网子卡与一片音频子卡来构建了一个系统。图5为一张介绍4个菊花链节点堆叠的照片。菊花链节点堆叠与一台笔记本电脑相连,它将两个节点作为“左”和“右”声道。(音频子卡自带双立体声输入和双立体声输出;这次演示只运用了一个单音频输出。)
笔记本电脑可以发现两个节点,因而我们可以将我们的音频输出重新指向到两台扬声器。每个时钟的示波器波形图表明两个声道在播放时没有明显的相位差。相同的硬件/软件架构可被广泛应用,如构建一个会议电话系统,或者驱动一个功放(P/A)系统。
结论
我们已经证明我们能够构建一个低开销的AVB系统,而不需要全功能的AVB交换机。这减少了AVB的成本,并使菊花链系统得以被构建。
相关文章