КУРСОВАЯ ATMEGA. Расшифровка и анализ задания 4 2 Разработка процессорного модуля, интерфейса, упрощенной
![]()
|
СОДЕРЖAНИЕ
ВВЕДЕНИЕ С развитием технологии цифровых интегральных схем появилась возмож-ность создавать сложные устройства обработки цифровой информации в виде компактных микросхем. Однако увеличение сложности реализуемого алгоритма обработки, как правило, сужает область его применения. Устранить противоречие между сложностью БИС и ее универсальностью удалось за счет программирова-ния выполняемых микросхемой функци В настоящее время практически невозможно указать какую-то отрасль науки и производства, в которой бы не использовались микропроцессоры (МП) и микро-ЭВМ. Универсальность и гибкость МП как устройств с программным управлением наряду с высокой надежностью и дешевизной позволяют широко применять их в самых различных системах управления для замены аппаратной реализации функций управления, контроля, измерения и обработки данных. Применение МП и микро-ЭВМ в системах управления промышленным оборудованием предполагает, в частности, использование их для управления станками, транспортировочными механизмами, сварочными автоматами, прокатными станами, атомными реакторами, производственными линиями, электростанциями, а также создание на их основе робототехнических комплексов, гибких автоматизированных производств, систем контроля и диагностики. Целью данного курсовой работы является разработка управляющей микро-ЭВМ, реализующей заданные взаимодействия с объектом управления и разработка программных средств системы, обеспечивающих выполнение заданного алгоритма управления. Расшифровка и анализ задания Задача на курсовую работу включают в себя набор исходных данных и ограничений для проектирования управляющей микро-ЭВМ. Задание определяет: - базовый микроконтроллер, на основе которого требуется построить управляющую микро-ЭВМ; - алгоритм управления определяется в задании видом функции f1, f2, t1, t2, t3. Система проектируется на базе микроконтроллера и включает в себя следующие основные устройства: - процессорный модуль, в качестве которого используется микроконтроллер AT89C2051 - память, состоящую из оперативного запоминающего устройства (ОЗУ) и постоянного запоминающего устройства (ПЗУ): - устройства параллельного ввода-вывода для связи с ОУ; - блок последовательного канала для связи с ЭВМ верхнего уровня; - программируемый системный таймер; - контроллер прерываний; - контроллер прямого доступа в память; - пульт управления. Процессорный модуль включает в себя микроконтроллер, и при необходимости, дополнительные БИС, обеспечивающие реализацию вспомогательных функций. Устройства ввода для связи с ОУ должны обеспечить ввод в процессорный модуль значений x1, x2, x3 двоичных датчиков, а также 8-разрядных двоичных кодов NU1, NU2, NU3, принимаемых с выходов аналого-цифрового преобразователя (АЦП). Сигнал датчика аварийной ситуации xa воспринимается только подсистемой прерываний. Устройства вывода на ОУ должны обеспечить выдачу двоичных управляющих воздействий y1, y2, y3 определенной длительности и кода управляющего напряжения Y4 – 8 – разрядного двоичного кода на вход цифроаналогового преобразователя (ЦАП). В структуру ОУ входит устройство, принимающее массив данных из ПЗУ (ОЗУ) в режиме прямого доступа в память (ПДП). Запрос на ПДП возникает асинхронно по отношению к процедуре управления. Системный таймер должен обеспечить отсчет временных задержек, реализуемых при работе алгоритма управления. Подсистема прерываний должна обеспечивать реакцию на системные запросы INT0 - INT3 и, кроме того, если инициатором обмена может выступать ВУ, то дополнительно должны быть организованы линии запросов на прерывания от УВВ ОУ. Если в системе предусмотрена радиальная система прерываний, то источник запроса идентифицируется программной. При векторной подсистеме прерываний необходимо предусмотреть контроллер прерываний, который, анализируя все запросы, выбирает наиболее приоритетный и, получив подтверждение от ПМ, выставляет на линии данных вектор прерывания. В качестве контроллера прерываний можно использовать любую серийную БИС соответствующего назначения (К580ВН59, К1810ВН59А, К1801ВП135 и др.) или разработать собственный контроллер на СИС. В радиальной подсистеме прерываний также можно использовать контроллер прерываний для фиксации запросов, генерации сигнала INT и программного анализа слова запросов или слова состояний. Канал ПДП должен обеспечить передачу массива данных только в одном направлении - из памяти к ВУ. Для реализации канала можно воспользоваться серийным контроллером ПДП (например, К580ВТ53) или разработать собственный упрощенный контроллер на один канал. Результатом проектирования подсистем ПДП и прерываний должны быть: - схема включения контроллера прерываний в систему (если он применяется); - карта распределения векторов прерываний в памяти; - схема подключения в систему КПДП. Пульт управления должен обеспечивать ввод в процессорный модуль значения 8 – разрядной двоичной константы К, ввод двоичного значения сигнала «СТОП», формирование сигнала начальной установки системы, вывод на светодиодную индикацию значений x1, x2, x3, y1, y2, y3, NU1, Y4. Алгоритмы управления, используемые для выполнения курсовой работы: Функция y1=f(x1, x2, x3) = X1 & ¬X2 X3 Функция NU=f (NU1, NU2, K) = NU1 - NU2 + K Время t1=80мкс; Время t2 =125мкс; Время t3 =75мкс. По полученным данным построим таблицу1-талица истинности Таблица 1- Таблица истинности
По таблице истинности можно сделать вывод, что сигнал Y принимает единичное значение 5 раз. В 1 случае при X1=0,X2=0,X3=1.Во 2 случае при X1=0,X2=1,X3=1. В 3 случае при X1=1,X2=0,X3=0. В 4 случае при X1=1,X2=0,X3=1.В 5 случае при X1=1,Х2=1,Х3=1 2 РАЗРАБОТКА ПРОЦЕССОРНОГО МОДУЛЯ, ИНТЕРФЕЙСА, УПРОЩЕННОЙ СТРУКТУРНОЙ СХЕМЫ 2.1Описание параметров микроконтроллера AT89C2051 Микроконтроллер AT89C2051 - низковольтная, быстродействующая CMOS 8-разрядная микроЭВМ с 2 Кб электрически стираемой флеш ПЗУ (PEROM). Устройство изготовлено, с использованием технологии энергонезависимой памяти высокой плотности фирмы Atmel и совместимо с промышленным стандартом MCS-51 по системе команд и назначению контактов. Соединение универсального 8-разрядного процессора с флеш-памятью на одном кристалле, делает Atmel AT89C2051 мощной микроЭВМ, которая обеспечивает гибкое и недорогое решение многих прикладных задач управления. Основные характеристики микроконтроллера AT89C2051: - 2Kбайт Перепрограммируемой флэш-памяти; - двухуровневая блокировка памяти программ; - 128 x 8-битная внутренняя оперативная память; - два 16-битных таймера / счетчика; - прямые выходы светодиодного привода; - встроенный аналоговый компаратор; - маломощные режимы холостого хода и выключения питания. AT89C2051 обеспечивает следующие стандартные возможности: 2 Кб флеш памяти, 128 байтов ОЗУ, 15 линий ввода/вывода, два 16-разрядных таймера/делителя, пяти векторная, двух уровневая система прерываний, полно/дуплексный последовательный порт, прецизионный аналоговый компаратор, встроенный осцилятор и тактовый генератор. Кроме того в микросхеме AT89C2051 применяется технология со статической логикой корректно работающая при снижении частоты тактового генератора вплоть до нулевого значения и поддерживает два программновыбираемых режима экономии мощности. Неактивный Режим приостанавливает работу ЦП. При этом выход из режима малого потребления может происходить при запросах то ОЗУ, таймера/делителя, последовательного порта или системы прерывания При принудительном переходе в режим пониженного потребления мощности сохраняется содержимое ОЗУ, но внутренний генератор микросхемы, останавливается, отключая все другие функции чипа до последующего аппаратного сброса. 2.2 Описание структурной схемы микроконтроллера AT89C2051 Микросхема выполнена в стандартном DIP – корпусе и имеет 20 выводов. Основное достоинство рассматриваемого микроконтроллера – это совместимость по системе команд с широко распространенной микросхемой фирмы Intel - MCS-51 (советский аналог 1816ВЕ51). Разработчики ставили задачу создать микросхему, максимально совместимую со своим аналогом, но при этом имеющую меньшие габариты и более удобную в применении. Для этого они отказались от одного из портов ввода/вывода, отказались от всех режимов, требующих внешних микросхем обвязки, встроили тактовый генератор в корпус контроллера и применили в качестве памяти команд электрически перепрограммирываемое ПЗУ, что дало возможность очень быстро и легко перепрограммировать микросхему. В структурной схеме (рисунок 1) представлены следующие блоки: FLASH - память программ, энергонезависимое ПЗУ(постоянное запоминающее устройство) что выполнено по технологии FLASH. Здесь хранится программа, которая будет исполняться блоком ALU микроконтроллера. RAM - оперативная память. В нее можно записывать данные из регистров, считывать данные в регистры, все операции с данными и расчеты производятся в регистрах. STACK POINTER- необходим для запоминания адресов, возврата из процедур обработки прерывания и подпрограмм. Его также можно использовать для временного хранения данных. ALU - это арифметико-логическое устройство выполняет арифметические и логические операции PSW- регистр флагов, отражает текущее состояние процессора. Timing and Control- блок управления и синхронизации, предназначен для выработки синхронизирующих и управляющих сигналов, обеспечивающих координацию совместной работы блоков ОЭВМ во всех допустимых режимах ее работы INSTRUCTION REGISTER - регистр команд, часть блока управления центрального процессора, который содержит инструкцию, выполняемую в настоящий момент или декодированную. INTERRUPT, SERIAL PORT, AND TIMER BLOCKS- Interrupt- контроллер прерываний, отвечающий за возможность последовательной обработки запросов на прерывание от разных устройств. serial port - Последовательный порт, информация через него передаётся по одному биту, последовательно бит за битом. OSC - генератор (подсоединяется кварцевый резонатор) TE - активация таймера. Analog comparator- аналоговый компаратор предназначен для сравнения непрерывно изменяющихся сигналов. DRIVERS- управляющее устройство, предназначенное для преобразования электрических сигналов, целью которого является управление чем-либо. DPTR - являтся16-битовой константой, указанной во втором и третьем байтах команды. Второй байт команды загружается в старший байт указателя данных (DPH), а третий байт - в младший байт указателя данных. PROGRAM COUNTER- счётчик команд, который указывает, какую команду нужно выполнять следующей. PC INCREMENTER - это специальный аппаратный модуль, выполняющий роль псевдорегистра. Когда в него копируется, а затем считывается содержимое регистра PC, его значение автоматически увеличивается на единицу. BUFFER- буфер, предназначенная для увеличения мощности входного сигнала. PROGRAM ADDRESS REGISTER-программа адресного регистра. ACC-аккумулятор ![]() Рисунок 1- Структурная схема микроконтроллера AT89C2051 2.3 Цоколевка и таблица выводов Микроконтроллера AT89C2051 На рисунке 2 представлена цоколевка микроконтроллера AT89C2051 PDIP/SONIC ![]() Рисунок 2- Цоколевка микроконтроллера AT89C2051 В таблице 2 приведены назначение выводов микроконтроллера AT89C2051. Таблица 2- Назначение выводов Микроконтроллера AT89C2051
2.4Система команд микроконтроллера АТ89С2051 Система команд микроконтроллера АТ89С2051 предоставляет большие возможности обработки данных, обеспечивает реализацию логических, арифметических операций, а также управление в режиме реального времени. Реализована побитовая, потетрадная (4 бита), побайтовая (8 бит) и 16-разрядная обработка данных. ПЗУ, ОЗУ, регистры специального назначения, АЛУ и внешние шины имеют байтовую организацию. Двухбайтовые данные используются только регистром - указателем (DPTR) и счетчиком команд (PC). Регистр указатель данных может быть использован как двухбайтовый регистр DPTR или как два однобайтовых регистра специального назначения DPH и DPL. Счетчик команд всегда используется как двухбайтовый регистр. Систему команд условно можно разбить на пять групп: -арифметические команды; -логические команды; -команды передачи данных; -команды битового процессора; -команды ветвления и передачи управления. существуют следующие типы адресации операндов-источников: -регистровая адресация; -прямая адресация; -косвенно-регистровая адресация; -непосредственная адресация; 2.5 Упрощённая схема микроконтроллера АТ89С2051 Таким образом, анализируя все приведенные выше данные о микроконтроллере можно построить упрощённую схему микропроцессорной системы (рисунок 3). ![]() Рисунок 3- Упрощенная схема микроконтроллерной системы Хранение информации происходит в модуле памяти, состоящего из блока FLASH, здесь хранится программа, которая будет исполняться блоком ALU микроконтроллера., и блока RAM, в нее можно записывать данные из регистров, считывать данные в регистры, все операции с данными и расчеты производятся в регистрах. Осуществление операции преобразования аналоговых сигналов с датчиков в цифровую форму и при помощи АЦП. Устройства ввода для связи с ОУ обеспечивают ввод значений x1, x2, x3, двоичных датчиков, а также 8 – разрядных двоичных кодов NU1, NU2, K, принимаемых с выходов АЦП. Устройства ввода-вывода (УВВ) обеспечивают ввод управляющих сигналов, и вывод результатов значений x1, x2, x3, NU1, NU2, Y1 на дисплей. Пульт управления обеспечивает ввод в систему значения 8 – разрядной двоичной константы К, ввод двоичного значения сигнала «СТОП», формирование сигнала начальной установки системы. 3 РАЗРАБОТКА ПОДСИСТЕМЫ ПАМЯТИ 3.1Карта памяти микроконтроллера АТ89С2051 На рисунке 4 изображена карта памяти микроконтроллера АТ89С2051 ![]() Рисунок 4- Карта памяти микроконтроллера AT89C2051 Память программ предназначена для хранения команд, управляющих функционированием микроконтроллера. В памяти программ хранятся также различные константы, не меняющиеся во время работы программы. Память программ в микроконтроллерах АТ89С2051 представляет собой электрически стираемое ППЗУ (FLASH-ПЗУ). 3.2ППЗУ ППЗУ программ. Встроенное перепрограммируемое ПЗУ объемом 2 Килобайта. Выполнено по технологии электрически стираемого ПЗУ (так называемая Флэш-память). В эту память записывается программа, по которой микроконтроллер начинает работать после включения питания и окончания сигнала сброса. Программирование ППЗУ программ производится при помощи специального устройства - программатора. Программатор последовательно, байт за байтом записывает программу в ячейки ПЗУ, начиная с первой. На техническом жаргоне это называется «прошить ПЗУ». Технология флэш-памяти допускает перепрограммирование, то есть повторную запись. Для этого информацию в ППЗУ сначала стирают. Для стирания используется повышенное напряжение 12 вольт. При этом напряжение питания микросхемы от 2.7 до 6 вольт (обычно оно равно 5 вольтам). Программатор может так же произвести стирание ППЗУ программ. При этом происходит стирание сразу всей записанной информации. В стертое ППЗУ программ можно «зашивать» новую программу. Допускается: 1000 циклов записи/стирания. 3.3Flash Память программ предназначена для хранения команд, управляющих функционированием микроконтроллера. В памяти программ хранятся также различные константы, не меняющиеся во время работы программы. Память программ в микроконтроллерах семейства Classic представляет собой электрически стираемое ППЗУ (FLASH-ПЗУ). Поскольку все команды занимают в памяти 16 бит (некоторые — 32 бита), память программ имеет 16-разрядную организацию. Соответственно, объем памяти составляет от 512 16-разрядных слов FLASHПЗУ, используемое в микроконтроллерах AVR, рассчитано как минимум на 1000 циклов стирания/записи. 3.4 ОЗУ Внутреннее ОЗУ объемом 512 байт может быть переадресовано в течение инициализации. По умолчанию, после сброса ОЗУ устанавливается по адресам $0000-$01FF. ОЗУ состоит из статических ячеек памяти. Содержимое ОЗУ сохраняется также при подаче поддерживающего напряжения. Анализ памяти микроконтроллера позволяет утверждать, что дополнительные модули ОЗУ и ПЗУ в данной системе не потребуются, так как реализация алгоритма может быть осуществлена за счет внутренних ресурсов микроконтроллера. 4 РАЗРАБОТКА ПОДСИСТЕМ ВВОДА И ВЫВОДА, ПРЕРЫВАНИЙ, ПДП. В этом разделе будет рассмотрено подсистем ввода и вывода, прерываний, прямого доступа к памяти микроконтроллера. Рассмотрена целесообразность подключения внешних устройств, для реализации заданного алгоритма. 4.1 Счётчик Kаждый счетчик использует один или более выводов микроконтроллера. Kак правило, эти выводы — линии портов ввода/вывода общего назначения, а функции, реализуемые этими выводами при работе совместно с таймерами/счетчиками, являются их альтернативными функциями. Счетчик может использоваться для формирования временных интервалов или для подсчета числа внешних событий 4.2 Порт P1 8-разрядный двунаправленный порт ввода/вывода. Порт со держит линии P1.2 к P1.7, имеющие внутренние нагрузочные резисторы. P1.0 и P1.1 требуют внешней нагрузки. P1.0 и P1.1 также являются положительным (AIN0) и отрицательным (AIN1) входами встроенного аналогового компаратора. Все выводы Порта P1 содержат буферы вывода, которые могут выдерживать нагрузку до 20 mA и могут непосредственно управлять светодиодными дисплеями. Когда на какой-либо выход Порта P1 подана логическая 1,они могут использоваться как входы. Когда выводы P1.2 к P1.7 используются как входы и извне на них подан сигнал низкого уровня, из них будет вытекать ток от источника (IIL) благодаря внутренним нагрузочным резисторам. Порт P1 также получает данные кода в процессе программирования и проверки ПЗУ программ. 4.3 Порт P3 Порт P3 имеет семь двунаправленных линий ввода/вывода со внутренней нагрузкой (P3.0 - P3.5, P3.7). Линия P3.6 постоянно подсоединена к выходу встроенного компаратора и не выходит на внешние выводы, как остальные линии ввода/вывода. Буферы Порта 3 могут нагружаться сигналом до 20 mA. Когда на любую из линий Порта 3 подан сигнал логической единицы, напряжение на этих выводах будет высоким (благодаря внутренним нагрузочным резисторам) при этом они могут использоваться как вводы. Если внешним сигналом вывод Порта 3 будут переведены в низкий уровень, из линии порта будет вытекать ток источника (IIL) благодаря внутреннему сопротивлению нагрузки. Порт P3 также обслуживает функции дополнительных устройств AT89C2051 как перечислено ниже: Альтернативные функции выводов порта P3P3.0- RXD (вход последовательного порта)P3.1- TXD (выход последовательного порта)P3.2- INT0 (внешнее прерывание)P3.3- INT1 (внешнее прерывание)P3.4- T0 (таймер 0 внешний ввод)P3.5- T1 (таймер 1 внешний ввод) Порт P3 также получает некоторые сигналы управления при программировании и проверке ПЗУ программ. 4.4 Прерывание На всех вывода ввода/вывода устанавливается сигнал логической 1, как только RST перейдет в состояние логической 1. Высокий логический уровень на входе RST должен удерживаться в течении двух машинных циклов для надежного сброса устройства. Каждый машинный цикл берет 12 тактов генератора или циклов часов. 4.5 XTAL1 и XTAL2 Вход и выход, соответственно, инвертирующего усилителя, который может быть настроен для использования как внутренний генератор. Может использоваться кварцевый или керамический резонатор. Чтобы управлять устройством от внешнего источника колебаний, вывод XTAL2 должен быть оставлен свободным, а на XTAL1 подается управляющий сигнал, как показано в Рисунке 2. Нет никаких жестких ограничений к частоте внешнего тактового сигнала, так как к внутренней схеме синхронизации осуществляется через встроенный делитель на два, но требования к уровням напряжения высокого и низкого уровней должны соблюдаться. 5 РАЗРАБОТКА АЛГОРИТМА РАБОТЫ СИСТЕМЫ Обработка информации от цифровых датчиков и выдача управляющего воздействия y1 производится путем ввода значений x1, x2, x3, и вычисления булевой функции f1(Х1, Х2, Х3,)= X1 & ¬X2 X3 При единичном значении f1 вырабатывается управляющий сигнал y1=1 длительностью t1=80мкс. При обработке информации с аналоговых датчиков ПМ принимает коды NU1, NU2 с выходов АЦП и код константы К с регистра пульта управления. Далее вычисляется значение функции NU=f2(NU1,NU2, К)=max(NU1,NU2-K) и сравнивается с константой Q, хранящейся в ПЗУ. В зависимости от результатов сравнения вырабатывается (аналогично y1) один из двух двоичных управляющих сигналов y2 или y3 заданной длительности по следующему правилу: если NU 2 длительностью t2=125 мкс, иначе выдать y3 длительностью t3=75мкс. |