Формирование тройного импульса прямоугольной формы на внешних выходах

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

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 14.06.2014
Размер файла 684,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования и науки РФ

Федеральное агентство по образованию (Рособразование)

Архангельский государственный технический университет

Институт информационных технологий

Кафедра Вычислительных Систем и Телекоммуникаций

Специальность071900(230201.65) Курс 3Группа 5

КУРСОВОЙ ПРОЕКТ

по дисциплине Схемотехника

на тему: Формирование тройного импульса прямоугольной формы на внешних выходах

Селиверстов Михаил Сергеевич

Руководитель работы: доцент Василишин И.И.

Зав. кафедрой доцент: Василишин И.И.

Архангельск - 2005

СОДЕРЖАНИЕ

1. ПОСТАНОВКА ЗАДАЧИ

2. КОДИРОВАНИЕ АССЕМБЛЕРНЫХ КОМАНД

3. ФОРМИРОВАНИЕ ФУНКЦИОНАЛЬНОЙ СХЕМЫ

4. РЕАЛИЗАЦИЯ ПРИНЦИПИАЛЬНОЙ СХЕМЫ

5. РАСЧЕТ ХАРАКТЕРИСТИК ПРОИЗВОДИТЕЛЬНОСТИ

6. ПРИМЕР ПРОГРАММЫ

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Вариант ЗАДАНИЯ

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

1. Исходные данные синтезируемого МК

Общие характеристики МК:

Ш разрядность кода команды - 5 (бит);

Ш разрядность данных - 8 (бит);

Ш количество РОНов - 4;

Ш количество шин РЗУ - 2;

Ш количество регистров аккумуляторов - 2;

Ш рабочая тактовая частота - 20 (МГц);

Ш переход по условию - 8 (команд);

Ш объем ПЗУ - 2,2 (кслов);

Ш объем ОЗУ - 0,7 (кслов);

Ш при обращении к стеку содержимое рус - Д;

Ш РОНы обладают возможностью и/д - Да .

Ш Количество групп входов (портов) - 4

Ш Количество входов в группе (разрядность параллельного порта) - 3

Ш Наибольшая длительность формируемого импульса - 1000 мс

Ш Шаг формирования - 2 мкс

Ш Разрядность счетчиков - 10

1. ПОСТАНОВКА ЗАДАЧИ

Обзор существующих микроконтроллеров

Микроконтроллеры семейства «ATMEL» являются 8-разрядными и предназначены для встраиваемых приложений. МК изготовляются по микромощной КМОП-технологии, которая в сочетании с усовершенствованной RISC-архитектурой позволяет достичь наилучшего соотношения показателей быстродействие/энергопотребление. В семейство Classic входит 17 моделей микроконтроллеров.

Основные характеристики МК «АTMEL»:

§ возможность вычислений со скоростью до 1 МIРS/МГц;

§ FLASH-память программ объемом 1 - 8 Кбайт и числом циклов стирания/записи не менее 1000;

§ память данных на основе статического ОЗУ (SRAM) объемом 128 - 512 байт;

§ память данных на основе ЭСППЗУ (EEPROM) объемом 64 - 512 байт и числом циклов стирания/записи не менее 100000;

§ возможность защиты от чтения и модификации памяти программ и данных (в EEPROM);

§ программирование в параллельном (с использованием программатора) либо в последовательном (непосредственно в системе через последовательный SPI-интерфейс) режимах;

§ различные способы синхронизации: встроенный RС-генератор, внешний сигнал синхронизации или внешний резонатор (пьезокерамический или кварцевый);

§ наличие нескольких режимов пониженного энергопотребления.

Основные характеристики центрального процессора микроконтроллера:

§ полностью статическая архитектура, минимальная тактовая частота равна нулю;

§ АЛУ подключено непосредственно к регистрам общего назначения;

§ большинство команд выполняется за один машинный цикл;

§ многоуровневая система прерываний с поддержкой очереди прерываний;

§ от 3 до 16 источников прерываний, из них до двух внешних;

§ наличие программного стека.

Основные характеристики подсистемы ввода/вывода:

§ программное конфигурирование и выбор портов ввода/вывода;

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

§ входные буферы с триггером Шмитта на всех выводах;

§ возможность подключения ко всем входам внутренних подтягивающих резисторов (сопротивление резисторов составляет 35... 120 кОм);

§ нагрузочная способность всех выходов составляет до 20 мА, что позволяет непосредственно управлять светодиодными индикаторами.

Периферийные устройства, встречающиеся во всех типах МК:

§ 8-разрядный таймер/счетчик с предделителем (таймер Т0);

§ 16-разрядный таймер/счетчик с предделителем (таймер Т1);

§ 8-разрядный таймер/счетчик с возможностью работы в асинхронном режиме (тайм. Т2);

§ сторожевой таймер (WDT);

