控制器局域网CAN(Controller Area Network)是一种具有很高保密性,有效支持分布式控制及实时控制的串行通信网络。CAN总线属于现场总线范畴,与现有的其他总线相比,属于一种分散式、数字化、双向、多站点、多变量的通信系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多优点,非常适用于分布式测量系统的数据通信。
本文主要介绍CAN总线在视觉检测站中的研究与应用。
二、视觉检测原理及视觉检测站控制系统
汽车车身视觉检测是目前正在发展的一种新型车身检测方法。其主要原理是利用计算机视觉技术,采用主动三角法获取车身表面点的信息,通过三维视觉算法求取各关键点的坐标,从而完成对车身各顶点位置、挡风玻璃框尺寸、定位孔大小及位置、车门安装处棱边位置及走向等主要参数的测量。
本系统中,针对不同的测量对象,采用不同类型的传感器,总数在50台以上。检测站的控制系统应能对这些传感器的动作进行实时控制,以使其动作相互协调。另外,本测量系统将用于汽车生产线,车身先由吊车放到运放小车上,然后由小车运送到检测站内。吊车及运送小车由直流电机驱动,它们的动作应该既可以通过主机键盘控制,也可以通过检测站中的控制柜直接控制。由于以上各方面的考虑,我们决定采用CAN总线作为本控制网络的通信标准。
二、网络拓扑结构与CAN总线
在车身检测站中,对各传感器的数据采集及图像处理等工作主要由CP机完成,为操作方便,对机械部分的控制还应能通过控制台进行。本系统控制节点多(50个以上),可靠性要求高,传统的集中控制方式虽然功能集中、速度较快,但具有硬件结构复杂、现场布线困难、扩展能力低等缺点,所以我们采用单片机作为直接控制单元,用于对传感器的直接控制。每个单片机都是控制网络上的一个节点,各节点直接挂接在数据总线上。PC机和控制框也同样各和为一个节点挂接在总线上,即控制网络应具有多主机控制能力。所以整个网络采用多主机结构,即每一个节点也是一个主机,通过主机间的通信以实现控制要求。为此,我们决定采用总线型的网络拓扑结构,利用CAN灵活方便、支持多主机方式等特点,建立控制网络。不难看出,只要解决好“碰撞”问题,这种方法有结构简单、安全系数高、灵活性好、易于扩展等特点,可以充分满足本检测站的控制要坟。控制网络的结构示意图如图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进行地址译码并实现部分逻辑关系。
在传感器和控制框通信接口方面,选用了MC68HC05X16单片机。由于MC68HC05X16自身带CAN接口,简化了硬件设计,减少了系统故障,增加了通信的可靠性与安全性。本系统硬件设计为128个节点(可以设计为更多),可以充分满足检测站50个节点的要求,并且可以进一步扩展,加入新的检测设备和检测点。
三、CAN总线通信协议
针对测量系统的需要,我们采用了多主机通信方式。该方式可以充分发挥每个主机的作用,很容易使各个节点之间建立起数据联系,任意两个节点之间都可以根据需要进行通信。通信与控制都非常简单,可以充分满足本检测站迅速、可靠、实时性的要求。根据检测系统的需要和CAN帧结构,重点结合测量传感器和控制柜的功能要求,我们对网络的通信协议进行了研究和设计。
四、采用CAN总线的过程控制软件
根据检测系统的需要,将指令分为通用指令和寻址指令:通用指令是旨所有收到指令的节点都要执行的指令;寻址指令是指收到指令的节点只有相应地址的节点才执行的指令。由于CAN总线标准数据帧最多可带有8个字节的数据,们将第一个字节作为地址(127为通用的地址,带有通用指令的数据帧第一个字节为127),第二个字节作为指令字节,用于表示节点所要执行的动作。表1为本系统中所用到的部分代码及其意义。
表1 本系统部分指令代码
指令代码 | 指令内容 | 指令代码 | 指令内容 |
A1H | 系统复位 | B1H | 打开光源 |
A2H | 开始运载白车身 | B2H | 关闭关源 |
A3H | 白车身到位 | B3H | 打开左摄像机 |
A4H | 远地封锁 | B4H | 关闭左摄像机 |
A5H | 远地解封 | B5H | 打开右摄像机 |
A6H | 近地封锁 | B6H | 关闭右摄像机 |
A7H | 近地解封 | B7H | 测量结束 |
对于不同的节点,有时有些操作应对其封锁,甚至应禁止操作(如测量时应禁止对控制柜操作)因此,我们设立了远地封锁/解封及相应的近地封锁/解封命令。封锁后的节点只有解封后,才近地封锁/解封命令。封锁后的节点只有解封后,才能够继续执行指令。我们在每个节点处设立有控制开关,以便通过本地操作实现近地封锁/解封命令。这样,就进一步减少了本系统的误操作,增加了系统的安全性。图4、图5分别为传感器、控制柜方面的工作流程图。
为了能够准确掌握各节点的状态,以便及时发现错误,并作出相应调整,在每个节点都设有节点状态字。通过通信,可以让节点报告各自的工作状态。如出现故障或非法操作,则通过PC机报警,并且PC机定期查询各节点,如发现通信故障,则报警。
结束语
为了测试本系统的通信能力及抗干扰性,我们将通信线路置于强干扰环境中,经连续测试实验,在500m传输距离、2Mbps传输速率下,完全可以保证数据传输的可靠性。
本系统用新一代的现场总线控制系统FCS(Field Bus Control System)代替传统的集散控制系统DCS(Distributed Conutrol System),实现了现场通信网络与控制系统的集成。由于采用CAN总线,支持多主机方式,具有非破坏性的错误界定。CAN没有定义物理层的驱动器、接收器特性,便于用户根据具体需要对发送媒体和总线的电平进行定义,使网络功能十分灵活。通过软件的编写,可以完成十分强大的功能,并可以进行扩展,这对于检测站功能的进一步完善及其他控制工作的完成,有着十分重要的意义。