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

Тема 3

Рекомедуемая литература

1. Хофманн М. Микромикроконтроллеры для начинающих: Пер. с нем. – СПб.: БХВ – Петербург, 2010. – 304 с.

2. Голубцов М.С. Микромикроконтроллеры AVR: от простого к сложному. – М.: СОЛОН-Пресс, 2003. – 288 с.

3. Схемотехника электронных систем. Микропроцессоры и микромикроконтроллеры / В.И. Бойко, А.Н. Гуржий, В.Я. Жуйков, А.А. Зори, В.М. Спивак, Т.А. Терещенко, Ю.С. Петергеря. – СПб.: БХВ – Петербург, 2004. – 464 с.

Основные понятия и определения микропроцессорной техники

Микропроцессорная система (микроконтроллер, компьютер) представляют собой совокупность аппаратных средств (АС) и программного обеспечения (ПО), которые тесно взаимосвязаны и практически бесполезны друг без друга.

Микропроцессорная система (МП система) - информационная или управляющая система, построенная с применением микропроцессорных средств.

Микропроцессор (МП - CPU) – устройство обработки данных (информации) - выполняет арифметические и логические операции и осуществляет программное управление процессом обработки.

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

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

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

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

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

Внешний вид микропроцессора приведен на рисунке 1.

Рисунок 1 - Внешний вид микропроцессора

Микропроцессор (МП) состоит из следующих структурных блоков (см. рисунок 1):

─ внутренней шины;

─ регистров общего назначения;

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

─ буфера шины адреса;

─ буфера шины данных;

─ устройства управления и синхронизации;

─ регистра команд.

(Регистр- последовательное логическое устройство, используемое для хранения n-разрядных двоичных чисел и выполнения преобразований над ними. Регистр представляет собой упорядоченную последовательность триггеров, число которых соответствует числу разрядов в слове.

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

Регистры общего назначения (РОН) содержат регистр адреса; программный счетчик; указатель стека; оперативные парные регистры: W Z; D C. D E, H L,мультиплексор.

В состав АЛУ входят буфер и аккумулятор для промежуточного хранения исходной цифровой информации; арифметико-логическое устройство; регистр признаков.

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

Рисунок 1 – Структурная схема микропроцессора

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

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

Кроме того, для хранения оперативной информации служат парные оперативные регистры общего назначения W и Z, B и C, D и E, H и L, обращение к которым осуществляется через мультиплексор. Часть этих регистров предназначена для хранения адресной части команд, в то время как их исполнительная часть хранится в регистре команд.

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

На рисунке 1 приведена упрощённая типичная структура микроконтроллер (МК) предназначенного для обработки данных или управления некоторой машиной или технологическим процессом.

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

Работа МП происходит под воздействием сигналов (тактовых прямоугольных импульсов – ГТИ) схемы синхронизации и начальной установки.

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

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

Для микроконтроллера характерна трех шинная структура, содержащая шину адреса (ША), шину данных (ШД) и шину управления (ШУ). Типовая структура микроконтроллера, предполагает наличие общего сопряжения (интерфейса) для модулей памяти - постоянных и оперативных запоминающих устройств (ПЗУ и ОЗУ) и периферийных устройств ввода/вывода (УВВ) и внешнего ОЗУ.

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

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

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

Периферийные устройства подключаются к шинам интерфейса через интерфейсные БИС – параллельный программируемый адаптер (ППА – PPI), микроконтроллер клавиатуры и дисплея (ККД), программируемый универсальный синхронно-асинхронный приёмник-передатчик (УСАПП – USART)- последовательный интерфейс и другие аппаратные средства.

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

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

Внутренний системный интерфейс



Шина адреса - ША

Шина данных ШД

Шина управления - ШУ

Интерфейс памяти Устройства ввода-вывода - УВВ

Интерфейс периферийного оборудования

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

В структуре микроконтроллера интерфейс является узким местом из-за ограниченного числа выводов корпуса МП. Узкий интерфейс приводит к необходимости применения двунаправленных линий передачи информации, что усложняет схемы буферов и вызывает необходимость использования временного мультиплексирования шин. Мультиплексирование шин позволяет при ограниченном числе линий интерфейса передавать по ним различную информацию; адреса, данные, команды. Однако это приводит к снижению скорости передачи информации через интерфейс.

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

цикла операций:

1. Сбор сигналов с датчиков;

2. Обработка сигналов согласно прикладному алгоритму управления;

3. Выдача управляющих воздействий на исполнительные устройства.

В нормальном режиме работы микроконтроллер непрерывно выполняет

этот цикл с частотой от 50 раз в секунду. Время, затрачиваемое контроллером на выполнение полного цикла, часто называют временем (или периодом) сканирования; в большинстве современных ПЛК сканирование может настраиваться пользователем в диапазоне от 20 до 30000 миллисекунд. Для быстрых технологических процессов, где критична скорость реакции системы и требуется оперативное регулирование, время сканирования может составлять 20 мс, однако для большинства непрерывных процессов период 100 мс считается вполне приемлемым.

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

1) работа в режиме реального времени, т.е. обеспечение высокой

реактивности (быстродействия) на запросы обслуживания со стороны объекта управления (обеспечение управления в темпе протекания технологического процесса);

2) повышенные требования к надежности функционирования:

– автоматический перезапуск в случае «зависания» программы;

– конструкция, приспособленная для работы в подземных условиях шахт;

– минимальное потребление энергии и рассеяние тепла в условиях

­ ограниченной мощности источника питания и отсутствия элементов

принудительной вентиляции и охлаждения;

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

Программное обеспечение

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

­ автономность;

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

­ возможность дистанционного управления со стороны диспетчерского пункта (уровень SCADA-систем);

­ сетевая поддержка.

Программное обеспечение включает следующие основные компоненты:

­ тестовое программное обеспечение;

­ базовое программное обеспечение;

­ прикладное технологическое программное обеспечение.

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

­ программы инициализации и конфигурирования, а также начальные тесты для PLC и сетевых адаптеров (внутреннее программное обеспечение, расположенное в ПЗУ);

­ программы для тестирования PLC через линию связи с компьютером высшего уровня или специализированной наладочной аппаратурой;

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

­ комплексное тестирование распределенной системы в целом;

­ специализированное тестовое программное обеспечение для наладочных пультов, панелей, стендов, эмуляторов и т.д.

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

Базовое программное обеспечение . В его состав входят:

­ операционные системы реального времени, управляющие выполнением прикладной технологической программы и устройствами PLC;

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

Прикладное технологическое программное обеспечение . Прикладное технологическое программное обеспечение – это машинно-ориентированые языки (ассемблеры), используемые для разработки прикладных программ, Языки ассемблера представлены в виде перечня команд конкретного микропроцессора. Команды ассемблера включают в себя обычно арифметические и логические операции, средства организации циклов подключения и отключения портов, средства управления прерываниями (запрет/разрешение, установка приоритетов), средства работы с интервалами времени и обработки событий, а также средства для динамической загрузки и запуска программ. Элементами языка являются имена портов ввода-вывода и отдельных их разрядов, имена счетчиков, таймеров и контактов, флаги, а также параметры технологического процесса. Преимуществом языков ассемблера является компактность итогового машинного кода, высокое быстродействие. Недостатком – высокая трудоемкость разработки, большой объем текста, отсутствие сложных математических функций (тригонометрических, логарифмических и т.д.). Для реализации сложных алгебраических вычислений необходимо создавать громоздкие подпрограммы.

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

Современные средства автоматизации проектирования технологических программ позволяют программировать PLC с использованием библиотеки стандартных программных модулей – «алгоблоков»,реализующих типовые алгоритмы управления АСУТП: компараторы, формирователи широтно-импусных сигналов (ШИМ) и др.

8.1 Системы счисления

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

Примером позиционной формы записи чисел является та, которой мы пользуемся (так называемая арабская форма чисел). Так, в числах 123 и 321 значения цифры 3, например, определяются ее положением в числе: в первом случае она обозначает три единицы (т.е. просто три), а во втором – три сотни (т.е. триста).

В современной информатике используются в основном три системы счисления (все – позиционные): двоичная, шестнадцатеричная и десятичная.

Двоичная система счисления используется для кодирования дискретного сигнала, потребителем которого является вычислительная техника. Такое положение дел сложилось исторически, поскольку двоичный сигнал проще представлять на аппаратном уровне. В этой системе счисления для представления числа применяются два знака – 0 и 1.

Шестнадцатеричная система счисления используется для кодирования дискретного сигнала, потребителем которого является хорошо подготовленный пользователь – специалист в области информатики. В такой форме представляется содержимое любого файла, затребованное через интегрированные оболочки операционной системы, например, средствами Norton Commander в случае MS DOS. Используемые знаки для представления числа – десятичные цифры от 0 до 9 и буквы латинского алфавита – A, B, C, D, E, F.

Десятичная система счисления используется для кодирования дискретного сигнала, потребителем которого является так называемый конечный пользователь – неспециалист в области информатики (очевидно, что и любой человек может выступать в роли такого потребителя). Используемые знаки для представления числа – цифры от 0 до 9.

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

N = a n-1 b n-1 + a n-2 b n-2 +…. + + a 0 b 0 , a m b m + a m-1 b m -1 + a m-i b m –I , (8.1)

где n – количество разрядов целой части числа,

где m – количество разрядов дробной части числа,

b – основание системы счисления,

ai – множитель, принимающий любые целочисленные значения от 0 до b-1, и соответствующий цифре i-го порядка числа.

Двоичная система счисления - число представляется совокупностью цифр 0 и 1, которые называются битами (binary digits – двоичные цифры). Основание системы счисления b = 2.

Шестнадцатеричная система счисления – для записи чисел используют цифры от 0 до 9 и буквы латинского алфавита A (10), B (11), C (12), D (13), E (14), F (15).

Перевод из десятичной системы счисления в двоичную и шестнадцатеричную:

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

Перевод целой части числа:

а) исходное целое число делится на основание системы счисления, в которую переводится (на 2 - при переводе в двоичную систему счисления или на 16 - при переводе в шестнадцатеричную); получается частное и остаток;

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

в) все полученные остатки и последнее частное преобразуются в соответствии с таблицей перевода в цифры той системы счисления, в которую выполняется перевод;

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

Выполнить перевод числа 19 в двоичную систему счисления:

Выполнить перевод числа 173 в шестнадцатеричную систему счисления:

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

При переводе правильной десятичной дроби в систему счисления с основанием b необходимо сначала саму дробь, а затем дробные части всех последующих произведений последовательно умножать на b, отделяя после каждого умножения целую часть произведения. Число в новой системе счисления записывается как последовательность полученных целых частей произведения. Умножение производится до тех поp, пока дробная часть произведения не станет равной нулю. Это значит, что сделан точный перевод. В противном случае перевод осуществляется до заданной точности. Достаточно того количества цифр в результате, которое поместится в ячейку.

Пример . Выполнить перевод числа 0,847 в двоичную систему счисления. Перевод выполнить до четырех значащих цифр после запятой.

Пример . Выполнить перевод числа 0,847 в шестнадцатеричную систему счисления. Перевод выполнить до трех значащих цифр.

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

для двоичных чисел – нижний индекс справа от числа в виде цифры 2 либо знак B или b (binary – двоичный), справа от числа. Например, 101000 2 = 101000B = 101000b;

для шестнадцатеричных чисел - нижний индекс справа от числа в виде числа 16 либо знак H или h (hexadecimal – шестнадцатеричный), справа от числа. Например, 3AB 16 = 3ABH = 3ABh.

Перевод из двоичной или шестнадцатеричной систем счисления в десятичную выполняется по соотношению (8.1).

Группа из 8 битов информации называется байтом. Если бит - минимальная единица информации, то байт ее основная единица. Существуют производные единицы информации: килобайт (кбайт, кб), мегабайт (Мбайт, Мб) и гигабайт (Гбайт, Гб).

1 кб =1024 байта.

1 Мб = 1024 кбайта = 1024 x 1024 байтов.

1 Гб = 1024 Мбайта = 1024х1024 х 1024 байтов.

Эти единицы чаще всего используют для указания объема памяти ЭВМ.

8.2. Счетчики импульсов

Счетчик – это последовательная схема, в основе которой лежит регистр (последовательное соединение триггеров). Поскольку любая последовательная схема имеет конечное число состояний, то счетная последовательность счетчика либо завершается неким определенным состоянием (счетчики с конечным состоянием или счетчики с насыщением), либо циклически повторяется – счетчики по модулю (mod). Термин модуль используется для обозначения числа различных состояний счетной последовательности. Например, в счетчике по mod = 6 после прихода на вход шестого импульса счетчик обнуляется и процесс счета повторяется снова. Если в счетчике n триггеров, то число возможных состояний счетчика равно 2 n и следовательно его модуль равен mod = 2 n .

Счетчики строятся на базе синхронных триггеров (D, T). В зависимости от способа соединения синхронизирующих входов триггеров, двоичные счетчики подразделяются на синхронные и асинхронные.

В зависимости от модуля они подразделяются на десятичные (декадные), у которых

mod = 10 и двоичные с mod = 2 n .

В зависимости от направления счета они подразделяются на суммирующие, вычитающие или реверсивные (направление счета можно менять).

Синхронные счетчики. Функциональная схема синхронного двоичного счетчика на базе Т-триггеров и временная диаграмма его работы представлены на рис. 8.1.


Так как в счетчике общая синхронизация, то состояние триггеров меняется синхронно, т. е. те триггеры, которые должны изменить своё состояние по синхроимпульсу, делают это синхронно. В частности, если в момент времени t 0 все триггеры исходно обнулены, то после подачи на линию «разрешение счета» сигнала Т = 1 в единичном состоянии будет только первый триггер (Q 0 =1) после прихода импульса синхронизации. Все остальные – в нулевом, так как через схемы И их входы Т блокированы нулевым потенциалом. С приходом второго тактового импульса к изменению своего состояния на единичное будет подготовлен второй триггер и по заднему фронту второго импульса синхронизации триггеры примут новое состояние: Q 0 = 0, Q 1 = 1, Q 2 = 0.

Число импульсов, пришедших на вход счетчика, можно определить по соотношению:

N = Q 0 2 0 + Q 1 2 1 + Q 2 2 2 + … + Q n -1 2 n -1 (8.2).

Описанный выше способ формирования сигналов на Т входов триггеров используется в счетчиках с последовательным переносом. Применение вентилей И для формирования сигналов на входах Т приводит к снижению скорости счета, так как после прохождения синхроимпульса следующий нельзя подавать до тех пор, пока не определятся все значения на входах Т. Для n-разрядного счетчика требуется время t зад = τ в (n – 1), где τ в – время задержки распространения сигнала через один вентиль.

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

Асинхронные счетчики .

В асинхронных счетчиках входы синхронизации триггеров, кроме первого, соединены с выходами предыдущих триггеров (рис. 8.2), а входы Т объединены в общую линию «разрешение счета», поэтому состояние триггера меняется в ответ на изменение состояния предыдущего.


DD3
а
Если на линию «разрешение счета» подана логическая 1, то каждое «отрицательное» изменение состояния каждого левого триггера (задний фронт импульса) вызовет изменение состояния последующего и т.д. В асинхронных счетчиках возможен сбой в процессе передачи информации от триггера к триггеру. Они находят широкое применение в качестве делителей частоты на любую степень двойки f вых = f вх / 2 n .

Все рассмотренные счетчики являются суммирующими двоичными счетчиками. Они легко могут быть перестроены в вычитающие. Для этого, например, в схеме рис. 8.1 достаточно переключить входы вентилей И с выходов Q на инверсные .

8.3. Микроконтроллеры.

8.3.1. Принципы организации микроконтроллеров ; архитектура микропроцессоров и их функционирование, структура микроконтроллеров.

В современной технике микроконтроллеры находят очень широкое применение. На их основе строятся датчики измерения физических параметров с линейными характеристиками, регуляторы параметров технологических процессов, системы сбора и передачи данных, информационные системы и системы автоматического управления различного класса. Современное понятие микроконтроллер возникло в связи с мощным развитием и совершенствованием микроэлектроники и является естественным развитием более старых понятий, таких как ЭВМ, микро-ЭВМ, употреблявшихся в 70 – 80 годы прошлого столетия. Однако основные, базовые принципы организации функционирования вычислительных систем остаются.

По определению ЭВМ – это искусственная, инженерная система, предназначенная для выполнения вычислений на основе алгоритмов. Принципы ее построения определяются с одной стороны, назначением ЭВМ, а с другой – элементной базой. Совершенствование элементной базы и привело к появлению в конце 20 века такого понятия как микроконтроллер. Современная вычислительная техника строится на одном из важных принципов – принципе программного управления , предложенного Дж. Фон Нейманом в 1945 г. Эти принципы следующие:

1. Информация кодируется в двоичной форме и разделяется на единицы информации, называемые словами.

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

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

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

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

Принцип программного управления предполагает, что алгоритм в ЭВМ представляется в виде упорядоченной последовательности команд вида

b 0 b 1 ...b l b 0 b 1 ...b m … b 0 b 1 ...b n ,


где b – двоичная переменная. Определенное число первых разрядов команды характеризует код операции (КОП) – характер выполняемых действий (+, -, * ,и т.д.). Последуюшие наборы двоичных переменных (А1 …А n) определяют адреса операндов (аргументов и результатов), заданных кодом КОП. Процесс вычислений, выполняемый по заданной программе, состоит в последовательном выполнении команд. Первой выполняется команда, заданная пусковым адресом программы. Обычно это адрес первой команды программы.

В состав современного микроконтроллера входят: ядро (микропроцессор); память данных (оперативное запоминающее устройство - ОЗУ (RAM)); память программ (постоянное запоминающее устройство – ПЗУ (ROM) или Flash-память); периферийные устройства: контроллеры прерываний, порты ввода-вывода, ШИМ- генераторы, таймеры, АЦП, ЦАП, порты для последовательной передачи данных – USART, I 2 C, SPI и т.д. Все эти устройства выполняются, как правило, на одном кристалле и помещаются в одном корпусе.

8.3.2. Архитектура микропроцессоров и их функционирование.

Основным элементом микроконтроллера является микропроцессор (МП). Первый коммерческий микропроцессор Intel -8080 был разработан фирмой Intel в 1975 г. Микропроцессор – это функциональный блок, предназначенный для логической и арифметической обработки информации на основе принципа программного управления. Современные микропроцессоры выполняются, как правило, по КМОП технологии и содержат десятки и сотни тысяч элементов, имеют высокое быстродействие – от 10Mips (миллионов операций в секунду) и более, 8, 16 или 32 –разрядную шину данных, 18, 24-разрядную и более шину адреса (речь идет о микропроцессорах для промышленного применения).

В настоящее время основными являются две архитектуры микропроцессоров - неймановская, основанная на принципах, сформулированных фон Нейманом и Гарвардская архитектура. Неймановская архитектура предполагает, что память в системе линейна, т. е. безразлично, в каких областях располагается ОЗУ и ПЗУ. Гарвардская архитектура предлагает жесткое разделение информации на команды и данные и поэтому в архитектуре предусмотрено хранение команд в памяти команд, а операндов – памяти данных.

Из-за сложности схемы, пользователю программно-доступны только основные регистры управления микропроцессором. Рассмотрим архитектуру неймановского процессора с позиций, предоставленных пользователю (рис.8.3).


С периферийными устройствами МП связан с помощью системы шин: External Data Bus -двунаправленная n-разрядная внешняя шина данных; External Address Bus - однонаправленная m-разрядная внешняя шина адреса; Control Bus однонаправленная k-разрядная шина управления (одни разряды шины работают только на ввод, другие – только на вывод). Все шины с тремя состояниями.

Основными устройствами МП являются:

1. АЛУ – арифметико логическое устройство; предназначено для выполнения арифметических (+, -, *, /) и логических операций (И, ИЛИ, НЕ, Исключающее ИЛИ, операции сдвига). В состав АЛУ входят n-разрядные сумматоры, аппаратные умножители и схемы деления. АЛУ связано с регистром признаковFR (Flags Register).

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

Z (Zero) – нулевой результат операции; устанавливается, если результатом выполнения последней операции в АЛУ является ноль;

S (Sing) или N (Negative) – флаг отрицательного знака при выполнении операции (устанавливается если при выполнении операции в АЛУ получается отрицательное число);

C (Carry) – флаг переноса; устанавливается, если при выполнении операции в АЛУ был установлен бит переноса;

V – флаг переполнения; устанавливается, если при выполнении операции в АЛУ имело место переполнение.

3. GPR (General Pupas Registers) –регистры общего назначения. Предназначены для временного хранения информации, располагаются, как правило, во внутреннем ОЗУ процессора и имеют минимальное время доступа.

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

PC (Program counter) – программный счетчик, счетчик команд; содержит адрес ячейки памяти, из которой выбирается следующая команда. Во время выборки команды содержимое счетчика передается в регистр адреса RA и из него через буферную схему поступает на внешнюю шину адреса. С помощью схемы приращения СхП содержимое счетчика команд увеличивается на 1 или 2 в зависимости от длины слова, с которым обменивается процессор (один или два байта) для указания адреса следующей команды.

IR (Instruction Register) – первое слово команды, выбранное из программной памяти, передается через буфер данных и внутреннюю шину данных в IR , выход которого связан с дешифратором команд и формирователем машинных циклов DC и ФМЦ, который по КОП в команде определяет тип выполняемой операции.

Устройство управления и синхронизации (УУС) – вырабатывает управляющие и синхронизирующие сигналы, необходимые для выполнения принятой и дешифрированной команды, подключая необходимые устройства процессора. С помощью k-внешних линий управления (Control Bus) реализуется интерфейс процессора с другими модулями микроконтроллера. Некоторые из этих сигналов:

