基于DSP的广播级数字音频延时器
摘要:提出了一种基于DSP的广播级数字音频延时器,可以实现直播节目的安全播出。详细阐述了MCU-DSP主从式硬件系统构成和音频数据、存储器接口设计,分析了音频信号处理流程和延时功能的实现方案。 关键词:音频数字信号处理 主从式系统 延时器
音频延时器可用于广播电台直播节目。它将音频信号延时一段时间后播出,以避免主持人的口误或听众热线中听众的一些不健康言论通过广播媒体传播,从而实现直播节目的安全播出。作为广播级设备,音频延时器对动态范围、失真、信噪比和频率响应等性能指标要求很高,因此一般采用数字技术。采用计算机内置全双工声卡硬盘,可以以软件方式实现音频信号眨时,但使用操作不方便,可靠性较差,性能价格比较低。本文提出的基于高精度∑-ΔADC和DSP芯片的广播级数字音频延时器,具有性能指标高、操作简便、功能齐全等特点,该设计方案已产品化。
1 系统结构 1.1 系统构成 延时器硬件为主从式结构,如图1所示,主要由单睡机M发8HC05C8、DSP芯片MTS320C32和音频编解码器CS4224等组成。 M68HC05C8作为整个系统的主机,完成系统的控制功能。TMS320C32作为系统的核心,完成音频信号的延时功能。CS4224及音频输入输出调理电路共同完成音频信号的A/D和D/A转换。 CS4224是高性能的24位音频编码解码器,使用∑-Δ技术提供全双工立体声数/模和模/数转换,动态范围达105dB,谐波失真和操声为-97dB,采样频率为32kHz、44.1kHz和48kHz可选。芯片采用差动输入和输出,片上自带抗混叠滤波器和输出平滑滤波器以及数字去加重滤波电路,具有模拟音量控制,支持主或从工作方式。 TMS320C32为低成本、高性能的浮点DSP芯片,非常适合语音数字信号处理。它支持24位地址总线和32位数据总线,可以寻址延时器所需的大容量存储器。它还具有串行接口,便于和串行音频数据输入输出的CS4224接口。 M68HC05C8实现人机接口,管理键盘显示和延时器遥控接口,并控制CS4224和TMS320C32的运行。
1.2 存储器接口 TMS320C32 具有增强型的外部存储器接口,程序存储器的宽度可以是16位和32位,数据存储器可以是8/16/32位三种宽度。TMS320C32采用两组选通信号 STRB1和STRB0,其寻址范围不同。每组选通信号由四个引脚组成,作为片选和额外的地址线,引脚的特性由每组选通信号对应的总线控制寄存器确定。通过设置总线控制寄存器的某些域,可以指定数据类型和外部存储器宽度。 延时采用了两组不同宽度的存储器。SRAM存储音频数据,设置存储器宽度为32位,数据类型为32位。由于音频编解码器CS4224为24位,因此实际使用 24位,由三片8位SRAM构成,分别用STRB0_B0~2片选。FLASH芯片28F512存储用户音频信号处理程序,存储器宽度为8位,用 ATRB1_B0片选。 存储器接口主要考虑存储器速度,以确定需要插入几个等待状态。由于TMS320C32时钟频率为40MHz,而FLASH存储器的存取速度为150ns,SRAM的存取速度为70ns,因此必须插入等待状态。TMS320C32具有内部可编程的软件等待状态发生器,通过STRBx控制寄存器的SWW域选择等待状态发生器的工作模式,并在 WTCNT域写入需要等待的机器周期数。由于程序存储器和数据存储分别采用STRB1和STRB0选通,因此可以根据各自的存取速度分别设置所需的机器周期数。 TMS320C32具有程序引导功能。硬件复位时令 MCBL/MP引脚为高电平,则工作于微计算机模式,执行片内的引导程序,将FLASH存储器中的用户程序装入内部高速RAM中运行。可以通过引脚的 INT0~3确定引导模式,外部存储器装入地址根据存储器的连接方式选为Boot3区,不采用握手信号。FLASH存储器的前端为程序头,包括引导时 TMS320C32必需的信息,如外部存储器宽度、引导结束后总线控制寄存器内容、各数据块长度、目标存储器宽度和数据类型等。
1.3 音频数据接口 CS4224 和TMS320C32采用串行方式连接。CS4224的串行数据线SDIN和SDOUT分别与TMS320C32的串口数据线DR和DX直接相连,数据移位时钟SCLK与数据收发时钟CLKX和CLKR相连,左右声道时钟LRCK经二倍频后作为收发帧同步时钟FSX和FSR。工作时序见图2。 TMS320C23串口可以工作于可变或固定数据速率方式,进行连续或猝发传输。延时器选用可变数据速率方式和猝发传输,并工作于最高帧速率,即前面一帧和后面一帧之间没有停顿。
1.4 控制接口 可以通过两种接口方式控制CS4224:SPI和I2C,通过引脚SPI/I2C进行选择。延时器采用SPI模式控制CS4224的工作方式。CS、 CDIN和CCLK分别为片选、数据线和位时钟,由M68HC05C8的内置SPI接口控制。给定CS4224控制寄存器地址,单片机可以读写控制寄存器的内容。M68HC05C8通过端口PC6复位CS4224。 TMS320C32 芯片本身提供的I/O线只有XF0和XF1,利用这两根线分别作发送数据经和接收数据线,构成一个异步串行口,通过软件模块与M68HC05C8进行双机通信,由单片机控制TMS320C32的运行。同时,单片机通过端口PC0~5控制TMS320C32的复位端、工作方式选择端MCBL/MP和引导模式选择端INT0~3。
2 工作流程
2.1 音频信号处理 立体声音频信号首先经过输入调理电路。输入调理电路的主要作用是对音频信号进行缓冲和交流耦合,同时进行电平偏移,产生CS4224所需的2.3V供模输入电压,并满足CS4224满量程输入电压有效值为2V的要求。 音频信号送入CS4224后,进入片内一阶高通滤波器,滤除输入信号中可能存在的直流偏置。为避免高通滤波器影响频率响应,可以通过ADC控制寄存器HPD域禁止该功能。CS4224具有输入电平监测功能,通过状态寄存器LV域指示峰值数字信号。A/D转换以后左右声道数字信号由内部数字输入滤波器滤波后,在数据移位时钟SCLK作用下分时从SDOUT引脚串行送出,左右声道时钟LRCK指示是左声道还是右声道信号,并开始一个新的采样周期。 从引脚SDIN输入的数字音频信号,经内部数字输出滤波器滤波后,再经过D/A转换,由片内缓冲放大器提供有效值最大为2V的差模输出电压。音频输出电压大小通过片内衰减器调节,模拟音量控制范围113.5dB;并以0.5dB步长步进调整,由输出衰减寄存器设置。音量调节过程采用淡入淡出方式,从当前音量到新设置音量以0.5dB的斜率逐渐变化,变化速率通过DAC控制寄存器RMP域可设置为4、16或32倍采样周期。如果通过DAC控制寄存器SOFT域禁止淡入淡出,音量变化通常发生在音量过零点,以便减小信号失真。如果未检测到过零点,则在512和1024个采样周期之间完成音量切换。CS4224同时具有输出静音功能,通过DAC控制寄存器MUT域设置,静音的实现和音量控制一样,也是以淡出方式进行。 输出调理电路采用两个二阶Butterworth滤波器,以便滤波除带外噪声。CS4224在采样频率附近为片外滤波器进行了3dB预补偿,可以在通带范围提供平坦的频率响应和线性相应。输出信号为差动平衡信号。 SDOUT引脚的47kΩ下拉电阻将CS4224设置为主机工作方式,LRCK和SCLK作为输出引脚。主时钟从CS4224的XT1引脚输入,频率为24.576MHz,经内部8 分频,得到3.072MHz的串行数据移位时钟SCLK,再经64分频,得到48kHz的左右声道时钟LRCK,也是采样频率。分频关系通过时钟输出寄存器的MCK域来设置。 CS4224提供四种串行数据输入和输出格式,可以通过DSP端口模式寄存器的DDI和DDO域设置。延时器均采用格式1(FORMAT1),数据为24位左对齐方式。数据输入和输出时序如图2所示。
2.2 延时功能的实现 M68HC05C8 软件主要由初始化程序和主程序等组成。在初始化程序中,完成CS4224的复位和初始化、MS320C32复位和引导。主程序主要是按键和显示处理程序,完成各种按键的分析处理、刷新光柱和数码管显示,并将有关信息送至CS4224和TMS320C32。
首先,M68HC05C8复位CS4224,通过SPI接口初始化ADC、DAC和DSP端口模式控制寄存器,设置音频输入输出格式,使音频输出静音。 接着,M68HC05C8通过端口PC0~3,令MCBL/MP引脚为高电平,然后在RESET引脚给出复位脉冲,MTS320C32进入外部存储器程序引导,将FLASH存储器中的程序装入内部RAM,并从目标地址开始执行程序。 TMS320C32 软件由主程序、初始化程序和串行中服务程序等组成。初始化程序首先复位串口,并设置端口控制寄存器,令串口的所有引脚工作在串口方式,而非通用I/O口;设置串行口全局控制寄存器,数据长度设为24位,开放串口中断,对串口信号进行极性控制;使用外部时钟CLRX/R,并设置为低电平有效,其余信号均为高电平有效,以便与CS4224接口线相适应,然后启动串口工作。 数据读写操作均在TMS320C32串口接收中断服务程序中进行。24位音频输入数据从DR引脚全部左移进入接收移位寄存器RSR后,TMS320C32将 RSR内容写入DRR接收寄存器,并产生串口接收中断XINT。在串中接收中断服务程序中,将DRR数据写入SRAM,同时从SRAM中读入需要输出的音频数据,写入发送寄存器DXR,等待下一个帧同步信号FSX有效后送入发送移位寄存器XSR,在移位脉冲CLKX作用下左移,从DX引脚输出。 延时器有4种工作模式,即直通状态(BYPASS)、紧急状态(DUMP)、2秒模式(-2s)和咳嗽模式(COUGH)。直通状态下,音频输入和输出端通过继电器直接连在一起,输出不再通过延时器,延时器关机时也处于直通状态。在延时状态下,每按一次2秒模式键,删除最新输入延时器的2秒音频数据,避免刚读错的内容被播出。按住咳嗽按钮键,删除按住该键时输入的音频数据,可让主持人打喷嚏、咳嗽或作短暂停顿而不被发现。延时时间1~10秒可调,可以通过按键设定。按下START键进入延时状态,此时整个播出静音或重放预先录入的垫乐,直到正式进入延时状态。按下EXIT键可退出延时状态。在延时状态时,如遇到恶意电话等紧急情况,可迅速按动DUMP键,此时设定延时时间内的全部音频数据被删除,并切断正常播出,播出处静音状态。 用户通过按键选择延时器的工作模式,M68HC05C8根据工作模式控制CS4224音频输出处于静音或正常输出状态,并在TMS320C32串口中断服务程序中改变读出或写入音频数据的SRAM地址。M68HC05C8根据延时时间和采样频率,计算出音频数据的写入地址和读出地址,通过接口线XF0/1进行串口通信,将地址传送给TMS320C32。当读出地址和写入地址相同时,音频输入和输出没有延时。如果将写入地址减去某一增量后作为读出地址,则读出内容为一段延时时间前的音频输入,从而达到延时功能。 综上所述,广播级数字音频延时器采用DSP和MCU的主从式结构以及高精度∑-ΔADC芯片,实现了灵活的工作模式控制,具有较高的音频性能指标,可以满足电台直播节目安全播出的需要。
|