引 言
光纤通信越来越多地应用到通信领域,与FPGA(field programmable gate array)技术的结合更是成为通信系统领域的主流,它的高速、稳定等优势使得多路、多向信号的传输成为可能<sup>[ 1 ]。本设计采用的AES10(audio engineering serial)协议被广泛推荐用于音频信号传输中,它有着极高的编码效率,从而在时钟固定的情况下,最大限度地传输数据。
本文采用FPGA技术,应用硬件描述语言实现AES10协议与IIS协议的转换,从而控制多通道音频设备的运行。
1 总体设计方案
本系统由光纤传输、光纤接收、FPGA数据编解码、AD/DA音频设备驱动等部分组成。声卡数据通过光纤发射和接收数据,数据采用ASE10协议,速率为125 Mbit·s-1。接收采用AFBR-5803AQZ型号发射接收头,它常用于以太网的光纤传输中,传统速率为100~125 Mbit·s-1,符合本设计的要求。FPGA是本设计的核心,采用VHDL语言编程,实现AES10的串行总线数据与多路、多通道的IIS总线之间的转换。音频输出设备采用CS4334型号DA芯片,音频输入设备采用CS5334型号AD芯片。整体结构框图如图 1所示。
![]() | 图 1 总体结构框图 Fig. 1 The structure diagram |
2 AES10通信协议 2.1 AES10协议结构
AES10协议描述了一个串行多通道音频数字接口[ 2 ],简称MADI(multichannel audio digital interface)。协议规定了同轴电缆或光纤的28、56、64个通道等三种格式。音频取样频率为32~96 kHz。只支持单点发射、单点接收。每个通道包含32个比特位,其中最高4位分别为有效位(validity)、用户位(user)、状态位(status)和奇偶校验位(parity)。中间24位为数据位,因此数据的最高分辨率可达24位,若数据不够24位,剩余位可以空缺或者被人为分配若干控制位,而低4位则控制通道的使能和控制左右声道。通道的结构图如图 2所示。
![]() | 图 2 AES10通道数据结构图 Fig. 2 Block diagram of AES10 channel data |
2.2 光纤通信技术
光纤通信作为一个新兴科技已经在通信领域中脱颖而出,以其频带宽、功耗低、传输距离长、抗电磁干扰等优势在现代通信中起着举足轻重的作用。本设计采用AFBR-5803AQZ型号光纤收发器来传输声卡与FPGA之间的通信数据,其异步传输速率可达到100~125 Mbit·s-1。它的光学性能良好,符合FDDI(fiber distributed data interface)标准,被广泛应用在以太网和光纤接口中[ 3 ]。
2.3 4B/5B编码AES10协议之所以传输效率高,根本原因是利用了4B/5B方式编码。4B/5B编码在百兆以太网和光纤通信中被广泛应用,它具有编码效率高、易实现等优势。通信过程中常常需要在接收到的数据中提取同步时钟,以保证设备之间的同步,所以整个数据流中要尽可能多地产生跳变,即保证不会产生过多连续的高电平或过多的连续低电平。因而数据的跳变对整个数据转换显得尤为重要。4B/5B的转换方式是将原本4位数据转换成5位数据,5位数据有32种组合方式,但要保证每5位数据中不多于3个低电平,并且不少于2个高电平。这样不仅达到了数据流对跳变的要求,而且其转换效率高达80%,保证了传输效率。目前,国际上通用的编码规则如表 1所示。
|
|
表 1 4B/5B编码表 Tab. 1 The code table of 4B/5B |
2.4 AES10编码方法
在编码过程中,先将每个通道的32位数据分解成8组4位码,再通过4B/5B方式转换成5位码,这样原本32位的数据变成了40位进行传输。在传输过程中,通道与通道之间要适当地加入一些同步符号。这些同步符号没有固定的插入点,并且相邻通道间的同步符号数量也不固定,是由用户自行安排的。国际上默认的同步符号为11000 10001,它区别于4B/5B的编码结果,从而实现数据的同步[ 4 ]。
在标准传输链路中的数据频率应该符合以下三种范围:(1)音频信号32~48 kHz,56通道。(2)音频信号32~48 kHz,64通道。(3)音频信号64~96 kHz,28通道。本设计采用64通道,每个通道的音频数据频率为48 kHz。链路上总的信号速率为125 Mbit·s-1。
3 FPGA设计与仿真 3.1 FPGA设计结构
本设计采用的FPGA处理器是Altera公司的Cyclone II系列EP2C8芯片[ 5 ],整体设计采用VHDL语言编程,并且在Quartus II 9.0开发平台上综合及仿真。FPGA整体结构图如图 3所示。
![]() | 图 3 FPGA内部功能结构图 Fig. 3 Structure of FPGA internal function |
FPGA实现声卡与音频设备的连接,首先要提取声卡上的数据同步时钟,根据同步时钟进行AES10解码,然后进行串并转换,最后根据IIS协议将数据传给音频接口。同时,FPGA将另一路IIS协议的音频数据转化成串行数据,并进行AES10编码传入声卡。
3.2 同步时钟提取在声卡通信中,每个消息和数据都是通过一连串的码元序列来传输的,所以在接收过程中需要知道帧数据的起止时刻,指令位和数据位的位置等。这就要求接收端要有同步时钟,而同步时钟的性能好坏会直接影响系统的性能。本设计采用数字锁相的方式提取同步时钟,首先用FPGA产生一个鉴相器,将接收到的信号与本地时钟分频以后的时钟做相位比较。若二者有相位差,鉴相器将用此相位差信号去调整同步信号的相位,直至相位差到零为止。其结构框图如图 4所示。
![]() | 图 4 同步时钟提取 Fig. 4 Synchronous clock extraction |
3.3 FPGA编解码及仿真
AES10协议的核心是4B/5B编解码,作为一种高性能的串行标准,其根本思想是将4 bit数据和 5 bit数据相互转换,并且根据协议找出指令与数据[ 6 ]。从编码的种类上看4B/5B编码属于数据字符编码和控制字符编码,基于VHDL语言的4B/5B编码结构图如图 5所示。
![]() | 图 5 4B/5B编码结构图 Fig. 5 Code structure of 4B/5B |
data_in为串行数据输入引脚,CONTROL模块将其分解成若干5 bit数据,每组数据通过SJFJ模块的OUTY[4:0]输出。其中CLK引脚为输入时钟,通过控制ENA使能引脚来实现数据的分解。再由Four_Five功能块进行4B/5B转换,DIN[4:0]为数据输入引脚,DOUT[3:0]为数据输出引脚。编解码的仿真波形如图 6所示,CLK0为时钟输入信号,CLK2为数据输入信号。仿真时选取了一个通道的数据4B/5B解码,OUT引脚为数据输出引脚。
![]() | 图 6 4B/5B仿真波形图 Fig. 6 Simulation waveform of 4B/5B |
FPGA将采集到的声卡数据通过IIS总线传送到音频设备中,同时还可以将音频设备的信号接收回来,再转化成声卡可识别的数据。为了减少引脚的数目,IIS总线由三根串行线组成,即数据、字同步、位同步。图 7为32路IIS(左右通道)的功能模块。
![]() | 图 7 IIS功能模块图 Fig. 7 Diagram of IIS function module |
对一路IIS信号进行仿真,得到了如图 8所示的仿真波形图。其中SCLK信号为位同步信号,LRCK为字同步信号,Data为数据信号。
![]() | 图 8 IIS仿真波形图 Fig. 8 Simulation waveform of IIS |
4 结 论
本设计详细介绍了基于FPGA的音乐控制平台的开发过程以及仿真结果,着重研究了AES10的通信过程,实现了计算机与音频设备的多路通信。通过软件仿真与实验,总线速率达到了125 Mbit·s-1,音频信号无明显失真,并且稳定度较高,达到了良好的通信效果,满足了设计之初的要求,为将来的音乐与计算机的有机结合提供了帮助。
| [1] | 周学勋.基于FPGA的100BASE-TX工业以太网中继器的设计与实现[J].2011,19(16):167-169. |
| [2] | 李 欣,管绍军,胡晓天.基于FPGA的光纤通信系统的设计与实现[J].电子设计工程,2012,20(8):85-87. |
| [3] | 韩红霞,曹立华,刘帅师.基于FPGA的光纤通信系统中帧同步头检测设计[J].电光与控制,2006,13(4):90-92. |
| [4] | 于瀛洁,郭 路,周文静.数字全息位相拼接实验研究[J].光学仪器,2011,33(4):55-59. |
| [5] | 葛 鹏,刘 涛,李 奇.基于FPGA+ADSP的线阵CCD非接触测量系统[J].光学仪器,2008,30(5):1-4. |
| [6] | 殷 刚,周 军.光纤共聚焦显微镜内窥镜活体内实时成像系统的设计和研究[J].光学仪器,2012,34(4):58-61. |
2014, Vol. 36
Issue (3): 234-238









