基于EasyEDA平臺設(shè)計FM1188消回音調(diào)試板
最近有在做一些對講設(shè)備,測試的時候,每次對著麥克風(fēng)講完話,總能從面前的喇叭上聽到自己講的話。想起偶爾打電話的時候也會出現(xiàn)相似的情況,就是不知道為什么電話里有自己的講話聲,之前只覺得電話出問題了,或者是信號串了之類的,沒思考過。這回是面對面碰到了這種現(xiàn)象,了解后才知道這個是對講系統(tǒng)設(shè)計中最棘手的問題之一,回音問題。經(jīng)過一段時間與回音問題的抗?fàn)?,積累了不少回音消除方面的經(jīng)驗,而今天就將這些經(jīng)驗分享給大伙,主要是其中用到的一款消回音調(diào)試板。
本文引用地址:http://2s4d.com/article/201808/385550.htm這次為了分享完整的設(shè)計,我使用的工具是EasyEDA。這個網(wǎng)站對硬件設(shè)計開源支持非常好,和Github有點相似,不過側(cè)重于開源硬件設(shè)計,而且個人覺得比Github親民很多,Github只有英文版本,天生就是為大神們量身打造的。Github側(cè)重的是軟件的開源,有很強大的版本管理功能,能夠完全記錄每一個文本格式的文件的修改歷史,并比對不同版本文件間的不同點,而且支持在線閱讀代碼。不過這種強大的管理功能也只限于文本格式的文件,對于非文本格式的文件,Github都認(rèn)為它是一個文件,只記錄它的版本,如果你對這個文件修改的內(nèi)容描述不夠 詳細(xì),過段時間后需要回滾版本就得很麻煩,而且Github是不支持這種文件的在線瀏覽的。EasyEDA支持在線進(jìn)行硬件設(shè)計,并且具有很好的項目管理和版本管理功能。挑兩張圖略略說明一下EasyEDA,因為下面主要是在它上面操作的。
花了點口水,描述了一下設(shè)計工具。工欲善其事必先利其器嘛,因此我再花點時間給剛遇到回音問題的伙伴們普及一些基礎(chǔ)知識。
對講系統(tǒng)回音原理
它的基本原理就是這樣,如下圖,音源(用戶講話)從本地設(shè)備的麥克風(fēng)采集后,通過網(wǎng)絡(luò)發(fā)往遠(yuǎn)端設(shè)備,遠(yuǎn)端設(shè)備從喇叭中播放出來音源的聲音(通常會經(jīng)過放大),如果遠(yuǎn)端設(shè)備沒有進(jìn)行消回音處理,那么這個遠(yuǎn)端設(shè)備的喇叭播放出來的聲音,就會被遠(yuǎn)端設(shè)備的麥克風(fēng)采集到,并通過網(wǎng)絡(luò)傳回到本地設(shè)備,并經(jīng)過放大,從本地喇叭播放處理。
模擬對講系統(tǒng)比較少出現(xiàn)對講回音問題,原因有兩個:1、傳輸延時很小,即使有聲音,通常也會隱藏在自己的講話聲中,使用者不容易察覺。2、也由于第一點原因,模擬系統(tǒng)的消回音處理也相對簡單(有了解過回音消除算法的伙伴們應(yīng)該知道這個回音回來的時間上是關(guān)鍵參數(shù),這里不討論回音算法,所以不贅述),直接將輸出和輸入做減法運算,消回音效果就基本能保證了。我們常用的模擬對講系統(tǒng)有傳統(tǒng)的固話系統(tǒng),而IP電話則是(數(shù)字)網(wǎng)絡(luò)對講系統(tǒng)。
對講回音與嘯叫區(qū)別
下圖簡單地示意了嘯叫的形成,基本的原因就是麥克風(fēng)采集的音頻通過放大后從揚聲器播出,若揚聲器放得比較靠近麥克風(fēng),那么聲波通過空間傳回麥克風(fēng),麥克風(fēng)將這些放大后的聲音再次采集送往功放放大,然后從揚聲器播出,以此反復(fù),聲音越來越大,從觀察者的角度,就更喇叭叫了起來一樣,聽到刺耳的巨響。這個和海嘯有點像,地震波推著海浪向前,后來的波浪會疊加到前面的波浪上,最后越疊越高,形成巨型的海浪,造成驚人的破壞力。
回音也可以引起嘯叫,不過這個回傳的路徑不單只包括空間(聲學(xué)回聲傳播路徑)還包括電路線纜,不過“叫”起來的原因是一樣的,有音頻的回環(huán),并且在環(huán)上有放大環(huán)節(jié)。
消回音常用手段
早時候,算法還不夠完善,為了處理回音、嘯叫這種種音頻問題,網(wǎng)絡(luò)對講系統(tǒng)曾經(jīng)為了繞過它們而采用單工的對講方式,就是我講的時候不能聽你講,回想一下,在醫(yī)院打點滴,如果點針?biāo)煊猛?,就需要按邊上的按鈕呼叫護(hù)士,需要按下按鈕獲得講話的權(quán)限,而護(hù)士聽到了呼話后,在總臺同樣需要按下按鈕進(jìn)行恢復(fù)。半雙工對講系統(tǒng)就是這么個令人糾結(jié)的系統(tǒng)。
目前消回音算法取得了極大的進(jìn)展,不用再使用半雙工的蹩腳方式避讓開回音問題了,了解了一圈,消回音通常有三種處理辦法,1、使用對講程序現(xiàn)成的消回音庫,這些庫有免的如webRTC或者freeswitch消回音庫開源版本,也有收費的如 freeswitch的消回音庫商業(yè)版本;2、使用富迪的消回音芯片,這種芯片其實上就是一個專用DSP加上固化了的消回音程序(固件),并開放參數(shù)調(diào)節(jié)接口;3、使用DSP跑自主開發(fā)的消回音算法,因為這類算法涉及的浮點運算比較多,通常需要使用高性能的DSP芯片才能支撐。第一種方式消回音效果好,但是通常使用的自適應(yīng)算法需要收斂時間,這種方式收斂時間相對較長。第二種方式簡單易用,算法收斂快,效果也能滿足大多數(shù)使用情況下的要求。第三種方式,無論是消回音效果或收斂時間都能達(dá)到最優(yōu),不過技術(shù)門檻較高,成本也較高。
FM1188消回音調(diào)試板設(shè)計
科普了一大段,終于要進(jìn)入主題了,如何設(shè)計FM1188消回音調(diào)試板。
其實在消回音領(lǐng)域富迪的方案還是用得相當(dāng)廣泛的,淘寶上也有各種已經(jīng)燒好了參數(shù)的小模塊,如下圖,可以直接嵌入電路使用。不過這種模塊不方便調(diào)試參數(shù),而今天的調(diào)試板充分考慮了調(diào)試的各種情況。
如圖2所示,其中每張原理圖放置板子的一個功能模塊,接下來分別說一下這些功能模塊的作用和設(shè)計注意事項。(整幅圖片可能看起來比較模糊,有需要的伙伴們可以登錄下文項目鏈接進(jìn)行探討)
1、ALC5640音頻編解碼電路
ALC5640是REALTEK公司推出的一款高性能的多通道編解碼芯片,有兩組I2S接口,能當(dāng)Audio Hub使用,能夠真正實現(xiàn)全雙工操作,就是編碼的同時進(jìn)行解碼。而且體積小通常用在移動設(shè)備上。
為了確保音質(zhì),需要降低電源噪聲,調(diào)試板的編解碼芯片采用獨立的線性電源供電,如下。板卡上的每個模塊都盡量保持低噪聲很重要,在調(diào)試的時候才能更好地評估,設(shè)計對正真噪聲(空間聲學(xué)噪聲)的抑制效果。
ALC5640內(nèi)置雙通道D類功放,最大支持5W功率輸出,輸出必須加濾波電路,如下:
接口處將所有控制信號、音頻輸入輸出引出來,封裝采用2.54mm引腳間距的雙排插針,方便后續(xù)使用杜邦線根據(jù)需要互聯(lián)電路,如下:
2、AMPLIFIER功放電路
功放模塊設(shè)計包含了兩個不同輸出功率的功放芯片,其中LM4950是7W,LM4871是5W,而且兩個芯片都具有靜音控制功能,這是為了后續(xù)調(diào)試的時候更好地比對在不同喇叭響度的情況下比對消回音效果。
和音頻編解碼模塊一樣,電源采用線性電源獨立供電,降低電源噪聲;接口處將所有控制信號、音頻輸入輸出引出來,封裝采用2.54mm引腳間距的雙排插針,方便后續(xù)使用杜邦線根據(jù)需要互聯(lián)電路,如下:
LM4950和LM4871內(nèi)部原理類似,都是橋接方式推動喇叭工作的,如下,無需外接隔直大電容,這是一種OCL(output capacitor less)功放電路。
3、FM1188消回音模塊
FM1188是富迪公司(fortemedia)推出的語言處理芯片,它能夠降低環(huán)境噪聲、定向采集聲音、消回音等。它的內(nèi)部消回音算法或者說消回音處理邏輯如下:
因為是調(diào)試板卡,配置是不固定的,增加跳線接口,用于調(diào)試的時候根據(jù)需要進(jìn)行配置。配置包括兩種,一個是參數(shù)下載方式的配置,F(xiàn)M1188共支持4種參數(shù)下載方式:1、從256 BYTE EEPROM讀取參數(shù);2、從1 KBYTE EEPROM讀取參數(shù);3、從SHI接口讀取參數(shù);4、從UART接口讀取參數(shù)。淘寶上賣的模塊通常是將參數(shù)預(yù)先燒寫到EEPROM中,而且參數(shù)通常不多,然后配置成第一種參數(shù)下載方式,方便客戶使用。還有一個是燒寫參數(shù)位置的配置,可以根據(jù)配置將程序燒寫到EEPROM的不同地址。
所謂的配置指的就是設(shè)置功能引腳上電時的電平,預(yù)留2.54mm引腳間距的雙排插針,后續(xù)使用跳線帽進(jìn)行跳線即可,如下。
引出音量調(diào)節(jié)引腳,方便調(diào)試的時候隨時可以改變音量,以便在不同響度情況下,觀察消回音效果。
原理圖模塊就這些,接下來畫PCB,PCB圖設(shè)計也在EasyEDA上實現(xiàn)(作圖思路大同小異,對工具有興趣的伙伴們自行百度EasyEDA,這里不詳述),在這說明一下設(shè)計時的注意事項。先上整體效果圖,如下:
樣板設(shè)計完之后想看板卡的生產(chǎn)時的效果圖也可以用EasyEDA預(yù)覽,如下,是不是真的很像打樣回來的樣板呢?
最終做出來的樣板如下,由于走的公司渠道的打樣,有部分公司信息,因此圖片打了馬賽克。
麥克風(fēng)接FM1188進(jìn)行聲音采集,并慮除回聲,和噪聲;FM1188處理過后的音頻信號傳給音頻編解碼芯片ALC5640的LINEIN進(jìn)行采集并編碼;音頻編解碼芯片ALC5640輸出的音頻LINEOUT一方面輸給功放放大,一方面為FM1188提供參考(沒有參考音源是無法消除回聲的,要不然FM1188如何知道喇叭播出了什么聲音?)
『本文轉(zhuǎn)載自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系刪除』
評論