Научная статья на тему 'Особенности подхода к изучению и программированию современных микроконтроллеров'

Особенности подхода к изучению и программированию современных микроконтроллеров Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
109
20
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МИКРОКОНТРОЛЛЕР / ЯЗЫК ПРОГРАММИРОВАНИЯ / ИНТЕГРАЛЬНАЯ СХЕМА / ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР / ПРИЛОЖЕНИЯ / КОМПИЛЯТОРЫ / СОВРЕМЕННЫЕ ТЕХНОЛОГИИ ОБУЧЕНИЯ / MICROCONTROLLER / PROGRAMMING LANGUAGE / INTEGRATED CIRCUIT / CPU / APPLICATIONS / COMPILERS / ADVANCED LEARNING TECHNOLOGIES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Медвежонков Дмитрий Андреевич, Матьков Виктор Петрович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FEATURES OF APPROACH TO STUDYING AND PROGRAMMING OF MODERN MICROCONTROLLERS

The possibilities of improving the educational process in studying of modern microcontrollers and application development for them.

Текст научной работы на тему «Особенности подхода к изучению и программированию современных микроконтроллеров»

ЭЛЕКТРОННЫЙ НАУЧНЫЙ ЖУРНАЛ «APRЮRI. CЕРИЯ: ЕСТЕСТВЕННЫЕ И ТЕХНИЧЕСКИЕ НАУКИ»

УДК 004.432.2

ОСОБЕННОСТИ ПОДХОДА К ИЗУЧЕНИЮ И ПРОГРАММИРОВАНИЮ СОВРЕМЕННЫХ МИКРОКОНТРОЛЛЕРОВ

Медвежонков Дмитрий Андреевич студент Матьков Виктор Петрович

студент

Мордовский государственный университет им. Н.П. Огарева, Саранск

аиШг@арпоп-]оигпа!. ги

Аннотация. Рассмотрены возможности усовершенствования учебного процесса при изучении современных микроконтроллеров и разработки приложений для них.

Ключевые слова: микроконтроллер; язык программирования; интегральная схема; центральный процессор; приложения; компиляторы; современные технологии обучения.

FEATURES OF APPROACH TO STUDYING AND PROGRAMMING OF MODERN MICROCONTROLLERS

Medvezhonkov Dmitry Andreevich student Mat'kov Viktor Petrovich

student

Ogarev Mordovian State University, Saransk

Abstract. The possibilities of improving the educational process in studying of modern microcontrollers and application development for them.

Key words: microcontroller; programming language; integrated circuit; CPU; applications; compilers; advanced learning technologies.

1

Постановка проблемы. Традиционная последовательность изучения языков программирования студентами, изучающими электронику и системы управления (обучающихся по направлению «Информатика и вычислительная техника»), такова: на 1-м и 2-м курсах студенты изучают языки программирования высокого уровня, такие как Delphi и С (C ++); на 3-м курсе студенты изучают микропроцессоры (микроконтроллеры) и машинно-ориентированный язык низкого уровня (Ассемблер). При этом не предусматривается изучение процедуры использования языка программирования высокого уровня C для программирования микропроцессоров (микроконтроллеров).

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

Благодаря усложнению современных аппаратных и программных средств компьютерных систем возникает также проблема, которая связана с основным противоречием высших учебных заведений (ВУЗ) -между объемом необходимых знаний и времени на их усвоение. В связи с приведенным необходимо искать новые пути для повышения качества обучения, в том числе за счет внедрения активных методов обучения.

Приведенная последовательность изучения языков программирования имеет существенные недостатки, поскольку сначала было бы целесообразно изучить построение соответствующих микропроцессоров (микроконтроллеров) вместе с машинно-ориентированным языком программирования низкого уровня, а затем изучать языки программирования высокого уровня (Delphi и С (C ++)) на более широком понятийном уровне. Данная последовательность обоснована в работах Э.Э. Александрова, В.В. Афонина, И.Г. Семакина, А.П. Шестакова и многих других

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

2

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

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

Изложение основного материала. Тенденции развития возможностей современных микроконтроллеров можно показать на примере 32-х разрядных микроконтроллеров PIC32MX3XX / 4XX производства фирмы Microchip, США. Благодаря повышению уровня интеграции появилась возможность использования новейшего центрального процессора (ЦП) MIPS32 M4K CPU (с 5-ти ступенчатым 32-х разрядным конвейерным ЦП) в составе современных микро-контроллеров, которые получили повышенные возможности тактовой частоты (до 80 МГц) и операционной скорости обработки информации, увеличение памяти (до 512К флэш-памяти, до 32К статического ОЗУ), расширенные возможности устройств ввода / вывода информации, 16 и 32-х разрядные команды, которые оптимизируются для языков программирования высокого уровня, таких как «С» и тому подобное. Для этого, как указывается в [1] используется длинная арифметика, как основа программирования на языках высокого уровня, например - С.

Можно также показать сложность процесса изучение современных микроконтроллеров с помощью следующего факта - полное описание современного 32-х разрядного микроконтроллера (его размер составляет примерно 1х1 см) имеет более 1100 листов на английском языке [2].

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

сигналов датчиков и т.д. [3], что является важным для студентов, обучаю-

3

щихся по направлению «Информатика и вычислительная техника». Для иллюстрации важности этого направления обработки информации можно привести пример самолета Boeing 777 (который находится в эксплуатации с 1995 г. и использует 1280 бортовых цифровых процессоров, причем указанные процессоры используют более 4 млн. лент кода) [4].

Что касается отношения языков программирования высокого и низкого уровня следует отметить, что язык программирования низкого уровня обеспечивает незначительную (или нулевую) абстракцию от структуры системы команд. Понятие «низкий уровень» относится к малой или несущественной абстракции между языком программирования и машинным языком; благодаря чему язык программирования низкого уровня иногда описывается как «близкий к аппаратным средствам».

Как указывается в [1], в данном аспекте язык программирования С «является языком высокого уровня, но в нем заложены возможности, которые позволяют программисту (пользователю) работать непосредственно с аппаратными средствами компьютера и общаться с ним на достаточно низком уровне». То есть можно говорить о его универсальности, но при этом, о невозможности применения без знаний сред программирования низшего уровня.

Язык программирования низкого уровня иногда делится на 2 категории: первое поколение (машинный код - язык, который непосредственно воспринимает микроконтроллер, но этот язык требует внимания к значительному количеству подробностей его постройки) и второе поколение (Ассемблер). Хотя язык Ассемблер не относится к естественному языку микроконтроллера, но программист, который его использует, должен знать уникальную архитектуру микропроцессора (такие его элементы, как регистры, команды и т.д.). Затем эти простые команды проходят процесс компоновки непосредственно в машинный код. В связи с этим, «достаточно актуальным является сбалансированное включение в лабораторный

практикум математических знаний, программирования и собственно изу-

4

чаемой дисциплины» [5]. Можно рассматривать язык Ассемблер как первый уровень абстракции по отношению к машинному коду.

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

Соотношение языков программирования разного уровня можно показать на примере процесса преобразования программ микроконтроллера в машинный код. Обычные приложения для персональных и универсальных ЭВМ выполняются, как правило, на языке С. Если Ассемблер используется вообще, то его использование ограничивается короткими подпрограммами, которые должны выполняться с высокой операционной скоростью (рис. 1), при этом соотношение программистов, использующих языки С и Ассемблер, составляет 10: 1.

Рис. 1. Последовательность преобразования программ микроконтроллера в машинный код

Как указывается в [5], что «возможные пути упрощения синтеза систем управления связываются с какой-либо особенностью протекания исследуемого технологического процесса. Одна из особенностей - это наличие быстрых и медленных движений в управляемом процессе или объекте». В связи с тем, что приложения для цифровых процессоров цифровой обработки сигналов значительно короче обычных приложений и с учетом важного значения для них высокой операционной скорости количество пользователей языков программирования С и Ассемблер приблизительно равными (рис. 2 б). И только учета доходов, полученных от воплощение программ для процессоров цифровой обработки сигналов, дает преимущество языке программирования Ассемблер - на каждый доллар прибыли, полученной при использовании языка С выпадает 2 доллара доходов, полученных при использовании языка Ассемблер (рис. 2 в).

а б в

Рис. 2. Использование языков программирования О и Ассемблер:

а) обычными программистами;

б) программистами, которые разрабатывают программы для цифровых процессоров обработки сигналов;

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

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

Однако, как указывается в [6], «для лучшего освоения материала считается необходимым рассмотреть решение задачи с полным программным кодом с последующими заданиями, вытекающими либо из условия задачи, либо из ее программной реализации». Таким образом, при проектировании учебного плана считаем невозможным использование только языков высшего уровня. Студентов необходимо обучить методике компиляции программных кодов и их компоновки на уровне Hard Ware. Именно на примере микроконтроллеров собственного производства становится возможным обучить компоновке программных кодов для создания быстро действенной системы управления.

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

7

2. Одновременно с изучением языка Ассемблер необходимо организовать изучение языка программирования высокого уровня C и его использования для программирования современных микроконтроллеров.

Список использованных источников

1. Александров Э.Э. Программирование на языке С в Microsoft Visual Studio 2010 / Э.Э. Александров, В.В. Афонин. Саранск: Изд-во Мор-дов. ун-та, 2010. C. 424.

2. PIC32MX3XX/4XX Family Data Sheet. 64/100- Pin General Purpose and USB 32-Bit Flash Microcontrollers. DS61143E. Microchip Technology Inc., 2008.

3. Патент на изобретение № 2557071. Способ векторного управления скоростью вращения трехфазной машины. Заявка на патент №2013108103. Приоритет изобретения 25 февраля 2013 г. Зарегистрировано в Государственном реестре изобретений Российской Федерации 23 июня 2015 г. Правообладатель: Государственное учреждение высшего профессионального образования «Мордовский государственный университет им. Н.П. Огарёва» (RU). Авторы: За-харжевский О.А., Афонин В.В.

4. «CrossTalk». The Journal of Defense Software Engineering. The Critical Need for Software Engineering Education by Dr. Lyle N. Long, the Pen-sylvania State University. Jan., 2008.

5. Афонин В.В., Федосин С.А. О структурировании лабораторно-практических занятий при изучении дисциплин программирования // Образовательные технологии и общество. 2014. Т. 17. № 4. С. 506.

6. Афонин В.В. Анализ и синтез систем управления для линейных и нелинейных объектов на основе разделения движений: Дис. ... канд. техн. наук. Л., 1984.

i Надоели баннеры? Вы всегда можете отключить рекламу.