Дистанционное обучение программированию микроконтроллеров. Введение в курс «Программирование микроконтроллеров Тема Д2

Базовая часть

Тема 1. Введение. Программирование микроконтроллеров на языке С

Теория . Микроконтроллеры. Функции и применение микроконтроллеров. Основные параметры микроконтроллеров. Архитектура микроконтроллеров. Семейства микроконтроллеров ARM и их назначение. Устройство микроконтроллеров. Ядра Cortex -M 0/M 3/M 4F . Периферийные блоки микроконтроллеров: ввод-вывод общего назначения, тактирование, таймеры, прерывания.

Язык С для микроконтроллеров ARM . Особенности разработки программ для микроконтроллеров по сравнению с программированием для ПК. Ввод и вывод. Адресация. Двоичное и шестнадцатеричное счисления. Среда программирования IAR EWARM . Возможности отладки программ.

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

Тема 2. Прерывания

Теория . Прерывания. Виды прерываний. Контроллер прерываний NVIC в ядре Cortex -M . Вектора прерываний. Приоритеты. Флаги прерываний в контроллерах STM . Рекомендации по написанию обработчиков прерываний.

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

Тема 3. Таймеры

Теория . Таймеры. Виды таймеров. Режимы работы таймеров. Измерение малых промежутков времени. Система тактирования микроконтроллера и методы её настройки.

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

Тема 4. Широтно-импульсная модуляция

Теория . Широтно-импульсная модуляция. Применение ШИМ для управления электронными устройствами. Особенности реализации ШИМ на микроконтроллере. Сглаживание. Специальные режимы работы таймеров.

Практика . Разработка программы для генерации ШИМ сигнала с заданными параметрами.

Тема 5. Цифро-аналоговые и аналого-цифровые преобразования

Теория . АЦП и ЦАП. Частота дискретизации и разрядность. Основные виды АЦП (АЦП прямого преобразования, АЦП последовательного приближения, сигма-дельта АЦП) и их характеристики. Режимы запуска АЦП. Дифференциальный режим измерения. Алгоритмы усреднения измеряемых величин: скользящее среднее и экспоненциальное усреднение. Библиотека для работы с периферийными блоками HAL Driver .

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

Тема 6. Обмен данными

Теория . Последовательные и параллельные интерфейсы. UART . Принцип работы шины UART , протокол передачи данных. События блока UART на микроконтроллерах STM 32. Протоколы SPI и I2C, их принципы работы. Концепция ведущий-ведомые.

Практика . Разработка прошивки для микроконтроллера, осуществляющей приём и отправку данных по UART . Освоение программного обеспечения для работы с COM -портами на ПК.

Тема 7. Флеш-память

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

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

Дополнительные темы (читаются по усмотрению преподавателя)

Тема Д1. Дисплеи

Теория . Виды дисплеев. Электронно-лучевые трубки (принцип работы, развёртка). Жидкокристаллические дисплеи (принцип действия ЖК ячейки, устройство мониторов, адресация). Кодирование цветов, битность изображения. Плазменные дисплеи. Светодиодные дисплеи. Проекторы (3LCD , LC 0S , DLP ). Резистивные и ёмкостные сенсорные дисплеи. Перспективные виды дисплеев (OLED, интерференционные дисплеи, SED, PixelSense ).

Практика . Написание программы, осуществляющей вывод графических примитивов и текста на TFT -LCD дисплей тестовой платы. Освоение высокоуровневых библиотек для работы с периферийными блоками и внешними устройствами.

Тема Д2. Система тактирования микроконтроллера

Теория. Классификация и принципы работы генераторов тактовой частоты. Кварцевые и RC-генераторы. Фазовая автоподстройка, делители и умножители частоты. Тактовые частоты шин данных и периферийных блоков микроконтроллера.

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

Тема Д3. USB

Теория . Краткая история внедрения шины USB . Физический уровень (кабели и разъёмы, состояния шины, кодирование данных). Пакетный уровень (структура и виды пакетов). Транзакционный уровень (адреса, конечные точки). Логический уровень (виды каналов, передача данных по периодам). Дескрипторы и классы устройств. Краткий обзор спецификаций USB.

Практика . Передача данных с ПК на контроллер по USB c использованием CDC класса.

