RS-tracker/lms6/lms6.txt

121 wiersze
4.0 KiB
Plaintext

Lockheed Martin Sippican LMS6
(403 MHz)
FSK 4800 baud
convolutional code R=1/2, K=7 (CCSDS)
(c0,inv(c1))
polyA = x^6+x^3+x^2+x+1 (0x4f)
polyB = x^6+x^5+x^3+x^2+1 (0x6d)
(
NRZ-S:
polyA = qA + x*qB
polyB = qA + qB
K=8: 0x95: pA = x^7+x^4+x^2+1 = (x+1)(x^6+x^5+x^4+x+1) = (x+1)qA
0x22: pB = x^5+x = (x+1)(x^4+x^3+x^2+x)=x(x+1)^3 = (x+1)qB
-> K=7: 0x73: qA = x^6+x^5+x^4+x+1
0x1e: qB = x^4+x^3+x^2+x (d_f=6) ((x+1)-catastrophic)
)
bits: little endian
bytes: big endian
4800 bit/s: rate=1/2: 300 byte/s
Reed-Solomon RS(255,223)-CCSDS blocks
block format: SYNC (5 byte) + RS-codeword (255 byte) (-> block size: 260 byte)
SYNC: 0x0058f33fb8 (0x58f33fb8 little-endian <-> 0x1ACFFC1D big-endian bytes)
RS-codeword: RS-MSG (223 byte) + RS-PAR (32 byte)
260:300 = 13:15 - every 13 sec block-position repeats,
full-frame length 13 sec (data-frames): 13*300 byte = 15 blocks
1 data-frame per sec: 223 DATA bytes ( + fill)
DATA = 221 byte + 2 byte CRC16
DATA: 24 54 00 00 .. (len=221+2)
CRC16: poly 0x1021
synchronisation:
a) (24)54 00 00 .. (DATA-frame)
b) (00)58 f3 3f b8 (RS-block)
every 6,7 sec: SYNC | DATA=RS-MSG | RS-PAR | SYNC | ...
e.g.
0058f33fb8|24540000007a9a4a1f130cbf07ebffe6d5a724379382ffa65ed3014af1e700c57f0030fc0016f30038062d1f83e87e6e1cfb46c5882b80000000000000000010241f93527ea51cf0fe0e092c1f7d6199e91cf727050300840000000000000000022d1f82806c481cf28f241a1e1f988f57a41cf61524172a1f8a93d8971cfad879072f1f82ce07431ced04ee05291f8d40eddb1ceaddfb1e2b1f8d3b04691ce93c511d1b1f95ed89031cf18e5203c33700000003a60a09b3110000000000001be4360fc22803c34903c35003c34c03c34c00000026ee3986069d361682f5fb|b00f3bd474dc5798959cb3abbd9a6b81a50b3bbbfeaf87cdc15a220cf5e6c437|0058f33fb8
sync/header:
.. pp pp pp 24 54 00 00 00 (7A .. ..)
wobei pp sich wiederholendes (sync-)byte, z.B. 0xCA oder 0x30
Dann beginnt Frame mit 3 byte Sonde-SN, 0x7A.... = 80..... ,
dann Frame-Counter, GPS.
https://www.youtube.com/watch?v=-0Ydq9Ole48
subframe: 0x7A ..
| SN/ID |Count|TOW/ms | |Lat/B60B60 |Lon/B60B60 | Alt/mm |vE/mm |vN/mm |vU/mm |
7A 9A 4A 1C 5C 0C B4 6D 12 FF E7 0D B6 24 2D CA 2D FF 52 36 C2 01 1E E6 68 00 B1 1B 00 11 33 00 11 E4 ..
7A 9A 4A 1C 5D 0C B4 70 FC FF EC CA 81 24 2D CB CF FF 52 54 CF 01 1E F7 3A 00 B1 D4 00 0F 7F 00 10 B9 ..
7A 9A 4A 1C 5E 0C B4 74 E3 FF E3 5E 52 24 2D CC B9 FF 52 71 EB 01 1F 0A 7F 00 AC 27 00 08 92 00 13 14 ..
7A 9A 4A 1C 5F 0C B4 78 C9 FF E9 34 63 24 2D CD 1F FF 52 8D D7 01 1F 18 8A 00 A5 2F 00 03 CF 00 0D E9 ..
7A 9A 4A 1C 60 0C B4 7C B5 FF DF A8 9C 24 2D CD 58 FF 52 A9 7E 01 1F 27 0D 00 A3 A2 00 02 1C 00 0E 70 ..
SN: 0x7A9A4A = 8034890
[ 7260] Di (11:12:31.0) lat: 50.876534° lon: -0.954636° alt: 18802.28m vH: 45.6m/s D: 84.5° vV: 4.6m/s
[ 7261] Di (11:12:32.0) lat: 50.876569° lon: -0.953991° alt: 18806.59m vH: 45.7m/s D: 85.0° vV: 4.3m/s
[ 7262] Di (11:12:33.0) lat: 50.876588° lon: -0.953366° alt: 18811.52m vH: 44.1m/s D: 87.1° vV: 4.9m/s
[ 7263] Di (11:12:34.0) lat: 50.876597° lon: -0.952767° alt: 18815.11m vH: 42.3m/s D: 88.7° vV: 3.6m/s
[ 7264] Di (11:12:35.0) lat: 50.876602° lon: -0.952174° alt: 18818.83m vH: 41.9m/s D: 89.3° vV: 3.7m/s
pA = x^7+x^4+x^2+1 = (x+1)qA
pB = x^5+x = (x+1)qB
qA = x^6+x^5+x^4+x+1
qB = x^4+x^3+x^2+x
receive:
...,a(n-1),b(n-1),a(n),b(n),a(n+1),b(n+1),... (or inverted)
if NRZ-S demod:
alpha(n) = [a(n)==b(n-1)] = a(n)+b(n-1)+1 = [a'(n)==b'(n-1)] , a' = inv(a) = a + 1/(1+x)
beta(n) = [a(n)==b(n)] = b(n)+a(n)+1 = [a'(n)==b'(n)] , b' = inv(b) = b + 1/(1+x)
alpha = a + x*b + 1/(1+x) = a' + x*b' + x/(1+x)
beta = a + b + 1/(1+x) = a' + b' + 1/(1+x)
m*pA = alpha
m*pB = beta
m*polyA = cA
m*ployB = cB
polyA = qA + x*qB = x^6+x^3+x^2+x+1
polyB = qA + qB = x^6+x^5+x^3+x^2+1
polyA + polyB = (x+1)qB = pB
polyA + x*polyB = (x+1)qA = pA
beta = m*pB = m*polyA + m*polyB = cA + cB
alpha = m*pA = m*polyA + x*m*polyB = cA + x*cB
alpha + beta = (1+x)cB = (1+x)b = (1+x)b' + 1
alpha + x*beta = (1+x)cA = (1+x)a + 1 = (1+x)a'
cA = a + 1/(1+x) = a'
cB = b = b' + 1/(1+x)
here:
cA = a' , cB = inv(b')