Чтение онлайн

на главную

Жанры

Искусство схемотехники. Том 2 (Изд.4-е)
Шрифт:

Помимо отмеченных выше, к важным символам можно отнести: NUL (ноль), символ, состоящий из одних двоичных нулей, и используемый иногда для разделения символьных строк; FF (Form Feed — перевод страницы), которым начинается новая страница; EXT (End of Text — конец текста, нежно называемый «control С»), который воспринимается многими операционными системами, как команда завершения текущей программы; DC3 (control S), используемый в качестве «мягкого рукопожатия» для приостановки последовательной передачи; DC1 (control Q), символ, возобновляющий передачу. К сожалению, в таблице кодов ASCII отсутствуют индексы, показатели степени, а также греческие буквы и научные знаки. Было бы полезно иметь по меньшей мере знаки , , и символ градусов (°), которые часто встречаются в технических текстах. Разумеется, с помощью управляющих символов (или их последовательности) можно указать на необходимость смены шрифта

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

Заметьте, что компьютерные клавиатуры часто конструируются так, что они не являются просто генераторами кодов ASCII (одна клавиша - один код); общепринятой методикой является генерация каждой клавишей некоторых определенных кодов при нажатии и отпускании. Специальное системное программное обеспечение («драйвер клавиатуры», см. разд. 10.18) транслирует затем эти коды в обычные коды ASCII. Такой подход существенно повышает гибкость процедуры ввода с клавиатуры, так как возникает возможность настройки драйвера клавиатуры с целью отработки автоповтора клавиш или многоклавишных комбинаций, переотображения всей клавиатуры (например, в клавиатуру Дворака) и организации «горячих клавиш» и т. д.

Бит-последовательная передача. Код ASCII (или любой другой алфавитно-цифровой код) может быть передан либо группой из 8 параллельных бит (по 8 отдельным проводам), либо последовательностью из 8 бит, один за другим. Для организации передачи со скоростями от низкой до средней более удобной является экономичная в смысле используемых проводов последовательная связь. Модем (подробнее о модемах см. ниже) преобразует последовательность бит в звуковой сигнал и наоборот (например, используя одну звуковую частоту для «1» и другую для «0»), который затем может быть послан в телефонную линию; здесь так же, естественно, используется последовательная передача. При этом используется стандартный протокол и стандартные скорости передачи. При асинхронной передаче к концам каждого 8-бит символа присоединяются старт-бит и стоп-бит (иногда два), образуя группу («кадр») из 10 бит. Передатчик и приемник используют фиксированную скорость из допустимого набора; наиболее популярны скорости передачи 300, 1200, 2400, 4800, 9600 и 19200 бод (= тактов в секунду). На рис. 10.16 приведен формат кадра последовательной передачи.

Рис. 10.16. Формат кадра при последовательной передаче данных (интерфейс RS-232).

Когда передача данных отсутствует, передатчик находится в состоянии «маркера» (терминология осталась еще от времен телетайпов). Каждый символ начинается со старт-бита, за которым следуют 8 бит кода ASCII, младшим битом вперед (обычно в эти 8 бит входят 7 бит данных плюс 1 необязательный бит контроля четности) и, наконец, стоп-бит; последний должен поддерживаться по меньшей мере один такт, но может длиться сколько угодно. На приемной стороне УАПП (универсальный асинхронный приемо-передатчик, см. разд. 11.11), работая с той же частотой, синхронизируется к каждой 10-бит группе и преобразует входную последовательность в 8-бит параллельные группы данных. Поскольку приемник заново синхронизируется к старт- и стоп-битам каждого символа, ему не требуется очень высокая точность тактовых сигналов; равенство и стабильность частот передатчика и приемника должны обеспечивать рассогласование не более доли длительности одного бита на длине кадра, т. е. не более нескольких процентов.

Приемный УАПП запускается фронтом старт-бита, выжидает половину длительности бита чтобы удостовериться, что старт-бит еще присутствует, а затем фиксирует значение данных в середине каждого бита. Стоп-бит завершает каждый символ и одновременно выполняет роль промежутка между кадрами, если следующий символ не посылается немедленно за предыдущим. Приемный УАПП проверяет наличие уровня стоп-бита через 10,5 длительностей бит после фронта старт-бита, что помогает удостоверить правильность посылки символа. «Разрыв» (break) представляет собой длительный пробел, который не может возникнуть в ходе нормальной передачи символов. На рынке имеются программируемые тактовые генераторы (т. е. программируемые делители частоты), которые преобразуют входную частоту от генератора в стандартный набор тактовых частот, определяющих скорость передачи, причем конкретный коэффициент деления определяется входным двоичным кодом. Большинство современных УАПП (например, двухканальная синхронно-асинхронная микросхема 8530 фирмы Zilog) включает внутренние программно-управляемые генераторы скорости передачи.

