微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM9平台的电子指南针的设计

基于ARM9平台的电子指南针的设计

时间:10-08 来源:互联网 点击:

摘要:针对指南针精度与显示界面的问题,在ARM9的开发平台上,设计了一款界面美观且能够实时显示方位、温度和时间的电子指南针。该系统采用了灵敏度和精度高的磁力传感器MAG3110检测方位,采用了智能型温度传感器DS18B20检测温度,并选择了Linux Qt作为电子指南针图形界面的开发平台。实验结果表明,指南针方位精度达±2°,温度精度达±0.5℃,能够使用在普通导航领域上。

0 引言

指南针在我国已有悠久的历史,作为一个重要的导航工具,广泛的运用在生活各领域。随着半导体技术的飞速发展,如今的指南针不仅体积小,灵敏度和精确度都已得到很大的提高,而舒适清晰,简单快捷的人机交互界面更是日益追求的目标。本文采用一款小体积、低功耗的数字磁力计MAG3110采集地磁场,它采用标准IIC串行接口,输出数据速率达80 Hz,并且可自我消除误差,并使用数字温度传感器S18B20,它具有线路简单,体积小,测温范围为-55~+125℃,精度为±0.5℃。选择这两款数字芯片,可满足灵敏度和精度的要求,选择Linux Qt作为电子指南针GUI界面的设计可达到舒适清晰,美观精巧的界面效果。

1 指南针图形界面的选择

现行比较流行的GUI有MiniGui,MicroWindows,OpenGUI,Qt/Embedded。MiniGuI是国内开发的图形界面系统,图形设备层次过于抽象,图形功能不够完善。MicroWindows源码开放,但其许多图形引擎算法低下,控件或构件的实现还不是很完备,系统整体不够完善。Open GUI比较适合X86平台,内核采用汇编实现,移植性不好,不支持多进程,目前发展较缓慢。Qt/Embedded也是开源的,其库采用C++封装,完全面向对象。Qt/Embedded开发简洁,界面美观、色彩配比好,具有丰富的API,使用与Qt/Windows和Qt/X11完全一致的API接口,许多基于Qt的程序可以非常方便地移植到嵌入式设备上。本文选择Qt作为指南针GUI界面的开发平台。

2 指南针测量原理

本文设计的是二维电子指南针,其数学模型如图1所示。x轴与指南针向前移动方向重合,y轴与指南针横向方向重合,在不考虑磁倾角的情况下,地球磁场水平面分布,即只有图中h磁北方向,因此z轴感测到的磁场为0。Hx,Hy分别为水平面两个轴感测到的磁场强度分量。

定义指南针向前移动的方向(x轴方向)与磁北方向的夹角为地磁航向角β,其与地理北极的夹角为地理航向角ψ,由图1可知ψ=β±γ,γ为磁偏角,已知磁偏角,求出地磁航向角β即可求得指南针的地理航向角。利用磁传感器检测到的Hx,Hy按公式:

β=arctan(Hx/Hy)

可求得地磁航向角。

3 系统硬件设计

3.1 硬件框架设计

本设计系统的硬件设计框架如图2所示,采用ARM9作为处理器,使用MINI2440作为实验板,外加温度传感器DS18B20和磁力传感器MAG31 10模块电路,可借助ARM9开发平台丰富的外围接口资源进行开发与调试。如其LCD接口作为显示模块,JTAG接口作为调试模块,USB接口作上传或下载程序模块等。

3.2 接口电路

3.2.1 磁力传感器MAG3110接口电路

MAG3110是款数字芯片,采用标准I2C串行接口,其电路如图3所示,SCL和SDA为I2C串行接口的时钟和数据线。MAG3110内部集成了信号处理电路,A/D转换电路,相比其他模拟芯片,其精度更高,误差更小。

3.2.2 温度传感器DS18B20接口电路

DS18B20是单线器件,接口电路很简单,数据输入输出就一根线,其电路如图4所示,DQ为数据输入输出线。

4 系统软件设计

4.1 软件框架

如图5所示为系统的软件框架,在底层驱动添加了温度传感器DS18B20和磁传感器MAG3110的驱动,在应用层,分别打开两个驱动的设备节点采集它们的数据,在Qt环境下将DS18B20和MAG3110的数据处理并显示。

4.2 软件模块的实现

4.2.1 温度传感器模块实现

温度传感器底层采用字符驱动框架实现,其读写操作在系统调用函数read,write中实现。应用程序打开其设备节点,就可以读取底层温度传感器的数据,其实现流程如图6所示。

4.2.2 磁传感器模块实现

磁传感器底层驱动采用I2C驱动框架。其读写操作在系统调用函数read,write中实现,应用层打开其设备节点就可读取数据,其实现流程见图6。

4.3 界面设计

4.3.1 QWT5.0.2库移植

如图7所示为指南针的界面。

Qt开发环境下没有这样的控件,需要移植包含此控件的库(QWT5.0.2)。本设计需要移植到X86和ARM9平台。如图8所示,Qwtwidgets为移植到X86平台上的库,其中包括许多常用的仪表控件,其中QwtCompass控件就是图7所示的控件。

4.3.2 界面实现

信号和槽机制是Qt的核心机制,是一种高级接口,应用于对象之间的通信,是Qt区

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top