基于LPC2138的AES3数字音频接口设计
扫描二维码
随时随地手机看文章
摘要:随着数字音频技术的不断发展,数字化音频设备已广泛应用于广播电视节目领域。鉴于专业数字音频设备越来越多地需求,以及专用接收发送设备的复杂性,本设计采用Philips公司的ARM7控制芯片LPC2138结合音响设备专用芯片,设计一个简单的AES/EBU(AES3)数字音频收发系统,实现了专业AES3数字音频的接收与发送。实验显示,在输入1 kHz,24 dBu时,本设计的总谐波失真小于0.005%,信噪比大于90 dBu。
关键词:数字音频;LPC2138;AES3;接收;发送;总谐波失真;信噪比
当今数字技术的发展越来越快,人们对广播电视节目的质量需求也越来越高。AES/EBU(Audio Engineering Society/European Broad cast Union)现已成为专业数字音频较为流行的标准。大量民用产品和专业音频数字设备如CD机、DAT、MD机、数字调音台、数字音频工作站等都支持AES3接口。AES3通过单根绞合线对来串行传输数字音频数据,充分发挥了数字信号易处理、音质优良和抗干扰能力强的优势。它提供两个信道的音频数据,信道自动计时和自同步,同时提供了传输控制的方法和状态信息的表示和一些误码的检测能力。
鉴于入们对高质量音乐的追求以及AES3接口的纵多优点,设计出一个能够接收和发送AES3音频信号的简单系统是很有价值的。本设计由LPC2138控制音响设备专用芯片实现AES3接口,只需简单地修改芯片配置,即可实现系统的特性调整及性能扩展,简单稳定,具有较强地实用价值。
1 AES3数字音频接口简介
AES3接口在单根传输线上串行传输两路数字音频信号。每个音频块(Audio block)包含192帧,每帧包括2个子帧,即左有两个通道,每个通道包含32个时隙(slot)。0~3时隙为X、Y、Z 3种帧头,其中X和Y表示一个子帧的开始,Z表示一个块(block)的开始。4~7时隙为辅助数据,8~27时隙为音频数据位,音频数据位可以多达24位。如果音频数据超过20位,则4~7位将被用作音频数据位。最后的4个时隙分别为有效位、用户数据位、通道状态位和奇偶校验位。每192帧信号的通道状态位组成通道状态数据,通道状态中含有丰富的音频特征信息,通过获取通道状态数据便可以得知音频信号是否是专业型,是否预加重,以及采样频率等信息。每一位的具体含义请参考文献,本设计不做详细介绍。AES3接口传输的数字音频信号格式如图1所示。
2 总体设计
本设计的信号源为模拟音频信号、J2S串行音频信号和传输线上接收到的AES3数字音频信号。
模拟音频信号经调节后,送至模数转换器,经过48 k的采样频率采样(本设计统一使用48 k的采样率),转换成I2S数字音频信号。I2S信号(包括模数转换得到的I2S和I2S信号源的信号)送入SRC4382,SRC4382将I2S信号的采样频率转换为48 k,并进行格式转换,转换后得到的AES3信号可以通过单根绞合线进行传输。相反过程,接收到的AES3数字音频信号经过采样频率转换和格式转换后,转换为采样率为48k的I2S信号。I2S信号可以直接作为输出,也可以经过数模转换器后,再经过滤波放大处理,转化为模拟音频信号输出。整体框架的部署如图2所示。
3 主要的硬件设计
3.1 LPC2138控制模块
本设计中的微控制芯片需要提供I2C总线来控制CS5368、CS4382和SRC4382的操作模式,并且提供外部中断接口来接收外部的中断。LPC2 138微控制芯片是Philips公司的ARM7芯片,它拥有丰富的外部串行接口(UART、SPI以及I2C),向量中断控制器,支持实时调试和高速跟踪执行代码,是一款高性能低功耗的32位微控制器,在微控制领域已经得到广泛的应用。鉴于以上特性,本设计选用LPC2138作为微控制芯片,通过I2C总线接口实现CS5368、CS4382和SRC4382的内部寄存器配置,使这些器件工作在合适的工作状态,并通过外部中断接口实现中断管理。
3.2 电源模块设计
硬件系统平台要求的供电电源电压有:±12 V、5 V、3.3 V、2.5 V和1.8 V。其中±12 V和5 V是由变压器直接输入得到.3.3 V、2.5 V和1.8 V由电源IC转换得到。±12 V主要为运放供电,3.3 V、2.5 V和1.8 V电源芯片的输入电压均为5 V。其中,3.3 V电压、2.5 V电压和1.8 V电压分别由芯片LM1085、TPS79325和LM1117-1.8输出提供,输出的2.5 V电压提供给运放NE5532做基准电压。
3.3 输入模拟音频调节模块
模拟信号输入前置电路,包括滤波限幅电路、阻容耦合电路和低通滤波衰减电路。模拟信号输入前置电路主要用来隔离后级直流分量对前级的影响,限制输入信号的幅度,滤去输入信号中的高频分量,滤除串扰噪声。输入模拟音频信号电压幅度比较大,不能直接作为A/D转换器的输入,因此前置电路必须对信号进行衰减,同时基准电压提高到2.5 V。如图3所示。信号的衰减系数为:
3.4 输出模拟音频调节模块
人耳能听见的音频信号频率范围在20 Hz~20 kHz之间,而数字音频信号经过传输和D/A转换后可能会引入各种噪声,因此需要在D/A转换后进行低通模拟滤波来滤除噪声。此处由一个隔直流电路(由C5与R15组成高通滤波器)和二阶巴特沃兹低通滤波器,如图4所示。图中,二阶巴特沃兹低通滤波电路引入正负反馈,用来去除信号的高频分量。
其中,C5和R15组成的高通滤波器的截止频率为:
模拟音频信号经过滤波电路后功率比较小,如果直接输出,则输出音频的音量会非常小。因此必须对滤波后的模拟音频信号进行非失真放大,提高输出模拟音频信号的功率,使得音量能达到更好效果。如图4所示,经过滤波后的模拟音频信号由NE5532放大器进行功率放大,放大倍数为:
3.5 模数转换模块
模数转换模块采用Cirrus Logic公司的模数转换芯片CS5368。它具有24位转换位宽,114 dB的动态范嗣,-105 dB的总谐波失真加噪声,可选的音频接口格式,低延迟数字滤波器,差分模拟结构,从模式(slave mode)下支持速度自检,支持标准的I2C控制接口,适用于专业的音响设备。
在本设计中,CS5368工作于控制端口模式(control portmode),通过LPC2138的I2C总线控制,器件地址为0x98H。CS5368可接收8路的差分模拟信号AINLx+、AINLx-,输出的4路数字音频信号CS5368_SDOx格式设置为I2S模式,采样频率为48kΩ。MCLK、SCLK、LRCK分别为12.288 MHz、3.072 MHz、48 kHz,由外部提供。CS5368的外围电路如图5所示。
3.6 数模转换模块
数模转换模块采用Cirrus Logic公司的数模转换芯片CS4382。它是一个完整的8通道数模转换系统,具有114 dB的动态范围,-100 dB的总谐波失真加噪声,支持标准的I2C控制接口,具有理想的差分线性,高保真机制,无线性漂移等优势,适用于专业的音响设备。
在本设计中,CS4382工作于控制端口模式,通过LPC2138的I2C总线控制,器件地址为0x30H。CS4382可接收4路I2S的数字音频信号SDIN1~SDIN4,输出8路的差分模拟信号,采样频率取48k。MCLK、SCLK、LRCK同CS5368,分别为12.288 MHz、3.072MHz、48kHz,由外部提供。
3.7 音频格式转换模块
音频格式转换模块采用TI公司的SRC4382芯片。它是一款专用于广播数字音频系统的芯片,它集成了带有采样频率转换的数字音频接口发送器(DIT)和接收器(DIR),2个音频串行接口,以及支持数据和时钟内联的分布式逻辑,DIT和DIR兼容AES3,S/PDIF,IEC 60958和EIAJ CP-1201接口标准,采样频率最高支持216 kHz,并且支持通过I2C总线控制芯片的工作状态。
本设计中,通过LPC2138的I2C总线接口控制SRC4382的工作模式,器件地址为0xE0H。通过设置SRC4382内部寄存器,使其同时有2条工作的信号路径,一条为RX+、RX-差分信号经过DIR单元的采样频率转换和解码后,转换为I2S信号,由SDOUT输出;另一条为I2S信号SDIN经过DIT单元的采样频率转换和编码后,转换为数字音频接口AES3信号,由差分线TX+、TX-输出。LRCK与SCLK同CS5368,均由外部提供。RX+、RX-与DIN+、DIN-之间以及TX+、TX-与DOUTR+、DOUTR-之间均需要用变压器做隔离去耦合,以防止前后级之间相互干扰。SRC4382的外围电路如图6所示。
4 软件程序设计
CS5368、CS4382、SRC4382 3款芯片均可通过设置其内部寄存器,获得不同的工作状态。
4.1 CS5368软件部分
系统上电之后需对CS5368进行初始化。GCTL(globalmode control register)控制芯片的工作模式,本设计工作状态为:控制端口模式,时钟为256采样率,输出I2S模式,从模式下的所有采样频率。因此GCTL的值设置为0x87H。其他寄存器保持默认值即可。初始化程序如下:
//I2C写一个字节0x87到地址GCTL(0x01)
I2c_WriteNByte(CS5368_Addr,1,GCTL,&gctl,1);
当CS5368发生溢出中断时,会向LPC2138的外部中断INT0发送中断信号,同时LED灯D1被点亮。在中断程序中,查询OVFL寄存器状态,设置相应通道的输出消声(mute)。中断服务程序如下:
char ovfl,mute;
I2c_ReadNByte(CS5368_Addr,1,OVFL,&ovfl,1);
mute=~ovfl;
I2c_WriteNByte(CS5368_Addr,1,MUTE,&mute,1);
4.2 CS4382软件部分
系统上电之后需对CS4382进行初始化。MC1、MC2和FC共同控制CS4382的工作状态,本设计中将其值分别设置为0x80H,0x10H,0x05H。芯片工作存控制端口模式下,输入音频格式为24位I2S信号,去加重滤波器响应频率为48 kHz。其他寄存器保持默认值。初始化程序如下:
mc1=0x80;mc2=0x10;fc=0x05;
I2c_WriteNByte(Cs4382_Addr,1,MC1,&mc1,1);
I2c_WriteNByte(CS4382_Addr,1,MC2,&mc2,1);
I2c_WritcNByte(CS4382_Addr,1,FC,&fc,1);
4.3 SRC4382软件部分
4.3.1 SRC4382初始化
系统上电之后需要对SRC4382进行初始化。SRC4382的寄存器分为4页,第0页为控制和状态寄存器,第1页为DIR通道状态和用户数据缓冲寄存器,第2页为DIT通道状态和用户数据缓冲寄存器,第3页保留。在操作每页寄存器之前,必须通过设置每页的页选择寄存器来确定要操作的页。初始化程序中只需将寄存器07,09,0b,0d,0e,0f,16,17,2d分别设置为0x22,0x02,0x33,0x08,0x09,0x12,0xfe,0x01,0x42,其他保留默认值即可。各寄存器的具体值及其含义请参考技术手册。初始化程序如下:
4.3.2 SRC4382读通道状态
由第一部分介绍可知,通道状态中含有丰富的信息。通过读第1页寄存器,便可以获得接收的AES3数字音频的特征信息。读通道状态之前,应先在第0页禁止DIR,然后切换到第1页,读完通道状态后再切换回第0页,使能DIR。读通道状态程序如下:
4.3.3 SRC4382写通道状态
通过写第2页的相关寄存器,便可将需要发送的AES3数字音频的特征信息写入到每一帧的通道状态位中。写通道状态之前,应先在第0页禁止DIT,然后切换到第2页,写完通道状态后再切换到第0页,使能DIT。读通道状态程序如下:
5 结束语
该设计通过微控制器LPC2138控制专业音频处理芯片,实现了AES3数字音频接口的设计。本设计中发送的音频信息源和接收处理后的音频信息均可以为模拟信号和串行I2S信号的形式,可用性较强。由于该设计采用专业音频处理芯片实现,因此音质比较好,稳定性比较高。只需简单修改软件部分对音频处理芯片的寄存器配置,即可实现系统特性的改变,所以灵活性和可扩展性较好。该设计可以具体应用于数字调音台的混音器和音频矩阵切换器中,也可以为CD机、MD机的设计提供参考,因此具有较强的工程使用价值。