Spis treści |
Przesyłanie jakiejkolwiek wiadomości na odległość wymaga użycia kodu tłumaczącego przesyłane sygnały na cyfry, litery lub słowa. Konwersja informacji na zrozumiałą postać wymaga zastosowania alfabetu, tablicy kodowej lub kodu tłumaczącego sygnały na postać cyfrową. Historycznie najstarszym sposobem było kodowanie semaforowe za pomocą chorągiewek lub semaforów, później sygnalizacja za pomocą flag zgodnych z kodem sygnałowym, w końcu przekaz informacji telegraficznych za pomocą alfabetu Morse’a.
Pierwsze przekazy z interpretacją dwóch stanów logicznych TAK/NIE zastosowano do konwersji informacji na sygnały dwustanowe przekazywane w telegrafii za pomocą 5-bitowej tablicy kodowej Baudota. Coraz większe zapotrzebowanie na różnorodność i liczbę przesyłanych kodów spowodowało:
Potrzeba stosowania znaków alfanumerycznych, składających się z 10 cyfr, 26 liter i pewnej liczby znaków specjalnych, powiększyła całkowitą liczbę elementów w tej grupie do 36 różnych znaków. Dało to podstawę do utworzenia 6-bitowych kodów alfanumerycznych stosowanych powszechnie jako kod wewnętrzny maszyn cyfrowych.
Potrzeba prezentacji więcej niż 64 różnych znaków (litery z dolnego i górnego rejestru, znaki specjalne i kontrolne do transmisji cyfrowych) przyczyniła się do powstania dwóch najbardziej popularnych kodów alfanumerycznych: 7-bitowego kodu ASCII i 8-bitowego EBCDIC.
W kodzie ASCII (American Standard Code for Information Interchange) możliwe jest kodowanie informacji na 7 bitach, lecz we wszystkich praktycznych zastosowaniach jest to kod 8-bitowy, w którym ósmy bit jest bitem kontrolnym. Sekwencja 7 bitów generuje 128 kombinacji kodowych, a po dodaniu bitu ósmego (parzystości lub nieparzystości) liczba możliwych kombinacji wzrasta do 256, lecz nadal tylko 128 z nich jest poprawnych. Dodatkowy ósmy bit nie przenosi informacji użytkowej, jest traktowany jako bit techniczny parzystości lub nieparzystości znaku, w wielu przypadkach jego wartość jest zerowana, a bit jest ignorowany. Tablica kodowa ASCII nie uwzględnia indeksów dolnego i górnego rejestru, co wymaga stosowania programów konwersji przy redagowaniu tekstów technicznych zawierających rozszerzone zbiory znakowe. Również klawiatura komputera nie jest prostym odzwierciedleniem kodów ASCII wytwarzanych przy naciśnięciu pojedynczego klawisza. Kod ASCII jest standardem otwartym, co oznacza, że niektóre kody tablicy ASCII są zarezerwowane dla znaków narodowych.
Ośmiobitowa wersja znaków alfanumerycznych, znana pod nazwą tablicy kodowej EBCDIC (Extended Binary Coded Decimal Interchange Code), jest rozszerzonym kodem binarnym do kodowania informacji dziesiętnej. Kod EBCDIC, przystosowany do bajtowej struktury informacji używanej głównie w systemach komputerowych IBM, także urządzeń drukujących, umożliwia przekazywanie 256 znaków.
Najdłuższym i już wychodzącym z użycia sposobem kodowania jest 12-bitowy kod binarny stosowany do rejestracji na kartach. Informacje perforowane w 80 kolumnach i 12 wierszach karty prezentują 12-bitowy kod wynikowy, bardzo nieefektywny w stosunku do użytej liczby bitów. W większości tych urządzeń dokonuje się zwykle translacji tego kodu na 6-bitowy kod wewnętrzny systemu komputerowego.
Wielkości fizyczne podlegające procesowi transmisji mogą być prezentowane w postaci analogowej lub cyfrowej. Dla dyskretnej prezentacji informacji zapis kodowy jest zbiorem jednoznacznych reguł określających sposób prezentacji danych. W komunikacji danych kodem nazwany jest system reguł i konwencji, zgodnie z którymi sygnały reprezentujące dane są formatowane, transmitowane, odbierane i przetwarzane.
Wśród dyskretnych zapisów kodowych wyróżnia się: zapis dwójkowy (binarny), ósemkowy (oktalny), dziesiętny (operujący dziesięcioma symbolami), szesnastkowy (heksadecymalny) oraz dwójkowy z kodowaniem dziesiętnym BCD (Binary Coded Decimal).
Zapis dwójkowy, najbardziej naturalny sposób prezentacji dyskretnych wartości fizycznych, odpowiada binarnemu systemowi liczenia, w którym podstawą jest liczba 2. W zapisie występują tylko dwa rodzaje stanów 0 i odpowiadające poszczególnym bitom informacji. W zapisie ósemkowym, w którym podstawą jest liczba 8, stosuje się 8 symboli (0—7), a do reprezentacji słów 24-bitowych potrzebne jest 8 znaków.
W szesnastkowym zapisie liczbowym wartości liczbowe zmieniają się od 0 do 15. W zakresie zmian od 0 do 9 wartościom liczbowym przypisano symbole dziesiętne, wartościom od 10 do 15 przypisano symbole literowe od A do F. Przyjęta symbolika umożliwia jednoznakowe oznaczenie wszystkich 16 wartości. Reprezentacja szesnastkowa najbardziej odpowiada typowej, bajtowej (8-bitowej) organizacji informacji zarówno w komputerach, jak i w transmisji danych. Znaki alfanumeryczne (litera, cyfra lub symbol) są zawsze 1-bajtowe, natomiast słowa komputerowe składające się z dwóch, czterech lub ośmiu bajtów są reprezentowane odpowiednio przez 2, 4, 8 lub 16 znaków szesnastkowych. Zapis dwójkowy z kodowaniem BCD dla każdej cyfry dziesiętnej wymaga stosowania grup 4-bitowych dla prezentacji ciągu bitów w strumieniu danych. Notacja BCD jest powszechnie używana do wprowadzania i wyprowadzania informacji numerycznych, a także podczas kodowania w sygnalizacji optycznej za pomocą wskaźników typu LCD (Liquid Crystal Display) i LED (Light Emitting Diode).
Alfabet Morse’a jest tablicą kodową oficjalnie zaproponowaną w 1844 r. przez Samuela Morse’a (pierwsze próby w 1830 r.) i zastosowaną w telegrafie jednodrutowym (drugim przewodem była ziemia) do nadawania liter, cyfr i znaków przestankowych. Alfabet określający znaki jako kombinację krótkich i długich impulsów (optycznych, elektrycznych lub radiowych) był stosowany w początkowym etapie komunikacji telegraficznej, a ze względu na prostotę konwersji znaków jest nadal używany w radiotelegrafii amatorskiej. W wielu jeszcze do niedawna funkcjonujących aplikacjach wojskowych wykorzystujących wyłącznie znaki numeryczne (szyfrowanie komunikatów) stosowano skrócony zapis kodowy, co zwiększa efektywność przekazu. Oficjalnie wyszedł z użycia w 1999 r. za wyjątkiem łączności amatorskiej.
Kody alfabetu Morse’a należą do grupy kodów optymalnych (optymalizujących) o zmiennej długości słowa kodowego, w których długość kodu jest odwrotnie proporcjonalna do prawdopodobieństwa jego występowania. Symbolom często pojawiającym się przypisuje się krótkie kody rzadko używane mają odpowiednio dłuższą reprezentację kodową. Czas trwania kropki traktuje się jako jednostkę czasu w strukturze przekazywanego sygnału, a jedna kreska odpowiada trzem kropkom. Średnia długość znaku alfabetu Morse’a wynosi 11,2 kropki, a po uwzględnieniu prawdopodobieństwa występowania liter spada do 9,04 kropki (język angielski).
System umownych znaków stosowanych do przekazywania informacji za pomocą flag zgodnych z kodem sygnałowym. Zestaw flag oznaczających litery, cyfry oraz znaki umowne, różniących się kolorami, wzorem lub kształtem jest stosowany do tej pory do sygnalizacji między statkami. Zastosowany po raz pierwszy przez marynarkę brytyjską (1779 r.) funkcjonuje nadal jako morski międzynarodowy kod sygnałowy.
Stosowany głównie w żegludze morskiej zespół sygnałów oznaczających poszczególne litery alfabetu, cyfry lub znaki umowne, przekazywanych za pomocą dwóch chorągiewek przez sygnalistę lub za pomocą ruchomych skrzydeł urządzenia sygnalizującego.
Przekaz informacji między systemami o różnych systemach kodowania dokonuje się programowo lub technicznie w translatorach kodu zwanych transkoderami. Odpowiednie translatory są powoływane automatycznie po rozpoznaniu napotkanego system kodowania. Dla wielu systemów kodowania stosuje się odpowiednio różne transkodery powodujące transformację rozmaitych tablic kodowych.
Stosowanie kodów transparentnych jest niezbędne w przypadku wymiany informacji zawierających wszystkie możliwe kody dostępne w konkretnym systemie kodowania. Dotyczy to w szczególności znaków sterujących, które mogą wpływać na zmianę stanu urządzeń pośredniczących i końcowych. Sposób transmisji, w której przesyłane są wszystkie możliwe znaki do zakodowania, nazywa się transparentnym lub przezroczystym kodowo.
Istnieją dwa popularne sposoby prowadzenia transmisji transparentnej:
Wewnątrz oznaczonego bloku może być zawarta dowolna kombinacja bitów informacyjnych.