Чтение онлайн

ЖАНРЫ

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Пак Дэниэл Дж.

Шрифт:

• Регистры состояния;

• Регистры данных.

Далее мы рассмотрим формат и назначение битов каждого регистра модуля SCI.

Регистры скорости обмена SCxBDH и SCxBDL

Два 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

Пример

Необходимо настроить первый контроллер асинхронного обмена (SCI0) на скорость 9600 бод. Если частота импульсной последовательности PCLK равна 8 МГц, то коэффициент деления, который должен быть записан в регистры SC0BDH и SC0BDL, равен:

SBR0 = 8000000/(16x9600) = 52 = $34

Следующий программный фрагмент реализует инициализацию скорости обмена:

/*----------------------*/

/* filename: ini_SCI0.c */

/*----------------------*/

#include <912b32.h>

void main(void) {

 SC0BDH = 0х00;

 SC0BDL = 0х34;

}

/*----------------------*/

Регистры управления SCxCR1 и SCxCR2

Рис. 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:

1 — отсчет начинается после идентификации стоп-бита;

0 — отсчет начинается после идентификации старт-бита.

После сброса МК бит устанавливается в 0.

PE:

Бит разрешения работы логики паритета.

1 — формирование бита паритета передатчиком и его анализ приемником реализуются;

0 — функция паритета отключена.

PT:

Бит выбора четного или нечетного паритета (Parity Bit)

1 — бит паритета формируется из условия нечетного числа 1 в слове;

0 — бит паритета формируется из условия четного числа 1 в слове.

Рис. 4.65. Формат регистра управления SCxCR2

Формат второго регистра управления контроллера SCI приведен на рис. 4.65. Четыре старших бита этого регистра (TIE, TCIE, RIE, ILIE) разрешают генерацию запросов на прерывания по разным событиям контроллера SCI. Назначение отдельных битов регистра SCxCR2 следующее:

TIE:

Бит разрешения прерывания от передатчика контроллера SCI. Этот бит разрешает генерацию запроса на прерывание при установке в 1 флага готовности буфера данных передатчика к приему от программы нового байта (бит TDRE).

1 — прерывания от передатчика по флагу SCDE разрешены;

0 — прерывания от передатчика по флагу SCDE запрещены.

TCIE:

Бит разрешения прерывания от передатчика контроллера SCI. Этот бит разрешает генерацию запроса на прерывание при установке в 1 флага завершения работы передатчика TC.

1 — прерывания от передатчика по флагу TC разрешены;

0 — прерывания от передатчика по флагу TC запрещены.

RIE:

Бит разрешения прерывания от приемника контроллера SCI. Этот бит разрешает генерацию запроса на прерывание при установке в 1 флага завершения приема очередного байта RDRF.

Поделиться с друзьями: