Рефераты

Ответы к Экзамену по Микропроцессорным Системам (микроконтроллеры микрокопроцессоры)

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

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

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

будет равен 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). К АС-

подключается AIN1(PB3), либо один из входов PA0..PA7 через мультиплексор.

Компаратор формирует запрос на прерывание если бит ACIE регистра ACSR

установлен в 1. Формирование запроса возможно по переднему или заднему

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

Установка прерывания битами ACIS0/ACIS1.

|ACIS0 |ACIS1 |Режим прерывания |

|0 |0 |Прерывание по любому переключению выхода компаратора |

|0 |1 |Зарезервировано |

|1 |0 |Прерывание по падающему (заднему) фронту на выходе компаратора|

|1 |1 |Прерывание по нарастающему (переднему) фронту на выходе |

| | |компаратора |

При изменении состояния битов ACIS0/ACIS1 прерывание по аналоговому

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

(ACIE) в регистре ACSR, иначе при изменении состояния битов может произойти

прерывание.

В работе компаратора используются регистры:

ACSR (Analog Comparator Control and Status Register) – управления АК

SFIOR (Special Function Input Output Register) – специальных функций

ввода/вывода

ADCSR (ADC Status Register) – состояния аналого-цифрового преобразователя

ADCMUX (ADC Multiplexer) – мультиплексора аналого-цифрового преобразователя

SREG (Status Register) – состояния микроконтролера

|Регистр|Биты |

|0 |x |xxx |AIN1 |

|1 |1 |xxx |AIN1 |

|1 |0 |000 |PA0 |

|1 |0 |001 |PA1 |

|1 |0 |010 |PA2 |

|1 |0 |011 |PA3 |

|1 |0 |100 |PA4 |

|1 |0 |101 |PA5 |

|1 |0 |110 |PA6 |

|1 |0 |111 |PA7 |

Значения битов:

ACD (Analog Comparator Disable) – если установлен в 1, АК отключен. При

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

бита ACIE.

ACBG (Analog Comparator Bandgap) – когда бит установлен и BOD позволяет

(fuse-бит BODEN запрограммирован), фиксированное напряжение 1,22 В

поступает на вход АС+ , иначе к АС+ подключается контакт AIN0.

ACO (Analog Comparator Output) – выход аналогового компаратора

ACI (Analog Comparator Interrupt Flag) – устанавливается в 1 при

формировании компаратором прерывания. Подпрограмма обработки прерывания

будет выполняться при установленных битах ACIE и I(бит глобального

прерывания в регистре SREG). Очищается аппаратно при выполнении

подпрограммы обработки прерывания либо вручную. Очищается при модификации

командами SBI, CBI других битов регистра ACSR.

ACIE (Analog Comparator Interrupt Enable) – установка в 1 разрешает

прерывание по аналоговому компаратору (ANA_COM) при установленном бите I в

SREG.

ACIC (Analog Comparator Input Capture Enable) – установка в 1 разрешает

захват входа таймера/счетчика1 по переключению АК.

ACIS1,ACIS0 (Analog ComparatorInterrupt Mode Select) выбор режима

прерывания.

ACME (Analog Comparator Multiplexer Enable) – 1 подключает мультиплексор к

АК. При подключении должен быть сброшен бит ADEN (ADC Enable) в регистре

ADCSR (аналогово-цифровой преобразователь выключен).

Битами MUX2..0 в регистре мультиплексора ADMUX выбирается контакт порта

PORTA (PA7..PA0).

9. ПОРТЫ ВВОДА-ВЫВОДА

9.1. Организация ввода/вывода

Порты ввода-вывода обеспечивают ввод и вывод данных в параллельном формате.

Обычно порты ввода-вывода выполняются 8-разрядными. В режиме ввода данные с

внешних контактов порта пересылаются в регистры микроконтроллера. В режиме

вывода данные из регистров перемещаются на контакты микроконтроллера. Вывод

данных, как правило, производится в «защелку» порта. Данные при этом

присутствуют на выходных контактах до новой операции вывода в этот порт. В

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

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

