位置:51电子网 » 技术资料 » 嵌入式系统

ARM的直流电机调速系统的设计与实现

发布时间:2008/5/27 0:00:00 访问次数:347

  摘 要:阐述了基于arm的嵌入式智能小车系统中的直流电机调速子系统,此调速系统主要由s3c44b0x处理器和l298n电机驱动芯片构成,主要功能驱动小车的两个车轮,调节小车的行驶速度和方向。文中详细介绍了s3c44b0x处理器中的相关寄存器设置及工作方式,给出了系统硬件设计原理图和软件程序代码。

  关键词:s3c44b0x; l298n; 嵌入式; 直流电机

  0 引言

  在智能小车的研制开发中,很重要的一部分就是智能小车要能根据周围障碍物的情况自主的调节行驶速度和行驶方向。本文中所设计的直流电机调速系统是智能小车的一个重要组成部分,直流电机调速系统主要由s3c44b0x处理器和电机驱动芯片l298n构成,主要功能是驱动小车的两个车轮,调节小车的行驶速,通过改变两个车轮的转速差调节行驶方向。

  1 硬件设计

  由arm公司设计的采用risc架构的arm处理器性能强,功耗低,体积小,支持thumb(16位)/arm(32位)双指令集,指令执行速度快。目前arm系列微处理器在32位risc嵌入式产品中已经占据75%以上的市场份额。尤以arm7tdmi系列应用最广,其性价比也是最高。

  1.1 s3c44b0x简介

  s3c44b0x是由samsung公司推出的基于arm7tdmi核的16/32位risc处理器。此款处理器提供了丰富的通用的片上外设,大大减少了系统电路中除处理器以外的元器件配置。s3c44b0x具有6个16位定时器,每个定时器可以按照中断模式或dma模式运行。定时器0,1,2,3,4具有pwm功能,定时器5是一个内部定时器。定时器0和1,2和3,4和5分别共享一个8位的预分频器(prescaler),预分频值的范围为0—255,通过寄存器tcfg0设定三个预分频器的值;定时器0,1,2,3还各拥有一个具有5个不同分频信号(1/2,1/4,1/8,1/16,1/32)的时钟分割器(divider),定时器4和5则各具有一个包含4个分频信号(1/2,1/4,1/8,1/16)的时钟分割器。这6个定时器的分割值通过寄存器tcfg1设定。

  定时器输入时钟频率=mclk/prescaler/divider。其中mclk=60mhz是系统的主频。

  1.2 硬件实现

  为提高系统效率、降低功耗,功放驱动电路采用基于双极型h桥型脉宽调制方式(pwm)的集成电路l298n。l298n是sgs公司的产品,内部包含二个h桥的高电压大电流桥式驱动器,接收标准ttl逻辑电平信号,可驱动46伏、2安培以下的电机,工作温度范围从-25度到130度。其内部的一个h桥原理图如图1所示。ena是控制使能端,控制outl和out2之间电机的停转, in1、in2脚接入控制电平,控制outl和out2之间电机的转向。当使能端ena有效,in1为低电平in2为高电平时,三极管2,3导通,1,4截止,电机反转。当in1和in2电平相同时,电机停转。

  另一个h桥的工作原理同上。由enb控制out3和out4之间电机的停转,根据in3、in4脚的输入电平情况控制out3和out4之间电机的转向。

  由于s3c44b0x本身就带有5个pwm输出口,直接输出控制信号到l298n即可,无须另加电路。系统原理框图如图2所示。系统中选用了工作在中断模式下的定时器1和2作为产生pwm的定时器。通过编程设定i/o口pe4和pe5作为定时器1,2输出pwm的端口,接入l298n的ena和enb端口,根据定时器1,2输出的pwm频率分别控制两个直流电机的转速。 pe6设定为输出端口连接in1并通过一反向器连接in2;同样,pe7也设为输出端口,接入in3并经一个反向器接入in4。通过接入反向器,in1和in2,in3和in4就不会同时处于高电平或低电平,即不会因为in1和in2,in3和in4电平相同而使电机停止转动。电机的停止操作可以通过调制脉冲宽度为0即占空比为0或者关闭定时器的使能位实现。这样只需一路信号pe6就可控制in1和in2的状态,pe7控制in3和in4的状态,从而使得系统的控制信号得到减少,在一定程度上简化了系统。为保证l298n驱动芯片正常工作,还要在其与直流电机之间加入四对续流二极管用以将电机中反向电动势产生的电流分流到地或电源正极,以免反向电动势对l298n产生损害。

  2 系统的软件设计

  2.1 定时器工作方式

  在s3c44b0x中,每个定时器具有一个倒计时器,通过定时器时钟源驱动16位倒计时寄存器tcntn。定时器启动前,要向定时计数缓冲区寄存器(tcntbn)写入一个初始值,这个值在定时器启动时载入到倒计时器tcntn中。在定时器的比较缓冲器寄存器(tcmpbn)中同样也要写入一初始值,运行时用来载入到比较寄存器tcmpn中与倒计时器tcntn的值相比较。系统启动时,需要通过置手动刷新位的方式,将tcmpbn和tcntbn这两个缓冲区的值载入到tcmpn和tcntn中。tcmpbn和tcntbn这两个缓冲区的应用(即双缓冲器)使定时器能够在频率和占空比同时变化时,仍然产生一个稳定的输出。一般启动定时器的步骤如下:

  1),将初始值写入到tcntbn和tcmpbn中。

  2),设置

  摘 要:阐述了基于arm的嵌入式智能小车系统中的直流电机调速子系统,此调速系统主要由s3c44b0x处理器和l298n电机驱动芯片构成,主要功能驱动小车的两个车轮,调节小车的行驶速度和方向。文中详细介绍了s3c44b0x处理器中的相关寄存器设置及工作方式,给出了系统硬件设计原理图和软件程序代码。

  关键词:s3c44b0x; l298n; 嵌入式; 直流电机

  0 引言

  在智能小车的研制开发中,很重要的一部分就是智能小车要能根据周围障碍物的情况自主的调节行驶速度和行驶方向。本文中所设计的直流电机调速系统是智能小车的一个重要组成部分,直流电机调速系统主要由s3c44b0x处理器和电机驱动芯片l298n构成,主要功能是驱动小车的两个车轮,调节小车的行驶速,通过改变两个车轮的转速差调节行驶方向。

  1 硬件设计

  由arm公司设计的采用risc架构的arm处理器性能强,功耗低,体积小,支持thumb(16位)/arm(32位)双指令集,指令执行速度快。目前arm系列微处理器在32位risc嵌入式产品中已经占据75%以上的市场份额。尤以arm7tdmi系列应用最广,其性价比也是最高。

  1.1 s3c44b0x简介

  s3c44b0x是由samsung公司推出的基于arm7tdmi核的16/32位risc处理器。此款处理器提供了丰富的通用的片上外设,大大减少了系统电路中除处理器以外的元器件配置。s3c44b0x具有6个16位定时器,每个定时器可以按照中断模式或dma模式运行。定时器0,1,2,3,4具有pwm功能,定时器5是一个内部定时器。定时器0和1,2和3,4和5分别共享一个8位的预分频器(prescaler),预分频值的范围为0—255,通过寄存器tcfg0设定三个预分频器的值;定时器0,1,2,3还各拥有一个具有5个不同分频信号(1/2,1/4,1/8,1/16,1/32)的时钟分割器(divider),定时器4和5则各具有一个包含4个分频信号(1/2,1/4,1/8,1/16)的时钟分割器。这6个定时器的分割值通过寄存器tcfg1设定。

  定时器输入时钟频率=mclk/prescaler/divider。其中mclk=60mhz是系统的主频。

  1.2 硬件实现

  为提高系统效率、降低功耗,功放驱动电路采用基于双极型h桥型脉宽调制方式(pwm)的集成电路l298n。l298n是sgs公司的产品,内部包含二个h桥的高电压大电流桥式驱动器,接收标准ttl逻辑电平信号,可驱动46伏、2安培以下的电机,工作温度范围从-25度到130度。其内部的一个h桥原理图如图1所示。ena是控制使能端,控制outl和out2之间电机的停转, in1、in2脚接入控制电平,控制outl和out2之间电机的转向。当使能端ena有效,in1为低电平in2为高电平时,三极管2,3导通,1,4截止,电机反转。当in1和in2电平相同时,电机停转。

  另一个h桥的工作原理同上。由enb控制out3和out4之间电机的停转,根据in3、in4脚的输入电平情况控制out3和out4之间电机的转向。

  由于s3c44b0x本身就带有5个pwm输出口,直接输出控制信号到l298n即可,无须另加电路。系统原理框图如图2所示。系统中选用了工作在中断模式下的定时器1和2作为产生pwm的定时器。通过编程设定i/o口pe4和pe5作为定时器1,2输出pwm的端口,接入l298n的ena和enb端口,根据定时器1,2输出的pwm频率分别控制两个直流电机的转速。 pe6设定为输出端口连接in1并通过一反向器连接in2;同样,pe7也设为输出端口,接入in3并经一个反向器接入in4。通过接入反向器,in1和in2,in3和in4就不会同时处于高电平或低电平,即不会因为in1和in2,in3和in4电平相同而使电机停止转动。电机的停止操作可以通过调制脉冲宽度为0即占空比为0或者关闭定时器的使能位实现。这样只需一路信号pe6就可控制in1和in2的状态,pe7控制in3和in4的状态,从而使得系统的控制信号得到减少,在一定程度上简化了系统。为保证l298n驱动芯片正常工作,还要在其与直流电机之间加入四对续流二极管用以将电机中反向电动势产生的电流分流到地或电源正极,以免反向电动势对l298n产生损害。

  2 系统的软件设计

  2.1 定时器工作方式

  在s3c44b0x中,每个定时器具有一个倒计时器,通过定时器时钟源驱动16位倒计时寄存器tcntn。定时器启动前,要向定时计数缓冲区寄存器(tcntbn)写入一个初始值,这个值在定时器启动时载入到倒计时器tcntn中。在定时器的比较缓冲器寄存器(tcmpbn)中同样也要写入一初始值,运行时用来载入到比较寄存器tcmpn中与倒计时器tcntn的值相比较。系统启动时,需要通过置手动刷新位的方式,将tcmpbn和tcntbn这两个缓冲区的值载入到tcmpn和tcntn中。tcmpbn和tcntbn这两个缓冲区的应用(即双缓冲器)使定时器能够在频率和占空比同时变化时,仍然产生一个稳定的输出。一般启动定时器的步骤如下:

  1),将初始值写入到tcntbn和tcmpbn中。

  2),设置

相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!