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

ЖАНРЫ

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

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

Шрифт:

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

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

ILIE:

Бит разрешения прерывания от приемника по флагу IDLE. Этот бит разрешает генерацию запроса на прерывание при установке в 1 флага неактивного состояния линии RxD.

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

0 — прерывания по флагу IDLE запрещены.

TE:

Бит разрешения работы передатчика контроллера SCI. Если бит TE будет сброшен в процессе передачи, то передача текущего байта будет завершена.

1 — передача разрешена;

0 — передача запрещена.

RE:

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

1 — прием

разрешен;

0 — прием запрещен.

RWU:

Бит управления режимом ожидания приемника контроллера SCI. Установка бита RWU под управлением программы в 1 переводит приемник контроллера SCI в режим ожидания. Пока приемник находится в этом режиме, ни один из флагов, которые связаны с работой приемника (RDRF, IDLE, OR, NF, FE, PE), не может быть установлен. Однако те флаги, которые уже были установлены к моменту перевода приемника в режим ожидания, не сбрасываются в момент записи 1 в бит RWU. Способ перевода приемника в активный режим работы определяет бит WAKE в регистре SCxCR1.

SBK:

Бит управления сообщением «конец сеанса обмена». Если бит SBK установить под управлением программы в 1, то передатчик контроллера SCI генерирует в линию TxD последовательность из 10 (бит M=0) или 11 (бит M=1) нулевых битов и одного единичного бита.

Регистры состояния SCxSR1 и SCxSR2

Рис. 4.66. Формат регистра состояния SCxSR1

Формат первого регистра состояния контроллера SCI представлен на рис. 4.66. Старшие четыре бита регистра SCxSR1 содержат флаги событий, которые используются в штатных режимах работы приемника и передатчика. Младшие четыре бита отражают тип зафиксированной ошибки приема. Все флаги, связанные с работой приемника сбрасываются после выполнения операции чтения младшего байта регистра данных приемника. Назначение отдельных битов регистра SCxSR1 следующее:

TDRE:

Бит готовности буфера передатчика к приему новых данных. Устанавливается в момент, когда предварительно загруженные в регистр буфера передатчика данные автоматически переписываются в сдвиговый регистр передатчика.

TC:

Бит завершения передачи данных. Устанавливается, если данные для передачи в сдвиговом и буферном регистре данных передатчика отсутствуют, а также, если не реализуется режим передачи сообщения «конец сеанса обмена». Бит TC информирует МК об отсутствии процесса передачи данных в текущий момент времени. В это время на линии TxD установлен высокий логический уровень сигнала (состояние IDLE). Бит TC вызывает генерацию запроса на прерывание, если бит TCIE в регистре SCxCR2 установлен.

RDRF:

Бит завершения приема байта данных. Устанавливается в момент, когда принятые по линии RxD данные автоматически переписываются в буферный регистр данных приемника. Бит RDRF вызывает генерацию запроса на прерывание, если бит RIE в регистре SCxCR2 установлен.

IDLE:

Бит неактивного состояния линии RxD. Устанавливается в 1, если на линии RxD диагностируются 10 или 11 (в зависимости от формата кадра) последовательных единиц. Бит IDLE вызывает генерацию запроса на прерывание, если бит ILIE в регистре SCxCR2 установлен.

OR:

Бит ошибки приема. Устанавливается при попытке записи аппаратными средствами приемника очередного принятого байта из сдвигового регистра в буферный регистр данных в то время, как предыдущие данные из буферного регистра еще не считаны (бит RDRF установлен).

NF:

Бит наличия шума на линии приемника RxD. Устанавливается в случае, если при выборке очередного бита информационного кадра, включая стартовый и стоповый биты, не все три детектированные значения бита оказались равными. Бит NF устанавливается одновременно с битом

завершения приема того байта, при передаче которого обнаружен шум.

FE:

Бит нарушения формата кадра. Устанавливается, если поступающая на вход RxD последовательность битов не соответствует меткам синхронизации, формируемым внутренним счетчиком приемника. Аппаратные средства приемника распознают состояние нарушения синхронизации по признаку наличия на линии нулевого логического уровня в то время, когда должен присутствовать стоповый бит с высоким логическим уровнем сигнала.

PF:

Бит нарушения паритета кадра. Устанавливается, если функция паритета при обмене разрешена, и в принятом кадре значение бита паритета не удовлетворяет принятой логике формирования паритета: при назначенном нечетном паритете число единиц в слове четное, и наоборот.

Формат второго регистра состояния контроллера SCI представлен на рис. 4.67. Регистр SCxSR2 содержит всего один бит RAF. Этот бит автоматически устанавливается в 1 в то время, когда в сдвиговом регистре приемника продолжается формирование очередного принимаемого байта данных.

Рис. 4.67. Формат регистра состояния SCxSR2

Регистры данных SCxDRH и SCxDRL

Формат двух 8-разрядных регистров данных контроллера SCI представлен на рис. 4.68. Регистр SCxDRL используется, если контроллер SCI настроен на обмен данными в 8-разрядном формате (10-битовый формат кадра). Тогда по адресу регистра SCxDRL записываются данные для передачи, и из этого же регистра считываются принятые данные. Если контроллер SCI настроен на обмен данными в 9-разрядном формате (11-битовый формат кадра), то старший бит для передачи записывается под управлением программы в разряд T8 регистра SCxDRH, а при приеме из разряда R8 считывается старший 9-ый бит принятого слова. Младшие восемь разрядов при передаче и при приеме, как и в случае 8-разрядного слова данных, находятся в регистре SCxDRL.

Рис. 4.68. Формат регистра данных SCxDRH/SCxDRL

Вопросы для самопроверки

1. Каково различие между битами TDRE и RDRF?

Ответ: Оба бита являются флагами, которые отражают состояние контроллера SCI. Флаг TDRE устанавливается в 1, когда регистр данных передатчика автоматически переписывается в сдвиговый регистр. В этом случае говорят, что регистр данных передатчика пуст. Флаг RDRF устанавливается в 1, когда процесс приема данных в сдвиговый регистр приемника закончен, и очередное слово данных готовы к считыванию.

2. Каково назначение флага PF? Почему он чрезвычайно важен при обмене информацией в последовательном коде?

Ответ: Флаг нарушения паритета кадра PF устанавливается, когда произошла ошибка в приеме одного или нескольких бит одного кадра. Прикладная программа контролирует бит PF, как индикатор неверного приема, и должна повторить обмен.

3. Опишите события, которые могут генерировать прерывания от модуля SCI.

Ответ: Четыре источника прерываний ассоциируются с модулем SCI:

 • Прерывание по флагу TDRE, когда регистр данных приемника пуст. Это прерывание разрешается битом TIE в регистре управления SCxCR2;

 • Прерывание по флагу TC, когда передача слова закончена. Это прерывание разрешается битом TCIE в регистре управления SCxCR2;

 • Прерывание по флагу RDRF, когда прием очередного слова завершен. Это прерывание разрешается битом RIE в регистре управления SCxCR2;

 • Прерывание по флагу IDLE, когда приемник находится в неактивном состоянии. Это прерывание разрешается битом ILIE в регистре управления SCxCR2.

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