以太网多路音频实时传输方法及设备转让专利

申请号 : CN202110678134.9

文献号 : CN113556320B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 不公告发明人

申请人 : 珠海惠威科技有限公司

摘要 :

本发明涉及一种以太网多路音频实时传输方法及设备的技术方案,包括:以太网音频传输至少包括音频发送终端、音频接收终端及控制终端,通过获取音频发送终端发送的音频数据;将音频数据基于控制协议及音频流协议通过以太网数据链路层的媒体介质访问控制MAC层进行发送或接收;根据音频接收终端MAC地址配置,建立音频发送终端与一个或多个音频接收终端的音频传输连接;接收音频数据,执行音频数据的还原并播放。本发明的有益效果为:实现控制数据同网传输,实现延时为毫秒级别的实时多路音频传输。

权利要求 :

1.一种以太网多路音频实时传输方法,所述传输方法应用于以太网音频传输设备,所述以太网音频传输设备至少包括音频发送终端、音频接收终端及控制终端,其特征在于:获取所述音频发送终端发送的音频数据;

将所述音频数据基于控制协议及音频流协议通过以太网数据链路层的媒体介质访问控制MAC层进行发送或接收;该步骤包括:将所述控制协议及所述音频流协议基于IEEE802.3标准的帧格式在MAC层进行传输,其中所述控制协议及所述音频流协议为非IP数据格式,所述控制协议的协议类型为0X0900,所述音频流协议的协议类型为0X0A00,所述控制协议及所述音频流协议不进入IP层;所述控制协议包括报头、目的地址、源地址、CMD类型、数据长度、数据段、奇偶校验,所述控制协议在802.3帧格式层时的数据形式包括先导符、帧开始标识、目的地址、源地址、类型、数据及校验;所述音频流协议包括报头类型、音频包长度、音频包ID、数据负载及校验,所述音频流协议在802.3帧格式层时的数据形式包括先导符、帧开始标识、目的地址、源地址、类型、数据及校验;所述控制协议及所述音频流协议的协议报头每个字节的数据大小相同,以及,所述协议报头还包括未被使用的数据;

根据所述音频接收终端MAC地址配置,建立所述音频发送终端与一个或多个所述音频接收终端的音频传输连接;

通过音频发送终端的音频编解码器进行所述音频数据的采集,通过数字音频接口I2S与直接寄存器访问DMA将所述音频数据保存到音频循环内存中;当循环内存中检测到有可发送的数据,根据所述控制协议及所述音频流协议封包成以太网数据帧依次通过数据链路层及物理接口发送到网络中,并释放当前内存,将其置为空闲状态;

接收所述音频数据,执行音频数据的还原并播放,该步骤包括:音频接收端收到网络来的以太网音频数据帧,根据HCAP协议在数据链路层截获网络音频数据包,将该数据包解包处理,移送到音频数据播放内存缓冲区,同时根据音频数据包ID排序处理,并启动数字音频接口I2S与直接寄存器访问DMA进行数据还原播放,其中HCAP协议为基于IEEE802.3标准的帧格式所创建的音频流协议。

2.根据权利要求1所述的以太网多路音频实时传输方法,其特征在于,所述音频数据包括:

标准IIS的立体音频PCM格式或PCM无损无压缩数据,所述音频数据通过数据包形式进行传输,所述数据包大小为512字节,所述数据包的ID根据采集时间的顺序进行取值。

3.根据权利要求1所述的以太网多路音频实时传输方法,其特征在于,所述根据所述音频接收终端MAC地址配置,建立所述音频发送终端与一个或多个所述音频接收终端的音频传输连接包括:获取所述音频发送终端及所述音频接收终端的MAC地址,MAC地址包括单播MAC地址和组播MAC地址;

通过单播MAC地址完成寻址、通信控制与实时音频流传输;

通过所述组播MAC对多个所述音频接收终端进行分组,单播MAC作为点对点访问地址,通过分组进行多路音频的实时传输;

所述访问地址分配根据所述控制协议进行单个配置写入终端的非易失EEPOM中,还可以由实施控制终端在线自由配置。

