×
单片机 > 单片机程序设计 > 详情

基于CAN总线的网络化运动控制系统的研究

发布时间:2020-06-12 发布时间:
|

    1、引言

    运动控制系统是以机械运动的驱动设备—电动机为控制对象,以控制器为核心,以电力电子、功率变换装置为执行机构,在自动控制理论指导下组成的电气传动控制系统。在电气时代,电动机一直在现代化的生产和生活中起着十分重要的作用。在近年来,由于半导体制造设备等相关的电子制造设备市场大幅成长,而使得机器设备上的运动控制系统出现了以下几点技术需求:

    (1)多轴运动控制。机器设备因自动化程度提高而使得单一机器上所需要的轴数增多,一台设备上十几轴是常见的事情。在轴数变多后,如何协调各轴动作就是一个重要的课题。
    (2)体积要小。由于厂房空间的限制,机器的体积要求越小越好,机器内控制器的体积也就被要求愈来愈小,相对的走线空间也愈来愈小。
    (3)要更精确。随着半导体制程已经精密到100nm一下,在制程及检测相关设备所要求的运动精度也要更精确,其它如LCD设备,SMD制程设备也有相同要求。
    (4)要更稳定。因为所有设备的投资经费庞大,系统停机的成本就更显的突出,因此所有机器设备制造商都必须追求系统的稳定性。同时也必须考虑在组件损坏要维修时,必须能快速替换且不出差错。

    综合以上几点的需求分析可以看到,既要在一个控制器内进行多轴运动控制,又要控制器的体积更小,配线和维修要更容易,这些条件看来是相冲突的。可以这样说,现场总线技术便是应这些新机器设备的需求而产生的。

    2、现场总线运动控制系统通信特性

    用于运动控制的现场总线有两种通信控制策略:事件触发和时间触发。事件触发中,控制单元检测到事件发生后,根据预定的算法计算出正确的应答,然后将应答信息发送给数字伺服驱动器。从事件发生到应答信息的接收之间的延时必须是有限的,也就是最大值必须是可知的,它的值就是通信协议的实时性指标。但是,事件触发中的事件是随机的、不可预知的,所以导致现场总线通信的不确定性,系统中的各个站点会争用传输介质,导致通信的冲突和不可靠,很难保证高的实时性。事件触发通常是非周期性的,使用非周期性数据传输实现最为简单,但是也可以用周期性数据传输实现,此时,就必须标识哪个周期的数据为有效数据。

    时间触发通常是周期性地进行的,控制单元周期性地计算出控制数据,然后及时发送控制数据给伺服驱动器。控制和通信是通过一个全局时钟进行驱动的,系统的行为不仅在功能上得到确定,而且在时间上也是确定的,各站点不会争用传输媒介,整个系统是可靠的。时间触发控制中的通信周期时间应该等于控制周期时间,或者通信周期时间能够被控制周期时间整除。周期性的时间触发中,通信周期时间必须固定,不能有明显的波动,即数据传输必须有确定性,也称为实时性。

    总体而言,用于运动控制的现场总线通信协议的性能要求有三点:

    (1)可靠的通信,以适合工业现场恶劣的环境;
    (2)数据传输的实时性。周期性数据传输和非周期性数据传输都必须有很高的实时性,响应时间通常为(1~10)ms。
    (3)命令执行和状态反馈的同步性。为了达到各坐标轴的同步运动精度,需要各轴在收到命令值之后必须在同一时刻同时执行位置控制指令和同时采样当前位置,发送给控制单元。

    3、CAN总线运动控制系统总体设计

    CAN总线(Controller Area Network控制局域网络),是一种普遍的应用。通过CAN总线进行数据传输与控制,使伺服电机的性能更加稳定,能更好更灵活地地应用于运动控制系统中。


图1 CAN总线的伺服运动控制系统

    如图1所示,基于CAN总线的运动控制系统与控制系统典型结构相比,有两个显著的特点。第一是其控制对象为伺服运动控制对象,第二是其网络化控制器包括CAN总线通信媒介和CAN控制器节点两部分。多个CAN控制器节点通过CAN总线通信媒介平行互联为一个单层结构的基于CAN总线的伺服运动控制系统。当需要更多轴运动控制时,只需要简单的再增加新运动控制节点,把新的运动控制节点作为新的CAN总线节点挂接到CAN总线上就可以形成一个分布式多轴运动控制系统,而且无需在硬件上对原有的运动控制节点做任何的修改。也可通过互联网关与IE(Industry Ethernet)或Intranet/Internet上下互联为一个多层结构的网络化伺服运动控制系统。

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

    4、系统硬件设计

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


图2 基于SJA1000的CAN中线系统电路原理图

    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总线还使得系统具有很好的扩展性能。这样为向多轴或多点的分布式运动控制网络发展打下坚实的基础。

关键字:CAN总线  运动控制系统  总线通讯  SJA1000

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何为单片机选择合适的负载电容