基于DSP的GPGGA定位数据提取毕业设计(论文)word格式.doc

上传人:文库蛋蛋多 文档编号:4022273 上传时间:2023-04-01 格式:DOC 页数:27 大小:173KB
返回 下载 相关 举报
基于DSP的GPGGA定位数据提取毕业设计(论文)word格式.doc_第1页
第1页 / 共27页
基于DSP的GPGGA定位数据提取毕业设计(论文)word格式.doc_第2页
第2页 / 共27页
基于DSP的GPGGA定位数据提取毕业设计(论文)word格式.doc_第3页
第3页 / 共27页
基于DSP的GPGGA定位数据提取毕业设计(论文)word格式.doc_第4页
第4页 / 共27页
基于DSP的GPGGA定位数据提取毕业设计(论文)word格式.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《基于DSP的GPGGA定位数据提取毕业设计(论文)word格式.doc》由会员分享,可在线阅读,更多相关《基于DSP的GPGGA定位数据提取毕业设计(论文)word格式.doc(27页珍藏版)》请在三一办公上搜索。

1、目 录第1章 绪 论2第2章 GPS介绍32.1 GPS简介32.2 GPS定位方法42.3 GPS定位特点5第3章 系统硬件配置63.1 TL16C550B73.2 MAX232芯片9第4章 数据格式94.1 NMEA0183数据格式94.2 GPGGA数据输出10第5章 设计思路11第6章 程序实现136.1 程序设计框图136.2 框图功能实现146.3 设计结果与分析17第7章 总 结18谢 辞19参考文献20附录 主程序21第1章 绪 论GPS是英文“Navigation Satellite Timing And Ranging/Global Positioning System的缩

2、写词。其意思为”卫星测时测矩导航/全球定位系统”,简称为GPS系统。它是由美国国防部批准的陆海空三军联合研制而成的新的卫星导航系统。该系统是以卫星为基础的无线电导航定位系统,具有全能性(陆地,海洋,航天,航空),全球性、全天候、连续性和实时性的导航、定位和定时的功能。能为各类用户提供精密的三维坐标、速度和时间等信息。GPS系统由三部分构成,分别为空间星座部分、地面监控部分、用户设备部分。空间星座和地面监控部分由美国国防部控制,用户使用GPS接收机接收卫星信号进行高精度的精密定位以及高精度的时间传递。目前,二十多颗GPS卫星已覆盖了全球,每颗卫星均在不间断地向地球播发调制在两个频段上的卫星信号。

3、在地球上任何一点,均可连续地同步观测至少4颗GPS卫星,从而保障了全球、全天候的连续地三维定位,而且具有良好的抗干扰性和保密性。因此,全球定位系统已成为美国导航技术现代化的最重要标志。随着卫星导航技术的飞速发展,现已基本取代了无线电导航、天文导航等传统导航技术,已成为一种普遍采用的导航定位技术,并在精度、实时性、全天候等方面取得了长足进步。现不仅应用于物 理勘探、电离层测量和航天器导航等诸多民用领域,在军事领域更是取得了广泛的应用在弹道导弹、野战指挥系统、精确弹道测量以及军用地图快速测绘等领域均大量采用了卫星导航定位技术。有鉴于卫星导航技术在民用和军事领域的重要意义,使其得到了许多国家的关注。

4、第2章 GPS介绍2.1 GPS简介GPS是英文(Global Positioning System)的缩写。它的含义是:利用导航卫星进行测时和测距,从而构成全球定位系统。国际上已经公认将这一全球卫星定位系统简称为GPS。GPS全球定位系统是美国从本世纪 70 年代开始研制,全球定位系统属于美国第二代卫星导航系统。是在子午仪卫星导航系统的基础上发展起来的,它采纳了子午仪系统的成功经验。和子午仪系统一样,全球定位系统由空间部分、地面监控部分和用户接收机三大部分组成。该系统的空间部分使用 24 颗高度约 2.02 万千米的卫星组成卫星星座。 21+3 颗卫星均为近圆形轨道,运行周期约为 11 小时

