1 引言
测量物体转速的方法很多,但多数比较复杂。其中非接触式数字转速测量仪[1]在测量过程中无需与被测物直接接触,没有机械磨损,工作灵活,在数字测量中越来越广泛应用。目前,可用于非接触式测量的传感器有很多,主要有光电传感器、磁电传感器、电容式传感器[2]等。本文以光电传感器为转速检测元件,以STC12C5410AD单片机为控制核心,通过无线接收模块,来实现无线转速测量。
2 转速测量基本原理
无接触式转速测量仪的基本检测机构如图1所示,在黑白相间的转盘上,装有两个反射式光电传感器A、B,用来检测转盘产生的脉冲及判断转动方向。当转盘旋转时,光电传感器发射的光在转盘的黑色部分不反射,输出高电平,而在白色部分则发生反射,输出低电平,传感器产生的脉冲信号经信号处理电路处理后,滤除干扰,得到理想的脉冲信号,通过单片机计算就能得到转盘的转速。传感器A主要用来测量转速,传感器B与传感器A产生的脉冲波形比较可以确定转盘的方向。
根据测周法原理,在一个被测脉周期内,计数时间基准脉冲数,就可以测出转动的频率及转速,为了提高测量的精度,减少误差,采用连续测量多个被测脉冲,然后求平均值,如图2所示,假设被测脉冲为k个,时间基准脉冲的频率为f,产生k个被测脉冲时的时间基准脉冲数为m,转盘每转一周产生的脉冲数为p,则转盘的转速计算公式为
只要合理确定f、k、p的值,并可得到较准确的转速。
3 系统总体框架
系统主要由转盘脉冲检测电路、信号处理电路、数据收发模块、液晶显示模块等组成,系统总体结构如图3所示。传感器检测到的信号经脉冲整形电路处理后送往单片机处理,单片机把处理好的数据信号通过无线发送模块发送出去,在接收端,单片机把无线接收模块接收的数据进行存储并送往液晶显示器显示。
4 各模块的硬件电路
4.1 STC12C5410AD单片机简介
STC12C5410AD单片机[3]是深圳宏晶科技生产的单时钟/周期(1T)的单片机,具有高速、低功耗、超强抗干扰的新一代51单片机,指令代码与传统51单片机完全兼容,但速度提高8-12倍,含有SPI同步通信接口和全双工串行通讯口。该单片机还集成了4路可编程计数器阵列PCA/PWM,该模块含有一个特殊的16位定时器,有4个16位的捕获/比较模块与之相连,可工作在上升/下降沿捕获、软件定时器、高速输出或可调制脉宽等模式,单片机最小系统电路如图4所示。
4.2 传感器电路
转盘的脉冲检测电路由两个反射式光电传感器ST178组成,该传感器[4]采用高发射功率红外光电二极管和高灵敏度光电晶体管组成,采用非接触方式,检测距离可在1-10mm范围内调整。电路如图5所示。从传感器采集到的脉冲信号杂波及干扰信号较多,经过电压比较器LM339进行整形处理,从而得到稳定的脉冲信号。再送往单片机的P2.6和P2.7口,对输入的信号进行运算处理。调节R7、R8、R9、R10可调节传感器的灵敏度,使传感器工作在最佳状态。
4.3 无线数据收发模块
无线数据收发模块采用DF数据发射模块和DF超再生接收模块作为无线数据传输模块,DF数据发送接收模块的工作频率为315MHz,采用调幅通讯方式,传输距离可能达到几十米。该模块本身不带解码集成电路,可以和各种解码电路或者单片机配合,设计电路灵活方便。在本设计中,直接将DF数据发射模块的数据输入端与单片机的串口发送端TXD(P3.1)相连,DF超再生接收模块的数据输出端与单片机串口接收端RXD(P3.0)相连[5],单片机直接控制数据的发送和接收。
4.4 12864中文液晶显示模块
12864液晶显示模块是由128×64点阵组成,可显示各种字符及图形,可与单片机直接连接使用,该液晶显示器有20个管脚,采用8位并行数据接口,具有8位标准数据总线、6条控制线及电源线。该模块主要用于显示转速、转动方向和实时显示转速的波形。
为了减少对单片机I/O口的占用,使用单片机的SPI接口通过串入并出移位寄存器74LS164对液晶模块进行数据写入,电路原理图如图6所示。单片机P1.7口是SPI的串行时钟信号与74LS164的CLK相连,P1.5是单片机的串行数据输出口与74LS164的AB相连,电位器R1用于调节液晶屏幕的对比度。
5 软件设计
5.1 转速测量模块
利用单片机PCA模块来检测脉冲信号,使PCA工作在上升沿捕获状态,连续两次捕获得到被测脉冲的上升沿,则两个脉冲之间的PCA计数值乘以一个时间基准脉冲的时间,就可算出被测脉冲的周期,若要得到连续的k(K一般取5~10)个被测脉冲,则可连续k+1次对被测脉冲的上升沿进行捕获,在捕获第1个被测脉冲上升沿时开始计数时间基准脉冲个数m根据转速公式可计算出转速n。
5.2 发送模块
发送端主程序流程图如图7所示,首先对串口、PCA捕获等进行初始化。在完成初始化工作后,进入循环等待状态,当发送标志位为“1”时,调用数据发送子程序发送数据并清零发送标志位。发送标志位由PCA溢出中断定时置“1”。
数据的发送采用单片机的定时器中断方式,每隔一段时间定时将原先储存在单片机内的转速及方向数据通过单片机串口传送至无线发送模块。
PCA计数器的计数脉冲初始化为内部时钟的1/12,使用的晶振为12MHz,所以计数器的计时频率为1MHz,每计数一次耗时10-6秒,计数器溢出一次耗时65536×10-6秒,即65.536毫秒。溢出15次耗时约为1秒,此时,发送标志位置“1”。发送端PCA中断流程图如图8所示。
单片机通过无线收发模块传送数据,为了保证数据传输的准确性,必须设定数据传输协议。本设计只要求数据的单向传输,只要定义较为简单的通讯协议,并可实现通讯,其通信数据帧格式如表1所示。
其中,0xbb为数据包的起始码,当主机接收到该起始码后将其后的direct(转动方向)、 speed_high(转速的高8位), speed_low(转速的低8位)储存在RAM里。因为无线收发模块收发的第一个字节通常会错误,所以在起始码前加上一个字节0xaa后发送,在接收时将第一个字节丢弃,判断第二个字节是否为起始码。
数据包发送子程序如下:
void send_pack()
{
uchar dir;
uint spd;
dir=direct;
spd=speed;
send(0xaa);
send(0xbb);
send(dir);
send(spd/256);
send(spd%256);
}
5.3 接收模块
主程序负责初始化工作和数据的接收并显示。初始化包括串口、SPI口和液晶模块。初始化完成后进入主循环,主循环内通过查询方式接收数据并控制液晶模块显示转速,方向和转速波形。程序流程如图9。
6 结束语
系统采用单片机、光电传感器、无线模块等实现无接触无线转速测量,经过实验测试,在接收端能实时显示转盘的运行情况,系统结构简单、适用,具有良好的稳定性,如果对无线收发模块进行进一步改进,可实现多点远距离转速测量,可应用于环境恶劣或较危险场合的转速测量及控制。
参考文献:
[1] 叶菁,钱大鼎.多功能转速测量仪的研制[J].自动化仪表,2008(12):41-43.
[2] 肖亚彬,张海燕等.现代印刷滚筒转速测试仪[J].仪器仪表用户,2005(3):25-26.
[3] 陈桂友,柴远斌.单片机应用技术[M].北京:机械工业出版社,2008.
[4] 何勇,王生泽.光电传感器及其应用[M].北京:化学工业出版社,2004.
[5] 李文仲.C8051F系列单片机与短距离无线数据通信[M].北京:北京航空航天大学出版社,2007.
作者简介:赖义汉(1968-),男,副教授,主要研究方向:单片机及自动控制技术。