基于光电鼠标传感器的带速度精密测量及其控制系统
陈智博 蔡钟山 刘聃 肖威威 林永忠
华侨大学 机电及自动化学院 厦门 362021
摘要:对于普通的带传动装置进行较高精度的速度控制,传统的检测及控制器件未必能
让人满意。光电鼠标芯片因以其高精度、低现场环境要求、价格低廉等因素非常适用于位置
检测场合。鉴于此,结合光电鼠标芯片与 AT89S51 单片机,通过对普通带传动装置的改进,
可使其达到快速、稳定、准确的传动速度。测试表明,这种检测及控制方式是行之有效的。
关键词:PS/2
;低速;PID 控制;单片机接口;光学鼠标
0 引言
带传动是工业生产中使用普遍的传输装置,其常用的速度检测装置是安装在电机旋转
端的光电编码器。但设备在长期使用中,因磨损等不可预计情况,使得电机转速与带传动速
度出现严重的不一致。这种半闭环控制方式在需要较高精度的带传动速度控制上误差很大。
光栅尺等因价格昂贵、对现场环境要求高,往往对于普通工况中的的带传动装置改装并不很
适用。鉴于此,本文提出了使用一般商用的光电鼠标代替传统的检测器件,通过 AT89S51
单片机实现现场的 PID 控制,使带传动速度达到我们满意的要求。
1.检测系统硬件组成
1.1 OM02 光学传感器芯片及鼠标控制器
这款光学 COMS 传感器是一款针对个人计算机所配置的非接触式光电鼠标芯片。他集成
有数字信号处理器(DSP)、双通道正交输出端口等。在芯片底部有一个感光眼,能够不断的
对物体进行拍照,并将前后两次图像送入 DSP 中进行处理,得到移动的方向和距离。DSP 产
生的位移值,转换成双通道正交信号,配合鼠标控制器,将双通道正交信号转结成单片机能
够处理的 PS/2 数据格式。设备安装在一套塑料的光学透镜设备上,并一个配备有一个高强
度的 LED。此外,他可提供高达 400 点/英寸的分辨率以及 16 英寸/秒以内的速度检测。
图 1 为鼠标芯片的安装装配图。因 OM02 芯片为 COMS 型传感器,因此必须配备有与之
相适应的高强度发光二极管,发射角度与底板夹角 30。~45。 范围内。在
安装配合后,底
板距离工作表面的有效距离在 0mm~2mm 内,OM02 芯片可进行正常的数据接收检测。
2
图 1.鼠标芯片传感器装配原理图
1.2 检测控制原理
本系统采用全闭环控制方式,如下图图 2,将鼠标检测到位移增量反馈回单片机,并进
行数字式 PID 控制,运算结果通过 D/A 转换芯片传给变频器,从而控制电机的转速。
图 2.光电鼠标检测控制原理图
1.2.1. 检测控制系统硬件
本实验系统主要由原动机、传动部分、执行部分和控制部分组成。机械传动系统作为机
器的重要组成部分,不仅应能实现预期功能,而且应具有良好性能。为此,本实验采用三相交
流异步电机(Y2-63M1-4 型,0.12KW)、变频器(富士 FRN0.4C1S-4C),30:1 蜗轮蜗杆减
速器、v 型 B相带传输装置、P204 型球轴承及轴承座等作为模拟工业设备的主要的传动及执
行部分。通过单片机调整数模转换器的输出电压 U,可改变变频器的输出频率,从而改变电
机转速。
2. 单片机程序设计
2.1 鼠标通信协议原理
OM02 芯片
光电鼠标
AT89S51
单片机
三相异
步电机
DAC0832
数模转换器
PC 上位机
记录显示
蜗轮蜗杆
减速器
变频器
传输带
RS232 串口协议
PS/2 接口协议
3
鼠标与单片机的数据通信方式采用 PS/2 通信协议。
PS/2 鼠标的物理接口为 6 脚圆形接口,使用中只需 1 引脚 Data、3 引脚 GND、4 引脚
+5VPower 和 5 引脚 Clock 这 4 个引脚即可。
鼠标履行一种双向同步串行通信协议,在时钟信号的作用下串行发送或者接受数据。通
常情况下,单片机在总线上具有总线控制优先权,可在任何时候抑制来自于鼠标的通信。从
鼠标到单片机的数据在时钟的下降沿被读取,相反,单片机到鼠标的数据在时钟的上升沿被
读取。时钟信号总由鼠标内部芯片提供,时钟频率一般在 10~20KHz。
2.1.1 单片机对鼠标的通信
根据协议要求,单片机对鼠标的控制只需把时钟线拉低最少 100us 以上来禁止其通信,
并且单片机拉低数据线使之处于请求发送状态。如图 3 所示,当时钟线升为高电平后被 PS/2
设备重新拉低,即可开始单片机向鼠标的通信。
图 3.单片机对 PS/2 设备通信的时序图
2.1.2 鼠标对单片机的通信
因单片机对总线具有控制权,当鼠标要向单片机发送信息时,必须先检查时钟线是
否为高电平。如图 4 所示,当时钟线出现高电平,数据线出现低电平,表明鼠标请求发送,
单片机可以接受来自鼠标的数据。
4
图 4鼠标对单片机通信的时序图
2.1.3 单片机发送的控制数据
按照鼠标的 PS/2 协议
,实际编程时先对鼠标发送 0xff 使其复位,默认采样频
率为 100 次/秒,缩放比例 1:1,数据
禁止。使用 0xea 命令进入 stream 模式、使用 0xe8,
0x03 命令设置解析度为 8 点/毫米。使用 0xf4 命令使能数据报告。配合 AT89S51 单片机的
定时器功能,将其时间常数设置为 0.1s,每次中断时发送 0xeb 命令读取位移数据信息,每
发出一次,单片机接收到的位移数据包都包含有位移信息和按键动作信息。具体格式为表 1
所示。
编译时也只需提取 X3 的有效数据包即 Y 方向位移增量
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
字节 1 Y 溢出 X 溢出 Y 方向 X 方向 1 中按键 左按键 右按键
字节 2 X 方向位移量信息
字节 3 Y 方向位移量信息
字节 4 Z 方向位移量信息
表 1. 3D 型鼠标接收数据格式
2.2 PID 控制软件算法
对该交流变频调速系统建模,可得其近似的数学模型为:
0.08( ) 1.05 /(1 0.001 )sG s e s s−= +
使用神经网络 PID 自适应控制对系统进行 matlab 的仿真测试,效果颇令人满意。但因
其输入层、隐含层、输出层的多阶矩阵运算使得单片机的运算时间大幅度的增加,造成时间
上的不确定因素增大,同比使用增量型 PID 控制,尽管后者需调整三个控制参数,但同样可
使精度达到我们预期的效果,运算时间则大幅度下降,为此仍可选用增量型 PID 算法作为控
制。算法
增量式数字 PID 的控制算法为:
U(k)=U(k-1)+ pk *(e(k)-e(k-1))+ ik *e(k)+ dk *(e(k)-2e(k-1)+ e(k-2))
其中 e(k)为当前位移增量与上一次位移增量的变化量, 同理 e(k-1)、e(k-2)各为往
前时间间隔的位移变化量。
利用单片机串行中断接收功能,可在 PC 机上实时调节 PID 的 pk 、 ik 、 dk 参数。
5
3.上位机监测设计
通过单片机的串口发送,在 LabVIEW 中编写程序来完成 PC 机控制数据通信设备进行数
据交换,直接通过串口接收外部数据并进行图形显示,并可以将数据存放在 txt 文件当中。
在 Labview 中主要是通过 VISA 控件实现串行口直接数据通信,通过 RS-232 串行接口和
Labview 实现数据的通信。
使用 read string 控件可以用来显示。数据接收并非连续不断的接收,而是通过一
定的延时。为实现不间断的接收单片机发送的串口数据包,须将前面的写和延时都去掉。
因串口接收到的数据是字符型的,通过强制转换将数据转换为单精度整型。创建数组将
数据和数组初始化相结合得到一个完整的数组,通过 Waveform graph 控件以及移位寄
存器即可实现上位机的实时显示与记录。
4 检测控制性能评价
PS/2 接口最大的始终频率是 33kHz。本实验单片机使用 12MHz 的晶振,可轻松完成接口
功能。但受其芯片的特性的影响,尽管 OM02 的鼠标芯片最高可使用的分辨率为 400DPI,但
在使用较高分辨率的情况下,鼠标传输的误码率将有所上升,其位移精度也将受到质疑。为
保证位移量的准确性,采用 200DPI 的分辨率,配合看门狗,精度误差和程序稳定性将大为
好转。
图 5.带运动的时间位移图(横坐标为时间,单位为秒,纵坐标为位移增量点,每一点为 0.125 毫米)
6
测试结果为图 5 所示,带在较低速的运行中尽管存在速度的上下跳动变化,但跳动量较
小。图中设定带速度设定值为 32 点,即 40.00 毫米/秒,灵敏度为 0.125 毫米/秒,实际速
度平均值为 39.987 毫米/秒。
5.结语
使用光电鼠标作为检测带运动的速度传感器,其价格低廉、准确性高而且使用方便,再
配合单片机的数字式 PID 控制以及 labview 软件的图形检测,可以很好的对速度要求较低、
要求精度不是非常高的设备进行改装,使其达到输出速度稳定。又因为光电鼠标技术已趋于
成熟,在一般分辨率的情况下下对检测表面的要求不高,在比较恶劣的工况下仍可保证运行
无障碍。而近些年所推出的激光鼠标,其分辨率可达到 0.01 毫米,效果甚佳。该实验在北
京某半导体企业进行了现场测试,效果理想。
参考文献:
[1]OM02 Optical Mouse sensor Data Sheet[P],2004
[2] 赵玉昆,PS/2 鼠标和单片机的接口[J], 上海应用技术学院学报, 2004 年 3 月,第 4 卷
第 1 期
[3]林邓伟,刑文生,光电鼠标芯片组在无接触检测运动物体中的应用[J],微计算机信
息,2006 年 22 卷 7-2 期
[4]宋健,数字 PID 算法在喷雾机器人导航系统中的应用[J],潍坊学院学报,2003 年 11
月,第 3 卷第 6 期