基于数字罗盘HMR3000的智能寻向系统的设计
2009-08-14
作者:朱月青,谭立龙,杨志勇
摘 要:以C8051F020单片机为控制核心、数字罗盘HMR3000为磁北传感器,设计了基于数字罗盘HMR3000的智能寻向系统。硬件部分详述了方位信号通信电路、步进电机驱动电路、键盘电路和LCD显示电路等;软件部分重点研究了系统主程序、方位通信子程序、数据处理子程序和步进电机驱动子程序等。分析了系统误差并提出了使用注意事项。经过调试,该系统具有寻向速度可调、精度较高、方向自动保持等优点。
关键词:数字罗盘HMR3000;C8051F单片机;方位
方位测量标定在大地测量、导航寻向领域中有非常重要的作用。工程实践中常采用参考地标法或GPS定向法来实现,但是在某些既无地标而又要求独立定向的场合,2种方法都有不足之处。本设计采用数字罗盘标定出正北方向,利用键盘输入的方位期望值和正北方向的差值做控制信号,通过控制安装有指向设备的步进电机,可以达到独立智能寻向定向的目标。
1 总体方案设计
系统原理如图1所示,该系统以C8051F020 单片机为控制核心,主要由方位信号通信电路、步进电机驱动电路、键盘通信电路和LCD显示电路等部分组成。
寻向定向系统需要指向设备,即带有方位指向功能的设备,如激光束、经纬仪、雷达等。步进电机转轴轴向铅垂向下(利用三脚架和调平设备调节),将指向设备和数字罗盘安装在步进电机转轴上,这样就能利用数字罗盘HMR3000的偏航轴来敏感水平地磁场,同时精确标定出数字罗盘敏感轴向和指向设备轴向的安装夹角θA。根据安装夹角θA和数字罗盘敏感到的方位角计算出此时指向设备轴向的方位角,通过键盘输入最终需要的方位期望值。此时方位角和方位期望值之间存在差信号,利用差信号闭环控制步进电机进动,使指向设备指向期望方位值并定向,完成寻向定向的目的。
2 硬件电路模块介绍
2.1 方位信号通信电路
系统利用数字罗盘作为磁北传感器。数字罗盘也称为电子罗盘,是利用敏感地磁北极的方法来定方位的一种传感器。本设计采用了Honeywell公司三轴数字罗盘HMR3000,它由三轴磁阻传感器和一个充有液体的两轴倾斜传感器组成,可以测量3个角度上的角度变化;能实时准确输出被测物体的俯仰角、滚动角和偏航角;数据刷新频率为20 Hz,航向精度为0.1°,误差为±0.5°,工作状态倾斜角度为±40°;野外作业适应能力强。
数字罗盘HMR3000按照NMEA 格式,通过RS232/485串口提供航向输出(横滚、俯仰、偏航)。在本方案中,利用其偏航轴敏感水平磁场,结合单片机形成具有方位信号通信功能的电路模块。由于HMR3000输出的RS-232信号电平与C8051F020单片机I/O串行端口电平不匹配,故采用电平转换芯片MAX202来完成二者之间的电平转换,具体电路如图2所示。
2.2步进电机驱动电路
从系统精度方面考虑,步进电机自身的步距角要尽可能少地增加系统误差。鉴于HMR3000的精度为0.1°,故选用步距角为0.09°/0.18°的五相混合式电机110BYG5200,适配的电机驱动器为HB505A。采用C8051F020单片机的P6口为控制驱动,各引线的具体功能如下:CP为步进脉冲信号输入端;CW/CCW为方向控制信号输入端;F.H为步距控制控制信号输入端;FRE为脱机控制信号输入端;POW为电源指示输出;TIM为相原点指示输出;COM为信号公共端,驱动电路各引线连接如图3所示。
2.3 LCD显示电路
LCD显示电路中液晶显示驱动芯片采用Samsung公司的KS0713TB,为节省单片机硬件资源,设计中该显示驱动芯片与C8051F020之间采用I2C总线串行通信。KS0713TB工作在串行模式,其中各接口端子的功能为:接口端子DB6、DB7为串行通信端子;MI为微处理器接口选择针脚;RESETB为复位重启;PS为串/并行选择;RW_WR、 E_RD同为读写控制;RS为片上寄存器选择;CS1B、CS2同为片选输入选择。具体连接如图4所示。
2.4 键盘电路
键盘通信主要指按键的识别,实际应用中常用行扫描法、线翻转法以及利用8279键盘接口芯片的中断法。其中中断法可以节省硬件资源,提高处理速度。本设计中考虑到单片机系统稍微复杂,处理器单元资源较为紧张,故采用4×4键盘通过8279接口芯片中断识别的方法。
3 软件设计
寻向定向系统的软件流程主要由端口初始化、方位信号通信程序、数据处理程序、步进电机驱动程序和LCD显示驱动程序等构成。软件部分主程序流程如图5所示。
该程序为循环程序,每一次开机后执行一个方位值的寻向定向。一次开机运行后,在LCD的提示下,利用键盘输入方位期望值并储存在指定的寄存器中维持不变,通过与方位信号通信,程序传输过来的角度值的实时比较来控制步进电机进动,使指向设备在一次开机后始终指向此期望方位。若要寻找新方位,需要重启系统。
3.1 方位通信程序
方位通信程序用来完成HMR3000和C8051F020的通信。HMR3000有6种可供选择的NMEA信息标准,此处采用HPR格式。HPR格式将HMR3000数字罗盘的3个重要的测量结果(俯仰、滚动、偏航)和相应的测量状态结合在一起。单片机将其中的姿态字符输出并转化为可供系统处理的数值变量。由于在本方案中通过敏感水平磁场就可以指向出磁北,故只需要在输出的数据中分离出偏航数据,格式转换后进行后续处理。由于HMR3000的刷新速率为20 Hz,所以在扫描端口时要根据实际需要设定扫描端口的频率,防止因为程序运行和电机进动时间的不匹配或环境磁场的变化而导致的步进电机无法稳定在允许误差范围之内。考虑到在一次使用中,期望方位值在相对较长时间内比较固定,可以将扫描时间设置在秒级。方位信号处理程序流程图如6所示。
3.2 数据处理程序
该程序用来处理方位数据之间的数量关系,是软件部分的重点。其中“方位输出值”指HMR3000的输出,以磁北为起始零值,顺时针增加;“方位值”以正北为起始零值,顺时针增加。参照图7,数据处理原理如下:
磁偏角(磁北和正北的夹角):θ
安装角(数字罗盘偏航轴和安装设备之间的夹角):θA
数字罗盘方位输出值:θC
指向设备的方位值:θZ=θC+θA+θ
期望方位值(键盘输入):θK
动态差角:θD=θK-θZ
期望方位值与指向设备的方位值允许误差限:γ
根据方案设计可以得到:
用θD角度值的正负控制步进电机进动,使得θD不断减小。到精度允许的范围γ即θD<γ时,完成寻向并标定。各角度之间关系如图7所示。
3.3步进电机驱动程序
根据方案设计,步进电机驱动程序具有根据动态差角θD的正负控制步进电机正反向进动的功能,并能根据不同场合对寻向时间的要求进行程序调整。设计用脉冲量序列驱动电机正转或反转,通过对等待时间的调整实现变速的功能,如图8所示。
驱动电机的判向环节是需要重点考虑的部分。由于在程序中代表角度值的变量定义为无符号数,在具体的判断时无法根据角度值的正负来判断电机是正转或反转。但是在实际情况中又确实存在θD<0的情况,故本系统此处采用如下的处理算法:首先将期望方位值θK先加上360°后再与指向设备方位值θZ做差,然后将此差值在程序中对360°取余数,最后利用此余数同180°进行比较。当余数大于180°时正转,小于180°时反转,达到根据不同需要控制电机转向的目的。读者可以选择不同情况下的角度值验证该算法。
4 系统误差分析
在此方案中,寻向精度是一个重要的指标。误差的来源主要有以下几个方面:
(1)HMR3000的误差
由于HMR3000是通过敏感地磁感线来工作的,所以外界环境对它的影响会比较明显。在附近有铁磁性矿体、大型工程车辆等可以产生影响地磁场分布的干扰磁场的物质存在的情况下,HMR3000的精度会受到影响。虽然HMR3000自身有标校程序,在干扰磁场小于指定阈值范围值时可以通过内置程序自动补偿的方法而减小这种影响,但是在磁场较大时这种误差补偿的精度是无法保证的。
HMR3000本身的误差为0.5°,这也是误差的重要来源;
(2)步进电机的步距角
步进电机的步距角是步进电机的固有参数,在一定程度上影响着系统误差。为提高系统精度,本方案采用步距角为0.09°的电机,一定程度上减小了系统误差;
(3)其他误差
磁偏角θ的误差、安装角θA的检定误差和误差限γ也是系统误差的来源。
因此,在使用此系统的过程中为获得较高的测量精度,需要注意以下几方面:(1)视环境使用,避免在干扰磁场的强度超过阈值的环境中使用;(2)根据实际精度需要选用合适的步进电机;(3)在设备定型时,精确测量出安装角θA;(4)选用较小的误差限γ。采用以上措施,可以适当地减小系统误差。
本方案设计的系统操作简单,实时性好,可根据用户需要独立智能寻向定向。系统方案的自身情况决定了系统最终寻向精度。在满足精度要求的情况下可以在航海浮标定位、雷达天线伺服控制、大地测量和自动控制等需要寻向定向的领域发挥一定的作用。
参考文献
[1] Silicon Laboratories Inc. C8051F020 datasheet.2003.
[2] 张培仁,孙力.基于C语言C8051F系列微控制器原理与应用[M].北京:清华大学出版社,2007.
[3] 求是科技.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2008.
[4] Honwell Company. HMR3000 datasheet.2002.
[5] Philips Semiconductors. PCF8575 datasheet.1997.