ВУЗ:
Составители:
2.4.1 Методические указания
Микроконтроллер ATmega16 имеет в своем составе один модуль
универсального синхронно/асинхронного приемо-передатчика (USART).
Модуль приемо-передатчика обеспечивает полнодуплексный обмен по
последовательному каналу, при этом скорость передачи данных может
варьироваться в довольно широких пределах. Длина посылки может
составлять от 5 до 9 бит.
Модули USART, реализованные в микроконтроллерах семейства, могут
обнаруживать следующие внештатные ситуации:
− переполнение;
− ошибка кадрирования;
− ошибка контроля четности.
Для уменьшения вероятности сбоев в модуле также реализована такая
полезная функция, как фильтрация помех.
Для взаимодействия с программой предусмотрены три прерывания, запрос
на генерацию которых формируется при наступлении следующих событий:
«передача завершена», «регистр данных передатчика пуст» и «прием
завершен».
Модуль состоит из трех основных частей: блока тактирования, блока
передатчика и блока приемника. Блок тактирования модулей USART
содержит схему синхронизации, которая используется при работе в
синхронном режиме, и контроллер скорости передачи.
Блок передатчика включает одноуровневый буфер, сдвиговый регистр,
схему формирования бита четности и схему управления. Блок приемника, в
свою очередь, содержит схемы восстановления тактового сигнала и данных,
схему контроля четности, двухуровневый буфер, сдвиговый регистр а также
схему управления.
Буферные регистры приемника и передатчика располагаются по одному
адресу пространства ввода/вывода и обозначаются как регистр данных UDR.
В этом регистре хранятся младшие 8 битов принимаемых и передаваемых
данных. При чтении регистра UDR выполняется обращение к буферному
регистру приемника, при записи — к буферному регистру передатчика.
В модулях USART буфер приемника является двухуровневым (FIFO-буфер),
изменение состояния которого происходит при любом обращении к регистру
UDR. В связи с этим не следует использовать регистр UDR в качестве
операндов команд типа «чтение/модификация/запись» (SBI и CBI). Кроме
того, следует быть очень аккуратными при использованием команд проверки
SBIC и SBIS, поскольку они также изменяют состояние буфера приемника.
56
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »