一种基于FPGA的以太网音频传输系统的制作方法

文档序号:12490728阅读:289来源:国知局
一种基于FPGA的以太网音频传输系统的制作方法与工艺

本发明属于音频信号传输技术领域,特别涉及一种基于FPGA的以太网音频传输系统。



背景技术:

近年来,随着以太网技术的快速发展,给传统的音频传输行业带来了巨大的挑战,未来的音频技术会朝着数字化和网络化方向发展。数字音频信号不仅可以解决传统模拟音频信号在传输和处理过程中发生的噪声干扰问题,还能解决音频质量检测问题。

传统的模拟音频设备在传输信号时占用了大量的带宽资源,易受到噪声的干扰,而且稳定性较差,因此亟需提出一种降低带宽资源占用量、稳定性好的音频传输系统。



技术实现要素:

本发明为了克服上述现有技术的不足,提供了一种基于FPGA的以太网音频传输系统,本发明能够降低带宽资源占用量,而且稳定性好、成本低廉。

要解决以上所述的技术问题,本发明采取的技术方案为:

一种基于FPGA的以太网音频传输系统包括音频接收模块、接收端FPGA模块、接收端物理层芯片模块、音频发送模块、发送端FPGA模块以及发送端物理层芯片模块,其中,

音频接收模块,用于采集音频信号,并将采集的输入音频信号发送至接收端FPGA模块;

接收端FPGA模块,用于对音频信号进行以太网协议封装和CRC校验计算;

接收端物理层芯片模块、音频发送模块均用于进行音频信号传输;

发送端FPGA模块,用于对音频信号进行数据转换处理以及CRC校验检测;

音频发送模块,用于对经过发送端FPGA模块转换后的音频信号进行实时还原输出;

所述音频接收模块、接收端FPGA模块、接收端物理层芯片模块依次连接;所述发送端物理层芯片模块、发送端FPGA模块、音频发送模块依次连接;所述接收端物理层芯片模块的信号输出端连接发送端物理层芯片模块的输入端。

优选的,所述接收端FPGA模块包括:

采集音频信号的信号采集单元;

用于将音频信号按照以太网协议进行封装的信号封装单元;

计算音频信号数据帧的CRC校验码,并将所述CRC校验码添加至帧中进行传输的第一CRC校验计算单元;

用于将封装的数据帧按照百兆以太网时序进行发送的信号发送单元;

所述信号采集单元、信号封装单元、第一CRC校验计算单元、信号发送单元依次连接;所述信号采集单元的输入端连接音频接收模块的输出端,所述信号发送单元输出端连接接收端物理层芯片模块的输入端。

优选的,所述发送端FPGA模块包括:

用于按照百兆以太网时序进行数据帧接收的音频数据帧接收单元;

用于校验数据帧的第二CRC校验计算单元;

用于将音频信号从数据帧中解析出来的音频数据帧解析单元;

用于将音频信号还原输出的音频信号还原单元;

所述音频数据帧接收单元、第二CRC校验计算单元、音频数据帧解析单元、音频信号还原单元依次连接;所述音频数据帧接收单元的输入端连接发送端物理层芯片模块的输出端,所述音频信号还原单元的输出端连接音频发送模块的输入端。

优选的,所述信号采集单元按照I2C接口协议进行配置,配置完成后,信号采集单元进入正常工作状态,采集来自音频接收模块的音频信号,并将所述音频信号转换成数字的音频信号输出至信号封装单元。

优选的,所述信号封装单元包括状态机。

进一步的,所述第一CRC校验计算单元逐字节读取前级缓存包FIFO内部的数据帧,根据CRC校验算法对所述数据帧的CRC校验码进行计算;计算完成后,将CRC校验码添加至此数据帧后,输出至后级缓存包FIFO进行缓存。

进一步的,所述信号发送单元在空闲状态下,判断前级缓存包FIFO的空满标识,在非空情况下,不断读取所述前级缓存包FIFO的数据,同时对数据帧头位置进行搜索判断,得到数据帧头位置后,再判断前级缓存包FIFO的空满状态,如果为非空状态时,则前级缓存包FIFO中至少存储了一个完整的待发送的以太网数据帧,先发送以太网报文的前导码和帧定界符,发送完成之后,跳转至数据发送状态;在所述数据发送状态中,开始取出前级缓存包FIFO中的数据,按照MII接口协议把一个完整的数据帧发送出去。

进一步的,所述接收端物理层芯片模块、发送端物理层芯片模块均为百兆以太网物理层芯片。

更进一步的,所述接收端FPGA模块的芯片型号为EP4CE10F17C8N,发送端FPGA模块的芯片型号为EP4CE10F17C8N。

