毕业设计(论文)电子指南针设计与实现.doc

上传人:土8路 文档编号:10377575 上传时间:2021-05-13 格式:DOC 页数:36 大小:2.73MB
返回 下载 相关 举报
毕业设计(论文)电子指南针设计与实现.doc_第1页
第1页 / 共36页
毕业设计(论文)电子指南针设计与实现.doc_第2页
第2页 / 共36页
毕业设计(论文)电子指南针设计与实现.doc_第3页
第3页 / 共36页
毕业设计(论文)电子指南针设计与实现.doc_第4页
第4页 / 共36页
毕业设计(论文)电子指南针设计与实现.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《毕业设计(论文)电子指南针设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)电子指南针设计与实现.doc(36页珍藏版)》请在三一文库上搜索。

1、四川理工学院毕业设计(论文) 电子指南针设计与实现学 生:学 号: 05021037136专 业: 通信工程班 级: 2005. 1指导教师: 四川理工学院电信系二OO九年六月摘 要早期的指南针采用了磁化指针和方位盘的组合方式,整个指南针从精度、指示灵敏度、使用寿命上都有一定不足。本系统采用专用的磁场传感器结合高速微控制器(MCU)的电子指南针能有效解决这些问题。系统采用了磁阻(GMR)传感器采集某一方向磁场强度后通过MCU控制器对其进行处理并显示上传,通过对电子指南针硬件电路和软件程序的分析,阐述了电子指南针基本的工作原理及实现。能够在LCD上根据当前位置显示方位。两段重复的去掉,合成一段关

2、键词:电子指南针;GMR;MCU;LCDABSTRACTSince the early use of a magnetic compass and direction-pointer of the composition, the entire compass from scratch, on the instructions of a certain sensitivity of the defect. Using a dedicated high-speed magnetic sensors with microcontroller (MCU) electronic compass can

3、 effectively solve these problems. The system is designed by the reluctance (GMR) sensors collecting a certain direction through the magnetic field strength after the MCU Controller its judgement will be dealt with the results, through the LCD screen display and can be sent to the MCUs top serial Ma

4、chine. in the LCD display on the current position of the keyboard and through selective compass upload the data processing. Key words: electronic compass; GMR; MCU; LCD摘要IABSTRACT.II第1章 引言.21.1 课题背景.21.2 国内外研究现状.21.3 本课题研究的意义及其特点.2第2章 系统工作原理分析.32.1 系统的工作原理.32.2磁场信号采集和处理.32.2.1 磁阻传感器.32.2.2 磁场测量ASIC.

5、42.3系统电路图 52.4系统原理框图 6第3章 系统硬件.73.1系统控制器73.1.1 控制器内部结构.73.1.2 控制器存储结构.73.1.3 控制器具体电路.83.2 系统扩展电路.93.2.1通信电路93.2.2 指南针模块接口电路.103.2.3 实时时钟电路.113.2.4 液晶显示电路.123.2.5系统输入电路.13第4章 系统软件.154.1 主监控程序.154.2 实时时钟驱动.164.3 人机界面驱动.174.3.1 液晶模块驱动.174.3.2 键盘驱动.184.4 指南针模块驱动18第5章 结论.21第6章 致谢.21第7章 参考文献22附 录I .23II .

6、26第1章 引 言1.1 课题背景随着指南在生活生产中的广泛应用,如今已由传统的指南针发展到便携式的指南针。但其基本构造是没有改变的,都是属于机械的指针式。近年来国内外电子技术的飞速发展,特别是在磁传感器和专用集成电路(ASIC)的发展给各种电子设备的微形化提供了便利的条件。由于地磁场非常的微弱,测量地磁场的强度一般不采用传统的电感线圈,近年来由于巨磁阻(GMR)的发现使得测量地磁场强度变得非常的方便。正是由于ASIC芯片的发展和巨磁阻效应的发现使得使用电子设备对地磁场的测量成为可能。这就是当前应用较为广泛的电子式指南针5。1.2 国内外研究现状当前国内大部分指南针普遍采用都是传统式便携式的设

7、计。但其基本构造是没有改变的,都是属于机械的指针式,其指示的机械结构基本上没有改变,都是利用某种支撑使得磁针能够受到地磁场的影响而自由的旋转。由于机械的先天因素导致了指针式指南针在灵敏度、精度以及使用寿命上都有一定的限制。而国外设计的电子指南针,虽然技术先进,避开了传统指南针的缺点,但是其生产成本高,价格昂贵,不便于大批量生产。基于现如今电子技术的飞速发展,采用电子技术使指南针的基本实现机理有了质的改变,采用了磁场传感器和专用处理器对磁场进行测量和处理后指示方向。这种电子式指南针具有价格低、方便携带、灵敏度、精确度高、功耗低等优点。1.3 本课题研究的意义及其特点本课题针对电子指南针的各个功能

8、部件对电子指南针的关键部分做了详细的研究。电子指南针系统是一个典型的单片机系统,了解其工作原理及其信号处理流程有利于研究更加复杂的嵌入式系统,特别是系统中来自国外的磁传感器及其信号的采集芯片更是有利于研究磁场传感器的实现机理,以便将其更加广泛的应用。由于地磁场非常的微弱,测量地磁场的强度一般不采用传统的电感线圈,近年来由于巨磁阻(GMR)的发现使得测量地磁场强度变得非常的方便。正是由于ASIC芯片的发展和巨磁阻效应的发现使得使用电子设备对地磁场的测量成为可能。本次设计任务的电子式指南针就是基于这两种技术的发展,与传统的磁针式指南针相比较,电子式指南针具有方便携带,灵敏度、精度高和寿命长等特点。

9、第2章 系统工作原理分析2.1 系统的工作原理电子指南针系统是一个典型的单片机系统。整个系统中前端的磁阻传感器+ASIC负责测量地磁场的大小并将磁场的变化转化为微弱的电流的变化,专用的磁场测量芯片负责把磁阻传感器变化的电流(模拟量)转换成微控制器可以识别的数字量,然后通过芯片内部的SPI(同步外设接口)总线上传给微控制器MCU。微控制器将表征当前磁场大小的数字量按照方位进行归一化等处理后通过直观的LCD进行方位显示,同时可以通过键盘控制微控制器进行相应的操作,如将转换后的数据通过串口的形式发送到上位机。整个系统中还包含了实时时钟等一些辅助电路,使整个系统功能得到进一步的扩展。2.2磁场信号采集

10、和处理2.2.1 磁阻传感器整个磁阻传感器是系统中最前端的信号测量器件,传统的磁场测量都是采用了电感线圈的形式,在所设计的系统中,由于需要测量的是非常微弱的地磁场,地球表面赤道上的磁场强度在0.290.40高斯之间,两极处的强度略大,地磁北极约0.61高斯,南极约0.68高斯。传统的普通电感线圈的形式在如此微弱的磁场环境下感应产生的电流是非常微弱的,不便于A/D采样,增加了测量的难度。基于普通电感线圈测量的不足,所设计的系统采用了磁阻传感器来测量地址磁场的强度。分析原理不选器件!磁阻传感器是根据电场和磁场的原理,当在铁磁合金薄带的长度方向施加一个电流时,如果在垂直于电流的方向再施加磁场,铁磁性

11、材料中就有磁阻的非均质现象出现,从而引起合金带自身的阻值变化。如图2.2.1所示。图 2.2.1 磁阻传感器原理及其外形由图中我们可以看出当磁场变化时铁磁合金的电阻会跟着变化,如果此时的电流不变,那么铁磁合金两端的电压将发生变化,这样使用ADC就可以很方便的测量出当前对应的磁场大小。该传感器体积非常小,测量精度高,最小分辨率可达0.00015高斯,测量地磁场已经足够。2.2.2 磁场测量ASIC通过磁阻效应可以把磁场的变化转换成对应变化的电流,通过A/D转换就可以得到对应的数字量。ADC这部分主要有专用的磁场测量芯片来完成。基于能耗、价格和精度的综合考虑后,本次设计中使用了著名PNI公司的PN

12、I11096磁场测量ASIC,该芯片相对于其他芯片,具有能耗低,价格适中,技术成熟等优势。该芯片能够同时对3轴磁场强度(既X,Y,Z轴)进行测量。这样可以使用Z轴来进行倾角校正,提高测量精度。在整个PNI11096信号处理电路中包含了3个主要的部分: 你这部分在分析原理啊,选什么器件! 前端信号处理:由于地磁场非常的微弱,使用SEN-R65传感器转换后其信号也是非常的微弱。那么需要在信号采集前端加入信号放大和滤波整形电路,这样使得A/D能够准确测量当前磁场大小,如2.2.2所示。图 2.2.2 磁阻传感器的驱动 A/D转换电路:这部分主要完成对SEN-R65磁阻传感器输出的模拟信号进行A/D转

13、换。 数据接口电路:这部分组要完成对A/D转换后得到的数据进行格式封装,并在上位MCU的控制下进行数据传输。图 2.2.3 前端信号采集该部分主要完成对地磁场的测量、A/D转换以及对数据的封包。整个前端的信号处理流程如图2.2.3所示。2.3系统电路图 先有框图再得电路图!该芯片内部集成了3轴传感器驱动电路,可以测量X,Y,Z三轴的磁场强度,Z轴的磁场强度可以用来校正水平面,使得X,Y轴的测量更为的精确。电子指南针模组由PNI公司高可靠性的磁性传感器及驱动芯片组成,集成度非常高,实现了高可靠性、高精度、强抗磁场干扰的数码电子指南针功能。电子指南针模组有三个磁性传感器SEN-S65 和一个驱动芯

14、片PNI-11096构成。磁性传感器SEN-S65 里面包含一个LR振荡电路,当磁性传感器SEN-S65 与地球磁感线平行方向夹角发生变化时,LR振荡电路的磁感应系数也会发生变化。驱动芯片PNI-11096通过磁性传感器SEN-S65 磁感应系数的变化可以计算出磁性传感器与地球磁感线之间的夹角,驱动芯片PNI-11096 最多可以连接三个磁性传感器SEN-S65,这三个磁性传感器SEN-S65 方向互为垂直,这样就可以测量在三维方向上与地球磁感线的夹角,从而得到当前的三维方向。整个PNI11096和传感器的连接电路如图2.3.1所示。图2.3.1 PNI11069传感器连接图PNI11096

15、驱动芯片 与STC89C58+TQFP 单片机 为什么要选这器件芯片?说明原因及其性能,与同类产品比较!经由同步串行接口相连,同步串行接口由六个信号线组成:CLK,MOSI, MISO, SSNOT, PORT和 DRDY。STC89C58+TQFP 单片机输送同步脉冲,以使得PNI11096STC89C58+TQFP在 MOSI 和 MISO 线上传送数据时保持同步。MISO与STC89C58+TQFP单片机相连,PNI11096 经由此线向STC89C58+TQFP单片机传送数据。MOSI与STC89C58+TQFP单片机相连,PNI11096 经由此线从STC89C58+TQFP单片机接

16、收数据。SSNOT 为 PNI11096 当作从器件模式的选通信号输入端,它与STC89C58+TQFP单片机相连,传送数据之前该管教必须被设置为低电平,并且在整个数据传送过程中维持为低电平。DRDY 为 PNI11096状态标志端:当 PNI11096被复位后 DRDY为低;当 PNI11096 完成测量并且要传送到STC89C58+TQFP单片机的数据准备好时 DRDY 为高。PNI11096 与STC89C58+TQFP之间遵循摩托罗拉 SPI 协议进行通讯。整个指南针模块的电路如图2.3.2所示。2.4 系统原理框图图 2.4 系统框图电子指南针的系统主要由前端磁阻传感器、磁场测量专用

17、转换芯片、单片控制器、辅助扩展电路、人机界面以及系统电源几个部分组成,系统结构如图2.4所示。第3章 系统硬件3.1系统控制器3.1.1 控制器内部结构本次设计中采用了高速51内核MCU,具体型号为DS89C450,高速8051架构,每个机器周期一个时钟,最高频率33MHz,单周期指令30ns,双数据指针,支持四种页面存储器访问模式。片内64KB闪存,在应用编程,可通过串口实现在系统编程,MOVX可访问的1KB SRAM。与8051系列端口兼容,四路双向,8位I/O端口,三个16位定时器,256字节暂存RAM。支持电源管理模式,可编程的时钟分频器,自动的硬件和软件退出低功耗。外设特性:两路全双

18、工串口、可编程看门狗定时器、13个中断源、五级中断优先级、电源失效复位、电源失效早期预警中断和可降低EMI。3.1.2 控制器存储结构传统的51系列芯片内部没有或仅有非常小的程序存储器,这就需要通过外部总线进行存储器的扩展,通常的外部存储器的扩展方法有线选法和译码法两种。两种方法都需要进行较大量的数据线和地址线的扩展,这样使得系统电路复杂且使系统的性能下降。图 3.1.2 系统存储分配DS89C450内部含有较大的程序和数据存储器,其片内除了256字节RAM区,还提供片内1KB的SRAM和64KB的程序存储器,SRAM存储器可以用来保存系统中的常量,加速系统软件的执行效率,64KB的程序存可以

19、满足一般工程对程序存储器的需求,这样就有足够大的存储区域来存放代码和数据而不需要另外的扩展外部存储器,简化了系统电路提高了系统的性能。基于DS89C450微控制器内建的存储器结构如图3.1.2所示。3.1.3 控制器具体电路整个系统的控制部分主要完成对指南针模块数据的读取和处理并将数据的处理结果通过控制人机界面显示出来,同时监控键盘的输入以便完成系统功能设定等操作。整个系统中各个模块对微控制器的端口占用比较少,指南针模块的接口采用了SPI总线的形式。LCM是系统中比较繁忙的器件之一,其接口采用了并口模式可以提高数据的传输速率,保证了液晶显示屏的及时刷新。DS89C450微控制器内部自带2个通用

20、串行口直接引出即可使用,由于系统需要和上位机(本系统中为PC机)进行数据通信,接口电平需要转换使其满足RS-232标准。图 3.1.3 系统控制电路控制部分电路如图 3.1.3所示,其中包含了微控制器、LCD接口电路、端口上拉电阻、系统时钟电路和指南针模块接口电路。整个微控制系统中采用了无源晶振的形式发生MCU所需要的时钟信号。具体电路如图3.1.4所示。时钟电路中的两个电容用作补偿,使得晶振更容易起振,频率更加稳定。系统的复位采用了上电复的形式,上电过程中微控制器复位引脚保证10ms以上的高电平就能可靠的将微控制器复位。图 3.1.4 系统时钟和复位电路3.2 系统扩展电路3.2.1通信电路

21、在本次设计任务中采用了串口作为系统与外界的通信接口,通信部分电路图3.2.1所示。由于单片机的TTL电平和RS-232协议的电平不同,需要MAX232进行电平的转换。图 3.2.1 串口通信电路 图 3.2.2 串口逻辑电路在本次设计中还充分利用了串口的DTS信号作为单片机串口编程功能使能信号。整个通过串口DTR引脚控制在系统编程电路如图3.2.2所示。由于DS89C450提供在系统编程,可以很方便的通过串口对单片机内部的FLASH进行刷新。由于DS89C450进入在系统编程需要几个条件: 复位引脚电平为高; EA引脚为低电平; PSEN引脚为低电平。3.2.2 指南针模块接口电路本次设计中采

22、用了FAD_DCM_SPI指南针模块。该模块采用的正是PNI11096和SEN-R65传感器组合的设计方案。为了模块化,所以该模块把PNI11096芯片的输出信号经过处理后封装成特定的数据报文格式通过SPI总线形式对外提供。经过模块封装的数据格式如下表。表 1 指南针模块数据包格式bit10bit 3 bit 9bit 2bit 1ACK数据ACK地址角度数据范围:十六进制(0x000x167),转换成十进制为(0359)。SPI(Serial Peripheral Interface-串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。该接

23、口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOST和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。由于SPI系统总线一共只需34位数据线和控制即可实现与具有SPI总线接口功能的各种I/O器件进行接口,而扩展并行总线则需要8根数据线、816位地址线、23位控制线,因此,采用SPI总线接口可以简化电路设计,节省很多常规电路中的接口器件和I/O口线,提高设计的可靠性。图 3.2.3 SPI总线时序SPI总线的时序如图3.2.3所示。3.2.3 实时时钟电路系

24、统采用了PCF8583实时时钟芯片为系统提供实时时钟。PCF8583是一款基于静态CMOS RAM的实时时钟芯片,该芯片采用了I2C总线接口。整个PCF8583的操作都是基于其内建的CMOS RAM,通过对其不同地址的RAM的操作可以实现不同的功能。其内部的256字节的RAM区域被分为了几个功能区以完成不同的操作。由于本次使用的DS89C450内部没有I2C控制器,所以直接使用了芯片的I/O口模拟了I2C时序。整个时钟部分电路如图3.2.4所示。图 3.2.4 实时时钟电路PCF8583采用了I2C总线的形式与外界传输数据。I2C(InterIntegrated Circuit)总线是一种由P

25、HILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。其时序结构如图3.2.5所示。图 3.2.5 I2C总线时序3.2.4 液晶显示电路本次设计采用了160128点阵的单色液晶显示屏(LCD)作为系统的显示界面,具体的型号为PG160128,该LCM采用了T6963C控制芯片作为显示控制核心。微控制器只需要对T6963C芯片进行操作便可以完成对LCD屏的相关操作,使用非常方便。模块内部原理如图3.2.6所示。图 3.2.6 160*128 LCM原理图 3.2.7 T6963读写时序整个LCM中T6963C负责对LCD行列驱动芯片T6A40和T6A39进行控制。微控制器只需要按

26、照T6963给定的指令格式进行相应的操作即可。T6963提供10种控制命令,其数据和指令的读写时序如图3.2.7所示。3.2.5系统输入电路图 3.2.8 键盘电路系统采用了5键输入以实现系统功能的设定,如系统时间的调整和菜单的选择。由于系统中的其他模块对微控制器的端口占用较少还有很多没有使用的端口,键盘连接上直接采用了每个按键占用一个端口的形式,如图3.2.8所示,电路的中的几个电阻属于上拉电阻,保证在没有输入的情况下端口电平稳定为高,同时也可以达到省电的目的。键盘的读取采用扫描的形式,当检测到有按键按下时,消抖动后进行键值判断。以上是系统各个硬件部分的阐述,以下是整个系统的总电路。系统总电

27、路中包含了系统主控制电路、指南针模块、实时时钟、通信电路及其逻辑控制电路,扩展接口和相关辅助电路。在进行系统PCB的器件方位布置和走线时,特别注意了通信电路和信号采集电路的隔离。LCM内部的干扰比较大在进行器件放置时,将容易受到干扰的器件排布到其他区域,并采取一定的隔离措施。系统的总体电路原理如图3.2.9所示。采用Protel99SE设计的系统控制部分PCB图和指南针模块的PCB图分别如图3.2.10、图3.2.11所示。图 3.2.9 系统总体电路图系统的PCB顶层图如图所示。图 3.2.10 系统主电路板PCB顶层图图 3.2.11 指南针模块PCB图由于指南针模块的磁阻传感器对磁场非常

28、的敏感,在放置指南针模块的时候要远离干扰磁场的磁体区域,指南针模块成为单独放置的模块并通过接口的形式和主控板相连接。第4章 系统软件4.1 主监控程序图 4.1.1 系统监控程序流程图整个监控系统中各个模块间存在一定的先后顺序且程序模块数量较少,为了减少系统的程序量,设计过程中系统的监控程序采用了传统的前后台方式。整个监控程序主要由指南针模块驱动、液晶显示驱动、实时时钟驱动和串口驱动组成。整个系统监控程序流程如图4.1.1所示。当系统上电后,最先执行的就是对系统各个部件进行初始化的代码,其中主要包括对系统内部定时器、实时时钟、LCM驱动、指南针模块以及对系统通信串口的初始化。系统初始化完成时对

29、指南针模块进行读取,此时指南针模块将根据ADJUST端口的电平状态判定是否需要校正指南针,其后将得到的数据上传至微控制器,微控制器根据得到的数据驱动LCM进行相应的显示,随后微控制器将对系统键盘端口进行扫描,并根据扫描得到的键值进行相应的处理。前后台式的监控系统结构简单,但是其实时性较差。系统中由于各个程序之间相互关联,且对实时性要求不是很高,前后台能够满足其要求。void main(void)unsigned int Angle;InitScreen(); /* 初始化LCM */DisMain(); /* 初始化系统部件 */while(1) Angle = GetDirction();

30、/* 获得指南针方位 */DisCurDirc(Angle); /* 显示系统角度 */DisCurTime(11, 15); /* 显示系统时间 */ DisCurDate(); /* 显示系统日期 */ RollScreen(); /* 显示系统广告 */ScanKey(); /* 扫描键盘并判定发送 */ 4.2 实时时钟驱动实时时钟为整个系统的运行提供实时数据。本次设计采用的PCF8583实时时钟芯片采用的I2C接口,对它的所有操作直接通过对其内部线性的CMOS RAM区进行操作即可即对PCF8583的操作主要是通过I2C总线对其内部RAM进行读写。整个驱动流程如图4.2.2所示。图

31、4.2.2 PCF8583驱动流程void DisCurDate(unsigned char x, unsigned char y) unsigned char Date2;unsigned char DisBuf11;ReadPCF8583(0x05, 2, Date); /* 获取PCF8583的日期 */ DisBuf4 = (Date0 & 0x0f) + 0; /* 提取日个位 */DisBuf3 = (Date0 4) & 0x03) + 0; /* 十位 */DisBuf2 = /;DisBuf1 = (Date1 & 0x0f) + 0;/* 提取月个位 */DisBuf0 =