§ 1- 2канальный 8...10 - разрядный генератор сигнала с широтно-импульсной модуляцией (ШИМ);

§ одноканальный 8-разрядный генератор сигнала с ШИМ;

§ аналоговый компаратор;

§ 10 - разрядный АЦП (6 или 8 каналов);

§ полнодуплексный универсальный асинхронный приемопередатчик (UART);

§ последовательный синхронный интерфейс SPI.

Архитектура ядра. Ядро МК выполнено по усовершенствованной RISC (enhanced RISC) архитектуре, с результирующим повышением их быстродействия.

АЛУ, выполняющее все вычисления, подключено к 32 рабочим регистрам, объединенным в регистровую группу. АЛУ выполняет одну операцию (чтение содержимого регистра, выполнение операции и запись результата) за один машинный цикл.

В МК команды занимают одну ячейку памяти программ, за исключением команд, у которых одним из операндов является 16-разрядный адрес. синтезируемый микроконтроллер регистр программа

МК построены по Гарвардской архитектуре, характеризующейся раздельной памятью программ и данных, каждая из которых имеет собственные шины доступа к ним. Такая организация позволяет одновременно работать с памятью программ и с памятью данных. Разделение шин доступа позволяет использовать для каждого типа памяти шины данных различной разрядности, а также реализовать 2 уровневую конвейеризацию, а длительность машинного цикла составляет всего 1 период колебаний кварцевого резонатора. Конвейеризация заключается в том, что во время исполнения текущей команды производится выборка из памяти и дешифрация кода следующей команды. В результате МК могут обеспечивать ту же производительность при более низкой тактовой частоте.

Порты ввода/вывода

Обращение к портам производится через регистры ввода/вывода. Каждый порт в адресном пространстве ввода/вывода отображается тремя адресами, по которым размещаются: регистр данных PORTx, регистр направления передачи данных DDRx и регистр состояния выводов порта PINx. При сбросе МК регистры DDRx и PORTx очищаются, а все выводы портов после сброса устанавливаются в третье состояние. Запись в порт означает запись требуемого состояния для каждого вывода порта в соответствующий регистр данных порта PORTx. А чтение состояния порта выполняется чтением либо регистра данных порта PORTx, либо регистра внешних выводов порта PINx. При чтении регистра выводов порта PINx происходит считывание логических уровней сигналов, присутствующих на внешних выводах порта. А при чтении регистра данных порта PORTx происходит считывание данных, находящихся в регистре-защелке порта.

Рис. 1 Полная структурная схема канала PD1 микроконтроллера AT90S4434

Аналоговый компаратор

Компаратор позволяет сравнивать значения напряжений, присутствующих на двух выводах МК. Результатом сравнения является логическое значение, которое может быть прочитано из программы, по нему может быть сгенерировано прерывание или выполнена функция захвата таймера/счетчика Т1.

Используемые компаратором выводы являются внешними контактами портов ввода/вывода общего назначения, но они должны быть сконфигурированы как входы (соответствующий разряд регистра DDRx установлен в «1»). Кроме того, необходимо отключить внутренние подтягивающие резисторы записью логического «0» в соответствующий разряд регистра PORTx.

По своему действию рассматриваемый узел - обычный компаратор. Если напряжение на выводе AIN0 (неинвертирующий вход) больше напряжения на выводе AIN1 (инвертирующий вход), то результат сравнения будет равен «1». В противном случае результат сравнения будет равен «0». Этот результат сохраняется в разряде АСО регистра ACSR.

Разряд ACD отвечает за включение и выключение компаратора. При включении напряжения питания все разряды регистра ACSR сбрасываются в «0». Чтобы его выключить, разряд ACD следует установить в «1».

Рис.2 Структурная схема аналогового компаратора

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

Перед началом использования АЦП требуется разрешить его работу - внести логическую «1» в разряд ADEN регистра ADCSR, а для запрета логический «0». Если разряд ADFR установлен в «1», АЦП работает в режиме непрерывного преобразования - запуск следующего преобразования осуществляется после окончания текущего. Если разряд ADFR сброшен в «0», АЦП работает в режиме одиночного преобразования и запуск каждого осуществляется по команде пользователя.

Запуск преобразования осуществляется установкой в «1» разряда ADSC, а сам цикл преобразования начинается по первому нарастающему фронту тактового сигнала. Длительность цикла составляет 13 тактов, выборка и запоминание входного сигнала осуществляется в течение первых 1.5 тактов. Через 13 тактов преобразование завершается, разряд ADSC сбрасывается в «0» (в режиме одиночного преобразования), результат сохраняется в регистре данных АЦП, устанавливается флаг прерывания ADIF регистра ADCSR и генерируется запрос на прерывание.

Рис.3 Структурная схема модуля АЦП

