Шрифт:
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
Формат двух 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.