5、 58 分,分布在六个轨道面上(每轨道面四颗),轨道倾角为 55 度。卫星的分布使得在全球的任何地方,任何时间都可观测到四颗以上的卫星,并能保持良好定位解算精度的几何图形( DOP )。这就提供了在时间上连续的全球导航能力。它不仅具有全球性、全天候和连续的精密三维定位能力,而且还能实时对运载体的速度、姿态进行测定以及精密授时。目前,几乎所有需要导航、定位的用户,都被GPS的高精度、全天候、全球覆盖、方便灵活和优质价廉所吸引。GPS系统由空间部分、地面控制部分和用户设备组成。空间部分主要由21颗工作卫星和3颗备用卫星组成。在地球的任意处(有360的视野)至少可以看到3颗卫星(根据笔者实际用的情况

6、看)。地面控制部分包括监测站、主控站和注入站。用户设备就是GPS接收机,本系统所选择的接收机是GPS-OEM板(型号是GPS15L),它根据自己时钟和接收到的导航电文计算出接收机(天线)所在的位置和GPS时间。按目前的方案,全球定位系统的空间部分使用24颗高度约2.02万千米的卫星组成卫星星座。21+3颗卫星均为近圆形轨道,运行周期约为11小时58分,分布在六个轨道面上(每轨道面四颗),轨道倾角为55度。卫星的分布使得在全球的任何地方,任何时间都可观测到四颗以上的卫星,并能保持良好定位解算精度的几何图形(DOP)。这就提供了在时间上连续的全球导航能力。地面监控部分包括四个监控间、一个上行注入站

7、和一个主控站。监控站设有GPS用户接收机、原子钟、收集当地气象数据的传感器和进行数据初步处理的计算机。监控站的主要任务是取得卫星观测数据并将这些数据传送至主控站。主控站设在范登堡空军基地。它对地面监控部实行全面控制。主控站主要任务是收集各监控站对GPS卫星的全部观测数据,利用这些数据计算每颗GPS卫星的轨道和卫星钟改正值。上行注入站也设在范登堡空军基地。它的任务主要是在每颗卫星运行至上空时把这类导航数据及主控站的指令注入到卫星。这种注入对每颗GPS卫星每天进行一次,并在卫星离开注入站作用范围之前进行最后的注入。全球定位系统具有性能好、精度高、应用广的特点,是迄今最好的导航定位系统。随着全球定位

8、系统的不断改进,硬、软件的不断完善,应用领域正在不断地开拓,目前已遍及国民经济各种部门,并开始逐步深入人们的日常生活。2.2 GPS定位方法GPS定位的方法是多种多样的,用户可以根据不同的用途采用不同的定位方法。GPS定位方法可依据不同的分类标准,作如下划分: (1)、根据定位所采用的观测值。1、 伪距定位 :伪距定位所采用的观测值为GPS伪距观测值,所采用的伪距观测值既可以是C/A码伪距,也可以是P码伪距。伪距定位的优点是数据处理简单,对定位条件的要求低,不存在整周模糊度的问题,可以非常容易地实现实时定位;其缺点是观测值精度低,C/A 码伪距观测值的精度一般为3米,而P码伪距观测值的精度一般

9、也在30个厘米左右,从而导致定位成果精度低,另外,若采用精度较高的P码伪距观测值,还存在AS的问题。 2、载波相位定位: 载波相位定位所采用的观测值为GPS的载波相位观测值,即L1、L2或它们的某种线性组合。载波相位定位的优点是观测值的精度高,一般优于2个毫米;其缺点是数据处理过程复杂,存在整周模糊度的问题。(2)、根据定位的模式。 1、绝对定位: 绝对定位又称为单点定位,这是一种采用一台接收机进行定位的模式,它所确定的是接收机天线的绝对坐标。这种定位模式的特点是作业方式简单,可以单机作业。绝对定位一般用于导航和精度要求不高的应用中。2、相对定位: 相对定位又称为差分定位,这种定位模式采用两台

10、以上的接收机,同时对一组相同的卫星进行观测,以确定接收机天线间的相互位置关系。(3)、根据获取定位结果的时间 。1、实时定位: 实时定位是根据接收机观测到的数据,实时地解算出接收机天线所在的位置。 2、非实时定位: 非实时定位又称后处理定位,它是通过对接收机接收到的数据进行后处理以进行定位得方法。(4)、根据定位时接收机的运动状态 。1、动态定位: 所谓动态定位,就是在进行GPS定位时,认为接收机的天线在整个观测过程中的位置是变化的。也就是说,在数据处理时,将接收机天线的位置作为一个随时间的改变而改变的量。动态定位又分为Kinematic和Dynamic两类。2、 静态定位: 所谓静态定位,就

11、是在进行GPS定位时,认为接收机的天线在整个观测过程中的位置是保持不变的。也就是说,在数据处理时,将接收机天线的位置作为一个不随时间的改变而改变的量。在测量中,静态定位一般用于高精度的测量定位,其具体观测模式多台接收机在不同的测站上进行静止同步观测,时间由几分钟、几小时甚至数十小时不等。2.3 GPS定位特点GPS系统的特点:高精度、全天候、高效率、多功能、操作简便、应用广泛等。 1、定位精度高 应用实践已经证明,GPS相对定位精度在50KM以内可达10-6,100-500KM可达10-7,1000KM可达10-9。在300-1500M工程精密定位中,1小时以上观测的解其平面其平面位置误差小于

12、1mm,与ME-5000电磁波测距仪测定得边长比较,其边长较差最大为0.5mm,校差中误差为0.3mm。 2、观测时间短 随着GPS系统的不断完善,软件的不断更新,目前,20KM以内相对静态定位,仅需15-20分钟;快速静态相对定位测量时,当每个流动站与基准站相距在15KM以内时,流动站观测时间只需1-2分钟,然后可随时定位,每站观测只需几秒钟。3、测站间无须通视 GPS测量不要求测站之间互相通视,只需测站上空开阔即可,因此可节省大量的造标费用。由于无需点间通视,点位位置可根据需要,可稀可密,使选点工作甚为灵活,也可省去经典大地网中的传算点、过渡点的测量工作。 4、可提供三维坐标 经典大地测量

13、将平面与高程采用不同方法分别施测。GPS可同时精确测定测站点的三维坐标。目前GPS水准可满足四等水准测量的精度。 5、操作简便 随着GPS接收机不断改进,自动化程度越来越高,有的已达“傻瓜化”的程度;接收机的体积越来越小,重量越来越轻,极大地减轻测量工作者的工作紧张程度和劳动强度。使野外工作变得轻松愉快。 6、全天候作业 目前GPS观测可在一天24小时内的任何时间进行,不受阴天黑夜、起雾刮风、下雨下雪等气候的影响。 7、功能多、应用广 GPS系统不仅可用于测量、导航,还可用于测速、测时。测速的精度可达0.1M/S,测时的精度可达几十毫微秒。其应用领域不断扩大。GPS系统的应用前景当初,设计GP

14、S系统的主要目的是用于导航,收集情报等军事目的。但是,后来的应用开发表明,GPS系统不仅能够达到上述目的,而且用GPS卫星发来的导航定位信号能够进行厘米级甚至毫米级精度的静态相对定位,米级至亚米级精度的动态定位,亚米级至厘米级精度的速度测量和毫微秒级精度的时间测量。因此,GPS系统展现了极其广阔的应用前景。第3章 系统硬件配置由于DSP可以实现数字信号的处理和计算。从理论上讲,只要有了算法,任何具有计算能力的设备都可用来实现数字信号处理。所以在各模块功能确定的情况下,用DSP软件开发平台Code Composer Studio(简称CCS)进行解调函数的设计,便可达到预想中的功能。下图所示为D

15、SP实现解调功能的模块组成:3.1 TL16C550B由于DSP的工作频率较高,如TMS320C6201时钟频率为200MHz,ADSP21060时钟频率为 40MHz,故其数据读写周期很短,然而PC机串口读写速度较低,最大数据吞吐量约为115kbps,尽管DSP在与这些慢速外设进行数据交换时可以加入额外的等待周期,但是在实时性要求苛刻,算法复杂的场合,将DSP从这些冗长的等待周期中解放出来,将其时间重点放在处理关键的实时任务中去,有着重要的实际意义。故DSP与PC机之间串口通信的速度匹配是保证快速、准确通信的关键。PC机一般带有一个或两个内置串口,每个端口的机箱背后有一个9针或25针的公插口