Флаг ADIBB сбрасывается аппаратно при запуске подпрограммы обработки прерывания от АЦП или программно записью в него логической «1». Разрешение прерывания осуществляется установкой в «1» разряда ADIE регистра ADCSR.

Если АЦП работает в режиме непрерывного преобразования, новый цикл начнется сразу же после записи результата. В режиме одиночного преобразования новое преобразование может быть запущено сразу же после сброса разряда ADSC, однако цикл начнется не ранее чем через один такт после окончания текущего преобразования.

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

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

Рис.4 Структурная схема передатчика UART

Внешние выводы МК, используемые модулем UART, принадлежат порту D. В качестве входа приемника (RXD) используется вывод PD0, а в качестве выхода передатчика (TXD) вывод PD1. Управление работой приемопередатчика осуществляется с помощью регистра управления UCR. Текущее состояние приемопередатчика определяется с помощью регистра состояния USR. Принимаемые и передаваемые данные хранятся в регистре данных UDR, который состоит из двух отдельных регистров, один из которых используется для передачи данных, другой для приема. При чтении регистра UDR выполняется обращение к регистру приемника, при записи к регистру передатчика.

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

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

Рис.5 Структурная схема приемника UART

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

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

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

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

Последовательный периферийный интерфейс spi

Последовательный периферийный интерфейс SPI имеет два назначения. Через него может быть осуществлено программирование МК (режим последовательного программирования) или организация высокоскоростного обмена данными между МК и различными периферийными устройствами (между несколькими микроконтроллерами AVR). При обмене данными по интерфейсу SPI микроконтроллер AVR может работать в режиме Master и Slave. Пользователь может задать скорость и формат передачи. Дополнительной возможностью SPI является «пробуждение» МК из режима Idle при поступлении данных.

Модуль SPI использует четыре внешних вывода МК, принадлежащих линиям ввода/вывода порта В. Для управления модулем SPI предназначен регистр управления SPCR.

Контроль состояния модуля осуществляется с помощью регистра состояния SPSR. Передаваемые данные записываются, а принимаемые считываются из регистра данных SPDR. Запись в этот регистр инициирует начало передачи, а при его чтении считывается содержимое приемного буфера сдвигового регистра.

Перед выполнением обмена необходимо разрешить работу модуля SPI - установить в «1» разряд SPE. Режим работы определяется состоянием разряда MSTR: если «1» - Master (ведущий), если «0» -- Slave (ведомый). При записи в регистр данных SPI ведущего МК запускается генератор тактового сигнала, данные начинают поразрядно поступать на вывод MOSI ведомого МК. Порядок передачи разрядов данных определяется состоянием разряда DORD (если «1» - первым передается младший разряд, «0» -- старший). После выдачи последнего разряда текущего байта генератор тактового сигнала останавливается, устанавливает в «1» флаг «Конец передачи» (SPIF) и генерируется запрос на прерывание.

Рис.6 Структурная схема модуля SPI

Таймер/счетчик Т0 - 8-разрядный и может использоваться для формирования временных интервалов или для подсчета числа внешних событий. В его состав входят 2 регистра (регистр управления TCCR0 и счетный регистр TCNT0), а также блок управления таймером. Таймер/счетчик ТО может работать в двух режимах:

§ режим таймер на вход таймера/счетчика поступают импульсы тактового сигнала МК;

§ режим счетчика событий инкремент содержимого счетного регистра производится по активному фронту сигнала на внешнем входе Т0.

Рис. 7 Структурная схема таймера/счетчика Т0

Рис. 8 Структурная схема таймера/счетчика Т1

Таймер/счетчик Т1 - 16-разрядный, он может 1) использоваться для формирования временных интервалов или для подсчета числа внешних событий, 2) по внешнему сигналу сохранять свое текущее состояние в отдельном РВВ, 3) может выполнять определенные действия при равенстве содержимого счетного регистра заданному значению, 4) работать как широтно-импульсный модулятор (ШИМ). Причем генерация сигнала с ШИМ «вынесена» в отдельный режим работы таймера/счетчика, в котором недоступны остальные функции.

В состав таймера/счетчика входят три 16-разрядных регистра (счетный регистр TCNT1, регистр захвата ICR1 и регистры сравнения OCR1A и OCR1В), 16-разрядный компаратор, два 8-разрядных управляющих регистра TCCR1A и TCCR1B и блок управления таймером. Таймер/счетчик Т1 может работать в режимах:

ь режим таймера на вход таймера/счетчика поступают импульсы тактового сигнала МК (непосредственно или через предделитель);

ь режим счетчика событий инкремент содержимого счетного регистра производится по активному фронту сигнала на внешнем входе Т1 (в модели АТ90С8534 данный режим отсутствует).

Таймер/счетчик Т2 - 8-разрядный, может работать в двух режимах:

§ режим таймера используется для формирования временных интервалов и выполняет определенные действия при равенстве содержимого счетного регистра зад. значению;

§ режим ШИМ работает как широтно-импульсный модулятор.

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

Рис.9 Структурная схема таймера/счетчика Т2

Структура синтезируемого микроконтроллера

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

Таблица 1.

Внешние выводы микроконтроллера и их характеристики

Функция

Обозначение

Тип вывода

Количество

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

VCC

Питание

1

Общий вывод

GND

Питание

1

Вход внешнего тактового генератора

XTAL1

Вход

1

Выход внешнего тактового генератора

XTAL2

Выход

1

Вход сброса микроконтроллера

RESET

Вход

1

Ввод импульсов - последовательный периферийный интерфейс

SPIШ…SPI3

вход

4

Вывод номера группы - параллельный порт

PBШ…PB2

выход

3

Вывод параметров измерений - параллельный порт

РАШ…РА15

вход/выход

4*4=16

Всего выводов

28

Для схемотехнической реализации микроконтроллера потребуется 28 внешних выводов, следовательно, такую реализацию может обеспечить корпус DIP-28, при этом незадействованных внешних выводов не останется.

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

Таблица 2.

Состав функциональных узлов микроконтроллера

Функция

узел

примечание

Измерение длительности входящих импульсов

таймер

наличие предделителя и внешнего генератора

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

процессор

наличие уникальных команд

Передача параметров измерений

последовательный

периферийныйинтерфейс

стандартный

Управление работой микроконтроллера

процессор

Вывод исходящих импульсов

порт А

16 разрядов

порт В

3 разрядов

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

сброс

поддержка корректности работы

Контроль последовательности обработки

прерываний

поддержка корректности работы

Обоснование выбора узлов в синтезируемом микроконтроллере:

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

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

Ш последовательный периферийный интерфейс (SPI) - нужен для приема вычисляемых параметров исходящих импульсных последовательностей;

Ш порт А, порт В - выводят исходящие импульсы прямоугольной формы

Ш сброс - нужен для вывода микроконтроллера в исходное состояние;

Ш узел прерываний - прерывания формируют SPI, таймер и параллельный порт, узел прерываний требуется для формирования последовательности обработки;

Аналогично существующим микроконтроллерам, используя данные табл. 1 и 2, сформируем структурную схему для синтезируемого микроконтроллера. Структурная схема синтезируемого микроконтроллера наглядно отображает все требуемые узлы и взаимосвязи между ними.

Рис. 1. Структурная схема синтезируемого микроконтроллера

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

Состав ассемблерных команд

Состав команд - это команды, которые исполняются центральным процессорным элементом микроконтроллера, они жёстко запрограммированы на стадии проектирования, и не могут изменяться при его эксплуатации.

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

Сброс содержимого РОН - CLR Rd;

Пересылка данных из РОН в РВВ SPI - OUT SPIR, Rr;

Пересылка данных из РВВ в РОН - In Rd, SPIR;

Занесение в стек - PUSH Rr;

Извлечение из стека - POP Rd;

Возврат из подпрограммы обработки прерываний - RET I

Общее разрешение прерываний - SEI

На основании состава команд синтезируемого микроконтроллера, можно сформировать следующие группы:

Ш логических команд - сброс содержимого РОН (1);

Ш команд пересылки данных -пересылка данных из РВВ в РОН(5).

Ш команд управления вводом/выводом - пересылка данных из РОН в РВВ SPI - (6), занесение в стек (3), извлечение их стека (4), сброс РВВ(7);

Характеристика разрядной сетки регистров микроконтроллера

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

Ш регистр счетчика команд (РСчК) - указывает на физический адрес ячейки памяти, где хранится исполняемая команда, РСчК связан с областью памяти программ, и его разрядность определяется количеством адресуемых ячеек памяти программ (ПЗУ);

Ш регистр указатель стека (РУС) - указывает на физический адрес ячейки памяти, где временно дублируются данные любого из регистров, РУС связан с областью памяти данных, и его разрядность определяется количеством адресуемых ячеек оперативной памяти для хранения данных (ОЗУ);

Ш регистр флагов (РФ) - содержит признаки выполнения операции, его разрядность определяется количеством использующихся флагов (I, Z, C);

Ш регистр общего назначения (РОН) - содержит произвольные данные, его разрядность определяется разрядностью памяти данных, либо техническим заданием;

Ш дополнительный регистр (ДР) - дублирует данные регистра на время выполнения ассемблерной команды исполнительным устройством, его разрядность должна быть не меньше копируемого регистра; дополнительный регистр недоступен программисту;

Ш специальный регистр (СР) - содержит данные о состояниях внутренних узлов и/или устройств МК, его разрядность должна обеспечивать их функционирование.

Таблица 3.

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

Название регистра

РСчК

РУС

РОНы

РФ

ДР1

ДР2

ДР3

СР1

СР2

Количество разрядов

12

10