更进一步的,所述音频接收模块、音频发送模块的芯片型号均为WM8731。

本发明的有益效果为:

1)、本发明包括音频接收模块、接收端FPGA模块、接收端物理层芯片模块、音频发送模块、发送端FPGA模块、发送端物理层芯片模块,接收端FPGA模块与发送端FPGA模块相互配合实现了音频信号的采集以及音频信号的还原,本发明的电路结构简单,使用的芯片成本低廉,大大地节省了传输带宽和存储资源,而且稳定性好、成本低廉。

2)、所述接收端物理层芯片模块、发送端物理层芯片模块均为百兆以太网物理层芯片,因此信号经过接收端物理层芯片模块、发送端物理层芯片模块时信号的损失量小,而且百兆以太网物理层芯片的性能稳定、可靠性较好。

附图说明

图1为本发明的具体实施方式的整体结构框图;

图2为本发明的具体实施方式的接收端FPGA模块结构框图;

图3为本发明的具体实施方式的发送端FPGA模块结构框图;

图4为本发明的具体实施方式的信号采集单元的内部示意结构图;

图5为本发明的具体实施方式的音频信号的输入格式;

图6为本发明的具体实施方式的信号封装单元操作状态机;

图7为本发明的具体实施方式的百兆以太网物理层芯片发送状态机。

图中的附图标记含义如下:

10—音频接收模块 20—接收端FPGA模块

21—信号采集单元 22—信号封装单元

23—第一CRC校验计算单元 24—信号发送单元

30—接收端物理层芯片模块 40—音频发送模块

50—发送端FPGA模块 51—音频数据帧接收单元

52—第二CRC校验计算单元 53—音频数据帧解析单元

54—音频信号还原单元 60—发送端物理层芯片模块

具体实施方式

下面对照附图,对本发明的具体实施方式如所涉及的各构件的形状、构造、各部分之间的相互位置及连接关系、各部分的作用及工作原理等作进一步的详细说明:

如图1所示,一种基于FPGA的以太网音频传输系统包括用于采集音频信号的音频接收模块10;用于对音频信号进行以太网协议封装和CRC校验计算的接收端FPGA模块20;用于进行音频信号传输的接收端物理层芯片模块30、发送端物理层芯片模块60;用于对音频信号进行数据转换处理以及CRC校验检测的发送端FPGA模块50;用于对转换后的音频数据进行实时还原输出的音频发送模块40;所述音频接收模块10、接收端FPGA模块20、接收端物理层芯片模块30依次连接;所述发送端物理层芯片模块60、发送端FPGA模块50、音频发送模块40依次连接;所述接收端物理层芯片模块30的信号输出端连接发送端物理层芯片模块60的输入端。

如图2所示,所述接收端FPGA模块20包括用于采集音频信号的信号采集单元21;用于将音频信号按照以太网协议进行封装的信号封装单元22;计算音频信号数据帧的CRC校验码,并将所述CRC校验码添加至帧中进行传输的第一CRC校验计算单元23;用于将封装的数据帧按照百兆以太网时序进行发送的信号发送单元24;所述信号采集单元21、信号封装单元22、第一CRC校验计算单元23、信号发送单元24依次连接;所述信号采集单元21的输入端连接音频接收模块10的输出端,所述信号发送单元24输出端连接接收端物理层芯片模块30的输入端。

如图3所示,所述发送端FPGA模块50包括:用于按照百兆以太网时序进行数据帧接收的音频数据帧接收单元51;用于校验数据帧的第二CRC校验计算单元52;用于将音频信号从数据帧中解析出来的音频数据帧解析单元53;用于将音频信号还原输出的音频信号还原单元54;所述音频数据帧接收单元51、第二CRC校验计算单元52、音频数据帧解析单元53、音频信号还原单元54依次连接;所述音频数据帧接收单元51的输入端连接发送端物理层芯片模块60的输出端,所述音频信号还原单元54的输出端连接音频发送模块40的输入端。

所述接收端物理层芯片模块30、发送端物理层芯片模块60均为百兆以太网物理层芯片;所述接收端FPGA模块20的芯片型号为EP4CE10F17C8N,发送端FPGA模块50的芯片型号为EP4CE10F17C8N;所述音频接收模块10、音频发送模块40的芯片型号均为WM8731。

信号采集单元21用于配置内部寄存器,采集输入的音频信号。信号采集单元21内部结构图如图4所示,信号采集单元21工作时首先按照I2C接口协议进行配置,按照所需的工作模式设置内部寄存器的值,配置完成后,信号采集单元21进入正常的工作状态,采集模拟音频数据即音频信号,并将模拟音频数据转换成数字的音频数据输出。如图5所示,按照音频数据的输入时序,将串行输入的数据转换成并行数据,并输入至信号封装单元22。