F CLK - тактовая частота процессора; синхронизирует работу всех устройств и определяет время выполнения команд (быстродействие МП).

RESET – выходной сигнал сброса; обнуляет все основные регистры процессора, в том числе программного счетчика РС, указывая при старте на ячейку памяти 0000h, из которой должна быть считана первая команда программы.

WR (Write) – запись в память, внешнее устройство;

RD (Read) – чтение из памяти, из внешнего устройства.

Современные процессоры выполняются по RISC (Reduce Instruction Set Computering) архитектуре (выполнение вычислений по минимизированным командам). Это обеспечивает выполнение большинства команд за очень малое время даже при относительно не высоких тактовых частотах процессора. Например, МП SAB80C167 фирмы Siemens при тактовой частоте 20 МГц выполняет большинство команд за 100 нс.

8.3.3. Структура микроконтроллеров

В качестве примера ниже дано краткое описание промышленного микроконтроллера М167-2.

Промышленный контроллер М167-2, структурная схема которого приведена на рис.8.4., разработан на базе микроконтроллера Siemens 80С167, ядром которого является 16-разрядный RISC процессор SAB80C167 . В основу работы процессора положена конвейерная организация выполнения команд, благодаря чему для выполнения большин­ства из них требуется 100 наносекунд при тактовой частоте процессора 20 МГц.

Центральное процессорное устройство имеет фон-Неймановскую архитектуру, что обеспечивает доступ к исполняемому коду в пределах единого линейного адресного пространства. Максимальный размер адресуемой памяти составляет 16 Мбайт, которая разделена на 256 сегментов (Code Segment) по 64 Кбайт в каждом. Каждый сегмент со­стоит из четырех страниц данных (Data Page) размером по 16 Кбайт.

Процессор имеет внутреннее ОЗУ объемом 2 Кбайт (1Кх16), расположенное в третьей странице данных нулевого сегмента (00.F000h – 00.FFFFh).Во внутреннем ОЗУ размещены регистры общего (GPR) и специального (SFR и ESFR) назначения.

Система обработки прерываний контроллера обрабатывает более 56 независимых каналов прерываний. Текущее состояние программы (IP, PSW, CSP) сохраняется во внут­реннем системном стеке. Шестнадцати уровневая система приоритетов с четырех уровне­вым (групповым) приоритетом второго уровня позволяет организовать обработку преры­ваний по приоритету. Кроме того, в состав контроллера входит 8 канальный блок РЕС (событийный контроллер), с помощью которого можно осуществлять пересылку данных между периферийными устройствами и областями памяти в режиме прерываний без уча­стия основного процессора.

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

Входящие в состав контроллера блоки «Захват/Сравнение» и блоки таймеров по­зволяют организовать дополнительные ШИМ каналы (до 28) кроме стандартного четырех канального модуля ШИМ, а так же формировать и измерять параметры импульсных сиг­налов.

Микроконтроллер обеспечивает 111 параллельных каналов ввода/вывода, органи­зованных в 16- или 8-битовые порты. Все выводы портов битадресуемы и индивидуально (побитно) программируются на ввод или вывод.

Кроме того, в состав микроконтроллера входят два АЦП (8 и 16 каналов) и сете­вой контроллер CAN со скоростью передачи до 1 Мбит/сек. CAN контроллер позволяет создавать сложные распределенные системы управления реального времени.

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


Литература

1 Гальперин М.В. Электронная техника. Учебник. – 2-е изд., испр. и доп.

– Форум, 2014.

2 Готтлиб И. М. Источники питания. Инверторы, конверторы, линейные и импульсные стабилизаторы. – Постмаркет, 2008.

3 Шило В. Л. Популярные цифровые микросхемы. Справочник.

– Челябинск: Металлургия, 1989.

4 Гусев В. Г. Электроника и микропроцессорная техника. Учебник для вузов. – 5 изд. – М.: Высшая школа, 2008.

Интернет-ресурсы

1 Белов Н.В., Волков Ю.С. Электротехника и основы электроники. – СПб.: Лань, 2012. – Режим доступа: http://e.lanbook.com.

2 Ефимов И.Е., Козырь И.Я. Основы микроэлектроники. – СПб.: Лань, 2008. – Режим доступа: http://e.lanbook.com.

3 Игнатов А.Н. Оптоэлектроника и нанофотоника. . – СПб.: Лань, 2011. – Режим доступа: http://e.lanbook.com.

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

Микропроцессор МП это обрабатывающее и управляющее устройство способное под программным управлением выполнять обработку информации принятие решений ввод и вывод информации и выполненное в виде одной или нескольких БИС. используемое для временного хранения информации в процессе работы МП. В отличие от ПЗУ в ОЗУ возможно как считывание так и запись информации по сигналам Чт и Зап в ячейку адрес которой находится на ША. По сигналу Вв ввод на ШУ происходит передача информации от внешнего устройства на ШД а по сигналу Выв вывод...

Лекция 12

Микропроцессорная техника

1 Микропроцессоры и микропроцессорные комплекты

1.1 Определение микропроцессора

В начале 70-х годов успехи технологии в микроэлектронике привели к созданию новой элементной базы электроники - микроэлектронных больших интегральных схем (БИС) {модуль 1 глава 1.6.3}. По степени интеграции (количеству активных элементов: диодов и транзисторов) интегральные схемы (ИС) условно подразделяются на ИС малой степени интеграции - до 100 активных элементов, средней степени интеграции (СИС) - до 1000 активных элементов, БИС - свыше 1000 активных элементов, СБИС - свыше 10000 элементов. Выпуск новой БИС при современном уровне автоматизации проектирования - очень сложный и дорогой процесс из-за больших первоначальных затрат на разработку ее логической структуры и топологии, изготовления фотошаблонов и технологической подготовки производства. Это 0,5-1 год работы большого коллектива. Поэтому изготовление БИС экономически оправдано при их выпуске, исчисляемом десятками-сотнями тысяч штук в год. Выпускать специализированные БИС для каждого конкретного применения практически не реально. В результате поиска областей массового применения микросхем с высоким уровнем интеграции их разработчиками была предложена идея создания одной универсальной БИС или некоторого набора БИС, специализация которых для каждого конкретного случая применения достигается не схемно, а программно. Так появились стандартные универсальные элементы - микропроцессорные БИС со структурой, аналогичной структуре ЭВМ.

Микропроцессор (МП) – это обрабатывающее и управляющее устройство, способное под программным управлением выполнять обработку информации, принятие решений, ввод и вывод информации и выполненное в виде одной или нескольких БИС.

1.2 Технология изготовления МП БИС

Существуют два вида технологии изготовления БИС: биполярная - основанная на применении биполярных транзисторов и МОП (металл - окисел - полупроводник) - технология, основанная на использовании полевых транзисторов.

БИС, изготавливаемые по биполярной технологии, различаются по схематическим способам реализации. В основном применяется транзисторно-транзисторная логика с диодами Шоттки (ТТЛШ) и эмиттерно-связанная логика (ЭСЛ). В логике ТТЛШ используются биполярные n-p-n транзисторы, дополненные диодами Шоттки (ДШ). ДШ представляет собой выпрямительный контакт на границе металл-полупроводник Al-nSi. В металле и кремнии основные носители одного и того же типа - электроны, а неосновных носителей нет. ДШ открываются при U=0,1-0,3 В и имеют крутую вольт-амперную характеристику. Они подключаются параллельно коллекторному переходу n-p-n транзистора и образуют транзистор Шоттки, изготавливаемый в едином технологическом процессе. Применение ДШ значительно повышает быстродействие транзистора, так как устраняется насыщение коллекторного перехода и нет рассасывания зарядов в нем.

В МОП технологии {модуль 1 глава 1.5.5} можно выделить 3 схемотехнических способа реализации БИС: МОП с проводимостью канала р - или n -типа (р -МОП или n -МОП) и комплементарная МОП технология (КМОП). КМОП технология использует пары МОП транзисторов n -типа и р -типа, соединенные последовательно (рис.1-1). При любом сигнале на входе один из транзисторов открыт, другой - закрыт. Поэтому ток, протекающий по цепи, очень мал. КМОП БИС имеют наименьшую потребляемую мощность по сравнению с другими видами.

По МОП технологии первые МП БИС (р-МОП) были изготовлены в 1971 г. В них используется управление р -каналом, где основными носителями зарядов являются дырки. Поэтому быстродействие БИС сравнительно невелико. Позднее появились БИС типа n-МОП и КМОП, которые и сейчас широко применяются.

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

Основные данные для некоторых МП БИС приведены в таблице.1

1.3 Структура микропроцессорных систем

Все многообразие МПС основано на применении МП двух типов:

а) однокристальных МП с фиксированной разрядностью слова и с фиксированной системой команд (с жестким управлением);

Б) многокристальных (секционных) МП с изменяемой разрядностью слова и с микропрограммным управлением.

Рассмотрим особенности их структуры.

1.3.1 Структура МПС на основе МП с жестким управлением

Рис.1-3

Связь отдельных элементов МПС между собой и с внешними устройствами осуществляется с помощью трех шин. Каждая шина представляет собой магистраль, состоящую из нескольких (8-16) линий.

ША - шина адреса, по которой передаются адреса ячеек памяти и внешних устройств;

ШД - шина данных, по которой информация вводится в МП или выводится из него;

ШУ - шина управления, по которой передаются управляющи сигналы, обеспечивающие нормальное функционирование МПС;

МП - центральный элемент, управляющий функционированием всех остальных элементов; обращается ко всем остальным элементам системы, выставляя на ША их адрес;

Г - генератор тактовых импульсов, синхронизирующий работу МП;

ПЗУ - постоянное запоминающее устройство {модуль 2 глава 9.1}, в котором записаны команды программы, выполняемой МП, и константы, необходимые для работы. По ША поступает адрес ячейки памяти, в которой храниться необходимая команда или константа, и по сигналу Чт (чтение) от МП на ШД появляется информация, хранимая в данной ячейке;

ОЗУ - оперативное запоминающее устройство {модуль 2 глава 9.2}, используемое для временного хранения информации в процессе работы МП. В отличие от ПЗУ, в ОЗУ возможно как считывание, так и запись информации (по сигналам Чт и Зап) в ячейку, адрес которой находится на ША. В простейших МПС ОЗУ может отсутствовать, и его роль выполняют внутренние регистры общего назначения (РОН) МП;

ИУ - интерфейсное устройство (устройство связи), согласующее работу МПС и внешних устройств с учетом различий в скоростях их работы и уровнях сигналов. По сигналу Вв (ввод) на ШУ происходит передача информации от внешнего устройства на ШД, а по сигналу Выв (вывод) - в обратном направлении. Шина данных общая для всех элементов МПС, но элементы системы не должны мешать друг другу. Поэтому выход каждого из них подключен к ШД через так называемую схему с 3-мя состояниями. Она может находиться не только в активных состояниях («0» или «1»), что необходимо для передачи информации, но и в третьем состоянии, в котором элемент практически отключается от общей шины. Перевод из третьего состояния в активное осуществляется управляющими сигналами МП. В каждый момент времени к общей ШД оказывается подключенным только один элемент, передающий информацию, и «конфликт» на ШД исключается. Принимать информацию с ШД могут, при необходимости, сразу несколько элементов. Такая организация МПС с помощью общей ШД является вынужденной и обусловлена тем, что число выводов корпусов БИС ограничено, и одни и те же выводы используются для нескольких целей.

1.3.2 Структура МПС на основе МП с микропрограммным управлением

МП с жестким управлением собирается из n отдельных БИС секций центрального процессорного элемента ЦПЭ, каждая из которых обрабатывает 2 (4, 8, 16) разрядов данных. При этим получается центральный процессор, имеющий 2n (или 4n, 8n, 16n) разрядов. ЦПЭ выполняет самые простые действия - микрооперации при подаче на управляющие входы приказов - микрокоманд (МК). Для выполнения команд, аналогичных командам МП с жестким управлением, требуется до 10-15 микроопераций и столько же микрокоманд. Организация команд из имеющихся микрокоманд предоставляется пользователю.

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

2 Микропроцессор

2.1 Структура МП К580ВМ80

Рассматриваемая БИС является однокристальным МП, выполненным на основе n-МОП технологии. Предназначена для построения вычислительных устройств, контроллеров, микро-ЭВМ. Разрядность МП - 8 бит, тактовая частота 2 МГц, время выполнения команды 2-9 мкс, напряжение питания +12,+5 и -5 В, потребляемая мощность 0,75 Вт. На рисунке приведена его структурная схема.

2.1.1 Основные элементы МП

Обмен информацией осуществляется через восьмиразрядный буферный регистр {модуль 2 глава 7} БД, подключенный к внешней и внутренней ШД МП.РК - регистр команды. В него записывается код команды и хранится в течение времени ее выполнения.ДшК - дешифратор команды, выдает сигналы на устройство управления УУ и схему выбора регистров СВР.

СВР - схема выбора регистров. Содержит: 6 программно доступных регистров общего назначения (РОН) B, C, D, E, H, L (существуют команды, в которых они рассматриваются парами B- B,C; D - D,E; H - H,L);2 программно недоступных регистра W и Z, предназначенных для хранения второго и третьего байта команды (первый байт всегда храниться в РК);

М – мультиплексор {модуль 2 глава 5.2}, связывающий внутреннюю ШД с регистрами W, Z;

ПС - 16 разрядный программный счетчик, позволяющий МП выполнять программы, содержащие до 216 = 65536 слов;

УС - 16 разрядный указатель стека {глава 2.1.3};

СИД - схема инкремента-декремента (прибавления или вычитания 1);

БА - 16 разрядный буфер адреса;

А - регистр результата (аккумулятор);

АЛУ - арифметико-логическое устройство, выполняет арифметические операции сложения - вычитания, инкремент - декремент, логические операции конъюнкции, дизъюнкции, инверсии и другие. Оно связано через буферные регистры БР1 и БР2 с аккумулятором и внутренней шиной данных;

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

СДК - схема десятичной коррекции, используется в том случае, когда информация обрабатывается не в двоичном, а в двоично-десятичном коде {модуль 2 глава 3.2};

УУ - устройство управления, обеспечивает управление работой МП и внешних устройств. Рассмотрим его работу и состав шины управления.

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

Устройство управления тактируется от внешнего генератора, вырабатывающего последовательность импульсов Ф1 и Ф2. Оно связано с остальной частью МП внутренними управляющими сигналами УС и сигналами признаков Pi. С внешней средой УУ связано шиной управления, содержащей 10 линий (4 сигнала поступают извне и 6 сигналов выдает МП).

Состав шины управления.

1. Начальная установка (сброс). При подаче «1» на этот вход ПС сбрасывается в 0 и начинается выполнение программы сначала.

2. Синхронизация. Сигнал «1» на этом выходе вырабатывается в начале каждого цикла работы МП (перед каждым обращением МП к любому внешнему элементу).

3. Чтение. Сигнал «1» указывает, что МП готов принять информацию по ШД извне. Этот сигнал обычно подключается ко входу «чтение» ЗУ и устройств ввода.

4. /Зп. Сигнал «0» указывает, что МП выставил на шину данных информацию, подлежащую записи в ОЗУ или выдаче на устройства вывода.

5. Готов. Сигнал «1» на этом входе указывает МП на окончание цикла чтения или записи. Он вырабатывается внешними устройствами по окончании цикла их работы. Если сигнал «1» не поступил, то МП входит в состояние ожидания, в течение которого МП удерживает адрес на ША, управляющий сигнал «чтение» или «запись» и сохраняет открытыми цепи передачи информации через БД. Состояние ожидания сохраняется до поступления «1» - «готов». В случае, когда все внешние элементы работают со скоростью МП или большей, на вход «готов» постоянно подключается «1».

6. Ожидание. Сигнал «1» на этом выходе указывает, что МП в состоянии ожидания. Этот сигнал помогает установить неисправный блок, из-за которого МП остановился.

7. З.Пр. - вход запроса на прерывание {глава 7.2.7}. Сигнал «1» поступает извне при необходимости прервать работу МП.

8. Р.Пр. - разрешение прерывания. Сигнал «1» на этом выходе указывает, что прерывания разрешены. Разрешение и запрещение прерывания производится специальными командами.

9. Захват. При поступлении сигнала «1» МП останавливает работу, БА и БД переводятся в третье состояние. При этом МП отключается от ША и ШД.

10. Подтверждение захвата. Сигнал «1» указывает, что МП находится в состоянии захвата.

2.1.3 Магазинная память - стек

При обращении к ячейкам памяти ОЗУ в МПС с процессором К580ВМ80 нужны длинные трехбайтные команды. В первом байте содержится сама команда обращения, а во втором и третьем указывается адрес ячейки памяти. Такая команда выполняется сравнительно долго и при частых обращениях к памяти работа МПС существенно замедляется. Для ускорения работы МПС применяется магазин памяти - стек. Он работает по принципу: первым читается число, записанное последним. Порядок обращения к стеку жесткий, но зато не нужно указывать адрес, и время обращения значительно уменьшается. Стек очень удобен для запоминания промежуточной информации в случае прерывания. Второе его назначение - обеспечение работы с программами. При переходе к подпрограмме содержание РОН пересылается в стек, после выполнения подпрограммы - вызывается из стека в РОН. Стек бывает автономный (встроенный в МП) и внешний (размещенный в ОЗУ). В МП К580ВМ80 используется внешний стек, а в кристалле размещается специальный регистр - указатель стека (УС), в котором хранится адрес первой свободной ячейки стека. Для стека обычно отводятся старшие ячейки памяти ОЗУ. Вначале устанавливается адрес 111 ... 1, при записи адрес декрементируется (А-1), при чтении - инкрементируется (А+1). При работе со стеком на ША выдается содержимое УС, при работе с основной памятью - содержимое РА. 2.2

2.2 Функционирование МП в составе МПС

2.2.1 Алгоритм выполнения команды

При выполнении любой команды цикл работы МП всегда начинается с выборки первого байта команды - кода операции (КОп) в регистр команд {глава 2.1.1}. При этом адрес команды из ПС через БА поступает на ША, УУ вырабатывает сигнал чтения, КОп поступает через БД в РК. ДшК анализирует КОп и, если требуется, МП выбирает 2-й и 3-й байты команды в регистры W и Z соответственно. Адрес последующего байта команды формируется в ПС увеличением его содержимого на 1 с помощью СИД. Затем происходит выполнение команды. В конце производится анализ наличия запросов на прерывание (сигнал ЗПр). Если такой запрос имеется - состояние ПС запоминается и происходит переход к программе обработки прерывания.

2.2.2 Временная диаграмма работы МП

Работа МП происходит под действием двух неперекрывающихся последовательностей тактовых импульсов Ф1и Ф2 (рис.2-2).

Большинство преобразований информации МП производит по Ф2. Временной интервал, в течение которого выполняется одна микрооперация, называется машинным тактом (обозначается Т1, Т2 и т.д.). Машинным циклом (МЦ) называется последовательность тактов, в течение которых осуществляется обмен информацией между МП и внешним по отношению к нему элементом (обозначается М1, М2 и т.д.). МЦ содержит 3-5 тактов. Выполнение команды происходит за 1-5 МЦ. На рисунке 2-3 условно показана последовательность выполнения трех команд, содержащих различное число МЦ. В цикле М1 всегда происходит выборка первого байта команды. Большинство МП являются тактируемыми цифровыми схемами, работающими под воздействием генератора тактовых импульсов (ГТИ). МП К580ВМ80тактируется ГТИ, вырабатывающим две последовательности не перекрывающихся импульсов Ф1 и Ф2 с периодом Ттакт = 0,5 - 2 мкс.

2.2.3 Слово состояния МП

ШД МП не используется в Т1 и начале Т2 для приема и выдачи основной информации. В МП предусмотрены схемы, обеспечивающие выдачу в это время на ШД восьмиразрядного слова состояния (СС). Эти 8 признаков могут использоваться внешними элементами и, в общем случае, позволяют упростить организацию МПС. Слово состояния выдается в начале каждого цикла в такте Т2 во время импульса Ф1 (рис.2-4). Признаки СС характеризуют только данный МЦ. СС выделяется с помощью регистра состояний РС (рис.2-5), в который записывается информация с ШД в момент t, в который одновременно имеются импульсы Ф1 и «Синхр.». МП К580ВМ80 имеет десять типов МЦ и, соответственно, 10 СС, идентифицирующих эти циклы. В таблице 2 приведены СС, соответствующие всем типам МЦ.

Рис.2-4

Рис.2-5

Таблица 2 Слова состояния МП К580ВМ80

Здесь:

MEMR - чтение из памяти;

INP - признак команды ввода (вырабатывается в МЦ3);

М1 - признак МЦ1 (идет выборка КОп, начало выполнения команды);

OUT - признак команды ввода, вырабатывается в МЦ3. Аналогичен сигналу /Зп МП, но появляется несколько раньше и держится в РС до конца цикла;

HLTA - подтверждение останова;

STACK - признак работы со стеком, вырабатывается при обращении к ЗУ по командам работы со стеком, что позволяет иметь 216 ячеек ОЗУ и 216 ячеек стека;

/WO - признак записи или вывода;

INTA - признак начала работы в режиме прерывания.

Например, в команде вывода в трех МЦ выдаются СС № 1,2,7. Использование СС позволяет лучше организовать управление МПС. Для работы с внешними устройствами МП имеет только 2 управляющих сигнала Чт и /Зп, в которых не различаются ПЗУ, ОЗУ и другие внешние устройства. Поэтому приходится использовать некоторые разряды ША для указания конкретного объекта. В СС сигнал MEMR позволяет отделить память от других устройств, что упрощает организацию взаимосвязи отдельных частей МПС.

