Сделай Сам Свою Работу на 5

Последовательный интерфейс и универсальный асинхронный приемопередатчик





Параллельный интерфейс

 

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

На рис. 12.6 представлена схема обеспечения параллельного 8-битового ввода-выво­да данных. Рассматриваемые аппаратные средства предназначены для ввода и вывода одного 8-битового слова данных. Неко­торые элементы, входящие в данную схему, нам уже встречались при рассмотрении в гл. 11 платы памяти. Такими элементами являются буферы адресной шины микро­процессора и дешифратор адреса.

Шина данных микропроцессора является двунаправленной; в соответствии с этим
осуществляется ее буферирование. В рас­сматриваемой схеме представлен един­ственный 8-разрядный буфер. Этот буфер стробируется сигналом «Чтение устройства
ввода-вывода». В качестве стробирующего сигнала используется также сигнал «Запись в устройство ввода-вывода». Линии, по ко­торым подаются указанные сигналы, анало­гичны линиям ввода-вывода в схеме упра­вления памятью, однако данные линии
используются для подачи сигналов только во время выполнения операций ввода-выво­да.



Сигнал «Чтение устройства ввода-выво­да» поступает, когда микропроцессор готов
к подаче на шину данных микропроцессора данных из адресованного порта ввода-выво­да. Сигнал «Чтение устройства ввода-выво­да» поступает также на шинный формирователь. Линия подачи сигнала «Запись в устройство ввода-вывода» находится в ак­тивном состоянии, когда микропроцессор готов к записи данных в адресованный порт.
Кроме того, последний сигнал подается в качестве стробирующего сигнала в буфер выходных данных.

 

 

Рис. 12.6. Интерфейсное устройство параллельного ввода-вывода, обеспечивающее обмен 8-би­товыми словами данных между микропроцессором и шиной данных.



 

В рассматриваемой схеме обеспечения ввода-вывода данных имеется регистр состояния, с помощью которого микропро­цессор проверяет состояние порта ввода-вы­вода. Обычно регистр состояния, входной и выходной регистры имеют подряд идущие адреса портов ввода-вывода. Например, ре­гистр состояния может адресоваться как порт ввода-вывода с адресом 00, входной регистр - как порт ввода-вывода с адресом 01, а выходной регистр - как порт ввода-вы­вода с адресом 02.

Регистр состояния имеет только два раз­ряда. Нулевой разряд регистра состояния устанавливается в состояние логической 1 путем подачи сигнала «Входные данные готовы». Вместе с тем производится преры­вание микропроцессора. Ниже мы рассмо­трим, что происходит, когда микропроцес­сор воспринимает сигнал прерывания. А сейчас просто будем иметь в виду, что по­сле наступления прерывания микропроцес­сор должен выполнить программу обработ­ки прерывания, соответствующую устрой­ству, вызвавшему прерывание. Так как по сигналу «Входные данные готовы» устана­вливается в 1 нулевой разряд регистра со­стояния, микропроцессору доступна инфор­мация о состоянии порта ввода-вывода. Установка нулевого разряда регистра со­стояния в 1 является для микропроцессора признаком того, что на восемь входных ли­ний поданы входные данные. Теперь микро­процессор может воспользоваться коман­дой IN для передачи данных, находящихся на входных линиях, в аккумулятор.

Команда OUT микропроцессора служит для вывода данных. Данные, подаваемые микропроцессором на шину данных, поме­щаются в 8-разрядный буфер данных. Вме­сте с тем устанавливается в 1 первый разряд регистра состояния. Такому значению ука­занного разряда регистра состояния со­ответствует рабочее состояние линии «Вы­ходные данные готовы». Тем самым внеш­нее устройство информируется о том, что новые данные готовы к выводу. Этот разряд состояния сбрасывается внешним устрой­ством, которое подает сигнал «Данные приняты». Если микропроцессору необходи­мо узнать, имеются ли данные, подлежащие выводу, он может ввести слово состояния порта ввода-вывода и проанализировать первый разряд этого слова.



Пара рассмотренных сигналов позволяет микропроцессору и внешнему устройству проверить готовность данных к передаче; таким образом устраняется возможность потери данных и обеспечивается их коррект­ная передача.

Схемы, подобные рассмотренной схеме обеспечения ввода-вывода, могут разрабатываться с использованием обычных ми­кросхем, однако для этой цели могут быть использованы и специально созданные большие интегральные схемы.

Обычно несколько параллельных портов ввода-вывода может размещаться на кристалле самого микропроцессора или на кри­сталлах, реализующих другие функции микропроцессорной системы. Такой подход к размещению портов ввода-вывода приводит к созданию микропроцессорных систем с небольшим количеством кристаллов. На­пример, обычным решением является раз­мещение двух или большего числа портов ввода-вывода в большой интегральной схе­ме, реализующей ПЗУ с масочным программированием. Такой модуль может исполь­зоваться совместно с кристаллом микропроцессора и кристаллом ОЗУ. Используя элементы трех указанных типов, можно по­строить микропроцессорную систему, включающую в себя некоторое количество портов ввода-вывода и большее количество модулей ПЗУ и ОЗУ, чем у микро-ЭВМ, реализованных на одном кристалле.

Для выполнения операций ввода-вывода мы использовали следующие две команды:

 

 

Обе команды 2-байтовые, каждая выпол­няется за пять циклов. Существенно то, что передача данных при выполнении операции ввода-вывода связана с временными затратами. Если требуется передать большой объем данных, то необходимое для этого время может оказаться довольно большой величиной, для уменьшения которой сле­дует решить серьезную техническую задачу. В настоящей книге мы пока рассматрива­ли такой способ организации выполнения операций ввода-вывода, когда в командах для ссылки на устройства ввода-вывода ис­пользовались специальные адреса. При этом обмен данными между микропроцес­сором и внешними устройствами не имеет ничего общего с обменом данными между микропроцессором и памятью. Однако в не­которых микропроцессорах обращение к устройствам ввода-вывода организовано аналогично обращению к памяти. Устрой­ства ввода-вывода ставят в соответствие слова памяти и определенные адреса. Устройства подключаются к адресной шине памяти, а для управления обменом данны­ми между ними и микропроцессором ис­пользуются сигналы «Чтение из памяти» и «Запись в память». При организации обра­щения к устройствам ввода-вывода по ана­логии с обращением к памяти не требуется использовать специальных команд ввода-вывода. Недостатком такого способа памя­ти является то, что часть адресного про­странства памяти используется для адреса­ции устройств ввода-вывода; размер этой части определяется количеством исполь­зуемых в системе устройств ввода-вывода. Конечно, такой недостаток остро про­является в системах, имеющих много устройств ввода-вывода, или когда в систе­ме почти вся память использована для дру­гих целей. Обычно в микропроцессорных системах используется 5-10 портов ввода-вывода, и поэтому указанного затруднения, как правило, не возникает.

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

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

Однако способ ввода-вывода, организо­ванный по аналогии с обращением к памя­ти, можно использовать и в микропроцессо­рах, располагающих специальными коман­дами ввода-вывода. Наличие команд ввода-вывода не является препятствием для использования рассматриваемого здесь спо­соба организации ввода-вывода. Итак, спо­соб управления вводом-выводом, организо­ванный по аналогии с обращением к памяти, можно использовать при созда­нии микропроцессорных систем, поскольку последние при этом становятся менее сложными.

Был разработан определенный стандарт на организацию параллельной передачи данных между электронными контрольно-измерительными приборами и микропроцессором. На основании этого стандарта была создана шина IEEE-488. Принципы по­строения этой шины разработаны фирмой Hewlett-Packard. Указанный стандарт полу­чил широкое распространение как в США, так и в Западной Европе. Несколько фирм-изготовителей микропроцессоров стали производить специальные БИС, предназна­ченные для сопряжения разрабатываемых ими микропроцессоров и стандартной шины IEEE-488.

К шине IEEE-488 могут подсоединяться различные устройства: контроллеры; устройства отображения информации; устройства, которые во время своего функционирования как получают, так и выдают информацию. Каждому устройству присваивается адрес. На рис. 12.7 изображена функциональная схема простой системы, в которой для связи между микропроцессо­ром и другими устройствами используется стандартная шина IEEE-488. В этой системе микропроцессор служит контроллером. Он определяет диапазоны измерений и функ­ции, которые должен выполнить вольтметр. Кроме того, микропроцессор указывает, когда вольтметр должен подать данные на шину. Как печатающее устройство, так и микропроцессор принимают данные. До­полнительно к необработанным результа­там измерений, поступающим на печатающее устройство, микропроцессор подает на шину соответствующие вычисленные им па­раметры. Эти параметры также выдаются на печать.

Скорость передачи данных по шине IEEE-488 может превышать 1 Мбайт/с. Фак­тическая скорость передачи данных по шине ограничивается быстродействием уст­ройств, подключаемых к шине.

 

Рис. 12.7. Система, вкоторой используется шина данных IEEE-488.

 

 

Последовательный интерфейс и универсальный асинхронный приемопередатчик

Как отмечалось выше, многие устройства связаны с микропроцессором посредством линий последовательной передачи данных. Широкое применение способа последова­тельной передачи данных объясняется главным образом ограничениями, присущи­ми способу параллельной передачи данных. Рабочее расстояние для линии параллельно­го ввода-вывода ограничивается 1 - 2 м. При увеличении длины кабеля возрастает его ем­кость, поэтому становится невозможной передача данных на высокой скорости. Дли­ну линий параллельной передачи данных можно увеличить до 10-20 м путем исполь­зования специальных формирователей и пу­тем уменьшения скорости передачи. Однако дальнейшее увеличение длины линий при параллельной передаче данных практически невозможно.

При последовательной передаче данных жестких ограничений на длину линии не накладывается. Но, прежде чем начать после­довательную передачу данных, необходимо выполнить преобразование данных из па­раллельной формы в последовательную. После преобразования в последовательную форму данные передаются по частным арен­дуемым линиям или по телефонной сети.

Рис. 12.8. Передача данных по линии последовательной передачи данных.

 

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

Чтобы принять данные в последователь­ной форме и преобразовать их в параллельную форму, необходимо выполнить дей­ствия, обратные по отношению к описанным выше. Данные, поступающие в последовательной форме, вводятся бит за битом в сдвиговый регистр. После заполне­ния сдвигового регистра данные из него в параллельной форме передаются в микро­процессорную систему.

Устройство, обеспечивающее преобразо­вание данных из параллельной формы в последовательную и обратное преобразова­ние, называют универсальным асинхронным приемопередатчиком (УАПП). Такое устройство реализуется в виде БИС. Кроме преобразования формы представления данных приемопередатчик выполняет важные функции контроля и управления.

Приемопередатчик добавляет к каждому передаваемому слову данных 2 бит-стартовый бит и стоп-бит. Поэтому вместо передачи 8-битового слова данных фактически требуется передать 10 бит данных. До­полнительные биты используются принимающим приемопередатчиком для устано­вления границ-начала и конца - передаваемого слова данных. На рис. 12.9 изображе­но 8-битовое слово данных и показаны дополнительные стартовый и стоп-биты. Стартовый бит всегда имеет значение логического 0, стоп-бит-логической 1.

Скорость передачи данных описанным способом принято измерять в бодах. Один бод равен одному биту в секунду, и поэтому скорость в бодах выражает, сколько бит в секунду может быть передано по соответ­ствующему каналу передачи данных. На­пример, скорость передачи 1200 бод озна­чает, что за одну секунду будет передано 120 10-битовых символов: стартовый бит, 8 бит данных и стоп-бит. В табл. 12.1 предста­влены обычно используемые скорости по­следовательной передачи сигналов. Следует знать, как скорость передачи, выраженная

 

 

Рис. 12.9. Восьмибитовое слово данных с одним стартовым битом и одним стоп-битом.

 

Таблица 12.1. Наиболее часто используе­мые скорости последовательной передачи данных

 

Скорость передачи, бод Число байтов, передаваемых за 1 с

 

в бодах, связана со скоростью передачи слов данных при последовательной передаче.

При передаче сигналов со скоростью 110 бод используется особый формат передаваемых данных: здесь имеется один стар­товый бит и два стоп-бита. Соответствующее слово данных будет иметь длину 11 бит. На рис. 12.10 представлен формат 11-бито­вого слова данных, используемый в систе­мах передачи данных, работающих со скоростью 110 бод. Такая скорость передачи сигналов используется в механических стартстопных телеграфных аппаратах. В от­личие от указанных телеграфных аппаратов видеотерминалы могут работать со скоро­стями, достигающими 9600 бод. В неко­торых системах используется 1,5-битовый сигнал окончания, который может генери­роваться определенными УАПП.

Обычно для работы асинхронного при­емопередатчика требуется последователь­ность тактовых импульсов, период следова­ния которых в 16 раз меньше времени передачи 1 бит данных. Например, для ра­боты приемопередатчика со скоростью 1200 бод необходима последовательность так­товых импульсов, частота следования ко­торых равна 19,2 кГц. Тактовые импульсы используются для синхронизации входного сигнала и для генерирования выходного сигнала.

Рис. 12.10. Одиннадцати битовое слово данных, обычно используемое при скорости передачи данных 110 бод.

 

При проектировании большинства совре­менных УАПП предполагается, что они будут подключаться к портам параллельного ввода-вывода микропроцессора. Однако некоторые приемопередатчики можно подсое­динять непосредственно к шине микропроцессора. В УАПП имеется регистр состоя­ния, в котором специальный бит устанавли­вается в определенное состояние, когда приемопередатчик примет слово данных, и устанавливается в другое состояние по за­вершении передачи слова данных. Передача последовательного сигнала с использова­нием УАПП требует хранения битов состоя­ния в регистре состояния приемопередатчи­ка. Напомним, что синхронизация приемо­передатчика полностью не зависит от синхронизации микропроцессора. Следова­тельно, после того как микропроцессор по­местил передаваемое слово данных в ре­гистр передатчика, он не может знать, когда ему удастся загрузить в регистр передатчи­ка следующее слово данных. Микропроцес­сор должен ждать до тех пор, пока приемопередатчик не установит определенное зна­чение бита состояния; анализ бита состоя­ния позволяет микропроцессору определить готовность приемопередатчика к загрузке в него нового слова.

В некоторых УАПП предусмотрены раз­ряды регистра состояния, которые позво­ляют выполнять программное управление скоростью работы приемопередатчика.

Для связи человека с ЭВМ широко ис­пользуются терминалы; для обеспечения передачи данных между терминалом и ЭВМ часто применяются асинхронные приемопередатчики. Для человека взаимодействие с ЭВМ предпочтительно осуществлять с по­мощью буквенно-цифровых символов. С этой целью используется специальный код, называемый Стандартным американским кодом для обмена информацией (American Standard Code for Information Interchange, или сокращенно ASCII). В коде ASCII для кодирования каждого символа используется 7 бит. Поскольку 27 = 128, с помощью данного кода можно закодиро­вать 128 различных символов.

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

