GPS简介
GPS是Global Positioning System(定位系统)的简称,由美国国防部组织研制,具有、全天候、全时段、高精度特点的军民两用的导航定位卫星系统。在获取定位数据时通常会将GNSS、BDS、GPS包含进来,三者说明如表1所示。
表1
GNSS包含了BDS、GLONASS、GALILEO、GPS、MASS、GAGAN等卫星导航系统,是一个包含了各卫星导航系统的统称,定位数据通常包含了多种信息类型,如图1所示。
图1 定位数据
图1中有多种信息类型,如表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、上电自动定位的特点。
在例程中选用串口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数据类型时,系统会自动解析对应的数据,如经纬度、时间等值,用户可免去繁琐的数据解析步骤。
应用案例代码详解
此应用基于M1052平台演示,展示部分应用代码,详见程序清单5.1。
程序清单5.1
验证结果
通过调用程序清单5.1,得出如图3所示定位信息。
图3 定位信息
由图3得出应用例程中所需的结果,如表4所示
表4 数据结果
通过表4,将经纬度坐标代入到地图,如图4所示。
图4
通过坐标数据代入,定位位置与实际位置相同,精度可靠。可见在AWorks平台下使用GPS模块定位,免去了大量时间,不用考虑AT指令的实现、上电时序的考虑即可得到所需的结果。