3 Запоминающие устройства

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

Память МПС подразделяется на:

программную память, предназначенную для хранения программ и реализованную обычно в виде постоянного запоминающего устройства (ПЗУ);

память данных, или оперативную память (ОЗУ) {модуль 2 глава 9};

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

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

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

Емкость ИС памяти обычно выражается в битах или байтах- т, 1024 байта (или 1 Кбайт), 4 К бита и т.д. Информационная организация (или формат) памяти определяется произведением m (слов) х n (длина слова). Например, ИС с емкостью 1024 бит может иметь огранизацию 1024х1 (1Кх1), 256х4, 128х8. Длина слов памяти (nпам) обычно выбирается равной длине слова (разрядности) центрального процессора МПС nцп. Если nпам< nцп, то применяется несколько корпусов ИС. Например, с помощью 2-х ИС памяти 256х4 можно организовать ЗУ с форматом 256х8.

Память может выполнять две операции: ввод информации в адресуемую ячейку - запись (Зп); и вывод информации из адресуемой ячейки - считывание или чтение (Чт). Обе операции носят общее название обращения или, по-другому, доступа к памяти.

3.1 Постоянная память

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

Если однократную запись в память производит пользователь с помощью специального устройства - программатора, а затем она работает только на считывание, то такую память называют ПЗУ, программируемое пользователем (ПЗУ-ПП). Они применяются при макетировании и отладке МПС, а также при производстве малыми сериями.

Применяются также перепрограммируемые ПЗУ (ППЗУ). Запись информации в них может производиться пользователем неоднократно с помощью программатора, но в работающей системе они выполняют только операцию считывания. Информацию в ППЗУ можно стереть, а затем записать в них новую информацию. Стирание производится с извлечением ИС из системы и выполняется либо электрическими импульсами амплитудой 30-50 В, либо с помощью ультрафиолетового излучения, ППЗУ дороже ПЗУ-ПМ и ПЗУ-ПП и имеют меньшую плотность упаковки.

Рассмотрим подробнее внутреннюю структуру ПЗУ ПП на примере простейшей ИС К155РЕ3 (рис.3-1), имеющей организацию 32х8. Для адресации 32-х слов имеются 5 адресных входов А0...А4 (т.к. 25=32). Хранимое слово из 8-ми бит образовано многоэмиттерным транзистором, в каждой эмиттерной цепи которого находится плавкая перемычка из нихрома толщиной 200 Ангстрем. Когда дешифратор адреса выбирает определенное слово, то открывается один из многоэмиттерных транзисторов. При наличии перемычки на соответствующей битовой линии устанавливается высокий уровень напряжения и выходной транзистор VT2 также открывается, и потенциал выхода 1 близок к нулю (логический «0»). Если перемычка расплавлена, то соответствующая битовая линия никуда не подключена («плавающая») и транзистор VT2 закрыт (логическая «1»). Выходы ПЗУ ПП представляют собой схемы с открытым коллектором.Для нормальной работы их надо подключить к источнику питания +Ек через резисторы Rн (на рисунке показано пунктиром).

В незапрагроммированной ИС все перемычки целые, транзисторы VT2 открыты во всех словах, на выходах уровни логического «0». Для программирования некоторого бита (состояние которого необходимо изменить с «0» на «1») на линии А0...А4 подаются сигналы нужного адреса и на базе выбранного многоэмиттерного транзистора появляется высокий уровень. Внешней схемой на выходе программируемого бита устанавливается напряжение около 8 В. Этого напряжения достаточно для включения стабилитрона VD1 с порогом около 7 В, что приводит к включению транзистора VT1, и первый вывод перемычки заземляется. Затем напряжение питания многоэмиттерных транзисторов увеличивается до 12 В, и тогда между выводами перемычки приложено напряжение около 5 В. Возникающий ток нагревает и расплавляет перемычку.

В ПЗУ ПП такого типа иногда возможны отказы из-за повторных замыканий разрушенных перемычек. Зазор очень узкий и иногда «заплывает». Для повышения надежности запрограммированные ПЗУ выдерживают в термостате 24 часа при температуре 100oС и повторно проверяют записанную информацию. Если обнаружено «заплывание» перемычек (некоторые записанные «1» превратились в «0»), то их прожигают повторно.

На практике широко применяются ППЗУ, стираемые ультрафиолетовым облучением. Они строятся на МОП-транзисторах, отличающихся от обычных тем, что между затвором и полупроводником (подложкой) помещают еще один «плавающий» затвор, полностью изолированный со всех сторон окислом кремния. Если при записи информации к затворам таких транзисторов приложить положительное напряжение около 25 В и длительностью в несколько десятков миллисекунд, то под его воздействием электроны, перемещаясь в сторону основного затвора, оседают на плавающем затворе. При считывании к затвору прикладывается положительное напряжение не более 5 В. Если на плавающем затворе нет электронов, то канал исток-сток становится проводящим, что соответствует хранению логической единицы. Если на плавающем затворе имеются электроны, то они своим зарядом экранируют затвор и промежуток исток-сток остается непроводящим, что соответствует хранению логического «0». Так как плавающий затвор окружен изолирующим слоем, электроны, попавшие в область плавающего затвора, не могут ее покинуть. В действительности же существует утечка электронов, что приводит к постепенной потере информации. По данным ряда фирм это время составляет не менее 10 лет.

Стирается информация ультрафиолетовым облучением в течение нескольких десятков минут во всех элементах сразу. При этом электроны возбуждаются излучением и стекают в подложку. В результате все плавающие затворы освобождаются от электронов, то есть во все элементы записывается логическая «1».

К таким ППЗУ относятся широко применяемые ИС К573РФ2 (РФ4,РФ5 и др.).

3.2 Оперативная память

Оперативная память или оперативное запоминающее устройство (ОЗУ) {модуль 2 глава 9.2} применяется для хранения оперативной информации, требующейся в процессе обработки. ОЗУ, в отличие от ПЗУ, позволяет: как вводить информацию в адресуемую ячейку (операция Зп), так и выводить (операция Чт) Так как обращение возможно к любой адресуемой ячейке в произвольном порядке, то такие ЗУ называют запоминающими устройствами с произвольной выборкой (ЗУПВ). Возможны различные способы обмена информацией между ОЗУ и МП. Чаще всего используются запоминающие устройства с произвольной выборкой, позволяющие обращаться по любому адресу в произвольном порядке. Различают статические и динамические ОЗУ.

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

Большинство ЗУПВ изготовляются на основе МОП транзисторов и имеют так называемую матричную организацию. Функциональная схема ЗУПВ 256х1 с матричной организацией типа 16х16 приведена на рисунке (3-2). После дешифрирования младших битов адреса А0-А3 возникает сигнал Xi, подключающий i-ю строку матрицы. Столбец матрицы Yj выбирается дешифратором старших битов адреса А4-А7 и элемент памяти ЭПij подключается к схеме вывода или ввода информации в зависимости от значения сигнала Сч//Зп. При Сч//Зп=1 происходит считывание информации из памяти; при Сч//Зп=0 - запись в память. Разрешающий сигнал ВМ (выбор микросхемы) активизирует данную ИС. При запрещающем значении сигнала ВМ матрица изолирована от выходов дешифратора и шины ввода-вывода.

Статические ЗУПВ могут быть построены на полупроводниковых приборах различного типа. В настоящее время наиболее распространенными являются ИС статической памяти на МОП транзисторах. КМОП запоминающий элемент состоит из 5-ти транзисторов, четыре из которых (VT1-VT4) образуют триггер. Управление триггером для записи и считывания осуществляется с помощью ключа - транзистора VT5 (рис.3-3).

3.3 Подключение ЗУ к шине данных

Так как шина данных (ШД) является общей для многих устройств, то при их одновременной работе неизбежен «конфликт». Необходимо, чтобы в каждый момент времени к ШД было подключено только одно устройство - источник информации. приемников же информации может быть одновременно подключено несколько. Важно лишь, чтобы мощность выхода источника информационных сигналов была достаточной для подключения нескольких приемников. Оперативное подлючение и одключение выхода какого-либо устройства осуществляется с помощью схемы выхода, имеющей 3 возможных состояния: 1, 0 и «отключено». Выход любой ТТЛ ИС упрощенно можно представить в виде двух последовательно включенных транзисторов (см. рис.3-4).

Если транзистор VT1 открыт и закрыт VT2, то на выходе высокий уровень сигнала («1»). Если наоборот: VT2 открыт, VT1 закрыт, то на выходе низкий уровень («0»). Если одновременно закрыты оба транзистора, то выход ИС оказывается отключенным от источника питания и не оказывает никакого влияния на работу других устройств, подключенных к общей шине.

Рис.3-4 Выход с тремя состояниями

4. Интерфейсные устройства

Интерфейсные устройства (ИУ) служат для сопряжения внешних устройств с МПС. Они обычно реализуются в виде одной или нескольких СИС или БИС.

PAGE \* MERGEFORMAT 3


А также другие работы, которые могут Вас заинтересовать

