eb2b7b6454f818f648069e92eaf1c2ee.ppt
- Количество слайдов: 31
Системы управления Средствами радиоэлектронной борьбы Тема 3 Общие принципы использования телекоммуникационных сетей.
Лекция 4 Структура микропроцессорных систем
• • Высокая эффективность семейства микропроцессоров и микроконтроллеров может быть отнесена за счет использования в микропроцессорах RISC структуры. Микропроцессорное ядро использует Гарвардскую структуру, в которой память программ и данных расположены в отдельных блоках и для обращения к ним используются отдельные шины. Это позволяет увеличить скорость выполне ния программы по сравнению с традиционной структурой, в которой программа и данные выбираются из одной и той же памяти с использованием одной шины Отдельные шины программ и данных позволяют передавать команды и данные разных размеров. По шине данных передаются 8 разрядные слова, а по шине команд — 14 разрядные коды операций, 14 разрядная организация памяти программ и шины команд позволяют размещать каждую команду в одной ячейке памяти и передавать ее за один цикл Двухступенчатый конвейер совмещает выборку очередной команды и выполнение текущей. Следовательно, все 35 операций системы команд выполняются за один цикл (200 нс при частоте генератора 20 МГц), кроме операций ветвления программы. Микропроцессор. Ы RISC могут осуществлять пересылку данных непосредственно или косвенно. Все функциональные регистры, включая счетчик программ, отображены в памяти данных. Они имеют симметричную систему команд. которая делает возможным выполнение любой операции в любом регистре, используя любой способ адресации. Симметричная система команд без специальной оптимизации местоположения делает программирование простым и эффективным.
• • • • Основные характеристики тактовая частота от 0 до 20 МГц (длительность цикла команды до 200 нс); память программы 8192 14 разрядных слов программы EPROM; 368 8 разрядных регистров оперативной памяти; 12 источников прерывания; аппаратный стек с восьмью уровнями; сброс при включении питания (POR), таймер включения питания (PWRT) и таймер запуска тактового генератора (OST); сторожевой таймер (WDT) с собственным встроенным RC генератором для надежного выполнения операций; программируемая защита кода; экономичный режим; 33 линии ввода вывода с индивидуальным заданием направления; широкий диапазон напряжений питания: 2, 5. . . 6, 0 В; втекающий/вытекающий ток выводов 25 м. А, позволяющий непосредственно управлять светодиодными индикаторами; малое потребление по питанию: не более 2 м. А при напряжении питания 5 В и тактовой частоте 4 МГц; типовое значение 15 мк. А при напряжении питания 3 В и тактовой частоте 32 к. Гц; не более 1 мк. А типовое значение в экономичном режиме.
Периферийные возможности Timer 0: 8 разрядный таймер/счетчик с 8 разрядным предварительным делителем; Timer 1: 16 разрядный таймер/счетчик с предварительным делителем, может функционировать в экономичном режиме через внешний вход; Timer 2: 8 разрядный таймер/счетчик с 8 разрядным регистром периода, предварительным делителем и выходным делителем; 2 модуля захвата/компаратора/ШИМ; захват 16 разрядов, максимальная разрешающая способность12, 5 нс; сравнение 16 разрядов, максимальная разрешающая способность 200 нс; ШИМ, максимальная разрешающая способность 10 разрядов; 8 разрядный 8 канальный аналого цифровой преобразователь; синхронный последовательный порт (SSP) с интерфейсами SPI(tm) и I 2 С(tm); USART; параллельный 8 битный подчиненный порт (PSP), со внешним сигналами управления RD, WR и CS; схема сброса при понижении напряжения питания (Brown out Reset, BOR)
На рис. 3 8 представлена структурная схема микроконтроллеров Р 1 С 16 С 745/ 765. Устройства Р 1 С 16 С 745/765 имеют 256 байт памяти данных. Р 1 С 16 С 745 имеют 13 контактов 1/0 (РОRTА и РОRТВ), а Р 1 С 16 С 765 — 33 контакта (РОRТА, РОRТВ, РОRТС, РОRТD и РОRТЕ), и они содержат следующие периферийные устройства: • два 8 разрядных таймера (ТМR 0 и ТМR 2) и один 16 разрядный (ТМR 1), • два модуля сравнения накопления и ШИМ (ССР 1 и ССР 2) • универсальный синхронно асинхронный приемопередатчик (USARТ), • 8 разрядный А/D преобразователь с мультиплексированными входными каналами, причем Р 1 С 16 С 745 имеет 5 входных каналов, а Р 1 С 16 С 774 — 8 каналов, • встроенный модуль РLL, позволяющий увеличить тактовую частоту в 4 раза, то есть при кварцевом резонаторе 6 МГц тактовая часта генератора будет 24 МГц. Основные отличия данных микроконтроллеров: наличие встроенного модуля USB с 64 байтов двух портовой буферной памятью, модуль USB поддерживает протокол версии 1. 1. Эти микроконтроллеры удобны для построения компьютерной периферии. P 1 C 16 C 765 имеет дополнительно 8 разрядный параллельный ведомый порт (PSP).
Лекция 5 Применение микроконтроллеров
Арифметико логическое устройство (ALU), в котором выполняются все вычислительные операции, имеет доступ к 32 м оперативным регистрам, объединенным в регистровый файл. Выборка содержимого регистров, выполнение операции и запись результата обратно в регистровый файл выполняются за один машинный цикл. Для сравнения полезно вспомнить, что большинство встраиваемых микроконтроллеров имеют только один такой регистр, непосредственно доступный ALU, аккумулятор, что требует включения в программу дополнительных команд его загрузки и считывания. Основной идеей всех RISC (Reduced Instruction Set Computer), как известно, является увеличение быстродействия за счет сокращения количества операций обмена с памятью программ. Для этого каждую команду стремятся уместить в одну ячейку памяти программ. При ограниченной разрядности ячейки памяти это неизбежно приводит к сокращению набора команд микропроцессора. У AVR микроконтроллеров в соответствии с этим принципом практически все команды (исключая те, у которых одним из операндов является 16 разрядный адрес) также упакованы в одну ячейку памяти программ. Но сделать это удалось не за счет сокращения количества команд процессора, а путем расширения ячейки памяти программ до 16 разрядов. Такое решение является причиной богатства системы команд AVR по сравнению с другими RISC микроконтроллерами
. Организация памяти AVR выполнена по схеме Гарвардского типа, в которой разделены не только адресные пространства памяти программ и памяти данных, но также и шины доступа к ним. Вся программная память AVR микроконтроллеров выполнена по технологии FLASH и размещена на кристалле. Она представляет собой последовательность 16 разрядных ячеек и имеет емкость от 512 слов до 64 K слов в зависимости от типа кристалла. Во FLASH память, кроме программы, могут быть записаны постоянные данные, которые не изменяются во время функционирования микропроцессорной системы. Это различные константы, таблицы знакогенераторов, таблицы линеаризации датчиков и т. п. Достоинством технологии FLASH является высокая степень упаковки, а недостатком то, что она не позволяет стирать отдельные ячейки. Поэтому всегда выполняется полная очистка всей памяти программ. При этом для AVR гарантируется, как минимум, 1000 циклов перезаписи FLASH памяти. Кроме того, для хранения данных AVR микроконтроллеры могут иметь, в зависимости от типа кристалла, внутреннюю (от 0 до 4 K байт) и внешнюю (от 0 до 64 Кбайт) оперативную SRAM память и энергонезависимую внутреннюю EEPROM память (от 0 до 4 K байт). Разделение шин доступа (рис. 1) к FLASH памяти и SRAM памяти дает возможность иметь шины данных для памяти данных и памяти программ различной разрядности а также использовать технологию конвейеризации. Конвейеризация заключается в том, что во время исполнения текущей команды программный код следующей уже выбирается из памяти и дешифрируется.
Для сравнения вспомним, что у микроконтроллеров семейства MCS 51 выборка кода команды и ее исполнение осуществляются последовательно, что занимает один машинный цикл, который длится 12 периодов кварцевого резонатора. В случае использования конвейера приведенную длительность машинного цикла можно сократить. Например, у PIC микроконтроллеров фирмы Microchip за счет использования конвейера удалось уменьшить длительность машинного цикла до 4 периодов кварцевого резонатора. Длительность же машинного цикла AVR составляет один период кварцевого резонатора. EEPROM блок электрически стираемой памяти AVR предназначен для хранения энергонезависимых данных, которые могут изменяться непосредственно на объекте. Это калибровочные коэффициенты, различные уставки, конфигурационные параметры системы. EEPROM память имеет меньшую, по сравнению с FLASH, емкость (до 4 К байт), но при этом допускает возможность побайтной перезаписи ячеек, которая может происходить как под управлением внешнего процессора, так и под управлением собственно AVR микроконтроллера во время его работы по программе. Программирование энергонезависимых блоков памяти AVR может осуществляться как параллельно, так и последовательно через SPI (Serial Peripheral Interface) интерфейс.
• Управление и обмен данными с EEPROM памятью и со всеми периферийными узлами осуществляется при помощи регистров ввода/вывода, которые имеются в каждом периферийном узле. Микроконтроллер AT 90 S 1200 был первым. Тактирование его работы может осуществляться как с использованием внешнего кварцевого резонатора, так и от внутренней RC цепочки. В последнем случае микроконтроллер AT 90 S 1200 работает без единого внешнего элемента. Недостаток периферии AT 90 S 1200 окупается его ценой. Это самый дешевый AVR микроконтроллер. Исторически следующими были AT 90 S 2313, AT 90 S 4414, AT 90 S 8515. Они имеют, соответственно таблице, б. Ольшие объемы памяти, второй более мощный 16 разрядный таймер и последовательный асинхронный адаптер (UART). У микроконтроллеров AT 90 S 4414 и AT 90 S 8515, кроме того, последовательный синхронный интерфейс (SPI) может использоваться не только для последовательного программирования внутренней памяти, но и в режимах master и slave как самостоятельный быстродействующий синхронный канал связи между несколькими микроконтроллерами. Важной функциональной особенностью AT 90 S 4414 и AT 90 S 8515 является также возможность подключения внешней SRAM объемом до 64 КB, которая появилась за счет изготовления этих микроконтроллеров в корпусах с большим количеством выводов.
• В 1998 году появились микроконтроллеры AT 90 S 2323 и AT 90 S 2343 в восьмивыводных корпусах. Различие между ними заключается в способе тактирования и количестве программируемых входов/выходов. Первый имеет 3 программируемых цифровых входа/выхода и предназначен для работы с внешним кварцевым резонатором в системах, предъявляющих высокие требования к стабильности тактовой частоты, а второй может синхронизироваться только от внутреннего RC генератора (или от внешнего генератора), что увеличивает количество программируемых входов/выходов до 5(4). AT 90 S 2323 тоже может работать от внутреннего RC генератора, но количество цифровых программируемых выводов при этом остается равным 3. Наиболее богатой периферией из всех Сlassic AVR обладает появившийся в январе 1999 года микроконтроллер AT 90 S 8535. Он имеет дополнительно к перечисленным узлам 10 разрядный АЦП с мультиплексором на 8 каналов и третий 8 разрядный таймер. Этот таймер имеет режимы сравнения и широтно импульсного модулятора, но главная его особенность заключается в том, что он может работать в асинхронном от всей системы режиме, используя дополнительный внешний часовой кварц частотой 32, 768 к. Гц, что позволяет вести отсчет реального времени в микропроцессорной системе в астрономических единицах
Типовая МПС, показанная на схеме содержит: микросхему программируемого периферийного интерфейса ППИ (PPI или IOP), к которой через три 8 битовых независимых канала PA, PB и PC можно подключать периферийные устройства, например принтер, клавиатуру, 8 ми сегментный дисплей или ЦАП и АЦП. Через ППИ может производиться обмен данными с другими МПС или ЭВМ. Ввод с клавиатуры и вывод на дисплей могут производиться специальными микросхемами. Связь с удаленными устройствами или абонентами сетей может осуществляться с помощью универсального асинхронного последовательного приемо-передатчика УАПП-UART (программируемый связной интерфейс ПСИ-PCI или IOS). К выводам Rx. D приемник и Tx. D передатчик через линию связи подключаются передатчик и приемник другого абонента или устройства. Если связь производится через модем, то доступны любые сети. Для формирования точных, различных по частоте и длительности сигналов, в т. ч. и звукового диапазона используется программируемый интервальный таймер ПИТ-PIT, имеющий три независимых 16 ти разрядных двоичных счетчика. Задержка, длительность или частота выходного сигнала каждого счетчика кратна 3. . 65535 периодам входного сигнала.
Если в системе используется режим прерывания выполнения основной программы внешними устройствами, требующими безотлагательного вмешательства микропроцессора, то может применяться программируемый контроллер прерываний ПКП - PIC (устройство собирающее заявки на обслуживание от ВУ с входов IRi). Подробно прерывания будут рассмотрены ниже. Обмен данными между МП и ЗУ или одним из ВУ возможен только при появлении на выходе дешифратора DC единственного сигнала ~CS = 0, поступающего на то устройство с которым будет производиться запись или чтение байта данных. Остальные (невыбранные) устройства будут в пассивном состоянии, т. к. их сигналы ~CS = 1. Байт информации на ШД считывается ВУ, ЗУ или МП в строго ограниченном интервале времени во время действия одного из управляющих сигналов чтения/записи (~MEMR, ~MEMW) из памяти или в память, или во время действия одного из сигналов управления вводом/выводом (~IOR, ~IOW) в/из ВУ. Быстрый обмен данными может производиться с помощью устройства прямого доступа к памяти ПДП (DMA).
СТЕК Область памяти с упрощенной схемой адресации, к которой МП обращается по принципу "последним вошел первым вышел" (LIFO). Байты программы в оперативной памяти располагаются последовательно по нарастающим адресам. Стек заполняется по последовательно убывающим адресам. Во избежание перекрытия этих двух областей памяти стек обычно располагается в старших адресах. Начальный адрес стека, называемый дном (bottom) записывается в регистр SP командой MOV SP, 0 fffeh. Вместо 0 fffeh адрес предпоследнего байта сегмента, может быть другое значение, но выравненное по двухбайтовым, т. е. четным адресам. Текущее значение содержимого SP называется, также адресом вершины стека (top). Если адрес вершины совпадает с адресом дна стек считается пустым. Рассмотрим механизм помещения в стек и извлечения из него данных на примере команд PUSH AX и POP BX.
Пусть начальное значение аккумулятора AX равно 874 c. Команда PUSH выполняется в четыре этапа: • Адрес в SP уменьшается на 1: (SP) < (SP) 1. • По этому адресу помещается старший байт 87: ((SP)) < (AH). • Содержимое SP снова уменьшается на 1: (SP) < (SP) 1. • По полученному адресу загружается младший байт 4 c: ((SP)) < (AL). Действие команды POP аналогично описанному процессу, но в происходит в обратном порядке: • • (BL) < ((SP)), (SP) < (SP) + 1, (BH) < ((SP)), (SP) < (SP) + 1. Байты в стек помещаются по правилу "старший байт по старшему адресу“. На рис. 7 показан пустой стек до выполнения команды PUSH AX и после ее выполнения, а на рис. 8 после выполнения команды POP BX.
Преимущество стека в том, что программисту не нужно заботиться об абсолютных значениях адресов переменных, но в этом таится и опасность, если текущее содержимое указателя стека будет потеряно, при неаккуратных действиях программиста, то работа компъютера станет непредсказуемой и он, как говорят в таких случаях, "зависнет". В программах стек используется для: • 1) сохранения и извлечения адреса возврата из подпрограмм командами ассемблера CALL и RET (IRET), • 2) хранения локальных переменных, • 3) передачи фактических параметров подпрограммам (трансляторами с языков высокого уровня), • 4) временного хранения содержимого регистров фоновой программы при ее прерывании.
СПОСОБЫ ВВОДА-ВЫВОДА Обмен данными между ЭВМ и ВУ или ЗУ называется вводом-выводом (ВВ). Существует четыре основных способа ВВ. • Программный ВВ • ВВ по прерываниям • Прямой доступ к памяти (ПДП) или DMA • Транзакции (MCS 96) В первых Обмен данными между ЭВМ и ВУ или ЗУ называется вводом-выводом (ВВ). Существует четыре основных способа ВВ. • • Программный ВВ ВВ по прерываниям
• • Прямой доступ к памяти (ПДП) или DMA Транзакции (MCS 96) В первых двух случаях в обмене данными участвует микропроцессор. В режиме ПДП функции управления обменом берет на себя специальное устройство контроллер ПДП, причем МП в это время в обмене данными не участвует. В 4 ом способе пересылки производятся параллельно с работой МП периферийным сервером транзакций.
ПРОГРАММНЫЙ ВВОД-ВЫВОД Для внешних устрйств выделяеся адресное пространство, либо не входящее в состав ЗУ, либо являющееся его частью. Следовательно программный ВВ может быть двух типов: • с помощью команд ассемблера ввод (IN) и вывод (OUT) • с использованием всех команд пересылки ассемблера (MOV, LODSB, . . ). В пределах 64 K блока карта распределения памяти для первого случая показана на рис. 5 слева.
В пределах интервала 0000. . . XXXX адреса ВУ и ЗУ пересекаются. Поэтому для однозначного обращения к ячейкам памяти или ВУ в процессорном блоке формируются управляющие пересылкой стробирующие импульсы ~IOR, ~IOW для ввода или вывода данных во внешнее устройство и ~MEMR, ~MEMW для чтения или записи в память. Емкость ЗУ для размещения программ и данных не уменьшается. Карта распределения памяти для второго случая показана на рис. 5 справа. Под внешние устройства выделяется часть адресного пространства ЗУ. Емкость ЗУ уменьшается на количество адресов отводимых для ВУ. Второй способ позволяет адресоваться к ВУ с помощью всех команд оперирующих с памятью. Основное достоинство программного ВВ в простоте. Но при выполнении ввода, например с клавиатуры, МП затрачивает до 99, 99. . % времени на ожидание, не выполняя при этом другой полезной работы. Избавиться от этого недостатка позволяет ВВ по прерываниям.
ВВОД-ВЫВОД ПО ПРЕРЫВАНИЯЮ В общем случае прерывания могут вызываться • внешнними устройствами (внешние прерывания), • • командами прерываний (программные прерывания) автоматически самим МП (внутренние прерывания), например при попытке деления на 0. В этом разделе будут рассмотрены внешние прерывания. Работу МП можно разделить во времени между двумя независимыми программами: фоновой, которая выполняет основную задачу и программой ВВ данных. Когда ВУ подготовит данные для передачи, оно посылает сигнал запроса на прерывание непосредственно на вход МП INTR или в специальное устройство контроллер прерываний. В процессе обслуживания прерывания выполняются следующие действия: 1. ВУ самостоятельно, либо через контроллер прерываний посылает сигнал прерывания INT(R) на одноименный вход МП;
2. МП завершает выполнение текущей команды и если прерывания разрешены командой ассемблера STI(EI для 8085), то подтверждает разрешение сигналом ШУ INTA; 3. В МП по ШД передается тип(номер) прерывания N; 4. Содержимое PSW, а также CS, IP (адрес возврата), скорректированное с учетом сброса очереди помещается в стек; 5. Сбрасываются флаги IF (флаг разрешения прерываний) и TF (флаг трассировки), причем т. к. (IF) = 0 дальнейшие прерывания запрещаются; 6. В IP загружается содержимое двух байтов с начальным адресом 4*N, а в CS содержимое следующих двух байтов . Эти 4 байта называются вектором (указателем) прерывания. 7. Начинает выполняться подпрограмма обработчик прерывания.
• • • INT_SUBR: STI PUSH AX . . ; здесь . . ; команды MOV AL, 5; обработчика. . ; прерывания. . POP AX IRET Если допускаются вложенные прерывания, то вначале помещается команда STI разрешение преываний, запрещенных в п. 5. Инструкции push и pop сохраняют и восстанавливают содержимое регистров фоновой задачи, если эти же регистры используются и обработчиком прерывания (в примере регистр AX). 8. Команда IRET извлекает из стека адрес возврата IP, CS и содержимое PSW; 9. МП прдолжает работу с адреса возврата. При выполнении программных прерываний по команде INT N действия выполняются с п. 3. N находится в пределах 0 <= N <= 255, поэтому четырехбайтовые вектора прерываний занимают первые 1024 байта памяти.
ПРЯМОЙ ДОСТУП К ПАМЯТИ (ПДП) И ТРАНЗАКЦИИ Обмен большим количеством байтов, между ВУ (например дисковым накопителем) и памятью с помощью предыдущих двух методов малоэффективен, т. к. обмен происходит по цепочке: ВУ аккумулятор (AX или AL) память или наоборот. В режиме ПДП при поступлении запроса от ВУ на вход HOLD, МП разрешает обмен выходным сигналом HLDA. Микропроцессор на время обмена отключается от ШУ, ШД и ША переводя их в третье состояние по входам ~OE буферных элементов сигналом ~BUSEN = 1 . Специальная микросхема (контроллер ПДП) использует освободившиеся шины для высокоскоростного прямого обмена ВУ память. Скорость обмена достигает многих мегабит/сек.
На рис. 6 показан процесс выполнения основной (фоновой) программы интервалы времени (начало. . t 1, t 2. . конец) и выполнение процедуры передачи массива данных, на рисунке этот отрезок времени обозначен двойной линией. На диаграмме (А) ЭВМ задействована только для передачи (отрезок t 1. . t 2), в остальное время компьютер бездействует. Во втором варианте диаграмма (Б), код программы передачи жестко встроен в фоновую задачу. В третьем варианте (В) передача массива оформлена в виде подпрограммы прерывания, причем если запроса на прерывание не поступит, то суммарное время на выполнение фоновой программы уменьшится на t 2 t 1. При использовании режима ПДП сохраняются преимущества метода прерывания, время на передачу сокращается диаграмма (Г), но фоновая задача по прежнему прерывается. В последнем случае передача данных производится почти без нарушения хода программы параллельно во времени (Д). Транзакции реализованы в некоторых семействах однокристальных микро ЭВМ например в MCS 96.
eb2b7b6454f818f648069e92eaf1c2ee.ppt