基于单片机的伺服电机控制系统设计

2015-10-18 02:15陈若谜哈尔滨工程大学自动化学院黑龙江哈尔滨150001
网络安全与数据管理 2015年24期
关键词:波特率伺服电机寄存器

白 涛,吴 振,陈若谜(哈尔滨工程大学 自动化学院,黑龙江 哈尔滨 150001)

基于单片机的伺服电机控制系统设计

白 涛,吴 振,陈若谜
(哈尔滨工程大学 自动化学院,黑龙江 哈尔滨 150001)

通过对BE系列伺服电机工作原理的分析,利用STC89C52单片机设计了一种电机控制器。通过单片机I/O口向TLC5618数模转换芯片发送数据,输出电压信号经运放加法电路放大控制转速。运放输出末端放置一双刀双掷继电器,驱动芯片为ULN2003,改变输出电压正负极性可实现转向控制,并通过USB转串口与上位机通信。最后,将驱动器反馈的方波信号频率、转速和转向显示在液晶屏上。该设计可以实现伺服电机的平稳控制和精确调速,能够满足工业现场的需要。

单片机;伺服电机;转向控制;精确调速

0 引言

伺服电机的定位精度相当高,现代位置控制系统已越来越多地采用交流伺服电机作为主要部件[1]。本设计采用的BE系列伺服电机以其体积小、驱动能力强、应用广泛成为了多种场合的通用驱动设备,也是学习伺服电机控制的良好对象。但与其配套的控制器价格较高,并不适合一般小型试验的需求。本文给出了一种低成本的控制方案,使其在52单片机的控制下也能充分发挥其功能。

1 伺服电机控制系统设计方案

本设计以STC89C52RC单片机作为控制器,充分利用其价格低廉、编程方便、技术成熟等优点,并以TLC5618作为模拟信号输出芯片,经 OP07运放搭建的加法电路,使DA芯片的双路输出电压相加,最大值可达到10 V,精度为0.002 4 V。设计出一款转速调节精度高、转向可控、成本较低的伺服电机控制器,可以显示实时采集的转速数和转向,并能够将采集到的方波信号频率转化为十进制数一同显示在液晶屏上。此外,本系统还利用 CH340G芯片连接USB线,通过上位机软件对BE系列伺服电机进行转速转向的控制,实现了上下位机通信、数模转换、电压放大、电机精确调速、数据显示等一系列功能和过程。

2 系统硬件设计

本设计采用STC89C52RC单片机构建了一个最小系统,通过数模转换、运放、转向控制和隔离继电器等模块实现电机正反转智能切换,而且实现了伺服电机的精确调速控制[2]。其控制系统组成如图 1所示。

图1 控制系统框图

通过LCD1602显示模块将转速、转向以及脉冲频率显示在液晶屏上;利用串口通信模块接收上位机发送的数据,并将该数据发送给DA转换输出模块;转换后的模拟电压通过运算放大器将输出电压放大,用来控制电机的转速和转向。

2.1 单片机最小系统电路设计

系统采用STC89C52RC单片机,5 V电源供电[3]。两个外围电路分别为复位电路和晶振电路,晶振频率为11.0592 MHz,电容 30 pF。晶振两端与单片机 XTAL1、XTAL2连接,使其产生一个周期固定的交流电流,单片机可以根据这个电流的周期来确定工作周期。最小系统原理图如图2所示。

图2 单片机最小系统

2.2 液晶显示模块

这里LCD1602只需进行写操作不需要读操作,故直接将RW脚接地,VEE是液晶显示偏压信号,即调节液晶屏幕显示的对比度,将其接到滑动变阻器上,实现液晶显示的对比度调节。RS是数据命令选择端,即在程序中选择给显示屏发送命令或是发送数据[4]。写指令时 RS为低电平,写数据时RS为高电平。余下的DB0~DB7与单片机P0口连接,BLA和BLK是液晶显示屏背光供电端口,分别接5 V电源和地。其具体电路如图3所示。

2.3 串口通信模块

根据方案设计思路,单片机需要接收上位机发送的数据,那么需要一个串口通信模块来实现上下位机之间的通信。STC89C52RC单片机要接收数据需要从RXD和TXD脚接收TTL电平,采用CH340G能将USB口发送的数据转换成TTL电平,送到单片机SBUF寄存器中。单片机程序只需调取SBUF中的数值就可以实现对I/O口的控制。

图3 液晶显示模块原理图

单片机与上位机通信的波特率为9600 b/s,无校验。其具体电路如图4所示。

图4 CH340外接电路以及管脚图

2.4 D/A转换输出模块

由 TLC5618性质和原理可知,首先将 TLC5618的GND端接到系统模拟地,实现最佳的接地连接[5]。同时在VDD与GND之间应接0.1μF的独立旁路电容,滤除电源与地之间的高频干扰。此外,基准电压一定要保证精度,且在基准电压输出端接 0.1μF的瓷片电容,以降低系统噪声对转换精度的影响。分别将 CS接 P2.2、SCLK接P2.1、DIN接 P2.0,两个 DAC模拟输出即可完成对DA转换芯片的控制。

2.5 运放输出模块

