21.7.2. ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС
С помощью описанных устройств ввода-вывода можно осуществить также последовательный поразрядный обмен данными в том случае, когда используется только один выход. Для этого нужно программным способом сдвигать передаваемое слово данных на один разряд после каждого цикла выдачи. При вводе необходимо составить слово данных путем пошагового сдвига и сложения. Известно, что последовательный ввод-вывод через универсальный интерфейс характеризуется большим объемом программы и значительным временем обмена. Поэтому целесообразно произвести последовательно-параллельное, а затем параллельно-последо-вательное преобразования с помощью специальной схемы. Основой такой схемы является регистр сдвига с параллельными входами для записи, описанный в разд. 20.4.3. Кроме того, нужно обеспечить управление этим процессом, которое необходимо для достижения требуемой скорости передачи при выводе 8 бит друг за другом.
С целью контроля синхронизации всю последовательность двоичных символов, делят на отдельные группы (циклы передачи), которые маркируют с помощью дополнительных бит сигналов «Старт» и «Стоп». Контроль может быть осуществлен с помощью проверочного бита. При этом производится проверка на четность либо на нечетность. При проверке на четность дополнительный бит имеет такое значение, чтобы число единиц в передаваемом слове, включая проверочный бит четности, всегда было четным, а при проверке на нечетность оно должно быть нечетным
Пример такой последовательности бит показан на рис. 21.26. Обычно используются следующие циклы передачи:
1) 1 бит сигнала «Старт», 8 бит данных, 1 бит четности, 1 бит сигнала «Стоп»,
2) 1 бит сигнала «Старт», 7 бит данных, 1 бит четности, 2 бита сигнала «Стоп».
Кроме того, можно заменять проверку на четность проверкой на нечетность или совсем не производить ее.
Ясно, что управление последовательным обменом данных описанным способом требует повышения аппаратурных затрат. Обычно для этой цели используются интегральные схемы, например адаптер интерфейса асинхронной передачи данных (Asynchronous Communications Interface Adapter, ACIA) типа МС 6850, блок-схема
Рис. 21.26. Пример реализации циклической передачи.
Звездочкой отмечен наиболее ранннй момент возможного появления следующего сигнала «Старт».
Рис. 21.27. Внутренняя структура адаптера интерфейса асинхронной передачи данных типа
которого приведена на рис. 21.27. Он содержит четыре регистра, которые выбираются с помощью адреса входа RS и путем переключения сигнала «запись-считывание» следующим образом:
(см. скан)
Такое распределение регистров возможно потому, что регистр приемника и регистр состояния представляют собой два регистра, работающих только в режиме считывания, а регистр передатчика и контрольный регистр только в режиме записи.
С помощью 8-разрядного контрольного регистра можно выбрать цикл передачи и условия четности. Дополнительно можно определить, при каком условии должно осуществляться прерывание. Кроме того, можно программировать частотное разделение для
-разрядных циклов
). Если задать
то при приеме производится автоматическая синхронизация по сигналу «Старт».
После включения напряжения питания необходимо привести адаптер интерфейса в состояние готовности с помощью команды сброса. Так как выводов для аппаратного сброса нет, то эта операция реализуется программно путем записи в контрольный регистр определенной двоичной комбинации.
Если требуется выдать слово данных, то прежде всего опрашивается разряд 1 регистра состояния. Он содержит единицу,
если предыдущее слово данных передано полностью, т. е. если регистр передачи пуст. Если это условие выполняется, то в регистр передачи записывается следующее слово данных. После этого он самостоятельно осуществляет вывод из адаптера интерфейса.
Если ЭВМ ожидает ввода, то опрашивается разряд
регистра состояния. Он содержит единицу, если регистр приема заполнен, т. е. если слово данных принято полностью. При выполнении этих условий с помощью соответствующей индикации в контрольном регистре можно осуществить прерывание.
Из следующих битов состояния можно определить, выполнено ли условие четности, или произошла потеря информации при перезаписи регистра приема, связанная с тем, что ЭВМ несвоевременно вызвала предыдущее слово.
Код ASCII
Наиболее важно применение последовательного способа передачи данных при работе с телетайпом и дисплеем. Для этой цели разработан специальный 7-разрядный код, обозначаемый как ISO или ASCII (American Standart Code for Information Interchange). Ниже приведена табл. 21.15 соответствия отдельных символов комбинациям бит.
При последовательной передаче этих символов сначала передается разряд 0, а в разряде 7 добавляется бит проверки на четность. Если в адаптере интерфейса асинхронной передачи данных установлен цикл «7 бит
проверка на четность», то старший бит при приеме опрашивается только в связи с проверкой на четность, а на шине данных записывается в виде нуля. В связи с этим независимо от наличия проверки на четность для символов отведено 8-разрядное слово. Сокращенная двухразрядная шестнадцатеричная форма записи представлена в табл 21.15.
Известно, что цифры
согласно этой форме записи, соответствуют шестнадцатеричным числам
Таким образом, двоичные числа, соответствующие цифрам кода
легко определить путем вычитания числа 3016.
Два первых столбца в табл. 21.15 содержат специальные команды обращения к телетайпу. Наиболее важные из них
Таблица 21.15 (см. скан) Код ASCII
могут быть заданы с помощью специальных клавиш, например
(см. скан)
Остальные команды набираются клавишей
с указанием соответствующих знаков, расположенных в столбцах 4 и 5. Так, например, символ
задается путем нажатия клавиш
и
Следующий наиболее важный знак задает клавиша пробела
Использование адаптера интерфейса асинхронной передачи данных иллюстрирует пример программы, представленный на рис. 21.28. С помощью программы
произведем основной сброс и установим цикл передачи. При этом контрольное слово
указывает следующее:
(см. скан)
кроме того, деление частоты на 16 необходимо для получения частоты цикла и обеспечения отключения запроса прерывания. В качестве базового адреса для адаптера интерфейса асинхронной передачи принят адрес
Программа ввода
начинается с цикла ожидания, в котором с помощью разряда О в регистре состояния контролируется, принимает ли адаптер интерфейса асинхронной передачи данных символ кода ASCII. Когда это условие выполняется, содержимое регистра приема загружается в аккумулятор А.
Программа вывода
тоже начинается с цикла ожидания, в котором определяется, полностью ли переданы предыдущие символы. Когда это условие выполняется, содержимое аккумулятора А загружается в регистр передач.
Передача сигналов телетайпа
Установлена специальная норма уровня на линиях передачи сигналов к телетайпу. Различают токовый интерфейс
и потенциальный интерфейс. Для токового интерфейса единице соответствует прерванный контур тока, а нулю - ток не менее
Для потенциального интерфейса (рекомендация
стандарт
стандарт
высокий уровень соответствует напряжению от
до
, низкий - от
до — 25 В. Данные передаются в соответствии с отрицательной логикой, управляющие сигналы - в соответствии с положительной логикой. При передаче символа
кода ASCII
Рис. 21 28 Пример программирования адаптера интерфейса асинхронной передачи данных.
Рис. 21.29 Передача символов кода ASCII согласно стандарту V.24 со скоростью 110 бод. Звездочкой отмечен наиболее ранний момент возможного появления следующего сигнала «Старт».
Рис. 21.30. (см. скан) Подключение адаптера интерфейса асинхронной передачи данных к микро-ЭВМ и интерфейсу V.24. Цифры на выводах V.24 указывают номера выводов на 25-выводном разъеме.
получается временная диаграмма, показанная на рис. 21.29.
Уровни обеих полярностей в ТТЛ-схемах не могут быть созданы. Поэтому необходим специальный преобразователь уровней. Он представляет собой интегральную схему фирмы Motorola, обеспечивающую, например, подключение
Соединение интерфейса V.24 с микро-ЭВМ и адаптером ACIA показано на рис. 21.30. Разрядность цикла можно довольно просто задавать с помощью генератора скорости передачи типа 4702 (Fiarchild, Harris). Он работает с кварцем на частоте 24576 МГц. Кроме того, с помощью четырех переключателей можно установить следующие общепринятые скорости передачи (1 бит/с = 1 бод):
Линии управления CTS, DCD и RTS служат для организации обмена данными с внешними устройствами. Вывод RTS (Reqest-to-Send) является выходом, который с помощью одного разряда в контрольном слове может быть установлен в единицу или нуль. Его можно использовать, например, для того, чтобы запустить или остановить устройство считывания с перфоленты или перфоратор. Два входа CTS (Clear-to-Send) и DCD (Data Carrier Detected) принимают сигналы подтверждения приема или выдачи данных, Если сигнал на входе CTS равен нулю, то адаптер интерфейса асинхронной передачи не выдает данных; если DCD равен нулю, то адаптер не считывает.
Обозначение DCD относится к передаче данных посредством частотной модуляции в области звуковых частот при помощи модема (модулятор-демодулятор). Если модем сообщает по линии DCD, что есть несущая частота, то это означает для ЭВМ, что поступили данные. В таком режиме можно использовать линию и в других устройствах. Если сигнал подтверждения не должен использоваться, то необходимо установить сигналы на входах CTS и DCD в неизменное состояние, равное единице; при этом адаптер интерфейса асинхронной передачи данных не будет блокирован.
Если ЭВМ связана с одним дисплеем данных, то необходимо обеспечить стандартные уровни ЭВМ как блока управления, а дисплея - как блока передачи. Часто дисплеи данных имеют устройство сопряжения стандарта V.24 для обеспечения работы модема, т.е. дисплей работает самостоятельно как блок управления. При этом устройство сопряжения ЭВМ нельзя непосредственно соединять с соответствующим дисплеем, так как это привело бы к недопустимому подключению входа к входу, а выхода к выходу. При потере сигнала подтверждения возможен обмен данными благодаря тому, что ко входам подтверждения постоянно приложена единица и обе линии данных соединены, согласно рис. 21.31, со скрещиванием. Свободный вывод адаптера RTS можно использовать для контроля считывания. Этот сигнал необходим телетайпу при подключении и отключении устройства считывания с перфоленты.
Указанными на рис. 21.31 номерами обозначены выводы разъема в соответствии со стандартом V.25; направление стрелок показывает, что оба устройства в отличие от стандарта преобразованы в управляющие блоки. Логическая единица на линиях управления задается напряжением в пределах от +3 до +25 В. Этот уровень имеется в разъеме на выводе 20.
Рис. 21.31. Соединение ЭВМ с терминалом, который имеет вывод на модем.