基于FPGA的数字交换系统的设计与实现
发布时间:2008/5/28 0:00:00 访问次数:344
一 、系统结构
本系统实现了带有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信号。
(3) dtmf收号(dtmf-rec)
fpga与8870有data0-data3(数据)、std(状态线)、toe(片选有效)等6线相连,fpga在mcu控制下查询std状态,有正脉冲时,通过toe使8870输出有效,再由data0-data3读取收号结果。同时, 还要产生mt8965的控制线( ca,/f1i, csti)以配合收号和送提示音过程。
(4)外线检测(external-det)
这里只需要对外线接口送来的状态线进行查询(读寄存器方式),以测知是否有外线呼入。
(5)时钟产生(timing-gen)
将系统时钟分频,得到pcm-fs、 pcm-clock 、mclk(for 821034)、osc(for 8870)、c2i(for 8965)等时钟信号。
(6)数字交换(pcm-switch)
这是逻辑设计中的核心部分,其框图如图5所示。
图5中inner指内线用户,external指外线用户,dtm
一 、系统结构
本系统实现了带有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信号。
(3) dtmf收号(dtmf-rec)
fpga与8870有data0-data3(数据)、std(状态线)、toe(片选有效)等6线相连,fpga在mcu控制下查询std状态,有正脉冲时,通过toe使8870输出有效,再由data0-data3读取收号结果。同时, 还要产生mt8965的控制线( ca,/f1i, csti)以配合收号和送提示音过程。
(4)外线检测(external-det)
这里只需要对外线接口送来的状态线进行查询(读寄存器方式),以测知是否有外线呼入。
(5)时钟产生(timing-gen)
将系统时钟分频,得到pcm-fs、 pcm-clock 、mclk(for 821034)、osc(for 8870)、c2i(for 8965)等时钟信号。
(6)数字交换(pcm-switch)
这是逻辑设计中的核心部分,其框图如图5所示。
图5中inner指内线用户,external指外线用户,dtm
上一篇:片上系统芯片设计与静态时序分析