运放模块用到OP07芯片,它是一种低噪声,非斩波稳零的双极性运算放大器集成电路。OP07具有非常低的输入失调电压,一般不需要额外的调零措施。OP07同时具有输入偏置电流低和开环增益高的特点,这种低失调、高开环增益的特性使得OP07特别适合于高增益的测量设备和放大传感器的微弱信号等方面。经运放放大输出的电压最大值可达到10 V,精度可达0.002 4 V,从而实现电机转速精准控制[6]。其具体电路如图 5所示。

图5 运放模块外接电路

2.6 转向控制模块

单片机I/O口输出电流无法使继电器工作,设计中采用ULN2003来提高带载能力。ULN2003属于高压大电流达林顿晶体管阵列系列产品,其电流增益和工作电压都很高且温度范围宽,带载能力强,而且输入端只需和单片机I/O口相连接,5 V供电无需外接电路。这里用P2.5口控制继电器的工作与否,P2.5输出一个高电平,ULN2003接收到该高电平就可以驱动继电器工作,改变输出电压极性。其具体电路如图6所示。

图6 转向控制模块外接电路

3 系统软件设计

针对上述硬件各个模块功能编写各模块需要子程序,主程序部分注意使用的P1.0的引脚功能,头文件包含 regx52.h,其对 T2CON寄存器有定义,否则无法完成程序的编译[7]。此外,还需定义变量的类型、名称及相关延时函数;显示模块程序需要对其进行初始化设置,写出命令输入子程序、数据输入子程序、数字字符转换程序;串口通信模块程序需要对其进行初始化设置,采用T2定时器作为波特率发生器,编写一串口中断函数,将SBUF的值赋予各个变量;方波采集程序对T0和 T1进行初始化设置,其中T0计时,T1计数。定义一中断函数重新给T0、T1赋值;D/A转换输出模块程序需要用单片机的I/O口对其写入16 bit的数据,分两次发送,先发送高字节,后发送低字节。最先发送的D12~D15位为可编程位控制字,用以确定数据的传送方式。在片选信号的上升沿把数据送到DAC寄存器开始D/A转换。

3.1 系统主程序

主程序内需声明各个变量名称和类型,直接调用子程序即可。然后定义一个while循环等待中断发生。其主函数如下:

3.2 串口通信子模块

寄存器T2CON的TCLK和RCLK位允许从定时器1或定时器2获得串行口发送和接收的波特率。当TCLK= 0时,定时器1作为串行口发送波特率发生器;当TCLK=1时,定时器2作为串行口发送波特率发生器。RCLK对串行口接收波特率有同样的作用。模式1和模式 3的波特率=振荡器频率/32×[65636-(RCAP2H,RACP2L)],式中(RCAP2H,RCAP2L)是 RCAP2H和RCAP2L中的 16位无符号数。故T2CON寄存器中的数为00110100B,即16进制数0x34。其部分程序如下:

3.3 方波频率采集模块

定时器1负责计数,定时器0负责定时。单片机在使用定时器或计数器功能时,通常需要设置两个与定时器有关的寄存器分别为定时器/计数器工作方式寄存器TMOD和定时器/计数器控制寄存器TCON[8]。设计中T1选择计数方式C/T=1,故该系统的TMOD=0×51,由于需要设定一个50 ms的计时中断,要给TH0、TH1寄存器赋予初值。初值的计算方法是:THX=(65 536-N)/256,TLX=(65 536-N)%256,其中N=t/T,T是机器周期,即12×(1/11 059 200)≈1.09μs。所以 TH0=(65 536-46 081)/ 256,TL0=(65 536-46 081)%256。其部分程序如下所示:

Research on control system of serve motor based on single-chip microcom puter

Bai Tao,Wu Zhen,Chen Ruomi
(Automation Institute,Harbin Engineering University,Harbin 150009,China)

In this paper,a motor controller is designed by using STC89C52 single-chip microcomputer through the analysis of the working principle of the BE series servo motor.Data is transmited to TLC5618 analog-to-digital converter through I/O port of the single-chip microcontroller.And output voltage is amplified by op-amp addition circuit to adding control speed.There is a double pole double throw relay placed at the end of the operational amplifier output,and the drive chip is ULN2003.By changing the positive and negative polarity of the output voltage,the motor controller can realize steering control.It also can communicate to upper conputer through the serial port of the USB.At last,the signal frequency of the square wave,rotate speed and turn of the feedback of the driver are displayed on the LCD screen.This design can realize the servo motor stable control and precise speed control.The motor controller can meet the needs of the industrial scene.

single-chip microcomputer;servo motor;steering control;precise speed control

TP23

A

1674-7720(2015)24-0001-03

白涛,吴振,陈若谜.基于单片机的伺服电机控制系统设计[J].微型机与应用,2015,34(24):1-3,7.

猜你喜欢
波特率伺服电机寄存器
UART 波特率检测电路的FPGA 设计算法与实现
STM32和51单片机寄存器映射原理异同分析
专利名称:一种适应压铸环境的伺服电机
CAN 总线波特率自适应程序设计
Lite寄存器模型的设计与实现
生产线中的伺服电机定位控制
伺服电机控制技术的应用及发展趋向分析
波特率自适应的CAN驱动在嵌入式Linux下的实现①
详解lAP15W4K58S4单片机的串行口通信
浅说伺服电机位置控制下的定位问题