音頻延時器可用于廣播電臺直播節目,它將音頻信號延時一段時間后播出,以避免主持人的口誤或聽眾熱線中聽眾的一些不健康言論通過廣播媒體傳播,從而實現直播節目的安全播出。作為廣播級設備,音頻延時器對動態范圍、失真、信噪比和頻率響應等性能指標要求很高,因此一般采用數字技術。采用計算機內置全雙工聲卡硬盤,可以以軟件方式實現音頻信號眨時,但使用操作不方便,可靠性較差,性能價格比較低。本文提出的基于高精度∑-ΔADC和DSP芯片的廣播級數字音頻延時器,具有性能指標高、操作簡便、功能齊全等特點,該設計方案已產品化。
1 系統結構
1.1 系統構成
延時器硬件為主從式結構,如圖1所示,主要由單片機M68HC05C8、DSP芯片TMS320C32和音頻編解碼器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引腳給出復位脈沖,TMS320C32進入外部存儲器程序引導,將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芯片,能較為靈活地控制工作模式,具有較高的音頻性能指標,完全可以滿足電臺直播節目安全播出的需要。
?
評論
查看更多