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