45328. Референдум – понятие, виды правовое регулирование 25.75 KB
Форма прямого волеизъявления граждан РФ по наиболее важным вопросам государственного и местного значения в целях принятия решений осуществляемого посредством голосования граждан РФ обладающих правом на участие в референдуме. Виды референдума в зависимости от территории: 1 всероссийский референдум он проводится по вопросам общефедерального значения на основании решения Президента РФ; 2 референдум субъекта РФ он проводится по вопросам ведения соответствующего субъекта РФ или совместного ведения РФ и субъектов РФ если указанные вопросы не...
45329. Функции Президента Российской Федерации 21 KB
Назначение с согласия Государственной Думы Председателя Правительства РФ других членов Правительства РФ направление его политики и принятие решения об отставке Правительства РФ; 2 представление Государственной Думе кандидатуры на должность Председателя Центрального банка РФ постановление перед ней вопроса об освобождении от должности Председателя Центрального банка РФ; 3 представление Совету Федерации кандидатур для назначения на должности судей Конституционного Суда РФ...
45330. Порядок избрания и освобождения от должности Президента Российской Федерации 23.1 KB
Порядок избрания и освобождения от должности Президента Российской Федерации. Президент Российской Федерации избирается сроком на шесть лет гражданами Российской Федерации на основе всеобщего равного и прямого избирательного права при тайном голосовании. Президентом Российской Федерации может быть избран гражданин Российской Федерации не моложе 35 лет постоянно проживающий в Российской Федерации не менее 10 лет Одно и то же лицо не может занимать должность Президента Российской Федерации более двух сроков подряд. Порядок выборов Президента...
45331. 22.83 KB
ИНСТИТУТ УПОЛНОМОЧЕННОГО ПО ПРАВАМ ЧЕЛОВЕКА В РФ В РФ защитой прав и свобод граждан их соблюдения государственными органами власти органами местного самоуправления и должностными лицами занимается Уполномоченный по правам человека в РФ. В пределах своей компетенции Уполномоченный по правам человека в РФ: 1 рассматривает жалобы граждан РФ и находящихся на территории РФ иностранных граждан и лиц без гражданства; 2 рассматривает жалобы на решения или действия государственных органов органов местного самоуправления должностных лиц...
45332. Государственная Дума Российской Федерации - палата Федерального Собрания Российской Федерации 26.28 KB
Полномочия местного самоуправления это закрепленные федеральным законодательством а также нормативными правовыми актами субъектов Российской Федерации и правовыми актами органов местного самоуправления за населением соответствующих территорий выборными и иными органами местного самоуправления права и обязанности связанные с реализацией задач и функций местного самоуправления на соответствующей территории. Полномочия местного самоуправления реализуются как непосредственно населением городских и сельских поселений других территорий путем...
45333. Конституционно-правовой статус члена Совета Федерации и депутата Государственной Думы 25.69 KB
Конституционно-правовой статус члена Совета Федерации и депутата Государственной Думы Конституционно-правовой статус члена Совета Федерации и депутата Государственной Думы определяется Конституцией РФ ст. О статусе члена Совета Федерации и депутата Государственной Думы Федерального Собрания Российской Федерации. Депутатом Государственной Думы является избранный представитель народа уполномоченный осуществлять в Государственной Думе законодательные и иные полномочия предусмотренные Конституцией РФ и федеральным законом. Срок полномочий...
45334. Система законодательных (представительных) и исполнительных органов государственной власти субъектов Российской Федерации 20.8 KB
Система законодательных представительных и исполнительных органов государственной власти субъектов Российской Федерации устанавливается ими самостоятельно в соответствии с основами конституционного строя Российской Федерации и ФЗ от 06. Об общих принципах организации законодательных представительных и исполнительных органов государственной власти субъектов Российской Федерации.Образование формирование деятельность законодательных представительных и исполнительных органов государственной власти субъектов Российской Федерации их...
45335. Законодательный процесс в РФ 25.93 KB
В составе городского поселения также могут находиться сельские населенные пункты не имеющие статуса сельских поселений в которых местное самоуправление осуществляется населением непосредственно и или через выборные и иные органы местного самоуправления. Городской округ городское поселение которое не входит в состав муниципального района и органы местного самоуправления которого осуществляют полномочия по решению установленных законом вопросов местного значения поселения и вопросов местного значения муниципального района а также могут...
45336. Подходы к построению систем искусственного интеллекта 33 KB
Структурный подход Под структурным подходом подразумевается попытки построить искусственный интеллект путём моделирования структуры человеческого мозга. Основной моделируемой структурной единицей в персептронах как и в большинстве других вариантов моделирования мозга является нейрон. Позднее возникли и другие модели которые обычно называют нейронные сети. Эти модели различаются по строению отдельных нейронов по топологии связей между ними и по алгоритмам обучения.

Основные определения:

Электронная система - в данном случае это любой электронный узел, блок, прибор или комплекс, производящий обработку информации.

Задача - это набор функций, выполнение которых требуется от электронной системы.

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

Гибкость - это способность системы подстраиваться под различные задачи.

Избыточность - это показатель степени соответствия возможностей системы решаемой данной системой задаче.

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

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

Характерная особенность традиционной цифровой системы состоит в том, что алгоритмы обработки и хранения информации в ней жестко связаны со схемотехникой системы. То есть изменение этих алгоритмов возможно только путем изменения структуры системы, замены электронных узлов, входящих в систему, и/или связей между ними. Например, если нам нужна дополнительная операция суммирования, то необходимо добавить в структуру системы лишний сумматор. Или если нужна дополнительная функция хранения кода в течение одного такта, то мы должны добавить в структуру еще один регистр. Естественно, это практически невозможно сделать в процессе эксплуатации, обязательно нужен новый производственный цикл проектирования, изготовления, отладки всей системы. Именно поэтому традиционная цифровая система часто называется системой на «жесткой логике».

Рис. 1.1. Электронная система.

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

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

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

Но в то же время большим недостатком цифровой системы на «жесткой логике» является то, что для каждой новой задачи ее надо проектировать и изготавливать заново. Это процесс длительный, дорогостоящий, требующий высокой квалификации исполнителей. А если решаемая задача вдруг изменяется, то вся аппаратура должна быть полностью заменена. В нашем быстро меняющемся мире это довольно расточительно.

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

Рис. 1.2. Программируемая (она же универсальная) электронная система.

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

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

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

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

1.1. Что такое микропроцессор?

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

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

Рис. 1.3. Информационные потоки в микропроцессорной системе.

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

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

Для выполнения команд в структуру процессора входят внутренние регистры, арифметико-логическое устройство (АЛУ, ALU - Arithmetic Logic Unit) , мультиплексоры, буферы, регистры и другие узлы. Работа всех узлов синхронизируется общим внешним тактовым сигналом процессора. То есть процессор представляет собой довольно сложное цифровое устройство (рис. 1.4).

Рис. 1.4. Пример структуры простейшего процессора.

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

1.2. Шинная структура связей

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

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

При шинной структуре связей (рис. 1.6) все сигналы между устройствами передаются по одним и тем же линиям связи, но в разное время (это называется мультиплексированной передачей). Причем передача по всем линиям связи может осуществляться в обоих направлениях (так называемая двунаправленная передача). В результате количество линий связи существенно сокращается, а правила обмена (протоколы) упрощаются. Группа линий связи, по которым передаются сигналы или коды как раз и называется шиной (англ. bus).

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

Рис. 1.6. Шинная структура связей.

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

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

Типичная структура микропроцессорной системы приведена на рис. 1.10. Она включает в себя три основных типа устройств:

процессор;

память, включающую оперативную память (ОЗУ, RAM - Random Access Memory) и постоянную память (ПЗУ, ROM -Read Only Memory), которая служит для хранения данных и программ;

устройства ввода/вывода (УВВ, I/O - Input/Output Devices), служащие для связи микропроцессорной системы с внешними устройствами, для приема (ввода, чтения, Read) входных сигналов и выдачи (вывода, записи, Write) выходных сигналов.

Рис. 1.10. Структура микропроцессорной системы.

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

шина адреса (Address Bus);

шина данных (Data Bus);

шина управления (Control Bus);

шина питания (Power Bus).

Шина адреса служит для определения адреса (номера) устройства, с которым процессор обменивается информацией в данный момент. Каждому устройству (кроме процессора), каждой ячейке памяти в микропроцессорной системе присваивается собственный адрес. Когда код какого-то адреса выставляется процессором на шине адреса, устройство, которому этот адрес приписан, понимает, что ему предстоит обмен информацией. Шина адреса может быть однонаправленной или двунаправленной.

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

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

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

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

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

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

Важно учитывать, что устройства ввода/вывода чаще всего представляют собой устройства на «жесткой логике». На них может быть возложена часть функций, выполняемых микропроцессорной системой. Поэтому у разработчика всегда имеется возможность перераспределять функции системы между аппаратной и программной реализациями оптимальным образом. Аппаратная реализация ускоряет выполнение функции, но имеет недостаточную гибкость. Программная реализация значительно медленнее, но обеспечивает высокую гибкость. Аппаратная реализация функций увеличивает стоимость системы и ее энергопотребление, программная - не увеличивает. Чаще всего применяется комбинирование аппаратных и программных функций.

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

1.3. Режимы работы микропроцессорной системы

Как уже отмечалось, микропроцессорная система обеспечивает большую гибкость работы, она способна настраиваться на любую задачу. Гибкость эта обусловлена прежде всего тем, что функции, выполняемые системой, определяются программой (программным обеспечением, software), которую выполняет процессор. Аппаратура (аппаратное обеспечение, hardware) остается неизменной при любой задаче. Записывая в память системы программу, можно заставить микропроцессорную систему выполнять любую задачу, поддерживаемую данной аппаратурой. К тому же шинная организация связей микропроцессорной системы позволяет довольно легко заменять аппаратные модули, например, заменять память на новую большего объема или более высокого быстродействия, добавлять или модернизировать устройства ввода/вывода, наконец, заменять процессор на более мощный. Это также позволяет увеличить гибкость системы, продлить ее жизнь при любом изменении требований к ней.

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

Практически любая развитая микропроцессорная система (в том числе и компьютер) поддерживает три основных режима обмена по магистрали:

программный обмен информацией;

обмен с использованием прерываний (Interrupts);

обмен с использованием прямого доступа к памяти (ПДП, DMA - Direct Memory Access).

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

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

Рис. 1.11. Программный обмен информацией.

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

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

с помощью постоянного программного контроля факта наступления события (так называемый метод опроса флага или polling);

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

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

Проиллюстрировать эти три способа можно следующим простым примером. Допустим, вы готовите себе завтрак, поставив на плиту кипятиться молоко. Естественно, на закипание молока надо реагировать, причем срочно. Как это организовать? Первый путь - постоянно следить за молоком, но тогда вы ничего другого не сможете делать. Правильнее будет регулярно поглядывать на молоко, делая одновременно что-то другое. Это программный режим с опросом флага. Второй путь - установить на кастрюлю с молоком датчик, который подаст звуковой сигнал при закипании молока, и спокойно заниматься другими делами. Услышав сигнал, вы выключите молоко. Правда, возможно, вам придется сначала закончить то, что вы начали делать, так что ваша реакция будет медленнее, чем в первом случае. Наконец, третий путь состоит в том, чтобы соединить датчик на кастрюле с управлением плитой так, чтобы при закипании молока горелка была выключена без вашего участия (правда, аналогия с ПДП здесь не очень точная, так как в данном случае на момент выполнения действия вас не отвлекают от работы).

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

Во втором случае в режиме прерывания процессор, получив запрос прерывания от внешнего устройства (часто называемый IRQ - Interrupt ReQuest), заканчивает выполнение текущей команды и переходит к программе обработки прерывания. Закончив выполнение программы обработки прерывания, он возвращается к прерванной программе с той точки, где его прервали (рис. 1.12).

Здесь важно то, что вся работа, как и в случае программного режима, осуществляется самим процессором, внешнее событие просто временно отвлекает его. Реакция на внешнее событие по прерыванию в общем случае медленнее, чем при программном режиме. Как и в случае программного обмена, здесь все сигналы на магистрали выставляются процессором, то есть он полностью контролирует магистраль. Для обслуживания прерываний в систему иногда вводится специальный модуль контроллера прерываний, но он в обмене информацией не участвует. Его задача состоит в том, чтобы упростить работу процессора с внешними запросами прерываний. Этот контроллер обычно программно управляется процессором по системной магистрали.

Рис. 1.12. Обслуживание прерывания.

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

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

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

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

Рис. 1.13. Обслуживание ПДП.

Рис. 1.14. Информационные потоки в режиме ПДП.

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

