基于DeviceNet协议的伺服系统设计

网络协议

14人已加入

描述

  引言

  DeviceNet作为基于现场总线技术的工业标准开放网络,为简单的底层工业装置和高层如计算机、PLC等设备之间提供连接。 DeviceNet应用国际标准的控制局域网(CAN)协议,具有公开的技术规范和价廉的通信部件,使得其具有比其他现场总线低得多的开发费用。设备网采用总线供电方式,提供本质安全技术,广泛适用于各种高可靠性应用场合。

  本文主要研究基于DeviceNet的伺服系统的软硬件设计。通过CAN总线、单片机和高性能电机控制器ADMC401进行数据传输与控制,使伺服电机的性能更加稳定,能更好更灵活地地应用于数控系统中。

  CAN总线和DeviceNet协议的实现

  CAN总线协议及特点

  控制器局域网CAN为串行通信协议,能有效地支持具有很高安全等级的分布实时控制。CAN的应用范围很广,从高速的网络到低价位的多路配线都可以使用CAN。在汽车电子行业中,使用CAN连接发动机控制单元、传感器、防滑系统等,其传输速度可达1Mbps。同时,可以将CAN安装在卡车本体的电子控制系统里,诸如车灯组、电气车窗等,用以代替接线配线装置。由于采用了许多新技术及独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其特点概括如下[1]:

  l CAN为多主方式工作,网络上任一节点可在任意时刻主动地向网络上其他节点发送信息,而不分主从;

  l 在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最快可在134us内得到传输;

  l CAN采用非破坏总线仲裁技术。当多个节点同时向总线发出信息出现冲突时,优先级较低的节点主动退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其在网络负载很重的情况下,不会出现网络瘫痪情况(以太网则可能)。

  DeviceNet协议及特点

  DeviceNet是在1994年由美国的Allen Bredly公司开发的是基于CAN的一种现场总线,实现低成本高性能的工业设备的网络互连。DeviceNet协议特别为工厂自动控制而定制,它在美国和亚洲扮演了非常重要的角色。在欧洲,越来越多的系统方案使用DeviceNet来实现。

  DeviceNet规范在2002年12月被国家标准化管理委员会批准为中国的国家标准,于2003年4月开始实施。DeviceNet协议适用于最低层的现场总线,例如:过程传感器、执行器、阀组、电动机起动器、条形码读取器、变频驱动器、面板显示器、操作员接口和其他控制单元的网络。可通过 DeviceNet连接的设备包括从简单的挡光板到复杂的真空泵各种半导体产品。DeviceNet也是一种串行通信链接,可以减少昂贵的硬接线。 DeviceNet所提供的直接互连性不仅改善了设备间的通信,而且同时提供了相当重要的设备级诊断功能,这是通过硬接线I/O接口很难实现的。 DeviceNet具有多种特点[2]:

  l DeviceNet基于CAN技术用于PLC与现场设备之间的通信网络。它可连接开关、变频调速设备、固态过载保护装置、条形码阅读器、I/O和人机界面等,传输速率为125~500kbps;

  l DeviceNet使用的通信模式是:消息产生者(Producer)和消息使用者(Consumer)。传统的通信在消息传送上采用的技术式指定数据源和目标地址。DeviceNet使用的模型更为有效,它可使控制数据同时到达控制的每一个单元,可以更有效地利用网络的频带宽度。消息产生者一次发送的数据可被多个消息使用者使用,从而更有效的传送数据;

  l DeviceNet使用的通信协议为11位标识符,即所有的I/O消息都有自己的11位标识符ID,标识符ID分成四个消息组,各有不同用途ID中同时提供了多重优先权。工作时,总线上的设备监听网络上消息,当设备辨识出正确的标识符后,将接受该消息;

  l DeviceNet上的每一个设备可以随时连接或断开,而不会影响其他设备的正常运行。真正的开放性使系统扩充和改型非常方便。

  控制系统的构成

  为了实现伺服系统的快速实时控制,系统在设计上采用了单片机+DSP双CPU结构。在设计时将系统控制任务进行了划分:DSP完成实时性要求高的伺服控制任务,FLASH结构的8位单片机89C51完成实时性要求比较低的管理任务,单片机和DSP之间的通讯采用并行数据方式,由FPGA实现。同时 FPGA还要完成外部I/O信号管理、位置脉冲指令信号处理及计数、故障信号处理等功能。伺服控制系统的结构如图1所示。由图1可以看出,系统主要有以下几部分:伺服控制中心ADMC401;外设接口FPGA+单片机89C51;主电路以及开关电源电路[3]。下面分别说明。

  

伺服系统

 

  DeviceNet通信接口部分

  本文所设计的DeviceNet接口电路中,采用AT89C51ED2作为节点的微处理器,在CAN总线通信接口中,CAN通信控制器采用SJA1000,CAN总线驱动器采用82C250。

  图2为DeviceNet接口电路原理图。从图2中可以看出,电路主要由4部分构成:微控制器89C51、独立CAN通信控制器SJA1000、 CAN总线收发器82C250和高速光电耦合器6N137。微处理器89C51负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务。

  

伺服系统

 

  为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和RXO并不是直接与82C250的TXD和RXD相连,而是通过高速光耦 6N137后与82C250相连,这样就很好的实现了总线上各CAN节点间的电气隔离,从而保护了系统电路以及总线的信号传输。从整体性能来说,系统设计具有很好的通用性和实用性。

  微控制器AT89C51ED2用来实现通讯的应用层协议。它具有丰富的内存资源,4个8位I/O端口、3个16位定时/计数器、256字节暂存 RAM、9个中断源、4个优先级,此外还有2K EEPROM空间,系统不需要扩展外部程序存储器便可满足DeviceNet协议程序的容量要求。并且能够在×2模式(6个时钟/机器周期)下工作运行,本文中的设计即是在×2模式下。单片机通过访问SJA1000的寄存器来实现和上位机的通信。CAN控制器SJA1000的接收寄存器和发送寄存器用于暂时存放接收和发送的数据。单片机发送数据则通过设置SJA1000的命令寄存器发送命令位,接收数据是通过中断方式实现,SJA1000的INT引脚与AT89C51ED2的INT1引脚相连,使单片机能够实时响应CAN的中断请求。采样周期2ms由 AT89C51ED2的定时器中断产生。

  电机控制部分

  伺服电机控制电路部分采用高性能电机控制器ADMC401,它是美国模拟器件公司(ADI)推出DSP芯片中的高档产品。ADMC401是面向电机控制的高性能数字信号处理器,它以ADSP-2171为内核,辅以完备的电机控制外设。其中包括8路12位A/D转换系统、三相16位PWM产生单元、两路辅助PWM输出及用于位置反馈的增量式码盘接口。另外ADMC401还包括12路数字I/O口、事件捕获单元及内部定时器等设施,为开发快速、高精度的电机控制系统提供了完善的硬件设施。

  ADMC401内部提供了2K×24位的内部程序RAM、2K×24位的内部程序ROM和1K×16位的内部数据RAM;程序及数据RAM的内容可由其串口从外部ROM中以同步或异步方式调入。为了满足实际工程的需要,ADMC401还提供了外部存储器的扩展能力,用户最多可以直接寻址片外 14K×24位的程序存储器和13K×16位的数据存储器[4]。ADMC401是整个伺服系统的核心,具有高速的运算能力、较高的采样精度,外设配置性能和功能较强,能胜任实时性要求高的伺服控制任务。本系统用它来实现矢量变换、电流环、速度环、位置环控制以及PWM信号发生、各种故障保护处理等。

  系统软件设计

  上位机软件设计

  上位机主控计算机是整个系统的核心,通过CAN接口卡与CAN总线相连,负责系统的管理、运动规划以及通讯功能。其上位PC机软件设计包括网络管理,参数管理,状态管理三个部分。

  l 网络管理 设置CAN接口卡工作波特率和本机节点地址,同时初始化CAN控制器SJA1000,以及DeviceNet各个对象类,并且检查此网络中是否设置重复的节点地址。因为PC机的CAN卡初始化要涉及CAN卡与PC机的联系工作,所以要对CAN通讯适配卡的各个寄存器进行配置,设置中断向量、通信波特率和滤波接收码以及中断屏蔽字等参数,为正常通讯做好准备工作。另外此部分还要完成扫描网络中的节点,并与从机节点建立连接的功能。 DeviceNet是面向连接的网络,两个节点之间首先建立连接然后才能够通讯,本设计中只采用仅限组2的从设备建立连接,其建立连接是通过“分配预定义主/从连接组”来完成的。

  l 参数管理 完成伺服系统的各个参数字或者控制字的读取修改工作,这些参数包括伺服电机的内部参数Kp、Ki、Kd等以及针对雷达系统的参数: 雷达扇扫中心角度、扇扫范围、扇扫速度、手轮方式中的手轮与天线的转速比、运行模式选择(第26号参数,其中0—手轮方式,1—匀速扫描方式,2—扇扫方式,4—接收停方式)。一般情况下,对各个控制字参数的读写操作类似于对各个参数的读写操作。在本设计中为了简化软件设计,我们可以对31号参数的读写操作来完成对16个控制字的读写操作,实现过程如下:第31号参数为控制字参数,是由16个控制字按照STA-15至STA-0顺序组合而成的一个整型数,这样对控制字参数的读写操作的同时也就完成了对16个控制字的读写操作。

  l 状态管理 能够反应伺服电机当前的运动状态,如实际位置,速度指令,力矩反馈,速度反馈,指令偏差等。这样给我们观察伺服电机当前状态提供了一个直观方便的平台。

  下位机软件设计

  下位机通信部分的单片机完成I/O数据过程的自动控制作业,包括输入输出数据的解包下发、打包上传,以及故障事件记录、报警等工作。通信卡采用定时中断方式与CAN总线的控制卡节点频繁地交换各自通信缓冲区的数据,以确保系统I/O数据的实时性,同时缩短了整个系统响应时间。图3示出程序框图。

  

伺服系统

 

  下位机初始化完成后,则进入等待中断状态。下位机的通讯过程是通过单片机访问CAN控制器寄存器来实现的,单片机对CAN控制器的寄存器访问是作为单片机的外部存储器访问的,每个寄存器的地址为SJA1000的首地址与SJA1000内部相对地址之和。单片机采用中断方式接收数据。CAN控制器 SJA1000接收到上位机的数据并且当接收缓冲区有空余空间时,接收的数据被依次放在SJA1000的接收缓冲区中,这是有硬件自动完成的。当调用清除命令清除接收寄存器中的数据后,FIFO接收缓冲区会把数据填充到已清空的接收寄存器中,同时回答一个中断信号。单片机把这个中断信号作为单片机的外部接收中断,单片机响应接收中断后读出CAN控制器中的接收缓冲区数据并保存,再清空CAN控制器的接收寄存器。

  在设计本系统软件时, 开发工具使用Borland C++语言 。因Borland C++是一种可视化、面向对象的C++程序设计语言快速开发工具,具有简单直观和功能强大的特点。在Borland C ++集成开发环境下,可以方便的编写PC机的通讯程序。

  以PC机A作为主机,伺服驱动器和PC机B作为网络中的2个节点,设置主机节点地址和通讯波特率后,对网络进行扫描建立连接,可以正确扫描到两个在线节点,如图4是读取伺服驱动器各个参数值。

  

伺服系统

 

  结语

  实际运行结果表明:本系统具有可靠性高、实时性好、易于维护等特点,达到了设计所需的要求。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分