<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 汽車(chē)電子 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的數(shù)字交換系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          基于FPGA的數(shù)字交換系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          ——
          作者: 時(shí)間:2007-10-31 來(lái)源:中電網(wǎng) 收藏

            專(zhuān)用交換機(jī)過(guò)于強(qiáng)大專(zhuān)業(yè)的功能,以及昂貴的價(jià)格,并非小型建網(wǎng)的理想選擇;同時(shí),傳統(tǒng)的PBX的模擬交換方式存在著失真大、欠靈活以及隨規(guī)模增大而復(fù)雜度劇增的不足。本文提出的方案,有別于常用PBX的模擬交換,是一種適用于一定規(guī)模局域網(wǎng)的數(shù)字交換機(jī)。的使用在保證了性能提高的同時(shí),在復(fù)雜度和擴(kuò)展性方面也有了明顯的改進(jìn)。

            一 、系統(tǒng)結(jié)構(gòu)

            本系統(tǒng)實(shí)現(xiàn)了帶有16路內(nèi)線電話、同時(shí)具備4路外線接口的數(shù)字交換機(jī),系統(tǒng)結(jié)構(gòu)如圖1。

            

          系統(tǒng)結(jié)構(gòu)

            (1)用戶接口及PCM編碼部分

            用戶接口電路選用IDT公司的821611芯片,該芯片與編碼芯片IDT821034配合良好。用戶線各對(duì)應(yīng)一片821611,四路用戶接入一片821034(可調(diào)增益的四路PCM編碼芯片),最終4片821034的PCM信號(hào)(16路)一起掛接在PCM總線上,送入。要注意的是, 821034采用的類(lèi)似SPI (Serial Peripheral Interface)的串行控制接口,使我們能采用帶SPI的(例如,Analog公司的Aduc812),很方便地實(shí)現(xiàn)對(duì)多片IDT821034的控制。

            (2)外線接口

            外線接口一部分負(fù)責(zé)外線的鈴流檢測(cè)和變壓器(僅通過(guò)語(yǔ)音)接入。鈴流檢測(cè)采用了SGS公司的LS1240。每當(dāng)鈴流進(jìn)入,向送出高電平,從而測(cè)知外線的呼入。另一部分為與內(nèi)線中的SLIC和CODEC類(lèi)似的語(yǔ)音編解碼部分,負(fù)責(zé)將交換后的數(shù)字信號(hào)轉(zhuǎn)為語(yǔ)音送到外線(或者將外線語(yǔ)音及DTMF編碼后送入FPGA)。

            (3) DTMF接收及提示語(yǔ)音產(chǎn)生

            系統(tǒng)中,20路電話(含4路外線)復(fù)用4路DTMF收號(hào)芯片進(jìn)行收號(hào)。FPGA將待收號(hào)話路的PCM信號(hào)送到當(dāng)前空閑的收號(hào)模塊。DTMF的接收由MT8870完成, FPGA與MT8870之間,有一片MT8965(單通道語(yǔ)音編解碼芯片),將FPGA送出數(shù)字信號(hào)轉(zhuǎn)為模擬信號(hào)由MT8870讀取。而交換過(guò)程的提示語(yǔ)音則選用ISD4004(語(yǔ)音錄放芯片,SPI控制),將其語(yǔ)音輸出接在MT8965的語(yǔ)音輸入端,再以PCM的編碼形式送入FPGA。每路DTMF接收和語(yǔ)音送出均為固定時(shí)隙,交換控制在FPGA中完成。

            (4) FPGA

            FPGA作為核心部分,負(fù)責(zé)數(shù)字交換、信號(hào)音產(chǎn)生及控制、收號(hào)控制、提示音控制、外線接口控制、時(shí)鐘產(chǎn)生等功能。為了與外圍器件配合,選用兼容5V接口的FPGA(如Altera的ACEX 1K)。詳細(xì)說(shuō)明在后面給出。

            (5)MCU

            MCU(這里選用Analog公司的Aduc812,具有包括SPI在內(nèi)的的靈活的用戶接口)負(fù)責(zé)整個(gè)系統(tǒng)運(yùn)行過(guò)程的調(diào)度及流程控制。軟件設(shè)計(jì)的一些細(xì)節(jié)也將在后面進(jìn)行說(shuō)明。

            

          軟件設(shè)計(jì)

            二、PGA邏輯設(shè)計(jì)

            系統(tǒng)內(nèi)的PCM信號(hào)(用戶語(yǔ)音、外線語(yǔ)音、提示語(yǔ)音3種語(yǔ)音的PCM編碼信號(hào))需要處理和交換;電話所需的信號(hào)音(撥號(hào)、提示、忙等)需要產(chǎn)生;MCU雖然負(fù)責(zé)整個(gè)系統(tǒng)的配置控制,但它與器件之間還需要控制邏輯;同時(shí),系統(tǒng)還需要特定的時(shí)鐘和定時(shí)信號(hào)。上述的這些功能,都由FPGA來(lái)完成。圖3是FPGA的頂層硬件框圖。

            

          FPGA的頂層硬件框圖

            MCU對(duì)各功能塊的相關(guān)操作均通過(guò)以總線讀寫(xiě)寄存器的方式進(jìn)行。

            (1)總線控制(BUS-TRAN)

            本功能塊將MCU的總線(高8位地址線和低8位數(shù)據(jù)地址復(fù)用線)轉(zhuǎn)換為分開(kāi)的地址與數(shù)據(jù)總線(以BUS表示)。

            (2) SPI片選生成(SPI-/CS)

            圖4中除/SS之外的信號(hào)均由MCU產(chǎn)生,只有/SS信號(hào)需要FPGA提供。通過(guò)對(duì)功能塊內(nèi)寄存器的寫(xiě)操作,生成外圍器件的SPI-/SS信號(hào)。

            

          生成外圍器件

            (3) DTMF收號(hào)(DTMF-REC)

            FPGA與8870有DATA0-DATA3(數(shù)據(jù))、StD(狀態(tài)線)、TOE(片選有效)等6線相連,F(xiàn)PGA在MCU控制下查詢StD狀態(tài),有正脈沖時(shí),通過(guò)TOE使8870輸出有效,再由DATA0-DATA3讀取收號(hào)結(jié)果。同時(shí), 還要產(chǎn)生MT8965的控制線( CA,/F1i, CSTI)以配合收號(hào)和送提示音過(guò)程。

            (4)外線檢測(cè)(EXTERNAL-DET)

            這里只需要對(duì)外線接口送來(lái)的狀態(tài)線進(jìn)行查詢(讀寄存器方式),以測(cè)知是否有外線呼入。

            (5)時(shí)鐘產(chǎn)生(TIMING-GEN)

            將系統(tǒng)時(shí)鐘分頻,得到PCM-FS、 PCM-Clock 、MCLK(For 821034)、OSC(For 8870)、C2i(For 8965)等時(shí)鐘信號(hào)。

            (6)數(shù)字交換(PCM-SWITCH)

            這是邏輯設(shè)計(jì)中的核心部分,其框圖如圖5所示。

            

          框圖

            圖5中INNER指內(nèi)線用戶,EXTERNAL指外線用戶,DTMF指收號(hào)模塊,AUDIO指提示語(yǔ)音模塊。同時(shí),RAM-D用來(lái)存放PCM數(shù)據(jù),RAM-ADD用來(lái)存放控制RAM-D讀出的地址。

            各路PCM信號(hào)在用來(lái)標(biāo)識(shí)時(shí)隙的SLOT-CLOCK上升沿順序?qū)懭雽?duì)應(yīng)的RAM-D內(nèi),RAM的大小均為32



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();