Вы находитесь на странице: 1из 9

1. Понятие микропроцессорной системы.

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

2. Микропроцессор. Определение. Структурная схема


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

3. Микроконтроллер. Определение. Структурная схема


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

5. Рынок производства микроконтроллеров. Области применения. Сравнения разновидностей.


 MCS 51 (Intel)
 ESP8266 (Espressif)
 MSP430 (TI)
 ARM (ARM Limited)
 AVR (Atmel)
 PIC (Microchip)
 STM8 (STMicroelectronics)
 С8051F34x
 RL78 (Renesas Electronics)

Использование в современном микроконтроллере достаточного мощного вычислительного устройства с


широкими возможностями, построенного на одной микросхеме вместо целого набора, значительно снижает
размеры, энергопотребление и стоимость построенных на его базе устройств.
Используются в управлении различными устройствами и их отдельными блоками:
 в вычислительной технике: материнские платы, контроллеры дисководов жестких и гибких дисков, CD
и DVD, калькуляторах;
 электронике и разнообразных устройствах бытовой техники, в которой используется электронные
системы управления — стиральных машинах, микроволновых печах, посудомоечных машинах,
телефонах и современных приборах, различных роботах, системах «умный дом», и др.
В промышленности:
 устройства промышленной автоматики — от программируемого реле и встраиваемых систем до
программируемых логических контроллеров,
 систем управления станками.

Микроконтроллеры можно разделить по таким критериям:


 Разрядность
 Система команд
 Архитектура памяти

Разрядность – это длина одного слова обрабатываемого контроллером или процессором, чем она больше,
тем быстрее микроконтроллер может обработать большие массивы данных, но такой подход не всегда
справедлив, для каждой задачи выдвигаются индивидуальные требования, как по скорости, так и по способу
обработку.
Деление происходит на:
 8-бит
 16-бит
 32-бита
 64-бита

Деление по типу системы команд:

 RISC-архитектура, или сокращенная система команд. Ориентирована на быстрое выполнение базовых


команд за 1, реже 2 машинных цикла, а также имеет большое количество универсальных регистров, и
более длинный способ доступа к постоянной памяти. Архитектурна характерна для систем под
управление UNIX;
 СISC-архитектура, или полная система команд, характерна прямая работа с памятью, большее число
команд, малое число регистров (ориентирована на работу с памятью), длительность команд от 1 до 4
машинных циклов. Пример – процессоры Intel.

Деление по типу памяти:


 Архитектура Фон-Неймана – основная черта общая область памяти для команд и данных, при работе с
такой архитектурой в результате ошибки программиста данные могут записаться в область памяти
программ и дальнейшее выполнение программы станет невозможным. Пересылка данных и выборка
команды не может осуществляться одновременно по тем же причинам. Разработана в 1945 году.
Гарвардская архитектура – раздельная память данных и память программ, использовалась в первые на
компьютерах семейства Mark. Разработана в 1944 году.

6. Применение МК в автоматизировании процесса:


Промышленное применение микроконтроллеров очень широко. Они включают в себя
автоматизацию принятия решений, управление двигателями, создание человек-машинных
интерфейсов (HMI), датчики и программируемый логический контроль. Все чаще
проектировщики внедряют микроконтроллеры в ранее «неразумные системы», а также
быстрое распространение промышленных IoT (интернет вещей) значительно ускоряет
процессы внедрения микроконтроллеров.
7. RISC и CISC архитектуры
RISC (Reduced Instruction Set Computing). Процессор с сокращенным набором команд. Система
команд имеет упрощенный вид. Все команды одинакового формата с простой кодировкой.
Обращение к памяти происходит посредством команд загрузки и записи, остальные команды типа
регистр-регистр. Команда, поступающая в CPU, уже разделена по полям и не требует
дополнительной дешифрации.
Часть кристалла освобождается для включения дополнительных компонентов. Степень интеграции
ниже, чем в предыдущем архитектурном варианте, поэтому при высоком быстродействии
допускается более низкая тактовая частота. Команда меньше загромождает ОЗУ, CPU дешевле.
Программной совместимостью указанные архитектуры не обладают. Отладка программ на RISC
более сложна. Данная технология может быть реализована программно-совместимым с
технологией CISC (например, суперскалярная технология).
Поскольку RISC-инструкции просты, для их выполнения нужно меньше логических элементов, что в
конечном итоге снижает стоимость процессора. Но большая часть программного обеспечения
сегодня написана и откомпилирована специально для CISC-процессоров фирмы Intel. Для
использования архитектуры RISC нынешние программы должны быть перекомпилированы, а иногда
и переписаны заново.
MISC (Multipurpose lnstruction Set Computer). Элементная база состоит из двух частей, которые либо
выполнены в отдельных корпусах, либо объединены. Основная часть – RISC CPU, расширяемый
подключением второй части – ПЗУ микропрограммного управления. Система приобретает свойства
CISC. Основные команды работают на RISC CPU, а команды расширения преобразуются в адрес
микропрограммы. RISC CPU выполняет все команды за один такт, а вторая часть эквивалентна CPU
со сложным набором команд. Наличие ПЗУ устраняет недостаток RISC, выраженный в том, что при
компиляции с языка высокого уровня микрокод генерируется из библиотеки стандартных функций,
занимающей много места в ОЗУ. Поскольку микропрограмма уже дешифрована и открыта для
программиста, то времени выборки из ОЗУ на дешифрацию не требуется.

8. Гарвардская и фон-неймановская архитектура памяти.

Фон Неймановская (принстонская) архитектура (предложена Джо фон


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

Гарвардская архитектура (реализована в 1944 г. в ЭВМ Гарвардского


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

В первое послевоенное десятилетие в Гарвардском университете было создано


несколько компьютеров семейства "Марк", в которых память программ была
полностью отделена от памяти данных (программа считывалась с бумажной
перфоленты). Такая концепция была более эффективной, чем фон-неймановская
(принстонская) архитектура, поскольку код программы мог считываться из памяти
программ одновременно с обменом между ЦПУ и памятью данных или с операциями
ввода/вывода. Однако такие машины были намного сложнее и дороже в
изготовлении. А с учетом уровня технического развития 40 - 50-х годов, высоких
экономических затрат, они не получили широкого распространения. Однако с
развитием больших интегральных схем и технологии гарвардская архитектура снова
оказалась в центре внимания.

На Рис. показаны две физически


разделенные шины,
используемые для передачи
информации между ЦПУ и
неперекрывающимися областями
памяти. Каждая память имеет
собственную шину адреса,
поэтому адрес ячейки памяти
программ никоим образом не
связан с адресом ячейки памяти
данных. В таком случае говорят,
что обе области памяти
находятся в различных адресных
пространствах. Память данных
иногда называют файловой
памятью, в этом случае n-я
Рис. – Элементарная гарвардская машина (шина адреса не ячейка обозначается как файл n.
показана)
Фоннеймановская архитектура более экономно расходует аппаратные ресурсы, а
гарвардская позволяет реализовать большее быстродействие.
8(коротко).В чистой архитектуре фон Неймана процессор одномоментно может либо
читать инструкцию, либо читать/записывать единицу данных из/в памяти. То и другое не
может происходить одновременно, поскольку инструкции и данные используют одну и ту
же системную шину.

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


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

9. Применение МК в народном хозяйстве (примеры)


В стиральных машинах, микроволновых печах, посудомоечных машинах, телефонах и
современных приборах, различных роботах, системах «умный дом»

10. Применение МК в военной сфере (примеры)


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

САМОХОДНЫЙ ПОИСКОВЫЙ КОМПЛЕКС ДЛЯ ОПРЕДЕЛЕНИЯ

МЕСТОНАХОЖДЕНИЯ ПОСТРАДАВШИХ ВО ВЗРЫВООПАСНЫХ

ОГРАНИЧЕННЫХ ПРОСТРАНСТВАХ С ВОЗМОЖНОСТЬЮ

ПОСТРОЕНИЯ ТОПОЛОГИИ В ТРЕХ КООРДИНАТНЫХ ПЛОСКОСТЯХ

Для определения расстояния и обнаружения человека используются ультразвуковые датчики расстояния,


расположенные на передней части шасси (для определения препятствия и человека), по бортам (для оценки
ширины прохода) и в центре платформы, направленные вертикально вверх для регистрации высот в процессе
движения комплекса. На борту комплекса присутствует возможность анализа состояния воздуха для
передачи оперативной информации сотрудникам экстренных служб. Указанная функция реализована на
датчике природных газов. Датчик способен различать сжиженый нефтяной, угольный и природный газы. Этот
датчик может быть заменен на датчики, предназначенные для обнаружения концентраций других газов с
минимальными вложениями. Данный датчик обладает высокой чувствительностью, что позволяет ему
обнаруживать газы в их минимальных концентрациях. В комплексе предусмотрена функция сохранения
пройденного расстояния с фиксацией пройденных поворотов, ширин и высот проходов, что позволяет ему
самостоятельно возвращаться на базу. Вычислительные мощности обеспечены микроконтроллером
линейки STM32 компании STMicroelectronics, построенном на ядре ARM Cortex-M3. Выбранный
микроконтроллер примечателен огромным количеством цифровых входов/выходов, часть из которых без
труда могут быть переведены в аналоговый режим работы, необходимый, например, для работы датчика
наличия взрывоопасного газа и оценки данных с ультразвуковых датчиков.

ПОВЫШЕНИЕ ВИЗУАЛИЗАЦИИ СИГНАЛОВ

С ДАТЧИКОВ ДАВЛЕНИЯ И ТЕМПЕРАТУРЫ

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

МЦСТ разрабатывает две линии процессоров, которые обеспечивают распараллеливаемые


военные/научные/инженерные вычисления с плавающей точкой (возможный пример использования:
геологоразведка)
11. *Как можно использовать МК в нагревательном бойлере. Алгоритм работы. Настройка.
Регулирование:
Контроль температуры воздуха в помещении и выдачи управляющих воздействий на нагревательные
элементы.

12. Языки программирования для МК:


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

PL/M
К основным языкам высокого уровня относятся следующие языки программирования
микроконтроллеров:
PL/M. Этот язык был разработан фирмой DigitalResearch для микропроцессоров Intel, не имел
большой популярности, так как не мог составить конкуренцию таким языкам, как Pascal и Модула-2.
Pascal.Язык Pascal достаточно просто и удобен в применении, но в среде программирования
микроконтроллеров не получил большого распространения. Его используют для простоты перехода с
персональных компьютеров на контроллеры.

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

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

При работе с языками программирования микроконтроллеров высокого уровня происходит


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

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


Выбор наилучшего языка программирования микроконтроллера в первую очередь зависит от состава
аппаратуры, с которым будет работать специалист и требуемого быстродействия всей системы. Если
объем оперативной и долговременной памяти достаточно мал, рациональнее всего будет
использование языка низкого уровня (Ассемблер). Он обеспечивает самый короткий код программы,
что обеспечит максимальное быстродействие. В случае же, когда необходимо снизить срок написания
программы, рационально использовать язык программирования микроконтроллера высокого уровня.
Универсальным, а вследствие и самым популярным на сегодняшний день языком программирования
микроконтроллеров является язык C/C++, в нем сочетаются приемы программирования, характерные
для языка низкого уровня и свойства языков высокого уровня. К ним можно отнестичитаемость и
достаточно легкую модифицируемость программы.
По итогам проведенного анализа, можно сделать вывод, что в настоящее время в программировании
микроконтроллеров наиболее часто используются языки Ассемблер и C/C++, так как обеспечивают
компактность кода и быстродействие соответственно.

13. Структура программы на языке ассемблера. Сегменты программы

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


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

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

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

Логические сегменты могут содержать три основных компонента программы: программный код,
данные и стек. Макроассемблер MASM обеспечивает правильное отображение этих компонентов на
физические сегменты памяти, при этом сегментные регистры CS, DS и SS содержат адреса физических
сегментов памяти.

14. Виды адресации. Основные предподготовочные действия. Шаблоны


Мощность системы команд процессора зависит в большой мере от количества видов адресации,
которые он использует. Система команд МП с CISK-архитектурой насчитывает не менее чем десять
видов адресации.
1) Неявная адресация
Местоположение операнда фиксировано и определяется кодом операции. Примеры:
cbw
mul al
Команда CBW всегда работает с регистрами AX и AL, а у команды MUL фиксировано положение
первого множителя и результата. Такой режим адресации делает машинную команду короткой, так как в
ней отсутствует указание одного или нескольких операндов.
2) Непосредственная адресация
При непосредственной адресации значение операнда является частью машинной команды. Понятно,
что в этом случае операнд представляет собой константу. Примеры:
mov al,5
add bx,1234h
mov dx,a
Обратите внимание, что в третьей строке в DX помещается адрес метки или переменной a, а вовсе не
значение по этому адресу. Это особенность синтаксиса FASM. По сути адрес метки тоже является числовой
константой.
3) Абсолютная прямая адресация
В машинной команде содержится адрес операнда, находящегося в памяти. Пример:
mov dx,[a]
Вот тут уже в DX помещается значение из памяти по адресу a. Сравните с предыдущим пунктом.
Квадратные скобки обозначают обращение по адресу, указанному внутри этих скобок.
4) Относительная прямая адресация
Этот режим используется в командах передачи управления. В машинной команде содержится
смещение, которое прибавляется к значению указателя команд IP. То есть указывается не сам адрес
перехода, а на сколько байтов вперёд или назад надо перейти. Пример:
metka:
...
loop metka
У такого режима адресации два преимущества. Во-первых, машинная команда становится короче, так
она содержит не полный адрес, а только смещение. Во-вторых, такой код не зависит от адреса, по
которому он размещается в памяти.
5) Регистровая адресация
Операнд находится в регистре. Пример:
add ax,bx
6) Косвенная регистровая (базовая) адресация
Адрес операнда находится в одном из регистров BX, SI или DI. Примеры:
add ax,[bx]
mov dl,[si]
Размер операнда в памяти здесь определяется размером первого операнда. Так как AX — 16-
разрядный регистр, то из памяти берётся слово по адресу в BX. Так как DL — 8-разрядный регистр, то из
памяти берётся байт по адресу в SI. Это правило верно и для других режимов адресации.
7) Косвенная регистровая (базовая) адресация со смещением
Адрес операнда вычисляется как сумма содержимого регистра BX, BP, SI или DI и 8- или 16-разрядного
смещения. Примеры:
add ax,[bx+2]
mov dx,[array1+si]
В качестве смещения можно указать число или адрес метки. О размере смещения не беспокойтесь —
компилятор сам его определяет и использует нужный формат машинной команды.
8) Косвенная базовая индексная адресация
Адрес операнда вычисляется как сумма содержимого одного из базовых регистров BX или BP и одного
из индексных регистров SI или DI. Примеры:
mov ax,[bp+si]
add ax,[bx+di]
Например, в одном из регистров может находиться адрес начала массива в памяти, а в другом —

смещение какого-то элемента относительно начала. А вообще, всё зависит от вашей фантазии
9) Косвенная базовая индексная адресация со смещением
Адрес операнда вычисляется как сумма содержимого одного из базовых регистров BX или BP, одного
из индексных регистров SI или DI и 8- или 16-разрядного смещения. Примеры:
mov al,[bp+di+5]
mov bl,[array2+bx+si]