基于CAN总线控制器SJA1000的自动络筒机通信系统方案
扫描二维码
随时随地手机看文章
1、 引言
随着纺织工业技术进步,纺织机械日益趋向成套化、自动化和系统化。自动络筒机是纺织工业上档次的关键设备,起着承上启下、改善纱线性能的重要作用,它是纺部的整理设备和织部的准备设备,机电气一体化,自动化程度高,速度快,生产效率高。自动络筒机是一种具有高速、高产、高效、高质和高自动化功能,并综合了最新机械、电子、材料、仪表及计算机信息处理和控制等技术的机电一体化产品。自动络筒机的出现,从根本上改变了普通络筒机的面貌,其生产的筒子卷装大,络纱速度高,对纱线的络纱全过程自动化控制程度和劳动生产率高,从而成为机械、电子、气动、仪表和计算机信息处理相结合的高新技术产品。自动络筒机是科技含量最高的纺织机械设备,有“纺织机械皇冠上的明珠”之称。
CAN总线是一种有效支持分布式控制系统或实时控制的串行通信网络,是一个多主总线,总线上的各个节点都有权随时向其他节点发送信息,总线冲突时通过总线仲裁机制来决定占用总线的节点。CAN能够使用多种物理介质传播,例如双绞线、同轴电缆、光纤等。最常用的就是双绞线。CAN总线描述的是 ISO/OSI七层协议中的第一层和第二层的高速协议。目前,CAN 总线的规范常见的是2.0A和2.0B版本。本自动络筒机通信统中采用的是2.0B扩展帧,29位标志符。
CAN中的信号包括帧起始、仲裁场、控制场、数据场、CRC 场、应答场、帧结尾等部分。报文传输由数据帧、远程帧、错误帧、过载帧、表示和控制。数据帧/远程帧通过帧间空间相分隔。信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN_L高表示逻辑 “0”,称为“显性”,此时,通常电压值为:CAN_H = 3.5V 和CAN_L = 1.5V 。
2、基于SJA1000的自络筒通信系统设计
2.1、SJA1000简介
SJA1000是Philips公司生产的独立CAN 总线控制器,它是早期的PCA82C200 的替代产品。它与 PCA82C200在管脚、电气特性上完全兼容,不仅有 和PCA82C200一样的基本CAN (BasicCAN)工作模式,而且新增加了增强CAN ( PeliCAN)工作模式,这种模式支持具有很多新特性的CAN2. 0B 协议。SJA1000是一种应用于汽车和一般工业环境的独立CAN总线控制器,经过简单总线连接可完成CAN总线的物理层和数据链路层的所有功能。其硬件与软件设计和PCA82C200的基本CAN模式BasicCAN兼容。同时,新增加的增强CAN模式PeliCAN还可支持CAN2.0B协议。SJA1000的主要特性如下 :1、管脚及电气特性与独立CAN总线控制器PCA82C200兼容 ;2、软件与PCA82C200兼容(缺省为基本CAN模式);3、扩展接收缓冲器(64字节FIFO);4、支持CAN2.0B时支持11和29位标识符;5、位通讯速率为1Mbits/s;6、增强CAN模式(PeliCAN);7、采用24MHz时钟频率;8、支持多种微处理器接口;9、可编程 CAN输出驱动配置;10、工作温度范围为-40~+125℃。
2.2、CAN通信系统中硬件设计
CAN控制模块主要由接口管理逻辑、发送缓冲器、接收缓冲器(RXFIFO)、接收过滤器、位流处理器 (BSP)、位时序逻辑 (BTL)和错误管理逻辑(EML)组成。
本项目中自动络筒机控制系统中共有60个单锭,通过上位机来对各个单锭进行控制,自动络筒机中通信系统硬件框图如图1所示。
根据自动络筒机通信系统的功能及要求,选SJA1000作为CAN控制器,并且使用了CAN控制器接口芯片PCA82C250,PCA82C250是 CAN协议控制器和物理总线之间的接口。此器件对总线提供差动发送能力,对CAN控制器提供差动接收能力。整个系统以Atmel AVR单片机Mega64L。 ATMEL公司的AVR单片机,是增强型RISC内载Flash的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便。AVR单片机采用增强的RISC结构 ,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令。本系统采用的AVR mega64L还具有:用32个通用工作寄存器代替累加器,从而可以避免传统的累加器和存储器之间的数据传送造成的瓶颈现象;一个时钟周期执行一条指令;可直接访问8M字节程序存储器和8M字节数据存储器寄存器等特点。因此,采用ATMEL公司生产的AVR位单片机Mega64L机作为控制系统的主控制器是十分理想的选择。SJA1000在自络筒通信系统中单锭的硬件配置与CAN总线接口的电路如图 2示。硬件电路中使用 PCA82C250的目的是为了增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰,实现热防护等。
SJA1000在电路中是一个总线接口芯片,实现从上位机PC-CAN接口到现场微处理器之间的数据通信。对于微处理器而言,SJA1000是一个总线接口,SJA1000片内的存储单元相对Mega64L来说是片外的数据存储器,因此,可以按照扩展片外数据存储器的形式来访问SJA1000的寄存器地址。Mega64L是CAN控制器的微处理器,把Mega64L的ALE、RD、WR和 SJA1000的ALE、RD、WR相连就构成一个最小系统节点。Mega64L通过地址总线经GAL译码来选通 SJA1000,并由此决定CAN控制器各寄存器的地址,通过读、写外部数据存储器的形式来访问 SJA1000。在系统中我们将SJA1000的TX1脚悬空,RX1引脚接地,形成CAN协议所要求的电平逻辑。该电路的主要功能就是通过CAN总线接收来自上位机的数据进行分析组态,然后下传给下位机的控制电路实现控制功能,当智能控制系统接收到下位机的上传数据,SJA1000的中断输出INT脚就会被激活,出现一个由高电平到低电平的跃变,产生一个中断,从而引发微处理器Mega64L产生中断,通过中断处理程序接收每一帧信息并通过CAN总线上传给上位机进行分析,以便及时纠正误码、错码。
在进行电路设计时需注意:为进一步提高系统抗干扰能力,在CAN控制器SJA1000和CAN控制器接口PCA82C250之间加接6N137光电隔离芯片,并采用DC-DC变换器隔离电源;通信信号传输到导线的端点时会发生反射,反射信号会干扰正常信号的传输,因而总线两端两个124欧姆电阻对匹配总线阻抗起着相当重要的作用,忽略掉它们,会使数据通信的抗干扰性和可靠性大大降低,甚至无法通信;PCA82C250第8脚与地之间的电阻RS称为斜率电阻,它的取值决定了系统处于高速工作方式还是斜率控制方式。把该引脚直接与地相连,系统将处于高速工作方式。在这种方式下,为避免射频干扰,建议使用屏蔽电缆作总线;而在波特率较低、总线较短时,一般采用斜率控制方式,上升和下降的斜率取决于RS的阻值。[!--empirenews.page--]
2.3、系统软件设计
本项目通信系统中软件设计包括两部分:上位机和下位机。上位机主要通过人机交互向CAN总线发送信号给各单锭,下位机软件主要是Mega64L接收CAN总线信息后,完成控制单锭相应动作的任务,比如张力盘增加或是减少张力等等事件。这里主要介绍单锭中各CAN的软件实现。
系统上电初始化:系统软件设计的指导思想是系统上电后首先对Mega64L和SJA1000进行初始化,以确定工作主频、波特率、输出特性等,然后通过查询方式获取模数转换采样值,并把该值通过SJA1000传送到CAN总线上由上位机进行显示控制,CAN发送通过中断方式向总线发送信息,而对CAN总线上来的信息也采用中断方式,系统每接收到一帧信息,便产生一次中断以触发微处理器进入中断,在中断服务程序中读取该帧信息并传送到现场。为防止出现死机和干扰,程序中还采用看门狗技术进行定时监控。
对CAN控制器进行初始化,实际上就是对ACR(验收码寄存器)、AMR(验收屏蔽寄存器)、BTR0(总线定时寄存器0)、BTR1(总线定时寄存器 1)、OCR(输出控制寄存器)这些寄存器进行相关操作。只有当控制寄存器CR中的复位请求位为高时,访问才被允许,否则既写不进去,也读不出正确的内容。对CR进行第一次写操作,要设定将要开放的中断类型,并置位复位请求,允许初始化开始。对ACR、AMR进行写操作,要界定对什么样的报文予以接收,因此有时称它们为验收屏蔽滤波器。当满足条件:“ACR与报文标识符的高 8位在AMR为‘0’相关位上对应相等”或 “AMR=0FFH,即ACR的所有位均为不相关(或屏蔽)位”,并存在空的收发缓存器时,完整报文可被正确收发。
发送报文:当等待发送的报文成功发送或被放弃之后,发送缓冲区被释放并产生一个发送中断。在中断处理中,必须检查状态寄存器的发送完成标志(TCS) ,以确定之前的发送是否成功。未成功表示发送被放弃,在这种情况下CPU对放弃的发送执行一个特殊的处理,例如重复发送被放弃的报文。中断发送报文流程图如图3。
接收报文:对于给出的控制器,主要流程在中断控制的报文接收之前必须使能CAN控制器的接收终端和CPU的全局中断。接收中断使能标志(RIE)位于中断使能寄存器中。
如果CPU已经接收到一个报文,该报文通过验收滤波器并放入接收FIFO,则产生一个接收中断。这样 CPU能够立即响应,将这个接收到的报文送到自身的报文存储器,并置位命令寄存器的释放缓冲标志RRB。接收缓冲器中其他的报文将引起新的中断,所以没有必要在一次中断过程中把接收缓冲器FIFO中的所有有效报文读取出来。不过,在接收中断过程结束时,CPU 可以通过读接收缓冲期状态标志(RBS)来检查是否还有其他报文存在。这一点在使用接收级中断(Receive Level Interrupt)时通常是有用的。如图3所示,整个接收的过程可在中断服务程序中完成而不需要与主程序发生交互作用。
3、总结
目前,自动络筒机中大量地应用先进电子技术、自动控制技术等,对其通信控制系统也提出了更高的要求。CAN总线技术及其高性能、高可靠性及其独特的设计,已成为现场总线家族中最有希望的总线技术之一。本系统中将高可靠性的CAN-bus和性价比高、处理能力强大的AVR有机结合,使自动络筒机通信系统在传输速度、实时性、差错率控制、可靠性上都有很好的效果。
本文作者创新点:CAN总线以其卓越的特性、极高的可靠性和独特的设计,在工业过程监控设备的互联方面得到广泛的应用,受到工业界的广泛重视,并被公认为是最有前途的现场总线之一。作为通用、有效、可靠及经济的平台,CA N总线也已经广泛地受到了欢迎。本文所设计的基于Atmel ARV系列增强型单片机Meag64L和SJA1000控制器为核的CAN总线已经投入使用,具有简单、灵活、使用方便等特点。