Введение

Телеграфный код — это одна из кодировок символов, используемых для передачи информации по телеграфу. Наиболее известным примером является код Морзе. Под телеграфом обычно подразумевают электрический телеграф, однако системы телеграфной связи, использующие оптический телеграф, применялись и ранее. Код состоит из набора кодовых точек, каждая из которых соответствует букве алфавита, цифре или иному символу. В кодах, предназначенных для работы машин, а не людей, необходимы кодовые точки для управляющих символов, таких как возврат каретки, для управления работой механизма. Каждая кодовая точка состоит из ряда элементов, расположенных уникальным образом для данного символа. Обычно используется два типа элементов (бинарный код), но в некоторых кодах, не предназначенных для машин, применялось больше типов элементов. Например, американский код Морзе содержал около пяти элементов, в то время как Международный код Морзе использует только два (точка и тире). Коды, предназначенные для восприятия человеком, разрабатывались таким образом, чтобы наиболее часто встречающиеся символы имели наименьшее количество элементов в соответствующей кодовой точке. Например, код Морзе для буквы E, наиболее часто встречающейся в английском языке, состоит из одной точки, а для буквы Q – из . Такая организация позволяла передавать сообщения быстрее и снижала утомляемость оператора. Телеграфами всегда управляли люди до конца XIX века. С появлением автоматизированной телеграфной связи коды с кодовыми точками переменной длины оказались неудобными для конструирования машин того времени. Вместо этого стали использовать коды с фиксированной длиной. Первым из них был код Бодо, пятибитный код. Код Бодо содержит достаточно кодовых точек для печати только заглавными буквами. В более поздних кодах использовалось больше бит (например, в ASCII – семь), что позволяло печатать как прописные, так и строчные буквы. Помимо эпохи телеграфа, современным компьютерам требуется очень большое количество кодовых точек (в Unicode их 21 бит) для поддержки множества языков и алфавитов (наборов символов) без необходимости смены кодировки символов. Современные компьютеры легко обрабатывают коды переменной длины, такие как UTF-8 и UTF-16, которые стали повсеместно распространёнными.

Коды оптических телеграфов

До появления электрического телеграфа широко используемым методом создания национальных телеграфных сетей был оптический телеграф, состоящий из цепочки башен, с которых сигналы передавались семафором или с помощью жалюзи от башни к башне. Особенно высоко он был развит во Франции, где его истоки лежат во времена Французской революции. Код, использовавшийся во Франции, назывался кодом Шаппа, в честь его изобретателя Клода Шаппа. Британское Адмиралтейство также использовало семафорный телеграф, но со своим собственным кодом. Британский код неизбежно отличался от французского, поскольку британский оптический телеграф функционировал иначе. Система Шаппа использовала подвижные стрелы, напоминающие развевающиеся флаги, как в флажном семафоре. Британская система использовала систему жалюзи, которые можно было открывать и закрывать.

Код Chappe

Система Шаппе состояла из большой поворотной балки (регулятора) с плечом на каждом конце (индикаторами), которые вращались вокруг регулятора на одном из концов. Угол, который могли принимать эти компоненты, был ограничен кратными 45° для облегчения читаемости. Это обеспечивало кодовое пространство 8×4×8 кодовых точек, но положение индикатора, совпадающее с регулятором, никогда не использовалось, так как его было трудно отличить от индикатора, сложенного на регулятор, что оставляло кодовое пространство. Символы всегда формировались с регулятором, наклоненным влево или вправо (по диагонали), и признавались действительными только при перемещении регулятора в вертикальное или горизонтальное положение. Левый наклон всегда использовался для сообщений, а правый – для управления системой. Это дополнительно сократило кодовое пространство до 98, из которых четыре или шесть кодовых точек (в зависимости от версии) были контрольными символами, оставляя кодовое пространство для текста в 94 или 92 символа соответственно. Система Шаппе в основном передавала сообщения, используя шифровальную книгу с большим количеством установленных слов и фраз. Она впервые была использована на экспериментальной цепи башен в 1793 году и введена в эксплуатацию между Парижем и Лиллем в 1794 году. Точная шифровальная книга, использовавшаяся в то время, неизвестна, но неопознанная книга кодов в Парижском почтовом музее могла быть предназначена для системы Шаппе. Расположение этого кода в столбцах по 88 записей побудило Хольцмана и Персона предположить, что могло использоваться 88 кодовых точек. Однако в 1793 году было предложено десять кодовых точек для представления цифр от 0 до 9, и Буше утверждает, что эта система все еще использовалась вплоть до 1800 года (Холцман и Персон указывают на изменение в 1795 году). Шифровальная книга была пересмотрена и упрощена в 1795 году для ускорения передачи. Код был разделен на два раздела: первый раздел содержал 94 алфавитно-цифровых символа, а также некоторые часто используемые комбинации букв. Второй раздел представлял собой шифровальную книгу из 94 страниц, на каждой из которых было 94 записи. Каждому номеру до 94 была присвоена кодовая точка. Таким образом, для передачи целого предложения требовалось отправить только два символа – номер страницы и строки шифровальной книги, по сравнению с четырьмя символами, используемыми в коде из десяти символов. В 1799 году были добавлены три дополнительных раздела, содержащих дополнительные слова и фразы, географические названия и имена людей. Для идентификации правильной книги к кодовому символу требовалось добавлять дополнительные символы в этих трех разделах. Код был пересмотрен еще раз в 1809 году и впоследствии оставался стабильным. В 1837 году Габриэль Флокон представил систему кодирования, использующую только горизонтальное положение, которая не требовала перемещения тяжелого регулятора. Вместо этого в центре регулятора был предусмотрен дополнительный индикатор для передачи этого элемента кода.

Перука

Сигнализация флагами широко использовалась для передачи сигналов между пунктами до появления оптического телеграфа, но создание общенациональной сети с использованием ручных флагов было затруднительно. Для обеспечения большей дальности между звеньями связи требовался гораздо более крупный механический аппарат семафорных телеграфных башен. Однако во время Гражданской войны в США была построена обширная сеть с использованием ручных флагов. Это была система "виг-ваг", использовавшая код, изобретенный Альбертом Джей Майером. Некоторые из использовавшихся башен были огромными, высотой до 39,6 метров, чтобы обеспечить достаточную дальность видимости. Код Майера требовал только одного флага, использующего троичный код. То есть, каждый элемент кода состоял из одной из трех различных позиций флага. Однако для обозначения букв алфавита требовалось только два положения, третье положение использовалось исключительно для управляющих символов. Использование троичного кода для алфавита позволило бы сократить длину сообщений, поскольку для каждого символа требовалось бы меньше элементов, но двоичная система легче читается на больших расстояниях, так как необходимо различать меньше положений флага. Руководство Майера также описывает троичный кодированный алфавит с фиксированной длиной в три элемента для каждого символа.

Кук и Уитстоун и другие ранние коды

Во время раннего развития электрического телеграфа было изобретено множество различных кодов. Практически каждый изобретатель создавал свой собственный код, подходящий для его конкретного аппарата. Самым ранним кодом, использовавшимся в коммерческих целях на электрическом телеграфе, был пятиигольный код телеграфа Кука и Уитстона (C&W5). Он впервые был использован на Великой западной железной дороге в 1838 году. Главным преимуществом C&W5 было то, что оператору не нужно было запоминать код – буквы можно было считывать непосредственно с индикаторной панели. Однако его недостатком было то, что он требовал слишком много проводов. Был разработан одноигольный код C&W1, для которого требовался только один провод. C&W1 широко использовался в Великобритании и Британской империи. Некоторые другие страны также использовали C&W1, но он так и не стал международным стандартом, и в основном каждая страна разрабатывала свой собственный код. В США использовался американский код Морзе, элементы которого состояли из точек и тире, различавшихся по длительности импульса тока на телеграфной линии. Этот код применялся на телеграфе, изобретенном Сэмюэлем Морзе и Альфредом Вейлом, и впервые был использован в коммерческих целях в 1844 году. Изначально у Морзе были кодовые обозначения только для цифр. Он планировал, что отправляемые по телеграфу цифры будут служить указателями в словаре с ограниченным набором слов. Вейл изобрел расширенный код, включавший кодовые обозначения для всех букв, чтобы можно было передавать любое желаемое слово. Именно код Вейла стал американским кодом Морзе. Во Франции для телеграфа использовался телеграф Фой-Бреге, двух игольный телеграф, который отображал иглы в коде Шаппа – том же коде, что и французский оптический телеграф, который все еще был более распространен, чем электрический телеграф во Франции. Для французов это было большим преимуществом, поскольку им не нужно было переобучать своих операторов новому коду.

Стандартность Морзевский код

В Германии в 1848 году Фридрих Клеменс Герке разработал сильно модифицированную версию американского кода Морзе для использования на немецких железных дорогах. Американский код Морзе имел три различные длительности тире и два различных интервала между точками и тире в пределах одного символа. Код Герке использовал тире только одной длительности, а все промежутки между элементами в пределах символа были одинаковыми. Герке также разработал символы для немецких букв с умляутами, которых нет в английском языке. Многие страны Центральной Европы входили в Германско-Австрийский телеграфный союз. В 1851 году Союз решил принять единый код для всех своих стран, чтобы сообщения можно было отправлять между ними без необходимости перекодирования операторами на границах. Для этой цели был принят код Герке. В 1865 году на конференции в Париже код Герке был принят в качестве международного стандарта и назван Международным кодом Морзе. С некоторыми незначительными изменениями этот код Морзе используется и сегодня. Телеграфные приборы Кука и Уитстона с иглами могли использовать код Морзе, поскольку точки и тире могли передаваться как движения иглы влево и вправо. К тому времени игольные приборы оснащались ограничителями, которые издавали два различных звуковых сигнала при ударе иглы. Это позволяло оператору записывать сообщение, не глядя на иглу, что было гораздо эффективнее. Это было сопоставимо с преимуществом телеграфа Морзе, в котором операторы могли слышать сообщение по щелчку реле. Тем не менее, после национализации британских телеграфных компаний в 1870 году Главное почтовое ведомство решило стандартизировать использование телеграфа Морзе и отказаться от множества различных систем, унаследованных от частных компаний. В США телеграфные компании отказались использовать Международный код Морзе из-за затрат на переобучение операторов. Они выступали против попыток правительства придать этому силу закона. В большинстве других стран телеграф находился под государственным контролем, поэтому изменения можно было просто ввести в обязательный порядок. В США не было единой организации, управляющей телеграфом; вместо этого существовало множество частных компаний. В результате международным операторам требовалось владеть обеими версиями кода Морзе и перекодировать как входящие, так и исходящие сообщения. США продолжали использовать американский код Морзе на проводных линиях (радиотелеграфия обычно использовала Международный код Морзе), и это продолжалось до появления телетайпов, которым требовались совершенно другие коды, что сделало эту проблему неактуальной.

Скорость передачи

Скорость передачи в ручном телеграфе ограничена скоростью, с которой оператор может отправлять каждый элемент кода. Скорость обычно измеряется в словах в минуту. Поскольку слова имеют разную длину, простое подсчитывание слов даст разные результаты в зависимости от содержания сообщения. Поэтому для измерения скорости слово определяется как пять символов, независимо от фактического количества слов в сообщении. Код Морзе и многие другие коды также имеют разную длину кодирования для каждого символа слова, что также вносит зависимость от содержания. Чтобы обойти это, используется скорость оператора при многократной передаче стандартного слова. Классически в качестве стандарта выбирается слово ПАРИЖ, поскольку оно соответствует длине среднего слова в коде Морзе. В американском Морзе символы обычно короче, чем в международном. Это частично связано с тем, что американский Морзе использует больше точечных элементов, а частично с тем, что наиболее часто используемая тире – короткая тире – короче, чем в международном Морзе: два точечных элемента против трех. В принципе, американский Морзе может передаваться быстрее, чем международный, при прочих равных условиях. Однако на практике этому мешают два фактора. Во-первых, американский Морзе, состоящий примерно из пяти кодирующих элементов, было сложнее точно синхронизировать при быстрой передаче. Неопытные операторы часто отправляли искаженные сообщения, что получило название «свиной Морзе». Вторая причина заключается в том, что американский Морзе более подвержен интерсимвольным помехам (ISI) из-за большей плотности близко расположенных точек. Эта проблема была особенно острой на подводных телеграфных кабелях, что делало американский Морзе менее подходящим для международных коммуникаций. Единственным доступным оператору способом борьбы с ISI было снижение скорости передачи.