Тема Д4. Операционные системы реального времени

Теория . Операционные системы мягкого и жёсткого реального времени, а также их особенности. Диспетчеризация задач. Синхронизация задач. Операционная система Free RTOS . Некоторые функции для управления задачами во Free RTOS .

Практика . Настройка Free RTOS и создание многозадачной программы для управления светодиодами.

Программа курса (весенний семестр)

  • Тематические лекции
  • Дополнительные разделы программирования микроконтроллеров
  • Выполнение курсовой работы по программированию

Отчетность

Осенний семестр - зачет

Весенний семестр - зачет с оценкой

В конце осеннего семестра в течение 4 занятий выполняется зачетная работа.

Примеры тем зачетных работ:

  • Измерение частоты внешнего сигнала с выводом результата на дисплей.
  • Генерация ШИМ сигнала с регулировкой частоты и скважности.
  • Измерение ёмкости конденсатора путём анализа формы отклика RC
  • Измерение индуктивности путём анализа формы отклика RL -цепи на периодический сигнал.
  • Генерация гармонического сигнала путём модуляции одиночными импульсами.
  • Измерение расстояния между акустическим излучателем и микрофоном с помощью измерения задержки распространения звука.
  • Измерение скорости звука импульсным методом
  • Стабилизация напряжения в RC цепи с обратной связью. Напряжение задаётся с компьютера и выводится на дисплей.

В течение весеннего семестра выполняется курсовая работа.

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

Курсовые работы прошлых лет можно посмотреть .

Литература

  • Конспекты первых 2 лекций: лекция 1 , лекция 2 .
  • Мартин М. Инсайдерское руководство по STM32
  • Брайан Керниган, Деннис Ритчи "Язык программирования С"
  • Майоров С.А., Кириллов В.В., Приблуда А.А. "Введение в микро-ЭВМ"
  • Тревор Мартин, "Микроконтроллеры фирмы STMicroelectronics на базе ядра Cortex-M3. Серия STM32"
  • Фрунзе А.В. "Микроконтроллеры это же просто" (Том1, Том2, Том3)
  • К. Хамахер, З. Вранешич, С. Заки "Организация ЭВМ"
  • Paul Scherz. Practical electronics for inventors.

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

Уровень сложности:

Длительность курса: 12 ак.ч. очно

График обучения: 3 занятя по 4 ак. часа

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

Уровень сложности:

График обучения: 36 ак.ч. из них 28 аудиторных 8 часов самостоятельная работа

Основы профессиональной разработки для самого массового сегмента рынка IT-технологий. Овладение аппаратным обеспечением и программированием встраиваемых систем измерения и управления на базе микроконтроллеров.

Уровень сложности:

Длительность курса: 36 ак.ч. очно

График обучения:

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

Уровень сложности:

Длительность курса: 36 ак.ч. очно

График обучения: 36 ак.ч. 30 аудиторных часов, 6 часов самостоятельная работа

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

Уровень сложности:

Длительность курса: 36 ак.ч. очно

График обучения: 36 ак.ч. 28 аудиторных часов, 8 часов самостоятельная работа

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

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

Наш учебный центр предлагает Вам курсы программирования микроконтроллеров:

  • CORTEX-M-INTRO. Введение в современную микроконтроллерную технику
    Базовый курс, необходимый для изучения дальнейших курсов. Усвоение набора основных понятий и положений, лежащих в основе разработки и применения цифровых систем управления объектами различной природы.
  • CORTEX-M-RISC. Микроконтроллеры на базе популярной RISC архитектуры ARM Cortex M
    Изучаются особенности RISC архитектуры ARM Cortex-M, касающиеся как вычислительного ядра, так и системных периферийных устройств: подсистем тактирования, тайминга и аппаратных векторизованных прерываний.
  • CORTEX-M-STM32F. Семейство МК компании ST Microelectronics STM32Fxxx с вычислительным ядром ARM Cortex M3
    Изучаются на практике характеристики и приемы программирования основных периферийных подсистем микроконтроллеров STM32F10x с ядром ARM Cortex-M3, касающиеся как вычислительного ядра, так и системных периферийных устройств: подсистем тактирования, тайминга и аппаратных векторизованных прерываний.
  • CORTEX-M-RTOS. Разработка управляющих программ для МКСУ с использованием многозадачной ОС реального времени
    В ходе практических занятий слушатели реализуют небольшую практическую задачу, разрабатывая программу под малой многозадачной ОС реального времени.
  • CORTEX-M-MP. Введение в технологии разработки систем управления на базе МК с RISC ядром ARM Cortex-M Эта образовательная программа объединяет все четыре вышеперечисленных курса.

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

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

Возраст

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

Но не всё так плохо. Всё же в России этот рынок не очень развит. Начав путь разработчика ПО для МК после 30, вы сможете сделать неплохую карьеру в какой-то одной сфере или конкретном месте деятельности. Если, конечно, не пытаться стать «многостаночником». Всегда бывают исключения, но многое зависит от вашей прошлой деятельности. Наверное, стоит принять во внимание, что даже 10 лет в этой профессии не впечатляют работодателя.

Знания

От пустых слов перейдём к реальным требованиям. «MustKnow» в программировании микроконтроллеров - язык C/C++. Да, мировые тенденции сейчас указывают на переход на более совершенные или хотя бы простые языки ( Arduino или D). Но это будущее довольно отдалённое, закладывать путь в него можно разве что сегодняшним школьникам младших классов.

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

В остальном довольно общая компьютерная наука: протоколы передачи, простейшее знание электроники и схемотехники (хотя бы принципы работы АЦП/ЦАП, работать с ключами, питанием и пр.), умение читать (и понимать) техническую документацию на английском языке. Но главное - не работать по принципу “научного тыка”, в противном случае ваши микроконтроллеры рискуют превратиться в “камни”.

Еще один совет: постигать все эти знания необходимо на практике. Начать можно с дешёвых, но эффективных готовых плат со всей необходимой обвязкой, вроде Arduino или Raspberry Pi, которые в будущем наверняка станут для вас хорошими помощниками. А уже потом, если возникнет желание, поиграть с периферией.

Литература

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

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

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

IDE

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

Работа

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

Финансово трудно придётся новичкам (до 1 года опыта): зарплата в районе 20 тыс. рублей в месяц для программиста МК. Это вполне реальная цифра в регионах. Зато если вы живёте в столице, у вас есть опыт работы с популярным видом МК (от 3 лет активной деятельности) и голова на плечах, то вполне можно рассчитывать и на 150 тыс. рублей в месяц. В целом, не сказать, что конкуренция за места у данных разработчиков высокая, но с течением времени она неизбежно растёт.

Опять же, для людей с опытом есть вариант поискать счастье за границей. Особенно если у вас уже есть опыт полноценной работы. Дело в том, что в России идея IoT пока не слишком развивается. Да и вообще автоматизация пока не затрагивает небольшие системы. А в США, Японии и других развитых странах хороший разработчик ПО для МК - на вес золота. Правда, придётся учитывать иной уровень конкуренции и серьёзные требования по производительности труда.

И кстати

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

Привет начинающим электронщикам. Перед вами статья-введение в рубрику «программирование микроконтроллеров» (для сокращения в дальнейшем будем использовать МК) . Эта рубрика будет знакомить вас с азами программирования таких МК, как AVR-ки и PIC-и.

Существует несколько способов начать программировать МК:

Можно купить готовую плату Arduino «Андурино» (в плате используется МК ATmega328)

или купить «камень» — микроконтроллер (AVRили PIC)

В этом случаем вам будет необходим программатор (в зависимости от купленного МК)

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

Светодиоды и резисторы 220 Ом (на начальном этапе этого будет достаточно);

Теперь по порядку:

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

Макетная плата – кусок белого пластика с множеством небольших отверстий. Стоимость 5-10 долларов.

По бокам «+» и «-» — это линии питания.

5 последовательных отверстий (например 1 a b c d e) – одна группа выводов. НЕ ПОДКЛЮЧАТЬ ПИТАНИЕ «+» и «-» в одну группу выводов напрямую, без радиоэлементов (может возникнуть опасность возгорания).

«джамперы» — провода со штырями на концах или гнездами.

Светодиоды – это думаю знаете) Стоимость до 1 доллара.

Резисторы – нужны для того, чтобы вы не попалили светодиоды. Стоимость до 1 доллара.

«Камень» AVR или PIC. Тут все понятно. Стоит от 1 доллара.

