МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Ответы к Экзамену по Микропроцессорным Системам (микроконтроллеры микрокопроцессоры)

    например, требуется преобразовать двоичный четырехразрядный код в

    аналоговый сигнал тока. У четвертого, старшего значащего разряда (СЗР) вес

    будет равен 23=8, у третьего разряда - 22=4, у второго - 21=2 и у младшего

    (МЗР) - 20=1. Если вес МЗР IМЗР=1 мА, то IСЗР=8 мА, а максимальный выходной

    ток преобразователя Iвых.макс=15 мА и соответствует коду 11112. Понятно,

    что коду 10012, например, будет соответствовать Iвых=9 мА и т.д.

    Следовательно, требуется построить схему, обеспечивающую генерацию и

    коммутацию по заданным законам точных весовых токов. Простейшая схема,

    реализующая указанный принцип, приведена на рис. 3.

    Сопротивления резисторов выбирают так, чтобы при замкнутых ключах через

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

    тогда, когда соответствующий ему бит входного слова равен единице. Выходной

    ток определяется соотношением

    [pic]

    При высокой разрядности ЦАП токозадающие резисторы должны быть

    согласованы с высокой точностью. Наиболее жесткие требования по точности

    предъявляются к резисторам старших разрядов, поскольку разброс токов в них

    не должен превышать тока младшего разряда. Поэтому разброс сопротивления в

    k-м разряде должен быть меньше, чем

    ?R / R=2-k.

    Из этого условия следует, что разброс сопротивления резистора,

    например, в четвертом разряде не должен превышать 3%, а в 10-м разряде -

    0,05% и т.д.

    Рассмотренная схема при всей ее простоте обладает целым букетом

    недостатков. Во-первых, при различных входных кодах ток, потребляемый от

    источника опорного напряжения (ИОН), будет различным, а это повлияет на

    величину выходного напряжения ИОН. Во-вторых, значения сопротивлений

    весовых резисторов могут различаться в тысячи раз, а это делает весьма

    затруднительной реализацию этих резисторов в полупроводниковых ИМС. Кроме

    того, сопротивление резисторов старших разрядов в многоразрядных ЦАП может

    быть соизмеримым с сопротивлением замкнутого ключа, а это приведет к

    погрешности преобразования. В-третьих, в этой схеме к разомкнутым ключам

    прикладывается значительное напряжение, что усложняет их построение.

    11. Система сброса.

    Сброс- перевод МК в исходное состояние. При этом все регистры микропроц.

    Ядра устанавливаются во вполне определенные начальные состояния, и МК

    переходит к выполнения программы с фиксированного адреса начального адреса

    (обычно $00).

    Источниками сброса могут являться различные воздействия: включение питания

    и кратковременные его изменения, сигналы формируемые аппаратно внутри МК, а

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

    на адрес $00.

    Источники сброса МК Atmega163:

    - Сброс при включении питания. Происходит, если напряжение питания ядра

    ниже определенного порога (Vpot)

    - Внешний сброс. Происходит при поступлении сигнала низкого уросня

    длительностью >500нс на внешний контакт Reset микросхемы

    - Сброс сторожевым таймером.

    - Сброс при кратковременном провале напряжения питания. Происходим, если

    напряжение питания контроллера в процессе работы опускается ниже

    определенного порога(Vbot).

    По любой из этих причин Мк переходит к выполнению программы с адреса

    $00. В этой ячейке размещают инструкцию jmp с адресом программы

    инициализации.

    Все сигналы сброса детектируются на кристалле специальными схемами.

    - Схема сброса при включении питания (Power on reset circuit)

    контролирует напряжение питания Vcc и запускается при Vcc>Vpot. При

    Vcc=5V номинал Vpot=1.4V

    - Схема сброса при кратковременном провале Vcc(Brown out reset circuit)

    сравнивает Vcc с Vbot. Уровень Vbot программируется битом Bodlevel из

    группы з группы fuse-битов. При Bodlevel=1 Vbot=2.7V, Bodlevel=0

    Vbot=4

    - Схема внешнего сброса (External reset circuit) управляется внешним

    сигналом низкого уровня #Reset

    Сигналя с этих схем и с WDT фиксируются в регистре состояния MCUSR,

    объединяются по схеме «или» и устанавливают RS-триггер.

    Источник сброса может быть установлен путем чтения регистра MCUSR (биты

    0-3)

    20 ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД-ВЫВОД

    Интерфейс UART

    Асинхронный последовательный интерфейс UART (Universal Asynchronous

    Receiver

    Transmitter – универсальный асинхронный приемопередатчик) обеспечивает

    полудуплексный режим обмена по трем линиям. В обмене всегда участвуют

    только два

    устройства, одно из которых является передатчиком, второе – приемником.

    В режиме асинхронной передачи каждое слово данных передается автономно и

    передача может быть начата в любой момент времени.

    Стандартный формат асинхронной передачи изображен на рис. 13.1.

    Передача начинается со стартового (нулевого) бита. Затем передается от 5 до

    8

    бит данных. Передача заканчивается необязательным битом четного (или

    нечетного)

    паритета и одним (полутора или двумя) единичными стоповыми битами. После

    этого в

    любой момент времени может быть начат цикл передачи следующего слова.

    Подразумевается, что приемник и передатчик работают на одной скорости,

    измеряемой числом бит в секунду (бод). Внутренний генератор синхронизации

    приемника

    запускается при обнаружении стартового бита. В идеальном случае эти

    импульсы

    располагаются в середине битовых интервалов.

    Формат асинхронной передачи позволяет выявлять возможные ошибки:

    * если обнаружен стартовый бит и генератор синхронизации запущен, а по

    первому импульсу синхронизации фиксируется уровень логической единице,

    стартовый бит считается ложным;

    * если по импульсам синхронизации, соответствующим стоп-битам, в

    приемнике фиксируется логический нуль, сообщение считается ошибочным

    (ошибка кадра);

    * если контрольный бит не соответствует принятому соглашению о паритете,

    фиксируется ошибка паритета.

    Контроль формата позволяет обнаружить обрыв линии по отсутствию стоп-бита.

    Для асинхронной передачи принят стандартный ряд скоростей: 50, 75, 110,150,

    300,

    600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/с.:

    В простейшем случае асинхронный приемопередатчик имеет две сигнальные

    линии:

    TxD (Transmit Data)- выход,

    RxD (Receive Data) – вход,

    При этом два устройства-приемопередатчика должны быть соединены между

    собой тремя линями, или так называемым нуль-модемным кабелем (рис.13.2).

    УПРАВЛЕНИЕ UART

    Управление UART осуществляется через регистры ввода/вывода. В контроллере

    ATmega163 для управления используется 5 регистров (рис. 13.3):

    [pic]

    Регистр UDR (UART Data Register) – регистр данных UART

    Регистр UСSRА (UART Control and Status Register A) -регистр А управления и

    статуса UART

    Регистр UCSRB (UART Control and Status Register B) - регистр В управления

    и статуса UART

    Регистры UBRRH1 и UBRR (UART Baud Rate registers) – регистры скорости

    передачи.

    Регистр данных UDR (UART Data Register) физически является двумя

    регистрами:

    регистром передачи данных и регистром приема данных, использующими одни и

    те же

    адреса $0C ($2C). При записи в регистр запись производится в регистр

    передачи данных

    UART, при чтении происходит чтение содержимого регистра приема данных UART.

    Скорость обмена данными в UART задается с помощью бод-генератора (Baud Rate

    Generator). Он представляет собой делитель, генерирующий импульсы

    синхронизации с

    частотой, определяемой выражением:

    BAUD = частота в бодах (бит/сек),

    CK = частота кварцевого генератора,

    UBRR = содержимое 12-битного регистра UBRR (UART Baud Rate register).

    Физически 12-битный регистр UBRR размещается в двух 8-битных регистрах.

    Младшие 8 бит в регистре UBRR, старшие 4 бита – в регистре UBRRH1 (рис.

    13.3).

    При использовании стандартных кварцевых резонаторов, наиболее часто

    используемые скорости передачи в бодах могут быть получены установками

    UBRR,

    представленными в таблице 13.1. При установках UBRR, указанных в таблице,

    реальные

    скорости в бодах будут иметь отличия менее 2% от стандартных скоростей.

    Таблица 13.1.

    Установки UBRR при стандартных частотах синхронизации

    Фактически, для регулирования скорости передачи UART достаточно только

    одного

    регистра UDDR. В регистр UDDRH1 во всех рассмотренных случаях записывается

    константа $00.

    ПЕРЕДАТЧИК

    Блок-схема передатчика UART показана на рис. 13.3.

    Рис. 13.3. Передатчик UART

    Установленный в состояние 1 бит TXEN регистра UCSRB разрешает передачу

    данных UART. Передача инициируется записью передаваемых данных в регистр

    данных

    UDR. Данные пересылаются из UDR в сдвиговый регистр передачи в следующих

    случаях:

    Новый символ записан в UDR после того как был выведен из регистра

    стоповый бит предшествовавшего символа. Сдвиговый регистр загружается

    немедленно.

    Новый символ записан в UDR прежде, чем был выведен стоповый бит

    предшествовавшего символа. Сдвиговый регистр загружается после выхода

    стопового бита передаваемого символа, находившегося в сдвиговом

    регистре.

    Если из 10(11)-разрядного сдвигового регистра передачи выведена вся

    информация (сдвиговый регистр передачи пуст) данные из UDR пересылаются в

    сдвиговый

    регистр. В это время устанавливается бит UDRE (UART Data Register Empty)

    регистра

    статуса USR (UART Status Register). При установленном в состояние 1 бите

    UDRE

    приемопередатчик готов принять следующий символ. Запись в UDR очищает бит

    UDRE. В

    то самое время, когда данные пересылаются из UDR в 10(11)-разрядный

    сдвиговый

    регистр, бит 0 сдвигового регистра сбрасывается в состояние 0 (состояние 0

    - стартовый

    бит) а бит 9 или 10 устанавливается в состояние 1 (состояние 1 - стоповый

    бит). Если в

    регистре управления UCSRB установлен бит CHR9 (т.е. выбран режим 9-

    разрядного слова

    данных), то бит TXB8 регистра UCSRB пересылается в бит 9 сдвигового

    регистра передачи.

    Сразу после пересылки данных в сдвиговый регистр тактом бод-генератора

    стартовый бит сдвигается на вывод TxD. За ним следует LSB данных. Когда

    будет выдан

    стоповый бит сдвиговый регистр загружается новой порцией данных, если она

    была

    записана в UDR во время передачи. В процессе загрузки бит UDRE находится в

    установленном состоянии. Если же новые данные не будут загружены в UDR до

    выдачи

    стопового бита, флаг UDRE остается установленным. В этом случае, после того

    как

    стоповый бит будет присутствовать на выводе TxD в течение одного такта, в

    регистре

    управления и статуса UCSRA устанавливается флаг завершения передачи TxC (TX

    Complete Flag).

    ПРИЕМНИК

    Структурная схема приемника UART приведена на рис. 13.4.

    Рис. 13.4. Приемник UART

    Логика восстановления данных (Front-End Logic) производит выборку состояний

    вывода RxD с частотой в 16 раз большей, чем частота передачи. При

    нахождении линии в

    пассивном состоянии одиночная выборка нулевого логического уровня будет

    интерпретироваться как падающий фронт стартового бита и будет запущена

    последовательность детектирования стартового бита. Считается, что первая

    выборка

    обнаружила первый нулевой логический уровень вероятного стартового бита. На

    выборках

    8, 9 и 10 приемник вновь тестирует вывод RхD на изменение логических

    состояний. Если

    две или более из этих трех выборок обнаружат логические 1, то данный

    вероятный

    стартовый бит отвергается как шумовой всплеск и приемник начнет выявлять и

    анализировать следующие переходы из 1 в 0.

    Если же был обнаружен действительный стартовый бит, то начинает

    производиться выборка следующих за стартовым битом информационных битов.

    Эти биты

    также тестируются на выборках 8, 9 и 10. Логическое состояние бита

    принимается по двум и

    более (из трех) одинаковым состояниям выборок. Все биты вводятся в

    сдвиговый регистр

    приемника с тем значением, которое было определено тестированием выборок.

    Тестирование выборок битов принимаемых символов показано на рис. 13.5.

    При поступлении стопового бита необходимо, чтобы не менее двух выборок из

    трех

    подтвердили прием стопового бита (показали высокий уровень). Если же две

    или более

    выборок покажут состояния 0, то при пересылке принятого байта в UDR в

    регистре

    управления и статуса UСSRA устанавливается бит ошибки кадра FE (Framing

    Error). Для

    обнаружения ошибки кадра пользователь перед чтением регистра UDR должен

    проверять

    состояние бита FE. Флаг FE очищается при считывании содержимого регистра

    данных

    UART (UDR).

    Вне зависимости от того принят правильный стоповый бит или нет, данные

    пересылаются в регистр UDR и устанавливается флаг RXC в регистре управления

    UCSRA.

    Регистр UDR фактически является двумя физически отдельными регистрами, один

    из

    которых служит для передачи данных и другой для приема. При считывании UDR

    обращение ведется к регистру приема данных, при записи обращение ведется к

    регистру

    передачи. Если выбран режим обмена 9-разрядными словами данных (установлен

    бит

    CHR9 регистра UCR), при пересылке данных в UDR бит RXB8 регистра UCR

    загружается из

    девятого бита сдвигового регистра передачи. Если после получения символа к

    регистру

    UDR не было обращения, начиная с последнего приема, в регистре UCSRA

    устанавливается флаг переполнения OR. Это означает, что новые данные,

    пересылаемые

    в сдвиговый регистр, не могут быть переданы в UDR и потеряны. Бит OR

    буферирован и

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

    для

    обнаружения переполнения, необходимо всегда проверять флаг OR после

    считывания

    содержимого регистра UDR.

    При очищенном (сброшенном в логическое состояние 0) бите RXEN регистра UCR

    прием запрещен.

    24. Таймер-счетчик 0.

    8-ми разрядный Т/С 0тактируется сигналом синхронизации процессорного ядра

    или встроенного предделителя, или от внешнего контакта ТО.

    Предназначен для выполнения простейших операций: его содержимое программно

    доступно процессорному ядру для чтения /записи, а при переполнении счетчика

    генерируется запрос на прерывание программы.

    Регистры управления:

    р-р управления TCCR0 - управляет тактовой частотой Т/С0 (биты 0-2)

    р-р данных TCNT0 – хранит содержимое счетчика (Read/Write)

    р-р флагов прерывания TIFR

    р-р маски прерывания TIMSK

    р-р состояния МК SREG

    22. Подключение клавиатуры и индикация.

    Большинство микропроцессорных систем в своей работе предполагают

    возможность изменения внутренних параметров программы, необходимость

    отображения для пользователя каких-либо данных. Т.о. возникает

    необходимость включения в систему средств ввода/вывода. Как правило для

    этого используются клавиатура и различные индикаторы.

    Существует несколько способов подключения клавиатуры к портам ввода/вывода:

    Проще всего на каждый вход непосредственно подключать одну клавишу. При

    этом для обеспечения помехозащищенности ненажатое состояние подключают к

    напряжению питания, через подтягивающий резистор, а при нажатии вход

    замыкается на землю.

    Однако в первом случае не эффективно используются входы микроконтроллера,

    как правило находящиеся в дефиците, ведь обычно предполагается

    одновременное нажатие лишь одной клавиши. Можно подключить клавиатуру через

    мультиплексор (с инвертирующими входами), тогда на N входов

    микроконтроллера можно подключить до 2N клавиш.

    Кроме того клавиатуру можно организовать в виде матрицы. Тогда в матрице из

    k столбцов и N строк, все клавиши одной строки подключаются к одному входу

    микроконтроллера/мультиплексора, а выбор столбца осуществляется подачей

    сканирующего сигнала на один из k выходов подключенных к столбцам матрицы.

    В случае, когда в ненажатом состоянии клавиши подтянуты к VCC, в качестве

    сканирующего сигнала ипользуется 0.

    Выбор конкретной реализации зависит от неоходимого количества клавиш,

    свободных портов микроконтроллера, возможности использовать дополнительные

    микросхемы (мультиплексоров).

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

    «дребезга контактов». Защита от дребезга может осуществляться как

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

    прямую, а через T-триггер.

    Индикация может осуществляться с использованием: светодиодов сегментных

    индикаторов

    Индикаторы могут быть как светодиодные, так и жидкокристаллические, и иметь

    различное число сегметов.

    Как светодиоды, так и сегментные индикаторы могут подключаться к портам

    микроконтроллера напрямую, либо через дешифратор/демультиплексор.

    Набор символов отображаемых сегментными индикаторами может определяться

    программно через таблицу декодирования, либо аппаратно логикой внешней

    микросхемы дешифратора.

    Схемы подключения индикаторов к системе могут быть разными:

    Простая: один порт – один индикатор

    Различные варианты распараллеливания канала данных либо канала выбора

    индикатора

    Динамическая индикация (число знаков ограничивается скважностью) Рис. 1

    Динамическая индикация методом досчета (скважность постоянная) Рис. 2

    |[pic] | |

    |Рис. 1 |Рис. 2 |

    [pic]

    Билет 30. Аналоговые компараторы.

    Аналоговые компараторы (АК) осуществляют сравнение двух напряжений.

    Результатом сравнения является логический сигнал, фиксирующий момент

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

    качестве запроса на прерывание. При этом пользователь может программировать

    формирование запроса по переднему или заднему фронту сигнала, либо по

    любому его изменению.

    Схема компаратора микроконтроллера ATmega163.

    Аналоговый компаратор сравнивает уровни на положительном (АС+) и

    отрицательном (АС-) входах. При напряжениии на входе АС+ большем, чем

    напряжение на входе АС- , выход аналогового компаратора АСО устанавливается

    в состояние 1.

    В микроконтроллере ATmega163 качестве входа АС+ может быть использован

    внутренний источник напряжения 1,22 В либо вход AIN0(PB2). К АС-

    Страницы: 1, 2, 3, 4, 5, 6


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.