基于PNI传感器的电子指南针

2011-05-21 00:41马学东吴傍斌林培立谢镇和王卫星
电子设计工程 2011年12期
关键词:指南针磁阻子程序

马学东,吴傍斌,林培立,谢镇和,王卫星

(华南农业大学 工程学院,广东 广州 510642)

机械式仪器体积庞大,维修困难[1]。随着电子技术的飞速发展以及传感器技术的日趋成熟,各种机械式测量仪器已经逐渐向电子数字仪器转换,其精度要比机械式高若干倍。指南针也不例外,磁阻传感器能准确测出微弱却无处不在的地球磁场,如PNI公司的SEN-R65磁阻传感器,具有体积小、精度高、稳定性好[2],价格低等特点,使得指南针高精度化数字化变得简易可行。由于驱动电路简单,设计师可以把精力集中在更多创意设计上。笔者设计的电子指南针结构简单,功能齐全,可以安装在GPS导航系统以及一些机器上,应用前景广泛。

1 系统硬件设计

1.1 系统组成

本方案采用PNI传感器,以AVR单片机Atmega16为主控芯片,并采用SPI进行数据采集端与Atmega16的通信,整个系统由PNI传感器模块、中心控制模块、1602液晶和LED显示模块、蜂鸣器报警模块、按键模块及其他外设模块组成。系统总体框架如图1所示。

图1 系统总体框架图Fig.1 Overall block diagram of system

1.2 理论分析及数值计算

1.2.1 传感器模块原理

1)地球磁场向量 图2所示为地球某一点的地球磁场向量He的三维图,其中,x轴和y轴与地球表面平行,z轴垂直指向下。指南针的基本任务就是测量磁场北极(图2中的He,即地球磁场的水平分量)与前进方向的夹角(方位角α)[3]。在图2中,α是从磁场的北极顺时针计算的(如,东是90°,西是 270°)

图2 地球磁场向量图Fig.2 Vector diagram of earth magnetic field

2)磁阻传感器SEN-R65 传统的磁场测量采用电感线圈,在地球磁场产生的感应电流非常微弱,不便于A/D采样,增加了测量难度。本文采用的磁阻传感器为SEN-R65,根据电场和磁场原理,当在铁磁合金薄带的长度方向施加一个电流时,如果在垂直于电流的方向再施加磁场,铁磁性材料中就有磁阻的非均质现象出现,从而引起合金带自身的阻值变化。SEN-R65传感器为固态元件[4],体积小,测量精度高,最小分辨率可达0.000 15高斯,非常适合测量地球磁场。注:两个SEN-R65磁阻传感器在实际焊接时要垂直摆放。

3)磁场测量芯片PNI11096 通过磁阻效应可以把磁场的变化转换成对应变化的电流,但所得到的电流比较微弱,很难进行A/D转换,因此要经过信号放大电路进行放大,再通过A/D转换就可以得到对应的数字量,这样才能让单片机识别。PNI公司的PNI11096芯片能够同时对3轴磁场强度(即x,y,z轴)进行测量,且集成了放大和模数转换电路。在整个PNI11096信号处理电路中包含3个主要的部分,如图3所示。

图3 PNI11096信号处理流程图Fig.3 Signal processing flow chart of PNI11096

1.2.2 SPI模块接口电路

PNI11096的SPI总线的时序如图4所示,比通常的SPI总线多了DRDY和RESET。以下为读取数据的步骤:

1)拉低 SSNOT;

2)复位一次11096,即把 RESET拉高5 μs再拉低,每次测量都要复位一次,复位后DRDY自动变为低;

3)DRDY变为低后,指令(读 x轴为 0X41,y轴为 0X42)从 MOSI传入 11096;

4)写入指令后等待DRDY变高,表示11096已经准备好数据,在M ISO读取数据即可。

PNI11096与单片机的接口电路如图5所示。

图4 PNI11096的SPI总线时序图Fig.4 SPI bus timing diagram of PNI11096

图5 PNI11096的接线图Fig.5 Connection wiring diagram of PNI11096

1.2.3 休眠节电工作方式的原理

指南针采用了休眠节电方式。当CPU处于等待时进入休眠节电工作模式,降低电能损耗,一旦有外部的触发信号或等待时间到,CPU从休眠状态中被唤醒,重新进入正常程序执行工作方式。Atmega16处在掉电休眠模式状态时,其本身的耗电量小于 1 μA[5]。

