При асинхронной последовательной передаче данных синхронизирующий сигнал не посылается в линию. Асинхронная работа передатчика и приемника достигается благодаря формату передаваемых данных.
На рис. 3.6.1 приведена временная диаграмма последовательного сигнала, формируемого в передатчике.
Первым в сигнале располагается стартовый бит (старт–бит), имеющий нулевое значение. Далее следуют биты (от 5 до слова данных
D
6…
D
0, начиная с младшего бита
D
0. Слово данных сопровождается битом контроля четности (БКЧ), фиксирующим четное (0) или нечетное (1) число единиц в слове. Замыкают сигнал один или два стоповых бита (стоп–бита) со значениями 1. Используется потенциальный способ кодирования, при котором каждый бит занимает временной интервал, равный периоду синхроимпульсов.
При отсутствии сигнала в линии передачи устанавливается единичный уровень. Приемник следит за уровнем сигнала в линии, фиксируя переход от 1 к 0 как начало передачи информации со стороны внешнего устройства ВУ, а получение стоповых битов — как ее окончание. Таким образом, введение в последовательный формат старт– и стоп–битов позволяет синхронизировать работу передатчика и приемника на обоих концах линии. Промежуток времени от начала старт–бита до конца стоп–битов называется кадром.
При последовательной передаче данных передатчик и приемник должны иметь тактовые генераторы с одинаковыми частотами, для уменьшения влияния помех принимаемый бит должен считываться в середине отведенного для него временного интервала.
Вывод данных.
Схема простейшего контроллера, обеспечивающего асинхронную передачу данных во внешнее устройство, приведена на рис. 3.6.2, а. В его состав входят:
? 8–разрядные буферный регистр данных РД и сдвигающий регистр;
? триггер состояния
Т, фиксирующий значение флага вывода ФВыв: при ФВыв = 1 микропроцессору дано разрешение на вывод байта данных в РД;
? буфер состояния
БС, предназначенный для опроса ФВыв;
? дешифратор
адреса Дш и элементы ИЛИ–НЕ, обеспечивающие доступ к триггеру состояния Т при опросе и к буферному регистру РД при записи байта данных;
?
счетчик по модулю 10 и элемент ИЛИ–НЕ для фиксации состояния счетчика (ФСС);
? делитель
частоты ДЧ на 16.
Назначение сигналов, используемых при выводе данных, приведено в табл. 3.6.1.
Для рассмотрения работы контроллера при передаче данных в ВУ воспользуемся схемой и временными диаграммами, приведенными на рис. 3.6.2.
В исходном состоянии флаг вывода ФВыв = 1, сигнал Сброс = 1 (делитель частоты не функционирует) и снимаемый с элемента И–НЕ сигнал фиксации состояния счетчика ФСС = 1 (счетчик сброшен). Микропроцессор сигналом ЧтС производит опрос состояния контроллера. Так как ФВыв = 1, с помощью сигнала ЗпД = 1 загружается буферный регистр данных РД, сбрасывается флаг ФВыв и запускается делитель частоты ДЧ. Сразу же сигналом ЗпД = 1 через элемент И происходит загрузка сдвигающего регистра байтом данных из РД, а также старт– и стоп–битами (для простоты бит контроля четности не используется). По срезу выходных импульсов делителя частоты (ИДЧ) из сдвигающего регистра пересылаются в линию старт–бит, восемь бит данных и стоп–бит. После появления первого импульса на выходе счетчика сигнал ФСС становится равным нулю. Счетчик производит счет импульсов и после передачи стоп–бита переходит в нулевое состояние. На выходе ЛЭ И–НЕ формируется сигнал ФСС = 1, по которому контроллер возвращается в исходное состояние.
Ввод данных.
Схема простейшего контроллера (устройства ввода), обеспечивающего асинхронную передачу данных из ВУ в процессор, приведена на рис. 3.6.3, а. В его состав входят:
? буферный регистр данных РД и сдвигающий регистр СР, используемые для размещения восьми бит данных, старт– и стоп–битов;
? триггер состояния Т,
фиксирующий значение флага ввода ФВв: при ФВв = 1 микропроцессору разрешается ввод байта данных из РД контроллера;
? буфер состояния
БС, предназначенный для опроса флага ФВв;
? делитель частоты
на 16, обеспечивающий считывание информации в середине бита;
? дешифратор
адреса Дш и элементы ИЛИ–НЕ, обеспечивающие доступ к буферу состояния БС при опросе и к буферному регистру РД при записи байта данных;
? счетчик
по модулю 10 и элемент ИЛИ–НЕ, предназначенные для формирования сигналов состояния счетчика ФСС.
Назначение сигналов, используемых при вводе данных, приведено в табл. 3.6.2.
Для рассмотрения работы контроллера при передаче данных из ВУ в процессор воспользуемся схемой и временными диаграммами, приведенными на рис. 3.6.3. Прежде всего, отметим следующее:
? если линия передачи находится в состоянии логического нуля более половины временного интервала бита, то приемник контроллера начнет принимать данные;
? передний фронт старт–бита служит точкой отсчета для считывания битов передаваемых данных;
? стоповый бит предоставляет время для занесения принятых данных в буферный регистр приемника и обеспечивает возможность выявления ошибки при приеме кадра (посылки).
В исходном состоянии Данные = 1 (данные в линии отсутствуют), сигнал Сброс = 1 (делитель частоты не функционирует), снимаемый с элемента ИЛИ–НЕ сигнал фиксации состояния счетчика ФСС = 1 (счетчик сброшен), флаг ввода ФВв = 1. С появлением старт–бита сигналом Сброс = 0 запускается делитель частоты ДЧ. Первый импульс на выходе ДЧ появляется через половину периода следования выходных импульсов. По его фронту старт–бит заносится в сдвигающий регистр СР контроллера. Занесение бит данных в сдвигающий регистр производится так же по фронту выходных импульсов делителя частоты (ИДЧ). Благодаря этому достигается выполнение требования записи бит в СР в моменты времени, соответствующие середине бита принимаемой информации (см. рис. 3.6.3, б для
D
3). После занесения в СР стоп–бита (десятого бита) счетчик по модулю 10 переходит в нулевое состояние 0000. Сигнал ФСС на выходе элемента ИЛИ–НЕ принимает значение 1, в результате чего происходит остановка ДЧ (сигналом Сброс = 1), установка флага ввода ФВв = 1 (сигналом С триггера Т) и занесение принятых данных в буферный регистр РД (сигналом ЗпД = 1).
Микропроцессор производит опрос состояния контроллера (ЧтС = 1). Если ФВв = 1, с помощью сигнала ЧтД = 1 данные из регистра данных РД чрез буфер вводятся в микропроцессор. Данные могут вводиться как во время приема данных из линии, так и во время паузы.
Проиллюстрируем реализацию рассмотренных принципов последовательного обмена на примере универсального микросхемы КР580ВВ51 синхронно–асинхронного программируемого приемопередатчика — УСАПП (
Universal
Synchronous
/
Asynchronous
Receiver
/
Transmitter
—
USART
).