порт. Дипломный проект дп 09. 02. 01 Эвм475102020 2020 Министерство образования и молодежной политики Свердловской области
Скачать 1.19 Mb.
|
4.8 Кнопка KLS7-TS6601Рисунок 17 - Кнопка KLS7-TS6601 Рисунок 18 - Габаритные размеры кнопки KLS7-TS6601 Таблица 17 - Электрические параметры
продолжение таблицы 17
4.9 Микроконтроллер ATMEGA164.9.1 Основные характеристики микроконтроллера ATMEGA16AVR RISC-архитектура - архитектура высокой производительности и малого потребления; система команд содержит 130 инструкций, большинство которых выполняется за один машинный цикл; единый 16-разрядный формат команд; производительность 16 MIPS на частоте 16 МГц; наличие аппаратного умножителя; 16 Кбайт Flash ПЗУ программ, с возможностью до 1000 циклов стирания/записи; 512 байт ЭСППЗУ (EEPROM) данных, с возможностью до 100000 циклов стирания/записи; 1 Кбайт оперативной памяти (SRAM); возможность программирования непосредственно в целевой системе через последовательные интерфейсы SPI и JTAG; возможность самопрограммирования; возможность внутрисхемной отладки в соответствии со стандартом IEEE 1149.1 (JTAG); различные способы синхронизации; встроенный RC-генератор с внутренней и внешней задающей RC-цепочкой или с внешним резонатором (пьезокерамическим или кварцевым); внешний сигнал синхронизации; 6 режимов пониженного энергопотребления (Idle, ADC Noise Reduction, Power-save, Power-down, Standby и Extended Standby); детектор снижения напряжения питания (BOD); программное снижение частоты тактового генератора; 21 источник прерываний (внутренних и внешних); ·многоуровневая система прерываний, поддержка очереди прерываний; возможность защиты от несанкционированного чтения и модификации памяти программ и данных; загрузочный сектор с независимыми битами защиты; возможность чтения памяти программ во время ее записи; два 8-разрядных таймера/счетчика с предварительным делителем частоты и режимом сравнения; 16-разрядный таймер/счетчик с предварительным делителем частоты, режимом сравнения и режимом внешнего события; сторожевой таймер WDT; четыре канала генерации выходных ШИМ-сигналов; аналоговый компаратор; 8-канальный 10-разрядный АЦП как с несимметричными, так и с дифференциальными входами; полнодуплексный универсальный синхронный/асинхронный приемопередатчик USART; последовательный синхронный интерфейс SPI, используемый также для программирования Flash-памяти программ; последовательный двухпроводный интерфейс TWI (аналог I2C) 32 программируемые линии ввода/вывода с уровнями ТТЛ; на эти линии выведена также поддержка периферийных функций; напряжения питания 2.7 … 5.5 В. Рисунок 16 - Блок-схема микроконтроллера ATMEGA16 Рисунок 17 - Порты ввода/вывода микроконтроллера ATMEGA16 4.9.2 Описание портов ввода/вывода микроконтроллера ATMEGA16Таблица 16 - Порты ввода/вывода микроконтроллера ATMEGA16
продолжение таблицы 16
Микроконтроллер ATmega16 имеет прогрессивную RISC архитектуру и энергонезависимую память программ и данных. Интерфейс микроконтроллера JTAG совместим с IEEE 1149.1. Микроконтроллер выполняет и специальные микроконтроллерные функции, такие как: сброс по подаче питания, программируемую индикацию кратковременного снижения напряжения питания, шесть режимов пониженного потребления и снижения шумов ADC и др. Питание микроконтроллера осуществляет источника постоянного напряжения 4,5 - 5,5 В. Тактовая частота работы микроконтроллера лежит в диапазоне 0 – 16 МГц. Ядро микроконтроллеров AVR выполнено по усовершенствованной RISC-архитектуре (enhanced RISC). Арифметико-логическое устройство (АЛУ), выполняющее все вычисления, подключено непосредственно к 32 рабочим регистрам, объединенным в регистровый файл. Практически каждая из команд (за исключением команд, у которых одним из операндов является 16-разрядный адрес) занимает одну ячейку памяти программ. Файл регистров быстрого доступа содержит 32 8- разрядных рабочих регистра общего назначения, связанных непосредственно с АЛУ. За один тактовый цикл из файла регистров выбираются два операнда, выполняется операция, и результат вновь возвращается в файл регистров. Все регистры ввода-вывода (РВВ) условно можно разделить на две группы – служебные регистры микроконтроллера и регистры, относящиеся к конкретным периферийным устройствам. Микроконтроллер ATmega16 имеет в своем составе три таймера-счетчика с условными именами Т0, Т1 и Т2. По функциональности 8-разрядные таймеры Т0 и Т2 аналогичны. Таймеры в процессе своей работы используют некоторые внешние выводы микроконтроллера в режиме альтернативных функций. Микроконтроллеры ATmega16 оснащены 10-разрядным АЦП последовательного приближения. Аналого-цифровой преобразователь характеризуется абсолютной погрешностью ±2 МЗР, интегральной нелинейностью ±0.5 МЗР и быстродействием до 15 тысяч выборок за секунду. На входе модуля АЦП всех моделей имеется 8-канальный аналоговый мультиплексор, предоставляющий в распоряжение пользователя 8 каналов с несимметричными входами. В качестве источника опорного напряжения для АЦП может использоваться как напряжение питания микроконтроллера, так и внутренний либо внешний источник напряжения. АЦП может функционировать в двух режимах: - режим одиночного преобразования, когда запуск каждого преобразования инициируется пользователем; - режим непрерывного преобразования, когда выполняется непрерывно через определенные интервалы времени. Микроконтроллер поставляется в корпусах двух типов: TQFP44 и PDIP40. Рисунок 18 - Конструкция корпуса PDIP4 4.9.3 Память программ и стекПамять программ представляет собой электрически стираемое ППЗУ (FLASH-ПЗУ). В связи с тем, что длина всех команд кратна одному слову (16 бит), память программ имеет 16-битную организацию. Объем памяти микроконтроллера ATmega16 составляет 16К (16x1024) 16-битных слов. Память программ логически разделена на две неравные части: область прикладной программы и область загрузчика. Последней может располагаться специальная программа (загрузчик), позволяющая микроконтроллеру самостоятельно управлять загрузкой и выгрузкой прикладных программ. Если же возможность самопрограммирования у микроконтроллера не используется, прикладная программа может располагаться и в области загрузчика. Для адресации памяти программ используется счетчик команд (Program Counter — PC). Размер счетчика команд составляет 12 бит, в зависимости от объема адресуемой памяти. По адресу $0000 памяти программ находится вектор сброса. После инициализации (сброса) микроконтроллера выполнение программы начинается с этого адреса (по этому адресу должна размещаться команда перехода к инициализационной части программы). Начиная с адреса $0002 памяти программ, располагается таблица векторов прерываний. Стек реализован программно. Он размещается в памяти данных, и его глубина определяется только размером свободной области памяти данных. В качестве указателя стека во всех моделях используется пара регистров ввода/вывода SPH: SPL, расположенных по адресам $ЗЕ ($5Е) и $3D ($5D) соответственно. Так как после подачи напряжения питания (или после сброса) в регистрах содержится нулевое значение, в самом начале программы указатель стека необходимо проинициализировать, записав в него значение верхнего адреса памяти данных. При вызове подпрограмм адрес команды, расположенной за командой вызова, сохраняется в стеке. Значение указателя стека при этом уменьшается на 2 или 3, в зависимости от размера счетчика команд. При возврате из подпрограммы этот адрес извлекается из стека и загружается в счетчик команд. Значение указателя стека соответственно увеличивается на 2 (3). То же происходит и во время прерывания. При генерации прерывания адрес следующей команды сохраняется в стеке, а при возврате из подпрограммы обработки прерывания он восстанавливается из стека. Стек доступен и программно. Для работы со стеком имеются две команды: команда занесения в стек (P USH) и команда извлечения из стека (POP). 4.9.4 Память данныхПамять данных микроконтроллера разделена на три части: регистровая память, оперативная память (статическое ОЗУ) и энергонезависимое ЭСППЗУ (EEPROM). Регистровая память включает 32 регистра общего назначения (РОН), объединенных в файл, и служебные регистры ввода/вывода (РВВ). В обеих областях регистров ввода/вывода располагаются различные служебные регистры (регистр управления микроконтроллера, регистр состояния и т. п.), а также регистры управления периферийными устройствами, входящими в состав микроконтроллера. Для хранения переменных помимо регистров общего назначения также используется статическое ОЗУ объемом от 512 байт до 8 Кбайт. Микроконтроллер, кроме того, имеет возможность подключения внешнего статического ОЗУ объемом до 64 Кбайт. Для долговременного хранения различной информации, которая может изменяться в процессе функционирования готовой системы (калибровочные константы, серийные номера, ключи и т. п.), в микроконтроллерах семейства может использоваться встроенная EEPROM-память. Ее объем составляет для различных моделей 512Кбайт. Эта память разложена в отдельном адресном пространстве, а доступ к ней осуществляется с помощью определенных РВВ. В адресном пространстве ОЗУ также расположены все регистры микроконтроллера, под них отведены младшие 96 (256) адресов Остальные адреса отведены под 512/1К/2К/4К.…64К ячеек статического ОЗУ. Рисунок 19 - Память данных 4.9.5 ПрерыванияМикроконтроллеры AVR семейства Mega имеют многоуровневую систему приоритетных прерываний. Младшие адреса памяти программ, начиная с адреса $0002, отведены под таблицу векторов прерывания. Каждому прерыванию соответствует адрес в этой таблице, который загружается в счетчик команд при возникновении прерывания. Положение вектора в таблице также определяет и приоритет соответствующего прерывания: чем меньше адрес, тем выше приоритет прерывания. Размер вектора прерывания зависит от объема памяти программ микроконтроллера и составляет 2 байта. Соответственно, для перехода к подпрограммам обработки прерываний в моделях используются команда JMP. Во всех микроконтроллерах семейства Mega, за положение таблицы векторов прерываний может быть изменено. Таблица может располагаться не только в начале памяти программ, но также и в начале области загрузчика, причем перемещение таблицы может быть осуществлено непосредственно в ходе выполнения программы. Для управления размещением таблицы прерываний используется регистр управления прерываниями GICR, расположенный по адресу $ЗВ ($5В). Для управления таблицей прерываний в этом регистре используются два младших бита: IVSEL (1-й бит) и IVCE (0-й бит). Для глобального разрешения/запрещения прерываний предназначен флаг I регистра SREG. Для разрешения прерываний он должен быть установлен в I, а для запрещения - сброшен в 0. Индивидуальное разрешение или запрещение (маскирование) прерываний производится установкой/сбросом соответствующих битов регистров масок прерываний, рассматриваемых ниже. При возникновении прерывания флаг I регистра SREG аппаратно сбрасывается, запрещая тем самым обработку следующих прерывании. Однако в подпрограмме обработки прерывания этот флаг можно снова установить в 1 для разрешения вложенных прерываний. При возврате из подпрограммы обработки прерывания (при выполнении команды RETI) флаг I устанавливается аппаратно. Все имеющиеся прерывания можно разделить на два типа. Прерывания первого типа генерируются при наступлении некоторого события, в результате которого устанавливается флаг прерывания. Затем, если прерывание разрешено, в счетчик команд загружается адрес вектора соответствующего прерывания. При этом флаг прерывания аппаратно сбрасывается. Он также может быть сброшен программно, записью лог. 1 в бит регистра, соответствующий флагу. Прерывания второго типа не имеют флагов прерываний и генерируются в течение всего времени, пока присутствуют условия, необходимые для генерации прерывания. Соответственно, если условия, вызывающие прерывание, исчезнут до разрешения прерывания, генерации прерывания не произойдет. Следует помнить, что при вызове подпрограмм обработки прерываний регистр состояния SREG не сохраняется. Поэтому пользователь должен самостоятельно запоминать содержимое этого регистра при входе в подпрограмму обработки прерывания (если это необходимо) и восстанавливать его значение перед вызовом команды RETI. Микроконтроллеры семейства Mega поддерживают очередь прерываний, которая работает следующим образом: если условия генерации одного или более прерываний возникают в то время, когда флаг общего разрешения прерываний сброшен (все прерывания запрещены), соответствующие флаги устанавливаются в 1 и остаются в этом состоянии до установки флага общего разрешения прерываний. 4.9.6 Регистры ввода/вывода микроконтроллера ATMEGA16Таблица 17 - Регистры ввода/вывода микроконтроллера ATMEGA16
продолжение таблицы 17
4.9.7 Регистры портов ввода/вывода используемые в программеРисунок 20 - Регистр DDRC Рисунок 21 - Регистр DDRB Рисунок 22 - Регистр PORTB Рисунок 23 - Регистр DDRA Рисунок 24 - Регистр PORTA Рисунок 25 - Регистр DDRD Рисунок 26 - Регистр TCCR1B Рисунок 27 - Регистр TCNT0 Рисунок 28 - Регистр TCCR0 Рисунок 29 - Регистр TCNT1 Рисунок 30 - Регистр WDTCR |