Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 56
Текст из файла (страница 56)
Бит 1 определения режима работы последовательного порта. Разрешение обмена в многопроцессорных системах. Разрешение приема. При ЕЕХ = 1 прием разрешен, 9-й бит данных, который будет передаваться в режимах 2 и 3. Значение устанавливается программно по усмотрению разработчика. В режиме О не используется. В режиме 1 при ЯМ2 - О в него заносится принятый стоп-бит. В режимах 2 и 3 в него заносится 9-й принятый бит данных. БМ1 ЯСОХ.6 ЯМ2 БСОХ.5 ЕЕХ БСОХА ТВ8 БСОХ.З ВВ8 БСОХ.2 буферизирован, т.е. возможен прием следующего байта, когда предыдущий еще находится в регистре БВ11Е Однако, если подпрограмма обслуживания не успела прочесть байт данных из регистра ЯВОР к моменту завершения приема следующего байта, то этот следующий принятый байт затрет предыдущий.
Прием и передача обслуживатотся битами прерывания Е1 и Т1, которые формируют общий запрос прерывания. Блок последовательного порта обслуживается следующими регистрами специальных функций: ГЛАВА 2. МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-221 291 ЯСОМ.1 Флаг запроса прерывания передатчика. Устанавливается аппаратно после передачи последнего бита. Должен быть сброшен программно. К1 ЯСО)т1.0 Флаг запроса прерывания приемника.
Устанавливается аппаратно после приема последнего бита кадра. Должен быть сброшен программно. Биты ЯМО и БМ1 следующим образом определяют режимы работы последовательного порта: Режим работы ЗМО ЗМ1 Скорость передачи Р, /12 Режим О. Сдвиговый регистр. переменная Режим 1. Асинхронный приема-передатчик, 8 бит данных в кадре. 1 0 Р,/64 Режим 2. Асинхронный приемо-передатчик, 9 бит или Р /32 данных в кадре. 1 1 переменная Режим 3. Асинхронный приемо-передатчик, 9 бит данных в кадре. Кроме битов регистра ЯСОХ последовательный порт управляется также битом ЯМОВ регистра РСОА.
0 0 0 1 3.8.1. Синхронный полудуплексный обмен (рвжнм О) В этом режиме по линии ТхР выдается восемь синхроимпульсов, а по линии КхР принимается или передается байт данных. Передача и прием данных осуществляются начиная с младшего бита, сдвиг происходит в ЯОР2 каждого цикла обмена (рис. 3.26). Обмен производится с фиксированной частотой Ровс/12.
Передача информации заключается в реализации следующих действий; Прием информации инициируется записью в регистр ЯСО)т1 байта управления, очигцающего биты ЯМО, ЯМ1, К1 и устанавливающего бит КЕХ. Во втором цикле после этой операции записи в фазе ЯЗР1 на линии ТхР е запись в регистр ЯСОМ байта управления, очищающего биты ЯМО, ЯМ1, КЕХ; е запись байта данных в регистр ЯВ(1Р. Передача начинается в следующем (после записи в регистр ЯВ(1Р) цикле обмена с выдвижения бита РО на линию КхР в фазе Я6Р2.
В ЯЗР1 следующего цикла на линии ТхР появляется «0» первого импульса синхронизации. Выдвижение битов данных продолжается в каждом цикле до девятого включительно, когда на линии КхР появляется старший бит Р7. В начале десятого цикла линия КхР переводится в высокоуровневое состояние и устанавливается флаг Т1, что свидетельствует об окончании передачи. МИКРОКОНТРОДЛЕРЫ: АРХИТВЮУРА.
ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙС 292 [Яе зеданявД )5 1 .. 56)8! .. 86(5! .. 86)81 .. 86)51 .. 56151 ., 86(5! .. 56(8! .. 56~ Нко (Вых. данные) 00 01 02 03 04 05 06 07 Ткп (Синхронизания) Т! БЗР!! 1 86Р! (Внутренний) ~ !)!)тием 3' ~ 81 ..86) 81 ..86 ~ Я ..86 ~ Я ..56)81 .. 86181 .. 56)5! .. 86181 .. 86~ (ВнуГренннй) 00 01 02 03 04 05 06 07 Нхп (Вх. данные) Тхп (Синхронизация) Рис. 3.26. Работа последовательного порта в режиме 0 появляется «О» первого импульса синхронизации, а на фазе 85Р2 выполняется ввод младшего бита данных 1)О с линии Кх() в сдвиговый регистр.
Ввод повторяется в последующих циклах и после восьми сдвигов в регистр вводится старший бит 1)7, устанавливается флаг К1. После этого подпрограмма обслуживания может прочесть байт данных из 8В1)К 3.8.2. Асинхронный дуплексный обмен (режимы 1, 2, 3) При асинхронном обмене данные передаются по линии Тх1), а принимаются по линии Кх(). В режиме 1 кадр данных состоит из! О бит (рис. 3 27): стартбит, восемь битов данных, стоп-бит. При приеме в разряд КВ8 регистра 8СОХ попадает стоп-бит. Скорость передачи определяется переполнение таймера 1 или таймера 2.
В режимах 2 и 3 кадр данных состоит из 11 бит (рис. 3.28): старт-бит, восемь битов данных, программируемый бит, стоп-бит. При приеме подпрограмма обслуживания может прочитать девятый бит из разряда КВ8 регистра 8СОХ. При передаче девятый бит записывается в ТВ8 регистра 8СОХ.
Пользоватедь может испольэовать девятый бит по своему усмотрению (часто это бит контроля). Скорость передачи в режиме 2 программируется равной 1/32 или 1/64 частоты синхросигнала. Скорость передачи в режиме 3 определяется переполнением таймера 1 или таймера 2, Передача информации заключается в реализации следующих действий: ГЛАВА 3. МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСБ-261 Перед Синхр. Тх (внутренний) Сдвиг (внугренний) 00 О! 02 03 04 05 06 07 тхР Старт-бит Т Т Стоп-бит Т! (внутренний) Сброс йх Прием Синхр.
Кх (внутренний) Сдвиг (внутренний) 00 Р! 02 05 04 05 06 Р7 Ихп Старт-бит Т Т Стоп-бит и! (внугренний) Рио. 3.27. Работа пооледоаателъного порта а режиме! + запись в регистр УСОХ байта управления, определяющего биты ЗМО, ЯМ1 (выбор режима) и очищающего бит ЕЕХ. Для режимов 2 и 3 следует записать значение девятого бита данных в ТВ8; + запись байта данных в регистр БВ()Е Для инициализации приема следует установить бит ЕЕХ регистра УСОХ. Прием данных начинается после идентификации перехода «1»-«0» на линии ЕхП. При работе в любом асинхронном режиме можно использовать функцию автоматической проверки значения стоп-бита. Для этого необходимо установить бит БМОПО регистра РСОХ. После этого низкий уровень сигнала на линии ЕхП в интервал времени, отведенный под стоп-бит, приводит к установке бита ЕР регистра ОСОХ.
Подпрограмма обслуживания последовательного порта может проверять значение этого бита каждый раз после приема байта данных. Однажды возникший признак ошибки не может быть сброшен последующим приемом кадров с правильными стоп-битами. Очистка бита РЕ может быть произведена программно или посредством сброса. МИКРОКОНТРОЛЛЕРЫ АРХИТЕКТУРА ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙС 294 Передача Синхр. Тх (внутренние) Сдвиг (внутренний) тхв 00 О! 02 03 04 05 06 07 тв8 Стертбит Т Т Стоп.бит т! (вн)чренннй) Е:Л Прием Сброс ах Синхр.
ах (внутренний) Синит (вну1ренний) 04 05 06 07 КВ8 Стоп.бит ихп 00 01 02 03 Старт.бит Т И (внутренний) Рис. 3.23. Работа последовательного порта в режимах 2 н 3 3.8.3. Обмои в многопроцессорных снствмах Для инициализации такого обмена необходимо разрешить функцию автоматического распознавания адреса, что осуществляется установкой бита ЯМ2 регистра БСО)А).
После этого последовательный порт различает кадры данных (девятый бит - О) и кадры адреса (девятый бит = 1), поэтому он способен работать в режиме использования одной линии последовательного обмена совместно с портами других процессоров. Описанный режим возможен только при асинхронном обмене. Механизм автоматического распознавания адреса использует понятия за- данного адреса и широковещательного адреса, а также еедущего устройства (шаз(ег) и еедомого устройстеа (81ане). При последовательном обмене в многопроцессорной системе порт-приемник проверяет на совпадение с присвоенным ему адресом все кадры с установленным девятым битом.
Если адрес совпадает, приемник устанавливает биты КВ8 и К1 регистра БСО)т), что вызывает прерывание (при установленном бите ЕЯ регистра 1Е). После этого подпрограмма процессора-приемника очищает бит ЯМ2 регистра ЯСОВ и подготавливает прием информации. Другие процессоры, последовательные порты которых подключены к этой же линии, пропускают все эти кадры, поскольку реагируют только на свой адрес.
ГЛАВА 3. МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСЕ-ЕЕ1 295 Каждый микроконтроллер в регистре ЯАППК хранит индивидуальный адрес. В регистре БАПЕХ хранится байт маски, нули которого указывают разряды, игнорируемые при вычислении заданного адреса. Игнорируемые биты обеспечивают адресацию одного или нескольких з!аче-устройств иа линии. При адресации одного устройства байт маски равен РРН и заданньГй адрес равен индивидуальному. Ниже приведен пример формирования заданного адреса БАП))К - 01010110 ЯАПЕХ - 11111100 Заданный - 010101ХХ Широковеи!ательньей адрес формируется как функция логического ИЛИ содержимого регистров ЯА1НЖ и ЯАПЕХ.