數(shù)字化全雙工語音會議電路(06-100)
在多路語音信號相加時,如果求和所得信號溢出,語音將產(chǎn)生限幅失真。為解決這一問題,用雙向計(jì)數(shù)器carry_counter來擴(kuò)展“和”的動態(tài)范圍。用a/c_clock信號的上升沿執(zhí)行加/減法操作、下降沿執(zhí)行進(jìn)/退位操作。采用這一技術(shù)比簡單地增加加法器的數(shù)據(jù)寬度節(jié)省芯片的邏輯資源。通常carry_counter用4位計(jì)數(shù)器就夠了。
本文引用地址:http://www.ex-cimer.com/article/81181.htmsumming_enable信號用來允許/禁止某路語音參加求和。如果要禁止某路發(fā)言,當(dāng)加法器對該路數(shù)據(jù)求和時,使summing_enable為低即可。
求和后的線性碼ds[11..0]和進(jìn)/退位信號ds[15..12]在每幀結(jié)束時被sum_latch信號鎖存,然后在sum_out信號有效時輸出。
全局加法器
來自各個幀加法器的輸出分時選通三態(tài)總線,相繼送入全局加法器,在全局加法器里累加所有各幀的信號。從全局加法器輸出的“和”信號就包括了所有與會者的發(fā)言。全局加法器的電路設(shè)計(jì)類似于幀加法器。
本路減法器和延時電路
本路減法器由32路信號分時共用,從全部“和”信號中減去一路信號再輸出到該路,這路就收到了除自己以外的所有其它與會者的發(fā)言。但是由于兩次累加過程,“和”信號已經(jīng)產(chǎn)生了兩幀時間的延遲,因此必須把擬減去的本路信號先做相同的延時,然后再相減。只要在前面的累加過程中沒有產(chǎn)生限幅失真,本路信號就能夠被精確地減除掉。
線性碼/A律碼轉(zhuǎn)換電路
從本路減法器輸出的仍是線性碼,通過本模塊轉(zhuǎn)換回A律編碼。該轉(zhuǎn)換電路也是1幀32路信號分時共用的。
并行/串行轉(zhuǎn)換電路
最后把運(yùn)算完畢的并行信號轉(zhuǎn)換成符合PCM時序要求的串行信號,即可輸出給PCM解碼器,得到供各用戶收聽的語音會議信號。
時序發(fā)生器
時序發(fā)生器外接16.384MHz的有源晶振,導(dǎo)出3組同步的時鐘信號:FPGA內(nèi)各邏輯處理電路的時序信號、FPGA和外部處理器接口的時序信號、PCM編解碼器的時鐘信號。
外部處理器接口
本接口通過地址、數(shù)據(jù)、控制三組總線連接到FPGA片外的單片機(jī)或嵌入式計(jì)算機(jī)。通過本接口,外部處理器可以設(shè)定和選擇FPGA的功能,如禁止某路發(fā)言或收聽等。
如把數(shù)據(jù)和控制總線設(shè)計(jì)成雙向的,還可以讀取到FPGA內(nèi)各路用戶的語音狀態(tài)信息。
設(shè)計(jì)結(jié)果
以上電路用Altera公司的QuartusⅡ 5.1版軟件進(jìn)行設(shè)計(jì)、仿真和下載編程,選用的FPGA是Altera公司Cyclone系列的EP1C6 T144芯片。本設(shè)計(jì)的關(guān)鍵是各路信號處理流程中的時序關(guān)系必須嚴(yán)格符合PCM信號的時序要求,否則會影響語音質(zhì)量。為此要認(rèn)真進(jìn)行電路波形的仿真,還要保證所有波形去除掉“毛刺”使電路能穩(wěn)定工作。設(shè)計(jì)完成后對32路、128路等全雙工語音會議進(jìn)行了實(shí)際電路的制作和實(shí)驗(yàn),試聽語音會議的音質(zhì)優(yōu)良,效果完全達(dá)到設(shè)計(jì)要求。
依據(jù)上述設(shè)計(jì)原理,對電路做些改變,還能夠進(jìn)一步擴(kuò)展語音會議的功能,如分組會議、調(diào)度會議、通播會議等。
評論