32、 (Date1 4) & 0x01) + 0; /* 十位 */DisBuf5 = /;DisBuf6 = 2;DisBuf7 = 0; DisBuf8 = 0;DisBuf9 = 8;DisBuf10= 0; /* 在数组最后单元放入标识符结束 */DispStr(y*20+x, DisBuf);图 4.2 PCF8583驱动流程4.3 人机界面驱动4.3.1 液晶模块驱动液晶显示驱动处于系统的最后端,属于人机交互界面。直观的液晶显示能够使得系统更容易操控。本次设计采用了PG160128点阵的LCM模块。整个LCM驱动的构架图如4.3.1所示。采用层次设计的驱动可以很好的移植到不同的处理器。

33、图 4.3.1 LCM驱动程序架构4.3.2 键盘驱动系统中将按键电路中按键、分别与单片机的P13、P14、P15、P16、P17引脚进行连接,此按键是低电平有效,当有键按下时,与按键相连接的单片机引脚检测到这个信号,然后进行相应的处理后再输出。4.4 指南针模块驱动图 4.4 指南针模块内部数据处理流程本次设计采用的是FAD_DCMP_SPI指南针模块。模块采用SPI接口与MCU进行数据交换。整个模块驱动包括了读取PNI11096数据、处理数据、封装数据和通过SPI时序发送数据几个部分。程序的流程如图5.4所示。在整个指南针模块程序的设计过程中最主要的也就是其数据的处理,直接关系到系统的精度

34、。在还没有处理之前从PNI11096读取的数据真实的反应了水平面内地磁场的分布情况,如图4.5所示,这是均匀转动指南针模块得到的地磁场强度分布,图中显示地磁场强度在不同方向上的分布是不同的,经过归一化后,可以很好的将其归一化为圆,使得在各个方向上的磁场强度均匀,这样既可以方便进行角度计算又可以提高测量精度,如图4.6所示。图 4.6 归一化后磁场强度分布图 4.5 未处理时真实磁场强度分布为了得到准确的方向值必须对电子指南针模组返回的数据进行校正,将椭圆调整为正圆形,这样才能得到更准确的角度值。这就需要电子指南针模组进入校正模式得到四个校正参数,这四个校正参数分别是椭圆中心的坐标(xOffse

35、t,yOffset)和椭圆两个半轴的长度 xRange,yRange。电子指南针模组校正模式执行的操作为持续纪录 X轴、Y轴测量数据的最大值和最小值,因此在校正模式下要不停的旋转电子指南针模组来得到尽可能精确的 X轴、Y轴测量数据的最大值和最小值。得到 X轴、Y轴测量数据的最大值和最小值后就可以求出四个校正参数了。每次开机或每到一个新地方都应该进入校正模式,重新获得校正参数。计算校正参数的参考代码如下。int Xmax,Xmin,Ymax,Ymin; int Xraw,Yraw; int i; Xmax = Ymax = -32768; / 将最大值赋值为最小值 Ymin = Ymin = 3