16、。串口是以bit来传输数据的,传输速率取决于UART芯片。该芯片将 PC总线上的并行数据(单字节或多字节)分割成以比特为单位的串行数据流,从而实现在串口线缆中的数据传输。TMS320C54X 芯片只有同步串口,通常只能用于与具有同步通信接口的外设进行通信。当其构成一个独立的处理单元需要和带有异步通信接口的外设交换数据时,常用的方式有两种:一种是利用DSP 的通用I/O 口线XF和BIO 构成串口,由软件来设定通信波特率和握手方式。这种方式编程复杂,并且会大量占用CPU 时间。另一种方式是通过专用的异步通信芯片来实现,这虽然能实现DSP高速数据通信,但是增加了硬件电路的复杂性。利用UART(通用

17、异步收发器)来进行串行通信,CPU只需通过UART提供的接口来编程,就可以实现串行通信 在本次课设中用到了TLl6C550B来实现并行数据和串行数据的格式转换,它的最大数据吞吐量为115kbps,这已经能够满足大多数串行设备的需要了。TL16C550B是通用异步接收/发送器(UART)芯片,它不仅能把从CPU接收的数据进行并-串转换,还能够把从外围设备或MODEM接收到的数据进行串-并转换。该UART包括一个可编程的波特率产生器,可将输入的时钟信号进行分频,并可产生16倍的时钟来驱动内部的传输逻辑单元。TLl6C550还具有完全的MODEM控制能力。包含一个处理器中断系统,根据用户的专用需要而

18、设计,在处理通讯连接时,计算量是最小的。并且,TLl6C550B管脚与TL16C750兼容,采用44引脚PLCC封装。它的最高可达1M的波特率,且波特率发生器可编程设定,可以由软件设定的FIFO来减少CPU中断,并有可编程的串行数据发送格式:数据位长度为5、6、7、8。还具有奇、偶校验或无校验模式,它的停止位长度为1、15、2。 同时它内部集成了中断逻辑,另外通过对其内部的寄存器的设置可以完成相应功能,这些寄存器主要有:线路控制寄存器、FIFO控制寄存器、中断使能寄存器MODEM控制寄存器、线路状态寄存器等11个寄存器。这些寄存器分别用于实现通信参数的设置、对线路及MODEN的状态访问、数据的

19、发送和接收及中断管理等功能。因而它可以与大多数的CPU实现无缝接口,使用很方便。C5402与PC机串行通信的硬件电路如图所示。 图中,TL16C550B的CS0和CS1都接高电平,CS2接C5402的外部IO空间,选择线IS。当XIN、XOUT端外接18342MHz晶振时,C5402以4800的波特率与PC机通信,所以,波特率因子寄存器的低位设为30H,高位设为00H。TLC16C550B的数据线D0D7直接与C5402的D0D7数据线相连,TL16C550的片内寄存器选择线接C5402的A0A2。3.2 MAX232芯片在通过TL16C550B芯片的并串转换后还不能将DSP处理结果传送到PC

20、机上。因为RS232串口电平标准采用了负逻辑,它的电路电平与CMOS电平不同,因此不能与DSP直接传输数据,所以UART接收DSP发送的处理结果和发生时刻值,先存入自身所带的FIFo中,再通过MAX232进行电平转换,最后从RS232串口中输出到PC机。MAX232具有一个专有的低压降发送器输出级,在其以双电荷棒3.05.0V供电时,可以获得真正的RS232性能。该器件只需4个1F小型外接电容,可在维持RS232输出电平的情况下确保运行于120kb/s数据率,因此十分适合高速串行通信场合。利用RXRDY和TXRDY引入外部中断,从而系统工作在中断方式,RXRDY产生外部0中断(INT0),而T

21、XRDY将产生外部1中断(INT1)。应注意的是EVM接收板串行数据输出的电平是TTL电平,其与计算机串口连接时必须进行电平转换,通过MAX232将TTL电平转换为RS-232C标准信号电平,与PC机就可直接进行交叉连接。其基本组成方框图如图所示。第4章 数据格式4.1 NMEA0183数据格式NMEA-0183是美国海洋电子协会为海用电子设备制定的标准格式,目前广泛使用V2.0版本。该协会是一家专门从事海洋电子设备方面研究的民间机构,它制定了关于GPS(全球定位系统)电子设备之间的通信接口和协议的NMEA标准。 NMEA-0183协议是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接

22、收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。NMEA0813是NMEA协议的一种。由于该格式为ASCII码字符串,比较直观和易于处理,在许多编程语言中都可以直接进行判别、分离,以提取用户所需要的数据。GM-305系列接收机可输出6句语句,其中较常用的4种为GGA, GSV, RMC, VTG,不同的语句传送不同的信息:GPS接收机以NMEA-0183标准格式输出GPS定位数据,数据终端设备需要实时从GPS输出的NMEA0183数据流中得到位置信息、时间信息。GPS接收机提供了多种语句格式,有GPGGA,GPGSA,GPGSV,GPRMC,GPZDA和GPGLL等。用户可以根据

