1引言 现场总线的研究与应用早已成为工业数据总线领域的热点,CAN总线作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,已被广泛应用到自动化控制系统中。由于CAN本身并非一个完整的协议,因而进行高效率的通讯还需要进一步开发高层协议,而CANopen协议就是建立在CAN协议物理层和数据链路层基础上的标准化应用层协议,其采用面向对象的思想设计,具有很好的模块特性和很高的适应性,且精练透明、易于开发。本文围绕由微控制器PIC18F458和语音处理芯片AMBE1000构成的语音通信系统研究了CANopen协议在基于CAN总线的语音通信系统中的应用情况。 2语音通信系统的硬件设计 2。1系统原理 系统由上位机,网关,节点,中继等组成,利用已有的CAN总线实现实时语音和监控数据的传输。通信过程为:语音数据通过麦克采集输入后经AD转换变成数字信号,而语音处理模块AMBE1000对数字信号压缩编码后传送给本地微处理器PIC18F458,然后微处理器通过CAN收发器将收到的数据经CAN总线送给远方微处理器。相应的,远方微处理器对收到的数据经过上述步骤的反向处理最终还原为语音信号并由喇叭播放。当没有语音信号需要处理传输时,系统自动开启MP3功能播放背景音乐。 2。2信道接口设计 微控制器采用Microchip公司的PIC18Fxxx系列芯片,其内含有AD、内部EEPROM存储器、CAN控制器、SPI接口、FLASH程序存储器读写等强大功能。AMBE1000与微控制器PIC18F458进行通信的信道接口为串行SPI接口,有两种工作模式:主动模式和被动模式。本系统定义AMBE1000的引脚CHSEL1CHSEL0将AMBE1000设置为串行被动模式,串口存在于帧格式下,通过模拟标准SPI通信时序实现数据包的传输。 3CANopen协议的实现 在系统中,选取网关为主节点,其它节点为从节点。主节点除了具有启动停止网络、检查网络工作状态等功能外,还定义了网络设备的标识符和访问对象字典入口。 3。1标识符的分配 主节点通过上位机发出的标识符字来改变从节点的状态。在CANopen协议应用层,设备之间交换的是通讯对象(COB),它们被映射到带有标识符(ID)的CAN帧中,然后在数据链路层上传输。 在CAN标识符缺省的默认值分配方案中,COBID有11位,由4位FunctionCode和7位NodeID组成,FunctionCode已经确定,网络中不同的NodeID就决定了COBID编码。11位COBID中,高四位为功能码,语音模式时标识id6位为0,MP3模式时标识符id6位为1,id4id5位为小组号,id0id3位为每一小组内的节点号。通过对11位中低4位验收屏蔽滤波器进行屏蔽,对高7位进行滤波实现广播、组播、点播等功能。语音模式下,广播时使用PIC18F458的验收滤波寄存器2,组播和点播时使用验收滤波寄存器3;Mp3模式下,广播时使用PIC18F458的验收滤波寄存器4,组播和点播时使用验收滤波寄存器5。 3。2对象字典的建立和变量的传输 CANopen协议网络中每个节点都有一个对象字典,它包含了描述这个设备和网络行为的所有参数。下面以主节点对象字典的建立为例说明对象字典的建立方法。 3。3CANopen软件实现 在整个CANopen网络中,SYNC报文的优先级最高,因此用它来传送同步信号,保持各节点间的同步,并且用来触发PDO报文的发送。TimeStamp报文的优先级比SYNC稍低,它用来传送时钟信号,当主站需要各节点校时时,主站通过串口发出校时报文给主节点,然后主节点在全CAN网范围内转发包含时钟信息的TimeStamp报文,子节点收到后完成校时。 广播、组播等数据用PDO来传送。本系统为了保证PDO传送数据的快速、实时性,采用事件触发的方式。参数配置数据由于数据量比较大,而且对于实时性的要求不高,所以用优先级比较低而且拥有可以传送大量数据能力的SDO。由于其优先级较低,保证了此类大量数据的传送不抢占实时性要求较高的语音数据的传送。由于节点保护数据只是用来监测CAN节点是否在线正常工作,因此它的实时性要求更低,所以用发送优先级更低的Heartbeat报文来传送。子节点定时的发送Heartbeat报文,主节点收到后就修改节点保护定时器,如果隔了一定的时间还没有收到某个子节点的Heartbeat报文则主节点就认为此子节点的工作状态产生了问题。 本系统CAN控制器初始化工作流程为:系统上电后,从ROM中读取配置参数将CAN控制器、各个从节点的ID地址以及CANopen通讯对象进行配置,省略了CANopen中常用的较复杂的使用主节点配置子节点的方式,而使用的是CANopen协议的预定义连接集;启动后,子节点定时发送心跳报文,告知主节点本子节点已进入工作状态;同时监测主节点发送的同步报文,以确保主节点在工作状态,这样主节点和子节点即可通讯连接。 1)主节点程序:初始化后,如果中断标志位置位,则转入中断程序,接收上位机发来的PDO数据。然后,判断上位机命令区分组播、广播等命令类型,再修改存储器中的标识符判定与哪些节点通信,随后读取语音数据并经CAN总线发送给从节点。 2)从节点程序:在从节点处如果有通话需求,通过按通通话按钮切换至语音模式,即可经CAN总线传输语音数据,如无通话需求,则保持MP3模式继续播放音乐。 4测试结果 经以上语音测试,本系统可以正确切换组播、广播、点播等模式,语音通信及时,且语音的主观听觉效果良好,具有较高的可懂度,符合设计要求。同样,在录音播报模式、音乐模式、混合模式下测试成功。 5结语 经实践证明,采用CANopen协议的语音通信系统可以在CAN总线上以极低的语音通信速率(2。4kbits)进行语音数据传输,能够实现语音的广播、组播、点播、MP3播放功能,同时CANopen协议使得节点具有较好的开放性和通用性,可与其他设备组建分布式控制网络,在煤矿信息化系统中有着广泛的应用前景。