目前世界上开发出了40多种现场总线,其中CAN总线因其具有实时性强、可靠性高、抗干扰性强、通信方式灵活、非破坏性的访问方式和开发简单、廉价等独特之处,适合于汽车检测线中应用。基于CAN总线的汽车检测控制系统可以解决现有RS232、RS485等通信系统的传输速率慢,出现乱码等缺点,可以提高数据传输的实时性和可靠性,而且创建与汽车中微电脑通信的平台,以解决汽车与检测互通信息的前瞻问题。
1、基于现场总线技术的汽车检测线开发设计
1.1汽车检测线测控系统整体设计
汽车检测站计算机网络系统由现场总线网络和数据处理网络组成,两者通过1台NT服务器进行连接。现场总线网络以CAN总线技术为核心,采用总线型网络拓扑结构,而数据处理网络均采用星型网络拓扑结构,汽车检测线总体结构如图1所示。
数据处理网络中,每个工位机的信息及车辆信息都可通过网络进行资源共享,完成打印报表、财务报表和数据统计等各项任务。
在现场总线网络检测系统中,测控计算机和工位机之间都由CAN总线接口卡连接。测控计算机主要完成每个工位的初始化工作和对通信参数的设定,工位机接收汽车检测仪器仪表的传感器(以下简称下位机)的数据,检测车到位状态以及驱动显示屏,下位机进行数据采集和数据初步处理。
汽车检测站的检测设备来自各个厂家,由于到目前为止还没有一个统一的通信标准,不可能对检测线上的各个检测设备进行较大改动,所以下位机通过自身的硬件条件来确定通信方式,工位结构如图2所示。如果下位机的通信接口是数据打印口、RS232或RS485接口,先连接现场总线通信转换接口CAN卡,然后连接到现场总线上来完成现场总线通信。当然最好各检测设备出厂时都采用CAN总线接口,这样有利于设备的标准化。
下位机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实现数据的接收和发送等通信任务。
2、CAN通信协议的制定
SJA1000CAN总线控制器支持CAN通信协议约定的4种不同帧格式,即数据帧、远程帧、出错帧和超载帧。
汽车检测系统中下位机将检测得到的数据以数据文件的形式缓存,传输时打包成数据帧,以报文为单位进行数据传送。定义帧由优先级、单元地址、数据组成。
优先级的制定如表1所示,系统复位命令的优先级定义为0x00,由于1让位于0的机制,其值越小,优先级越高。所以复位命令的优先级最高,只要收到这个命令下位机将停止发送及采集数据,并执行复位。
单元地址表示下位机的地址信息,它可以由两种方式制定,一个是使用编码开关,现场制定地址,另外一个是出厂前程序中定义。若使用CAN卡只能使用第一种方式。
3、软件设计
汽车检测系统软件主要由VC编程的主控程序,VB编程的报表程序,微处理器程序以及CAN节点通信程序组成。其中通信程序主要分为3个部分:CAN初始化,数据传输及数据接收。这里主要列出CAN芯片初始化程序,程序如下:
Unsignedcharinit_CAN(unsignedintbtr0btr1)
EA=0;
EX0=1:
CAN—REGISTER[CONTROL]=1;//复位请求
CAN_ACC=CAN_REGISTER[CONTROL];
While(!CAN_ACC_0)
CANREGISTER[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[COMMAND]&=0xe0;
CAN_REGISTER[COMMAND]I=0x0e;
CAN_REGISTER[COMMAND]&=0xe0;
EA=1:
Return(OK);
4、应用情况及效果
基于现场总线的汽车检测系统由4个工位机组成。第1工位机包括底盘测功机、废气分析仪、噪声声级计、全自动烟度计及油耗仪;第2工位机包括转向盘及操纵力检测仪、全功能侧滑台、车轮转向仪、悬架松旷检测台及传动系松旷仪;第3工位机包括踏板力行程检测仪、制动检验台、悬架特性检测台、车体形位偏差仪及轴重仪;第4工位机包括发动机检测仪、前照灯检测仪、喇叭声级计及左右轴距差检测仪。网络使用了屏蔽双绞线,连线长为100m,传输速率为125kbps。
实践证明,把现场总线技术应用到汽车检测线以后,该系统通信可靠、性能稳定,取得了良好的经济效益和社会效益,其主要表现在如下几方面:
(1)节省了成本。由于系统采用了现场总线,通过屏蔽双绞线连接各处分散的独立设备,而且嵌入式系统的控制器代替工位机中的工控机,与以前不使用现场总线技术相比,可以节省项目经费。
(2)具有良好的扩展性。由于现场总线的开放性,可随意增设工位,总线上可以挂接32个设备。
(3)远距离高速通信。传输距离小于50m时,数据传输速率可达1Mbps,提高检车效率。
(4)系统维修方便。总线上某个设备出现故障,不会导致整个系统的瘫痪,仍可维持其余设备的正常运行,检修时只需断开故障设备即可,提高了系统的整体可靠。
目前在汽车设计领域中,很多汽车厂家采用ISO颁布的CAN国际标准(ISO11898)。这标准允许不同厂家生产的零部件能在同一辆汽车中进行有效、协调的工作,构成了所谓的开放式系统,检测线采用CAN总线技术,有利于从汽车上直接获取其故障信息,使得标准化的故障诊断和排放检测成为可能。
把现场总线技术应用在汽车检测线上,不仅提高汽车检测速度及检车质量,也可以从设计、安装、调试、运行到维护方面,节省成本和时间,从而得到了经济效益,提高了市场竞争能力。