4

3

1

1

0

0

0

ДР1 - дублирует данные любого из регистров, ДР2 - данные РФ, ДР3 - данные сдвоенного РОНа.

2. КОДИРОВАНИЕ АССЕМБЛЕРНЫХ КОМАНД

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

Структурно, в общем случае, код ассемблерной команды, состоит из двух частей:

операционной - основной, всегда присутствующей в коде команды и отображающей код операции (КОп) и адресной - содержащей либо характеристики расположения операндов, до и после исполнения команды (их адреса или имена), либо характеристику адреса следующей команды (константу, указывающую на переход).

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

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

В зависимости от соотношения разрядности кода команды, количества РОНов, глубины переходов по условию, разрядности памяти формат команды может содержать как одно слово, так и два, и три, и более слов.

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

По техническому заданию: разрядность кода команды 5 бит, состав - 7 команд.

По техническому заданию: разрядность кода команды 5 бит, количество РОНов - 4

По техническому заданию: разрядность кода команды 5 бит, объем памяти программ - 2,2 кслова.

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

1. Сброс содержимого регистра - CLR Rd - выполняется для одного РОНа. Смысл команды заключается в подаче сигнала на вход R соответствующего регистра. Требуется использовать ассемблерную команду, состоящую из 1 слова, 4 разряда которого используются для указания КОп и 4 разряда - для Rd.

2. Пересылка данных из РОН в РВВ - IN SPIR, Rr - выполняется для произвольного РОНа. Результат операции сводится к внесению содержимого Rr в регистр данных SPI. Для выполнения команды потребуется 1 слово, которое содержит КОп и номер РОНа, регистр приемник определяется из сочетания определенного разряда КОп и номера РОНа.

3. Пересылка данных из РВВ в РОН - OUT SPIR, Rr - выполняется для произвольного РОНа. Результат операции сводится к внесению содержимого SPI в один из РОНов. Для выполнения команды потребуется 1 слово, которое содержит КОп и номер РОНа, регистр приемник определяется из сочетания определенного разряда КОп и номера РОНа.

4. Занесение в стек - PUSH Rr - выполняется для произвольного РОНа. Выполнение команды не изменяет состояние флагов. Реализация данной операции возможна при использовании формата одноадресной ассемблерной команды, состоящей из 1 слова, где 4 разряда занимает КОп и 4 разряда - номер РОНа, участвующего в исполнении команды.

5. Извлечение из стека - POP Rd - выполняется для произвольного РОНа. Реализация данной операции возможна при использовании формата одноадресной ассемблерной команды, состоящей из 1 слова, где 4 разряда - КОп и 4 разряда - номер РОНа.

6. Возврат из подпрограммы обработки прерываний - RET I - выполняется по произвольному адресу, указанному в стеке, который вносится в РСчК. Для обеспечения возврата из подпрограммы используется структура ассемблерной команды, состоящая из одного слова, которое содержит расширенный КОп.

7. Общее разрешение прерываний - SEI

Таблица кодирования команд

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

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

Ш безадресные - сброс РВВ.

Ш одноадресные - сброс РОН, занесение в стек, чтение из стека, пересылка из РОН в РВВ.

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

Таблица 4.

Кодирование ассемблерных команд

команды

Мнемоническое

обозначение команды

Код команды

Слов

Биты формата

ассемблерных команд

количество

7

6

5

4

3

2

1

0

1,2,3, 4,5

CLR Rd; PUSH Rr; POP Rd; OUT SPIR, Rr; IN Rd, SPIR;

**

1

1

Rd или Rr

КОп - 1,3,4,5, 6,8

CLR Rd (в регистре номер 3 обнуляются все разряды)

01h

1

1

0

0

1

1

0

0

0

1

PUSH Rr (занесение в стек регистра номер 2)

03h

1

1

0

0

1

0

0

0

1

1

POP Rd (чтение из стека регистра номер 5)

04h

1

1

0

1

0

1

0

1

0

0

OUT SPIR, Rr (пересылка данных из 2-го РОНа в РВВ)

05h

1

1

0

0

1

0

0

1

0

1

IN Rd, SPIR (пересылка данных из РВВ в 6-й РОН)

06h

1

1

0

1

1

0

0

1

1

0

Микрокомандное управление

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

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

Обнуление РОНа - 00012:

Ш инкрементировать РСчК;

Ш извлечь код команды из памяти программ;

Ш декодировать код команды (основной);

Ш формирование адреса РОНа, который необходимо обнулить;

Ш чтение данных из РОНа источника;

Ш вычислить логическую операцию исключающее ИЛИ между РОНами;

Ш изменить состояние РФ;

Ш загрузить новое значение в РОН-приемник;

Ш перейти к исполнению следующей команды.

Занесение в стек - 00112:

Ш инкрементировать РСчК;

Ш извлечь код команды из памяти программ;

