基于CAN总线的步进电机控制系统方案

上传人:痛*** 文档编号:98375022 上传时间:2022-05-29 格式:DOC 页数:53 大小:4.55MB
返回 下载 相关 举报
基于CAN总线的步进电机控制系统方案_第1页
第1页 / 共53页
基于CAN总线的步进电机控制系统方案_第2页
第2页 / 共53页
基于CAN总线的步进电机控制系统方案_第3页
第3页 / 共53页
点击查看更多>>
资源描述
. . . 中国计量学院本科毕业设计(论文)基于CAN总线的步进电机控制系统设计Stepper Motor Control System Based on CAN Bus Design学生俊学号 0800102101 学生专业自动化班级 08自动化1班二级学院机电工程学院指导教师王桂荣中国计量学院2012年6月重声明本人呈交的毕业设计论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的容外,本学位论文的研究成果不包含他人享有著作权的容。对本论文所涉与的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。学生签名:日期:2012年6月分类号: TP242 密级:公开UDC: 62 学校代码: 10356 中国计量学院本科毕业设计(论文)基于CAN总线的步进电机控制系统设计Stepper Motor Control System Based on CAN Bus Design作者俊学 号 0800102101 申请学位工学学士 指导教师王桂荣学科专业自动化培养单位中国计量学院答辩委员会主席评阅人2012 年6月1 / 53致非常感我的指导老师王桂荣副教授对我的指点,在王老师的细心教导下,我才可以顺利的做完我的毕业设计。不论是最开始的定题,还是其后参考文献的收集、选取和整理,一直到实物的制作、调试和论文的编写、修改,直到论文最结稿,王老师都给了我细心的指导,对我有非常大的帮助。并且,由于我是在的实习单位做的毕业设计,相隔千里,所以平时大多通过和与王老师进行联系交流。每次联系交流问题,王老师都会一一为我解惑,每份王老师都与其耐心答复。与此同时,王老师也为我严格把关。在此,我谨向我的导师王桂荣老师表示衷心的感!我还要感我的同事健飞,他对我的毕业设计也做了许多指导,在我设计实物过程中给我很多帮助;感周敏杰同学,在设计过程中我们互相交流、互相讨论,最终顺利的完成了毕业设计,感所有在我毕业设计过程中给我帮助和支持我的老师和同学。再次衷心的感你们!基于CAN总线的步进电机控制系统设计摘要:本文介绍了以单片机STC89C52RC为核心的基于CAN总线的步进电机控制系统设计的运作原理,其中结合了自动化专业的相关知识,控制系统包括硬件结构和软件控制。本文首先阐述了CAN总线的发展背景与当前的发展概况,接着比较详细的描述了基于CAN总线的步进电机控制系统的组成与其各部分的工作原理。整体系统由电机本体、驱动控制电路、CAN通讯电路和单片机STC89C52RC组成,实现了开环控制。本文也详细讲解了步进电机的概念,主要用途和发展方向,并且讲解了步进电机常用参数的意义和计算步进角的方法和驱动步进电机的常用脉冲方式。另外,本文详细讲解了CAN总线与主控单片机的接口设计,着重讲解了对SJA1000芯片的外围电路设计和驱动程序设计。通过本方案,实现了计算机通过CAN总线对步进电机进行开环控制,省去复杂的总线结构,节省了成本,降低了系统的复杂性,而且提高了稳定性,因此,基于CAN总线的步进电机控制系统具有很高的应用价值。关键词:CAN总线;步进电机;半双工通讯;速度调节;开环控制中图分类号:TP271Stepper motor control system based on CAN bus designAbstract:This paper describes the operation of the CAN bus-based stepper motor control system design principle the microcontroller STC89C52RC as the core, which combines the knowledge of the automation professional, control systems, including hardware configuration and software control.This paper first describes the background of the development of CAN bus and the current overview of the development, then a more detailed description of the composition of its part of the working principle of stepper motor control system based on CAN bus. The overall system consists of the body of the motor drive control circuit, CAN communication circuit and microcontroller STC89C52RC composed of open-loop control.The article also explained in detail the concept of a stepper motor, the main purpose and direction of development, and to explain the common pulse of the stepping angle of the stepper motors commonly used parameters meaning and calculation methods, and drive a stepper motor. In addition, we explain in detail the CAN bus to a host microcontroller interface design that focused on the SJA1000 chip peripheral circuit design and driver design.Through this program, the computer via the CAN bus to the open-loop control of the stepper motor, eliminating the need for a complex bus structure, cost savings, reducing the complexity of the system, but also improves the stability, therefore, based on CAN bus step into the motor control system has a high value.Keywords: CAN bus; stepper motor; half-duplex communication; speed adjustment; open-loop controlClassification:TP271目 次摘要I目次III1 绪论11.1 CAN总线的发展背景与发展概况11.2基于CAN总线的步进电机控制系统设计的研究意义31.3 本文研究的主要容31基于CAN总线的步进电机控制系统整体方案设计与原理42.1 基于CAN总线的步进电机控制系统的构成42.2 步进电机的工作原理52.3 步进电机的步进角的计算73 基于CAN总线的步进电机控制系统的硬件设计83.1电路整体设计83.2单片机系统设计93.3 CAN总线节点接口电路设计113.4 步进电机驱动电路设计143.5 步进电机163.6步进电机转速指示器194 基于CAN总线的步进电机控制系统软件设计204.1软件总体设计204.2 系统功能模块详细设计204.3 单片机初始化214.4 CAN初始化模块214.5 CAN总线发送模块224,6 CAN总线接收模块234.7步进电机调速模块245 试验与其结果分析255.1硬件测试与其结果分析255.2软件测试与其结果分析266 总结与展望26参考文献27附录A1附录 B1学位论文数据集11 绪论1.1 CAN总线的发展背景与发展概况1.1.1 CAN总线的发展背景在十九世纪后半叶,Robert Bosch公司在SAE汽车工程协会大会上发布了一种先进的串行数据总线CAN总线,在那个时刻CAN总线正式进入人们的视野中,今天欧洲的汽车生产商生产的每辆汽车均安装有CAN 总线局域网,同样CAN也应用到了其他的运输工具上,从高速列车到万吨巨轮甚至用于轻重工业控制,CAN 总线已发展为世界围最常用的线程总线之一。甚至在某种程度上引领着现场总线的发展。 所以,在1999 年到2000年两年中有接近2亿的CAN控制器投入市场也不足为奇了。在十九世纪八十年代初,Bosch公司的技术人员就开始对当时的现场总用于汽车工程的可操作性进行了讨论分析,因为没有一种现有的通讯方案能够完美的解决汽车工程师们所面临的问题。于是,从1983年起Uwe Kiencke 开始设计一种新型的串行总线,新型总线的主要优点是减少了各个系统子部分之间的通讯连接线的数目。使其能够实现产品化而不是沦为技术储备。来自Mercedes-Benz的技术人员很早就制定的新型总线的说明书,而Intel公司也开展了对新型总线的驱动芯片的研究工作。当时邀请的技术顾问,来自于德国的Applied Science 大学教授Wolfhard Lawrenz 博士,给出了新总线的名称Controller Area Net work ,缩写为CAN。与此同时,来自Karlsruhe 大学的教授Horst Wettstein 博士了也参与了研发工作。1986年2月,CAN总线已经很成熟了,在美国底特律召开的一次重要会议上,由Bosch公司开发的新型通讯系统被命名为“汽车串行控制器局域网”。由Uwe Kiencke,Siegfried Dais 和Martin Litschel三人分别讲解了这种新型的网络通讯方案。这种总线是在没有损害系统仲裁机制的基础上研发的,能够根据报文的优先级实施传输,甚至可以实现优先级较高的报文无等待传输。并且,可以不用在总线系统设置独立的主控制器,此外被称之为CAN 总线之父的-上面介绍的几位教授和Bosch公司的Wolfgang Borst ,Wolfgang Botzenhard,Otto Karl, Helmut Schelling ,Jan Unruh 已经完成了几种在CAN总线中的错误检验方法的研究。这种错误的检验方法也包含自动放弃故障节点的功能,以确保总线能支持总线上其他正常节点间的通讯。总线上报文并不是根据总线控制器上的ID识别(几乎其它的总线都是如此),而是根据报文里的数据识别。同时报文上的标识符也确定了其在总线上的发送优先级。当这种崭新的通讯方案的绝大部分协议制定后,在1987年的夏末,Intel公司比计划时间早了2个月,就生产出了首款CAN控制器芯片:82526,这是CAN总线的首次在硬件上实现。通过长达四年的努力,当初的设想终于变成了现实。在此之后,另一家半导体巨头,Philips公司也推出了它的CAN控制器:82C20。这两种早期的CAN 控制器在滤波和接收报文的协议没有统一,有很多不同之处。一方面由Intel公司推出的FullCAN协议比由Philips主推的BasicCAN占用较少的处理器资源;然而,支持FullCAN的控制器所能接收的报文数目相对于BasicCAN较少,而BasicCAN 控制器硬件设计简单,生产方便。总的来说,两者各有优点和缺点。在现在CAN控制器中,验收滤波和报文控制方面也是有许多不同之处的,故而产生;饿BasicCAN和FullCAN 两中CAN协议。1.1.2 CAN总线的发展概况尽管CAN总线协议已经发布了很长的时间,但是生产厂商们仍然在不断地改进它。从21世纪初期开始,一个由多个公司联合组成的ISO技术组织开发了一种由时间触发CAN发送报文的协议。Thomas Fuehrer博士,Bernd Mueller博士,Bosch公司的技术和模拟电路专家,理论专家将此协议定义为“时间触发通讯CAN (TTCAN)”,计划将其标准化为ISO11898-4 。这个CAN的扩展协议已经有支持的芯片生产出来,该协议可以在实现闭环控制下支持报文的定时发送,而且还可以实现CAN协议的x-by-wire应用。因为基本CAN协议并未改变,所以,在同一个的物理层上,既可以实现定时发送报文,也兼容由事件触发发送报文。CAN因为TTCAN的诞生而又可以在10年继续应用。现在CAN在全世界的市场上还是处于起步阶段,在未来的某个时间,当CAN受到重视时,谁也预估到CAN 在未来10至15 年的研究方向。在此需要说明一个情况:最近几年,美国本土和阿拉伯地区的汽车生产商将在他们所制造的汽车的都是用了CAN总线系统。另外CAN总线还有大量的潜在应用,例如:娱乐、航空制造业、工业等。现在的CAN总线系统,不仅可用于汽车领域,也正在逐步走进日常生活。同时,与高层协议相结合的应用,特种安保系统对CAN总线的需求也正在逐步增长。德国国家专业委员会BIA和德国国家安全标准权威机构TV已经对一些基于CAN总线系统的安保系统完成了认证工作。CANopen -Safety就是首个获得BIA认证许可的CAN 总线解决方案,DeviceNet-Safety也马上会得到另一个有影响力的协会, Germanischer Lloyd在海事运输上的应用许可。在其他行业中,CANopen 网络可以依据协议规定可以通过自动切换的方式转换为冗余总线系统。所以,CAN总线正在处于一个蓬勃发展的时代,在各个趋势下,需要大批量的技术人员和公司参与进去。1.2基于CAN总线的步进电机控制系统设计的研究意义步进电机是一种根据脉冲信号转动特点的角度或线位移的电器件。在正常情况下,步进电机的旋转速度、转动的角度只和电脉冲信号的频率和脉冲数有关系,而与负载的变化没有关系,当把一个脉冲信号发送到步进电机驱动器,步进电机根据这个脉冲信号向一个特定的方向转动一个特定的角度,称为“步距角”,它的旋转角度是通过脉冲驱动一步一步运行的。所以,可以通过控制脉冲数目来控制旋转的角度,从而可以达到精确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。因为步进电机具有这些特点,所以该器件适合于精密的控制场所,比如列车/汽车模拟器的仪表,高精度工业机器人手臂等需要高精度执行机构的场所,而CAN总线系统恰恰是这些场所的常用的现场总线种类,两者配合,珠联璧合,具有线路简单,具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等,控制精度高等优点。因此,基于CAN总线的步进电机控制系统具有很高的应用价值。1.3 本文研究的主要容如前文所述,基于CAN总线的步进电机控制系统已成为现代工业中的一个重要研究方向。目前,电子市场上也出现了许多针对CAN总线和步进电机的专用控制和驱动芯片。本文所研究的主要容是基于CAN总线的步进电机控制系统的运行原理与其软硬件的设计。论文的具体工作如下:(1) 基于CAN总线的步进电机控制系统硬件组成与其原理(2) 介绍了步进电机的工作原理和介绍了计算步进角的方法(3) 基于STC89C52RC单片机的CAN通讯的软件控制系统的设计。1 基于CAN总线的步进电机控制系统整体方案设计与原理2.1 基于CAN总线的步进电机控制系统的构成基于CAN总线的步进电机控制系统是由单片机最小系统、CAN总线收发模块、步进电机驱动电路、步进电机和步进电机转速指示灯组成。1. 单片机最小系统用于控制CAN模块,读取CAN总线上的数据,处理,并通过驱动电路控制步进电机运动。是系统的核心。2. CAN总线收发器模块是单片机与CAN总线的接口电路,以SJA1000为核心,编程实现半双工通讯。3. 步进电机驱动电路根据脉冲信号驱动步进电机,采用ULN2003集成电路芯片,该芯片具有良好的放大电流作用,是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成。4. 步进电机执行机构采用MITSUMI公司的M35SP-7型步进电机,在单双八拍的驱动方式下,步进角3.75精度较高,性能可靠。5. 步进电机转速指示灯本系统的调速程序为采用分级调速模式,分为4级正转,4级反转,一级停止共9级,故用四只红色和五只绿色一共九只发光二极管充作档位指示灯。本系统的系统框图如图2.1所示:图2.1.1基于CAN总线的步进电机控制系统组成结构计算机通过USB-CAN模块向CAN总线发送报文,CAN与单片机接口电路读取CAN总线上的数据,并且比较报文里的目标ID与下位机ID是否一样,如果不一样,就清除缓冲区,如若一样,就像MCU发起中断请求,MCU通过数据总线读取SJA1000里的容,保存到全局变量DISPLAY中,随后清除SJA10000的缓冲区,根据DISPLAY的值,来驱动步进电机运动。当DISPLAY为1、3、5、7四个数中的一个数时,步进电机反正,数据越大,转动速度越快,当DISPLAY为2、4、6、8中的一个数时,步进电机正转,旋转速度随着数值的增大而变快。2.2 步进电机的工作原理步进电机是根据电脉冲信号移动一定的直线位移或旋转一定角度的电机。每次得到一个新的脉冲信号,步进电机的转子就转动一个固定的角度或者移动一个固定的长度。并且,在额定功率和负载能力围,步进电机的步进角或步进位移,转动速度或线速度不随压力,温度,冲击,振动的变化而变化。综上所述,步进电机具有稳定性好,精度高,抗干扰能力强等优点,所以,步进电机非常适合于开环的控制系统。图2.2.1四相制步进电机原理示意图由于我采用的步进电机为MITSUMI公司的M35SP-7型步进电机为五线四相制,所以在本文中以五线四相制步进电机为例,(图2.2.1的转子齿数为6个儿M35SP-7的转子齿数为12个,其原理是一样的。)说明步进电机的工作原理。当A相绕组通电时,B相、C相和D相的绕组断开,A相的绕组由于电磁反应,产生磁场,转子受到该电磁场的作用,进行转动,A相绕组的磁极和转子0、3号突齿对齐,如图2.2.2(a)。当B相绕组通电时,C相、D相和A相的绕组断开,B相的绕组由于电磁反应,产生磁场,转子受到该电磁场的作用,进行转动,B相绕组的磁极和转子1、4号突齿对齐,如图2.2.2(b)。当C相绕组通电时,C相、D相和A相的绕组断开,C相的绕组由于电磁反应,产生磁场,转子受到该电磁场的作用,进行转动,C相绕组的磁极和转子2、6号突齿对齐,如图2.2.2(c)。当D相绕组通电时,C相、B相和A相的绕组断开,D相的绕组由于电磁反应,产生磁场,转子受到该电磁场的作用,进行转动,D相绕组的磁极和转子0、3号突齿对齐,如图2.2.2(d)。继而继续循环,周而复始,指导定子的磁场和转子的磁场一样,不在运动。(a) (b) (c) (d)图2.2.2四相步进电机单四拍运行示意图四相制步进电机按照驱动方式顺序的不同,可分为双四拍、单四拍、单双八拍三种驱动方式。单四拍和双四拍的步距角一样,但是单四拍的力矩较双四拍小。单双八拍工作方式的步距角是双四拍和单四拍的二分之一,所以,单双八拍的工作方式既可以保持较高的力矩又可以提高控制精度。图2.2.3三种驱动方式示意图如图2.2.3所示,三种驱动方式分别为单相四拍,双向四拍,单双八拍三种波形。三种驱动方式分别为1. 双四拍驱动方式AD-BA-CB-DC2. 单四拍的驱动方式D-A-B-C 3. 单双八拍的驱动方式A-AB-B-BC-C-CD-D-DA2.3 步进电机的步进角的计算本系统所采用的执行机构为MITSUMI公司的M35SP-7型步进电机,我们就以它为例,讲解下步进电机角位移的计算方法。(2.1)公式2.1为步进电机步进角计算公式,式中:步进角度, m:定子的相数 Z:转子的齿数 C:脉冲方式(单四拍/双四拍C=1,单双八拍C=2。)查资料得知,M35SP-7型步进电机的定子为四相,转子为12齿。在单四拍/双四拍的脉冲方式下,得出C=1 (2.2)m=4 (2.3)Z=12 (2.4)将式2.2、2.3和2.4代入式2.1中,得出式2.5(2.5)由式2.5可知M35SP-7型步进电机在单四拍/双四拍的脉冲方式驱动下,步进角为7.5。(2.6)依次类推,该步进电机,在单双八拍的驱动方式下,步距角为3.75。计算过程见式2.6。3 基于CAN总线的步进电机控制系统的硬件设计3.1电路整体设计图3.1.1整体电路图本系统的硬件主要是由以下几个部分组成:单片机最小系统,CAN总线与单片机接口电路,步进电机驱动电路和步进电机转速档位显示电路。在本章后半部分,会一一详细说明。图3.1.2 基于CAN总线的步进电机控制系统实物3.2单片机系统设计图3.2.1单片机最小系统电路图本系统我选用的主控芯片为STC89C52RC单片机,STC89C52RC 单片机是宏晶科技公司推出的新一代高频率/低功耗/抗强干扰的单片机。主要特点如下:1.支持6T和12T两种时钟周期,指令集完美兼容传统的8051单片机。2.工作频率围支持:040MHz,必要时,工作频率可达 48MHz。3.多达8K的程序存储空间。4.片集成 512 Byte的 RAM。5. 32个通用I/O口在单片机复位后,P1/P2/P3是双向通道,置上拉电阻,而P0口是漏极开路输出,作为I/O口时需要附加上拉电阻。作为地址/数据总线拓展时不用加上拉电阻。6. 可以通过串口(RxD/P3.0,TxD/P3.1)直接下载程序,烧写速度快,几秒就可以烧录完成一片。7. 具有PROM功能。8. 置看门狗功能。9. 置3个16位计数器/定时器,即T0、T1、T2。10. 四种外部中断方式。11. 通用异步串行口(UART),还可用定时器软件实现多个 UART12. 工作温度围广,工业级工作温度围为 -40+85,商业级为075。13. 拥有多种封装方式。比如双列直插式和贴片式。图3.2.1 STC89C52RC管脚图下面,介绍下STC89C52RC的重要管脚。单片机的管脚从功能方面分,大致分为4类:电源、时钟、控制和I/O引脚。1. 电源类管脚:(1) 20脚 VCC,芯片正电源接+5V;(2) 40脚VSS,芯片地接0V;2. 时钟类管脚:(1) 19脚XTAL1晶体振荡电路反相输入端(2) 18脚XTAL2 晶体振荡电路反相输出端。3. 控制线(1) 30脚ALE/PROG:30脚ALE是地址锁存信号脚,当ALE处于高电平时,P0口出现的是地址信息,在ALE处于下降沿时,单片机将P0上的地址数据锁存到片外地址锁存器中,在ALE低电平时,P0口出现的是指令或者数据信息。(2) 29脚 PSEN:29脚 PSEN 是片外程序存储器读选通脚,PSEN低电平有效。(3) 9脚 RST/Vpp:当单片机开始正常工作后,此引脚出现两个机械周期的高电平,芯片部进行复位操作,当该脚变为低电平后,单片机将从0单元执行程序。9脚还是个复用管脚,将Vpp接+5V备用电源后,一旦20脚电压下降或断电,能保护片RAM信息不回丢失,上电后正常工作。(4) EA/Vpp:外ROM选择脚/片EPROM编程电源21V。4. I/O管脚80C52共有4个8位并行I/O口:P0、P1、P2、P3,共32根引脚。较特殊的是P3端口,它还具有第二功能,用于特殊信号输入输出和控制信号。表3.2.1 P3口第二功能定义端口第二功能端口第二功能P3.0RXD(串行输入口)P3.4T0(记时器0外部输入)P3.1TXD(串行输出口)P3.5T1(记时器1外部输入)P3.2INT0(外部中断0)P3.6WR(外部数据存储器写选通)P3.3INT1(外部中断1)P3.7RD(外部数据存储器读选通)3.3 CAN总线节点接口电路设计CAN总线节点接口电路如图3.3.1所示,从电路原理图中可以看出来,电路主要是由两部分组成:独立的CAN通讯控制器SJA1000和CAN总线驱动器PCA82C250。图3.3.1 CAN总线节点接口电路SJA1000的数据口AD0-AD7连接到主控单片机STC89C52RC的P0口上,CS脚连接到STC89C52的CS脚,即P2.0脚。P2.0为低电平时,单片机片外程序存储器地址可以选中SJA1000,单片机通过这些地址可以对SJA1000芯片执行相应的读出/写入操作。SJA1000的RD,WR,ALE引脚分别连接单片机的P3.7脚(RD),P3.6脚(WR),和第30脚(ALE)。INT与单片机的外部中断1(P3.3口)连接,单片机ST89C52RC可以通过外部中断的方式访问SJA1000芯片部的存储空间。为了增强CAN总线接口电路的抗干扰能力,我在电源正负极两端加了个瓷片电容104,可以清除电源线上的高频干扰,并且具有一定的放电磁射的能力。为了直观的观察到CAN总线节点接口电路的工作情况,我特意在TX0和RX0上接了两个发光二级管,当CAN总线上呈现显性信号时(CAN总线规定,显性信号时低电平,隐性信号为高电平),发光二级管导通工作,发出红色光,为了保护发光二极管、PCA82C250和SJA1000不被大电流烧毁,在发光二级管正电极与电源VCC接入一个一千欧姆的电阻,限制了发光二极管上的电流。SJA1000 芯片是一种由飞利浦公司生产的CAN总线独立控制器,用于便携式设备和工业条件中的CAN网络控制。它是PHILIPS半导体PCA82C200 CAN 控制器BasicCAN 的替代产品而且它增加了一种新的工作模式PeliCAN,这种工作模式支持最新的CAN 2.0B 协议,并且向下兼容CAN 2.0A协议。SJA1000芯片集成了CAN 协议中的物理层和数据链路层和物理层两层协议,可以把需要通信数据的处理成符合CAN总线协议的帧, SJA1000具有总线访问优先权、多主结构、硬件抗干扰滤波等优点。图3.3.2 SJA1000管脚图图3.3.3 PCA82C50芯片部框图PCA82C250芯片是CAN 总线收发器,是SJA1000CAN总线控制器和CAN总线间的硬件接口,具有抓取CAN总线的数据包,和把SJA1000中的数据推送的CAN总线上的能力。它有较强的抗强干扰能力,并且具有保护总线的左右; 此芯片有3种不同的工作方式:高速模式、斜率控制模式、和待机模式。总线上某一个节点因为某种原因不工作不会影响总线的正常工作, 在40m实现高速应用可达1M/S, 最多可以连接多达110个CAN节点。图3.3.4 PCA82C250管脚图PAC82C250管脚如图3.3.4所示,我采用的PCA82C250是SOIC贴片封装,工作温度从零下40摄氏度到125摄氏度,工作围广,工作电压从4.5V-5.5V抗干扰能力强,电源电流为100A功耗低,发热控制好。第一管脚是TXD口,用于接收向CAN总线发送的数据,一般接在CAN独立控制器上。本系统接在SJA1000的第13脚TX0口。第二管脚是电源地,为了保持DC5V的稳定性,我在DC5V两端接入一个瓷片电容104,提高了系统电源的稳定性。第三管脚是电压电源VCC接直流电源5V。第四管脚RXD是接收数据输出端,从CAN总线上读取到的数据从这里输出与TXD口一样,一般接在CAN总线控制器上,本系统接在SJA1000上的第19脚RX0上。第五管脚Vref是参考电压输出端,因为本系统所参与的上位机没有参考电压输入端,所以我把这个管脚悬空。第六管脚CANL是低电平电压输入/输出管脚,接在CAN总线上的CANL线上。是本系统与CAN总线的主要接口。第七管脚CANH是高电平电压输入/输出管脚,接在CAN总线上的CANH线上。是本系统与CAN总线的主要接口。第八管脚Rs是斜率电阻输入管脚,在本系统中,接一个47K的电阻连接到电源地上。PCA82C50 是CAN 协议控制器和物理总线间的接口,它主要是为汽车中高速通讯(高达1Mbps)应用而设计。此器件对总线提供差动发送能力,对CAN 控制器提供差动接收能力,完全符合“ISO11898”标准。一个限流电路可防止发送输出级对电池电压的正端和负端短路。虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。在节点温度大约超过160时,两个发送器输出端的极限电流将减少。由于发送器是功耗的主要部分,因此芯片温度会迅速降低。IC 的其他所有部分将继续工作。当总线短路时,热保护十分重要。CANH、CANL 两条线也防止在汽车环境下可能发生的电气瞬变现象。3.4 步进电机驱动电路设计图3.4.1步进电机驱动电路原理图步进电机驱动电路的核心芯片是ULN2003,该芯片具有电流放大倍数发,工作电压围广,负载功率大等特点,适用于各类需要驱动脉冲频率高,驱动电路大的驱动控制系统。在本系统中,采用的是由美国的两家公司联合出品的ULN2003A芯片。图3.4.2 ULN2003功能框图在实际项目中,常常要用到伺服电机、步进电机、无刷电机等各种大功率、高电压的电器件。ULN2003、ULN280系列产品就是为了这类大功率用电器而推出的,由于这类电器件功能强大,市场销量好。因此,水涨船高,此芯片的销路很广,故越来越多的芯片生产厂商都生产此类产品,造成了市场上有各种系列产品,在本系统中,采用的是由美国的两家公司联合出品的ULN2003A芯片。图3.4.3输入脉冲占空比与输出路数和输出电流的关系曲线ULN2003A型芯片的输入脉冲占空比、输出的路数与输出电流的关系曲线如图3.4.3所示,从图中可以了解到,最大的输出电流随着输入脉冲的占空比以与输出路数的增加而降低,所以:占用过多的通道会使芯片的驱动电流和驱动电压减小。图3.4.4 输出Ic、Vce和输入Ii的关系曲线图3.4.4所示为ULN2003A电路输出电流Ic、输出电压VCE和输入电流II三者之间的关系曲线,从图3.4.4可以得出如下结论,随着输入电流的增大,输出电压反而降低,而随着输出电流的增加,输出电压也随之增加。3.5 步进电机图3.5.1 MITSUMI公司的M35SP-7型步进电机本系统的执行机构采用执行机构的是MITSUMI公司的M35SP-7型步进电机,它具有尺寸小扭矩高,稳定性好,精度高,相应速度快等优点。表3.5.1M35SP-7主要参数额定工作电压DC6V工作电压围DC5VDC6.6V最大电流最大807mA线圈组数4组线圈电阻8/相7%步进角7.5/步绝缘等级E级绝缘保持转矩29.4mNm失步转矩18.1mNm/200pps失步脉冲770pps如表3.5.1所示,步进电机主要有额定电压,最大电流,线圈组数,线圈电阻,步进角等参数。1.步进电机的相数:步进电机的相数也就是定子绕组的数量,一般有二相,三相,四相,五相等。一般来说,步进电机的相数越高,步距角越小,精度也就越高。步进角是步进电机的固有参数,即使我们使用好的细分驱动器,也不可以改变步进角这个参数。但使用细分驱动器能提高步进的精度,减小运行时的噪音和颤动,并且可以提高扭矩。细分驱动器是根据对电流大小的细分来达到步数的细分,会受到许多外在和在因素的影响,实际的效果并不好。平滑控制比不使用平滑控制好,但细分驱动控制目前算是控制方式的首选。2. 步进电机的步距角:它表示控制系统每次发出一个点脉冲信号,步进电机转子所转动的角度。这个参数是步进电机的实际精度一个表现。 3. 步进电机的保持转矩:步进电机的保持转矩指的是步进电机通电但没有驱动脉冲变化运动时,步进电机的转子和定子间的力矩。保持转矩是步进电机重要的参数。一般来说,步进电机在低速运行时的转动力矩接近于保持转矩。因为步进电机的输出力矩随着转子的转速的减小而不断递增,输出功率也随转子转度的减小而变大,故而保持转矩就变成了步进电机的重要参数。例如,当技术人员说7NM的步进电机,一般情况下说的都是保持转矩是7Nm的步进电机。4. 步进电机的制动转矩:步进电机的制动转矩是指电机没有通电的情况下,步进电机定子与转子之间力矩。有些步进电机的转子是电磁铁材料,所以它无制动转矩这个参数。5.步进电机的最高温度:步进电机温度过高首先会使步进电机部的永磁性材料磁性减弱,从而使步进电机的转动力矩下降甚至停止工作导致失步,因此电机的最高温度是因为采用的磁性材料的退磁温度来决定;一般情况下,磁性材料的退磁温度都在120以上,有的材料甚至能达到250以上,所以电机的表面温度达到90也是可以正常工作的。6.力矩与功率换算步进电机在调速围较大时,步进电机的功率是变化的,实际生产中一般采用力矩来衡量,功率和力矩的换算公式如式3.1。(3.1)其中参数P是功率,它的单位是瓦特,为每秒转动的角度,单位是弧度,n为定子转动的速度,M为力矩单位为牛顿米 (半步工作)(3.2)式3.2 中,参数f代表的含义是每秒脉冲数,缩写是PPS。步进电机一般用在打印机,多功能一体机,复印机, 机等,具有高精度,快速相应等特点的系统上。3.6步进电机转速指示器图3.6.1步进电机转速指示器原理图为了减小调试难道和方便实物验收,本系统增加了步进电机转速标志模块。因为发光二极管反向耐压只有5伏。他的工作电流也比较小,所以在实际生产生活中必须跟限流电阻串联用以限制支路上的电流。限流电阻的计算公式如式3.3:(3.3)式中E为电源正电压,UF为发光二级管的工作电压,IF为发光二级管的额定电流。发光二极管有一般只有两根引脚,其电源正负极的辨别方式和电容一样,较短的为负极,较长的为正极。长的一端应该连接电源的正极。有个别厂商生产的引脚一样长,但外壳上绝对会有标记,一般与标记较近的引脚是发光二级管正极。发光二级管与小灯泡和氖气灯相比较,发光二级管的优点是:工作电压低,工作电流小,功耗小,稳定性好,衰老时间长;通过调节电流的大小就可以方便地改变LED发光的强弱。所以,发光二极管用途很广,例如:大型公共场所或者室的照明光源,在电子设备中当做信号指示灯等。在本电路中,电源为DC5V采用的发光二级管的工作电压为1.8V,电流为3mA。(3.4)取近似值1K的色环电阻,串联在电路中,得到了较好的效果。4基于CAN总线的步进电机控制系统软件设计4.1软件总体设计图4.1.1系统软件总体流程图基于CAN总线的步进电机控制系统软件设计主要分为SJA1000驱动部分和步进电机驱动部分两大块,其中步进电机驱动部分是主体,是单片机一直运行的函数,完成了对步进电机的基本运动控制,其中包含了正转,反转和停止共九级调速。SJA1000驱动部分包括SJA1000芯片初始化模块、CAN总线发送函数模块和CAN总线接收模块。步进电机调速指示灯驱动,步进电机速度等级发送等功能包含在其他子程序中,这些功能模块的设计会在本章后半段详细讲解。4.2 系统功能模块详细设计如图4.1.1所示,整个系统的软件流程,在系统上电后对各个芯片进行初始化,次序如下,首先对STC89C52RC单片机进行初始化,包括打开单片机的部定时器0,外部中断1和数据总线、地址总线的初始化。若初始化成功进入CAN总线初始化模块,此模块主要包括对SJA1000芯片的初始化,对其与单片机相连接的一些管脚进行初始化设置,保证初始化完成。如果初始化失败,重新初始化,如果成功,则设置定时器0,定时10us,此后,程序执行到步进电机调速部分,根据从CAN总线接收到的数据,驱动步进电机调速和点亮相应的指示灯进行显示。4.3 单片机初始化系统上电后,单片机首先对自己进行初始化,为后续程序做铺垫。主要是对SJA1000进行复位操作,复位的方法是对SJA1000的RST脚先至于低电平,10US后,在拉高该脚,这样SJA1000就进行了一次复位操作了。复位操作后,为了与SJA1000通讯,所以要选中SJA1000芯片,故而拉低SJA_CS脚。然后是开启外部中断1,触发方式是边缘触发,而后开启总中断。 SJA_RST = 0;/SJA1000复位有效 mDelay(10);/延时 SJA_RST = 1;/CAN总线复位管脚,复位无效 mDelay(10); SJA_CS = 0;/CAN总线片选有效 EX1 = 1;/外部中断1使能;CAN总线接收中断 IT1 = 0;/CAN总线接收中断,低电平触发 EA = 1; /打开总中断图4.3.1单片机初始化流程图4.4 CAN初始化模块在单片机初始化完成后,随着程序的执行,就进入了CAN初始化模块,由于本系统采用了新型的CAN总线独立控制器SJA1000,所以对CAN的初始化都是围绕着SJA1000完成的。SJA1000T的初始化只能在复位后才可以进行,初始化的容主要包括:芯片的工作方式的设置、接受滤波的工作方式的设置、接收代码寄存器(ACR)和接收屏蔽寄存器(AMR)的设置、波特率的设置和中断许可寄存器(IER)的设置等。4.5 CAN总线发送模块本系统的发送过程很简洁,在确定芯片没有发送报文,且发送缓冲区为空时,发送的程序只需要将需要发送的数据按照特殊的格式组合成一组报文,送人SJA1000的发送缓冲区里,然后控制SJA1000芯片发送即可,发送的数据分为远程帧和数据帧,本系统只用到了数据帧。CAN总线发送函数:void SJA_TX(unint id,unchar txdata) unchar tx_buffer6; unchar data state; unint tmp; /这个临时变量是用于id处理的 tx_buffer0 = 0x81; /设定为pelican帧格式,并且一次传一个字节/将节点号,按照发送缓冲区的规则,填写到发送缓冲区中tmp = id 8); tx_buffer4 = (unchar)tmp;tx_buffer5 = txdata; /要发送的数据 do state = SJA_SR; while(state & RS_BIT);do /确保sja1000,不是处于发送数据的状态 state = SJA_SR; while(state & TS_BIT);do/确保sja1000,发送缓冲区为空 state = SJA_SR; while(!(state & TBS_BIT); /SR.2=0,发送缓冲器被锁。等待 SJA_TBSR0 = tx_buffer0; SJA_TBSR1 = tx_buffer1; SJA_TBSR2 = tx_buffer2; SJA_TBSR3 = tx_buffer3; SJA_TBSR4 = tx_buffer4; SJA_TBSR5 = tx_buffer5;SJA_CMR = TR_BIT;/开始芯片发送数据4,6 CAN总线接收模块CAN数据的接收是通过外部中断1来实现的,首先,当SJA1000芯片接收到了数据,然后通过电路向单片机发出中断请求,单片机根据中断优先级,执行各个中断的操作,当单片机执行到外部中断1的附带操作时,单片机首先关闭总中断,防止中断嵌套,破坏操作时序,然后读出SJA1000芯片的中断寄存器的容确定是那种中断,如果是数据中断,单片机读取SJA1000的缓冲区的容,送入数组rx_buffer6中,接收到数据后,释放SJA1000的缓冲区、仲裁实时捕捉寄存器和错误代码捕获寄存器。并且把接收到的数据复制到全局变量display中,执行完毕后,开总中断。void SJA_RX(void) interrupt 2/51外部中断1 unchar rx_buffer6; unchar state; EA = 0; /关中断 state = SJA_IR; /读出中断寄存器的容,以确定产生哪种中断 /确定是因为接收数据产生的中断,并将数据送往局部数组rx_buffer if(state & RI_BIT) rx_buffer0 = SJA_RBSR0; rx_buffer1 = SJA_RBSR1; rx_buffer2 = SJA_RBSR2; rx_buffer3 = SJA_RBSR3; rx_buffer4 = SJA_RBSR4; rx_buffer5 = SJA_RBSR5; SJA_CMR =SJA_CMR | RRB_BIT;/接收到数据后,释放接收缓冲区 state = SJA_ALC;/释放仲裁随时捕捉寄存器 state = SJA_ECC;/释放错误代码捕捉寄存器 dispy = rx_buffer5;/将收到的一个字节数据复制到全局变量dispy rxflag=1;/给出标志,表示收到了数据 EA = 1;/开总中断4.7步进电机调速模块图4.7.1单片机初始化流程图步进电机的调速原理是改变步进电机的驱动脉冲频率,本系统采用延时函数实现了控制脉冲的频率,从而达到了调节步进电机转速的目的。如图4.7.1所示,步进电机调速模块是单片机一直运行的程序,当接收外部中断0的请求后,单片机更新DISPLAY数据,根据特定的值调节脉冲的频率,从而达到步进电机分档调速的目的,当DISPLAY不是特定的值时,步进电机进入停止档位。在这段程序运行时,每个1S时间,单片机会把步进电机的档位值通过CAN总线发送到计算机上。5 试验与其结果分析5.1硬件测试与其结果分析由于采用手工焊接电路,存在焊错的可能,所以需要一步一步的检测和调试。首先用万用表测试电源电压结果为5.3V,比预计值高出0.3V,但是此误差在允许围,所以电压合格。其次,再取下STC89C52RC芯片和CAN模块的情况下,进行上电测试。测试脚见表5.1.1表5.1.1 上电测试表测试管脚电压(V)是否正常测试管脚电压(V)是否正常MCU VCC5MCU P1.50MCU GND0MCU P1.60MCU P1.00MCU P1.70MCU P1.10MCU P1.80MCU P1.20MCU T00MCU P1.30CAN VCC5MCU P1.40CAN GND0注:表示符合预期结果。表示不符合预期结果据统计,在单片机最小系统工作不正常很多都是因为没有接接电源或者焊接错误,所以我第一部测试的就是电源,结果让人满意。测试MCU P1口的目的是因为此组I/O口是用来驱动步进电机调速显示电路的,可能存在着二极管焊接错误的问题。5.2软件测试与其结果分析如果说系统的硬件相当于一个人的躯体,系统的软件就是人的灵魂,由于本系统的软件采用的是模块化编程,所以软件测试需要逐步进行,为了测试CAN总线模块,测试方法如下,计算机先发送一个数据,ID为0(下位机ID为5),单片机应为无反应,如果有返回值,正面SJA1000的驱动函数有问题,没有筛选出ID,如果单片机无反应则正常。然后,在计算机上设置目标ID为5,再次发生数据,如果有返回值,则正面SJA1000T芯片初始化函数,CAN总线发送函数和CAN总线接收函数正常。6 总结与展望毕业设计是我在大学学习期间最后的一个教学活动。这个环节是综合检验我大学期间的学习成果。作为一个即将进入社会的大学生,为了应对以后工作中,生活中的挑战,我在选题之初就考虑选一个软件、硬件结合的课题。而基于CAN总线的步进电机控制系统设计这个题目是一个难度非常大的题目,对我来说很有挑战,但在王桂荣老师的悉心指导下,我比较圆满的完成了这个题目,学习到了一些以前没有接触过的知识和学习理念,在此,我再一次的感王老师的我的悉心指导和耐心的帮助。经过这次毕业设计的训练,我
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!