При передаче 8-битовых кодов восьмой бит может либо иметь постоянное значение (логический 0 или логическая 1), либо значе­ние, позволяющее обнаруживать некоторые ошибки при передаче символов. Если ис­пользуется код с обнаружением ошибок, то восьмой бит называют контрольным битом четности. Большинство УАПП осущест­вляют формирование и проверку бита чет­ности. Иногда вместо бита четности исполь­зуют бит нечетности. Если при передаче данных применяется контроль на четность, то восьмому биту придается значение логи­ческого 0 или 1 так, чтобы в передаваемом 8-битовом слове данных было четное коли­чество единиц. Если же применяется кон­троль на нечетность, то значение восьмого бита должно быть таким, чтобы общее ко­личество единиц в 8-битовом слове было не­четным. В кодах, представленных в табл. 12.2, восьмой бит равен 0.

Для обнаружения ошибок при передаче данных может использоваться как контроль на четность, так и контроль на нечетность. После приема слова данных приемопере­датчик проверяет в нем контрольный бит. Если обнаруживается нарушение четности (нечетности), то приемопередатчик записы­вает в регистр состояния признак ошибки. Затем УАПП может выдать запрос на по­вторную передачу данных. Проверкой на четность удается выявить 50% возможных ошибок. Очевидно, будет обнаруживаться только нечетное число ошибочных битов. Если ошибка возникнет сразу в двух битах, то обнаружить ее контролем на четность не удастся.

На рис. 12.11 показано, как при последо­вательной передаче данных вследствие шумов может возникнуть ошибка, которую можно выявить контролем на четность. Шумы изменили четвертый бит таким обра­зом, что вместо значения логической 1 он принял значение логического 0; сообщение, при передаче которого произошло такое ис­кажение, будет содержать ошибку.

Кроме того, универсальный асинхронный приемопередатчик может обнаруживать ошибки синхронизации (кадрирования). Ошибки кадрирования происходят, когда приемопередатчик не идентифицирует стар­товый бит. Приемопередатчик не в состоя­нии принимать слова данных, не снаб­женные размещенными надлежащим обра­зом начальным и конечным битами.

Рис. 12.11. Пример последовательной передачи данных с ошибкой в четвертом бите, обнаруженной при контроле на четность.

 

На рис. 12.12 показано принимаемое сло­во, в котором содержится ошибка кадрирования. Как можно видеть, принимаемое сло­во данных не выровнено на границы сдвигового регистра приемопередатчика. Шумы, действующие на линию передачи, являются наиболее распространенной при­чиной возникновения ошибки кадрирова­ния.

На рис. 12.13 представлена структурная схема простого универсального асинхронного приемопередатчика. Очевидно, в схеме приемопередатчика можно выделить четы­ре основные части: приемную, передаю­щую, регистр состояния и блок управления.

 

Передающая часть состоит из выходного буфера и регистра передатчика. Этот регистр является сдвиговым регистром; на его выходе последовательно появляются: стар­товый бит, биты данных DO-D7 и стоп-биты. Подлежащее передаче 8-битовое сло­во данных загружается в выходной буфер по заднему фронту сигнала стробирования входных данных. По переднему фронту это­го сигнала начинается последовательная, передача данных, т. е. по переднему фронту начинается процесс сдвига содержимого ре­гистра. Рассмотренные действия поясняет рис. 12.14. С выхода сдвигового регистра данные поступают на линию, предназначенную для последовательной передачи данных.

Рис. 12.11 Пример передачи данных при нали­чии ошибки кадрирования.

 

Рис. 12.13. Структурная схема универсального асинхронного приемопередатчика.

 

Приемник является почти «зеркальным отражением» передатчика. Сначала данные последовательно вводятся в регистр прием­ника. При этом регистр приемника, обнару­жив стартовый бит, выполняет 10 или 11 сдвигов своего содержимого. После того как регистр приемника выполнит все сдвиги, 8-битовое слово данных может быть переда­но в выходной буфер приемника. Эта пере­дача данных осуществляется при поступле­нии сигнала разрешения вывода данных.

 

Рис. 12.14. Сигнал стробирования входных данных.

 

