戚桂東 李品斌 龐文茂 陳天江
(1.廣西廣播電視技術(shù)中心玉林分中心;2.廣西廣播電視技術(shù)中心貴港分中心)
目前在貴港轉(zhuǎn)播臺(tái)值班房,值班員通常使用收音機(jī)監(jiān)聽臺(tái)站發(fā)射的廣播節(jié)目?,F(xiàn)臺(tái)站同時(shí)發(fā)射5套調(diào)頻廣播節(jié)目,由于多套節(jié)目的聲音混淆在一起,因此不容易分辨每套節(jié)目是否正常。為保證安播,機(jī)房值班人員提出能否將廣播節(jié)目音頻在電視墻顯示監(jiān)看的想法。鑒于目前市場(chǎng)上類似的設(shè)備較少,較難采購功能符合需求的設(shè)備,因此本文使用STM32單片機(jī)作用主控,設(shè)計(jì)了一套廣播音頻可視化顯示方案。將多路模擬廣播節(jié)目音頻電壓信號(hào)通過VGA接口,接顯示器在電視墻上進(jìn)行可視化監(jiān)看。實(shí)現(xiàn)了當(dāng)值班員在監(jiān)視電視節(jié)目時(shí),也可以同時(shí)監(jiān)視多路廣播節(jié)目是否正常,較有效提高了臺(tái)站廣播節(jié)目的安全播出效果。
本方案的整體設(shè)計(jì)框圖如圖1所示。前端使用廣播調(diào)諧器或收音頭接收臺(tái)站發(fā)射的5套廣播節(jié)目,解調(diào)輸出的左、右聲道,共10路模擬音頻電壓信號(hào),輸入信號(hào)調(diào)理電路。信號(hào)調(diào)理電路主要作用是把信號(hào)調(diào)整到0V-3.3V之間(即單片機(jī)的A/D采樣電壓范圍內(nèi))。然后分別輸入到STM32單片機(jī)的模數(shù)轉(zhuǎn)換器ADC通道1至通道10。單片機(jī)的ADC工作于掃描模式,對(duì)10個(gè)ADC通道進(jìn)行輪詢掃描轉(zhuǎn)換。為提高效率,使用單片機(jī)的DMA控制器,將ADC轉(zhuǎn)換的結(jié)果傳到RAM中,以便軟件調(diào)用。
Micro SD卡主要作用是存儲(chǔ)背景圖片和字庫數(shù)據(jù),單片機(jī)完成ADC數(shù)據(jù)處理后,單片機(jī)通過內(nèi)部靜態(tài)存儲(chǔ)控制器(FSMC),控制16位并行數(shù)據(jù)總線把要顯示的圖像像素RGB數(shù)據(jù),寫入到VGA顯卡的顯存里。VGA顯卡自動(dòng)完成讀取顯存內(nèi)的圖像數(shù)據(jù),并經(jīng)數(shù)模轉(zhuǎn)換成模擬RGB信號(hào),加入VGA控制時(shí)序信號(hào),輸出到VGA接口,實(shí)現(xiàn)顯示器實(shí)時(shí)顯示5套廣播音頻信號(hào)的功能。
圖1 整體方案示意圖
根據(jù)系統(tǒng)要求,STM32F系列是一款基于Cortex-M3內(nèi)核的ARM微控制器,芯片具有16個(gè)ADC輸入引腳,同時(shí)具有靜態(tài)存儲(chǔ)控制器(FSMC),可以快速對(duì)外部的SRAM,NAND FLASH,NOR FLASH和PSRAM等存儲(chǔ)器進(jìn)行快速讀寫。因此選擇ST公司的STM32F103單片機(jī)作為主控MCU。根據(jù)單片機(jī)數(shù)據(jù)手冊(cè)上的引腳功能表,找出ADC1的IN0-IN9引腳,設(shè)置為對(duì)音頻信號(hào)采樣的輸入引腳。
VGA顯卡采用ALIENTEK STM32 VGA顯示驅(qū)動(dòng)模塊,如圖2所示。該模塊基于FPGA和SDRAM實(shí)現(xiàn),可以設(shè)置多種顯示分辨率和刷新率,集成32MB顯存,VGA信號(hào)輸出,適合帶有VGA接口的液晶顯示器。VGA顯卡與單片機(jī)接口是標(biāo)準(zhǔn)的Inter8080接口,符合STM32單片機(jī)的FSMC讀寫模式要求,通過FSMC模塊能方便地對(duì)屏幕任意像素進(jìn)行讀寫操作。VGA顯卡對(duì)單片機(jī)的功能引腳,主要包括讀寫控制功能CE(片選)、A0(地址線)、WE(寫信號(hào))、OE(讀信號(hào))和16位并行數(shù)據(jù)總線D0-D15。方案設(shè)計(jì)時(shí),以上功能分別接到STM32單片機(jī)FSMC 模塊對(duì)應(yīng)的引腳上:FSMC_NE4(片選)、FSMC_A10(地址線)、FSMC_NEW(寫信號(hào))、FSMC_NOE(讀信號(hào))和FSMC_D0-FSMC_D15(16位并行數(shù)據(jù)總線)。
圖2 VGA顯卡接口信號(hào)說明
在本方案中,信號(hào)調(diào)理電路的主要作用有兩個(gè):1、電平轉(zhuǎn)換,將交流的音頻信號(hào)電平抬升,變成0V以上的大小變化的直流電平,這樣單片機(jī)的ADC才能完成對(duì)音頻信號(hào)的采樣;2、電平限幅,將轉(zhuǎn)換后的音頻信號(hào)電平限制在0V-3.3V之間,即在單片機(jī)ADC的采樣電壓輸入范圍內(nèi),防止電壓過高損壞器件。
設(shè)計(jì)的信號(hào)調(diào)理電路如圖3所示,輸入的音頻信號(hào)經(jīng)過電位器R1的衰減,通過電容C1,輸入放大位數(shù)為1倍的運(yùn)放NE5532的反相輸入端。運(yùn)放正相輸入端電壓是由5V經(jīng)R2和R5分壓的電壓,約為3.3V。根據(jù)運(yùn)放“虛短”原理,反相輸入端電壓也約為3.3V。在運(yùn)放的輸出端,音頻信號(hào)的基準(zhǔn)電平就由0V提升到了3.3V。輸出的音頻信號(hào)經(jīng)R6和R7分壓,形成以約1.65V為電平基準(zhǔn)的音頻信號(hào)。后面再由一個(gè)3.3V的穩(wěn)壓二極管D1限幅,可確保音頻信號(hào)電壓在單片機(jī)的ADC輸入范圍內(nèi)。當(dāng)輸入的音頻信號(hào)幅度過大時(shí),通過調(diào)節(jié)電位器R1對(duì)信號(hào)進(jìn)行衰減,使輸出信號(hào)動(dòng)態(tài)范圍在0-3.3V內(nèi)。
Micro SD卡主要功能是存儲(chǔ)背景圖片數(shù)據(jù)和中文字庫數(shù)據(jù),以供單片機(jī)讀取并調(diào)用顯示。Micro SD卡和單片機(jī)通信有兩種方式:第一種是SD模式;第二種是SPI模式。為加快讀寫速度,本設(shè)計(jì)中采用的是SD模式,單片機(jī)用SDIO方式與SD卡通信,設(shè)計(jì)的接口電路如圖3所示。
整個(gè)系統(tǒng)的軟件流程圖如圖4所示。系統(tǒng)開始工作時(shí),先對(duì)系統(tǒng)時(shí)鐘、ADC等模塊進(jìn)行初始化,并啟動(dòng)ADC轉(zhuǎn)換;然后VGA顯卡開始進(jìn)行初始化,設(shè)置顯示分辨率,刷新率等信息,主要包括兩個(gè)部分:1,對(duì)顯卡接口的I/O口進(jìn)行配置;2,對(duì)STM32的靜態(tài)存儲(chǔ)控制器(FSMC)功能進(jìn)行配置,配置FSMC工作模式和總線時(shí)序,使總線時(shí)序滿足VGA顯卡的時(shí)序要求;最后Micro SD卡進(jìn)行初始化配置,并運(yùn)行文件管理系統(tǒng)。系統(tǒng)完成以上工作后,單片機(jī)從Micro SD卡讀取背景圖片數(shù)據(jù),寫入顯存中并發(fā)送開啟VGA顯示命令,此時(shí)顯示器開始顯示背景圖片。
圖3 信號(hào)調(diào)理與Micro SD卡接口電路
圖4 軟件流程圖
圖5 設(shè)計(jì)的背景圖片與顯示效果圖
系統(tǒng)完成以上初始化操作后,開始進(jìn)入正式工作流程。首先使用輪詢方式讀取10個(gè)ADC通道的結(jié)果數(shù)據(jù),并轉(zhuǎn)換成0V-3.3V的音頻信號(hào)電壓值。為了加快處理顯示速度,將顯示的圖形長(zhǎng)度均勻量化為20等分,分別對(duì)應(yīng)0V-3.3V電壓值,通過查表方式查找需要顯示的圖形長(zhǎng)度。當(dāng)音頻電壓為0V時(shí),顯示圖形為20格白色矩形,即無顯示;當(dāng)音頻電壓為3.3V時(shí),顯示圖形為20格紅色或藍(lán)色矩形,即滿格顯示;當(dāng)音頻電壓在0V-3.3V之間變化時(shí),顯示長(zhǎng)度隨音頻電壓變化而變化的音量圖形。
根據(jù)設(shè)置的屏幕分辨率和背景圖像數(shù)據(jù),分別計(jì)算音量圖形顯示位置的坐標(biāo)值。然后將各路音量圖形數(shù)據(jù)分別寫入對(duì)應(yīng)坐標(biāo)值的顯存中,由VGA顯卡自動(dòng)完成顯示。系統(tǒng)完成數(shù)據(jù)處理和顯示后,再開始下一輪的數(shù)據(jù)讀取、處理和顯示,形成一個(gè)周期循環(huán)。根據(jù)單片機(jī)的處理速度和實(shí)際的圖像顯示效果,還可以通過增加圖形量化極數(shù)或加入ADC采樣平均值算法,使顯示的圖像變化平滑。整個(gè)系統(tǒng)設(shè)計(jì)的顯示效果圖如圖5所示。
本系統(tǒng)的設(shè)計(jì)僅為拋磚引玉,為嵌入式系統(tǒng)的VGA接口設(shè)計(jì)提供了一種較便捷的開發(fā)思路。旨在利用電子和計(jì)算機(jī)技術(shù),解決廣播節(jié)目自臺(tái)監(jiān)控中出現(xiàn)的實(shí)際需求問題。系統(tǒng)后期還可以通過軟硬件升級(jí),增加音頻監(jiān)測(cè)報(bào)警功能。實(shí)時(shí)監(jiān)測(cè)每個(gè)廣播節(jié)目音頻是否正常。從而形成一套簡(jiǎn)單的自臺(tái)廣播節(jié)目音頻監(jiān)測(cè)設(shè)備。