基於 ST AEK-COM-GNSST31和核心模塊Teseo-LIV3F的GNSS車載導航方案

1. AEK-COM-GNSST31介紹

AEK-COM-GNSST31是一款基於Teseo-LIV3F GNSS模塊的評估板,基於經過認證的Teseo-LIV3F全球導航衛星系統(GNSS)模塊,其中嵌入了TeseoIII單片獨立定位接收IC。小巧、便宜、易於開發是該產品的特點,該評估板與X-CUBE-GNSS1固件一起使用,提供必要的採集、跟蹤、導航和數據輸出功能,無需外部內存支持。也可以方便地與SPC5連接用於汽車應用開發的MCU,作為AutoDevKit™計劃的一部分

2.核心模組Teseo-LIV3F

AEK-COM-GNSST31的核心是Teseo-LIV3F,Teseo-LIV3F模塊是一個易於使用的全局模塊衛星導航系統(GNSS)獨立模塊,嵌入Teseo III單模,除必要的power supply、RF和天線ANT管理外,它與主控MCU通信採用I2C或UART接口。兩種接口均支持GNSS NMEA協議。

X-CUBE-GNSS1固件運行在STM32上,包括用於Teseo-LIV3F全球導航衛星系統(GNSS)設備的驅動程序、用於支持NMEA協議的中間件和用於任務調度的FreeRTOS,以確保更好的異步消息解析,當連接到NUCLEO-F401RE, NUCLEO-L476RG,或NUCLEO-L073RZ板時,該軟體帶有運行在AEK-COM-GNSST3擴展板上的驅動程序的示例實現。

3. 車載GNSS導航的實現
本方案基於AEK-COM-GNSST31和NUCLEO-F401RE開發板,實現在標準NMEA協議下,主MCU與GNSS模塊之間通過I2C實現信息交互

I2C定位傳感器是一個平台解決方案,可實現Teseo-LIV3F標準固件。

3.1硬體準備

  • AEK-COM-GNSST31評估板
  • NUCLEO-F401RE 開發板
  • USB-microUSB數據線用於評估板和PC連接
  • 3.2軟體準備
  • TESEO-SUITE
  • STM32CUBE-MX
  • Atollic-TRUE Studio

3.3通過TESEO SUITE PC工具配置Teseo-LIV3F

①如所示,通過morpho將AEK-COM-GNSST31連接到NUCLEO-F401RE頂部

安裝STM32固件


Select Tool->X-NUCLEO-GNSS1A1


The X-NUCLEO-GNSS1A1面板出現
點擊Update my STM32-NUCLEO board for X-NUCLEO-GNSS

The STM32 X-Nucleo-GNSS 面板顯現
Select the firmware
STM32_Nucleo64-F401RE_UARTBridde.bin
Push the Upload button

②打開TESEO-SUITE PC Tool,使能 UART/COM connection against the NUCLEO-F401RE,使用TESEO-SUITE上的NMEA解碼面板發送如下指令

$PSTMCFGMSGL,3,1,0,0
$PSTMSETPAR,1227,1,2
$PSTMSAVEPAR
這些命令會:清空I2C消息列表,關閉eco-ing信息以及將配置保存在flash中

3.4配置NUCLEO-F401RE I2C
按如下圖示在STM32CUBEMX中配置I2C外設功能,並生成工程
Enable the I2C-1 bus on NUCLEO-F401RE



Configure the Blue-Button as GPIO_EXTI13

In the configuration TAB press the NVIC button to configure the NVIC

Enable the Blue-Button (EXTI-interrupts) and confirm the configuration pressing the OK button


Enable the USART-2 to enable communication between STM32 and the Terminal-Console running on PC

Configure the USART-2

配置完成,生成C代碼

3.5軟體實現

通過以上對STM32Cube-MX的配置,生成了所需架構的C代碼包括:

I2C總線,UART和PC機通信以及藍色按鈕作為中斷按鍵功能

增加代碼以下代碼,使PC機顯示列印信息
void Console_Write(uint8_t *string){
HAL_UART_Transmit(&huart2, string, strlen((char *)string), 1000);
}

增加藍色按鍵回調函數功能
static volatile _read = 0;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
_read = 1;
}

 定義NMEA命令相關變量
static const char *gpgll_msg = "$PSTMNMEAREQUEST,100000,0\n\r";

 主函數代碼
1 while (1) {
2 HAL_I2C_DeInit(&hi2c1);
3 HAL_I2C_Init(&hi2c1);
AN5203 Rev 2 17/23
AN5203 Finalize the C-Code in the project
22
4 if (_read == 1) {
5 _read = 0;
6 Console_Write("Sending commands...");
7 HAL_I2C_Master_Transmit(&hi2c1, 0x3A << 1, (uint8_t
*)gpgll_msg, strlen(gpgll_msg), 2000);
8 Console_Write(" got:... \r\n");
9 for (read_buf[180-1] = 0; read_buf[180-1] != 0xff;) {
10 HAL_I2C_Master_Receive(&hi2c1, 0x3A << 1, read_buf, 180,
2000);
11 for (i = 0; i < 180; ++i)
12 if (read_buf[i] != 0xff)
13 HAL_UART_Transmit(&huart2, &read_buf[i], 1, 1000);
14 }
15 Console_Write("\r\n");
16 }
17 }
Where in detail:
1. in line-4 the application waits the Blue-button event happens.
2. In line-7 the main-processor send to the Teseo-LIV3F on I2C-bus the
$PSTMNMEAREQUEST command to request a $GPGLL message
3. In line-10 the main processor read the data sent by Teseo-LIV3F on I2C-bus
4. In lines 11-13 the received data are sent on the PC-Terminal console

在終端機上演示結果



►場景應用圖

►展示板照片

►方案方塊圖

►核心技術優勢

Teseo-LIV3F模塊是一個易於使用的全局模塊衛星導航系統(GNSS)獨立模塊,支持多星定位,獨立定位接收機集成電路可在多個定位系統同時工作:伽利略/GPS / Glonass /北斗/ QZSS)。支持標準GNSS NMEA協議。

►方案規格

 靈敏度:- 162dbm室內(跟蹤模式)  接口:UART和I²C埠  可配置的數字I/O時間脈衝  喚醒輸入  NMEA 協議  先進的GNSS:  自主預測  基於服務器的預測  基於服務器的實時  兼容SPC5 PowerPC  射頻路徑上的LNA和SAW濾波器  SMA母天線連接器  配備電池座  高度緊湊的設計:70 x 65毫米  工作電源電壓:3.3 - 5v  環境溫度:-40/+85°C  AutoDevKit™計劃的一部分  符合RoHS和WEEE標準

技術文檔

類型標題檔案
推廣文件Application Note
硬件Datasheet