1、编号: _ 嵌入式系统 实训 (论文 )说明书 题 目: 基于嵌入式 ARM 的 PWM 信号发生器 摘 要 脉宽控制技术( PWM)简称脉宽调制,是非常重要的电力电子控制技术,利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,对提高电力电子装置的性能,促进电力电子技术的发展有着巨大的推动作用。 本系 统 主要介 绍 了基于 LPC2132 的 PWM 信号发生器制作系统,主要功能是对 PWM 输出波形的频率、占空比的连续调节,并能对运行信号参数用示波器进行实时显示。电路主要 分为三个模块,核心模块采用 LPC2138 中央控制单元,通道选择模块,键盘控制模块采用了五个按键控制,
2、分别调节 PWM 信号的占空比加和减、频率的加和减、输出 PWM通道选择。经测试验证,该信号发生器便于观察和调节,控制精确误差小。 关键词: LPC2132; PWM;按键; 占空比;频率 2 Abstract Pulse width control technology (PWM) referred to pulse width modulation, is very important power electronic control technology, the use of the microprocessor digital output to to the analog circ
3、uit to control a very effective technology, to improve the performance of the power electronic devices, and promote the development of the power electronic technology has a great push forward. This system mainly introduces the LPC2132 PWM signal generator based on the production system, the main fun
4、ction is to the output waveform, the frequency PWM occupies emptiescompared to continuous adjustment, and can run with an oscilloscope to signal parameter real-time display. Circuit can be divided into three modules, the core module LPC2138 central control unit, channel selection module, the keyboar
5、d control module adopted five key control, regulate PWM signal occupies emptiescompared to add and subtract, frequency of addition and subtraction, output PWM channel selection. The results of experiment, this signal generator for observation and regulation, control precise small error. Key words: L
6、PC2132; PWM; Button; Occupies emptiescompared; frequency 目 录 引言 .1 1 系统设计 .1 1.1 设计要求 . 1 1.2 方案的选择 . 1 1.3 系统设计 . 2 1.4 工作原理 . 2 2 硬件设计 .3 2.1 LPC2132 芯片说明 . 3 2.1.1LPC2132 主要特性 . 3 2.1.2LPC2138 管脚 . 3 2.2 PWM 模块 . 4 2.2.1PWM 特性 . 4 2.2.2PWM 基本原理 . 5 2.2.3PWM 相关寄存器 . 5 3 软件设计 .6 3.1 系统整体设计 . 6 3.2
7、键盘驱动程序设计 . 8 3.3 PWM 输出通道的选择 . 9 4 整机调试 . 10 4.1 静态调试 . 10 4.2 动态调试 .11 4.3 数据的测量和计算 .11 4.3.1 占空比计算 .11 4.3.2 信号频率误差计算 .11 5 结论 . 12 附 录 . 15 1 引言 脉冲宽度调制是现代控制技术常用的一种控制信息输出,可以有效地利用数字技术控制模拟信 号的技术。 PWM(Pulse Width Modulation)又称脉冲宽度调制,属于脉冲调制的一种,是应用于电子信息系统和通信领域的一种信号变换技术。随着电力电子技术被引入到电力变换领域, PWM 技术广泛运用于各种
8、工业电力传动领域乃至家电产品中。其突出特点是可以比较容易地选择最佳的脉冲调制频段 ,因此,被竞相开发,前景广阔。 PWM 控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点 。 PWM 控制技术一直是变频技术的核心技术之一 ,由于 PWM 可以同时实现变频变压反 抑制谐波的特点,在交流传动及至其它能量变换系统中得到广泛应用。目前实现方法为采用全数字化方案,完成优化的实时在线的 PWM 信号输出。由于当今科学技术的发展已经没有了学科之间的界限 ,结合现代控制理论思想或实现无谐振软开关技术将会成为 PWM 控制技术发展的主要方向之一 。 脉冲宽度
9、调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用 微处理器 的数字输出来对模拟电路进行控制的一种非常有效的技 术。本文主要介绍了 PWM 信号发生器的概念、作用及定义,分析了系统的工作原理和软硬件的设计。主要是以 LPC2132 为核心控制单元,通过对外围电路芯片的设计实现 PWM 输出波形的频率、占空比的连续调节,达到产生 PWM 信号目的。 1 系统设计 本系 统 主要是基于 LPC2132 的 PWM 信号发生器制作系统,该电路主要分为 LPC2132中
10、央控制模块、键盘控制模块、 PWM 通道选择三部分。 IPC2132 是整个电路的核心部分,按键主要是控制界面达到友好的人机交流,最后提供三个 PWM 输出通道的选择。 1.1 设计要求 (1)输出 三路及以上 PWM 信号 (2)PWM 信号频率(周期)可调。 (3)PWM 信号相位差可调。 (4)PWM 信号频率误差 100HZ。 1.2 方案的选择 方案一:可采用传统的 PWM 控制电路专用集成芯片或中小规模的数字集成电路来做2 示波器显示 波形 PWM 通道 选择 按键 控制 PWM 信号发生器。但是传统的集成电路频率低,可控性差,调试难度大。 方案二、随着微电子技术和大规模可编程器件
11、的发展, PWM 在电机调速中的应用越来越广泛。 ARM 与传统 PWM 控制电路中使用的用集成芯片或中小规模的数字集成电路相比而言 ,具有体积更小、通用性更强、响应更快、可通过编程改良其功能等 优点,能达到的频率范围指标更广。 所以,综合考虑后,本次设计选择 LPC2132 作为电路的核心部件,这样既达到题目的设计要求,也更方便检测调试。 1.3 系统设计 本次设计 基于嵌入式 ARM 的 PWM 信号发生器。电路用 USB 接口为电源,程序从下载口直接接入 LPC2132 嵌入式核心芯片, PWM 输出可选用三路输出通道中的一个来显示波形,并用到 PWM 专用的标准定时器还有匹配器来锁存数
12、据等,可以达到友好的人机交流界面。总的系统设计 原理方框图如 图 1.1 所示。 图 1.1 总系统设计原理框 图 1.4 工作原理 脉宽调制( PWM)控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。 PWM信号发生器通过 LPC2132对各模块和定时 /计数器、锁存器的控制,其脉宽调制器建立在标准定时器之上 ,可在 PWM 和匹配功能当中进行选择。本次采用 软件编程 控制的方法,通过改变给其内部计数器的写入值产生一系列幅值相等而宽度不等的脉冲,再通过一整形电路, 产生 规则的 PWM脉冲 波形,改变的计数器初值是通过程序
13、的改变实现的,而 PWM的输出通道选择,波形频率 的改变以及其占空比的改变是通过按键程序实现,最后通过示波器显示相应的波形参数。 LPC2132 核心 控制 芯片 产生 PWM 信号 电 源 程序下载 3 2 硬件设计 本系统主要由嵌入式 ARM 芯片 LPC2132 构成, PWM 信号由示波器显示。 2.1 LPC2132 芯片说明 LPC2132 是 PHILIPS 公司生产的单片 32位 ARM 微控制器,是基于一个支持实时仿真和跟踪的 16/32 位 ARM7TDMI-S CPU,并带有 256KB 的嵌入的高速 FLASH 存储器。 128 位宽度的存储器接口和独特的加速结构使 3
14、2 位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用 16 位 Thumb 模式将代码规模降低超过 30%,而性能的损失却很小。 2.1.1LPC2132主要特性 ( 1) 16/32 位 ARM7TDMI-S 核,超小 LQFP64 封装。 8/16/32kB 的片内静态 RAM 和 32/64/128/256/512kB 的片内 Flash 程序存储器。 128 位宽度接口 /加速器可实现高达60MHz 工作频率。 ( 2)通过片内 boot 装载程序实现在系统编程 /在应用编程( ISP/IAP)。单个 Flash扇区或整片擦除时间为 400ms。 256 字节行编程时间
15、为 1ms。 ( 3) 1 个( LPC2131/32)或 2 个( LPC2134/36/38) 8路 10 位的 A/D 转换器,共提供 16 路模拟输入,每个通道的转换时间低至 2.44us。 ( 4) 1 个 10位的 D/A 转换器,可产生不同的模拟输出。( LPC2132/34/36/38)。 ( 5) 2 个 32位定时器 /外部事件计数器(带 4 路捕获和 4 路比较通道)、 PWM 单元( 6 路输出)和看门狗。 ( 6)低功耗实时时钟具有独立的电源和特定的 32kHz 时钟输入。 ( 7)多个串行接口,包括 2 个 16C550 工业标准 UART、 2 个高速 I2C 总
16、线( 400 kbit/s)、 SPI 和具有 缓冲作用和数据长度可变功能的 SSP。 ( 8)向量中断控制器。可配置优先级和向量地址。 ( 9)低功耗模式:空闲和掉电。 ( 10)可通过个别使能 /禁止外部功能和外围时钟分频来优化功耗。 ( 11)通过外部中断或 BOD 将处理器从掉电模式中唤醒。 ( 12)单电源,具有上电复位( POR)和掉电检测( BOD)电路: CPU 操作电压范围:3.0V 3.6 V (3.3 V 10 ), I/O 口可承受 5V 的电压。 2.1.2LPC2138管脚 本次 PWM 设计只用到了 LPC2132 中的一些管脚,用于输出 PWM 信号,以及按键控
17、制。其中 PWM 管脚汇总如下表 2.1 所示: 4 表 2.1 PWM 管脚汇总 管脚名称 管脚方向 管脚描述 PWM 1 输出 PWM 通道 1输出 PWM 2 输出 PWM 通道 2输出 PWM 3 输出 PWM 通道 3输出 PWM 4 输出 PWM 通道 4输出 PWM 5 输出 PWM 通道 5输出 PWM 6 输出 PWM 通道 6输出 基本上 PWM1 不能用作双边沿输出。而用 PWM通道 3 和通道 5 作为双边沿 PWM输出,这样会减少可用的双边沿 PWM 的个数,故通常不建议使用。所以本次设计的 PWM 的输出用 到 LPC2132 的 P0.7, P0.8, P0.9
18、管脚,分别作为 PWM2, PWM4, PWM6 输出通道,可得到最多个数的双边沿 PWM 输出。 P0.7 脉宽调制器输出 2。 P0.8 PWM4 脉宽调制器输出 4。 P0.9 PWM6 脉宽调制器输出 6。 2.2 PWM 模块 LPC2132 的脉宽调制器建立在标准定时器 0/1 之上,应用可在 PWM 和匹配功能当中进行选择。 PWM 基于标准的定时器模块并具有其所有特性。不过 LPC2131/2132/2138 只将其 PWM 功能输出到管脚。定时器对外设时钟 (pclk)进行计数,可选择产生中断或基于7 个匹配寄存器,在到达指定的定时值时执行其它动作。 PWM 功能是一个附加特
19、性,建立在匹配寄存器事件基础之上。 2.2.1PWM 特性 PWM 脉宽调制,是靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率。 PWM 基于标准的定时器模块并具有其所有特性。不过 LPC2131/2132/2138 只将其PWM 功能输出到管脚。定时器对外设时钟 (pclk)进行计数,可选择产生中断或基于 7 个匹配寄存器,在到达指定的定时值时执行其它动作。它还包括 4 个捕获输入,用于在输入信号发生跳 变时捕获定时器值,并可选择在事件发生时产生中断。独立控制上升和下5 降沿位置的能力使 PWM 可以应用于更多的领域。 两个匹配寄存器可用于提供单边沿控制的 PWM 输出。一个匹配
20、寄存器( PWMMR0)通过匹配时重新设置计数值来控制 PWM 周期率。另一个匹配寄存器控制 PWM 边沿的位置。每个额外的单边沿控制 PWM 输出只需要一个匹配寄存器,因为所有 PWM 输出的重复率速率是相同的。多个单边沿控制 PWM 输出在每个 PWM 周期的开始,当 PWMMR0 发生匹配时,都有一个上升沿。使用双边沿控制 PWM 输出时,指定的匹 配寄存器控制输出的上升和下降沿。这样就产生了正脉冲和负脉冲。 2.2.2PWM 基本原理 脉宽调制( PWM)控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波
21、形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次斜波谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。在采样控制理论中有一个重要的结论,即冲量相等而形状不同的窄脉冲加在具有惯性的环节上,其效果基本相 同。冲量既指窄脉冲的面积。这里所说的效果基本相同。是指该环节的输出响应波形基本相同。如把各输出波形用傅里叶变换分析,则它们的低频段特性非常接近,仅在高频段略有差异。 根据上面理论我们就可以用不同宽度的矩形波来代替正弦波,通过对矩形波的控制来模拟输出不同频率的正弦波。 例如,把正弦半波波形分成 N 等份,就可把正弦半波看成由
22、 N个彼此相连的脉冲所组成的波形。这些脉冲宽度相等,都等于 n ,但幅值不等,且脉冲顶部不是水平直线,而是曲线,各脉冲的幅值按正弦规律变化。如果把上述脉冲序列用同样数量的等幅而不等宽的矩形脉 冲序列代替,使矩形脉冲的中点和相应正弦等分的中点重合,且使矩形脉冲和相应正弦部分面积(即冲量)相等,就得到一组脉冲序列,这就是 PWM 波形。可以看出,各脉冲宽度是按正弦规律变化的。根据冲量相等效果相同的原理, PWM波形和正弦半波是等效的。对于正弦的负半周,也可以用同样的方法得到 PWM 波形。 在 PWM 波形中,各脉冲的幅值是相等的,要改变等效输出正弦波的幅值时,只要按同一比例系数改变各脉冲的宽度即
23、可,因此在交直交变频器中,整流电路采用不可控的二极管电路即可, PWM 逆变电路输出的脉冲电压就是直流侧电压的幅值。 2.2.3PWM 相关寄存器 寄存器的功能理解: 1. IODIR 当对应的位设置为 1,为输出,否则为输入 2. IOSET 当引脚作为输出时,相应的位为 1,则输出高电平;写 0无效 3. IOCLR 当引脚作为输出时,相应的位为 1,则输出低电平;写 0无效 6 4. IOPIN 用于检测 GPIO 的引脚的电平状态 软件设计 PWM 使用方法总结: 配置相应的引脚工作于 PWM 模式下,相关寄存器为 PINSEL0 和 PINSEL1; 初始化 PWM 的定时器相关寄存
24、器,用于产生 PWM 周期以及 PWM 的占空比;相关寄存器为: 1. PWMPR、 PWMPC 用于 PWM 定 时器的预分频配置 2. PWMTC 用于 PWM 定时器的计数 3. PWMMR0 用于配置 PWM 的周期 4. PWMMR1PWMMR6 用于配置 PWM 的占空比 5. PWMMCR 用于控制 PWMMR0PWMMR6 的操作 6. PWMTCR 用于 PWM 定时器的使能和 PWM 的使能 配置 PWM 的输出方式和引脚使能输出,相关寄存器为 PWMPCR; 通过 PWMLER 使能 PWMMR0PWMMR6 的值设置有效; 系统的主程序主要完成输出 3 路 PWM 信号
25、,并由按键来控制调节。当 PWM 匹配寄存器用于产生 PWM 时, PWM 锁存使能寄存器用于控制 PWM 匹配寄 存器的更新。当定时器处于 PWM 模式时如果软件对 PWM 匹配寄存器位置执行写操作,写入的值将保存在一个映像寄存器中。当 PWM 匹配 0 事件发生时(在 PWM 模式下,通常也会复位定时器),如果对应的锁存使能寄存器位已经置位,那么映像寄存器的内容将传送到实际的匹配寄存器中。此时,新的值将生效并决定下一个 PWM 周期。当发生新值传送时, LER 中的所有位都自动清零。在 PWMLER 中相应位置位和 PWM 匹配 0 事件发生之前,任何写入 PWM 匹配寄存器的值都不会影响
26、 PWM 操作。 3 软件设计 3.1 系统整体设计 电路输出三路 PWM 信号,分别从 LPC2138 的 P0.7、 P0.8、 P0.9 管脚输出。按键 S1-S5分别控制 PWM 信号的周期,占空比以及是哪一路 PWM 信号输出。由设计要求,可分析得出程序设计一共有以下几个模块: (1)初始化程序设计,即初始化 LPC2132 芯片,设置 P0.7、 P0.8、 P0.9 为输出管脚。 (2)PWM 信号发生设计,初始化 LPC2132 后,要开启 PWM 的专用定时器,通过它的匹配功能来产生 PWM 信号。 (3)变量控制,产生 PWM 信号后,要通过按键来调节 PWM 信号的周期和
27、占空比。 (4)屏幕显示 ,产生 PWM 信号,送至示波器显示。 总体软件设计流程图如图 3.1 所示。 7 N Y N N N N Y Y Y Y 图 3.1总体软 件设计流程图 总结: 1 修改匹配寄存器之后,必须设置锁存使能寄存器中的相应位,否则匹配寄存器的值不能生效。 2 第一次使能之后还要等到匹配才能装入 MR0 和 MR1 所以要出现连续的波形,必须使用两次 3.2 初始化程序流程图 扫描按键 选择 PWM2信号输出通道 选择 PWM4信号输出通 选择 PWM6信号输出通 开始 程序初始化 设置 PWM 寄存器 产生 PWM 信号 扫描按键 S1? 按下 1 次 S1? 按下 2 次 S1? 按下 3 次 S1? S2? S3? S4? S5? 信号周期增大 信号周期减小 信号占空减小 信号占空 增大 示波器显示