В зависимости от выполняемых функций порты могут быть:

0 однонаправленными, предназначенными только для выполнения одной из

операций (ввод или вывод) по всем линиям;

° двунаправленными, предназначенными для выполнения любой из операций

ввода-вывода по всем линиям одновременно; направление передачи может

быть изменено программно в процессе работы;

° с индивидуальной настройкой линий, направление передачи данных по

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

Последний вариант построения схемы порта в настоящее время

наиболее распространен. Например, микроконтроллер АТтеда163 имеет 32 линии

ввода-вывода с индивидуальной настройкой, сгруппированных в 4 параллельных

порта: порт А порт В, порт С, порт О. Направление передачи данных любого

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

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

регистров, по три на каждый из портов (рис. 58):

° регистры данных (Dafa Register): PORTA , POF< tb, PORTC и

PORTD;

0 регистры направления (Data Direction Register): DDRA,

DDRB, DDRC и

DDRD;

° регистры входных контактов (Port A Input Pins). PINA; PINB, PINC и

FIND.

Все выводы портов имеют индивидуальные подтягивающие резисторы (pull-up

resistors). Для подключения этих резисторов в регистре специальных функций

ввода/вывода SFIOR (Special Function Input Output Register) предусмотрен

бит PUD (Pull-up Disabled).

[pic]

Любая линия порта выполняет функции выхода при записи логической единицы в

соответствующий бит регистра направления DDRx (x e А, В, С, D).

Регистры PINx не хранят информацию и фактически не являются настоящими

регистрами. Они разрешают доступ к физическим сигналам на линиях

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

порта, а при чтении PINx -значение на контактах порта. Регистры PINx

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

чтения и записи.

Внутренние подтягивающие резисторы подключаются только при PUD=0, если

контакты портов сконфигурированы как входы

Выходы портов выдерживают втекающий ток до 20mA и могут быть

непосредственно подключены к светодиодным индикаторам. Однако, вытекающий

ток порта не должен быть более 4 мА, а суммарная загрузка порта - не более

80 мА.

9.2. Алгоритмы обмена данными

Порты ввода-вывода предназначены для связи микроконтроллера с различными

объектами и могут реализовывать различные алгоритмы обмена данными:

0 асинхронный программный обмен,

0 синхронный обмен,

0 ввод-вывод с сигналами квитирования.

Обмен данными между портами и объектами обеспечивается специальными

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

АСИНХРОННЫЙ ОБМЕН

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

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

Предполагается,

Что объект всегда готов к обмену: при вводе - данные в момент выполнения

инструкции in

присутствуют на линиях порта, при выводе -данные будут прочитаны с линий

порта до следующего вывода.

Например, микроконтроллер ATmega163 осуществляет асинхронный вывод данных

nпри выполнении фрагмента программы:

equporta = $1B ;

.equ ddra = $1А ;

cseg

ldir16,$FF ;запись$РРвг16

out ddra, r16 включение порта А на вывод

out porta, rO ;вывод данных из регистра гО в порт А.

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

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

при имении фрагмента программы:

equpina = $19

cseg

in rO, pina ; ввод данных из порта pina в регистр гО.

По адресу $19 в пространстве ввода-вывода микроконтроллера размещен регистр

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

инструкции.

симплексный обмен

Симплексным считается однонаправленный обмен данными. Такой обмен обычно

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

•провождается сигналом синхронизации (стробом). Строб генерируется

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

регистр приемника.

При выводе данных сигнал строба должен сформировать микроконтроллер,

используя для этого специальные линии шины управления или отдельные биты

портов ввода-вывода.

На рис. 9.2 показан вариант соединения микроконтроллера ATmega163 с

посимвольным принтером, имеющим 8-битный вход для приема данных DATA, выход

сигнала готовности READY и вход стробирования #STB. Активным на входе

стробирования является сигнал низкого уровня.

Порт PORTA микроконтроллера и бит РВ6 порта PORTB программируются на вывод

данных, бит РВ2 порта PORTB на ввод. Подпрограмма вывода должна:

0 осуществить проверку готовности принтера (чтение сигнала готовности

принтера READY и его анализ),

° при обнаружении сигнала READY=1 вывести данные в порт PORTA,

° подтвердить вывод данных выводом сигнала стробирования #STB=0 для

записи данных в принтер.

[pic]

Рис. 9.2. Подключение принтера к микроконтроллеру

Режим синхронного ввода позволяет точно задать момент считывания данных с

объекта. В этом режиме сигнал стробирования, подтверждающий готовность

данных, поступает с объекта на микроконтроллер. При появлении строба

микроконтроллер должен осуществить ввод данных с порта.

полудуплексный обмен

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

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

направлении. Направление передачи данных порта меняется в процессе работы в

зависимости от решаемой в текущий момент задачи. На рис. 9.3 изображен

вариант соединения микроконтроллера ATmega163 с объектом для обмена данными

в полудуплексном режиме.

В схеме на рис. 9.3 передача данных в параллельном формате осуществляется

по линиям порта PORTA. Для выдачи и приема четырех сигналов управления

обменом (сигналы квитирования): строб ввода #STB IN (Strobe Input), строб

вывода #STB OUT (Strobe Out), подтверждение ввода SACK IN (Acknowledge

Input) и подтверждение вывода #АСК OUT (Acknowledge Out), использованы две

линии порта PORTB и входы запросов на прерывания INTO и INT1.

При поступлении сигнала #STB IN = 0 контроллер должен выставить сигнал

подтверждения #АСК IN = 0 и осуществить запись во входной регистр порта

PORTA.. При низком уровне сигнала ASK IN объекту запрещается формировать

новый сигнал #STB !N. По окончании записи контроллер снимает сигнал #АСК

IN, разрешая повторную передачу данных.

Работа микроконтроллера в режиме вывода аналогична. Микроконтроллер выводит

данные в порт PORTA, подтверждая вывод сигналом #STB OUT = 0. Объект

формирует сигнал подтверждения #АСК OUT = 0, сообщая контроллеру о

готовности к приему данных. При снятии сигнала #АСК OUT контроллер должен

снять сигнал #STB OUT и может вновь перейти к выводу данных.

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

невозможна

дуплексный обмен

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

момент времени возможна передача данных в двух направлениях. В этом случае

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

порт. На рис. И 4 изображен вариант соединения микроконтроллера ATmega 163

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

[pic]

11 схеме на рис. 9.4 порт PORTA работает на ввод данных, порт PORTB - на

вывод, | пинии I 'СО и РС1 порта PORTC использованы для вывода сигналов

квитирования #АСК И #ЛСК OUT. Для ввода сигналов квитирования от объекта

#STB IN и #АСК OUT использованы входы запросов на прерывания INTO и INT1.

При таком подключении задача ввода данных в микроконтроллер получает

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

32. Аналого-цифровые преобразователи. Работа с АЦП микроконтроллера ATmega

163

Аналого-цифровой преобразователь ADC (Analog Digital Converter)

осуществляет преобразование напряжения в цифровой код. Он предназначен для

оцифровки и ввода в микроконтроллер аналоговых сигналов с различных

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

от типа построения меняются и свойства преобразователя.

Параллельный преобразователь

В параллельном преобразователе (рис. 1) входной сигнал подается сразу на

множество компараторов, осуществляющих сравнение сигнала с опорным

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

эталонное напряжение U0 на равные части.

Рис. 1. Параллельный аналого-цифровой преобразователь

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

Преобразователь последовательного приближения

Основными элементами преобразователя (рис. 2) является регистр

последовательных приближений, код из которого с помощью цифроаналогового

преобразователя преобразуется в напряжение. Компаратор СМР сравнивает

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

устройство управления воздействует на регистр.

Рис. 2. Преобразователь последовательного приближения

Преобразование выполняется за несколько тактов. В первом такте в старший

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

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

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

- сбрасывается. Далее, в том же порядке, формируется второй по старшинству

разряд результата, потом - третий и т.д. Для получения результата

необходимо n тактов, где число n равно разрядности преобразователя.

