Код Бодо ( французское произношение: [bodo] ) — ранняя кодировка символов для телеграфии, изобретенная Эмилем Бодо в 1870-х годах. [1] Она была предшественником Международного телеграфного алфавита № 2 (ITA2), наиболее распространенного кода телетайпа , использовавшегося до ASCII . Каждый символ в алфавите представлен серией из пяти бит , отправляемых по каналу связи, такому как телеграфный провод или радиосигнал посредством асинхронной последовательной связи . Единица измерения скорости передачи символов известна как бод и происходит от того же названия.
В таблице ниже столбцы I, II, III, IV и V показывают код; столбцы Let. и Fig. показывают буквы и цифры для континентальной и британской версий; а ключи сортировки представляют таблицу в следующем порядке: алфавитный, серый и британский.
Бодо разработал свой первый мультиплексный телеграф в 1872 году [2] [3] и запатентовал его в 1874 году. [3] [4] В 1876 году он перешел с шестибитного кода на пятибитный код, [3] как предложили Карл Фридрих Гаусс и Вильгельм Вебер в 1834 году, [2] [5] с равными интервалами включения и выключения, что позволило передавать латинский алфавит и включало знаки препинания и управляющие сигналы. Сам код не был запатентован (только машина), потому что французское патентное право не позволяет патентовать концепции. [6]
5-битный код Бодо был адаптирован для отправки с ручной клавиатуры, и не было построено ни одного телетайпного оборудования, которое использовало бы его в его первоначальной форме. [7] Код вводился на клавиатуре, которая имела всего пять клавиш фортепианного типа и управлялась двумя пальцами левой руки и тремя пальцами правой руки. После нажатия клавиш они блокировались до тех пор, пока механические контакты в распределительном устройстве не проходили через сектор, подключенный к этой конкретной клавиатуре, в этот момент клавиатура разблокировалась, готовая к вводу следующего символа, со слышимым щелчком (известным как «сигнал каденции»), чтобы предупредить оператора. Операторы должны были поддерживать устойчивый ритм, а обычная скорость работы составляла 30 слов в минуту. [8]
Таблица «показывает распределение кода Бодо, который использовался в британской почте для континентальных и внутренних служб. Ряд символов континентального кода заменен дробными числами во внутреннем коде. Элементы кода 1, 2 и 3 передаются клавишами 1, 2 и 3, и они управляются первыми тремя пальцами правой руки. Элементы кода 4 и 5 передаются клавишами 4 и 5, и они управляются первыми двумя пальцами левой руки». [7] [9] [10]
Код Бодо стал известен как Международный телеграфный алфавит № 1 ( ITA1 ). Он больше не используется.
В 1901 году код Бодо был модифицирован Дональдом Мюрреем (1865–1945), что было вызвано его разработкой клавиатуры, похожей на пишущую машинку. Система Мюррея использовала промежуточный шаг: оператор использовал перфоратор клавиатуры, чтобы пробить бумажную ленту, а затем передатчик, чтобы отправить сообщение с перфоленты . На приемном конце линии печатающий механизм печатал на бумажной ленте, и/или реперфоратор делал перфорированную копию сообщения. [11]
Поскольку больше не было связи между движением руки оператора и передаваемыми битами, не было никаких проблем с организацией кода для минимизации усталости оператора. Вместо этого Мюррей разработал код для минимизации износа оборудования, назначая комбинации кода с наименьшим количеством пробитых отверстий наиболее часто используемым символам . [12] [13] Например, буквы с одним отверстием — это E и T. Десять букв с двумя отверстиями — это AOINSHRDLZ, очень похожие на порядок « Etaoin shrdlu », используемый в линотипных машинах . Еще десять букв, BCGFJMPUWY, имеют по три отверстия каждая, а буквы с четырьмя отверстиями — это VXKQ.
Код Мюррея также ввел то, что стало известно как «аффекторы формата» или « управляющие символы » — коды CR (возврат каретки) и LF (перевод строки). Несколько кодов Бодо переместились в позиции, где они и остаются с тех пор: код NULL или BLANK и код DEL. NULL/BLANK использовался как код бездействия, когда сообщения не отправлялись, но тот же код использовался для кодирования пробелов между словами. Последовательности кодов DEL (полностью перфорированные столбцы) использовались в начале или конце сообщений или между ними, что упрощало разделение отдельных сообщений. (Коды BELL могли быть вставлены в эти последовательности, чтобы сигнализировать удаленному оператору о поступлении нового сообщения или о том, что передача сообщения прекращена).
Ранние британские машины Creed также использовали систему Мюррея.
Код Мюррея был принят компанией Western Union , которая использовала его до 1950-х годов с несколькими изменениями, которые заключались в пропуске некоторых символов и добавлении большего количества управляющих кодов. Был введен явный символ SPC (пробел) вместо BLANK/NULL, а новый код BEL звонил в колокольчик или иным образом производил звуковой сигнал на приемнике. Кроме того, был введен код WRU или «Who aRe yoU?», который заставлял принимающую машину отправлять идентификационный поток обратно отправителю.
В 1932 году CCITT представил код International Telegraph Alphabet No. 2 ( ITA2 ) [14] в качестве международного стандарта, который был основан на коде Western Union с некоторыми незначительными изменениями. США стандартизировали версию ITA2, названную American Teletypewriter code (US TTY), которая была основой для 5-битных телетайпных кодов до дебюта 7-битного ASCII в 1963 году. [15]
Некоторые кодовые точки (отмеченные синим цветом в таблице) были зарезервированы для использования в конкретных странах. [16]
Кодовая позиция, назначенная Null, фактически использовалась только для состояния простоя телетайпов. В течение длительных периодов простоя частота импульсов не была синхронизирована между обоими устройствами (которые могли быть даже выключены или не постоянно соединены между собой на коммутируемых телефонных линиях). Чтобы начать сообщение, сначала необходимо было откалибровать частоту импульсов, последовательность регулярно синхронизированных импульсов «марка» (1), группой из пяти импульсов, которые также могли быть обнаружены простыми пассивными электронными устройствами для включения телетайпа. Эта последовательность импульсов генерировала серию символов стирания/удаления, а также инициализировала состояние приемника в режиме сдвига букв. Однако первый импульс мог быть потерян, поэтому эта процедура включения питания могла быть затем завершена одним Null, за которым сразу следовал символ стирания/удаления. Чтобы сохранить синхронизацию между устройствами, код Null не мог использоваться произвольно в середине сообщений (это было улучшением первоначальной системы Бодо, где пробелы явно не различались, поэтому было сложно поддерживать счетчики импульсов для повторения пробелов на телетайпах). Но затем стало возможным повторно синхронизировать устройства в любое время, отправив Null в середине сообщения (сразу за которым следовало управление Erasure/Delete/LS, если за ним следовала буква, или управление FS, если за ним следовала цифра). Отправка элементов управления Null также не приводила к перемещению бумажной ленты на следующую строку (поскольку ничего не перфорировалось), поэтому это экономило драгоценные длины перфорируемой бумажной ленты. С другой стороны, код управления Erasure/Delete/LS всегда перфорировался и всегда переключался в режим (начальных) букв. Согласно некоторым источникам, точка кода Null была зарезервирована только для внутреннего использования в стране. [16]
Код Shift to Letters (LS) также можно использовать как способ отмены/удаления текста с перфоленты после его считывания, что позволяет безопасно уничтожить сообщение перед тем, как выбросить перфорированную полосу. [ необходимо разъяснение ] Функционально он также может играть ту же роль заполнителя, что и код Delete в ASCII (или других 7-битных и 8-битных кодировках, включая EBCDIC для перфокарт). После того, как коды во фрагменте текста были заменены произвольным числом кодов LS, то, что следует за ним, все еще сохраняется и декодируется. Его также можно использовать в качестве инициатора, чтобы убедиться, что декодирование первого кода не даст цифру или другой символ со страницы цифр (потому что код Null может быть произвольно вставлен около конца или начала перфорированной полосы и должен быть проигнорирован, тогда как код Space имеет значение в тексте).
Ячейки, отмеченные как зарезервированные для расширений (которые используют код LS снова во второй раз — сразу после первого кода LS — для перехода со страницы цифр на страницу сдвига букв), были определены для перехода в новый режим. В этом новом режиме страница букв содержит только строчные буквы, но сохраняет доступ к третьей кодовой странице для заглавных букв, либо путем кодирования для одной буквы (отправляя LS перед этой буквой), либо блокируя (с помощью FS+LS) для неограниченного количества заглавных букв или цифр, прежде чем затем разблокировать (с помощью одного LS) для возврата в режим строчных букв. [18] Ячейка, отмеченная как «Зарезервированная», также может использоваться (с использованием кода FS со страницы сдвига цифр) для переключения страницы цифр (которая обычно содержит цифры и национальные строчные буквы или символы) на четвертую страницу (где национальные буквы являются заглавными, а другие символы могут быть закодированы).
ITA2 до сих пор используется в телекоммуникационных устройствах для глухих (TDD), телексе и некоторых любительских радиоприложениях, таких как радиотелетайп («RTTY»). ITA2 также используется в Enhanced Broadcast Solution, финансовом протоколе начала 21-го века, указанном Deutsche Börse , для уменьшения объема кодирования символов. [19]
Почти все телетайпное оборудование 20-го века использовало код Western Union, ITA2, или его варианты. Радиолюбители небрежно называют ITA2 и его варианты «Baudot» неправильно, [20] и даже Справочник радиолюбителей Американской радиорелейной лиги делает то же самое, хотя в более поздних изданиях таблицы кодов правильно идентифицируют его как ITA2.
Значения, показанные в каждой ячейке, представляют собой кодовые точки Unicode , приведенные для сравнения.
Метеорологи использовали вариант ITA2 с цифровыми символами, за исключением десяти цифр, BEL и нескольких других символов, замененных на погодные символы:
Примечание: Эта таблица предполагает, что пространство, названное "1" Бодо и Мюрреем, является самым правым и наименее значимым. Способ упаковки передаваемых битов в более крупные коды различается у разных производителей. Наиболее распространенное решение распределяет биты от наименее значимого бита к наиболее значимому биту (оставляя три наиболее значимых бита байта неиспользованными).
В ITA2 символы выражаются с помощью пяти бит. ITA2 использует два подмножества кодов: «буквенный сдвиг» (LTRS) и «цифровой сдвиг» (FIGS). Символ FIGS (11011) сигнализирует о том, что следующие символы должны интерпретироваться как находящиеся в наборе FIGS, пока он не будет сброшен символом LTRS (11111). [22] При использовании клавиша Shift LTRS или FIGS нажимается и отпускается, передавая соответствующий символ Shift на другую машину. Затем набираются нужные буквы или цифры. В отличие от пишущей машинки или современной компьютерной клавиатуры, клавиша Shift не удерживается нажатой, пока набираются соответствующие символы. «ENQuiry» вызовет ответ другой машины. Это означает «Кто вы?»
CR — возврат каретки , LF — перевод строки , BEL — символ звонка , который зазвенел (часто используется для оповещения операторов о входящем сообщении), SP — пробел, а NUL — нулевой символ (чистая лента).
Примечание: двоичные преобразования кодовых точек часто показаны в обратном порядке, в зависимости от (предположительно) того, с какой стороны смотреть на бумажную ленту. Обратите внимание также, что «контрольные» символы были выбраны так, чтобы они были либо симметричными, либо в полезных парах, чтобы вставка ленты «вверх ногами» не приводила к проблемам для оборудования, а полученная распечатка могла быть расшифрована. Таким образом, FIGS (11011), LTRS (11111) и пробел (00100) являются инвариантными, в то время как CR (00010) и LF (01000), обычно используемые как пара, обрабатываются одинаково независимо от порядка постраничным принтерам. [23] LTRS также может использоваться для перештамповки символов, которые должны быть удалены на бумажной ленте (во многом как DEL в 7-битном ASCII ).
Последовательность RYRYRY... часто используется в тестовых сообщениях и в начале каждой передачи. Поскольку R — это 01010, а Y — это 10101, последовательность подвергает большую часть механических компонентов телетайпа максимальному напряжению. Кроме того, одно время тонкая настройка приемника выполнялась с помощью двухцветных огней (по одной на каждый тон). «RYRYRY...» давала 0101010101..., что заставляло огни светиться с одинаковой яркостью, если настройка была правильной. Эта последовательность настройки полезна только при использовании ITA2 с двухтональной FSK- модуляцией, такой, которая обычно наблюдается при использовании радиотелетайпа (RTTY).
Реализации кода Бодо в США могут отличаться добавлением нескольких символов, таких как # и & на уровне FIGS.
Русский вариант кода Бодо ( MTK-2 ) использовал три режима сдвига; режим кириллических букв активировался символом (00000). Из-за большего количества символов в кириллическом алфавите символы ! , & , £ были опущены и заменены кириллицей, а BEL имеет тот же код, что и кириллическая буква Ю. Кириллические буквы Ъ и Ё опущены, а Ч объединена с цифрой 4.
*
принтерах для квитанций». [21] [...] В 1872 г. [Бодо] начал исследования в направлении телеграфной системы, которая позволила бы нескольким операторам одновременно передавать данные по одному проводу и, по мере получения данных, печатать их обычными буквенными символами на полоске бумаги. Он получил патент на такую систему 17 июня 1874 г. [...] Вместо переменной задержки, за которой следовал одноединичный импульс, система Бодо использовала единообразные шесть временных единиц для передачи каждого символа. [...] его ранний телеграф, вероятно, использовал шестиединичный код [...], который он приписывает
Дэви
в статье 1877 г. [...] в 1876 г. Бодо перепроектировал свое оборудование для использования пятиединичного кода. Однако знаки препинания и цифры все еще иногда были нужны, поэтому он перенял у
Хьюза
использование двух специальных символов пробела между буквами и цифрами, которые заставляли принтер переключаться между регистрами одновременно с тем, как он продвигал бумагу без печати. Пятиэлементный код, который он начал использовать в это время [...], был структурирован для соответствия его клавиатуре [...], которая управляла двумя единицами каждого символа с помощью переключателей, управляемых левой рукой, и тремя другими единицами — правой рукой. [...][1][2]
Я распределил наиболее часто используемые буквы английского языка по сигналам, представленным наименьшим количеством отверстий в перфорированной ленте, и так далее пропорционально.
{{cite book}}
: |work=
проигнорировано ( помощь )...] символы, связанные с 'управлением передачей' [...], являются побитово симметричными — коды для FIGS, LTRS, пробела и BLANK — одинаковы, если их перевернуть слева направо! Кроме того, коды для CR и LF равны друг другу, если их перевернуть слева направо!