物联智能时代,GPS 定位应用愈发广泛,如何快速应用 GPS 定位模块,稳定有效的获取定位信息,缩短项目周期是至关重要的。本文就如何快速在 AWorks OS 操作系统中开发并稳定应用 GPS 模块进行详细介绍。
 
GPS 简介
GPS 是 Global Positioning System(全球定位系统)的简称,由美国国防部组织研制,具有全方位、全天候、全时段、高精度特点的军民两用的导航定位卫星系统。在获取定位数据时通常会将 GNSS、BDS、GPS 包含进来,三者说明如表 1 所示。
 
表 1
 
 
GNSS 包含了 BDS、GLONASS、GALILEO、GPS、MASS、GAGAN ?#28909;?#29699;卫星导航系统,是一个包含了全球各卫星导航系统的统称,定位数据通常包含了多?#20013;?#24687;类型,如图 1 所示。
 
 
图 1 定位数据
 
图 1 中有多?#20013;?#24687;类型,如表 2 所示。
 
表 2
 
 
不同的数据类型里有不同的数据内容,不同的数据代表不同信息,数据量较多需要按位进行数据解析,在 AWorks 平台中,已经将数据解析这一步处理完成,可以供用户直接使用,不用再去考虑数据解析的问题就可得到定位信息。
 
AWorks 外设使能配置
用户使用 GPS 模块定位分为两个步骤:
 
通讯方式的选择配置
 
解析定位数据得出结果
 
在 AWorks 平台使用 GPS 模块时,工作流程如图 2 所示。
 
图 2 GPS 模块工作流程
 
当用户需要使用某个设备时,在 AWorks 工程中用户可以通过 aw_prj_params.h 配置文件设备宏使能进行设备添加与删除,在 aw_prj_params.h 文件中,每一个设备宏代表着一个硬件。
 
本例程中选用的 GPS 模块是瑞士 U-blox 公司所生产的 MAX-7Q 系列模块,具有支持 GPS/QZSS/GLONASS 定位,无需 AT 指令控制、默认波特率 9600、?#31995;?#33258;动定位的特点。
 
在例程中选用串口 3 与 GPS 模块进行通讯,因此在 aw_prj_params.h 中使能 AW_DEV_IMX1050_LPUART3(串口宏),具体选用哪一个串口进行通讯由用户自行决定。
 
在使用不同硬件设备时打开不同硬件设备宏,在本例程中使用 GPS 设备,因此打开 AW_DEV_GNSS_UBLOX(GPS 模块宏),如程序清单 2.1 所示。
 
程序清单 2.1
 
 
AWorks 中 GPS 的硬件配置
在 AWorks 中所有设备由 AWbus_lite 进行集中管理,在使用一个硬件设备前,必须将其添加到系统硬件设备列表 aw_const struct awbl_devhcf  g_awbl_devhcf_list[] 中(在 awbus_lite_hwconf_usrcfg.c 中定义),awbl_devhcf 结构体成员如程序清单 3.1 所示。
 
程序清单 3.1
 
 
在使用 GPS 模块时,设备管理列表 g_awbl_devhcf_list[] 中已包含硬件设备名,其中 GPS 硬件配置信息如程序清单 3.2 所示。
 
程序清单 3.2
 
 
其中指向设备信息(常量)如:与 MCU 通讯的串口号、波特率、需要使用的引脚等,具体信息详见程序清单 3.3 所示。
 
程序清单 3.3
 

 

 
配置完通讯接口后还需要调用解析数据的 GNSS 文件,包含了 NMEA-0183 协议解码驱动、GNSS 接口文件,详见程序清单 3.4,所在位置为程参数自动配置文件 aw_pri_param_auto_cfg.h 中。
 
程序清单 3.4
 
 
AWorks 中 GPS 的接口与参数说明
在 GPS 模块接收到数据后,通过串口与 MCU 进行数据传输,在 AWorks 中已经完成数据的解析等,用户不再需要解析数据格式,只需调用相关接口即可,接口说明如表 3 所示。
 
表 3 接口与参数
 
 
其中 aw_gnss_ioctl_req_t 为命令请求,原型详见程序清单 4.1。
 
程序清单 4.1
 
 
aw_gnss_data_type_t 是需要获取的数据类型,详见程序清单 4.2。
 
程序清单 4.2
 
 
 
如用户在调用 AW_GNSS_RMC_POSITION 数据类型时,系统会自动解析对应的数据,如经纬?#21462;?#26102;间等值,用户可免去繁琐的数据解析步骤。
 
应用案例代码详解
此应用基于 M1052 平台演示,展示部分应用代码,详见程序清单 5.1。
 
程序清单 5.1
 
 
 
 
 

 

 
验证结果
 
通过调用程序清单 5.1,得出如图 3 所示定位信息。
 
图 3 定位信息
 
由图 3 得出应用例程中所需的结果,如表 4 所示
 
表 4 数据结果
 
 
通过表 4,将经纬度坐标代入到地图,如图 4 所示。
 
图 4
 
通过坐标数据代入,定位位置与?#23548;?#20301;置相同,精度可靠。可见在 AWorks 平台下使用 GPS 模块定位,免去了大量时间,不用考虑 AT 指令的实现、?#31995;?#26102;序的考虑即可得到所需的结果。