4.一种以太网多路音频实时传输设备,用于实现权利要求1‑3任一所述的方法,其特征在于,包括音频发送终端、音频收发终端、音频接收终端及控制终端,所述控制终端通过以太网网络总线分别连接所述音频发送终端、所述音频收发终端及所述音频接收终端;

所述控制终端用于获取所述音频发送终端发送的音频数据,将所述音频数据基于控制协议及音频流协议通过以太网数据链路层的媒体介质访问控制MAC层进行发送或接收,以及根据所述音频接收终端MAC地址配置,建立所述音频发送终端与一个或多个所述音频接收终端的音频传输连接;

所述音频接收终端用于接收所述音频数据,执行音频数据的还原并播放;

所述音频收发终端可以进行音频数据的接收及发送。

5.根据权利要求4所述的以太网多路音频实时传输设备,其特征在于,所述音频发送终端、所述音频收发终端、所述音频接收终端及所述控制终端均采用Cortex‑M4系列嵌入式微处理芯片。

说明书 :

以太网多路音频实时传输方法及设备

技术领域

[0001] 本发明涉及计算机音频通信领域,具体涉及了一种以太网多路音频实时传输方法及设备。

背景技术

[0002] 目前基于以太网的多路音频传输系统,几乎都基于TCP/IP的UDP或TCP的技术,无论采用UDP还是TCP,都是在TCP/IP的传输层进行数据传输通信。
[0003] TCP/UDP协议层接收数据需要从物理层、数据链路层、网络层,逐层向上进行数据解包,最后送到TCP/UDP协议层进行数据处理,同理TCP/UDP协议层发送数据需要反向的逐层向下数据封包处理过程,最后送到物理层发送出去,加上后续环节的处理,系统延时几乎都在100毫秒级别,对于时间敏感、要求严格的专业实时音频传输系统来说,系统延时参数是远远达不到要求。
[0004] 以太网的OSI模型,从上到下分层为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。对应的以太网TCP/IP参考模型从上到下分为:应用层(OSI模型的应用层、表示层、会话层)、传输层(OSI模型也为传输层,TCP和UDP在该层)、网络层(OSI模型也为网络层,IP层)、网络接口层(OSI模型的数据链路层、物理层)。
[0005] 参考图1的以太网模型构成对比,TCP/IP中的TCP协议和UDP协议位于TCP/IP参考模型的传输层,下面还有IP网络层和网络接口层,如果需要实现音频实时传输,必须改善网络数据传输延时。以太网普通数据传输服务对差错控制有很高的要求,一段数据的丢失可能引起大批数据失效,因而依赖于数据重发进行差错恢复;
[0006] 以太网音频实时传输则要求有节奏地按顺序到达,如果音频实时数据到达得太晚以致于错过了“播放窗口”,就没用了。一小段音频实时数据的丢失往往不会造成严重的后果,再加上为保证数据的实时特征,网络音频应用中一般宁愿丢失或中断那些已经延迟太久的音频数据包,而不要求音频数据重发,所以对差错控制的要求很低。因此,以太网音频实时应用不能套用传统的TCP/IP传输控制模式。
[0007] 作为以太网音频系统,必须处理的另一个关键问题是系统容量。如果采用TCP/UDP传输,势必需考虑IP地址分配与占用问题。一个网段IP地址的容量有256个。为了能支持更多终端,需要更多IP地址,必须使用交换器或路由器。有N个网段,路由器必须分别N个IP(N个IP分别为相应网段内),加大系统复杂度和技术难度、配置工作量成倍增加,不够友好。

发明内容

