摘 要: 基于FPGA的通信卡設(shè)計原理。通信卡實現(xiàn)了4路ISDN U接口、4路RS232串口、2路音頻接口及1路PCI總線之間的通信,該卡以FPGA(現(xiàn)場可編程門陣列)和MPC860為核心進行設(shè)計,利用FPGA的可編程性靈活實現(xiàn)了各接口之間的數(shù)據(jù)通信。本文給出了系統(tǒng)的硬件構(gòu)架,并對串口傳輸功能和數(shù)字交換網(wǎng)絡(luò)功能的FPGA實現(xiàn)進行了分析。
關(guān)鍵詞: 通信卡 FPGA 串口傳輸 數(shù)字交換網(wǎng)絡(luò)
FPGA是20世紀80年代中期以后發(fā)展起來的一種現(xiàn)場可編程的大規(guī)模集成器件,具有高集成、高速度、低功耗、體積小、可靠性高等一系列優(yōu)點,含有豐富的查找表(LUT)資源,允許設(shè)計師在不改變硬件電路板的情況下實現(xiàn)不同的功能[1]。因此,F(xiàn)PGA在數(shù)字電路的設(shè)計中得到了廣泛應(yīng)用。
通信卡采用的FPGA是XILINX的SPARTAN-Ⅱ系列的XC2S50芯片。該芯片具有176個用戶I/O接口、32Kbit的RAM塊及24 576bit的分散RAM等豐富資源。在通信卡中,F(xiàn)PGA芯片實現(xiàn)了串口的透明傳輸和解析傳輸功能、PCI總線的控制功能、4路ISDN U接口數(shù)據(jù)的復(fù)接和分離功能、各接口數(shù)據(jù)間的交換功能等。本文分析了基于FPGA的通信卡的設(shè)計原理,給出了系統(tǒng)的硬件構(gòu)架框圖,并對串口傳輸功能和數(shù)字交換網(wǎng)絡(luò)功能的實現(xiàn)進行了重點分析。
1 設(shè)計介紹
通信卡的硬件構(gòu)架組成框圖如圖1所示。CPU控制模塊采用MPC860小系統(tǒng), MPC860芯片不僅具有普通CPU的運算和處理功能,其外圍還集成了一些控制領(lǐng)域的常用接口,可支持多種協(xié)議,如HDLC/SDLC協(xié)議、UART協(xié)議等;另外,該芯片還具有一個時隙分配器,可支持T1、CEPT、PCM公共模塊和ISDN的基本速率的傳輸[2]。本設(shè)計中傳輸?shù)耐ǖ佬盘柌捎肐SDN的基本速率,CPU信號由地址信號、數(shù)據(jù)信號和控制信號三部分組成,實現(xiàn)對通信卡各芯片的配置及對一些公共資源的分配和管理;PCI總線控制器采用PLX公司生產(chǎn)的PCI通用接口芯片PCI9054實現(xiàn),本設(shè)計中,該芯片在本地總線側(cè)采用M模式,可以與MPC860芯片進行無縫連接;音頻口的編/譯碼器芯片采用TP3067,該芯片實現(xiàn)了模擬音頻信號和PCM數(shù)據(jù)信號的相互轉(zhuǎn)換;在本卡中,RS232串口的最大速率為19.2kb/s;U接口控制器采用MOTOROLA公司的MC145572芯片,該芯片用于綜合業(yè)務(wù)數(shù)字網(wǎng)基本接入接口,即適用于NT(網(wǎng)絡(luò)終端)也適應(yīng)于LT(線路終端)[3]。MC145572可工作于多種不同模式,本文采用的是MCU模式的短幀操作模式,接口數(shù)據(jù)為MOTOROLA的IDL型時分2B(B通道數(shù)據(jù)為64Kb/s)+D(D通道數(shù)據(jù)為16Kb/s)數(shù)據(jù)接口,通信卡的四個ISDN U接口作為NT使用;兩路音頻接口為用戶的語音通信提供接口。
實現(xiàn)圖1所用的FPGA是XILINX的SPARTAN-Ⅱ系列的XC2S50芯片,該芯片負責(zé)通信卡各接口數(shù)據(jù)的控制和相互通信,包括:CPU對PCI總線控制器、串口控制器、U接口控制器等芯片的控制;PCI總線接口與CPU間的數(shù)據(jù)通信;音頻口與U接口間的數(shù)據(jù)通信;RS232串口的透明傳輸方式(串口與串口、串口與U口間的數(shù)據(jù)傳輸)和解析傳輸方式(串口與CPU間的數(shù)據(jù)傳輸)的控制;U接口與CPU的數(shù)據(jù)通信;U接口與串口間的數(shù)據(jù)通信。通信卡各接口間數(shù)據(jù)的交換和通信都由FPGA交換控制模塊的數(shù)字交換網(wǎng)絡(luò)完成,其工作原理圖如圖2所示。圖2中所示的8路64kb/s的HDLC收發(fā)器和4路16kb/s的HDLC收發(fā)器由MPC860芯片提供。本文將對由FPGA實現(xiàn)的串口傳輸功能和數(shù)字交換網(wǎng)絡(luò)功能的實現(xiàn)進行詳細分析。
2 功能實現(xiàn)
本設(shè)計中,F(xiàn)PGA是通信卡功能實現(xiàn)的關(guān)鍵芯片,是各接口數(shù)據(jù)通信的橋梁。下面就FPGA實現(xiàn)的串口傳輸功能(包括串口工作方式,即透明傳輸方式和解析傳輸方式的切換及透明傳輸方式時不同速率數(shù)據(jù)間的轉(zhuǎn)換)及用于各接口數(shù)據(jù)通信的數(shù)字交換網(wǎng)絡(luò)功能的實現(xiàn)進行詳細分析。
2.1 串口傳輸功能的實現(xiàn)
通信卡的串口功能芯片由串口擴展芯片ST16C654和收發(fā)器芯片LTC1387組成,ST16C654可擴展4個串口,串口傳輸功能示意圖見圖3。在通信卡中,串口的數(shù)據(jù)傳輸方式有透明傳輸方式和解析傳輸方式兩種,利用FPGA的可編程性靈活實現(xiàn)了串口傳輸方式的切換。在解析方式下,只需將ST16C654的收發(fā)數(shù)據(jù)線與LTC1387的收發(fā)數(shù)據(jù)線相連,如要使串口1工作在解析模式下,通過FPGA將L_TD1與ST_TD1連接及L_RD1與ST_RD1連接便可;在透傳方式下,由于串口的傳輸速率不定(在本卡中,串口的傳輸速率≤19.2Kb/s),而ISDN U接口一個時隙的傳輸速率為64kb/s,因此,在串口與U口進行數(shù)據(jù)透傳時,需要編寫一個具有速率轉(zhuǎn)換功能的編/解碼器。根據(jù)抽樣原理,對串口輸入的數(shù)據(jù)(速率≤19.2kb/s),用64kb/s(64>19.2×2)速率進行抽樣,根據(jù)抽樣值能準確地確定原信號[4]。本文以如圖3所示的串口1與串口5間的數(shù)據(jù)透傳為例進行說明,其工作過程描述如下:首先,通過CPU控制FPGA,使串口1和串口5工作在透傳模式下,將串口1的L_RD1數(shù)據(jù)線連接到FPGA的編/解碼器,編/解碼器以64Kb/s的速率對串口數(shù)據(jù)進行采樣,并將采樣數(shù)據(jù)放到U接口中的一個B通道的一個時隙上進行傳輸。通過ISDN通道傳輸?shù)搅硪粋的U接口,該U接口將透傳的數(shù)據(jù)送往本地FPGA,并經(jīng)過FPGA編/解碼器后將數(shù)據(jù)送往串口5,這樣便完成了數(shù)據(jù)從串口1到串口5的透傳。同理,可實現(xiàn)數(shù)據(jù)從串口5到串口1的透傳。本設(shè)計串口數(shù)據(jù)的FPGA編/解碼功能的實現(xiàn)采用VHDL語言編寫。編碼時,根據(jù)抽樣原理采用64kb/s速率進行采樣便可;解碼時,只需將FPGA收到的數(shù)據(jù)以64Kb/s速率發(fā)往LTC1387的收數(shù)據(jù)端口即可。其功能實現(xiàn)代碼如下所示。其中CLK2M為2MHz時鐘信號,C64K為與2MHz時鐘信號的下降沿對齊的64kb/s采樣信號,C64K_1n的上升沿與C64K信號的下降沿對齊且其高電平寬度為(1/2M)s,DATA_SR為串口輸入的數(shù)據(jù),DATA_SR_N為串口輸入數(shù)據(jù)的取反,Q為編碼后的數(shù)據(jù),asyn_out為解碼后送給串口的數(shù)據(jù)。







