Раздел: Документация
0 1 2 3 4 5 6 ... 55 Бит №: -► 0: 1 - Данные готовы для чтения. Сбрасывается после чтения регистра данных (адрес 3f8h). I-► 1:1-Ошибка переполнения. Предыдущий байт потерян. -► 2: 1 - Ошибка паритета. Сбрасывается после чтения регистра состояния линии (т.е. настоящего регистра с адресом 3fdh). - 3: 1 - Ошибка формата. Отсутствие стоп-бит в посылке. -► 4: 1 - Обнаружен сигнал BREAK на линии. - 5:1- Регистр передатчика пустой и готов принять новый байт. -► б: 1 — Сдвиговый регистр передатчика пустой. Этот регистр получает байт из регистра передатчика (предыдущий регистр) и с помощью сдвигов бит за битом передает байт. Если этот бит равен 1, это значит, что передан последний бит байта. -► 7: 1 — Тайм-аут устройства. Регистр состояния модема (modem status register). Адрес 3feh. Доступен по чтению. Определяет состояние линий квитирования интерфейса RS232. 7 6 5 4 3 2 1 0 Бит №: I- 0: 1 - Линия CTS изменила свое состояние. I-1:1- Линия DSR изменила свое состояние. -► 2: 1 - Линия R1 изменила свое состояние. I- 3:1- Линия DCD изменила свое состояние. -► 4: 1 - Линия CTS активна (лог. 1). -► 5: 1 - Линия DSR активна (лог. 1). -► 6: 1 - Линия R1 активна (лог.1). -► 7: 1 - Линия DCD активна (лог.1). 1.3.3. Инициализация интерфейса RS232 Инициализация порта является достаточно простой, но очень важной процедурой. Здесь главное — все установить правильно и ничего не забыть. Несколько слов о прерываниях. Обмен данными по интерфейсу RS232 между компьютером и периферийным устройством по сравнению со скоростью работы компьютера происходит очень 12 медленно. Даже если скорость обмена максимальная (115200 бод), частота следования бит 115 кГц. По сравнению с тактовой частотой компьютера, которая составляет от 100 МГц (достаточно старенький компьютер) до 3000 МГц (современный), частота 115 кГц на несколько порядков ниже. Этот очевидный факт часто приводят как основной аргумент в пользу применения прерываний, которые может генерировать последовательный порт (см. "Регистр разрешения прерываний" и "Регистр идентификации прерываний"). На практике, однако, это не так. Дело в том, что компьютер "загружен" множеством прерываний, и чем сложнее операционная система, тем прерываний больше. Часто это приводит к самопроизвольному "зависанию" компьютера даже без всякого обмена по RS232. Кроме того, аргументы, приводящиеся в пользу прерываний, в основном касаются того факта, что во время медленной операции, каковой является обмен по RS232 (а точнее, в перерывах), компьютер может выполнять массу другой работы. Но другой работы во время обмена по RS232 от компьютера, как правило, не требуется! И еще. Скорость обмена 115200 бод не является такой уж маленькой для микроконтроллера, с которым обменивается информацией компьютер (напомним, что в книге основное внимание уделено именно такому назначению RS232), особенно если при этом микроконтроллер работает с достаточно низкочастотным кварцевым резонатором. При использовании прерываний (пусть даже только в компьютере) либо может сорваться связь, либо может передаться неверный байт. Если каждый байт, передаваемый из компьютера в микроконтроллер, является, например, байтом программы микроконтроллера, которая после ее приема микроконтроллером будет немедленно исполняться, то можно себе представить во что это может "вылиться" в дальнейшем! В связи с вышеизложенным пользоваться прерываниями интерфейса RS232 мы не станем. Прерывания должны быть запрещены (будем считать термин "запрещение" состоянием регистра разрешения прерываний). Несколько слов о формате данных, бите паритета и количестве стоп-бит. Хотя порт компьютера и поддерживает длину слова от 5 до 8 бит (см. "Регистр управления линиями"), уже достаточно Давно длина слова всегда принимается равной 8 битам. Бит паритета также не используется (из-за его неэффективности), а вот количество стоп-бит целесообразно выбирать в зависимости от скорости обмена. При низких скоростях обмена (например, 9 600 бод) Достаточно одного стоп-бита. При .высоких скоростях (57600 и П5200 бод) для более надежного обмена количество стоп-бит желательно устанавливать равным двум. Итак, проинициализируем порт интерфейса RS232 в компьютере. Вариант 2 Нвид элгапжчшких хараитряистаксисгп II)*imiji iviMmiifi пар Давним: г« приворпя 11 №шкню пе)са спиши Бармкпдоесме мвпенйс I 1? ш mm !ИЙ.ВВИИ i1ИИ.ИИИИ. 1(1.ИИНЙ? :2.58881 :1(.и ииии1 -> №акпт e.imtii у rii-й! "И.5ИЗ и мн 1.2ВИИ И.И2ВИ BxajJM.iMqvavwfeHHe-iicrraiaraaai ! Kaiiajr .jjr. i Я истер диодного шалопшшп ю1«пД«м K$tijra ;Tl Рис. 1.2. Варианты экранных форм выбора режимов работы интерфейса RS232 0 1 2 3 4 5 6 ... 55
|