摘 要:为了满足应急通信系统中车载调度机稳定可靠的中继通信要求,提出了一种基于CPC5621芯片的环路中继电路设计方案。介绍了此设计在车载调度机中的典型应用,对CPC5621芯片的功能作了说明,给出了系统设计的硬件结构,分模块描述了利用CPC5621实现环路中继电路的方法,详细讲解了语音及信令的处理流程,并对系统软件设计进行了分析,给出了软件的处理流程。经过测试及应用,证明利用CPC5621芯片设计的环路中继完全达到了稳定、可靠的指标要求。
关键词:应急通信系统; CPC5621芯片; 环路中继;C8051F020; IDT82V1054
当前环境下,突发及应急事件日益增多。能够在现场进行可靠、稳定的应急指挥通信非常重要。车载通信调度机在应急通信车中的使用使通信调度两位一体,满足了应急通信灵活、快速、机动的要求。本文所设计的使用CPC5621芯片完成的模拟环路启动单元为车载调度机在条件受限的情况下实现方便快捷的通信联网提供了保证。
1 系统硬件
1.1 环路中继的应用
环路中继是电路交换机中一种常用的模拟中继方式,示意图如图1所示。它能模拟与其连接的用户接口的摘/挂机动作,就像对端交换机的用户接口连接一部电话在摘/挂机一样。这种方式实现方便,连接可靠。环路中继接口在用户侧和中继侧均为两线实线连接,用于话务量较小的交换机之间互联,可以完成出入局的双向呼叫等功能。典型的应用如图2所示。
1.2 CPC5621芯片功能分析
CPC5621是一款通信中继接口芯片, 支持5 V和3.3 V两种电压模式,对外接口可以分为线路侧和处理器侧。线路侧提供连接PSTN网络两线接口的各种功能;处理器侧连接微处理器,接受控制,上报状态,并提供音频接口。同时还具有以下功能:
(1)二四线变换:通过二四线混合电路,将两线信号变换为差分音频线对。内置的光学隔离栅将线路侧和主机侧屏蔽隔开,为用户提供低噪声、低失真的音频信号。增强的3 000 Vrms隔离电压也进一步增强了设备的浪涌抗扰度。
(2)振铃检测:PSTN网络环境下,用户线间电压在待机状态下约为52 V,振铃信号为90 V、25 Hz的正弦交流信号,两者叠加形成高压,内置的高压隔离栅可以对此高压进行隔离处理。当有入局呼叫时,振铃信号经过高压隔离栅后,在RING引脚输出一个同频率间断的TTL电平信号。通过微处理器的I/O引脚,软件就可以通过检测引脚上的信号频率实现检测振铃信号及检测入局呼叫的目的。
(3)摘/挂机控制:交换机是通过线路上的环流大小来判断用户电话机的摘/挂机状态的。挂机状态下,电路上的电流接近0; 而摘机状态下, 线路上的电流约为30 mA(可调)。利用三极管CPC5602的开关特性,通过改变CPC5621的OH引脚电平控制三极管CPC5602的通断,以此改变线路中的环流,达到模拟话机的摘/挂机动作的目的。具体描述为:当CPC5621的OH引脚被控制输入高电平时,CPC5602截止,回路电流很小,设备被判断处于挂机状态;反之,当CPC5621的OH引脚被控制输入低电平时,CPC5602导通,此时流过CPC5602的电流超过30 mA,设备被判断处于摘机状态[1]。
(4)环流调整:CPC5621还提供可编程设置的恒流源作为环路负载,通过改变负载电阻来改变环路电流的大小,解决由于线路远近而影响环流大小的问题,提高摘挂机检测的稳定性及可靠性。
(5)来电显示及挂机传输:CPC5621采用了高阻信号通道,在挂机状态下,电路会自动切换到该通道,以实现挂机状态下的音频信号传输。该通道具有极小的失真度, 可以在挂机状态下可靠地检测DTMF 信号及FSK 信号。
1.3 系统功能分析及硬件结构
环路中继单元是车载调度机的重要部件,通过同步TBUS总线与总控单元连接,上报本单元状态并接受总控单元的控制。
每通道定义控制字8 bit,状态字8 bit,如表1所示。
环路中继定义的呼叫进程是:当有入局呼叫时,硬件检测铃流,状态字上报给总控单元;总控单元收到有入局呼叫的消息后,向环路中继发送控制字,让其模拟话机摘机动作,用户电路切断铃流,上报端口占用状态;如果为出局呼叫,总控单元控制模拟环路进行摘机服务请求,环路中继单元上报端口占用状态;当模拟环路完成呼叫,CPU控制其挂机时,终止呼叫连接。
基于以上的分析,设计环路中继单元如图3所示。
本系统主要包含CPC5621接口芯片1~8,IDT82V1054CODEC芯片A和B,C8051F020 CPU以及Altera CPLD。
整个系统需要处理的内容分为语音及消息两部分,而语音和消息都有上行及下行两个方向。CPLD由FPGA语言编程,通过TBUS总线连接背板,负责在总线上装卸对总控单元的音频及消息。
双向音频总线进入CPLD,经过CPLD调整使系统的TBUS和CODEC编程设置的PCM BUS可以直接匹配对接,即CODEC可以直接从CPLD输出的PCM总线需要的时隙卸载音频数据,也可以将收到的PCM数据直接装载到PCM总线对应的时隙上去,实现语音双向贯通的目标。至于CODEC的双向模拟音频,直接连接CPC5621接口芯片就可以了[2]。
对应总控单元的消息处理是由C8051F020 CPU通过A/D总线定时扫瞄访问CPLD内的TBUS总线消息区来实现的,CPLD内部对上行和下行消息分别开辟了一块双端口RAM,用于存放消息,CPU定时读取,经过去抖后进行分析。
对CPC5621的控制是通过4路CODEC IDT82V1054的I/O端口编程来实现的。每个IDT82V1054有4组I/O端口,可以控制连接4个CPC5621。而每组I/O端口分为两个输入SI1、SI2,两个输出SO1、SO2以及3个双向端口SB1、SB2、SB3。这些I/O端口可以通过内部寄存器进行功能设定。 IDT82V1054的SI1、SI2带有去抖功能,把CPC5621的振铃检测输出和环流检测输出分别连接到此,SI1对应/RING_DEC,SI2对应L_CUR。CODEC的输出SO1对应摘挂机控制/OFFHOOK,SO2对应挂机接收的CID控制。
CODEC IDT82V1054支持MPI串行总线接入,故把两个CODEC全都挂接在MPI总线上。C8051F020 CPU通过MPI总线来访问每一个环路端口的状态以及端口控制。
为了使系统工作更加稳定,C8051F020 CPU设计工作在4 MHz时钟下,程序存储利用CPU自带的64 KB的Flash,数据存储区除了片内的4 KB的RAM以外,将CPU通过A/D总线访问的CPLD划分到外部RAM区域。中断设计为两个外部中断源INT0和INT1,当CPC5621有振铃检测及成环等消息时,IDT82V1054通过中断INT0通知C8051F020 CPU;而INT1设计为软件定时中断,作为程序事件的驱动,定时扫描总控单元的控制消息[3-6]。
另外,CPC5621内部的高压栅隔离电路会使得音频信号的复制被消弱到200 mV左右,为保证正确检测音频信号,对信号进行整形之前先进行了放大,通过隔直电容后,取出交流信号。同时在电路中增加积分电路来消除高频干扰,最后进入电压比较器LM331,将信号音整形为TTL电平。
2 软件设计
本设计中使用Keil编程工具,采用C语言编程。具体流程如图4所示,软件总体分为以下几个部分:
(1)单片机初始化部分:系统上电后,要使硬件进入一个起始状态,重新设定系统时钟,初始化CPU各个端口的状态、定时器、中断、指针等。
(2)SPI总线处理部分:配置C8051F020的交叉开关寄存器XBR0、XBR1、XB2,务必使能交叉开关,使其工作于SPI总线方式,并设置寄存器PnMDOUT,选择端口输出方式。设置寄存器SPI0CKR、SPI0CN、SPI0CFG,使其满足CODEC IDT82V1054的SPI时序要求,通过SPI总线配置CODEC内部寄存器,CODEC内部共有3种寄存器,分别是全局寄存器GREG、局部寄存器LREG和COE-RAM。对应3种寄存器,设置函数对它们进行读写操作,COE-RAM只能进行写操作。分配语音通道,制定CPC5621硬件接口与PCM总线上时隙的对应关系。
(3)主函数: 控制整个软件的进程,具体定义函数来实现采集呼叫信息,初始化所有寄存器,映射RING_DEC、OFFHOOK等消息,调用所有已经定义的函数[3-6]。
利用CPC5621接口芯片设计实现的环路中继单元在应急通信系统中的应用实现了车载调度机的联网指挥功能,且通信稳定可靠。用集成电路替代了原来环路中继单元大量的分立器件,电路结构简洁,软件开发难度低,大大提高了开发效率。
参考文献
[1] 阳素权.嵌入式语音系统设计[D]. 北京:北方工业大学, 2006.
[2] 赵世霞,杨丰,刘揭生.VHDL与微机接口设计[M].北京:清华大学出版社, 2004.
[3] 陈啸宇,刘锦高.基于CPLD的SGPIO总线实现及应用[J].微型机与应用,2013,32(5):22-24.
[4] 王华. 基于C8051F020 MCU的数据采集分析系统的研究[D].成都:四川大学,2007.
[5] 张玮,刘宇,薛志远,等.基于SPI总线的DSP与音频编解码芯片的接口设计[J]. 电子技术应用,2013,39(6):31-33.
[6] 李波,屈均伟.基于C8051F020的标准单元控制单元的设计与实现[J]. 微型电脑应用,2006,22(11):39-42.