CAN总线是国际上广泛应用的现场总线之一,其模型结构[2]相对于国际标准化组织开放系统互连模型(OSI)只有三层:物理层、数据链路层和应用层。为了使其应用更加广泛灵活,CAN的国际标准ISO 11898中只规定了物理层和数据链路层标准,没有定义应用层,用户需要根据需求制定具体的应用层协议。目前在多种已成国际标准的应用层协议中CANOpen[3]和DeviceNet[4]使用最为广泛。CANOpen的协议原型是Bosch公司在1993年提出的,它一般用于机械的嵌入式网络中;DeviceNet由Allen-Bradley公司开发,目前在美国和亚洲的工业自动化市场上处于领导地位;国内工控领域使用较为广泛的是周立功公司推出的iCAN[5]。这三种协议标准应用广泛,且便于和其他设备互联,但是对于一些相对简单和独立的控制系统,它们并不适用且过于复杂,某些协议还需要付费使用。
因此针对微波控制领域,定义了一种新的CAN总线应用协议——微波控制协议MWCPro(MicroWave Control Protocol)。
1 MWCPro协议在大阵列磁控管控制系统中的设计
制定CAN总线应用层协议时,需要考虑以下几个方面:报文标识符的设计、多主或主从结构、数据的交换方式以及网络的管理等。
在大阵列磁控管控制系统中,有整体控制、分组控制和单个控制的要求,因此每个磁控管都要有唯一的地址。采用主从式结构,数据的交换方式为主机向从机发送命令,从机返回数据以响应主机命令,从机只可以主动报警。在整个系统中,固定一定数目的从机为一组,属于分布式控制。系统结构如图1所示。
其中G0代表第0组,Gn代表第n组;S0代表第0个从机,Sm代表第m个从机。
1.1 协议介绍
报文ID的设定是应用层协议最主要的部分,它涉及报文的优先权、延时、报文滤波的使用、可能形成的通信结构和标识符使用的效率等。该系统相对简单独立,因此采用CAN 2.0A标准的11位标识符外加两个数据字节作为每帧的ID,如表1所示。
组别号和从机号的组合除去广播所用,共有105种,即整个系统可以有105个节点(主机或从机)。若选择常用的Philips 82C250作为总线收发器,CAN节点数目已基本接近其极限110个。如果需要进一步扩大网络规模,以挂接更多的节点,则可以把标准标志符改为29位的扩展标志符,并利用网控器进行扩展[6]。
1.2 协议设计
磁控管控制系统的功能需求包括:首先确定通信和工作都正常的微波源的个数以及控制终端之间有无地址冲突;选择全部、分组或者单个微波源启动或停止;实时监测每个微波源的各项参数值,如电流、电压、温度、反射功率以及微波泄漏功率等;运行途中各微波源的值若超出设定的阈值(该阈值可修改),或者微波源本身出现故障(偶然故障或永久性故障),则实时报警,并且系统要采取相应的措施停止相关功能的继续运行。
根据以上功能要求设计了8种命令码:
ORD0:报警帧(数据帧),无广播形式,从机发送主机读取,优先权最高。为实现同时报警,功能码和子功能码中的每一位代表一种报警,即16种报警。
ORD1:轮询在线(远程帧),主机依次发送ORD1命令给各个从机,从机接收后返回一个确认帧,以便主机确认该从机依旧在线。
ORD2:计算通信往返时间(远程帧),在确定所有从机都在线时,计算主机与从机之间一帧数据平均的往返时间。该往返时间将作为判断从机响应是否超时的标准。
ORD3:索要从机数据(数据帧),无广播形式,从机发送主机读取。
ORD4:从机地址冲突检测(远程帧),每个从机都向其所在组的其他从机发送ORD4,其他从机接收到ORD4后将所接收ID中的地址位与自身地址进行比较,若相同则以ORD0命令向主机报告地址冲突,否则无需响应此消息;主机本身不对ORD4进行处理。
ORD5:广播命令(远程帧),开从机。
ORD6:广播命令(远程帧),关从机。
ORD7:修改从机参数(数据帧),无广播形式,主机发送从机执行。
ORD8~ORDF为预留命令码。
2 MWCPro协议在大阵列磁控管控制系统中的实现
2.1 硬件实现
通过对比目前市场上常见的各种芯片,最终选择意法半导体公司的STM32F103VBT6作为主芯片,该芯片为基于ARM Cortex-M3核心的32位控制器,它的突出优点是:内核结构先进、功耗控制优秀、接口丰富、处理速度高、全系列软件与封装高度兼容、性价比高等。
2.2 软件实现
整个系统属于主从控制,除了主动报警,从机只能被动地按主机的要求进行 *** 作。软件部分实现流程如图2。
3 协议应用
实际应用中,共有9个微波发射终端,分为三组,每组三个从机,上位机采用运行WinCE系统的触摸屏。人机界面如图3所示。主要页面有微波控制、实时曲线、温度曲线设置、选项参数、温度记录以及事件记录共六项。在微波监控界面可以看到系统分为手动模式和自动模式,手动模式下可以自主选择需要开启的从机,通过手动开关微波发射终端控制各段炉温;自动模式下默认启动所有处于启用状态的从机,自动启动和停止相关微波发射终端来控制各段炉温处于设定温度范围内。该系统根据材料烧结工艺将炉身分为四个温区:预热段、烧结段1、烧结段2和缓冷段。图3所示系统当前工作在手动模式,启动了预热段A组的1和2号、烧结段I以及烧结段II的所有从机(缓冷段不需要加热)。通过此界面可显示以下6项报警:地址冲突、炉门、冷却水、过流、欠流及超温。
该系统具有以下特点:
(1)采用时间触发与事件触发相结合的方式,将周期的数据请求帧与非周期的报警信息帧分别进行处理,大大提高了系统的灵活性和实时性。在该协议运行过程中,数据传送稳定、报警及时,基本达到设计要求,系统实用可靠。
(2)相比之前的PLC+触摸屏的控制系统,CAN总线的控制方法不仅简单高效,还大大降低了控制系统的成本。
该控制系统采用触摸屏作为上位机,但触摸屏本身不具备CAN接口,这时就需要转换。根据系统需求及低成本、通用性等因素的综合考虑,最终选择利用STM32-
F103VBT6内部的串口作为与触摸屏通信的接口,采用Modbus协议,即在芯片内部实现CAN/RS232的转换,它既能满足系统需求,又不会增加额外的成本,并且大多数单片机都有RS232接口,通用性较强。使用过程中CAN/RS232的内部转换能够满足系统对实时性的要求。
上述触摸屏控制系统在从机数目较多或者单机信息交换量较大的情况下,限于RS232的速率,有可能会造成数据堵塞。解决这个问题可以采用以下途径:采用PC机加CAN/USB或CAN/PCI转换接口代替触摸屏加CAN/RS232,因为RS232的最大传输速率只有115.2 kb/s,而USB2.0的传输速率为480 Mb/s,为RS232的4 266倍;PCI的速率更是可以达到1 064 Mb/s,为RS232的9 457倍。因此这两种途径可以很好地解决数据堵塞问题。同时由于PC机可以直连的从机为110个(CAN总线本身性质的限制),如果要继续扩展,加网控器[6]就可以使挂接的从机数成倍增加。即使是超大矩阵终端系统,采用以上两种方案也完全可以实现实时控制。
基于MWCPro应用层协议的CAN总线控制系统在实际应用中数据传输速度快、配置灵活,整个系统运行稳定。虽然MWCPro协议是针对微波控制领域设计的,但是它的命令码和功能码便于修改,系统容易扩展,所以该协议也可以在其他较为简单独立的控制系统中使用,具有较强的实用性与通用性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)