Как сдвиговый регистр передатчика, так и сдвиговый регистр приемника управляют­ся тактовыми импульсами, период следова­ния которых в 16 раз меньше времени пере­дачи одного бита данных. При выбираемом таким образом периоде следования так­товых импульсов гарантируется, что время сдвига не превысит одной тридцать второй части от времени передачи 1 бит данных. Указанная степень синхронизации сохра­няется, даже если последовательность так­товых импульсов, определяющая скорость передачи данных по линии, и входные данные являются асинхронными.

Как показано на рис. 12.13, регистр со­стояния приемопередатчика имеет два вы­хода. Во-первых, пять его разрядов состоя­ния связаны с отдельными выводами БИС. Во-вторых, все слово состояния может быть загружено в выходной буфер прием­ника.

Эта загрузка выполняется при подаче сиг­нала «Строб вывода слова состояния». Регистр состояния содержит следующие раз­ряды:

Наложение. Значение логической 1 в данном разряде означает, что текущее слово данных «набегает» на предыдущее слово данных. Такая ситуация возникает, когда предыдущее слово данных не было переда­но в выходной буфер приемника до начала поступления следующего слова данных.

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

Ошибка четности. Логическая 1 в данном разряде свидетельствует о том, что приемо­передатчик обнаружил ошибку, выявляе­мую контролем по четности (или нечетно­сти). Точное условие контроля устанавли­вается блоком управления, входящим в состав приемопередатчика.

Буфер передатчика пуст. Значение логиче­ской 1 в этом разряде означает, что следую­щее слово данных может быть загружено в буфер передатчика.

Данные готовы. Значение логической 1 в данном разряде означает, что в буфере приемника содержатся новые данные. Это слово данных выбирается из буфера путем подачи сигнала «Строб вывода данных».

 

Рис. 12.15. Слово состояния УАПП.

 

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

Допустим, слово состояния имеет фор­мат, представленный на рис. 12.15. Если слово данных принято без ошибок, то слово состояния равно 0000 00102 = 0216.

Итак, слово состояния можно сравнить с константой 02. При выполнении команды сравнения бит нулевого результата слова состояния микропроцессора будет устано­влен в состояние логической 1 только тогда, когда в слове состояния приемопередатчика разряд «Данные готовы» будет находиться в состоянии логической 1. Если при сравне­нии окажется, что слово состояния приемо­передатчика не равно 0216, то микропроцес­сор, выполнив специальную программу, сможет определить фактическое состояние приемопередатчика.

Теперь, обратившись еще раз к рис. 12.13, рассмотрим управляющие входы приемопередатчика, используемые для задания режи­ма его функционирования. Пара входов используется для определения количества битов (5, 6, 7 или 8) передаваемого (прини­маемого) слова данных. Управляющий вход «Нечетность/Четность» используется для установления вида контроля - по нечетности или по четности. Сигнал, подаваемый на этот вход, будет восприниматься лишь тог­да, когда линия «Контроль» находится в со­стоянии, при котором допускается выполне­ние функции контроля. Кроме того, кон­трольный бит является последним битом в передаваемом слове данных. При исполь­зовании 7-битового кода ASCII кон­трольным является восьмой бит слова данных.

Вход «Число стоп-битов» позволяет зада­вать число битов окончания слова; часто используется один стоп-бит, однако при ско­рости передачи данных, равной 110 бод, применяются два стоп-бита.

Выше мы рассмотрели УАПП, реализо­ванный в виде БИС. Такой приемопередат­чик может использоваться либо в автоном­ном режиме, либо совместно с микропро­цессором. При втором варианте использо­вания приемопередатчик подключается к порту микропроцессора.

