中自网

热门搜索:plc  工业以太网  变频器  PID  电机  低压  传感器  无线通讯 

当前位置:首页>>应用案例首页>>应用案例>>正文

基于CANopen协议的矿用语音通信系统研究

发布日期:2016-04-12   浏览次数:37920
分享到:
【摘   要】: 1 引言 现场总线的研究与应用早已成为工业数据总线领域的热点,CAN 总线作为一种技术先进、可靠性高、功能完善、成本合理的远程

    1 引言


    现场总线的研究与应用早已成为工业数据总线领域的热点,CAN 总线作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,已被广泛应用到自动化控制系统中。由于CAN 本身并非一个完整的协议,因而进行高效率的通讯还需要进一步开发高层协议,而CANopen 协议就是建立在CAN 协议物理层和数据链路层基础上的标准化应用层协议,其采用面向对象的思想设计,具有很好的模块特性和很高的适应性,且精练透明、易于开发。本文围绕由微控制器PIC18F458和语音处理芯片AMBE-1000 构成的语音通信系统研究了CANopen 协议在基于CAN 总线的语音通信系统中的应用情况。


    2 语音通信系统的硬件设计


    2.1 系统原理


    系统由上位机,网关,节点,中继等组成,利用已有的CAN 总线实现实时语音和监控数据的传输。通信过程为:语音数据通过麦克采集输入后经A /D 转换变成数字信号,而语音处理模块AMBE-1000 对数字信号压缩编码后传送给本地微处理器PIC18F458, 然后微处理器通过CAN 收发器将收到的数据经CAN 总线送给远方微处理器。相应的,远方微处理器对收到的数据经过上述步骤的反向处理最终还原为语音信号并由喇叭播放。当没有语音信号需要处理传输时,系统自动开启MP3 功能播放背景音乐。


    2.2 信道接口设计


    微控制器采用Microchip 公司的PIC18Fxxx 系列芯片,其内含有A/D、内部EEPROM 存储器、CAN 控制器、SPI 接口、FLASH 程序存储器读/写等强大功能。


    语音处理模块采用Digital Voice Systems 公司推出的语音压缩/ 解压芯片AMBE-1000,其压缩率可在2.4kbps-9.6kbps 范围内由软件调节,且具有FEC(前向纠错)、VAD(语音激活检测)功能和DTMF 信号检测功能。


    AMBE-1000 与微控制器PIC18F458 进行通信的信道接口为串行SPI 接口,有两种工作模式:主动模式和被动模式。本系统定义AMBE-1000 的引脚CH_SEL1~CHSEL0 将AMBE-1000 设置为串行被动模式,串口存在于帧格式下,通过模拟标准SPI 通信时序实现数据包的传输。


    3 CANopen 协议的实现


    在系统中,选取网关为主节点,其它节点为从节点。主节点除了具有启动/停止网络、检查网络工作状态等功能外,还定义了网络设备的标识符和访问对象字典入口。


    3.1 标识符的分配


    主节点通过上位机发出的标识符字来改变从节点的状态。在CANopen 协议应用层,设备之间交换的是通讯对象(COB),它们被映射到带有标识符(ID)的CAN 帧中,然后在数据链路层上传输。


    在CAN 标识符缺省的默认值分配方案中,COB-ID 有11 位,由4 位Function Code 和7位Node-ID 组成,Function Code 已经确定,网络中不同的Node-ID 就决定了COB-ID 编码。


    在本设计中,井下节点以分组形式存在,每小组节点数不超过14 个(0 不可用,1 为主节点的Node-ID)上位机与井下节点通话分为广播、组播、点播,分组数不超过3 个。同时考虑到PIC18F458 的缓冲器结构,节点的号定义为:0x01-0x03,节点的组内节点号0x02-0x0F,各节点Node-ID 分配如表1 所示。


    11 位COB-ID 中,高四位为功能码,语音模式时标识id6 位为0 ,MP3 模式时标识符id6位为1,id4-id5 位为小组号,id0-id3 位为每一小组内的节点号。通过对11 位中低4 位验收屏蔽滤波器进行屏蔽,对高7 位进行滤波实现广播、组播、点播等功能。语音模式下,广播时使用PIC18F458 的验收滤波寄存器2,组播和点播时使用验收滤波寄存器3;Mp3 模式下,广播时使用PIC18F458 的验收滤波寄存器4,组播和点播时使用验收滤波寄存器5。


    3.2 对象字典的建立和变量的传输


    CANopen 协议网络中每个节点都有一个对象字典,它包含了描述这个设备和网络行为的所有参数。下面以主节点对象字典的建立为例说明对象字典的建立方法。


    每个PDO 都对应一个通信对象和一个映射对象;本系统中存放第一个发送PDO 通信参数的对象为0X1800,存放该PDO 影射参数的对象为0X1A00。其中对象0X2000子索引0x01 处存放语音模式下广播变中的数据量,以下的变量类同;首先通过读取1800H中的通讯模式,然后,读取0X2000 中的数据帧的具体内容,通讯时,将确定通讯模式的相关信息和具体数据帧的地址信息按CANOpen 的映射规则写入1A00H 中,从而完成PDO 的发送与接收。


    3.3 CANopen 软件实现


    在整个CANopen 网络中,SYNC 报文的优先级最高,因此用它来传送同步信号,保持各节点间的同步,并且用来触发PDO 报文的发送。Time-Stamp 报文的优先级比SYNC 稍低,它用来传送时钟信号,当主站需要各节点校时时,主站通过串口发出校时报文给主节点,然后主节点在全CAN网范围内转发包含时钟信息的Time-Stamp 报文,子节点收到后完成校时。


    广播、组播等数据用PDO 来传送。本系统为了保证PDO 传送数据的快速、实时性,采用事件触发的方式。参数配置数据由于数据量比较大,而且对于实时性的要求不高,所以用优先级比较低而且拥有可以传送大量数据能力的SDO。由于其优先级较低,保证了此类大量数据的传送不抢占实时性要求较高的语音数据的传送。由于节点保护数据只是用来监测CAN节点是否在线正常工作,因此它的实时性要求更低,所以用发送优先级更低的Heart_beat报文来传送。子节点定时的发送Heart_beat 报文,主节点收到后就修改节点保护定时器,如果隔了一定的时间还没有收到某个子节点的Heart_beat 报文则主节点就认为此子节点的工作状态产生了问题。


    本系统CAN 控制器初始化工作流程为:系统上电后,从ROM 中读取配置参数将CAN控制器、各个从节点的ID 地址以及CANopen 通讯对象进行配置,省略了CANopen 中常用的较复杂的使用主节点配置子节点的方式,而使用的是CANopen 协议的预定义连接集;启动后,子节点定时发送心跳报文,告知主节点本子节点已进入工作状态;同时监测主节点发送的同步报文,以确保主节点在工作状态,这样主节点和子节点即可通讯连接。


    1)主节点程序:初始化后,如果中断标志位置位,则转入中断程序,接收上位机发来的PDO 数据。然后,判断上位机命令区分组播、广播等命令类型,再修改存储器中的标识符判定与哪些节点通信,随后读取语音数据并经CAN 总线发送给从节点。


    2)从节点程序:在从节点处如果有通话需求,通过按通通话按钮切换至语音模式,即可经CAN 总线传输语音数据,如无通话需求,则保持MP3 模式继续播放音乐。


    4 测试结果


    测试界面如图5,五个操作按钮与一个grid 控件组成,按钮分别为:语音测试、音乐测试、录音测试、混合测试以及停止测试,grid 控件显示测试结果。测试原理:1.选定测试模式(语音测试、音乐测试、录音测试或者混合测试)2.启动定时器3.定时促发事件:a 根据数据库,利用地址指针自动选择地址b 根据地址类型,进行可,操作的所有操作命令c 对地址指针进行相应的操作4.重复步骤3 直到停止测试为止。


    经以上语音测试, 本系统可以正确切换组播、广播、点播等模式,语音通信及时,且语音的主观听觉效果良好,具有较高的可懂度,符合设计要求。同样,在录音播报模式、音乐模式、混合模式下测试成功。


    5 结语


    经实践证明,采用CANopen 协议的语音通信系统可以在CAN 总线上以极低的语音通信速率(2.4 kbit / s) 进行语音数据传输,能够实现语音的广播、组播、点播、MP3 播放功能,同时CANopen 协议使得节点具有较好的开放性和通用性,可与其他设备组建分布式控制网络,在煤矿信息化系统中有着广泛的应用前景。

 
 
[ 应用案例搜索 ]  [ ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]  [ 返回顶部 ]

0条 [查看全部]  网友评论