郭彦茹
摘 要: 基于51单片机的转速测量系统通过光电编码器对电机脉冲信号进行采集,实现对脉冲信号的产生、整形,完成对单片机处理后信息的输出和显示,可对电机转速进行远程控制。键盘模块调节设置初始转速上限,当转速大于上限则声光报警。由于采用了单片机和光电传感器,该系统具有硬件电路简单、测量精度高、性能稳定可靠等优点,适用于自动控制、自动检测及各种转速测量与控制领域。
关键词: 电机; 光电编码器; 脉冲测速电路; 脉冲信号采集
中图分类号: TN911.23?34 文献标识码: A 文章编号: 1004?373X(2015)01?0120?02
Abstract: The rotational speed measurement system based on 51 SCM is discussed in this paper. The pulse signal of motor is collected by optoelectronic encoder to realize generation and reshaping of the pulse signal, as well as information output and display after processing by SCM. The speed of electrical machine can be controlled remotely. The initial speed upper limit is reset by keyboard module. The sound and light alarm occurs when the speed is higher than the upper limit. The system has simple hardware circuit, high measuring accuracy, stable and reliable performance due to application of the SCM and photoelectric sensor. It is applicable to automatic control, automatic detection, rotary speed measurement and control.
Keywords: motor; photoelectric encoder; pulse tachometer circuit; pulse signal acquisition
1 总体设计思路
本模块首先通过光电编码器获得脉冲信号,将脉冲整形后[1],输送给单片机进行计数,经过一定时间(200 ms)后计算出电机转动的速度值,通过4位数码管显示出来(此时如果转速超过设定的上限值则启动声光报警),显示范围为0~9 999。同时,单片机将速度信号通过比例计算,得到对应的电压值(1 500 r/min对应5.0 V),输出0.0~5.0 V的电压模拟信号,通过PCB板上两个接头,实现连接外部设备的使用和测量,同时将电压值显示在两位八段数码管上,显示精度为小数点后一位(0.0 V)。
为实现对电机的远程控制,通过键盘设置转速上限(初始值为1 500 r/min)的报警值,当转速超过设置值时声光报警。模块本身可以通过电位器实现对电机的手动调速。系统基本设计如图1所示。
2 各部分设计
2.1 单片机选择
经过综合考虑各功能的实现,选用宏晶公司推出的小型单片机STC12C5202AD?LQFP?32。它是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统的8051,但速度增快了8~12倍。
2.2 单片机功能实现
该模块采用按键电平复位方式实现复位功能;利用E2PROM保证键盘设置的转速上限值得以保存,当断电后再次通电时,上限值为设置后的数值而不是设定的初始值;通过单片机自带的A/D转换口进行输出显示前必要的A/D转换。
设定T1接口为外部计数器,T0用于数码管显示及形成闸门信号,选用工作状态1(即M1M0=01时,定时器所选择的状态)。系统使用最常见的11.059 2 MHz的晶振,设定定时/计数器T0每10 ms中断一次,用以数码管的显示,每200 ms读取一次计数器T1中的数值[2]。
2.3 硬件电路设计
本设计使用一个4位共阳数码管显示电机转速,一个2位共阳数码管显示0.0~5.0 V的电压(其中5.0 V对应1 500 r/min的转速)。
用于设定上限转速的键盘电路由3个按键组成(K1,K2,K3),K1用于进入(此时数码管显示由实际的转速值切换为需要设定的报警上限值)或退出电机转速上限报警值设置界面,K2用于调整数值的大小,K3用于选择需要调整数值的某一位数码管。
A/D转换通过单片机内部引脚实现。STC12C5202AD单片机的ADC是逐次比较型ADC。逐次比较型ADC由一个比较器和D/A转换器构成,通过逐次比较逻辑,从最高位开始,顺序地对每一输入电压与内置D/A转换器输出进行比较,经过多次比较,使转换所得的数字量逐次逼近输入模拟量对应值。逐次比较型ADC转换器具有速度高、功耗低等优点。
D/A转换的实现采用了美国德州仪器公司生产的TLC5615。它具有串行接口的数/模转换器,其输出为电压型,最大输出电压是基准电压值的两倍;带有上电复位功能,即把 DAC 寄存器复位至全零;性能比早期电流型输出的 DAC 要好,只需要通过 3 根串行总线就可以完成 10 位数据的串行输入。
2.4 软件部分
2.4.1 主程序设计
主程序设计流程如图2所示。
在显示部分,显存分别为D_MEM,D_MEM+1,D_MEM+2,其中D_MEM,D_MEM+1用于显示转速,D_MEM+2用于显示电压,BLINK(20H)(位地址00H~07H)为闪烁位控制,2FH(位地址70H~7FH)用作标志位。
P2口控制8段数码管显示,分别由P0.0,P0.1,P0.2,P0.3,P1.1,P1.0控制显示速度的4位数码管和显示电压的两位数码管。
2.4.2 其他子程序
脉冲计算程序、速度转换对应电压程序、键盘设置程序、比较报警上限程序、A/D转换程序、D/A转换程序、E2ROM保存程序、数码显示程序、延时子程序以及其他数值转换和计算子程序[3]。
3 误差分析
根据综合调试实测速度值得出表1,误差波动范围如图3所示。
平均误差分析:
(0%+0%+0.1%+0.4%+0.09%+0.07%)÷6=0.11%
根据数据分析,该模块的设计达到了很好的准确度。
4 结 论
本模块的实用性非常强,在运用电机的场合检测电机的实时转速是十分必要的,采用光电式测速系统正是由于其低惯性、低噪声、高分辨率和高精度的优点,同时本文的设计也实现了对电机转速的简单控制和转速过快时的报警提示。设计中通过软件硬件各种手段尽可能地减小了误差,保证了检测数据的可靠性。
参考文献
[1] 汤鸿来,吴显祥,李璐莹.光电编码器的输出接口和电路系统[J].电子技术,1990(10):34?36.
[2] 段晨东.单片机原理与接口技术[M].北京:清华大学出版社,2008.
[3] 何立民.MCS?51系列单片机应用系统设计[M].北京:北京航空航天大学出版社,1990.
[4] 吴勇,李林涛,陈世纯,等.基于Arduino开发环境的光电编码器检测仪的设计[J].现代电子技术,2014,37(2):124?126.
[5] 冯希,梁雁冰,张涛.基于FPGA的多路增量式光电编码器测角电路设计方法[J].现代电子技术,2008,31(19):175?177.
[6] 张琴琴,杨建宏,刘琳.基于DSP的绝对式光电编码器串行接口设计[J].现代电子技术,2012,35(14):185?188.