2 系统软件设计

该电子指南针使用编译器winavr,采用C语言进行编程,具有很好的可移植性[6]。整个系统软件包括主程序、普通模式子程序、校准模式子程序、定向模式子程序等。

主程序负责初始化各个功能模块,上电便显示普通模式,通过按键选择可以进入其他模式。此外,程序中配置了与休眠功能相关的寄存器,当达到要求时系统进入休眠模式。

2.1 普通模式子程序

根据传感器PNI11096测得的x、y值,单片机计算出方向角angle,并在液晶显示器上显示方向(如南偏东15°)。当指向南方时,蜂鸣器响。程序流程图如图6所示。

图6 普通模式子程序流程图Fig.6 Flow chart of subroutines in normal mode

2.2 校准子程序

选择校正模式,整个系统在水平面上旋转一周,干涉磁场与地球磁场叠加会有一个最大值和一个最小值,记录下这两个值。通过校正即可消除干涉磁场的影响。流程图如图7所示。

图7 校准子程序流程图Fig.7 Flow chart of calibrating subroutines

2.3 导航子程序

进入导航模式,用户选择好行进的方向角,按确定键保存。在定向过程中,当前角度angle不断与α对比,小于α则右边指示灯闪烁,大于α则左边指示闪烁,等于α则中间指示灯闪烁,如图8所示。

图8 导航子程序流程图Fig.8 Flow chart of navigating subroutines

3 结果与分析

PNI11096读出来的数据经过单片机处理,得到0~360°的方向角,并用机械式指南针作为标准,进行标定试验。测试数据如表1所示,方向角测试误差绝对值的平均值为6.25°,相对误差为1.73%。

表1 标定试验数据Tab.1 Text data of calibration

4 结 论

本文设计的电子指南针利用了PNI公司的磁阻传感器SEN-R65和专用的驱动芯片11096,以ATmega16为主控芯片,方向角测试平均误差为6.25°。系统多级菜单,界面操作简易,并设置了休眠掉电模式,降低了系统功耗。

[1]王丽颖,支炜,孙红霞,等.基于HMCl022磁阻传感器的数字电子罗盘的设计与实现[J].电子测量技术,2009(1):108-111.WANG Li-ying, ZHI Wei, SUN Hong-xia, et al.The design and implementation of the digital electronic compass based ontheHMCl022sensor[J].ElectronicMeasurementTechnology,2009(1):108-111.

[2]张建海,柴小丽,范海明,等.基于SEN-S磁感传感器的电子指南针系统[J].微计算机信息,2009, 25(13):160-162.ZHANG Jian-hai,CHAI Xiao-li, FAN Hai-ming,et al.The electronic compass system based on the SEN-S sensor.[J].Microcomputer Information, 2009, 25(13):160-162.

[3]李怡达,张中平,秦明,等.基于磁阻传感器与微处理器的二维电子罗盘的设计[J].功能材料与器件学报,2008(2):557-560.LI Yi-da, ZHANG Zhong-ping,QIN Ming, et al.The design of two-dimensional electronic compass based on magnetic resistance sensorand microprocessors [J].Journalof Functional Materials and Devices,2008(2):557-560.

[4]朱学斌.基于MAX155和KMZ52的电子指南针的实现[J].鲁东大学学报, 2006(22):300-302.ZHU Xue-bin.The implementation of electronic compass based on the MAX155 and KMZ52 sensors[J].Ludong University Journal,2006(22):300-302.

[5]马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007.

[6]文浩.单片机系统液晶菜单设计[J].工业控制计算机,2007(4):75-77.WEN Hao.Design of LCD display menus in MCU system[J].Industrial Control Computer, 2007(4):75-77.

猜你喜欢
指南针磁阻子程序
失灵的指南针
用针和表就能制成指南针?
永磁磁阻电动机的研究
观展指南针
基于RS-485总线磁阻停车位检测系统
浅谈子程序在数控车编程中的应用
基于改进型开关磁阻电机发电仿真研究
四相开关磁阻电机的四电平DITC调速系统
子程序在数控车加工槽中的应用探索
西门子840D系统JOG模式下PLC调用并执行NC程序