基于CAN总线汽车车身视觉检测站的研究
2014-12-09 来源:e-works
前言
汽车车身视觉检测站是用于测量车身关键点的三维空间坐标的大型的专用检测系统。它由机械及定位系统、三维视觉传感器系统、测量控制与接口系统、标定系统以及计算机软件五大部分组成。主要方法采用结构光传感器,经标定系统标定后,通过控制系统选取被测点,采集图像,结合视觉检测算法,求出被测点坐标参数。为进行测量,必须把计算机与传输器联系起来。检测人员应能通过计算机选择测点,使传感器按预先设定的顺序进入测量状态,产生测量用的光条平面,还应能够随时调整测量顺序,并实现对光源的实时控制及图像部分的多用户采集。
控制器局域网CAN(Controller Area Network)是一种具有很高保密性,有效支持分布式控制及实时控制的串行通信网络。CAN总线属于现场总线范畴,与现有的其他总线相比,属于一种分散式、数字化、双向、多站点、多变量的通信系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多优点,非常适用于分布式测量系统的数据通信。
图1 基于CAN的车身检测站控制网络
二、视觉检测原理及视觉检测站控制系统
汽车车身视觉检测是目前正在发展的一种新型车身检测方法。其主要原理是利用计算机视觉技术,采用主动三角法获取车身表面点的信息,通过三维视觉算法求取各关键点的坐标,从而完成对车身各顶点位置、挡风玻璃框尺寸、定位孔大小及位置、车门安装处棱边位置及走向等主要参数的测量。
由于汽车车身长宽高都是几m(米)范围,被测点一般都要求在50个以上,网络布线要求300m以上,此外控制系统还应实现对检测站中的机械及定位系统的控制。整个控制系统应具有一定的扩展和适应能力,以便于其他控制单元的加入。 本系统中,针对不同的测量对象,采用不同类型的传感器,总数在50台以上。检测站的控制系统应能对这些传感器的动作进行实时控制,以使其动作相互协调。另外,本测量系统将用于汽车生产线,车身先由吊车放到运放小车上,然后由小车运送到检测站内。吊车及运送小车由直流电机驱动,它们的动作应该既可以通过主机键盘控制,也可以通过检测站中的控制柜直接控制。由于以上各方面的考虑,我们决定采用CAN总线作为本控制网络的通信标准。图3 接口卡原理示意图
二、网络拓扑结构与CAN总线
在车身检测站中,对各传感器的数据采集及图像处理等工作主要由CP机完成,为操作方便,对机械部分的控制还应能通过控制台进行。本系统控制节点多(50个以上),可靠性要求高,传统的集中控制方式虽然功能集中、速度较快,但具有硬件结构复杂、现场布线困难、扩展能力低等缺点,所以我们采用单片机作为直接控制单元,用于对传感器的直接控制。每个单片机都是控制网络上的一个节点,各节点直接挂接在数据总线上。PC机和控制框也同样各和为一个节点挂接在总线上,即控制网络应具有多主机控制能力。所以整个网络采用多主机结构,即每一个节点也是一个主机,通过主机间的通信以实现控制要求。为此,我们决定采用总线型的网络拓扑结构,利用CAN灵活方便、支持多主机方式等特点,建立控制网络。不难看出,只要解决好“碰撞”问题,这种方法有结构简单、安全系数高、灵活性好、易于扩展等特点,可以充分满足本检测站的控制要坟。控制网络的结构示意图如图2所示。
图2 控制网络框图
现有微机一般都配有两个串行接口,其机械特性和电器特性均符合RS-232C标准。由于RC-232C标准采用单端电路,极易引入附加电平,并且负载电容不能大于2500pF,传输距离和速度都非常有限;而CAN总线这些方面都远远超过RS-232C。CAN总线是一个智能化的总线,具有自我管理的功能,能够有效地支持多主机分布式控制,能够良好地解决“碰撞”问题,并具有传输速率高(可达1Mbps)、传输距离长(可达1000m)、信号的传输精度高(<0.01%)等优点。另外,采用循环冗余CRC校验及独特的数据信号表示,使其具有错误判别及自动重发功能,漏检错误概率低于5×10 -11。所以,我们采用了CAN总线。由于CAN总线优良的性能和智能化的管理,保证了整个检测站在恶劣环境下的正常工作。
在信道访问控制上,采用主从式与自由竞争式相结合的放手式通信方法,即以PC主处理机和控制台作为主控制节点,两主控节点的优先级与节点标总符相对应,主控节点命令及信息的送可通过外部设置约定,也可通过自由竞争实现。
在PC 机方面,采用接口卡使PC机跨入总线,其接口电路如图3所示。这里,并行接口采用8255A可编程外围接口芯片,接口逻辑及CAN转换主要由 MC68HC05X16单片机控制。工作中,信息由PC机数据总线送出,经8255A的PA口进入单片机,在单片机的控制下将并行输入的信号转换为CAN 总线输出。这里,采用16V8的GAL进行地址译码并实现部分逻辑关系。
图3 接口卡原理示意图
在传感器和控制框通信接口方面,选用了MC68HC05X16单片机。由于MC68HC05X16自身带CAN接口,简化了硬件设计,减少了系统故障,增加了通信的可靠性与安全性。本系统硬件设计为128个节点(可以设计为更多),可以充分满足检测站50个节点的要求,并且可以进一步扩展,加入新的检测设备和检测点。
三、CAN总线通信协议
针对测量系统的需要,我们采用了多主机通信方式。该方式可以充分发挥每个主机的作用,很容易使各个节点之间建立起数据联系,任意两个节点之间都可以根据需要进行通信。通信与控制都非常简单,可以充分满足本检测站迅速、可靠、实时性的要求。根据检测系统的需要和CAN帧结构,重点结合测量传感器和控制柜的功能要求,我们对网络的通信协议进行了研究和设计。
本系统中,CAN总线以报文为单位进行数据传输,并采取位仲裁的方式对总线进行访问,即在报文起始部分发送节点标总符。CAN总线的标准数据帧的仲裁场有 11个位标识符,它主要用于解决总线上的碰撞问题。数据帧标识符越小,数据帧具有越高的优先权。也就是说,当两帧数据同时由高位向低位发送时,一旦有不同的电平,发更新“凹槽”电平(recessive level)的数据帧将停止发送,而发送“主控”电平(dominant level)的数据帧将继续发送,这样,CAN总线自身就解决了碰撞问题。我们在每个节点设计了一个8位DIP开关,通过这个开关可以方便地改变传感器地址,并且,以它代表的数据作为该节点发送的数据帧的标识符的高8位。这样,地址越小的节点,其发送的数据就具有越高的优先权。根据节点的重要性安排地址,有效地解决了碰撞和优先权的问题。 四、采用CAN总线的过程控制软件
根据检测系统的需要,将指令分为通用指令和寻址指令:通用指令是旨所有收到指令的节点都要执行的指令;寻址指令是指收到指令的节点只有相应地址的节点才执行的指令。由于CAN总线标准数据帧最多可带有8个字节的数据,们将第一个字节作为地址(127为通用的地址,带有通用指令的数据帧第一个字节为127),第二个字节作为指令字节,用于表示节点所要执行的动作。表1为本系统中所用到的部分代码及其意义。
表1 本系统部分指令代码
对于不同的节点,有时有些操作应对其封锁,甚至应禁止操作(如测量时应禁止对控制柜操作)因此,我们设立了远地封锁/解封及相应的近地封锁/解封命令。封锁后的节点只有解封后,才近地封锁/解封命令。封锁后的节点只有解封后,才能够继续执行指令。我们在每个节点处设立有控制开关,以便通过本地操作实现近地封锁/解封命令。这样,就进一步减少了本系统的误操作,增加了系统的安全性。图4、图5分别为传感器、控制柜方面的工作流程图。
图4 传感器工作流程图
图5 控制柜工作流程图
为了能够准确掌握各节点的状态,以便及时发现错误,并作出相应调整,在每个节点都设有节点状态字。通过通信,可以让节点报告各自的工作状态。如出现故障或非法操作,则通过PC机报警,并且PC机定期查询各节点,如发现通信故障,则报警。
结束语
为了测试本系统的通信能力及抗干扰性,我们将通信线路置于强干扰环境中,经连续测试实验,在500m传输距离、2Mbps传输速率下,完全可以保证数据传输的可靠性。
本系统用新一代的现场总线控制系统FCS(Field Bus Control System)代替传统的集散控制系统DCS(Distributed Conutrol System),实现了现场通信网络与控制系统的集成。由于采用CAN总线,支持多主机方式,具有非破坏性的错误界定。CAN没有定义物理层的驱动器、接收器特性,便于用户根据具体需要对发送媒体和总线的电平进行定义,使网络功能十分灵活。通过软件的编写,可以完成十分强大的功能,并可以进行扩展,这对于检测站功能的进一步完善及其他控制工作的完成,有着十分重要的意义。
上一篇:CAN总线互连中网关的设计与实现