Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Микроконтроллеры PIC фирмы Microchip для начинающих выпуск №20


РАССЫЛКА Микроконтроллеры PIC фирмы Microchip для начинающих
Ведущий: Алексей (pont_a@mail.ru)


Доброго времени суток, дамы и господа!!

Итак, продолжаем разбирать периферийные модули микроконтроллеров PIC18 на примере микроконтроллера PIC18F452. Сегодня начнем рассматривать периферийный модуль UART! Начнем с общих понятий!

Очень часто разработка электронных устройств заключается в разработке самого устройства, а также программы для ПК, которая будет настраивать, и управлять данным электронным устройством. Совокупность всего этого называется ПАК (программно - аппаратный комплекс).
И часто при разработке встает задача, по какому интерфейсу связать персональный компьютер и само разработанное устройство. Обычно, выбирают RS-232 – стандартный COM-порт. А на устройстве интерфейс RS-232 реализуется посредством внешней микросхемы (аппаратный драйвер RS-232) и периферийного модуля UART самого микроконтроллера, который работает с этим драйвером.  В datasheet’ах  данный периферийный модуль называется, по-разному:  UART,   USART, AUSART или EAUSART.  Для нашего микроконтроллера модуль называется USART.

Открываем datasheet и находим пункт 16.0 ADDRESSABLE UNIVERSAL SYNCHRONOUS ASYNCHRONOUS RECEIVER TRANSMITTER (USART).
Как мы видим из общего описания, данный периферийный модуль может работать в нескольких режимах: асинхронный, синхронный master, синхронный slave. Также, посылка может быть, как 8-ми битной, так и 9-ти битной.

  • Асинхронный режим – режим, в котором передача каждого бита осуществляется строго по времени, вычисляемого из скорости приема/передачи, на которую настроен USART. Каждый фрейм (посылка одного байта) начинается со стартового бита, всегда равного нулю, и заканчивается стоповым битом, всегда равным единице.  Если, стоповый бит будет не равен единице, то приемник USART, будет выдавать ошибку фрейма. 

Выглядит фрейм следующим образом:

start

0

1

2

3

4

5

6

7

Stop

Т.е., для передачи одного байта, периферийному модулю будет необходимо отправить 10 бит в 8-ми битном режиме и 11 бит в 9-ом. Отсюда, время передачи одного байта вычисляется следующим образом:
например, у нас модуль USART настроен на скорость 19200.  1/19200 = 52 мкс  - это время передачи одного бита. Т.к. фрейм у нас состоит из 10-ти бит, то общее время передачи одного байта на скорости 19200 будет равно 52 мкс*10=520 мкс. Если режим 9-ти битный, то умножать надо на 11.

  • Синхронный master – режим, в котором фреймы передаются с использованием  CLK – импульсов, которые генерирует наш периферийный модуль USART.
  • Синхронный slave – режим, в котором фреймы передаются с использованием  CLK – импульсов, которые генерирует периферийный модуль USART другого микроконтроллера в режиме синхронный master.

Обычно USART используется только в асинхронном режиме.  Хотя, возможно есть разработки, где используется и синхронный режим.  Не буду Вас перед праздниками сильно загружать! Думаю, на сегодня хватит! На UART посвятим 3 выпуска рассылки. В дальнейшем, напишем элементарную программу работы с этим периферийным модулем, которая будет принимать байт и его же отправлять обратно! Поздравляю Вас с наступающим праздником – Днем Победы!   

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

Полный архив рассылки Вы можете прочитать на нашем сайте!  При любом опубликовании текстов данной рассылки ссылка на сайт http://www.2aplusa.ru обязательна!

Желаю Вам удачи! До скорой встречи!


С уважением, Алексей pont_a@mail.ru
Cайт разработчиков 2AplusA http://2aplusa.ru


В избранное