Если в системе уже имеется самостоятельный контроллер ПДП, то это может в ряде случаев существенно упростить аппаратуру устройств ввода/вывода, работающих в режиме ПДП. В этом, пожалуй, состоит единственное бесспорное преимущество режима ПДП.

1.4. Архитектура микропроцессорных систем

До сих пор мы рассматривали только один тип архитектуры микропроцессорных систем - архитектуру с общей, единой шиной для данных и команд (одношинную, или принстонскую, фон-неймановскую архитектуру). Соответственно, в составе системы в этом случае присутствует одна общая память, как для данных, так и для команд (рис. 1.15).

Рис. 1.15. Архитектура с общей шиной данных и команд.

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

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

Рассмотрим некоторые достоинства и недостатки обоих архитектурных решений.

Архитектура с общей шиной (принстонская, фон-неймановская) проще, она не требует от процессора одновременного обслуживания двух шин, контроля обмена по двум шинам сразу. Наличие единой памяти данных и команд позволяет гибко распределять ее объем между кодами данных и команд. Например, в некоторых случаях нужна большая и сложная программа, а данных в памяти надо хранить не слишком много. В других случаях, наоборот, программа требуется простая, но необходимы большие объемы хранимых данных. Перераспределение памяти не вызывает никаких проблем, главное - чтобы программа и данные вместе помещались в памяти системы. Как правило, в системах с такой архитектурой память бывает довольно большого объема (до десятков и сотен мегабайт). Это позволяет решать самые сложные задачи.

Рис. 1.16. Архитектура с раздельными шинами данных и команд.

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

В чем же преимущество архитектуры с двумя шинами (гарвардской)? В первую очередь, в быстродействии.

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

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

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

1.5. Типы микропроцессорных систем

Диапазон применения микропроцессорной техники сейчас очень широк, требования к микропроцессорным системам предъявляются самые разные. Поэтому сформировалось несколько типов микропроцессорных систем, различающихся мощностью, универсальностью, быстродействием и структурными отличиями. Основные типы следующие:

микроконтроллеры - наиболее простой тип микропроцессорных систем, в которых все или большинство узлов системы выполнены в виде одной микросхемы;

контроллеры - управляющие микропроцессорные системы, выполненные в виде отдельных модулей;

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

компьютеры (в том числе персональные) - самые мощные и наиболее универсальные микропроцессорные системы.

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

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

Контроллеры, как правило, создаются для решения какой-то отдельной задачи или группы близких задач. Они обычно не имеют возможностей подключения дополнительных узлов и устройств, например, большой памяти, средств ввода/вывода. Их системная шина чаще всего недоступна пользователю. Структура контроллера проста и оптимизирована под максимальное быстродействие. В большинстве случаев выполняемые программы хранятся в постоянной памяти и не меняются. Конструктивно контроллеры выпускаются в одноплатном варианте.

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

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

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

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

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

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

6.3.3. Программирование учебных задач

Начнем программирование учебных задач с написания программы, которая считывает состояние кнопки SB1 и выводит его на светодиодный индикатор VD2 так, что не нажатому состоянию кнопки (высокому уровню сигнала на входе RA4 ) соответствует светящееся состояние светодиода, и наоборот.

Листинг 12.2. (html , txt )

Листинг 12.2. (html , txt )

;основная программа

LOOP

CALL SB1_VD2 ;вызов подпрограммы SB1_VD2

;повторения процесса

GET_RA ;подпрограмма чтения состояния

;порта A

SB1_VD2 ;подпрограмма вывода на светодиод

;VD2 состояния кнопки SB1 (разряда 4

;регистра TEMPA)

GOTO P0 ;перейти на P0

;TEMPA,4=0 (кнопка нажата)

GOTO P1 ;перейти на P1

BCF VD2 ;погасить светодиод

RETURN

Листинг 12.2.

Основная программа содержит замкнутый цикл LOOP – GOTO LOOP , необходимый для периодического повторения цикла контроля состояния кнопки и вывода его на индикатор. Команда CLRWDT исключает влияние возможного сброса по переполнению сторожевого таймера на работу программы. Две следующие команды осуществляют вызов подпрограмм GET_RA и SB1_VD2 . Первая из них (GET_RA ) вначале считывает текущее состояние порта A , которое помещается в рабочий регистр W . Поскольку рабочий регистр может потребоваться при исполнении других команд, его состояние записывается в регистр TEMPA , используемый здесь для временного хранения состояния порта A . Таким образом, после возврата из подпрограммы GET_RA в разряде 4 регистра TEMPA содержится информация о состоянии кнопки SB1 : "1" – не нажата, "0" – нажата.

Подпрограмма SB1_VD2 TEMPA и, в зависимости от него, зажигает или гасит светодиод. В системе команд МК PIC16F84 нет команд условного перехода, поэтому для организации проверки того или иного условия используются команды, позволяющие пропустить выполнение следующей команды программы, в зависимости от состояния определенного бита в заданном регистре ( BTFSS и BTFSC ). В частности, команда BTFSS TEMP,4 пропускает исполнение команды GOTO P0 , если TEMP,4 = 1 (кнопка не нажата). Тем самым реализуется команда BSF VD2 , которая зажигает светодиод VD2 . Затем анализируется условие TEMP,4 = 0 (кнопка нажата) и, если оно имеет место, светодиод гасится.

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

Рассмотрим более сложный вариант программы, предусматривающий зажигание светодиода VD2 только при следующем состоянии тумблеров и кнопок макета: SA1 = 1 , SA2 = 1 , SB1 = 1 и SB2 = 0 .

Листинг 12.3. (html , txt )

Листинг 12.3. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RA ; вызов подпрограммы GET_RA

CALL GET_RB ; вызов подпрограммы GET_RB

CALL ZAG_1110 ; вызов подпрограммы ZAG_1110

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

GET_RB ;подпрограмма чтения состояния

;порта B

MOVF PORTB,W ;чтение состояния порта B в W

MOVWF TEMPB ;пересылка W в TEMPB

RETURN

ZAG_1110 ;зажигает светодиод VD2 только при

;следующем состоянии тумблеров и

;кнопок макета:

;SA1 = SA2 = SB1 = 1 и SB2 = 0

BTFSS TEMPA,2 ;пропустить команду, если

GOTO P0 ;TEMPA,2=1

BTFSS TEMPA,3 ;пропустить команду, если

GOTO P0 ;TEMPA,3=1

BTFSS TEMPA,4 ;пропустить команду, если

GOTO P0 ;TEMPA,4=1

BTFSC TEMPB,0 ;пропустить команду, если

GOTO P0 ;TEMPB,0=0

BSF VD2 ;зажечь светодиод VD2

GOTO P1

BCF VD2 ;погасить светодиод VD2

RETURN

INCLUDE GET_RA.ASM

Листинг 12.3.

Подпрограммы GET_RA и GET_RB помещают в регистры TEMPA и TEMPB текущие состояния портов A и B , соответственно. Подпрограмма ZAG_1110 анализирует состояния разрядов 2,3 и 4 регистра TEMPA и разряда 0 регистра TEMPB , и при условии TEMPA,2,3,4 = 1,1,1 и TEMPB,0 = 0 , зажигает светодиод VD2 . При невыполнении хотя бы одного из этих условий светодиод гасится.

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

Попробуем теперь использовать семисегментный индикатор для контроля состояния тумблеров макета. Вначале напишем программу, которая выводит на индикатор HL семисегментное изображение любого двоичного числа от 0b до 1111b в шестнадцатиричном представлении.

Листинг 12.4. (html , txt )

Листинг 12.4. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

MOVLW 0x0A ;пересылка константы 0A в W

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

SEV_SEG ;подпрограмма обслуживания

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

ANDLW 0x0F ;маскирование 4-х младших разрядов

;W и обнуление 4-х старших

ADDWF PCL,F ;сложение W с PCL и пересылка

;результата в PCL

RETLW 0x80 ;возврат из подпрограммы с 80 в W

RETLW 0xF2 ;возврат из подпрограммы с F2 в W

RETLW 0x48 ;возврат из подпрограммы с 48 в W

RETLW 0x60 ;возврат из подпрограммы с 60 в W

RETLW 0x32 ;возврат из подпрограммы с 32 в W

RETLW 0x25 ;возврат из подпрограммы с 25 в W

RETLW 0x04 ;возврат из подпрограммы с 04 в W

RETLW 0xF0 ;возврат из подпрограммы с F0 в W

RETLW 0x00 ;возврат из подпрограммы с 00 в W

RETLW 0x20 ;возврат из подпрограммы с 20 в W

RETLW 0x10 ;возврат из подпрограммы с 10 в W

RETLW 0x06 ;возврат из подпрограммы с 06 в W

RETLW 0x8C ;возврат из подпрограммы с 8C в W

RETLW 0x42 ;возврат из подпрограммы с 42 в W

RETLW 0x0C ;возврат из подпрограммы с 0C в W

RETLW 0x1C ;возврат из подпрограммы с 1C в W

Листинг 12.4.

Программа начинает свою работу с пересылки константы 0x0A в рабочий регистр W . Затем производится вызов подпрограммы обслуживания семисегментного индикатора SEV_SEG . Работа подпрограммы SEV_SEG начинается с маскирования 4-х младших разрядов W и обнуления 4-х старших. Тем самым из анализа исключаются старшие разряды передаваемого из рабочего регистра W числа. Затем маскированное содержимое регистра W добавляется к текущему состоянию младшего байта счетчика команд PCL , и результат помещается в PCL . Таким образом, производится дополнительное смещение счетчика команд на величину, которая была передана в рабочем регистре. Например, если было W=0 , то содержимое счетчика команд не изменится, и будет выполнена следующая команда RETLW 0x80 0x80 = B"1000000" в регистр W . Если, как было в при веденной программе, W=0A , то к содержимому PCL будет добавлено число 0x0A , и произойдет дополнительное смещение на 10 шагов. В результате будет выполнена команда RETLW 0x10 , которая вызовет возврат из подпрограммы с записью 0x10 = B"0001000" в регистр W .

После возврата из подпрограммы производится пересылка W в PORTB и отображение его состояния на семисегментном индикаторе HL . В частности, если W = 0 , то при выводе 1000000b на порт B семисегментный индикатор покажет 0 , а при W = A покажет A .Таким образом, может быть отображено любое 4-разрядное двоичное число.

Метод прямого управления счетчиком команд, использованный в подпрограмме SEV_SEG , может применяться для реализации табличной конвертации чисел. При этом необходимо иметь в виду, что данный метод не позволяет конвертировать более 256 значений в одной таблице. Кроме того, программа табличной конвертации должна целиком располагаться внутри 256-байтного блока во избежание переполнения младшего байта счетчика команд.

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

Листинг 12.5. (html , txt )

Листинг 12.5. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RA ; вызов подпрограммы GET_RA

RRF TEMPA,F ;сдвиг вправо на один разряд

;через перенос

RRF TEMPA,W ;сдвиг вправо на один разряд

;через перенос

ANDLW 0x03 ;маска на два младших разряда

