
лекэпсхм-2.pptx
- Количество слайдов: 26
Лекция 2 Основные сведения о микропроцессорах. Вопросы: 1. Архитектура МП систем. 2. Структурная схема 8 разрядного МП. 3. Структура команд МП. 4. Языки программирования МП.
1. Архитектура МП систем. Микропроцессор (МП) – это программируемое логическое устройство, изготовленное по БИС-технологии. Типовая МП система включает в себя следующие функциональные блоки (рисунок 1): -устройство ввода (УВв), -память, -арифметическо-логическое устройство (АЛУ), -устройство управления (УУ), -устройство вывода (УВыв). Арифметическое устройство и устройство управления физически объединены в одном кристалле и называются центральным процессорным устройством – ЦПУ , это и есть МП.
Рисунок 1 – Типовая организация МП системы.
АЛУ способна выполнять ограниченный набор элементарных арифметических и логических операций. Этот набор функций определяется на стадии разработки конкретного МП и является неизменным. Последовательность выполнения арифметических и логических операций МП задается программным путем. Программа – это порядок выполнения операций АЛУ, с помощью которых осуществляется обработка информации или данных. Программа заносится в память МП. Затем ее отдельные команды одна за другой автоматически поступают в УУ, которое их расшифровывает и выполняет. Входная информация через УВв по сигналам УУ поступает либо в память, либо сразу в АЛУ. Затем в АЛУ осуществляется ее обработка, согласно заданному алгоритму. Полученные результаты направляются либо в память, либо в УВыв. УУ управляет работой МП, оно автоматически , последовательно по одной получает команды из памяти, декодирует каждую из них и генерирует необходимые для ее выполнения сигналы.
Вся информация в МП представлена как комбинация двоичных разрядов. Каждый двоичный разряд это один бит. 8 бит дают один байт. Группа двоичных разрядов, обрабатываемых МП одновременно, называется машинным словом. В МП системах если данные представлены в виде 8 разрядов, то это соответствует адресному пространству в размере 65536 ячеек, т. е. 64 Кбайта. Применительно к 8 -разрядному МП на рисунке 2 показана архитектура МП систем. Под архитектурой в данном случае понимается набор компонентов, образующих систему и показывающий связи между этими компонентами. Все элементы МП системы имеют шинную организацию приема и передачи сигналов, это: ШД – шина данных, она двунаправленная, 8 разрядная; ША – шина адреса, она однонаправленная, 16 разрядная; ШУ – шина управления, она однонаправленная, 10 разрядная.
Рисунок 2 – Архитектура 8 разрядной МП системы.
Память представлена: ПЗУ – постоянное запоминающее устройство, это память программ, допускает только считывание информации; ОЗУ – оперативное запоминающее устройство, это память данных, обеспечивает запись и считывание информации. УВВ – устройство ввода-вывода информации. ПКП – программируемый контроллер прерываний. ЖД – жесткий диск для хранения программ и информации. Экран – монитор отображения графической информации. Клав. – клавиатура и другие устройства ручного ввода информации. Минимальная организация для построения дискретных систем управления технологическим оборудованием должна включать: ЦПУ + ПЗУ + УВВ (+ ОЗУ +ПКП) Сигналы УУ подразделяются на три вида: - получение команды, т. е. считывание кода следующей команды из ПЗУ;
- декодирования команды, осуществляется в самом УУ; - выполнения команды. ОЗУ является энергозависимым устройством, ПЗУ это энергонезависимое устройство. Алгоритм работы МП системы в общем виде следующий: после подачи питания вырабатывается команда RESET, производящая начальное обнуление и установку всех компонентов; шаг 1 - УУ считывает из ПЗУ первую команду и автоматически увеличивает значение счетчика команд на 1; шаг 2 - после расшифровки кода команды УУ вырабатывает последовательность управляющих сигналов, в результате этого в АЛУ поступает информация либо из УВВ, либо из ПЗУ, либо из ОЗУ и т. д. ; шаг 3 – выполнение команды в АЛУ и сохранение ее результата; шаг 4 - УУ считывает следующую команду из ПЗУ, т. е. повторяются шаги 1 , 2, 3; При необходимости информация заносится в ОЗУ или подается на внешние устройства управление через УВВ.
2. Структурная схема 8 разрядного МП. Структура 8 разрядного ЦПУ приведена на рисунке 3, где: РОН – регистры общего назначения, это сверхоперативная память, они являются программно доступными; РСН – регистры специального назначения, предназначены для выполнения строго определенных функций и хранения промежуточных данных, они программно недоступны; РФ – регистры флагов, предназначены для оценки выполнения операций в АЛУ, они программно доступны; Программный счетчик – используется для обращения к памяти программ, его содержимое может изменяться программно; Блок управления –синхронизирует работу всех компонентов ЦПУ и МП системы в целом; ГТИ – генератор тактовых импульсов, задает частоту работы всех компонентов МП.
Рисунок 3 – Структурная схема 8 разрядного МП.
РОН подразделяются на 8 и 16 разрядные регистры, например: AH, AL (BH, BL; CH, CL; DH, DL) – это 8 разрядные РОН; AX, BX, CX, DX, SP, BP, SI, DI – это 16 разрядные РОН. SP – указатель стека. BP – базовый указатель. SI – индексный регистр источника. DI – индексный регистр приемника. Программный счетчик автоматически увеличивается на 1 после чтения каждого байта. Слово данных всегда состоит из 1 байта, а команды могут быть 1, 2 х и 3 х байтными. Первый байт команды всегда поступает из памяти (ПЗУ) по ШД на вход дешифратора команд, который определяет ее смысл. Дешифратор распознает сколько байт в команде, а затем вырабатывает соответствующие сигналы управления. РСН – сохраняют данные в процессе вычислений АЛУ, а так же инструкции 2 х и 3 х байтных команд. АЛУ обрабатывает данные, одни из них всегда находятся в аккумуляторе – А, а другие – либо заданы в самой команде, либо находятся в определенном регистре, результаты обработки всегда поступают в А.
Блок управления – это набор триггеров и вспомогательных схем. Все его элементы работают синхронно, т. е. на него поступают синхроимпульсы от ГТИ. Поэтому любые изменения происходят лишь в строго определенные моменты времени. Частота синхроимпульсов выбрана так, чтобы в интервале времени между соседними импульсами успели переключиться триггеры и сработать комбинационные схемы в расчете на самую большую задержку. Информация между внешними устройствами ЦПУ так же передается по шинам в синхронном режиме. При всех внешних обменах используются ША и ШД, а их синхронизация работы осуществляется по ШУ. ГТИ имеет кварцевую стабилизацию частоты, а в ЦПУ от него поступают, как правило, два сигнала – прямой и инверсный. Его сигналы имеют скважность, равную 3, т. е. Т/τ = 3 (Т –период следования импульсов, τ – длительность одного импульса).
3. Структура команд МП. Программа – задание алгоритма в форме указаний, воспринимаемых МП системой. Команда – предписание одного строго определенного действия с указанием над какими данными оно выполняется. Код команды состоит из кода операции (КОП) и адресной части (А). КОП предназначен для кодирования команды. А содержит информацию о данных, над которыми будет выполнено конкретное действие. Обычно МП содержит фиксированный набор команд. Он определяется разрядностью ШД. Для 8 разрядной ШД число команд не превышает 256. Один байт, передаваемый по ШД состоит из 8 разрядов, в каждом из которых записан либо 0, либо 1. На рисунке 4 даны временные диаграммы, иллюстрирующие выполнение команд МП.
Рисунок 4 – Временные диаграммы обмена в МП.
МП работает потактно, поэтому любая команда выполняется так же потактно. Т 1 – по ША определяют ячейку модуля памяти, например, в ПЗУ. Т 2 – считывание информации, для рисунка 4 а – это или запись в ОЗУ или вывод в УВВ. Такты Т 1, Т 2, Т 3 –определяют время доступа. Для рисунка 4 б: Т 1 и Т 2 –определения адреса по ША; Т 2 – период доступа по ШД и вывод в УВВ или запись в ОЗУ информации из МП. Группа машинных тактов, в течении которых происходит только одно обращение к памяти, называется машинным циклом – МШ. Для выполнения команды МП может понадобиться от 1 до 5 МШ. Каждый из МШ состоит из 3 – 5 машинных тактов. При частоте ГТИ 2 МГц длительность одного такта равна 0, 5 мкс, т. е. время выполнения одной команды может достигать величины 0, 5 х 5 =12, 5 мкс. Форматы команд МП приведены на рисунке 5.
Рисунок 5 – Форматы команд МП.
В микропроцессорах используются следующие способы адресации: - прямая; - непосредственная; - неявная; - регистровая; - косвенная. Прямая адресация. Используются трехбайтные команды, в них: первый байт – содержит код операции; второй байт – содержит младший байт адреса; третий байт – содержит старший байт адреса. Например, LDA 0 B 00 H – пересылаются данные из ячейки памяти с адресом 0 B 00 H в аккумулятор. В памяти программ МП она занимает 3 ячейки, первая – код операции 3 А, вторая – младший байт адреса 00, третья – старший байт адреса 0 В.
Непосредственная адресация. Команды имеют двухбайтный формат, в них: первый байт – код операции; второй байт – содержит непосредственные данные. Например, MVI A, 99 H – в аккумулятор записываются данные, это число 99 в шестнадцатеричной системе счисления. В памяти программ МП она занимает 2 ячейки, первая – код операции 3 Е, вторая – шестнадцатеричное число 99. Неявная адресация. Команды имеют однобайтный формат, в нем содержится только код операции, указывающий какие данные должны участвовать в обработке. По коду команды МП обрабатывает данные находящиеся в одном из РОН или РФ. Например, STC – устанавливает признак переноса в 1. В памяти МП она занимает 1 ячейку, в которой записан КОП - 37. Регистровая адресация. Команды имеют однобайтный формат, в нем записан КОП и адрес регистра-источника, в котором хранятся данные, источниками данных являются один из РОН и аккумулятор.
Например, ANA B – выполняет поразрядную логическую операцию ИЛИ над содержимым аккумулятора и данными, находящимися в РОН – В, результат операции помещается в аккумулятор. В памяти МП она занимает 1 ячейку, в которой записан КОП – А 0. При регистровой адресации используются так же команды пересылок – в команде указываются КОП, регистр-приемник и регистр-источник. Например, MOV B, C – пересылаются данные из регистра С в регистр В. В памяти МП она занимает 1 ячейку, ее КОП – 41. Косвенная регистровая адресация. Команды имеют однобайтный формат, в нем указан только КОП, указывающий какие действия выполняются над данными, адрес которых расположен в одной из регистровых пар РОН (т. е. в этой паре РОН указан шестнадцатеричный ячейки памяти из которой считываются данные). Например, ADD M – по команде складываются содержимое ячейки памяти, адрес которой указан в регистровой паре HL, с содержимым аккумулятора, результат вычислений помещается в аккумулятор. В памяти МП она занимает 1 ячейку, ее КОП – 86.
МП выполняет команды последовательно считывая их из памяти программ одну за другой. В счетчике команд при этом всегда хранится адрес следующей извлекаемой из памяти программ. Этот порядок характерен для всех линейных программ. В реальных программах всегда существует необходимость изменения линейного порядка работы МП. Для этого используются команды условных и безусловных переходов, а так же команды вызова подпрограмм. Адрес команды перехода часто содержится в этой команде и при ее выполнении он загружается в счетчик команд. Эта процедура называется передачей управления и реализуется при помощи команд переходов. CALL АДР – вызов подпрограммы, размещенной в памяти с шестнадцатеричном адресом АДР. При ее выполнении МП автоматически запоминает содержимое счетчика команд в SP.
RET – возврат из подпрограммы, это последняя команда любой подпрограммы. По этой команде МП автоматически извлекает из стека два последних записанных числа и помещает их в РС. JMP АДР – команда безусловного перехода по заданному в ней адресу. При ее выполнении МП записывает в РС адрес – АДР. Команды условных переходов МП осуществляют переход на АДР только при выполнении заданных условий. Если условие не выполнено, то передача управления не происходит. Для этого есть РФ, в котором устанавливаются пять разрядов в 0 или 1 по результатам выполнения текущей команды. Таблица признаков РФ. D 7 S D 6 Z D 5 0 D 4 AC D 3 0 D 2 P D 1 1 D 0 Cr
S – разряд знака, он равен 1 если при выполнении арифметической или логической команды получен отрицательный результат, т. е. в старшем разряде аккумулятора D 7 записана 1. Z – разряд нулевого результата, он устанавливается в 1 если во всех разрядах аккумулятора получен нулевой результат. АС – разряд десятичной коррекции, он устанавливается в 1 если при обработке двоично-десятичных чисел в аккумуляторе возникает перенос из разряда D 3 в разряд D 4 или заем в разряде D 4. P – разряд контроля по четности, он равен 1 если количество единиц во всех разрядах аккумулятора будет четным. Cr – разряд признака переноса, он равен 1 если при выполнении арифметических операций или команд сдвига возникает перенос из старшего разряда, а при вычитании происходит заем. Все команды условных переходов являются трехбайтными.
Первый байт содержит КОП, в нем задано проверяемое условие. Второй байт – младший байт адреса. Третий байт – старший байт адреса. Если условие выполняется, то происходит переход по АДР, если нет, то счетчик команд выполняет следующую по программе команду. Формат команд перехода: первая буква – J (JMP) и далее мнемокод условий перехода по признакам РФ; для вызова подпрограмм по выполнению условия – C (CALL) и возврата из подпрограмм по выполнению условия – R (RET) и далее мнемокод условий перехода. Установка флагов в РФ происходит только при выполнении арифметических и логических операций. Поэтому после выполнения команд пересылок или ввода данных в аккумулятор сразу использовать команды условных переходов нельзя, т. к. ни один из флагов РФ не изменяется. Надо вначале выполнить команду по установке признаков флагов РФ. Для этого рекомендуется использовать команды логического типа, например ANA A (поразрядное И над содержимым аккумулятора), ORA A (поразрядное ИЛИ над содержимым аккумулятора).
4. Языки программирования МП. Большинство МП используют похожие команды, но обычно имеются некоторые различия в их внешнем виде, действии и т. д. в зависимости от поставщика. В течение последних нескольких лет Международная электротехническая комиссия (МЭК) разработала всеобщий стандарт, который относится ко многим аспектам программирования МП. Мы рассмотрим следующие языки программирования МП: LAD - это графический язык, здесь в качестве команд используются коммутационная схема, которая очень похожа на электротехническую схему. Данный язык легко позволяет проследить идущий сигнал между токовыми шинами, входами, выходами и командами. FBD - это графический язык, использующий логические блоки, известные из булевой алгебры для представления логических операций. STL - это текстовый язык программирования. Его операторы очень похоже на язык ассемблера, за которыми следуют адреса (операнды).
Язык программирования LAD основан на изображении контактно-релейных схем. В нем: - все нагрузки, лампы и другие выходы изображаются справа; - входной сигнал может управлять несколькими выходами; в этом случае выходы изображаются параллельно; - ключи, контакты, датчики и другие управляющие элементы изображаются в LAD -диаграммах слева; - ключи, контакты, датчики и другие управляющие элементы могут включаться и изображаться последовательно, параллельно, последовательнопараллельно; - каждая строчка LAD -диаграммы нумеруется и считывается контроллером сверху вниз; - каждому элементу LAD -диаграммы присваивается один, отличный от других идентификационный номер. Команды LAD состоят из элементов и блоков, графически объединяемых в сегменты.
FBD - это графический язык программирования, использующий для представления логических операций логические блоки, известные в булевой алгебре. Сложные функции (например, математические) тоже могут быть представлены непосредственно соединенными с логическими блоками. Команды FBD состоят из элементов и блоков, графически объединяемых в сегменты. Редактор STL отображает программу на языке, имеющем текстовую основу. Редактор STL дает возможность создавать программы управления, вводя мнемонические обозначения команд. В редакторе STL можно создавать программы, которые невозможно создать в редакторе LAD или FBD. Это объясняется тем, что, используя редактор STL, программирование идет на «родном языке» контроллера. Программирование в текстовом редакторе STL очень похоже на программирование на языках ассемблера. МП выполняет команды в порядке, определяемом программой, сверху вниз, а затем начинает сначала.