基于单片机的直流电机pwm控制系统设计内容摘要:
PWM 输出在每个周期开始时总是高电平,除非输出保持恒定低电平。 双边沿控制 PWM 输出可在一个周期内的任何位置产生边沿,这样可同时产生正脉冲和负脉冲。 双边沿控制的 PWM 输出可编程为正脉冲或负脉冲,输出规则为: ( 1) 在一个 PWM 周期结束 时 (与下一个 PWM 周期的开始重合的时间点 ),使用下一个 PWM 周期的匹配值,例外如规则 ( 3) ; ( 2) 等于 0 或当前 PWM 速率 (与匹配通道 0 的值相同 )的匹配值有效。 例外 如规则 ( 3)。 例如,在 PWM 周期开始时的下降沿请求与 PWM 周期结束时的下 降沿请求等效; ( 3) 当匹配值正在改变时,如果其中有一个旧匹配值等于 PWM 速率,并且新的匹配值不等于 0 或 PWM 速率,旧的匹配值不等于 0,那么旧的匹配值将再次被使用; LPC 2114P 0 . 16P 0 . 17 P 0 . 18 P 0 . 19VCC1END12341025262736P 0 . 0P 0 . 1P 1 . 0P 1 . 1P 1 . 2P 1 . 324P 1 . 4P 1 . 5P 1 . 6P 1 . 728293023PD 5 ( PWM )11PD 735VCC17邵阳学院毕业设计 (论文 ) 15 ( 4) 如果同时请求 PWM 输出置位和清零,则清零优先。 当置位和清零匹配值相同,或者置位或清 零等于 0 并且其它值等于 PWM 速率时,可能发生这种状况; ( 5) 如果匹配值超出范围 (大于 PWM 速率值 ),将不会发生匹配时间,匹配通道对输出不起作用。 也就是说, PWM 输出将一直保持一种状态,可以为低电平、高电平或者“无变化”输出。 脉冲周期和宽度可以是任何的定时器计数值,这样可实现灵活的分辨率和重复速率的设定。 所有 PWM 输出都以相同的重复速率发生。 匹配寄存器更新与脉冲输出同步,防止产生错误的脉冲。 软件必须在新的匹配值生效之前将它们释放。 PWM 输出引脚和直流电机的速度控制 当 PWM 匹配寄存 器用于产生 PWM 信号时, PWM 锁存使能寄存器用于控制PWM 匹配寄存器的更新。 当定时器处于 PWM 模式时,如果软件对 PWM 匹配寄存器位置执行写操作,则写入的值将保存在下一个映像寄存器中。 当 PWM 匹配 0事件发生时 (在 PWM 模式下,通常也会复位定时器 ),如果对应的锁存使能寄存器已经置位,那么映像寄存器的内容将传送到实际的匹配寄存器中。 此时,新的值将生效并决定下一个 PWM 周期。 当发生新值传送时, PWMLER 中的所有位都自动清零。 在 PWMLER 中相应位置位和 PWM 匹配 0 事件发生之前,任何写入 PWM 匹配寄存器的值都不会影 响 PWM操作。 表 所列汇集了所有与 PWM 相关的引脚。 引脚名称 引脚方向 引脚描述 PWM1 输出 PWM通道 1输出 PWM2 输出 PWM通道 2输出 PWM3 输出 PWM通道 3输出 PWM4 输出 PWM通道 4输出 PWM5 输出 PWM通道 5输出 PWM6 输出 PWM通道 6输出 直流电机转向的控制 用 LPC2114 的 GPIO 引脚 ~ 控制直流电机转速的方向。 引脚~ 是通用 I/O 口,内部无上拉电阻,输出 /输入方式要进行设置后才能操邵阳学院毕业设计 (论文 ) 16 作。 引脚连接由 GPIO 寄存器控制,引脚可以动态配置为输入或输出。 GPIO 包含 4个寄存器: IOPIN、 IOSET、 IODIR 和 IOCLR。 ( 1) GPIO 引脚值寄存器 IOPIN:提供 GPIO 引脚的值,反映了外部环境对引脚的影响; ( 2) GPIO 输出置位寄存器 IOSET:与 IOCLR 寄存器一起控制输出引脚的状态。 写入 1 使对应引脚输出高电平,写入 0 无效; ( 3) GPIO 输出清零寄存器 IOCLR:与 IOSET 寄存器一起控制输出引脚的状态。 写入 1 使对应引脚输出低电平并清零 IOSET 寄存器中的对应位,写入 0 无效; ( 4) GPIO 方向寄存器 IODIR:控制每个 I/O 口的方向 (0=输入, 1=输出 )。 光电编码器的 测速 原理 光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的 传感器。 光电编码器每转输出 600 个脉冲,五线制。 其中两根为 电源 线,三根为脉冲线 (A 相、 B 相、 Z 相 )。 电源的工作电压为 ( +5~ +24V) 直流电源。 光电编码器是由光栅盘和光电检测装置组成。 光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。 由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经 发光二极管 等 电子元件 组成的检测装置检测输出若干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。 此外,为判断旋转方向,码盘还可提供相位相差 90186。 的两路脉冲信号。 光电编码器的连线如图 所示 图 光电编码器的连线图 4321VCCCD 401061R 4 R 6( 光电编码器 )EncoderCD 40106VCCARM 2310邵阳学院毕业设计 (论文 ) 17 编码器的输出信号如图 所示 : 图 编码器的输出信号图 它输出 A、 B 两相相位相差 90176。 的正交方波脉冲信号 , A 相或 B 相的每个脉冲代表被测对象旋转的角度增量 , 对 A 和 B 相的脉冲信号定时计数就可以计算出电机的转速 , 对脉冲信号累加计数就可以计算出电机的转角。 A 相和 B 相的相位关系则反映了电机的旋转方向。 若定义 A 相超前 B 相 , 转动方向为正转 ; 则 B 相超前A 相时 , 转动方向为反转。 编码器的信号经过上拉电阻 , 再经过 CD40106 施密特整形 , 分别接到 LPC2114 的 PC6 和 INT1 引脚上。 单片机对 INT1 的中断次数计数来测量通道 B 的脉冲数 ,读取 PC6(即 A 相信号 )的电平状态来判断电机的转动方向。 以上升沿触发为例 , 即当 B 路信号的上升沿引起中断时 , 单片机判断 PC6 信号的电平高低。 若 PC6 为低电平 ,则电机为正转 , 计数器 N 的值加 1; 若为高电平 , 则电机为反转 , 计数器 N 值减 1。 则电机的速度即为一个采样周期中 N 值的变化量。 系统硬件结构图与运行过程 系统硬件结构图 如图 所示: 本控制系统由上位机子系统和下位机子系统组成。 上位机子系统为主控单元,下位机子系统以 ARM 为核心,上位机子统与下位机子系统通过串行口进行通信。 下位机采用 LPC2114 处理器,它执行上位机指令,通过直流电机驱动电路控制直流电机的运转。 在新的采样周期到来时 ,光电编码器测得的电机速度反馈信号通过 Encoder 接口反馈到 ARM2310。 单片机系统通过通讯接口从上位机获得电机给 定速度 ,或是单片机系统自行给定电机速度。 单片机系统根据给定的运动速度与速度的反馈信号相减 ,得出偏差 ,经过各种控制算法得出控制量。 单片机再把控制量以 PWM 的形式输出 ,经过 L298N 功率放大 ,驱动直流电机。 然后进入下一个采样周期。 比较器 LM393 主要起到了限制过流和保护 L298N 的作用。 LM393 的同相端直接连到了一个可变电位计上 ,电位计的参考电压是可调的。 调节电位计的参考电压能调节 L298N的限流电压。 LM393的反相端接到 L298N的 SENSEA和 SENSEB两检测端。 当检测电阻两端的电压大于限流电压时 ,比较器的反相端的电压大于同相端的电压 ,输出端输出低电平 ,从而把 L298N 的 EnA 和 EnB使能端拉低 L298N 停止工作。 这就起到了限制过流和保护 L298N 的作用。 AB邵阳学院毕业设计 (论文 ) 18 图 系统硬件结构图 12345678P 1 . 0 / TP 1 . 1 / TP 1 . 2P 1 . 3P 1 . 4P 1 . 5P 1 . 6P 1 . 7INT 1VC CV 121...UA R T 01R XDTXD3435LP C 2114ENDP 0 . 16P 0 . 17 P 0 . 18 P 0 . 19VC CV 1END12341025262736.P 0 . 0P 0 . 1P 0 . 1P 0 . 2P 0 . 3P 0 . 4IO P INIO S ET11121314IODIRIO C LRUA R TO 2P 1 . 0P 1 . 1P 1 . 2P 1 . 324P 1 . 4P 1 . 5P 1 . 6P 1 . 728293023AR M 2310611115P 0 . 18P 0 . 1957P 0 . 16 10P 0 . 17 12ENAENBS EN S EAS EN S EBIN 1IN 2IN 3IN 4OUT 1OUT 28OUT 3OUT 4vccPD 5 ( PWM )17VC C+32R 2LM 39384PD 7VC CR 11 12374 LS 0874 LS 141 2R 3直流电机141323L 298 N 驱动模块VS S4321VCCEncoderPC 6VCCCD 40106CD 401061 21 2R 4 R 6( 光电编码器 )113520+ 12 V电机电源直流电机邵阳学院毕业设计 (论文 ) 19 3 基于 LPC2114 的嵌入式系统设计 在简单的单片机应用系统中,任务没有优先级之分,应用程序是一个无限的循环,任务函数按在代码中的顺序运行,处理相应的事务。 时间相关性强的任务处理使用中断机制,但是当系统比较复杂、中断资源有限时,中断程序只能将处理该任务的信息条件准备好后返 回。 当程序按顺序没有执行到该任务时,该任务的执行必须等待,所以将会造成任务每次的执行时间间隔不定,不能及时处理紧急事务,影响系统的运行。 这种情况在要求限定时间内周期性处理事务的系统中是不允许发生的,而且只由用户编写的复杂程序很可能会出现故障。 嵌入式操作系统是实时操作系统,运行于特定的硬件平台上,一般包括处理器、存储器及外设器件和 I/O 端口,包括操作系统软件,要求实时和多任务操作,用户可以在其基础上添加应用程序。 使用嵌入式操作系统的用户只需添加所需的任务到操作系统中即可,既节省开发时间,又提高程序的可靠性。 系统移植 uC/OSII 到 LPC2114 ARM 开发板上,基于 uC/OSII 系统开发用户所需的程序。 此次移植采用的 C 语言编译器为 ADS , ADS 是 ARM 公司开发的针对于 ARM 处理器核的编译器。 LPC2114 的引脚连接和寄存器 LPC2114 引脚连接模块 引脚连接模块可实现独立的管脚配置,使所选管脚具有 1 个以上的功能。 配置寄存器控制多路开关来连接管脚与片内外设。 片内外设在激活与任何相关中断使能之前必须连接到适当的管脚。 任何使 能的外设功能如果没有映射到相关的管脚,则被认为是无效的。 LPC2114 的引脚连接模块包含 3 个寄存器:引脚选择寄存器0PINSEL0(0xE002C000)、引脚选择寄存器 1 PINSEL1(0xE002C004)和引脚选择寄存器 2 PINSEL2(0xE002C014)。 这三个寄存器设定控制引脚的功能。 IODIR 寄存器中的方向控制位只有在引脚选择 GPIO 功能时才有效。 要完成直流电机的调速功能和与上位机通信功能,暂不考虑嵌入式系统需要的中断功能,至少要将以下引脚连接到对应的功能: ( 1) 引脚 、引脚 、引脚 、引脚 选择对应的 GPIO 功能。 且方向选择为输出; ( 2) 引脚 、引脚 选择对应的 UART0 的 TxD 和 RxD 功能; 邵阳学院毕业设计 (论文 ) 20 ( 3) 引脚 、引脚 选择对应的 PWM4 和 PWM6 功能。 LPC2114 GPIO LPC2114 具有 46 个 I/O,分为 P0 端口和 P1 端口。 它们都包含 4 个寄存器,运用它们可以对引脚进行灵活的控制,包括输出值,输入输出方向,清零。 P0 端口GPIO 寄存器映射如表 所示。 表 GPIO 寄存器映射。基于单片机的直流电机pwm控制系统设计
相关推荐
子的饱和截止模式下,效率非常高; H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性 也极佳,是一种广泛采用的 PWM 调速技术。 我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生 PWM 脉冲的软件实现上比较方便。 且对于直流电机,采用软件延时所产生的定时误差在允许范围。 K1 K2A+VCCVCC 图 21 PWM 波调速电路
会更多的出现,而单片机和智能理论的结合,将来不但更多的改进现行智能温度测量与控制电器,而且将会产生全新的智能温度测量与控制电器。 3 总体设计 系统硬件框图 本系统由单片机 AT89C5温度检测电路、键盘显示及报警电路、时钟电路、温度控制电路等部分组成。 系统中采用了 新型 元 件,功能强、精度高、硬件电路简单。 本文是基于先进的单片机控制技术,在低耗能下可实现对炉温的精确控制。
“1010”;另外, “*”,“”字号码, MT8870 输出的 8421 码分别为 “1011”和 “1100”。 有些技术资料会出现错误,包括比较权威的手册,所以在 本次 实验中,记录下测量的每一组数据后,才把这些数据应用于程序当中。 为了使单片机 AT89C51 获取有效数据, MT8870的 STD 有效端经反相后接 CPU 的 INT0 引脚。 当 MT8870 获取有效双音多频信号后
之间的联系方框图如图 24所示。 程 序 存 储 器M C S 5 1 核特 殊 功 能寄 存 器并 行 和 串 行 接 口定 时 / 计 数 器中 断 管 理监 视 定 时 器 等其 他 外 围 器 件 图 24 特殊功能寄存器( SFR)工作框图 Special function registers( SFR) working diagram
,存储结束转入 D/A 转换,数据读取中间有时间间隔, 判断 和 是否置位, 控制波形输出频率。 如果有按键按下,则程序判断是哪个键按下 ,从而 跳转执行 各个子程序。 二,存储波形子程序, A/D 转换结果由单片机控制依次存入外部存储器的 100 个存储单元,当这 100 个存储单元存储完毕,程序自毕业设计(论文)说明书 19 动转入扫描键盘继续执行 主程序。 三,显示存储波 形子程序
0 0 1 0 1 1 0 1 1 0 1 0 2 0 0 1 1 1 1 1 1 0 0 1 0 3 0 1 0 0 0 1 1 0 0 1 1 0 4 0 1 0 1 1 0 1 1 0 1 1 0 5 0 1 1 0 0 0 1 1 1 1 1 0 6 0 1 1 1 1 1 1 0 0 0 0 0 7 1 0 0 0 1 1 1 1 1 1 1 0 8 1 0 0 1 1 1 1 1 0