Интегрирующий преобразователь

Интегрирующий ADC для сравнения входного сигнала с эталонным использует

заряд конденсатора. Сначала (рис. 3) конденсатор в течении фиксированного

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

После это он разряжается постоянным током с определенным значением. Время

разряда конденсатора Т2 пропорционально значению входного напряжения. Оно

фиксируется с помощью счетчика и поступает на выход схемы (рис. 4).

Рис. 3. Интегрирование сигнала в преобразователе

Интервал времени T1 задается включением ключа S1. По окончании T1 ключ S1

размыкается, a S2 - замыкается. Опорное напряжение U0 должно иметь знак

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

управления и счетчик определяют выходной код D, пропорциональный интервалу

T2.

Рис. 10.4. Интегрирующий ADC

Интегрирующие схемы ADC имеют 8-16 разрядов и могут представлять результат

в двоичном или двоично-десятичном коде.

Сигма-дельта преобразователь

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

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

источника (рис. 5). Импульсы тока фиксированной длительности на каждом

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

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

количество импульсов, поступающих в суммирующую точку за фиксированный

период времени. Результат счета пропорционален входному напряжению. Рис. 5.

Сигма-дельта преобразователь

Управление АЦП микроконтроллера

В состав микроконтроллеров обычно включают 8 - 16-битные многоканальные

преобразователи с большим набором встроенных функций. При этом все функции

преобразователя программируются и могут быть изменены в процессе работы.

Например, микроконтроллер ATmega163 оснащен 10-разрядным ADC

последовательных приближений (рис. 10.6). ADC подсоединен к 10-канальному

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

преобразователя любой из восьми входных сигналов со входов ADCO...ADC7,

либо эталонное напряжение 1,22В. либо сигнал со входа AGND. Вывод AGND

рекомендуется подсоединить к точке с нулевым потенциалом GND (Ground). ADC

содержит схему выборки/хранения SHC (Sample&Hold Comparator),удерживающую

напряжение входа во время преобразования на неизменном уровне.

Рис. 6. Структура аналого-цифрового преобразователя

Аналого-цифровой преобразователь преобразует напряжение аналогового

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

приближений. Минимальное значение входного напряжения равно напряжению на

контакте AGND. максимальное значение не должно превышать напряжение на

контакте AREF. Результат в виде 10-битного двоичного числа D равен:

[pic]

где U-входное напряжение, a U0- опорное напряжение преобразователя.

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

внешний сигнал с вывода AREF, внутренний источник 2.56В, либо напряжение

питания аналоговой части микроконтроллера с вывода AVCC. Напряжение на

выводе AVCC не должно отличаться от напряжения питания Vcc более чем на

±0,3 В.

Например, если аналоговый мультиплексор подключает ко входу ADC эталонное

напряжение U =1,22B, а в качестве опорного напряжения использовать источник

U0=2,56В, то результат

преобразования:D=1,22*1024/2,56=488=$1Е8=0b111101000.

3. Общее понятие микропроцессора

Микропроцессор - программно управляемое устройство для обработки цифровой

информации и управления процессом этой обработки кристалл с элементами и

программа.

Характеристики: Программный опрос, Обмен через прерывания, Обмен

программным доступом к памяти.

Микропроцессорный комплект – совокупность микросхем и других интегральных

схем, совместимых по архитектуре, конструктивному исполнению и

электрическим параметрам, обеспечивающих возможность совместного применения

Архитектура – функциональные возможности аппаратных средств системы,

используемые для представления программных данных и управления процессом

вычислений.

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

перспективных видов техники. Их отличие от обычных БИС состоит в том, что

они содержат в своем составе управляющие элементы, позволяющие настроить

эти БИС на выполнение любых операций, т. е. на реализацию любой зависимости

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

что БИС с перестраиваемой логикой способны при соответствующей «настройке»

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

противоречие между степенью интеграции и требуемым объемом производства.

Набор управляющих сигналов, настраивающий БИС на выполнение определенной

функции, называется микрокомандой. Дальнейшее развитие программно -

перестраиваемой логики привело к тому, что БИС стали выполнять не одну, а

последовательность микрокоманд, т. е. алгоритм. Возникли БИС с

микропрограммным управлением.

Одной из реализаций БИС с микропрограммным управлением и явились

микропроцессоры. Всякий микропроцессор воплощает в себе главное свойство

упомянутых БИС — на его основе можно построить систему, реализующую любое

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

являются носителями информации, то, очевидно, что создаваемая

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

Итак, микропроцессор (МП) — это программно-управляемое устройство,

осуществляющее процесс обработки информации и построенное на одной или

нескольких больших интегральных схемах.

Первый микропроцессор появился в 1971 г

Возможны два способа решения поставленной задачи: аппаратный и программный.

Аппаратный способ имеет особенности:

для выполнения каждой операции используется индивидуальный операционный

блок;

распределение переменных по входам и выходам операционного блока не

изменяется в процессе реализации алгоритма;

порядок реализации алгоритма определяется схемой соединения операционных

блоков;

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

Программный способ реализации алгоритма имеет по сравнению с аппаратным два

основных преимущества:

во-первых, с усложнением алгоритма объем оборудования увеличивается

незначительно;

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

различные задачи.

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

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

Целесообразность применения МП в разрабатываемых системах:

Сложные алгоритмы;

Обработка больших массивов информации;

Частое обращение к ЗУ;

Число интегральных схем более 30;

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

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

секционные микропроцессоры.

Однокристальные микропроцессоры (КР580, КР581, К588, К1801, КА1808, КМ1810,

КН1811) получаются при реализации всех аппаратных средств процессора в виде

одной БИС. По мере увеличения степени интеграции элементов в кристалле и

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

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

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

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

аппаратурными ресурсами кристалла и корпуса. Поэтому более распространены

многокристальные секционные микропроцессоры.

Многокристальные секционные микропроцессоры (К583, К584, КР587, К589,

К1800, КР1802, КМ 1804) получаются в том случае, когда в виде БИС

реализуются части (секции) логической структуры процессора.

Микропроцессорная секция — это БИС, предназначенная для обработки

нескольких разрядов данных или выполнения определенных управляющих

операций. Секционность БИС микропроцессора определяет возможность

наращивания разрядности обрабатываемых данных или усложнения устройств

управления микропроцессором при «параллельном» включении большего числа

БИС. Многокристальные секционные микропроцессоры имеют разрядность от 2 ...

4 до 8 ... 16 бит и позволяют создавать высокопроизводительные процессоры

ЭВМ.

Микропроцессоры можно классифицировать и по технологии изготовления. Ниже

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

р - МДП - технология (К1814);

я - МДП - технология (КР580, КР581, К1801, К1809, КМ1810, КН1811, КМ1813,

КР1816);

ТТЛДШ - технология (К589, КР1802, КМ1804);

КМДП - технология (К586, К588...);

И2Л-технология (К583, К584, КА1808);

ЭСЛ - технология (К1800).

По назначению различаются универсальные и специализированные

микропроцессоры.

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

задач. Их производительность мало зависит от проблемной специфики решаемых

задач.

Специализация МП, т. е. его проблемная ориентация на ускоренное выполнение

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

решении только определенных задач.

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

цифровые (1 или 0) и аналоговые.

Сами микропроцессоры — это цифровые устройства, однако могут иметь

встроенные аналого-цифровые и цифроаналоговые преобразователи. Поэтому

входные аналоговые сигналы передаются в МП через преобразователь в цифровой

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

поступают на выход.

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

двухразрядные (К589);

четырехразрядные (К584, КР587, К1800, КМ1804, К1814);

восьмиразрядные (КР580, К583, КР1802, КМ1813, КР1816);

шестнадцатиразрядные (КР581, К588, К1801, К1809, КМ1810, КН1811).

По характеру временной организации работы различаются синхронные и

асинхронные микропроцессоры.

Синхронные микропроцессоры — это микропроцессоры, в которых начало и конец

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

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

операндов).