Программатор – это устройство (плата), что выполняет запись/считывания информации с памяти МК. Стоимость 5-10 долларов

Вы можете спросить, так что же всё таки покупать: Андурино или микроконтроллер. Давайте разберемся. Кстати сразу отмечу – для начала мы познакомимся с МК AVR, ПИКи будут потом)

Плюсы АНДУРИНО:

  • Его проще программировать;
  • В любом радиомагазине вы сможет найти большое количество дешевых устройств (разные датчики контроля и т.д), которые без проблем будут работать с платой;
  • Безопасная «прошивка». Это вам не фьюзы в АVR выставлять. Чуть-чуть проморгал и прими мои поздравления, ты обладатель «камня» в прямом смысле этого слова;
  • На плате все выводы МК уже выведены в гнезда, в которые устанавливаются джамперы;
  • Андурино — Mega, Uno, Nano- имеют конвертер USB-Serial и разъем USB для заливки программы (на языке Arduino — скетча), поэтому нет необходимости покупать программатор.
  • Питание происходит либо от USB или от внешнего источника тока.

Минусу Андурино – цена!

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

Плат Андурино существует несколько видов (цена у каждой платы своя):

Arduino Uno

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

Arduino Nano

Проще некуда)).

Arduino Mega

Приставка даёт понять разработчику, что плата самая мощная.

За Pro Mini рассказывать не буду. Кому интересно могут почитать отдельно. Скажу только: ей нужен программатор USB-Serial и придется посидеть с паяльником, чтобы впаять гребенки штырьков, с помощью которых плата будет подключаться к макетной плате.

Среда программирования Arduino. Простая программа ничего лишнего нет. За неё поговорим отдельно в следующих статьях.

Для статьи-введения думаю достаточно. Спасибо за внимание. Продолжение следует.

1. Введение.................................................................................................................................

Цели курса. Основные разделы курса. ...............................................

Основные определения. Классификация МПК..................................

Классификация ОМК............................................................................

Основные архитектуры процессоров ОМК........................................

Классификация микропроцессорных систем.....................................

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

1.7. Общая структура микропроцессорного устройства для систем

управления.............................................................................................

Структура программного обеспечения МПУ..................................

2. Проектирование МПУ на основе периферийных ОМК...................................................

Основные особенности периферийных ОМК..................................

Семейства однокристальных PIC-контроллеров.............................

PIC-контроллер PIC16C58 .................................................................

Внутренняя структура контроллера PIC16C58................................

Схемы синхронизации PIC16C58......................................................

Организация памяти программ контроллера PIC16C58 (ПЗУ)......

2.7. Организация памяти данных (внутреннее ОЗУ контроллера

PIC16C58) ............................................................................................

Модуль таймера/счетчика контроллера PIC16C58..........................

Сторожевой таймер WDT контроллера PIC16C58..........................

Система команд контроллера PIC16С58 ..........................................

2.10.1. Команды работы с байтами................................................................................

2.10.2. Команды работы с битами PIC16C58 ................................................................

2.10.3. Команды передачи управления и работы с константами................................

2.10.4. Команды управления режимами работы контроллера PIC16C58 ..................

2.11. Влияние команд контроллера на биты-признаки результата (в

3.1. Основные технические характеристики и структура ОМК

К1816ВЕ51...........................................................................................

Назначение основных выводов БИС ОМК К1816ВЕ51 .................

Организация памяти данных контроллера ВЕ51.............................

Система команд ОМК К1816ВЕ51....................................................

Команды пересылки данных.................................................................................

Команды арифметических операций....................................................................

Команды работы с битами.....................................................................................

Команды передачи управления или переходов...................................................

Встроенный последовательный интерфейс ОМК...........................

Задание скорости передачи по последовательному интерфейсу...

Система прерываний ОМК ВЕ51 ......................................................

Механизм обслуживания прерываний ОМК....................................

Построение расширенных МП систем на основе ОМК ВЕ 51 ......

Дальнейшее расширение и развитие семейства ОМК MCS-51 .....

4. Принципы организации систем дискретного ввода-вывода в МПС..............................

Общая структура систем дискретного ввода-вывода.....................

Реализация селекторов адреса...........................................................

Реализация портов ввода-вывода......................................................

4.4. Программно-аппаратное обеспечение ввода дискретных

4.5. Обеспечение взаимодействия микропроцессорных устройств и

ЭВМ верхнего уровня.........................................................................

Средства взаимодействия МПУ с оператором................................

Жидкокристаллические индикаторные панели...............................

Совмещенные контроллеры клавиатуры и индикатора..................

5. Организация подсистем ввода/вывода аналоговых сигналов МПУ...............................

Вывод аналоговых сигналов..............................................................

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

5.3. Основные типы АЦП, используемые в МПУ. Основные

5.6. Программно–аппаратная реализация АЦП последовательного

счета и последовательных приближений.........................................

Понятия о АЦП с дельта–сигма–модуляцией..................................

Устройство выборки хранения (УВХ)..............................................

6. Общие принципы использования 16-разрядных ОМК....................................................

Общая характеристика 16-разрядных ОМК.....................................

Основные технические характеристики ОМК SAB80C167 ...........

Внутренняя структура ОМК SAB80C167 ........................................

Организация памяти ОМК С167 .......................................................

Системный стек ОМК С167...............................................................

Способы адресации данных в ОМК С167 ........................................

Общая структура процессорного модуля С167 (CPU C167)..........

Особенности системы прерываний ОМК SAB80C167 ...................

Периферийный контроллер событий (PEC).....................................

6.13. Встроенный контроллер промышленной CAN-сети (CAN-

Тема 1.- 6 часов (у.з.-1) Введение.

Основные понятия и определения микропроцессорной техники. Понятие об архитектуре микропроцессорной системы. Классификация однокристальных микроконтроллеров (ОМК) и микропроцессоров. RISC-архитектура ОМК.

Основные типы МПСУ. Принципы построения и структура технических средств микропроцессорного контроллера (МПК). Основные этапы разработки

микропроцессорной системы. Цифровые сигнальные процессоры.

1. Введение

1.1. Цели курса. Основные разделы курса.

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

Основные разделы курса:

1. Основные определения. Классификация микропроцессорных контроллеров (МПК).

2. Разработка микропроцессорных устройств на основе периферийных ОМК (PIC).

3. Разработка микропроцессорных устройств на основе универсальных 8- ми разрядных ОМК (MCS-51, К1816ВЕ51).

4. Особенности использования 16-разрядных ОМК.

5. Особенности построения подсистем ввода/вывода аналоговых и дискретных сигналов.

6. Построение подсистем взаимодействия с оператором и управляющими ЭВМ высших уровней.

Литература.

1. Сташин В.В. , Урусов А.В. и др. Проектирование цифровых устройств на ОМК. Москва, Энергоиздат, 1990г. 300 с.

2. Однокристальные микро-ЭВМ. Справочник. Под редакцией Боборыкина А.В., Москва, Бином,1994.

3. Щелкунов Н.Н., Дианов А.П. Микропроцессорные средства и системы. Москва, Радиосвязь,1989.

4. Предько М. Руководство по микроконтроллерам. Москва, Постмаркет, 2001.

5. ОМК фирмы Microchip PIC16C5X. Под редакцией Владимирова А.М. Рига, Ормикс, 1996.

6. Федоров Б.Э., Телец В.А. Интегральные схемы ЦАП и АЦП. Москва, Энергоатомиздат,1990г.

7. Угрюмов Е.П. Цифровая схемотехника. Санкт-Петербург, БХВ 2000г.

1.2. Основные определения. Классификация МПК

Микропроцессор (МП) - функционально законченный процессор ЭВМ реализованный в виде одной или нескольких БИС и предназначен для обработки цифровой информации по заданным программам.

Микропроцессорный контроллер (МПК) – функционально законченная микро-ЭВМ, предназначенная для целей контроля и управления.

МПК может реализовываться на следующей элементной базе:

- однокристальных микропроцессорах (ОМП);

- секционных (многокристальных) МП;

- однокристальных микроконтроллерах (ОМК);

- сложных матричных программируемых логических схемах (ПЛИС, PLD, CPLD и др.).

ОМК – функционально законченный МПК, реализованный в виде одной СБИС (сверх-БИС).ОМК включает в состав: процессор, ОЗУ, ПЗУ, порты ввода/вывода для подключения внешних устройств, модули ввода аналогового сигнала АЦП, таймеры, контроллеры прерывания, контроллеры различных интерфейсов и т.д.

Простейший ОМК представляет собой БИС площадью не более 1см 2 и всего с восемью выводами.

1.3. Классификация ОМК

Различают:

1) Периферийные (интерфейсные) ОМК предназначен для реализации простейших МП систем управления. Имеют малую производительность

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

К ним относятся: PIC – Micro Chip, VPS – 42 (Intel).

2) Универсальные 8–разрядные ОМК предназначены для реализации МП систем малой и средней производительности.

