微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CAN总线在自动生产线中的应用

CAN总线在自动生产线中的应用

时间:12-20 来源:互联网 点击:

0 引言

CAN—bus即控制器局域网,是国际上应用最广泛的开放式现场总线之一。CAN总线可提供高达1 Mb/s的数据传输速率,使实时控制变得易于实现。由于CAN总线具有很高的实时性能,因此已被广泛运用到各种自动化控制系统中。

1自动生产线简介

本文描述的自动生产线被广泛应用在工业加工制造领域,是一个集机、电、控制于一体的综合性的自动化测控系统。该自动生产线由6个生产加工单元(工作站)组成,每个站由一个单独的单片机控制器控制,如图1所示。

工件在生产线上从一站到另一站的传递过程如下:上料检测站将大工件按顺序排好后提升传递,同时检测工件颜色,通知后站,搬运站将工件从上料检测站搬至加工站,加工站将对工件进行加工并检测被加工的工件,产生成品或废品信息,通知下站,安装搬运站将成品送至安装工位,安装站再对工件进行安装,最后,由安装搬运站将安装好的工件送至分类站,分类站将工件按颜色类型送入相应的料仓并统计工件的数量和总量。如加工站有废品产生,则安装搬运站将废品直接送人废品收料站。

各工作站之间的信息(如准备好、忙、完成等)通过CAN总线进行相互传递,每个工作站成为CAN总线上的一个节点。

2 CAN网络结构

本系统CAN网络结构如图2所示,与总线连接的每一个节点中包含了CAN控制器和CAN驱动收发器。总线采用差分传输方式,以提高总线的可靠性和传输速率。CAN总线控制器选用Philips半导体公司的产品SJA1000,CAN收发器选用PCA82C250。

CAN控制器和CAN驱动收发器的接口电路见图3。

3 CAN通讯节点的软件设计

3.1 CAN总线用户通讯协议的设计

CAN包括CAN 2.0A和CAN 2.0B两种标准,CAN 2.0B完全兼容CAN 2.0A,二者的主要区别在于报文所含标识符的位数不同。CAN 2.0B有两种帧格式,标准帧和扩展帧,标准帧包含11位标识符,扩展帧包含29位标识符,而CAN 2.0A只有标准帧格式。

由于本系统中报文的格式相对简单,根据CAN总线技术规范CAN2.0A设计了用户通讯协议,CAN总线自动生产线控制系统的各个节点都按此协议传送信息。

用户通讯协议标准帧结构的标识符和数据域的定义(共10个字节)见表1。

报文由描述符区和数据区组成。按通讯协议的规定,描述符区由1字节~2字节构成,数据区由1字节~8字节构成,实际所需字节数可根据用户需要而定。在本系统中,帧结构由2字节的描述符和2字节的数据构成。

标识符字节1设定发送节点/接收节点,设定内容见表2。标识符字节2中ID.2~ID.0(高3位)无定义取0,RTR是远程发送请求位,低4位为数据长度码。

报文的标识符就象报文的名字,它在接收器的接收过滤中被用到。网络上所有的节点可以通过接收过滤确定是否采用该报文。接收过滤功能是可选项,如选择接收过滤功能,则应将接收屏蔽寄存器中各个位设置成“相关”,如不选择接收过滤功能,接收屏蔽寄存器中各个位应设置成“不相关”。当选择了接收过滤功能时,一旦节点接收到数据,则只有当接收码与标识符的ID.6~ID.3相同,接收的数据才会被节点采用。

报文中数据区第1个字节的内容设定为信息类别,第2字节为待发送的数据。信息类别根据被传送的信息类型进行编码,详见表3。数据用来区分工件的黑/白颜色、正品/次品等信息。

3.2 CAN通讯节点软件设计

CAN通讯节点的软件设计主要包括两个部分:CAN通讯模块程序、站内控制模块程序。站内控制模块程序包括单片机初始化和站内控制功能的实现以及对CAN子程序的调用。CAN总线通讯程序是指在单片机的控制下将本节点的数据发送到总线上,以及接收总线上发送给本节点的信息并将其存人单片机,主要包括CAN总线控制器sJAlooo的初始化、报文发送和报文接收3个部分。CAN通讯的数据传输按照用户自定义通讯协议的格式进行。

第2站(搬运站)的CAN通讯数据帧定义见表4。

3.2.1 CAN初始化子程序流程

CAN控制器初始化是CAN总线系统正常工作的前提,CAN控制器SJAlooO的初始化设置是在复位模式下进行的。由于篇幅关系,本文不作详细说明。

3.2.2 CAN发送子程序流程

报文的发送由SJAl000根据CAN总线协议自动完成,用户所要做的是把要发送的信息按特定的格式组成一帧报文,从单片机内的系统发送缓冲区送到SJA1000的发送缓冲区中,然后通过写命令寄存器的相应位启动“发送请求标志位”。在将系统发送缓冲区数据送到SJAl000的发送缓冲区前,应先判断总线上是否正在接收数据,还需判断一下上次发送是否成功,否则不能写入数据。

3.2.3 CAN接收子程序流程

报文的接收仍然由SJAlooO独立完成。在搬运站中,节点从总线上接收报文采用

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top