收藏 分享(赏)

基于ARM的GPS定位信息显示器的软件设计.doc

上传人:dreamzhangning 文档编号:2289067 上传时间:2018-09-09 格式:DOC 页数:54 大小:640KB
下载 相关 举报
基于ARM的GPS定位信息显示器的软件设计.doc_第1页
第1页 / 共54页
基于ARM的GPS定位信息显示器的软件设计.doc_第2页
第2页 / 共54页
基于ARM的GPS定位信息显示器的软件设计.doc_第3页
第3页 / 共54页
基于ARM的GPS定位信息显示器的软件设计.doc_第4页
第4页 / 共54页
基于ARM的GPS定位信息显示器的软件设计.doc_第5页
第5页 / 共54页
点击查看更多>>
资源描述

1、 摘要I摘要随着计算机技术,微电子技术和网络技术的迅速发展,嵌入式系统技术是电子产品设计领域最为热门的技术之一。在消费电子、网络通信、工业控制等诸多领域得到了广泛的应用。ARM 处理器是目前公认的领先的 32 位嵌入式 RSIC微处理器,已成为许多行业嵌入式解决方案的 RISC 标准。ARM 技术以低功耗,低成本、体积小等诸多优点在嵌入式领域获得更广泛的应用。GPS 是以卫星为基础的无线导航定位系统。它具有全能性(陆地、海洋、航空和航天) 、全球性、全天候、连续性和实时性的导航、定位和定时的功能,能为用户提供精密的三维坐标、速度和时间。本设计将阐述 LPC2292 的启动程序、串口 UART0

2、 通讯程序、I2C 通讯程序和 GPS 数据解码程序,重点介绍 LPC2292 串口 UART0、I2C 部件和 NMEA-0813 协议,在 LCD 显示方面介绍如何使用 ZLG/GUI 编写菜单界面, 本软件能正确的对GPS 信息进行解码,并在液晶上显示。关键词: LPC2292 、 GPS 接收器 、 I2C 、 NMEA-0813 协议 Abstract IIAbstractWith the development of the computer technology ,microelectronics and network technology, embedded system i

3、s one of the most popular technology of the field of electronic product design.Embedded system is adopted in the fields of consumer electronics, network communication, industrial control and so on. ARM processor is a kind of advance 32-bit microprocessor embedded RISC, it have becomed embedded RISC

4、stardard of solution for many industries. ARM technology have low-power, low-cost, small size and many other advantages, so it applied in the field of embedded system widely.GPS is a Wireless navigation and positioning system based on Satellite.It has the function of omnipotent (terrestrial, marine,

5、 aviation and aerospace), a global, all-weather, continuity and attachment of navigation, positioning and timing,it can provide for the customer Sophisticated three-dimensional coordinates, speed and time.This article expo und that how to program for 2292Bootloader、serial UART0 communi cation、I2C co

6、mmunication .And GPS data decode,and introduce LPC 2292 emphasis on serial UART0 、I2C and NMEA-0813 protocol,and introduce how to use ZLG/GUI program menu interface in the part of lcd display. This software can decode GPS data accuracy and display on the LCD.Keyword: LPC2292 、 GPS receiver 、 I2C 、 N

7、MEA-0813 protocol 目录 III目录绪论 12 总体方案设计 .22.1 设计任务 .22.2 硬件设计 .22.3 软件设计 .33 各模块程序设计 .53.1 Bootloader 代码 53.1.1 初始化中断向量 .63.1.2 初始化外部总线控制器 .73.1.3 堆栈初始化 .83.1.4 目标板初始化 93.2 移殖 COS-到 LPC2292123.2.1 编写 OS_CUP.h133.2.2 OS_CPU_C.c 文件 153.2.3 OS_CPU_A.S 文件 153.2.4 中断及时钟节拍 173.3 信息解码程序设计 183.3.1 NMEA-0183

8、的协议标准 .183.3.2 GPS 数据结构的定义 .203.3.3 GPS 信息解码程序设计 .233.4 串口驱动程序 233.4.1 串口结构图 233.4.2 串口的初始化 243.4.3 串口接收数据程序设计 253.5 键盘处理程序 273.5.1 I2C 总线 .273.5.2 I2C 总线速度的配置 .343.5.3 ZLG7290 .343.6 液晶显示程序的设计 364 软件的调试 384.1 软件调试流程 384.2 调试结果 38结束语 .39致谢 .40参考文献 .41附录 .42广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计

9、1绪论GPS 卫星导航定位技术是现代信息通信领域中一门新兴的技术。GPS 系统的空间部分由 24 颗卫星组成,均匀分布在 6 个轨道面上,地面高度为 20200 公里,轨道倾角为 55 度,扁心率约为 0,周期约为 12 小时,卫星向地面发射两个波段的载波信号,载波信号频率分别为 1575.442 兆赫兹(L1 波段)和 1227.6 兆赫兹(L2 波段) ,卫星上安装了精度很高的原子钟,以确保频率的稳定性,在载波上调制有表示卫星位置的广播星历,用于测距的 C/A 码和 P 码,以及其它系统信息,能在全球范围内向任意多用户提供高精度的、全天候的、连续的、实时的三维测速、三维定位和授时。GPS

10、系统的控制部分由设在美国本土的 5个监控站组成,这些监控站不间断地对 GPS 卫星进行观测,并将计算和预报的信息由注入站对卫星信息更新。GPS 系统的用户是非常隐蔽的,它是一种单程系统,用户只接收而不必发射信号,因此用户的数量也是不受限制的。目前,中国卫星导航技术应用领域十分广阔,传统测量应用及军工相关应用的比例在逐年下降,应用已渗透到许多崭新的行业。通信行业用 GPS 做时间同步测控;电力、有线电视、城市地下管道采用 GPS 布设线路;交通、运输部门用 GPS 等相关集成技术营建 ITS 系统和监控系统;公安、银行、医疗、消防等用 GPS 营建紧急救援或报警系统;汽车、船舶用 GPS 导航;

11、GIS 数据提供商用 GPS 采集地理信息相关数据,并提供位置信息相关服务(LBS) ;广播电视行业用 GPS 与罗盘制造卫星电视定向接收天线;电子商务领域,GPS 甚至应用于CRM 客户管理和物流配送体系中;而电脑制造商、通讯设备商正在推动通讯、电脑、GPS 一体化的各类移动信息终端应用。现实的应用已经使卫星导航技术从专业化领域走向了大众化应用的广阔前景,这也使得卫星导航技术逐渐成为通信、互联网之后的第三个 IT 新增长点。中国卫星导航产品与服务一直呈现强劲增长的势头。据有关部门统计,GPS 接收机相关产品的拥有量 8 万台左右,航海型约有 5 万台左右,应用数量最多;车载型以每年 200%

12、的速度递增,发展最快;手持型各类个人消费终端产品形态极为丰富,最具诱惑力。本设计主要研究对基于 NMEA-0813 协议的 GPS 信息解码程序的设计,程序可以对 RMC(推荐定位信息)、GGA(固定数据输出信息)、GSA(当前卫星信息)进行精确的解码,并能在液晶显示器显示经度、纬度、日期、时间等信息。广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计 22 总体方案设计2.1 设计任务本软件设计的所需完成的任务是:(1) 通过编写 GPS 信息解码程序,能对 GPS 信息进行正确的解码;(2) 通过移值 ZLG/GUI,设计菜单操作界面,方便用户操作,并显示

13、详细的 GPS 信息。2.2 硬件设计本设计要求微处理器能提供串口接收 GPS 模块输出的信息,并有较强的运算能力及高的处理速度使得菜单界面显示效果好。目前,ARM 所提供的 16/32 位嵌入式 RISC 内核主要有以下几个系列产品:ARM7、ARM9、ARM10E、ARM11 和SecurCore、StrongARM 和 Xscale 等。ARM7TMDI 属于低端的 ARM 处理器,其最高主频可达 130MIPS(Million Instructions Per Second),高速的运算能力能胜任绝大多数复杂的应用。本次设计采用 LPC2292 作为微处理器,其最高主频为60 MH z

14、,足以胜任本次设计任务,LPC2292 有 256kB 片内 Flash,为本次设计提供了足够的程序存储空间,可以不用扩展外部 Flash。虽然 LPC2292 有 16kB 的片内 RAM,但是仍然不够用,因为本设计所移植的 uCOS_II 操作系统和 ZLG/GUI共生成了 7kB 多的 Data,必须为每一个任务分配足够的堆栈空间和声明存放GPS 信息的数组,加上定义必要的变量将增加大约 6kB 的 Data,使 16kB 的 RAM剩余不多。考虑到以后能容易的添加新的功能,本设计采用外部 RAM 储存程序变量,具体芯片选用高速访问时间达 10ns、高性能和低功耗的 IS61LV2561

15、6AL,该芯片是美国 ISSI 公司生产的 SRAM(静态 RAM),存储容量是 512kB,这为以后扩展功能提供极大的发挥余地。本设计采用 ZLG7290 作为键盘接口,ZLG7290 是标准的 I2C 接口器件,只使用三个 LPC2292 的 I/O 口,其中有两个是 I2C 引脚SDA、SCL,另外一个引脚是外部中断 EINT3,这样就可以节省 I/O 口又可以扩展多达 64 个引脚 ZLG7290 可以自动消除抖动,其中有 8 只可以作为功能键使用。另外 ZLG7290 内部还设置有连击计数器,能够使某键按下后不松手而连续有效。在液晶方面可以选用点阵图形的单色液晶,也可以选用 STN

16、或者更高级别的液晶,但价格昂贵。本设计采用 SMG240128A 作为显示器,就可以满足设计要求。本设计的总体硬件框图如图 2.1 所示。广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计 3LPC2292 UART GPS Model ZLG7290 SMG240128 IS61LV25616AL 电源 Key 图 2.1 总体硬件框图2.3 软件设计本设计采用 COS-实时操作系统实现,该操作系统的优点是提高处理事件的实时性。本设计共建立 3 个任务,分别为 TaskA、TaskB、TaskC。其中TaskA 为起始任务,其优先级最高,在 TaskA 中建

17、立 TaskB、TaskC。TaskB 是显示 GPS 信息任务,TaskC 是键盘检测任务。TaskB 获取键盘的方法是,先建立邮箱 havenewkey,并等待邮箱 havenewkey,TaskC 检测到按键按下时发出邮箱havenewkey,之后当执行任务 TaskB 时通过邮箱 havenewkey 获取按键值。主程序执行过程如图 2.2 所示。程序由 7 部分组成:Bootloader、GPS 信息解码程序、串口中断服务程序、读按键值程序、ZLG/GUI、COS-和主程序,下面将阐述其中几部分程序的设计方法。广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器

18、的软件设计 4启动初始化显示开机界面键盘检测启动接收GPS 信息使能串口中断对接收到的信息进行解码并显示信息等待邮箱(20 个时钟节拍)Havenewkey退出接收信息xinGPSxinxYN显示 GPS 简介YYN建立任务 TaskA任务调度在 TaskA 中建立任务 TaskB、TaskC, 延时 60 个时钟节拍运行任务 TaskB无限期等待邮箱Havenewkey无限期等待邮箱Havenewkey运行任务TaskC按键有效发出邮箱HavenewkeyN延时 6 个时钟节拍图 2.2 主程序流程图广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计 53

19、各模块程序设计3.1 Bootloader 代码Bootloader 代码(启动代码)是嵌入式系统中应用程序的开头部分,它与应用程序一起固化在 ROM 中,并首先在系统上运行。Bootloader 代码是嵌入式程序的重要组成部分,好的 Bootloader 代码是系统能够正常工作的前提。本设计的启动代码的整个流程图如图 3.1 所示。设置存储器控制寄存器设置系统各部分时钟 设置存储器加速模块 进入主程序 初始化各模式堆栈 初始化中断向量 配置外部总线 图 3.1 启动代码流程图广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计 63.1.1 初始化中断向量AR

20、M 体系中共包含 7 个异常中断,异常的类型及向量地址见表 3.1。表 3.1 异常的类型及向量地址异常中断类型 异常中断模式 向量地址复位 管理模式 0x00000000未定义指令 未定义模式 0x00000004软件中断(SWI) 管理模式 0x00000008指令预取中止 中止模式 0x0000000C数据访问中止 中止模式 0x00000010保留 0x00000014外部中断请求 IRQ IRQ 模式 0x00000018快速中断请求 FIQ FIQ 模式 0x0000001C初始化中断向量是设置中断向量表,该中断向量表给出了 ARM 芯片出现异常时转去执行的程序地址,如当 ARM

21、芯片复位时,产生复位中断,进入管理模式,执行地址为 0x00000000 处的代码。初始化中断向量程序代码如下:CODE32AREA vectors,CODE,READONLYENTRY;中断向量表ResetLDR PC, ResetAddrLDR PC, UndefinedAddrLDR PC, SWI_AddrLDR PC, PrefetchAddrLDR PC, DataAbortAddrDCD 0xb9205f80LDR PC, PC, #-0xff0LDR PC, FIQ_AddrResetAddr DCD ResetInitUndefinedAddr DCD UndefinedSW

22、I_Addr DCD SoftwareInterruptPrefetchAddr DCD PrefetchAbortDataAbortAddr DCD DataAbortNouse DCD 0广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计 7IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler;未定义指令UndefinedB Undefined;取指令中止PrefetchAbortB PrefetchAbort;取数据中止DataAbortB DataAbort;快速中断FIQ_HandlerSTMFD SP!, R0-R3, LR

23、BL FIQ_ExceptionLDMFD SP!, R0-R3, LRSUBS PC, LR, #4AREA 是伪操作,定义了名为 vectors 的代码段,ENTRY 是至关重要的伪操作,作用是指定程序的入口点,即是 ARM 执行程序的起始点。从上面的代码可以看出若发生取数据中止、指令预取中止、未定义指令异常时,程序将进入死循环,这有助于用户调试程序,如执行用户代码:K+=Tabtemp,若在执行该行程序之前,未对 Tabtemp赋值,则程序将进入取数据中止死循环,这使得用户发现程序错误从而矫正错误。当发生 IRQ 异常,CPU 跳转至异常向量地址为 0x00000018 处执行指令 LD

24、R PC,PC,#-0x0FF0,此时程序计数器 PC 中内容为0x00000020,0x00000020 减去 0x00000FF0 为 0xFFFFF030,这是向量中断控制器(VIC)的向量地址寄存器 VICVectAddr 的地址,这个寄存器保存当前将要服务的 IRQ 中断服务程序的入口,用这一条指令就可以直接跳转到需要的中断服务程序中。保留的异常向量“DCD 0xb9205f80”位置填充数据 0xb9205f8 是为了使向量表中所有的数据 32 位累加和为 0。3.1.2 初始化外部总线控制器正确的配置外部存储器控制器是保证 ARM 运行良好的前提,LPC2292 含有外部总线控制

25、器,支持静态存储器映射器件,包括 RAM、ROM、Flash、Burst ROM 和一些外部 I/O 器件。该模块可同时支持多达 4 个单独配置的存储器组。初始化外部存储器控制器 BCFG 时,主要设置该寄存器的几个域:BM(27),若使用的是 Burst ROM(突发数据传输仅读记忆体),则设置 BM 为 1,否则设置为 0;广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计 8对不同宽度的存储器,设置 MW(2928),设为 00 表示使用 8 位的存储器,设为 01表示使用 16 位的存储器,设为 10 表示使用 32 位的存储器;若是带字节选择输入的

26、16/32 位宽度的器件,需要设置 RBLE(10)为 1,然后设置总线切换的空闲周期 IDCY(30),读访问长度 WST1(95),写访问长度 WST2。以下为配置外部存储器控制器的代码。LDR R0, =BCFG0LDR R1, =(1 A End of message terminationGGA Global Positioning System Fixed Data Example: $GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1. 0 ,9.0, M, , , ,0000*18Name Example Units Descrip

27、tionMessage ID $GPGGA GGA protocol headerUTC Time 161229.487 hhmmss.sssLatitude 3723.2475 ddmm.mmmmN/S Indicator N N=north or S=southLongitude 12158.3416 dddmm.mmmmE/W Indicator W E=east or W=westPosition Fix Indicator1 See Table 1-4Satellites Used 07 Range 0 to 12HDOP 1.0 Horizontal Dilution of Pre

28、cisionMSL Altitude 9.0 metersUnits M metersGeoid Separation metersUnits M metersAge of Diff. Corr.second Null fields when DGPS is not usedDiff. Ref. Station ID0000Checksum *18End of message terminationGSAGNSS DOP and Active Satellites Example: $GPGSA,A,3,07,02,26,27,09,04,15, , , , , 广西工学院 2008 届毕业设

29、计 基于 ARM 的 GPS 定位信息显示器的软件设计 20,1.8,1.0,1.5*33Name Example Units DescriptionMessage ID $GPGSA GSA protocol headerMode 1 A See Table 1-7Mode 2 3 See Table 1-8Satellite Used1. Satellite used in solution.107 Sv on Channel 1Satellite Used1 02 Sv on Channel 2.Satellite Used1 Sv on Channel 12PDOP 1.8 Posit

30、ion Dilution of PrecisionHDOP 1.0 Horizontal Dilution of PrecisionVDOP 1.5 Vertical Dilution of PrecisionChecksum *33End of message termination3.3.2 GPS 数据结构的定义根据 GPS 接收器输出数据格式,定义保存 GPS 数据的结构体,这使得容易对GPS 数据进行操作。由于各种 GPS 信息组成成分不一样,所以定义不同的结构体,以下为在程序中所定义的结构体。对于 RMC 信息定义如下的结构体typedef struct GPRMC_Informa

31、tionUTCTime_Information RMC_UTCTime;uint8 FixStatus1;Latitude_Information RMC_Latitude;/uint8 NSInditor1;/Longitude_Information RMC_Longitude;/uint8 EWInditor1;/uint8 SpeedOverGroud10;/uint8 CourseOverGroud10;/Date_Information RMCDate;/uint8 RMCDate6;uint8 MagneticVariation10;/uint8 Mode1;/uint8 CRC

32、2;广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计 21uint8 checkresult;GPRMC_BUF,*P_GPRMC_BUF;该结构体中包含了三个共用体:UTCTime_Informationtypedef union UTCTime_Struct uint8 UTCTimeBuf12;struct uint8 Hour2;uint8 Minute2;uint8 Second2;uint8 MilliSecond6;UTCTimeUnits;UTCTime_Information;:Latitude_Informationtypedef uni

33、on Latitude_Struct uint8 LatitudeBuf9;struct uint8 LatDegree2;uint8 LatMinute2;uint8 LatMilliMinute5;LatitudeUnits;Latitude_Information,*P_Latitude_Information;:Longitude_Informationtypedef union Longitude_Struct uint8 LongitudeBuf10;struct uint8 LonDegree3;uint8 LonMinute2;uint8 LonMilliMinute5;Lon

34、gitudeUnits;Longitude_Information,*P_Longitude_Information;对于 GGA 信息定义如下的结构体typedef struct GPGGA_Information广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计 22UTCTime_Information GGA_UTCTime;/Latitude_Information GGA_Latitude;/uint8 NSIndicator1;/Longitude_Information GGA_Longitude;/uint8 EWIndicator1;/ui

35、nt8 PositionFixIndicator1;/uint8 SatellitesUse2;/uint8 HDOP4;/uint8 MSLAltitude7;/uint8 uint11;/uint8 GeoidSeparation6;/uint8 uint21;/uint8 AgeOfDiffErr4;/uint8 DiffRefStionID4;/uint8 CRC2;uint8 checkresult;GPGGA_BUF,*P_GPGGA_BUF;对于 GSA 信息定义如下的结构体:typedef struct GPGSA_Informationuint8 Mode1;/uint8 F

36、ixMode1;/uint8 SatelliteUse12;/uint8 SatelliteUse22;/uint8 SatelliteUse32;/uint8 SatelliteUse42;/uint8 SatelliteUse52;/uint8 SatelliteUse62;/uint8 SatelliteUse72;/uint8 SatelliteUse82;/uint8 SatelliteUse92;/uint8 SatelliteUse102;/uint8 SatelliteUse112;/uint8 SatelliteUse122;/广西工学院 2008 届毕业设计 基于 ARM

37、的 GPS 定位信息显示器的软件设计 23uint8 PDOP4;/uint8 HDOP4;/uint8 VDOP4;/uint8 CRC2;uint8 checkresult;GPGSA_BUF,*P_GPGSA_BUF;3.3.3 GPS 信息解码程序设计NMEA-0183 协议的数据的特点是$开头, $后的个字符表示信息的类型,校验和是在*后的 2 个字符,并以r 、 n作为结束符,针对这样的数据结构特点,本设计的解码程序采用状态机的方法进行解码,定义一个枚举类型的解码状态变量 status。enum begin_status = 0,found_status ,gpgga_status

38、 ,gprmc_status,gpvtg_status,gpgsa_status,crc_status1,crc_status2;其中 begin_status 为开始状态,表示未对 PGS 信息解码,当搜索到$, status 转到 found_status,表示接收到 GPS 信息头,接着若搜索到 GPGGA 则status 转到 gpgga_status,表示程序处于对 GGA 信息解码状态;若搜索到GPRMC 则 status 转到 gprmc_status,表示程序处于对 RMC 信息解码状态;若搜索到 GPGSA 则 status 进入 gpgsa_status 表示程序处于对 G

39、SA 信息解码状态。在以上的解码状态下,若程序搜索到*, status 进入保存校验和crc_status1 状态,在此状态下若搜索到r, status 进入校验和计算状态crc_status2 状态,最后 status 重新进入 begin_status,继续对 GPS 信息解码。(注:status 也会从 found_status 直至退回 begin_status,如当 status 处于found_status 时,若接着搜索到的 5 个字符不是 GPGGA、GPRMC、GPGSA 中的字符时,则 status 将返回 begin_status。)在串口中断服务程序里,接收$GPRMC

40、 后的 250 个字符,在这 250 个字符里包含 RMC、GGA、GSA 信息,按照上面的思想编写 GPS 信息解码程序。广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计 243.4 串口驱动程序本设计使用 LPC2292 UART0 接收 GPS 输出的定位信息,LPC2292 的 UART0 的特点是具有 16 字节接收 FIFO、16 字节发送 FIFO,接收器 FIFO 触发点可为 1,4,8和 14 字节,内置波特率发生器。3.4.1 串口结构图图 3.3 为 LPC2292 UART0 结构方框图。U 0 T H R U 0 T S RU 0

41、D L LU 0 D L MU 0 R B RU 0 R S RV P B 接口U 0 I E RU 0 I I RU 0 T xU 0 B R GU 0 R x中断U 0 F C RU 0 S C RU 0 L C RU 0 L S RP A 2 : 0 P S E LP S T BP W R I T EP D 7 : 0 A RM Rp c l kD D I SN T X R D YT x D 0N B A U D O U TN R X R D YR x D 0N T X R D YR C L K图 3.3 UART0 方框图UART0 接收器模块 U0RX 监视串行输入线 RxD0 的有

42、效输入。UART0 Rx 移位寄存器(U0RSR)通过 RxD0 接收有效的字符。当 U0RSR 接收到一个有效的字符时,它将该字符传送到 UART0 RX 缓冲寄存器 FIFO 中, 等待 CPU 通过 VPB 接口进行访问。UART0 发送器模块 U0Tx 接收 CPU 或主机写入的数据并将数据缓存到 UART0 广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计 25Tx 保持寄存器 FIFO(U0THR)中。UART0 Tx 移位寄存器 U0TSR 读取 U0THR 中的数据并将数据通过串行输出引脚 TxD0 发送。3.4.2 串口的初始化串口初始化涉

43、及到的寄存器有除数锁存 U0DLL、U0DLM、引脚功能选择寄存器 PINSEL0、UART0 FIFO 控制寄存器 U0FCR、UART0 线控制寄存器 U0LCR, UART0 中断使能寄存器 U0IER。其中除数锁存 U0DLL、U0DLM 是用于设置串口通讯波特率,它保存了用于产生波特率时钟的 VPB 时钟(pclk)分频值。由于波特率时钟必须是波特率的 16 倍,因而所设的除数锁存 U0DLL、U0DLM 分频值是(Fpclk/16)/bps,bps 是用户要设置的波特率,常用波特率值是115200、57600、38400、19200 等,在本设计中使用 9600 的波特率与 GPS

44、模块通讯。设置引脚功能选择寄存器 PINSEL0 的 1:0 位与 3:2 位为 01,使能P0.0、P0.1 串口通信功能。UART0 FIFO 控制寄存器 U0FCR 控制 UART0 RX 和TX FIFO 的操作,置位 U0FCR 的 0 位是使能对 UART0 Rx 和 Tx FIFO 以及 U0FCR7:1的访问,置位 U0FCR 的 1 位会清零,UART0 Rx FIFO 中的所有字节并复位指针逻辑,置位 U0FCR 的 2 位清零 UART0 Tx FIFO 中的所有字节并复位指针逻辑,设置 U0FCR 的 7:6 位为 10 选择触发点 2,默认 8 个字节触发。UART0

45、 线控制寄存器 U0LCR 决定发送与接收数据字符的格式,本设计中设置 U0LCR 的 1:0 位为 11,即8 位字符长度,1 个停止位,无奇偶产生和校验置位。设置 UART0 中断使能寄存器 U0IER 的位 0 为 1, 使能 RDA 中断。串口初始化代码:PINSEL0 = (PINSEL0U0LCR = 0x80; / 允许访问分频因子寄存器 Fdiv = (Fpclk / 16) / bps; / 设置波特率 U0DLM = Fdiv / 256;U0DLL = Fdiv % 256; U0LCR = 0x03; / 禁止访问分频因子寄存器 / 且设置为8,1,n U0FCR = 0x87; / 初始化FIFO U0IER = 0x01; /3.4.3 串口接收数据程序设计本设计采用中断方式接收 GPS 接收机输出到串口的数据,为了使用中断接收数据,除了对 U0IER 寄存器设置之外,还要对向量中断控制器(VIC)进行设置。 向量中断控制器(VIC)广西工学院 2008 届毕业设计 基于 ARM 的 GPS 定位信息显示器的软件设计 26向量中断控制器(VIC)的特点是:具有 32 个中断请求输入,可将其编程分为 3

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

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报