《基于ARM9的直流电机控制系统的设计(共50页).doc》由会员分享,可在线阅读,更多相关《基于ARM9的直流电机控制系统的设计(共50页).doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上基于ARM9的直流电机控制系统的设计沈阳航空航天大学2010年6月专心-专注-专业摘 要随着我国经济的高速发展,微电子技术、计算机技术和自动控制技术也得到了迅速发展,直流电机调速技术已经进入一个崭新的时代,其应用越来越广。而作为控制核心的各种单片机芯片也在不断的更新发展,其功能越来越强大。随着人们对其要求的提高,直流电机控制系统的调速方法也相应的产生了PWM(脉宽调制技术),其控制芯片也由原来常用的51单片机系列升华为ARM系列的控制实验板。本设计基于ARM9开发板的直流电机控制系统的调速,以显示ARM开发板的独特功能,利用脉宽调制技术,调节占空比以达到调节转速的目的
2、,将测得的数据传给上位机后进行观测。设计大体上分为硬件设计和软件设计两部分,硬件部分包括驱动模块,控制模块,数据检测模块以及通信模块,软件部分包括程序设计,两大部分实现了对电机转速的监测和控制,更好的确保了设计的准确性。通过合理的选择和设计提高了直流电机控制系统调速的技术,学习和研究新型控制芯片,使设计达到了较为理想的控制效果是本设计的宗旨。关键词:ARM9开发板;PWM技术;PID调节功能AbstractAlong with the rapid development of Chinese economy, microelectronics technology, computer tech
3、nology and automatic control technology is rapidly developing, dc motor control technology has entered a new era, the more and more wide application. As the core of MCU control chip are constantly updated development, its function and more powerful.As for the people, the control system of dc motor c
4、ontrol method and the corresponding produce the pulse width modulation (PWM) and its control chip technology is used by the original sublimated 51-series microcomputer series of control board ARM series. The design is based on ARM9 development board of the control system of dc motor speed, in order
5、to show the ARM development board, using the unique function of PWM technology, SHCH adjustment in order to achieve the goal, will adjust speed measurement data to PC and software it. General design of hardware design and software design is divided into two parts, hardware part includes driver modul
6、e, control module, data communication module, and the software module includes programming module, two most of the monitoring and control motor speed, better ensure the accuracy of the design.Through the reasonable selection and design of dc motor control system to improve the speed of technology, l
7、earning and research, new control chip design to the ideal control effect is the design purpose.Keywords: ARM9 Board; PWM;PID Adjustment Function目 录1绪 论11.1毕业设计立题意义11.2研究内容及目标31.3 毕业设计内容分析32总体方案设计42.1直流电机控制系统的总体设计思想42.2硬件部分设计52.3软件部分设计53硬件设计方案63.1 ARM9开发板简介63.2 驱动模块设计73.2.1 S3C2440芯片简介73.2.2 SPGT62C
8、19B电机控制模组简介83.3数据检测模块设计103.3.1 PWM技术简介103.3.2直流电机电枢PWM调压调速原理103.3.3直流电机调速系统的整体结构113.3.4 ARM的脉宽调制PWM描述113.4控制模块设计133.5 通信模块设计143.5.1 RS232的串口通信接线143.5.2 串口通信154软件方案设计174.1 系统软件设计步骤174.2 编程环境设置194.3 程序设计204.3.1系统初始化204.3.2中断子程序设计214.3.3 PWM调速程序设计224.3.4 串口通信程序设计235直流电机控制系统综合调试与分析255.1 硬件电路调试255.2 利用H-
9、JTAG调试程序265.3系统联调结果与分析27结论29社会经济效益分析30参考文献31致 谢32附录S3C2440A芯片原理图33附录 程序清单341绪 论随着我国经济的高速发展,微电子技术、计算机技术和自动控制技术也得到了迅速发展,直流电机调速技术已经进入一个崭新的时代。然而,电机调速的方法有很多,比如说变极对数调速法,变频调速法,串级调速法,绕线式电动机转子串电阻调速法,定子调压调速法,电磁调速法等。但是在某些条件下,直流电机调速具有其特有的优势。为了提高生产率和保证产品质量,大量的生产机械要求直流电机以不同的速度工作。这就要求人们采用一定的方法来改变机组的转速,即对直流电机进行调速。对
10、电机的转速不仅要能调节,而且要求调节的范围宽广,过程平滑,调节的方法要简单、经济。直流电机在上述方面都具有独到的优点,使它得到广泛的应用。本文针对直流电机具有起动转距大、体积小、重量轻、转矩和转速容易控制以及效率高等十分优良的特点, 根据自动控制原理, 采用PWM控制方式, 设计了一个直流电机控制系统,以更好地对直流电机进行精确而又迅速的控制。1.1毕业设计立题意义直流电机是常用的动力提供原件,在日常生活中占据着十分重要的地位,研究直流电机的速度控制,有十分重要的意义。驱动电机选用直流电机,这是因为直流电机具有优越的速度调节控制性能,具有较大的转矩,用以克服装置的摩擦阻力和负载转矩,调速范围宽
11、而且速度平稳,具有快速响应能力,可以适应复杂的速度变化,直流电机的负载特性硬,有较大的过载能力,可以确保运行速度不受负载冲击的影响。ARM是近年来发展非常迅速的处理器,有很好的应用前景。ARM,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM处理器是现代非常流行及重要的一款芯片,其拥有良好的发展性,有广泛的应用领域。ARM公司自1990年正式成立以来, 在32位RISC (Reduced Instruction Set Computer CPU开发领域不断取得突破,其结构已经从V3发展到V6。由于ARM公司自成立以来,一直以IP(Intellig
12、ence Property)提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,加上其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在32位嵌入式应用领域获得了巨大的成功,目前已经占有75%以上的32位RISC嵌入式产品市场。在低功耗、低成本的嵌入式应用领域确立了市场领导地位。现在设计、生产ARM芯片的国际大公司已经超过50多家,国内中兴通讯和华为通讯等公司也已经购买ARM公司的芯核用于通讯专用芯片的设计。 将其应用在直流电机的调速控制中,有极大的实用价值。以脉宽调制技术为代表的电机数字驱动技术也在迅猛发展,将计算机应用于这一领域正
13、好可以发挥其在数字方面控制的优势。微电子技术和计算机技术的发展,为计算机控制技术的发展和应用奠定了坚实的基础。可以这样说,没有微处理器的仪器不能称为仪器,没有微型机的控制系统,更谈不上现代工业控制系统。随着微型计算机,超大规模集成电路,新型电力电子开关器件和传感器的出现,以及自动控制理论和电力电子技术以及计算机控制技术的深入发展,直流传动系统也在不断发展。直流电机是常用的动力提供元件,在日常生活中占据着重要的地位。直流电机是最常见的一种电机,在各领域中得到广泛应用。研究直流电机的速度控制,有着非常重要的意义。研究直流电机的控制和测量方法,对提高控制精度和响应速度、节约能源等都具有重要意义。本方
14、案以ARM9为控制核心,实现普通直流电机的转速测量和转速调节功能,为进一步研究和优化直流电机控制方法提供基础。直流电机控制系统的转速控制方法可分为两类,即励磁控制法和电枢电压控制法。通常的方法是改变输入端电压对电枢电压的控制,继而实现对转速的改变,本次毕业设计实验将使用ARM9来实现对输入端电压的控制,从而对ARM的直流电机控制系统的设计与调速作深入研究,并对其监检测方面进行研究。PWM(Pulcsi Wdht Mdoluatino)脉宽调制技术是直流电机调速中最为有效的方法,即给直流电机输入高速的开关脉冲信号,通过改变脉冲信号开关的比例,达到速度控制的效果。简单的解释是,由于在ON的时间内施
15、加电压,OFF的时间内切断电压,电机的转动将是断续的。不过在脉冲波段的OFF区段,电机线圈内部储存的能量能够产生续流二极管流动的电流,因此得以继续维持转动。PWM调速的基本思想是:以通过电机的平均电压和电流作比较,40%的时间接通电源的电机比20%的时间接通电源的电机要大。当电机没有接通电源时,它完全不消耗能量,这一点正是其高效率的原因。PWM 技术是降低直流电机功耗的一种好方法,它使驱动芯片和电机的发热减少,从而电机也可以用得更久。在工业控制中,按偏差的比例P、积分I和微分D进行控制的PID调节器现在得到广泛的应用。在小型微型计算机用于生产过程以前,连续过程系统中采用的气动、液动和电动的PI
16、D调节器几乎占垄断地位。由最优控制理论可以证明,它能适应不少工业控制对象的要求。单片机控制技术不断发展,特别是软件PID算法控制器的使用,代替了原来很多的硬件PID调节器,在工业控制系统和嵌入式系统中得到广泛的应用。1.2研究内容及目标利用ARM9实验板及直流电机实验板实现直流电机转速测量和调节。使系统实现下列功能:(1)可通过ARM实验板上的按键设定电机的转动方向、转速; (2)可对电机进行转速调节,实时测量电机的实际转速,并通过RS232总线把转速传给上位机;本次毕设要达到的指标是电机驱动电路采用集成电路SPGT62C19B电机模组,可以驱动电压46V,电流2A以下的电机;电机转速调节范围
17、3060转/秒,转速误差值不大于1转/秒。1.3 毕业设计内容分析本设计的主要目的是对直流电机控制系统的转速测量和监控做一个系统的设计,由上位机,也就是电脑,和下位机进行通讯,控制整个系统的运行。其次下位机包括ARM9开发板,它作为控制核心发布指令,由驱动模组带动直流电机旋转,再由串口将所得数据传输给上位机。大体需要以下几个准备步骤:首先,了解整个设计所涉及到的知识点,搜集资料加以学习。其次,根据设计的要求和需要选择硬件,包括直流电机和电阻等。再次,设计SPGT直流电机驱动模块和速度检测模块电路,并完成硬件搭建。最后,制定上下位机通信协议,将采用RS-232C来实现串口通信。2总体方案设计直流
18、电机控制系统的设计,重点在于上位机和下位机功能的串联,硬件和软件的相互联调。本设计的主要目的是测量监控电机的转速,那么选用何种方法调节转速就是关键问题。与此同时,测得的数据或多或少存在误差,在此设计的基础上,如何有的加进一些措施来调节误差,误差控制在一定范围也是值得讨论的。2.1直流电机控制系统的总体设计思想本设计的思想将分为两大部分进行,一是由上位机组成的软件部分的设计,这一部分包括程序的编写。二是由ARM9开发板和驱动电路板等组成的下位机,称之为硬件部分,包括驱动模块,控制模块,数据检测模块以及通信模块。本设计的主要工作是基于ARM9的直流电机调速系统的设计,从内容上也分为软件和硬件的两大
19、部分来设计。最后还要在硬件软件相应完成的基础上进行调试,所以本次课题设计内容安排可分为三个步骤。第一步骤是硬件设计,包括方案主要模块的电路设计、元器件的选择等。具体的硬件电路是SPGT驱动模块和速度检测模块两大电路。先对每一个模块的各个芯片测试成功后,再焊接其对应的整个模块电路,且每一部分都要进行单独调试,各个部分调试成功后,联接调试整个硬件电路,对在途中出现的错误进行分析和改正,最后得出结论。第二步骤是软件设计,软件采用C语言编写,软件设计的思想主要是自顶向下,模块化设计,逐一设计各个子模块,分别进行调试,最后的连调整个程序,判断是否达到预期的要求,做出结论。第三步骤硬件模块调试都成功的前提
20、下,进行硬、软件连调。2.2硬件部分设计这一部分是由驱动模块,控制模块,数据检测模块以及通信模块组成的。用到的硬件有ARM9开发板,直流电机,SPGT62C19B电机模组以及一些检测设备。以ARM9开发板为控制核心SPGT62C19B模组驱动电机,由光电开关接收的信号通断频率来测算电机转速将直流电机的转动信息,反馈给 ARM9实验板。系统的结构框图如图2.1所示。转速控制串口通信SPGT62C19BARM9(S3c2440)GPB1/PWM5直流电机上位机(PC)GPG5GPG6转向控制图2.1控制系统结构框图ARM9作为主控芯片,通过I/O端口来控制SPGT电机模组,实现对直流电机的控制。速
21、度检测设备将直流电机的转速信息反馈给ARM9开发板,ARM9针对实际测得的转速来调节SPGT模组的状态,让其达到预设值大小。同时,上位机在对其进行调节。2.3软件部分设计软件部分涉及到编程。本系统使ARM9平台,运用ARM9编程语言,在CodeWarrior for ARM Developer Suite软件平台进行开发。编写程序的主导思想是自顶向下,模块化设计,主要分为测速程序,PWM调解程序,中断程序,PID算法程序,其中,定义端口也尤为主要。3硬件设计方案3.1 ARM9开发板简介根据本课题设计的任务要求,须采用ARM9作为开发平台,因此本课题设计的控制电路由以ARM9开发板及其外围电路
22、构成,其布局结构如图3.1所示。图3.1 ARM9开发板实物图ARM9开发板硬件资源特性介绍如下:(1) CPU处理器:Samsung S3C2440A,主频400MHz,最高533Mhz;(2) SDRAM内存:64M SDRAM,32bit数据总线,SDRAM时钟频率高达100MHz;(3) FLASH存储:64M Nand Flash,2M Nor Flash,已安装BIOS;(4) LCD显示:标配NEC 256K色240x320/3.5英寸TFT真彩液晶触摸屏;(5) 接口和资源:3个串行口,1个USB Host,1个2.0mm间距10针JTAG接口,4 USER Leds,电源接口
23、(5V),带电源开关和指示灯等等;(6) 系统时钟源:12M无源晶振;(7) 实时时钟:内部实时时钟(带后备锂电池);(8) 扩展接口:1个34 pin 2.0mmGPIO接口,1个40 pin 2.0mm 系统总线接口。ARM9开发版是具有很高性价比一款16/32位单片机,支持标准C语言,可以实现C语言与汇编语言的互相调用,ARM9开发板是以Samsung公司32位处理器为核心的开发板, 开发板除了具备最小系统电路外,还包括电源电路、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等,在掌握软件设计的同时,熟悉其硬件的设计制作,锻炼动手能力。而且它的体积小,采用外部电源供电,方便携
24、带。开发板上有CMOS摄像头、USB、双声道音频输、LCD、音频输入等接口,此开发板还可以通过RJ45网络座实现网络远程控制,配合Code Warrior for ARM Developer Suite、AXD Debugger、H-Flasher和H-JTAG软件可方便地在板上实现程序的下载及调试等工作。3.2 驱动模块设计3.2.1 S3C2440芯片简介S3C2440是一款低价实用的ARM9开发板,是目前国内性价比最高的一款学习板;它采用SamsungS3C2440为微处理器,并采用专业稳定的CPU内和电源芯片和复位芯片来保证系统运行时的稳定性。S3C2440的PCB采用沉浸工艺的四层板
25、设计,专业等长布线,保证关键信号线的信号完整性,生产采用机器贴片,批量生产;出厂时都经过严格的质量控制。本设计主要是了解嵌入式设计芯片S3C2440,这款芯片有着强大的功能,了解这款芯片的引脚功能是最关键也是最重要的一个环节。这款芯片集成了51系列单片机所有的功能,且具备了普通51单片机所没有的功能,是普通单片机所不能比拟,具体引脚功能如图3.2:图3.2 S3C2440芯片内部结构图3.2.2 SPGT62C19B电机控制模组简介SPGT62C18B电机控制模组是为学生以及单片机爱好者学习步进电机和直流电机控制而设计的学习套件。模组采用凌阳SPGT62C19B电机驱动芯片,配置两相步进电机和
26、直流电机各一台,并提供4位LED数码管用来显示电机转速等信息。模组针对SPCE061A单片机设计,可以方便的用排线与SPCE061A精简开发板(即“61板”)连接,可作为单片机教学,产品开发前期验证等辅助工具使用。模组的平面如图3.3。图3.3电机控制模组结构图上述结构图中各部分说明如下:电机控制接口:模组与单片机的接口,为10PIN排针,可以直接与“61板”连接,实现电机控制。数码管控制接口:模组与单片机的接口,为两组10PIN排针,可以直接与“61板”连接,实现对4位LED数码管的控制。SPGT62C19B:电机驱动芯片,可驱动一台双极性两相步进电机,或者两台直流电机。外接电源指示灯:SP
27、GT62C19B电机驱动芯片的逻辑控制电源与电机驱动电源是各自独立供电的,可以外接5V12V的电机驱动电源。当接通了电机驱动电源时,外接电源指示灯会亮。外接电源插座:为SPGT62C19B提供电机驱动电源的插座。共有两组电源插座,分别为2PIN针座(可接61板电池盒或其他直流电源)和DC稳压电源插座(可接直流稳压电源)。使用时可选择其中一组插座作为电机驱动电源输入端。3.3数据检测模块设计数据检测主要是测速,将测得的速度传给上位机。光电开关通过接收的信号通断频率来测算电机转速将直流电机的转动信息,反馈给 ARM9实验板。3.3.1 PWM技术简介PWM(Pulcsi Widht Mdoluat
28、ino)脉冲宽度调制技术就是通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)的技术。根据 PWM控制技术的特点,到目前为止主要有八类方法:相电压控制PWM、线电压控制PWM、电流控制PWM、空间电压矢量控制PWM、矢量控制PWM、直接转矩控制PWM、非线性控制PWM、谐振软开关PWM。3.3.2直流电机电枢PWM调压调速原理随着计算机进入控制领域,以及新型的电力电子功率元器件的不断出现,采用全控型的开关功率元件进行脉宽调制的PWM控制方式已成为主流。这种控制方式很容易在单片机控制中实现,从而为直流电动机控制数字化提供了契机。直流电机转速n的表达式为:(3.1)式(3.1)
29、中U为电枢端电压,I为电枢电流,R为电枢电路总电阻,为每极磁通量,K为电动机结构参数。电动机的电枢绕组两端的电压平均值Uo为:(3.2)其中,称为占空比,。占空比表示了在一个周期T里开关管导通的时间与周期的比值。的变化范围为。由式(3.2)可知,当电源电压Us不变的情况下,电枢的端电压的平均值U0取决于占空比的大小,改变值就可以改变端电压的平均值,从而达到调速的目的,这就是PWM调速原理。在PWM调速中,占空比是一个重要参数。在直流电机控制中,改变来实现调速主要方法是定频调宽法:使周期T(或频率)保持不变,而同时改变t1和t2。PWM控制信号的产生方法:新一代的单片机增加了许多功能,其中包PW
30、M功能。单片机通过初始化设置,使其能自动地发出PWM脉冲波,只有在改变占空比时CPU才进行干预。这种方法是目前获得PWM信号的主流方法,本控制系统采用此方法产生PWM信号。3.3.3直流电机调速系统的整体结构整个直流电机调速系统采用一种上位机、下位机二级分布式结构。上位机负责整个系统管理和计算等,下位机ARM输出PWM信号控制电机转速。下位机采用Samsung公司的S3C2440A芯片,通过串口与上位机通信,ARM接收上位机的控制指令以实现所要求的功能。上位机控制电机运行,ARM不能自主控制电机转速,上位机和ARM之间通过串口进行实时通信。上位机接收用户输入,并转换为PWM占空比和转向信息,并
31、按照通信协议发送给下位机。下位机ARM接收到上位机正确的数据指令后,根据指令决定PWM5占空比输出和引脚(PO.16和PO.17)的输出,并向上位机返回应答信息。下位机子系统为整个系统的核心子系统,下位机系统决定整个系统的性能。ARM 上运行实时嵌入式系统以保证系统的实时性和高效性。3.3.4 ARM的脉宽调制PWM描述ARM处理器有7个PWM匹配寄存器,可实现6个单边沿控制或3个双边沿控制PWM输出,或者这两种类型的混合输出:(1) 连续操作,可选择在匹配时产生中断;(2) 匹配时停止定时器,可选择产生中断;(3) 匹配时复位定时器,可选择产生中断。单边沿控制PWM输出在每个周期开始时总是高
32、电平,除非输出保持恒定低电平。双边沿控制PWM输出可在一个周期内的任何位置产生边沿,这样可同时产生正脉冲和负脉冲。脉冲周期和宽度可以是任何的定时器计数值,这样可实现灵活的分辨率和重复速率的设定。所有PWM输出都以相同的重复速率发生。PWM脉冲频率由TCNTBn(timern计数缓冲器)决定。PWM脉冲宽度值TCMPBn(timern比较缓存寄存器)的值来决定。要得到一个较低的PWM脉宽输出值,就可以减少TCMPBn的值,反之亦然。如果输出反转器使能,增加和减少的结果也将是反转的。基于双缓冲器的特性,下一个PWM周期的TCMPBn的值可以通过ISR或其它手段,在当前PWM周期中的任何一点写入。即
33、在程序中可以通过中断重新设定TCMPBn的值来改变电机的转速。缓冲区TCMPBn,TCNTBn的值不一定等于这个周期的TCMPn,TCNTn的值,但一定是TCMPn,TCNTn的下一个周期的值。在S3C2440中,每个定时器具有一个倒计时器,通过定时器时钟源驱动16位倒计时寄存器TCNTn。定时器启动前,要向TCNTBn(定时计数缓冲区寄存器)写入一个初始值,这个值在定时器启动时载入到TCNTn(倒计时器)中。在定时器的TCMPBn(比较缓冲器寄存器)中同样也要写入一初始值,运行时用来载入到TCMPn(比较寄存器)中与TCNTn(倒计时器)的值相比较。系统启动时,需要通过置手动刷新位的方式,将
34、TCMPBn和TCNTBn这两个缓冲区的值载入到TCMPn和TCNTn中。TCMPBn和TCNTBn这两个缓冲区的应用(即双缓冲器)使定时器能够在频率和占空比同时变化时,仍然产生一个稳定的输出。一般启动定时器的步骤如下:1)将初始值写入到TCNTBn和TCMPBn中;2)设置对应定时器的自动重载位;3)设置对应定时器的手动更新位,反向器置为off状态;3)设置对应定时器的启动位来启动定时器,同时清除手动更新位。系统使用 PWM5输出控制一个电机的转速,改变对应的PWM输出,就可以实现电机速度的控制。3.4控制模块设计控制模块的作用主要是控制直流电机的转向和转速。变换电机的转向是靠在上位机的编程
35、语言里设定中断功能,而控制电机转速,接近于设定值是靠PID调节来控制的。直流电机的转速框图如下:图3.4 直流电机控制系统闭环结构框图此系统属于单闭环调速系统,测得的速度与上位机设定的速度存在误差N,需要控制器进行调节,其中控制器采用的控制方式是PID控制,消除稳定偏差,PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e (t)与输出u (t)的关系为:u(t)=kp(e(t)+1/TIe(t)dt+TD*de(t)/dt) 式中积分的上下限分别是0和t,因此它的传递函数为:G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s),其中kp为比例系数; TI
36、为积分时间常数; TD为微分时间常数。在直流电机调速系统中,数字PID是一种比较成熟的算法。数字PID算法的大致原理是,将设定速度与实际速度之间的偏差记为e,利用e的比例、积分和微分通过线性组合构成的控制量U去控制对象。数字PID算法的表达式如下:(3.3)其中为第k个采样时刻的速度偏差值,可演化为增量式数字PID算法表达式:(3.4)式中,、分别为比例、积分、微分系数。这样,只需确定、和的值即可实现对的控制。在本系统中,作为控制电机转速的PWM信号的占空比。简单来说,PID控制器各校正环节的作用如下:(1) 比例环节:成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减
37、少偏差。(2) 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。(3) 微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变化得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。PID控制因其所具有的算法简单、易于实现等特点,至今仍然是工业控制领域应用最广泛的控制方法之一。3.5 通信模块设计系统上位机与下位机之间的距离只有数米,干扰相对较少,数据传输的可靠性并不构成问题,每次要求传输的数据量也不大,所以系统采用串口进行通信。上位机与AEM9之间的串口通信,包括上位机的串口操作和自定义通
38、信协议的实现。上位机部分检验用户输入,并转换用户输入为PWM占空比和电机转向信息,根据通信协议要求的格式打包发送,并检验收到的应答包,提示通信是否成功。3.5.1 RS232的串口通信接线在上位机(PC机)进行串口通信时,使用了十几条线进行信号传输。要开发串口通信程序,至少要了解其中五条线的名称及其作用:DTR线:用于传输上位机发往串口设备的信号,该信号表示上位机是否已经准备好;RTS线:用于传输上位机发往串口设备的信号,该信号表示上位机是否允许设备发数据;DSR线:用于传输上位机发往串口设备的信号,该信号表示设备是否已经做好操作准备;CTS线:用于传输上位机发往串口设备的信号,该信号表示设备
39、是否允许发送数据;CD线:用于传输上位机发往串口设备的信号,该信号表示设备已经和远方的设备建立了联系。3.5.2 串口通信串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只
40、限于PC串口和设备间点对点的通信。RS-232串口通信最远距离是50英尺。系统采用串口通信接口来实现上位机与ARM9开发板相连,串行口是计算机的一种标准接口。现在的上位机一般至少有两个串行口COM1和COM2。串口通信接口标准是在RS232标准的基础上经过改进而形成的。上位机中的每一个COM口都是由UART(通用异步接收发送器)控制的异步串行端口。上位机为每一个串口都保留一系列的端口资源,大多数都有一个指定中断的请求(IRQ)或者中断请求级别。CPU对串口的控制方式是中断处理方式。串行接口包括4个主要的寄存器,即控制寄存器,状态寄存器,数据输入寄存器及数据输出寄存器。控制寄存器是用来接受CPU
41、送给此接口的各种控制信息,而控制信息决定接口的工作方式。状态寄存器的各位为状态位,每一个状态位都可以用来指示传输过程中的某一个错误或者当前传输状态。数据输入存储器总是和串行输入并行输出移位寄存器配对使用。在输入过程中,数据一位一位从外部设备进入接口的移位寄存器,当接收完1个字符以后,数据就从移位寄存器送到数据输入寄存器,在等待CPU来取走。输出的情况和输入过程类似,在输出过程中,数据输出1个数据后,数据便传输到移位寄存器,然后一位一位地通过输出线送到外设。3.6 硬件电路由于ARM9开发板没有直流电机的驱动模块与测速模块,需要用户额外进行开发,所以本设计的硬件电路由ARM9开发板的串行通信模块
42、与外部测控模块构成。其整体电路图见附录,具体实物如图3.5所示。图3.5 硬件电路实物图4软件方案设计4.1 系统软件设计步骤直流电机控制系统的软件部分设计包括程序的编写。程序的编写关系到系统运行时的稳定性与否,所以,本设计采取了顺序性的编写模式。硬件功能的实现离不开软件的设计与完成。软件设计是直流电机控制系统设计中最重要、最关键的部分,也是本次毕业设计的难点之处。由于本系统使用ARM9平台,运用ARM9编程语言,在CodeWarrior For ARM Developer Suite软件平台进行。本课题软件设计的思想主要是自顶向下,模块化设计,逐一设计各个子模块,分别进行调试,最后的连调整个
43、程序,判断是否达到预期的要求,做出结论。主要分为转速测量子程序、PID算法子程序、PWM信号产生子程序、通讯子程序等几部分。各个部分函数都可相互调用又相对独立可调,保证调试的便利与程序的可读性。上位机通信开始初始化,首先设定一些电机的信息,当做要实现的控制效果,作为一个标准。然后读取输入的转速和转向,经过判断转换为PWM值,并与转向信息打包,发送出去,传给下位机等待回应,若有新的数据传给上位机,说明控制成功。系统软件设计框图如图4.1所示:图4.1软件流程图4.2 编程环境设置ARM9的编写语言选择的是C语言,但和以往常用到的51单片机不同的是,同样作为控制核心的ARM9,其编写环境及语言都是
44、特定的,其定义的功能引脚如下所示:1 端口A(GPIO)端口A 作为地址引脚共有25个,大大增加了地址量,一般情况下不用外扩;2端口B(GPIO)端口B 11个输出引脚,可作为定时器/DMA引脚;3 端口C(GPIO)16个输入/输出引脚通常作为LCD屏引脚;4端口D(GPIO)16个输入/输出引脚通常作为LCD屏数据引脚/SPI总线引脚;5端口E(GPIO)16个输入/输出引脚作为I方C,I方S及SD卡的总线引脚;6端口F、G(GPIO)总计24个输入输出引脚,作为中断控制引脚,中断控制多,普通51单片机的中断引脚远远不及,控制更加灵活;7端口H(GPIO)11个输入/输出引脚,3个串口;7
45、端口J(GPIO)13个输入/输出引脚用于CAM;本设计主要用的是S3C2440中断功能、PWM调节功能、串口功能,涉及到的端口为端口B(PWM调节)、端口F/G(中断功能)、端口H(串口功能);端口C(驱动SPGT模组)。编写程序所用的编写软件是ARM ADS,称为ARM Developer Suite 是ARM公司推出的新一代ARM集成开发工具,是业界公认最好的ARM编译器之一,现在ADS的最新版本是1.2,它取代了早期的ADS1.0和ADS1.1。ADS由命令行工具开发,ARM实时库,GUI开发环境(Code Warrior和AXD),实用程序和支持软件组成。有了这些部件,用户就可以为A
46、RM系列的RISC处理器编写和调试自己的开发应用程序。它由RealView编译器(RVCT),以及RealView调试器(RV Debugger),CodeWarrior集成开发环境和ARMulator指令集仿真器组成。可以支持所有标准ARM架构和内核,针对特定处理器进行代码优化,有多种可以灵活配置的优化选项以取得最小的代码尺寸和最好的性能。4.3 程序设计4.3.1系统初始化系统的初始化可作为主程序,实现电机旋转的功能,包括一些调用语句,以便调用以下的子程序。首先定义一个时钟PCLK,作为时钟源,将其中的所有串口初始化。在选择其中的串口0,作为超级终端显示输入。其次设置B口为PWM技术和控制
47、电机转向环节,设置G口为中断环节,在超级终端输入字符a,b,c表示不同的指令(键盘输入),如果输出的结果是1,代表电机正传;输出结果是0,代表电机反转。系统的初始化主要是对程序中用到的信号传输端口、相关变量进行设定;同时通过设定初值,确定CPU的内部定时时间,控制命令时序速度,并完成对定时、中断的和其他初值信息设置功能。本设计的系统初始化流程图如图4.2所示。图4.2 系统初始化4.3.2中断子程序设计中断是计算机的一种基本工作方式,几乎所有的CPU都支持中断,中断功能可以解决CPU内部运行速度远远快于外部总线速度而产生的等待延时问题。S3C2440A支持多32个中断源,中断请求可由内部功能模块和外部引脚信号产生。ARM9核可以识别两种类型的中断:正常中断请求(Normal Interruptuest,IRQ)和快速中断请求(Fast Interrupt Request,FIQ),都是用于外部设备向CPU请求中断服务,一般情况下都是采用IRQ中断,因此,S3C2440A所有中断都可以归类为 IRQ 或 FIQ。本设计采用外部中断0,即INT0来采集电机的转速。首先设置中断方式实现键盘扫描,让外部中断处理函数,将寄存器EINTPEND清零,定时器1中断处理函数,每600ms显示一次