现场总线(field bus)是用于过程自动化和制造自动化最底层的现场设备或现场仪表互联的通信网络,是现场通信网络与控制系统的集成。
目前世界上开发出了40多种现场总线,其中CAN总线因其具有实时性强、可靠性高、抗干扰性强、通信方式灵活、非破坏性的访问方式和开发简单、廉价等独特之处,适合于汽车检测线中应用。基于CAN总线的汽车检测控制系统可以解决现有RS232、RS485等通信系统的传输速率慢,出现乱码等缺点,可以提高数据传输的实时性和可靠性,而且创建与汽车中微电脑通信的平台,以解决汽车与检测互通信息的前瞻问题。
1、基于现场总线技术的汽车检测线开发设计
1.1 汽车检测线测控系统整体设计
汽车检测站计算机网络系统由现场总线网络和数据处理网络组成,两者通过1台NT服务器进行连接。现场总线网络以CAN总线技术为核心,采用总线型网络拓扑结构,而数据处理网络均采用星型网络拓扑结构,汽车检测线总体结构如图1所示。
图1 基于CAN总线的汽车检测线总体结构图
数据处理网络中,每个工位机的信息及车辆信息都可通过网络进行资源共享,完成打印报表、财务报表和数据统计等各项任务。
在现场总线网络检测系统中,测控计算机和工位机之间都由CAN总线接口卡连接。测控计算机主要完成每个工位的初始化工作和对通信参数的设定,工位机接收汽车检测仪器仪表的传感器(以下简称下位机)的数据,检测车到位状态以及驱动显示屏,下位机进行数据采集和数据初步处理。
汽车检测站的检测设备来自各个厂家,由于到目前为止还没有一个统一的通信标准,不可能对检测线上的各个检测设备进行较大改动,所以下位机通过自身的硬件条件来确定通信方式,工位结构如图2所示。如果下位机的通信接口是数据打印口、RS232或RS485接口,先连接现场总线通信转换接口CAN卡,然后连接到现场总线上来完成现场总线通信。当然最好各检测设备出厂时都采用CAN总线接口,这样有利于设备的标准化。
图2 工位结构图
下位机N是汽车检测仪表中带有CAN的CAN控制模块,它不需要CAN卡直接与CAN总线相连。在这种方式下,工控机只连接CAN 总线,每个下位机用并联的方式挂接在总线上,而不需要每个下位机与工控机相连。具有节省屏蔽线、布线方式简单和抗干扰性强的优点。工位机也可以由DSP或单片机组成的嵌入式控制器代替工控机。这种方案对检测设备的影响较小、成本较低,总线获取数据的可靠性较高。
1.2 汽车检测仪表中带有CAN的CAN控制模块设计
CAN控制模块是由8位的微处理器89C58、独立CAN通信控制器SJA1000、CAN总线收发器82C250以及相关的接口组成的实时多任务的嵌入式控制系统(如图3所示),实现CAN总线的通信协议以及相关功能,可以分成3个部分:
(1) 总线接口部分,包括总线收发器和总线控制器,这部分对于所有CAN总线智能模块都是相同的。
(2) 与传感器及执行机构与单片机的接口部分,不同的接口将各单元分成不同的类型。
(3) 将前两部分连接成一个有机系统的微控制器及其外围接口部分,称为模块,不同的模块要求单片机实现不同的功能。微处理器负责从传感器中采集数据、对SJAIO00初始化并且控制SJAIO00实现数据的接收和发送等通信任务。
图3 CAN控制模块的结构
2、CAN通信协议的制定
SJA1000 CAN总线控制器支持CAN 通信协议约定的4种不同帧格式,即数据帧、远程帧、出错帧和超载帧。
汽车检测系统中下位机将检测得到的数据以数据文件的形式缓存,传输时打包成数据帧,以报文为单位进行数据传送。定义帧由优先级、单元地址、数据组成。
优先级的制定如表1所示,系统复位命令的优先级定义为0x00,由于1让位于0的机制,其值越小,优先级越高。所以复位命令的优先级最高,只要收到这个命令下位机将停止发送及采集数据,并执行复位。
表1 汽车检测系统优先级

单元地址表示下位机的地址信息,它可以由两种方式制定,一个是使用编码开关,现场制定地址,另外一个是出厂前程序中定义。若使用CAN卡只能使用第一种方式。
3、软件设计
汽车检测系统软件主要由VC编程的主控程序,VB编程的报表程序,微处理器程序以及CAN节点通信程序组成。其中通信程序主要分为3个部分:CAN初始化,数据传输及数据接收。这里主要列出CAN芯片初始化程序,程序如下:
Unsigned char init_can (unsigned int btr0btr1)
{
EA=0;
EX0=1:
CAN— REGISTER [CONTROL]=1;//复位请求
CAN_ ACC=CAN_ REGISTER [CONTROL];
While (!CAN_ACC_0)
{
CAN REGISTER [CONTROL] =1;//确定是否复位
CAN_ACC=CAN—REGISTER [CONTROL];
}
//设置接受代码寄存器
CAN-REGISTER [ACCEPTANCE_CODE]=ACC_CODE;
//设置接受屏蔽寄存器
CAN_REGISTER [ACCEPTANCE_MASK] =ACC_MASK;
//设置总线时序0寄存器
CAN — REGISTER [BUS_TIMING_1]=btr0btrl;
//设置总线时序1寄存器
CAN_REGISTER [BUS_TIMING_0]=btr0btrl> >8:
//设置输出控制寄存器
CAN_REGISTER [OUTPUT— CONTROL]=OUTONTRL;
//设置时钟分频寄存器
CAN_REGISTER [CDR]=CDRVALUE;
//设置控制寄存器
CAN_REGISTER [CONTROL]=CNTRLREG
//设置命令寄存器
CAN_ REGISTER [COMMAN D]&=0xe0;
CAN_REGISTER [COMMAND]I=0x0e;
CAN_REGISTER [COMMA ND]&=0xe0;
EA=1:
Return (OK);
}
4、应用情况及效果
基于现场总线的汽车检测系统由4个工位机组成。第1工位机包括底盘测功机、废气分析仪、噪声声级计、全自动烟度计及油耗仪;第2工位机包括转向盘及操纵力检测仪、全功能侧滑台、车轮转向仪、悬架松旷检测台及传动系松旷仪;第3工位机包括踏板力行程检测仪、制动检验台、悬架特性检测台、车体形位偏差仪及轴重仪;第4工位机包括发动机检测仪、前照灯检测仪、喇叭声级计及左右轴距差检测仪。网络使用了屏蔽双绞线,连线长为100m,传输速率为125kbps。