步进电机与pc通讯时提示crc check crc32error,是什么原因

当前位置: >>
基于CAN总线的电机群控制系统研究
长沙理工大学 硕士学位论文 基于CAN总线的电机群控制系统研究 姓名:李M 申请学位级别:硕士 专业:凝聚态物理 指导教师:唐立军
摘要大尺寸切割机等工业生产需要对电机群实行协同控制,传统的电机群控 制系统大多采用控制器与电机驱动器一对一的脉冲控制模式,这种模式控制 线路复杂、抗干扰能力差、容易丢失脉冲或引进干扰脉冲、可靠性低
。 本文针对大尺寸切割机电机群同步控制需要,设计实现了一款基于CAN 总线的电机群同步控制系统。该电机群控制系统以功耗低、处理速度快的STM32 为运动控制器,以四个步进电机为控制对象,各电机控制模块之间通过CAN总 线实现通信。该电机群控制系统的硬件电路主要包括主控制器电路、总线网络上 CAN接口电路、电机驱动电路与通讯电路。 设计了一套适合该系统的CAN总线应用层通信协议。选择使用适合电机群 系统的CAN2.0B协议标准帧格式,制定了11位标识符的分配规则和通讯网络中 的管理规范,研究了报文接收过滤器的配置和CAN通讯过程中纠错查错方法。 完成了系统的软件设计和调试。编制了主函数程序、电机驱动程序、收发报 文程序等软件。采用时间分割算法,通过镜像编程的方法实现直线和圆弧插补。 为方便实验验证,选用两个电机为试验对象,对系统进行多机协同控制测试。 主控制器向两节点电机的控制器发送指令,两电机均可收到控制信号,但在没使 用本文编制的CAN总线应用层通信协议时,两节点电机的同步误差在370us左右, 误差相对来说比较大,使用本文的CAN总线应用层通信协议后,两节点电机的 执行命令的时间差在20us左右。表明本设计编制的CAN总线应用层通信协议可 确保系统的同步性和通信的稳定。关键词:电机群同步控制:CAN总线;STM32;同步误差 ABSTRACTBig size cutting machine and other industrialproductionneedtoimplementusescooperative control motor group。The traditional motor control system mostlycontroller and motor drivethis mode isone-to-oneimpulsive control mode,the control circuit ofability,easy to lose pulseorcomplex,poor anti―interfereimportinterference pulse,low reliability. This article in view of the large size cutting mechanical and electrical machines synchronous control need,designedon amotor group synchronous control system baseduseCAN bus.The motors control systemSTM32asmotion controller which is lowaspower consumption,high processing speed,applies four step motors the motor control modules realize communication throughacontrolobject,CAN bus.The hardwarecircuit of the motors control system consists of main controller circuit,bus networkCAN interface circuit,motor drive circuit and RS485 circuit communicated with PC. A setof CAN bus application layer communication agreements whichusearesuitable for the system have been designed.we choose toCAN2.0 B protocolstandards frame format suitable for the system,have established the ll identifier distribution researchedrule and standardized of themanagement of communication network,havepacket receiverconfigurationfilteran,derrorcorrectionerror―detection method during CAN communication.This paper has completed software design and debug of the system,the mainfunction program,motor driver program,and receive and dispatch messageandSOprogramon.Itusestime segmentation algorithm,realizes straight line and circularinterpolation through the mirror image programming method.For the convenience of experiment,choosing two motor for test the system byobj ects,testingtomulti-motor contr01.The main controller sends instructionscanthecontroller of the two nodes motor,all of the two motors if don’tusereceive control signal,butCAN bus application layer communication agreements compiled in thisapaper,the synchronization error of two nodes motor is in about 3 70 US,which isrelativelylarge.Whenusing CAN bus application layer communication agreements,the delta.T of executive command between the two nodes motor iS in about 20 US.Itshows that the design of CAN bus application layer communication agreements in this papercan ensurethesynchronieityofthesystemandthestabilityofthecommunicati on. Key words:motor cooperative control;CAN bus;STM32;Synchronizationerror 第一章绪论1.1研究课题背景和意义多电机同步控制系统在实际生产过程中的应用相当广泛,如配料、工业切割、 机械手臂、传动等生产过程,都需要多台电机驱动。生产的过程及产品的质量与电 机群系统的控制精度和多台电机之间的协同控制效果有着很密切的关系。如何提 高管理便捷度和电机群控制系统的控制性能是迫切需要解决的问题Il】。 尤其是在大工件切割加工过程中,由于电机比较多、分布比较广,采用传统 的控制器与电机驱动器一对』的脉冲控制模式,带来抗干扰能力差、在控制过程 中脉冲容易丢失或引进干扰脉冲、可靠性低、控制线路复杂等缺点。而智能型总 线式多电机协同控制系统大多依赖于进口。但是由于进口设备针对全球销售,很 难考虑到我国用户的特殊要求,存在价格比较昂贵、维修费用高、周期长等不足。 因此,深入研究基于CAN总线的电机群控制系统,提高其同步控制性能具有非常重要的意义。1.2多电机同步控制系统研究现状 1.2.1多电机同步控制在现代工业飞速发展的2l世纪,数控生产技术逐渐取代了传统的人力劳作。 多电机同步控制作为数控技术的一个重要分支,在生产中应用也日渐广泛。很多 生产设备都需要多台电机来驱动,诸如切割加工、造纸、印刷设备、垂直升船机、 印染设备等【21。随着需求越来越大,电机群同步控制技术也飞速发展起来。 电机同步控制是指按照一定比例协调多个电机的位置、运转速度,使其保持 同步运行的关系,一般可以分为三类:(1)、控制系统中每个电机的运行速度完全 相同;(2)、控制系统中每个电机运行速度不完全一样,而是保持一定比例关系运 行;(3)、控制系统中每个电机运行时速度的差值始终是恒定的。一般有两种方式 能够维持多电机同步运行13J:一种是机械传动方式:另一种是电方式。1.2.1.1机械传动方式机械传动方式的控制方法相对其他方式而言比较简单,形成时期早。简单地 说机械传动是用一台功率比较大的电动机拖动一根很长的机械总轴,系统中所有 的电机都通过齿轮箱胶合在总轴上,各个分区单元电机都接收一致的输入信号【4J。 因为机械传动方式基本上都是由机械部件实现的,所以它具有固有的同步性能。 但是也有一些不足之处【5】: (1)只用一个电动机拖动好几个负载,那么分到各个负载上的功率就比较 小了,使得传动范围和距离收到了限制; (2)机械总轴可能会发生振荡现象;(3)由于采用链条、齿轮等传动机构随着使用次数增多,存在着设备磨损的情况,给同步控制的精度带来影响。1.2.1.2电方式基于电方式的同步控制应用灵活性高,使用范围广。在切割机电机群控制系 统领域,基于电方式的同步控制具有极其深刻的意义。基于电方式的同步控制又 可以分为以3几种【6】:主令多电机同步控制,主从多电机同步控制以及交叉耦合 多电机同步控制。主令和主从都属于非耦合的同步控制方式。 1.2.1.2.1主令多电机同步控制 文献[6】提到主令多电机同步控制系统中,系统的输入信号直接发送给各个电 机单元,每个单元获得一致的信号,相互之间各不影响。此种同步方式完全没有 耦合,故每个电机单元只是接收系统的信号,不受其它因素的干扰。但是正因为 这种直接发送、信号~致的方式,控制系统也存在着缺点。当某一个电机单元出 现干扰时,同步效果就会遭到破坏。主令同步控制原理图如图1.1所示:W1图1。l主令同步控制原理圈1.2.1.2.2主从多电机同步控制 在一些系统中,只有某一台电机容易受到干扰,而其它电机基本上不会受到 干扰,那么可以把容易受到干扰的电机的输出信号作为其它电机的输入信号,使 从电机跟随主电机状态,这即是主从同步控制方式【7J。这种方式对于每个分布系 统的控制目标比较一致的时候才适用。主从同步控制原理图如图1.2所示:2 W1图1.2主从I司步控制原理图1.2.1.2.3交叉耦合同步控制 文献【7】提出交叉耦合同步控制是指将两台电机的位置或速度信号进行比较 得到一个差值,将该值作为附加的反馈信号。将这个反馈信号作为跟踪信号,根 据此信号,控制系统可以随时根据任意一台电机的负载变化进行调整,以此来提 高同步控制的精度和性能。但是,这种控制方式只适合两个电机的控制系统,若 是有多个电机,该种方法就不太适用。图l-3为交叉耦合同步控制示意图:图1.3交叉耦合同步控制原理图1.2.3现场总线在多电机同步电机控制应用.现场总线是从上世纪八十年代蓬勃发展起来的一门新技术,它应用在生产现场、控制设备之间,可以实现多个节点之间双向串行通信。在传统的控制领域中, 一般使用的是“集中控制”,即设有专门的控制室,控制功能是分离的。这种控制 模式可靠性低并且容易失控。很快地,随着生产的需求、技术的革新分布式、分 布式控制随之发展起来。集中的计算机控制系统演变成多个分散式的智能仪表和 计算机,模拟传输信号也逐渐被数字传输信号所取代18】。而对各个设备之间信息 的传输、控制也有了更高的要求。基于现场总线的控制方式大大提高了多电机同3 步控制的实时性、数据传送的准确性。现今,市场上基于CAN、PROFIBUS、 CC.LINK总线的同步控制应用比较广泛。 (1)Profibus是作为德国国家标准DIN 19245和欧洲标准prEN 50170的现 场总线。Profibus由Profibus.FMS、Profibus.DP和Profibus.PA三各部分组成。 Profibus.FMS可以用来传递不受控信息;Profibus―PA适用于采集和控制自动化的 信号;Profibus.DP一般用于自动化制造业中19】。Porfibus容易保养和维修、应用 范围广泛、是国际性的、完整的、开放的现场总线标准。 (2)CC.Link是Control&Communication Link(控制与通信链路系统)的缩 写,1996年11月由日本三菱公司推出,发展迅速,在亚洲市场占有较大比重。 在其系统中,信息传递速度高达10Mbit/stlol。该种总线具有以下优点:性能好、 简便好用、节约成本、应用广泛。 (3)CAN是控制网络Control Area Network的简称,最开始是用于汽车产业, 由德国BOSCH公司推最早出,继而得到了Intel、Motorola、NEC等公司的支持 Il¨。CAN总线的出现为分布式控制提供了强劲的技术支持,由于其可靠性高、灵 活性强和实时性好的优势,CAN总线的使用已不仅仅局限于汽车行业,在航天航 海、机器人、机械制造、数控机床领域都得到了广泛的应用。 综上所述,伴随着工业生产的需求,多电机同步控制方式也得到了蓬勃的发 展。其中机械方式完全由机械部件来实现同步控制,控制方法虽然简单但是系统 结构笨重,消耗材料。电方式在控制精度上有了提高,但是基于电方式的电机控 制系统在硬件设计好以后,很难再改变,无法扩展负载电机,灵活性不高。随着 网络技术的发展,总线技术在多电机同步控制领域中得到很好的应用。智能总线 型控制系统灵活性好,网络中节点可以根据用户的需求增减也就意味着系统中负 载的电机数量可以改变。1.3文章章节安排本文针对大尺寸工件的切割加工中电机群同步控制问题,探讨运用CAN现 场总线和网络功能,设计一款多电机协同控制系统。控制器采用一对多的脉冲发 送模式,通过总线控制四个电机协同运动,通信速率为1Mb/s,控制距离可达到 数十米。 论文具体的章节安排如下: 第二章电机群控制系统的总体方案设计 第三章电机群控制系统的硬件设计与实现 第四章电机群控制系统的应用层通信协议设计 第五章电机群控制系统的软件设计与实现 第六章实验调试及结果讨论4 第二章电机群控制系统的总体方案设计2.1控制系统总体方案要求电机群控制系统要求系统中各个模块的控制器都可以快速地完成信息的解 析,正确地执行命令,并且各模块之间能够实时通信,达到电机协同运动。控制 系统方案的设计可以从两方面考虑:第一,选择合适的控制模式实现对多台电机 的控制;第二,设计一个完整的通信网络完成各个模块之间的信息交互。2.2控制系统总体方案设计 2.2.1电机群控制系统控制模式设计,在国内外电机控制系统中,常用到的控制系统模式有两种:一种是一对一脉 冲直接控制模式;另一种是智能型总线控制模式。 l、脉冲直接控制模式是控制器向每一个驱动器直接发送运行脉冲。这种控制 模式在电机驱动相距比较远,需要大尺寸工件的切割加工中,存在抗干扰能力差, 在控制过程中容易丢失脉冲或引进干扰脉冲,可靠性低;控制线路复杂,给生产 与维护带来不便,并且成本高。 2、智能型总线控制模式,采用现场总线,把传统的脉冲传送改为智能型总线 数据传送并具有数据完整性校验和重发机制等纠错功能。摒弃控制器与电机驱动 器一对一发送脉冲的传统模式,而是选择一个总控制器通过总线以广播形式发送 脉冲指令。各控制器均是总线上的一个节点,形成一个完整的通讯网络。该种模 式打破了传统控制系统脉冲直接控制模式,具有实时性强、可靠性高的优点。 在本系统选用智能型总线控制模式。这种系统由主控制器和下位运动控制模 块组成。每个下位运动控制模块都是一个独立的单元,拥有控制器,通信接口等。2.2.2电机群控制系统通讯方案设计目前,在电机群同步控制系统中并行通信、RS485通信、USB通信、RS232 通信、CAN总线通信使用频率比较大。其中并行通信的数据传输速率虽然大,但 是占用硬件资源多,需要大量的传输线,显然不适合于多电机控制系统。后面4 种都属于串行通信,数据传输速率没有并行通信那么快,但是传输线路少、接口 电路简便,能够节约硬件资源、市场占有率比较大。 RS232总线应用广泛、线路简单是一种技术已发展得比较成熟的通信方式, 但是通信距离一般小于15m,通信距离短、抗干扰能力差、电压较高,与其它电 路连接不方便,必须转换才能连接。 RS485通信距离远,传输速率快,其缺点是只有主从式结构系统才可以使用, 通信方式也只能选择主站对多个从站通信的方式进行,只有在主站向从站发出消 息以后,从站才能像主站发消息;并且没有冲突检测和纠错机制,系统的实时性 和可靠性比较差。 USB是最近几年得到了广泛使用,其传输速度快、连接灵活、操作方便;但 是大部分USB产品只有一个输出口不能连接下一个USB:USB在实际应用的时 候一般串联到4至5个设备,就可能引起某些设备出错,这与其理论上能串联127 个设备不相符合。另外,USB供电能力也比较弱,无法连接耗电多的设备。 文献[11]中提到CAN是通过IS011898及ISOll519进行了标准化的通信协 议。早期在汽车行业应用的非常广泛,由于其灵活性好、可靠性高、实时性强, CAN总线的使用已不是仅仅局限于汽车产业,航天航海、数控机床、机器人和医 疗器械领域都得到了广泛的应用。目前CAN总线在欧洲已经成为标准协议。 在本系统中,需要实现同步控制多个电机完成直线、圆弧插补,因此要求通 信系统能进行多点通信且实时性强。考虑到系统能应用于尺寸比较大的工件加工, 通信距离可设在30m左右。故经过综合考虑,系统的通讯网络选用CAN总线来 构建。 具体来讲,CAN主要有以下特点; 1)CAN总线通过两根线跟外部相连,结构简单,并且自带除错纠错机制和总 线管理模块; 2)CAN总线的通信方式很灵活。收发报文有一点对多点,点对点和全局广 播这几种方式可供选择; 3)采用非破坏性仲裁技术。网络中的节点可以分为不同的优先级,当在同一 时刻有两个节点向总线发送数据时,低优先级的节点会主动停止发送。这样可以 很好地节约了总线仲裁冲突的时间,即使在网络使用量很大的情况下网络也不会 瘫痪: 4)CAN采用短帧格式通信,每一帧的字节数最多不超过8个,基本上都可满 足大部分工业领域中的控制命令,测试数据和工作状态的一般要求。短帧的结构 也不会过长占用总线时间,提高了实时性通信; 5)最大直接通信距离可达10Kin(速率5Kb/s),通信速率最高可达1Mb/ s(通信距离为40m)。双绞线,同轴电缆或光纤都可以作为通信介质; 6)CAN为多主从方式,总线上任何一个节点都可以随时主动向总线上其它节点发送信息;7)当出现严重的错误时,CAN节点将自动关闭输出,不影响总线上其它节 点的操作。2.2.3电机群控制系统总体框架经过综合比较和考虑,电机群控制系统由运动控制器、步进电机(4台)及6 相应带CAN总线的电机驱动器等组成。各个模块经CAN总线连接成一个完整通 讯网络,相互之间可以实时地传递信息。系统的控制对象主要是4台电机,即M1: x轴方向运动电机、M2-Y轴方向运行电机、M3:刀头上下移动电机(Z轴电机), M4:刀头旋转电机(U轴)。主控制器采用时间分割法进行直线插补、圆弧插补 运算,计算出各轴电机的所要达到的位置坐标和速度指令,通过CAN总线将数 据指令分别发送给各下位机运动控制模块。下位机控制器接收到命令后对命令进 行解析,发送脉冲驱动步迸电机运动。各电机协调工作实现直线、圆弧切割加工。图2.1电机群同步控制系统整体框图2.3本章小结本章针对电机群控制系统的总体要求,从控制结构和通信网络两个方面提出 了系统设计方案。选取了智能总线控制模式,总线网络选择高速、可靠、实时性 好的CAN总线,设计了电机群控制系统的总体框图。7 第三章电机群控制系统的硬件设计与实现电机群控制系统硬件设计分为3个部分进行介绍:运动控制模块、总线通讯 模块、电机驱动模块。3.1运动控制模块3.1.1运动控制芯片选择在电机群控制系统中,主控制器负责插补计算,把指令传给下位机。下位机 控制器负责接受解析命令,并且驱动电机运行。传统的电机控制系统控制芯片大 部分选用的是DSP微处理器。DSP的优点是运算速度快,可以满足控制系统中插 补计算量大的需要。但是DSP需要将离散的数字量转换为连接变化的模拟量:采 样频率受到限制,能够处理的最高频率为40MHz[12】;数字系统源器件比较耗电, 需要接外电设备,可靠性低、通用功能相对比较弱。 STM32F103RBT6是由公司生产的具有32位的CortexTM―M3 CPU,具有以下 特点【13】: (1)工作频率最高达72MHz,在存储器的0等待周期访问时可达1.25DMips/MHz;(2)STM32的功耗非常低。当程序以72MHz的速度运行时,处理器仅耗电 流27mA,在待机状态下,耗电值仅为2uA;.(3)STM32有三种时钟控制机制,可以根据系统所需的耗电情况进行合理 的配置。内嵌实时时钟(RTC),其有单独的供电电路,可以由主电源供电,也可 以由纽扣电池供电。内嵌实时时钟中有20个字节用于数据备份; (4)STM32启动很快,不到7US就可以将处理器从停机模式唤醒,从待机 到运行起来只需要55uS; (5)采用双APB总线结构,其中一个速度为CPU的运行频率,从而使该总 线上的外设能高速运行。USART接口达4.5Mbiffs,USB接口达12Mbit/s,通用 输入输出口的翻转频率达lgMHz; (6)STM32非常适合于控制电机,其处理器内嵌了专门针对三相无刷电机 控制的模数转换器和高级定时器; (7)高级PWM定时器提供6路PWM输出,可以产生死区,具有编码器输 入接口,霍尔传感器接13可完整的向量控制环; (8)双ADC机构可以进行双通道采样和保持,用以实现1uS。12位精度的 转化。该模数转换器有两个工作在非连续模式的独立时序控制,具有多个触发源, 每个通道都可以编程;8 (9)自带电源监控器和看门狗定时器,该看门狗具有上电复位、掉电检测、 低电压检测的功能。 由此可见,选用STM32做控制芯片,可以采用固件库开发,不必接触底层 寄存器,大大缩短开发周期;性价比高,32位的控制器有着接近于16位甚至高 端8位控制器的价格;并且芯片内部带有支持2.0A协议跟2.0B协议的CAN控 制器,不再需要另加控制器,给CAN通讯外围电路设计带来了便捷。经过比较, 在该控制系统中,选用STM32F103RBT6嵌入式处理器作为个控制模块的控制器。图3.1STM32最小系统图3.1为STM32F103RBT6控制最小系统。STM32有七种封装规格,多组 VDD/VSS引脚,以及一组VDDA/VSSA引脚。所有VDD和VSS在芯片内部都 相连,但是由于导线比较细可能会带来内部抗干扰能力弱和负载效应差的问题。 因此,在设计电路时,需要将芯片外部的VDD和VSS都连接上,这样设计能够 保护电路,使其不容易被损坏。芯片工作时需要使用相同电源给VDD和VSS供 电;VDD和VDDA之间的电压差不能超过300mV,并且两者上电和掉电应该保 持步调一致。电路板上,在每对VDD和VSS附近都可分别设置一个10uF的高频9 瓷介电容,在VDD和VSS3附近设置一个10uF的钽电容或瓷介电容,这样做能 起到隔离去耦的功效。STM32F1 03RBT6外部晶振为8MHz,将两个22PF的电容 跟晶振并联,这样设计使电路易于起振。STM32F107RB芯片启动时有三种模式, 通过配置BOOT0与BOOTl脚实现芯片启动。电路板设计中,在BOOTl与地之 间连接一个阻值为10K欧姆的电阻。BOOT0通过跳线选择启动模式,没有接跳 帽时从flash启动,当接跳帽时从系统存储器启动。3.1.2通信电路设计在电机控制系统中上位PC与主控制器之间通过串行通信实现数据交换。 RS232和RS485是常用的串行通信接口标准。在RS232接口通信一般传输距离不 超过20米,而RS485接ISl最大传输距离可达3000米【14】。由于系统控制主控板与 上位PC之间的距离常常因为测试场地的不同而发生变化,因此选用的通信接口 在传输距离上要满足系统的要求,基于这方面考虑RS485比较适合。另外系统中 控制芯片为STM32F103RB,该芯片的接口采用TTL电平,在电压为O.0.8V时为 “0’’电平,2-5V时为“l”电平,因此芯片不能直接与PC机串行通信接口相连 接,必须设计TTL电平到PC机标准串行通信接口电路。而RS485接口信号电平 比RS232低,且与TTL电平兼容,电路连接便捷。综合以上两方面考虑,本系 统中串行通信接口采用的是EIA RS一485E标准串行通信协议。图3.2 RS485接口电路图3.2为RS485接12电路。RS485接口电路主要由低功耗的半双T'RS485收发器 MAX485CPA组成,符合RS485串行通信协议的电气规范,芯片中包含一个带有短 路电流限制功能的驱动器,可以防止功率损耗过大;一个输入具有失效保护特性 的接收器,确保输入开路时能输出逻辑高电平。3.2通讯模块3.2.1CAN收发器选择lO 由于CAN总线具有通信速率高、容易实现、且性价比高等优点,所以在工 业生产控制领域得到了广泛的应用与开发。而又正是因为技术的发展,应用的需 求使得不少器件生产商不断研发出新的CAN总线相关产品。目前市场上CAN总 线控制器的产品有很多,例如INTEL,PHILIPS,MOTOROLA,NEC,SIUONI世 寄oCAN收发器芯片有两种:一种控制器是独立的,另一种收发器和微处理器集 成在一起。与微处理器集成在一起的CAN控制器在设计电路时,灵活性不如独 立的控制器,但同时外部电路的复杂性降低了,整个系统工作稳定性也得到提高。 这类芯片将CAN总线收发器和微处理器集成在片内,将其作为内部的一个寄存 器模块。本文选用的控制芯片STM32就集合了CAN收发器TJAl050。利用主控 制器和各个电机驱动器都有CAN接口的特点,形成CAN控制网络,并可以根据 实际情况扩展网络节点个数。 在电机控制系统中,CAN收发器选用的是TJAl050。TJAl050是控制器区域 网络(CAN)协议控制器和物理总线之间的接口。它能够为总线提供差动发送性能, 为CAN控制器提供差动接收性能。TJAl050收发器是继PCA82C250和 PCA82C251高速CAN收发器之后推出的产品。其改进的优势有【161:1、增加了 一种新的支持CAN 2.0B协议的工作模式(PeliCAN);2、由CANH和CANL搭 配输出信号,可以降低电磁辐射:在节点没有供电时,性能也有所改进;3、没有 待机模式。3.2.2CAN接口电气隔离保护电路:图3.3CAN通讯接口保护电路图3.3是CAN通讯接口保护电路。设计电机群控制系统CAN接口电路时, 将HCPL.0600接在TJAl050与STM32之间。HCPL.0600是一款光电耦合门电路 芯片,组合了磷砷化镓发光二极管和集成高增益光探测器。HCPL.0600的使能输 入允许探测器带有选通特性。探测器Ic的输出则是一个集电极开路肖特基钳位晶 体管。HCPL.0600的内部屏蔽可保证在Vcm=1000V条件下,其共模瞬变抗扰度 达到15000 V/}ts。这种独特的设计提供了最大限度的ac和dc电路隔离,同时实 现了TTL兼容。HCPL.0600光耦的操作参数保证温度范围为一40℃~+85℃,这些 参数允许了系统的无扰运行【181。在硬件电路设计中,将HCPL.0600接在TJAl050 与STM32之间,可以抵抗部分干扰,非常好地地实现了总线上各节点问的电气隔离。3.3电机驱动模块 3.3.1步进电机工作原理下位控制器节点接收主控制器发送的数据,并对数据进行分析处理,将其转 成脉冲信号送给步进电机驱动器。由于数据计算量大,且要求运算速度快,故下 位机同样采用STM32芯片作为CPU。切割机电机系统采用激光切割,只需要一 般的步进电机带动激光探头运行即可。图3.4步进电机驱动原理图步进电机是通过脉冲来进行控制的。控制器给电机发送一个脉冲信号,步进 电机就会随之转动一个角度。正常运动情况下,输入多少个脉冲则电机也会随之 转动一定的角度,两者之间存在一定比例关系【I引。而电机转动的快慢跟输入脉冲 信号的频率相关,输入的频率高电机转得快,反之则转速慢。电压波动和负载改 变现象不会影响其运动。步进电机必须要使用专用的驱动器放大信号,才能使其 正常运行。CPU产生控制信号通过驱动电路控制步进电机运行。如图3.4所示, 步进电机控制模块由脉冲发生控制单元、功率驱动单元、反馈与保护单元等组成。 图3.4中划线框所包围的2个单元能用微机控制实现。驱动单元与步进电机直接耦合。’3.3.2电机驱动芯片选择目前市场上,步进电机驱动芯片有A3977和LV873 1V使用比较广泛【19J。 LV8731V芯片为最新工艺,体积更小,发热更低,带有短路保护功能,无论在性12 能上还是功能上,都已经超越了A3977,而价格却为A3977的60―70%。该系统 选用LV8731V芯片,分析如下: 1.LV8731V面积仅为A3977的37%,体积更是仅为14%,设计中可更大节 省pcb面积,表贴封装更利于批量生产。 2.相同的输入电压和输出电流,而LV8731V的导通电阻仅为0.45欧姆,发 热降低45%,更多的节省散热材料。3.LV8731V本身自带5V电源,所以仅需要1路VM电源输入,而A3977则需两路电源,不得不配合稳压芯片使用。 4.LV8731V加入了跨时代的短路保护功能,输出相线与电源、地线、或相线 之间短路,芯片将立刻保护并输出报警,防止芯片或设备损坏。3.3.3电机驱动电路LV8731V是2ch H桥驱动,内置leh PWM电流控制步进电机驱动,能设定2 相/1.2相/W1.2相/4W1.2相励磁模式,只要输入STEP信号、励磁STEP就可以 进行,非常适合带动步进电机【2叭。G∞b"20 c17|ll∞ ll∞2《V l锄l 2 34VG、MCP2o【羽A44o【了iAG硒┃广―4;J B∞ 42一∞o贯lAII最1l。4J 7 1搬l┃710|l l 瓦^d2VMlC”、唧2对l髓7。…;3 8{工描DC22 :j Rf2 髓┃婶.如一┃Of氇(玎2^ BL蓉l曩2岛 ┃急^R...∞┃Cl2、M2Cn1s溺:4vND o渤 ┃┃VY磁手 O{m C吒『:BlVNDLV831驱动芯片管脚图用内置输出短路保护电路,将LV873IV的OUTAI、OUTA2、OUTBl、 23PA7脚(TIMl) mts与脚管2lCD的V1378VL。机电进步接连接直脚管2UO 分细8为定设式模磁励。度速制控波MWP的出输节调来lMIT置设过连相 2 3mts过通,式模磁励相2W4 PA6PA7管脚来控制。设定DM接地,使端子。机电进步hcl的入输NIolLC制控能,式模S为结小章.3 了电机群控制系统的硬件结构,设计实现了系统运动控制模块、总 。路电件硬的块模动驱机电、块通线 第四章电机群控制系统的应用层协议设计与实现本系统采用CAN总线作为控制总线实现对电机群的控制。CAN总线的特点 是不用对网络中的站地址编码,而是以广播形式发送报文,通过标识符匹配过滤 来实现数据的传送。基于这个通信原理,网络中的节点个数可以扩展,在理论上 不受限制。1991年CAN总线技术规范(Version2.O)制定并发布。该技术规范分 为两个部分:2.0A协议和2.0B协议【21。22】。2.OA包含了标准格式,而2.0B包含 了标准格式和扩展格式。考虑到网络节点扩展需要,本系统利用该规范2.0B协 议来实现通信。4.1CAN协议2.0B介绍CAN协议2.0B有标准帧和扩展帧两种格式。CAN标准帧格式有11位的标识符,前面3个字节是帧信息。第一个字节包括的信息量有帧格式(FF):远程 发送请求(RTR),发送数据帧时置‘0’,发送远程帧时置‘l’;第4、5位(X)是 保留位;第0位到第3位是数据长度DLC,即实际发送多少个数据,DLC就填对 应的数值【231。字节2和字节3的前11位为标识符,剩下的八个字节存放待发送 的数据,帧信息格式见表4.1。本系统只需控制4个电机,为加快通信速率,本 设计采用1l位标识符的标准帧。表4.1 CAN协议2.0B标准帧帧格式列表CAN2.0B扩展帧有29位标识符,帧格式包由帧的信息和帧要传送的数据组 成。第一个字节包括的信息量有帧格式(FF);远程发送请求(RTR),发送数据14 帧时置‘0’,发送远程帧时置‘1’;第4、5位(X)是保留位;第O位到第3位是 数据长度DLC,即实际发送多少个数据,DLC就填对应的数值。2至5个字节的 前29位是标识符,其余几位保留‘24。25】。最后八个字节存有待发送的数据,帧信 息结构详见表4.2。该格式可作为网络节点扩展备用。表4.2 CAN协议2.0B扩展帧帧格式列表4.2CAN总线分层及各层功能根据OSI网络模型,CAN总线一共可以分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层【261。CAN协议分层结构图如图 4.1所示: OSI结构应用层 表示层 会话层 运输层 网络层 数据链路层 物理层LLC MAC PLs PMA MDlCANbus分层媒体图4.1 CAN协议分层结构图15 物理层和数据链路层完全由硬件实现,物理层规定了通讯时使用的电缆、连 接器等的媒体、电气信号规格以及实现设备间的信号传送【271。数据链路层通过数 据链路层协议和规则实现数据的传输。网络层选择数据传送的路由或中继;传输 层控制数据传输的顺序、传送错误的恢复等,保证通信的品质;会话层建立会话 式的通讯、正确地传递数据;表示层将数据的表现形式进行变换;应用层是根据 实际要完成的任务编制协议、代码。要实现电机群的协同控制关键在于应用层协 议的编制。4.3CAN总线的电气特性CAN总线一般使用双绞线、光纤等介质进行传输。在实际应用中,双绞线使用频率的比较大。本系统设计中,采用双绞线传输时可以在总线的两端各接一 个电阻(一般是120欧),以此来避免出现信号反射的情况。这样的话,即使在 很低的信号电平下也能保证信号传输的可靠性。另外,通过双绞线还可以降低电 磁辐射的干扰,这样就使得总线的抗干扰能力得到了提高。总线信号使用差分电 压传送,两条信号线被分别称为CAN H和CAN L,即CAN网络中的总线(BUS)。 在电机群控制系统中,CAN总线和STM32内置收发器之间有两个接口引脚 分别是CAN高电平和CAN低电平,两线之间的“差分’’电压表示信号。CAN总 线上使用“显性”(Dominant)或“隐性”(Recessive)两个互补的逻辑值表示“0’’ 和“1”。当总线上同时发送显性位和隐性位时,其结果是总线数值显示为“O”, 即显性。此时电压值一般为CANH=3.5V,CAN L=I.5Vt29-30】。CAN H和CANL的静态电压值大概为2.5V,此时总线数值是‘l’,即隐性。图4.2为CAN总线 电平定义。电时问图4.2 CAN总线电平定义4.4CAN协议的错误处理机制4.4.1错误类型16 CAN总线有一套完整而有效的错误处理机制。总线通信过程中可能会出现的 错误可以归为5类: 位错误、填充错误、CRC错误、格式错误、应答错误【29。30】。在电机群控制系统通信过程中,可能会同时出现多个错误,相互之间并不会排斥。 错误具体内容如表4.3所示:表4.3 CAN错误类型详表4.4.2节点错误处理电机群控制系统中,当网络上某个电机节点检测到总线上的信号满足错误条 件时,就会输出错误标记来指示总线出现了错误。发送单元将先发送错误帧,接 着再发送数据帧或遥控帧。错误标志的输出时序如表4.4所示:表4.4错误标志输出时序表4.4.3故障界定方法造成CAN网络中电机节点出错的原因可能是总线上暂时的扰动,也可能是 节点不可恢复的故障,CAN规范定义了详细的状态转换规则用于故障界定。出错 的CAN节点有3种错误状态【31】:主动错误状态、被动错误状态、总线关闭状态。 在主动错误状态下,节点在总线上通信不受影响而保持正常,在检测到错误 时将发出主动错误标志:被动错误节点在总线上通信时,只到被检测到错误才会 发出被动错误标志,在下一个报文发送之前被动错误节点将处于等待状态;处于 总线关闭状态的节点对总线没有影响。电机群控制系统中,为了实现故障的界定, 每个电机节点都将进行发送、接收错误两种计数,这两种计数的改变遵照以下规则【32】:(1)接收器检测到一个错误,接收错误计数加l。除去发送主动错误标志和 过载标志期间的错误是位错误的情况。 (2)在发送错误标志成功后,接收器若在最初的位期间检测到显性位,则接 收错误计数值加8。 (3)发送器计数器加8在其发送一个错误标志时。但有两个情况除外:一是 当发送器处于被动错误状态,并且检测到一个错误应答或者发送被动错误状态标 志期间没有检测到显性位;二是出现的错误是由于仲裁时间发生的填充错误。 (4)在报文成功传送后,发送错误计数器的值减1,直到其值减为0。 (5)在成功接收到报文之后,如果接受错误计数值为1.127,那么接收错误 计数器值将减1;如果其值为0,则值不变;如果值大于127,则被设置成一个119 到127之间的值。 (6)当发送错误计数器的值或接收错误计数器的值不小于128时,节点将处 于“错误被动”状态。 (7)在发送错误值计数器与接收错误值计数器不小于256时,节点处于“总 线关闭"状态。 (8)当发送错误计数值和接受错误计数值都不大于127时,“被动错误状态" 节点将成为“错误主动"节点。 (9)总线关闭节点在检测到128次出现11个连续的隐性位以后,该节点能 变成主动错误状态节点,它其发送错误和接收错误计数值都被设置为0。 本系统设计时在系统硬件电路中专门设计了一个指示灯,以便更直观地查看 CAN总线的工作状态。当总线在正常地收发信息时,指示灯会一直闪烁:当CAN 总线关闭,电机节点不再参与总线活动时,指示灯将不再闪烁,会一直处于熄灭 状态。若总线上出现的错误不能通过复位该节点解决时,可以通过查看指示灯的 状态,及时对不工作的节点进行修理维护。4.5电机群控制系统的CAN总线应用层协议设计CAN总线协议只定义了物理层和数据链路层,没有规定应用层。相当于定好 了硬件如何实现发送邮箱,标识符过滤等,却没有规定发送的内容,发送规律以18 及标识符匹配机制。因此,在基于CAN总线的电机群控制系统中,控制命令怎 样通过CAN总线发送来达到控制电机同步运行的效果,这就需要编制一个高层 协议。该协议可以在CAN网络中建立规范的通讯模式,执行网络管理功能,以 及提供设备功能描述方式。 CAN应用层协议有很多,目前占领市场主流的两个应用层协议是:DeviceNet 协议和CANopen协议133】。但是DevieeNet和CANopen协议难度大、规范复杂、 开发成本高。 本控制系统的控制对象只有4台电机,应用市场主流协议过于复杂和冗余, 且成本高,因此,本系统研究一套简单而有效的高层通信协议。该协议详细的定 义了CAN报文中ID分配,规定了数据帧中命令发送的格式以及网络中信息传输。状态的监控办法。具体可以分为以下4个部分:4.5.1CAN报文格式CAN报文包括CAN标识符的使用规则以及数据部分的内容格式。 4.5.1.1标识符分配 在CAN应用层协议中,报文是以广播的形式进行发送,总线上所有节点都 能接收。总线上发送报文时不需要格外指定好此帧的目的地址和源地址,报文发 送出去后,是根据标识符匹配来接收报文的。节点在接收报文后将报文的标识符 进行匹配;若匹配成功,就拷贝到SRAM里;若是不需要的数据,报文将被自动 丢弃而不用软件编程设定。CAN技术规范规定数据帧有11位标识符的标准帧和 ‘29位标识符的扩展帧,由于本系统只需控制4个电机,为加快通信速率,本设计 采用11位标识符的标准帧。 在本电机群控制系统中,每一个节点有且只有一个其专属的地址,地址码和 系统中各电机模块对应,总线上按照地址来传送数据。电机控制系统中主控节点 为l,X轴、Y轴、Z轴、U轴电机节点依次为2、3、4、5。由于系统规模比较 小,节点数少于16个,地址码设定为4位,同一系统中地址码不能重复。目的地 址的标识符定为ID3.ID0,源地址标识符定ID7.ID4。ID9.ID8定义为功能码,用 于表示报文所要实现的功能。两位标识符定义了4个功能码,分别是:00表示对 单个或多个节点写入数据;01表示断开与电机控制系统从节点的通讯连接;10表 示和电机控制系统从节点建立通讯连接;ll表示检测网络上的ID从节点是否存 在。IDl0位定义为ACK响应位,该位用来区分帧的类型。当响应标志位为0时, 表示发送的是命令帧,节点需要应答。但是如果发送的是广播帧,就不考虑响应标志位的值。当响应标志位为l时,表示响应帧,此帧不用应答。在CAN总线上,若同一个时刻,既有节点向总线上发送隐形电平‘1’,也 有节点发送显性电平‘0’,那么此时总线上表现出来的为显性‘0’。当总线空闲19 时,如果有多个节点同时需要发送报文,此时就要通过比较总线和节点发送位的 电平值来仲裁报文发送的先后顺序。若总线和发送节点电平一致,则上一个发送 的节点可以保持发送状态;若节点发送的为隐性电平‘1’却监测到显性电平‘O’, 那么该节点必须退出发送状态,只到等到下一次总线空闲的时候再参与总线的仲 裁竞争。因此,本控制系统中,当有多个节点同时争夺总线的控制权,ID最小的 那个节点将会胜出,所以在CAN总线上,节点的ID越小,优先级越高。帧标志 符分配如表4.5:表4.5帧标志符分配表4.5.1.2数据部分使用规则 报文传输的帧类型包括4种【34舶】:数据帧、远程帧、错误帧、过载帧。数据 帧是用来发送数据的,承担着CAN通讯网络中数据传输的重要任务,在设计电 机群控制系统时主要对数据帧进行设计。 CAN一个数据帧包括了帧起始、仲裁场(标识符+RTR)、控制场、数据场 (0.8bytes)、CRC、应答场、帧结束:用户协议需要自行设计的为仲裁场,控制 场和数据场。控制场由6个位组成,标准格式里的帧包括数据的长度值、IDE位、 保留位r0。数据场包含0"8个字节,每个字节有8位。第一个字节为命令,接 下来字节都为具体要发送的数据。表4.6命令格式表4.5.2数据传输数据通讯定义了电机通讯网络中数据的传输方式。电机群控制系统的CAN 用户层协议通讯模式由主从方式和事件触发方式构成。在具体通讯过程中,两种 模式搭配使用,增强了通讯协议的灵活性。 主从方式通讯如图4.3是由网络中的主站向从站发送消息,从站接收到命令 后向主站发送一个响应表明消息已经收到。这种通讯方式在CAN网络中应用最 多,它包含广播传送和点对点传送两种模式。广播方式是主站将消息发送给网络 上所有从站,从站都必须接受消息。将目标地址全部填成0的时候发送广播帧。 在本设计中,电机群控制系统启动时需要对各个电机节点发送初始化信息,以便 确保网络中没有重复节点且每个节点都已处于待命状态。此时,即可由主控制器 向每个电机节点以广播帧的方式发送节点检测报文,每个节点无需匹配标志符都 必须接收报文。 点对点方式是指主站与某一个从站之间的通讯。这种通讯方式是先由主站发 出请求,从站在接收到消息后会回应主站。从站节点在没有收到主站请求时将不 会给主站传输报文。每个从站有且只有一个的地址(从0到15)以此来区分总线上 的节点。在设计系统时,为保证加工的精确度,切割过程中x轴和Y轴电机都是 保持匀速运行。加工完成后,电机有一个向上移动减速至停止的过程。此时,主 站可以向刀头上下移动电机(Z轴)以点对点方式建立通讯。图4.3主从方式通讯模式事件触发通讯模式是指在电机通讯网络中,从站不需要主站请求而主动向主 站发送报文。它支持定时循环发送和状态改变发送,这两种模式不能同时使用。 定时循环发送是从站按由主站设定好的时间间隔向主站发送数据;当检测到错误 报警条件的时候,从站会主动向主站传送数据,此时发送状态便改变了。在本系 统设计中,从电机节点在执行了位置速度命令后通过设置一个定时循环发送,及 时地把信息反馈给主站;在收到误码或缺失信息时,设置为状态改变发送。图4.4事件触发模式通讯2l 4.5.3网络传输状态监控网络传输状态监控的对象是CAN通讯网络中节点状态和报文传输状态。对 于电机群控制系统网络管理,其主要任务是处理电机群网络通讯中的错误,协调 各个节点的状态,监控报文的发送情况。具体可以分为节点查错纠错和通讯查错 纠错两部分。 4.5.3.1节点查错纠错 节点查错纠错是指对电机群控制系统总线上所有应用节点进行初始化,让每 个节点在通讯前处于准备状态。电机上电或者复位后,主站首先发送目标节点ID 检测报文来判断网络上是否有ID相同的节点。此时,如果主站接收到有目标节 点ID响应报文则该目标节点自动进入通讯错误状态。如果目标节点ID检测报文 发送成功,并且主站没有接收到响应报文,将会启动一个定时器等待1.5s,看是 否能就收到目标节点ID响应报文。如果超过1.5s还没有接收到目标节点ID响 应报文,那么从站电机自动进入可操作状态。此时,主站可以发送建立连接指令 与从站建立连接。通讯连接建立以后,主站就可以和从站进行通讯,发送和接收 数据。如果从站没有任何已建立的连接,不会与其它任何节点电机进行数据的交 换。节点电机进入错误状态,表明网络上至少有两个相同目标节点ID的设备, 因此进入错误状态的节点电机通常建议采用手动复位,并要排除总线网络上有重复的节目标节点ID响应报文图4.5网络节点ID检测4.5.3.2通讯查错纠错 电机群控制系统中的通讯查错纠错是管理网络中通讯的报文,保证报文能够 正常地接受发送。针对通讯的控制是按主站和从站之间的通讯时间间隔为依据来 进行的。通讯过程中可以设定一个循环发送定时器,由主节点来设定循环发送的 时间。主从节点建立连接后开始循环发送,超过设定的时间,将停止发送命令,定时器被清0。 4.5.4、电机控制协议参数的定义电机控制协议参数是控制电机协同运动需要的操作指令,在本系统中对电机 协同运行时执行的命令参数定义见表4.7’表4.7电机指令参数表4.6多电机控制系统CAN总线报文传输在多电机控制系统中选用的控制芯片STM32均带有bxCAN接口。在该芯片 的bxCAN中一共包含三个邮箱用来发送报文。邮箱的报文发送顺序由发送调度 器决定。共有两个接收FIFO,并且每一个FIFO又可存放三个报文【3引。他们完全 由硬件来管理。软件通过对14个标识符过滤器组编程,来实现在节点收到的报文 中选择其需要的报文,抛弃不需要的报文;完整的数据信息是通过报文来发送的。 CAN总线网络中报文的传输主要分为三个部分:初始化总线、发送报文和接收报文。4.6.1总线初始化bxCAN有3个主要的工作模式1391:初始化、正常和睡眠模式。硬件在初始化 模式时才能进行软件初始化。如果用软件对CANMSR寄存器的INRQ位置‘l’, MSR的INAK那么bxCAN就进入初始化模式等待。通过硬件自动对寄存器CAN位置‘1’来确认。在初始化模式下,是禁止让总线接受与发送报文的,并且CANTX 脚会输出隐性位。当初始化成功后,程序控制让其进入正常模式,并且CAN总 线要同步,以方便能够正常接收与发送报文。当软件对INRQ清0时,就会进入 正常模式下,然后会等待硬件自动对INAK位清0来确认。在CANRX引脚监测 到连续11个的隐性位(相当于总线空闲)之后,CAN总线才能正常接收与发送 报文。bxCAN也能工作在低功耗的睡眠模式下。通过软件对寄存器CANMCR的SLEEP位置‘1’,用来请求进入睡眠模式。在睡眠模式下,虽然CAN总线的 时钟停止了,但是邮箱寄存器仍可以被软件来访问。当bxCAN处于睡眠模式下, 软件必须对CAN―MCR寄存器的INRQ位置为‘1’,且同时对SLEEP位清0之 后才能进入初始化模式。图4.6 CAN工作模式结构图4.6.2报文的发送电机群控制系统通讯网络中报文的发送流程为:首先让应用程序指定一个空 的发送邮箱,对此邮箱设置标识符、待发数据和数据长度;然后软件对CANTIxR的TXRQ位置‘1’,请求发送。此时邮箱不再是空邮箱,邮箱寄存器无法再进行 写入,邮箱的状态为挂号状态,并等待成为邮箱中优先级最高的一个。当邮箱优 先级最高时,它就会转变为预发送状态。只要CAN总线上能收到报文,预发送 邮箱中的报文就立刻进入发送状态。当报文被邮箱发送成功之后立马变为空邮箱; 若发送成功则CAN TSR的RQCP和TXOK两位同时置‘l’;若发送失败,如果 由仲裁引起,则CAN TSR的ALST位置‘1’;如果由发送错误引起,则对TERR 位置‘1’。在CAN协议中规定,标识符值越高的报文享有的优先级就越低。如果标识 符值相同,就由邮箱号决定发送报文的顺序,邮箱号大的后被发送1401。还有另一 种发送模式,发送的优先级是由发送请求次序来决定的,把CAN MCR寄存器的 TXFP位置‘1’,发送邮箱就被设置为发送FIFO。 报文在发送过程中能够被停止发止,可以通过对CAN TSR寄存器的ABRQ 位置‘1’来实现。如果邮箱处于挂号或者预定状态,发送请求立马就被中止。如 果邮箱在发送状态中,那么中止请求可能会出现两种结果:如果邮箱中的报文被 成功发送了,那么邮箱变为空邮箱,并且CAN..TSR寄存器的TXOK位自动置‘1’; 如果邮箱中的报文发送失败,那么邮箱就变为预定状态,进而发送请求被中止, 邮箱变为空邮箱并且TXOK位被硬件自动清O。因此如果邮箱发送状态下,发送 操作完成后,邮箱都会成为空置邮箱。4.6.3报文的接收下位电机节点收到报文后被储存在深度为三级的邮箱FIFO[4¨。邮箱FIFO不 需要由软件来管理,这样既减轻了CPU的处理负担,同时保证数据的一致性也精 简了软件。4.6.3.1FIFO管理当FIFO接收到第一个有效报文时,便从空状态变为挂号状态‘1’,硬件自 动把CAN―RFR寄存器的FMP[1:0】设置为01b。应用程序可以通过读FIFO输出 邮箱来读邮箱中的报文,然后对CAN RFR寄存器的RFOM位设置‘1’来释放 该邮箱,这样FIFO又成为了空状态。如果在释放邮箱的同一时刻,又收到一个 有效报文,那么FIFO仍然保留在挂号状态,软件可通过读FIFO输出邮箱来读出 新发送到的报文。 如果应用程序没有释放邮箱,那么在接收到下一个有效的报文后,FIFO状态 将变成挂号状态2,硬件自动把FMP[1:O】设置为‘10’。重复上述过程,第三个有 效报文把FIFO变成挂号状态3(FMP[1:0】设置为‘ll’)142]。在这时,必须软 件对RFOM位置‘1’来释放该邮箱,否则,将会丢失下一个有效报文。如果FIFO 处于挂号状态3(FIFO的三个邮箱都是满的),下一个有效报文将会被溢出,并 且丢失一个报文。此刻,硬件会自动对CAN RFR寄存器的FOVR位置‘l’来 表明出现溢出状况。至于哪个报文会被丢弃,决定于对FIFO的设置: 如果禁止用FIFO的锁定功能,那么新报文就会覆盖FIFO中最后收到的报文。只有这样才 能保证最新收到的报文才不会被丢弃。 如果启用FIFO的锁定功能(CAN MCR寄存器的RFLM位将被置‘1’,那么新收到的报文就会被丢弃,软件可读到FIFO 中最早接收到的三个报文。只要FIFO存储了1个报文,硬件就会自动更新FMP[1:0] 位,如果CAN IER寄存器的FMPIE位为‘1’,就会触发一个中断。 当FIFO三个报文都被存入时,寄存器CAN RFR的FULL位就会被置‘1’。FIFO溢出时, FOVR位被置为‘1’,且如果CAN IER寄存器的FOVIE位为‘l’,就会触发溢 出中断请求。 4.6.3.2标识符过滤 在CAN协议规范中,节点在接收到报文的时候,根据标识符值决定是否需 要该报文。为了只接收用户指定的报文,bxCAN提供了十四个位宽可变的、能够 配置十四个过滤器组【43。45】。通过硬件过滤减少了CPU的负担,否则就必须通过 软件方法来过滤,此种方法增加了CPU的负担。电机群控制系统中需要对过滤器 和标识符匹配模式进行设置。过滤器有两种配置方式【4548】:1、屏蔽位模式;2、 标识符列表模式。屏蔽位模式:标识符寄存器与屏蔽寄存器共同指定报文标识符 的任意1位,按照“必须完全匹配’’或“不需要关心’’来处理。标识符列表模式: 屏蔽寄存器同时也被当成标识符寄存器使用。因此,不是用1个标识符加上1个 屏蔽位的模式,而是使用两个标识符寄存器。接收到的报文,他们的标识符必须 跟过滤器标识符的每一位相匹配。在基于CAN协议电机群控制系统中,采用2 个16位的过滤器,配置为标识符列表模式来实现对报文的过滤接收。过滤器配置 可参照图4.7:2个16位过滤器一标;只符屏蔽屏:星f: !C;!AiN! jF!xi!R1 I[31 {lI;: :]: :!C;!AiN!{盈FxRl 冉军:呈[: !C;!A !N; !FjxiR!12 1 31 {1 5;: :]i: :C!;A!iN!{圈FxR21 3:I一‘ 。一。 一‘。 一。’ 一’一‘。一’ 。一}’}.i;,屏蔽l一:24】l―f23:16JIrI。 。。。一。。’‘。。。。’。‘。。’。‘’。‘。’f’l:二。一 f…’解蔽l一:24JI一6】I映像,STID(IO;3]SI"IDI&-O]RTRIDEEXlI孙7.咽图4.7 16位过滤器标识符屏蔽模式配置报文接收以后只要被存进FIFO中,应用程序就可以对此报文进行访问。一 般来说,报文当中的数据是被存放于SRAM中的;根据标识符来决定不同数据存 放于SRAM中合适的地方,通过这种方法将数据拷贝到适合的位置。根据过滤器 的不同配置,控制系统总线通讯过程中可能1个报文标识符能够通过多个过滤器 的过滤;在此种情况下,存放在接收邮箱中的过滤器匹配序号有设定好的优先规 则。其规定是H9-so]:1、16位过滤器的优先级低于32位的;2、过滤器位宽一致 时,标识符列表优先级高;3、位宽和模式都一样的时候,过滤器号小的优先级高。4.7本章小结本章研究了CAN总线协议的分层结构、电气特性、查错纠错机制和总线上 报文发送接收的工作流程及其具体的实现方法,编制了电机群控制系统的应用层 协议。 第五章电机群控制系统的软件设计与实现电机群控制系统软件设计与实现主要分为3个部分:l、主控制器插补运算实 现;2、电机控制系统CAN通信软件实现;3、下位机驱动电机编程。主控制器 发送接收模块向各个电机的运动控制器发送接收模块发送运动信息(位置、速度 等),等待来自各运动控制器发送接收模块反馈回来的信息;运动控制器发送接收 模块接收到来自主控制器的命令后,对命令进行解析,执行相应的操作控制电机 运行,并将电机的运动状态信息反馈给主控制器发送接收模块。CAN通讯模块负责主控制器发送接收模块与各运动控制器发送接收模块之间数据的通讯。系统软件流程图如图5.1所示:………………………………………一一图5.1系统软件流程图 5.1软件开发环境课题中程序编译器采用的是美国Keil Software公司出品的Keil uVision4软件开发系统,用C语言编写程序,通过Keil uVision4编译为机器码,把HEX可执 行文件下载到单片机中。该软件支持各个公司的MCS51架构的心-tt-片以及ARM。 它集合编辑,编译,仿真于一体,易学好用。可以与示波器、逻辑分析仪相连以 实现实时分析,调试程序和在线仿真操作都相当便捷。图5.2为Keil uVision4程 序调试界乜竺’生翟竺尘型塑蔓…一一。塑,一型燮g鳓!坠兰墼 Pt!P^e哺’j!曲 £d^』憎旦q£dF礓:^2fb。口 呻lo口HSV(5鸶灞‘黢彬照燧一数一叠堡塑燮型!!竺塑…一坐}nddw Ef岫生I二二…一鍪篷翟鍪爱幽窆篓兰嚣蚕翟甄蚤£二二::=二二J;.?“”嚣二∞二_ ,^墨j―J。’柚争££?,’.i矿国?≯避;二~IBijST!VIl2103}口‘t.’,陲s蠹雷tree圜tool篇de编lay ms(200)澎;=: l 匿P蠹≯;l:蓦怒?{园oAbo.1I//////i/f//}//寝用系统扔始亿 上电启动提示王伯外 【嚣’i 11I//111/I////t11/IIII///主循环/J}硝图5.2KeiluVision4程序调试界面5.2多电机控制算法与实现在数控加工中,要根据运动轨迹的起点和终点的位置以及曲线方程,要使切 削加工运动沿着预定的曲线轨迹移动。数控系统根据加工任务,计算出一系列刀 具的加工点,再用基本的线型完成数据的密化工作。每种线型都有不同的计算方 法来实现,该计算方法即为插补算法。插补对数控系统的性能指标非常重要,直 接影响系统的控制速度和精度。插补算法经过几十年的发展,越来越成熟。插补 算法可以概括地分为两种【5l】:脉冲增量插补和时问分割法插补(又称数据采样捅补)。它们都有各自的特点。 文献[5 1】中提到脉冲增量捅补是通过向各个运动轴分配脉冲来控制机床各轴相互协同运动。脉冲增量插补算法仅需要加法和移位操作就可完成,但是速度比 较慢,比较适合中等精度和中等速度的机床数控系统。脉冲增量插补算法有很多 种,比较典型的是逐点比较法跟数字积分法。逐点比较法的原理是【52】:计算机在 控制加工过程中,可以逐点地计算和判别加工偏差以控制坐标进给。该法一般不 用于多轴联动,应用范围有一定的限制。数字积分法是在数字积分器上建立的一 种方法,它运算速度快,易于实现多坐标轴联动。 时间分割法插补153】是根据数控加工需要的进给速度,分为粗插补和精插补两 步多曲线进行加工。在加工过程中,把曲线分为一系列微小线段并且分配到各坐 标轴,各轴按照每一线段对应的位置增量数据实现进给。时间分割算法与脉冲增 量插补算法做大的区别是:它输出的是位置增量的数字量而不是单个脉冲。时间 分割插补算法运算速度快,能保证插补的实时性、同时计算的复杂度也相对比较 低。本课题的多电机控制系统选用时间分割法实现圆弧插补运算。 时间切割法一般分为初粗插补和精插补两步进行:粗插补计算出每个插补周 期内坐标位置的增量,而精插补则将数据做进一步的密化。对于本电机群控制系 统,在加工某一直线段或圆弧段的加工指令中,上位PC机给出的进给速度v,每 隔时间t(插补周期)进行一次粗插补运算,计算出一个插补周期内的位置进给 量f发给主控制器。主控制器进行精插补计算,将刀具运动轨迹分解在各坐标轴 上,计算出每个节点电机位置的进给量,通过CAN总线给各节点电机发送插补 增量,通过驱动模块使电机完成预定曲线的加工。租插补周期设为插补周期Ta, 精插补周期设为位置控制周期Tb。Ta和Tb取值跟指定的系统决定,且Ta=nTb, n是自然数。Ta跟Tb的取值对曲线加工的精度会产生影响,Ta不能取值过大, 因为出插补周期越长,每一段分成的微小线段也就越长,那么插补误差也会随之 增大。所以,为避免误差过大Ta应该取比较小的值,但是若Ta的值太小,CPU 可能来不及处理其它的任务,因此Ta取的值不能小于插补运算时间和完成其它任 务所需时间之和。而Tb还可能会对影响系统的稳定性到来一定影响,在本电机 群控制系统中Ta=10ms,Tb=0.5Ta=5ms。 5.2.1时间分割法直线插补方法实现”图5.3直线坐标图为第一象限直线,其插补规律如下。切割刀头的起始点为Ni.1,移动到目 标位置Ni。沿直线方向的增量DL=F}Ta,沿X轴方向增量为DX,沿Y轴方向的 增量为DY,则DX=DL*Xe\L,DY=DL*Ye\L。其中,L为轮廓直线的长度,其满 足等式:L2=Xe2+Ye2t56J。Ni点的坐标可以用前面一个点的坐标表示: X=X+Dx,Y=Y+DY,因此可以设计第一象限时间分割直线插补算法流程图。图5.4直线插补算法流程图 5.2.2时间分割法圆弧插补实现时间分割法圆弧插补是一种微分的思想,把圆细分成很多等分,每-d,段圆 弧用切线、弦线或割线来代替,用直线去逼近圆弧。在电机群控制系统中通过插 补运算,计算出每个周期内X轴进给量X然后控制电机协调进给,其合成轨迹就 是一段弦或割线。切线法与脉冲方式DDA插补在本质上是相同的,由于误差比 较大,在实际的数控系统中并不使用。图5.5圆弧坐标该系统中选用控制精度比较高的弦线法。假定要加工一段顺圆圆弧,如图5.5 所示圆弧处于第一象限。考虑用弦线来逼近圆弧,A点是起始点,B点通过插补 计算要到达的目标地点,圆弧的半径是R,弦AB是每个插补周期进给的步长△L, M为弦的中点,过A点的切线为AP。插补规律和插补算法流程图如图5.6:I区:△X f=(】,j―l+△】,j―lX0.5)XF?T,/R△Yj=一Y,一l+(R 2一(X j一1+△X j)2)1/2X j=X f―l+A XYj=Yj一1+△yfjⅡ区:△Yf=(x f一1+△x△X,=f―lX0.5)×F?T,/R一X j―l+(R 2一(】,j―l+△l,f)2)1/2X f=X I―l+△彳jYl=Yf―l+△】,,Ⅲ区:△X,=(】,l―l+△】,f一1X0.5)×F?T,/R△Y,=一y,一l一(R 2一(X。一l+△X;)2)1/2X j=X f―l+△XYf=Yj一1+A YfiⅣ区:△Yf=(x,一l+△x△Xf=f―lX0.5)XF?T,/R一X,一l一(尺2一(】rf―l+△l,i)2)1/2lX t=X i一1+A xYf=Yj―l+△l,f 图5.6圆弧插补算法流程图Y=-X\厂入f【x1>【Y1【X】‘//\1 //【x】>【Y】\V\Y=X必32\2区尹V\//J’:/\\图5.7象限分区图 圆以X轴,Y轴对称,可以分为4区。图5.7所示是圆的分区图。数控技术 中有镜像编程这一思想。镜像编程的概念来源于平面镜成像原理,物跟像是关于 镜子对称的‘57i。物体跟其关于平面镜所成的像具有相反的动作。根据这一规律, 对于圆和椭圆这一类对称的图形,可以用镜像编程的思想将顺时针加工和逆时针 加工进行简化。以顺时针圆弧为例,按顺时针方向编制圆弧的插补算法。在加工 逆时针方向的圆弧时,只需要改变程序中脉冲的方向即可,不需要重新再写程序。 采用这种方法可以很好地提高加工的精度和效率。 部分程序如下:doublexO,yO,arci,arce,xt,yt;//x0,y0是圆弧起始位置坐标,xt,yt圆弧目标 位置坐标,arei,aree是圆心对应圆弧起点的坐标增量line_step(x0+arci,y0+arce,x0,y0,&start_step,&deltax0,&deltay0); //计算圆弧起点位置与X轴的夹角 r0=sqrt(deltax0掌deltax0+deltay0宰deltay0);//计算圆弧的半径line_step(x0+arci,y0+arce,xe,ye,&end_step,&deltaxe,&deltaye);//计算圆弧终点位置与X轴的夹角if(typeB一2)total―step 2start_step―end_step; elsetotal―step=end_step-start_step;//计算整段圆弧所对应的圆心角 if(total―step<O)total―step+=6.283 1 85308; delta_step22幸sqrt(2幸bow_high幸r0-bow_high宰bow_high)/r0; //计算最大弦线对应的圆心角,其中bowda0+=delta_step; high=l//计算该次插补的圆心角if((total―step―da0+0.00000 1)if(mvtype==2)fa=start_step―da0;else fa=start_step+da0;lxe=ix0+iarci+r0宰cos(fa);lye=iy0+iarcj+r0*sin(fa);//计算该次插补的终点坐标adelta 1=dround(1xe)-dround(1xO);adelta2=dround(1ye)一dround(1y0);//计算各轴移动的分量5.3电机群控制系统节点间通信实现电机群控制系统控制芯片STM32集成bxCAN。bxCAN是基本扩展CAN(BasicExtendedCAN)f拘缩写,它支持CAN协议2.0A和2.0B。bxCAN有3个发送邮箱 和两个3级深度的接收FIFO。总线上以发送邮箱为载体来发送报文。5.3.1报文发送应用程序选择1个空置的邮箱,设置好标识符,数据长度和待发送的数据及 命令,请求等待发送。当总线空闲时,数据将立刻发送出去。报文发送流程图如图5.8:图5.8报文发送流程图部分程序如下: CAN―Init(CAN 1,&CAN―InitStructure);初始化CANFilterInit(&CAN FilterInitStructure);过滤器配置CAN―ITConfig(CAN 1,CAN―IT―FMP0,ENABLE);使能CAN中断 TxMessage.StdId=0x000;标准idTxMessage.ExtId=0x00;扩展idTxMessage.RTR=CAN―RTR_DATA;数据帧TxMessage.IDE=CANIDSTD;远程帧TxMessage.DLC=1;数据长度,最多可发送8个 TxMessage.Data[0】=0x0 1; CAN_Transmit(CANl,&TxMessage);启动发送void CANSendInit(u8 addr),初始化节点,addr为目标地址,当addr值取OXOO时,表示广播,各节点都收到信息;voidCANSetCo(u8addr,s32co),设置坐标,addr为目标地址,CO为设置的坐标:void CANSetSpeed(u8 addr,s32speed),设置速度,addr为目标地址?,speed为设置的速度; 5.3.2报文接收下位机通过标识符过滤,接收到的有效报文被存储在3级邮箱深度的FIFO 中。下位机控制芯片从FIFO中提去数据驱动电机运行。报文接收流程图如图5.9:图5.9报文接收流程图部分主要代码如下:voidCANI―Init(void),在此函数中设置过滤器,波特率以及管脚配置、中断配置;voidInit_RxMes(CanRxMsg幸RxMessage),初始化接收帧; USB―,LP――CANl――RXO―.IRQHandler(void)void{,/下位机CANl接收中断处理函数,更新线圈和寄存器。通过swtich语句 来实现不同信息的处理。s32 dat=0;s32 datl=0;u8 i;RxMessage.Stdld=0x00; RxMessage.Extld=0x00; RxMessage.IDE=O; RxMessage.DLC=0; RxMessage.FMI=O; for(i=0;i<8;i++){ RxMessage.Data[i】=0x00;‘)CAN―Receive(CAN 1,CAN―FIF00,&RxMessage); If(RxMessage.IDE==CAN―ID―STD)35 {datl=RxMessage.Data[0];RxMessage.Stdld=0x04;//保存数据.//给统一的标识符,接收广播信息CAN―Reeeive(CAN l,CAN―FIF00,&RxMessage); while(RxMessage.Data[0]!=2);//等待下一个中断,得到标志执行启动RxMessage.Data[0]=datl;//恢复数据switch(RxMessage.Data[0]) {+case0x00://站点初始化Reast_Show();break;case0x01://设置速度dat=(RxMessage.Data[1]<<24)l(RxMessage.Data[2]<<1 6) l(RxMessage.Data[3]<<8)I RxMessage.Data[4];STEPeontirun(dat);break;ease0x02://设置坐标break;case0x03:break;case0x04:break;case0x05:break;case0xFF:if(RxMessage.Data[1]) {LED――ON(LEDl); >else{LED―.OFF(LED 1);>break; default: break;)) 5.4电机加减速控制方法在步进电机控制系统中,如果信号变化太快,由于惯性步进电机会跟不上电 信号的变化,可能出现赌转和失步现象。因此,步进电机启动时,必须有一个加 速过程,停止时有一个减速过程。 电机在加工时一般都会有一个最大速度Vmax和最小速度Vmin[61】。电机必 须在该速度范围内运行。当速度过大时,电机可能跟不上,出现失步现象从而带 来加工上的误差。当速度太小时,电机可能无法起步。在实际的切割加工中,特 别是针对比较大的工件,从坐标原点到加工起点之间距离很长,电机可以在这一 区间加速。在加工结束后刀具将垂直向上移动一段距离,因此可以在这一直线段 区间让电机停下来。刀具在整个加工过程始终是匀速运动的,从而可以提高加工 过程的精度和平滑度。 由于每次起始停止的直线段距离不同,可以将电机加减速过程分为3类: (1)足够长的直线段,电机通过加速达到最大速度Vmax,保持匀速状态一段 时间,再匀减速至停止; (2)长度适中的直线段,当电机通过匀加速运动达到做大速度Vmax后,马上 匀减速至停止,没有匀速行驶的过程; (3)直线段的长度较短,即电机还没匀加速到最大速度Vmax,就开始匀减速 至停止,没有匀速行驶的过程。,一一一一一一一一一一一一一一一一~、。/、。/-、VdclI’、 vmln ‘、 ’、――..―――...―...../VdeIt、,min―.―.―――.―.....―。/.,/图5.10电机速度梯形变化图电机群控制系统中设计以周期为2毫秒进行一次加速或减速。加速或减速的 值可以自行设定,实际的加速度计算是(1000+加速值)/1000/0.002。另外可以 通过定时器产生中断进行脉冲计数,当运行的脉冲数超过一半时还未完成加速过 程,就不再继续加速而是直接进入减速阶段。当运行脉冲足够时,在匀加速到匀 速时就开始计算达到匀速所需的脉冲数目,当运行的脉冲数减至加速所需的脉冲 时,就开始匀减速。电机加减速控制具体流程见图5.1l。37 图5.11步进电机加减速控制流程图部分程序如下。void pretreatment()函数用于计算出电机做加减速运动周期次 数、匀速运动周期次数、最大进给速度;next Step(intj)用于求第j个周期的插补 值。voidprepare(){n=(int)(maxV/a);//加速周期次数 if((int)(d/maxV)>n){//可以达到Vmax v=maxV;//取Vmax.m2(int)(d/v)一n;//匀速周期次数totalStep=2?n+m;//总周期次数doublede=d一(m+n)?v;//剩下的距离if(de>O){//有剩余距离 double VC=(n+1)幸a―v;if(de<=n毒vc){deltaV=de/n;>else{deltaV=(de+ve)/(n+1);totalStep+=l;)) }else{//2不到指定V max的情况 n=sqrt(d/a)一1;//计算加速周期数 v=(n+1)木a;//最高速度 m丢(int)(d/v)一n;//匀速周期数 totalStep=2宰11+m;//总周期数doublede=d一(m+n)?v;//剩下的距离if(de>0){//有剩余距离 deltaV=de/(n+1); totalStep+=1;))}nextStep(int j){if(j<n){//加速阶段retum j幸a;>else if(j<=m+11){/,匀速阶段return V;}else if(j<=totalStep){//减速阶段returnv+deltaV一(i―m―n)?a;)else{//超出总周期数,无效return 0;>}5.5本章小结本章介绍了电机群控制系统的软件开发环境。研究直线、圆弧插补算法,采 用镜像编程的方法实现圆弧插补提高了系统效率。完成了电机群控制系统节点问 通信软件设计以及电机加减速的控制方法。 第六章实验调试及结果讨论如图6.1所示,为控制PCB丌发板。该开发板集成了主控芯片STM32,电机 驱动芯片LV8731V、通讯接口有各模块之问进行通讯的CAN接口,主控制器与 PC机通讯的RS485接口。图6.2中是连接好的主控制器与分别驱动X轴和Y轴 的两个下位控制器。以两个电机为模拟对象,对系统进行多机协同通信测试,验 证CAN用户高层协议的可行性。图6.1控制模块开发板图6.2主控制器与X、Y轴控制器主控制器(节点1)向X轴(节点2)和Y轴(‘肖点3)两个电机的控制器 发送指令,将LAl032逻辑分析仪直接接入节点2和节点3的控制芯片的TIMl 上,同时测量节点2和节点3的脉冲波形,通过对比分析两电机的协I司1:作情况及CAN通讯协议的通信效果。 节点1先发送一个,’4播帧对各站点进行初始化,再向节点2、节点3同时发送周期为140us,占空比为50%的脉冲;1ms以后,向节点2、:肖点3发送周期为1 4us,占空比为50%的脉冲,两种频率不同的脉冲交替发送,相隔时问为1 ms。逻辑分析仪观察到节点2和节点3的波形图。 在学习CAN总线之初,多机之间的通讯思路比较简单,将初始化设置配好, 节点上电直接启动发送数据。图6.3是早期所写的CAN多机通讯程序的波形图。 由图中可以观察到两点机的同步误差在370us幺:右,误差相对来说比较大。 图6.4是按编制的CAN通讯协议发送数据获取的波形图。采用了主从通讯模 式和事件触发模式相结合来实现总线上数据的传输。可以看出,两节点电机的执 行命令的时问差在20us左右。表明通信协议是可行的,两电机的同步控制误差比较小。爱CAt!-I:瑚,r-Illa}口x砖专曩| 口Y≈;曼图6.3莲c削?l砷V1.tzlaFF{匿喾圜圈础圈避露豌‘...--._-_._-___._一Ii.『I:0::C一二i,e:0:0T::.5:0:0Ts2 C::0:一;二150:0:-;三.j0:0:-:I,f{ll-lI..1蚓6.44l 结论本文以STM32RBT6 ARM芯片为主、从控制器,通过CAN总线利用总线广 播模式实现电机群协同控制系统的设计。为方便实验验证,选用两个电机为试验 对象,对系统进行多机协同控制测试。主控制器向两节点电机的控制器发送指令, 两电机均可收到控制信号,但在没使用本文编制的CAN总线应用层通信协议时, 两节点电机的同步误差在370us左右,误差相对来说比较大,使用本文的CAN总 线应用层通信协议后,两节点电机的执行命令的时间差在20us左右。 论文主要工作如下: l、设计了电机群控制系统的总体方案。该方案针对电机群控制系统需要满足 的性能指标,选择了基于CAN总线的智能总线控制模式。 2、实现了电机群控制系统的硬件设计。通过对多种控制芯片的比较调研,选 择STM32作为控制系统的主控芯片。利用STM32的各个模块及外围辅助电路构 建了控制系统的硬件框架。包括:主控制器电路的设计;总线网络上CAN接口 电路设计;电机驱动电路设计;与PC机通讯的RS485电路设计。 3、设计了一套有针对性的CAN总线用户高层协议。对于该电机群控制系统, 选择使用适合电机群系统的CAN2.0B协议标准帧格式,制定了11位标识符的分 配规则、通讯网络中的管理规范、配置报文接收过滤器以及CAN通讯过程中错误处理方法。4、实现了电机群控制系统的软件设计。软件设计方面采用模块化设计方法, 实现了系统各模块的功能。包括:切割加工所需的圆弧、直线插补;电机加减速 的控制;CAN用户通信协议程序编写。 论文主要创新点如下: 1、采用STM32控制器与CAN总线相结合的智能总线型控制模式。STM32 内部集成了CAN收发器,简化了外围电路,使结构更加紧凑。 2、根据CAN总线协议规则,自行制定了一套有适用于电机群控制系统应用 层协议,经实验结果表明电机同步控制误差在20us左右,同步效果较好。 本系统的设计和调试是在实验室完成,在实际应用时,必须在抗干扰等方面 进一步开展研究。 参考文献【l】刘福才,张学莲,刘立伟.多级电机传动系统同步控制理论与应用研究【J】.控制工 程.2002,12(5):37―39 【2】杨自厚.控制系统的发展概况[J】.基础自动化,1994,6(3):l一20 【3】郑传礼.数控的现状与发展【J】.兵工自动化,1997,8(3):5.9 【4】刘涛,王宗义,孔庆磊,武光田.基于CAN总线的多电机协调运动控制系统研 究【J】.机床与液压.2010,10(3)138.3 【5】阳宪惠.现场总线技术及其应用【M】.北京:清华大学出版社.1998. 【6】崔玲玲.基于CAN总线的多电机同步控制系统研究[D】.青岛大学.2007, 【7】吴其华.多电机虚拟总轴同步控制系统研究[D】.华中科技大学.2003 【8】邬宽明.CAN总线原理和应用的系统设计[M】.北京:北京航空航天大学出版 社,1996 【9】陆汉栋.基于USB接121的锅炉运行记录仪的设计[D].南京理工大学.2004 【10】王杰.基于STM32F103矿用高压隔爆开关综合保护系统的研究与开发【D】.河 北工业大学.2010【11】潘玉静.基于FPGA的CAN控制器软核的设计与实现[D】.合肥工业大学.2011 【12】张玉姣.基于DSP的运动控制器的设计与研究.华中师范大学【D】.2009 【13】MAX485RS485/R422Transceivers[R].MaximIntegrated Products,1999Integrated【14】MAX232 MultiProducts.1 997Channel RS232 Drivers andReceivers[R].Maxim【15】刘玉良.软件无线电数字下变频技术的研究【D】.华中师范大学.2003 【16】刘宝廷,程树康.步进电动机及其驱动控制系统[MI.哈尔滨工业大学出版.1997【17】孙江.多电机同步协调控制系统的研究【D】.太原科技大学.2009 【18】郝小江,黄昆.基于FPGA的步进电机控制设计[J】.仪表技术.2011,9(3):20―22 【19】宋蓁蓁.基于CAN的防疲劳驾驶系统监控平台的设计与实现【D】.东北大学.2009【20】LV873l手册[R】.三洋公司.2010 【21】刘和平,严利平.TMS320LF240xDSP结构原理及应用【M】.北京:北京航空航天 大学出版社,2002. 【22】王庆双,蔡冬升.基于ARM的CAN通信系统的设计与实现[J】.航空电子技 术.201 1,42(8):9.1343 【23】王付军,陶维青.基于CAN的

我要回帖

更多关于 crc32 check failed 的文章

 

随机推荐