基于SJA1000的CAN总线和AT89C51单片机实现运动控制系统的设计
2023-08-02 来源:elecfans
1、引言
运动控制系统是以机械运动的驱动设备—电动机为控制对象, 以控制器为核心, 以电力电子、功率变换装置为执行机构, 在自动控制理论指导下组成的电气传动控制系统。在电气时代, 电动机一直在现代化的生产和生活中起着十分重要的作用。在近年来, 由于半导体制造设备等相关的电子制造设备市场大幅成长, 而使得机器设备上的运动控制系统出现了以下几点技术需求:
( 1) 多轴运动控制。机器设备因自动化程度提高而使得单一机器上所需要的轴数增多, 一台设备上十几轴是常见的事情。在轴数变多后, 如何协调各轴动作就是一个重要的课题。
( 2) 体积要小。由于厂房空间的限制, 机器的体积要求越小越好, 机器内控制器的体积也就被要求愈来愈小, 相对的走线空间也愈来愈小。
( 3) 要更精确。随着半导体制程已经精密到100nm 一下, 在制程及检测相关设备所要求的运动精度也要更精确, 其它如LCD 设备, SMD 制程设备也有相同要求。
( 4) 要更稳定。因为所有设备的投资经费庞大, 系统停机的成本就更显的突出, 因此所有机器设备制造商都必须追求系统的稳定性。同时也必须考虑在组件损坏要维修时, 必须能快速替换且不出差错。
综合以上几点的需求分析可以看到, 既要在一个控制器内进行多轴运动控制, 又要控制器的体积更小, 配线和维修要更容易, 这些条件看来是相冲突的。可以这样说, 现场总线技术便是应这些新机器设备的需求而产生的。
2、现场总线运动控制系统通信特性
用于运动控制的现场总线有两种通信控制策略: 事件触发和时间触发。事件触发中, 控制单元检测到事件发生后, 根据预定的算法计算出正确的应答, 然后将应答信息发送给数字伺服驱动器。从事件发生到应答信息的接收之间的延时必须是有限的, 也就是最大值必须是可知的, 它的值就是通信协议的实时性指标。但是, 事件触发中的事件是随机的、不可预知的, 所以导致现场总线通信的不确定性, 系统中的各个站点会争用传输介质,导致通信的冲突和不可靠, 很难保证高的实时性。事件触发通常是非周期性的, 使用非周期性数据传输实现最为简单, 但是也可以用周期性数据传输实现, 此时, 就必须标识哪个周期的数据为有效数据。
时间触发通常是周期性地进行的, 控制单元周期性地计算出控制数据, 然后及时发送控制数据给伺服驱动器。控制和通信是通过一个全局时钟进行驱动的, 系统的行为不仅在功能上得到确定, 而且在时间上也是确定的, 各站点不会争用传输媒介,整个系统是可靠的。时间触发控制中的通信周期时间应该等于控制周期时间, 或者通信周期时间能够被控制周期时间整除。周期性的时间触发中, 通信周期时间必须固定, 不能有明显的波动, 即数据传输必须有确定性, 也称为实时性。
总体而言, 用于运动控制的现场总线通信协议的性能要求有三点:
( 1) 可靠的通信, 以适合工业现场恶劣的环境;
( 2) 数据传输的实时性。周期性数据传输和非周期性数据传输都必须有很高的实时性, 响应时间通常为( 1~10) ms。
( 3)命令执行和状态反馈的同步性。为了达到各坐标轴的同步运动精度, 需要各轴在收到命令值之后必须在同一时刻同时执行位置控制指令和同时采样当前位置, 发送给控制单元。
3、CAN 总线运动控制系统总体设计
CAN 总线( Controller Area Network 控制局域网络) , 是一种普遍的应用。通过CAN 总线进行数据传输与控制, 使伺服电机的性能更加稳定, 能更好更灵活地地应用于运动控制系统中。
如图1 所示, 基于CAN 总线的运动控制系统与控制系统典型结构相比, 有两个显著的特点。第一是其控制对象为伺服运动控制对象, 第二是其网络化控制器包括CAN 总线通信媒介和CAN 控制器节点两部分。多个CAN 控制器节点通过CAN 总线通信媒介平行互联为一个单层结构的基于CAN 总线的伺服运动控制系统。当需要更多轴运动控制时, 只需要简单的再增加新运动控制节点, 把新的运动控制节点作为新的CAN 总线节点挂接到CAN 总线上就可以形成一个分布式多轴运动控制系统, 而且无需在硬件上对原有的运动控制节点做任何的修改。也可通过互联网关与IE( Industry Ethernet) 或Intranet/Internet 上下互联为一个多层结构的网络化伺服运动控制系统。
基于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 总线还使得系统具有很好的扩展性能。这样为向多轴或多点的分布式运动控制网络发展打下坚实的基础。