Блок последовательного интерфейса

Блок последовательного интерфейса (ПИ) предназначен для организации ввода-вывода последовательных потоков информации с возможностью дуплексного включения (возможность одновременного приема и передачи данных). ПИ может работать в четырех режимах.

Режим 0. Информация выдается и принимается через вход приемника RxD (вывод Р3.0). Через выход передатчика ТхD (вывод Р3.1) выдаются импульсы синхронизации, стробирующие каждый передаваемый или принимаемый бит информации. Формат посылки – 8 бит. Частота приема и передачи – fBQ/12, где fBQ – частота тактового генератора микроконтроллера.

Режим 1. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки 10 бит: старт-бит (ноль), 8 бит данных и стоп-бит (единица). Частота приема и передачи задается Т/С1.

Режим 2. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки 11 бит: старт-бит (ноль), 8 бит данных, программируемый девятый бит и стоп-бит (единица). Передаваемый девятый бит данных принимает значение бита ТВ8 из регистра управления SCON. Бит ТВ8 может быть программно установлен в «0» или в «1». В него также можно занести значение бита Р из регистра PSW (контроль на четность для повышения достоверности передачи данных). При приеме девятый бит принятой посылки поступает в бит RB8 регистра SCON. Частота приема и передачи задается программно и может быть равна fBQ /32 или fBQ/64.

Режим 3. Режим 3 идентичен режиму 2 за исключением скорости приема и передачи, которая в режиме 3 задается Т/С1.

Работой ПИ управляет регистр специального назначения SCON. Все разряды этого регистра доступны по записи и чтению. Обозначение разрядов регистра SCON приведено в табл. 3.

Таблица 3

Биты                
Обозн. SM0 SM1 SM2 REN TB8 RB8 TI RI

Назначение разрядов:

· SM0, SM1 – задают режим работы ПИ 0, 1, 2 или 3;

SM0 SM1 Режим Наименование Скорость передачи
      Сдвиговый регистр 8–битовый универсальный асинхронный приёмопередатчик (УАПП) 9 – битовый УАПП 9 – битовый УАПП fBQ/12 переменная, задается Т/С1     fBQ/64 илиfBQ/32 переменная, задается Т/С1

· SM2 – разрешение многопроцессорной работы. В режимах 2 и 3 при SM2=1 флаг RI не активизируется, если девятый принятый бит данных равен «0». В режиме 1 при SM2=1 флаг RI не активизируется, если не принят стоп-бит, равный «1». В режиме 0 SM2 должен быть установлен в «0»;

· REN - разрешение приема последовательных данных. Устанавливается и сбрасывается программным обеспечением, соответственно, для разрешения и запрета приема;

· ТВ8 – девятый бит передаваемых данных в режимах 2 и 3. Устанавливается и сбрасывается программным обеспечением;

· RB8 – девятый бит принятых данных в режимах 2 и 3.В режиме 1, если SM2 =0, RB8 является принятым стоп-битом. В режиме 0 бит RB не используется;

· ТI – флаг прерывания передатчика. Устанавливается аппаратно в конце времени выдачи 8-го бита в режиме 0 или в начале стоп-бита в других режимах. Сбрасывается программным обеспечением;

· RI – флаг прерывания приемника. Устанавливается аппаратно в конце времени приема 8-го бита в режиме 0 или через половину интервала стоп-бита в режимах 1, 2, 3 при SM2=0. При SM2=1 см. описание для бита SM2.

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

Прием с линии RxD осуществляет бит-детектор, который трижды считывает входное состояние и на основании 2 из 3 измерений определяет значение принятого бита, затем записывает этот бит в сдвиговый регистр приемника. После приема всего байта данных происходит запись в буфер приемника, откуда могут быть программно считаны.

Буфер приемника и буфер передатчика при программном доступе имеют одинаковое имя SBUF и адрес 99Н.

Если команда использует SBUF как регистр источника, то обращение происходит к буферу приемника.

Если команда использует SBUF как регистр назначения, то обращение происходит к буферу передатчика. Во всех режимах работы ПИ передача инициируется любой командой, которая использует SBUF как регистр назначения.

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

Прием и передача начинаются с младшего разряда и заканчиваются старшим разрядом.

Скорость приема и передачи зависят от используемого кварцевого генератора и выбранного режима приема/передачи. Для режимов, в которых скорость определяется таймером/счетчиком 1, константы программирования таймера приведены в таблице 4.

Таблица4

Режим работы ПИ Скорость приема/ передачи, Кбод fBQ, МГц SMOD Разряды TMOD ТН1 Приме-чание
С/Т М1 М0
1,3 Макс.1000 Макс: 375 62,5 19,2 9,6 4,8 2,4 1,2 0,1375 0,110 0,110 11,059 11,059 11,059 11,059 11,059 11,986 Х Х Х Х Х Х Х   X X FFH FDH FDH FAH E4H E8H 18H 72H FEH     TL1= EBH

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: