微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于CAN总线的步进电机多机控制系统的设计

基于CAN总线的步进电机多机控制系统的设计

时间:08-10 来源:互联网 点击:

1 引言

  由于can总线的系统集成特点,基于汽车车身控制系统的can总线技术应用范围已经远远超越汽车控制领域,扩展到了机械工业、家用电器及传感器等各种其它测控领域,被国际公认为是重要的的工业现场总线。作为运动控制对象,步进电动机作为一种将离散的电脉冲信号转化成角位移的机械执行装置,具有结构简单、成本低、定位精度高和无误差累积等优点,已被广泛应用于各种自动控制系统中。随着微型计算机和微电子技术的发展,步进电机的这一性能必将得到更为广泛的应用。因此对于can总线的步进电动机控制研究具有十分明显的现实意义。

2 系统总体设计方案

  该系统可由一台pc机作为命令发送主机,通过bus-can接口转换模块接入can总线,各节点是有单片机控制的具有can总线数据收发功能的模块,来控制步进电机驱动器及电机终端。在pc机的应用层根据事先规定的格式把数据由usb接口发送给基于usb总线的通用设备接口芯片ch372的usb-can接口转换模块上的单片机,单片机处理之后,再把数据传送到连接着各个步进电机驱动器的节点的can总线上,各个节点的控制模块根据接收到的数据信息进行处理,实现对步进电机的速度、正反转及行程控制。图1为本设计的系统方案图。

图1 系统总体方案图


3 硬件设计方案

  系统的硬件包括usb-can接口模块和can节点接收模块电路的设计。

  3.1 usb-can接口模块电路的设计

  bus-can接口模块主要是由51单片机、ch372、sja1000及82c250组成,主机通过ch372把数据发送到单片机,单片机再把数据通过sja1000发送到can总线上。图2中给出了从pc机的usb口到can总线的主要元件及其连接。图2及图3中的vdd、vcc均为+5v直流电源,ch372有支持两种电源,+5v和+3.3v,本设计中使用的是+5v,可以直接从usb口获得,简化了电路设计。与单片机连接的ch372和sja1000通过片选信号实现互不干涉的读写过程,完成各自的任务。

图2 usb-can接口转换模块原理图


  can控制要实现其功能,必须具有外围扩展接口,构成完整的can通信系统,本设计选用pca82c250器件作为can控制器的sja1000和物理总线间的接口,提供总线的差动发送和接收能力,处理来自canh和canh线的信号,并将处理后的信号传至控制单元的can接收区。为了保护芯片并提高抗干扰能力,在控制器sja1000和82c250之间加入高速光电隔离器6n137。can总线网络两端要接120欧姆的匹配电阻,可大大的提高通信的抗干扰性和可靠性。

  3.2 can节点模块电路的设计

  can节点模块的can接口部分与usb-can接口转换模块的can接口部分的电路设计是一样的,如图3所示。单片机把接收到的数据处理之后,从p1.0、p1.1表现出来,分别输出电机转动方向信号和频率及个数一定的pwm脉冲信号提供给电机驱动器,实现电机的控制。为了提高抗干扰能力,加光电隔离器tlp5621,因为输出的数字信号频率不是很高,tlp5621的转换时间已满足要求。为了电机运行的安全性,可在电机负载周围合适的位置设置两个机械急停按钮,负载发生故障时按下按钮,通知单片机停止pwm输出,实现电机故障急停。

图3 can节点模块电路原理图


4 软件设计方案

  4.1 通信协议

  pc机客户端应用软件发送相应的控制命令后,利用计算机应用层提供的ch372接口协议,usb端口会依次向下发送一个或多个双字节的数据信息,两个模块中的单片机处理各自接收到的数据,实现电机控制。每一个双字节数据位的定义如下:

  (1)电机选择:每一个不同的高字节数据和各个can节点的sja1000中的验收代码寄存器的值一一对应,可以使低字节的控制命令准确的到达对应的电机驱动器。

  (2) 电机启停选择:1为启动,0为停止。

  (3) 电机正反转选择:1为正转,0为反转。

  (4) 电机速度选择:从00到11分别设有四个档位的速度。通过改变脉冲周期改变速度。

  (5) 电机行程选择:从0000到1111分别代表十六个不同行程的脉冲数。

  4.2 软件流程

  pc机发送的每一个双字节数据都是先发高字节,后发低字节,usb总线接口芯片ch372选用单向数据流通讯方式,接收完数据块后,以外部中断请求方式通知单片机接收数据,单片机应答后进入中断服务程序,把接收到第一个双字节数据的高字节写入正处在复位模式的can控制器sja-1000的数据发送缓冲区的标识码字节1的地址,低字节写入can控制器sja1000的数据发送缓冲区的tx数据1的地址,can控制器sja1000由复位模式进入工作模式,并发送数据到can总线,数据发送完毕并对方收到后,can控制器回到复位状态,把接收到的下一双字节数据的高字节写入正处在复位模式的can控制器sja1000的数据发送缓冲区的标识码字节1的地址,低字节写入can控制器sja1000的数据发送缓冲区的tx数据1的地址,can控制器sja1000由复位模式重新进入工作模式,并发送数据到can总线……,直到读到的ch372缓冲区中所有数据发送完毕,单片机退出中断,等待下一次中断。图4为转换模块程序流程。

  在can节点模块数据接收端,单片机接收到saj1000缓冲区的数据后,通知对方收到数据并清空sja1000接收缓冲区,然后进行数据处理,通过单片机i/o口控制电机动作,数据处理完后,准备下次数据接收。图5为can节点模块流程。

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

网站地图

Top