33367

Универсальный асинхронный приемопередатчик ОМК АТ90S8515

Доклад

Коммуникация, связь, радиоэлектроника и цифровые приборы

Управление работой приемопередатчика осуществляется с помощью регистра управления UCR. Текущее состояние приемопередатчика определяется с помощью регистра состояния USR. При чтении регистра UDR выполняется обращение к регистру приемника при записи к регистру передатчика. Работа передатчика разрешается установкой в 1 разряда TXEN регистра UCR UCSRB.

Русский

2013-09-05

38.5 KB

7 чел.

Универсальный асинхронный приемопередатчик ОМК АТ90S8515

Полнодуплексный универсальный асинхронный приемопередатчик (UART) осуществляет прием и передачу информации, представленной последовательным кодом. С помощью этого модуля микроконтроллер может обмениваться данными с различными внешними устройствами.

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

Модуль UART может обнаруживать и сигнализировать о следующих внештатных ситуациях: переполнение, ошибка кадрирования, неверный старт-бит. Для уменьшения вероятности сбоев в модуле реализована функция фильтрации помех.

Для взаимодействия с программой в модуле предусмотрены  3 раздельных прерывания, запрос на которые генерируется при наступлении следующих событий: «передача завершена», «регистр данных передатчика пуст» и «прием завершен».

Выводы микроконтроллера, используемые модулем UART, являются линиями порта D. В качестве входа приемника (RXD) используется вывод PD0, а в качестве передатчика (TXD) - вывод PD1.

Управление работой приемопередатчика осуществляется с помощью регистра управления UCR. Текущее состояние приемопередатчика определяется с помощью регистра состояния USR. Принимаемые и передаваемые данные (младшие 8 разрядов) хранятся в регистре данных UDR. Физически регистр UDR состоит из двух отдельных регистров, один из которых используется для передачи данных, другой - для приема. При чтении регистра UDR выполняется обращение к регистру приемника, при записи - к регистру передатчика. Основой передатчика и приёмника UART являются сдвиговые регистры, используемые в передатчике для преобразования параллельного кода в последовательный, а в приёмнике - последовательного кода в параллельный.

Работа передатчика разрешается установкой в «1» разряда TXEN регистра UCR (UCSRB). Если этот разряд сброшен (передатчик выключен), вывод PD1 (TXD) может использоваться как контакт ввода/вывода общего назначения. При установке разряда TXEN этот вывод подключается к передатчику UART и начинает функционировать как выход независимо от состояния разряда DDRD1 регистра DDRD.

Передача инициируется записью передаваемых данных в регистр данных UART - UDR. После этого данные пересылаются из регистра UDR в сдвиговый регистр передатчика. При этом возможны два варианта:

• новое значение записывается в регистр UDR после того, как был передан стоп-бит предыдущего слова. В этом случае данные пересылаются в сдвиговый регистр сразу же после записи в регистр UDR;

• новое значение записывается в регистр UDR во время передачи. В этом случае данные пересылаются в сдвиговый регистр после передачи стоп-бита текущего слова.

После пересылки содержимого регистра UDR в сдвиговый регистр флаг UDRE регистра USR (UCSRA) устанавливается в «1», что означает готовность передатчика к получению нового значения. В этом состоянии флаг остается до новой записи в регистр UDR. Одновременно с пересылкой формируется служебная информация: 0-й разряд сдвигового регистра сбрасывается в «0» (старт-бит), а 9-й (10-й) разряд устанавливается в «1» (стоп-бит). После загрузки сдвигового регистра его содержимое начинает сдвигаться вправо и поступать на вывод TXD в следующем порядке: старт-бит, данные (начиная с младшего разряда), стоп-бит. Сдвиг осуществляется по тактовому сигналу, вырабатываемому контроллером скорости передачи. Если во время передачи в регистр UDR было записано новое значение, то после передачи стоп-бита оно пересылается в сдвиговый регистр. Если же к моменту окончания передачи стоп-бита такой записи выполнено не было, устанавливается флаг завершения передачи ТХС регистра USR (UCSRA).

Прием данных разрешается установкой разряда RXEN регистра UCR (UCSRB). Если этот разряд сброшен (приемник выключен), вывод PD0 (RXD) может использоваться как контакт ввода/вывода общего назначения. При установке разряда RXEN этот вывод подключается к приемнику UART  и начинает функционировать как вход независимо от состояния разряда DDRD0 регистра DDRD.

Работает приемник следующим образом. Схема предварительной обработки опрашивает вход приемника с частотой, в 16 раз превышающей скорость передачи данных (для обработки одного разряда принимаемой последовательности производится 16 выборок входного сигнала). Обнаружение лог. «0» в режиме ожидания интерпретируется как появление переднего (спадающего) фронта старт-бита. После этого проверяется значение 8-, 9- и десятой выборок входного сигнала. Если значение хотя бы двух выборок из указанных равно лог. «1», старт-бит считается ложным (помеха), а приемник переходит к ожиданию следующего изменения входного сигнала с лог. «1» на лог. «0». В противном случае считается, что обнаружен старт-бит новой последовательности.

     После обнаружения старт-бита начинается обработка разрядов слова данных. Решение о значении принятого разряда принимается также по результатам 8-, 9- и десятой выборок входного сигнала. Состоянием разряда считается логическое значение, которое было получено по меньшей мере в двух из трех выборок. По мере распознавания разрядов принимаемой последовательности они помещаются, сдвигаясь влево, в сдвиговый регистр приемника.

Распознавание стоп-бита производится также по трем выборкам входного сигнала. Стоп-бит считается принятым, если значение хотя бы двух из трех выборок входного сигнала равно лог. «1». В противном случае фиксируется ошибка кадрирования и флаг FE регистра USR (UCSRA) устанавливается «1». Перед чтением регистра данных UDR следует всегда проверять состояние этого флага.

Независимо от того был или не был обнаружен стоп-бит в конце принимаемой посылки, принятое слово пересылается в регистр данных и устанавливается флаг RXC  регистра USR (UCSRA).

Если новое слово будет принято до того, как из регистра UDR будут считаны предыдущие данные, возникает переполнение. Об этом сигнализирует флаг OR регистра USR (UCSRA), который в этом случае устанавливается в «1». Установка этого флага означает, что принятые данные не могут быть пересланы из сдвигового регистра в регистр данных и, соответственно, являются потерянными. Сбрасывается указанный флаг только после обращения к регистру данных. Поэтому при высоких скоростях передачи либо при большой загрузке процессора пользователь после каждого чтения содержимого регистра UDR должен проверять состояние флага OR регистра USR (UCSRA) для обнаружения возможного переполнения.


 

А также другие работы, которые могут Вас заинтересовать

68045. Монотипія «Світ комах» 184.5 KB
  Актуалізація опорних знань Діти сьогодні ми з вами здійснимо подорож до дивовижного світу найменших створінь природи світу комах. Яких комах ви знаєте Чим комахи відрізняються від інших істот Чим вони корисні та чим вони шкідливі Як слід ставитись до комах.
68046. Конфликт, конфликтные ситуации, компромисс 50 KB
  Цель: Изучить основные понятия: конфликт конфликтные ситуации компромисс; Ознакомить учащихся и родителей с разными стилями реагирования в конфликтных ситуациях; Учить применять навыки конструктивного решения конфликтов; Развивать в учениках способность к формированию собственных способов...
68048. Регіональний конкурс «Найкращий відгук на сучасну дитячу прозу» 36.5 KB
  Матеріал до підготовки: мікрофон музика книжкові виставки: Книги які знають усе Сучасна дитяча проза формуляри читачів 4 та 5 класів. Щоб дізнаємося які книги подобаються нашим конкурсантам ми заглянемо у їхні формуляри. Запитання для читачів: Яка книга залишила у твоїй пам’яті...
68049. Виховний захід: «Інформація» 173 KB
  Після того як перший учасник закінчив розповідь він займає місце в аудиторії слухачів. Визначте хто яке місце зайняв якщо відомо що Галя зайняла друге місце Наталя хоч і не стала переможцем але в призери попала а Віра програла Ані. Аня Віра Галя Наталя 1 місце 2 місце 3 місце...
68050. Конкурс кмітливих та винахідливих «Мій розпорядок дня» 36 KB
  - Heute haben wir Wiederholungsstunde zum Thema «Unser Tageslauf». - Sagt, an welchem Thema haben wir gearbeitet? - Woruber haben wir zu diesem Thema gesprochen? - An welchem grammatischen Stoff haben wir in dieserZeit gearbeitet (Perfekt)?
68051. Конкурс юних філологів (сценарій виховного заходу для учнів 8 класу) 54.5 KB
  Наша мова найважливіша частина не лишень нашої поведінки а й нашої особистості нашої душі розуму Сьогодні тут зібралися справжні українці шанувальники мови знавці рідного слова. Сьогодні я пропоную вам демонструючи свої знання з мови ще й зібрати з нашого незвичайного фруктового дерева...
68052. “Птахи - наші вірні друзі.” Зустрічаємо птахів 77.5 KB
  Розширити та поглибити знання учнів про світ птахів вчити дітей вдумливо дбайливо ставитися до навколишнього середовища замислюватися над наслідками своїх дій. Виховувати любов до природи бажання оберігати птахів інтерес до усної народної творчості.
68053. Конспект виховної години на тему: «Безсердечна людина» 29 KB
  Дякуємо за гарну інсценізацію хто скаже як можна назвати головного героя одним словом А що означає безсердечна людина Назвіть вчинки які може зробити безсердечна людина. Діти а зараз давайте дамо характеристику слову безсердечна яка це людина запис на дошці зла погана чорна...