[Из песочницы] Эмуляторы терминалов

Добрый день. Вашему вниманию представляется публикация о роли терминалов в истории развития компьютерной индустрии.

Терминал — электронное устройство [1], используемое для организации диалогового взаимодействия пользователя с компьютером, как правило состоящее из клавиатуры и дисплея, подключённое через сетевой интерфейс к удалённому серверу. Первые варианты таких терминальных систем, появились в то время, когда ещё не существовало понятия персонального компьтера ввиду огромных размеров ранних ЭВМ. До 70-x годов прошлого века в качестве монитора многими пользователями использовался [2] принтер, на котором распечатывалась реакция ЭВМ на команды, вводимые с клавиатуры. Многотерминальные системы [3] позволяли одновременную работу с ЭВМ нескольких пользователей, каждый из которых получал собственный терминал для работы с компьютером, а их количество определялось его вычислительной мощностью. Такие многотерминальные системы стали прообразом современных вычислительных сетей. В 13 лет Билл Гейтс был буквально загипнотизирован [4] компьютерным терминалом, установленным в здании школы, и каждую свободную минуту он и его друзья проводили рядом с ним. «Мы жили в параллельной вселенной» — говорил потом об этом времени сам Билл Гейтс.

image


В 1978 году компания DEC выпустила терминал VT100 [5], который использовал для соединения с сервером линию связи с последовательной передачей данных, при которой данные передаются последовательно по одному биту за один промежуток времени. Последовательный интерфейс RS-232 был разработан [6] и предложен в 1969 году ассоциацией электронной промышленности (Electronic Industries Associations, EIA) для связи аппаратных средств передачи данных (Data Communication Equipment — DCE), например, компьютеров, с аппаратными средствами приёма данных (Data Terminal Equipment — DTE) такими, как терминалы, принтеры, модемы и другие перефирийные устройства.

image


Для контролирования потока данных последовательный интерфейс использует [7] счётчик времени (сигнал синхронизации, clock). Передатчик и приёмник используют этот счётчик для определения моментов времени, в которые необходимо посылать и считывать соответствующий бит данных. Существует два формата последовательной передачи данных — синхронный и асинхронный.

При синхронной передаче данных передатчик и приёмник используют общий счётчик времени, генерируемый общим источником. Генерация передаваемых бит на стороне приёмника синхронизируется с этим счётчиком, а приёмник использует этот счётчик для определения моментов времени, в которые следует считывать принимаемые биты. Синхронные интерфейсы применяются для коротких линий связи длиной порядка 1.5 метров или менее того, или между компонентами одной печатной платы. Для более длинных линий связи синхронные методы последовательной передачи данных оказываются менее эффективны ввиду необходимости передачи синхронизирующего сигнала, требующего отдельной линии связи и подверженного шуму.

image


При асинхронной передаче данных такая линия cвязи не требуется, т.к. приёмник и передатчик генерируют свои собственные синхронизирующие сигналы. Каждому переданному байту данных предшествует стартовый бит для синхронизации счётчиков, а за переданным байтом следует один или два стоповых бита для обозначения конца переданного байта данных. Одним из наиболее известных форматов асинхронной последовательной передачи данных является формат 8-N-1, при котором посылается один стартовый бит, далее следует байт передаваемых данных, а за ним следует один стоповый бит. Символ N обозначает, что передаваемые данные не включают бит паритета (parity bit), используемый для коррекции ошибок. Например, в формате 7-E-1 посылается один стартовый бит, семь бит данных, один бит паритета и один стоповый бит. Бит паритета может быть чётным (Even), нечётным (Odd), установаленным (Mark) и сброшенным (Space). Чётный бит паритета устанавливается таким, что биты данных вместе с битом паритета содержат чётное количество единичных бит. Нечётный бит паритета устанавливается таким, что биты данных вместе с битом паритета содержат нечётное количество единичных бит. Установленный (Mark) бит паритета всегда равен единице, а сброшенный (Space) всегда равен нулю. Бит паритета позволяет определить только ошибку в одном бите. Например, последовательность бит 0110000, переданная с чётным битом паритета 0, может измениться из-за шума телефонной линии на 0111100, однако приёмник не определит наличие ошибки, так как чётность сохранится.

image


