一种用排队论指导的CAN总线语音通信系统设计*

2013-12-07 06:17但成福刘晓明
电子技术应用 2013年2期
关键词:编解码传输速率通话

但成福,刘晓明

(重庆大学 通信工程学院,重庆 400030)

在工业现场、交通、电力系统等调度环境中,常常需要语音通信监控系统。而大多数语音通信系统由传统的电路交换技术、路由技术及公众交换电话网PSTN实现[1]。传统语音通信系统存在的缺陷有:当节点很多时,所需设置的地址数目就会很庞大,给设计者带来很大的工作量;因元器件种类繁多、电缆数量大,给维护带来繁重的负担;通信模式单一,无法满足多种要求。由德国Bosch公司开发的CAN总线是一种多主机局部网络系统,采用双线串行通信方式工作,广泛应用于汽车自动化、楼宇自控、工业控制等领域。CAN总线具有纠错能力较强、传输距离较远、传输速度快、抗干扰能力强等特点,且价格低廉、布线简单。由CAN总线构成的语音通信系统能很好地适用于工业生产现场,具有较好的实际意义。

本文对应用于工业生产现场的语音通信系统设计了一种全新的方案,利用CAN总线进行数据传输,以ARM9微控制器和DSP处理芯片为核心,完成电话节点的全数字化设计。

1 系统分析

在一个CAN通信系统中,CAN处理报文的过程可以看作为简单的M/M/1排队系统模型[2-3]。设T为一帧数据平均传输延迟,λ为节点数据发生率,μ为CAN总线传输速率,则根据排队论理论可推导出如下关系[4]:

若系统采用扩展CAN帧传输,每帧CAN报文数据场为8 B,则CAN数据帧信息为128 bit。一般地,若每帧CAN报文传输数据字节为 Fn(取值范围为 1,2…,8),则CAN数据帧信息为 64+8×Fn(bit),单个 CAN节点数据发生率λ与语言编码速率Vvoice(kb/s)的关系式为:

将式(2)代入式(1)得:

式(3)表示了CAN系统中语音数据帧平均时延与CAN总线传输速率、语音编码速率以及每帧报文传输数据字节数之间的关系。

(1)取 Fn=8,由式(2)得 λ=2×Vvoice。

对几种常用的语音编码标准进行仿真,其平均时延与CAN速率之间的关系如图1所示。其中纵坐标小于0表示系统超载,没有实际意义,在应用中应当避免这种情况。从图1可看出,以ITU G.723标准为例,其语音压缩速率为6 kb/s、CAN总线传输速率约为 12 kb/s时,语音数据传输平均时延迅速下降,接近 0,即在CAN总线传输速率≥2×Vvoice时,语音数据基本接近无延迟传输,与理论推导的CAN节点数据发生率在误差范围内是等同的。由此可以认为单个CAN节点占用系统最小带宽等于其数据发生率,即:

2 系统设计

在CAN通信系统中,传输距离与传输速率成反比,如表1所示。本设计要求在无中继情况下传输距离不小于250 m,对应选取最大传输速率为250 kb/s。又因为每帧报文传输数据字节越大,语音数据平均延时越小,故本系统设定每帧报文数据字节为8 B。在满足5对节点同时通话的情况下,单个节点占系统带宽最大为250÷(5×2)=25 kb/s。由式(4)可知,语音编码速率应不大于12.5 kb/s。为保证音质,本系统选用低算法时延、高压缩比的ITU G.729A语言编码算法进行语音编解码。

表1 CAN总线传输距离与传输速率的关系

2.1 节点功能描述

图2为单个节点的系统框图。节点的基本信息如CAN速率、本机电话号码等都可以通过串口由PC设置并直接保存到EEPROM。当节点发起呼叫时,系统将通过话筒采集到的语音信号经立体声音频编解码芯片TLV320AIC32采样和量化后形成数字语音信号送至DSP进行压缩编码。MCU接收到DSP的码流后存在SDRAM中开设的CAN数据发送缓冲区,然后进行CAN数据帧组装,最后通过CAN接口模块发送到CAN总线,并在128×64的LCD屏幕上显示相关信息。当某节点被呼叫时,总线上的数据通过CAN接口进行报文帧检测滤波后存入在SDRAM中开设的CAN数据接收缓冲区,并进行响铃提示。MCU解析报文帧,将帧中语音数据送至DSP进行解码,解码流经TLV320AIC32处理(D/A转换、功率放大)后由听筒播出,即可实现语音通信。