36、2767; / 将最小值赋值为最大值 for(i = 0; i Xmax) Xmax = Xraw; / 得到一个尽可能大的值作为 X最大值 if(Xraw Ymax) Ymax = Yraw; / 得到一个尽可能大的值作为 Y最大值 if(Yraw 1; / 得到 X轴偏移量 yOffset = (Ymax + Ymin)1; / 得到 Y轴偏移量 xRange = Xmax - Xmin; / 得到 X轴取值范围 yRange = Ymax -Ymin; / 得到 Y轴取值范围 return 0; 在正常的测量模式下,电子指南针模组 X轴、Y轴测量数据都要利用在校正模式下得到的参数进行校正

37、,校正方法如下。xValue = F_PNI_11096_Read(0xE9); yValue = F_PNI_11096_Read(0xEA); xRevise = xValue - xOffset; / 根据校正结果,校正 X轴 yRevise = yValue - yOffset; / 根据校正结果,校正 X轴if(xRange yRange) yRevise = (yRevise*xRange)/yRange; else xRevise = (xRevise*yRange)/xRange;指南针模块在第一次使用前都必须校正,系统上电时将模块的ADJUST引脚拉低即可进入校正状态,将模块

38、在水平面内均匀的转动一周后校正结束。校正时主要调整的系数就是本地的磁偏角。将磁场强度归一化后,直接对X,Y轴的强度进行计算就可以得到当前方向与正东方向的夹角,如图4.7所示。从图4.7中可以看出夹角就是:图 4.7 角度的计算 还有一个问题是要根据角度所在的不同的象限,对求得的角度值加以修正。参考程序如下。Ratio = yRevise / xRevise; if( Ratio 0) & (yRevise 0) / 如果角度是在其它象限中,那么进行修正 return 360 - Angle; else if(xRevise 0) return 180 + Angle; else if(xRev

39、ise 0) & (yRevise 0) & (yRevise 0) return Angle; 结 论所设计的系统中包含了磁场传感器、微控制器、显示部件、输入部件和实时时钟等部分,微控制器通过对磁场传感器配套的ASIC进行读取获得当前方向地磁场的强度,通过一定的运算后由直观的人机界面显示出来,并可通过微控制器的串口和上位机建立连接进行数据的传输。在整个设计系统中充分掌握各模块电路的工作原理,对硬件电路进行设计,并使用C语言编写全部的驱动程序。本系统用于方位指示实测精度高、功耗小、显示直观。因为个人在知识面和能力方面还有限,再加上条件的限制,电子指南针的采样精度和抗干扰能力等各项技术指标的提高

40、、诸多功能的完善还需要进一步的研究和开发,此外在完成基本功能的基础上,还需要努力提高软件的效率、硬件系统的稳定性、进一步降低系统功耗等。致 谢在本论文完成之际,我首先要向我的指导老师王晶老师表达我最诚挚的谢意,感谢王老师在整个毕业设计过程中耐心细致的指导!感谢在毕业设计中给予我支持的所有同学!我还要特别要向我的家人表示由衷的感谢,正是他们的无私奉献和鼎力支持,我才能顺利的完成我的学业。向百忙之中抽出宝贵时间来评阅这篇论文的各位专家致以衷心的感谢!参考文献1 Jean JLabrosse, 邵贝贝等译. 嵌入式实时操作系统uC/OS-II(第二版)M. 北京:北京航空航天大学出版社, 2003.2 周航慈, 吴光文. 基于嵌入式实时操作系统的程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1