:差分站ID编号0000~1023前0也被传送,如果不是差分定位则为NULL
1 NMEA语句
1.1 NMEA数据格式
NMEA格式:数据传输作为“语句”进行,每个语句以“$”开头,两个字符的“标识符”和三个字符的“语句名称”,然后用逗号分割的数据体,语句的最后是校验和,整个语句以反换行结束。
$GNGNS,,,,,,,,,,,,*xx
:UTC时间,hmmss。ss
:纬度标识、N或S
:经度标识、E或W
:定位标识、NN-未定位、AA-定位Active
:定位星数
:HDOP值
:海拔、单位m
:水平面分离度、单位m
:差分数据时间段
:差分站号
*xx:校验和
单位为m,表示误差范围
$GPBOD,099.3,T,105.6,M,POINTB,*01
删除前缀$GPPOD后,用逗号分隔,以*号结束。
:99.3运动角度,000-359,正北参照系
:T=正北参照系
:105.6运动角度,000-359,磁北参照系
:M=磁北参照系
$GPGGA,,,,,,,,,,M,,M,,*xx
删除前缀$GPGA后,以逗号分隔,以*号结束。
:UTC Time,格式为hhmmss。sss
:纬度、格式为ddmm。mmmm
:纬度半球N
:经度、形式为ddmm。mmmm
:经度半球E
:定位质量显示,0=定位无效,1=定位有效
:使用卫星数,00~12
:HDOP-水平精度因子,0.5至99.9,一般认为HDOP越小,质量越好
:标高、单位M
:地球椭圆面相对于大地水平面的高度
:差分时间在不是差分定位的情况下,是最后接收差分信号后的秒数
:差分站ID编号0000~1023前0也被传送,如果不是差分定位则为NULL
GPGSA:
PDOP位置精度因子
HDOP水平精度因子
VDOP垂直精度因子
$GPGSV,,,,,,,…,,,*hh
删除前缀$GPGSV,用逗号分隔,0-based index;*号表示结束。
、、、、构成具有多个卫星组的状态的卫星组,场1是SNR。
[热点新闻]
:一次星形搜索所需的GGSV语句总数
:当前GSV序列中的编号,第1条的编号为1,最后一条为
:显示当前可视化的定位卫星总数
:表示卫星编号,GPS卫星PRN码范围为1-32
:信噪比
$GPRMC,,,,,,,,,,,,*hh
删除前缀$GPRMC后,用逗号分隔,以*号结束。
除了GPRMC,还有GPRMA和GPRMB。
:UTC时间、hhmmss格式
:A表示定位
:纬度ddmm。mmmm
:纬度半球N
:经度ddmm。mmmm
:经度半球E
:地面速度000.0~999.9节,前0也会传送
:地面航线000.0~359.9度,以正北为基准,前0也被传输
:UTC日期,ddmmyy格式
:磁偏角000.0~180.0度,前0也被传送
:偏磁方向、E
$GPVTG,,T,,M,,N,,K,*hh
删除前缀$GPVTG后,用逗号分隔,以*号结束。
:运动角度000-359、、正北参照系
T:正北参照系
:运动角度,000-359,磁北参照系
:磁北参照系
1.2 PRN编号
在导航系统中,一颗卫星对应唯一的PRN。Refer to GPGSV。
BeiDou:1 - 37
GPS:1 - 32
SBAS:33 - 64
QZSS:193 - 197
BeiDou和GPS的PRN是重复的,通过NMEA语句的前缀GP或BD来区分。
1.3地图
百度地图和高德地图使用GxRMC和GxGSV作为地图的数据源。
1.4 ToD语句
GPGGA, GPRMC, GPZDA
2GPS卫星信号分析
GPS卫星日历:描述卫星轨道信息
GPS信号是CDMA信号,通常GPS接收机对卫星信号的搜索是搜索对应于所有空卫星的伪随机码的“满天星搜索”过程。如果预先知道任意时刻的所有卫星的概略位置,则接收机能够仅再现并搜索在该时刻的天空中存在卫星的伪随机码。由此,GPS接收机在搜索卫星时能够准确地射出箭,能够缩短捕捉卫星信号时间
GPS卫星1~32
3 MTK GNSS
3.1 MT3333
3.2 SDIO
SDIO设备扫描是mmc_rescan函数开始,mmc_在rescan函数中,速率调用mmc_rescan_try_freq进行扫描,扫描到设备后结束扫描。因此,如果以400k速率扫描到SDIO设备,则无需执行以下三种速率的扫描:。
3.3 MT6630
FWK->JNI->HAL->MNLD
Get GPS status,包括表示GPS开启的gps字符串:
要在logcat中显示NMEA语句,必须将log level调整为D,而不是V。否则,log将不可见。
4 ublox
4.1 u-center
查询当前的串行端口波特率配置。
选择支持的NMEA消息输出。
串行端口配置:
UBX>>CFG
周期配置:
UBX>>CFG
将发送到UBX-CFG-CFG-芯片的当前数据保存到外部SPI Flash
Clear NVM of BBR and Flash: B5 62 06 09 0D 00 FF FF 00 00 00 00 00 00 FF FF 00 00 03 1B 9A
UBXNAVEOE每秒结束NMEA和UBX消息
4.2 UBX-CFG-MSG
-根据以上三个参数设置某个UBX消息的输出频率。
-根据以上三个参数轮换UBX消息
4.3M8030有源天线状态读取
PIO14: ANT_DET, for power
PIO15: ANT_SHORT_N
PIO16: ANT_OFF
4.4 RTCM3
RTK通过在某个位置设定基站base,在自动驾驶车辆上安装低挡来进行。base是固定的,从而base可以接收GPS的载波相位A。然后,在不间断的移动中,罗伯能够从卫星接收载波相位B和base的载波相位A。通过对A和B进行差分,可以得到载波相位的误差C,罗伯通过利用该误差C不断修正自身的B,可以得到1~2cm的精度。
RTK数据通信有两种方法:无线电模式和网络模式。
4.5将时间戳转换为UTC时间
import time
4.6 NMEA语句参数分析
使用atoi将字符串Argx转换为相应的整数和浮点数
SPC: shared_ptr class
4.7 GPS冷启动温启动和热启动
warm-start—到上次定位的时间超过2小时。
hot-start:到上次定位为止的时间不足2小时的启动。
4.8 u-center TCP client
tcp://192.168.5.99:65501
->
->
->
用户层回调类
6USB host卡盘方法
6.1 sniff原理
text格式路径:/sys/kernel/debug/usb/usbmon
要创建binary节点:
Intel APL 8-port MPH xHCI
7 USB Bulk传输
21.3 DBC
21.4 DWC3
21.5 DWC3
寄存器地址:PCI_BAR0 + 80D4h
如果在控制令牌或Bulk令牌传输期间不插入延迟,则IN或OUT令牌传输过快会导致ubloxM8030全速设备的分组丢失。
7.2 USB Bulk传输速率计算
- Full-speed
每个frame最多可以传输19个Bulk分组,每个Bulk分组最大为64Bytes,因此其最大传输速率为:19x64x1000=1.16MB/s。
- High-speed
USB2.0可以在每个微帧中传输最多13个Bulk分组,每个Bulk分组最大512Bytes,每个微帧长度固定为125μs,因此其最大传输速率为:13x512x8x1000=51MB/s。
- Super-speed
USB3.0可以在每个微帧中传输最多13个Bulk分组,每个Bulk分组最大为1024Bytes,每个微帧长度固定为125μs,因此其最大传输速率为:13x1024x8x1000=102MB/s。
7.3 QCOM USB GNSS
cat /sys/kernel/debug/smd/tbl
uses /dev/ttyGS0 to print NMEA to host
8 strace
strace -e epoll_wait -x -p $PID
strace -p $PID -tt -T -s 128 -x 2> grep "read17"
要捕获物理串行端口的read数据,strace必须具有-f参数,否则无法捕获read数据。
strace -p $PID -x -tt -T -f -e trace=read -e read=$FD
9 URLs
NMEA data
各种时间换算关系
AGPS MSB:MS-Based
BBR: Backup RAM
GPS XTRA:一种可发布高通提供的日历信息的解决方案,与MTK EPO类似,均用于辅助定位
SBZ:Should Be Zero
VTG:Track Made Good and Ground Speed、地面速度信息
ZDA:Time Date、时间日期信息
10.2 ublox
发表评论