基于 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