资源描述
沈阳航空工业学院电子信息工程学院毕业设计(论文)第1章 课题来源及方案论证1.1 课题来源GPS通信定位系统目前广泛应用于航空、航天、军事、交通、地质勘探、安保跟踪等各种领域。如何有效利用GPS系统(未来我国的北斗系统)为国民经济建设服务,是我们重要的研究任务。 本毕业设计任务来源于“无人机编队飞行”课题,是其中的一个子课题。无人机在现代军事中有举足轻重的作用,无论是单机侦查还是编队飞行轰炸、喷洒农药,无人机都能出色的完成任务。但在高空飞行时由于气流等原因,会造成机翼倾斜,甚至坠机。为防止这类事件的发生,基于GPS的姿态测量系统的设计应运而生。任务要求为:通过安装在无人机上的GPS接收机(25个),初步测量出无人机的飞行姿态,进行显示。1.2 方案设计1.2.1 GPS的基本原理概述GPS是一种精密的卫星导航系统。该系统由24颗绕地球旋转的卫星组成,卫星连续不断地发送位置和时间信息。这些卫星均匀地分布在6个轨道上,每个轨道有4 颗卫星。地面GPS接收机可接收5到12颗卫星信号。为实现地面定位功能,GPS接收机至少需要接收4个卫星信号,其中3个信号用来计算GPS接收机的纬度、经度和海拔高度,第四个信号提供同步时间校准。GPS系统主要分为三个部分:其一、卫星,在天上提供定位信息;其二、控制系统,在地面维护卫星的正常运转,保证卫星的健康状态;其三、接收机,一般用户所使用的部分。其定位原理是将地球分为12个横切面,每个横切面上有两颗定位卫星,互成180的夹角,因而站在地球上的任一点,头顶上总有十二颗定位卫星。卫星与卫星之间的距离、坐标和角度是已知的,卫星和人之间的距离是可测量的,根据几何原理,通常接收机只要接到三颗卫星的信息便可确定二维坐标即经纬度,接收到四颗卫星的信息便可确定海拔高度。GPS可以输出实时定位数据让其他的设备使用,这就涉及到了数据交换协议NMEA 0183。它是一种航海、海运方面有关于数字信号传递的标准,此标准定义了电子信号所需要的传输协议,传输数据时间、并且指明了信息格式需要一个4800bps的串行数据接口。1.2.2 方案设计本方案是将2个GPS接收机分别安装在无人机机身中心和某一机翼翼尖上,GPS输出的实时定位数据经单片机1解译并计算后,得到飞机机身中心和翼尖的海拔高度信息及飞机的姿态信息,这些信息通过无线传输系统发送到地面的单片机2,由单片机2控制飞行高度显示器和飞机姿态显示器进行输出显示。系统框图如图1所示。GPS接收机1GPS接收机2单片机1飞机姿态显示器飞行高度显示器单片机2无线传输系统无线传输系统图1 无人机姿态测量系统原理方框图但是由于实验条件和本人能力有限,系统中的无线传输部分不做讨论。故在上述实际系统的基础上设计实验方案为将两个GPS接收机分别安装在机身中心和某一机翼翼尖上,GPS输出的实时定位数据经单片机解译后,直接输出到飞行高度显示器和飞机姿态显示器,对飞机的高度和姿态进行实时的显示,以验证姿态测量系统的功能。系统框图如图2所示。系统由GPS接收机、单片机、飞行高度显示器、飞机姿态显示器四个部分构成。飞行高度显示器是由数码管循环显示机身中心点的高度和翼尖高度。飞机姿态显示器是由一列水柱式发光二极管显示无人机机翼倾斜情况,即形象显示无人机飞行姿态,同时机翼的平衡、上倾、下倾三种状态由另外两个红、绿发光二极管显示。GPS接收机1GPS接收机2单片机飞机姿态显示器飞行高度显示器图2 无人机姿态测量实验系统原理方框图系统中单片机采用AT89S51,它是常见且性价比较高的单片机。单片机将安装在机身中心的GPS接收机1输出的高度信息数据按照NMEA 0183协议解译后,由数码管输出显示高度信息。同时,单片机将安装在翼尖的GPS接收机2输出的高度信息数据解译后由数码管输出显示高度信息,并与GPS接收机1的输出数据进行比较,由水柱式发光二极管显示翼尖相对于机身中心的高度偏差值。另外,绿色的发光二极管点亮时代表飞机平衡,红色的发光二极管点亮代表所测机翼上倾,两个发光二极管均不亮代表所测机翼下倾,这样就为姿态遥控系统提供了姿态调整信号表1.1列出了水柱式发光二极管显示值和相对高度之间的对应关系及相应的姿态调整信号,其中,“1”表示发光二极管亮,机翼长度为60cm。表1.1发光二极管显示与对应高度关系及相应的姿态调整信号表翼尖相对于机身中心点高度(cm)-60-40-200204060水柱式发光二极管显示00000001000000110000011100001111000111110011111101111111姿态调整信号红色发光二极管显示001绿色发光二极管显示0101.2.3 GPS接收机的选择论证GPS接收机是系统的关键部件,其性能直接影响系统的质量。由设计需要,在下列5种导航型接收机中做选择。1索佳 STRATUS 技术指标:静态测量精度:5mm+1ppm(平面)/10mm+2ppm(高程) 动态测量(走走停停)精度:12mm+2.5ppm(平面)/15mm+2.5ppm(高程)通道数:12 通道内存:4 MB记录时间:55 小时(采样间隔 10 秒)通讯端口:电缆通讯、红外通讯尺寸:125mm155mm2NewStar220E 技术指标:垂直位置精度: 3.5米(1)通道数:并行16通道定位更新率:1Hz、4Hz垂直速度精度:0.15 米 / 秒(1)输出接口:2个RS232串口(TTL)或2个RS232串口(RS232C)可选工作电压:5VDC 10%3AG20-H技术指标垂直位置精度:10米通道数:并行12通道定位更新率:1Hz、5Hz、10Hz输出接口:2个标准串口(TTL电平或RS232电平)速度精度:0.1 米 / 秒工作电压:5VDC 10%4holux m-87技术指标定位精度:3.0m (2dRMS)DGPS (WAAS,EGNOS,MSAS,RTCM)定位精度:2.5m(RMS)(典型)接口:两个CMOS/TTL串行口,其中一个串行输入作为差分输入(DGPS)提供修正量;一个NMEA 输出端口尺寸:25.4x25.4x3mm输入电压:3.5V5.0V,VBAT 3.05.0V结论:比较上述四种接收机,其输出接口、工作电压等技术指标基本相同,都符合设计需要,但鉴于无人机姿态测量的高度精度要求,故理论上应选择精度最好的索佳STRATUS GPS接收机。但由于实验经费限制,实验时选择holux m-87。第2章 系统硬件设计本章主要对实验系统的各部分硬件原理做简要的介绍,并详细阐述系统各部分电路的设计与功能的实现。系统硬件包括GPS接收机、数据选择器、高度显示器及姿态显示器。其中,鉴于GPS接收机在本系统中的重要作用,对于GPS定位系统相关原理及应用做了比较详细的介绍。2.1 GPS的原理及应用2.1.1 GPS的构成GPS的全称:卫星测时测距导航全球定位系统 Navigation Satellite Time and Ranging/Global Positioning System。GPS由三部分构成:1. 空间部分GPS的空间部分是由24 颗工作卫星组成,它位于距地表20200km的上空,均匀分布在6 个轨道面上(每个轨道面4颗),轨道倾角为55。此外,还有4 颗有源备份卫星在轨运行。卫星的分布使得在全球任何地方、任何时间都可观测到4 颗以上的卫星,并能保持良好定位解算精度的几何图象。这就提供了在时间上连续的全球导航能力。GPS卫星产生两组电码,一组称为C/ A 码( Coarse/ Acquisition Code11023MHz);一组称为P 码(Procise Code 10123MHz),P码因频率较高,不易受干扰,定位精度高,因此受美国军方管制,并设有密码,一般民间无法解读,主要为美国军方服务。C/ A 码人为采取措施而刻意降低精度后,主要开放给民间使用。2. 地面控制部分地面控制部分由一个主控站,5个全球监测站和3个地面控制站组成。监测站均配装有精密的铯钟和能够连续测量到所有可见卫星的接收机。监测站将取得的卫星观测数据,包括电离层和气象数据,经过初步处理后,传送到主控站。主控站从各监测站收集跟踪数据,计算出卫星的轨道和时钟参数,然后将结果送到3个地面控制站。地面控制站在每颗卫星运行至上空时,把这些导航数据及主控站指令注入到卫星。这种注入对每颗GPS卫星每天一次,并在卫星离开注入站作用范围之前进行最后的注入。如果某地面站发生故障,那么在卫星中预存的导航信息还可用一段时间,但导航精度会逐渐降低。3. 用户设备部分用户设备部分即GPS信号接收机。其主要功能是能够捕获到按一定卫星截止角所选择的待测卫星,并跟踪这些卫星的运行。当接收机捕获到跟踪的卫星信号后,就可测量出接收天线至卫星的伪距离和距离的变化率,解调出卫星轨道参数等数据。根据这些数据,接收机中的微处理计算机就可按定位解算方法进行定位计算,计算出用户所在地理位置的经纬度、高度、速度、时间等信息。接收机硬件和机内软件以及GPS 数据的后处理软件包构成完整的GPS用户设备。GPS接收机的结构分为天线单元和接收单元两部分。接收机一般采用机内和机外两种直流电源。设置机内电源的目的在于更换外电源时不中断连续观测。在用机外电源时机内电池自动充电。关机后,机内电池为RAM存储器供电,以防止数据丢失。目前各种类型的接受机体积越来越小,重量越来越轻,便于野外观测使用。地面控制系统由监测站(Monitor Station)、主控制站(Master Monitor Station)、地面天线(Ground Antenna)所组成,主控制站位于美国科罗拉多州春田市(Colorado Spring)。地面控制站负责收集由卫星传回之讯息,并计算卫星星历、相对距离,大气校正等数据。其次则为使用者接收器,现有单频与双频两种,但由于价格因素,一般使用者所购买的多为单频接收器。2.1.2 GPS的基本原理综述GPS定位系统的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。要达到这一目的,卫星的位置可以根据星载时钟所记录的时间在卫星星历中查出。而用户到卫星的距离则通过纪录卫星信号传播到用户所经历的时间,再将其乘以光速得到(由于大气层电离层的干扰,这一距离并不是用户与卫星之间的真实距离,而是伪距(PR):当GPS卫星正常工作时,会不断地用1和0二进制码元组成的伪随机码(简称伪码)发射导航电文。GPS系统使用的伪码一共有两种,分别是民用的C/A码和军用的P(Y)码。C/A码频率1.023MHz,重复周期一毫秒,码间距1微秒,相当于300m;P码频率10.23MHz,重复周期266.4天,码间距0.1微秒,相当于30m。而Y码是在P码的基础上形成的,保密性能更佳。导航电文包括卫星星历、工作状况、时钟改正、电离层时延修正、大气折射修正等信息。它是从卫星信号中解调制出来,以50b/s调制在载频上发射的。导航电文每个主帧中包含5个子帧每帧长6s。前三帧各10个字码,每三十秒重复一次,每小时更新一次。后两帧共15000b。导航电文中的内容主要有遥测码、转换码、第1、2、3数据块,其中最重要的则为星历数据。当用户接受到导航电文时,提取出卫星时间并将其与自己的时钟做对比便可得知卫星与用户的距离,再利用导航电文中的卫星星历数据推算出卫星发射电文时所处位置,用户在WGS-84大地坐标系中的位置速度等信息便可得知。可见GPS导航系统卫星部分的作用就是不断地发射导航电文。然而,由于用户接受机使用的时钟与卫星星载时钟不可能总是同步,所以除了用户的三维坐标x、y、z外,还要引进一个t即卫星与接收机之间的时间差作为未知数,然后用4个方程将这4个未知数解出来。所以如果想知道接收机所处的位置,至少要能接收到4个卫星的信号。GPS接收机可接收到可用于授时的准确至纳秒级的时间信息;用于预报未来几个月内卫星所处概略位置的预报星历;用于计算定位时所需卫星坐标的广播星历,精度为几米至几十米(各个卫星不同,随时变化);以及GPS系统信息,如卫星状况等。 GPS接收机对码进行测量就可得到卫星到接收机的距离,由于含有接收机卫星钟的误差及大气传播误差,故称为伪距。对0A码测得的伪距称为UA码伪距,精度约为20米左右,对P码测得的伪距称为P码伪距,精度约为2米左右。 GPS接收机对收到的卫星信号,进行解码或采用其它技术,将调制在载波上的信息去掉后,就可以恢复载波。严格而言,载波相位应被称为载波拍频相位,它是收到的受多普勒频移影响的卫星信号载波相位与接收机本机振荡产生信号相位之差。一般在接收机钟确定的历元时刻量测,保持对卫星信号的跟踪,就可记录下相位的变化值,但开始观测时的接收机和卫星振荡器的相位初值是不知道的,起始历元的相位整数也是不知道的,即整周模糊度,只能在数据处理中作为参数解算。相位观测值的精度高至毫米,但前提是解出整周模糊度,因此只有在相对定位、并有一段连续观测值时才能使用相位观测值,而要达到优于米级的定位精度也只能采用相位观测值。 按定位方式,GPS定位分为单点定位和相对定位(差分定位)。单点定位就是根据一台接收机的观测数据来确定接收机位置的方式,它只能采用伪距观测量,可用于车船等的概略导航定位。相对定位(差分定位)是根据两台以上接收机的观测数据来确定观测点之间的相对位置的方法,它既可采用伪距观测量也可采用相位观测量,大地测量或工程测量均应采用相位观测值进行相对定位。在GPS观测量中包含了卫星和接收机的钟差、大气传播延迟、多路径效应等误差,在定位计算时还要受到卫星广播星历误差的影响,在进行相对定位时大部分公共误差被抵消或削弱,因此定位精度将大大提高,双频接收机可以根据两个频率的观测量抵消大气中电离层误差的主要部分,在精度要求高,接收机间距离较远时(大气有明显差别),应选用双频接收机。载体上的GPS接收机天线在跟踪GPS卫星的过程中相对地球而运动,接收机用GPS信号实时地测得运动载体的状态参数(瞬间三维位置和三维速度)。 接收机硬件和机内软件以及GPS数据的后处理软件包,构成完整的GPS用户设备。GPS接收机的结构分为天线单元和接收单元两大部分。对于测地型接收机来说,两个单元一般分成两个独立的部件,观测时将天线单元安置在测站上,接收单元置于测站附近的适当地方,用电缆线将两者连接成一个整机。也有的将天线单元和接收单元制作成一个整体,观测时将其安置在测站点上。GPS接收机一般用蓄电池做电源。同时采用机内机外两种直流电源。设置机内电池的目的在于更换外电池时不中断连续观测。在用机外电池的过程中,机内电池自动充电。关机后,机内电池为RAM存储器供电,以防止丢失数据。近几年,国内引进了许多种类型的GPS测地型接收机。各种类型的GPS测地型接收机用于精密相对定位时,其双频接收机精度可达5MM+1PPM.D,单频接收机在一定距离内精度可达10MM+2PPMD。用于差分定位其精度可达亚米级至厘米级。目前,各种类型的GPS接收机体积越来越小,重量越来越轻,便于野外观测。全球定位系统GPS卫星的定时信号提供纬度、经度和高度的信息,精确的距离测量需要精确的时钟。因此精确的GPS接受器就要用到相对论效应。准确度在30米之内的GPS接受器就意味着它已经利用了相对论效应。华盛顿大学的物理学家Clifford M. Will详细解释说:“如果不考虑相对论效应,卫星上的时钟就和地球的时钟不同步。”相对论认为快速移动物体随时间的流逝比静止的要慢。Will计算出,每个GPS卫星每小时跨过大约1.4万千米的路程,这意味着它的星载原子钟每天要比地球上的钟慢7微秒。而引力对时间施加了更大的相对论效应。大约2万千米的高空,GPS卫星经受到的引力拉力大约相当于地面上的四分之一。结果就是星载时钟每天快45微秒, GPS要计入共38微秒的偏差。科学家Ashby解释说:“如果卫星上没有频率补偿,每天将会增大11千米的误差。”(这种效应实事上更为复杂,因为卫星沿着一个偏心轨道,有时离地球较近,有时又离得较远)2.1.3 GPS接收机的种类全球GPS接收机可以根据用途、工作原理、接收频率等进行不同的分类:1. 按接收机的用途分类 导航型接收机:此类型接收机主要用于运动载体的导航,它可以实时给出载体的位置和速度。这类接收机一般采用C/A码伪距测量,单点实时定位精度较低,一般为+- 25MM,有SA影响时为+-100MM。这类接收机价格便宜,应用广泛。根据应用领域的不同,此类接收机还可以进一步分为: 车载型用于车辆导航定位; 航海型用于船舶导航定位; 航空型用于飞机导航定位。由于飞机运行速度快,因此,在航空上用的接收机要求能适应高速运动。 星载型用于卫星的导航定位。由于卫星的速度高达7KM/S以上,因此对接收机的要求更高。 测地型接收机:测地型接收机主要用于精密大地测量和精密工程测量。这类仪器主要采用载波相位观测值进行相对定位,定位精度高。仪器结构复杂,价格较贵。 授时型接收机:这类接收机主要利用GPS卫星提供的高精度时间标准进行授时,常用于天文台及无线电通讯中时间同步。2. 按接收机的载波频率分类 单频接收机:单频接收机只能接收L1载波信号,测定载波相位观测值进行定位。由于不能有效消除电离层延迟影响,单频接收机只适用于短基线(15KM的精密定位。 双频接收机:双频接收机可以同时接收L1、L2载波信号。利用双频对电离层延迟的不一样,可以消除电离层对电磁波信号的延迟的影响,因此双频接收机可用于长达几千公里的精密定位。3. 按接收机通道数分类GPS接收机能同时接收多颗GPS卫星的信号,为了分离接收到的不同卫星的信号,以实现对卫星信号的跟踪、处理和量测,具有这样功能的器件称为天线信号通道。根据接收机所具有的通道种类可分为: 多通道接收机 序贯通道接收机 多路多用通道接收机4. 按接收机工作原理分类 码相关型接收机。码相关型接收机是利用码相关技术得到伪距观测值。 平方型接收机。平方型接收机是利用载波信号的平方技术去掉调制信号,来恢复完整的载波信号通过相位计测定接收机内产生的载波信号与接收到的载波信号之间的相位差,测定伪距观测值。 混合型接收机。这种仪器是综合上述两种接收机的优点,既可以得到码相位伪距,也可以得到载波相位观测值。 干涉型接收机。这种接收机是将GPS卫星作为射电源,采用干涉测量方法,测定两个测站间距离。静态定位中,GPS接收机在捕获和跟踪GPS卫星的过程中固定不变,接收机高精度地测量GPS信号的传播时间,利用GPS卫星在轨的已知位置,解算出接收 机天线所在位置的三维坐标。而动态定位则是用GPS接收机测定一个运动物体的运行轨迹。GPS信号接收机所位于的运动物体叫做载体(如航行中的船舰,空中的飞机,行走的车辆等)。2.1.4 GPS应用1. GPS应用于导航,主要是为船舶,汽车,飞机等运动物体进行定位导航。例如: 船舶远洋导航和进港引水 飞机航路引导和进场降落 汽车自主导航 地面车辆跟踪和城市智能交通管理 紧急救生 个人旅游及野外探险 个人通讯终端(与手机,PDA,电子地图等集成一体)2. GPS应用于授时校频 电力,邮电,通讯等网络的时间同步 准确时间的授入 准确频率的授入 3. GPS应用于高精度测量 各种等级的大地测量,控制测量 道路和各种线路放样 水下地形测量 地壳形变测量,大坝和大型建筑物变形监测 GIS应用 工程机械(轮胎吊,推土机等)控制 精细农业正如人们所说:“GPS的应用,仅受人们的想象力制约。”GPS问世以来,已充分显示了其在导航,定位领域的霸主地位。许多领域也由于GPS的出现而产生革命性变化。目前,几乎全世界所有需要导航,定位的用户,都被GPS的高精度,全天候,全球覆盖,方便灵活和优质价廉所吸引。我国的GPS应用发展势头迅猛,短短几年,GPS在我国的应用已从少数科研单位和军用部门迅速扩展到各个民用领域,GPS的广泛应用改变人们的工作方式,提高了工作效率,带来了巨大的经济效益。可以说,GPS在我国的应用前景是无限的。2.1.5 GPS接收天线区别和应用GPS接收天线的作用,是将卫星来的无线电信号的电磁波能量变换成接收机电子器件可摄取应用的电流。天线的大小和形状十分重要,因为这些特征决定了天线能获取微弱的GPS信号的能力。根据需要,天线可设计成可以工作在单一的L1频率上,也可以工作在L1和L2两个频率上。由于GPS信号是园极化波,所以所有的接收天线都是园极化工作方式。尽管有多种多样的条件限制,仍然有许多不同的天线类型存在,如单极的,双极的,螺旋的,四臂螺旋的,以及微带天线。 微带天线由于其耐用性和相对地容易制作,所以成了应用最为普遍的一类天线。其形状可以是圆的也可以方的或长方的,如同一块敷铜的印刷电路板。它由一个或多个金属片构成,所以GPS天线最常用的形状是块状结,像个烧饼。由于天线可以做得很小,因此适合于航空应用和个人手持应用。天线的另一个主要特性,是其的增益图形,即方向性。利用天线的方向性可以提高其抗干和抗多径效应能力。在精确定位中,天线的相位中心的稳定性是个很重要的指标。但是,普通的导航应用中,人们希望用全向天线,至少能接收天线地平以上五度视野内所有天空中的可见卫星信号。微带天线通常有个接地平板作为地网。由于到达接收机的GPS信号一般都比较微弱,所以往往采用有源天线,所谓有源天线,是指天线中装有RF前置放大器或低噪声放大器。2.2 holux m-87 GPS接收机2.2.1 holux m-87 GPS接收机主要性能指标1. 跟踪能力频率:L1, 1575.42MHzC/A码:1.023MHZ芯片速率频道:查看搜寻中的32个频道灵敏度:高于-159dBm2. 定位时间 (TTFF:首次捕捉卫星时间)热启动:1s (95%),(典型)正确的历书,时间,位置和星历温启动:33s (95%),(典型) 正确的历书、时间、位置冷启动:36s (95%),(典型) 正确的历书 重新捕获时间:1s3. 定位精度定位精度:3.0m (2dRMS)DGPS (WAAS, EGNOS, MSAS, RTCM)定位精度:2.5m(RMS)(典型)时间精度(1PPS):0.1usDGPS时间精度:0.05m/s(典型)速度精度:0.1m/s RMS4. 动态性能最大速度:515m/s高度:18000m加速度:4g急冲度:20m/5. 数据特性接口:两个CMOS/TTL串行口,其中一个串行输入作为差分输入(DGPS)提供修正量;一个NMEA输出端口数据更新:1s数据输入:COM:可选择NMEA 0183/SiRF二进制,波特率可选(4800,9600,19200,38400);DGPS:RTCM SC-104类型(1,2,9)数据输出:COM和NMEA:可选择NMEA 0183/SiRF二进制,波特率可选(4800,9600,19200,38400); 6. 物理特性尺寸:25.4x25.4x3mm重量:3g输入电压:3.5V5.0V,VBAT 3.05.0V操作电流:定位:60mA3.3V 跟踪:45mA3.3V工作温度:-40+85存储温度:-40+125湿度:95%,非凝结7. 坐标系统 默认:WGS-84坐标系统 8. 天线 接收天线:MMCX型频率:1575.42MHZ最小跟踪信号:-175Dbw天线增益:3.5dB供电方式:3V、5V兼容放大器增益:28dB噪声系数:1.0Db干扰抑制:20dB140MHz工作电流:10mA/3V 15mA/5v工作温度:-45 +85贮存温度:-50 +90相对湿度:100% 安装型式:3米线缆磁铁吸盘 2.2.2 holux m-87 GPS接收机的接线定义holux m-87 GPS接收机的接线定义如图2.1所示,由于系统只需要GPS接收机的输出数据,故电路中仅接入VCC、TXA、GND三个端口。图2.1 holux m-87 GPS接收机的接线定义2.3 AT89S51单片机2.3.1 AT89S51单片机主要性能参数AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准8051指令系统及引脚。它集Flash程序存储器即可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中。功能强大的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51主要性能参数: 1. 兼容MCS-51指令系统2. 4k可反复擦写系统编程Flash闪速存储器3. 1000次擦写周期4. 4.0-5.5V工作电压5. 32个可编程I/O口6. 两个16位可编程定时/计数器7. 时钟频率0-33MHz8. 全双工UART串行中断口线9. 2个外部中断源10. 中断唤醒省电模式11. 3级加密位 12. 128x8bit内部RAM13. 低功耗空闲和省电模式14. 看门狗(WDT)电路15. 软件设置空闲和省电功能 16. 灵活的ISP字节和分页编程17. 双数据寄存器指针此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。2.3.2 AT89S51与AT89C51功能比较AT89S51相对于AT89C51增加的新功能包括:1. 新增加非常多功能,性能有了较大提升;2. ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程式不必把芯片从工作环境中剥离。是个强大易用的功能。3. 工作频率为33MHz,大家都知道89C51的极限工作频率只有24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。4. 具有双工UART串行通道。5. 内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。6. 双数据指示器。7. 电源关闭标识。8. 全新的加密算法,这使得对于89S51的解密变为不可能,程式的保密性大大加强,这样就能有效的保护知识产权不被侵犯。9. 兼容性方面:向下完全兼容51全部字系列产品。比如8051、89C51等等早期MCS-51兼容产品。在89C51上相同能照常运行,这就是所谓的向下兼容。2.3.3 AT89S51单片机管脚说明AT89S51单片机管脚图如图2.2所示。图2.2 AT89S51单片机管脚图VCC:供电电压 GND:接地 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程式数据存储器,他能被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1 口:P1口是个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能吸收或输出4个TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程式存储器或16位地址外部数据存储器进行存取时,P2口输出地 址的高八位。在给出地址“1”时,他利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特别功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,他们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89S51的一些特别功能口: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期 输出正脉冲信号,此频率为振荡器频率的1/6。因此他可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程式存储器的选通信号。在由外部程式存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP: 当/EA保持低电平时,则在此期间外部程式存储器(0000H-FFFFH),不管是否有内部程式存储器。注意加密方式1时,/EA将内部锁定为 RESET;当/EA端保持高电平时,此间内部程式存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。2.3.4 AT89S51的时钟电路AT89S51单片机芯片内部设有一个反向放大器所构成的振荡器,XTAL1和XTAL2分别为振荡电路的输入端和输出端,时钟可以由内部或外部产生。本系统设计为内部时钟电路,如图2.3所示。在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路产生自激振荡。定时元件采用石英晶体和电容组成的并联谐振回路。晶振频率选择为11.0592MHz,C1、C2电容值取30pF,电容的大小可起频率微调的作用。图2.3 内部时钟电路2.3.5 AT89S51的复位电路本系统采用开关复位电路,如图2.4所示,在时钟电路工作后,在RESET端持续给出两个机器周期(24个振荡周期)的高电平就可完成复位操作。开关触发时,RESET端出现正脉冲,从而使单片机复位。图2.4开关复位电路2.4 数据选择器74HC153由于AT89S51单片机只有一个串口,根据系统设计需要,采用74HC153做串口扩展,实现两个GPS数据的循环交替采集。74HC153为双四选一数据选择器,其管脚图如图2.5所示,逻辑功能表如图2.6所示,其中H代表高电平,L代表低电平,X代表任意电平。按照逻辑功能表可以方便控制74HC153的输出。图2.5 74HC153管脚图图2.6 74HC153逻辑功能表由逻辑功能表可以看出,在输出控制端为低电平的情况下,当附加控制端S1为低电平时,另一控制端S0的高、低电平变化,控制了数据输入端L0、L1的选通,即只需要单片机一个管脚P3.5控制S0,就可以实现设计需要的双通道交替选通,这样的设计节约了资源。74HC153与两个GPS接收机的具体连接电路如图2.7所示。单片机P3.5为低电平时,翼尖上的GPS(GPS-A)被选通,当P3.5为高电平时,飞机中心点上的GPS(GPS-C)被选通。图2.7 74HC153与两个GPS接收机的连接电路2.5 飞行高度显示器本系统通过软件编程将GPS高度信息进行解译,处理过的高度值由共阳数码管输出显示,单位为米。翼尖的高度标记为A(aerofoil机翼),例如数码管显示A123,表示机翼海拔高度为123米。机身中心点的高度标记为C(center中心),例如数码管显示C086,表示机身中心点的海拔高度为86米。数码管的位选择由单片机P2.4、P2.5、P2.6、P2.7控制。虽然LED数码管字段电极不需要很大电流例如10毫安以下,就可以得到满意的亮度,可是每个管子如果显示“8”和显示“1”总电流显然不同,假定每个字段仅仅给他5毫安电流,那么显示“1”,总电流10毫安,显示“8”,总电流达到5*7=35毫安,51单片机尽管口线的驱动能力都比较高,实际上也就是20毫安,可见,要通过口线直接驱动数码管的公共电极还是有问题的,这个可以通过加接驱动晶体管,例如8550中功率管,或电流驱动集成块等增强口线的负载能力。本系统加接PNP三极管,用PNP管的C极向数码管供电,E极直接接于VCC,三极管容易工作于饱和和截止状态,当其向数码管供电时,工作于饱和状态。数码管的段选择直接由P0口控制,可以正常驱动。具体的电路连接如图2.8所示。图2.8飞行高度显示电路图2.6 飞机姿态显示器飞机姿态显示器由一列水柱式发光二极管显示无人机机翼倾斜情况,即形象显示无人机飞行姿态。单片机根据机翼相对于机身中心点的高度,由P1口控制8个发光二极管,显示飞机姿态。同时单片机通过P3.4、P3.3将机翼的平衡、上倾、下倾三种状态由另外两个红、绿发光二极管显示,这样可以为外接姿态调整控制器留有信号传递的余地,极大的丰富了系统的可扩展性。具体电路连接图如图2.9所示。图2.9 飞机姿态显示器电路图第3章 系统软件设计本章主要是对于实验系统的软件设计做详细的介绍,程序的编写在本系统设计中占有重要的地位,是系统功能得以实现的核心技术。程序包括:主程序、高度显示子程序、延时子程序、姿态显示子程序、排序子程序、中断接收子程序。同时,对于程序调试中总结的点滴经验做了详细的阐述。3.1 主程序汇编程序在汇编的过程中,必须要提供一些专门的指令,这些指令在汇编时并不产生目标代码,不影响程序的执行,所以称之为伪指令。在主程序之前,我写了一些伪指令,它们包括数据地址赋值命令BIT、DATA和起始指令ORG。特别的,在中断接收时需要判断信息头$GPGGA,故设定位寻址区00H06H分别存放对应的7个标志位,以便中断接收时判断信息头。主程序分为START、START1、START2、GPS_A 四个部分,前两部分为初始化,主要为设定初始参数和清零内存单元等。设定串行口控制寄存器SCON为50H,如图3.1所示,50H代表设置串口工作在模式1,允许接收。设定定时器方式寄存器TMOD为20H,如图3.2所示,20H代表定时器T1工作于模式2:自动重载设置值的方式。图3.1 串行口控制寄存器SCON控制位说明图3.2 定时器方式寄存器TMOD控制位说明定时器T1作为波特率产生器,初值TH1 (自动加载到TL1)可以由公式3.1计算得到。设置波特率为4800Hz,单片机晶振频率f为11.0592MHz,波特率选择位SMOD置0,即波特率不翻倍。 (3.1)程序设计用到45H59H内存单元,故先清除该单元和所有标志位。具体内存单元分配如表3.1所示。在START2中先判断CRFLAG值,它决定选通其中哪个位置的GPS。若CRFLAG为0,则接收翼尖上的GPS数据,显示机身中心点高度和飞机姿态;若CRFLAG为1,则接收机身中心点的GPS数据,显示翼尖高度和飞机姿态。连续调用3次高度显示程序,这是为了实现动态显示的连续性,可以看到数码管一直在显示数值,看不出熄灭过。同时,中断接收程序进行新高度数据的接收和处理,完成后对CRFLAG赋新值。再次调用START2,实现无限循环。主程序流程图见图3.3。表3.1内存单元分配00H01H02H03H04H05H06H08H09HSFLAGG1FLAGPFLAGG2FLAGG3FLAGAFLAGDFLAGFLAGCRFLAGGPS输出信息头“$GPGGA,”的七个标志位排序交换标志位输出C还是A标志位45H46H47H48H49H4AH4BH4CH4DH4EH4FH50H中断接收高度信息5组高度信息数码管显示数据C50H中数据复制到51HA50H中数据复制到52H53H54H55H56H57H58H59H存储SBUF数据暂存数据暂存数据存储立即数4547H存储立即数484CHNUM逗号数量NUM1排序的个数开始初始化接通翼尖上的GPS调用高度显示程序清零CRFLAG接通机身中心点的GPS调用姿态显示程序CRFLAG=0?YN图3.3主程序流程图3.2 高度显示子程序中断接收程序会将处理好的高度信息放在4DH50H中,高度显示程序要做的是把这4个地址中的数据依次动态显示在数码管上。首先关闭所有段选端,然后点亮第一个数码管,再利用4DH中的数值查表得到段选代码后由P0输出,延迟1ms,稳定显示器,之后,再关闭所有段选端,位选代码左移点亮下一个数码管,从4EH中取数如此循环下去,直到第4位数码管输出结束,程序将会自动从第一个数码管重新输出,设计循环点亮4个数码管FFH次,这样利用了人眼的暂留特性,看起来是所有数码管在同时显示。程序中先关闭段选,输出位选,再输出段选,是为了避免位选时由于相邻数码管开关速度不一致,导致上一个数字显示在下一个数码管上。共阳数码管的示意图及段选码设置如图3.4所示,其中段选码“0”为亮,“1”为灭。图3.4 共阳数码管的示意图及段选码设置3. 3 延时子程序最常见的多重循环是由DJNZ指令构成的软件延时程序。使用12MHz晶振时,1个机器周期为1us,执行1条DJNZ指令的时间为2us,设计程序为:DL1MS: MOV R6,#14H ;十进制为20DL1: MOV R7,#19H ;十进制为25DL2: DJNZ R7,DL2 ;2*25+2=52us DJNZ R6,DL1 ;(522)*20+1=1.081ms RET从上面计算可以看出,软件延迟并不准确,但在本系统中并不需要非常精确的延迟,上述1ms延时程序是可行的。3. 4 姿态显示子程序中断接收程序中处理好的机身中心点高度、翼尖高度的个位数字被分别存进51H、52H中。姿态显示程序首先将51H、52H中的数值做差,若差值为零,则点亮绿灯和P1口4个灯,表示飞机处于平衡状态。进位标志Cy为零,说明差值为正数,表示机翼正在向地面倾斜,灭红灯、绿灯,若差值分别为1、2、3,则分别点亮P1口3个灯、2个灯、1个灯,表示机翼的倾斜程度;若差值大于或等于4,则P1口灯全灭。进位标志Cy不为零,说明差值为负数,表示机翼正在向天空倾斜,点亮红灯,将52H、51H中的数值做差,若差值分别为1、2、3、4,则分别点亮P1口5个灯、6个灯、7个灯、8个灯,表示机翼的倾斜程度;若差值大于4,则P1口灯全灭。姿态显示程序的流程图见图3.5。51H中的内容减去52H中的内容开始点亮P1口4个灯,灭红灯,亮绿灯差值为0?Cy为0?YNYNBCA灭红灯、绿灯差值减1 为0?差值再减1 为0?YNYNYN差值再减1 为0?点亮P1口3个灯点亮P1口2个灯点亮P1口1个灯P1口灯全灭灭绿灯亮红灯52H中的内容减去51H中的内容差值减1 为0?差值再减1 为0?YNYNYN差值再减1 为0?返回点亮P1口5个灯点亮P1口7个灯P1口灯全亮P1口灯全灭差值再减1 为0?点亮P1口6个灯YNBCA图3.5 姿态显示程序流程图3. 5 排序子程序中断接收5组数据后,系统用冒泡法将数据进行升序排列。首先,比较相邻两个数的大小,大数向后移,有交换则交换标志FLAG置1,5个数都比较一遍后,FLAG若为1则清零后重新交换比较一遍,直到比较一遍后FLAG为0,停止比较,此时数据已按升序排列好了。图3.6为排序程序流程图。交换标志FLAG清零开始顺序取下一个数指针加1顺序取下一个数并比较后一个数小?两数交换FLAG置1比较一遍?FLAG=1?返回YYYNNN图3.6 排序程序流程图3. 6 中断接收子程序中断接收程序是本系统设计的关键,它主要是接收并处理高度信息,存储到显示程序指定的内存地址中。holux m-87 GPS接收机使用NMEA-0183格式输出,数据代码为ASCII码字符。NMEA-0183是美国海洋电子协会为海用电子设备制定的标准格式,目前广泛使用V2.0版本。ASCII码字符串比较直观和易于处理,在许多高级语言中都可以直接进行判别、分离,以提取用户所需要的数据。holux m-87 GPS接收机可输出3种语句,分别是GPGGA、GPRMC、GPVTG,每秒发送一次。例如某一秒输出语句为:24 47 50 47 47 41 2C 32 33 35 39 34 38 2E 30 30 38 2C 38 39 36 30 2E 30 30 30 30 2C 4E 2C 30 30 30 30 30 2E 30 30 30 30 2C 45 2C 30 2C 30 2C 2C 31 33 37 2E 30 2C 4D 2C 31 33 2E 30 2C 4D 2C 2C 2A 34 41 0D 0A 24 47 50 52 4D 43 2C 32 33 35 39 34 38 2E 30 30 38 2C 56 2C 38 39 36 30 2E 30 30 30 30 2C 4E 2C 30 30 30 30 30 2E 30 30 30 30 2C 45 2C 30 2E 30 30 30 2C 30 2E 30 30 2C 30 35 30 31 38 30 2C 2C 2C 4E 2A 34 34 0D 0A 24 47 50 56 54 47 2C 30 2E 30 30 2C 54 2C 2C 4D 2C 30 2E 30 30 30 2C 4E 2C 30 2E 30 30 30 2C 4B 2C 4E 2A 33 32 0D 0A,其中“24 47 50 47 47 41”分别是“$GPGGA”ASCII码数值的十六进制形式。不同的语句中传送不同的信息,本系统只需要提取高度信息,只关注GPGGA语句,它的传送的格式为:$GPGGA,M,M,*hh传送的信息说明如下:$GPGGA: 起始引导符及语句格式说明(本句为GPS定位数据) UTC时间,hhmmss.sss,时分秒格式。应在UTC时间上加上8小时才是准确的北京时间,在超出24小时时应作减24小时处理。纬度ddmm.mmmm,度分格式(前导位数不足则补0)纬度N(北纬)或S(南纬)经度dddmm.mmmm,度分格式(前导位数不足则补0)经度E(东经)或W(西经) GPS状态,0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算正在使用的卫星数量(00 - 12)(前导位数不足则补0)HDOP水平精度因子(0.5 - 99.9)天线离海平面的高度,即海拔高度(-9999.9 - 99999.9)地球椭球面相对大地水准面的高度差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)差分站ID号0000 - 1023(前导位数不足则补0,如果不是差分定位将为空)* 语句结束标志符hh 从$开始的所有ASCII码的校验和所以,如果实时接收GPGGA语句为:$GPGGA,114641,3002.3232,N,12206.1157,E,1,03,12.9,53.2,M,11.6,M,*4A它的意思为UTC时间为11时46分41秒,位置在北纬30度2.3232分,东经122度6.1157分,普通GPS定位方式,接收到3颗卫星,水平精度12.9米,天线离海平面高度53.2米,所在地相对大地水准面的高度11.6米,校验和为4AH。在接收标志位RI为1时,单片机开启中断接收,清零RI,先依次判别是否为 “$”、“G”、“P”、“G”、“G”、“A”、“,”,然后计算收到的逗号数量,接收第8个逗号后面的信息内容,它就是海拔高度,将ASCII码转换为对应数字,存入指定内存单元。设计飞机飞行高度上线为255米,只显示3位整数,单位为米,根据接收到的小数点的位置,自动在高位补0。将三位数字所表示的十进制数存放在另一指定内存区域,当存放5组数据后,进行排序,由于海拔高度具有波动性且易受干扰,为了提高本系统高度显示的精确性,将5组数据中的最大值和最小值去掉,其余3组数据取平均值,之后,将它所代
展开阅读全文