摘 要:本文提出了一種基于FPGA的數(shù)字交換機(jī)的實(shí)現(xiàn)方案。方案中利用FPGA對PCM信號進(jìn)行處理,在FPGA內(nèi)實(shí)現(xiàn)了話路交換、控制接口、時鐘信號與信號音產(chǎn)生等主要功能,大大簡化了硬件電路,并且較之傳統(tǒng)方案具有明顯優(yōu)越的可擴(kuò)展性。
關(guān)鍵詞:數(shù)字交換系統(tǒng);現(xiàn)場可編程門陣列;設(shè)計
專用交換機(jī)過于強(qiáng)大專業(yè)的功能,以及昂貴的價格,并非小型建網(wǎng)的理想選擇;同時,傳統(tǒng)的PBX的模擬交換方式存在著失真大、欠靈活以及隨規(guī)模增大而復(fù)雜度劇增的不足。本文提出的方案,有別于常用PBX的模擬交換,是一種適用于一定規(guī)模局域網(wǎng)的數(shù)字交換機(jī)。FPGA的使用在保證了性能提高的同時,在復(fù)雜度和擴(kuò)展性方面也有了明顯的改進(jìn)。
一 、系統(tǒng)結(jié)構(gòu)
本系統(tǒng)實(shí)現(xiàn)了帶有16路內(nèi)線電話、同時具備4路外線接口的數(shù)字交換機(jī),系統(tǒng)結(jié)構(gòu)如圖1。
(1)用戶接口及PCM編碼部分
用戶接口電路選用IDT公司的821611芯片,該芯片與編碼芯片IDT821034配合良好。用戶線各對應(yīng)一片821611,四路用戶接入一片 821034(可調(diào)增益的四路PCM編碼芯片),最終4片821034的PCM信號(16路)一起掛接在PCM總線上,送入FPGA。要注意的是, 821034采用的類似SPI (Serial Peripheral Interface)的串行控制接口,使我們能采用帶SPI的單片機(jī)(例如,Analog公司的Aduc812),很方便地實(shí)現(xiàn)對多片IDT821034 的控制。
(2)外線接口
外線接口一部分負(fù)責(zé)外線的鈴流檢測和變壓器(僅通過語音)接入。鈴流檢測采用了SGS公司的 LS1240。每當(dāng)鈴流進(jìn)入,向FPGA送出高電平,從而測知外線的呼入。另一部分為與內(nèi)線中的SLIC和CODEC類似的語音編****部分,負(fù)責(zé)將交換后的數(shù)字信號轉(zhuǎn)為語音送到外線(或者將外線語音及DTMF編碼后送入FPGA)。
(3) DTMF接收及提示語音產(chǎn)生
系統(tǒng)中,20路電話(含4路外線)復(fù)用4路DTMF收號芯片進(jìn)行收號。FPGA將待收號話路的PCM信號送到當(dāng)前空閑的收號模塊。DTMF的接收由 MT8870完成, FPGA與MT8870之間,有一片MT8965(單通道語音編****芯片),將FPGA送出數(shù)字信號轉(zhuǎn)為模擬信號由MT8870讀取。而交換過程的提示語音則選用ISD4004(語音錄放芯片,SPI控制),將其語音輸出接在MT8965的語音輸入端,再以PCM的編碼形式送入FPGA。每路DTMF 接收和語音送出均為固定時隙,交換控制在FPGA中完成。
(4) FPGA
FPGA作為核心部分,負(fù)責(zé)數(shù)字交換、信號音產(chǎn)生及控制、收號控制、提示音控制、外線接口控制、時鐘產(chǎn)生等功能。為了與外圍器件配合,選用兼容5V接口的FPGA(如Altera的ACEX 1K)。詳細(xì)說明在后面給出。
(5)MCU
MCU(這里選用Analog公司的Aduc812,具有包括SPI在內(nèi)的的靈活的用戶接口)負(fù)責(zé)整個系統(tǒng)運(yùn)行過程的調(diào)度及流程控制。軟件設(shè)計的一些細(xì)節(jié)也將在后面進(jìn)行說明。
二、PGA邏輯設(shè)計
系統(tǒng)內(nèi)的PCM信號(用戶語音、外線語音、提示語音3種語音的PCM編碼信號)需要處理和交換;電話所需的信號音(撥號、提示、忙等)需要產(chǎn)生;MCU雖然負(fù)責(zé)整個系統(tǒng)的配置控制,但它與器件之間還需要控制邏輯;同時,系統(tǒng)還需要特定的時鐘和定時信號。上述的這些功能,都由FPGA來完成。圖3是FPGA的頂層硬件框圖。
MCU對各功能塊的相關(guān)操作均通過以總線讀寫寄存器的方式進(jìn)行。
(1)總線控制(BUS-TRAN)
本功能塊將MCU的總線(高8位地址線和低8位數(shù)據(jù)地址復(fù)用線)轉(zhuǎn)換為分開的地址與數(shù)據(jù)總線(以BUS表示)。
(2) SPI片選生成(SPI-/CS)
圖4中除/SS之外的信號均由MCU產(chǎn)生,只有/SS信號需要FPGA提供。通過對功能塊內(nèi)寄存器的寫操作,生成外圍器件的SPI-/SS信號。