摘 要:本文提出了一种基于FPGA的数字交换机的实现方案。方案中利用FPGA对PCM信号进行处理,在FPGA内实现了话路交换、控制接口、时钟信号与信号音产生等主要功能,大大简化了硬件电路,并且较之传统方案具有明显优越的可扩展性。
关键词:数字交换系统;现场可编程门阵列;设计
专用交换机过于强大专业的功能,以及昂贵的价格,并非小型建网的理想选择;同时,传统的PBX的模拟交换方式存在着失真大、欠灵活以及随规模增大而复杂度剧增的不足。本文提出的方案,有别于常用PBX的模拟交换,是一种适用于一定规模局域网的数字交换机。FPGA的使用在保证了性能提高的同时,在复杂度和扩展性方面也有了明显的改进。
一 、系统结构
本系统实现了带有16路内线电话、同时具备4路外线接口的数字交换机,系统结构如图1。
(1)用户接口及PCM编码部分
用户接口电路选用IDT公司的821611芯片,该芯片与编码芯片IDT821034配合良好。用户线各对应一片821611,四路用户接入一片 821034(可调增益的四路PCM编码芯片),最终4片821034的PCM信号(16路)一起挂接在PCM总线上,送入FPGA。要注意的是, 821034采用的类似SPI (Serial Peripheral Interface)的串行控制接口,使我们能采用带SPI的单片机(例如,Analog公司的Aduc812),很方便地实现对多片IDT821034 的控制。
(2)外线接口
外线接口一部分负责外线的铃流检测和变压器(仅通过语音)接入。铃流检测采用了SGS公司的 LS1240。每当铃流进入,向FPGA送出高电平,从而测知外线的呼入。另一部分为与内线中的SLIC和CODEC类似的语音编****部分,负责将交换后的数字信号转为语音送到外线(或者将外线语音及DTMF编码后送入FPGA)。
(3) DTMF接收及提示语音产生
系统中,20路电话(含4路外线)复用4路DTMF收号芯片进行收号。FPGA将待收号话路的PCM信号送到当前空闲的收号模块。DTMF的接收由 MT8870完成, FPGA与MT8870之间,有一片MT8965(单通道语音编****芯片),将FPGA送出数字信号转为模拟信号由MT8870读取。而交换过程的提示语音则选用ISD4004(语音录放芯片,SPI控制),将其语音输出接在MT8965的语音输入端,再以PCM的编码形式送入FPGA。每路DTMF 接收和语音送出均为固定时隙,交换控制在FPGA中完成。
(4) FPGA
FPGA作为核心部分,负责数字交换、信号音产生及控制、收号控制、提示音控制、外线接口控制、时钟产生等功能。为了与外围器件配合,选用兼容5V接口的FPGA(如Altera的ACEX 1K)。详细说明在后面给出。
(5)MCU
MCU(这里选用Analog公司的Aduc812,具有包括SPI在内的的灵活的用户接口)负责整个系统运行过程的调度及流程控制。软件设计的一些细节也将在后面进行说明。
二、PGA逻辑设计
系统内的PCM信号(用户语音、外线语音、提示语音3种语音的PCM编码信号)需要处理和交换;电话所需的信号音(拨号、提示、忙等)需要产生;MCU虽然负责整个系统的配置控制,但它与器件之间还需要控制逻辑;同时,系统还需要特定的时钟和定时信号。上述的这些功能,都由FPGA来完成。图3是FPGA的顶层硬件框图。
MCU对各功能块的相关操作均通过以总线读写寄存器的方式进行。
(1)总线控制(BUS-TRAN)
本功能块将MCU的总线(高8位地址线和低8位数据地址复用线)转换为分开的地址与数据总线(以BUS表示)。
(2) SPI片选生成(SPI-/CS)
图4中除/SS之外的信号均由MCU产生,只有/SS信号需要FPGA提供。通过对功能块内寄存器的写操作,生成外围器件的SPI-/SS信号。