Имеют простую систему команд и большую номенклатуру встроенных устройств. Основные типы: MSC – 51 (Intel)

Motorola HC05 – HC012 и др.

3) Универсальный 16–разрядный ОМК. Предназначен для реализации систем реального времени средней производительности. Структура и система команд нацелены на скорейшую реакцию на внешние события.

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

4) Специализированные 32–разрядные ОМК реализуют высокопроизводительную ARM архитектуру и предназначены для систем телефонии, передачи информации, телевидения и других, требующие высокоскоростной обработки информации.

К типовым 16–разрядным ОМК относятся: MSC96/196/296 (Intel), C161–C167 (Siemens, Infineon), HC16 Motorola и др.

5) Цифровые сигнальные процессоры (DSP – Digital Signal Processor) предназначен для сложной математической обработки измеряемых сигналов в режиме реального времени. Широко используются в

телефонии и связи.

Основные отличия DSP: повышенная разрядность обрабатываемых слов (16,32,64 бита) и высокая скорость в формате с плавающей точкой (16 flops).Производители: Texas Instruments (TMS 320 и др.), Analog Device (ADSP 2181 и др.).

1.4. Основные архитектуры процессоров ОМК

В современных ОМК применяются следующие архитектуры процессоров:

- RISC – (Reduce Instruction Set Commands) архитектура с сокращенным набором команд.

- CISC – (Complex Instruction Set Commands) традиционная архитектура с расширенным набором команд.

- ARM – (Advanced RISC - machine) усовершенствованная RISC архитектура.

Главная задача RISC архитектуры обеспечение наивысшей производительности процессора. Её отличительными чертами является:

- малое число команд процессора (несколько десятков);

- каждая команда выполняется за минимальное время (1-2 машинных цикла, такта).

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

- увеличенная разрядность процессора (12,14,16 бит).

Современная RISC архитектура включает, как правило, только последние 3 пункта, т.к. за счет повешенной плотности компоновки БИС стало возможным реализовать большое количество команд.

В современных 32–разрядных ОМК используют ARM архитектуру (расширенная RISC архитектура с суперсокращением команд ТНUМВ).

1.5. Классификация микропроцессорных систем

МПС делят на три основных типа:

программно-логического управления (ПЛУ);

системы сбора и обработки информации (СОИ);

системы цифрового автоматического управления (ЦАУ).

Системы ПЛУ характеризуются тем, что все измеренные сигналыХ i и выданные на объект сигналы управленияY i имеют логический характер (да/нет, вкл/выкл).

{ 1или 0}

{ 1или 0}

i= 1,m

i= 1, n

Логические

сигналы управления

вычисляются в

МПУ программно,

выходные сигналы логических функций или

конечных логических аппаратов.

Системы СОИ предназначены для выполнения трех основных

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

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

- сохранение блоков измеренной информации в памяти или передача её

на ЭВМ верхнего уровня (ЭВМ ВУ) Общая структура имеет вид:

Д1,…,Дn – датчики на ОУ.

НУ1,…,НУn – нормирующие устройства, преобразующие сигнал с датчиков в требуемый диапазон для измерения АЦП.

АК – аналоговый коммутатор, осуществляет подключение одного из датчиков к АЦП для измерения

Системы ЦАУ предназначены для организации с замкнутого контура управления объектом и реализует функции автоматического регулятора, заданного Z-передаточной функцией или разностным уравнением.

исполнительное

устройство;

задающее

СУ – согласующее устройство,

усиливающее

воздействие

требуемого ИУ.

ШИМ – широтно-импульсный

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

Важную роль в системах ЦАП играют устройства отчета времени – таймера, они определяют интервал измерения и выдачи управляемых сигналов в системе.

