新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于CAN总线的步进电机多机控制系统的设计

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

作者: 时间:2012-08-10 来源:网络 收藏

  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节点模块流程。



评论


相关推荐

技术专区

关闭