FX.25 KISS TNC development
and
Proposed extensions to the standard
Packet Radio Users’ Group
Sep.03, 2020
Kazuhisa Yokota, JN1DFF
Masaaki Yonezawa, JE1WAZ
Norito Nemoto, JH1FBM
FX.25 KISS TNC development
and
Proposed extensions to the standard
Packet Radio Users’ Group
Sep.03, 2020
Kazuhisa Yokota, JN1DFF
Masaaki Yonezawa, JE1WAZ
Norito Nemoto, JH1FBM
PRUG is a non-profit, voluntary organization in Japan.
It was established in 1985.
The purpose of PRUG is to promote the use of packet radio and to research the latest technologies in amateur radio.
PRUG (Packet Radio Users' Group)
Current status of
FX.25 KISS TNC development
FX.25
TNC
AX.25
TNC
reliable communication
with error correction
between FX.25 station
and AX.25 station
compatible with current system
FX.25
TNC
TRX
Wi-Fi
installation flexibility
using Wi-Fi interface
FX.25
TNC
TRX
independent sensor node
sensors
I2C
future plan
FX.25
TNC
TRX
USB
MIC
SP
PTT
between FX.25 stations
PC
TRX
TRX
PC
Use of FX.25 KISS TNC
and future plan
Now experimenting in the
430MHz band as APRS nodes.
Look for JK1MLY
FX.25
TNC
AX.25
TNC
reliable communication
with error correction
between FX.25 station
and AX.25 station
compatible with current system
FX.25
TNC
TRX
Wi-Fi
installation flexibility
using Wi-Fi interface
FX.25
TNC
TRX
independent sensor node
sensors
I2C
future plan
FX.25
TNC
TRX
USB
MIC
SP
PTT
between FX.25 stations
PC
TRX
TRX
PC
Use of FX.25 KISS TNC
and future plan
Now experimenting in the
430MHz band as APRS nodes.
Look for JK1MLY
FX.25
TNC
AX.25
TNC
reliable communication
with error correction
between FX.25 station
and AX.25 station
compatible with current system
FX.25
TNC
TRX
Wi-Fi
installation flexibility
using Wi-Fi interface
FX.25
TNC
TRX
independent sensor node
sensors
I2C
future plan
FX.25
TNC
TRX
USB
MIC
SP
PTT
between FX.25 stations
PC
TRX
TRX
PC
Use of FX.25 KISS TNC
and future plan
Now experimenting in the
430MHz band as APRS nodes.
Look for JK1MLY
Features of FX.25 KISS TNC
Features of FX.25 KISS TNC
Features of FX.25 KISS TNC
FX.25 KISS TNC hardware
TCM3105
Wi-Fi
module
RXD
CDT
TXD
TXA
RXA
PTT
SP
MIC
GPIO
GPIO
GPIO
GPIO
PC
USB
TX
RX
USB
Serial
Bell 202
Pulse(TTL)
UART
(TTL)
FX.25 KISS TNC
Radio
Structure of TNC software
Proposed extensions to the
Fx.25 standard
Add a function to FX.25 draft.
Correlation Tag
RS Message
RS Parity
One RS block (255bytes)
If you want to fix N bytes error in a block,
the message size will be up to 255-2N bytes.
Frame structure of FX.25 drafts:
Correlation Tag
RS Message
RS Parity
One RS block (255bytes)
Correlation Tag
RS Message
RS Parity
RS Message (255-2N bytes)
Flag
Addresses
Control�/PID
AX.25 packet frame
Information
FCS
Flag
Bit stuffing range
2 bytes
Up to 17 bytes
Flag
Addresses
Control�/PID
Information
FCS
Flag
Complete bit pattern
when transmitting
AX.25
Up to 256 bytes
Up to 332 bytes?
Umm. I cannot stuff to The Packet.
FX.25 packet frame
Flag
Addresses
Control�/PID
Information
FCS
Flag
Need to re-framing :
Flag
Addresses
Control�/PID
Information
FCS
Flag
Flag
Addresses
Control�/PID
Information
FCS
Flag
Correlation Tag
RS Parity
Correlation Tag
RS Parity
AX25
FX25
Data increased by packet division
The position of FX.25 in the OSI protocol layers
Layer1�Physical Layer
AX.25
Layer3 & up�Network Layer &
other
Layer2�Data Link Layer
Segment/Reassemble
AX.25 Layer3/�NETROM/�TCPIP etc.
Link & Address control
Bit stuff/Unstuff
Flag handle
Flame check
Forward error correction
FEC�SYNC
Frame synchronization
NRZI
1200bps
AFSK
Scramble
9600bps
GFSK
Radio
Bit sync
Bit sync
FX.25
not clearly separated
Solution: One large FX.25 frame by combining multiple blocks.
Multiple RS blocks in one FX.25 frame
RS
message
RS parity
Correlation Tag
RS
Message 1
RS parity 1
RS
Message 2
RS parity 2
If we simply put the blocks in order…
In this case, the message is divided by parity, and the packet cannot
be sent in a way that can be decoded by the existing AX.25 TNC
without any overhead.
Correlation Tag
Correlation Tag
RS
Message 2
RS parity 2
NG
Maintaining AX.25 compatibility in multiple block frames
not divided
Arrange the message parts so
that they are contiguous.
Messages are not divided by parity. Packets whose message length
exceeds the original RS message length can be sent without splitting.
RS
Message 1
RS parity 1
RS
Message 2
RS parity 2
Correlation Tag
RS
Message 1
RS parity 1
RS
Message 2
RS parity 2
Correlation Tag
OK
Correlation Tag
Interleaving
RS
Message 1
RS
Parity 1
RS
Message 2
RS
Parity 2
Correction Tag
By interleaving :
1. Improved burst error resistance.
2. Ensuring continuity of the message part in a form that is easy to process by software.
Message part
Parity part
RS encode
RS encode
Correlation Tag Exhaustion by Expansion
We propose a format that combines two types of Correlation Tags for frame with multiple blocks to reduce the number of Tags consumed in the future.
FX.25 Correlation Tag Code (part1)
Tag | Correlation Tag Value | Encoding Type | Tag type |
00 | 0x566ED2717946107E | Reserved | |
01 | 0xB74DB7DF8A532F3E | RS(255,239) | Tag-1 |
02 | 0x26FF60A600CC8FDE | RS(144,128) | Tag-1 |
03 | 0xC7DC0508F3D9B09E | RS(80,64) | Tag-1 |
04 | 0x8F056EB4369660EE | RS(48,32) | Tag-1 |
05 | 0x6E260B1AC5835FAE | RS(255,223) | Tag-1 |
06 | 0xFF94DC634F1CFF4E | RS(160,128) | Tag-1 |
07 | 0x1EB7B9CDBC09C00E | RS(96,64) | Tag-1 |
08 | 0xDBF869BD2DBB1776 | RS(64,32) | Tag-1 |
09 | 0x3ADB0C13DEAE2836 | RS(255,191) | Tag-1 |
0A | 0xAB69DB6A543188D6 | RS(192,128) | Tag-1 |
0B | 0x4A4ABEC4A724B796 | RS(128,64) | Tag-1 |
0C | 0x0293D578626B67E6 | 2 x RS(255,239) | Tag-1 |
0D | 0x41C246CB5DE62A7E | 2 x RS(255,223) | Tag-1 |
0E | 0x720267AF1BE1F846 | 2 x RS(255,191) | Tag-1 |
0F | 0x93210201E8F4C706 | 3 x RS(255,191) | Tag-1 |
continued | | | |
Frame length expansion format with 2nd Tag
RS
Message part
(Several messages)
Correlation Tag-1
Correlation Tag-2
RS �parity part
(Several parities)
Frame length
The first tag specifies the length of the frame.
The second tag specifies the FEC coding algorithm.
FX.25 Correlation Tag Code (part2)
Tag | Correlation Tag Value | Encoding Type | Tag type |
10 | 0x10A58F97533893FA | Reserved | |
11 | 0xF186EA39A02DACBA | Reserved | |
12 | 0x60343D402AB20C5A | 2 x Specified by PN2 | Tag-2 (with Tag-3) |
13 | 0x811758EED9A7331A | 3 x Specified by PN2 | Tag-2 (with Tag-3) |
14 | 0xC9CE33521CE8E36A | 4 x Specified by PN2 | Tag-2 (with Tag-3) |
15 | 0x28ED56FCEFFDDC2A | 5 x Specified by PN2 | Tag-2 (with Tag-3) |
16 | 0xB95F818565627CCA | 6 x Specified by PN2 | Tag-2 (with Tag-3) |
17 | 0x587CE42B9677438A | 7 x Specified by PN2 | Tag-2 (with Tag-3) |
18 | 0x9D33345B07C594F2 | 8 x Specified by PN2 | Tag-2 (with Tag-3) |
19 | 0x7C1051F5F4D0ABB2 | 9 x Specified by PN2 | Tag-2 (with Tag-3) |
1A | 0xEDA2868C7E4F0B52 | 10 x Specified by PN2 | Tag-2 (with Tag-3) |
1B | 0x0C81E3228D5A3412 | 11 x Specified by PN2 | Tag-2 (with Tag-3) |
1C | 0x4458889E4815E462 | 12 x Specified by PN2 | Tag-2 (with Tag-3) |
1D | 0xA57BED30BB00DB22 | 13 x Specified by PN2 | Tag-2 (with Tag-3) |
1E | 0x34C93A49319F7BC2 | 14 x Specified by PN2 | Tag-2 (with Tag-3) |
1F | 0xD5EA5FE7C28A4482 | 15 x Specified by PN2 | Tag-2 (with Tag-3) |
continued | | | |
Table.2
FX.25 Correlation Tag Code (part3)
Tag | Correlation Tag Value | Encoding Type | Tag type |
20 | 0x9428192C9F6C6EFC | Use PN2 (Extended tag) | Tag-3 (show table A) |
21 | 0x750B7C826C7951BC | Undefined | |
22 | 0xE4B9ABFBE6E6F15C | Undefined | |
23 | 0x059ACE5515F3CE1C | Undefined | |
24 | 0x4D43A5E9D0BC1E6C | Undefined | |
25 | 0xAC60C04723A9212C | Undefined | |
26 | 0x3DD2173EA93681CC | Undefined | |
27 | 0xDCF172905A23BE8C | Undefined | |
28 | 0x19BEA2E0CB9169F4 | Undefined | |
29 | 0xF89DC74E388456B4 | Undefined | |
2A | 0x692F1037B21BF654 | Undefined | |
2B | 0x880C7599410EC914 | Undefined | |
2C | 0xC0D51E2584411964 | Undefined | |
2D | 0x21F67B8B77542624 | Undefined | |
2E | 0xB044ACF2FDCB86C4 | Undefined | |
2F | 0x5167C95C0EDEB984 | Undefined | |
continued | | | |
Table.3
FX.25 Extended Correlation Tag Code
Tag | Correlation Tag Value | Encoding Type | Tag type |
20-0 | 0x9428192C9F6C6EFC | Reserved | Tag-3 |
20-1 (1bit rotated) | 0x4A140C964FB6377E | RS(255, 239) | Tag-3 |
20-2 (2bit rotated) | 0xA50A064B27DB1BBE | RS(255, 223) | Tag-3 |
20-3 (3bit) | 0xD285032593ED8DDE | RS(255, 191) | Tag-3 |
20-4 | 0xE9428192C9F6C6EE | Reserved | Tag-3 |
20-5 | 0xF4A140C964FB6376 | Reserved | Tag-3 |
20-6 | 0xFA50A064B27DB1BA | Reserved | Tag-3 |
20-7 | 0xFD285032593ED8DC | Reserved | Tag-3 |
20-8 | 0x7E9428192C9F6C6E | Reserved | Tag-3 |
20-9 | 0xBF4A140C964FB636 | Etc. | Tag-3 |
20-10 | 0xDFA50A064B27DB1A | Etc. | Tag-3 |
20-11 | 0xEFD285032593ED8C | Etc. | Tag-3 |
20-12 | 0x77E9428192C9F6C6 | Etc. | Tag-3 |
20-13 | 0xBBF4A140C964FB62 | Etc. | Tag-3 |
20-14 | 0xDDFA50A064B27DB0 | Etc. | Tag-3 |
20-15 to 20-62 | | | Tag-3 |
Table.A
FX.25 Correlation Tag Code (part4)
Tag | Correlation Tag Value | Encoding Type | Tag type |
30 | 0xD2E344CAB512ED78 | Undefined | |
31 | 0x33C021644607D238 | Undefined | |
32 | 0xA272F61DCC9872D8 | Undefined | |
33 | 0x435193B33F8D4D98 | Undefined | |
34 | 0x0B88F80FFAC29DE8 | Undefined | |
35 | 0xEAAB9DA109D7A2A8 | Undefined | |
36 | 0x7B194AD883480248 | Undefined | |
37 | 0x9A3A2F76705D3D08 | Undefined | |
38 | 0x5F75FF06E1EFEA70 | Undefined | |
39 | 0xBE569AA812FAD530 | Undefined | |
3A | 0x2FE44DD1986575D0 | Undefined | |
3B | 0xCEC7287F6B704A90 | Undefined | |
3C | 0x861E43C3AE3F9AE0 | Undefined | |
3D | 0x673D266D5D2AA5A0 | Undefined | |
3E | 0xF68FF114D7B50540 | Undefined | |
3F | 0x17AC94BA24A03A00 | Undefined | |
40 | 0x41C246CB5DE62A7E | Reserved | |
Table.4
Please visit PRUG website for further information.
http://www.prug.com/