技術文章
AWorks框架下GPS接口的編程與應用
閱讀:944 發布時間:2021-1-8AWorks框架下GPS接口的編程與應用
GPS簡介
GPS是Global Positioning System(q球定位系統)的簡稱,由美國國防部組織研制,具有、全天候、全時段、高精度特點的軍民兩用的導航定位衛星系統。在獲取定位數據時通常會將GNSS、BDS、GPS包含進來,三者說明如表1所示。
表1
GNSS包含了BDS、GLONASS、GALILEO、GPS、MASS、GAGAN等q球衛星導航系統,是一個包含了q球各衛星導航系統的統稱,定位數據通常包含了多種信息類型,如圖1所示。
圖1 定位數據
圖1中有多種信息類型,如表2所示。
表2
不同的數據類型里有不同的數據內容,不同的數據代表不同信息,數據量較多需要按位進行數據解析,在AWorks平臺中,已經將數據解析這一步處理完成,可以供用戶直接使用,不用再去考慮數據解析的問題就可得到定位信息。
AWorks外設使能配置
用戶使用GPS模塊定位分為兩個步驟:
通訊方式的選擇配置
解析定位數據得出結果
在AWorks平臺使用GPS模塊時,工作流程如圖2所示。
圖2 GPS模塊工作流程
當用戶需要使用某個設備時,在AWorks工程中用戶可以通過aw_prj_params.h配置文件設備宏使能進行設備添加與刪除,在aw_prj_params.文件中,每一個設備宏代表著一個硬件。
本例程中選用的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指令的實現、上電時序的考慮即可得到所需的結果。