羅純哲,李探元
(91245部隊,遼寧 葫蘆島 125001)
在有線語音指揮調(diào)度系統(tǒng)中根據(jù)需要對下級用戶送來的多路語音信號進行混音處理,傳統(tǒng)方法采用矩陣和集成運放求和電路實現(xiàn),存在硬件組成復雜、占用安裝空間大、抗干擾能力和可靠性差等不足。本方案以宏晶公司生產(chǎn)的新型1T高速單片機STC12C5A60S2為核心,利用片內(nèi)豐富的A/D資源和輔助的4通道并行D/A轉(zhuǎn)換器構(gòu)成了一個8×4數(shù)字語音混音矩陣硬件,通過軟件實現(xiàn)了8路語音信號的4路混音輸出和動態(tài)靜噪功能,具有混音功能設置靈活、調(diào)試方便等優(yōu)點。
總體設計框圖如圖1所示,單片機STC12C5A60S2為控制核心,通過串口接受混音狀態(tài)設置,通過A/D轉(zhuǎn)換口對8路輸入緩沖器輸出的語音信號進行采樣,計算每路輸入語音信號平均電壓,并與靜噪閾值進行比較后,實時改寫混音開關狀態(tài)字實現(xiàn)混音輸出動態(tài)靜噪功能,并根據(jù)改寫后的實際混音開關狀態(tài)字進行數(shù)字混音計算后,通過并行總線控制的D/A轉(zhuǎn)換器輸出4路混音信號。
圖1 總體設計框圖
模塊硬件組成主要包括:電源、輸入緩沖單元、微控制器、D/A轉(zhuǎn)換及濾波單元、模塊地址設置單元等。
電源轉(zhuǎn)換單元電路原理圖如圖2所示。外部輸入的12 V直流電源,通過AMS公司高性能、低功耗AMS1117線性穩(wěn)壓電源模塊轉(zhuǎn)換為+5 V直流電源,做為單片機A/D轉(zhuǎn)換器和外加D/A轉(zhuǎn)換器的參考電壓,并增加輸入輸出高頻濾波電路,使輸出紋波電壓進一步減小,電壓輸出幅度穩(wěn)定,滿足模塊供電要求。
圖2 電源轉(zhuǎn)換單元原理圖
為了滿足單片機A/D口要求,需要對輸入的語音信號進行隔離和電平轉(zhuǎn)換。圖3為輸入緩沖單元電路原理圖。電路采用NE5532低噪聲運放輔以阻容等元件構(gòu)成單電源射級跟隨器,圖中C1為隔直電容,R1、R2為運放IC1A的偏置電阻,使運放正輸入端偏置于2.5 V,保證運放在單電源下正常工作,同時將輸入的交流語音信號基準參考電平平移到2.5 V,滿足單片機A/D的需要。
圖3 輸入緩沖單元電路原理圖
微控制器采用宏晶科技生產(chǎn)的單時鐘/機器周期(1T)的單片機 STC12C5A60S2,該單片機是高速、低功耗、超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051單片機,但速度提高 8~12倍[1]。最高工作頻率可達35 MHz,具有44個I/O口,每個I/O口驅(qū)動能力均可達20 mA,內(nèi)部還集成有MAX810專用復位電路,512B EEPROM,1 280 B RAM,60 KB 程 序 存 儲 器 ,2 路PWM,8路10位高速A/D(250 kS/s),主要針對電機控制等強干擾應用[3]。另外還具有ISP(在系統(tǒng)可編程)/IPA(在應用可編程)功能,無需專用編程器和仿真器,可通過串口(P3.0/P3.1)直接下載用戶程序,方便軟件下載和調(diào)試。
本方案中,STC12C5A60S2單片機采用外部晶體振蕩器,頻率為24 MHz,通過單片機串口2接受混音狀態(tài)設置,8路語音信號通過P1.0~P1.7口輸入到單片機進行A/D轉(zhuǎn)換;混音處理后的數(shù)字量通過并行總線送給TLC7226 D/A轉(zhuǎn)換器,經(jīng)D/A轉(zhuǎn)換后輸出4路混音信號。
D/A轉(zhuǎn)換單元采用TI公司生產(chǎn)的TLC7226CDW電壓輸出型D/A轉(zhuǎn)換器,TLC7226采用CMOS工藝,內(nèi)部設有控制邏輯單元、4個并行D/A轉(zhuǎn)換器和輸出緩沖器[2]。本方案中,單片機與TLC7226連接如圖4所示。
圖4 D/A轉(zhuǎn)換單元電路原理圖
STC12C5A60S2單片機軟件在Keil集成開發(fā)環(huán)境下,采用匯編語言對其編程,目標代碼利用STC提供的ISP下載工具STC-ISP.EXE通過串口下載到單片機,下載和調(diào)試非常方便。
主程序模塊主要完成單片機和模塊的初始化,程序流程如圖5所示。
中斷周期為 125 μs,主要完成 8路語音信號采樣(頻率為8 kHz)、每路參與混音的語音信號的動態(tài)靜噪及4路數(shù)字混音計算和輸出功能,程序流程圖如圖6所示。
圖5 主程序流程圖
圖6 T0中斷服務程序流程圖
3.2.1 動態(tài)靜噪原理
計算在極短時間內(nèi)采樣值的平均值與靜噪門限進行比較,在門限值之下的信號認為是噪聲,不參與混音計算,在門限值之上的信號則認為是語音信號,參與混音計算,這時雖然噪聲和語音一起混音后輸出,但由于聲音的屏蔽效應,噪聲可以忽略[3],從而實現(xiàn)混音動態(tài)靜噪功能。
3.2.2 采樣值處理
語音信號電壓采樣頻率為8 kHz,為了實現(xiàn)混音動態(tài)靜噪功能,通過計算在極短時間內(nèi)語音信號電壓所有采樣值的平均值來表征語音信號的強弱。由于采樣時間極短,人耳感覺不到時間差異。如將采樣時間t取為4 ms,采樣點數(shù) N=0.004×8 000=32。
3.2.3 數(shù)字混音算法
在權重系數(shù)混音算法思想基礎上采用如下混音模型公式:
其中:Volk(t)為 t時刻第k路輸入語音的音量大小,為所有路輸入語音的音量大小的平均值,f為控制聲音不失真的平滑衰減因子,是動態(tài)改變的值,其初始值為 1/n,n為輸入語音的總路數(shù)[2]。隨著時間 t的變化,在混音過程中會出現(xiàn)溢出現(xiàn)象,為了減少溢出引入的噪聲,將衰減因子平滑地減小,使音頻數(shù)據(jù)衰減后處于值域以內(nèi),當沒有溢出時,衰減因子隨步長慢慢增大,為了在盡量保持數(shù)據(jù)的平滑變化和混音效率中間達到平衡,通常將步長取為(1/n-f)/16,既能使整體聲強不至于衰減太快,又能保證較小的失真度[4]。
3.2.4 軟件時間開銷估算
A/D轉(zhuǎn)換時間開銷:STC12C5A60S2單片機內(nèi)部A/D轉(zhuǎn)換器模塊使用內(nèi)部RC振蕩器時鐘,5 V單片機內(nèi)部RC振蕩器時鐘頻率常溫下為 11~17 MHz,A/D轉(zhuǎn)換器最快轉(zhuǎn)換速度為90個時鐘周期,所以每路A/D轉(zhuǎn)換所需時間為:5.3~8.2 μs,8 路 A/D 轉(zhuǎn)換所需時間為:42.4~65.6 μs。
其他時間開銷:STC12C5A60S2單片機采用24 MHz外部石英晶體時,執(zhí)行1條單周期指令所需時間為0.042 μs,采樣值處理、動態(tài)靜噪控制、數(shù)字混音計算及D/A輸出控制總計約1 000條單周期指令,其他時間開銷總計約:0.042 μs×1 000=42 μs。
最大時間開銷總計:65.6 μs+42 μs=107.6 μs<125 μs。
串口2設置為工作模式3,模塊作為從機與控制主機進行通信,模塊地址通過4位撥碼開關進行設置,模塊主要完成接收和保存4路混音狀態(tài)設置字,程序流程圖如圖7所示。
為了驗證設計方案,設計制作了模塊PCB板,并編制相關軟件進行了調(diào)試和實驗。通過電腦模擬控制主機與模塊進行主從通信,發(fā)送4字節(jié)混音設置狀態(tài)字,實驗結(jié)果表明,按照預定協(xié)議能夠進行可靠通信,可以正確地完成4路混音輸入狀態(tài)設置。
在動態(tài)靜噪控制時,在每路語音信號平均電壓(RMS值)與靜噪門限進行比較后,改變混音開關狀態(tài)時需要一定的時間延遲。當語音信號在超過門限電平到混音開關閉合要有一定的延時Th。Th太長會造成語音的起始音素被切除,但Th太短,任何幅度超過靜噪門限值的突發(fā)短暫干擾都會立刻打開混音開關并將這一干擾混音后輸出,破壞靜音效果,為了盡可能地吸收這類干擾又不至于造成起始音素丟失,Th可在 0.5~4 ms之間選擇。當語音信號在低于門限電平到混音開關斷開也要有一定的延時Tb。由于語音信號動態(tài)范圍大,講話時又隨著語氣的變化而起伏停頓,因此Tb太短會造成語音的斷續(xù),影響語音混音質(zhì)量。Tb太長,則語音停頓時噪聲拖尾,同樣影響混音質(zhì)量。為了兼顧這兩方面,Tb值可在 0.5~2 s之間選取。
圖7 串口中斷服務程序流程圖
通過調(diào)試和實驗,4路混音輸出每路均能夠正確地按照預設狀態(tài)字從8路語音輸入中選擇指定語音信號進行混音后輸出,取得了滿意的混音效果,而且每路混音輸入在混音過程中均能實現(xiàn)動態(tài)靜噪功能,驗證了混音算法和動態(tài)靜噪控制的正確性。
本文根據(jù)某有線語音指揮調(diào)度系統(tǒng)研制需要,設計了一種基于STC12C5A60S2單片機的8×4數(shù)字語音混音矩陣方案,并制作實物進行了調(diào)試和驗證。驗證結(jié)果表明:方案設計合理可行,研制的模塊實物體積小、成本低,具有硬件電路簡單、抗干擾能力強、混音功能設置靈活、調(diào)試方便等優(yōu)點,具有較高的性價比和實用價值。
[1]STC12C5A60S2中文手冊完全版.STC官方網(wǎng)站:WWW.STCMCU.COM.
[2]TEXAS INSTRUMENTS.TLC7226C Quadruple 8-bit Digital-TO-Analog Converters Data Sheet.SLAS060F-January 1995-Revised April,2007.
[3]丁光亮,楚紀正,王琦.數(shù)字信號音頻電平的算法研究[J].通信技術 2010(7):150-153.
[4]黃梅,宏玫,盧揚,等.數(shù)字混音模型的設計與實現(xiàn)[J].計算機工程與設計 2010,31(16):3625-3626.