下位机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通信协议的制定
SJA1000 CAN总线控制器支持CAN 通信协议约定的4种不同帧格式,即数据帧、远程帧、出错帧和超载帧。
汽车检测系统中下位机将检测得到的数据以数据文件的形式缓存,传输时打包成数据帧,以报文为单位进行数据传送。定义帧由优先级、单元地址、数据组成。
优先级的制定如表1所示,系统复位命令的优先级定义为0x00,由于1让位于0的机制,其值越小,优先级越高。所以复位命令的优先级最高,只要收到这个命令下位机将停止发送及采集数据,并执行复位。
单元地址表示下位机的地址信息,它可以由两种方式制定,一个是使用编码开关,现场制定地址,另外一个是出厂前程序中定义。若使用CAN卡只能使用第一种方式。
3、软件设计
汽车检测系统软件主要由VC编程的主控程序,VB编程的报表程序,微处理器程序以及CAN节点通信程序组成。其中通信程序主要分为3个部分:CAN初始化,数据传输及数据接收。这里主要列出CAN芯片初始化程序,程序如下: