Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (1264222), страница 22
Текст из файла (страница 22)
Для отсчета времени использовать 16-разрядный таймер Т1, при переполнении которого формируется запрос прерывания для вызова обработчика прерывания, выполняющего накопление таймерных интервалов времени и обновление показаний индикатора. Контрольные вопросы 1. Какова скважность сигналов, формируемых программой 4.3? Как изменяется временная диаграмма выходного сигнала при изменении значения, загружаемого в регистр сравнения? 2.
В каком порядке выполняется запись байтов в 16-разрядные регистры? 3. В каком порядке выполняется чтение байтов из 16-разрядного счетчика ТСХТ1, регистра захвата 1СК1? 4. Какие значения необходимо занести в регистры сравнения в программе 4.5 для формирования ШИМ-сигналов скважностью 4 (отношения периода к длительности сигнала) при том же периоде ШИМ-сигналов? 5.
Как изменится скважность ШИМ-сигналов, формируемых при работе программы 4.5, если сменить управляющее слово в регистре ТССК1А на 5В1 (ЗВ2)? 6. Назовите максимальное время наступления тайм-аута у сторожевого таймера АТх8515. 7. Назовите максимальное время захвата, которое можно зарегистрировать при работе программы 4.4. В каких приложениях можно применить эту программу? 5.
ОБМЕН ДАННЫМИ ПО ПОСЛЕДОВАТЕЛЬНОМУ ИНТЕРФЕЙСУ Проблема «узкого» интерфейса, особенно значимая для микроконтроллеров с небольшим числом выводов, способствовала появлению на рынке периферийных устройств, где обмен данными осушествляется по скоростным последовательным каналам связи. К ним относят каналы ()АКТ (или (18АКТ), ЯР1, 12С (или Т%1), 115В, для работы с которыми микроконтроллеры имеют встроенные порты. 5.1. ПОСЛЕДОВАТЕЛЬНЫЙ ОБМЕН ДАННЫМИ ПО КАНАЛУ 1/АКТ Цель работы — изучение приема и передачи информации по последовательному каналу ПАКТ (1)п1мегза1 Азупс1згопоцв й.есе1мег-Тгапзш1йег) и программирование ввода/вывода. Микроконтроллеры АУЕ имеют в своем составе модуль полнодуплексног о универсального асинхронного приемопередатчика 1)АКТ (в семействе Меда универсальный синхронный/асинхронный приемопередатчик ()8АВТ).
Через него осуществляется прием и передача информации, представленной последовательным кодом, поэтому модуль ()АКТ часто называют также последовательным портом. С помощью этого модуля микроконтроллер может обмениваться данными с различными внешними устройствами. Поток данных, передаваемых по каналу ()АКТ, представляет собой совокупность посылок или кадров, Каждый кадр содержит стартовый бит, восемь или девять битов данных и столовый бит.
Стартовый бит имеет уровень логического О, стоповый — уровень логической 1. Скорость передачи данных может варьироваться в широких пределах, причем высокие скорости передачи могут быть достигнуты даже при относительно низкой тактовой частоте микроконтроллера. 138 5. Обмен данными по последовательному интерфейсу Известно, что при передаче данных могут произойти различные сбои. Модуль 1)АКТ, реализованный в микроконтроллерах, способен при приеме обнаруживать ошибку формата и переполнение.
Для взаимодействия с программой в модуле предусмотрены прерывания при наступлении следующих событии: прием завершен с адресом вектора $009 в таблице векторов прерываний, регистр данных передатчика пуст с адресом вектора $00А, передача завершена с адресом вектора $00В. Выводы микроконтроллера, используемые модулем 1)АКТ, являются линиями порта РР. В качестве входа приемника (КХР) используют вывод РРО, а в качестве выхода передатчика (ТХР)— вывод РШ.
Принимаемые и передаваемые данные (восемь разрядов) хранятся в регистре 1ЛЖ. Физически регистр (ЛЖ состоит нз двух отдельных регистров, один из которых используется для передачи данных, другой — для приема. При чтении регистра 1ЛЖ выполняется обращение к регистру приемника, при записи — к регистру передатчика. Управление работой 1)АКТ Управление работой приемопередатчика осуществляется с помощью регистра управления БСК. Текущее состояние приемопередатчика определяется с помощью регистра состояния 11$К.
Формат этих регистров приведен в табл. 5.1 и 5.2. Таблица 5.1. Формат регистра управления 17СК № разряда Имя КХС1Е ТХС1Е 1ЛИ1 ТХЕ1ч' КХВ8 ТХВ8 СНК9 Таблица 5.2. Формат регистра состояния БЯК № разряда 7 6 5 4 3 2 1 О Иня КХС ТХС 11РКЕ РЕ ОК Назначение управляющих битов: КХС1Š— разрешение прерывания по завершении приема, если КХС1Е = 1; 5.1.
Последовательный обмен донными по каналу 17АЯТ 139 ТХС1Š— разрешение прерывания по завершении передачи, если ТХС1Е = 1; 1ЛЖ1Š— разрешение прерывания при опустошении регистра данных ()АКТ, если ()РК)Е = 1; КХЕ)ч — разрешение приема при КХЕ)з) = 1; ТХЕ)з1 — разрешение передачи при ТХЕ)ч1 = 1; СНК9 — формат посылок (кадров).
Если СНК9 = 1, производится передача и прием 9-разрядных данных. При передаче значение старшего (8-го) разряда берется из разряда ТХВ8 регистра, а при приеме записывается в разряд КХВ8; КХВ8 — 8-й разряд принимаемых данных. Если флаг СНК9 = 1, разряд К.ХВ8 содержит значение старшего разряда принятого слова;, ТХВ8 — 8-й разряд передаваемых данных. Если флаг СНК9 = 1„ значение ТХВ8 передается как старший разряд слова. Значения битов (флагов) регистра состояния: КХС вЂ” флаг завершения приема. Данный флаг устанавливается' в 1 при пересылке принятого слова из сдвигового регистра прием-' ника в регистр данных 1ЛЖ. Сбрасывается флаг аппаратно при чтении регистра 1ЛЖ; ТХС вЂ” флаг завершения передачи.
Данный флаг устанавливается в 1 после передачи всех разрядов слова, включая стоп-бит, из' сдвигового регистра передатчика, при условии, что в регистр данных ()РК не было загружено новое значение. Этот флаг наиболее полезен при полудуплексной связи, когда передающее устройство должно освободить линию и перейти в режим приема сразу же после окончания передачи. Флаг сбрасывается аппаратно при выполнении подпрограммы обработки прерывания или программно. при записи 1 (!) в этот разряд; 1ЛЖŠ— регистр данных пуст. Данный флаг устанавливается в, 1 после пересылки байта из регистра данных 1ЛЖ в сдвиговый регистр передатчика. Установка этого флага означает, что передатчик готов к получению нового значения для передачи. Сбрасывается флаг аппаратно при записи в регистр 1ЛЖ; ГŠ— флаг ошибки формата.
Данный флаг устанавливается в 1, если стоп-бит принятого слова равен О. Флаг сбрасывается при приеме стоп-бита, равного 1; ОК вЂ” флаг переполнения. Данный флаг устанавливается в 1,' если в сдвиговом регистре приемника находится новое принятое' слово, а старое содержимое регистра ()1Ж не прочитано. Флаг остается установленным до тех пор, пока не будет прочитано содержимое регистра 1ЛЖ. Флаг сбрасывается при пересылке принятых данных из сдвигового регистра приемника в регистр ПЖ.
140 5. Обмен данными по последовательному интерфейсу В микроконтроллерах АТшейа8515 функции регистров 1)СК, 1)ЯК выполняют соответственно регистры 1)СЗКВ, 1ЗСЗКА. Заметим, что в регистре 1)СИКА имеется дополнительный разряд МРСМ, присутствие которого позволяет организовать простейшую локальную мультипроцессорную систему. При значении МРСМ = 1 приемник принимает кадры, у которых 9-й бит равен 1 и игнорирует кадры с 9-м битом, равным О. При значении МРСМ = = 0 приемник принимает кадры с любым значением 9-го бита.
В микроконтроллерной сети один контроллер имеет статус ведущего, остальные — ведомых. У всех ведомых контроллеров перед началом работы бит МРСМ = 1, Ведущий контроллер посылает байт, содержащий адрес ведомого контроллера, с 9-м битом, равным 1. Все контроллеры принимают его, проверяют поступивший адрес, сравнивая с собственным адресом, присвоенным при инициализации сети. Тот контроллер, который опознал поступивший адрес как собственный, переключает бит МРСМ в состояние О. Данные, пересылаемые ведущим контроллерам, содержат 9-й бит, равный О. Эти данные могут быть приняты только тем контроллером, бит которого МРСМ = О. Если от ведущего контроллера поступит новый адрес в кадре с 9-м битом, равным 1, принимающий изменит значение МРСМ на 1 и вернется в исходное состояние.
5.1. Посдедоватедьный обиен данными по канаду САЯТ 141 Шина данных Передача данных Структурная схема передатчика модуля !)АКТ приведена на рис. 5,1. Работа передатчика разрешается установкой в 1 разряда ТХЕ!х) регистра 1)СК. Если этот разряд сброшен !передатчик выключен), вывод РР! (ТхП) может использоваться как линия вводЫвывода порта РП. При установке разряда ТХЕ)х) этот вывод подключается к передатчику 1)АКТ и начинает функционировать как выход независимо от состояния 1-го разряда регистра ППКР порта РП.
Передача инициируется записью передаваемых данных в регистр данных 1)РК. После этого данные пересылаются из регистра БОК в сдвиговый регистр передатчика. При этом возможны два варианта: 1) новое значение записывается в регистр 1ЛЖ после того как был передан стоп-бит предыдущего слова. В этом случае данные пересылаются в сдвиговый регистр сразу же после записи в регистр 1ЛЖ; Зпр ТХС Зпр тЛЖЕ Рис. 5.1, Структурная схема передатчика БАКТ 2) новое значение записывается в регистр ИЖ во время передачи.
В этом случае данные пересылаются в сдвиговый регистр после передачи стоп-бита текущего слова. После пересылки содержимого регистра 1ЛЖ в сдвиговый регистр флаг 1ЛЖЕ регистра 1)8К устанавливается в 1, что означает готовность передатчика к получению нового значения.