Что представляет собой САПР MexBIOS для разработки встроенного ПО микроконтроллеров. Какие преимущества дает использование MexBIOS при создании систем управления. Как устроена и работает система MexBIOS.
Что такое MexBIOS и для чего она предназначена
MexBIOS — это система автоматизированного проектирования (САПР) для разработки встроенного программного обеспечения микроконтроллеров. Она представляет собой программную надстройку над стандартными средствами программирования микроконтроллеров и позволяет:
- Разрабатывать алгоритмы управления на уровне блок-схем и визуального программирования
- Использовать готовые шаблоны и библиотеки для типовых задач
- Моделировать работу системы управления до ее реализации на целевой платформе
- Быстро вносить изменения в алгоритмы работы «на лету» без перепрограммирования микроконтроллера
- Генерировать оптимизированный программный код по завершении разработки
Основная область применения MexBIOS — разработка систем управления электродвигателями и устройств автоматизации на базе микроконтроллеров. Однако подход, реализованный в системе, является универсальным и может применяться для создания встроенного ПО в различных областях.
Преимущества использования MexBIOS при разработке систем управления
Применение САПР MexBIOS позволяет существенно улучшить и упростить процесс разработки встроенного ПО для микроконтроллеров за счет следующих преимуществ:
- Возможность разработки алгоритмов управления инженерами, не являющимися программистами, за счет визуального программирования на уровне блок-схем и алгоритмов.
- Использование готовых шаблонов и библиотечных компонентов исключает необходимость детального изучения архитектуры и периферии конкретного микроконтроллера.
- Система может быть интегрирована в существующие проекты, сохраняя прежние наработки и добавляя новые возможности адаптации.
- Предварительное моделирование работы системы позволяет выявить ошибки на ранних этапах проектирования.
- Использование готовых библиотечных компонентов сокращает затраты на разработку и ускоряет создание прототипов.
Архитектура и принцип работы системы MexBIOS
MexBIOS представляет собой программную надстройку над стандартными средствами разработки для микроконтроллеров. Ключевые компоненты системы:
- Ядро MexBIOS — специализированный интерпретатор, исполняющий алгоритмы, разработанные в графическом редакторе
- Библиотека стандартных программных блоков
- Графический редактор для создания алгоритмов управления в виде блок-схем
- Средства моделирования и отладки
Принцип работы системы заключается в следующем:
- Разработчик создает алгоритм управления в графическом редакторе, используя библиотечные блоки
- Созданный алгоритм («матрица») загружается в микроконтроллер
- Ядро MexBIOS интерпретирует «матрицу» и вызывает соответствующие библиотечные функции
- При необходимости алгоритм может быть скорректирован «на лету» без перепрограммирования МК
- После отладки возможна генерация оптимизированного кода на C для целевой платформы
Основные компоненты среды разработки MexBIOS
Графический редактор MexBIOS включает следующие основные компоненты для создания алгоритмов управления:
- Поле блок-диаграмм — для создания структуры алгоритма из функциональных блоков
- Поле машины состояний — для описания логики работы системы
- Панель визуализации — для создания графического интерфейса управления
- Менеджер проекта — для управления файлами и конфигурацией разработки
- Библиотека стандартных блоков — набор готовых функциональных элементов
Процесс разработки с использованием MexBIOS
Типовой процесс создания системы управления с помощью MexBIOS включает следующие этапы:
- Создание нового проекта и выбор целевой платформы
- Разработка структуры алгоритма управления в графическом редакторе
- Настройка параметров блоков и связей между ними
- Создание графического интерфейса управления
- Предварительное моделирование работы системы
- Загрузка алгоритма в микроконтроллер и отладка на целевой платформе
- Оптимизация и генерация финального кода на C при необходимости
Заключение
Система MexBIOS представляет собой комплексное решение для разработки встроенного программного обеспечения микроконтроллеров. Ее использование позволяет существенно упростить и ускорить процесс создания систем управления на базе микроконтроллеров за счет применения визуального программирования, готовых библиотечных компонентов и гибких средств отладки. MexBIOS может эффективно применяться как для быстрого прототипирования, так и для создания сложных промышленных систем управления.
Arduino или AVR. Что лучше?
Arduino или AVR?
Думаю, не ошибусь, если скажу, что каждый начинающий радиолюбитель, еще не имеющий опыта работы ни с одной платформой для разработки электронных устройств, затрудняется в своем выборе. Новички советуют одно, профи – другое. На форумах мнения разделяются. Так сложилось, что мы начали развитие темы прикладного программирования с создания устройств на AVR микроконтроллера
Переход к созданию своих устройств на практике бывает затруднен. Но решение есть. Оно довольно простое и не очень затратное. Многие, думаю, слышали о такой платформе под названием “Arduino”.
Arduino – это электронный модуль-конструктор, имеющий в своем составе МК AVR, который является мозгом всего этого конструктора. Отличие от самого МК AVR – это упрощенное программирование, большое количество дешевых периферийных устройств, которые можно купить без проблем, а также простая и безопасная “заливка” программы в МК.
Блок-схема платы Arduino до боли проста:
Периферийными устройствами в данном случае являются разные датчики контроля, а также исполняемые устройства. Всем этим винегретом заправляет МК AVR, который установлен посередине платы 😉
Вот некоторые из периферийных устройств.
В процессе изучения мы будем знакомиться с ними поближе
Виды Arduino
Существуют несколько разных моделей Arduino. Некоторые дешевле, а некоторые дороже. Как вы поняли, дешевые модели резко ограничены по функционалу, а также по количеству выводов. Устаревшие модели мы рассматривать не будем, а рассмотрим только те, которые можно недорого приобрести у наших друзей китайцев на сайте Алиэкспресс:
Arduino Mega
Сама приставка “мега” говорит уже сама за себя. Самый мощный конструктор.
Arduino Uno
Урезанная версия модели Arduino Mega, у которой, как видите, уже меньше выводов для подключения периферийных устройств. Если будете брать, то лучше брать сразу кит-набор. При большом желании можете глянуть на Али по этой ссылке.
Также на плате Arduino UNO и Mega распаян стабилизатор питания, позволяющий питать плату от батареи Крона, либо через переходник от китайского адаптера – блока питания. Оптимальное напряжение питания 9-12 Вольт
Arduino Nano
Думаю, проще уже некуда. На али выбор этой модели огромный.
[quads id=1]
Все эти три модели – Mega, Uno, Nano – имеют в своем составе составе конвертер USB-Serial и разъем USB. Это означает, что для заливки программы (на языке Arduino – скетча), нам нет необходимости покупать программатор.
Arduino Pro Mini
Для Pro Mini уже необходим программатор. Но это не обычный программатор, типа USBasp, с помощью которого мы шили микроконтроллеры AVR. Здесь уже требуется программатор USB-Serial, который уже встроен в Uno, Nano и Mega, но не имеется в Mini. Стоимость его в среднем чуть меньше 1$. Вот вам ссылка на Али на саму модель Pro Mini, а вот ссылка на программатор.
Какой Arduino лучше?
Какой из Ардуино лучше для начала осваивания работы? Мое мнение – это Arduino Uno. Mega будет стоить дороже, да и зачем новичку такой супер-конструктор? Uno удобнее всего подключать к ПК и для него не требуется паять штырьки, для того чтобы вставить в макетную плату, так как они уже есть. Он полностью готов к работе.
Но если вы уже с паяльником на “ты” и хотите немного сэкономить, то можете приобрести Arduino Nano. Если же вы отладили какое-либо устройство и хотите уже использовать его многие годы, тут как нельзя кстати подойет Pro Mini. Маленький, удобный, а главное – дешевый.
На всех четырех перечисленных моделях Arduino размещены кварцевые резонаторы, используемые для тактирования МК. Также имеется индикация в виде мигания светодиодов при заливке прошивки. Цена Nano и Mini существенно ниже, чем Uno, и приблизительно равна стоимости среднего по функционалу микроконтроллера AVR.
Сравнение плат Arduino – довольно важная вещь. Новичку, не имеющему опыта работы с ней, легко растеряться в многообразии плат и выбрать неподходящую модель. Конечно, выбор той или иной платы зависит от проекта, однако в общем разъяснить новичкам об особенностях каждой платы не помешает:
Одна из самых мощных плат в линейке Arduino. Имеет память аж 256 Кб, которой хватит на 99,9% проектов, 54 цифровых входов/выходов и 16 аналоговых входов.
– Arduino Uno
Наиболее распространённая ардуинка, имеет память 32 Кб, 14 цифровых входов/выходов и 6 аналоговых входов. Немного, по сравнению с Mega, но для многих проектов хватает.
– Arduino Nano
Вопреки ожиданиям от слова “нано” она даже мощнее Uno. Имеет 14 цифровых входов/выходов и 8 аналоговых входов и память тоже 32 Кб, так, как построена на том же МК ATMega328, что и Uno.
– Arduino Pro Mini
Самая слабая плата. Имеет память 16 Кб, 14 цифровых входов/выходов и 4 аналоговых входа. К тому же, обвязка платы настолько ограничена, что она отличается от простого МК лишь кнопкой перезагрузки reset и стабилизатором питания.
Какую же выбрать новичку? Nano отлично подходит для готовых проектов, а Uno – для освоения Arduino, на ней удобнее учиться. Nano очень компактное и дешевле Uno, а Uno удобнее питать и подключать. Pro Mini не оправдывает своей стоимости, да и к ней надо покупать программатор, к тому же её очень неудобно питать.
Программа Arduino IDE
Для написания программ используется собственная среда разработки Arduino. Те, кто пытались освоить работу с Atmel Studio 6, помнят, какое там количество настроек. Сходу разобраться нереально. Здесь же наоборот, мы видим простой интерфейс и только все самое необходимое. Скачать ее можно здесь. Есть также версии посвежее, но это не влияет на работоспособность программы.
Arduino является открытой платформой. Именно это принесло ей такую большую популярность. Для нее было выпущено много клонов под разные версии. Кстати если вы начнете работать именно с китайским клоном, а не с оригинальным Arduino, что скорее всего и произойдет, то вам потребуется установить драйвер под китайский адаптер Usb-Serial, распаянный на плате. Как отличить китайский Ардуино от оригинала? Если присмотреться к модулю, то можно увидеть вот такую микросхему:
Если она имеется, то ардуино китайский. Для него драйвер устанавливается вручную через “Диспетчер устройств”. Никаких проблем при установке замечено не было. Скачать драйвер можно здесь.
Далее нам надо выбрать нужную нам модель Arduino из списка
Ну а потом выбираем COM-порт в системе, к которой у нас подключена Arduino.
Ну вот и все! Совсем ничего сложного 😉
Вывод
Итак, вернемся к теме нашей статьи. Что же все-таки лучше изучать? Голые МК AVR или взять набор Arduino?
Для новичков часто бывает проблемой выставление фьюзов у МК AVR. Этого минуса лишены все Ардуино. Там просто нет такой функции при подключении через USB кабель. Также при небрежном выставлении фьюзов можно залочить дорогой МК AVR, который не всегда просто реанимировать. В Ардуино залочить МК нереально. При прошивке программатором ISP USBASP, мы можем прошить МК Ардуино, как и любой другой МК AVR.
Также одним важным отличием Ардуино от МК AVR – это наличие худшей оптимизации размера кода. То есть программа, которая выполняет одни и те же действия на МК и Arduino будет иметь разный вес. На Arduino она будет весить больше. И может даже случиться так, что просто не войдет в память. Микроконтроллеры AVR имеют более широкие возможности в создании электронных устройств, но есть у них и свои минусы – это необходимость наличия программатора, источника питания, а также мощного компьютера для комфортной работы в Atmel Studio 6.
Этой публикацией мы начинаем цикл статей, посвященных конструированию электронных устройств на платформе Arduino. Оставайтесь с нами и мы поэтапно, следуя от простого к сложному, разберем самостоятельную сборку электронных устройств. Будут рассмотрены разные модели Arduino, программатор Usb – Serial и её периферия. Вы научитесь самостоятельно писать скетчи в среде разработки и обязательно соберете все то, что давно хотели собрать, но затруднялись в создании на практике.
Программирование микроконтроллеров
Продолжительность курса
Курс «Программирование микроконтроллеров» читается для студентов 2 курса в течение осеннего и весеннего семестров. Занятия проводятся один раз в неделю в течение 4 академических часов (5 и 6 пары). Учебная нагрузка — 60 часов/семестр. ОборудованиеОбучение производится на микроконтроллерах STM32F429. Курсовые и зачётные работы могут выполняться с использованием других микроконтроллеров STM32, а также на устройствах TI Stellaris или TI Tiva. |
STM32F429I-DISCOVERY |
Базовая часть
Тема 1. Введение. Программирование микроконтроллеров на языке С
Теория. Микроконтроллеры. Функции и применение микроконтроллеров. Основные параметры микроконтроллеров. Архитектура микроконтроллеров. Семейства микроконтроллеров ARM и их назначение. Устройство микроконтроллеров. Ядра Cortex-M0/M3/M4F. Периферийные блоки микроконтроллеров: ввод-вывод общего назначения, тактирование, таймеры, прерывания.
Язык С для микроконтроллеров ARM. Особенности разработки программ для микроконтроллеров по сравнению с программированием для ПК. Ввод и вывод. Адресация. Двоичное и шестнадцатеричное счисления. Среда программирования IAR EWARM. Возможности отладки программ.
Практика. Создание и настройка проекта в среде IAR. Создание прошивки, осуществляющей работу с блоком ввода-вывода общего назначения. Работа с технической документацией (поиск адресов аппаратных регистров, работа с принципиальной схемой тестовой платы).
Тема 2. Прерывания
Теория. Прерывания. Виды прерываний. Контроллер прерываний NVIC в ядре Cortex-M. Вектора прерываний. Приоритеты. Флаги прерываний в контроллерах STM. Рекомендации по написанию обработчиков прерываний.
Практика. Создание программы, реализующей асинхронный ввод-вывод сигналов. Освоение документации NVIC. Настройка прерываний блока ввода-вывода общего назначения.
Тема 3. Таймеры
Теория. Таймеры. Виды таймеров. Режимы работы таймеров. Измерение малых промежутков времени. Система тактирования микроконтроллера и методы её настройки.
Практика. Разработка программы для периодического вывода сигналов с использованием таймера и делителей частоты. Измерение параметров сигналов с помощью цифрового осциллографа.
Тема 4. Широтно-импульсная модуляция
Теория. Широтно-импульсная модуляция. Применение ШИМ для управления электронными устройствами. Особенности реализации ШИМ на микроконтроллере. Сглаживание. Специальные режимы работы таймеров.
Практика. Разработка программы для генерации ШИМ сигнала с заданными параметрами.
Тема 5. Цифро-аналоговые и аналого-цифровые преобразования
Теория. АЦП и ЦАП. Частота дискретизации и разрядность. Основные виды АЦП (АЦП прямого преобразования, АЦП последовательного приближения, сигма-дельта АЦП) и их характеристики. Режимы запуска АЦП. Дифференциальный режим измерения. Алгоритмы усреднения измеряемых величин: скользящее среднее и экспоненциальное усреднение. Библиотека для работы с периферийными блоками HAL Driver.
Практика. Разработка программы, осуществляющей измерение напряжения внешнего аналогового сигнала с помощью АЦП.
Тема 6. Обмен данными
Теория. Последовательные и параллельные интерфейсы. UART. Принцип работы шины UART, протокол передачи данных. События блока UART на микроконтроллерах STM32. Протоколы SPI и I2C, их принципы работы. Концепция ведущий-ведомые.
Практика. Разработка прошивки для микроконтроллера, осуществляющей приём и отправку данных по UART. Освоение программного обеспечения для работы с COM-портами на ПК.
Тема 7. Флеш-память
Теория. Принцип работы ячейки флеш-памяти (транзистор с плавающим затвором, чтение и запись данных). NOR и NAND конструкции флеш-памяти. Многоуровневые ячейки. Особенности работы с флеш-памятью из программ.
Практика. Разработка программы для подсчёта импульсов с использованием флеш-памяти для сохранения значения счётчика на случай перезагрузки или потери питания.
Дополнительные темы (читаются по усмотрению преподавателя)
Тема Д1. Дисплеи
Теория. Виды дисплеев. Электронно-лучевые трубки (принцип работы, развёртка). Жидкокристаллические дисплеи (принцип действия ЖК ячейки, устройство мониторов, адресация). Кодирование цветов, битность изображения. Плазменные дисплеи. Светодиодные дисплеи. Проекторы (3LCD, LC0S, DLP). Резистивные и ёмкостные сенсорные дисплеи. Перспективные виды дисплеев (OLED, интерференционные дисплеи, SED, PixelSense).
Практика. Написание программы, осуществляющей вывод графических примитивов и текста на TFT-LCD дисплей тестовой платы. Освоение высокоуровневых библиотек для работы с периферийными блоками и внешними устройствами.
Тема Д2. Система тактирования микроконтроллера
Теория. Классификация и принципы работы генераторов тактовой частоты. Кварцевые и RC-генераторы. Фазовая автоподстройка, делители и умножители частоты. Тактовые частоты шин данных и периферийных блоков микроконтроллера.
Практика. Настройка системы тактирования микроконтроллера, вывод тактового сигнала микроконтроллера. Измерение частоты тактирования с помощью осциллографа. Изучение зависимости формы сигнала от значения тактовой частоты.
Тема Д3. USB
Теория. Краткая история внедрения шины USB. Физический уровень (кабели и разъёмы, состояния шины, кодирование данных). Пакетный уровень (структура и виды пакетов). Транзакционный уровень (адреса, конечные точки). Логический уровень (виды каналов, передача данных по периодам). Дескрипторы и классы устройств. Краткий обзор спецификаций USB.
Практика. Передача данных с ПК на контроллер по USB c использованием CDC класса.
Тема Д4. Операционные системы реального времени
Теория. Операционные системы мягкого и жёсткого реального времени, а также их особенности. Диспетчеризация задач. Синхронизация задач. Операционная система FreeRTOS. Некоторые функции для управления задачами во FreeRTOS.
Практика. Настройка FreeRTOS и создание многозадачной программы для управления светодиодами.
Программа курса (весенний семестр)- Тематические лекции
- Дополнительные разделы программирования микроконтроллеров
- Выполнение курсовой работы по программированию
Осенний семестр — зачет
Весенний семестр — зачет с оценкой
— В конце осеннего семестра в течение 4 занятий выполняется зачетная работа.
Примеры тем зачетных работ:
- Измерение частоты внешнего сигнала с выводом результата на дисплей.
- Генерация ШИМ сигнала с регулировкой частоты и скважности.
- Измерение ёмкости конденсатора путём анализа формы отклика RC-цепи на периодический сигнал.
- Измерение индуктивности путём анализа формы отклика RL-цепи на периодический сигнал.
- Генерация гармонического сигнала путём модуляции одиночными импульсами.
- Измерение расстояния между акустическим излучателем и микрофоном с помощью измерения задержки распространения звука.
- Измерение скорости звука импульсным методом
- Стабилизация напряжения в RC цепи с обратной связью. Напряжение задаётся с компьютера и выводится на дисплей.
— В течение весеннего семестра выполняется курсовая работа.
По согласованию с научными руководителями курсовая работа по программированию может быть совмещена с курсовой работой по физике. Для этого нужно, чтобы работа в значительной мере была посвящена автоматизации эксперимента или другим задачам, подразумевающим программированию микроконтроллеров.
Курсовые работы прошлых лет можно посмотреть здесь.
Литература
- Конспекты первых 2 лекций: лекция 1, лекция 2.
- Мартин М. Инсайдерское руководство по STM32
- Брайан Керниган, Деннис Ритчи «Язык программирования С»
- Майоров С.А., Кириллов В.В., Приблуда А.А. «Введение в микро-ЭВМ»
- Тревор Мартин, «Микроконтроллеры фирмы STMicroelectronics на базе ядра Cortex-M3. Серия STM32»
- Фрунзе А.В. «Микроконтроллеры это же просто» (Том1, Том2, Том3)
- К. Хамахер, З. Вранешич, С. Заки «Организация ЭВМ»
- Paul Scherz. Practical electronics for inventors.
MexBIOS – комплексное решение для создания систем управления на базе микроконтроллеров
При проектировании устройств использование Систем автоматизированного проектирования (далее САПР) носит повсеместный характер. Однако данная тенденция не коснулась процесса создания встроенного программного обеспечения устройств, прежде всего разработки программного кода для микроконтроллеров, который по-прежнему осуществляется посредством специальных систем программирования. При этом основная роль здесь отводится, прежде всего, программисту, а не специалисту знающего специфику работы данного устройства, технологии и особенностей его применения для специфичных объектов управления. В связи с этим знание специфики архитектуры и периферии микроконтроллеров и среды программирования превалирует над знанием «физики» обслуживаемых процессов, что ограничивает в свою очередь функциональность разрабатываемых устройств, снижает эффективность работы инженеров-разработчиков, качество проектной документации, увеличивает сроки исполнения проекта, препятствует быстрому внесению изменений в связи с изменившимися планами заказчика, усложняет командную работу над проектом.
Решение указанных проблем возможно при создании программных надстроек над стандартными системами программирования, позволяющих проектировщикам абстрагироваться от специфики встроенного программирования микроконтроллеров и сосредоточиться на задачах адаптации «интеллекта» к решаемой задаче.
Компания «Мехатроника-Про» на основе опыта собственных разработок создала программный продукт САПР MexBIOS (далее Система), являющийся дополнением к существующим системам программирования и позволяющий выполнить практически весь цикл проектирования встроенного программного обеспечения микроконтроллеров – от предварительного моделирования разрабатываемой системы и пробных запусков на макетах вплоть до работ по сопровождению производства и внесению изменений в выпускаемую продукцию. Основная область применения разработанного продукта – системы управления электродвигателями и устройств автоматизации, однако примененный подход универсален и для других направлений. Компания является участником Texas Instruments Developer Network, и является одним из немногих поставщиков средств разработки для микропроцессоров производства TI.
Рис. 1. Внешний вид САПР MexBIOS. Продемонстрирован экран работы по созданию системы управления лифтовой станцией: 1 – панель визуализации, 2 – поле алгоритмов, 3 – корневое поле для объявление переменных и событий, 4 – поле блок диаграмм, 5 – поле машины состояний, 6 – окно Менеджера проекта, 7 — меню системы.
Использование MexBIOS позволяет улучшить процесс разработки исходя из следующего:
1. Применение визуального программирования позволяет разрабатывать интеллектуальную начинку системы управления инженерам, не являющимися специалистами в области программирования. Проектирование на уровне блок-схем, алгоритмов, «машин состояний» является признанной тенденцией, упрощающей процесс разработки и документирования проекта.
2. Применение готовых шаблонов программного обеспечения и стандартных аппаратно-зависимых драйверов и модулей протоколов исключает необходимость процесса освоения архитектуры и периферии примененного микроконтроллера.
3. Встраивание системы в существующие проекты позволяет сохранить предыдущие наработки и инвестиции в проекты. При этом добавление системы в проект позволяет резко увеличить адаптационные возможности устройства — фактически пользователь добавляет в устройство встроенную систему программирования.
4. Предварительное моделирование работы разрабатываемого кода совместно с моделями будущих объектов управления позволяет исключить глобальные ошибки проектирования и изучить работу программного кода исходя из потенциально возможных эксплуатационных ситуаций на ранних этапах проектирования.
5. Использование готовых программных процедур из библиотек системы и предоставляемых шаблонов для распространенных систем управления позволяет сократить инвестиции в НИОКР и ускорить этап лабораторных исследований.
6. Возможности создания графических «виртуальных» пультов управления позволяет упростить этап тестирования системы и ввода ее в эксплуатацию, ускорить процесс освоения устройства обслуживающим персоналом.
7. Принципиально новым решением системы MexBIOS является процесс графической разработки «на лету», когда в режиме отладки в реальном времени становится возможным не только менять значения переменных, но и алгоритмы исполнения кода.
8. Функция генерирования кода оставляет за собой возможности для последующей оптимизации исходя из ресурсов процессора (при наличии такой потребности).
Концепция системы подразумевает наличие «стартового» проекта встроенного программного обеспечения для микроконтроллера (в роли которого может выступать и уже имеющиеся проекты у пользователя системы). «Стартовый» проект, помимо собственных функций, выполняет запуск специализированного программного ядра MexBIOS, в свою очередь запускающего элементы библиотеки в соответствии с правилами, определенными пользователем в процессе графического программирования на персональном компьютере: фактически пользователь должен задать состав исполняемых элементов библиотеки, условия их запуска и потоки данных между входами-выходами примененных элементов библиотеки. Набор данных правил в дальнейшем будем называть «матрица». Фактически ядро системы есть интерпретатор, который вызывает заранее скомпилированные программные блоки в соответствии с созданной графическим способом программой. Интерпретация кода (пусть даже оперирующего с предварительно откомпилированными процедурами) естественно несколько замедляет исполнения программы, хранение «матрицы» в памяти данных уменьшает ее «полезную» емкость, но всё это может быть компенсировано через встроенный механизм генерации кода в текстовом виде после завершения процесса отладки.
Рассмотрим основные элементы САПР MexBIOS для работы по созданию встроенного программного обеспечения для микроконтроллеров.
Для запуска системы необходимо провести минимальное количество действий, позволяющее вызвать ядро системы и осуществлять коммуникации с компьютером, на котором установлена САПР MexBIOS. Занесение ядра и библиотеки в микроконтроллер осуществляется посредством стандартных средств программирования флеш-памяти. Система допускает подключение внешних утилит программирования флеш-памяти, например, рекомендуется утилита С2xx производства компании Codeskin. Помимо стандартной библиотеки системы пользователь может создать собственные библиотеки и также добавлять их в проект. Ядро совместно с библиотеками заносится в свободные (не занятые «стартовым» проектом) секторы памяти. В «стартовый» проект необходимо добавить вызов ядра (например, в процедуру обслуживания прерывания) и протокол коммуникаций согласно документации и прилагающимся примерам. «Матрица» может храниться как внутри библиотеки, так и отдельно во внешней микросхеме памяти EEPROM, подключение такой микросхемы также описано в документации на систему. Загрузка матрицы осуществляется непосредственно из Системы по последовательному каналу связи (USB, COM). Распределение памяти в микроконтроллере показано на рис.2.
Рис.2. Распределение памяти в системе MexBIOS. Окно для конфигурации памяти позволяет задать области памяти Системы и подключить внешние средства компиляции кода
По завершении указанных действий система готова к использованию и может исполнять «матрицу» пользователя параллельно с алгоритмами.
При создании библиотек используется стандартные средства генерации исполняемого кода, которые поддерживаются производителями микроконтроллеров. Как можно видеть, использование понятия «стартового» проекта и стандартных средств разработки позволяет говорить о том, что рассматриваемая система является надстройкой для уже используемых средств программирования и существующих решений.
Следует отметить особенности библиотек:
1. Каждый блок библиотеки имеет свой уникальный номер, меняющийся при каждом процессе его компиляции – это обеспечивает контроль версионности.
2.. Библиотеки блоков создаются индивидуально для каждого типа ядра микроконтроллеров.
3. Пользователь может исключить из стандартной библиотеки неиспользуемые блоки для того чтобы уменьшить объем занимаемой памяти в микроконтроллере. Система имеет возможность контролировать библиотеки, запрограммированные в микроконтроллер, и если будет обнаружено отсутствие в микроконтроллере требуемого программного блока, об этом будет выдано диагностическое сообщение.
4. Кроме стандартной библиотеки (которую пользователь может модифицировать по собственному усмотрению) возможно создать дополнительно еще и собственную, которую затем также загрузить в оставшиеся свободными сектора флеш-памяти.
Основные элементы среды программирования
В качестве инструмента создания «матрицы» предлагается среда программирования MexBIOS Development Studio. Рассмотрим основные элементы среды:
Палитра блоков: содержит готовые программные блоки, представленные в графическом виде. Блоки находятся в функциональных группах и позволяют реализовывать функции цифровых регуляторов и фильтров, генераторов сигналов, преобразователей координат, драйверы обращения к периферии микроконтроллеров (АЦП, ШИМ, дискретные пины и т.д.), логических и арифметических операций и т.д.. Для использования блока достаточно вынести его на рабочее поле и установить источник получения входных данных. Допускается редактирование блока и создание собственных блоков библиотеки посредством встроенной библиотеки BlockBuilder, работа по созданию блока схожа с технологией S-function builder программы Matlab-Simulink: необходимо назначить количество входов и выходов блока и посредством языка программирования С установить зависимость выходных значений блока от входных. Существует специальная группа блоков Embedded: данная группа содержит «системные» блоки, необходимые для объявления переменных, создания событий, формул и алгоритмов. Следует отметить, что палитра отображается в зависимости от выполняемых действий, предлагая пользователю только разрешенные в текущей ситуации блоки и действия.
Рис.3. Палитра блоков содержит «системные» блоки и блоки библиотек, сгруппированных по функциональному назначению
Меню: содержит кнопки вызова различных функций, выполняемых при создании проектов программного обеспечения, таких как:
- работа с файлами (открытие, сохранение и т.д.)
- моделирование работы созданных схем и объектов управления,
- редактирования палитры блоков, библиотек и собираемых блок-схем
- настройки вывода требуемых вспомогательных окон
- задания режимов отображения блоков на рабочем поле
- настройка соединения с микроконтроллерами
- вызов встроенной документации, примеров и видеоуроков.
Также меню содержит функции индикации загрузки процессора по вычислениям, свободной памяти, времени моделирования.
Рабочее поле: Основная часть интерфейса, на которой происходит проектирование системы через прорисовку алгоритмов и блок-диаграмм (формул). Существует корневое поле, в котором указываются события, запускающие требуемые алгоритмы, и переменные для хранения информации. Каждый алгоритм или блок-диаграмма обладает собственным рабочим полем. Строго говоря, существует 2 параллельно существующих рабочих пространства с собственными корневыми полями – одно для разработки кода управления, второе – для создания моделей объектов управления, которыми управляет код и которое используется для тестирования разрабатываемого кода в режиме моделирования. Связь между пространствами происходите за счет элементов коммуникаций TP_in и TP_out.
Окна просмотра значений переменных: представляет возможность сформировать список переменных для отображения/редактирования их значений. Для просмотра значений массивов (например, осциллограммы переходных процессов) существует возможность вызвать виртуальный 6-канальный осциллограф.
Менеджер проекта: показывает список всех элементов проекта, фактически отображает алгоритм работы с учетом всех выполненных вложений, позволяет быстро перейти к требуемому участку алгоритма, менять порядок исполнения элементов алгоритма. С помощью менеджера проекта возможно сгенерировать программный код в текстовом виде на языке программирования Си для выбранной ветки алгоритма или даже для всего проекта.
Инспектор свойств: позволяет сконфигурировать свойства каждого вынесенного на рабочее поле блока. Свойства бывают двух типов: графические (Design) и системные (Run-time). Первые устанавливают параметры отображения блока на рабочем поле, вторые — по сути являются индивидуальными коэффициентами выполняемых блоком алгоритмов (например, коэффициент усиления регулятора). Свойства блоков изначально задаются в конструкторе блоков.
Окно настройки памяти (показано на рис. 2): позволяет выбрать требуемый компилятор для генерации библиотек блоков и установить необходимые настройки: расположение библиотек в процессоре, область хранения переменных ядра и т.д..
Окно настройки адресов протокола коммуникаций: по умолчанию программное ядро, установленное в микроконтроллер, общается с компьютером (или контроллером) по протоколу Модбас RTU. Соответственно, с помощью данного окна можно произвести настройку адресов требуемых параметров, и в дальнейшем устанавливать коммуникации с использование стандартных правил Modbus RTU.
Следует отметить, что к системе можно подключить выбранные пользователем средства перепрограммирования флеш-памяти микроконтроллеров, и проводить смену библиотеки непосредственно из системы.
Объявление переменных. Типы данных. Доступ до значений переменных. Обращение в память. Связь с переменными стартового проекта
Объявление переменных, используемых алгоритмами, осуществляется путем выноса на рабочее поле системного блока VAR. Переменные допускается выносить только на корневое поле проекта. В автоматически открывающемся окне инспектора необходимо задать имя переменной, тип (выбрать из списка как «плавающая запятая» либо «фиксированная запятая» заданного формата).
В дальнейшем к переменной можно обращаться посредством блоков In и Out, предварительно указав в инспекторе свойств данного блока привязку к требуемой переменной.
Для прямого обращения в память существует специальные блоки RD_MEM (для считывания значения ячейки памяти) и WR_MEM (для записи). При использовании данных блоков необходимо в окне инспектора свойств указать адрес в памяти данных, с которым будет работать данный блок.
Для удобства при обмене информации между стартовым проектом и ядром MexBIOS можно подключить map-файл, образованный при компиляции стартового проекта. Данный файл уже содержит информацию об адресах всех глобальных переменных, и список переменных будет отражен в инспекторе свойств в поле Address блоков RD_MEM и WR_MEM, через которые значения требуемых переменных становятся доступными для «матрицы».
Рис.4. Показано корневое поле для проекта системы управления лифтовой станцией. На экране находится алгоритм, вызывающий последовательно основные модули системы, объявлено использование протоколов коммуникаций (Modbus_RTU для связи с системой управления электродвигателем главного движения, TCP/CLIENT1 и TCP/SERVER1 для связи по сети Ethernet с компьютером диспетчера), в центре рабочего поле объявлены переменные.
Назначение событий
Запуск разрабатываемого алгоритма обеспечивается выбранным пользователем событием. По умолчанию система предлагает фоновое исполнение разрабатываемого алгоритма. В случае необходимости вычислений в режиме реального времени пользователь вынужден запускать алгоритм по событию аппаратного таймера микроконтроллера. Для этого необходимо в «стартовом проекте» разрешить соответствующее прерывание, а на рабочее поле вынести системный блок события «Event», и осуществить его привязку через окно свойств к требуемому вектору прерывания. События могут также быть программные – например, события выполнения условия сравнения двух переменных. Уникальной особенностью системы является возможность проводить моделирование работы алгоритмов на персональном компьютере с привязкой к имитируемым аппаратным событиям.
Рис.5. Показано назначение события по прерыванию таймера (справа в инспекторе свойств указаны его параметры), запускающего алгоритм GUI и формулу расчета CONTROL_SYSTEM. Также в системе существует выполнение фонового (BACKGROUND) алгоритма MAIN.
Алгоритмы. Блок схемы. Машина состояний
Как уже говорилось ранее, проектирование системы в среде осуществляется за счет прорисовки алгоритмов, в которых необходимо указать условия запуска формул (осуществляющие изменения значения переменных) и вложенных алгоритмов (осуществляющих условное ветвление при исполнении кода). Формулы создаются путем прорисовывания блок-схем. Алгоритмы могут быть вложены друг в друга. Кроме условий запуска, можно организовать и циклическое исполнение выбранных участков (системный блок «While»).
«Машина состояний» является набирающем все большую популярность создания программ (метод автоматного программирования): пользователь должен определить основные логические состояния, в которых может находиться управляемая система (например «Стоп», «Движение вверх», «Движение вниз» и т. д.), определить действия, характерные для каждого состояния (включить контактор, установить скорость и т.д.) и указать направления и условия перехода между состояниями. Данный метод позволяет легко наращивать функциональность алгоритма, прост и нагляден. Система предлагает возможности создания любого количества состояний (ограничение только по максимально-свободной памяти микроконтроллера), с установлением индивидуальных условий перехода и детализацией действий для каждого состояния.
Создание собственных блоков. Генерация кода
Система позволяет создавать собственные блоки, «упаковывая» имеющиеся у пользователя программные процедуры в графический блок Системы. Создание такого блока осуществляется через специальное окно конструктора блоков BlockBuilder, где необходимо выполнить последовательно 7 действий:
1. Установить графический свойства отображения блока – затем эти свойства будут доступны через инспектор свойств блока (в разделе Design).
2. Назначить имена и количество входов блока для получения исходных данных, а также тип данных каждого входа.
3. Назначить имена и количество выходов блока для выдачи результатов расчета, а также тип данных каждого выхода.
4. Назначить параметры блока, через которые можно управлять поведением блока (например, коэффициенты цифрового регулятора), затем эти свойства будут доступны через инспектор свойств блока (в разделе Run-Time).
5. Прописать код инициализации блока (если требуется) и код, который будет выполняться при запуске блока. Код пишется на языке программирования Си, и затем будет скомпилирован посредством стандартных средств генерации исполняемого кода, который производитель микроконтроллера рекомендует для использования. Пользователю необходимо указать в коде зависимости между входами и выходами блока, прописав соответствующий алгоритм.
6. Ввести описательную информацию о версии блока, авторстве, способе применения и т.д.
7. Откомпилировать блок. Если есть ошибки компиляции, они будут выданы в окне сообщений. После компиляции необходимо скомпоновать библиотеку заново и запрограммировать ее во флеш-память микроконтроллера. По завершению создания блока необходимо также выполнить операцию Build (в меню Edit, раздел Library) над самой библиотекой для того, чтобы измененный блок был в нее включен.
Как уже отмечалось, система поддерживает средства генерации кода – созданный в система алгоритм графическим способом можно через менеджер проекта автоматически преобразовать в текстовый файл, и затем этот текст использовать как исходный для создания нового блока. Таким образом, система предоставляет полный контроль разработчику над программой, выполняемой микроконтроллером.
Рис.6. Конструктор блока на примере создания цифрового ПИД регулятора – показан этап создания кода блока.
Предварительное моделирование
Система позволяет проводить предварительное моделирование работы кода совместно с моделями объектов управления. При моделировании на персональном компьютере будет исполняться та же программа, которая затем будет загружена в микроконтроллер, при этом учитываются типы данных используемых переменных и ограничения на точность представления значений. В процессе моделирования можно имитировать события, по которым будут запускаться тестируемые алгоритмы (например, имитация прерывания таймера). Для этого необходимо в окне свойств события назначить период запуска и разрешить его работу в режиме моделирования (свойство SimMode выставить как Continious). В качестве моделей объектов, которыми должен управлять разрабатываемый код, могут выступать как имеющиеся в системе модели различных типов электродвигателей, так и самостоятельно разработанные пользователем модели, сконвертированные в блок с помощью описанной выше последовательности действий с инструментом BlockBuilder. Передача данных между рабочим полем моделей и отлаживаемого проекта осуществляется посредством системных блоков «Телепорт» TP_In, TP_Out.
Запуск проекта на микроконтроллере
Существует несколько способов запуска созданных в системе алгоритмов.
1. «Матрица» загружается в ОЗУ микроконтроллера (где уже установлен «стартовый» проект и загружена библиотека блоков) из персонального компьютера, после чего начинается ее выполнение. Данный режим характерен для проведения тестовых и отладочных действий. После нажатия кнопки Refresh становится возможным наблюдать изменения переменных и редактировать их значения. Уникальной особенностью является то, что можно редактировать формулы (блок-диаграммы) прямо в процессе их исполнения, что хоть и требует определенных навыков, но предлагает пользователю фактически non-stop процесс по созданию интеллекта системы и его проверке в режиме Real-Time Mode.
2. «Матрица» включается в состав библиотеки – при запуске ядра матрица будет вычитана и запущена на исполнение. Данный способ позволяет создавать законченные автономные устройства.
3. Сгенерировать код в текстовом виде, провести действия по его оптимизации и включить в собственный проект программного обеспечения. При генерации кода на языке Си будут объявлены и проинициализированные все необходимые переменные, а программный код будет взят из самих блоков и сведен в единый файл, где запуск каждого блока соответствует вызову его программной процедуры. Данный метод позволяет разработчику полностью контролировать процесс создания встроенного программного обеспечения, фактически этот метод автоматизирует процедуру создания и предварительного моделирования работы кода, который впоследствии будет интегрирован в проект пользователя, отлаживаемый с помощью одной из стандартных систем программирования микроконтроллеров.
Обеспечение коммуникаций. Использование протоколов обмена
Пользователь может встраивать готовые блоки протоколов цифровых коммуникаций в собственные проекты, разрабатываемые в системе. Для этого на корневое рабочее поле необходимо вынести блок настройки выбранного протокола передачи данных (TCP/IP, Modbus RTU и т.д.), в которых задать параметры связи (четность, скорость передачи и т.д.), а затем для записи данных в посылку использовать блок PROTO_OUT, а для считывания – PROTO_IN. У обоих указанных блоков необходимо задать адрес, в который будет записываться значение (поле Address в окне свойств инспектора блоков PROTO_IN PROTO_OUT). После этого соединяем эти блоки с другими блоками – источниками/приемниками данных, и коммуникация начинает осуществляться.
Создание пользовательских интерфейсов
Система позволяет создавать собственные виртуальные интерфейсы управления устройством с персонального компьютера. Пользователю предоставляется возможност посредством стандартных визуальных элементов управления (кнопки, слайдеры, строки редактирования, чек-боксы, радиокнопки) заводить значения в микроконтроллер (фактически это элемент In), а за счет использования визуальных элементов индикации (Метки, полосы прогресса, цифровые и стрелочные индикаторы) выводить информацию на экран (разновидность реализации элемента Out). Отдельно стоит отметить элемент индикации Animate – он позволяет выводить на экран компьютера тот графический файл, который соответствует входящему в него значению данных: это позволяет пользователю анимировать происходящие на экране процессы, делая их более наглядными.
Рис.7. Создание пользовательского интерфейса для схемы тестирования системы управления двигателем и анимационной визуализации управления лифтом
Работа с многоядерными процессорами
Система допускает работу, в том числе и с многоядерными микроконтроллерами, например с новейшими процессорами Concerto производства Texas Instruments. Для этого необходимо для каждого ядра установить собственную библиотеку, параллельно запустить экземпляр среды проектирования для каждого ядра, связь между ядрами осуществляется посредством специальных блоков.
Использование шаблонов и примеров. Документация. Видеоуроки
Для облегчения использования системы в неё были добавлены большое количество документации и вспомогательных обучающих материалов. Система вызова справки разделена на 3 части – 1) непосредственно по среде проектирования, 2) справка по библиотеке блоков, 3) справка по схеме (это есть pdf-файл, который прикладывается к созданному в среде проекту с таким же именем, как назван сам проект). Дополнительно прикладываются видеоуроки, на которых показывается способы использования ключевых особенностей системы, а также целый ряд готовых примеров проектов, демонстрирующих её возможности, на русском и английском языках.
Скачать версию системы можно с сайта производителя www.mechatronica-pro.com. Систему допускается бесплатно применять для некоммерческих целей.
Введение в электронику. Микроконтроллеры
Серия статей известного автора множества радиолюбительских публикаций Дригалкина В.В. для начинающих радиолюбителей
Доброго дня уважаемые радиолюбители!
Приветствую вас на сайте “Радиолюбитель“
Микроконтроллер (Micro Controller Unit, MCU) — микросхема, предназначенная для управления электронными устройствами (см. Рис. 1а). Типичный микроконтроллер сочетает в себе функции процессора и периферийных устройств, содержит ОЗУ (Оперативное Запоминающее Устройство) или ПЗУ (Постоянное Запоминающее Устройство). По сути, это небольшой компьютер, способный выполнять определенные задачи.
Использование в современном микроконтроллере “мощного” вычислительного устройства с широкими возможностями, построенного на одной микросхеме вместо целого набора, значительно снижает размеры, энергопотребление и стоимость созданных на его базе приборов. Микроконтроллеры можно встретить почти в любом современном электронном устройстве: мобильных телефонах, фото- и видеокамерах, калькуляторах, часах, телевизорах, медиаплеерах, компьютерах, в промышленной, автомобильной, военной технике и даже в электрочайниках.
На сегодняшний день существует большое количество микроконтроллеров разных типов. Популярностью у разработчиков пользуются микроконтроллеры РiС фирмы Microchip Technology, а также AVR и ARM компании Atmel Corporation. Чтобы заставить микроконтроллер выполнять поставленные задачи, его необходимо запрограммировать с помощью определенной программы. Обычно она прилагается к принципиальной схеме и содержится в файле с расширением .hex. Чаще эту программу называют “прошивка” (firmware). Для различных микроконтроллеров пишутся разные прошивки. Любая прошивка содержит машинные коды, понятные микроконтроллеру. Но человеку трудно запомнить соответствие управляющих команд и машинных кодов. Поэтому программу вначале пишут с помощью какого-нибудь языка программирования (Assembler, С), а затем переводят в машинные коды контроллера с помощью программы-транслятора.
Для написания программ также существует специальный софт. Например, для разработки прошивок AVR чаще используют WinAVR, который имеет все необходимые инструменты: компилятор (для языков С и C++) , программатор, отладчик, редактор и прочее. WinAVR широко используется во всем мире, как любителями, так и профессионалами. Для создания прошивок PIC микроконтроллеров можно воспользоваться CCS PCWHD (PIC С Compiler) – компилятор языка С. Так же, как и предыдущий софт, содержит все необходимое для программирования микроконтроллеров.
Для того чтобы “прошить” микроконтроллер, необходим программатор (см. Рис. 16) . Он представляет собой программно-аппаратный комплекс, состоящий непосредственно из устройства, связывающего микроконтроллер с компьютером, и программы, которая этим устройством управляет. Программатор заносит подготовленную для микроконтроллера программу в его память. Программатор можно купить или собрать самому.
Существуют отдельные программаторы для различных типов микроконтроллеров, а так же универсальные, которые способны прошивать большинство этих микросхем. Один из минусов последних программаторов – высокая цена.
Перейти к следующей статье: Светоизлучающие элементы
Создание устройств на микроконтроллерах [Максим Селиванов]
Для кого этот курс?
Этот курс для тех, кто не хочет ограничиваться в своем развитии простыми или готовыми примерами.
Курс отлично подойдет тем, кому важно создание интересных устройств с полным пониманием того, как они работают.
Курс хорошо подойдет и тем, кто уже знаком с программированием микроконтроллеров на языке Си и тем, кто уже давно программирует их.
И не важно, какие микроконтроллеры Вы программируете. В видеоуроках подробнейшим образом рассказано и показана вся логика работы того или иного модуля.
То есть, при желании Вы сможете переписать программу для управления для того микроконтроллера, который лучше всего знаете.
Что особенного в этом курсе?
Без всякой скромности смело могу заявить, что данный видеокурс является уникальным. Вы больше нигде не встретите такого подробного описания тем представленных в этом курсе!
Даже в ВУЗах, насколько мне известно, данные темы почти не рассматриваются в рамках учебной программы. А если и изучаются, то весьма поверхностно и только в теории.
Самое главное — это то, что материал курса прежде всего ориентирован на практику использования. После подробного ознакомления с теорией, я во всех подробностях рассказываю как подключить тот или иной модуль и как работают библиотечные функции для взаимодействия с этим модулем.
Я не учу работать по шаблонам. Прежде всего, я учу новым навыкам!
Конечно, Вы можете учиться по обучающим статьям или использовать готовые решения и библиотеки. Но вы будете навечно привязаны к этим шаблонам. А после изучения моего курса вы сможете реализовать любую свою идею так как вам надо легко и быстро.
Весь материал разжеван до мелочей.
Даже если Вы не очень хорошо владеете языком Си, то все равно сможете понять как работает тот или иной модуль.
На кого рассчитан этот курс?
Другими словами, что нужно знать, чтобы успешно освоить материал из данного курса?
Этот курс рассчитан на тех, кто уже имел хотя бы небольшую практику программирования микроконтроллеров на языке Си. Какие микроконтроллеры Вы программировали, большого значения не имеет, хотя, если Вы программировали AVR микроконтроллеры, то это будет преимуществом. Самое главное, что от Вас понадобится — это знание языка Си хотя бы на среднем уровне.
Какие темы будут рассмотрены в курсе?
Видеокурс включает в себя 79 уроков
Общей продолжительностью 38 часов!
Курсы — Основы электроники
Видеокурс «Черчение схем в программе sPlan 7»
Бесплатный обучающий видеокурс для тех, кто хочет научиться чертить схемы в широко известной программе sPlan 7.
Программа sPlan 7 — это графический редактор электрических схем, однако он успешно справляется с рисованием не только электрических, но и других видов схем: кинематических, гидравлических, блок-схем программ, а так же с его помощью можно создавать различные рисунки и иллюстрации.
Видеокурс «Черчение схем в программе sPlan» содержит 19 видеоуроков общей продолжительностью более 3 часов.
Узнать подробности, содержание и скачать курс==>>
Видеокурс «Программирование микроконтроллеров для начинающих»
Обучающий видеокурс для тех, кто хочет с нуля научиться собирать и программировать устройства на микроконтроллерах AVR компании Atmel. Курс не подразумевает начального знания микроконтроллеров, однако вы должны быть знакомы с основами электроники и уметь держать в руках паяльник.
Видеокурс содержит более 70 часов видео, а так же различные дополнительные материалы, в том числе и видеоматериалы.
КРАТКИЙ ВИДЕООБЗОР КУРСА
Видеокурс «Программирование микроконтроллеров на языке С»
Этот видеокурс специально создан для тех, кто хочет освоить язык программирования С для микроконтроллеров, но устал собирать информацию по крупицам.
Лучше один раз увидеть! Специальный видеокурс позволяет усвоить возможности языка С в течение одного месяца. Вам не нужно будет штудировать учебники и вникать в ход мыслей их автора. Все действия вы увидите на экране в режиме реального времени. Наглядные уроки позволят максимально быстро овладеть навыками программирования микроконтроллеров на языке С.
Курс дает возможность сразу же начать писать простые программы. Уже через пару уроков вы сможете начать более уверенно писать программы на языке С с использованием интересных возможностей о которых вы раньше, возможно, и не подозревали.
А к концу обучения вы будете способны писать программы на языке С используя все возможности языка, как это делают настоящие профессионалы. Это позволит вам решать сложные задачи очень эффективными и надежными методами. А чем эффективней решения задач, тем меньше вам придется потратить сил и времени на ее решение и тем более простой микроконтроллер можно будет использовать!.
Видеокурс содержит 56 видеоуроков, а это более 23 часов видео!.
Видеокурс «Создание устройств на микроконтроллерах»
Научитесь самостоятельно программировать сложные устройства на микроконтроллерах на профессиональном уровне с глубоким пониманием их работы!
— Воспроизводить речь
— Создавать надежные системы управления по радиоканалу, передавать шифрованные данные
— Побайтово считывать и записывать на карты памяти текст, изображения и любые другие данные
— Воспроизводить звуковые файлы с высоким качеством
— Выводить информацию почти на любые цветные жидкокристаллические TFT дисплеи
— Считывать координаты и усилие нажатия с сенсорного экрана
— Считывать и распознавать радиочастотные метки (RFID-метки)
— Считывать и записывать произвольные данные во внутреннюю память проездных билетов
Видеокурс содержит 78 видеоуроков продолжительностью 38 часов!.
Программирование микроконтроллеров
Классификация и выбор микроконтроллеров
Организация памяти микроконтроллера
Порты ввода-вывода
Таймеры-счетчики
Прерывания
Аналого-цифровой преобразователь
Интерфейсы связи
Микропроцессором называется программно-управляемое устройство, осуществляющее процесс обработки цифровой информации и управление им. Микропроцессор реализуется в виде большой (БИС) или сверхбольшой (СБИС) интегральной микросхемы. Микропроцессор выполняет роль процессора в цифровых системах различного назначения.
Главной особенностью микропроцессора является возможность программирования логики работы.
Микроконтроллер (MCU) – микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает в себе функции процессора и периферийных устройств, может содержать ОЗУ и ПЗУ. По сути, это однокристальный компьютер, способный выполнять простые задачи. Использование одной микросхемы, вместо целого набора, как в случае обычных процессоров, применяемых в персональных компьютерах, значительно снижает размеры, энергопотребление и стоимость устройств, построенных на базе микроконтроллеров.
Микропроцессорная система (МПС) представляет собой функционально законченное изделие, состоящее из одного или нескольких устройств, главным образом микропроцессорных: микропроцессора и/или микроконтроллера.
Микропроцессорное устройство (МПУ) представляет собой функционально и конструктивно законченное изделие, состоящее из нескольких микросхем, в состав которых входит микропроцессор; оно предназначено для выполнения определенного набора функций: получение, обработка, передача, преобразование информации и управление.
Основные преимущества микропроцессорных систем по сравнению с цифровыми системами на «жесткой логике».
- Многофункциональность: большее количество функций может быть реализовано на одной элементной базе.
- Гибкость: возможность исправления и модификации программы микропроцессора для реализации различных режимов работы системы.
- Компактность: миниатюрные габариты микросхем и уменьшения их количества по сравнению с реализацией на «жесткой логике» позволяют уменьшить габариты устройств.
- Повышение помехоустойчивости: меньшее количество соединительных проводников способствует повышению надежности устройств.
- Производительность: возможность применения больших рабочих частот и более сложных алгоритмов обработки информации.
- Защита информации: возможность защитить программу микропроцессора от считывания позволяет защитить авторские права разработчиков.
Хотя микропроцессор является универсальным средством для цифровой обработки информации, однако отдельные области применения требуют реализации определенных специфических вариантов их структуры и архитектуры. Поэтому по функциональному признаку выделяются два класса: микропроцессоры общего назначения и специализированные микропроцессоры. Среди специализированных микропроцессоров наиболее широкое распространение получили микроконтроллеры, предназначенные для выполнения функций управления различными объектами, и цифровые сигнальные процессоры (DSP – Digital Signal Processor), которые ориентированы на реализацию процедур, обеспечивающих необходимое преобразование аналоговых сигналов, представленных в цифровой форме.
Неполный список периферии, которая может присутствовать в микроконтроллерах, включает в себя:
- различные интерфейсы ввода-вывода, такие как UART, I²C, SPI, CAN, USB, ETHERNET;
- аналого-цифровые и цифро-аналоговые преобразователи;
- компараторы;
- широтно-импульсные модуляторы;
- таймеры-счетчики;
- генератор тактовой частоты;
- контроллеры дисплеев и клавиатур;
- массивы встроенной флэш-памяти.
Идея размещения на одном кристалле микропроцессора и периферийных устройств принадлежит инженерам М. Кочрену и Г. Буну, сотрудникам Texas Instruments. Первым микроконтроллером был 4-х разрядный TMS1000 от Texas Instruments, который содержал ОЗУ (32 байта), ПЗУ (1 кбайт), часы и поддержку ввода-вывода. Выпущенный в 1972 году, он имел новую по тем временам возможность – добавление новых инструкций.
В 1976 году (через 5 лет после создания первого микропроцессора) на свет появился первый микроконтроллер фирмы Intel, получивший имя 8048. Помимо центрального процессора, на кристалле находились 1 килобайт памяти программ, 64 байта памяти данных, два восьмибитных таймера, генератор часов и 27 линий портов ввода-вывода. Микроконтроллеры семейства 8048 использовались в игровых консольных приставках Magnavox Odyssey, в клавиатурах первых IBM PC и в ряде других устройств.
На сегодняшний день среди крупных производителей микроконтроллеров следовало бы упомянуть Atmel, Microchip, ST Microelectronics, Texas Instruments, Freescale Semiconductor, NXP и др.
A Руководство по выбору правильного микроконтроллера для вашего IoT-проекта
Руководство по выбору правильного микроконтроллера для вашего IoT-проекта
Интернет вещей (IoT) позволяет нашему миру, связанному с гиперссылками, стать еще более взаимосвязанным. Микроконтроллеры — это крошечные автономные компьютеры, размещенные на микрочипе. Они обеспечивают подключение и контроль всего, что может быть подключено к Интернету. Микроконтроллеры предназначены для выполнения определенных функций, и их можно интегрировать практически во все, начиная от промышленного оборудования, складского инвентаря, носимых устройств и заканчивая бытовой техникой и многим другим.
Разница между микроконтроллером и микропроцессоромМикропроцессоры отличаются от микроконтроллеров по своей конструкции. Внутри микропроцессоров находится единственный ЦП, и они не поддерживают оперативную память.
С другой стороны, микроконтроллерыимеют ЦП, ОЗУ, ПЗУ и другие периферийные устройства, которые встроены в микросхему.
Иногда его также называют мини-компьютером или компьютером на одном кристалле. На данный момент существует множество микроконтроллеров с широким набором функций, предназначенных для различных сценариев использования.
Типы микроконтроллеров для устройств IoTПроизводители выпускают разные микроконтроллеры с разной спецификацией и конфигурацией. Следовательно, микроконтроллеры можно разделить по памяти, архитектуре и битам.
Для примера ниже приведены некоторые микроконтроллеры на основе битов:
- 8-разрядные микроконтроллеры, которые используются для выполнения логических и арифметических операций. 16-разрядные микроконтроллеры
- выполняют операции с большей точностью и производительностью.
- 32-битные микроконтроллеры, которые обычно используются в бытовой технике и медицинских устройствах. Они могут выполнять арифметические и логические операции.
- 64-битные микроконтроллеры
Микроконтроллеры на базе архитектуры:
- Фон Нейман: В этой архитектуре ЦП обменивается данными с одной шиной данных и адресов одновременно с ОЗУ и ПЗУ.
- Гарвард: В этой архитектуре ЦП имеет две отдельные шины; это адресная шина и шина данных для связи с RAM и ROM.
Какой микроконтроллер подходит для ваших нужд IoT?
Если вы создаете продукт для Интернета вещей, выбор правильного микроконтроллера определит успех вашего продукта. Для экземпляра нет смысла добавлять 1 МБ ОЗУ и мощный микроконтроллер в продукт для умного дома.
Ведущие архитектуры, используемые ⅔ разработчиков и организаций Интернета вещей:
Выбор микроконтроллера во многом зависит от функциональных требований вашего IoT-продукта, например, от того, требуется ли для него низкое энергопотребление, высокая производительность, беспроводное подключение или высокий уровень безопасности.
Часто продукты Интернета вещей в отраслях являются более сложными и имеют большие вычислительные мощности и ограничения по энергопотреблению. Таким образом, он требует больше ниши, но продвигает критерии для оценки потребностей вашего микроконтроллера.
В связи с этим мы выбрали несколько основных критериев, чтобы оценить, какой микроконтроллер вам подходит.
Вычислительная мощность микроконтроллеровСкорость обработки критически важна для продуктов IoT, в то время как некоторые продукты IoT могут работать с низкой скоростью, но для некоторых требуется, чтобы микроконтроллер обеспечивал более высокую скорость, чтобы они могли выполнять более сложные задачи.
Ваше IoT-устройство может быть маленьким или большим, оно может выполнять простую функцию считывания или отправлять необработанные данные обратно в центр управления. Он даже может собирать данные из более чем одного источника, выполнять локальный анализ, а затем выполнять запрос.
Независимо от функций, среды и их операционной деятельности, микроконтроллеру требуется достаточный объем обработки для выполнения функций и задач.
Объем памяти микроконтроллеровВыбор микроконтроллера на основе объема памяти очень важен, так как скорость обработки и общая производительность микроконтроллера зависят от размера памяти.
Различные микроконтроллеры имеют разный объем памяти, обычно в двух компонентах:
ПЗУ: хранит прикладную программу в микроконтроллере. Чем больше размер, тем сложнее становится.
RAM: обычно выполняет две функции, то есть читает и записывает сохраненные данные. Кроме того, он содержит данные, которые должны быть проанализированы процессором и предпринять действия.
Информацию о размере памяти основных микроконтроллеров можно найти в оригинальной версии этой статьи на нашем веб-сайте.
Потребляемая мощность в микроконтроллерах Микроконтроллерыв первую очередь должны быть энергоэффективными для продуктов IoT. Часто производители, создающие микроконтроллеры для устройств Интернета вещей, сталкиваются с проблемами производительности и питания, особенно для носимых устройств и устройств с батарейным питанием.
Например, микроконтроллер в интеллектуальном термостате, который каждый раз просыпается, чтобы проверить температуру и отрегулировать температуру кондиционера на основе своих выводов.
В приведенном выше случае микроконтроллер потребляет много энергии, хотя предполагается, что он потребляет как можно меньше.
Время быстрого пробуждения (RPC) в микроконтроллерахПриложения со сверхнизким энергопотреблением обычно проводят большую часть времени в режиме наименьшего энергопотребления, просыпаются для выполнения задачи или измерения, а затем быстро снова входят в режим наименьшего энергопотребления.
Поэтому чрезвычайно важно выбрать MCU со сверхнизким энергопотреблением и самым быстрым временем пробуждения.
Относительно медленное время пробуждения приводит к потере энергии, потому что MCU не может выполнять какие-либо дополнительные задачи в это время. В результате микроконтроллеры с медленным временем пробуждения не могут достичь оптимального низкого энергопотребления, необходимого для устройств, подключенных к IoT.
Интерфейсы сетевого подключения в микроконтроллерах Микроконтроллерыиспользуют сетевые интерфейсы для локального взаимодействия с другими устройствами и передачи данных в приложение IoT для любого анализа.
Более того, они предназначены для поддержки одного или нескольких сетевых протоколов, таких как Wi-Fi, Bluetooth, сотовых сетей, таких как 2G / 3G или даже RFID.
УстройстваIoT могут быть подключены либо через проводное соединение, как в умных зданиях и домах, либо через беспроводное соединение.
Следовательно, вы должны определить полезность вашего IoT-устройства, а затем его сетевые требования.
Проверьте здесь сетевые интерфейсы, поддерживаемые основным микроконтроллером.
Стоимость оборудования и эксплуатации микроконтроллеровСтоимость микроконтроллера может варьироваться в зависимости от сценария использования. Кроме того, некоторые микроконтроллеры даже взимают некоторую лицензионную плату за определенные драйверы устройств, но по мере расширения вашего проекта общая стоимость будет более выгодной.
Стоимость оборудования см. В таблице на нашем сайте.
Поддержка основных микроконтроллеров со стороны сообщества и производителейЧтобы быть более конкретным, поддержка документации, производителя и сообщества имеет решающее значение для разработки вашего IoT-проекта.
Исчерпывающая документация помогает любому, кто впервые использует микроконтроллер и нуждается в руководстве и информации, чтобы принимать обоснованные решения о спецификациях, функциях, а также о том, как его программировать и использовать.
Более того, поддержка производителя — это то, что, скорее всего, будет там, но поддержка сообщества имеет решающее значение, потому что это место, где вы услышите о реальных проблемах, ошибках внедрения и всех секретах для инноваций вашего продукта.
Хотя поддержка сообщества иногда отсутствует для микроконтроллеров, разработанных новым поставщиком, поэтому всегда приятно найти небольшие сообщества, связанные с этим конкретным микроконтроллером.
Количество портов ввода / вывода в микроконтроллерахПорты микроконтроллера действуют как входной канал от датчика к устройству и выходной канал для связи устройства с датчиком. Порты ввода / вывода могут быть цифровыми или аналоговыми.
Цифровые порты обрабатывают простую логику, например, ввод типа «да» или «нет». Более того, аналоговые порты предназначены для непрерывного ввода / вывода. Например, температура или скорость.
В зависимости от требований вашего продукта IoT вам может потребоваться несколько или много портов.Следовательно, как только вы определите формат данных и другие требования, вы можете определить микроконтроллер на основе типа и количества портов ввода-вывода, которые вам нужны.
Безопасность микроконтроллеровВ эпоху цифровых технологий защита данных является самой большой проблемой для разработчиков микроконтроллеров и конечных потребителей, использующих устройства IoT.
Часто производители основных микроконтроллеров применяют меры безопасности, такие как шифрование данных и уровни защиты, чтобы предотвратить доступ от любых злонамеренных действий.
Кроме того, они создают более специализированные микросхемы безопасности, которые могут быть интегрированы с микроконтроллером для безопасного хранения ключей шифрования и учетных данных пользователей.
В этой заметке ниже приведены некоторые стандартные функции безопасности, которые каждый разработчик должен оценить перед выбором микроконтроллера:
Защита от взлома и обратного инжинирингаЧасто злоумышленники вводят код в целевое устройство Интернета вещей или микроконтроллер.После успешного внедрения кода они выполняют его, чтобы получить полный контроль над устройством и его мозгом, то есть микроконтроллером.
Более того, микроконтроллеры также открывают ваше устройство для задач обратного проектирования, когда кто-то может дифференцировать некоторые функции, вставив некоторые алгоритмы в устройство, и извлекать выгоду из ваших инноваций.
Последствия могут быть плохими, в зависимости от устройства и сценария его использования. Чтобы предотвратить подобные атаки, некоторые микроконтроллеры имеют встроенную функцию обнаружения несанкционированного доступа, которая обнаруживает эти действия и защищает устройство от превращения в ботнет для атаки других пользователей в той же сети.
Криптографический загрузчикПроизводители часто выпускают микропрограммное обеспечение и другие обновления безопасности для микроконтроллера, а криптографический загрузчик обеспечивает безопасное обновление.
Обычно загрузчик шифрует ключи безопасности перед обновлением, что предотвращает утечку информации во время процесса обновления.
Аппаратный ускоритель криптографииКриптографический процесс шифрования и дешифрования потребляет память и вычислительную мощность микроконтроллера, что замедляет другие действия или события, выполнение которых запланировано.
Иногда производители интегрируют аппаратный ускоритель с определенными алгоритмами в микроконтроллер, чтобы ускорить этот процесс.
Помимо микросхемы ускорителя, криптографическая эффективность в значительной степени зависит от используемого алгоритма.
Проводящий экранный слойМикроконтроллеры часто используют сетевые интерфейсы, такие как Bluetooth, Wi-Fi и т. Д., Для связи с другими устройствами или с приложением. Иногда злоумышленники используют странный алгоритм для считывания внутренних сигналов, чтобы попасть внутрь микроконтроллера и управлять устройством.
Проводящие экранирующие слои предотвращают любое чтение и запись внутренних сигналов.
В заключение, если вы, как разработчик или организация, хотите использовать микроконтроллер для своих следующих проектов, обратите внимание на наличие этих функций безопасности.
Блоки защиты памяти в микроконтроллере IoTБлоки защиты памяти обычно устанавливаются в микроконтроллере для определения правил доступа к ячейкам памяти, что помогает микроконтроллеру контролировать, какая память может быть прочитана, записана или выполнена.
Хотя блоки защиты памяти не имеют встроенных микроконтроллеров, так как некоторые производители интегрируют их с микроконтроллерами, а некоторые нет.
Следовательно, рекомендуется выбирать микроконтроллер, поддерживающий интеграцию модулей защиты памяти.
Заключение УстройстваIoT часто предъявляют высокие требования к микроконтроллерам с высокой производительностью и низким энергопотреблением, которые обеспечивают высочайший уровень интеграции с доступными периферийными устройствами и стеками программного обеспечения.
Поскольку на рынке доступно более 100 микроконтроллеров, я надеюсь, что это руководство поможет вам оценить их и принять правильное решение.
Полный текст статьи можно найти здесь.
Эта статья написана Атитом Бхавсаром, имеющим более 7 лет опыта в разработке и поставке сложных подключенных продуктов и решений для предприятий пищевой промышленности, производства, нефти и газа, розничной торговли, транспорта, финансов и коммуникаций / СМИ / индустрии развлечений. .
10 шагов к выбору микроконтроллера — Embedded blog — System
Китайская версия: 选择 微 控制器 的 10 个 步骤
Выбор подходящего микроконтроллера для продукта может оказаться непростой задачей.Необходимо учитывать не только ряд технических характеристик, но и проблемы с экономическим обоснованием, такие как стоимость и сроки выполнения, которые могут нанести вред проекту. В начале проекта существует большое искушение вмешаться и начать выбирать микроконтроллер до того, как будут проработаны детали системы. Это, конечно, плохая идея. Прежде чем подумать о микроконтроллере, инженеры по аппаратному и программному обеспечению должны разработать верхние уровни системы, блок-схему и блок-схему, и только после этого будет достаточно информации, чтобы начать принимать рациональное решение о выборе микроконтроллера.Когда эта точка будет достигнута, есть 10 простых шагов, которые помогут сделать правильный выбор.
Шаг 1. Составьте список необходимых аппаратных интерфейсов
Используя общую блок-схему оборудования, составьте список всех внешних интерфейсов, которые микроконтроллер должен будет поддерживать. Необходимо указать два основных типа интерфейсов. Первый — это коммуникационные интерфейсы. Это такие периферийные устройства, как USB, I2C, SPI, UART и так далее. Обратите особое внимание, если приложению требуется USB или какой-либо вид Ethernet.Эти интерфейсы сильно влияют на то, сколько программного пространства потребуется микроконтроллеру для поддержки. Второй тип интерфейса — это цифровые входы и выходы, аналогово-цифровые входы, ШИМ и т. Д. Эти два типа интерфейса будут определять количество контактов, которые потребуются микроконтроллеру. На рисунке 1 показан общий пример блок-схемы с перечисленными требованиями ввода-вывода.
Рисунок 1 — Список аппаратных функций
Шаг 2. Изучите архитектуру программного обеспечения
Архитектура программного обеспечения и требования могут сильно повлиять на выбор микроконтроллера.От того, насколько тяжелыми или легкими будут требования к обработке, будет зависеть, какой процессор вы выберете: 80 МГц или 8051, 8 МГц. Как и в случае с оборудованием, отметьте любые требования, которые будут важны. Например, требует ли какой-либо из алгоритмов математика с плавающей запятой? Есть ли высокочастотные контуры управления или датчики? Оцените, как долго и как часто нужно будет запускать каждую задачу. Получите представление о том, сколько вычислительной мощности потребуется. Требуемая вычислительная мощность будет одним из самых больших требований к архитектуре и частоте микроконтроллера.
Шаг 3: Выберите архитектуру
Используя информацию из шагов 1 и 2, инженер должен иметь возможность получить представление о необходимой архитектуре. Может ли приложение работать с восьмибитными архитектурами? Как насчет 16 бит? Требуется ли 32-битное ядро Arm? Между приложением и требуемыми программными алгоритмами эти вопросы начнут сходиться в решении. Не забывайте учитывать возможные будущие требования и нестабильность функций. Тот факт, что вы в настоящее время можете обойтись 8-битным микроконтроллером, не означает, что вам не следует рассматривать 16-битный микроконтроллер для будущих функций или даже для простоты использования.Не забывайте, что выбор микроконтроллера может быть итеративным процессом. Вы можете выбрать 16-битную часть на этом этапе, но затем на более позднем этапе обнаружите, что 32-битная часть Arm работает лучше. Этот шаг просто для того, чтобы заставить инженера смотреть в правильном направлении.
Шаг 4. Определение потребностей в памяти
Flash и RAM — два очень важных компонента любых микроконтроллеров. Убедиться, что у вас не закончилось пространство для программы или пространство для переменных, несомненно, является наивысшим приоритетом. Намного легче выбрать деталь, в которой этих функций слишком много, чем недостаточно.Добраться до конца дизайна и обнаружить, что вам нужно 110% или что функции нужно урезать, просто не получится. В конце концов, вы всегда можете начать с большего, а затем перейти к более ограниченной детали в том же семействе микросхем. Используя программную архитектуру и коммуникационные периферийные устройства, включенные в приложение, инженер может оценить, сколько флэш-памяти и оперативной памяти потребуется приложению. Не забудьте оставить место для появления новых функций и следующих версий! Это избавит от многих головных болей в будущем.
Шаг 5: Начните поиск микроконтроллеров
Теперь, когда есть лучшее представление о необходимых характеристиках микроконтроллера, можно приступить к поиску! Хорошим местом для начала может стать поставщик микроконтроллеров, такой как Arrow, Avnet, Future Electronics или аналогичный. Поговорите с FAE о вашем применении и требованиях, и часто они могут направить вас к новой детали, которая является передовой и соответствует требованиям. Просто имейте в виду, что в то время они могли оказать на них давление, чтобы подтолкнуть определенное семейство микроконтроллеров!
Следующее лучшее место для начала — это поставщик микросхем, с которым вы уже знакомы.Например, если вы использовали детали Microchip в прошлом и имели хороший опыт работы с ними, начните с их веб-сайта. Большинство поставщиков микросхем имеют поисковую систему, которая позволяет вам вводить данные о наборах периферийных устройств, вводе-выводе и требованиях к питанию, а также сужает список компонентов, соответствующих критериям. Из этого списка инженер может перейти к выбору микроконтроллера.
Шаг 6: Изучите ограничения затрат и мощности
На данный момент процесс отбора выявил ряд потенциальных кандидатов.Это прекрасное время, чтобы изучить требования к питанию и стоимость детали. Если устройство будет питаться от аккумулятора и будет мобильным, то удостовериться, что детали маломощны, абсолютно ненадежно. Если он не соответствует требованиям к питанию, продолжайте просматривать список, пока не выберете несколько. Не забудьте также проверить стоимость процессора за штуку. Хотя цены на многие детали неуклонно приближались к 1 доллару, если это узкоспециализированный или высокопроизводительный обрабатывающий станок, цена может иметь решающее значение.Не забывайте об этом ключевом элементе.
Шаг 7: Проверьте наличие запасных частей
Имея в наличии список потенциальных деталей, сейчас хорошее время, чтобы начать проверять, насколько доступна эта деталь. Некоторые вещи, о которых следует помнить, — это время выполнения заказа на эту деталь? Хранятся ли они на складе у нескольких дистрибьюторов или время выполнения заказа составляет 6–12 недель? Каковы ваши требования к доступности? Вы не хотите застревать с большим заказом и ждать три месяца, чтобы его выполнить.Затем возникает вопрос, насколько новая деталь и будет ли она сохраняться на протяжении всего жизненного цикла вашего продукта. Если ваш продукт прослужит 10 лет, вам нужно найти деталь, которая, по гарантии производителя, будет построена через 10 лет.
Шаг 8: Выберите комплект разработчика
Одна из лучших частей выбора нового микроконтроллера — это найти комплект средств разработки, с которым можно поиграть и изучить внутреннюю работу контроллера. Как только инженер определился с той частью, которую он хочет использовать, он должен изучить, какие комплекты для разработки доступны.Если комплект разработчика недоступен, то выбранная часть, скорее всего, не является хорошим выбором, и им следует вернуться на несколько шагов назад и найти лучшую часть. Большинство комплектов для разработки сегодня стоят менее 100 долларов. Платить больше (если только он не предназначен для работы с несколькими процессорами) — это слишком много. Другая часть может быть лучшим выбором.
Шаг 9. Изучите компиляторы и инструменты
Выбор комплекта разработчика почти укрепляет выбор микроконтроллера. Последнее соображение — изучить компилятор и доступные инструменты.У большинства микроконтроллеров есть несколько вариантов компиляторов, примеров кода и инструментов отладки. Важно убедиться в наличии всех необходимых инструментов для детали. Без правильных инструментов процесс разработки может стать утомительным и дорогостоящим.
Шаг 10: Начните экспериментировать
Даже с выбором микроконтроллера ничего не предопределено. Обычно комплект разработчика прибывает задолго до появления первого прототипа оборудования. Воспользуйтесь преимуществами, создав тестовые схемы и связав их с микроконтроллером.Выбирайте части с высокой степенью риска и заставляйте их работать над комплектом разработки. Возможно, вы обнаружите, что деталь, которая, по вашему мнению, будет отлично работать, имеет непредвиденную проблему, которая заставит выбрать другой микроконтроллер. В любом случае, экспериментирование на раннем этапе гарантирует, что вы сделали правильный выбор, и что в случае необходимости изменения влияние будет минимальным!
jacobbeningo — консультант и преподаватель встраиваемых систем, специализирующийся на разработке устройств с ограниченными ресурсами и устройств с низким энергопотреблением.Он работает с компаниями, чтобы сократить затраты и время вывода на рынок, сохраняя при этом качественный и надежный продукт. Он заядлый твитер, гуру подсказок и уловок, знаток домашнего пивоварения и фанат ананасов! Не стесняйтесь обращаться к нему на его сайте.
Платформа наблюдения за устройствамиMemfault теперь доступна для
САН-ФРАНЦИСКО, 29 апреля 2021 г. (GLOBE NEWSWIRE) — Memfault , поставщик первой облачной платформы для мониторинга, обновления и отладки подключенных устройств, сегодня запустил бесплатный портал самообслуживания, дающий разработчикам встраиваемых систем мгновенный доступ в Memfault на устройствах с ОС Android или микроконтроллерах на базе ARM, работающих на «голом железе» или операционных системах реального времени (RTOS).
«Memfault мгновенно принес пользу нашей команде», — сказал Армен Назарян, основатель и генеральный директор Audigo, разработчика ультра-портативных и простых в использовании продуктов для создания контента для современных авторов. «Memfault предоставил нашему стартапу многие из тех же возможностей, что и в Tesla, с инструментами, на разработку которых нам потребовались бы годы. Благодаря Memfault мы перешли от нулевой прозрачности состояния устройства к получению подробных отчетов о сбоях во всех наших продуктах. Интеграция Memfault прошла без проблем, а возможность быстро диагностировать проблемы удаленно, а затем мгновенно отправлять исправления, делает платформу легким выбором.”
Облачная платформа наблюдения за устройствами Memfault снижает накладные расходы на проектирование и поддержку, обеспечивая скорость и гибкость процессов разработки программного обеспечения для разработки устройств. Такие клиенты, как Logitech, Verkada, Whoop и Airthings, используют Memfault для развертывания обновлений OTA, автоматического обнаружения и удаленной отладки проблем, а также непрерывного мониторинга парка подключенных устройств в любом масштабе.
«Если отслеживание и исправление сложных ошибок микропрограмм и установка обновлений OTA не является достаточно сложной задачей, инженеры по встраиваемым системам до сих пор были обременены пассивными, дорогостоящими и неэффективными процессами отладки», — сказал Крис Коулман, технический директор Memfault.«Наше решение для самообслуживания делает эти возможности доступными для разработчиков встраиваемых систем; просто нажмите и приступайте. Теперь команды разработчиков могут поставлять высококачественные устройства, быстрее выводить их на рынок и управлять подключенными устройствами с помощью непрерывных обновлений и отладки без какого-либо воздействия на конечного пользователя ».
Используя портал самообслуживания Memfault, разработчики встраиваемых систем могут просто посетить https://memfault.com/register/ и выполнить быструю регистрацию пробной учетной записи без предоставления кредитной карты.Поскольку все SDK Memfault находятся в свободном доступе на GitHub , разработчики могут немедленно начать тестирование интеграции и разработки на своих устройствах Android или микроконтроллерах.
Memfault была основана создателями Interrupt , популярного сообщества и блога для разработчиков встроенного программного обеспечения. Опираясь на многолетний опыт работы в Pebble, Oculus и Fitbit, Memfault создала новую инфраструктуру, чтобы предоставить разработчикам устройств доступ к тем же инструментам, которые разработчики программного обеспечения использовали в течение многих лет.
С помощью портала самообслуживания Memfault пользователи получают бесплатный доступ ко всей полнофункциональной платформе Memfault без ограничений:
- Мониторинг устройств: Memfault предлагает отчеты в реальном времени о проверках устройств и уведомления о неожиданном бездействии . Команды могут просматривать данные о состоянии устройства и парка, такие как время автономной работы, состояние подключения и использование памяти, а также отслеживать принятие выпуска и проблемы с единой консоли с помощью панелей мониторинга Memfault.
- Удаленная отладка: Объединяя проблемы по выпускам программного обеспечения и версиям оборудования, Memfault может определить, какие устройства затронуты и какой стек на них запущен.Команды могут проверять обратные трассировки, переменные и регистры при обнаружении ошибки.
- OTA-обновления: Команды могут доставлять обновления на определенные устройства в определенное время. Контролируя время OTA-обновлений, группы могут планировать обновления, когда это меньше всего влияет на пользователей. Устройства также можно разделить на группы для целевых обновлений, а развертывания можно выпускать поэтапно, чтобы ограничить проблемы всего парка, связанные с новыми обновленными версиями.
Ресурсы:
- Бесплатная пробная версия самообслуживания : подпишитесь на мгновенный беспроблемный доступ к Memfault
- Блог прерывания : Присоединяйтесь к сообществу разработчиков встроенного программного обеспечения
- GitHub : Memfault’s SDK для устройств и все примеры находятся в свободном доступе на GitHub
- Live Memfault Webinar : зарезервируйте свое место для нашего предстоящего вебинара с генеральным директором Франсуа Бальдассари, чтобы узнать, как начать работу с Memfault
- Мы нанимаем : Если хотите хотели бы внести свой вклад в нашу растущую команду, ознакомьтесь с нашими доступными позициями
О Memfault
Memfault — это первая облачная платформа для мониторинга, отладки и обновления подключенных устройств, которая обеспечивает эффективность и инновации разработки программного обеспечения для аппаратных процессов.Компания помогает командам выявлять, сортировать и исправлять ошибки в полевых условиях до того, как их заметят конечные пользователи. Компании, занимающиеся производством бытовой электроники, промышленной автоматизации и Интернета вещей во всех отраслях, полагаются на Memfault, чтобы быстрее предоставлять более качественные продукты без ущерба для стабильности и надежности, которые со временем улучшаются. Компания была основана инженерами с многолетним опытом работы с Fitbit, Oculus и Pebble. Memfault поддерживается Uncork Capital, Partech, S28 Capital и Y Combinator.
Беспроводные микроконтроллеры Kinetis нового поколения для повышения производительности и безопасности устройств Интернета вещей | NXP Semiconductors
Одночиповый, двухъядерный микроконтроллер поддерживает Bluetooth 5, Thread и Zigbee, одновременно повышая безопасность потребительских и промышленных устройств Интернета вещей
НЮРМБЕРГ, ГЕРМАНИЯ (Embedded World 2018) — 27 февраля 2018 г. — Сегодня для многих устройств требуется хост-микроконтроллер (MCU), подключенный к радиомодулю, что увеличивает размер и сложность, а также обеспечивает проектирование, разработку программного обеспечения, закупки, планирование поставок и логистику более сложный.Частью широкого портфеля периферийных вычислений NXP, который позволяет устройствам быть более мощными и безопасными, является новая платформа беспроводного микроконтроллера K32W0x, представляющая новое поколение микроконтроллеров Kinetis. Платформа K32W0x объединяет компоненты своего предшественника, обеспечивая масштабируемый путь с более высокой производительностью, дополнительной функциональностью и повышенной безопасностью для удовлетворения меняющейся среды Интернета вещей. Эта новая платформа является первым одночиповым устройством с двухъядерной архитектурой и встроенным многопротокольным радиомодулем, предоставляющим разработчикам продуктов Интернета вещей единого поставщика микросхем, программного обеспечения, поддержки, поддержки и закупок, снижая сложность, размер и стоимость продукта — при этом увеличивая функциональность и безопасность.Платформа микроконтроллеров K32W0x, являющаяся первым из микроконтроллеров Kinetis нового поколения от NXP, объединяет хост-микроконтроллеры и беспроводные микроконтроллеры в устройство малого форм-фактора, что позволяет миниатюризировать сложные приложения, для которых обычно требуется более крупное и дорогое двухчиповое решение. Потребительские устройства, такие как носимые устройства, интеллектуальные дверные замки, термостаты и другие устройства для умного дома, а также широкий спектр медицинских, коммерческих и промышленных приложений IoT могут использовать преимущества многопротокольной радиосвязи и надежной производительности беспроводной платформы MCU K32W0x.
Ключевые особенности платформы беспроводного микроконтроллера K32W0x
- Двухъядерный : Arm® Cortex®-M4core для высокопроизводительной обработки приложений и ядро Cortex-M0 + для подключения с низким энергопотреблением и обработки датчиков
- Большая память : 1,25 МБ флэш-памяти и 384 КБ SRAM для поддержки полнофункциональных приложений, а также протоколов связи
- Многопротокольный радиомодуль : Поддержка Bluetooth 5 и IEEE® 802.15.4, включая стек ячеистой сети на основе IP на основе потоков и Zigbee 3.0 ячеистый сетевой стек
- Поддержка HomeKit через Bluetooth 5 с поддержкой iCloud
Более безопасные устройства IoT
Многие устройства IoT сегодня не имеют необходимого уровня безопасности для защиты от угроз, которые ставят под угрозу сети. Защита от этих развивающихся угроз является основной задачей платформы K32W0x, предназначенной для обеспечения конфиденциальности, целостности и подлинности устройства IoT и его данных.
Функции безопасности системы безопасности K32W0x включают:
- Криптографическая подсистема, которая включает выделенное ядро, выделенную память для инструкций и данных для алгоритмов шифрования, подписи и хеширования, включая AES, DES, SHA, RSA и ECC
- Безопасное управление ключами для хранения и защиты секретных ключей безопасности
- Стирание памяти криптографической подсистемы, включая ключи безопасности, при обнаружении нарушения безопасности или физического вмешательства
- Контроллер домена ресурсов для контроля доступа, защиты системной памяти и изоляции периферийных устройств
- Встроенная безопасная загрузка и безопасное беспроводное программирование, предназначенное для обеспечения работы только авторизованного и аутентифицированного кода в устройстве.
Для расширения встроенных функций безопасности платформы MCU K32W0x, NXP в сотрудничестве с B-Secur, лидером в области биометрической аутентификации, разработал систему, которая использует уникальный сердечный ритм человека (электрокардиограмму / ЭКГ) для проверки личности, делает системы более безопасными, чем использование отпечатков пальцев или голоса.Полная демонстрация этой инновационной технологии будет показана на Embedded World 2018 на стенде NXP 4A-220.
Имя устройства | Bluetooth 5 | Резьба | Zigbee 3.0 |
K32W042 | √ | √ | √ |
K32W032 | √ | ||
K32W022 | √ | √ |
Платформа K32W0x сейчас находится в стадии тестирования, и ее запуск планируется в конце третьего квартала.За дополнительной информацией обращайтесь к местному торговому представителю NXP. Узнайте больше о платформе MCU K32W0x на сайте www.nxp.com/K32W0x.
Посмотреть решения NXP Edge Computing Solutions на Embedded World 2018
NXP продемонстрирует свои новейшие решения для интеллектуальных конечных узлов, подключенных автомобилей и промышленных систем на Embedded World 2018 на стенде NXP, # 4A-220. Изюминкой выставки станет NXP IoT Edge Compute Experience, расположенный у входа в выставочный зал 4A.
Чтобы ответить на ваш индивидуальный визит в IoT Edge Compute Experience или запланировать встречу во время Embedded World 2018, свяжитесь с [email protected].
Чтобы узнать о последних новостях NXP на выставке, посетите пресс-центр NXP Embedded World 2018.
Engineering and Technology History Wiki
TMS1802 был одним из первых микроконтроллеров. Микроконтроллер — это компьютер на микросхеме, который используется в большинстве современных устройств, развлекательных устройств, сотовых телефонов и автомобилей.Предоставлено: Texas Instruments. Одно из первых применений микроконтроллеров было в газовых насосах.В мире компьютеров и микроэлектроники большая часть поклонников достается микропроцессорам. Но есть еще одно важное изобретение, заслуживающее отдельной славы: микроконтроллер. Микроконтроллер — это компьютерный чип, который управляет большинством сложных электронных устройств, которые люди используют каждый день, от стиральных машин и кофеварок до подушек безопасности и антиблокировочных тормозов в автомобилях.
В 1970 и 1971 годах, примерно в то же время, когда Intel изобретала свой микропроцессор, Гэри Бун, инженер Texas Instruments, работал над похожей идеей.В то время компания Texas Instruments была заинтересована в создании карманных калькуляторов, и Бун разработал одну интегральную микросхему, которая содержала почти все необходимые схемы для создания калькулятора (кроме клавиатуры и дисплея). Этот выдающийся прорыв получил довольно банальное название TMS1802NC, но ничего заурядного в устройстве не было. Пять тысяч транзисторов обеспечивали 3000 бит памяти программ, 128 бит оперативной памяти и могли быть запрограммированы для выполнения различных функций.Хотя компания Texas Instruments полагала, что первоначально большая часть продаж пойдет производителям калькуляторов, она увидела далеко идущие возможности для нового чипа. После небольшого программирования его можно было использовать для питания электронных часов, весов и различных типов счетчиков. Хотя микропроцессор мог быть основой гораздо более мощного компьютера, для его работы требовалась целая группа дополнительных микросхем и схем; как минимум в необходимых микросхемах памяти, чтобы использовать ее с принтером, цветным монитором, звуковой картой или дисководом, требовалось еще больше микросхем.С другой стороны, микроконтроллер был независимым устройством — компьютером на микросхеме, который выполнял более ограниченный набор функций, но нуждался лишь в минимальной помощи со стороны других микросхем и устройств.
По этой причине разработка микропроцессора и микроконтроллера разошлась. Оба были успешными, но с точки зрения количества продаж больше всего продавался именно микроконтроллер. Даже в конце 1970-х годов, когда персональный компьютер был лишь блеском в глазах нескольких парней, проводивших много времени в своих гаражах и подвалах, продажи микроконтроллеров стремительно росли.Низкая стоимость микроконтроллера и его универсальный подход сделали экономичным разработку так называемых «встроенных» компьютерных приложений. Крошечные компьютеры могут быть встроены практически в любую систему или машину, чтобы придать ей дополнительные функции. Некоторые из этих приложений включали микроволновые печи, где клавиатура, часы и настройки духовки контролировались микроконтроллером, и бензонасосы, где измерение бензина и запуск насоса производились встроенной компьютерной системой.Сегодня микроконтроллеры есть почти повсюду — в вашем доме, вероятно, их 20 или больше. Последние автомобили могут содержать более десятка. К началу двадцать первого века микроконтроллер был самым продаваемым чипом любого типа, продавалось более 4 миллиардов в год.
Внутрисистемное программирование — Embedded Artistry
Автономный внутрисистемный программатор SuperProIS01 6- и 10-контактные разъемы AVR ISPВнутрисистемное программирование (ISP), также называемое внутрисхемное последовательное программирование (ICSP), представляет собой возможность программирования некоторых программируемых логических устройств, микроконтроллеров и других встроенных устройств при установке в полную систему, а не чем необходимость программирования чипа перед его установкой в систему.Это позволяет доставлять обновления прошивки во встроенную память микроконтроллеров и связанных процессоров, не требуя специальной схемы программирования на печатной плате, и упрощает работу по проектированию.
Существует несколько взаимно несовместимых протоколов внутрисистемного программирования для программирования микроконтроллерных устройств, включая микроконтроллеры PIC, AVR и Parallax Propeller. ICSP в первую очередь был реализован компанией Microchip Technology для программирования устройств PIC и dsPIC.
Основным преимуществом этой функции является то, что она позволяет производителям электронных устройств интегрировать программирование и тестирование в единый производственный этап и экономить деньги, вместо того, чтобы требовать отдельного этапа программирования перед сборкой системы. Это может позволить производителям программировать микросхемы на производственной линии своей собственной системы вместо того, чтобы покупать предварительно запрограммированные микросхемы у производителя или дистрибьютора, что делает возможным внесение изменений в код или конструкцию в середине производственного цикла.
Микроконтроллеры обычно припаиваются непосредственно к печатной плате и обычно не имеют схемы или места для подключения большого кабеля внешнего программирования к другому компьютеру.
Обычно микросхемы, поддерживающие ISP, имеют внутреннюю схему для генерации любого необходимого напряжения программирования из нормального напряжения питания системы и связи с программатором через последовательный протокол. Большинство программируемых логических устройств используют вариант протокола JTAG для ISP, чтобы облегчить интеграцию с процедурами автоматического тестирования.Другие устройства обычно используют проприетарные протоколы или протоколы, определенные старыми стандартами. В системах, достаточно сложных, чтобы требовать умеренно большой связующей логики, разработчики могут реализовать управляемую JTAG подсистему программирования для устройств, не поддерживающих JTAG, таких как флэш-память и микроконтроллеры, что позволяет выполнять всю процедуру программирования и тестирования под управлением одного протокола.
Микроконтроллеры в мобильных устройствах | Смартфон, планшет и др.
Что такое микроконтроллер?
Микроконтроллеры— это небольшие компьютеры, которые мы встречаем повсюду в повседневной жизни, смартфон — лишь один из многих примеров.Они устанавливаются в телевизорах, светофорах, системах сигнализации и всех других технических устройствах и, будучи запрограммированными, могут посылать сигналы, но также и принимать их. Простые сотовые телефоны, которые делают немного больше, чем голосовые и текстовые вызовы, обычно состоят из блока обработки, который делает все — пользовательский интерфейс (клавиатура, дисплей), обработку радиочастот, управление батареей и т. Д.
В чем разница между микроконтроллером и микропроцессором?
Микропроцессор — это простой центральный процессор (ЦП) на одном кристалле.Он содержит арифметико-логический блок (ALU), блок управления (CU), регистры, декодеры команд, схему управления шиной и т. Д.
Микроконтроллер — это соединение между микропроцессором и периферийными устройствами, которые поддерживают схему и память (как данные, так и программу). Необязательно быть на одной микросхеме.
Микропроцессоры в смартфонах представляют собой системы SoC на кристалле и ближе к микроконтроллерам, чем к микропроцессорам, потому что они пытаются объединить все — от обработки до интерфейса устройства, памяти, программирования и хранения данных и т. Д.- по одной микросхеме делать.
Микроконтроллеры и микропроцессоры в мобильных устройствах
Смартфоны и другие мобильные устройства имеют несколько микропроцессоров и микроконтроллеров. Главный процессор — это микропроцессор с шиной для связи с памятью на отдельных микросхемах (хотя часто они входят в один и тот же пакет IC) и шинами для связи с остальным оборудованием.Обычно они содержат некоторые контроллеры, такие как, например, контроллер дисплея, поэтому они обладают некоторыми характеристиками микроконтроллеров, но они все же больше микропроцессоры, чем микроконтроллеры. Последнее поколение смартфонов часто ориентировано на микропроцессоры для набора микросхем RF, чтобы обеспечить гибкость производителю за счет использования программного обеспечения, а не дизайна оборудования для некоторых функций. Однако у вас есть больше аппаратного интерфейса (RF и т. Д.) На самом чипе.В остальном в телефоне несколько микроконтроллеров. Они управляют сенсорным экраном, звуком, датчиками, камерами и т. Д.
Система на чипе (SoC) в смартфонах?
Процессоры лежат в основе любого устройства, подобного ПК. Также производители рекламируют смартфоны с высокими тактовыми частотами и большим количеством ядер. SoC (System on a Chip) — это микропроцессор, который нельзя сравнивать с коммерчески доступными процессорами для ПК. Процессоры смартфонов объединяют в микропроцессоре основное процессорное ядро (также известное как процессор (CPU)), графический чип (GPU), чип памяти и звуковой чип.Причина в нехватке места на мобильных устройствах.
Отладка и программирование микроконтроллеров
Для создания прототипов во время разработки и экономии времени требуется подходящий программист MCU с навыками отладки.
USB Multilink Universal — это интерфейс с большим количеством различных заголовков, с помощью которых можно программировать большое количество семейств микроконтроллеров, включая HCS08, RS08, HC (S) 12 (X), Coldfire V1 / + V1 / V2-V4 , Поддерживаются Qorivva MPC55xx / 56xx и Kinetis ARM.