微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > CAN总线系统中可控制现场智能节点设计

CAN总线系统中可控制现场智能节点设计

时间:03-25 来源:互联网 点击:
1 引言

随着控制、计算机、通信、网络等技术的发展.传统的控制系统己越来越不能满足现代工业的要求。以信息技术为基础的网络集成自动化系统己经成为当今自动化领域技术发展的热点之一,它的出现标志着丁业控制领域又一个新时代的开始,并将对该领域的发展产生重要影响。现场总线就是顺应这一形势发展起来的新技术。本文研究设计了总线监控系统中的现场智能节点,智能节点通过执行应用软件要实现两项任务:一是能够与总线上的其它节点进行数据交换,二是能够按照通过网络或键盘下达的控制命令驱动步进电机按照要求动作。

2 现场智能节点的整体框架


图1 智能节点主程序流程图

对于CAN总线下的智能节点,为了满足及时指示步进电机执行运动.实时接收和发送报文,及时处理用户下达的控制指令等要求,程序采用的是顺序执行主程序和实时中断程序相结合的方式。软件设计分块进行,主要划分为以下几部分:CAN总线通信程序,显示及键盘输入程序,控制算法程序等。主程序流程如图1所示。

3 CAN总线通信程序与LED显示驱动

CAN总线通信程序是指在AT89C52控制下,模块将采集到的数据发送到总线上供CAN WEB SERVER或其他智能节点使用,或是接收由CAN WEB SERVER传送的由监控PC下达的控制指令。该部分软件的程序流程如图2所示,在通电或者复位后,主控制器首先对SJA 1000控制器进行初始化,建立CAN总线通信。CAN总线通信程序由三部分组成:SJA1000初始化,接受和发送。


图2 CAN通信程序流程图

3.1 SJA1000初始化

初始化是在程序运行前对SJA1000的丁作方式进行设定,     使其能够按照用户需要的方式进行CAN总线通信工作。

SJA1000 CAN控制器在通电后或硬件复位后,必须通过初始化设置以建立CAN通信。而且,SJA1000可以在主控制器工作期问被再次初始化,这可以通过发送软件复位请求来实现。系统上电后,CAN控制器在引脚上获的一个复位脉冲,似的进入复位模式。在开始对SJA1000各个配置寄存器进行设定之前。主控制器通过读复位模式,请求标识来检测SJA1000是否进入复位模式。因为单片机AT89C52的上电复位时问和SJA1000     的复位时间有偏差,单片机要等待SJA1000完成上电复位后才能对SJA1000配置寄存器进行配置,存有配置信息的寄存器只能在复位模式下才可进行写入。

SJA1000初始化程序在复位模式下,需要配置下面的寄存器:时钟分频寄存器,接受代码和接受掩码寄存器,总线十续寄存器,输出控制寄存器。在这些配置信息配置到SJA1000寄存器后,通过消除复位请求模式使SJA1000进入操作模式。

3.2 CAN发送程序

对SJA1000进行初始化建立CAN总线通信后,模块就可以通过CAN总线发送和接受CAN数据包。消息的发送由CAN控制器SJA1000根据CAN的规则自动完成,主控制器必须把要发送的信息送到SJA1000的发送缓冲器中,并设置“发送请求标识位”于命令寄存器中,发送过程既可南SJA1000产生的中断请求来控制。也可通过检测SJA1000控制部分的状态标识符来控制。

在本论文的设计中,当系统初次上电或硬件复位后,节点模块会主动向CAN WEB SERVER发送节点的状态信息,在以后的CAN通信中.则采用只有接收到CAN WEB sERVER的控制命令后,节点模块才会将节点数据作为响应发送到CAN总线上。因此,单个节点模块向总线上发送数据的频率不高,在编程时将发送数据根据通信协议写入发送缓冲器中,通过置位控制命令寄存器的发送请求位,就可以将数据发送到CAN总线上。发送流程如图3所示。

当多个节点响应CAN WEB SERVER的命令时,有可能产生同时向CAN总线上同一地址发送不同数据,从而导致个别节点不断累积发送错误而最终进入总线关闭状态这种错误的产生。为了避免这种错误的产生,基于CAN总线的特点:任何节点均可向总线发送数据,也可接收到总线数据,在程序中设计了这样的发送策略:将CAN WEB SERVER的接收掩码寄存器设置为全“1”,即可以接受总线上的全部数据,节点模块的待发送数据包的标识符由本节点的地址信息构成,即节点通过总线向自己发送了一个数据包,但同时义能够被CAN WEB SERVER  接收到,因CAN总线上的节点地址都是唯一的,故能够有效的避免前面所提到的错误。


图3 CAN发送程序流程。

3.3 CAN接受程序

CAN控制器SJA1000根据规则自动接收消息,接受到的消息放到接收缓冲器,此时接收缓冲器状态标示RBS置为“1",同时向A1r89c52产生一个接收中断,AT89C52响应中断后将消息保存到程序设置的消息缓冲中,同时释放接收缓冲器井对消息内容做出反应。中断控制接收数据的流程如图4所示。

3.4 LED数据显示和键盘输入程序

ZLG7289B内部含有译码器,可直接接收BCD码或16进制码,并同时具有2种译码方式,此外还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。


图4 中断控制接收数据流程

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

网站地图

Top