关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 多视觉传感器CAN总线检测系统的设计

多视觉传感器CAN总线检测系统的设计

作者: 时间:2012-03-07 来源:网络 收藏

节点的软件

节点的 软件主要包括三个部分: 节点初始化、报文发送和报文接收。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 总线由传感器控制单元自动调节,以适应现场环境光强的变化。本文所设计的多视觉传感器测控系统,可以广泛用于各种工业现场实时在线视觉测量系统中。

风速传感器相关文章:风速传感器原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