[总线技术] 看以太网黑科技如何让汽车变为“移动音乐厅”(上)

[复制链接]
Hirain1234 发表于 2025-8-19 11:44 | 显示全部楼层 |阅读模式
       随车载影音娱乐功能逐渐丰富,数字化传输音视频信息的需求十分迫切,传统的协议如IEEE 1394、USB或蓝牙存在兼容性及速率问题,因此需要一种简单通用的实时音视频传输方法,这就是IEEE 1722协议的产生原因。IEEE 1722协议又称AVTP(Audio Video Transport Protocol),是以太网AVB协议族中的一员,该协议规定了用于实现时间敏感型音频、视频及控制应用之间互操作性协议、数据封装方式和同步流程,借助AVB协议族中的其它协议如时间同步、流预留等,可以有效保证收发端的通信质量和延时,以及多端播放场景下的同步效果。AAF(AVTP Audio Format)作为其中音频传输的部分,定义了音频数据的封装格式,为实现通用可靠的音频传输提供了保障。本文将详细讲述AVTP AAF中对音频数据的封装方式。

1、AVTPDU
       AVTP是数据链路层协议,以太网协议类型为0x22F0,支持一对一或一对多的传输方式,实现一对多的传输可以通过组播或使用VLAN实现。

       整个AVTPDU可以分为三个部分:以太网数据链路层头部、AVTP头部和AVTP负载,如图所示:
1.png
图1 AVTPDU格式


       下图是wireshark对AVTP AAF实际的解析界面截图:
2.png
图2 wireshark中AAF的解析结果


       可以看到头部中包含丰富的音频数据的元数据信息,而负载部分是以类似字节流的形式记录音频数据。下文将对AVTP支持的音频格式分别进行讲述。

2、头部
      通用字段
       其中AVTP头部分为三种类型:AVTPDU通用流头部、通用控制头部和备选头部。
  • 通用控制头部常用于需要尽可能快速传递消息、不需要控制同步的场景;
  • 通用流头部包含时间戳消息,适用于对时间和同步效果敏感的应用;
  • 备选头部适用于一些特定的子类型数据。
       用来传输音频的AAF为了保证在多接收端场景下的同步及稳定连续的播放效果,需要在头部携带音频数据的时间戳信息,因此使用通用流头部格式。除此之外,AAF的头部中还携带了采样率、采样深度和采样格式信息,用来告知接收端(listener)音频信息的格式。AAF报文格式如下图所示:

3.png
图3 AAF报文格式

  • subtype:AAF对应的subtype为0x02;
  • sv:表示后续stream_id的有效性,正常情况下置1;
  • version:置0;
  • mr:发送端(talker)用来表示媒体时钟是否发生了变化(例如当音频输入源发生了变化),listener可以借此快速切换至新的媒体时钟。当媒体时钟发生变化时,该位会被翻转并至少保持8个AVTPDU的时间;
  • tv:表示后续avtp_timestamp的有效性,正常情况下置1;
  • sequence_num:序列号,达到上限后归零重新计数;
  • tu:表示时间戳的不确定性,当该位置1时,表示可能在一段时间内avtp_timestamp内的时间戳无法对应到gPTP时间,当时间恢复时,talker会将该位归零;
  • stream_id:八字节的StreamID,通常前六字节数值上等于MAC地址,后两字节取不重复的数值;
  • avtp_timestamp:呈现时间,单位为纳秒,大约每4秒循环一次,当tv为0时,该字段内数值无效;
  • stream_data_length:表示aaf_format_specific_payload的字节数。
  • aaf_format_specific_data_1,aaf_format_specific_data_2,afsd:由各格式定义,依据format确定。

       format字段定义如下:
表1.png
表1 AAF format字段含义

  • sp:表示稀疏时间戳模式,当该位置1时,每8个AVTPDU中只包含一个展示时间,否则每个AVTPDU中都包含一个展示时间;
  • evt:用于更高层次的协议中,AVTP不使用该字段。

PCM格式字段
       当format指定音频数据封装格式为PCM时,头部的定义如下:
4.png
图4 AAF PCM AVTP报文格式

       其中:nsr表示音频数据的采样速率,AAF支持多种采样速率,包括:
表3.png
表2 nsr字段含义

  • channel_per_frame:使用正整数表示声道数量;
  • bit_depth:表示单个采样内表示声音数据的位数,该值不能大于format所表述的数据大小,当format为FLOAT_32BIT时,位深度必须也为32位。当位深度小于format所表述的数据大小时,数据被填充在低位,高位置0。

AES3格式字段
       当format指定音频数据封装格式为AES3时,头部的定义如下:
5.png
图5 AAF AES3 AVTP报文格式

       其中:nfr表示AES3帧的速率,定义如下:
表4.png
表3 nfr字段含义

  • streams_per_frame:使用正整数表示每个AVTPDU中AES3流的数量;
  • aes3_data_type:表示AES3流内音频的格式,在头部中分为两个部分,分别为低位(aes3_data_type_l)和高位(aes3_data_type_h),其具体标准由aes3_dt_ref字段确定。

3、总结
       以上就是AVTP的基本介绍以及与音频传输相关头部信息的讲解了。通过头部我们能够得到音频的元数据信息,不过音频是如何被编码的呢?头部中的时间戳又有什么作用?我们将在下一期为大家揭晓。

       经纬恒润作为OPEN联盟会员和AUTOSAR联盟的高级合作伙伴,长期为国内外各大OEM和供应商提供涵盖TCP/IP、SOME/IP、DoIP、AVB、TSN、DDS等技术领域的设计和测试咨询服务,积极研发和探索车载网络前沿技术的工程应用。通过多个项目的实践经验,已建立了高质量、本土化的设计与测试一体化解决方案,为整车网络架构提供可靠支持。
表2.png
封面1.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

466

主题

482

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部

466

主题

482

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部