ASCII to Binary to 4B5B to MLT-3-code Converter
------------------------------------------------------------------------------------
ASCII:
Hex:
Binary:
4B5B:
MLT3:
------------------------------------------------------------------------------------
Known Bugs:
>> none
Todo:
>> decode 4B5B command characters (Halt, Idle, Start, Reset)
> currently not fully implemented
>> add big endian/little endian switch
> IEEE 802.3 section 3.3 vs IEEE 802.3 section 24.2.2.4
------------------------------------------------------------------------------------
Examples
.---------------.-------------------.-------------------.
| ASCII | t | SPACE |
:---------------:-------------------:-------------------:
| Hex-value | 74 | 20 |
:---------------:---------.---------:---------.---------:
| Binary-blocks | 0111 | 0100 | 0010 | 0000 |
| 4B5B-code | 01111 | 01010 | 10100 | 11110 |
| MLT-3-code | 0+0-0 | 0++00 | --000 | +0-00 |
`---------------"---------"---------"---------"---------'
A zero sequence generated by the Code-4B5B also
causes level change in the MLT-3-code
.---------------.-------------------.-------------------.
| ASCII | NUL | NUL |
:---------------:-------------------:-------------------:
| Hex-value | 00 | 00 |
:---------------:---------.---------:---------.---------:
| Binary-blocks | 0000 | 0000 | 0000 | 0000 |
| 4B5B-code | 11110 | 11110 | 11110 | 11110 |
| MLT-3-code | +0-00 | +0-00 | +0-00 | +0-00 |
`---------------"---------"---------"---------"---------'
------------------------------------------------------------------------------------
ASCII-Table
.-----.-----.-----.-----.-----.-----.-----.-----.
| 0_ | 1_ | 2_ | 3_ | 4_ | 5_ | 6_ | 7_ |
.-----:-----:-----:-----:-----:-----:-----:-----:-----:
| _0 | NUL | DLE |SPACE| 0 | @ | P | ` | p |
| _1 | SOH | DC1 | ! | 1 | A | Q | a | q |
| _2 | STX | DC2 | " | 2 | B | R | b | r |
| _3 | ETX | DC3 | # | 3 | C | S | c | s |
| _4 | EOT | DC4 | $ | 4 | D | T | d | t |
| _5 | ENQ | NAK | % | 5 | E | U | e | u |
| _6 | ACK | SYN | & | 6 | F | V | f | v |
| _7 | BEL | ETB | ' | 7 | G | W | g | w |
| _8 | BS | CAN | ( | 8 | H | X | h | x |
| _9 | HT | EM | ) | 9 | I | Y | i | y |
| _A | LF | SUB | * | : | J | Z | j | z |
| _B | VT | ESC | + | ; | K | [ | k | { |
| _C | FF | FS | , | < | L | \ | l | | |
| _D | CR | GS | - | = | M | ] | m | } |
| _E | SO | RS | . | > | N | ^ | n | ~ |
| _F | SI | US | / | ? | O | _ | o | DEL |
`-----"-----"-----"-----"-----"-----"-----"-----"-----'
4B5B-Table
.-----.--------.-------. .-----.--------.-------. .------.-------.---------.
| Hex | Binary | 4B5B | | Hex | Binary | 4B5B | | Code | 4B5B | Desc |
:-----:--------:-------: :-----:--------:-------: :------:-------:---------:
| 0 | 0000 | 11110 | | 8 | 1000 | 10010 | | H | 00100 | Halt |
| 1 | 0001 | 01001 | | 9 | 1001 | 10011 | | I | 11111 | Idle |
| 2 | 0010 | 10100 | | A | 1010 | 10110 | | J | 11000 | Start#1 |
| 3 | 0011 | 10101 | | B | 1011 | 10111 | | K | 10001 | Start#2 |
| 4 | 0100 | 01010 | | C | 1100 | 11010 | | L | 00110 | Start#3 |
| 5 | 0101 | 01011 | | D | 1101 | 11011 | | Q | 00000 | Quiet |
| 6 | 0110 | 01110 | | E | 1110 | 11100 | | R | 00111 | Reset |
| 7 | 0111 | 01111 | | F | 1111 | 11101 | | S | 11001 | Set |
`-----"--------"-------' `-----"--------"-------' | T | 01101 | End |
`------"-------'---------'
4B5B-Control-Characters
.----------.-------------------------.-------------------------------.
| Control | | |
| character| 5b symbols | Purpose |
:----------:-------------------------:-------------------------------:
| I | 11111 | 100BASE-X idle marker |
| T | 01101 | USB-PD end delimiter |
| H | 00100 | 100BASE-X transmit error |
| JK | 11000 10001 | Sync, Start delimiter |
| TT | 01101 01101 | FDDI end delimiter |
| IH | 11111 00100 | SAL |
| TR | 01101 00111 | 100BASE-X end delimiter |
:----------:-------------------------:-------------------------------:
| TS | 01101 11001 | Not used |
| SR | 11001 00111 | Not used |
| SS | 11001 11001 | Not used |
:----------:-------------------------:-------------------------------:
| JJJK | 11000 11000 11000 10001 | USB-PD Start Of Packet (SOP) |
| JJLL | 11000 11000 00110 00110 | USB-PD SOP' |
| JLJL | 11000 00110 11000 00110 | USB-PD SOP'' |
| JSSL | 11000 11001 11001 00110 | USB-PD SOP'_Debug |
| JSLK | 11000 11001 00110 10001 | USB-PD SOP''_Debug |
| RRRS | 00111 00111 00111 10001 | USB-PD Hard Reset |
| RJRL | 00111 11000 00111 00110 | USB-PD Cable Reset |
`----------"-------------------------"-------------------------------'
------------------------------------------------------------------------------------
Sources: >> ASCII - Wikipedia (de)
>> 4B5B - Wikipedia (en)
>> MLT-3-Code - Wikipedia (de)