Hlavní navigace

Poslechněte si modulaci Manchester

Karel Kulhavý

Napadlo vás už někdy, jak zní a jak se dekóduje modulace Manchester, používaná na 10 Mbps Ethernetu? Poslechněte si zagzipovaný wav. Po čtyřech krátkých blocích se standardním loaderem ZX Spectra následuji „jumbo rámce” modulace Manchester o rychlosti 5.5125 kbps a délce 2 KiB, 320 bytů, 27 kB a 536 bytů. Rámce nemají source ani destination MAC, typ, CRC, end of frame delimiter ani interframe gap. Preambule, start of frame delimiter a data jsou ale kódovaná identicky jako u Ethernetu.

Loader (funkce loadblock) funguje tak, že se počká na hranu a podle toho, jestli je hrana sestupná nebo náběžná se dá do bitu 1 nebo 0, a pak se počká 3/4 bitového intervalu. Pak se akce opakuje.

Tento algoritmus je poměrně odolný vůči změnám modulační rychlosti i jitteru, ale není optimální. Optimálního dekódování se dá dosáhnout analogovou implementací fázového závěsu, která průměruje krátkodobé uskakování hran v signálu. Kvalita dekódování (citlivost k roztřesení signálu) se u jednotlivých typů ethernetových karet liší.

Nad tímto jednoduchým jádrem běží stavový automat pro detekci preambule a začátku rámce. Je naprogramovaný zvláštním způsobem, podobný condition codes u ARM procesoru – nepoužívají se podmíněné skoky, ale logické operace a maskování. Tak se jednotlivé akce kódu postupně odblokovávají, aniž by se porušilo rovnoměrné časování. Cele dekódování rámce tak děla jedna smyčka.

Další specialita situace na ZX Spectru je, že signál může být, na rozdíl od Ethernetu, otočen v polaritě. Proto se za začátek rámce považuje i jeho inverze a podle toho, která možnost nastala, se rozhodne, zda se mají data při zápisu invertovat nebo nechat tak, jak přicházejí.

Našli jste v článku chybu?