2.2 硬件设计

本系统的主控制器采用Atmel公司的工业级ARM9芯片AT91SAM9260,其主频时钟在频率为190 MHz时可达到210 MIPS的性能。用TI公司推出的16 bit定点高速DSP芯片TMS320VC5509A与立体声音频编解码芯片TLV320AIC32共同实现语音编解码算法。TLV320AIC32的编程配置由DSP通过IIC接口实现。数据格式选择DSP模式,其能与DSP的多通道缓冲串口McBSP兼容。此外,这两款芯片的I/O电压兼容,从而使得TMS320VC5509A与TLV320AIC32可以无缝连接。TLV320AIC32接口电路如图3所示,图中,MIC为本地麦克风输入,LINE为电话线输入,可选择采集双、单声道语音。

图4为CAN接口硬件设计原理图。图中,MCP2515为CAN控制器,TJA1050为CAN收发器,其相互间使用高速光耦合器6N137,使总线上各CAN节点间实现电气隔离,以增强总线节点抗干扰能力。每个CAN节点上CANH线和CANL线之间加一个120Ω的匹配电阻,以增加数据传输的抗干扰性和可靠性。CAN总线与CAN收发器之间加上TVS和自恢复保险丝,有效抑制总线上的尖峰脉冲,达到了保护节点的目的。

2.3 软件设计

本系统中的语音编解码部分采用DSP实现,采用成熟的G.729A编解码算法,其在DSP上的移植见参考文献[5-7]。本文主要介绍CAN应用层协议设计[8-9],并分别从ID分配、帧组成、呼叫过程、被叫过程以及系统维护5个方面进行阐述。

2.3.1 ID分配

在ID的设计过程中,按照应用协议将29 bit ID分成不同功能的域,能大大提高系统的性能和效率。29 bit ID分配如下:

ID28~ID25:表示报文帧的优先级,在总线出现竞争时优先传输高优先级的报文帧,可节约总线冲突检测的仲裁时间,提高系统实时性。实际应用时总是将重要岗位的优先级设为最高,使其数据优先得到传输。

ID24~ID18:表示报文携带的指令码,可传输广播、组播、接通、忙音、挂机等多个控制指令。

ID17~ID16:表示分段标志,只在语言数据帧中有意义,控制报文不考虑。

ID15~ID14:预留备用,此域可根据具体情况作相应的变动。

ID13~ID0:表示应用程序中语音通信节点的号码,由组号+组内号码共同组成,约定ID13~ID0=0x0000为广播地址,ID6~ID0=0x00为组播地址。本系统理论上可挂载节点数为(128-1)×(128-1)=16 129个。

2.3.2 帧组成

系统设计中,CAN总线上传输的帧主要分为控制帧和数据帧,以命令码进行区分。控制帧的ID分段标志不用,默认为0,其数据段只填充发起命令帧的节点号码,如图5所示。

图5 控制帧组成

G.729A语音压缩算法的帧长为10 ms,数据量为10 B,而一个CAN帧最大能传输8 B,故需要分两段传输语音压缩数据包。分段标志为1的8 B数据在前,分段标志为2的2 B数据在后。收到的数据帧必须按前后顺序存放,否则解码出来的语音数据将出错。数据帧如图6所示。

2.3.3 呼叫过程

节点呼叫流程如图7所示。呼叫时,呼叫节点将呼叫命令和目的节点的号码分别填入ID,同时将本机号码填入数据域组成呼叫命令帧发送到CAN总线。目的节点收到呼叫帧后,以同样的帧格式(此时命令为应答命令)返回一个应答帧,并做好语音通信准备,同时在LCD上显示相关信息。在通话中主动挂机的节点发送挂机命令帧,释放连接,结束通话。

图6 数据帧组成

图7 呼叫流程

2.3.4 被叫过程