Ш декодировать код команды (основной);

Ш декрементировать РУС;

Ш формирование адреса РОНа;

Ш чтение данных из РОНа;

Ш формирование адреса ОЗУ (адрес в РУС);

Ш загрузка данных РОНов в ОЗУ.

Чтение из стека - 01002:

Ш инкрементировать РСчК;

Ш извлечь код команды из памяти программ;

Ш декодировать код команды (основной);

Ш формирование адреса РОНа с указанием ячейки ОЗУ;

Ш формирование адреса ячейки ОЗУ;

Ш чтение из ОЗУ;

Ш инкрементирование РСчК;

Ш извлечение кода команды из ПП;

Ш формирование адреса РОНа для внесения данных;

Ш загрузить новое значение в РОН.

Пересылка данных из РОНа в РВВ- 01012:

Ш инкрементировать РСчК;

Ш извлечь код команды из памяти программ;

Ш декодировать код команды (основной);

Ш формирование адреса РОНа-источника;

Ш чтение данных из РОНа-источника;

Ш инкрементирование РСчК;

Ш чтение из ПП;

Ш формирование адреса РВВ;

Ш загрузка данных в РВВ.

Пересылка данных из РВВ в РОН - 01102:

Ш инкрементировать РСчК;

Ш извлечь код команды из памяти программ;

Ш декодировать код команды (основной);

Ш формирование адреса РВВ;

Ш формирование адреса РОНа-приемника;

Ш чтение данных из РВВ;

Ш чтение данных из РВВ в РОН-приемник.

Сброс разрядов РВВ- 01112:

Ш инкрементировать РСчК;

Ш извлечь код команды из памяти программ;

Ш декодировать код команды (основной);

Ш формирование адреса РВВ;

Ш загрузка «0» в РВВ.

Блок-схема функционирования управляющего автомата

Возможность последовательных вычислений в ЦПЭ обеспечивается при помощи управляющего и операционного блоков. Такой подход упорядочивает математическое описание работы синтезируемого узла и упрощает его схемотехническую реализацию.

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

Последовательность формируемых управляющих сигналов определяется внешними сигналами КОп (zi), поступающими извне, и внутренними сигналами операционного блока (ui), которые зависят от операндов и от результатов преобразований.

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

Тип реализации управляющего блока - конечный автомат.

Последовательность сигналов управления (vi), для операционного блока является синхронизирующей или разрешающей и определяет момент времени срабатывания каждого из узлов, которые выполняют микрооперации. Полное исполнение ассемблерной операции требует жестко указанной последовательности срабатываний узлов. Завершение выполнения микрооперации может отображаться в управляющем блоке совокупностью результирующих сигналов (wi). Тип реализации операционного блока - узлы, производящие прием, обработку, хранение и передачу операндов.

Рис. 2. Блок - схема

Рис. 3. Граф переходов управляющего автомата

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

Количество триггеров определяется решением уравнения k = log2 n (n - количество вершин).

Таблица 6.

Таблица истинности работы управляющего автомата

вер.

Текущее состояние тригера

сл.

вер.

Последующее

состояние тригера

Внеш. управл.

сигналы

Управляющие возд.

на тригеры

Исход. управл. сигналы

Q5

Q4

Q3

Q2

Q1

Q5

Q4

Q3

Q2

Q1

T5

T4

T3

T2

T1

1

0

0

0

0

1

2

0

0

0

1

0

J2

K1

Y1

2

2

2

2

0

00

0

00

0

0

000

0

11

1

1

00

0

0

3

19

21

14

0

1

1

0

0

0

0

1

0

0

1

1

1

1

0

1

1

1

1

0

X1

X2

X3

X4

J5

J5

J4

J3

J3

J1

J1

J1

Y2

Y1

3

0

0

0

1

1

4

0

0

1

0

0

J3

K2

K1

Y3

Y1,Y2,Y14,

Y15

4

4

4

0

0

0

0

0

0

1

1

1

0

0

0

0

00

5

9

16

0

0

1

0

1

0

1

0

0

0

0

0

1

1

0

X5

X6

X7

J5

J4

K3

K3

J1

J1

Y4

Y1,Y2,Y3

5

0

0

1

0

1

6

0

0

1

1

0

J2

K1

Y5

Y1,Y2,Y3,Y4

6

0

0

1

1

0

7

0

0

1

1

1

J1

Y6

Y1,Y2,Y3,Y4,Y5

7

0

0

1

1

1

8

0

1

0

0

0

J4

K3

K2

K1

Y7

Y1,Y2,Y3,Y4,Y5,Y6

8

0

1

0

0

0

1

0

0

0

0

1

K4

J1

Y8

Y1,Y2,Y3,Y4,Y5,Y6,Y7

9

9

0

0

1

1

0

0

0

0

1

1

10

11

0

0

1

1

0

0

1

1

0

1

X8

X9

J2

J2

K1

Y9

Y1,Y2,Y3,Y4

10

0

1

0

1

0

7

0

0

1

1

1

K4

J3

J1

Y10

Y1,Y2,Y3,Y4,Y9

11

11

0

0

1

1

0

0

1

1

1

1

12

18

0

1

1

0

1

0

0

1

0

0

X10

X11

J5

K4

J3

K2

K1

K1

Y11

Y1,Y2,Y9, Y14,Y15,Y17

12

0

1

1

0

0

13

0

1

1

0

1

J1

Y12

Y1,Y2,Y9, Y11

13

0

1

1

0

1

7

0

0

1

1

1

K4

J2

Y13

Y1,Y2,Y9, Y11,Y12

14

0

1

1

1

0

15

0

1

1

1

1

J1

Y14

Y1,Y2

15

15

0

0

1

1

1

1

1

1

1

1

3

17

0

1

0

0

0

0

1

0

1

1

X11

X12

J5

K4

K4

K3

K3

K2

Y15

Y1,Y2,Y14, Y19

16

1

0

0

0

0

7

0

0

1

1

1

K5

J3

J2

J1

Y16

Y1,Y2,Y3, Y14,Y15

17

17

1

1

0

0

0

0

0

0

1

1

11

20

0

1

1

0

0

1

1

0

1

0

X13

X14

K5

J4

J3

J2

K1

Y17

Y1,Y2,Y14, Y15,Y19

18

1

0

0

1

0

7

0

0

1

1

1

K5

J3

J1

Y18

Y1,Y2,Y11, Y14,Y15,Y17

19

1

0

0

1

1

15

0

1

1

1

1

K5

J4

J3

Y19

Y1,Y2

20

1

0

1

0

0

7

0

0

1

1

1

K5

J2

J1

Y20

Y1,Y2,Y15, Y17,Y19

21

1

0

1

0

1

7

0

0

1

1

1

K5

J2

Y21

Y1,Y2

J1 = a2(X1X2X3) a4(X5X6) a6 a8 a10 a12 a14 a16 a18 a20

K1 = a1 a3 a5 a7 a9 a11 (X10X11) a17

J2 = a1 a5 a9(X8X9) a13 a16 a17 a20 a21

K2 = a3 a7 a11 a15

J3 = a2(X3X4) a3 a10 a11 a16 a17 a18 a19

K3 = a4(X6X7) a7 a15(X12X13)

J4 = a2 a4 a7 a17 a19

K4 = a8 a10 a11 a13 a15(X12X13)

J5 = a2(X2X3) a4 a11 a15

K5 = a16 a17 а18 а19 а20 а21

3. ФОРМИРОВАНИЕ ФУНКЦИОНАЛЬНОЙ СХЕМЫ

Формирование функциональной схемы возможно на основании известных функций её узлов, следовательно, необходимо определить требования к узлам синтезируемого микроконтроллера, используя для этого совокупность микрокоманд.

Формирование требований к реализации узлов

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

1. Регистр счетчика команд:

Ш инкрементирование;

Ш загрузка содержимого ДР (памяти программ);

Ш загрузка нового числа после суммирования текущего значения РСчК и константы.

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

Ш воздействующих на внутренние состояния РСчК (входящие воздействия):

Ш по первому входу - инкрементирует содержимое РСчК - сигнал поступает из УА;

Ш по второму входу - параллельная загрузка РСчК - сигнал поступает из УА;

Ш определяющих направление передачи числа из других узлов на информ. входы РСчК:

Ш с выходов сумматора;

Ш с выходов ДР (при вызове подпрограммы).

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

2. Память программ:

Ш извлечение кода команды из ПП.

Анализируя воздействие можно выделить сигналы определяющие:

Ш ячейку ПП, к которой производится обращение - сигнал поступает из РСчК.

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

Ш к входам узла, декодирующего код операции;

Ш к входам узла, формирующего обращения к операндам.

Требования к реализации: энергонезависимая, статическая с произвольной выборкой.

3. Регистр указатель стека:

Ш декрементирование;

Ш загрузка нового числа.

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

Ш воздействующих на внутренние состояния РУС (входящие воздействия):

Ш по первому входу - декрементирует содержимое РУС - сигнал поступает из УА;

Ш по второму входу - выполняет парал. загрузку РУС - сигнал поступает из УА;

Ш определяющих направление передачи числа с выходов РУС на:

Ш информационные входы регистровой памяти;

Ш информационные входы оперативной памяти;

Ш определяющих направление передачи числа из других узлов на информ. входы РУС:

Ш с выходов оперативной памяти;

Ш с выходов регистровой памяти.

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

4. Регистр флагов:

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

Ш установка (сброс) флага, указанного в КОп.

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

Ш воздействующих на внутренние состояния РФ (входящие воздействия):

Ш по первому входу - вносит признак результата выполнения текущей операции - сигнал поступает из УА;

Ш по второму входу - выполняет принудительную установку (сброс) флага, указанного в КОп - сигнал поступает из УА;

Ш определяющих направление передачи числа с выходов РФ на:

Ш информационные входы регистровой памяти;

Ш информационные входы оперативной памяти;

Ш определяющих направление передачи числа из других узлов на информ. входы РФ:

Ш с выходов регистровой памяти;

Ш с выходов оперативной памяти.

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

5. Оперативная память:

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

Анализируя воздействие можно выделить сигнал:

Ш определяющий ячейку памяти данных (входящие воздействия), к которой производится обращение - сигнал поступает: из РУС, из РЗУ (при косвенном обращении).

Требования к реализации: энергозависимая, статическая с произвольной выборкой.

6. Параллельный порт В:

Ш фиксирование изменений уровней исходящих сигналов;

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

Ш воздействующий на внутреннее состояния порта В:

Ш по входу разрешения загрузки регистра хранения порта В - сигнал поступает из выхода схемы сравнения: состояния выходов регистра хранения порта В и текущего состояния внешних входов порта В - при их отличии формируется сигнал загрузки;

Ш определяющий формирование запроса на прерывание:

Ш сформировать запрос на прерывание;

Требования к реализации: регистр хранения, схема сравнения, схема формирования запроса на прерывание.

7. Параллельный порт А:

Ш фиксирование изменений уровней исходящих сигналов;

Ш формирование запроса на прерывание при каждом изменении состояния входящих сигналов.

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

Ш воздействующий на внутреннее состояния порта В:

Ш по входу разрешения загрузки регистра хранения порта В - сигнал поступает из выхода схемы сравнения: состояния выходов регистра хранения порта В и текущего состояния внешних входов порта В - при их отличии формируется сигнал загрузки;

Ш определяющий формирование запроса на прерывание:

Ш сформировать запрос на прерывание;

Требования к реализации: регистр хранения, схема сравнения, схема формирования запроса на прерывание.

8. Таймер:

Ш Измерение длительности входящих импульсов

Ш Формирование прерывания при появлении сигнала на внешнем входе

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

Ш увеличивать значение счетного регистра каждый такт;

Ш при появлении сигнала на внешнем входе сформировать запрос на прерывание;

Требования к реализации: счетный регистр, регистра захвата, управляющий регистр, схема формирования запроса на прерывание.

9. Последовательный периферийный интерфейс:

Ш прием параметров измерений;

Анализируя воздействия можно выделить сигналы:

Ш передача данных из регистра данных SPI.

Ш передача данных в регистр SPI.

Структурная схема микроконтроллера

Используя совокупность воздействий, на каждый узел, формируется структурная схема. На структурной схеме отображаются все узлы, которые упоминаются при постановке задачи, в словесной характеристике ассемблерных команд, при формировании микрокомандного управления, при составлении блок-схемы, а также при формировании требований к реализации узлов. На структурной схеме соблюдаются условия, когда информационные сигналы отображаются фигурными стрелками, а все другие виды сигналов отображаются тонкими линиями со стрелками, при этом стрелка указывает направление передачи сигнала.

4. Реализация принципиальной схемы

В соответствии с приведенными выше характеристиками узлов микроконтроллера разрабатывается принципиальная схема микроконтроллера. В данном проекте она реализована на листе формата А1 и приведена в приложении к данной работе.

5. Расчет характеристик производительности

Расчет характеристик синтезируемого микроконтроллера позволяет определить его качественные показатели и сравнить их с существующими моделями, при этом расчет временных характеристик, как основных при определении скорости вычислений, позволяют исключить фактор «гонки фронтов» между узлами.

Используя принципиальные схемы четвертого этапа проектирования, требуется проанализировать их качественные характеристики, определяющие производительность синтезируемого микроконтроллера, а результаты представить в виде таблицы. Для шестого этапа проектирования нет необходимости повторно приводить принципиальные схемы четвертого этапа

Название узла

Количество ячеек

Время срабатывания

конъюнкторы

дизъюнкторы

инверторы

РСчК

31

12

13

0,48

РУС

28

10

10

0,41

Таймер

30

14

12

0,1

.

Микроконтроллер

73

26

23

1,0

6. Пример программы

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

OUT A,R1

PUSH R1

CLR R1

OUT A,R1

PUSH R1

POP R2

CLR R1

POP R1

Заключение

В данном проекте нам предлагалось разработать микроконтроллер. При выполнении данной работы я глубже понял принцип работы не только команд языка низкого уровня - Assembler, но и техническую сторону данного вопроса. Закрепились многие понятия математической логики.

Список литературы

1. Василишин И.И. (лекции)

2. Бабич , Жуков. Компьютерная схемотехника

3. www.gaw.ru

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.