Микропроцессоры и микроконтроллеры

 
 
 
«Меня два раза спрашивали [члены Парламента]: «Скажите на милось, мистер Бэббидж, что случится, если вы введете в машину неверные цифры? Cможем ли мы получить правильный ответ?» Я не могу себе даже представить какая путаница в голове может привести к подобному вопросу.»
Charles Babbage
Русский | Українська


Микропроцессоры и микроконтроллеры :: Структура и программирование однокристальных микроконтроллеров :: 6.2 Описание режимов работы УАПП

6.2 Описание режимов работы УАПП

Режим 0 – синхронный ввод или вывод байта, сопровождаемый синхроимпульсами от МК. В этом режиме вывод RxD применяется как для приема, так и для передачи информации. Через вывод TxD выдаются синхроимпульсы, которые сопровождают каждый бит (импульсы с активным уровнем "0"). Информация выдается младшими битами вперед. Скорость передачи зависит от тактовой частоты резонатора FQ:

  [бит/с].

В этом режиме к выводам RxD и TxD могут быть подключены внешние сдвигающие регистры, которые будут формировать параллельный код при выдаче информации из МК, или будут превращать параллельный код в последовательный при приеме данных в МК. Таким образом, разработчики контроллера на основе MCS-51  получают в распоряжение относительно "медленный" параллельный порт.

В режимах 1, 2 и 3 вывод TxD (Transmit Data) используется только для передачи данных, а вывод RxD (Receive Data) – только для приема данных.

Режимы 1, 2 и 3 называют режимами асинхронной передачи, т.к. момент начала и завершения посылки задается не по отдельным проводникам, а специальными битами на той же линии, по которой передается информация.

Постоянный высокий уровень на линиях TxDи RxDсчитается отсутствием сигнала (пассивное состояние линии).

Режим 1 – посылка состоит из 10 битов: старт-бит("0"), восемь бит данных и стоп-бит("1"):

Скорость приема-передачи задают программным путем. Она зависит от значения бита управления PCON.7 (SMOD), и от частоты переполнения таймера 1, которая обозначена FOV T1. Наиболее удобно использовать таймер Т1 в конфигурации автоперезагрузки стартового числа. Тогда скорость передачи равна:

 [бит/с].                (6.1)

Прерывание от таймера T1 в этом случае должно быть запрещено.

Режим 2 – посылка состоит из 11 бит: старт-бит("0"), восемь бит данных,
бит B8, определяемый пользователем, и стоп-бит("1"):

При передаче "девятый" бит (B8) можно использовать, например, для контроля чётности количества "1" в байте данных, который передается, то есть для  проверки достоверности полученной информации. При приеме "девятый" бит поступает в разряд RB8 регистра SCON.

Частота передачи зависит от бита SMOD и тактовой частоты МК:

,  [бит/с]                                 (6.2)

Режим 3 – размер посылки, как для режима 2 (11 бит). Скорость приема-передачи определяют, как для режима 1 (формула 6.1).

Для любого режима к моменту завершения приема очередной посылки программным путем нужно выполнить RI = 0 (команда CLR RI). Перед передачей очередного байта программно нужно выполнить TI = 0 (команда CLR TI).

Принцип электрического соединения последовательных портов UART двух контроллеров следующий (т.н. полнодуплексное соединение):

Важно: передатчик и приемник должны быть настроены на одинаковые скорость передачи и вид посылки.

Для соединения УАПП микроконтроллера с COM-портом ПЭВМ нужно использовать преобразователи уровня, т.к. COM-порт не работает в ТТЛ-сигналах. Типовое решение – использовать микросхему MAX232.

Важно отметить, что стандартные скорости передачи, в частности, для связи с СОМ-портом ПЭВМ, не могут быть реализованы на типовой тактовой частоте МК FQ = 12 МГц. Так, наиболее популярные скорости передачи 9600 бит/сек и 19200 бит/сек точно реализуются при:

FQ = 11,0592 МГц;                                           NST = 253 для таймера Т1;

бит SMOD = 0 или 1 соответственно для указанных скоростей.

 

На правах рекламы:
Отдельно хотелось бы обратить внимание уважаемого читателя на статью "Разбираем ошибки в работе Рутокен ЭЦП 2.0 и ESMART Token ГОСТ для ЕГАИС" jacarta pki гост для егаис. Перейдя по ссылке вы найдёте подробное описание токенов для ЕГАИС, а также узнаете что лучше - рутокен или етокен.