Ренат Б. Салихов, Вали Х. Абдрахманов, Нияз Н. Бикбаев
Физико-технический институт Башкирского государственного университета
Уфа, Россия
Аннотация – представлена идея создания бюджетного лабораторного стенда на базе универсального микроконтроллера для изучения основ микропроцессорной техники. Лабораторные стенды демонстрируют все возможности микроконтроллера – работу портов ввода-вывода, последовательного порта, аналого-цифрового преобразователя (АЦП), с двухстрочным ЖКИ, с температурными датчиками, с двигателем постоянного тока (ДПТ), с шаговым двигателем и др.
Ключевые слова – лабораторные стенды, микропроцессорная техника, образование.
I. ВВЕДЕНИЕ
В настоящее время любое устройство связи, автоматики, навигационных систем, аудиовизуальной аппаратуры, бытовые устройства и т.д. требуют в своем составе присутствия микроконтроллера. В силу этого, обучение студентов микропроцессорной технике является одним из ключевых факторов в получении качественного современного образования в области электроники. Кроме того, есть значительное количество инженеров–разработчиков “старой закалки” и просто радиолюбителей, которые хотели бы самостоятельно освоить микроконтроллерную технику и повысить тем самым свой профессиональный уровень.
Для приобретения студентами практических навыков программирования и отладки микропроцессорных устройств необходимо использовать лабораторные стенды на базе современных микропроцессорных устройств. В связи с развитием и широким распространением микроконтроллеров в современной электронике, необходимо давать студентам базовые знания в этой области. При этом, необходимо начинать с самых простых в освоении универсальных 8- разрядных контроллеров, т.к. изучение сразу широко сейчас применяемых более сложных контроллеров 16- и 32- разрядных серий, контроллеров с цифровой обработкой сигналов (т.н. DSP-контроллеров) не всегда оправдано из-за относительной сложности их освоения.
II. ПОСТАНОВКА ЗАДАЧИ
На сегодняшний день лабораторные стенды для изучения микроконтроллеров выпускаются многими отечественными и зарубежными производителями. Наиболее популярными являются фирменные стенды, например STK600 от компании Atmel [1] (рис. 2), PICDEM LCD 2 от компании Microchip [2] (рис. 1), STM3210E-EVAL от компании STMicroelectronics [3] (рис. 4) и др.
Среди отечественных производителей можно выделить компании «ЭнергияЛаб» - стенд «ЭЛБ-020.009.01» [4], «УчтехПрофи» - стенд «Программирование микроконтроллеров» [5], Квазар - стенд «МП–01» [6] и др., которые также производят учебные лабораторные стенды. Основным недостатком данных стендов является их дороговизна - цена в настоящее время (май 2016г.) находится в пределах 15-50 т. руб.
Рис. 1. PICDEM LCD2
Рис. 2. STK600 от компании Atmel
Широкое распространение получила платформа Arduino - это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов (рис. 3). Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Устройство программируется через USB без использования программаторов. Язык программирования Arduino является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам.
Рис. 3. Arduino Mega
Рис. 4. STM3210E-EVAL
III. CРЕДСТВА РАЗРАБОТКИ
В настоящее время для эффективной отладки программ для микроконтроллеров применяются специализированные, профессиональные отладочные средства, т.к. если программа достаточно сложная, то исправить ошибки, неизбежно возникающие при программировании, без отладочных средств бывает достаточно трудно или даже невозможно. Таким образом, очевидно, что необходимо дать студентам навыки внутрисхемной отладки микроконтроллеров. Какой выбрать внутрисхемный отладчик для учебных целей? Поскольку для изучения были выбраны микроконтроллеры фирмы Microchip, то проведем обзор существующих современных отладочных средств от этой фирмы.
Рис. 5. Внутрисхемный отладчик/программатор ICD3
ICD3 – последователь хорошо известного разработчикам внутрисхемного отладчика и программатора ICD2 (рис. 5). Он способен запрограммировать большинство Flash-микроконтроллеров и поддерживает все, ставшие уже привычными функции для отладки программ: разные режимы работы (в реальном времени и пошагово), расширенные точки останова (по совпадению адреса программного счетчика, по совпадению адреса/значения чтения/записи в памяти данных, по вхождению в спящий режим, по срабатыванию сторожевого таймера), комбинационные точки останова (И, ИЛИ, последовательное выполнение расширенных точек останова), возможность просмотра и модификации содержимого управляющих регистров, FLASH, RAM и EEPROM, возможность измерения временных интервалов между точками останова и т.д.
Рис. 6. Внутрисхемный отладчик/программатор PICkit3.
Программатор-отладчик PICkit3 – недорогой и простой в использовании программатор для внутрисхемного программирования и отладки Flash-микроконтроллеров компании Microchip, последователь отлично себя зарекомендовавшего PICkit2 (рис. 6). Связь с компьютером, обновление программного обеспечения и питание программатора осуществляется по интерфейсу USB.
Для внутрисхемной эмуляции 8-, 16- и 32-разрядных контроллеров предлагается новое отладочное средство – MPLAB REAL ICE (рис. 8). По сути REAL ICE является усовершенствованной версией популярного внутрисхемного отладчика ICD-2 и использует тот же последовательный интерфейс ICSP, но предоставляет дополнительные возможности:
до 6 аппаратных точек останова;
до 1000 программных точек останова;
программная трассировка выполняемого кода и памяти программ для 16-битных МК;
аппаратная трассировка выполняемого кода, памяти программ, портов и т. п. для 32-битных МК;
отображение значений переменных в реальном времени и графическое представление статистики изменений (DMCI);
высокоскоростной интерфейс USB 2.0 для связи с компьютером;
возможность работы при напряжениях питания целевого контроллера от 2 до 6 В;
опторазвязанный интерфейс для связи с отлаживаемым контроллером;
защита от перенапряжений и короткого замыкания;
логический пробник.
Рис. 7. Отладочная плата PICDEM 2 PLUS и MPLAB ICD 2
Для сравнения программаторов-отладчиков вся информация сведена в таблицу на рис. 9. Наиболее широко используемыми и известными среди представленных являются внутрисхемные отладчики серии ICD: ICD-2 и его улучшенный вариант ICD-3. Для 8-разрядных микроконтроллеров широко используется связка отладочной платы PICDEM 2 PLUS и MPLAB ICD 2 (рис. 7). Как показывает практика, в большинстве случаев для учебных целей возможности ICD 2 являются избыточными. В учебных целях достаточно использовать PICkit3, т.к. в нем реализованы основные требуемые для отладочных средств возможности – пошаговое выполнение команд, аппаратные точки останова, останов периферийных устройств.
Рис. 8. Внутрисхемный отладчик/программатор REAL ICE
останов периферийных устройств. Причем все отладочные средства для контроллеров Microchip подключаются через стандартный разъем внутрисхемного программирования ICSP и всегда есть возможность легко перейти на более “продвинутые” средства отладки. Кроме того, немаловажным фактором является то, что на рынке есть недорогие бюджетные клоны PICkit3 от китайских производителей. По мнению авторов, является очевидным, что только где-то около 10-20% студентов технических вузов России (в зависимости от вуза) может легко выполнить минимальные требования по рабочей программе и готовы к более сложным заданиям преподавателя, разработке достаточно сложного программного обеспечения для микроконтроллеров на стадии дипломного проектирования. Таким образом, считаем оптимальным использование в учебном процессе более “продвинутых” отладчиков серии ICD в соотношении 1:5 к PICkit3.
Для программирования микроконтроллеров используются, в основном, компиляторы языка высокого уровня Си, с широким набором встроенных библиотек. Например, для микроконтроллеров PIC наиболее часто используются компиляторы, разработанные самим разработчиком Microchip C17, C18, C30 (для каждого семейства); IAR C Compiler; Hi-Tech PICC Compiler,. CCS C Compiler. Какой выбрать язык программирования, компилятор? С одной стороны, для обучения студентов необходим компилятор, с широким набором встроенных библиотек, удобный, легко осваиваемый студентами – удобно использовать компилятор MicroC PRO for PIC от microElectronica [7], есть свободно распространяемая версия с ограничениями на 2кб на hex-файл (в большинстве случаев для обучения студентов этого достаточно). По всем функциям библиотек есть подробный Help с примерами. И соответственно, для проверки написанных программ в “железе” необходим стенд с как можно большим количеством
Рис. 9. Сравнительные характеристики отладочных средств от фирмы Microchip [10]
подключенных периферийных устройств различного назначения из числа широко используемых в системах автоматизации (датчиков, устройств индикации и клавиатуры для интерфейса пользователя, исполнительных механизмов, преобразователей интерфейсов и т.д.), с различными протоколами их подключения, например широко используемые RS-232, SPI, I2C, ModBus RTU (физический уровень – “токовая петля”), 1-Wire, USB, CAN, Ethernet и др. С другой стороны, как уже было отмечено, необходимо, чтобы перед изучением программирования на языке высокого уровня студенты ознакомились с низкоуровневым языком – ассемблером, знали внутреннюю структуру микроконтроллера и особенности его работы на уровне “железа”. Для этого достаточно иметь отладочную плату с минимальной обвязкой - достаточно 8 светодиодов, кнопка, подстроечный резистор на вход АЦП. Есть возможность использовать MPLAB IDE- свободно распространяемую интегрированную среду разработки от производителя микроконтроллеров, фирмы Microchip. Она включает в себя набор необходимых инструментов (компилятор с языка ассемблер, текстовый редактор, программный симулятор и средства работы над проектами), в том числе бесплатный компилятор ассемблера MPASM. MPLAB IDE представляет собой 32-разрядное приложение для ОС Windows, проста в использовании и включает в себя множество бесплатных программных компонентов для быстрой разработки приложений и отладки. Студентами на лабораторных работах пишутся простые программы на ассемблере, типа пересылки между ячейками ОЗУ, организации программных временных задержек, моргания светодиодом, отработки нажатия кнопки при программном опросе, по прерыванию, с устранением дребезга контактов, бегущий огонь на светодиодах, реализация непрямой адресации ячеек ОЗУ, реализация табличной функции, работа с АЦП, таймерами-счетчиками и т.д.
IV. CБОРКА МАКЕТОВ
Для изучения были выбраны микроконтроллеры фирмы Microchip. Этот выбор основан, с одной стороны, на относительной простоте системы команд микроконтроллеров этой фирмы, что существенно облегчает начальное обучение и кроме этого, фирма Microchip хорошо представлена русскоязычной документацией на микроконтроллеры и средства разработки. Был создан набор из трех различных лабораторных стендов.
Рис. 10. Модель стенда № 1 в среде моделирования Proteus ISIS Professional
За основу двух первых стендов (стенда №1 и стенда №2) взяты уже известные идеи и разработки [8] по созданию такого комплекта стендов, но из-за невозможности реализовать имеющиеся там модели стендов в “железе” (в исходных моделях использовались выводы для подключения осциллятора, не было предусмотрено использования некоторых выводов для внутрисхемного программирования), схемы подверглись изменениям и дополнениям (изменена схема подключения индикаторов, добавлены схемы стабилизации питания, разъем внутрисхемного программирования ICSP, схемы подключения интерфейса последовательного порта MAX232, кварцевый осциллятор), а примеры программ были переписаны под изменения.
Рис. 11. Модель стенда № 2 в среде моделирования Proteus ISIS Professional
Стенд №1 создан на базе микроконтроллера PIC16F887 от компании Microchip с минимальной обвязкой в виде наиболее широко применяемых в таких устройствах элементов – 2-х строчный ЖКИ-дисплей типа HD44780, кнопки, светодиоды, интерфейс последовательного порта, датчики температуры, пьезоизлучатель, подстроечные резисторы для работы с АЦП. К данному стенду имеется комплект лабораторных работ на языке Си для PIC –контроллеров (как было уже отмечено выше, использовался компилятор который демонстрирует работу АЦП, таймеров, портов ввода-вывода, прерываний, обработку нажатия кнопок, работу с термодатчиком по протоколу 1-Wire, индикацию на 2-хстрочный ЖКИ-дисплей и др. Также имеется модель устройства в среде моделирования Proteus ISIS Professional от компании Labcenter Electronics (рис. 10), где можно проверить правильность функционирования написанной программы перед тем, как ее прошивать в стенд.
Рис. 12. Лабораторный стенд № 1
Это может уменьшить число необходимых стендов для проведения лабораторных работ – студенты пишут собственную программу по индивидуальному заданию преподавателя, затем проверяют ее работу в среде Proteus, и только уже потом проверяют в “железе”. Для изготовления стенда была собрана схема электрическая принципиальная в САПР OrCAD Capture (рис. 13), в OrCAD PCB Editor спроектирована печатная плата (рис. 14), и собран макет (рис. 12).
Рис. 13. Принципиальная схема лабораторного стенда №1
Стенд №2 на базе того же микроконтроллера PIC16F887, больше ориентированный на изучение возможностей управления исполнительными механизмами наиболее широко используемыми в средствах автоматизации:
управление ДПТ – возможность реверса, ШИМ-регулирование;
управление шаговым двигателем;
подключение мощной нагрузки с помощью электромагнитного реле.
Также стенд позволяет изучить программирование ввода информации с клавиатуры, с фотодатчика, отработку работы кнопки по прерыванию, подключение устройств по интерфейсу стандартного последовательного порта и по интерфейсу I2C. В составе стенда:
Рис. 14. Сборочный чертеж лабораторного стенда №1
клавиатура 3х4;
3 семисегментных индикатора;
фотодатчик;
кнопка на выходе внешнего прерывания INT;
интерфейс последовательного порта (MAX232);
микросхема расширителя портов PCF8574 подключаемая по протоколу I2C;
драйвер ULN2003A, который позволяет подключить шаговый двигатель с током до 500 мА и напряжением до 50В;
популярный драйвер L293D для управления электродвигателями небольшой мощности постоянного тока 4.5В..36В и током до 600 мA.
Рис. 15. Лабораторный стенд № 2
К данному стенду также имеется комплект лабораторных работ на языке Си для PIC –контроллеров. Также как в стенде №1, и как было уже отмечено выше, использовался компилятор MicroC PRO for PIC от компании MikroElektronika. Комплект лабораторных работ демонстрирует программирование и работу всех подключенных устройств. Также имеется модель устройства в среде моделирования Proteus ISIS Professional от Labcenter Electronics (рис. 11), где можно проверить правильность функционирования написанной программы перед тем, как ее прошивать в стенд. Для изготовления стенда была собрана схема электрическая
Рис. 16. Сборочный чертеж лабораторного стенда № 2
Рис. 17. Принципиальная схема лабораторного стенда № 2
принципиальная в САПР OrCAD Capture (рис. 17), в OrCAD PCB Editor спроектирована печатная плата (рис. 16), и собран макет (рис. 15).
Рис. 18. Лабораторный стенд № 3
Стенд №3 представляет собой слегка измененную схему фирменной отладочной платы 44-Pin Demo Board [9] на PIC16F887. Электрическая схема полностью идентична демонстрационной плате, отличаясь только тем, что собрана на контроллере в DIP-корпусе, все выводы портов для легкого подключения и расширения возможностей платы также выведены на штырьки, добавлена возможность питания от USB и от внешнего вывода (для расширения возможностей платы на нее установлен линейный стабилизатор типа 7805). Благодаря полной схемной совместимости все программы из учебного набора программ имеющихся в руководстве по эксплуатации, написанные на фирменную демо-плату 44-Pin Demo Board будут работать, что упрощает процесс создания комплекта лабораторных работ.
Рис. 19. Принципиальная схема лабораторного стенда № 3
Рис. 20. Сборочный чертеж лабораторного стенда № 3
Для изготовления стенда была собрана схема электрическая принципиальная в САПР OrCAD Capture (рис. 19), в OrCAD PCB Editor спроектирована печатная плата (рис. 20), и собран макет (рис. 18). К стенду имеется комплект лабораторных работ, включающий в себя простые программы на ассемблере - пересылка между ячейками ОЗУ, организация программных временных задержек, моргание светодиодом, отработки нажатия кнопки при программном опросе, по прерыванию, с устранением дребезга контактов, бегущий огонь на светодиодах, реализация непрямой адресации ячеек ОЗУ, реализация табличной функции, работа с АЦП, таймерами-счетчиками.
V. ЗАКЛЮЧЕНИЕ
Таким образом, в статье проведен обзор существующих технических и программных средств, которые целесообразно использовать в вузах для обучения студентов основам микропроцессорной техники, программирования и отладки устройств на микроконтроллерах. В результате была обоснована необходимость создания целого комплекта стендов, которые решают разные задачи, возникающие при обучении, взаимодополняют друг друга. К стендам были разработаны комплекты лабораторных работ на ассемблере и на языке высокого уровня MicroC PRO for PIC от компании MikroElektronika. Разработанные стенды и лабораторные работы которые могут использоваться в учебном процессе на лабораторных занятиях студентами высших профессиональных учебных заведений при многоуровневой подготовке инженеров и бакалавров, для обучения в техникумах или для самообучения желающими повысить свой профессиональный уровень и овладеть навыками программирования микроконтроллеров PIC среднего семейства. Основным достоинством данных стендов является, то что они являются бюджетными, т.е. при минимальных затратах демонстрируются все возможности микроконтроллера. Были рассмотрены вопросы выбора оптимальных для обучения языков программирования и компилятора языка высокого уровня Си, использования интегрированной среды разработки MPLAB IDE. Также проведен обзор отладочных средств для контроллеров фирмы Microchip и были выбраны оптимальные для целей обучения студентов внутрисхемный отладчик и программатор.
СПИСОК ЛИТЕРАТУРЫ
Atmel.com. (2016). STK600. [online] Available at: http://www.atmel.com/ru/ru/tools/STK600.aspx [Accessed 16 May 2016].
Microchip.com. (2016). PICDEM 2 Plus - DM163022-1 | Microchip Technology Inc. [online] Available at: http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=DM163022-1 [Accessed 16 May 2016].
St.com. (2016). STM3210E-EVAL Evaluation board with STM32F103Zx MCU - STMicroelectronics. [online] Available at: http://www.st.com/web/en/catalog/tools/PF204176 [Accessed 16 May 2016].
Vrnlab.ru. (2016). Training board “MICROCONTROLLER PROGRAMMING”. [online] Available at: http://www.vrnlab.ru/catalog_item/laboratornyy-stend-programmirovanie-mikrokontrollerov/ [Accessed 16 May 2016].
Labstand.ru. (2016). A standard set of training equipment "Programming of microcontrollers", PM-LM. [online] Available at: http://labstand.ru/catalog/miikrokontrollery_i_mikroprotsessornaya_tekhni-ka/tipovoy_komplekt_uchebnogo_oborudovaniya_programmirovanie_mikrokontrollerov_pm_lm_1389 [Accessed 16 May 2016].
Kvazar-ufa.com. (2016). MP-01 development board. [online] Available at: http://www.kvazar-ufa.com/product1591.html [Accessed 16 May 2016].
Mikroe.com. (2016). mikroC - MikroElektronika. [online] Available at: http://www.mikroe.com/mikroc [Accessed 16 May 2016].
"Лабораторные работы на МК PIC или версия "БЫСТРОГО СТАРТА" / PIC / Сообщество EasyElectronics.ru", We.easyelectronics.ru, 2014. [Online]. Available: http://we.easyelectronics.ru/PIC/laboratornye-raboty-na-mk-pic-ili-versiya-bystrogo-starta.html#cut. [Accessed: 16- May- 2016].
44-PIN DEMO BOARD USER’S GUIDE. (2016). 1st ed. [ebook] Microchip Technology Inc., p.36. Available at: http://ww1.microchip.com/downloads/en/DeviceDoc/41296B.pdf [Accessed 16 May 2016]
Обзор отладочных средств Microchip", Gamma.spb.ru, 2016. [Online]. Available: http://gamma.spb.ru/index.php/obuchenie/stati/microchip/3-obzor-otladochnykh-sredstv-microchip. [Accessed: 16- May- 2016].
Ренат Б. Салихов закончил в 1981г. Национальный исследовательский ядерный университет МИФИ. В 1987 г. защитил кандидатскую диссертацию в области физики твердого состояния. Он был руководителем лаборатории волоконно-оптических преобразователей ОКБ «Заряд» в 1990-е годы, доцентом кафедры общей физики Башкирского государственного педагогического университета в 2000-х годах. В настоящее время является заведующим кафедрой инфокоммуникационных технологий и наноэлектроники Физико-технического института Башкирского государственного университета. Область интересов в научно-исследовательской деятельности - физика конденсированного состояния, нанотехнологии и электроника.
Вали Х. Абдрахманов в 1998г. закончил Уфимский государственный авиационный технический университет (УГАТУ). В 2003г. защитил в УГАТУ кандидатскую диссертацию, затем работал в должности доцента на кафедре "Промышленная электроника" факультета Авиационного приборостроения УГАТУ В настоящее время работает в должности доцента кафедры "Инфокоммуникационных технологий и наноэлектроники" Физико-технического института Башкирского государственного университета, г. Уфа. Его область научных интересов –автоматизация и системы управления.
Нияз Н. Бикбаев в 2013г. поступил в Башкирский Государственный Университет (БГУ). Является студентом физико-технического института направления «Электроника и наноэлектроника». Его область научных интересов – автоматизация и системы управления.