С развитием компьютерной техники терминальные комплексы стали вытесняться персональными компьютерами, эмуляторы терминалов стали популярным способом эмуляции дисплейных терминалов в какой-либо другой системе отображения информации, а набор ASCII символов и управляющих последовательностей терминала VT100 стал стандартом для таких эмуляторов, как Teraterm и пр. Информация на дисплее и управляющая информация, вводимая с устройства ввода пользователем, могут быть преобразованы в последовательные сигналы и переданы междy подключённым устройством и терминалом. Клавиатура используется для передачи кодов. Некоторые клавиши посылают один или несколько кодов немедленно при нажатии. Другие клавиши такие, как CTRL и SHIFT, не посылают коды при нажатии, но модифицируют коды, посылаемые при нажатии других клавиш. Клавиатура содержит четыре клавиши со стрелками в четырёх разных направлениях. Эти клавиши передают управляющие последовательности. При получении таких последовательностей терминалом курсор сместится на один символ вверх, вниз, направо или налево.

Пользователи могут использовать эмуляторы терминалов, установленные на персональных компьютерах (ПК), включающих экран и устройства ввода такие, как мышь и клавиатура, для проверки и управления устройствами. Эмулятор терминала можно, например, использовать для отладки работы операционной системы компьютера. Для обработки сообщений об ошибках некоторые операционные системы посылают их на последовательный порт компьютера. Для обработки сообщений об ошибках к последовательному порту компьютера подключается терминал (или компьютер с эмулятором терминала), который интерпретирует сигнал на выходе последовательного порта в виде последовательности команд терминала. Эти команды позволяют отображать текст на экране терминала. В качестве другого примера можно привести маршрутизаторы, предоставляющие возможность настройки подключением эмулятора терминала через порт с поддержкой интерфейса командной строки (Command line interface, cli). Ещё одной областью применения таких программ является настройка и управление различными платами, релейными модулями и т.д.

RS-232 интерфейс хорошо зарекомендовал себя и прослужил около двух десятилетий как один из основных портов для подключения перифирийных устройств. Использование существовавших интерфейсов вместо создания новых позволяло производителям IBM и др. ускорить разработку новых компьютеров и дать возможность пользователям подключать к ним принтеры и модемы, уже выпущенные на рынок. Однако с увеличением производительности вычислительной техники и разнообразия перефирийных устройств старые интерфейсы стали затруднять их использование и ограничивать коммуникацию. Это послужило созданию новых аппаратных портов таких, как USB-порт [8], первая спецификация которого была опубликована в январе 1996 года. Каждое USB устройство должно реализовывать USB протокол, определяющий, как устройство регистрирует и отвечает на запросы и другие события USB порта, посылает и принимает данные. Обычно эти функции выполняет микроконтроллер или интегральная схема специального назначения (application-specific integrated circuit, ASIC), входящая в состав устройства. Типичный USB контроллер включает USB приёмопередатчик, механизм последовательного интерфейса (Serial Interface Engine), буферы для USB данных, и регистры для хранения конфигурации, статуса, и усправляющей информации USB связи. Механизм последовательного интерфейса — интерфейс, берующий на себя выполнение основных функций протокола USB спецификации. ASIC может требоваться для крупномасштабных приложений, требующих высокой производительности.

image


Развитие компьютерной индустрии сделало массово доступными множество электронных устройств, поддерживающих различные аппаратные порты для их настройки и передачи информации. Помимо таких контактных подключений, как последовательный (RS-232, COM-порт) и USB-порт, появились различные варианты портов для бесконтактных подключений на основе таких технологий, как Wi-Fi, Bluetooth и пр.

Хотя рост объемов передаваемой информации привёл к появлению таких новых высокоскоростных интерфейсов, как USB, интерфейс RS-232 по-прежнему находит своё применение, что можно объяснить, например, его надёжностью и легкой программируемостью. Одновременно с быстрым развитием программируемых терминалов становятся всё более популярными электронные устройства с сенсорными экранами (например смартфоны, планшетные компьютеры и т.д.), позволяющие пользователям вводить информацию через дисплей.

image

Ссылки и сноски
[1] А.В. Ильин, В.Д. Ильин Большая российская энциклопедия.
[2] А. Петропавловский, С. Филлипов «Терминальные системы в России» Виртуальный Компьютерный Музей
[3] В. Олифер, Н. Олифер «Компьютерные Сети»
[4] А. Уолтер «Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию»
[5] «The DEC VT100 Terminal» Columbia University Computing History.
www.columbia.edu/cu/computinghistory/vt100.html
[6] А.Ю. Кузьминов «Интерфейс RS232 Связь между компьютером и микроконтроллером от DOS к Windows98/XP»
[7] J. Axelson «Serial Port Complete. Programming and Circuits for RS-232 and RS-485 Links and Networks»
[8] J. Axelson «USB Complete. Everything You Need to Develop Custom USB Perfipherals»

© Habrahabr.ru