23、需要选择一种或多种语句输出。本系统选择接收并解析GPGLL和GPZDA,分别获取地理位置信息和UTC时间信息(含日期),UTC时间通过时差修正得到本地时间信息。NMEA-0183语句包含多个数据项,数据项之间以逗号分隔,语句以回车(CR)和换行(LF)符结尾。基准站的GPS接收机可根据NMEA0813协议的规定,把经纬度、高度、定位所用的卫星数、DOP值、差分状态和速度等信息通过RS232串口通信接口传送到数据处理中心,供进一步的数据处理。NMEA0183的语句达数十种之多,各种数据均以$开头,数据主要由帧头、帧尾和帧内数据组成GPS通信的NEMA协议及定位数据的提取。NMEA-0183协议的

24、格式如下。$地址域数据域*校验和地址域又可分为为发送者ID和句子ID两个部分,对于GPS设备,发送者ID为GP,句子ID决定了数据域值的内容。校验和由两个十六进制的字符,为地址域和数据域所有字节按位异或。NMEA0183协议的每条语句都是ASCII码格式可打印的字符。信息起始标志“$”、数据分隔符“,”和信息结束标志符“”均为NMEA0183的保留字符。4.2 GPGGA数据输出 这是一帧GPS定位的主要数据,也是使用最广的数据。$GPGGA 语句包括17个字段:语句标识头,世界时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,水平精确度,海拔高度,高度单位,大地水准面高度,高

25、度单位,差分GPS数据期限,差分参考基站标号,校验和结束标记(用回车符和换行符),分别用14个逗号进行分隔。该数据帧的结构及各字段释义如下,给个例子更方便理解:例1:GPGGA,050901,3931.4449,N,11643.5123,E,1,07,1.4,76.2,M,7.0,M,65 其标准格式为: GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M,(10),M,(11),(12)hh(CR)(LF) 各部分所对应的含义为:(1)定位UTC时间:05时09分01秒(2)纬度(格式ddmm.mmmm:即dd度,mm.mmmm分);(3)N/S(北纬或南

26、纬):北纬39度31.4449分;(4)经度(格式dddmm.mmmm:即ddd度,mm.mmmm分);(5)E/W(东经或西经):东经116度43.5123分;(6)质量因子(0=没有定位,1=实时GPS,2=差分GPS):1=实时GPS;(7)可使用的卫星数(08):可使用的卫星数=07;(8)水平精度因子(1.099.9);水平精度因子=1.4;(9)天线高程(海平面,9999.999999.9,单位:m);天线高程=76.2m);(10)大地椭球面相对海平面的高度(999.99999.9,单位:m):7.0m;(11)差分GPS数据年龄,实时GPS时无:无;(12)差分基准站号(000

27、01023),实时GPS时无:无;总和校验域;hh 总和校验数:65(CR)(LF)回车,换行。第5章 设计思路GPS模块以9600波特的速率串行输出数据。有用的时间、经纬度及海拔高度信息就包含在其中。实验的任务就是从中选出有用信息并送液晶显示器显示。实验的导航电文由串口调试助手导入,导航电文里头的GGA格式的数据就是我们这次实验要接收的,找到该组的有用信息。在字符串找到指定的字符串,并返回它的位置。 在这里就找$GPGGA和,,找到后,把这个位置以后的字符串重新赋给一个以前的字符串,一直循环,就可以找到所有的信息了。具体步骤如下:系统进行初始化,主要是对DSP芯片的ASP(异步串口)进行初始

28、化,将DSP异步通信口的数据传送速率设为9600bit/s,通信数据格式的设置为1个起始位,8位数据位,1个停止位,并设置接收数据缓冲区。对于波特率的设置可在串口驱动程序中设置。使程序指向接收数据缓冲区首地址,系统处于读接收状态。采用查询方式,进行GPS数据流的数据起始符和语句标识符,待确认GPS数据处于一组有效数据起始位置时,开始数据接收,否则就放弃,重新开始查询过程。判断是否再次查找到$符号,若是,则跳回第二步,重新进行数据接收。接收数据并查找所需的数据前面的逗号的位置。将查找到的逗号后的数据保存到中间数组变量中。数据处理,筛选出时间、经度、纬度等基本数据进行传输并调整格式在LCD上显示。

29、第6章 程序实现6.1 程序设计框图DSP串口初始化数据接收是$GPGGA否是$否查找到所需数据前面逗号的位置将数据赋给输出的中间变量发送数据到PC机上调整数据格式在LCD上显示NYNY6.2 框图功能实现(1)设计中利用键盘来控制显示,设置键盘值1键来控制,下载成功后,按1键即开始进行接收显示。程序如下:switch(key_val)/由键值来控制 default: break; case 1: LCD_clear(0);/LCD清屏幕 uart_rece(); /调用uart_rece()接收函数 break;(2)定位数据的传输 定位信息通过串口来实现传输。本程序的关键是在于串口数据的读

30、取及相关处理操作。前面的代码只负责从串口接收数据并将其放置于缓存。在没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转化成有实际意义的,可供高层决策使用的定位信息数据。同其他通讯协议类似,对该实验采用NMEA-0183协议的GPS固定数据输出语句(GPGGA)数据结构。 先定义305个数据的数组来存放导航电文的串行数据,逗号,时间、纬度及经度的中间接收数组,以及输出的字符数组。unsigned int data305,mc,tm7,weidu10,jingdu11;unsigned int j

31、j,ii,ni;unsigned int locate = 0;char chartable10=0,1,2,3,4,5,6,7,8,9;(3)由于串口数据的读取速度和对数据中参数的提取操作速度需要匹配,所以难免会有数据的丢失,为了保证参数的正确提取,程序的开始就需要对语句的正确性进行控制。处理时一般先通过对帧头的判断,即对“$GPGGA”帧进行判断。由于帧内各数据段由逗号分割,因此在处理缓存数据时一般是通过搜寻ASC码$来判断是否是帧头,在对帧头的类别进行识别后再通过所经历逗号个数的计数来判断出当前正在处理的是哪一种定位导航参数,并做出相应的处理。所以要先判断发送的数据是否是我们需的数据格式

32、,其判断程序如下:dojj = Uart_rx();/串行数据发送的调用函数 if(!flag) asm(tnop); break; while(jj=0xFFFF);if(locate=300 ii=0;/ii初值为0 while(ii300)/接收并识别GGA 数据帧的帧头 if(dataii=36)/$ if(ii+1)300&dataii+1=71)/G if(ii+2)300&dataii+2=80)/P if(ii+3)300&dataii+3=71)/G if(ii+4)300&dataii+4=71)/G if(ii+5)300&dataii+5=65)/A break; /识

33、别GPGGA桢 ii+;/循环条件 (4)定位信息的提取 一个完整的NMEA0183语句是从信息起始标志“$”、数据分隔符“,”和信息结束标志符“”为止的一段字符串。需要掌握的信息是时间、经度及纬度。所以当接收到这样一个完整的NMEA0183语句时,提取有用信息的方法是:先判断起始标识符$GPGGA的位置,从起始符开始读入数据,再通过异或校验后的语句中寻找字符,然后截取前后两个,之间的字符(串)获取所关心的数据,并以回车符为一个GPS语句的终止符,得到一个完整的GPS信号。for(;ii400;ii+) /从上面的while循环退出后的ii加6开始 /$GPGGA,061820,2844.35

34、46,N,11551.8844,E,1,10,0.8,57.9,M,-5.6,M,*6C/“$ GPGGA”头判断完毕,开始接收“$ GPGGA,”语句的数据 if(dataii=36)break; /检测到S时退出 if(mc=1)tmni=dataii;ni+;/提取时间 else if(mc=2)weiduni=dataii;ni+;/提取纬度 else if(mc=4)jingduni=dataii;ni+;/提取经度 if(dataii=44)mc+;ni=0;/逗号计数 (5)数据的处理,筛选出时间、经度、纬度等基本数据进行传输并调整格式在LCD上显示,下面是一个纬度信息的处理方法

35、:cur_col = 1;cur_row = 4; LCD_pr_chars(WD: ,5);for(ii=0;ii9;ii+) if(weiduii=46)LCD_nextchar(.);/用.来表示小数符 else LCD_nextchar(chartableweiduii-48);/ /显示纬度6.3 设计结果与分析 完成程序并通过编译后,通过DSP软件下载到硬件上。下载后,首先通过串口调试助手将一组信息发送过去,接收完成后,数据就会显示在显示屏上。在“指令循环发送”前选上后,发送框中的数据将自动循环发送,停止接收后,但仍然在发送数据,若在接收区与发送区设置中选项“十六进制显示”上点上后

