VoIP語(yǔ)音網(wǎng)關(guān)中TDM控制模塊的設計
2008/11/03
TDM控制模塊是VoIP網(wǎng)關(guān)系統設計中的重要部分,是連接來(lái)自PSTN(Public Switched TelephoneNetwork)串行的TDM數據格式和并行的Wishbone數據格式的橋梁,實(shí)現兩邊數據跨時(shí)鐘域無(wú)丟失的轉換。為滿(mǎn)足高速數據轉換的要求,采用了Wishbone總線(xiàn),將多個(gè)IP核集成為VoIP網(wǎng)關(guān)系統。圖1 TDM控制模塊的作用
圖2 時(shí)分復用的時(shí)隙
本設計的串行語(yǔ)音數據針對E1專(zhuān)線(xiàn)標準,E1主要應用于歐洲,中國也采用該標準。E1標準的數據率為2.048Mb/s,每一個(gè)時(shí)間幀包括30個(gè)B子信道,一個(gè)D子信道和一個(gè)同步子信道,共32個(gè)子信道。以語(yǔ)音模擬信道為例,信道帶寬限制為3.4kHz,根據奈圭斯特定律,子信道采樣速率至少是信號最高頻率的兩倍,通常選擇采樣速率為8kHz。因此,整個(gè)TDM信道的比特速率可以達到:
8kb/s×8×32=2048kb/s=2.048 Mb/s,即E1標準規定的TDM數據率。
圖3 TDM接口控制模塊的基本結構
串行數據接口主要負責串行數據與8位寬并行數據的轉換,因為存放數據的FIFO是以8bit為一地址空間的。轉換由設計的狀態(tài)機來(lái)控制:接收
(receive)操作、發(fā)送(transmit)操作和等待,接收就是將串行數據轉換成8bit位寬數據的過(guò)程,發(fā)送與之相反。由于語(yǔ)音數據要求雙工機制,由時(shí)鐘高低電平來(lái)作為發(fā)送和接收狀態(tài)的切換信號,即當時(shí)鐘為低時(shí)由發(fā)送狀態(tài)轉為接收狀態(tài),當時(shí)鐘為高時(shí),由接收狀態(tài)切換為發(fā)送狀態(tài),這樣可以看作接收與發(fā)送是同時(shí)進(jìn)行的。
發(fā)送、接收緩存器不僅包括用于暫時(shí)存儲數據的FIFO,而且還設計有狀態(tài)機來(lái)控制接收、發(fā)送數據流。由于跨時(shí)鐘域,由雙口RAM組成的FIFO可能會(huì )帶來(lái)地址比較沖突的問(wèn)題,本設計采用乒乓機制來(lái)完成FIFO,當一個(gè)緩存器進(jìn)行讀操作時(shí),另一個(gè)緩存器則進(jìn)行寫(xiě)操作,兩者的切換由硬件來(lái)完成。以下以接收緩存器為例(數據方向從TDM串行數據到Wishbone總線(xiàn)并行數據)來(lái)描述本設計。緩存器的大小設計為包含四幀TDM數據,因此每個(gè)FIFO的大小為
8bit×32×4=1024bit,如圖4。選用乒乓FIFO以及FIFO大小設計的原因如下。
圖4 乒乓FIFO
串行數據的時(shí)鐘相對于Wishbone總線(xiàn)的時(shí)鐘要慢,當兩時(shí)鐘域上的數據相互轉換時(shí),Wishbone總線(xiàn)可以在很短時(shí)間內讀寫(xiě)FIFO,而串行總線(xiàn)需要相對較長(cháng)的時(shí)間讀寫(xiě)相同數據量。盡管如此,在Wishbone總線(xiàn)時(shí)鐘頻率相對較慢時(shí),Wishbone總線(xiàn)很可能在下一批串行數據寫(xiě)進(jìn)FIFO前不能完全讀空FIFO。以接收緩存器為例,如果不考慮處理器(BC320)中斷響應時(shí)間和從RAM讀數據的時(shí)間(待處理的數據都要先暫存在Wishbone
總線(xiàn)上掛的RAM中),從Wishbone總線(xiàn)讀空一個(gè)FIFO中的四幀數據需要時(shí)間為:
1/25M x 32 x 4 = 5.12 x 10-6 s= 5.12us
25M是本設計在FPGA開(kāi)發(fā)板進(jìn)行測試時(shí)所采用的時(shí)鐘頻率,即測試系統時(shí)Wishbone總線(xiàn)上的時(shí)鐘頻率。
而在另一邊串行數據,當四幀寫(xiě)滿(mǎn)FIFO后,第五幀的第一個(gè)字節數據開(kāi)始寫(xiě)入FIFO的準備時(shí)間為:
1/24M x 8 = 4 x 10-6?s = 4us
FIFO中的四幀數據被讀空時(shí)間大于第五幀的第一個(gè)字節寫(xiě)入FIFO的準備時(shí)間,FIFO的寫(xiě)滿(mǎn)與讀空都是有硬件產(chǎn)生信號標識,此時(shí)FIFO讀空信號標識未產(chǎn)生,不能對同一FIFO進(jìn)行寫(xiě)操作,導致待寫(xiě)數據丟失。因此選用兩個(gè)FIFO采用乒乓機制來(lái)切換讀寫(xiě)操作,如圖4所示。
在解復用時(shí),數據的地址恢復很重要,一個(gè)TDM數據幀含有32個(gè)時(shí)隙,每一時(shí)隙中的數據均來(lái)自不同的信道源,本模塊要將復用在一路的TDM數據恢復出32
路。TDM數據的每個(gè)時(shí)隙含8個(gè)bit,而Wishbone總線(xiàn)的數據位寬是32位,因此需要四幀的TDM數據才能拼接成一路完整32位寬數據。相鄰時(shí)隙數據由于來(lái)自不同信道源,暫存在FIFO中的地址不能相鄰,前一時(shí)隙中數據和后一時(shí)隙中數據在地址空間上相差4(如圖4),這樣從初始地址開(kāi)始,每相鄰四個(gè)地址對應的數據拼接成一路完整的信號,在Wish
bone總線(xiàn)讀取FIFO中數據時(shí)的地址是按順序的。
本文著(zhù)重討論了接收緩存器的設計,發(fā)送緩存器與之類(lèi)似,這里就不再贅述。
Wishbone接口連接TDM控制模塊與Wishbone總線(xiàn),它的主要功能是設計正確的狀態(tài)機產(chǎn)生有效控制信號來(lái)同步數據交換。
驗證與結論
用Verilog語(yǔ)言描述完成TDM控制模塊的設計,并以VoIP語(yǔ)音網(wǎng)關(guān)系統為驗證平臺,利用Candence公司的NC-verilog仿真器進(jìn)行代碼仿真。仿真波形表明,處理器(BC320)對FIFO寫(xiě)滿(mǎn)產(chǎn)生信號標識的反應時(shí)間大約為60個(gè)Wishbone總線(xiàn)時(shí)鐘周期,這一時(shí)間加上
Wishbone總線(xiàn)讀空第一個(gè)FIFO所用時(shí)間后,串行語(yǔ)音數據仍在寫(xiě)進(jìn)另一個(gè)FIFO,Wishbone總線(xiàn)有足夠的空閑等待這個(gè)FIFO寫(xiě)滿(mǎn)標示信號的產(chǎn)生,不會(huì )有任何數據丟失。
VoIP語(yǔ)音網(wǎng)關(guān)系統在型號為Virtex-II Pro FF1152的FPGA開(kāi)發(fā)板上進(jìn)行了硬件驗證,TDM控制模塊外接型號為L(cháng)e88221的SLIC(用戶(hù)線(xiàn)接口電路)芯片作為語(yǔ)音信源,利用
Chipscope在線(xiàn)掃描TDM控制模塊內部、Wishbone總線(xiàn)和處理器(BC320)寄存器的信號變化,并用示波器對SLIC芯片信號進(jìn)行捕捉。從觀(guān)察的信號來(lái)看,所設計的TDM控制模塊能夠與系統的其他IP模塊,尤其是處理器(BC320)和以太網(wǎng)模塊正確有效地協(xié)同工作,模塊的功能達到設計要求。
全球IP通信聯(lián)盟
VoIP:難以抵擋的灰色誘惑 2008-11-03 |
VoIP雙模網(wǎng)關(guān)的研究與系統設計 2008-11-03 |
VoIP解決方案中的處理器選擇 2008-11-03 |
多方阻礙未能影響統一通信平穩發(fā)展 2008-11-03 |
VoWi-Fi的設計挑戰剖析 2008-10-29 |