Программирование микроконтроллеров семейства 1986ВЕ9х компании Миландр
Покупка
Тематика:
Программирование на C и C++
Издательство:
Горячая линия-Телеком
Автор:
Благодаров Андрей Витальевич
Год издания: 2017
Кол-во страниц: 232
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-9912-0584-9
Артикул: 747466.01.99
Рассмотрены основы программирования на языке Си отечественных 32-разрядных микроконтроллеров семейства 1986ВЕ9х фирмы Миландр. Основное внимание уделено работе со встроенными в микроконтроллеры периферийными устройствами: портами ввода-вьюода. АЦП. ЦАП. аппаратными таймерами-счетчиками, часами реального времени. Предполагается использование отладочной платы для микроконтроллера K19S6BE92QI. системы программирования Keil цVision и операционной системы реального времени Keil RTX. Приведены задания для практической работы, методика их выполнения, примеры программ и контрольные вопросы для самопроверки.
Для студентов высших учебных заведений, обучающихся по направлению 09.03.04 - «Программная инженерия», а также других направлений и специальностей, изучающих основы программирования микроконтроллеров, будет полезно специалистам.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Москва Горячая линия – Телеком 2020 Рекомендовано Научно-методическим советом Федерального государственного бюджетного образовательного учреждения высшего образования «Рязанский государственный радиотехнический университет» в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлениям подготовки 09.03.04 – «Программная инженерия» и 09.05.01 – «Применение и эксплуатация автоматизированных систем специального назначения»
УДК 004.383 ББК 32.973 Б68 Р е ц е н з е н т ы: доктор техн. наук, профессор кафедры Вычислительной и прикладной математики Рязанского государственного радиотехнического университета А. Н. Шестёркин, доктор техн. наук, профессор, заведующий кафедрой Гуманитарных и естественнонаучных дисциплин Российской академии народного хозяйства и государстенной службы при Президенте РФ (Липецкий филиал) В. Н. Малыш Благодаров А. В. Б68 Программирование микроконтроллеров семейства 1986ВЕ9х компании Миландр. – Горячая линия – Телеком, 2020. – 232 с.: ил. ISBN 978-5-9912-0584-9. Рассмотрены основы программирования на языке Си отечественных 32-разрядных микроконтроллеров семейства 1986ВЕ9х фирмы Миландр. Основное внимание уделено работе со встроенными в микроконтроллеры периферийными устройствами: портами ввода-вывода, АЦП, ЦАП, аппаратными таймерами-счетчиками, часами реального времени. Предполагается использование отладочной платы для микроконтроллера К1986ВЕ92QI, системы программирования Keil µVision и операционной системы реального времени Keil RTX. Приведены задания для практической работы, методика их выполнения, примеры программ и контрольные вопросы для самопроверки. Для студентов высших учебных заведений, обучающихся по направлению 09.03.04 – «Программная инженерия», а также других направлений и специальностей, изучающих основы программирования микроконтроллеров, будет полезно специалистам. ББК 32.973 Адрес издательства в Интернет WWW.TECHBOOK.RU Благодаров Андрей Витальевич Программирование микроконтроллеров семейства 1986ВЕ9х компании Миландр Компьютерная верстка И. А. Благодаровой Обложка художника А. Н. Клейн Подписано в печать 26.03.2016. Формат 60×88/16. Уч. изд. л. 10,75. Тираж 500 экз. (4-й завод – 30 экз.). Печать цифровая. Изд. №160584. ООО «Научно-техническое издательство «Горячая линия – Телеком» ISBN 978-5-9912-0584-9 © А. В. Благодаров, 2016, 2020 © Издательство «Горячая линия – Телеком», 2020
Список сокращений на русском языке АЦП аналого-цифровой преобразователь; ЖКИ жидкокристаллический индикатор; КПД коэффициент полезного действия; МК микроконтроллер; ОЗУ оперативное запоминающее устройство; ОС операционная система; ОСРВ операционная система реального времени; ПО программное обеспечение; ПК персональный компьютер; ПДП прямой доступ к памяти; ТЭН тепло-электронагреватель; УНЧ усилитель низкой частоты; ЦАП цифро-аналоговый преобразователь; ЦПУ центральное процессорное устройство; ШИМ широтно-импульсная модуляция. Список сокращений на английском языке AC Alternating Current (переменный ток); ADC Analog to Digital Converter (АЦП); CAN Controller Area Network (интерфейс для передачи данных); CPU Central Processor Unit (ЦПУ); DAC Digital to Analog Converter (ЦАП); DC Direct Current (постоянный ток); DMA Direct Memory Access (ПДП); GPIO General-Purpose Input/Output (ввод-вывод общего назначения); HSE High Speed External (внешний высокочастотный генератор); HIS High Speed Internal (внутренний высокочастотный генератор); I2C Inter-Integrated Circuit (интерфейс для передачи данных); JTAG Joint Test Action Group (интерфейс для программирования и отладки МК); LCD Liquid Crystal Display (ЖКИ); LED Light Emission Diode (светодиод); LSE Low Speed External (внешний низкочастотный генератор); LSI Low Speed Internal (внутренний низкочастотный генератор); MCU Microcontroller Unit (МК);
NVIC Nested Vector Interrupt Controller (контроллер вложенных векторных прерываний); PLL Phase-Locked Loop (блок умножения системной тактовой частоты); PWM Power Width Modulation (ШИМ); RAM Random Access Memory (ОЗУ); RTC Real Time Clock (часы реального времени); RTX ОСРВ фирмы Keil; SPI Serial Peripheral Interface (интерфейс для передачи данных); SSP см. SPI; SVC Supervisor Call (функция программного прерывания); SWD Serial Wire Debug (интерфейс для программирования и отладки МК); SW см. SWD; UART Universal Asynchronous Receiver-Transmitter (универсальный асинхронный приемо-передатчик); USART Universal Synchronous/Asynchronous Receiver Transmitter (универсальный синхронно-асинхронный приемо-передатчик); USB Universal Serial Bus (универсальная последовательна шина).
Введение Учебное пособие представляет собой практикум по программированию отечественных микроконтроллеров (МК) семейства 1986ВЕ9х. Предлагается семь тем, охватывающих следующие основные аспекты в работе с МК: • знакомство с отладочной платой для МК 1986ВЕ92 и системой программирования Keil μVision; • использование линий ввода-вывода общего назначения; • работа с аналого-цифровым преобразователем; • работа с цифро-аналоговым преобразователем; • использование аппаратных таймеров-счетчиков в режиме широтно-импульсной модуляции; • использование аппаратных таймеров-счетчиков в режиме захвата; • использование часов реального времени и батарейного домена. Широко используется механизм прямого доступа к памяти применительно к различным периферийным устройствам. Вопросы, связанные с программированием различных интерфейсов, не рассматриваются: предполагается издание отдельного учебного пособия на эту тему. К каждой работе подготовлены примеры проектов на языке Си, исходный код которых подробно прокомментирован. Из-за значительного объема разместить полные исходные коды проектов в книге не представляется возможным. Читатель может бесплатно скачать их в Интернете, воспользовавшись ссылками [10] или [19]. Автор придерживается следующих основных принципов при программировании МК, что нашло отражение в данной книге: • используется язык Си. Язык Си является практически безальтернативным вариантом при программировании современных МК. Обоснование вряд ли требуется; • НЕ используются возможности языка С++. Это обусловлено тем, что в программах на языке С++, построенных с применением объектно-ориентированного подхода, необходимо задействовать динамическое распределения памяти, что неизбежного приводит к снижению надежности программного обеспечения (ПО). В предлагаемых примерах автор позволил себе лишь использовать комментарии в стиле С++;
• НЕ используется ассемблер. Это обусловлено тем, что при программировании мощных современных МК применение ассемблера стало неактуальным. Поэтому тратить время и силы читателя на изучение заведомо устаревших подходов нерационально; • используется система программирования Keil μVision MDKLite v.4.72 (можно использовать более свежую версию). Данная система программирования выбрана, исходя из ее популярности, развитости функционала, а также возможности бесплатно использовать ее в пробном режиме; • используется стандартная периферийная библиотека. В учебных примерах работа с периферийными устройствами практически полностью осуществляется через стандартную периферийную библиотеку от фирмы Миландр. Прямое обращение к регистрам устройств почти не используется. Это упрощает и ускоряет процесс знакомства с МК; • используется операционная система реального времени (ОСРВ) Keil RTX. RTX представляет собой ОСРВ с вытесняющей многозадачностью и развитыми средствами синхронизации задач. Применение такой ОСРВ позволяет наиболее полно и рационально задействовать возможности МК с архитектурой ARM32. По мнению автора, такой подход позволяет быстро освоить основы программирования МК, научившись создавать надежный и красивый программный код. Предполагается, что читатель хотя бы немного знаком с программированием на языке Си, причем необязательно применительно к микроконтроллерам. Для работы требуется следующее основное оборудование: • отладочный комплект MDR32F92QI на базе микроконтроллера К1986ВЕ92QI, выпускаемый фирмой Миландр; • программатор-отладчик MT-Link, выпускаемый фирмой MTSystems (г. Санкт-Петербург). Подойдут и другие программаторы для ARM32-совместимых МК, например: J-Link, ST-Link, Keil ULink2. Естественно, перед приобретением программатора нужно уточнить у производителя, совместим ли он с МК семейства 1986ВЕ9х; • цифровой осциллограф-приставка USB-Oscill, выпускаемый в г. Одесса [15]. Можно использовать и другие цифровые или аналоговые осциллографы с полосой пропускания не менее 2 МГц. Осваивать программирование микроконтроллеров без осциллографа затруднительно.
В некоторых темах предусматривается использование простейшего вспомогательного оборудования, которое вполне можно подготовить своими руками: • модуль из четырех разноцветных светодиодов с проводами для подключения к отладочной плате (описание в теме №2); • потенциометр от 10 до 47 кОм с проводами для подключения к отладочной плате (описание в теме №3); • лампа накаливания с транзисторным ключом и проводами для подключения к отладочной плате (описание в теме №5); • соединительный провод с наконечниками для подключения к отладочной плате. О программном обеспечении, которое потребуется при работе с книгой, говорится в разделе «Установка программного обеспечения». Здесь лишь отметим, что всё используемое ПО, за исключением операционной системы MS Windows, доступно бесплатно.
Благодарности Автор выражает фирме ЗАО «ПКК Миландр» и лично её сотруднику Кузнецову Михаилу Викторовичу благодарность за содействие в организации учебного процесса по изучению программирования микроконтроллеров в Рязанском государственном радиотехническом университете и за ценные советы при подготовке книги. Фирма «Миландр» бесплатно предоставила нашему вузу необходимое количество отладочных комплектов. Особую признательность выражаю своей жене, Благодаровой Ирине Александровне, за верстку этой книги, а главное, за терпение и понимание. Благодарю своего руководителя и учителя, профессора Пылькина Александра Николаевича, без помощи которого написание книги было бы невозможным. Также выражаю благодарность Рашковецкому Роману Михайловичу, разработчику цифрового осциллографа-приставки USB-Oscill, за ценные советы при подготовке материала книги, связанного с использованием осциллографа.
Установка программного обеспечения Для работы с книгой потребуется следующее программное обеспечение, которое нужно установить на вашем компьютере: • операционная система (ОС) MS Windows 7 или XP; • примеры проектов; • система программирования Keil μVision MDK-Lite версии 4.72 или выше; • драйвер программатора-отладчика MT-Link; • программа Windows OSCILL oscilloscope для осциллографаприставки USB-Oscill; • драйвер для осциллографа-приставки USB-Oscill. Операционная система. По мнению автора лучше всего подойдет ОС MS Windows 7. При использовании MS Windows XP также не должно возникнуть проблем. Под MS Windows 8 и 10 проверка работоспособности ПО не производилась. Скорее всего, возникнут трудности с установкой драйвера для осциллографа-приставки USB-Oscill. Использование ОС Linux, к сожалению, невозможно. Примеры проектов. Скачайте из Интернета архив 1986be9x_labs.zip с примерами проектов, которые мы будем использовать [10] или [19]. Этот архив также содержит стандартную периферийную библиотеку для МК семейства 1986ВЕ9х. Создайте на локальном диске Вашего компьютера новую папку, например, C:\ПМ, и распакуйте в неё содержимое этого архива. Система программирования Keil μVision MDK-Lite (пробная бесплатная версия). Все примеры проектов, прилагаемые к книге, создавались для системы программирования Keil μVision MDK-Lite v.4.72. Если у читателя уже есть этот программный продукт, то, естественно, можно работать с ним. На момент сдачи книги в печать поставка Keil μVision MDK-Lite v.4.72 была прекращена, а вместо нее с официального сайта фирмы Keil можно бесплатно скачать более новый продукт Keil μVision MDK-Lite v.5.17 [7]. Все примеры программ, приводимые в книге, совместимы с этой новой версией. Перед скачиванием программы нужно будет пройти несложную процедуру регистрации. Установка программы очень проста и не вызывает затруднений. Достаточно запустить скачанный файл mdk517.exe и следовать предла
гаемым шагам установки. Вам будет предложено установить программный продукт в папку C:\Keil или C:\Keil_v5. С этим лучше согласиться. Также потребуется бесплатно скачать дополнительный программный продукт MDK v4 Legacy Support. Это специальный пакет, обеспечивающий совместимость с проектами, выполненными под Keil μVision MDK-Lite v.4.х. Зайдите на страницу сайта [16] и, пользуясь ссылкой Download Legacy Support for Cortex-M Devices, скачайте и запустите файл MDKCM517.EXE. Процесс установки также не вызывает сложностей. Теперь нужно обеспечить совместимость среды Keil μVision с микроконтроллерами семейства 1986ВЕ9х. Для этого скачайте с официального сайта фирмы Миландр [13] архив komplekt_1986BE91_flm.rar и распакуйте его в какой-нибудь папке. В архиве вы обнаружите файл 1986BE.FLM, который нужно перенести в папку C:\Keil\ARM\Flash . Драйвер программатора-отладчика MT-Link. Для нормальной работы с программатором-отладчиком MT-Link [14] потребуется скачать и установить соответствующий драйвер. Ссылка для скачивания драйвера указана в комплекте поставки программатора-отладчика. Установка драйвера не вызывает затруднений. Если читатель будет использовать программатор-отладчик другого типа, то также потребуется найти и установить для него соответствующий драйвер. Программа Windows OSCILL oscilloscope для осциллографа-приставки USB-Oscill. Эта программа потребуется при изучении тем 4, 5 и 6 для работы с осциллографом-приставкой USB-Oscill. Её можно бесплатно скачать с сайта производителя осциллографа [17]. Там же изложен порядок установки этой программы. Будем считать, что вы установили программу в папку C:\ПМ\Soft\WinOscill. Драйвер для осциллографа-приставки USB-Oscill. Для нормальной работы с осциллографом-приставкой USB-Oscill понадобится драйвер, который можно бесплатно скачать с сайта производителя осциллографа [18]. На этой странице рассказывается о порядке установки драйвера. Для ОС MS Windows 7 это требует определенных усилий.