Форматы посылки
Последовательная посылка состоит из бит данных, бит синхронизации (старт и стоп-биты), а также опционального бита паритета для поиска ошибок. УСАПП поддерживает все 30 комбинаций следующих форматов посылок:
- 1 старт-бит
- 5, 6, 7, 8 или 9 бит данных
- без паритета, с битом четности, с битом нечетности
- 1 или 2 стоп-бита
Посылка начинается со старт-бита, а за ним следует передача бит данных, начиная с самого младшего разряда. Затем следует передача остальных бит данных (макс. число бит данных 9), которая заканчивается передачей старшего разряда данных. Если разрешена функция контроля паритета, то сразу после бит данных передается бит паритета, а затем стоп-биты. После завершения передачи посылки имеется возможность либо передавать следующую посылку либо перевести линию связи в состояние ожидания (высокий уровень). Рисунок 82 иллюстрирует возможность сочетания форматов посылки. Наличие прямоугольной скобки указывает на опциональность данного формата посылки.
Рисунок 82. Форматы посылки
St - Старт-бит имеет всегда низкий уровень.
0…8 - Номер бита данных.
P - бит паритета: четность или нечетность.
Sp1,Sp2 - Стоп-бит имеет всегда высокий уровень.
IDLE - состояние ожидания, в котором приостановлена передача на RxD или TxD. В состоянии ожидания на линии должен быть высокий уровень.
Формат посылки, который используется УСАПП, задается битами UCSZ2:0, UPM1:0 и USBS в регистрах UCSRB и UCSRC. Приемник и передатчик используют одни и те же установки форматов. Обратите внимание, что изменение установок любого из этих бит может привести к повреждению текущего сеанса связи, как для приемника, так и для передатчика.
Биты выбора длины передаваемых данных (UCSZ2:0) определяют из скольки бит данных состоит посылка. Биты режима паритета УСАПП (UPM1:0) разрешают передачу/контроля бита паритета и устанавливают тип паритета: четность, нечетность. Выбрать один или два стоп-бита позволяет бит выбора стоп-бита УСАПП (USBS). Приемник игнорирует второй стоп-бит. Флаг ошибки посылки FE позволяет выявить ситуацию, когда первый стоп-бит равен 0.
Вычисление бита паритета
Бит паритета вычисляется путем выполнения логической операции исключающего ИЛИ над всеми битами данных. Если используется нечетность, то результат этой операции инвертируется. Сказанное отражено в следующих выражениях:
где
- PЧЕТН - бит четного паритета;
- PНЕЧЕТН - бит нечетного паритета;
- dn - n-ый бит данных в посылке.
После разрешения, бит паритета передается между последним битом данных и первым стоп-битом.
|