基于CAN总线技术实现多视觉传感器控制方法和系统设计

引 言
随着计算机技术、人工智能、光电检测、图像处理以及模式识别等各学科的不断完善和互相渗透,视觉检测技术作为一种多领域、各学科交叉的技术已取得了突飞猛进的发展,它是以机器视觉为基础的新型测试技术,具有测量时非接触、速度快、信息量大、应用领域广等特点。视觉检测技术广泛用于产品质量在线监测,自动巡视商店、银行或其他重要场所的安防监视,产品的标签文字标识检查,纺织印染业中的自动分色、配色,大型物体三维结构尺寸的测量,各种复杂三维表面形状的检测、恢复重构以及逆向工程等很多领域。视觉检测系统通常是由计算机、视觉传感器与控制系统三大模块组成。对于多视觉传感器大型实时测量系统,为了让视觉检测系统快速、精确地获得理想的图像信息,视觉传感器的控制系统的作用尤为重要。视觉传感器的控制系统根据其使用的串行控制总线标准不同,其控制与通讯的性能将不同。这里采用can (controller area network) 总线作为系统的串行控制总线。
由于can 总线具有通讯速率高、实时性好、带负载能力强、可靠性及抗干扰能力好、总线利用率高及硬件成本低等优点,非常适于大型测试系统控制网络的通讯。因此,本文将基于can 总线分布式网络控制技术,介绍多视觉传感器的实时控制方法与控制系统的设计。
视觉传感器的检测原理与系统组成
视觉检测一般基于三角法,由摄像机、光源跟被测物体构成测量三角,ccd 相机把光源投射到被测物体表面的经过调制后的三维深度信息转换成二维图像传给计算机再经由图像处理、特征提取等恢复解调出被测物体的三维形貌信息。如图1 所示,简单的结构光视觉传感器可由一个平面结构光投射器l 与一个ccd 摄像机a 组成,但当被测物体表面曲率变化较大时,有时会出现死区现象,即光平面与物体表面的交线被旁边的曲面遮挡,使摄像机无法看到该交线,以致测量信号消失。为避免由测量复杂表面物体时产生的死区现象,可用两个相机a 和b 对称分布于光平面两侧,接收光条的漫反射光。本例使用波长为650nm 的红色激光器作为光源,因其与环境光反差大,干扰小,较易进行图像特征点的提取,双目视觉传感器组成的多视觉传感器测量系统为研究对象,研究其can 总线分布式网络控制技术。
图2 给出了多视觉传感器can 总线网络控制检测系统的基本组成原理。本系统采用主从式结构,上位机为pc 机,下位机为8051 单片机控制单元(mcu) ,上、下位机之间用can 总线进行通讯,由于pc 机中并不带can 总线接口,因此需要一个can 接口卡,这里选用usbcan 智能接口卡来通信,因其具有体积小、外置且即插即用等特点。这样,pc 可通过usb 总线方便地连接至can 总线网络,控制各个can 节点,进行数据采集和处理。
视觉传感器的控制电路(mcu) 主要包括视频切换、电源供给和can 通讯接口三个模块。电源供给电路模块提供ccd 摄像机、激光投射器与mcu的电源,并且由mcu 控制单元控制着它们的开启与关闭。为了避免激光投射器使用时间过长导致激光器( 或普通照明光源) 发热引起光能分布不稳或视觉传感器受热变形从而影响测量精度,以及延长投射器的使用寿命,我们采用如下的控制方式: 当传感器开始测量时,先上电初始化,再打开激光器,测量完毕后即关闭光源电源。由于每个传感器里面含有一到两个ccd 相机,而任一时刻传感器只能输出一路视频信号,因此需要视频切换开关对二路视频信号进行自动分时切换。
为了满足大尺寸物体的视觉检测需要,充分利用can 总线的特点,使整个控制系统具有积木式的可扩充能力,本控制系统按最少能带64 个传感器的负载能力进行了设计。如果设每个视觉传感器里面都有两个摄像机,即最多共有128 路视频输入,而任一时刻系统只选取其中一路视频图像传给计算机图像采集卡进行图像采集处理,因此在图2 每个视觉传感器的单路视频输出处,需再加上一个多路视频切换器,如图3 所示,每8 个视频输入1 路视频输出作为一个视频信号切换单元,实现8 选1 方式的视频切换。那么按图3 中的积木式连接方式,9 个单元就可驱动64 路传感器。每个视频切换单元都有自己的can 总线接口,连接到整个控制系统的分布式网路上,与单个传感器控制系统一起协同工作。我们采用8 选1 视频切换为一个单元,采用积木式结构进行扩充,主要是考虑到在实际的多视觉传感器测量系统中,对于具体不同的测量对象,使用的传感器的数目可能不同。这种方式的最大优点是可以根据使用的传感器的多少进行自由组合。
在检测系统中,我们分别采用了maxim 公司的视频复用放大器max4313 和max4315 进行多路视频信号的切换传输。在双目视觉传感器内部用单片机控制max4313 进行二选一视频切换。max4313 和max4315 是低功耗高速多路视频复用放大器,增益均为+ 2v/ v ,具有通道切换速度快、切换瞬变低、差分增益误差低、相位误差小等良好的视频特性,本例中用±5v 的双电源供电。由于视频信号频率较高,频带较宽,因此当两路视频信号相距较近时容易产生串扰,为了尽量减小串扰,要把数字模块与视频切换模块在一个板子上分成二个区域,以及尽可能减少视频引线的长度并注意使用75ω 匹配电阻,视频引线使用带屏蔽层的优质视频同轴电缆。
传感器节点硬件接口
传感器节点控制电路的can 总线接口主要由微控制器、can 控制器和can 收发器构成。can控制器实现了can 通讯中物理层和数据链路层的功能,提供了与微控制器和总线的物理线路接口,这样用户只需编写符合自己通讯和控制要求的应用层协议即可。本系统中微控制器使用philips 公司的8 位增强型单片机p89c668 ,can 控制器和总线驱动器分别采用philips 公司的sja1000 、pca82c250 来构成典型的can 通讯节点。其硬件电路原理如图4 所示。
电路的核心部分是p89c668 单片机,它以80c51为内核,具有isp (在系统编程) 和iap (在应用编程) 功能的片内flash 存储器,片内boot rom 包含底层flash 编程子程序,可以实现通过串行口下载升级程序。数显部分用两片74hc164 驱动两个共阴极数码管以显示选择第几个传感器进行检测任务。,这里不再赘述。需要注意的是,本例中sja1000 的12mhz 的晶振由p89c668 的外部晶振产生电路同时提供; 总线传输介质( 这里采用双绞线) canh、canl 之间要加上120ω的终端匹配电阻才能保证总线的正常通讯。
传感器节点的can总线软件设计
传感器节点的can 总线软件设计主要包括三个部分: can 节点初始化、报文发送和报文接收。can 节点的通讯实质上就是对can 控制器内部各寄存器进行读写,由于这些寄存器或发送、接收缓冲器均有确定的地址,cpu 可通过外设访问指令对它们进行读写操作。can 总线通讯的成功与否重点是sja1000 的初始化设置,初始化程序通过将can 控制器的寄存器写入控制字,确定can 的工作方式。用p89c668 的p217 作为片选信号与sja1000 的cs引脚相连,sja1000 的片内寄存器和p89c668 单片机寄存器是重叠编址的,因此sja1000 寄存器寻址时要定义成片外ram 寻址。
由于视觉传感器检测系统要进行的视觉检测任务多为在线检测,实时性要求较强,这里各传感器节点采用中断接收方式接收上位机的控制命令,节点初始化后,当收到上位机发出的一帧信息后,判断其报文标志符是否符合自己的接收代码寄存器和验收屏蔽寄存器的设置,若不符则不接收,若通过则确认为本节点应收信息后装入接收缓冲器,sja1000 的int 脚会产生中断信号,该信号连接到单片机p89c668 的外部中断0 引脚,在外部中断0中断处理程序执行如图5 所示的程序流程,读出接收缓冲器的数据并保存在ram 中,并启动本视觉传感器节点进行测量。
系统中发送报文采用查询方式,传感器节点在收到主控机的数据请求命令后发送数据,发送模块首先进行状态查询,判定总线是否空闲,如空闲,则将目的节点地址写入发送标志符寄存器,数据写入发送缓冲器,完成一帧can 信息发送。若同时有多个节点都向总线发送报文,且都符合验收滤波器的设置,则报文标识码的二进值越低的报文优先级越高,从而在总线仲裁过程中首先占据总线访问的优先权。系统软件采用keil c51 语言来编写,具有模块化功能强且简洁易读等特点。can 控制器的发送缓冲区被分为描述符区和数据区两部分,描述符区的第一个字节是帧信息字节,它说明了帧格式(标准帧或扩展帧) 、远程帧或数据帧和数据的长度,扩展帧有四个字节的标志符,数据区最多长八个数据字节,存有实际要发送的数据。本例中只用到前两个数据,第一个表示传感器地址,第二个字节表示选择传感器里的两路摄像机中的哪一路采集图像。
can 节点之间通讯成功的另一个关键是波特率的设置,不仅can 总线上的各下位机节点要设置相同的波特率,总线与上位pc 机相连的usbcan 接口卡也要有相同的波特率,这样才能保证通讯畅通。由于usbcan 接口卡内的can 控制器sja1000 用的是16mhz 的晶振,而各传感器节点内的sja1000与p89c668 使用12mhz 的晶振,因此对于不同的通讯速率一定要计算出两种晶振都相一致的总线时序寄存器btr0 、btr1 来设置总线波特率。本例中使用400kbps 作为总线通讯的波特率,效果很好。
结束语
本文主要着重于多视觉传感器控制系统的设计研究。鉴于can 网络的优良性能,能够快速、可靠地交换信息,特别适合多通讯节点的互连,形成多主机控制器局部网,实验表明控制系统能做到各个视觉传感器的快速切换传输视频图像,且切换时图像抖动小,效果好。该系统具有较好的网络扩展能力,在系统工作过程中灵活地增减一些传感器节点不会影响系统工作,只需对主控软件进行少量修改即可。本控制系统的另一个特点是:传感器的照明灯的电源功率大小可以由计算机通过can 总线由传感器控制单元自动调节,以适应现场环境光强的变化。本文所设计的多视觉传感器测控系统,可以广泛用于各种工业现场实时在线视觉测量系统中。


谷歌公布其实现量子霸权的路线图 微软将其研发重点放在了“有效操纵”上
Hi-Fi与AV有什么不同
哪里需要使用LoRa基站?介绍几个适合LoRa应用的行业
海信李文丽:中国企业拓展日本市场要有长线思维
蓝色星际BstarCenter网络视频监控平台软件中间件技术的研究
基于CAN总线技术实现多视觉传感器控制方法和系统设计
远程红外发射器的工作原理及电路图
中周变压器的检测,Transformer test
未来,5G与智能交通会开启哪些新的市场成长空间?
动则百万,应届生也可年薪50万,芯片工程师为什么变的这么贵?
一文详解热设计中的结到外壳热阻
音圈电机助力的宏碁电脑
小米6真机渲染图曝光:耳机孔不见了,造型颠覆,这样的小米6你喜欢吗
基于DOS实时嵌入式软件测试工具的研究
zookeeper集群基础知识与linux系统环境的搭建
离子注入工艺仿真
4G工业路由器的优势与劣势
华为云数据融合集成平台ROMA Connect,推进企业数字化转型
锂电池智能制造的四个阶段
区块链遇上共享经济后将会带来什么?