下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2013第九届“博创杯”全国大学生嵌入式物联网设计大赛作品设计报告基于GPS授时的点阵LED屏显示时钟A LED Clock Based on GPS设计报告队伍编号:参赛学校:大学作 者:蔡成瑶、严帅、照指导教师:凯是否恩智浦单项:是囚否口word格式.本设计采用了大赛指定硬件开发平台:NXP LPC11C24FBCARM Cortex-MO微控制器),设计 了 GPS授时的点阵LED屏时钟显示系统。系统从GPS卫星上获取标准的时钟信号,并将这些信 息通过UART接口传到LPC11C24主控模块上,再通过LED点阵屛将经过LPC11C24处理后的时间 信息显示出来。如果UART未收到GPS数
2、据则系统将采用LPC11C24的部定时器计时,该设计以 软硬件相结合的方式完成整个GPS数据的接收和显示过程完成了一台LED点阵屏显示GPS时钟 的设备。此设计由于使用的是GPS时钟信号,所以时间精确度可以达到纳秒级,同时结合了点 阵LED屏,就使得系统整体显示效果好。关键词:LPC11C24、GPS、LED点阵屏AbstractNXP LPC11C24 (Cortex - MO micro control ler) is used as the specified hardware platform in the design of the GPS timing lat tice LEI)
3、clock display sys tem System standard for the clock signal from GPS satellites, and upload the information through the UART interface LPC11C24 master control module, through the LED lattice screen wi11 be displayed after LPC11C24 processing time information If UART is not received GPS data system wi
4、 11 adopt LPC11C24 internal timer timing, the design with a combination of hardware and software to complete the whole process of GPS data receiving and display completed a LEI) dot matrix screen GPS clock device This design is due to the use of GPS clock signal, so the precision can reach nanosecon
5、d time, combined with lattice LEI) screen at the same time, makes the system as a whole display effect is betterKeyword : LPC11C24 、 GPS 、 LEDLatticescreen目录摘要1目录2第一章绪论41.1设计背景412 ARM CORTEX-MO 处理器 4第二章系统方案521系统总体方案522余统方案结构图5第三章 基于GPS授时的点阵LED屏显示时钟的系统631 NXP LPC11C24 主控板 63.1.1 NXP LPC11C24 简介63. 1.
6、2开发坏境73. 1.3 LPCXPRESSO 的项目建立83.2点阵LED屏显示模块8321 PIO LED点阵屏电路图93. 22 PIO LED点阵显示屏的指标93. 23 LED点阵屛上控制LED的亮灭原理103. 2.4 LED点阵屛的动态扫描原理10325主控模块LPC11C24与LEI)点阵屏的引脚连接113. 2.6 LED点阵屏的显示的软件设计123. 26.1控制LED亮灭的设计过程133. 2. 6. 2LED点阵屛的动态扫描设计过程14BUF缓冲区数据组织153.2.7时钟显示秒的控制193. 3 GPS卫星数据接收棋块GR-87 203. 3.1GPS技术简介203.
7、 3. 2 GR-87213. 3.3引脚功能21GR-87 指标223. 3.4 硬件接口 一UART233. 3.5通信协议NMEA243. 3. 5主控模块LPC11C24与GR-87的连接243. 3. 6 UART接收GPS数据软件设计2534供电电源的选择29第四章系统测试294.1测试仪器和设备2942测试方案30421 LED点阵屛显示测试304.2.2 GPS通信测试304.2.3 NXP LPC11C24 测试30424系统综合测试3043测试30431 LED点阵屛显示测试30432 GPS通信测试31433系统综合测试32434结果分析32笫五章系统特色335.1高精度
8、的时钟倍号 335.2 LED点阵屏特色33第六章结论34附录34第一章绪论11设计背景随着社会的进步人们对于时间信号的精度要求越来越高,而传统的时钟一般是采用部晶振精 确度不高,长期运行过程中由于种种原因都会产生误差已经不能满足工业生产的需要,因此我们要 寻找一种稳定可靠的方法来来产生精确的时钟。使用原子钟可以使时间精度达到纳秒级,所以在科 学技术领域、人们日常的生活生产领域都可以广泛的运用“原子钟”。另外,LEI)显示屏是利用发 光二级管点阵模块组成的平面式显示屛幕由于它具有发光率高、使用寿命长、组态灵活、适应能力 强等优点在国外的到广泛应用。基于GPS授时的点阵LED屏显示时钟就是利用G
9、R-87接收卫星上 “原子钟”精确的时间信号传送给LPC11C24,经过LPC11C24处理后发往点阵LED显示屏并显示出 时间。1. 2 ARM Cortex-MO 处理器作为ARM Cortex处理器系列的最新成员,32位Cortex-MO处理器采用了低成本90纳米低功 耗(LP)工艺,耗电量仅9zzA/MHz,约为目前主流8位或16位处理器的三分之一 »却能提供更高 的性能。这种行业领先的低功耗和高性能的结合为仍在使用8位或16位架构的用户提供了一个转 型开发32位器件的理想机会,从而在不牺牲功耗和面积的情况下,提高日常设备的智能化程度。Cortex-MO处理器的特点促成了智能
10、、低功耗微控制器的面市,并为“物联网”量的无线连接 设备提供高效的沟通、管理和维护。低功耗联网功能深具潜能,可驱动各种节能和生活关键应用, 包括从无线方式分析住宅或办公大楼性能与控制的感测器,到以电池运作、通过无线方式连接监控 设备的身体感测器。而现有的8位或16位微控制器(MCU)缺少足够的智能和功能来实现这些应用。Cortex-MO处理器不仅延续了易用性、C语言编程模型的优势,而且能够二进制兼容已有的Cortex-MO处理器工具和实时系统(RTOS)。作为Cortex-M处理器系列的一员,Cortex-MO处理器 同样能够获得ARM Cortex-M生态系统的全面支持,而其软件兼容性使其能
11、够方便地被移植到更高 性能的Cortex-M3或Cortex-M4处理器。率先获得Cortex-M0+处理器授权的厂商包括飞思卡尔半 导体和恩智浦半导体。第二章系统方案2.1系统总体方案本系统利用NXP LPC11C24作为主控模块。首先从GPS系统获取全球标准时间源,经过CPU处 理后将时间数据通过UART接口输出到LPC11C24主控模块上,LPC11C24可把接收到的GPS时间数 据利用软件来处理,再把数据发送到显示模块,实现时间的显示。LEI)点阵屏为主要的显示模块, 把从LPC11C24传来的数据显示出来,并且可以实现左右移动等功能。2.2系统方案结构图根据总体方案画出了系统的结构图
12、,是按照结构层次划分三层:硬件平台NXP LPC11C24为核心, 同UART连接的是GPS模块,32*16的点阵屏是用杜邦线和和控制系统相连的。整体方案结构框图 如下:GPSr模块UAR T 串 口系统控制中心NXPLPC11C24 核心板电路杜邦线电源供电模块图2. 1系统总体方案结构图行驱动电路32*16LED点阵屛列即刈电路/第三章基于GPS授时的点阵LED屏显示时钟的系统3.1 NXP LPC11C24 主控板LPC11C24为核心控制芯片,工作过程分为两个部分:数据接受处理和时钟数据扫描显示。LPC11C24开发板部集成了串口通信电路,本设计就是应用UART通用串行数据接口接受外部
13、 GR-87发来的卫星数据,有选择的将数据存储到数据缓冲区,然后我们将缓存区里的数据取出经过 CPU的处理后送到LED点阵显示屏上显示出我们所需要的时钟信息。3.1.1 NXP LPC11C24 简介LPC11C24FBD48是ARM Cortex-MO微控制器,设计用于8位/16位微控制器应用,具有高新能, 低功耗,简单指令集,统一编址寻址等优点,而且,LPC11C24可以比传统的8位/16位单片机在执 行大多数普通的微控制器任务时减少40%到50%的代码量,这是通过强大的Cortex-MO v6-M指令集 实现的。这种指令集以16位的Thumb指令为基础,迄今唯一应用于32位微处理器。具有
14、高于45DMIPS 处理能力的LPC11C24为CAN节点提供了强有力的信息和数据处理能力。这种对电源的优化能力是 当今的8位/16位单片机难以实现的特色和优点 ARM Cortex-MO处理器,工作频率高达50 MHz ARM Cortex-MO置可嵌套中斷向量控制器(NVIC) 程序代码的密度要比8/16位MCU更小 闪存ISP命令可通过UART或C_CAN发出 超快速模式下,2个LC总线引脚上的大电流吸收驱动器(20 mA)带小数波特率生成器的UART 36个高速5V相容GPIO引脚,可选择引脚高电流驱动(20 mA) 12MHz部RC振荡器,温度及电压围精确度可达1% 支持完整PC总线
15、规及超快速模式的LC总线接口 CAN 2. 0 B C_CAN控制器具备on-chip CANopen驱动器与整合式收发器片高速CAN收发器 工作围从1 MHz到25 MHz的晶体振荡器 频率围从7.8 kHz到1.8 MHz的可编程看门狗振荡器 最大限度降低功耗的集成式PMU (电源管理单元) 采用中斷和强制复位的4个独立阀值进行的掉电检测 可用作芯片识别的唯一序列号 3.3 V 单电源(1.8 V 至 3.6 V)3.1.2 发环境此次设计的软件开发环境使用的大赛的合作方恩智浦半导体针对它旗下采用的A R M处理器的LPC系列微控制器推出的开发工具平台LCXpresso。LCXpresso
16、根据简单易用的理念设计而成,它 为系统设计人员提供了一种快速便捷的使用LPC1100的方式。利用LPCXpresso这款功能全面的工 具链还可以轻松实现在高性能的ARM7、ARM9以及包括LPC1300和LPC1700在的Cortex系列微控 制器之间的产品移植。LPCXpresso开发平台基于功能强大的Ecl i pse集成开发环境(IDE)工具»拥有由恩智浦设计 的全新、直观的用户界面、针对Cortex-MO优化的编译器和函数库、LPC-Link JTAG/SWD调试探针 和目标板,同时具有一流的C编程环境以及语法高亮度显示、代码折叠和展开、快速点击导航变量 和函数定义及声明的高
17、级功能,为用户提供丰富的开发工具,加速产品开发,缩短新品上市时间。3.1.3 LPCXpresso的项目建立1 打开LPCxpresso软件弹出workspace launcher对话框选择项目要放的文件夹2. 菜单栏 FILE->new->project 弹出 new project 对话框选择 LPCxpresso c project- next 再选择 lpc 1 lxx-c progect - >next - 在 project neme 中输入项目名称- netx - 选择lpcllc24/301 next 在 cmsis 1 ibrary to link proj
18、ect to:中选择 NONE -finish3 这样项目就建立好了,在编译过程中缺什么头文件就去示例文件夹中复制到SRC文件夹下就可 以了3.2点阵LED屏显示模块这次我们选用的是PIO LEI)成品屛。PIO LEI)点阵显示屏作为此次设计的数据显示模块,它的 作用就是将从缓冲区里取出的数据经过CPU的处理后显示出我们所需要的信息。我们可以利用 LPC11C24的GPI0端口控制LEI)点阵屏显示相应的信息。3. 2.1 PIO LED点阵屏电路图下图是PIO LED点阵屏的电路图,其中74HC245D是驱动放大芯片、74HC595是移位寄存器、 74HC138D是译码器OUYj?OjBO
19、UT6zL>-rflf-=LJJ J J I U亩 kiig g 1、 1匚 JlO-a-t±jj Jimna?*Sa-,叫9MKS?IZ苛XL»-o 4OlrtloineDU15QU2OU13OUT 4OIH7U1DB1K?B:tgRZVL»C55-3nrrnr-GwH 、ZJTod /JflFF< ? g_ c"io«*IFLULLj丨*诉勺勺7dX3O a 片£吟§ pq q rarrjOLH o aajtffEEKe3oJpc心I6ilei-Dpmo<* jp、 U701PCUMCCQG-34图4.
20、 2 PIO LED点阵屏电路图3. 2.2 PIO LED点阵显示屏的指标 LEI)分辨率:LED显示屏像素的行列数称为LED显示屏的分辨率,我们所用的PIO LED点阵屏 的分辨率是32*16。 LED 点距:lOirnn像素配置:1R (纯红)视距:3m300m3. 2.3 LED点阵屏上控制LED的亮灭原理通过PIO LEI)屏的电路图可以发现,整个屏有通过一个74HC138来控制行和16个74HC535 -位寄存器控制列。按正常理解32*16的LED点阵2个138和16个595才能控制整个屏。而这里只用了 1个138是用了 4953LEI)驱动芯片,一个138输出信号被分成了 4个一
21、样的信号连接到了每个入屏幕,这时138选择的是4*8的第一行,这时在要显示的16*8中亮了 1,5,9. 13行,接着595再取下一行的128位数据送入屏738选中4*8的第二行。这时在要显示的16*8中亮了 2,6,10,14行,依次类推共4次,就把16*8的所有行就都显示了。由于程序执行速度很快,肉眼看不出切 换所以就看到一个完整的X” 了。这就实现了动态扫描。3. 2. 5主控棋块LPC11C24与LED点阵屏的引脚连接LPC11C24 引脚LED点阵屏引脚+5VIN5V供电电源GNDGNDP0_3OEPl_8SCLKP2_6RP2_7CLKP2_8BP2_10A3leu -7 护nie
22、 xrvxTOHr:灯耳存厂尺5il反-Kn_八.1.AT刊:M*11C24|«<WC B EXTRBX-IFFT> : 沪S c*.GPSLPC11C24与LED点阵屏的连接图3. 2.6 LED点阵屏的显示的软件设计对于这个系统的软件设计一开始是我们是从控制LED点阵屏的显示入手,而为了防止在控制 LED显示的初始阶段烧坏LPC11C24开发板以及更快的入手LPC11C24开发板,我们首先决定先用51 单片机来写程序点亮控制LEI)点阵屏,在可以任意的控制LED屏的显示之后再将程序移植到 LPC11C24开发板上。而控制LED点阵屏的首要问题就是点阵屏上每一行的亮灭是
23、如何在单片机中 实现的,接下来我们就试着去控制点阵屏的的每一个点的亮灭,直到可以控制任意点亮和灭。然后, 我们再考虑去让点阵屏去显示数字以及在哪个位置去显示,最后我们才再想方设法的使LED点阵屏 的不同位置显示出我们想要显示的数字而这又是最困难的一步,由于在一个时刻LEI)点阵屏只能让 一块显示所以要想让整个的屏都显示不同的数字就使用到动态扫描的技术。这里要真正实现动态扫 描则分为两部分第一部分是buf数据缓存区的数据的动态变化,第二部分是对LEI)屏的行的动态扫 描000 000 00000 1oo o o o oooword 图LED点阵屏显示设计思路程3. 2. 6.1控制LED亮灭的设
24、计过程首先我们是先通过看对P10LEI)点阵屏电路图走线方式,电路的芯片的作用来理解电路。电路 是用74HC138译码器和74HC595移位寄存器组合实现的,这样就大概知道电路是如何工作的,我们 就试着按自己的理解去连接的电路并给通过单片机控制LEI)点阵屏,写了几个程序发现LEI)点阵屏 上一直不亮,就考虑是否是硬件出了问题,但是经过测试后发现LED屏的正负极是有+5V电压的, 并且LEI)的引脚同51单片机的连接也正确。只能是程序写的不对,然后我们就上网査阅各种资料, 包括595移位寄存器和138译码器的手册、例程,通过查阅之后才对595和138的工作有了更进 一步的了解,我们之后又重新编
25、写了一个程序和发现还是不能点亮LEI)屏,问了老师后才知道是我 们对595理解有误,之后我们试着写了 一个程序发现LEI)点阵屏果真亮了,但是LEI)灯都是在乱闪的,琢磨的一晚 上也没找到是什么原因,直到第二天问了老师才发现是LED屏和单片机没有共地,我们找了 一跟线 将LED的地和单片机的地线连接起来这下屏上的显示就稳定了,但是是4行一起亮的,看了原理图 后发现138的输出信号又通过LEI)驱动芯片分出4个一样的信号,输出的信号被用于控制4行,所 以16行需要4个138译码输出信号,这样2个138的输入信号输出00、01、10、11四个信号,就 能把整块屏的16行给控制起来。能够控制行,还得
26、能控制任意一个点。一开始只知道595是如何工作的,就全送入0,后来改 word格式.变输入595的128位,发现第一个送进去的0会在4行中的最后一个点上,就理解了什么叫“位显 示的先送”这句话,这样就已经能控制128位中的任意一点的亮和灭。3. 2. 6. 2LED点阵屏的动态扫描设计过程实际上,我们要做的远不止让行和点亮起来这么简单,因为引脚的有限,我们只能用动态扫描 的方式来让屛幕显示全部的容,但是问题有来了,138和595的组合输入究竟是什么样的。时序是 如何组合在一起的,我们就试了一下发现屏上的显示规律并不是我们想的那样从左到右依次来的, 而是8位一组从左下方开始再到左上方,然后再从下
27、方的往右8位再往上依次类推,直到右上方。 这样就影响到了数据组织问题,做到这里老师对我们提出了一个数据缓冲区的概念,说这块屏的显 示程序对应有三部分,第一部分就是一个64字节的缓冲区里面是屏上的每个点对应的值,第二个 部分是4个变量也就是屏上列分成8位一组的点钟要现实的容的值。第三个部分就是扫描输出程序, 这个程序只需要扫描64字节的缓冲区其它的不用管,这三部分的工作过程是,程序通过4个变量 在字库中选择要显示的值的编码送入64字节的显示缓冲区中对应的位置,在通过扫描程序来把显 示缓冲区中的容送给显示屏。这个过程也是成为整个程序的主要框架后面的功能在这些基础上添加 和修改的。程序写到这里出现了
28、单片机无法解决的问题RAM的大小不够用无法执行程序。这时 就不再使用单片机来编写了,我们把程序移植到LPC22C24上面去,由于LPC11C24中引脚的使用不 同单片机引脚使用初始化引脚即GPIOSETDIRL (x,x, 1)第三位为1表示引脚的状态为输出,前面 两位分别为第几个10 口的第几位。而10 口的输出要用GPIOSETVAILCx, x,x).第一个x表示第几个 10 口,第二个x表示第几个10 口的第几位,第三个x表示输出0或1.由于这种输出方式带来的问 题是只能用0和1来输出,所以只能把原来程序中的数据移位一个一个输出,这是和单片机的一 个区别。原来程序移植到LPC11C24
29、中后下载可用位就可改变现实的容了。原来只能显示4位数字, 现在要把时间和日期一起显示了。这样就要重新规划数据缓冲区的数据组织和传入数据缓冲区的算 法了,用移位来把重新规划的数据缓冲区填入正确的值,并正确显示年-月-日-时-分Buf缓冲区数据组织控制点阵屏显示时钟就要知道点阵屏上每个点在Buf缓冲区中对应的存储位置,因为我们所使 用的是32*16的LED点阵屏,所以Buf缓冲区就应该是一个64字节的数据缓冲区,每一个字节表 示LED屏上的8个点如果我们要在某个位置上显示某一个数字就把Buf缓冲区中对应位置的值改成要显示数字的编码。下图是我们定义时间的年、月、日、时、分在点阵屏上的显示位置和Buf
30、缓冲区对应关系-注:图中0、63每个数字代表一个字节,数字表示这个字节莊BUF绫冲区数组中的位置。 比如说图中51就是从左往右的八个小方格,图中的6'就.是从左往右的八个小方格。5135年十位193 显示5034位征18年个位显示55月十位显示位置:39237点54382226495333时十位 显示 ISlJL37时个位显示1721点15485232361620点0459月个位43显示27 tel1158422663 8 +47显示31 1AJL15624630a个位 显示点1014576141分十位显示位置45分个位2529显示136044281295640248图4 LED点阵屏
31、上的点与buf纟爰冲区的对应关系在这里要真正实现动态扫描则分为两部分第一部分是buf数据缓存区的数据的动态变化,第二 部分是对LED屏的行的动态扫描1. BUF数据缓冲区的动态变化例如:这是对显示的时钟分的个位的数字在缓冲区的动态变化的计算方法比如要显示数字8buf45=(buf45I Ox f 0)&(numcode7* fen1 +1«4)IOxOf);buf29=(buf 29 IOxfO)&(numcode7*fenl«4)IOxOf);fenl+2«4)|0x0f);buf61=(buf61|0xf0)&(numcode7* bu
32、f12=(buf12 |OxfO)&(numcode7* fenl+3«4) OxOf);buf28=(buf28 IOxf0)&(numcode7* fenl+4«4)|OxOf);fenl+5«4) I OxOf);fenl+6«4) I OxOf);buf44=(buf44I0xf0)&(numcode7* buf60=(buf60|Oxf0)&(numcode7*分析:由上图可得到分的个位(即fenl)在点阵屏的位置是'分个位显示位置”对应的在数组中 的字节数据是45,29,13,60,44,28,12.且
33、是这7个字节的高4位。由于要统一操作所以我会 先把数据送到每个字节的低四位,通过移位来对BUF中字模数据的位置的确定。如第一个 buf45=(buf45 IOxf0)&(numcode7*fenl+1«4)|OxOf);buf45|0xf0先通过按位或把要显示的位置全部置为1 (即不显示),(numcode7*fenl+ 1 <<4) IOxOf再在字库中找出数字8的位置并把每个字节都左移四位之后再和 OxOf 按位与一下消除对显示位置之外的影响 » (buf45 IOxf0)&(numcode7*fenl+l«4)IOxOf) 再和原
34、来置一的数据按位与把数据放入缓冲区。这样就可以把数据送入想要的位置了。别的位置也可以用同样的方法来实现数据的传送。2对数据的缓存区的动态扫描通过上面的要显示的数据的位置及容送入了缓存区,现在要显示在LED屏上这个显示分为两步,第一步74HC595移位寄存器中数据移位,第二步 行数据扫描-word格式.关闭74HC138D译码器和74HC595移位奇存器取缓冲区里的前16个宁节1 丫图扫描输出流程图(1)列数据的移位(74HC595移位寄存器中数据移位)第一步移位时钟信号清零第二步 用送过来的数据来和0x80按位与取出最高位,再和0x80比是0还是1是1就送一个1个595输入端R否则送0第三步把
35、送来的数据左移一位第四步开移位时钟信号第五步继续比较,重复8次;关键代码:void shiftbyte(int inbyte)int i;for(i=0;i<8;i+)CLKO;if(inbyte&0x80)=0x80) RDIl;else RDIO;inbyte=inbyte«l;CLK1;)(2) 74HC138译码器行选择第一步,把译码器138的0E的值清零第二步,把移位寄存器595并行输出时钟信号清零第三步,选择要扫描数据这里是015共128位的数据(后面的三段语句分别是16-31,32-48,48-63)第四步,把取缓冲区总的一个字节的数据发送到零时变量中,并
36、把零时变量作实参调用移位函第五步,当128位数据都移位完成时说明列数据已经有了,这时设置A,B的值并把并行输出时 钟置1使之产生一个上升沿,把595数据输出到并行输出口上,开138使能端0E置一第六步,等待一会儿第七步,修改A,B和选择的数据重复一到六步。当然,由于人的视觉停留,只要刷屏的速度够快所看到的的LED显示屛上显示的图像还是全屏 稳定的图像。关键代码:OEO; /OE=0;138译码器使能端为低电平SCLKO; /OE=1; 138译码器使能端为高电平for(i=0;i<16;i+)temp=bufi;shiftbyte(temp);AI NO;/ABINO;/BSCLK1;
37、/SCLK0E1; /OEdelay(l);这是行扫描的一部分程序,后面的语句和这个类似,要修改AIN,和BIN的值和选择的在缓冲 区的数据的位置的值。3. 2.7时钟显示秒的控制word格式.在此次的设计中本起初是想在点阵LEI)屏分成上下两部分,上面一部分显示年月 日下面一部分 显示时分秒,但是后来发现下面如果要将时分秒在LED屏上都显示出来的话数字间就没法有足够的 间距来区分,所以就采取了另一种方案,在时和分之间加两个点隔一秒闪烁一次,当闪过60次之后 分的个位上就加1,下面就来实现时和分之间加两个点的闪烁。点的闪烁主要就是用的延时,在 LPC11C24的开发板中已经提供给我们16位定时
38、器,我们就是利用这个16位定时器timer32把timer32 中的终端程序修改加入标志位来实现1秒定时。如下是在16位定时器中的闪烁计数程序:if(timer16_0_counter<=50) shanshuo=l;if(timerl6_0_counter>50&&timerl6_0_counter<=100) shanshuo=0;在主函数中只要控制两个点的位置的与和或的值就能使两个点闪烁起来。程序代码如下:if(shanshuo=l)灭buf37=buf3710X01;buf20=buf2010x01;buf24=buf2410x80;buf41=buf
39、41|0x80;)else/亮buf37=buf37&0Xfe;buf20=buf20&0xfe;buf24=buf24&0x7f;buf41=buf41&0x7f;3.3 GPS卫星数据接收棋块GR-87GR-87的主要功能是负责接受卫星数据并实现高精度的时间信号输出。GR-87接受GPS卫星数 据并且每秒发出几种数据,包括:$GPGGA、SGPRMC、SPGRMV、SPGRMO、SPGRMC等数据格式,因为 我们只是显示它的时钟信息所以我们要从中筛选和时间有关的数据格式&GPRMC。3. 3.1GPS技术简介GPS导航系统是以全球24颗定位人造卫星为
40、基础,向全球各地全天候地提供三维位置、三维 速度等信息的一种无线电导航定位系统。它由三部分构成,一是地面控制部分,由主控站、地面天 线、监测站及通讯辅助系统组成。二是空间部分,由24颗卫星组成,分布在6个轨道平面。三是 用户装置部分,由GPS接收机和卫星天线组成。民用的定位精度可达10米。在“十二五”期间,卫星导航将在众多领域如航空、海路、铁路、建筑、电信、电力等方面的 应用都会有很大的发展空间。在未来的数年间,随着定位手机的高速增长和移动位置服务业的展开, 原先以车辆应用为主的局面将逐步让位给卫星导航与蜂窝通信触合的定位手机。在行业总产值中, 运营服务的份额也会逐步加大。图4.1 GPS系统
41、空间卫星星座3. 3. 2 GR-87此次设计的GPS模块系统选择了采用第三代高效能芯片高灵敏、低耗电量芯片STAR IE的GR-87 o建ARM7TDMI CPU定位精度小于10米,能够同时追踪20个卫星信道。芯片建200,000个 卫星追踪运算器,可以保持星历数据,快速定位。其远达能力,满足汽车导航灵敏度的要求,以及 其他基于位置的应用程序。因此,holux的GR-87引擎是非常适合AVL系统集成和基于位置的服3. 3. 3引脚功能 图为GPS模块外观图,可以看出它有6个引脚,分别为: 引脚1 (VCC):主要的直流+3. 35.5V的引擎板供电 引脚2 (TXA):主要的传输通道,用于导
42、航和输出为编写的软件的用户测量数据。 引脚3 ( RXA):接受通道,主要接受用户的命令引脚4 ( RXB):辅助接受通道,用于输入差分 引脚5 (GND):接地端 引脚6 ( RESET):复位端图3.1GR-87外观图GR-87指标最多可同时接收20个卫星 时间标示:1脉波/秒,GPS时间+/-01秒误差 晶片建200,000个卫星追踪运算器 运算程序:ARM7/TDMI处理速度:50 MHZ 更新速率:1HZ 串口输出精度可达微秒级 时间标示:1脉波/秒,GPS时间/-0.1秒误差寻星时间小于10秒 定位时间(平均值) 重新抓取:0.1秒 热开机:1秒 暖开机:38秒 冷开机:42秒3.
43、 3.4 硬件接口 一UARTUART 传输结构 UART:Universal Asynchronous Receiver/Transmitter » 通用异步接收/发送 装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上,多数是16550AFN芯片。它 是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了 RS-232C数据终端设备接 口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一 部分,UART还提供以下功能:将由计算机部传送过来的并行数据转换为输出的串行数据流。将计 算机外部来的串行数据转换为字节,供计算机部并行
44、数据的器件使用。在输出的串行数据流中加 入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接 收数据流中删除启停标记。处理由键盘或鼠标发出的中斷信号(键盘和鼠标也是串行设备)。可以 处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART还提供输入输出数据的缓冲 区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区存储16字节数据, 而通常的UART是8250。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用 来主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它 器件,如EE
45、PROM通信。通信UART首先将接收到的并行数据转换成串行数据来传输。微控制器中的 UART传送数据的速度围为每秒几百位到1.5Mb。例如,嵌入在ElanSC520微控制器中的高速UART 通信的速度可以高达1. 152Mbps。UART波特率还受发送和接收线对距离(线长度)的影响。3. 3. 5通信协议NMEANMEA协议是为了在不同的GPS (全球定位系统)导航设备中建立统一的BTCM (海事无线电技术 委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Association ) 制定的一套通讯协议oGPS接收机根据NMEA-0
46、183协议的标准规,将位置、速度等信息通过串口传送 到PC机、PDA等设备。NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议, 大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。NMEA协议常用的输出类型有很多种,但是我们需要的只是下面的这种:GPRMC (建议使用最小GPS数据格式)&GPRMC, <1>, <2>, <3>, <4>, <5>, <6>, <7>, <8>, <9>, <10&
47、gt;, <11>, <CR><LF> 标准定位时间(UTC time)格式:时时分分秒秒.秒秒秒(hhmmss. sss) ° 定位状态,A二数据可用,V=数据不能用。纬度,格式:度度分分.分分分分(ddmm.mnunm)*»纬度区分,北半球(N)或南半球(S)。经度,格式:度度分分.分分分分。精度区分,东(E)半球或西(W)半球。相对位移速度,00至1851.8knots相对位移方向,000. 0至359.9度。实际值日期,格式:日日月月年年(ddmmyy ) °3. 3. 5主控棋块LPC11C24与GR-87的连接注:由
48、于我们只需要从GR-87中读数据所以我们只用了 GR-87输出引脚LPC11C24 引脚GR-87引脚+5VIN5V供电电源GNDGNDPl_6TXA因为此次设计的只需要从GR-87中读数据所以我们只用了 GR-87第二引脚TXA,TXA为串行输出通道,用于输出模块接收到的GPS数据,与LPC11C24上的Pl_6引脚相连即UART的串行接收端RXD相连。图5.3 GR-87与LPC11C24的连接图3. 3. 6 UART接收GPS数据软件设计GPS先和电脑用串口连接观察串口调试助手收到的容,这里的问题就是把波特率修改直到收 到正确的容,下一步就是开启LPC11C24的UART异步串行通信,
49、把UART接收到的数据保存下来再 输出。这里遇到一系列问题比如FIFO中的数据是如何进入RBR中的是一个字符接受还是一段字符 保存下来再中斷的。这个通过对初始化的阅读来了解的。在主函数中对缓存区进行处理就可以了, 使用临时缓冲区但存有用的数据的。UART可以使用后接入GPS实现对时这时候加入的timer32就 不能使用了,而是用tinierlG °1.UART数据的接收UART在初始化的时候会设置控制寄存器FCR中有个7:6可以设置RX触发等级,这里设置00,即收 到一个字符就会触发中斷这样就可以收一个处理一个了。在UART中斷中,收到一个字符就放入缓存 区,在主函数中对缓存区进行处
50、理就可以了。开始图UART数据的接收流程图关键代码:if (IIRValue = IIR.RDA)UARTBufferUARTCount+ = LPC_UART->RBR;if (UARTCount = BUFSIZE)UARTCount = 0;)这段程序就是如果收到的数据是有效的就会把FIFO中的最高位的数据给缓存区,知道缓存区64 字节全满。2. UART数据的处理我们要用的数据是GPS中的$GPRSM中的时间和日期的容。时间的格式是:时时分分秒秒日期格式是:日日月月年年GPS信息的数据是以 $ 为开始,以号结束筛选GPS数据的方法是:a. 判斷是不是收到了开头$'以及后面
51、的'G''P''R''M''C'是否都满足b. 把缓存数组中的第7-13 * 47-52的数据通过字符转数字并赋给对应的变量。当然因为是在东八区,小时要+8之后判斷是不是超过了24小时。c. 这样就把时间和GPS上的数据同步了以下是这段程序代码:if ( UARTCount != 0 )LPC_UART->IER = IER.THRE I IER.RLS; /关闭 UART接收for(i=0; KUARTCount; i+)/在接收到的字符长度之判斷if(UARTBufferi=f)/先判斷是不是开头的$fB
52、egin=l;/是的标志位为pHead=0; /头变量清零fCmd=0;/收到数据标志清零cmdpHead+=, $' ;/把第一个数据$送入缓存数组中else if(UARTBufferi=, )&&fBegin=l)/如果收到 了 开始符也收到 了结束fBegin=0; /开始符标志清零cmdpHead=O;/结尾给个0fCmd= 1;/数据接收完整标志置1else if(fBegin=l)cmdpHead+ =UARTBuffer'i;/在开始和结尾符之间的就是要用的数据if(fCmd=l)/接收数据完整if(cmdO=, $' )&&am
53、p;(cmd1=, G' )&&(cmd2=, P' )&&(cmd3=, R' )&&(cmd4=, M ')&&(cmd5= C )/如果收到的数据开头是$GPRSM,这个数据就是要用的数据shi=(cmd7-0x30)*10+(cmd8-0x30)+8;/先判断小是是不是过了 24 小时if(shi>24)shi-=24; /过了 24小时就减去24小时shil=shi%10;/分别把对应的在缓存区的数据给对应的变量shi2=shi/10;fen2=cmd9-0x30;fenl=cmd1
54、0-0x30;miao2=cmdll-0x30;miaol=cmd12-0x30;if(cishu=O | | fChange!=shi2)/由于在调试时发现日期的数据有可能丢失就在第一次对时改变一下,以后分钟变化是才让日期对一次,这样可以降低出错率ri2=cmd47-0x30;ril=cmd48-0x30;yue2=cnid 49 -0x30;yue1=cmd50-0x30;nian2=cmd51-0x30;nianl=cmd52-0x30;cishu=l;fChange=shi2;choiceO;f=0;/对时时步用定时器计时)fCmd=0;pHead=0;)UARTCount = 0;/对时结束清空计数位LPC_UART->IER = IER_THRE I IER_RLS | IER_RBR; 开 UART接收3.4供电电源的选择采用开关电源作为整个系统的供电电源,因为当电压输出为+5V时最大的直流电流可以达到 22A,能满足驱动LEI)点阵屏显示时所需大电流的要求。第四章系统测试4.1测试仪器和设备1 'PC-台2、数字万用表1块3、数字示波器1台4.2测试方案4、2.1 LED点阵屏显示测试将LEI)点阵屏与主控制芯片NXP LPC11C24连接,直接给其写入一个显示年月日时分的程序观察 LED屏的的响应速度和显示的效果。在夜
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年传输线路模拟试卷(含答案)
- 2026年国家普通话水平考核模拟试卷及答案详解
- 2026年电子商务技师考试题库及答案详解
- 2026年理疗器械模拟题及答案详解
- 2026年医废处理项目申请报告范文
- 医学影像诊断2026年实习生考试及答案详解
- 2026年二级造价工程师道路桥梁工程计价模拟试卷目(含答案)
- 2026年常用药物用法模拟试题(含答案)
- 2026年17护资模拟试题(含答案)
- 2026年福建事业单位考试答题思路解析模拟试题(含答案)
- 安全员c证湖南省题库及答案解析
- GB/T 755-2025旋转电机定额与性能
- CJ/T 190-2015铝塑复合管用卡压式管件
- 2025年工程项目管理项目生命周期试题及答案
- 销售沙石知识培训课件
- 2025年度婚内出轨离婚协议书附带配偶精神损害赔偿协议
- 《陆用液体装卸臂检验规程》
- 食品加工厂安全生产手册
- 房屋渗漏修补合同样式
- (高清版)AQ 1028-2006 煤矿井工开采通风技术条件
- DL-T1098-2016间隔棒技术条件和试验方法
评论
0/150
提交评论