一、GPGSV簡介
GPGSV是GPS接收器預期接收到的衛星信號的信息,是GPS衛星定位中的重要組成部分。GPGSV指令為可選指令,其作用為返回所有可用衛星的信息,包括可見衛星數量、衛星的PRN號、仰角、方位角和信噪比等信息。
二、GPGSV指令格式
如下所示:
$GPGSV,3,1,09,02,31,193,46,04,69,240,32,05,46,046,37,08,17,21,23*70 $GPGSV,3,2,09,10,14,335,,13,05,143,,16,24,301,27,23,03,261,*73 $GPGSV,3,3,09,27,09,210,*4F
以上指令分為3行,每行最多能夠包含4個衛星的信息。其中:
- GPGSV:指令頭,表示GPS衛星可見性數據;
- 3:當前數據包的總頁數;
- 1:本數據包在總頁數中的頁數;
- 09:搜鎖星的衛星總數;
- 02:第1個衛星的PRN號(偽隨機雜訊序列的標識符);
- 31:當前衛星距離候選接收器的高度角(俯仰角);
- 193:當前衛星距離候選接收器的方位角;
- 46:當前衛星的信號強度(dBHz)。
三、GPGSV欄位詳解
1. GPGSV指令頭
每一個GPGSV指令的第一個辭彙都是指令頭,它告訴的是這個語句傳送的是衛星信息。
$GPGSV
如果是GLONASS衛星將會是$GLGSV。
2. 目前已搜到衛星數量和頁碼
在$GPGSV語句中,第二個和第三個欄位告訴你這是多少衛星的數據和當前在哪頁。
3,1
目前已搜到衛星數量為3,這是一個多頁數據,當前頁是第一頁。
3. 可視衛星數量
第四個欄位是可視衛星的數量。下面是一個例子:
3,1,09
這句話告訴你,當前衛星的總數是9。
4. 衛星詳細信息
後面的每四個欄位是衛星詳細信息,依次為PRN號、俯仰角、方位角和信噪比。
02,31,193,46 04,69,240,32 05,46,046,37 08,17,21,23
這四個欄位的信息說明了接收機所接收到的衛星信息,其中PRN號是偽隨機雜訊序列的唯一標識符,它唯一地標識了一個衛星。PRN號是從1到32的值,表示GPS衛星的數量。GPS接收器收到越多的衛星,定位精度就越高。
四、GPGSV使用示例
我們可以通過以下代碼示例來使用GPGSV指令來獲取可見衛星的PRN號、仰角、方位角和信噪比等信息:
import serial
# 列印GPGSV信息
def print_gpgsv(data):
if data[0] == '$' and data[7:10] == "GSV":
gpgsv = data.strip().split(",")
num_msg = int(gpgsv[1])
num_sat = int(gpgsv[2])
t_msg = (num_msg-1)*4 + num_sat + 3
if num_msg == 1:
print("總共有{0}顆衛星:".format(num_sat))
index = 4
for i in range(num_sat):
prn = "PRN: " + gpgsv[index]
el = " 仰角: " + gpgsv[index+1]
az = " 方位角: " + gpgsv[index+2]
sn = " 信噪比: " + gpgsv[index+3]
print(prn + el + az + sn)
index += 4
return True
else:
return False
if __name__ == '__main__':
# 連接串口設備
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=0.5)
while True:
data = ser.readline().decode()
if print_gpgsv(data):
break
ser.close()
五、總結
GPGSV是GPS接收器預期接收到的衛星信號的信息,在GPS衛星定位中具有非常重要的作用。從GPGSV指令格式和欄位詳解,我們可以了解到衛星數量、當前頁碼、可視衛星數量以及各個衛星的基本信息,包括PRN號、仰角、方位角和信噪比。在實際應用中,我們可以通過GPGSV指令獲取這些信息,並進行後續的處理和分析,以獲得更精準和穩定的定位結果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/240066.html
微信掃一掃
支付寶掃一掃