首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于CAN 总线的网络化运动控制系统的研究
来源:本站整理  作者:佚名  2009-08-14 09:14:04




      基于CAN 总线运动控制系统的设计, 主要工作在于对CAN 控制器节点的设计, 包括硬件和软件两部分。硬件设计, 主要在于选择合适的芯片和硬件电路分别设计图1 所示CAN 控制器节点的5 个基本组成部分, 即主控制器、主控制器与传感器/ 执行器的接口模块、主控制器与CAN 总线控制器的接口模块、CAN 总线控制器和CAN 总线收发器。软件设计, 主要工作在于选择合适的系统软件和应用开发软件分别设计各种接口驱动软件、系统管理软件和控制功能软件。

4 系统硬件设计

      主控制器笔者采用AT89C51 单片机作为处理核心, 采用PCA82C250 作为CAN 总线收发器, 图2 给出了基于SJA1000的CAN 总线系统电路图。为了增强抗干扰能力, SJA1000 的TX0 和RX0 引脚并没有直接和PCA82C250 的TXD, RXD 相连接, 而是通过高速光耦6N137 后与PCA82C250 相连, 这样可以实现总线上各CAN 节点之间的电气隔离, 光耦6N137 的两侧使用完全独立的两组电源VCC 和+5V。
 


      SJA1000 与单片机的接口比较简单, AD0~AD7 直接连接到AT89C51 的P0 端口, RD、WR 和ALE 信号也直接和AT89C51的相应引脚进行连接, MODE 接+5V 设置SJA100 控制器为Interl模式。SJA1000 的片选信号CS 由AT89C51 的P2.0 决定, 因此系统中SJA1000 的寻址空间从地址0 开始, 可以使用此地址加上SJA1000 内部寄存器地址的偏移量来访问SJA1000 内部RAM空间。SJA1000 的中断输出信号INT 与AT89C51 的INT0引脚相连, 以便AT89C51 以中断方式或查询方式对报文收发作出响应。

5 系统程序设计

      基于SJA1000 的CAN 总线建立通信的过程包括系统初始化、接收和发送。

5.1 SJA1000 的初始化程序

      AT89C51 在上电后首先运行其自身的复位程序, 并在此后调用SJA1000 的配置程序。配置程序在设置SJA1000 的寄存器前, 必须通过读复位模式/ 请求标志来检查SJA1000 是否已处于复位模式, 因为要写入配置信息的寄存器仅在复位模式下可以被写入。初始化程序中, 首先将SJA1000 设为复位状态, 随后定SJA1000 使用PeliCAN 模式, CLKOUT 引脚输出频率为外接晶振频率的1/2, 为单验收滤波器模式。
      SJA1000 的初始化流程( 图略) 。
      在清除SJA1000 的复位模式/ 请求标志进入工作模式时,必须先检查标志是否确实被清除、是否进入了工作模式后, 才能进行下一步的操作。在进入工作模式后, CAN 控制器的中断可被使能, 并开始正常的发送或接收报文。

5.2 SJA1000 的报文发送接收

      根据CAN 协议规范, 报文的传输由CAN 控制器SJA1000独立完成。在报文的发送过程中, 单片机AT89C51 必须将要发送的报文送入系统发送缓冲区, 在将系统发送缓冲区中的数据移至CAN 控制器发送缓冲器之前, 必须判断发送缓冲器是否被释放。
      报文的接收由CAN 控制器SJA1000 独立完成, 收到的报文在接收缓冲器内, 同时将状态寄存器的接收缓冲器状态标志RBS 和接收中断标志RI 置位。如果报文接收被使能, 单片机可以将接收缓冲器内的新报文读出, 并存储到单片机的内存单元或外部数据存储器中, 然后释放接收缓冲器。SJA1000 报文接收过程可以由SJA1000 的中断请求或查询SJA1000 的控制段状态标志来控制。

6 小结

      分析传统的运动控制系统已不满足电子制造设备的要求和现场总线运动控制系统通信特性, 提出了基于SJA1000 的CAN总线的网络化运动控制系统方案, 为交流伺服的网络化研究和应用作出了一次有益的新探索。CAN 总线可以很好地满足现场总线运动控制系统对实时响应的较高要求, 同时使用CAN 总线还使得系统具有很好的扩展性能。这样为向多轴或多点的分布式运动控制网络发展打下坚实的基础。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:252,398.40000 毫秒