新闻  |   论坛  |   博客  |   在线研讨会
看以太网黑科技如何让汽车变为“移动音乐厅”(上)
hiraintech | 2025-08-19 15:10:35    阅读:13   发布文章

       随车载影音娱乐功能逐渐丰富,数字化传输音视频信息的需求十分迫切,传统的协议如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等技术领域的设计和测试咨询服务,积极研发和探索车载网络前沿技术的工程应用。通过多个项目的实践经验,已建立了高质量、本土化的设计与测试一体化解决方案,为整车网络架构提供可靠支持。


       了解更多:请致电010-64840808转6117 或发送邮件至market_dept@hirain.com(联系时请说明来自EEPW)

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
经纬恒润官方账号,了解更多:请拨打010-64840808或发送邮件至 market_dept@hirain.com。
推荐文章
最近访客