电子指南针
S09-5 S09-7 S09-9 S09-2 朱文 李天锡 谢超军 程瀚琳 电气电气电气电气
目录
电子指南针...................................................................................................................................1
目录............................................................................................... 错误!未定义书签。
一 引言........................................................................................................................4
。 1.1功能简介 本方案可以实现:...........................................................................4
1.......................................................................................图形及文字显示当前方向;4
2...........................................................................................................语音播报方向;4
3...................................................................................................................方向校正;4
4.......................................时钟功能,包括日期,时间,秒表,闹钟,语音报时。4
二 相关物理量介绍 5
1.磁场...............................................................................................................................5
2.磁感应强度...................................................................................................................6
3.磁通量...........................................................................................................................6
4.磁场方向.......................................................................................................................6
5.磁感线...........................................................................................................................6
6.地磁场...........................................................................................................................7
三.................................................................................................................................................10
系统硬件设计.............................................................................................................................10
四 .硬件电路..............................................................................................................20
六....................................................................................................................................34
软件设计........................................................................................................................34
(1)数据格式和命令字…………………………………………………………34
(2)编程实例……………………………………………………………………34
湖南工院毕业实践 基于单片机的指南针
一 摘要
指南针是一种重要的导航工具,可应用在多种场合中。电子指南
针内部结构固定,没有移动部分,可以简单地和其它电子系统接口,因此可代替旧的磁指南针。并以精度高、稳定性好等特点得到了广泛运用。 本文介绍了利用SPCE061A作为主控制器,结合电子指南针棋組设计的电子指南针。本系统具有良好的显示界面,可以读出当前的位置,实现-的功能包括图形及文字显示当前方向、语音播板方向、 方向枝正、显示日期、时间,秒表,闹钟,语音报时。
本文介绍了目前用于定位系统中的电子指南针的工作原理,详细论述了磁场传感器芯片KMZ52的工作原理,给出了用KMZ52磁场传感器设计电子指南针的总体设计方案和电路,同时给出了设计中的一些特殊处理方法。Philips公司生产的半导体器件KMZ52是一种专门用于电子指南针的二维磁场传感器。它采用磁场传感器的磁阻(MR)技术,并用翻转技术消除信号偏移,而用电磁反馈技术来消除温度的敏感漂移。由于外界存在干扰,该系统集成了几种特殊的抗干扰技术来提高系统精度。
关键词:SPCE061A,方向,电子指南针。
一 引言
指南针是航海航行的重要伩器,也是人们外出旅行、考察的必
备工具。使用单片机实现该系统,可以 很好的掌握单片机的应用,同时可以熟悉电子指南针的原理。
该方案具有很强的趣味性,配和SPLC501液晶模组,可以实现图形及文字显示当前方向、语音播报方向、方向校正、显示日期、时间,秒表,闹钟,语音报时等功能。
1.1功能简介
本方案可以实现:
1. 图形及文字显示当前方向;
2. 语音播报方向;
3. 方向校正;
4. 时钟功能,包括日期,时间,秒表,闹钟,语音报时。
二 相关物理量介绍 1.磁场
磁场是一种看不见,而又摸不着的特殊物质。磁体周围存在磁场,磁体间的相互作用就是以磁场作为媒介的。电流、运动电荷、磁体或变化电场周围空间存在的一种特殊形态的物质。由于磁体的磁性来源于电流,电流是电荷的运动,因而概括地说,磁场是由运动电荷或变化电场产生的。
磁场的基本特征是能对其中的运动电荷施加作用力,磁场对电流、对磁体的作用力或力距皆源于此。而现代理论则说明,磁力是电场力的相对论效应。
与电场相仿,磁场是在一定空间区域内连续分布的矢量场,描述磁场的基本物理量是磁感应强度矢量B ,也可以用磁感线形象地图示。然而,作为一个矢量场,磁场的性质与电场颇为不同。运动电荷或变化电场产生的磁场,或两者之和的总磁场,都是无源有旋的矢量场,磁力线是闭合的曲线族,不中断,不交叉。换言之,在磁场中不存在发出磁力线的源头,也不存在会聚磁力线的尾闾,磁力线闭合表明沿磁力线的环路积分不为零,即磁场是有旋场而不是势场(保守场),不存在类似于电势那样的标量函数。
2.
与磁力线方向垂直的单位面积上所通过的磁力线数目,又叫磁力线的密度,也叫磁通密度,用B表示,单位为特(斯拉)T。
3.
磁通量是通过某一截面积的磁力线总数,用Φ表示,单位为韦伯(Weber),符号是Wb。 通过一线圈的磁通的表达式为:Φ=B·S(其中B为磁感应强度,S为该线圈的面积。) 1Wb=1T·m2
4.磁场方向
规定小磁针的北极在磁场中某点所受磁场力的方向为该电磁场的方向。从北极出发到南极的方向,在磁体内部是由南极到北极,在外可表现为磁感线的切线方向或放入磁场的小磁针在静止时北极所指的方向!磁场的南北极与地理的南北极正好相反,且一端的两种极之间存在一个偏角,称为磁偏角!磁偏角不断地发生缓慢变化!掌握磁偏角的变化对于应用指南针指向具有重要意义!
5.磁感线
在磁场中画一些曲线,使曲线上任何一点的切线方向都跟这一点的磁场方向相同,这些曲线叫磁力线。磁力线是闭合曲线。规定小磁针的北极所指的方向为磁力线的方向。磁铁周围的磁力线都是从N极出来进入S极,在磁体内部磁力线从S极到N极。
电磁场是电磁作用的媒递物,是统一的整体,电场和磁场是它紧密联系、相互依存的两个侧面,变化的电场产生磁场,变化的磁场产生电场,变化的电磁场以波动形式在空间传播。电磁波以有限的速度传播,具有可交换的能量和动量,电磁波与实物的相互作用,电磁波与粒子的相互转化等等,都证明电磁场是客观存在的物质,它的“特殊”只在于没有静质量。
磁现象是最早被人类认识的物理现象之一,指南针是中国古代一大发明。磁场是广泛存在的,地球,恒星(如太阳),星系(如银河系),行星、卫星,以及星际空间和星系际空间,都存在着磁场。为了认识和解释其中的许多物理现象和过程,必须考虑磁场这一重要因素。在现代科学技术和人类生活中,处处可遇到磁场,发电机、电动机、变压器、电报、电话、收音机以至加速器、热核聚变装置、电磁测量仪表等无不与磁现象有关。甚至在人体内,伴随着生命活动,一些组织和器官内也会产生微弱的磁场。地球的磁级与地理的两极相反。 安培力:(左手定则)F=BIL*Sinθ
洛伦兹力:(左手定则)【微观上】F=qvBSinθ
6.地磁场
地磁场(geomagnetic field)是从地心至磁层顶的空间范围内的磁场。地磁学的主要研究对象。人类对于地磁场存在的早期认识,来源于天然磁石和磁针的指极性。地磁的北磁极在地理的南极附近;地磁的南磁极在地理的北极附近。磁针的指极性是由于地球的北磁极(磁
性为S极)吸引着磁针的N极,地球的南磁极(磁性为S极)吸引着磁针的N极。这个解释最初是英国W.吉伯于1600年提出的。吉伯所作出的地磁场来源于地球本体的假定是正确的。这已为1839年德国数学家C.F.高斯首次运用球谐函数分析法所证实。
地磁的磁感线和地理的经线是不平行的,它们之间的夹角叫做磁偏角。中国古代的著名科学家沈括是第一个注意到磁偏角现象的科学家。
地磁场是一个向量场。描述空间某一点地磁场的强度和方向,需要3个独立的地磁要素。常用的地磁要素有7个,即地磁场总强度F,水平强度H,垂直强度Z,X和Y分别为H的北向和东向分量,D和I分别为磁偏角和磁倾角。其中以磁偏角的观测历史为最早。在现代的地磁场观测中,地磁台一般只记录H,D,Z或X,Y,Z。
近地空间的地磁场,像一个均匀磁化球体的磁场,其强度在地面两极附近还不到1高斯,所以地磁场是非常弱的磁场。地磁场强度的单位过去通常采用伽马(γ),即1纳特斯拉。1960年决定采用特斯拉作为国际测磁单位,1高斯=10^(-4)特斯拉(T),1伽马=10^(-9)特斯拉=1纳特斯拉(nT),简称纳特。地磁场虽然很弱,但却延伸到很远的空间,保护着地球上的生物和人类,使之免受宇宙辐射的侵害。 地磁场包括基本磁场和变化磁场两个部分,它们在成因上完全不同。基本磁场是地磁场的主要部分,起源于地球内部,比较稳定,变化非常缓慢。变化磁场包括地磁场的各种短期变化,主要起源于地球外部,并且很微弱。
地球的基本磁场可分为偶极子磁场、非偶极子磁场和地磁异常几个组成部分。偶极子磁场是地磁场的基本成分,其强度约占地磁场总强度的90%,产生于地球液态外核内的电磁流体力学过程,即自激发电机效应。非偶极子磁场主要分布在亚洲东部、非洲西部、南大西洋和南印度洋等几个地域,平均强度约占地磁场的10%。地磁异常又分为区域异常和局部异常,与岩石和矿体的分布有关。
地球变化磁场可分为平静变化和干扰变化两大类型。平静变化主要是以一个太阳日为周期的太阳静日变化,其场源分布在电离层中。干扰变化包括磁暴、地磁亚暴、太阳扰日变化和地磁脉动等,场源是太阳粒子辐射同地磁场相互作用在磁层和电离层中产生的各种短暂的电流体系。磁暴是全球同时发生的强烈磁扰,持续时间约为1~3天,幅度可达10纳特。其他几种干扰变化主要分布在地球的极光区内。除外源场外,变化磁场还有内源场。内源场是由外源场在地球内部感应出来的电流所产生的。将高斯球谐分析用于变化磁场,可将这种内、外场区分开。根据变化磁场的内、外场相互关系,可以得出地球内部电导率的分布。这已成为地磁学的一个重要领域,叫做地球电磁感应。 地球变化磁场既和磁层、电离层的电磁过程相联系,又和地壳上地幔的电性结构有关,所以在空间物理学和固体地球物理学的研究中都具有重要意义。
地磁场
三
系统硬件设计
图3.1为电子指南针的系统框图,采用SPCE061A作为主控制器向电子指南针模组发送命令,然后接收返 回的信息,最后信息用于各种显示。
图3.1电子指南针系统框图
图3.2为电子指南针的硬件连接图。
图3.2为电子指南针的硬件连接图
.3.1 SPECE061A芯片简介
SPCE061A是一款基于μ’nSP内核的16位单片机,与SPCE501不同的是,在存储器资源方面考虑到用户对资源的需求较少以及便于程序调试等功能,SPCE061A里只嵌32K字的闪存.较高的处理速度使μ’nSP非常容易快速地处理复杂的数字信号。其芯片特性如下:
工作电压:内核工作电压VDD为3.0~3.6V(CPU),I/O口工作电压VDDH为VDD~5.5V;
CPU时钟:0.32MHz~49.152MHz;
内置2K字SRAM和32K字闪存ROM;
系统处于备用状态下(时钟处于停止状态),耗电小于2μ[email protected]; 具备触键唤醒的功能;
32位通用可编程输入/输出端口;
2个16位可编程定时器/计数器(可自动预置初始计数值);
7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;
2个10位DAC(数-模转换)输出通道;
14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒; 具备串行设备接口;
低电压复位(LVR)功和低电压监测(LVD)功能;
内置在线仿真(ICE,In- Circuit Emulator)接口。
SPCE061A的内部结构框图如图 2.3所示。
图 3.3 SPCE061A内部结构图
3.2 SPLC501液晶模组特性
SPLC501 液晶模组具有以下特性:
显示模式:黄色模式STN 液晶;
显示格式:128×64 点阵的图形液晶;
输入数据:兼容68/80 系列MPU 时序。
SPLC501 液晶模组的实物图如图 2.4所示
图 2.3 SPLC501液晶模组
3.3电子指南针模组
电子指南针模组由PNI公司高可靠性的磁通传感器及驱动芯片组成,集成度非常高,实现了高可靠性、高精度、强抗磁场干扰的数码电子指南针功能。电子指南针模组有两个磁性传感器SEN-S65和一个驱动芯片PNI-11096构成。磁性传感器SEN-S65里面包含一个LR振荡电路,当磁性传感器SEN-S65与地球磁感线平行方向夹角发生变化时,LR振荡电路的磁感应系数也会发生变化。驱动芯片PNI-11096通过磁性传感器SEN-S65磁感应系数的变化可以计算出磁性传感器与地球磁感线之间的
夹角,驱动芯片PNI-11096最多可以连接三个磁性传感器SEN-S65,这三个磁性传感器SEN-S65方向互为垂直,这样就可以测量在三维方向上与地球磁感线的夹角,从而得到当前的三维方向。
电子指南针模组只要得到水平方向上与地球磁感线的夹角就
可以测得方向了,因此驱动芯片PNI-11096 上使用了二个磁性传感器SEN-S65。电子指南针模组电路如图3.5。
图 3.5 电子指南针模组电路图
电子指南针模组采用SPI接口输入与输出,61板使用IO口模拟SPI接口与电子指南针模组通讯。SPI总线时序如图 3.6。
图 3.6 SPI总线时序图
从SPI总线时序图 3.6可以看出首先上位机发送1个字节的命令字,命令字指定了电子指南针模组的工作模式;当电子指南针模组准备好数据时,DRDY数据线变为高电平;然后从电子指南针模组读出
2个字节的数据。控制电子指南针模组的命令字如表 3.1。
表 3.1 电子指南针模组命令字
AS1,AS0决定测量哪个轴如表 3.2。
表 3.2 AS1、AS0选择测量轴
MOT 当置位为1,各个方向轴上的磁性振荡管可以由AS1、AS0选择
ODIR 当MOT位为1时,
ODIR将决定磁性震荡管的方向,当MOT位为0时此位无效。注意此位只在调试模式下使用,正常模式下不使用。
PS0、PS1、PS2决定磁性传感器SEN-S65L/R磁性振荡器的频率,如表3.3。
表 3.3 L/R磁性振荡器频率选择
从电子指南针模组得到X轴方向和Y轴方向测量数据后,根据公
式angle = atan(y / x)就可以计算出与正北方向的顺时针夹角了。注意坐标轴的方向与平时使用的不一样,X轴正半轴方向指向正北,如图3.7。
图 3.7 电子指南针方向坐标系
在理想状态下,X轴测量数据与Y轴测量数据变化范围都应是-32768~32767之间,X轴数据与Y轴数据刚好构成一个正圆形如图 3.7,但实际测量中,X轴测量数据与Y走测量数据最大值或最小值均达不到-32768~32767这个范围,则导致这两个数据构成的图形成为一个中心不在原点的椭圆形,如图 3.8。
图 3.8 电子指南针模组实际测量坐标图
为了得到准确的方向值必须对电子指南针模组返回的数据进行校正,这就需要电子指南针模组进入校正模式得到四个校正参数,分别是椭圆中心的坐标和椭圆两个半轴的长度。电子指南针模组校正模式执行的操作为持续纪录X轴、Y轴测量数据的最大值和最小值,因此在校正模式下要不停的旋转电子指南针模组来得到尽可能精确的X轴、Y轴测量数据的最大值和最小值。得到X轴、Y轴测量数据的最大值和最小值后就可以求出四个校正参数了。每次开机或每到一个新地方都应该进入校正模式,重新获得校正参数。电子指南针模组X轴、Y轴测量数据经过校正后,形成的坐标系如图 3.9。
图3.9 电子指南针模组校正后测量坐标图
四 .硬件电路
4.1 SPCE061A最小系统
本方案使用61板座位单片机最小系统。61板包括SPCE061A芯片及外围的基本模版,外围模版包括:晶振输入模块(OSC),锁相环外围电路(PLL),
复位电路(RESET),指示灯(LED)等,如图4.1所示
图4.1 SPCE061A最小系统
4.2 LCD显示器
SPLC501液晶模组提供的LCD显示器采用凌阳SPLC501液晶驱动芯片,点阵分辨率为128×64。SPLC501液晶模组的电路图如图4.2所示第 21 页 共 42 页
图 4.2 SPLC501液晶模组的电路图
系统软件设计
本系统包括下面程序模块:
主 程 序: 首先完成硬件模块的初始化,显示主界面,进行键盘扫描, 处理键盘信息,再根椐键值跳转到各功能子模块;
第 22 页
共 42 页
4
键盘扫描程序: 完成对61板三个按键的扫描并加入去抖功能;
PNI11096驱动程序: 模拟SPI时序完成对PNI11096的控制及读取数据;
SPLC501驱动程序: 驱动SPLC501 LCD ;
电子指南针各功能子程序:实现命令的发送与接收、数据校正、图形显示、方向数值显示;
时钟功能程序: 实现显示时间、日期及秒表,闹铃功能;
语音播报程序: 实现方向、日期时间语音播报。
五 主程序
主程序流程如图5.1。程序运行后首先初始化各个硬件模块,校正指南针模组,然后程序进入主循环,不停的读取指南针模组的方向并显示,同时进行按键扫描,根据按键进入相应的功能模块。
第 23 页 共 42 页
图 5.1 主程序流程图
5.2 键盘扫描程序
键盘扫描程序提供如下三个API函数供用户使用。
函数:void Key_Init(void)
描述:键盘初始化函数,设置IOA口低三位为下拉输入方式。
参数:无
返回值:无
程序:void Key_Scan(void)
描述:键盘扫描函数,每执行一次,对键盘进行一次扫描。利用128Hz中断调用该函数,完成获取键值及去抖功能。
参数:无
返回值:无
第 24 页
共 42 页
程序:int Key_GetValue(void)
描述:得到键值函数,判断当前是否有键按下
参数:无
返回值: 按下返回键值,没有按下返回0
5.3 PNI11096驱动程序
61板通过IO口模拟SPI接口与电子指南针模组模组通信。PNI11096驱动程序包括二个函数,PNI11096驱动程序分别是初始化函数、PNI11096驱动程序读取函数。
PNI11096驱动程序读取函数的程序流程如图5.2。
第 25 页 共 42 页
图 5.2 PNI11096驱动程序读取函数的程序流程图
5.4 液晶驱动程序
LCD显示部分采用SPLC501液晶模组附带的驱动程序。该驱动程序的架构如图5.3所示。
第 26 页
共 42 页
图 5.3 LCD驱动程序架构
驱动程序由5个文件组成,分别为:底层驱动程序文件SPLC501Driver_IO.inc、SPLC501Driver_IO.asm;用户API功能接口函数文件SPLC501User.h、SPLC501User.c、DataOSforLCD.asm。
SPLC501Driver_IO.inc:该文件为底层驱动程序的头文件,主要对使用到的寄存器(如端口控制寄存器等)进行定义,还对SPCE061A与SPLC501液晶显示模组的接口进行配置;用户可以根据自已的需求来配置此文件,但要使端口的分配符合实际硬件的接线。
第 27 页
共 42 页
SPLC501Driver_IO.asm:该文件为底层驱动程序,负责与SPLC501液晶显示模组进行数据传输的任务,主要包括端口初始化、写控制指令、写数据、读数据等函数;这些函数仅供SPLC501User.c调用,不建议用户在应用程序中调用这些函数。
SPLC501User.h:该文件为用户API功能函数文件的头文件,主要对一些记住符进行定义,以及配置LCD的一些设置,另外该文件里还对SPLC501User.c中的函数作了外部声明,用户需要使用LCD的API功能函数时,需要把该文件包含在用户的C文件中。
SPLC501User.c:文件中定义了针对LCD显示的各种API功能函数。 DataOSforLCD.asm:该文件中提供了一些供API功能函数调用的数据处理子程序,主要完成显示效果的叠加、画圆偏差量的计算等。
5.5 电子指南针校正程序
校正命令的原理是尽可能精确得到X轴、Y轴测量数据的最大极值和最小极值。利用公式:
Xoffset = (Xmax + Xmin)/ 2
Yoffset = (Ymax + Ymin)/ 2
Xrange = Xmax – Xmin
Yrange = Ymax – Ymin
分别得到X轴、Y轴测量数据所形成椭圆的中心点坐标(Xoffset,Yoffset)和椭圆两个轴的长度Xrange、Yrange。程序流程如5.4。
第 28 页 共 42 页
4.6 电子指南针发送命令程序
系统通过PNI11096驱动向电子指南针模组发送命令字,电子指南针模组根据命令返回相应的数据,根据返回的数据计算与正北方向的顺时针角度值。程序流程图如图5.5所示。
第 29 页
共 42 页
5.7 更新时钟程序
此程序在2Hz时基中断中调用,每0.5秒更新一次时间。更新时钟程序流程图 如图5.6。
第 30 页
共 42 页
5.8 更新日期程序
此程序在2Hz时基中断中调用,更新日期、月份、年份。更新日期程序
流程图如图 5.7。
图 5.7 更新日期程序流程图
5.9 更新秒表程序
选择菜单项“秒表”系统可以实现秒表计时功能,1KHz时基中断实现秒表计时。更新秒表程序流程图如图4.8。
图 5.8 更新秒表程序流程图
5.10 设置日期时间程序
选择菜单项“时间设置”可以对日期时间进行设置。设置日期时间程序流程图如
图 5.9。
六 软件设计
(1)数据格式和命令字
V2XE有Big Endian和Little Endian两种数据格式。Big Endian类型数据是从高位到低位存放,little Editan数据是倒序存放。即在最高8位依次放最低8位的数据。在最低8位依次放最高8位的数据,如图2所示。带有数据的命令格式由开始标志(Sync Flay)、指令类别(Frame Type)和结束标志(Terminator)组成。图3所示是一个带有参数Heading(0X02)和Magnitude(OX05)的aC0mp0nents(OX03)命令构成。V2XE常用命令字包括Modln.foRespSetDataComponentGetData、DataResp Config、GetConfig、ConfigResp和SaveConfig。其指令码和功能如表2所示。
(2)编程实例
SPI接口的数据接收和发送是同步的。V2XE每接收一个数据时将会发出OXO0。当V2XE发送命令的应答时。它将不处理任何输入的数据。因此,在主机获取V2XE数据时,应是发送和接收同时进行。用C语言编写发送一接收函数SP皿阳Ilsmit如下: GetModlnfoOxO1 获得芯片的版本号
ModlnfoResp 0x02 返回芯片的版本号
SetDataComponent0xO3 设置需要获得的数据
GetData 0x04 获取V2XE的数据
D 根据SetDataComponent返回获
ataReep 0x'05 得的V2XE数据
$etConfig 0x06 设置V2XE的各个参数
GetConfig 0如7 获得当前V2XE的参数 ConfigResp O柏8 返回V2XE的参数 SaveContig O柏9 保存设置的参数 开始标志I指令类别l参数个数I参数一I参数二I结束标志 0xaa 1 0x03 I Ox02 1 0x02 l 0x05 l 0x00 { unsigned char i,receive_ data; receive_data=0: for(i-0;i
一个V2XE系统的典型应用流程如图4所示 V2XE出厂时.都在其ROM中固化了芯片的 MSB l l l LSB Big Endian Little Endian 图2 V2XE的数据结构 维普资讯 http://www.cqvip.com 新的V2XE型地磁传感器在单片机系统中的应用 一69一 图4 应用程序流程 版本号。用户第一次应用V2XE系统可首先读出该 版本号以判断器件是否正常工作。可先向V2XE发 送命令GetModInfo。然后读取返回值ModInfoResp。 其程序如下: int V2EX
_ GetModulelnfo0 { unsigned char count; SPITransmit(kSyncChar); //开始标志0XAA SPITransmit(kGetModInfo); //龠4-$0X01 SPITransmit(kTerminator); ||姥慕标志0X00 while(SPITransmit(0)!=kSyncChar); ,,等待V2XE返回值.返回值以0XAA开始 Lnop_0; ) if(SPITransmit(0)=-kModInfoResp) { ’ count=7; ,/版本号为8位无符号数 while(count>=o) { C0Unt一一; verson[count]=(SPITransmit(0)); //读取V2XE的 返回值 l 1. return 1: ) else
return 0:
}
这样,获得的芯片信息存放在数组verson中,可以根据读取的值和实际版本号(V2XEV201)比对以确定系统是否正常工作。如果系统正常。首先要根据需要设置返回数据格式以确定V2XE返回这些用户感兴趣的值,主要包括地磁方向角、磁场强度、温度和校准状态位等。另外,还要设置一些初始化参数,Declination(本地的地磁角。可以从获得)、True North(设置参照角度为地磁北脚)、BigEndian(选择数据的大、小模式)、Dampingsize(数据缓冲区,将缓冲区里的数据平均后作为V2XE的实际输出)。在V2XE的实际应用中,常常需要校准,常用命令包括StartCal、StopCal、GetCalData、CalDataResp和SetCalData,其指令代码和功能描述如表3所示。在校准过程中,V2XE装置要尽量水平放置。从开始校准到结束校准过程中需将装置原地旋转两周,每转的时间不得小于30s。校准完成后,可以查询参数calstate来判断校准是否成功。完成参数设置和校准
等初始化工作后。可以通过发送指令GetData(oxo4)来获取V2XE的数据。对
V2XE每发送命令一次必须将其输出全部读出,否则会影响下一次的正常输出。
七 心得
毕业日子的到来,毕业设计也接近了尾声。经过几周的奋战我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计知识对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点片面。毕业设计不仅是对面前所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西也太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。
毕业设计是我们作为学生在学习阶段的最后一个环节,是对所学基础知识和专业知识的一种综合应用,是一种综合的再学习,再提高的过程,这一过程对学生的学习能力和独立思考及工作能力也是一个培养,同时毕业设计的水平也反映了大学教育的综合水平,因此学校十分重视毕业设计这一环节,加强了对毕业设计工作的指导和动员教育。在大学的学习过程中,毕业设计是一个重要的环节,是我们步入社会参与实际工作的一次极好的演示,也是对我们自学能力和解决问题能力的一次考验,是学校生活与社会生活间的过渡。在完成毕业设计的时候,我尽量的把毕业设计和实际工作有机的结合起来,实践与理论相结合。这样更有利于自己能力的提高。
社会是在不断的变化,发展的,眼下社会变革迅速,对人才的要求也越
来越高,要用发展的眼光看问题,要学会学习,学会创新,学会适应社会的发展要求。在走出校园,迈向社会之即,把我今天,才能创造未来,老师的熏陶和教诲,使我懂得了更多处世为人的道理,有了一定的创新精神和钻研精神。
在完成毕业设计的这段时间里,我收获颇多:
通过这次毕业设计让我对电子指南针的设计加深了了解学到了许多在学校课堂里学不到的知识,是一个非常好的学习机会和锻炼。
其实我们可以把毕业设计看作是一个工作内容,在完成毕业设计的时候,所用到的知识,以及所具备的专注力和责任心,同样在工作中是必不可少的。由于社会生活的变革和科技进步对社会及个人的影响,认为学校能满足人生所有教育需要的理性主义幻想已经破灭。社会的发展要求劳动者不断更新知识,每个人的职业不可能终身不变。这一切都要求现在的学生除获取一定的理论知识和技能外,还必须培养自己进一步学习的能力。而教育的改革和发展,既要反映当代社会的实际需求,更要充分考虑社会的发展趋势。 理论与实际相结合,不仅包括课堂上学的有关知识要与技能训练相结合,还包括要引导学生了解和接触社会实际的内容。学生进行必要设计,是在专业理论知识的指导下,通过各种方式,解决一些实际性的问题。在设计过程中,学生可将所学的理论知识运用到实践中,使之转化成更高层次的经验,技能和技巧。由于现行的教学模式,理论知识与技能,尤其是生产实践存在着严重的脱节,学生无法将他们课堂上学习的理论知识与现实生产问题联系起来,使之学不能致用。而增加毕业设计这一环节,通过合理选择课题,引导学生有意识地系统运用所学知识和技能,去分析思考,有助于理论知识
与实践有机的结合。
任何事情都是一分为二的,在毕业设计过程中也暴露出自己专业基础的很多不足之处。例如对知识综合运用的技巧的缺乏,对材料了解的不够透彻,等等。赶紧自己所学习的只是冰山一角,面对稍微复杂的东西还是没能得心应手,再一次体会到学无止境的意义了。
本毕业设计是在刘老师的悉心指导下完成的。从课题的开题,选题到设计和制作,再到本论文的撰写到定稿的每一步工作都倾注着刘老师的心血和汗水,同时得到同学们的相助,并提供了大量的资料。在此,对于老师和同学们的帮助表示衷心的感谢。
电气S09-5 朱文
第 41 页 共 42 页
八 参考文献
[0]罗亚非.凌阳16位单片机应用基础[M]. 北京:北京航空航天大学出版社,2003 [1] 邵婷婷,马建仓,胡士峰,王超. 电子罗盘的倾斜及罗差补偿算法研究[J]. 传感技术学报, 2007, (06) .
[2] 邱丹,黄圣国. 电子罗盘在航向系统的应用[J]. 江苏航空, 2006, (02) .
[3] 彭树生. 数字电子罗盘HMR3000的特性及应用[J]. 电子技术, 2004, (08) .
[4] 朱学斌. 基于MAX155和KMZ52的电子指南针的实现[J]. 鲁东大学学报(自然科学版), 2006, (04) .
[5] 姜立中. 电子罗盘[J]. 电子世界, 1999, (06) .
[6] 赵毅强,管大年,陈豪敏. 电子罗盘在精确定位平台中的应用[J]. 传感技术学报, 2005, (01) .
[7] 李硕,李小民. 电子罗盘在无人机飞控器中的应用[J]. 兵工自动化, 2007, (12) .
[8] 蒋贤志. 数字电子罗盘误差分析及校正技术研究[J]. 现代雷达, 2005, (06) . [9] 汪雪莲. 电子罗盘的方位测量误差及其补偿校正[J]. 声学与电子工程, 2005, (04) .
[10] 赵忠,何海涛,徐晓东. 基于系统芯片(SoC)的低成本电子罗盘的设计[J]. 测控技术, 2006
第 42 页 共 42 页
电子指南针
S09-5 S09-7 S09-9 S09-2 朱文 李天锡 谢超军 程瀚琳 电气电气电气电气
目录
电子指南针...................................................................................................................................1
目录............................................................................................... 错误!未定义书签。
一 引言........................................................................................................................4
。 1.1功能简介 本方案可以实现:...........................................................................4
1.......................................................................................图形及文字显示当前方向;4
2...........................................................................................................语音播报方向;4
3...................................................................................................................方向校正;4
4.......................................时钟功能,包括日期,时间,秒表,闹钟,语音报时。4
二 相关物理量介绍 5
1.磁场...............................................................................................................................5
2.磁感应强度...................................................................................................................6
3.磁通量...........................................................................................................................6
4.磁场方向.......................................................................................................................6
5.磁感线...........................................................................................................................6
6.地磁场...........................................................................................................................7
三.................................................................................................................................................10
系统硬件设计.............................................................................................................................10
四 .硬件电路..............................................................................................................20
六....................................................................................................................................34
软件设计........................................................................................................................34
(1)数据格式和命令字…………………………………………………………34
(2)编程实例……………………………………………………………………34
湖南工院毕业实践 基于单片机的指南针
一 摘要
指南针是一种重要的导航工具,可应用在多种场合中。电子指南
针内部结构固定,没有移动部分,可以简单地和其它电子系统接口,因此可代替旧的磁指南针。并以精度高、稳定性好等特点得到了广泛运用。 本文介绍了利用SPCE061A作为主控制器,结合电子指南针棋組设计的电子指南针。本系统具有良好的显示界面,可以读出当前的位置,实现-的功能包括图形及文字显示当前方向、语音播板方向、 方向枝正、显示日期、时间,秒表,闹钟,语音报时。
本文介绍了目前用于定位系统中的电子指南针的工作原理,详细论述了磁场传感器芯片KMZ52的工作原理,给出了用KMZ52磁场传感器设计电子指南针的总体设计方案和电路,同时给出了设计中的一些特殊处理方法。Philips公司生产的半导体器件KMZ52是一种专门用于电子指南针的二维磁场传感器。它采用磁场传感器的磁阻(MR)技术,并用翻转技术消除信号偏移,而用电磁反馈技术来消除温度的敏感漂移。由于外界存在干扰,该系统集成了几种特殊的抗干扰技术来提高系统精度。
关键词:SPCE061A,方向,电子指南针。
一 引言
指南针是航海航行的重要伩器,也是人们外出旅行、考察的必
备工具。使用单片机实现该系统,可以 很好的掌握单片机的应用,同时可以熟悉电子指南针的原理。
该方案具有很强的趣味性,配和SPLC501液晶模组,可以实现图形及文字显示当前方向、语音播报方向、方向校正、显示日期、时间,秒表,闹钟,语音报时等功能。
1.1功能简介
本方案可以实现:
1. 图形及文字显示当前方向;
2. 语音播报方向;
3. 方向校正;
4. 时钟功能,包括日期,时间,秒表,闹钟,语音报时。
二 相关物理量介绍 1.磁场
磁场是一种看不见,而又摸不着的特殊物质。磁体周围存在磁场,磁体间的相互作用就是以磁场作为媒介的。电流、运动电荷、磁体或变化电场周围空间存在的一种特殊形态的物质。由于磁体的磁性来源于电流,电流是电荷的运动,因而概括地说,磁场是由运动电荷或变化电场产生的。
磁场的基本特征是能对其中的运动电荷施加作用力,磁场对电流、对磁体的作用力或力距皆源于此。而现代理论则说明,磁力是电场力的相对论效应。
与电场相仿,磁场是在一定空间区域内连续分布的矢量场,描述磁场的基本物理量是磁感应强度矢量B ,也可以用磁感线形象地图示。然而,作为一个矢量场,磁场的性质与电场颇为不同。运动电荷或变化电场产生的磁场,或两者之和的总磁场,都是无源有旋的矢量场,磁力线是闭合的曲线族,不中断,不交叉。换言之,在磁场中不存在发出磁力线的源头,也不存在会聚磁力线的尾闾,磁力线闭合表明沿磁力线的环路积分不为零,即磁场是有旋场而不是势场(保守场),不存在类似于电势那样的标量函数。
2.
与磁力线方向垂直的单位面积上所通过的磁力线数目,又叫磁力线的密度,也叫磁通密度,用B表示,单位为特(斯拉)T。
3.
磁通量是通过某一截面积的磁力线总数,用Φ表示,单位为韦伯(Weber),符号是Wb。 通过一线圈的磁通的表达式为:Φ=B·S(其中B为磁感应强度,S为该线圈的面积。) 1Wb=1T·m2
4.磁场方向
规定小磁针的北极在磁场中某点所受磁场力的方向为该电磁场的方向。从北极出发到南极的方向,在磁体内部是由南极到北极,在外可表现为磁感线的切线方向或放入磁场的小磁针在静止时北极所指的方向!磁场的南北极与地理的南北极正好相反,且一端的两种极之间存在一个偏角,称为磁偏角!磁偏角不断地发生缓慢变化!掌握磁偏角的变化对于应用指南针指向具有重要意义!
5.磁感线
在磁场中画一些曲线,使曲线上任何一点的切线方向都跟这一点的磁场方向相同,这些曲线叫磁力线。磁力线是闭合曲线。规定小磁针的北极所指的方向为磁力线的方向。磁铁周围的磁力线都是从N极出来进入S极,在磁体内部磁力线从S极到N极。
电磁场是电磁作用的媒递物,是统一的整体,电场和磁场是它紧密联系、相互依存的两个侧面,变化的电场产生磁场,变化的磁场产生电场,变化的电磁场以波动形式在空间传播。电磁波以有限的速度传播,具有可交换的能量和动量,电磁波与实物的相互作用,电磁波与粒子的相互转化等等,都证明电磁场是客观存在的物质,它的“特殊”只在于没有静质量。
磁现象是最早被人类认识的物理现象之一,指南针是中国古代一大发明。磁场是广泛存在的,地球,恒星(如太阳),星系(如银河系),行星、卫星,以及星际空间和星系际空间,都存在着磁场。为了认识和解释其中的许多物理现象和过程,必须考虑磁场这一重要因素。在现代科学技术和人类生活中,处处可遇到磁场,发电机、电动机、变压器、电报、电话、收音机以至加速器、热核聚变装置、电磁测量仪表等无不与磁现象有关。甚至在人体内,伴随着生命活动,一些组织和器官内也会产生微弱的磁场。地球的磁级与地理的两极相反。 安培力:(左手定则)F=BIL*Sinθ
洛伦兹力:(左手定则)【微观上】F=qvBSinθ
6.地磁场
地磁场(geomagnetic field)是从地心至磁层顶的空间范围内的磁场。地磁学的主要研究对象。人类对于地磁场存在的早期认识,来源于天然磁石和磁针的指极性。地磁的北磁极在地理的南极附近;地磁的南磁极在地理的北极附近。磁针的指极性是由于地球的北磁极(磁
性为S极)吸引着磁针的N极,地球的南磁极(磁性为S极)吸引着磁针的N极。这个解释最初是英国W.吉伯于1600年提出的。吉伯所作出的地磁场来源于地球本体的假定是正确的。这已为1839年德国数学家C.F.高斯首次运用球谐函数分析法所证实。
地磁的磁感线和地理的经线是不平行的,它们之间的夹角叫做磁偏角。中国古代的著名科学家沈括是第一个注意到磁偏角现象的科学家。
地磁场是一个向量场。描述空间某一点地磁场的强度和方向,需要3个独立的地磁要素。常用的地磁要素有7个,即地磁场总强度F,水平强度H,垂直强度Z,X和Y分别为H的北向和东向分量,D和I分别为磁偏角和磁倾角。其中以磁偏角的观测历史为最早。在现代的地磁场观测中,地磁台一般只记录H,D,Z或X,Y,Z。
近地空间的地磁场,像一个均匀磁化球体的磁场,其强度在地面两极附近还不到1高斯,所以地磁场是非常弱的磁场。地磁场强度的单位过去通常采用伽马(γ),即1纳特斯拉。1960年决定采用特斯拉作为国际测磁单位,1高斯=10^(-4)特斯拉(T),1伽马=10^(-9)特斯拉=1纳特斯拉(nT),简称纳特。地磁场虽然很弱,但却延伸到很远的空间,保护着地球上的生物和人类,使之免受宇宙辐射的侵害。 地磁场包括基本磁场和变化磁场两个部分,它们在成因上完全不同。基本磁场是地磁场的主要部分,起源于地球内部,比较稳定,变化非常缓慢。变化磁场包括地磁场的各种短期变化,主要起源于地球外部,并且很微弱。
地球的基本磁场可分为偶极子磁场、非偶极子磁场和地磁异常几个组成部分。偶极子磁场是地磁场的基本成分,其强度约占地磁场总强度的90%,产生于地球液态外核内的电磁流体力学过程,即自激发电机效应。非偶极子磁场主要分布在亚洲东部、非洲西部、南大西洋和南印度洋等几个地域,平均强度约占地磁场的10%。地磁异常又分为区域异常和局部异常,与岩石和矿体的分布有关。
地球变化磁场可分为平静变化和干扰变化两大类型。平静变化主要是以一个太阳日为周期的太阳静日变化,其场源分布在电离层中。干扰变化包括磁暴、地磁亚暴、太阳扰日变化和地磁脉动等,场源是太阳粒子辐射同地磁场相互作用在磁层和电离层中产生的各种短暂的电流体系。磁暴是全球同时发生的强烈磁扰,持续时间约为1~3天,幅度可达10纳特。其他几种干扰变化主要分布在地球的极光区内。除外源场外,变化磁场还有内源场。内源场是由外源场在地球内部感应出来的电流所产生的。将高斯球谐分析用于变化磁场,可将这种内、外场区分开。根据变化磁场的内、外场相互关系,可以得出地球内部电导率的分布。这已成为地磁学的一个重要领域,叫做地球电磁感应。 地球变化磁场既和磁层、电离层的电磁过程相联系,又和地壳上地幔的电性结构有关,所以在空间物理学和固体地球物理学的研究中都具有重要意义。
地磁场
三
系统硬件设计
图3.1为电子指南针的系统框图,采用SPCE061A作为主控制器向电子指南针模组发送命令,然后接收返 回的信息,最后信息用于各种显示。
图3.1电子指南针系统框图
图3.2为电子指南针的硬件连接图。
图3.2为电子指南针的硬件连接图
.3.1 SPECE061A芯片简介
SPCE061A是一款基于μ’nSP内核的16位单片机,与SPCE501不同的是,在存储器资源方面考虑到用户对资源的需求较少以及便于程序调试等功能,SPCE061A里只嵌32K字的闪存.较高的处理速度使μ’nSP非常容易快速地处理复杂的数字信号。其芯片特性如下:
工作电压:内核工作电压VDD为3.0~3.6V(CPU),I/O口工作电压VDDH为VDD~5.5V;
CPU时钟:0.32MHz~49.152MHz;
内置2K字SRAM和32K字闪存ROM;
系统处于备用状态下(时钟处于停止状态),耗电小于2μ[email protected]; 具备触键唤醒的功能;
32位通用可编程输入/输出端口;
2个16位可编程定时器/计数器(可自动预置初始计数值);
7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;
2个10位DAC(数-模转换)输出通道;
14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒; 具备串行设备接口;
低电压复位(LVR)功和低电压监测(LVD)功能;
内置在线仿真(ICE,In- Circuit Emulator)接口。
SPCE061A的内部结构框图如图 2.3所示。
图 3.3 SPCE061A内部结构图
3.2 SPLC501液晶模组特性
SPLC501 液晶模组具有以下特性:
显示模式:黄色模式STN 液晶;
显示格式:128×64 点阵的图形液晶;
输入数据:兼容68/80 系列MPU 时序。
SPLC501 液晶模组的实物图如图 2.4所示
图 2.3 SPLC501液晶模组
3.3电子指南针模组
电子指南针模组由PNI公司高可靠性的磁通传感器及驱动芯片组成,集成度非常高,实现了高可靠性、高精度、强抗磁场干扰的数码电子指南针功能。电子指南针模组有两个磁性传感器SEN-S65和一个驱动芯片PNI-11096构成。磁性传感器SEN-S65里面包含一个LR振荡电路,当磁性传感器SEN-S65与地球磁感线平行方向夹角发生变化时,LR振荡电路的磁感应系数也会发生变化。驱动芯片PNI-11096通过磁性传感器SEN-S65磁感应系数的变化可以计算出磁性传感器与地球磁感线之间的
夹角,驱动芯片PNI-11096最多可以连接三个磁性传感器SEN-S65,这三个磁性传感器SEN-S65方向互为垂直,这样就可以测量在三维方向上与地球磁感线的夹角,从而得到当前的三维方向。
电子指南针模组只要得到水平方向上与地球磁感线的夹角就
可以测得方向了,因此驱动芯片PNI-11096 上使用了二个磁性传感器SEN-S65。电子指南针模组电路如图3.5。
图 3.5 电子指南针模组电路图
电子指南针模组采用SPI接口输入与输出,61板使用IO口模拟SPI接口与电子指南针模组通讯。SPI总线时序如图 3.6。
图 3.6 SPI总线时序图
从SPI总线时序图 3.6可以看出首先上位机发送1个字节的命令字,命令字指定了电子指南针模组的工作模式;当电子指南针模组准备好数据时,DRDY数据线变为高电平;然后从电子指南针模组读出
2个字节的数据。控制电子指南针模组的命令字如表 3.1。
表 3.1 电子指南针模组命令字
AS1,AS0决定测量哪个轴如表 3.2。
表 3.2 AS1、AS0选择测量轴
MOT 当置位为1,各个方向轴上的磁性振荡管可以由AS1、AS0选择
ODIR 当MOT位为1时,
ODIR将决定磁性震荡管的方向,当MOT位为0时此位无效。注意此位只在调试模式下使用,正常模式下不使用。
PS0、PS1、PS2决定磁性传感器SEN-S65L/R磁性振荡器的频率,如表3.3。
表 3.3 L/R磁性振荡器频率选择
从电子指南针模组得到X轴方向和Y轴方向测量数据后,根据公
式angle = atan(y / x)就可以计算出与正北方向的顺时针夹角了。注意坐标轴的方向与平时使用的不一样,X轴正半轴方向指向正北,如图3.7。
图 3.7 电子指南针方向坐标系
在理想状态下,X轴测量数据与Y轴测量数据变化范围都应是-32768~32767之间,X轴数据与Y轴数据刚好构成一个正圆形如图 3.7,但实际测量中,X轴测量数据与Y走测量数据最大值或最小值均达不到-32768~32767这个范围,则导致这两个数据构成的图形成为一个中心不在原点的椭圆形,如图 3.8。
图 3.8 电子指南针模组实际测量坐标图
为了得到准确的方向值必须对电子指南针模组返回的数据进行校正,这就需要电子指南针模组进入校正模式得到四个校正参数,分别是椭圆中心的坐标和椭圆两个半轴的长度。电子指南针模组校正模式执行的操作为持续纪录X轴、Y轴测量数据的最大值和最小值,因此在校正模式下要不停的旋转电子指南针模组来得到尽可能精确的X轴、Y轴测量数据的最大值和最小值。得到X轴、Y轴测量数据的最大值和最小值后就可以求出四个校正参数了。每次开机或每到一个新地方都应该进入校正模式,重新获得校正参数。电子指南针模组X轴、Y轴测量数据经过校正后,形成的坐标系如图 3.9。
图3.9 电子指南针模组校正后测量坐标图
四 .硬件电路
4.1 SPCE061A最小系统
本方案使用61板座位单片机最小系统。61板包括SPCE061A芯片及外围的基本模版,外围模版包括:晶振输入模块(OSC),锁相环外围电路(PLL),
复位电路(RESET),指示灯(LED)等,如图4.1所示
图4.1 SPCE061A最小系统
4.2 LCD显示器
SPLC501液晶模组提供的LCD显示器采用凌阳SPLC501液晶驱动芯片,点阵分辨率为128×64。SPLC501液晶模组的电路图如图4.2所示第 21 页 共 42 页
图 4.2 SPLC501液晶模组的电路图
系统软件设计
本系统包括下面程序模块:
主 程 序: 首先完成硬件模块的初始化,显示主界面,进行键盘扫描, 处理键盘信息,再根椐键值跳转到各功能子模块;
第 22 页
共 42 页
4
键盘扫描程序: 完成对61板三个按键的扫描并加入去抖功能;
PNI11096驱动程序: 模拟SPI时序完成对PNI11096的控制及读取数据;
SPLC501驱动程序: 驱动SPLC501 LCD ;
电子指南针各功能子程序:实现命令的发送与接收、数据校正、图形显示、方向数值显示;
时钟功能程序: 实现显示时间、日期及秒表,闹铃功能;
语音播报程序: 实现方向、日期时间语音播报。
五 主程序
主程序流程如图5.1。程序运行后首先初始化各个硬件模块,校正指南针模组,然后程序进入主循环,不停的读取指南针模组的方向并显示,同时进行按键扫描,根据按键进入相应的功能模块。
第 23 页 共 42 页
图 5.1 主程序流程图
5.2 键盘扫描程序
键盘扫描程序提供如下三个API函数供用户使用。
函数:void Key_Init(void)
描述:键盘初始化函数,设置IOA口低三位为下拉输入方式。
参数:无
返回值:无
程序:void Key_Scan(void)
描述:键盘扫描函数,每执行一次,对键盘进行一次扫描。利用128Hz中断调用该函数,完成获取键值及去抖功能。
参数:无
返回值:无
第 24 页
共 42 页
程序:int Key_GetValue(void)
描述:得到键值函数,判断当前是否有键按下
参数:无
返回值: 按下返回键值,没有按下返回0
5.3 PNI11096驱动程序
61板通过IO口模拟SPI接口与电子指南针模组模组通信。PNI11096驱动程序包括二个函数,PNI11096驱动程序分别是初始化函数、PNI11096驱动程序读取函数。
PNI11096驱动程序读取函数的程序流程如图5.2。
第 25 页 共 42 页
图 5.2 PNI11096驱动程序读取函数的程序流程图
5.4 液晶驱动程序
LCD显示部分采用SPLC501液晶模组附带的驱动程序。该驱动程序的架构如图5.3所示。
第 26 页
共 42 页
图 5.3 LCD驱动程序架构
驱动程序由5个文件组成,分别为:底层驱动程序文件SPLC501Driver_IO.inc、SPLC501Driver_IO.asm;用户API功能接口函数文件SPLC501User.h、SPLC501User.c、DataOSforLCD.asm。
SPLC501Driver_IO.inc:该文件为底层驱动程序的头文件,主要对使用到的寄存器(如端口控制寄存器等)进行定义,还对SPCE061A与SPLC501液晶显示模组的接口进行配置;用户可以根据自已的需求来配置此文件,但要使端口的分配符合实际硬件的接线。
第 27 页
共 42 页
SPLC501Driver_IO.asm:该文件为底层驱动程序,负责与SPLC501液晶显示模组进行数据传输的任务,主要包括端口初始化、写控制指令、写数据、读数据等函数;这些函数仅供SPLC501User.c调用,不建议用户在应用程序中调用这些函数。
SPLC501User.h:该文件为用户API功能函数文件的头文件,主要对一些记住符进行定义,以及配置LCD的一些设置,另外该文件里还对SPLC501User.c中的函数作了外部声明,用户需要使用LCD的API功能函数时,需要把该文件包含在用户的C文件中。
SPLC501User.c:文件中定义了针对LCD显示的各种API功能函数。 DataOSforLCD.asm:该文件中提供了一些供API功能函数调用的数据处理子程序,主要完成显示效果的叠加、画圆偏差量的计算等。
5.5 电子指南针校正程序
校正命令的原理是尽可能精确得到X轴、Y轴测量数据的最大极值和最小极值。利用公式:
Xoffset = (Xmax + Xmin)/ 2
Yoffset = (Ymax + Ymin)/ 2
Xrange = Xmax – Xmin
Yrange = Ymax – Ymin
分别得到X轴、Y轴测量数据所形成椭圆的中心点坐标(Xoffset,Yoffset)和椭圆两个轴的长度Xrange、Yrange。程序流程如5.4。
第 28 页 共 42 页
4.6 电子指南针发送命令程序
系统通过PNI11096驱动向电子指南针模组发送命令字,电子指南针模组根据命令返回相应的数据,根据返回的数据计算与正北方向的顺时针角度值。程序流程图如图5.5所示。
第 29 页
共 42 页
5.7 更新时钟程序
此程序在2Hz时基中断中调用,每0.5秒更新一次时间。更新时钟程序流程图 如图5.6。
第 30 页
共 42 页
5.8 更新日期程序
此程序在2Hz时基中断中调用,更新日期、月份、年份。更新日期程序
流程图如图 5.7。
图 5.7 更新日期程序流程图
5.9 更新秒表程序
选择菜单项“秒表”系统可以实现秒表计时功能,1KHz时基中断实现秒表计时。更新秒表程序流程图如图4.8。
图 5.8 更新秒表程序流程图
5.10 设置日期时间程序
选择菜单项“时间设置”可以对日期时间进行设置。设置日期时间程序流程图如
图 5.9。
六 软件设计
(1)数据格式和命令字
V2XE有Big Endian和Little Endian两种数据格式。Big Endian类型数据是从高位到低位存放,little Editan数据是倒序存放。即在最高8位依次放最低8位的数据。在最低8位依次放最高8位的数据,如图2所示。带有数据的命令格式由开始标志(Sync Flay)、指令类别(Frame Type)和结束标志(Terminator)组成。图3所示是一个带有参数Heading(0X02)和Magnitude(OX05)的aC0mp0nents(OX03)命令构成。V2XE常用命令字包括Modln.foRespSetDataComponentGetData、DataResp Config、GetConfig、ConfigResp和SaveConfig。其指令码和功能如表2所示。
(2)编程实例
SPI接口的数据接收和发送是同步的。V2XE每接收一个数据时将会发出OXO0。当V2XE发送命令的应答时。它将不处理任何输入的数据。因此,在主机获取V2XE数据时,应是发送和接收同时进行。用C语言编写发送一接收函数SP皿阳Ilsmit如下: GetModlnfoOxO1 获得芯片的版本号
ModlnfoResp 0x02 返回芯片的版本号
SetDataComponent0xO3 设置需要获得的数据
GetData 0x04 获取V2XE的数据
D 根据SetDataComponent返回获
ataReep 0x'05 得的V2XE数据
$etConfig 0x06 设置V2XE的各个参数
GetConfig 0如7 获得当前V2XE的参数 ConfigResp O柏8 返回V2XE的参数 SaveContig O柏9 保存设置的参数 开始标志I指令类别l参数个数I参数一I参数二I结束标志 0xaa 1 0x03 I Ox02 1 0x02 l 0x05 l 0x00 { unsigned char i,receive_ data; receive_data=0: for(i-0;i
一个V2XE系统的典型应用流程如图4所示 V2XE出厂时.都在其ROM中固化了芯片的 MSB l l l LSB Big Endian Little Endian 图2 V2XE的数据结构 维普资讯 http://www.cqvip.com 新的V2XE型地磁传感器在单片机系统中的应用 一69一 图4 应用程序流程 版本号。用户第一次应用V2XE系统可首先读出该 版本号以判断器件是否正常工作。可先向V2XE发 送命令GetModInfo。然后读取返回值ModInfoResp。 其程序如下: int V2EX
_ GetModulelnfo0 { unsigned char count; SPITransmit(kSyncChar); //开始标志0XAA SPITransmit(kGetModInfo); //龠4-$0X01 SPITransmit(kTerminator); ||姥慕标志0X00 while(SPITransmit(0)!=kSyncChar); ,,等待V2XE返回值.返回值以0XAA开始 Lnop_0; ) if(SPITransmit(0)=-kModInfoResp) { ’ count=7; ,/版本号为8位无符号数 while(count>=o) { C0Unt一一; verson[count]=(SPITransmit(0)); //读取V2XE的 返回值 l 1. return 1: ) else
return 0:
}
这样,获得的芯片信息存放在数组verson中,可以根据读取的值和实际版本号(V2XEV201)比对以确定系统是否正常工作。如果系统正常。首先要根据需要设置返回数据格式以确定V2XE返回这些用户感兴趣的值,主要包括地磁方向角、磁场强度、温度和校准状态位等。另外,还要设置一些初始化参数,Declination(本地的地磁角。可以从获得)、True North(设置参照角度为地磁北脚)、BigEndian(选择数据的大、小模式)、Dampingsize(数据缓冲区,将缓冲区里的数据平均后作为V2XE的实际输出)。在V2XE的实际应用中,常常需要校准,常用命令包括StartCal、StopCal、GetCalData、CalDataResp和SetCalData,其指令代码和功能描述如表3所示。在校准过程中,V2XE装置要尽量水平放置。从开始校准到结束校准过程中需将装置原地旋转两周,每转的时间不得小于30s。校准完成后,可以查询参数calstate来判断校准是否成功。完成参数设置和校准
等初始化工作后。可以通过发送指令GetData(oxo4)来获取V2XE的数据。对
V2XE每发送命令一次必须将其输出全部读出,否则会影响下一次的正常输出。
七 心得
毕业日子的到来,毕业设计也接近了尾声。经过几周的奋战我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计知识对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点片面。毕业设计不仅是对面前所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西也太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。
毕业设计是我们作为学生在学习阶段的最后一个环节,是对所学基础知识和专业知识的一种综合应用,是一种综合的再学习,再提高的过程,这一过程对学生的学习能力和独立思考及工作能力也是一个培养,同时毕业设计的水平也反映了大学教育的综合水平,因此学校十分重视毕业设计这一环节,加强了对毕业设计工作的指导和动员教育。在大学的学习过程中,毕业设计是一个重要的环节,是我们步入社会参与实际工作的一次极好的演示,也是对我们自学能力和解决问题能力的一次考验,是学校生活与社会生活间的过渡。在完成毕业设计的时候,我尽量的把毕业设计和实际工作有机的结合起来,实践与理论相结合。这样更有利于自己能力的提高。
社会是在不断的变化,发展的,眼下社会变革迅速,对人才的要求也越
来越高,要用发展的眼光看问题,要学会学习,学会创新,学会适应社会的发展要求。在走出校园,迈向社会之即,把我今天,才能创造未来,老师的熏陶和教诲,使我懂得了更多处世为人的道理,有了一定的创新精神和钻研精神。
在完成毕业设计的这段时间里,我收获颇多:
通过这次毕业设计让我对电子指南针的设计加深了了解学到了许多在学校课堂里学不到的知识,是一个非常好的学习机会和锻炼。
其实我们可以把毕业设计看作是一个工作内容,在完成毕业设计的时候,所用到的知识,以及所具备的专注力和责任心,同样在工作中是必不可少的。由于社会生活的变革和科技进步对社会及个人的影响,认为学校能满足人生所有教育需要的理性主义幻想已经破灭。社会的发展要求劳动者不断更新知识,每个人的职业不可能终身不变。这一切都要求现在的学生除获取一定的理论知识和技能外,还必须培养自己进一步学习的能力。而教育的改革和发展,既要反映当代社会的实际需求,更要充分考虑社会的发展趋势。 理论与实际相结合,不仅包括课堂上学的有关知识要与技能训练相结合,还包括要引导学生了解和接触社会实际的内容。学生进行必要设计,是在专业理论知识的指导下,通过各种方式,解决一些实际性的问题。在设计过程中,学生可将所学的理论知识运用到实践中,使之转化成更高层次的经验,技能和技巧。由于现行的教学模式,理论知识与技能,尤其是生产实践存在着严重的脱节,学生无法将他们课堂上学习的理论知识与现实生产问题联系起来,使之学不能致用。而增加毕业设计这一环节,通过合理选择课题,引导学生有意识地系统运用所学知识和技能,去分析思考,有助于理论知识
与实践有机的结合。
任何事情都是一分为二的,在毕业设计过程中也暴露出自己专业基础的很多不足之处。例如对知识综合运用的技巧的缺乏,对材料了解的不够透彻,等等。赶紧自己所学习的只是冰山一角,面对稍微复杂的东西还是没能得心应手,再一次体会到学无止境的意义了。
本毕业设计是在刘老师的悉心指导下完成的。从课题的开题,选题到设计和制作,再到本论文的撰写到定稿的每一步工作都倾注着刘老师的心血和汗水,同时得到同学们的相助,并提供了大量的资料。在此,对于老师和同学们的帮助表示衷心的感谢。
电气S09-5 朱文
第 41 页 共 42 页
八 参考文献
[0]罗亚非.凌阳16位单片机应用基础[M]. 北京:北京航空航天大学出版社,2003 [1] 邵婷婷,马建仓,胡士峰,王超. 电子罗盘的倾斜及罗差补偿算法研究[J]. 传感技术学报, 2007, (06) .
[2] 邱丹,黄圣国. 电子罗盘在航向系统的应用[J]. 江苏航空, 2006, (02) .
[3] 彭树生. 数字电子罗盘HMR3000的特性及应用[J]. 电子技术, 2004, (08) .
[4] 朱学斌. 基于MAX155和KMZ52的电子指南针的实现[J]. 鲁东大学学报(自然科学版), 2006, (04) .
[5] 姜立中. 电子罗盘[J]. 电子世界, 1999, (06) .
[6] 赵毅强,管大年,陈豪敏. 电子罗盘在精确定位平台中的应用[J]. 传感技术学报, 2005, (01) .
[7] 李硕,李小民. 电子罗盘在无人机飞控器中的应用[J]. 兵工自动化, 2007, (12) .
[8] 蒋贤志. 数字电子罗盘误差分析及校正技术研究[J]. 现代雷达, 2005, (06) . [9] 汪雪莲. 电子罗盘的方位测量误差及其补偿校正[J]. 声学与电子工程, 2005, (04) .
[10] 赵忠,何海涛,徐晓东. 基于系统芯片(SoC)的低成本电子罗盘的设计[J]. 测控技术, 2006
第 42 页 共 42 页