戚桂东 李品斌 庞文茂 陈天江
(1.广西广播电视技术中心玉林分中心;2.广西广播电视技术中心贵港分中心)
目前在贵港转播台值班房,值班员通常使用收音机监听台站发射的广播节目。现台站同时发射5套调频广播节目,由于多套节目的声音混淆在一起,因此不容易分辨每套节目是否正常。为保证安播,机房值班人员提出能否将广播节目音频在电视墙显示监看的想法。鉴于目前市场上类似的设备较少,较难采购功能符合需求的设备,因此本文使用STM32单片机作用主控,设计了一套广播音频可视化显示方案。将多路模拟广播节目音频电压信号通过VGA接口,接显示器在电视墙上进行可视化监看。实现了当值班员在监视电视节目时,也可以同时监视多路广播节目是否正常,较有效提高了台站广播节目的安全播出效果。
本方案的整体设计框图如图1所示。前端使用广播调谐器或收音头接收台站发射的5套广播节目,解调输出的左、右声道,共10路模拟音频电压信号,输入信号调理电路。信号调理电路主要作用是把信号调整到0V-3.3V之间(即单片机的A/D采样电压范围内)。然后分别输入到STM32单片机的模数转换器ADC通道1至通道10。单片机的ADC工作于扫描模式,对10个ADC通道进行轮询扫描转换。为提高效率,使用单片机的DMA控制器,将ADC转换的结果传到RAM中,以便软件调用。
Micro SD卡主要作用是存储背景图片和字库数据,单片机完成ADC数据处理后,单片机通过内部静态存储控制器(FSMC),控制16位并行数据总线把要显示的图像像素RGB数据,写入到VGA显卡的显存里。VGA显卡自动完成读取显存内的图像数据,并经数模转换成模拟RGB信号,加入VGA控制时序信号,输出到VGA接口,实现显示器实时显示5套广播音频信号的功能。
图1 整体方案示意图
根据系统要求,STM32F系列是一款基于Cortex-M3内核的ARM微控制器,芯片具有16个ADC输入引脚,同时具有静态存储控制器(FSMC),可以快速对外部的SRAM,NAND FLASH,NOR FLASH和PSRAM等存储器进行快速读写。因此选择ST公司的STM32F103单片机作为主控MCU。根据单片机数据手册上的引脚功能表,找出ADC1的IN0-IN9引脚,设置为对音频信号采样的输入引脚。
VGA显卡采用ALIENTEK STM32 VGA显示驱动模块,如图2所示。该模块基于FPGA和SDRAM实现,可以设置多种显示分辨率和刷新率,集成32MB显存,VGA信号输出,适合带有VGA接口的液晶显示器。VGA显卡与单片机接口是标准的Inter8080接口,符合STM32单片机的FSMC读写模式要求,通过FSMC模块能方便地对屏幕任意像素进行读写操作。VGA显卡对单片机的功能引脚,主要包括读写控制功能CE(片选)、A0(地址线)、WE(写信号)、OE(读信号)和16位并行数据总线D0-D15。方案设计时,以上功能分别接到STM32单片机FSMC 模块对应的引脚上:FSMC_NE4(片选)、FSMC_A10(地址线)、FSMC_NEW(写信号)、FSMC_NOE(读信号)和FSMC_D0-FSMC_D15(16位并行数据总线)。
图2 VGA显卡接口信号说明
在本方案中,信号调理电路的主要作用有两个:1、电平转换,将交流的音频信号电平抬升,变成0V以上的大小变化的直流电平,这样单片机的ADC才能完成对音频信号的采样;2、电平限幅,将转换后的音频信号电平限制在0V-3.3V之间,即在单片机ADC的采样电压输入范围内,防止电压过高损坏器件。
设计的信号调理电路如图3所示,输入的音频信号经过电位器R1的衰减,通过电容C1,输入放大位数为1倍的运放NE5532的反相输入端。运放正相输入端电压是由5V经R2和R5分压的电压,约为3.3V。根据运放“虚短”原理,反相输入端电压也约为3.3V。在运放的输出端,音频信号的基准电平就由0V提升到了3.3V。输出的音频信号经R6和R7分压,形成以约1.65V为电平基准的音频信号。后面再由一个3.3V的稳压二极管D1限幅,可确保音频信号电压在单片机的ADC输入范围内。当输入的音频信号幅度过大时,通过调节电位器R1对信号进行衰减,使输出信号动态范围在0-3.3V内。
Micro SD卡主要功能是存储背景图片数据和中文字库数据,以供单片机读取并调用显示。Micro SD卡和单片机通信有两种方式:第一种是SD模式;第二种是SPI模式。为加快读写速度,本设计中采用的是SD模式,单片机用SDIO方式与SD卡通信,设计的接口电路如图3所示。
整个系统的软件流程图如图4所示。系统开始工作时,先对系统时钟、ADC等模块进行初始化,并启动ADC转换;然后VGA显卡开始进行初始化,设置显示分辨率,刷新率等信息,主要包括两个部分:1,对显卡接口的I/O口进行配置;2,对STM32的静态存储控制器(FSMC)功能进行配置,配置FSMC工作模式和总线时序,使总线时序满足VGA显卡的时序要求;最后Micro SD卡进行初始化配置,并运行文件管理系统。系统完成以上工作后,单片机从Micro SD卡读取背景图片数据,写入显存中并发送开启VGA显示命令,此时显示器开始显示背景图片。
图3 信号调理与Micro SD卡接口电路
图4 软件流程图
图5 设计的背景图片与显示效果图
系统完成以上初始化操作后,开始进入正式工作流程。首先使用轮询方式读取10个ADC通道的结果数据,并转换成0V-3.3V的音频信号电压值。为了加快处理显示速度,将显示的图形长度均匀量化为20等分,分别对应0V-3.3V电压值,通过查表方式查找需要显示的图形长度。当音频电压为0V时,显示图形为20格白色矩形,即无显示;当音频电压为3.3V时,显示图形为20格红色或蓝色矩形,即满格显示;当音频电压在0V-3.3V之间变化时,显示长度随音频电压变化而变化的音量图形。
根据设置的屏幕分辨率和背景图像数据,分别计算音量图形显示位置的坐标值。然后将各路音量图形数据分别写入对应坐标值的显存中,由VGA显卡自动完成显示。系统完成数据处理和显示后,再开始下一轮的数据读取、处理和显示,形成一个周期循环。根据单片机的处理速度和实际的图像显示效果,还可以通过增加图形量化极数或加入ADC采样平均值算法,使显示的图像变化平滑。整个系统设计的显示效果图如图5所示。
本系统的设计仅为抛砖引玉,为嵌入式系统的VGA接口设计提供了一种较便捷的开发思路。旨在利用电子和计算机技术,解决广播节目自台监控中出现的实际需求问题。系统后期还可以通过软硬件升级,增加音频监测报警功能。实时监测每个广播节目音频是否正常。从而形成一套简单的自台广播节目音频监测设备。