基于FPGA的数字磁罗盘开发
- 格式:pdf
- 大小:197.94 KB
- 文档页数:3
96 传感器与微系统(Transducer and Microsystem Technologies) 2012年第3l卷第9期
基于FPGA的数字磁罗盘开发
吴宏硕,宗群
(天津大学电气与自动化工程学院。天津300072)
摘要:针对电子罗盘的定位导航应用,开发了一种基于现场可编程门阵列(FPGA)作为微控制器的数字
磁罗盘,具有成本低、速度快、功耗小的优点。FPGA负责完成对数字磁阻传感器和数字加速度计的数据
采集、方位角计算、LED显示以及串口输出等处理。对罗盘的误差来源进行了分析,重点对其中的硬干扰
误差进行了补偿修正。为了验证设计效果,对数字磁罗盘实物进行了测试,测试结果表明:磁罗盘在进行
误差补偿后,精度范围能够达到l 2。左右,且长期运行时稳定,可适用于普通导航领域。
关键词:磁罗盘;现场可编程门阵列;导航
中图分类号:V249;TP212 文献标识码:A 文章编号:1000-9787(2012)09-0096-03
Development of digital magnetic compass based on FPGA a
WU Hong—shuo.ZONG Qun
<School of Electrical and Automation Engineering,Tianjin University,Tianjin 300072,China)
Abstract:For the positioning and navigation application of electronic compass,a di tal magnetic compass based
on FPGA micro controller is developed,which has the advantages of low cost,high speed,low power consumption.
FPGA is responsible for the processing work,data acquisition,azimuth calculation,LED display and serial output
of the digital magnetoresistive sensor and digital accelerometer.After analyzing the compass error sources,
compensation is emphasized on the hard interference error.In order to verify the design effect,the magnetic digital
compass material is tested,the test results show that the magnetic compass precision is in the range of 1。一2。after
error compensation,which can work stablely for a long time and Can be used for general navigation area.
Key words:magnetic compass;FPGA;navigation
0引 言
随着科学技术的发展和社会的需要,电子罗盘的应用
越来越广泛。电子罗盘是一种利用地磁场信息实现定位方
向功能的装置。目前,已实现的电子罗盘大都是采用单片
机和数字信号处理器(DSP)作为处理器 ,2 J。其中,单片机
的时钟频率较低,难以适应系统对速度和实时性的要求,而
DSP虽然可以实现较高速的数据采集和处理,但其速度提
高的同时也提高了系统的成本。现场可编程门阵列(FP—
GA)片内具有丰富的可编程资源,而且指令是并行的,具有
速度快、成本低的优点。
因此,为了弥补现有技术的一些缺陷,本文开发了一种
基于FPGA作为微处理器的磁罗盘测量系统,在保证系统
响应速度的同时,分析了磁罗盘误差来源,并进行了误差补
偿,实验结果表明:该方法能够有效地改善磁罗盘的测量精
度。 1系统硬件设计
1.1 系统构成
如图1所示,数字磁罗盘主要由传感器模块、电源模
块、显示输出模块和微处理器构成。
图1系统结构框图
Fig 1 Structure block diagram of system 传感器模块输出三轴磁场信息和三轴加速度信息;电
源模块用于提供整个系统的供电;显示输出模块能够实时
收稿日期:2012-03—16 基金项目:国家自然科学基金资助项目(91016018);教育部科学技术研究重大项目(311012);天津市应用基础及前沿技术研究计划资助项 目(11JCZDJC251OO)
第9期 吴宏硕,等:基于FPGA的数字磁罗盘开发 97
显示当前的方位角信息以及完成对数据的串口输出;微处
理器FPGA完成对传感器数据的采集处理,并输出显示。
1.2传感器模块
传感器模块由三轴磁阻传感器和三轴加速度计构成。
电路设计如图2所示。
图2传感器模块电路图
Fig 2 Circuit diagram of the sensor module HMC5883为带有I C总线接口的三轴数字磁阻传感
器,内部具有l2位A/D转换器,并且内置偏置和驱动器置
位/复位电路。采用4mm×4mm×1.3 mm的LCC封装,体
积小、质量轻、价格低、电路设计简单。R3,R4为I。C总线
上拉电阻器,DRDY为数据准备好中断,接控制器FPGA的
107号管脚。电容C3,c5加上传感器片内的ASIC电路中
的H电桥驱动电路可以产生电流脉冲,使片上的置位/复位
电流带产生磁场给传感器去磁和极性翻转,能够把磁阻传
感器恢复到测量磁场的高灵敏度状态。
ADXL345为三轴数字加速度计,内置A/D转换器,可
以对高达+16 g 的加速度信号进行高分辨率(13位)测量,
并且兼容SPI和I C总线接口。芯片采用3 mm×5 mm×
l mm的LGA封装,体积小、成本低、分辨率高、测量范围宽。
1.3微处理器
采用FPGA作为微处理器,芯片选用Ahera公司cy—
clone系列的EP1C3T144C8,该芯片具有2910个逻辑单元,
完全满足本文开发方案的编程需要。
1.4显示输出模块
该模块包括LED四段数码管显示和串口输出。采用
数码管实时显示当前的方位角信息,显示范围为0。 ̄360。,
最低有效位为小数点后一位。串口输出部分将采集得到的
传感器数据通过串口传到PC机上,便于磁罗盘的测试和校
正工作。
2系统软件设计
2.1 数字罗盘测量原理
考虑到罗盘工作时并不是总与地平面保持水平状态,
因此,要测量方位角必须先计算出姿态角 J。姿态角的计
算公式如下 :一 i (生), g
4,=arcsin(gsinAy ), (1)
(2)
式中0为俯仰角, 为横滚角,4 ,4 为加速度计 轴和Y
轴的输出。由上面的式子可以计算得到方位角信息
H=arctan(( COS 一 sin )/
(HxCOS 0一Hysin 0sin +Hzsin 0cos )), (3)
式中日为方位角, , , 分别为磁阻传感器三轴输出
的磁场大小。
在实际应用中,外界环境的磁介质干扰会使磁罗盘的
精度降低。磁干扰主要分为两大类 J:硬干扰和软干扰。
在本设计中只考虑硬干扰的影响,所谓硬干扰是指传感器
附近的固定磁场对磁阻传感器的干扰,使传感器的输出发
生偏移的影响是固定的。假设硬干扰对磁阻传感器三轴的
输出造成的偏移量分别为 稚 日 够 则方位角的
计算式(3)可以写成
=aretan(( COS 一 sin )/
( cos 0一 sin 0sin咖+ sin 0cos(b)), (4)
式中 为误差补偿后的方位角,其中
Hx'=H +H % , 5
H:=日 十丑 触, (6)
H 一H +H L, (7
式中 , , 为偏移量补偿后的三轴磁场信息。
2.2数据采集的实现
系统数据采集的流程如图3所示,在FPGA内部采用
状态机的方法实现了I C总线接口的设计,把磁阻传感器
和加速度计同时挂载在一个I C总线上,根据器件地址的
不同分别读取数据。FIFO是一个先进先出堆栈,作为数据
缓冲器,为了防止传送过程中数据的丢失和重复读取,将读
取到的数据存人FIFO中。在测试过程中发现有时读取到
的数据会有比较大的波动,为了提高测量精度,在FIFO缓
存之前,采用数字平均滤波的方法对采集到的数据进行了
处理。
图3数据采集流程图
Fig 3 Flow chart of data acquisition
2.3三角函数计算的实现
由2.1可知,求解方位角的计算过程存在着三角函数 一睦一. 一4
一一 ;:
丽 98 传感器与微系统 第31卷
运算,而FPGA内部并没有集成的三角函数运算指令,因此
需要编程实现。在这里,采用CORDIC算法 实现正弦、余
弦以及反正切运算。
2.4程序主流程
整个程序是基于Quartus II 11.0软件开发的,采用
Verilog语言编程,主程序采用原理图设计方法,各子程序采
用模块化设计,便于调试和后期的移植。软件功能主要包
括系统初始化、I C总线接口设计、FIFO缓存、数字平均滤
波、CORDIC算法、方位角计算、误差校正以及显示输出等。
程序主流程图如图4所示。
在本文中,将磁罗盘的工作模式分为校准工作和正常
工作2种模式。当选择校准模式时,只需要进行磁场信息
的采集,并对三轴磁场数据进行数字滤波,然后由微处理器
FPGA计算磁阻传感器的偏置量,并保存到寄存器中;当选
择正常工作模式时,需要依次采集三轴磁场信息和三轴加
速度计数据,再对采集后的数据滤波处理,最后由FPGA进
行方位解算。
图4程序主流程图
Fig 4 Main flow chart of program
3实验结果
为了验证开发系统的有效性,按照设计思路制作了实
物样机,并进行了测试。实验时,每隔20。采集作一次记录,
共18次。为了准确的记录18个方位角数据采集点,采用
量角器画了一张具有角度刻度的圆图,并把该图放在了水
平试验台上;然后把传感器水平放置于圆图上,z轴向上,
周围尽量避开带有磁场干扰的环境。按照图纸旋转传感
器,每隔20。观察LED显示的方位角数值并作记录。硬磁
干扰补偿前后方位角的实测数据见表1。为了更加直观的
显示磁罗盘的误差补偿效果,将表1中的数据用绘图的形
式展现出来,如图5所示。可以看出:磁罗盘在经过硬干扰
误差修正后,方位角的误差基本上在±1。一2。以内,相比补
尝前测量精度有了较大的提高。 表1实验测试结果
Tab 1 Result of experimental test
基准值补偿前 补偿后 基准值 补偿前补偿后
(。) (。) (。) (。) (。) (。)
O 2.7 1 5 180 180.6 180.7
2O 23 4 21.8 200 194.2 199 0
40 44.1 41.4 220 216.6 218.7