1、基于 ARM9 的直流电机控制系统的设计沈阳航空航天大学2010 年 6 月I摘 要随着我国经济的高速发展,微电子技术、计算机技术和自动控制技术也得到了迅速发展,直流电机调速技术已经进入一个崭新的时代,其应用越来越广。而作为控制核心的各种单片机芯片也在不断的更新发展,其功能越来越强大。随着人们对其要求的提高,直流电机控制系统的调速方法也相应的产生了 PWM(脉宽调制技术) ,其控制芯片也由原来常用的 51 单片机系列升华为 ARM 系列的控制实验板。本设计基于 ARM9 开发板的直流电机控制系统的调速,以显示 ARM 开发板的独特功能,利用脉宽调制技术,调节占空比以达到调节转速的目的,将测得的
2、数据传给上位机后进行观测。设计大体上分为硬件设计和软件设计两部分,硬件部分包括驱动模块,控制模块,数据检测模块以及通信模块,软件部分包括程序设计,两大部分实现了对电机转速的监测和控制,更好的确保了设计的准确性。通过合理的选择和设计提高了直流电机控制系统调速的技术,学习和研究新型控制芯片,使设计达到了较为理想的控制效果是本设计的宗旨。关键词:ARM9 开发板;PWM 技术;PID 调节功能IIAbstractAlong 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 FunctionIII目 录1 绪 论 .11.1 毕业设计立题意义 11.2 研究内容及目标 31.3 毕业设计内容分析 .32 总体方案设计 .42.1 直流电机控制系统的总体设计思想 42.2 硬件部分设计 52.3 软件部分设计 53 硬件设计方案 .63.1 ARM9 开发板简介 63.2 驱动模块设计 .73.2
8、.1 S3C2440 芯片简介 73.2.2 SPGT62C19B 电机控制模组简介 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 中断子程序设计 21IV4
9、.3.3 PWM 调速程序设计 .224.3.4 串口通信程序设计 .235 直流电机控制系统综合调试与分析 .255.1 硬件电路调试 .255.2 利用 H-JTAG 调试程序 .265.3 系统联调结果与分析 27结论 29社会经济效益分析 30参考文献 31致 谢 32附录S3C2440A 芯片原理图 .33附录 程序清单 3401 绪 论随着我国经济的高速发展,微电子技术、计算机技术和自动控制技术也得到了迅速发展,直流电机调速技术已经进入一个崭新的时代。然而,电机调速的方法有很多,比如说变极对数调速法,变频调速法,串级调速法,绕线式电动机转子串电阻调速法,定子调压调速法,电磁调速法等
10、。但是在某些条件下,直流电机调速具有其特有的优势。为了提高生产率和保证产品质量,大量的生产机械要求直流电机以不同的速度工作。这就要求人们采用一定的方法来改变机组的转速,即对直流电机进行调速。对电机的转速不仅要能调节,而且要求调节的范围宽广,过程平滑,调节的方法要简单、经济。直流电机在上述方面都具有独到的优点,使它得到广泛的应用。本文针对直流电机具有起动转距大、体积小、重量轻、转矩和转速容易控制以及效率高等十分优良的特点, 根据自动控制原理, 采用 PWM 控制方式, 设计了一个直流电机控制系统,以更好地对直流电机进行精确而又迅速的控制。1.1 毕业设计立题意义直流电机是常用的动力提供原件,在日
11、常生活中占据着十分重要的地位,研究直流电机的速度控制,有十分重要的意义。驱 动 电 机 选 用 直 流 电 机 , 这 是 因 为 直 流电 机 具 有 优 越 的 速 度 调 节 控 制 性 能 , 具 有 较 大 的 转 矩 , 用 以 克 服 装 置 的 摩 擦 阻 力和 负 载 转 矩 , 调 速 范 围 宽 而 且 速 度 平 稳 , 具 有 快 速 响 应 能 力 , 可 以 适 应 复 杂 的 速度 变 化 , 直 流 电 机 的 负 载 特 性 硬 , 有 较 大 的 过 载 能 力 , 可 以 确 保 运 行 速 度 不 受 负载 冲 击 的 影 响 。ARM 是近年来发展非
12、常迅速的处理器,有很好的应用前景。ARM, 既 可 以 认为 是 一 个 公 司 的 名 字 , 也 可 以 认 为 是 对 一 类 微 处 理 器 的 通 称 , 还 可 以 认 为 是 一 种技 术 的 名 字 。 ARM 处理器是现代非常流行及重要的一款芯片,其拥有良好的发展性,有广泛的应用领域。A RM 公 司 自 1990 年 正 式 成 立 以 来 , 在 32 位 RISC (Reduced Instruction Set Computer CPU 开 发 领 域 不 断 取 得 突 破 ,其 结 构 已 经 从V3 发 展 到 V6。 由 于 ARM 公 司 自 成 立 以 来
13、 ,一 直 以 IP(Intelligence Property)提 供1者 的 身 份 向 各 大 半 导 体 制 造 商 出 售 知 识 产 权 ,而 自 己 从 不 介 入 芯 片 的 生 产 销 售 ,加 上 其 设 计 的 芯 核 具 有 功 耗 低 、 成 本 低 等 显 著 优 点 ,因 此 获 得 众 多 的 半 导 体 厂 家和 整 机 厂 商 的 大 力 支 持 ,在 32 位 嵌 入 式 应 用 领 域 获 得 了 巨 大 的 成 功 ,目 前 已 经 占有 75%以 上 的 32 位 RISC 嵌 入 式 产 品 市 场 。 在 低 功 耗 、 低 成 本 的 嵌 入
14、式 应 用 领域 确 立 了 市 场 领 导 地 位 。 现 在 设 计 、 生 产 ARM 芯 片 的 国 际 大 公 司 已 经 超 过 50多 家 ,国 内 中 兴 通 讯 和 华 为 通 讯 等 公 司 也 已 经 购 买 ARM 公 司 的 芯 核 用 于 通 讯 专用 芯 片 的 设 计 。 将其应用在直流电机的调速控制中,有极大的实用价值。以脉宽调制技术为代表的电机数字驱动技术也在迅猛发展,将计算机应用于这一领域正好可以发挥其在数字方面控制的优势。微电子技术和计算机技术的发展,为计算机控制技术的发展和应用奠定了坚实的基础。可以这样说,没有微处理器的仪器不能称为仪器,没有微型机的控
15、制系统,更谈不上现代工业控制系统。随着微型计算机,超大规模集成电路,新型电力电子开关器件和传感器的出现,以及自动控制理论和电力电子技术以及计算机控制技术的深入发展,直流传动系统也在不断发展。直流电机是常用的动力提供元件,在日常生活中占据着重要的地位。直流电机是最常见的一种电机,在各领域中得到广泛应用。研究直流电机的速度控制,有着非常重要的意义。研究直流电机的控制和测量方法,对提高控制精度和响应速度、节约能源等都具有重要意义。本方案以 ARM9 为控制核心,实现普通直流电机的转速测量和转速调节功能,为进一步研究和优化直流电机控制方法提供基础。直流电机控制系统的转速控制方法可分为两类,即励磁控制法
16、和电枢电压控制法。通常的方法是改变输入端电压对电枢电压的控制,继而实现对转速的改变,本次毕业设计实验将使用 ARM9 来实现对输入端电压的控制,从而对 ARM 的直流电机控制系统的设计与调速作深入研究,并对其监检测方面进行研究。PWM(Pulcsi Wdht Mdoluatino)脉宽调制技术是直流电机调速中最为有效的方法,即给直流电机输入高速的开关脉冲信号,通过改变脉冲信号开关的比例,达到速度控制的效果。简单的解释是,由于在 ON 的时间内施加电压,OFF 的时间内切断电压,电机的转动将是断续的。不过在脉冲波段的 OFF 区段,电机线圈内部储存的能量能够产生续流二极管流动的电流,因此得以继续
17、维持转动。PWM 调速的基本思想是: 以通过电机的平均电压和电流作比较,40%的时间接通电源的电机比 20%的时2间接通电源的电机要大。当电机没有接通电源时,它完全不消耗能量,这一点正是其高效率的原因。PWM 技术是降低直流电机功耗的一种好方法,它使驱动芯片和电机的发热减少,从而电机也可以用得更久。在工业控制中,按偏差的比例 P、积分 I 和微分 D 进行控制的 PID 调节器现在得到广泛的应用。在小型微型计算机用于生产过程以前,连续过程系统中采用的气动、液动和电动的 PID 调节器几乎占垄断地位。由最优控制理论可以证明,它能适应不少工业控制对象的要求。单片机控制技术不断发展,特别是软件 PI
18、D 算法控制器的使用,代替了原来很多的硬件 PID 调节器,在工业控制系统和嵌入式系统中得到广泛的应用。1.2 研究内容及目标利用 ARM9 实验板及直流电机实验板实现直流电机转速测量和调节。使系统实现下列功能:(1)可通过 ARM 实验板上的按键设定电机的转动方向、转速; (2)可对电机进行转速调节,实时测量电机的实际转速,并通过 RS232 总线把转速传给上位机;本次毕设要达到的指标是电机驱动电路采用集成电路 SPGT62C19B 电机模组,可以驱动电压 46V,电流 2A 以下的电机;电机转速调节范围 3060 转/ 秒,转速误差值不大于 1 转/秒。1.3 毕业设计内容分析本设计的主要
19、目的是对直流电机控制系统的转速测量和监控做一个系统的设计,由上位机,也就是电脑,和下位机进行通讯,控制整个系统的运行。其次下位机包括 ARM9 开发板,它作为控制核心发布指令,由驱动模组带动直流电机旋转,再由串口将所得数据传输给上位机。大体需要以下几个准备步骤:首先,了解整个设计所涉及到的知识点,搜集资料加以学习。其次,根据设计的要求和需要选择硬件,包括直流电机和电阻等。再次,设计 SPGT 直流电机驱动模块和速度检测模块电路,并完成硬件搭建。最后,制定上下位机通信协议,将采用 RS-232C 来实现串口通信。32 总体方案设计直流电机控制系统的设计,重点在于上位机和下位机功能的串联,硬件和软
20、件的相互联调。本设计的主要目的是测量监控电机的转速,那么选用何种方法调节转速就是关键问题。与此同时,测得的数据或多或少存在误差,在此设计的基础上,如何有的加进一些措施来调节误差,误差控制在一定范围也是值得讨论的。2.1 直流电机控制系统的总体设计思想本设计的思想将分为两大部分进行,一是由上位机组成的软件部分的设计,这一部分包括程序的编写。二是由 ARM9 开发板和驱动电路板等组成的下位机,称之为硬件部分,包括驱动模块,控制模块,数据检测模块以及通信模块。本设计的主要工作是基于 ARM9 的直流电机调速系统的设计,从内容上也分为软件和硬件的两大部分来设计。最后还要在硬件软件相应完成的基础上进行调
21、试,所以本次课题设计内容安排可分为三个步骤。第一步骤是硬件设计,包括方案主要模块的电路设计、元器件的选择等。具体的硬件电路是 SPGT 驱动模块和速度检测模块两大电路。先对每一个模块的各个芯片测试成功后,再焊接其对应的整个模块电路,且每一部分都要进行单独调试,各个部分调试成功后,联接调试整个硬件电路,对在途中出现的错误进行分析和改正,最后得出结论。第二步骤是软件设计,软件采用 C 语言编写,软件设计的思想主要是自顶向下,模块化设计,逐一设计各个子模块,分别进行调试,最后的连调整个程序,判断是否达到预期的要求,做出结论。第三步骤硬件模块调试都成功的前提下,进行硬、软件连调。42.2 硬件部分设计
22、这一部分是由驱动模块,控制模块,数据检测模块以及通信模块组成的。用到的硬件有 ARM9 开发板,直流电机,SPGT62C19B 电机模组以及一些检测设备。以ARM9 开发板为控制核心 SPGT62C19B 模组驱动电机,由光电开关接收的信号通断频率来测算电机转速将直流电机的转动信息,反馈给 ARM9 实验板。系统的结构框图如图 2.1 所示。图 2.1 控制系统结构框图ARM9 作为主控芯片,通过 I/O 端口来控制 SPGT 电机模组,实现对直流电机的控制。速度检测设备将直流电机的转速信息反馈给 ARM9 开发板,ARM9 针对实际测得的转速来调节 SPGT 模组的状态,让其达到预设值大小。
23、同时,上位机在对其进行调节。2.3 软件部分设计软件部分涉及到编程。本系统使 ARM9 平台,运用 ARM9 编程语言,在CodeWarrior for ARM Developer Suite 软件平台进行开发。编写程序的主导思想是自顶向下,模块化设计,主要分为测速程序,PWM 调解程序,中断程序,PID 算法程序,其中,定义端口也尤为主要。上位机(PC) ARM9(S3c2440)SPGT62C19B直流电机串口通信GPB1/PWM5GPG5GPG6转向控制转速控制53 硬件设计方案3.1 ARM9 开发板简介根据本课题设计的任务要求,须采用 ARM9 作为开发平台,因此本课题设计的控制电路
24、由以 ARM9 开发板及其外围电路构成,其布局结构如图 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;6(4) LCD 显示:标配 NEC 256K 色 240x320/3.5 英寸 TFT 真彩液晶触摸屏;(5) 接口和资源:3 个串行口,1 个 U
25、SB Host,1 个 2.0mm 间距 10 针JTAG 接口,4 USER Leds,电源接口(5V),带电源开关和指示灯等等;(6) 系统时钟源:12M 无源晶振;(7) 实时时钟:内部实时时钟(带后备锂电池);(8) 扩展接口:1 个 34 pin 2.0mmGPIO 接口,1 个 40 pin 2.0mm 系统总线接口。ARM9 开发版是具有很高性价比一款 16/32 位单片机,支持标准 C 语言,可以实现 C 语言与汇编语言的互相调用,ARM9 开发板是以 Samsung 公司 32 位处理器为核心的开发板, 开发板除了具备最小系统电路外,还包括电源电路、音频电路(含 MIC 输入
26、部分和 DAC 音频输出部分)、复位电路等,在掌握软件设计的同时,熟悉其硬件的设计制作,锻炼动手能力。而且它的体积小,采用外部电源供电,方便携带。开发板上有 CMOS 摄像头、USB、双声道音频输、LCD、音频输入等接口,此开发板还可以通过 RJ45 网络座实现网络远程控制,配合 Code Warrior for ARM Developer Suite、AXD Debugger、H-Flasher 和 H-JTAG 软件可方便地在板上实现程序的下载及调试等工作。3.2 驱动模块设计3.2.1 S3C2440 芯片简介S3C2440 是一款低价实用的 ARM9 开发板,是目前国内性价比最高的一款
27、学习板;它采用 SamsungS3C2440 为微处理器,并采用专业稳定的 CPU 内和电源芯片和复位芯片来保证系统运行时的稳定性。S3C2440 的 PCB 采用沉浸工艺的四层板设计,专业等长布线,保证关键信号线的信号完整性,生产采用机器贴片,批量生产;出厂时都经过严格的质量控制。本设计主要是了解嵌入式设计芯片 S3C2440,这款芯片有着强大的功能,了解这款芯片的引脚功能是最关键也是最重要的一个环节。这款芯片集成了 51 系列单片机所有的功能,且具备了普通 51 单片机所没有的功能,是普通单片机所不能比拟,具体引脚功能如图 3.2:7图 3.2 S3C2440 芯片内部结构图3.2.2 S
28、PGT62C19B 电机控制模组简介SPGT62C18B 电机控制模组是为学生以及单片机爱好者学习步进电机和直流电机控制而设计的学习套件。模组采用凌阳 SPGT62C19B 电机驱动芯片,配置两相步进电机和直流电机各一台,并提供 4 位 LED 数码管用来显示电机转速等信息。模组针对 SPCE061A 单片机设计,可以方便的用排线与 SPCE061A 精简开发板( 即“61 板”)连接,可作为单片机教学,产品开发前期验证等辅助工具使用。模组的平面如图3.3。8图 3.3 电机控制模组结构图上述结构图中各部分说明如下:电机控制接口:模组与单片机的接口,为 10PIN 排针,可以直接与“61 板”
29、 连接,实现电机控制。数码管控制接口:模组与单片机的接口,为两组 10PIN 排针,可以直接与“61板”连接,实现对 4 位 LED 数码管的控制。SPGT62C19B:电机驱动芯片,可驱动一台双极性两相步进电机,或者两台直流电机。外接电源指示灯:SPGT62C19B 电机驱动芯片的逻辑控制电源与电机驱动电源是各自独立供电的,可以外接 5V12V 的电机驱动电源。当接通了电机驱动电源时,外接电源指示灯会亮。外接电源插座:为 SPGT62C19B 提供电机驱动电源的插座。共有两组电源插座,分别为 2PIN 针座(可接 61 板电池盒或其他直流电源)和 DC 稳压电源插座(可接直流稳压电源)。使用
30、时可选择其中一组插座作为电机驱动电源输入端。93.3 数据检测模块设计数据检测主要是测速,将测得的速度传给上位机。光电开关通过接收的信号通断频率来测算电机转速将直流电机的转动信息,反馈给 ARM9 实验板。3.3.1 PWM 技术简介PWM(Pulcsi Widht Mdoluatino)脉冲宽度调制技术就是通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)的技术。根据 PWM 控制技术的特点,到目前为止主要有八类方法:相电压控制 PWM、线电压控制 PWM、电流控制 PWM、空间电压矢量控制 PWM、矢量控制 PWM、直接转矩控制 PWM、非线性控制 PWM、谐振软开关
31、PWM。3.3.2 直流电机电枢 PWM 调压调速原理随着计算机进入控制领域,以及新型的电力电子功率元器件的不断出现,采用全控型的开关功率元件进行脉宽调制的 PWM 控制方式已成为主流。这种控制方式很容易在单片机控制中实现,从而为直流电动机控制数字化提供了契机。直流电机转速 n 的表达式为: KIRUn(3.1)式(3.1)中 U 为电枢端电压,I 为电枢电流,R 为电枢电路总电阻, 为每极磁通量,K 为电动机结构参数。电动机的电枢绕组两端的电压平均值 Uo 为: sssOUTtt1210(3.2)其中, 称为占空比, 。占空比 表示了在一个周期 T 里开关管导通的时间与周期的比值。 的变化范
32、围为 。由式(3.2)可知,当电源电压 Us 不变的情况下,电枢的端电压的平均10值 U0 取决于占空比 的大小,改变 值就可以改变端电压的平均值,从而达到调速的目的,这就是 PWM 调速原理。10在 PWM 调速中,占空比 是一个重要参数。在直流电机控制中,改变 来实现调速主要方法是定频调宽法:使周期 T(或频率) 保持不变,而同时改变 t1 和 t2。PWM 控制信号的产生方法:新一代的单片机增加了许多功能,其中包 PWM 功能。单片机通过初始化设置,使其能自动地发出 PWM 脉冲波,只有在改变占空比时 CPU 才进行干预。这种方法是目前获得 PWM 信号的主流方法,本控制系统采用此方法产
33、生 PWM 信号。3.3.3 直流电机调速系统的整体结构整个直流电机调速系统采用一种上位机、下位机二级分布式结构。上位机负责整个系统管理和计算等,下位机 ARM 输出 PWM 信号控制电机转速。下位机采用Samsung 公司的 S3C2440A 芯片,通过串口与上位机通信, ARM 接收上位机的控制指令以实现所要求的功能。上位机控制电机运行,ARM 不能自主控制电机转速,上位机和 ARM 之间通过串口进行实时通信。上位机接收用户输入,并转换为 PWM占空比和转向信息,并按照通信协议发送给下位机。下位机 ARM 接收到上位机正确的数据指令后,根据指令决定 PWM5 占空比输出和引脚 (PO.16
34、 和 PO.17)的输出,并向上位机返回应答信息。下位机子系统为整个系统的核心子系统,下位机系统决定整个系统的性能。ARM 上运行实时嵌入式系统以保证系统的实时性和高效性。3.3.4 ARM 的脉宽调制 PWM 描述ARM 处理器有 7 个 PWM 匹配寄存器,可实现 6 个单边沿控制或 3 个双边沿控制 PWM 输出,或者这两种类型的混合输出:(1) 连续操作,可选择在匹配时产生中断;(2) 匹配时停止定时器,可选择产生中断;(3) 匹配时复位定时器,可选择产生中断。单边沿控制 PWM 输出在每个周期开始时总是高电平,除非输出保持恒定低电平。双边沿控制 PWM 输出可在一个周期内的任何位置产
35、生边沿,这样可同时产生正脉冲和负脉冲。脉冲周期和宽度可以是任何的定时器计数值,这样可实现灵活的分辨率和重复速率的设定。所有 PWM 输出都以相同的重复速率发生。11PWM 脉冲频率由 TCNTBn(timern 计数缓冲器)决定。PWM 脉冲宽度值TCMPBn(timern 比较缓存寄存器)的值来决定。要得到一个较低的 PWM 脉宽输出值,就可以减少 TCMPBn 的值,反之亦然。如果输出反转器使能,增加和减少的结果也将是反转的。基于双缓冲器的特性,下一个 PWM 周期的 TCMPBn 的值可以通过ISR 或其它手段,在当前 PWM 周期中的任何一点写入。即在程序中可以通过中断重新设定 TCM
36、PBn 的值来改变电机的转速。缓冲区 TCMPBn,TCNTBn 的值不一定等于这个周期的 TCMPn, TCNTn 的值,但一定是 TCMPn,TCNTn 的下一个周期的值。在 S3C2440 中,每个定时器具有一个倒计时器,通过定时器时钟源驱动 16 位倒计时寄存器 TCNTn。定时器启动前,要向 TCNTBn(定时计数缓冲区寄存器)写入一个初始值,这个值在定时器启动时载入到 TCNTn(倒计时器)中。在定时器的TCMPBn(比较缓冲器寄存器 )中同样也要写入一初始值,运行时用来载入到TCMPn(比较寄存器 )中与 TCNTn(倒计时器)的值相比较。系统启动时,需要通过置手动刷新位的方式,
37、将 TCMPBn 和 TCNTBn 这两个缓冲区的值载入到 TCMPn 和TCNTn 中。TCMPBn 和 TCNTBn 这两个缓冲区的应用(即双缓冲器)使定时器能够在频率和占空比同时变化时,仍然产生一个稳定的输出。一般启动定时器的步骤如下:1)将初始值写入到 TCNTBn 和 TCMPBn 中;2)设置对应定时器的自动重载位;3)设置对应定时器的手动更新位,反向器置为 off 状态;3)设置对应定时器的启动位来启动定时器,同时清除手动更新位。系统使用 PWM5 输出控制一个电机的转速,改变对应的 PWM 输出,就可以实现电机速度的控制。3.4 控制模块设计控制模块的作用主要是控制直流电机的转
38、向和转速。变换电机的转向是靠在上12位机的编程语言里设定中断功能,而控制电机转速,接近于设定值是靠 PID 调节来控制的。直流电机的转速框图如下:控 制 器 检 测 装 置 直 流 电 机 n n n : 设 定 转 速 n : 检 测 速 度 n 驱 动 器 图 3.4 直流电机控制系统闭环结构框图此系统属于单闭环调速系统,测得的速度与上位机设定的速度存在误差 N,需要控制器进行调节,其中控制器采用的控制方式是 PID 控制,消除稳定偏差,PID控制器由比例单元(P )、积分单元( I)和微分单元( D)组成。其输入 e (t)与输出u (t)的关系为:u(t)=kp(e(t)+1/TIe(
39、t)dt+TD*de(t)/dt) 式中积分的上下限分别是 0 和 t,因此它的传递函数为:G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s) ,其中 kp 为比例系数; TI 为积分时间常数; TD 为微分时间常数。在直流电机调速系统中,数字 PID 是一种比较成熟的算法。数字 PID 算法的大致原理是,将设定速度与实际速度之间的偏差记为 e,利用 e 的比例、积分和微分通过线性组合构成的控制量 U 去控制对象。数字 PID 算法的表达式如下: 001)( UeTeKKj kdkP (3.3)其中 为第k个采样时刻的速度偏差值,可演化为增量式数字PID算法表达式:e 121
40、1 )()( kkkdkikpK eeCeCU(3.4)式中, 、 、 分别为比例、积分、微分系数。id这样,只需确定 、 和 的值即可实现对 的控制。在本系统中, 作pidKUKU为控制电机转速的 PWM 信号的占空比。简单来说,PID 控制器各校正环节的作用如下:(1) 比例环节:成比例地反映控制系统的偏差信号 ,偏差一旦产生,控)( tero13制器立即产生控制作用,以减少偏差。(2) 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数 , 越大,积分作用越弱,反之则越强。ITI(3) 微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变化得太大之前
41、,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。PID 控制因其所具有的算法简单、易于实现等特点,至今仍然是工业控制领域应用最广泛的控制方法之一。3.5 通信模块设计系统上位机与下位机之间的距离只有数米,干扰相对较少,数据传输的可靠性并不构成问题,每次要求传输的数据量也不大,所以系统采用串口进行通信。上位机与 AEM9 之间的串口通信,包括上位机的串口操作和自定义通信协议的实现。上位机部分检验用户输入,并转换用户输入为 PWM 占空比和电机转向信息,根据通信协议要求的格式打包发送,并检验收到的应答包,提示通信是否成功。3.5.1 RS232 的串口通信接线在上位机(
42、PC 机)进行串口通信时,使用了十几条线进行信号传输。要开发串口通信程序,至少要了解其中五条线的名称及其作用:DTR 线:用于传输上位机发往串口设备的信号,该信号表示上位机是否已经准备好;RTS 线:用于传输上位机发往串口设备的信号,该信号表示上位机是否允许设备发数据;DSR 线:用于传输上位机发往串口设备的信号,该信号表示设备是否已经做好操作准备;CTS 线:用于传输上位机发往串口设备的信号,该信号表示设备是否允许发送数据;CD 线:用于传输上位机发往串口设备的信号,该信号表示设备已经和远方的设备建立了联系。143.5.2 串口通信串 口 是 计 算 机 上 一 种 非 常 通 用 设 备
43、通 信 的 协 议 。 大 多 数 计 算 机 包 含 两 个 基 于RS232 的 串 口 。 串 口 同 时 也 是 仪 器 仪 表 设 备 通 用 的 通 信 协 议 ; 很 多 GPIB 兼 容的 设 备 也 带 有 RS-232 口 。 同 时 , 串 口 通 信 协 议 也 可 以 用 于 获 取 远 程 采 集 设 备 的数 据 。 RS-232( ANSI/EIA-232 标 准 ) 是 IBM-PC 及 其 兼 容 机 上 的 串 行 连 接 标 准 。可 用 于 许 多 用 途 , 比 如 连 接 鼠 标 、 打 印 机 或 者 Modem, 同 时 也 可 以 接 工 业
44、 仪 器仪 表 。 用 于 驱 动 和 连 线 的 改 进 , 实 际 应 用 中 RS-232 的 传 输 长 度 或 者 速 度 常 常 超过 标 准 的 值 。 RS-232 只 限 于 PC 串 口 和 设 备 间 点 对 点 的 通 信 。 RS-232 串 口 通 信最 远 距 离 是 50 英 尺 。系统采用串口通信接口来实现上位机与 ARM9 开发板相连,串行口是计算机的一种标准接口。现在的上位机一般至少有两个串行口 COM1 和 COM2。串口通信接口标准是在 RS232 标准的基础上经过改进而形成的。上位机中的每一个 COM 口都是由 UART(通用异步接收发送器)控制的异
45、步串行端口。上位机为每一个串口都保留一系列的端口资源,大多数都有一个指定中断的请求(IRQ )或者中断请求级别。CPU 对串口的控制方式是中断处理方式。串行接口包括 4 个主要的寄存器,即控制寄存器,状态寄存器,数据输入寄存器及数据输出寄存器。控制寄存器是用来接受 CPU 送给此接口的各种控制信息,而控制信息决定接口的工作方式。状态寄存器的各位为状态位,每一个状态位都可以用来指示传输过程中的某一个错误或者当前传输状态。数据输入存储器总是和串行输入并行输出移位寄存器配对使用。在输入过程中,数据一位一位从外部设备进入接口的移位寄存器,当接收完 1 个字符以后,数据就从移位寄存器送到数据输入寄存器,
46、在等待 CPU 来取走。输出的情况和输入过程类似,在输出过程中,数据输出 1 个数据后,数据便传输到移位寄存器,然后一位一位地通过输出线送到外设。3.6 硬件电路由于 ARM9 开发板没有直流电机的驱动模块与测速模块,需要用户额外进行开15发,所以本设计的硬件电路由 ARM9 开发板的串行通信模块与外部测控模块构成。其整体电路图见附录,具体实物如图 3.5 所示。图 3.5 硬件电路实物图164 软件方案设计4.1 系统软件设计步骤直流电机控制系统的软件部分设计包括程序的编写。程序的编写关系到系统运行时的稳定性与否,所以,本设计采取了顺序性的编写模式。硬件功能的实现离不开软件的设计与完成。软件
47、设计是直流电机控制系统设计中最重要、最关键的部分,也是本次毕业设计的难点之处。由于本系统使用 ARM9 平台,运用 ARM9 编程语言,在 CodeWarrior For ARM Developer Suite 软件平台进行。本课题软件设计的思想主要是自顶向下,模块化设计,逐一设计各个子模块,分别进行调试,最后的连调整个程序,判断是否达到预期的要求,做出结论。主要分为转速测量子程序、PID 算法子程序、PWM 信号产生子程序、通讯子程序等几部分。各个部分函数都可相互调用又相对独立可调,保证调试的便利与程序的可读性。上位机通信开始初始化,首先设定一些电机的信息,当做要实现的控制效果,作为一个标准
48、。然后读取输入的转速和转向,经过判断转换为 PWM 值,并与转向信息打包,发送出去,传给下位机等待回应,若有新的数据传给上位机,说明控制成功。系统软件设计框图如图 4.1 所示:17开始上位机通讯初始化读取输入的数值A R M 接收数据并与设定值比较生成 P W M 值 , 并与专项信息打包发送数据包S P G T 6 2 C 1 9 B 电机模阻返回设定电机信息转速转向是否满足启动电机NYP I D 调节图 4.1 软件流程图184.2 编程环境设置ARM9 的编写语言选择的是 C 语言,但和以往常用到的 51 单片机不同的是,同样作为控制核心的 ARM9,其编写环境及语言都是特定的,其定义
49、的功能引脚如下所示: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 端口 J(GPIO)13 个输入/输出引脚用于 CAM;本设计主要用的是 S3C2440 中断功能、PWM 调节功能、串口功能,涉及到的端口为端口 B(PWM 调节) 、端口 F/G(中断功能) 、端口 H(串口功能) ;端口C(驱动 SPGT 模组) 。编写程序所用的编写软件是 ARM ADS,称为 ARM Developer Suite 是 ARM 公司推出的新一代 ARM 集成开发工具,是业界公认最好的 ARM 编译器之一,现在AD