系统节点被动呼叫处理流程如图8所示。若节点在通话过程中收到呼叫帧,则向主动呼叫节点返回一个带忙命令的应答帧;否则返回一个带应答命令的应答帧,与呼叫节点建立通信。在通话过程中若是主动挂机或收到对方的挂机命令帧,则结束本次通话。

2.3.5 系统维护

图8 被叫流程

在一般的主从式网络结构中,网络的维护都靠主机节点来完成,当网络中节点数目增加时,这种方式将极大增加主机节点的负荷。本系统网络的维护依靠节点自身完成。如图9所示,节点定期向总线广播一个检测帧报文,总线上除此检测节点以外的任何节点收到此报文后,将回复一个ACK报文。若在一定时间内没有收到ACK报文,则节点判断自己与总线断开了连接,通过重启CAN接口与总线重新建立连接。若重启后还是不能建立连接则进行语音报警提示。

3 测试

CAN卡能捕获CAN总线上的全部信息,并给出时间标识,用以对网络的稳定性和实时性进行分析。利用4个节点组成一个小型测试网络,其中:节点号为1、2的节点属于同一组内的不同节点,节点号为3、4的节点为另一组内的节点。分别进行广播、组播、点对点通话测试,测试时通话质量较好,语音较清晰。两个CAN卡分别接到正在通话的两个节点,进行10次测试,相关测试数据如表2所示。

图9 网络节点维护过程

从表2可看出,每次测试中两节点收发消息帧的数据差都很小,丢帧数不到0.2‰。其中单点5测试是在另外两个节点通话的过程中完成的,故相应的时延比其他单点测试的长,组播整体时延较单点时延长,较广播时延短。但都在可以接受的范围内,不影响语音通话的质量。

本文在排队论的基础上对基于CAN总线的语音通信系统进行了仿真分析,得出了每帧传输数据字节越多语音数据帧平均延时越小的结论。同时,推导出了基于CAN总线的语音通信系统中,CAN节点占用系统带宽与节点语音码率之间的一般关系式,并根据此关系式确定了系统的编码方案以及系统容量。由于CAN总线主要工作在数据链路层和物理层,本文重点从ID分配、帧组成、呼叫过程、被叫过程以及系统维护5个方面介绍了本系统的CAN应用层协议设计。测试结果表明,本系统稳定可靠,无丢帧现象,无明显语音延迟,能正常通信。本语音系统已在某大型工矿车间得到了应用。

表2 相关测试数据

[1]廖泉.基于CAN总线的语音通信系统[D].北京:北方工业大学,2006.

[2]任培,周经伦,罗鹏程.基于排队论的数据链系统信息传输时间延迟分析[J].计算机科学,2008,35(8):93-94.

[3]解争龙,李向军.基于排队论模型的网络拥塞率研究[J].计算机工程与设计,2007,28(17):4172-4174.

[4]崔连成,王满意,李彦玮,等.基于排队论的CAN总线语音通信系统建模分析[J].工矿自动化,2009,35(7):69-71.

[5]王伟,王伟达,郭恒业.G_729A语音压缩算法分析及DSP实现[J].计算机工程与应用,2007,43(8):99-102.

[6]周长林,肖赣峰,王玉东.基于 DSP的 G_729A编解码的实时实现[J].仪器仪表学报,2007,28(10):1911-1915.

[7]邓红德,王博栋,吴佳楠.基于 CAN总线的双DSP通信方案设计与实现[J].测控技术,2011,30(6):83-85.

[8]BOSCH R.CAN specification version2.0[EB/OL].(1991-10-10).http://www.bosch.com.

[9]王邦继,刘庆想,李相强,等.CAN总线应用层协议的研究与实现[J].计算机工程与应用,2011,47(20):14-16.

猜你喜欢
编解码传输速率通话
三星利用5G毫米波 实现创纪录传输速率
1553B总线控制器编解码设计
为多重编解码世界做好准备
大型民机试飞遥测视频编解码方法研究
《戊戌元日与友人通话》
跨山通信中频段选择与传输速率的分析
数据传输速率
2013年11月通信业主要指标完成情况(一)
2G/3G网络IP化语音编解码协商策略部署研究
2013年3月通信业主要指标完成情况(一)