[0008] 本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了一种以太网多路音频实时传输方法及设备,实现控制数据同网传输,实现延时为毫秒级别的实时多路音频传输。
[0009] 本发明的技术方案包括一种以太网多路音频实时传输方法,所述传输方法应用于以太网音频传输系统,所述以太网音频传输系统至少包括音频发送终端、音频接收终端及控制终端,其特征在于:获取所述音频发送终端发送的音频数据;将所述音频数据基于控制协议及音频流协议通过以太网数据链路层的媒体介质访问控制MAC层进行发送或接收;根据所述音频接收终端MAC地址配置,建立所述音频发送终端与一个或多个所述音频接收终端的音频传输连接;接收所述音频数据,执行音频数据的还原并播放。
[0010] 根据所述的以太网多路音频实时传输方法,其中音频数据包括:标准IIS的立体音频PCM格式或PCM无损无压缩数据,所述音频数据通过数据包形式进行传输,所述数据包大小为512字节,所述数据包的ID根据采集时间的顺序进行取值。
[0011] 根据所述的以太网多路音频实时传输方法,其中将所述音频数据基于控制协议及音频流协议通过以太网数据链路层的媒体介质访问控制MAC层进行发送或接收包括:将所述控制协议及所述音频流协议基于IEEE802.3标准的帧格式在MAC层进行传输,其中所述控制协议及所述音频流协议为非IP数据格式,所述控制协议的协议类型为0X0900,所述音频流协议的协议类型为0X0A00,所述控制协议及所述音频流协议不进入IP层。
[0012] 根据所述的以太网多路音频实时传输方法,其中控制协议包括报头、目的DA、源SA、CMD类型、数据长度、数据段、奇偶校验,所述控制协议在802.3帧格式层时的数据形式包括先导符、帧开始标识、目的地址、源地址、类型、数据及校验。
[0013] 根据所述的以太网多路音频实时传输方法,其中音频流协议包括报头类型、音频包长度、音频包ID、数据负载及校验,所述控制协议在802.3帧格式层时的数据形式包括先导符、帧开始标识、目的地址、源地址、类型、数据及校验。
[0014] 根据所述的以太网多路音频实时传输方法,其中控制协议及所述音频流协议的协议报头每个字节的数据大小相同,以及,还可以自定义设置为未被使用的数据。
[0015] 根据所述的以太网多路音频实时传输方法,其中获接收所述音频数据,执行音频数据的还原并播放包括:通过音频发送终端的音频编解码器进行所述音频数据的采集,通过I2S和DMA将所述音频数据保存到音频循环内存中;当循环内存中检测到有可发送的数据,根据所述控制协议及所述音频流协议封包成以太网数据帧依次通过数据链路层及物理接口发送到网络中,同时并释放当前内存,将其置为空闲状态;以及,音频接收端收到网络来的以太网音频数据帧,根据HCAP协议在数据链路层截获网络音频数据包,将该数据包解包处理,移送到音频数据播放内存缓冲区,同时根据音频数据包ID排序处理,并启动I2S与DMA进行数据还原播放。
[0016] 根据所述的以太网多路音频实时传输方法,其中根据所述音频接收终端MAC地址配置,建立所述音频发送终端与一个或多个所述音频接收终端的音频传输连接包括:获取所述音频发送终端及所述音频接收终端的MAC地址,MAC地址包括单播MAC地址和组播MAC地址;通过单播MAC地址完成寻址、通信控制与实时音频流传输;通过所述组播MAC对多个所述音频接收终端进行分组,单播MAC作为点对点访问地址,通过分组进行多路音频的实时传输;所述访问地址分配根据所述控制协议进行单个配置写入终端的非易失EEPOM中,还可以由控制终端在线自由配置。
[0017] 本发明的技术方案还包括一种以太网多路音频实时传输设备,用于实现上述任一的方法,其特征在于:音频发送终端、音频收发终端、音频接收终端及控制终端,所述控制终端通过以太网网络总线分别连接所述音频发送终端、所述音频收发终端及所述音频接收终端;所述控制终端用于获取所述音频发送终端发送的音频数据,将所述音频数据基于控制协议及音频流协议通过以太网数据链路层的媒体介质访问控制MAC层进行发送或接收,以及根据所述音频接收终端MAC地址配置,建立所述音频发送终端与一个或多个所述音频接收终端的音频传输连接;所述音频接收终端用于接收所述音频数据,执行音频数据的还原并播放;所述音频收发终端可以进行音频数据的接收及发送。
[0018] 根据所述的以太网多路音频实时传输设备,其中音频发送终端、所述音频收发终端、所述音频接收终端及所述控制终端均采用Cortex‑M4系列嵌入式微处理芯片。
[0019] 本发明的有益效果为:实现控制数据同网传输,实现延时为毫秒级别的实时多路音频传输。