1.6. Гарвардская и Фон-Неймовская архитектура памяти контроллера (ОМК)

Главными отличительными чертами Гарвардской архитектуры организации памяти контроллера является:

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

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

Замечание : Объем ПД как правило значительно меньше объема ПП. Основные преимущества Фон-Неймоновской архитектуры:

простота аппаратной реализации

универсальность исполнения команд

В настоящее время используются обе архитектуры памяти: Гарвардская в несложных восьми - разрядных контроллерах, Фон-Неймоновская в универсальных 16разрядных и выше.

1.7. Общая структура микропроцессорного устройства для систем управления

устройства

СМ (СИСТАМНАЯ МАГИСТРАЛЬ)

Индикатор

Клавиатура

К ОБЪЕКТУ

следующий вид:

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

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

СС –схема синхронизации, обеспечивает генерацию тактовой частоты процессора и сигнала «Сброс».

БФСМ –блок формирования системной магистрали, преобразует сигналы управления микропроцессора в сигналы шин системной магистрали.

БЗУ –блок запоминающих устройств, включает ОЗУ, ПЗУ, часто энергонезависимую память.

БОП –блок обработки прерывания от основных модулей микропроцессорного устройства.

БФИ –блок формирования времени интервалов, используется как для подсчета времени, так и для подсчета внешних импульсов; реализуется в виде таймера-счетчика.

СТ (WDT) –Watch Dog Timer-сторожевой таймер, предназначен для устранения аварийных зацикливаний программ микропроцессорного устройства.

УВВ АС –устройство ввода/вывода аналоговых сигналов, предназначенных для измерения и генерации напряжений различной амплитуды, как правило, находящейся в диапазоне 0…10 В. При этом как устройство ввода используется АЦП, а как устройство вывода аналогового сигнала ЦАП или ШИМ.

УВВ DC –устройство ввода/вывода дискретных сигналов, предназначенных для измерения и выдачи логических сигналов, как правило, ТТЛ-уровней.

БПС –блок последовательной связи, предназначен для приема и передачи информации из МПУ на ЭВМ ВУ, или на другое устройство. Представляет собой либо последовательный интерфейс, либо промышленную сеть.

ККИ –контроллер клавиатуры и индикаторов, предназначен для подключения к устройству клавиатуры и линейки семи сегментных или жидкокристаллических индикаторов.

БФИ –блок формирования интерфейса, предназначен для усиления сигналов СМ и выдачи их на разъем.

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

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

Часто в промышленных МПУ используется накопители на «твердых» дисках. По сути дела это Flash-память, но с файловой организацией, как у диска.

Тема 2. - 2 часа (у.з.-2). Системное программное обеспечение (ПО) микропроцессорных систем.

Состав и структура ПО микропроцессорной системы. Общая структура и

основные функции управляющей программы “монитор”. Общая характеристика

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

1.8. Структура программного обеспечения МПУ

Программное обеспечение можно разбить на три основные части:

резидентное системное ПО

резидентное прикладное ПО

инструментальный кросс системы разработки ПО. Резидентное системное ПО включает:

операционные системы реального времени ОСРВ для МПУ (RTX, X11, QHS, LINUX,…). Основная функция ОСРВ - минимизация времени ответа прикладного ПО на внешние запросы, а также упрощение взаимодействия прикладных программ с основными узлами МПУ. В простейшем случае ОС реального времени может заменяться программой–монитором;

тестовые программные процедуры;

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

пользователем через клавиатуру или последовательный интерфейс. К основным командам монитора относится:

просмотр и модификация ячеек памяти устройства (S-команды);

запуск программы с введенного адреса (G-команды);

просмотр и модификация портов ввода/вывода контроллера (I/O- команды);

пошаговое выполнение программы контроллера (J-команды) и т.д.Тестовые процедуры предназначены для поиска неисправностей и

проверке работоспособности основных узлов МПУ.

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

Инструментальные кросс системы разработки ПО представляют собой совокупность программ для инструментальной ЭВМ.

Замечание. Основным отличием ОС реального времени от универсальных ОС является то, что их главная цель-минимизация задержки для ответа на внешний запрос. Основная цель универсальных ОС - оптимальное распределение ресурсов ЭВМ при выполнении программ.