Существуют и более сложные универ­сальные приемопередатчики, реализо­ванные также в виде БИС. Они могут непос­редственно соединяться с шиной данных и адресной шиной микропроцессора. При использовании таких приемопередатчиков нет необходимости в применении дополни­тельных схем, которые требуются для обес­печения взаимодействия микропроцессора и автономного приемопередатчика. Для обеспечения работы приемопередатчиков часто используют специальные генераторы синхроимпульсов, частота которых числен­но равна скорости передачи, выраженной в бодах, умноженной на 16. Такой спе­циальный генератор вырабатывает синх­роимпульсы, соответствующие всем стан­дартным скоростям передачи данных. Бла­годаря использованию кварцевого резона­тора генерируемые последовательности синхроимпульсов отличаются стабиль­ностью и точностью.

Как утверждалось выше, приемопередат­чик является асинхронным устройством. Это означает, что скорость передачи данных не зависит от синхронизации микропроцес­сора. Помимо этого, при асинхронном спо­собе передачи не определяются временные соотношения между сигналами, соответ­ствующими последовательно переда­ваемым словам данных. Представьте себе, например, что пользователь осуществляет ввод данных, используя для этого клавиату­ру видеотерминала. После каждого нажатия клавиши производится передача соответ­ствующего символа. Интервал времени между моментом нажатия некоторой клави­ши и моментом нажатия следующей клави­ши нельзя точно предсказать. Однако, после того как началась передача некоторого сим­вола, скорость передачи элементов кодовой комбинации, соответствующей передавае­мому символу, остается неизменной вплоть до окончания передачи всей кодовой комби­нации.

В каком же положении находится микро­процессор в связи с использованием асинхронного способа передачи символов? Ми­кропроцессор просто «не знает», когда получит следующий символ. Поэтому ему приходится анализировать содержимое ре­гистра состояния УАПП. Если разряд «Данные готовы» регистра состояния со­держит логическую 1, то микропроцессор читает слово данных из приемопередатчи­ка. Если же микропроцессор выявит в ука­занном разряде логический 0, то он дол­жен продолжать анализ слова состояния приемопередатчика до тех пор пока не об­наружит в этом разряде логическую 1.

На рис. 12.16 изображена блок-схема подпрограммы, предназначенной для выполнения описанных выше действий. Ми­кропроцессор может выполнять «цикл ожидания» сколь угодно долго. Разберем пример, в котором будем использовать команды, представленные на данном ри­сунке.

Предположим, производится передача данных со скоростью 300 бод. Для переда­чи одного символа требуется 10 бит, сле­довательно, максимальная скорость пере­дачи данных равна 30 символ/с. Если дли­тельность машинных циклов команд IN, ANI и JNZ равна 1 мкс, то суммарное вре­мя их выполнения составит 13 мкс1. (Как команда IN, так и команда JNZ выпол­няются за пять циклов; команда ANI вы­полняется за три цикла.) При скорости передачи 30 символ/с микропроцессор за время ожидания установления единичного значения разряда «Данные готовы» должен выполнить 2564 цикла ожидания. Один цикл ожидания длится 13 мкс. Если же, на­пример, после первого символа не посту­пит без задержки второй символ, микропроцессор, очевидно, должен выполнить больше чем 2564 цикла ожидания. Скорее всего, очередной символ не будет непос­редственно следовать за предыдущим, так как лишь некоторые операторы могут ра­ботать со скоростью 30 символ/с - эта ско­рость эквивалентна скорости передачи 360 слов/мин.

Обычно рассмотренную задачу решают с помощью системы прерывания процессо­ра; запрос на прерывание подается с выхо­да «Данные готовы», имеющегося в при­емопередатчике. После обработки запроса на прерывание микропроцессор выполняет команду ввода IN. Вопрос обработки пре­рываний будет рассмотрен ниже.


Рис. 12.16. Блок-схема подпрограммы управле­ния вводом данных из порта ввода-вывода.

 


1 В этом примере использована команда ANI (И непосредственное). В предыдущих примерах мы использовали команду сравнения. Любой из этих команд можно воспользоваться, так как после проверки не требуется сохранять слово состояния - оно может быть уничтожено.

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.