附图说明

[0020] 下面结合附图和实施例对本发明进一步地说明;
[0021] 图1所示为以太网模型。
[0022] 图2所示为根据本发明实施方式的以太网多路音频实时传输流程图。
[0023] 图3所示为根据本发明实施方式的以太网多路音频的控制协议在802.3帧格式层时的数据形式。
[0024] 图4所示为根据本发明方式的控制协议。
[0025] 图5所示为根据本发明实施方式的以太网多路音频的音频流协议在802.3帧格式层时的数据形式。
[0026] 图6所示为根据本发明方式的音频流协议。
[0027] 图7所示为根据本发明方式的以太网多路音频设备示意图。
[0028] 图8所示为根据本发明方式的MCS_CORE模块的电路模型图。
[0029] 图9所示为根据本发明方式的MCS_CORE模块的嵌入式软件模型图。
[0030] 图10所示为根据本发明实施方式的MCS_CORE各程序功能模块关系逻辑流图。
[0031] 图11所示为根据本发明实施方式的音频收发缓存处理流程。

具体实施方式

[0032] 本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
[0033] 本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
[0034] 图2所示为根据本发明实施方式的流程图。该流程包括:获取音频发送终端发送的音频数据;将音频数据基于控制协议及音频流协议通过以太网数据链路层的媒体介质访问控制MAC层进行发送或接收;根据音频接收终端MAC地址配置,建立音频发送终端与一个或多个音频接收终端的音频传输连接;接收音频数据,执行音频数据的还原并播放。本实施例的用于以太网音频传输,以太网音频传输至少包括音频发送终端、音频接收终端及控制终端。本实施例通过直接在数据链路层中的媒体介质访问控制MAC层进行数据接收和发送,通过相应控制协议和处理算法,结合MAC地址和以太网数据帧的处理,实现多路音频实时传输[0035] 图3所示为根据本发明实施方式的以太网多路音频的控制协议在802.3帧格式层时的数据形式。
[0036] 本发明的实施例以HCAP.1控制和HCAP.2音频流两个子协议,以HCAP表示应用于本发明实施方式的2个协议。
[0037] HCAP协议非IP数据格式,也不进入IP层,被封装成IEEE802.3(2003)帧格式在MAC层进行传输。HCAP.1协议类型为,HCAP.2协议类型为0X0A00。
[0038] HCAP.1协议由“2字节报头+2字节目的地址+2字节源地址+1字节命令数据+1字节数据长度+1‑127字节数据段+1字节奇偶校验”构成,HCAP.1协议本身字段参考图4,HCAP.1在802.3帧格式层的形式参考图3。
[0039] 图3和图4中HCAP.1的字段解释如下:
[0040] (1)报头,为2字节,各字节数据相同。主要目的是防止数据传输过程出现错误,可以利用这个特性判断数据是否为HCAP协议及数据错误与否。根据通信的源和目标不同,划分不同类型的报头,进行区分。
[0041] (2)目的地址DA,为2字节,是通信接收方终端ID,取值为0‑65535。DA地址的表示方法:地址高字节在前,地址低字节。当ID为65535是,表示为广播ID,对全体设备有效。
[0042] (3)源地址SA,为2字节,是通信发起方终端ID,取值为0‑65535。SA地址的表示方法:地址高字节在前,地址低字节。
[0043] (4)命令类型CMD,用1个字节表示,具体相关命令不详细描述;可以支持256种命令;
[0044] (5)HCAP.1协议支持在1‑127字节可变的数据长度;
[0045] (6)由于一般协议取值为0X08**或0X8***,为了不和标准协议发生冲突,我们协议类型取值为0X0900。
[0046] (7)ID说明:每个终端有自己唯一的本机ID序列号,取值为0‑65535,地址高字节在前,地址低字节,当ID为65535是,表示为广播ID,对全体设备有效。目的地址DA和源地址SA就是ID终端。
[0047] (8)MAC说明:每个终端有自己唯一的本机MAC物理地址,MAC地址采用48位,MAC后2字节数据由终端ID填充。MAC形式:0X70,0X00,0X00,0X00,ID高字节,ID低字;取值范围:0X70,0X00,0X00,0X00,0X00,0X00‑‑‑‑0X70,0X00,0X00,0X00,0XFF,0XFF,容量为65535个;
[0048] (9)协议任何一条具体命令,DA和SA不能相同。
[0049] 图5所示为根据本发明实施方式的以太网多路音频的音频流协议在802.3帧格式层时的数据形式。
[0050] 图6所示为根据本发明方式的音频流协议。HCAP.2音频流协议由“2字节报头+2字节音频包长度+2字节音频包ID+40‑1494字节音频数据负载+1字节奇偶校验”构成。与图3和图4相同的字段不同字段的解释如下:
[0051] (1)报头为0XFF 0XFF,当然可以指定其他未使用的数据,各字节数据相同。主要目的是防止数据传输过程出现错误,可以利用这个特性判断数据是否为HCAP协议及数据错误与否。
[0052] (2)目前音频数据采用标准IIS的立体音频PCM格式,也可以支持其他格式的PCM无损无压缩数据。目前采用512字节为一个包进行传输。ID号取值:0‑65535,按采集转换时间顺序取值。
[0053] 图7所示为根据本发明方式的以太网多路音频设备示意图。其中模数转换采集器采集CD音源处理转换并对外发送音频数据,为音频发送终端SOURCER;网络话筒既对外发送音频数据同时也从网络上接收音频数据,为音频收发终端TRANSCEIVER;网络播放器从网络接收音频数据,为音频接收终端SINKER;控制器负责整个系统调度与管理,为控制终端CONTROLLER。
[0054] 无论是SOURCER、SINKER、TRANSCEIVER、CONTROLLER终端,都采用同一核心模块MCS_CORE。该模块采用Cortex‑M4系列嵌入式微处理芯片,自带MAC,具备RMII以太网物理接口,IIS数字音频接口,和满足运行嵌入式操作系统FRTOS和LWIP协议栈的ROM和RAM空间及系统代码及数据存储空间。
[0055] 图8所示为根据本发明方式的MCS_CORE模块的电路模型图。图中MAC通过网络物理层进行音频数据的收发,音频输出处理电路及音频输入处理电路分别用于执行音频数据的输出及输入,IIS用于音频数据的无损处理。
[0056] 结合图9及图10,本发明的实施例至少能够实现以下技术方案:
[0057] 终端可以拥有两个MAC地址,一个为单播MAC地址和组播地址。每个终端的单播MAC地址完成寻址之用,实现通信控制与实时音频流传输。单播MAC作为点对点访问的地址,该地址分配既可以由上位软件根据HCAP.1协议进行单个配置写入终端非易失EEPOM中,可以由控制终端在线分配,支持根据实际需要重新配置:终端MAC地址形式:0X70,0X00,0X00,0X00,ID高字节,ID低字;取值范围:0X70,0X00,0X00,0X00,0X00,0X00‑‑‑‑0X70,0X00,
0X00,0X00,0XFF,0XFF,容量为65535个;终端拥有的组播MAC地址,实现接收分区分组的实时音频流。组播地址可以根据需要自行选择组播类地址即可,实用的系统需要预先规划好。
[0058] 以及,关于音频数据的收发及缓存可以参考图11。
[0059] 图11所示为根据本发明实施方式的音频收发缓存处理流程。音频发送终端由音频编解码器(如WM8978G)进行采集,通过I2S和DMA将数据保存到音频循环内存中(假设一个音频网络数据包为1024字节),循环内存大小为1024x4字节。当循环内存中检测到有可发送的数据,根据HCAP协议封包成以太网数据帧通过数据链路层‑>PHY发送到网络中,同时并释放当前内存,将其置为空闲状态。同理音频接收端收到网络来的以太网音频数据帧,根据HCAP协议在数据链路层截获网络音频数据包,将该数据包解包处理,移送到音频数据播放内存缓冲区,同时根据音频数据包ID排序处理,并启动I2S与DMA进行数据还原播放。
[0060] 应当认识到,本发明实施例中的方法步骤可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
[0061] 此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0062] 进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
[0063] 计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
[0064] 上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。