基于S3C2410的步进电机控制系统的实现
2016-05-26刘文芝苏州市职业大学计算机工程学院江苏苏州215104
过 怡,刘文芝(苏州市职业大学 计算机工程学院,江苏 苏州 215104)
基于S3C2410的步进电机控制系统的实现
过 怡,刘文芝
(苏州市职业大学 计算机工程学院,江苏 苏州 215104)
摘 要:利用步进电机细分技术,采用TA8435芯片对步进电机进行细分控制,有效减小步距角,提高机器人转角、取物等动作的准确性.系统由主控芯片S3C2410片内PWM定时器产生控制信号,经TA8435芯片细分输出阶梯波形驱动步进电机运转.分析步进电机驱动电路构成及软件控制方法.经过细分优化,使原有的机器人系统控制更准确,动作更精细.
关键词:S3C2410;TA8435;PWM;步进电机
为了提高学生的创新能力和专业技术水平,每年国内各大高校都会举办各种形式的机器人大赛,通过各项大赛实践,逐步暴露出从厂家采购的机器人的设计缺陷.以轮式机器人为例,此种机器人可以参加清扫、零件装配、抛掷物等多项赛事,其进行零件夹取控制采用了步进电机.步进电机是机器人关节旋转、弯曲等精细控制中常用控制元件,它的特点是将电脉冲信号转换成相应角位移或线性位移,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,具有较高的重复定位精度,且没有累积误差[1].购买的机器人控制系统中采用的两相步进电机,该电机在两种模式下的步距角分别为18º和9º,由于步距角过大,导致机器人动作不够精细.如果将控制电机更换为高精度的舵机则成本太高,因此,使用细分技术对原有主控板上控制芯片片内PWM进行细分后驱动步进电机工作,提高机器人动作的精细度.
1 软件方式驱动步进电机
在硬件系统PWM定时器资源不足时,可以通过通用IO口,使用软件模拟输出频率控制步进电机.分析系统采用的步进电机的两种工作方式,半步模式和整步模式,两种模式下的脉冲信号图如图1和图2所示.
图1 半步模式脉冲信号图
图2 整步模式脉冲信号图
分析图1和图2两种模式的脉冲信号,得到半步模式与整步模式的脉冲分配表,见表1和表2.即给步进电机的四相ABCD分别输出{0x05,0x01,0x09,0x08,0x0a,0x02,0x06,0x04}和{0x05,0x09,0x0a,0x06}的脉冲序列就会以半步模式和整步模式正向旋转,反向输出上述脉冲序列使步进电机反向旋转,调整脉冲序列的输出频率可以控制步进电机的转速.整步模式实现代码为:
表1 半步模式脉冲分配表
表2 整步模式脉冲分配表
在上述代码中只要更换频率表pluse_table的内容就可以很方便地实现半步模式和改变步进电机的旋转方向,同时改变delay函数的延时值可以更改步进电机的转速.这种方法虽然电路结构和软件设计都很简单,但是精确度不足.
2 使用专用芯片驱动步进电机
2.1 细分方案的选择
对步进电机的输入脉冲进行细分有多种方案:①DSP软件细分,优点是软件设计灵活、效率高,缺点是细分的步数和步进电机转速相矛盾;②FPGA细分,优点是控制精确,缺点是功耗高、成本高;③脉宽调制式斩波驱动细分,由处理器片内PWM模块输出驱动脉冲,经过专用步进电机芯片放大调制,产生阶梯波对步进电机进行细分控制[2],这种方式精确度高而且成本低,目前市场上有大量专用步进电机芯片可以选购.
市场上的两相步进电机驱动芯片很多,例如三洋的THB6128、THB7128,SGS公司的L298、L6506,东芝的TA8435等.这些芯片的功能类似,东芝的TA8435细分精度不如三洋的THB6128、THB7128,但是价格便宜、封装体积较小、便于系统的硬件扩展、细分效果符合系统要求,因此本系统选用TA8435作为步进电机的控制芯片.
2.2 TA8435芯片
东芝公司的单片正弦细分二相步进电机专用芯片TA8435.细分的工作原理是将输出给步进电机绕组的一定频率和脉宽的PWM脉冲信号分成n个台阶的近视阶梯波,电机每接收一个阶梯信号转动一步,转动n小步与原来转过一个步距角相当,即实现了步距角的n细分[3].该芯片的特点为:①工作电压范围宽(10~40 V);②输出电流可达1.5 A(平均)和2.5 A(峰值);③具有整步、半步、1/4细分、1/8细分运行方式供选择;④采用脉宽调制式斩波驱动方式;⑤具有正/反转控制功能;⑥带有复位和使能引脚;⑦可选择使用单时钟输入或双时钟输入[4].
2.3 电路结构设计
系统的主控芯片采用三星公司ARM9内核的S3C2410A处理器,该处理器片内带有5个16位的定时器,其中定时器0-3具有PWM(脉冲宽度调制)功能.系统选用定时器0作为实时操作系统的时钟,选用定时器1产生PWM脉冲信号驱动TA8435芯片[5].通过调节占空比改变定时器输出功率,通过控制输出脉冲个数确定角位移量,通过设置脉冲频率控制步进电机的转速和加速度.主控芯片S3C2410A驱动TA8435芯片的原理图如图3所示.TA8435芯片的M1、M2引脚为激励控制输入,控制电机的转动方式.M1=M2=0整步模式;M1=1,M2=0半步模式;M1=0,M2=1,1/4细分模式;M1=M2=1,1/8细分模式.图3中系统的M1、M2连接了+5 V高电平,选择了1/8细分模式.每一个脉冲,电机最大旋转2.25º. CW/CCW控制电机水平方向的左右旋转和垂直方向的顺时针和逆时针旋转,由S3C2410A的通用IO口的G端口中的GPG3输出控制.ENABLE为旋转方向的使能信号,由S3C2410A的通用I O口的F端口中的G P F 0输出控制,ENABLE=1为水平方向旋转,ENABLE=0为垂直方向旋转.CK1、CK2为时钟输入引脚,系统采用单时钟输入,CK1接收来自定时器1的PWM输出TOUT1,CK2接高电平,只需控制定时器1的输出频率就可控制电机的转速.VCC 接+5 V电压,VMA和VMB接+24 V工作电压.OSC接3.3 nF电容,TA8435H片内驱动级的斩波频率为58 800 Hz.
2.4 软件系统设计
S3C2410A片内定时器0和1的结构框图如图4所示,PCLK时钟信号经过1个8位预分频器和1个4位分频器分频后产生定时器输入时钟频率TCLK输送给定时器0和1.TCNTB1为定时器缓冲计数器寄存器,用户设定计数初值,使能定时器1,计数初值被下载到减一计数器中,当减一计数器减到0时,TCNTB1的值自动重载到减一计数器,如此周而复始不停工作.定时器比较缓冲寄存器TCMPB1将用户设定的初始值下载到比较寄存器中,比较寄存器的值和减一计数器的值进行比较,当两者相等时TOUT1输出电平由低变高,因此调整TCNTB1和TCMPB1两者的数值更改占空比.定时器1输入时钟频率、输出频率和占空比计算公式如下所示:
图3 S3C2410A驱动TA8435芯片的原理图
定时器输入时钟频率TCLK=PCLK/(预分频值+1)/分频器分频值;
输出时钟频率=定时器输入时钟频率TCLK/定时器缓冲计数器寄存器TCNTB1;
输出信号占空比=定时器比较缓冲寄存器TCMPB1/定时器缓冲计数器寄存器TCNTB1.
定时器0-1结构框图见图4[6]
对于本系统采用的小型步进电机,输出的工作频率在100 Hz其工作状态最佳,占空比设置为50%,PCLK为50.7 MHz,预分频值Prescaler0/1为39,分频器分频值为16,因此,TCNTB1=792,TCMPB1=396,通过电路板上的按钮可以改变旋转方向,停止步进电机工作.定时器的初始化代码为
void timer_init(void)//定时器初始化函数
步进电机控制流程图如图5所示.
图4 定时器0-1结构框图
图5 步进电机控制流程图
3 结论
使用TA8435芯片驱动步进电机比用软件方式驱动输出的周期精确,由于经过细分处理,将步进电机的旋转角度由原来的9º精细到2.25º,大大提高了控制的精确度,而且这种细分优化方案成本较低,便于实现.经过细分优化使原有的机器人系统控制更准确,动作更精细.
参考文献:
[1] 孟武胜,王益军. 步进电机分布式控制系统的设计[J]. 微型电脑应用,2008,3(24):27-29.
[2] 王平. 专用芯片的步进电机步距角细分控制[J]. 单片机与嵌入式系统应用,2009,5(5):49-52.
[3] 王晓明. 电动机的单片机控制[M]. 2版.北京:北京航空航天出版社,2007.
[4] 刘升. 二相步进电机驱动芯片TA8435H及其应用[J]. 国外电子元器件,2005,3(3):37-40.
[5] 李荃高. 基于单片机的时区时钟设计[J]. 苏州市职业大学学报,2015,26(2):29-31.
[6] 魏光杏,李华. 基于S3C2440的嵌入式视频监控实现[J]. 长春大学学报:自然科学版,2012,22(10):1193-1197.
(责任编辑:李 华)
引文格式: 过怡,刘文芝.基于S3C2410的步进电机控制系统的实现[J].苏州市职业大学学报,2016,27(2):40-43.
中图分类号:TP393.1
文献标志码:A
文章编号:1008-5475(2016)02-0040-04
DOI:10.16219/j.cnki.szxbzk.2016.02.010
收稿日期:2016-01-12;修回日期:2016-02-02
基金项目:苏州市职业大学创新基金资助项目(SVUZ2015CGCX10)
作者简介:过 怡(1977-),女,江苏苏州人,讲师,硕士,主要从事计算机应用技术嵌入式系统研究.
Implementation of the S3C2410-based Stepper Motor’s Control System
GUO Yi,LIU Wen-zhi
(School of Computer Engineering,Suzhou Vocational University,Suzhou 215104,China)
Abstract:This paper describes a system which can effectively reduce the step angle and improve the accuracy of robot’s movement and activities. This system introduces stepper motor subdivision technology and TA8435 chip.Also this system adopts S3C2410 processor chip’s inner PWM timer, which generates signals to control the stepper motor via TA8435 chip’s staircase waveform. Finally this paper analyzes the drive circuit’s structure and software control of the stepper motor. After subdivision and optimization, the original robot system is more accurate and more precise.
Key words:S3C2410;TA8435;PWM;stepper motor