基于CAN总线的语音节点设计方案
扫描二维码
随时随地手机看文章
文章针对现有的模拟广播系统存在抗干扰能力弱、传输距离短等不足,进行了基于CAN 总线的数字语音通信系统的研究。给出语音通信系统的总体构成,并对节点各模块进行详细设计。核心部分采用内置CAN 控制器PIC18F458 单片机作为控制器,与独立的CAN 收发器CTM8251 构成CAN 收发模块;采用低传输速率和高通话质量的AMBE-1000 芯片作为语音编码器。测试表明,节点间可以实现可靠,语音质量高的实时性通信。
引言
CAN 总线以其短帧、无损仲裁、多主工作方式、干扰能力强而应用于许多工业领域,如汽车行业、煤矿安监系统、智能仪表系统等。基于CAN 总线的数字语音通信系统就是利用CAN 总线的特点而设计的。利用该系统调度室可以在同一时间内通知矿井中的所有工作人员安全撤离,并按照矿井应急预案指挥抢险救灾;井下人员也可以及时与调度室联系,及时通报情况;井下也具有局部通信功能,方便井下人员直接的联系和通报事情。
1 语音通信系统的总体结构
基于 CAN 总线的语音通信系统的整体结构如图1 所示。
图 1 系统总体框架图
该系统由上位机PC、网关节点、语音节点、通信电缆、终端等构成,采用总线型网络、多主访问机制。地面可以通过上位机PC 对网关节点进行操作,实现对井下各个语音节点的任意呼叫(即点播方式)、各个组的语音节点的呼叫(即组播方式)或全部呼叫(即广播方式)功能;井下各个语音节点也可以呼叫网关节点,网关节点将该语音节点的ID 上传给上位机PC;并且井下各个语音节点可与其它同组的语音节点进行组内通话通信。在CAN 总线结构中,节点是可以灵活接入的,这是CAN 总线网络最有优势的地方,同时,由于不分主从,因此,每一个节点都可以接收信息或者在总线空闲的时候发送信息,这是CAN 总线的另外一个比较重要的优势。
2 语音节点硬件电路设计
语音数据通过麦克风输入,经过MAX9814 进行放大,然后送到数模转换模块进行A/D转换,再通过语音处理模块将数据压缩打包传送给微处理器,微处理器通过CAN 收发器将数据传到总线上;总线上的信息通过收发器传送给微处理器,通过微处理器传至语音处理模块,对其解压缩,送到模数转换模块进行D/A 转换,输出模拟信号再经过功放模块进行功率放大送到扬声器,最后由扬声器输出语音信号。
语音节点总体结构如图2所示。
图 2 语音节点总体结构图
2.1 处理器模块
处理器模块是语音通信节点的计算核心,所有的设备控制、任务调度、能量计算和功能协调、通信协议、数据整合和数据存储程序都将在这个模块的支持下完成,所以处理器的选择在语音通信节点设计中是至关重要的。本设计采用带有CAN 控制模块的PIC18F458[4]单片机作为微控制器(MCU)以实现对AMBE-1000、CTM8251、 MAX9814、MAX9736 等芯片的操作控制,同时,单片机还需要控制一些按键和指示灯。在语音节点硬件设计中,PIC18F458 与各部分接口电路以及复位电路如图3所示。
图3 PIC18F458 与各部分接口
拨码开关部分电路如图4所示,用来设置语音节点的标识符(ID),ID9-ID0 依次对应拨码开关的10-1,其中拨码开关上的10-6 键为组号,5-1 键为节点号,且拨码开关处于ON 的电平值为“0”,反之为“1”。每个节点根据标识符来判断自己是否需要接收报文。
图4 拨码开关2.2 CAN收发器模块
在实际应用中,PIC18F458 需要接一个CAN 收发器,以提高总线驱动能力。CTM8251是一款带隔离的通用CAN 收发器芯片,该芯片内部集成了所有必需的CAN 隔离及CAN 收、发器件,这些都被集成在不到3 平方厘米的芯片上。芯片的主要功能是将CAN 控制器的逻辑电平转换为CAN 总线的差分电平并且具有DC 2500V 的隔离功能。其接口电路如图5所示。
图 5 CTM8251 接口电路。
2.3 语音处理模块设计
2.3.1 AMBE-1000的主要特点
在语音处理中,编码芯片是核心部分,本设计采用的是AMBE 编码。AMBE-1000 是美国DVSI 公司研制、Lucent 公司生产的一款成熟的双工声码器芯片,用来实现双工的语音压缩/解压缩功能,能实现低传输速率下高质量的通话。它采用先进的AMBE 压缩算法,压缩速率最低可达2.4Kbps。目前这种算法以其能实现的低传输速率和高通话质量而在世界范围内得到了广泛应用,甚至用在下一代移动通信系统中。AMBE-1000 可看成由两个分开的编码器和解码器组成。编码器接收8kHz 的语音数据采样流(如16 位线性的,8 位A 律的或8 位μ 律的)和输出一个期望的波特率的信道数据流。反之,解码器接收一个信道数据流并合成一个语音数据流。AMBE-1000 的编码器和解码器的接口时序是完全异步的[5]。压缩数据从编码器出来要通过一个接口送到解码器,该接口就是信道接口。基本的信道接口包括串口和并口,管脚CH_SEL[2-0]的配置将决定使用哪种接口。串口和并口都能工作于主动模式和被动模式。主动和被动是指激励信号是由本芯片给出,还是由外部模块送入。
2.3.2 AMBE-1000 与处理器模块接口电路
串行模式下AMBE-1000 通过CHS_DI 和CHS_DO 输入、输出16 位的数据字。声码器AMBE-1000 工作在被动模式,与控制器之间采用串行方式传送数据,两者之间接口如图6 所示。
图6 AMBE-1000 与控制器接口
AMBE-1000 中语音编码率和前向纠错编码率的选择可以是独立的。这些码率可以通过命令帧的方法配置,也可以通过硬件管脚BPS_SEL[3-0](pin 3,4,5,6)来配置。本设计中设定AMBE-1000 的语音编码率为2.4Kbps,故管脚BPS_SEL[3-0]均通过电阻接地。
2.3.3 语音 A/D、D/A 模块设计
对于一个高质量的语音通信系统,A/D-D/A 芯片的选择至关重要。在选择A/D-D/A 芯片时,需要考虑这些芯片的信噪比和滤波性能。一般应优先考虑那些16位线性A/D-D/A芯片,以获得较高的语音质量。对于任何一种与之相连接的A/D-D/A 芯片, AMBE-1000 都采用8kHz 语音数据采样率。这些8 kHz 数据通过串行接口输入(或者输出)到AMBE-1000,可以通过软件(发送命令帧)或者硬件方式,进行A/D-D/A 接口的选择和配置。本系统采用的A/D-D/A 芯片是CSP1027,这是一款带有16 位串行A/D 和D/A 的芯片,符合CCITT G.712语音频带响应和信噪比规范,其采样频率可高达24KHz,它采用低功耗全静态逻辑设计,在数字电源3.3V、模拟电源5V 工作时,典型功耗68mW,待机功耗0.05mW。
CSP1027 与AMBE-1000 之间采用串行工作方式,二者的接口电路如图7所示。经MAX9814 放大后的麦克风语音信号由45 号管脚(MICIN)送入CSP1027 进行A/D 转换,然后经21 号管脚(DO)送入AMBE-1000 进行压缩编码。相反地,AMBE-1000 解码之后的数字语音数据要送入CSP1027 芯片进行D/A转换(TX_DO 与DI相连接),恢复出的模拟语音信号由43 号管脚(AOUTP)输出,并通过此管脚将模拟语音信号送出MAX9736 进行功率放大,最后通过扬声器播放出来。
图 7 CSP1027 与AMBE-1000 的接口
2.3.4 语音采集模块设计
本模块的作用是将麦克风微弱语音信号放大给A/D 转换器。本系统采用了具有自动增益控制(AGC)功能的MIC 放大芯片MAX9814,该芯片是Maxim 推出的低成本、高品质麦克风放大器,器件具有低噪声前端放大器、可变增益放大器(VGA)、输出放大器、麦克风偏置电压发生器和AGC控制电路。
MAX9814 的电路设计如图8所示,麦克风语音信号通过管脚8(MICIN)输入MAX9814芯片,进行语音信号放大,之后从管脚6(MICOUT)输出,输出的信号送到模数转换模块即CSP1027 进行A/D 转换。
图8 MAX9814电路设计图
2.3.5 功放模块设计
由于井下语音节点使用环境比较嘈杂,因此需要配备功放来驱动井下的喇叭,本系统采用的功放芯片为Maxim 的MAX9736,可以工作在8V 至28V,并具有高PSRR,无需稳压电源。MAX9736采用12V供电时效率可达88%。
语音数据经过解码、D/A 转换等恢复为模拟信号。输出的模拟信号要在经过语音模块进行功率放大送到扬声器。该模块电路设计如图9所示。
图9 功放模块电路设计图
3 语音节点软件流程设计
语音节点可以与网关节点和组内其他语音节点进行通信。
当与网关通话按键按下后(Button_Gate=0),打开本地MIC,关闭本地功放,让AMBE-1000 工作,修改发送缓冲器标识符,使仅网关节点能接收到该语音数据,等待编码器编码完毕(EPR=1),从AMBE-1000 中读取编码后的数据,然后将压缩编码后的语音数据发送到CAN 总线上。发送完毕后需要关闭本地MIC,使AMBE-1000 休眠。
当与组内其他节点通话按键按下后(Button_Group=0),工作过程和与网关节点通话过程基本相同,只是发送缓冲器标识符不同。语音节点主程序流程如图10 所示。
当作为接收节点时,将产生CAN 接收中断,然后判断是否为本板数据,若是,则等待解码器空(DPE=1),将数据写入AMBE-1000 解码,并播放语音。语音节点中断服务程序如图11所示。
图 10 语音节点主程序流程
图11 语音节点中断服务程序流程
系统初始化主要包括对I/ O 口初始化、串口初始化和CAN 控制器的初始化等。
4 结语
应用该方法构造的语音通信系统能够在保持良好的语音通信质量的前提下,简化电路,降低功耗,节约成本。