如图6所示,信号封装单元22通过状态机完成,在空闲状态下,判断后级缓存包FIFO的空满标识,在非满情况下,预先将设置的以太网帧存入前级缓存包FIFO,然后转入等待音频信号采集模块送来的音频数据,音频数据送来的数据按照每送一次32bit后,暂停若干个时钟周期的方式。当送满26次音频信号数据后,与前面的帧头部组成一个完整的32个周期的128字节帧,随后转入空闲状态。

第一CRC校验计算单元23用于计算数据帧的CRC校验码,并添加至帧中进行传输,逐字节地读取前级缓存包FIFO内部的数据帧,并不断输入第一CRC校验计算单元23,根据CRC校验算法对输入数据帧的CRC校验码进行计算,当检测一帧数据计算完成时,将计算的CRC校验码添加至数据帧后,缓存至后级缓存包FIFO模块。

如图7所示,所述信号发送单元24用于将封装的数据帧按照百兆以太网时序进行发送。通过状态机对其进行操作,所述信号发送单元24在空闲状态下,判断前级缓存包FIFO的空满标识,在非空情况下,不断读取所述前级缓存包FIFO的数据,同时对数据帧头位置进行搜索判断,得到数据帧头位置后,再判断前级缓存包FIFO的空满状态,如果为非空状态时,则前级缓存包FIFO中至少存储了一个完整的待发送的以太网数据帧,先发送以太网报文的前导码和帧定界符,发送完成之后,跳转至数据发送状态;在所述数据发送状态中,开始取出前级缓存包FIFO中的数据,按照MII接口协议把一个完整的数据帧发送出去。

音频数据帧接收单元51用于按照百兆以太网物理层芯片时序进行数据帧的接收,在接收MII线路侧送来的数据时,由于数据使能指示的头部有10到11个无效字节0x00,然后才是帧前导码及有效帧数据,这里需要做切除无效头部处理。另外在数据使能指示的尾部,有3个时钟低电平的震荡,需要用延迟,把尾巴部分的数据有效指示的震荡消除掉。在去除无效头部及消除尾部震荡后,使用处理后的数据有效使能,按照2bit至32bit的位宽转换,将接收到的数据转成后续模块处理的32位宽并行数据。

第二CRC校验计算单元52用于校验数据帧的CRC校验码。读取前级缓存包FIFO内部的数据帧,计算数据帧的CRC校验码。当计算完成时,将其与数据帧尾部的CRC校验码进行计算。若相同,则说明数据在传输过程中中未发生错误;若不同,说明数据在传输过程中发生错误。校验完成后切除CRC校验码,并将数据输入下一级模块。

所述音频数据帧解析单元53用于将音频信号从以太网帧中解析出来,检测输入的数据帧的次高位若为1,计数器进行计数。当计数器值等于7时,将随后的数据输入前级缓存包FIFO中缓存,其余帧头数据进行丢弃。

所述音频信号还原单元54用于将音频信号实时还原,读取前级缓存包FIFO中的数据,缓存至寄存器中。采用并串转换算法,将数据按照音频模块时序进行输出。

为使本发明技术方案更加清楚明了,以下通过一具体实施对本发明的工作过程进行说明。

在发送系统中,模拟音频信号输入WM8731内部,经过采样、量化及编码,输出串行数字音频信号;FPGA将输入的串行音频数字信号转换成32位并行信号,并经过异步时钟域处理,暂存至寄存器中,输入至下一模块;将输入的数字音频信号按照以太网协议进行数据帧的封装每帧含有25个字的音频数据,并缓存在后级缓存包FIFO中;采用CRC校验算法计算出数据帧的32位CRC校验码,添加至数据帧的末尾;百兆以太网物理层芯片将帧数据加上前导码,并按照百兆以太网物理芯片RMII模式进行数据发送。

在接收系统中,接收模块按照以太网线路侧的发送时序,接收2bit位宽帧数据,并将2bit位宽数据转成32位宽字发送到后级模块,同时随路给出帧头和帧尾指示标志;将以太网接收模块输出的数据帧进行CRC校验,并解析出CRC校验正确的音频数据,缓存在后级缓存包FIFO中;利用输入的数据源同步时钟,在WM8731的DSP模式下按照同步信号控制,将取出的32位音频数据转成串行输出音频数据发送给WM8731,进行解码还原。

以上内容是结合具体的优选实施方式对本发明作的进一步详细说明,不能认定本发明的具体实施方式只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明的技术方案下得出的其他实施方式,均应包含在本发明的保护范围内。

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