Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Программирование микроконтроллеров семейства 1986ВЕ9х компании Миландр

Покупка
Артикул: 747466.01.99
Рассмотрены основы программирования на языке Си отечественных 32-разрядных микроконтроллеров семейства 1986ВЕ9х фирмы Миландр. Основное внимание уделено работе со встроенными в микроконтроллеры периферийными устройствами: портами ввода-вьюода. АЦП. ЦАП. аппаратными таймерами-счетчиками, часами реального времени. Предполагается использование отладочной платы для микроконтроллера K19S6BE92QI. системы программирования Keil цVision и операционной системы реального времени Keil RTX. Приведены задания для практической работы, методика их выполнения, примеры программ и контрольные вопросы для самопроверки. Для студентов высших учебных заведений, обучающихся по направлению 09.03.04 - «Программная инженерия», а также других направлений и специальностей, изучающих основы программирования микроконтроллеров, будет полезно специалистам.
Благодаров, А. В. Программирование микроконтроллеров семейства 1986ВЕ9х компании Миландр : учебное пособие / А. В. Благодаров. - Москва : Горячая линия-Телеком, 2017. - 232 с. - ISBN 978-5-9912-0584-9. - Текст : электронный. - URL: https://znanium.com/catalog/product/1195566 (дата обращения: 24.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Москва
Горячая линия – Телеком

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 это требует определенных усилий.