用VB编写CAN总线以太网通讯协议
2012-02-15韩立立
韩立立
(中国石油大学 理学院实验中心,山东 青岛266580)
0 引言
随着计算机、网络技术、软件工程、自动控制等多个高新技术的发展,越来越多的工业现场情况需要用计算机实现对CAN设备的监控。当CAN设备没有通讯协议时,就需要编写符合CAN总线传输的通讯协议。
文中将着重阐述该系统通讯方法的实现。由于计算机不能直接发送数据到CAN总线上去,必须经过CAN-以太网网关或CAN-232串口服务器转换才能实现。
1 通讯介绍
控制器局域网络(CAN,Control Area Network),它最初是由德国的 BOSCH公司为汽车监测、控制系统而设计的。目前,CAN总线是唯一已成为国际标准的,被公认为是几种最有前途的现场总线之一。
CAN具有下列主要特性[1]:单根双绞线最远传输距离10km/5kb/s,最高传输速率1Mb/s/40m。非破坏性总线仲裁技术,采用干扰概率低的短帧结构多地址传送; CAN可与输入输出设备、单片机、控制器、收发器等多种设备配合使用。全系统数据兼容性;错误检测和出错信息自动判别、自动重发、自动脱离。
在总线中传送的报文,每帧由7 部分组成,详细说明如下:
1)00:A 口(一般CAN-以太网网关有1-4个CAN端口)收到的数据,0-3 对应A-D 4个CAN 端口,为报文接收到的第1个字节。
2)10 00 00 00:接收到的CAN ID(CAN ID 为1,低位字节在前,高位在后)。
3)08:此CAN 数据包中的CAN 数据区长度(最大8 个字节)。
4)01 02 03 04 05 06 07 08:8 个字节的CAN数据区数据。
5)01:1 为扩展帧(CAN2.0B)格式,0 为标准帧(CAN2.0A)。
6)00:远程传输位,0-非RTR 数据包,1-为RTR数据包。
7)00 00 00 00:保留的4 个数据字节,为报文接收的最后字节。
CAN协议支持两种报文格式,其唯一的不同是标识符(ID)长度不同,标准格式为11 位,扩展格式为29 位。……