Кодировки языковых символов

Морзе-код для нелатинских алфавитов, таких как кириллица или арабская письменность, реализуется путем создания кодировки символов для данного алфавита с использованием тех же или почти тех же кодовых точек, что и в латинском алфавите. Слоговые азбуки, такие как японская катакана, также обрабатываются таким образом (код Вабуна). Альтернативный вариант – добавление большего количества кодовых точек в морзе-код для каждого нового символа – привел бы к очень длинным передачам кода для некоторых языков. Языки, использующие логограммы, сложнее обрабатывать из-за значительно большего количества необходимых символов. Китайский телеграфный код использует кодовую книгу, содержащую около 9800 символов (7000 при первоначальном запуске в 1871 году), каждому из которых присвоен четырехзначный номер. Именно эти номера передаются, поэтому китайский морзе-код состоит исключительно из цифр. Эти номера необходимо расшифровывать на принимающей стороне, что делает процесс медленным, но в эпоху широкого распространения телеграфа опытные китайские телеграфисты могли запоминать тысячи наиболее часто используемых кодов. Китайский телеграфный код до сих пор используется правоохранительными органами, поскольку это однозначный способ записи китайских имен некитайскими шрифтами.

Код Баудо

Ранние печатные телеграфы продолжали использовать код Морзе, но оператор больше не передавал точки и тире напрямую с помощью одного ключа. Вместо этого он использовал клавиатуру, подобную пианино, на клавишах которой были обозначены символы для передачи. Машина генерировала соответствующий сигнал кода Морзе при нажатии клавиши. Совершенно новый тип кода был разработан Эмилем Бодо и запатентован в 1874 году. Код Бодо представлял собой 5-битный двоичный код, при котором биты передавались последовательно. Использование кода фиксированной длины значительно упростило конструкцию аппарата. Оператор вводил код с небольшой 5-клавишной клавиатуры, где каждая клавиша соответствовала одному биту кода. Как и в коде Морзе, код Бодо был организован таким образом, чтобы минимизировать утомляемость оператора: наиболее часто используемым буквам соответствовали кодовые комбинации, требующие наименьшего количества нажатий клавиш. Ранним печатным телеграфам требовалась механическая синхронизация между передающей и принимающей машинами. Печатный телеграф Хьюза образца 1855 года обеспечивал это, отправляя тире кода Морзе с каждым оборотом механизма. Для кода Бодо было применено другое решение. К каждому символу при передаче добавлялись стартовый и стоповый биты, что обеспечивало асинхронную последовательную связь. Эта схема стартовых и стоповых битов использовалась во всех последующих основных телеграфных кодах.

Код Мюррея

На загруженных телеграфных линиях использовался вариант кода Бодо с перфорированной бумажной лентой. Это был код Мюррея, изобретенный Дональдом Мюрреем в 1901 году. Вместо прямой передачи на линию, нажатия клавиш оператора пробивали отверстия в ленте. Каждый ряд отверстий на ленте имел пять возможных позиций для прокола, соответствующих пяти битам кода Мюррея. Затем лента пропускалась через считыватель, который генерировал код и отправлял его по телеграфной линии. Преимуществом этой системы было то, что несколько сообщений могли быть отправлены на линию очень быстро с одной ленты, что позволяло более эффективно использовать линию, чем при прямой ручной работе. Мюррей полностью перестроил кодировку символов, чтобы минимизировать износ оборудования, поскольку усталость оператора больше не была проблемой. Таким образом, наборы символов оригинальных кодов Бодо и Мюррея несовместимы. Пяти бит кода Бодо недостаточно для представления всех букв, цифр и знаков препинания, необходимых в текстовом сообщении. Кроме того, печатным телеграфам требовались дополнительные символы для лучшего управления машиной. Примерами этих управляющих символов являются перевод строки и возврат каретки. Мюррей решил эту проблему, введя коды переключения. Эти коды инструктируют принимающую машину изменять кодировку символов на другой набор символов. В коде Мюррея использовались два кода переключения: цифровой сдвиг и буквенный сдвиг. Другим управляющим символом, введенным Мюрреем, был символ удаления (DEL, код 11111), который пробивал все пять отверстий на ленте. Его назначение заключалось в удалении ошибочных символов с ленты, но Мюррей также использовал несколько символов DEL для обозначения границы между сообщениями. Полностью пробитая лента создавала перфорацию, которую легко было разорвать на отдельные сообщения на принимающей стороне. Вариант кода Бодо-Мюррея стал международным стандартом как Международный телеграфный алфавит № 2 (ITA 2) в 1924 году. Цифра "2" в ITA 2 указывает на то, что оригинальный код Бодо стал основой для ITA 1. ITA 2 оставался стандартным телеграфным кодом, используемым до 1960-х годов, и продолжал использоваться в некоторых местах даже после этого.

Эпоха компьютеров

Телепринтер был изобретен в 1915 году. Это печатающий телеграф с клавиатурой, подобной клавиатуре пишущей машинки, на которой оператор набирает сообщение. Тем не менее, телеграммы продолжали передаваться только заглавными буквами, поскольку в кодах Бодо–Мюррея или ITA 2 не было места для набора символов нижнего регистра. Ситуация изменилась с появлением компьютеров и стремлением интегрировать сообщения, сгенерированные компьютерами, или документы, созданные текстовыми процессорами, с телеграфной системой. Непосредственной проблемой стало использование кодов переключения регистра, которые затрудняли компьютерное хранение текста. Если извлекалась часть сообщения или только один символ, невозможно было определить, какой сдвиг кодировки следует применить, не просматривая остальную часть сообщения в поисках последнего управляющего символа переключения. Это привело к разработке 6-битного кода TeleTypeSetter (TTS). В TTS дополнительный бит использовался для хранения состояния регистра, что устраняло необходимость в символах переключения. TTS также был полезен как для телепринтеров, так и для компьютеров. Искажение кода буквы, передаваемого по TTS, приводило лишь к печати одной неправильной буквы, которую получатель, вероятно, мог исправить. С другой стороны, искажение символа переключения регистра ITA 2 приводило к тому, что все сообщение, начиная с этого момента, становилось нечитаемым до получения следующего символа переключения.

ASCII (код)

К 1960-м годам совершенствование технологии телепринтеров привело к тому, что большая длина кодов перестала быть столь значимым фактором в их стоимости, как это было ранее. Пользователи компьютеров хотели использовать строчные буквы и дополнительные знаки препинания, а производители телепринтеров и компьютеров стремились отказаться от ITA 2 и его кодов переключения регистра. Это побудило Американскую ассоциацию стандартов разработать 7-битный код – Американский стандартный код для обмена информацией (ASCII). Окончательная версия ASCII была опубликована в 1964 году и быстро стала стандартным кодом для телепринтеров. ASCII стал последним крупным кодом, разработанным с учетом особенностей телеграфного оборудования. Вскоре после этого телеграфия начала быстро приходить в упадок и в значительной степени была заменена компьютерными сетями, особенно Интернетом в 1990-х годах. ASCII обладал рядом функций, облегчающих компьютерное программирование. Буквенные символы располагались в числовом порядке кодовых точек, что позволяло выполнить алфавитную сортировку, просто отсортировав данные численно. Кодовые точки соответствующих прописных и строчных букв различались только значением 6-го бита, что позволяло сортировать текст с учетом регистра, игнорируя этот бит. Были разработаны и другие коды, в частности EBCDIC от IBM, основанный на методе ввода с помощью перфокарт, но именно ASCII и его производные стали общепринятым стандартом для обмена информацией между компьютерами.

Расширение ASCII и Unicode

