Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
Рис. 4.61. Аппаратные средства блока приемника в составе контроллера асинхронного обмена
Работа приемника разрешается установкой бита PE в регистре управления. Если приемник активирован, то соответствующая линия порта PORT S конфигурируется как вход RxD. Блок мажоритарной логики обрабатывает входной сигнал и формирует очередной младший бит сдвигового регистра приемника. В процессе приема каждый поступающий бит опрашивается три раза. Если все три выборки совпали (три 1 или три 0), то соответствующее
По завершении приема всех 10 или 11 бит кадра приемник автоматически переписывает принятую информацию в регистр данных контроллера SCI и устанавливает в 1 флаг RDRF, который информирует МК о необходимости считывания принятого байта в память МК.
4.18.3. Регистры контроллера SCI
Контроллер асинхронного обмена обслуживается несколькими группами регистров специальных функций:
• Регистры скорости обмена;
• Регистры управления;
• Регистры состояния;
• Регистры данных.
Далее мы рассмотрим формат и назначение битов каждого регистра модуля SCI.
Два 8-разрядных регистра SCxBDH и SCxBDL предназначены для управления скоростью обмена по последовательному интерфейсу SCI. Для назначения желаемой скорости используются разряды SBR12…SBR0 этих двух регистров (рис. 4.63). Число, которое следует записать в эти разряды может быть определено с использованием таблицы рис. 4.62 или рассчитано по формуле:
SBR = PCLOCK/(16xBAUD_RATE),
где SBR — десятичный эквивалент двоичного кода, который должен быть записан в разряды SBR12…SBR0 регистров SCxBDH и SCxBDL, PCLOCK — частота импульсной последовательности PCLK в Герцах, BAUD_RATE — частота обмена в бодах.
Желаемая скорость обмена (бод) | Значение коэффициента при частоте внутренней системной шины | |
---|---|---|
4 МГц | 8 МГц | |
110 | 2273 | 4545 |
300 | 833 | 1667 |
600 | 417 | 833 |
1200 | 208 | 417 |
2400 | 104 | 208 |
4800 | 52 | 104 |
9600 | 26 | 52 |
14400 | 17 | 35 |
19200 | 13 | 26 |
38400 | — | 13 |
Рис. 4.62. Выбор коэффициента деления модуля SCI
Рис. 4.63. Формат регистра скорости обмена SCxBDH/SCxBDL
Необходимо
SBR0 = 8000000/(16x9600) = 52 = $34
Следующий программный фрагмент реализует инициализацию скорости обмена:
Рис. 4.64. Формат регистра управления SCxCR1
Формат первого регистра управления контроллера SCI представлен на рис. 4.64. Биты этого регистра имеет следующее назначение:
LOOPS:
Бит разрешения «замкнутого» режима работы контроллера SCI. Установка в 1 бита LOOPS вызывает перекоммутацию входа приемника линии RxD, который внутренними средствами отсоединяется от вывода RxD и подсоединяется к выходу передатчика. В этом режиме возможен контроль передаваемой информации. Также режим может быть использован для тестирования работы программного обеспечения без использования устройства управления верхнего уровня. Для реализации «замкнутого» режима должна быть разрешена работа как передатчика, так и приемника.
1 — «замкнутый» режим работы разрешен;
0 — «замкнутый» режим работы запрещен.
WOMS:
Бит выбора режима открытого коллектора. Этот бит определяет состояние выходных буферов линий TxD и RxD.
1 — буферы переведены в режим открытого коллекторного выхода;
0 — буферы работают в режиме обычного двухстабильного логического выхода (TxD) и входа (RxD).
Перевод линий TxD и RxD в режим открытого коллектора позволяет соединить их по схеме «монтажное И», что делает возможным двусторонний обмен по одной линии. Кроме того, при такой конфигурации возможно создание системы с несколькими передающими устройствами.
RSRC:
Бит выбора внутренней схемотехники в «замкнутом» режиме работы. Если бит LOOPS = 1 и бит RSRC = 1 то вход приемника коммутируется непосредственно к выводу TxD микроконтроллера. При RSRC = 0 вход приемника подсоединяется к выходу передатчика внутри МК.
M:
Бит выбора формата кадра асинхронного обмена.
1 — 11-битовый формат кадра: 1 стартовый бит, 9 бит слова данных, 1 стоповый бит;
0 — 10-битовый формат кадра: 1 стартовый бит, 8 бит слова данных, 1 стоповый бит.
WAKE:
Бит выбора способа выхода приемника из неактивного состояния:
1 — установка маркера адреса (бит D7 при M=0 или бит D8 при M=1) ) переводит приемник в активный режим работы;
0 — состояние IDLE на линии переводит приемник в активное состояние.
После сброса МК бит устанавливается в 0.
ILT:
Бит выбора режима распознавания неактивного состояния линии RxD. Этот бит определяет момент начала отсчета для определения неактивного состояния линии RxD: