登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机论坛
›
单片机应用于方案
›
一种多视觉传感器控制系统的实现
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版
一种多视觉传感器控制系统的实现
[复制链接]
665
0
ad***
管理员
发表在
电源技术
2014-4-3 12:02:47
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
1 引言
结构光传感器是应用较早、发展较成熟的视觉传感器,因此本系统采用结构光传感器来采集图像并经图像采集卡送给计算机处理。由于视觉传感器在视觉测量中担负着视频图像信号(测量数据)的采集、切换与传输。因此,如何让视觉传感器测控系统快速、精确地获得理想的视频图像信息,进而为后期的图像处理提供可靠的支持,亦即视觉传感器的测控系统的设计显得尤为重要。
2 视觉系统的概述
视觉检测系统中采集被测物体图像的视觉传感器有单目和双目两种之分,本测控系统可以使用单目视觉传感器也可以使用双目视觉传感器来采集数据,本文主要讨论由多个双目视觉传感器组成的多视觉传感器测控系统,其中的每个视觉传感器采用的是目前技术已经比较成熟的线结构光视觉传感器,其结构是由双
CCD
摄像机、一个激光投射器和一块
MCU
控制电路组成,基于立体视差原理,利用两台摄像机来模仿实现人眼的功能,利用空间点在两摄像机像面上的透视或像点坐标来求取空间点的三维坐标。当被测工件较大需要不止一个视觉传感器时,上述多个视觉传感器加上多路视频切换
开关
就构成了多视觉传感器测控系统。如对汽车车身上的很多特征点进行检测时,就需要几十甚至上百个传感器来测量,由于控制器局部网
CAN
(controller area network)总线具有很强的带负载能力,一个CAN网络上最多能接1
10
个节点,所以本系统采用CAN总线进行通讯和网络控制。
视觉传感器中MCU控制电路提供CCD摄像机、激光投射器的
电源
并且控制着它们的开启与关闭,为避免激光投射器使用时间过长激光器发热引起线结构光光能分布不稳从而影响测量精度,当传感器开始测量时,先上电初始化,再打开激光器,测量完毕后即关闭以延长投射器寿命。
本系统中,上位机为PC机,下位机为80
51
单片机
控制单元,上、下位机之间用CAN总线进行通讯,由于PC机中并不带CAN总线接口,因此必需一个CAN接口卡,这里选用广州周立功公司的
USB
CAN智能接口卡来通信,因其具有体积小、外置且即插即用等特点。这样,PC可通过USB总线方便地连接至CAN总线网络控制各个CAN节点进行数据采集和处理。USBCAN智能CAN接口卡可以与ZLGCANTest通用CAN-
bus
测试软件连接运行,执行CAN-bus总线数据的接收、发送测试任务,较易于实现CAN-bus产品开发和数据分析。USBCAN智能CAN接口卡采用周立功公司提供的通用的ZLGVCI驱动库,支持WIN98、2000和XP操作系统并支持Linux平台。用户通过接口卡提供的ZLGVCI动态开发库可以方便快捷的开发出CAN系统应用产品。为了把模拟CCD相机输出的被测物体的模拟视频图像转换成数字信号并由计算机进行处理,这里采用了北京大恒图像公司的CG
40
0型图像采集卡,其采用
PCI
总线,所采集的图像
数据传输
基本不占用
CPU
时间,并可将图像直接传送的计算机
内存
或显存。
3 CAN总线简介
CAN总线是德国
BOSCH
公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、
同轴电缆
或光导纤维。通信速率可达1
Mbp
s。CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义
211
或
229
个不同的数据块,这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。CAN卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。
为了满足大尺寸物体的三维轮廓的检测,本系统要求最少能带64个传感器,每个视觉传感器里有两个摄像机,即共有128路视频输入,而任一时刻系统只选取其中一路视频图像传给计算机进行图像采集处理,如对汽车车身周围布置了几十个传感器来检测车身上关键尺寸如挡风玻璃窗尺寸、车门安装棱边缝隙、定位孔位置,测量其相应的棱边、孔表面的空间位置尺寸。视觉传感器可以按要求顺序进行工作,也可以选取被测对象的特定点并通过CAN控制网络选择特定传感器来检测,计算机采集检测点图像并进行处理,将计算值与标准值比对,从而得出视觉检测的结果。
4 多视觉传感器的控制设计
视觉传感器的控制电路主要包括视频切换、电源供给和CAN通讯接口三个部分。每个传感器里有两个CCD相机,即能同时采集两路视频输入,但任一时刻传感器只能输出一路视频信号,这里采用
MAXIM
公司的视频复用放大器max4313和max4315进行多路视频信号的切换传输,传感器内部用单片机控制max4313进行二选一视频切换,系统中多个传感器之间通过多个八选一视频切换芯片max4315的级连来实现多视觉传感器的切换选择。多路视频切换开关电路能很好实现这一功能,
P89C668
单片机的P2口的三跟地址线控制max4315的三个地址端决定切换哪一路通道的视频信号。max4313和max4315是低功耗高速多路视频复用放大器,具有通道切换速度快(40ns)、切换瞬变低(10
mVp
-p)、差分增益误差低(0.06%)、相位误差小(0.02度)等良好的视频特性,工作在+4~+10.5V的单电源(双电源正负2V~正负5.25V),本例中工作在正负5V的双电源下,为了减少干扰与传感器内部空间安装方便,电源电路与控制电路分开制作,分别放在投射器二边。由于视频信号频率较高,频带较宽,因此当两路视频信号相距较近要注意干扰问题,时,容易产生串扰,为了尽量减小串扰,电路设计时应注意以下几点:要把数字
模块
与视频切换模块在一个板子上分成二个区域,以及尽可能减少视频引线的长度并注意使用75欧姆匹配
电阻
,视频引线要使用带屏蔽层的视频同轴电缆(75欧姆阻抗)。
5 CAN总线通讯
CAN总线是一个多主站现场总线,各节点都有权向其他节点发送信息,其协议简单,实时性强,可靠性及抗干扰能力好,总线利用率高,硬件成本低。主要特点如下:
1)CAN总线的任一节点在任一时刻都主动向网络上其他节点发送数据而不分主从,通过优先级确定总线为哪一节点所占用,通信灵活。
2)CAN总线上的节点可通过设置分为不同的优先级,用来满足不同的实时性要求。
3)CAN总线采用非破坏性总线仲裁,当多个节点同时向总线发送数据时,优先级低的节点主动停止发送数据,退出竞争,而优先级高的节点将拥有总线使用权,继续发送数据。
4)CAN总线具有点对点,一点对多点及全局广播等
多种
数据通讯传送方式。
5)节点间通讯位速率与节点间距离有关,总线最远通讯距离为10km,此时通讯速率为5
kbp
s,最大通讯速率能达到1Mbps(通讯距离40m内)。
6)可根据报文的ID决定接收或屏蔽该报文,发送的报文遭到破坏后可自动重发。
7)可靠的错误处理和检错机制,节点在错误严重的情况下具有自动退出总线的功能。
8)报文不包含源地址和目标地址,仅用报文标志符来来指示功能信息和优先级信息。
5.1 CAN节点硬件接口
CAN总线接口硬件部分主要由微控制器、CAN控制器和CAN收发器构成。CAN控制器实现了CAN通讯中物理层和数据链路层的功能,提供了与微控制器和总线的物理线路接口,这样用户只需编写符合自己通讯和控制要求的应用层协议即可。本系统中微控制器使用Philips公司的8位增强型单片机P89C668,CAN控制器和总线驱动器用的分别是Philips公司的
SJA1000
、
PCA82C250
来构成典型的CAN通讯节点。其硬件电路图如图3所示:
电路的核心部分是P89C668单片机,它以80
C51
为内核,具有
ISP
(在系统编程)和IAP(在应用编程)功能的片内
Flash
存储器,片内Boot ROM包含底层FLASH编程子程序,以实现通过串行口下载升级程序,拥有8K字节RAM(可外扩到64K)和64K字节FLASH ,还有4个中断优先级、8个中断源和4个8位I/O口,可方便地进行各种片内操作和片外扩展。CAN控制器相对于微控制器来说相当于一个存储器I/O映象设备,SJA1000片内有模式寄存器、状态寄存器、命令寄存器、中断寄存器和收、发寄存器等。单片机就是通过读写这些寄存器来实现对SJA1000的控制,芯片的TX0、
TX1
、RX0、RX1引脚用于CAN总线的接口,SJA1000的12M晶振由P89C668的外部晶振产生电路同时提供;PCA82C250是控制器与物理总线的接口,可提供对总线的差动发送和接收功能,其
TXD
、RXD引脚分别接收和发送经驱动后的信号,再由CANH、CANL接至总线传输介质(这里采用双绞线)上,同时还要注意CANH、CANL之间要加上120欧姆的终端匹配电阻才能保证总线的正常通讯。
5.2 CAN节点的软件设计
CAN总线智能节点的软件设计主要包括三个部分:CAN节点初始化、报文发送和报文接收。CAN节点的通讯实质上就是对CAN控制器内部各寄存器进行读写,由于这些寄存器或发送、接收缓冲器均有确定的地址,CPU可通过外设访问指令对它们进行读写操作。系统上电复位后,CPU对SJA1000的各个控制寄存器写入相应控制字信息,以完成CAN控制器的初始化。本例中,系统软件采用结构化程序设计方法,程序具有较好的模块性和可移植性,对于不同的检测系统和应用环境,可以方便地进行程序重组。编程语言采用单片机C语言Keil C51,它具有较高的效率,可读性好,能够有效减轻系统软件编程的工作量。
CAN总线通讯的成功与否重点是SJA1000的初始化设置,初始化程序通过将CAN控制器的寄存器写入控制字,确定CAN的工作方式。用P89C668的P2.7作为片选信号与SJA1000的
CS
引脚相连,SJA1000的片内寄存器和P89C668单片机寄存器是重叠编址的,因此SJA1000寄存器寻址时要定义成片外RAM寻址。下面给出了CAN节点的初始化程序:
Init_Can (void)
{ MODE = 0x
09
; file://进入复位模式,对SJA1000进行初始化;
CDR
= 0x88; file://选择PeliCan;
CMR
= 0x0C; file://清除数据溢出和释放接收缓冲器;
IER = 0
x03
; file://开放接收中断和发送中断;
ACR0 = 0x66;
ACR1 = 0x66;
ACR2 = 0x66;
ACR3 = 0x66; file://根据具体的协议定义设置验收码寄存器;
AMR0 = 0xFF;
AMR1 = 0xFF;
AMR2 = 0xFF;
AMR3 = 0xFF; file://根据具体的协议定义设置验收屏蔽寄存器;
BTR0 = 0x41;
BTR1 = 0x1B; file://12MHz晶振下,设置波特率为200kbps;
OCR
= 0XAA;
EWLR =0
x60
;
RBSA = 0
x00
; file://RX缓存器起始地址寄存器设置为0;
TXERR= 0x00; file://发送错误
接收器
设置为0;
ECC =0x00; ?
MODE= 0x08; file://单向
滤波
方式,进入正常模式,初始化完毕;
由于视觉传感器测控系统要进行视觉检测多为在线检测,实时性要求较强,这里各传感器节点采用中断接收方式接收上位机的控制命令,节点初始化后,当一帧信息经过出错检测确认为正确信息后装入接收缓冲器,SJA1000的INT脚会产生中断信号,该信号连接到单片机P89C668的外边中断0引脚,在外部中断0中断处理程序中判别该信息的标志符如果是本节点地址,便读出接收缓冲器的数据并保存在RAM中,中断接收程序框图如下:
系统中发送报文采用查询方式,传感器节点在收到主控机的数据请求命令后发送数据,发送模块首先进行状态查询,判定总线是否空闲,如空闲,则将目的节点地址写入发送标志符寄存器,数据写入发送缓冲器,完成一帧CAN信息发送。
CAN信息格式分为信息和数据两部分,头两个字节是信息部分,其前11位为标志符,标志符的前八位用作接收判断,应包含本信息包的目的节点地址,然后是一位RTR位(0为数据帧,1为远程帧,本例使用数据帧),最后是四位的DLC。其余八个字节为是数据部分,存有实际要发送的数据。本例中只用到前两个数据,第一个表示传感器地址,第二个字节表示选择传感器里的两路摄像机中的哪一路采集图像。
CAN节点之间通讯成功的另一个关键是波特率的设置,不仅CAN总线上的各下位机节点要设置相同的波特率,总线与上位PC机相连的USBCAN接口卡也要有相同的波特率,这样才能保证通讯畅通。由于USBCAN接口卡内的CAN控制器SJA1000用的是16M晶振,而各传感器节点内的SJA1000与P89C668使用12M晶振,因此对于不同的通讯速率一定要计算出两种晶振都相一致的BTR0、 BTR1来设置总线波特率。
6 结束语
本文主要着重于多视觉传感器控制系统的设计研究,目前系统软硬件已初步调试完成,并能做到各个视觉传感器的快速切换传输视频图像,且切换是图像抖动较小,效果较好。本系统的精度主要由硬件决定,选用高精度、高分辨力的CCD摄像机和激光器,激光器投射出的线结构光越细光强分布越均匀,则测量精度越高。
计算机
,
传感器
,
采集卡
,
测量
相关帖子
电能管理系统改造方案介绍(2)———电能管理系统改造方案介绍
KDPExpert专家系统的设计与使用指南(续)
CHV100变频器在塔吊回转控制中的应用
车辆监测系统
求大神推荐
我用STM32外部计数定时测量频率,测量出来的数值有些不稳定,该怎么解决呢
求助安装USB-JTAG软件在JZ2440开发板ARM9系统上
【求助】荷载5kg的电子称测量到170g就截止测量了
智能电表、水表等测量仪器爱普生晶振选型指南
高薪诚聘单片机软件工程师15K-20K
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
抗干扰LED数码管显示屏驱动芯片/3线串行接
VK1Q68D是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片。内部集成有3线
抗干扰能力强/点阵数显LED屏驱动/数码管驱
VK1S68C是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3 线串
可支持14×4的点阵LED显示面板数码管LED驱
VK1624是一种数码管或点阵LED驱动控制专用芯片,内部集成有3线串行接口、数据锁 存
数显驱动器原厂-数显LED显示驱动芯片VK1620
VK1620B是一种数码管或点阵LED驱动控制专用芯片,内部集成有3线串行接口、 数据锁
抗干扰数显驱动数码管LED驱动芯片VK1618 SO
产品品牌:永嘉微电/VINKA 产品型号:VK1618 封装形式:SOP18/DIP18 概述 VK161
更多
精华推荐
数显屏驱动原厂-VK1668 SOP24抗干扰数显LED
抗干扰LED数码管显示屏驱动芯片/3线串行接
抗干扰能力强/点阵数显LED屏驱动/数码管驱
可支持14×4的点阵LED显示面板数码管LED驱
数显驱动器原厂-数显LED显示驱动芯片VK1620
抗干扰数显驱动数码管LED驱动芯片VK1618 SO
VK1616 SOP16/DIP16点阵LED数显驱动芯片/数
点阵数显驱动芯片/LED数码管显示屏驱动VK16
更多
社区学堂
抗干扰LED数码管显示屏驱动芯片/3线串
抗干扰能力强/点阵数显LED屏驱动/数码
抗干扰LED数码管显示屏驱动芯片/3线串行接
VK1Q68D是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片。内部集成有3线
抗干扰能力强/点阵数显LED屏驱动/数码管驱
VK1S68C是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3 线串
可支持14×4的点阵LED显示面板数码管LED驱
VK1624是一种数码管或点阵LED驱动控制专用芯片,内部集成有3线串行接口、数据锁 存
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表