Асинхронные микропроцессоры позволяют начало каждой следующей операции

определить по сигналу фактического окончания выполнения предыдущей

операции.

По числу выполняемых программ микропроцессоры делятся на одно- и

многопрограммные.

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

Переход к выполнению другой программы происходит после завершения текущей

программы.

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

несколько (обычно несколько десятков) программ. Организация

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

осуществлять контроль за их состоянием и управлять большим числом

источников или приемников информации.

2. Логическая структура микропроцессорной системы

Для выполнения своих функций микропроцессор должен иметь регистры,

сумматоры, логические схемы, дешифраторы и другие элементы, которые

соединены между собой с помощью шин — соединительных линий. Схема, которая

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

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

Функции, реализуемые микропроцессором, определяются не только его

структурой, но и последовательностью управляющих слов (команд). При

изменении этой последовательности изменяется и выполняемая микропроцессором

функция. Для комплексной характеристики возможностей микропроцессора

пользуются понятием «архитектура микропроцессора».

Архитектура микропроцессора — это его логическая организация, определяемая

возможностями микропроцессора по аппаратной или программной реализации

функций, необходимых для построения микроЭВМ.

Архитектура микропроцессора отражает:

а) структуру микропроцессора;

б) способы обращения ко всем элементам структуры;

в) способы представления и форматы данных;

г) набор операций, выполняемых микропроцессором;

д) способы указания адреса данных;

е) форматы управляющих слов, поступающих извне;

ж) характеристики управляющих сигналов;

з) реакцию микропроцессора на внешние сигналы.

Зная архитектуру микропроцессора и всей микропроцессорной системы, можно

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

которая обеспечит выполнение заданной функции.

Обобщенную схему микропроцессора можно представить в виде, приведенном на

рис. 7.2. В этой структуре используется трехшинная организация работы.

Шиной называют группу линий передачи информации, объединенных общим

функциональным признаком. Приняты такие условные обозначения:

БА,

БД — буферные регистры адресов и данных;

БП — блок прерывания;

РОН — регистры общего назначения;

ИР — индексные регистры;

СТЕК — блок регистров;

УС — указатель стека;

ПС - программный счетчик;

А — аккумулятор;

АЛУ — арифметическо - логическое устройство;

РП — регистр признаков;

СИД — схема «инкремент-декремент»;

УУ — устройство управления;

РК — регистр команд;

ДК — дешифратор команд.

Конкретные микропроцессоры, как правило, не содержат всех узлов, показанных

на рис. В этих случаях соответствующие функции могут выполняться

программно, а в качестве некоторых специальных регистров могут

использоваться РОН или ячейки памяти. В ряде микропроцессорных комплексов

отдельные функциональные узлы могут выполняться в виде отдельных БИС.

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

Регистр управления мультиплексором ADMUX (ADC Multiplexer Selection

Register);

Регистр управления аналого-цифровым преобразователем ADCSR (ADC

Control and Status Register);

Регистры данных ADCL и ADCH (ADC Low и ADC High);

Регистр состояния микроконтроллера SREG (Status Register).

|0 |0 |AREF, внутреннее напряжение Vref |

| | |отключено |

|0 |1 |AVCC с внешним конденсатором на |

| | |контакте AREF |

|1 |0 |Резерв |

Бит 5 - ADLAR (ADC Left Adjust Result) - воздействует на запись результата

в регистры данных ADCL и ADCH. При ADLAR=0 можно использовать упрощенное 8-

битное преобразование.

Биты 4..О - MUX4..MUXO (Multiplexer bits) - предназначены для выбора

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

соответствии с таблицей 2. Изменение этих битов в

процессе преобразования, когда флаг ADIF в регистре ADCSR

установлен, не приводит к изменению результата.

Таблица 2. Выход входного сигнала ADC

|MUX4..0 |Подключаемый |

| |контакт |

|00000 |ADCO |

|00001 |ADC1 |

|00010 |ADC2 |

|00011 |ADC3 |

|00100 |ADC4 |

|00101 |ADC5 |

|00110 |ADC6 |

|00111 |ADC7 |

|01000. |Резерв |

|.11101 | |

|11110 |1.22V |

|11111 |0V (AGND) |

Регистр - ADCSR (ADC Control and Status Register) предназначен для

управления работой аналого-цифрового преобразователя.

Бит 7 - ADEN (ADC Enable) - разрешение работы ADC. Очистка бита запрещает

работу ADC. Запрещение ADC в процессе преобразования прекращает

преобразование.

Бит 6 - ADSC (ADC Start Conversion) - запуск преобразования ADC. В режиме

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

необходимо устанавливать бит ADSC в состояние 1. В циклическом режиме бит

ADSC устанавливается в состояние 1 только при запуске первого цикла

преобразования. Каждый раз после первой установки бита ADSC. выполненной

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

преобразование. Это пустое преобразование активизирует преобразователь.

ADSC будет сохранять состояние 1 в течение всего цикла преобразования и

сбрасывается по его завершению. При выполнении пустого преобразования,

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

завершения активируемого преобразования. Запись 0 в этот бит эффекта не

оказывает.

Бит 5 - ADFR (ADC Free Run Select) - установка циклического режима работы

ADC. При установленном в состояние 1 бите ADFR аналого-цифровой

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

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

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

Бит 4 - ADIF (ADC Interrupt Flag) - флаг прерывания ADC. Данный бит

устанавливается в состояние 1 по завершению преобразования и обновления

регистров данных. Прерывание по завершению преобразования ADC выполняется,

если в состояние 1 установлены бит ADIE и I - бит регистра статуса SREG.

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

соответствующего вектора прерывания. Кроме того, бит ADIF может быть очищен

записью во флаг логической 1. Этого необходимо остерегаться при чтении-

модификации-записи ADCSR, поскольку может быть запрещено отложенное

прерывание. Это применимо и в случаях использования команд sbi и cbi.

Бит 3 - ADIE (ADC Interrupt Enable) - разрешение прерывания ADC. При

установленных в состояние 1 бите ADIE и l-бите регистра SREG активируется

прерывание с вектором $1С по завершению преобразования ADC.

Биты 2..0 - ADPS2..ADPSO (ADC Prescaler Select Bits) - выбор коэффициента

предварительного деления. Данные биты определяют коэффициент деления

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

частоты ADC.

Таблица 3. Выход входного сигнала ADC

|ADPS2 |ADPS1 |ADPSO |Коэффициент деления|

|0 |0 |0 |Без деления |

|0 |0 |1 |2 |

|0 |1 |0 |4 |

|0 |1 |1 |8 |

|1 |0 |0 |16 |

|1 |0 |1 |32 |

|1 |1 |0 |64 |

|1 |1 |1 |128 |

Регистры ADCL и ADCH являются регистрами данных. Их содержимое зависит от

состояния бита ADLAR регистра ADMUX.

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

двух регистрах. Если младший регистр ADCL считан, то регистры не изменяются

до чтения старшего регистра ADCH. ADLAR бит в ADMUX воздействует на

представление результата.

Биты |7 |6 |5 |4 |3 |2 |1 |0 | |ADCH $05($25) |ADC9 |ADC8 |ADC7 |ADC6

|ADC5 |ADC4 |ADC3 |ADC2 | |ADCL $04($24) |ADC1 |ADC0 | | | | | | | |

-----------------------

Процессорное ядро

Память

Функциональные блоки

[pic]

[pic]

[pic]

Процессор Pentium 3

Кэш-память L1

Кэш-память L2

Шина процессора 100МГц

Частота = (Частота процессора)/2

AGP

North Bridge

Шина PCI

Video

Шина ISA

100МГц

100МГц

SDRAM

DIMM

Разъёмы PCI

South Bridge

IDE1

USB11

IDE2

USB21

GMOS

Super I/O

Разъёмы ISA

ROM

Клав. Мышь

COM1

Дисков.

COM2

LPT1

Flash BIOS

–??/???†???

[pic]

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


© 2010 БИБЛИОТЕКА РЕФЕРАТЫ