当前位置:首页 > 单片机 > 单片机
[导读]文中详细介绍了S3C44B0X处理器中的相关寄存器设置及工作方式,给出了系统硬件设计原理图和软件程序代码。

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

引言

    在智能小车的研制开发中,很重要的一部分就是智能小车要能根据周围障碍物的情况自主的调节行驶速度和行驶方向。本文中所设计的直流电机调速系统是智能小车的一个重要组成部分,直流电机调速系统主要由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电平相同时,电机停转。表1是其使能引脚,输入引脚和输出引脚之间的逻辑关系。


图1.  H桥原理图

表1.电机运行逻辑关系

    另一个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  系统的软件设计 

2.1 定时器工作方式

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

1),将初始值写入到TCNTBn和TCMPBn中。

2),设置对应定时器的自动重载位

3),设置对应定时器的手动更新位,反向器置为off状态.

3),设置对应定时器的启动位来启动定时器,同时清除手动更新位。

    此时定时器TCNTn开始倒计数,当TCNTn具有与TCMPn相同的值时,TOUTn的逻辑电平由低变高。当计数器TCNTn到达0时将产生定时器中断请求,通知CPU定时器操作已经完成。此时,如果自动重载控制位使能,TCNTBn的值会自动载入到TCNTn寄存器中,并开始下一操作周期。如果通过清除定时器使能位等方法使定时器停止,计数值将不会自动重载。

2.2  调制PWM

    脉冲宽度调制(Pulse Width Modulation—PWM)是指将输出信号的基本周期固定,通过调整基本周期内工作周期的大小来控制输出功率。对于一个定时器来说,其时钟源输入频率一般不变,即TCFG0(定时器预分频值)和TCFG1(定时器分割值)的值设定后就不需改变。这样对于PWM提供了一个稳定的时钟源。电机的转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成比例,占空比越大,电机转得越快。系统中PWM脉冲频率就由TCNTBn决定,PWM脉冲宽度值则由TCMPBn的值来决定,而占空比即为TCMPn/TCNTn。如果要使电机转速下降,即得到一个比较低的PWM脉宽输出值,可以减少TCMPBn的值;要使电机转速增加,即得到一个更高的PWM的输出值,可以增加TCMPBn的值。由于双缓冲器的特性,下一个PWM周期的TCMPBn值可以通过ISR(中断服务程序)或其他手段在当前PWM周期中低电平时的任何一点写入,即在程序中可以通过中断重新设定TCMPBn的值来改变电机的转速。缓冲区TCMPBn,TCNTBn的值不一定等于这个周期的TCMPn,TCNTn的值,但一定是TCMPn,TCNTn的下一个周期的值。

2.3  程序代码

    本文中的应用程序是在ADS1.2的开发环境下交叉编译后下载到Flash中运行的。程序代码(以定时器1为例):

//初始化端口

void  Init_PortE( )

{

rPCONE=0x5a00; //定义I/O口//PE4,PE5,PE6,PE7的//功能

rPUPE=0xf8; //禁止相应位的电阻上拉使能

}

//启动A号电机,此电机由定时器1控制

void  Start_MotorA ( )

{

 rTCNTB1=Motor_CONT;//给两个缓冲器//赋值

 rTCMPB1=Motor_cont;

 rTCON |=(0x01<<11); //定时器1自动重载

 rTCON |=(0x01<<9); //手动刷新置位

 rTCON &= ~ (0x01<<10); //关反向器

 rTCON |=(0x01<<8); //启动定时器1

 rTCON &= ~ (0x01<<9); //清手动刷新位

}

//A电机停止

void  Stop_Motor1()

{

 rTCON &= ~ (0x01<<8); //清定时器1使能位

}

//改变电机占空比和转向

void SetPWM (int valueA, int drct)

{

rPDATE=drct; // drct定义PE6口输出高电平还是低电平,控制电机转向

rTCMPB1=Motor_COUNT*valueA/0x64;//valueA为占空比,亦可设置valueA为0使电机A停//止转动。

}

    另一电机的相关设置同上。小车行进过程中可以同时改变两组PWM的占空比来调节小车的行驶速度;通过设置两组不同的占空比形成两个车轮的转速差达到改变行驶方向的目的。

    在对比了100Hz,1KHz,10KHz的PWM输出驱动电机的情况发现:当频率为100 Hz时,电机运行呈间隙转动状态;当频率为10KHz时,电机运行不平稳;当频率为1KHz时,不同占空比下电机运行都很平稳,转速、转向改变迅速。图3是由示波器产生的PWM频率为1KHz,占空比为30%,电机反转情况下的调制波形。

图3占空比为30%,电机反转

图4是由示波器产生的PWM频率为1KHz,占空比80%,电机正转时的调制波形。

图4占空比为30%,电机反转

结束语

    本文中所设PWM的输出频率为1KHZ,所用直流电机是120转/分钟,额定电压为12V(电机外不加其他感性负载)。本课题最终实现的是基于ARM的嵌入式智能小车系统,而直流电机的PWM调速控制是其中一个重要的子系统。实验证明,Samsung公司的16/32位RISC处理器S3C44B0X对调制PWM实现方便,可编程,电机转速、转向的改变迅速,无停顿,可以很好的为智能小车服务。

参考文献:

[1]  杜春雷  ARM体系结构与编程[M]  北京:  清华大学出版社   2003
[2] S3C44B0X USER MANUAL. SAMSUNG  ELECTRONICS
[3]  田泽    嵌入式系统与应用[M]   北京:北京航空航天大学出版社  2005
[4]  李洪科 吴汉松等   基于RTW的无刷直流电机控制系统仿真的新方法      微计算机信息2005,06(006),P12-14

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

南京2022年10月17日 /美通社/ -- 日前《2022第三届中国高端家电品牌G50峰会》于浙江宁波落幕,来自两百余名行业大咖、专家学者共同探讨了在形势依然严峻的当下,如何以科技创新、高端化转型等手段,帮助...

关键字: LINK AI BSP 智能家电

单片机

21600 篇文章

关注

发布文章

编辑精选

技术子站

关闭