36、,发送框与接收框上将显示十六进制的数据。按下键1,可在LCD上显示的结果。发送的数据如下:$GPGGA,061821,2844.3546,N,11551.8845,E,1,10,0.8,58.0,M,-5.6,M,*6A第7章 总 结这次DSP课程设计,我只完成了基本要求和很少的创新要求,但在其中,我学到了很多,对DSP技术的认识也进一步加深了。虽然对于DSP的知识还有很多要学习和提高,但是在这一周中我还是感受到这门课程的用处和乐趣所在。在编写调试和解调程序时,遇到了不少问题,特别是各子模块程序之间的关系连接导致后面的成功解调结果,而在最后的硬件调试过程中,也总是出现一些问题,提取出定位信息,

37、显示在LCD上时,想要的结果不能在LCD显示器上得到正确的显示:在设定输入的参数后,PC机还是能正常的发送定位数据,但是始终看不到LCD上的显示定位数据结果。后来,在不厌其烦的调试之后,才发现是因为输入参数有错误导致不能正确显示定位数据的了。通过改正错误,成功调试。此次课程设计,使我感到了理论与实际相结合,不仅学到了不少知识,而且锻炼了自己的能力,使自己有了更加清楚的认识,以后要多提高各方面的能力。谢 辞感谢胡辉老师在平时的学习中对我严格的要求,耐心的教导,让我学到了很多的知识,感谢方练师兄在实验室对我的帮助,指导我完成本次课程设计。感谢张少波同学排忧解难,共同探讨。让我通过实验锻炼自己而不是

38、应付了事,让我在完成基本设计的基础上不断改进,争取能更好的完成,得到更好的结果。使我不仅在理论知识方面受益颇深,同样也提高了我的独立实践能力 。参考文献1 DSP原理及应用李利等编著2DSP系统设计与实践雷勇编著M电子工业出版社3DSP综合应用技术张家田等编著M机械工业出版社4计算机与通信专业英语徐秀兰等编著M北京邮电大学出版社附录 主程序#include #include mmdrv.h#include mcbsp.h#include cpu_reg.h #include lcd_86.h ioport unsigned portefff;#define IO_374 portefff vo

39、id init_exint1_interrupt();void init_GPIO(void); void uart_rece(void); void uart_trans(void); void uart_trans_byte(unsigned int data);unsigned int flag=0xffff;char tx_re_buf1=0x38;void main(void)unsigned int i,j;unsigned int key_val; SWWSR = 0x7fff; SWCR = 0x0001; BSCR = 0x8006; CLKMD = PLL_DIV_INIT

40、; waitloop( 0x0400 ); CLKMD = PLL_LOCK_INIT_X(9); waitloop( 0x0400 ); PMST = 0x0168;IO_374=0xffff;/374 enable /初始化系统 init_exint1_interrupt(); init_GPIO(); init_lcd(); LCD_clear(0);cur_row=2; cur_col=20; LCD_pr_chars( UART TEST ,16);cur_row=3; cur_col=1; LCD_pr_chars(-,23); Close_LED_sign(); Close_LE

41、D_Data(); Close_LED_Traf(); waitloop( 0x0400 ); while(1)flag=0xffff;i=Get_Key(); waitloop( 0x040000L );j=Get_Key(); if(i=j) key_val=j;/*Save key_val*/ while(Get_Key() asm(tnop); /wait blank_key switch(key_val)/由键值来控制 default: break; case 1: LCD_clear(0);/LCD清屏幕 uart_rece(); /调用uart_rece()接收函数 break;

42、 void init_exint1_interrupt() IFR =0xffff; IMR =0x0002;/TINT=IMR.3EXINT1=IMR.1asm(trsbxtintm ); interrupt void EXINT1_isr() Close_LED_sign(); Close_LED_Data(); Close_LED_Traf();/ while(!(GPIOSR&0x01) asm(tnop);asm(tnop); /flag=flag;flag=0;cur_row=7; cur_col=15; LCD_pr_chars( Uart_Stop ,17); void init_GPIO(void) GPIOCR =0xfffe; /EXINT1=GPIO.0=input=0,nand_cs=GPIO.6=output=1 GPIOSR =0x0040; /GPIO.6=output=1 void uart_rece(void) /char buf16; unsigned int data305,mc,tm7,weidu10,jingdu11,geshu3,deep5;

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号