RS-232. Сами сигналы при последовательной передаче ASCII-кодов могут посылаться различными способами. Самый первый из них, предложенный еще несколько десятков лет назад, состоит в переключении, с выбранной скоростью передачи, тока величиной 20 (или иногда 60) мА. Это так называемая «токовая петля». Иногда этот способ реализуется, как альтернативный вариант, но для умеренных скоростей передачи он был вытеснен стандартом ассоциации электронной промышленности (EIA) RS-232C 1969 г. (и последующим стандартом RS-232D 1986 г.), в которых передача осуществляется биполярным напряжением. Стандарт RS-232 определяет характеристики и драйверов, и приемников. Драйвер должен создавать уровни напряжения от +5 до +15 В (логический вход низкого уровня) и от — 5 до —15 В (логический вход высокого уровня) на нагрузке от 3 до 7 кОм с крутизной перепада менее 30 В/мкс и способностью противостоять замыканию на любой другой выход даже со столь неблагоприятными характеристиками, как 5 В при 500 мА; приемник должен представлять нагрузочное сопротивление от 3 до 7 кОм, преобразующее входное напряжение от +3 до +25 В в низкий логический уровень, а входное напряжение от —3 до —25 В в высокий логический уровень. Заметьте, что логическая 1 преобразуется драйвером RS-232 в отрицательный уровень, называемый «маркером»; логический 0 представляет собой положительный уровень («пробел»). При передаче с помощью токовой петли ток течет в течение логической 1 (маркер) и прекращается на время действия логического 0 (пробел).

Для приемников RS-232 характерно наличие гистерезиса входного напряжения; некоторые приемники позволяют подключать конденсатор с целью увеличения постоянной времени и уменьшения чувствительности к шумовым импульсам. Стандартные микросхемы приемника и драйвера RS-232 описаны в разд. 9.14 и 14.17. При расстояниях 10–20 м интерфейс RS-232 обеспечивает высокое качество передачи на скоростях вплоть до 38400 бод даже при использовании неэкранированного многожильного кабеля; связь на короткие расстояния иногда осуществляют со скоростью 115200 бод.

Стандарт RS-232 определяет также тип разъема и назначение его контактов. К сожалению, это описание не полно! Это вечный источник неприятностей, потому что, вообще говоря, два устройства с интерфейсами RS-232, соединенные друг с другом, работать не будут. Это настолько неожиданно и неприятно, что читатели предыдущего издания этой книги даже обвинили нас, потому что мы не написали в книге, как бороться с этой несовместимостью. К счастью для вас, вы читаете второе издание. Разгадка состоит в следующем.

В этой истории с последовательным интерфейсом имеется два источника неприятностей: (а) Определены два типа устройств, причем входные контакты устройств одного типа соответствуют выходным контактам другого; вам может понадобиться связать между собой два устройства одного типа или два взаимно дополняющих устройства; (б) Имеется пять сигналов квитирования; одни устройства генерируют эти сигналы и ожидают их приема, другие же игнорируют соответствующие входы (и ничего не подают на выходы). Чтобы все у вас работало, в этих деталях придется разобраться. Приступим.

Интерфейс RS-232 был разработан для связи DTE (Data Terminal Equipment — оконечное оборудование данных, ООД) с DCE (Data Communication Equipment — аппаратура передачи данных, АПД). Терминал всегда выглядит, как DTE, а модем всегда выглядит, как DCE; однако другие устройства, включая микрокомпьютеры, могут быть и тем, и другим. Компьютер IBM PC выглядит как DTE и укомплектован вилочной частью разъема, но большинство больших компьютеров имеют выход типа DCE. Подключая DTE к DCE, вы просто соединяете одноименные контакты разъемов DB-25 (которые могут быть как вилочными, так и розеточными!), и, если вам повезет, все будет работать. Мы говорим «если повезет», потому что результат все еще зависит от того, какие квитирующие сигналы одно устройство ожидает от второго, и устанавливает само. (Само собой разумеется, что решив проблему с кабелем, вы еще должны выбрать скорость передачи, четность и некоторые другие программные параметры!) С другой стороны, связывая два одинаковых устройства, вы не можете соединить одноименные контакты, потому что тем самым вы соедините вместе два выхода: DTE передает через контакт 2 и принимает через контакт 3, a DCE делает как раз наоборот. Поэтому такую пару устройств следует соединять кабелем (так называемым «нуль-модемом»), в котором контакты 2 и 3 соединяются друг с другом крест-накрест. К сожалению, это еще не все

Поделиться:
Популярные книги

Смертник из рода Валевских. Книга 1

Маханенко Василий Михайлович
1. Смертник из рода Валевских
Фантастика:
фэнтези
рпг
аниме
5.40
рейтинг книги
Смертник из рода Валевских. Книга 1

Я еще не князь. Книга XIV

Дрейк Сириус
14. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще не князь. Книга XIV

Восход. Солнцев. Книга VI

Скабер Артемий
6. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга VI

Без шансов

Семенов Павел
2. Пробуждение Системы
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Без шансов

Гром над Империей. Часть 2

Машуков Тимур
6. Гром над миром
Фантастика:
фэнтези
попаданцы
5.25
рейтинг книги
Гром над Империей. Часть 2

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Я все еще граф. Книга IX

Дрейк Сириус
9. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я все еще граф. Книга IX

Камень. Книга восьмая

Минин Станислав
8. Камень
Фантастика:
фэнтези
боевая фантастика
7.00
рейтинг книги
Камень. Книга восьмая

Царь поневоле. Том 1

Распопов Дмитрий Викторович
4. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Царь поневоле. Том 1

Старатель 3

Лей Влад
3. Старатели
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Старатель 3

Хуррит

Рави Ивар
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Хуррит

Обыкновенные ведьмы средней полосы

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Обыкновенные ведьмы средней полосы

Пенсия для морского дьявола

Чиркунов Игорь
1. Первый в касте бездны
Фантастика:
попаданцы
5.29
рейтинг книги
Пенсия для морского дьявола

Не ангел хранитель

Рам Янка
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Не ангел хранитель