CALL SEV_SEG ; вызов подпрограммы SEVEN_SEG

MOVWF PORTB ; пересылка W в PORTB

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

INCLUDE GET_RA.ASM

INCLUDE SEV_SEG.ASM

Листинг 12.5.

Подпрограмма GET_RA помещает в регистр TEMPA текущее состояние порта A . Таким образом, в разрядах 2 и 3 регистра TEMPA хранится текущее состояние тумблеров SA1 и SA2 . Для того чтобы биты состояния тумблеров заняли позиции 0 и 1 регистра TEMPA , производится два сдвига вправо через перенос, причем результат второго сдвига помещается в регистр W . Затем накладывается маска на два младших разряда рабочего регистра и производится вызов подпрограммы SEV_SEG . После выхода из подпрограммы результат подается на порт B и отображается на индикаторе.

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

Листинг 12.6. (html , txt )

Листинг 12.6. (html , txt )

;основная программа

MOVLW 0xL ;пересылка константы H"L" в W

CALL DELAY ;вызов подпрограммы DELAY

DELAY ;подпрограмма формирования

;задержки времени

LOOPD

RETURN ;возврат из подпрограммы

Листинг 12.6.

Основная программа производит вызов подпрограммы DELAY с некоторой константой L в рабочем регистре W , определяющей число внутренних циклов подпрограммы. Подпрограмма DELAY начинает свою работу с загрузки содержимого рабочего регистра в регистр пользователя COUNT1 . Команда DECFSZ COUNT1,F уменьшает на единицу содержимое регистра COUNT1 и проверяет его на равенство нулю. Нулевое состояние регистра COUNT1 приводит к выходу из цикла и возврату из подпрограммы. Для исполнения каждого внутреннего цикла требуется три машинных цикла МК (1 цикл на исполнение команды DECFSZ при ненулевом результате и 2 цикла на каждую команду GOTO ). Выход из подпрограммы DELAY потребует 4-х циклов (2 цикла на исполнение команды DECFSZ при нулевом результате и 2 цикла на RETURN ). Если добавить к этому еще 4 цикла, необходимых для загрузки константы в рабочий регистр, вызова подпрограммы и загрузки регистра пользователя COUNT1 , то общее время исполнения подпрограммы DELAY (задержка) составит

TD = 4 + 3*(L – 1) + 4 = 5 + 3*L циклов,

где L – константа, переданная через рабочий регистр в подпрограмму DELAY .

L = H"00" = .0 максимальный формируемый интервал времени составит 1,55 мс. Такой результат связан с тем, что команда DECFSZ сначала декрементирует содержимое регистра ( H"00" – 1 = H"FF" ), а затем уже анализирует результат.

Минимальный формируемый интервал времени составит при тех же условиях 5 циклов или 10 мкс. Для получения такого интервала необходимо перед вызовом подпрограммы DELAY загрузить в рабочий регистр число 0x01 .

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

Листинг 12.7. (html , txt )

Листинг 12.7. (html , txt )

DELAY_C ;подпрограмма формирования

;задержки времени (вариант C)

LOOPD

NOP ;пустая команда

GOTO LOOPD ;повторение цикла H"L" раз

RETURN ;возврат из подпрограммы

Листинг 12.7.

Общее время исполнения подпрограммы DELAY_C , включая ее вызов, составит

TD = 4 + 4*(L – 1) + 4 = 4 + 4*L циклов.

При тактовой частоте fosc = 2МГц и загрузке константы L = H'F9' = .249 формируемый интервал времени составит ровно 2 мс. Уменьшение константы на единицу уменьшает формируемый временной интервал на 8 мкс. В частности, при L = .124 образуется задержка в 1 мс.

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

Листинг 12.8. (html , txt )

Листинг 12.8. (html , txt )

;основная программа

MOVLW 0xL ;пересылка константы H'L' в W

CALL DELAY_D ;вызов подпрограммы DELAY_D

DELAY_D ;подпрограмма формирования

;большой задержки времени (вариант D)

LOOPD

CLRWDT ;сброс сторожевого таймера

RETURN ;возврат из подпрограммы

Листинг 12.8.

DELAY_D составляет 3*256 + 4

TD = 5 + (3*256 + 4)*L циклов.

При тактовой частоте fosc = 2МГц время цикла равно tц = 2 мкс, поэтому при загрузке L = H'00' = .0 максимальный формируемый интервал времени составит около 0,4 с.

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

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

Листинг 12.9. (html , txt )

Листинг 12.9. (html , txt )

DELAY_E ;подпрограмма формирования

;большой задержки времени (вариант E)

CLRF COUNT1 ;сброс содержимого регистра COUNT1

LOOPD

NOP ;пустая команда

GOTO LOOPD ;повторение цикла 256 раз

CLRWDT ;сброс сторожевого таймера

GOTO LOOPD ;повторение цикла H'L' раз

RETURN ;возврат из подпрограммы

Листинг 12.9.

Время исполнения внутреннего цикла подпрограммы DELAY_E составляет 4*256 + 4 машинных циклов МК, поэтому общая задержка составит

TD = 5 + (4*256 + 4)*L циклов.

При тактовой частоте fosc = 2МГц и при загрузке L = H'F3' = .243 формируемый интервал времени составит около 0,5 с при погрешности не более 0,2%. Если необходима более высокая точность, можно вставить необходимое количество пустых операций во внешний цикл формирования задержки.

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

Листинг 12.10. (html , txt )

Листинг 12.10. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET _ RA ;вызов подпрограммы GET _ PORTA

CALL SB1_BA1 ;вызов подпрограммы SB1_BA1

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

SB1_BA1 ;подпрограмма подачи звука на

;динамик BA1 при нажатии на кнопку

;SB1

BTFSC TEMPA,4 ;пропустить команду, если

;TEMPA,4=0 (кнопка нажата)

GOTO B0 ;перейти на B0

BSF BA1 ;подача высокого уровня на RA0

;H'3E' = .62 в W

BCF BA1 ;подача низкого уровня на RA0

MOVLW 0x3E ;пересылка константы

;H'3E' = .62 в W

CALL DELAY_C ;вызов подпрограммы DELAY_C

RETURN

INCLUDE GET_RA.ASM

INCLUDE DELAY_C.ASM

Листинг 12.10.

Как и раньше, подпрограмма GET_RA считывает текущее состояние порта A, которое затем передается в регистр TEMPA . Подпрограмма SB1_BA1 анализирует состояние разряда 4 регистра TEMPA и, в зависимости от результата, озвучивает динамик BA1 или нет. Необходимая выдержка линии RA0 в единичном и нулевом состояниях обеспечивается подпрограммой DELAY_C с параметром L = H'3E' = .62 . Это соответствует времени задержки около 0,5 мс, что и дает в результате необходимую частоту следования сигнала 1 Кгц.

Рассмотрим далее программу, которая заставляет мигать светодиод VD2 при нажатии на кнопку SB1 . Для того чтобы мигания были хорошо видны, выберем их частоту равной 1 Гц.

Листинг 12.11. (html , txt )

Листинг 12.11. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RA ; вызов подпрограммы GET_RA

CALL SB1_VD2M ;вызов подпрограммы

;SB1_VD2M

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

SB1_VD2M ;подпрограмма мигания светодиода

;VD2 при нажатии на кнопку SB1

BTFSC TEMPA,4 ;пропустить команду, если

;TEMPA,4=0 (кнопка нажата)

GOTO V0 ;перейти на V0

BSF VD2 ;зажечь светодиод VD2

;H'F3' = .243 в W

BCF VD2 ;погасить светодиод

MOVLW 0xF3 ;пересылка константы

;H'F3' = .243 в W

CALL DELAY_E ;вызов подпрограммы DELAY_E

BTFSS TEMPA,4 ;пропустить команду, если

;TEMPA,4=1 (кнопка не нажата)

GOTO V1 ;перейти на V1

BCF VD2 ;погасить светодиод

RETURN

INCLUDE GET_RA.ASM

INCLUDE DELAY_E.ASM

Листинг 12.11.

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

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

Аппаратные способы борьбы с "дребезгом" контактов основаны на использовании RS-триггеров, одновибраторов или триггеров Шмитта. В устройствах на основе МК подавление "дребезга" контактов обычно осуществляется программными способами, которые основаны на повторном считывании состояния линии порта через определенное время.

В качестве примера рассмотрим "бездребезговый" вариант подпрограммы чтения состояния порта A .

Листинг 12.12. (html , txt )

Листинг 12.12. (html , txt )

GET_RAD ;подпрограмма чтения состояния

;порта A в регистр TEMPA

;с подавлением "дребезжания"

MOVF PORTA,W ;чтение состояния порта A в W

ANDLW 0x1C ;наложение маски b'00011100'

;на неиспользуемые биты W

MOVWF TEMPA ;пересылка W в TEMPA

CLRWDT ;сброс сторожевого таймера WDT

MOVLW 0x0A ;пересылка константы

;H'0A' = .10 в W

CALL DELAY_E ; вызов подпрограммы DELAY_E

MOVF PORTA,W ;чтение состояния порта A в W

ANDLW 0x1C ;наложение на W маски b'00011100'

SUBWF TEMPA,W ;вычитание W из TEMPA

BTFSS Z ;пропустить команду, если результат

;нулевой

GOTO DD ;перейти на метку DD

RETURN

INCLUDE DELAY_E.ASM

Листинг 12.12.

Суть работы подпрограммы заключается в повторном чтении состояния порта A спустя некоторое время после предыдущего и сравнении его с прежним значением. Константа H'0A' = .10 , пересылаемая в регистр W перед вызовом подпрограммы DELAY_E , обеспечивает значение задержки времени около 20 мс - этого, как правило, достаточно для завершения переходных процессов при переключении механических коммутаторов. Маскирование неиспользуемых разрядов порта повышает надежность работы подпрограммы. Сброс сторожевого таймера перед вызовом подпрограммы задержки нужен для исключения сброса МК между двумя процедурами опроса порта A .

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

Листинг 12.13. (html , txt )

Листинг 12.13. (html , txt )

;основная программа

CLRF COUNT3 ;сброс счетчика нажатий

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RAD ;вызов подпрограммы GET_RAD

BTFSC TEMPA,4 ;проверка нажатия SB1

GOTO LOOP ;если не нажата – возврат

;на метку LOOP

INCF COUNT3,F ;инкремент счетчика

MOVF COUNT3,W ;пересылка содержимого

;счетчика в рабочий регистр

CALL SEV_SEG ;вызов подпрограммы SEV_SEG

MOVWF PORTB ;пересылка W в PORTB

TEST

CALL GET_RAD ; вызов подпрограммы GET_RAD

BTFSS TEMPA,4 ;проверка нажатия SB1

GOTO TEST ;если еще нажата – возврат

;на метку TEST

GOTO LOOP ;возврат на метку LOOP

INCLUDE GET_RAD.ASM

INCLUDE SEV_SEG.ASM

Листинг 12.13.

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