Появление микропроцессоров в 1970-х годах и персональных компьютеров в 1980-х годах с их 8-битной архитектурой привело к тому, что 8-битный байт стал стандартной единицей компьютерной памяти. Упаковка 7-битных данных в 8-битный байт затрудняла извлечение данных. Вместо этого большинство компьютеров хранили один символ ASCII на байт, оставляя один бит неиспользованным. Производители компьютеров использовали этот бит в расширенном ASCII для преодоления некоторых ограничений стандартного ASCII. Основная проблема заключалась в том, что ASCII был ориентирован на английский язык, особенно американский английский, и не поддерживал диакритические знаки, используемые в других европейских языках, таких как французский. В набор символов также были добавлены символы валют других стран. К сожалению, разные производители использовали различные реализации расширенного ASCII, что привело к их несовместимости между платформами. В 1987 году Международная организация по стандартизации (ISO) выпустила стандарт ISO 8859-1 – 8-битовую кодировку символов, основанную на 7-битной ASCII, которая получила широкое распространение. Кодировки символов ISO 8859 были разработаны для нелатинских систем письма, таких как кириллица, иврит, арабский и греческий. Однако это оставалось проблематичным, если в документе или данных использовалось более одного шрифта. Требовалось многократное переключение между кодировками символов. Решение было найдено с публикацией в 1991 году стандарта для 16-битного Unicode, разработка которого началась в 1987 году. Unicode сохранил символы ASCII в тех же кодовых точках для обеспечения совместимости. Помимо поддержки нелатинских систем письма, Unicode предоставил кодовые точки для логограмм, таких как китайские иероглифы, и многих специализированных символов, например, астрологических и математических. В 1996 году Unicode 2.0 разрешил использование кодовых точек больше 16 бит – до 20 и 21 бит, с дополнительной областью частного использования. 20-битный Unicode обеспечил поддержку вымерших языков, таких как древнеиталийское письмо, и многих редко используемых китайских иероглифов.

Международный код сигналов (радиотелеграф)

В 1931 году Международный сигнальный кодекс, изначально разработанный для связи между судами с помощью флаговой семафорной азбуки, был расширен за счет включения набора кодов из пяти букв для использования операторами радиосвязи.

Сравнение кодов иглы

+ Таблица 2Код ANBOCPDQERFSGTHUIVJKXLYMZТип данныхПримечанияRefSchilling 1 игла (1820)colspan="13"Последовательный, переменная длинаЭто первый код, использующий одну цепь. Гаусс и Вебер 1 игла (1833) colspan="13"Последовательный, переменная длинаКук и Уитстоун 5 игл (1838) colspan="13"Параллельный, 5 элементовКук и Уитстоун 2 иглыcolspan="13"Последовательно-параллельный, переменная длинаКук и Уитстоун 1 игла (1846) colspan="13"Последовательный, переменная длинаХайтон 1 иглаcolspan="13"Последовательный, переменная длинаМорзе как игольный кодcolspan="13"Последовательный, переменная длинаИгла слева = точкаИгла справа = тиреФой Бреггейт код (2 иглы)colspan="13"Параллельный, 2 элемента

Примечания к таблице 2

Альтернативным представлением кодов иглы является использование цифры "1" для иглы, отклоненной влево, и "3" для иглы, отклоненной вправо. Цифра "2", которая отсутствует в большинстве кодов, обозначает иглу в нейтральном вертикальном положении. Кодовые отметки, использующие эту схему, нанесены на шкалу некоторых игольных приборов, особенно тех, которые применяются для обучения.

Сравнение кодов с точки

+ Таблица 3Код ANBOCPDQERFSGTHUIVJWKXLYMZТип данныхПримечанияRefSteinheil (1837)Последовательный, переменная длинаSteinheil (1849)Последовательный, переменная длинаBain (1843)Последовательный, переменная длинаМорзе (ок. 1838)Последовательный, переменная длинаМорзе (ок. 1840) (американский морзе)Последовательный, переменная длинаГерке (1848) (континентальный морзе)Последовательный, переменная длинаМеждународный морзе (1851)Последовательный, переменная длина

Примечания к таблице 3

При использовании с печатающим телеграфом или сифонным записывателем, "тире" в точечно-штриховых кодах часто делают той же длины, что и "точка". Как правило, отметка на ленте для точки располагается над отметкой для тире. Пример этого можно увидеть в коде Штейнхеля 1837 года, который почти идентичен коду Штейнхеля 1849 года, за исключением того, что они отличаются представлением в таблице. Международный азбука Морзе часто использовалась в этой форме на подводных телеграфных кабелях.