APP下载

基于STC单片机的信号检测与电机驱动模块设计

2017-12-12冉涌

科学与财富 2017年31期
关键词:步进电机

[摘 要]智能电子产品开发过程中,常常需要信号检测和电机驱动电路,为了提高开发效率,降低成本,选用STC单片机作为核心控制器,将该电路设计为通用的模块,具备常用信号检测和直流电机、步进电机驱动能力,介绍了该模块电路的系统构成、硬件电路及软件设计中的注意事项。

[关键词]信号检测;步进电机;AD采样

中图分类号:TP368.1 文献标识码:B

在工业控制、智能电子产品开发中,常常需要信号检测和电机驱动电路,每次开发新的产品都重新设计相应电路,是一件费事耗力的工作。鉴于常用的输入信号有开关量的数字信号、一定范围内的模拟信号;输出部分,多采用电机作为执行机构,其中,又以直流电机和步进电机最为常用[1]。因此,将这类高频度使用的电路模块化,势必大大提高新产品开发效率,降低开发成本。同时兼顾通用性和价格因素,设计一款价格低廉,兼容多种信号检测,可驱动直流电机、步进电机的模块电路,有较大的社会需求和广阔的市场前景。

一、模块结构设计

信号检测与电机驱动模块需要具备信号检测与电机驱动能力,同时,为了满足各类用户的需求,要能提供电压范围较宽的多路电源接口,为方便用户设置,需要有多个按键作为功能调整键。采用更高集成度的MCU简化输入接口电路,可大大减小电路复杂度,减小电路尺寸,节约成本,电路结构如图1所示。串行通信接口,既方便用户下载更新程序,又可用于与系统与其它模块、上位机等通信。

图1 模块结构框图

二、硬件电路设计

综合考虑系统的控制功能和对输入信号的采集能力,兼顾成本,选择STC12C2052AD单片机作为主控芯片。该单片机拥有1K字节的EEPROM,4路PWM/PCA/CCU单元,可作为DA使用,有2个定时器;具备8通道的高速A/D采样能力[2],该AD为电压输入型,8位精度,速度可达100KHz,用于电池电压检测、温度检测、频谱检测等场景。在通信方面,具有SPI通信接口和全双工的串口[3]。

电机驱动部分采用L293DD驱动器,其内部集成双极型H-桥电路,可以同时驱动两路直流电机或者驱动2相、4相步进电机。每个通道都配备了一个使能输入端。L293DD逻辑电路具有独立的供电输入,工作电压范围4.5V-36V,最大电流达1.2A。外部电路连接时,直接将EN1和EN2接高电平,使能有效。通过分别控制IN1-IN4的高低电平状态来驱动电机的运行状态。为方便用户调试,在输出位置外接4个LED灯,作为状态指示。

电源部分,留出多路接口,允许电压范围4.5V-36V,以利于直接驱动电机动作。同时,为了保证核心控制电路有稳定的电源,采用sop封裝的7805芯片做三端稳压电路,提供5V工作电压。

输入接口部分,引出单片机的P3,P1.4-P1.7作为通用输入输出控制口,引出P1.0-P1.3作为4路AD采样通道,并配备电压端子VCC和接地端子GND,方便常用的传感器连接。另外,外部引出单片机的TX,RX引脚,并采用11.0592MHz晶振,方便程序下载和串口通信。设置4个独立按键,方便用户做个性化功能设置和参数调整。

三、模块软件开发

最常用的直流电机驱动,要求有三种工作状态:停止、正转、反转。其控制逻辑比较简单。本文以OUT1,OUT2接入1路直流电机为例。当IN1=0,IN2=0时,OUT1=0;OUT2=0,电机停止运行;当IN1=0,IN2=1时,OUT1=0;OUT2=1,形成电势差,电机正转。同理,逻辑反向后,电机反转。

2相4线式步进电机也是比较常用的一类执行机构,其控制线有A1、A2、B1、B2共四根,A1、A2构成A相,B1、B2构成B相。控制时可以采用4拍或者8拍的工作方式。以4拍为例,其时序逻辑为A相正向导通-'B相正向导通-'A相反向导通-'B相反向导通。在程序控制时,需要通过定时器0定时,大约2ms换相。其电平控制逻辑如表1所示。

表1 四线的电平逻辑

输入的传感检测设备,主要有开关量的数字信号输入和模拟量输入两类。当为开关量时,传感器信号检测类似于按键检测,采用条件判断语句直接解决;当为模拟信号时,则需要连接到AD转换接口P1。软件设计方面,首先,设置P1M0、P1M1寄存器,将对应端口置为开漏模式或高阻模式。然后,配置特殊功能寄存器ADC_CONTR。该寄存器的8位结构如表2所示。

表2控制寄存器结构

其中,CHS2、CHS1、CHS0三位的组合,用于选择当前转化通道;SPEED1、SPEED0两位,用于用户选择转换速度;ADC_POWER位是电源控制位,在启动AD转换前一定要先开启该位,将其置为1,AD转换结束,为了降低功耗,可以选择关闭该位;ADC_START是转换启动控制位,设为"1"时,开始转换,结束后为0;ADC_FlAG是转换结束标记,当完成一次转换后,该位自动置1。需要注意的是,该位必须手动清0。最后,转换的结果以二进制形式存放在8位寄存器ADC_DATA中,直接读出,对应的实际电压值Vin由公式(1)求得。

其中Vcc是STC单片机的实际工作电压。在工作电压有波动的情况下,为了提高精度,可以外接稳定性较高的电源作为参考电压。

四、总结

综合考虑性能和成本因素,选用STC单片机与L293DD驱动器搭配的方案,设计了一套模块化单元电路系统,介绍了该系统硬件电路设计的要点以及软件设计中电机驱动程序和AD转换程序的写法。在智能电子产品开发过程中,直接使用该电路模块,可大大提高产品开发效率。

参考文献

[1] 贺益康,许大中. 电机控制[M]. 浙江: 浙江大学出版社, 2014: 1-3.

[2] 杨峰, 胡彬, 罗青青. STC单片机AD转换及EEPROM使用[J]. 数字技术与应用, 2011(9):169-171.

[3] 姚永平.STC12C5620AD系列单片机器件手册[M].深圳:宏晶科技,2007.

作者简介:

冉涌(1981.06-),男,汉族,重庆人,硕士,讲师,主要研究方向:无线传感器网络、高速信号与实时信息号处理。endprint

猜你喜欢

步进电机
五自由度机械手的PLC控制
一种可自动伸缩的嵌入式LED灯具设计
步进电机智能控制的设计与实现
工矿机车GK1F、GK1C柴油机调速控制
基于单片机的自动化立体车库控制系统设计
基于单片机的步进电机控制系统研究
基于Arduino单片机的解魔方机器人
基于单片机的雷达伺服控制系统
步进电机模糊PID闭环控制系统仿真研究
基于LPC2132的乒乓球步法训练系统设计