一、设计目的:
1.1 CPU定时器程序设计;
1.2 2直流电机程序设计;
1.3 外中断。
二、设计原理:
2.1 定时器的控制:
在DM6437(是一种数字信号处理器,DSP)上使用其内部定时器和中断来控制LED闪烁频率的一个示例。DM6437的DSP内部包含三个定时器,其中两个(TIMER0和TIMER1)可以配置为64位或作为双32位定时器;第三个(TIMER2)一般用作看门狗。下面是对程序的主要配置和步骤的总结:
定时器配置:
使用TIMER0的32位模式。
TIM12被用作配置定时器计数值。
PRD12用来存储定时器的输入时钟记数周期值。
TGCR用于定时器的全局配置,本例程中配置为双32位unchained模式。
TCR(定时器控制寄存器)被设置为连续工作模式。
中断配置:
关闭全局中断控制,将GIE设置为0。
清除IER中的中断使能。
向ICR写1来清除IFR中的标志位。
设置INT段地址。
向EVTCLRn写1来清除EVTFLAGn中的标志位。
屏蔽不需要的中断。
使用INTMUXn将定时器中断映射到中断服务程序上。中断服务程序应与中断向量表中的名称相对应。
使能中断。
程序设计分析:
通过定时器中断来控制GPIO[23]和地址0x44800000
最低位的输出,以驱动LED闪烁。
在中断服务程序中,使用了二级延时控制来调整LED的闪烁频率。
展示了如何使用DM6437的资源来实现一个简单的任务:使用定时器产生周期性的中断,并在中断服务程序中执行导致LED变化状态的代码,从而创建闪烁效果。这种类型的程序经常用于嵌入式系统的硬件交互,提供了对硬件直接控制的一个例子。
2.2 直流电机控制:
1. GPIO引脚设置:
在利用DM6437处理器进行程序设计时,需要对GPIO(General-Purpose Input/Output)引脚进行初始化和设置其为输入或输出状态。这一过程涉及以下函数调用:
EVMDM6437_GPIO_init()
: 用于初始化GPIO引脚。EVMDM6437_GPIO_setDir()
: 用来设置GPIO引脚的方向(输入或输出)。
这些函数通常在库文件evmdm6437bsl.lib
中定义,让开发者能够在他们的应用程序中轻松地使用GPIO功能。
2. 直流电机控制:
直流电机因其调速方便而被广泛用于各种应用。近年来,随着控制理论和电力电子技术的进步,直流电动机的结构和控制方式经历了重大变化。尤其是PWM(脉宽调制)成为了现代电机控制的主流技术。
PWM调压调速原理:
直流电机的转速( n )可以用以下表达式来描述:
[ n = f(U, I, R, \Phi, K) ]
其中:
- ( U )是电枢端电压。
- ( I )是电枢电流。
- ( R )是电枢电路的总电阻。
- ( \Phi )是每极磁通量。
- ( K )是电动机结构参数。
直流电机的转速控制方法主要分为两类:
- 励磁控制法:通过控制励磁磁通来调整转速。但由于在低速时会受到磁极饱和的限制,在高速时受到换向火花和换向器结构强度的限制,且励磁线圈电感大,动态响应慢,这种方法使用较少。
- 电枢控制法:通过控制电枢电压来调整转速。这是目前大多数直流电机应用场合采用的控制方法。
在开关驱动方式中,半导体功率器件工作在开关状态,通过PWM调制来控制电动机的电枢电压,从而实现调速。这种方式具有高效率、响应快和控制方便等优点。
总结:
通过设置GPIO引脚与配置直流电机的PWM控制方式来实现其功能。GPIO用于接口控制,而PWM用于调节电机转速,这些技术的结合为各种自动化和控制应用提供了可靠的解决方案。开发者可以根据实际的硬件和应用需求,利用DM6437的处理能力和丰富的接口,设计和实现各种控制策略。
上图是利用开关管对直流电动机进行 PWM 调速控制的原理图和输入输出电压波形。
在PWM(脉宽调制)调速方法中,通过改变MOSFET栅极的输入信号,来控制MOSFET的导通和截止,进而改变直流电机电枢绕组两端的电压。该过程中,电机电枢绕组两端的电压平均值 ( U_o ) 可由以下公式计算:
[ U_o = \alpha \times U_s ]
这里,( U_s ) 是供电电压,( \alpha ) 是占空比,定义为导通时间 ( t_1 ) 与周期 ( T ) 的比值,即 ( \alpha = t_1 / T )。占空比的变化范围是 ( 0 \leq \alpha \leq 1 )。
调整占空比 ( \alpha ) 的方法有:
-
定宽调频法:在这种方法中,导通时间 ( t_1 ) 保持不变,通过改变截止时间 ( t_2 ) 来改变周期 ( T ) 或频率。由于导通时间固定,这会导致频率的改变。
-
调宽调频法:在这种方法中,截止时间 ( t_2 ) 保持不变,通过改变导通时间 ( t_1 ) 来改变周期 ( T ) 或频率。
-
定频调宽法:在这种方法中,周期 ( T ) 或频率保持不变,同时调整导通时间 ( t_1 ) 和截止时间 ( t_2 ) 以改变占空比。
由于前两种方法在调整占空比时会改变频率,这可能导致当控制脉冲的频率接近系统的固有频率时引起系统的震荡,因此很少使用。在现代直流电机控制中,通常采用定频调宽法,因为它能够保持频率的恒定,避免因频率变化引起的震荡问题,同时通过调整占空比来改变电动机的速度。
PWM调速是通过精确控制电源信号的“开”和“关”时间来调节电动机的平均电压,以此来达到调速的目的。占空比的改变直接影响电动机的平均供电电压和转速,而保持频率不变可以确保驱动信号的稳定性和电动机平滑运行。
3.ICETEK-CTRF 直流电机模块: 原理图 ICETEK-CTRF 即显示/控制模块上直流电机部分的原理图见下图。
在ICETEK-DM6437-AF开发板上,直流电机的转速和转向控制是通过DSP给定的PWM信号和方向信号实现的。这里我们详细解释了这一控制原理:
转速控制: DSP通过GPIO[24]输出的PWM信号连接到P4外扩插座的第26引脚,用以控制直流电机的转速。PWM信号的占空比决定了电机电枢绕组的平均电压,从而调节电机的转速。
转向控制: 转向由DSP通过GPIO[30]输出的高低电平信号控制,该信号连接到P4外扩插座的第29引脚。高电平和低电平分别控制电机的正转和反转。
电路逻辑: 输出信号通过两个与门(Y1、Y2)和一个非门(F1)处理后,控制四个开关管(V1、V2、V3、V4)的导通和截止,从而控制电机的转向。
-
正转控制:
- GPIO[30]输出高电平。
- 高电平信号分为三路:
- 一路直接使开关管V4导通。
- 一路通过非门F1,将与门Y2的输出设为0,因此V3和V2都处于截止状态。
- 第三路接到与门Y1的输入端,使Y1的输出由PWM信号控制,从而控制V1的导通和截止。
结果是V1和V4导通,V2和V3截止,电机正转。
-
反转控制:
- GPIO[30]输出低电平。
- 低电平信号经过非门F1变为高电平,分两路:
- 一路使V2导通。
- 另一路输入到与门Y2,与PWM信号结合,控制V3的导通和截止。
- 与此同时,直接输出的低电平使V1和V4截止。
结果是V3和V2导通,V1和V4截止,电机反转。
这样的电路逻辑通过简单的逻辑门和GPIO信号实现了对电机的精确控制。PWM信号控制电机的转速,而高低电平信号决定电机的转向。这个设计简洁有效,适用于各种需要电机控制的应用场景。
4.程序编制: 程序中采用定时器中断产生固定频率的 PWM 波,在每个中断中根据当前占空比判断应输 出波形的高低电平。 主程序用轮询方式读入键盘输入,得到转速和方向控制命令。
5.设计程序流程图:
2.3中断:
中断和中断处理是在微处理器或数字信号处理器(DSP)中处理特定事件的一种机制。当外部或内部事件发生时,它会暂时打断当前执行的程序流,以便处理更为紧急的任务。
1. 中断概念:
中断是硬件或软件发出的信号,它告诉DSP有一个紧急事件需要立即处理。在DM6437上,有多达111个GPIO口可以配置为中断源。当中断发生时,DSP会暂停当前执行的任务,并跳转到一个特殊的函数,称为中断服务程序(ISR)来处理这个事件。
2. 中断处理流程:
- 接收中断请求:来自硬件或软件的中断请求被DSP接收。
- 应答中断请求:对于可屏蔽中断,处理器会检查是否满足应答条件;不可屏蔽中断则立即得到响应。
- 准备执行ISR:DSP完成当前的指令,清除流水线中未解码的指令,自动保存关键寄存器的值,然后从用户定义的中断向量表中获取当前中断的服务程序地址。
- 执行ISR:中断服务程序运行并解决中断请求的原因。执行完毕后,使用中断返回指令恢复之前保存的寄存器状态,从而返回到中断前的程序执行点。
3. ICETEK-CTRF键盘接口:
ICETEK-CTRF模块通过P8接口连接键盘,接收键盘的扫描码。每次键盘按键操作会生成两个扫描码和两次中断信号,并将这些信号发送给DSP的GPIO1。
4. 编写带中断的程序:
将中断处理程序加入到一个现有工程中,需要以下步骤:
- 编写ISR:用C语言编写一个名为
extint14_isr
的中断服务程序,该程序以interrupt
关键字修饰,无参数和返回值。 - 构建中断向量表:为DM6437的GPIO中断创建中断向量表,链接具体的ISR到中断源,设置INTMUX寄存器,并使能相应的GPIO中断。
- 修改链接文件:在链接命令文件中为中断向量表分配专用内存区域,指定.vectors段到这个内存区。
-
初始化主程序:在主程序中设置中断向量表的位置,使能中断并清除之前的中断标志。
中断是DSP用来临时停止处理当前任务,转而应对更优先任务的一种机制。这通常涉及到接收和识别中断信号,保存处理器的状态,执行专门为解决该事件而设计的ISR,并在处理完成后恢复原先的任务。键盘接口的中断是一种实际应用,它通过生成信号来提示DSP用户的交互操作。而在程序实现中,需要对软件架构进行特别的设计和配置,以确保中断能正确且有效地被处理。
三、设计步骤:
点击ICETEK-DM6437-AICOM——CPU定时器及直流电机控制中断控制 - 古月居 (guyuehome.com)可查看全文