专用交换机过于强大专业的功能,以及昂贵的价格,并非小型建网的理想选择;同时,传统的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信号。