Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование микропроцессорных систем управления подвижного состава железных дорог. Учебное пособие по дисциплинам «Автоматизированные и микропроц.pdf
X
- •ВВЕДЕНИЕ
- •1. Платформа Arduino UNO
- •1.1 Описание аппаратной части
- •2.1 Основы языка программирования С/С++
- •2.2 Арифметические операторы
- •2.2.1 Оператор присваивания
- •2.2.2 Сложение, вычитание, умножение и деление
- •2.2.3 Вычисление остатка от деления
- •2.3 Логические операторы
- •2.6.1 Условные операторы
- •2.6.1.1 Условный оператор if
- •2.6.1.2 Условный оператор if..else
- •2.6.1.3 Оператор switch…case
- •2.6.2 Операторы реализации циклических вычислений
- •2.6.2.1 Оператор цикла for
- •2.6.2.2 Оператор цикла while
- •2.6.2.3 Оператор цикла do...while
- •2.6.3 Оператор break
- •2.6.4 Оператор continue
- •2.6.5 Оператор return
- •2.6.6 Оператор перехода goto
- •2.7 Операции над битами
- •2.8 Составные операторы
- •2.8.1 Операторы ++ (инкремент) и – – (декремент)
- •2.8.2 Операторы += , –= , *= , /= , %=
- •2.8.3 Оператор &= и |=
- •2.9 Математические функции
- •2.9.2 Вычисление модуля числа
- •2.9.3 Ограничение числа заданным диапазоном
- •2.9.4 Масштабирование переменной
- •2.9.5 Возведение числа в степень
- •2.9.6 Вычисление квадратного корня числа
- •3. Ввод-вывод сигналов
- •3.2 Вывод дискретных сигналов digitalWrite()
- •3.3 Ввод дискретных сигналов digitalRead().
- •3.4 Ввод аналоговых сигналов analogRead()
- •3.5 Вывод аналоговых сигналов analogWrite()
- •4. Практические задания
- •5. Основы алгоритмизации
- •6. Элементы математической логики
- •7.1 Макетная плата
- •7.2 Постоянный резистор
- •7.3 Переменный резистор
- •7.4 Тактовая кнопка DTS-61N
- •7.5 Светодиод видимого спектра свечения
- •7.6 Четыре компаратора LM239N
- •7.7 Шесть логических элементов НЕ SN74HC04N
- •7.8 Приоритетный шифратор 8 в 3 SN74HC148N
- •7.9 Датчик угла поворота EXW1J-C24-AC0024L
- •7.11 Полевой транзистор IRF530NPBF
- •7.12 Дроссель Д25
- •КОНТРОЛЬНЫЕ ВОПРОСЫ
- •ИСПОЛЬЗОВАННЫЕ ИСТОЧНИКИ
- •СОДЕРЖАНИЕ

МИНИСТЕРСТВО ТРАНСПОРТА
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«РОССИЙСКИЙ УНИВЕРСИТЕТ ТРАНСПОРТА (МИИТ)»
Институт транспортной техники и систем управления
Кафедра «Электропоезда и локомотивы»
О.Е. Пудовиков
Программирование микропроцессорных систем управления
подвижного состава железных дорог
Учебное пособие
для студентов специальности
23.05.03 «Подвижной состав железных дорог»
Москва – 2018

УДК 629.4
П88
Пудовиков, О.Е. Программирование микропроцессорных систем
управления подвижного состава железных дорог/ О.Е. Пудовиков
Учебное пособие по дисциплинам «Автоматизированные и микропроцессорные системы управления», «Системы автоматизированного управления движением высокоскоростного транспорта».
– М.: РУТ (МИИТ), 2018. – 146 с.
В учебном пособии приведены сведения о технических особенностях микроконтроллера ATMega328P, использованного в
платформе для разработки и отладки приложений, а также аппаратной части микропроцессорных систем Arduino, приведены сведения о программировании этой платформы с использованием
возможностей оболочки Arduino IDE, снабжённые большим количеством примеров. Также в пособии рассмотрены некоторых схемотехнические решения, применяемые при проектировании цифровых систем, дана информация о назначении и технических характеристиках ряда активных и пассивных компонентов, которые находят применение при создании электронных схем систем управления.
В издании приведён перечень практических заданий,
направленных на формирование и закрепление навыков решения
ряда задач, возникающих при программировании микропроцессорных систем управления техническими объектами, к которым относится и подвижной состав железных дорог и метрополитенов.
Для студентов специальности 23.05.03 «Подвижной состав
железных дорог» специализаций «Электрический транспорт железных дорог и «Высокоскоростной наземный транспорт».
Рецензенты:
– профессор кафедры «Управление и защита информации»
РУТ (МИИТ), д.т.н., Сидоренко Валентина Геннадьевна;
– инженер по эксплуатации и ремонту ОП ООО «Сименс» – депо
«Подмосковное» Назаров Дмитрий Валерьевич.
© РУТ (МИИТ), 2018

ВВЕДЕНИЕ
В настоящее время серийный и опытный подвижной состав
оснащается микропроцессорными системами управления. К достоинствам таких систем относятся простота их исполнения, надёжность, возможность реализации сложных алгоритмов управления
и их корректировки без изменения аппаратной части системы.
Современные микропроцессорные системы управления зачастую реализуются на базе однокристальных микроконтроллеров,
т.е. микропроцессоров с интегрированными в них периферийными
устройствами – аналого-цифровых преобразователями, таймерами, компараторами и т.п. Интегрированные периферийные
устройства позволяют уменьшить загрузку центрального процессора, а также снизить нагрузку на внешнюю шину. К их достоинствам относятся сравнительно высокое быстродействие, значительный набор встроенных периферийных устройств, доступность.
Применение микроконтроллеров для управления техническими системами позволяет:
• добиться высокой степени системной интеграции;
• избавиться от необходимости использования дополнитель-
ных периферийных устройств;
• повысить безопасность и надёжность системы.
В пособии приведены сведения о конструкции и основах про-
граммирования платформы Arduino UNO, оснащённой однокристальным 8-разрядным микроконтроллером ATMega328P [1, 2],
располагающей необходимыми средствами для удобного написания и отладки программ, а также для подключения различных
электронных и электромеханических приборов, составляющих
схему управления.
При разработке программного обеспечения для микро-
контроллеров допускается использование, помимо настоящего пособия, также и ресурсов, размещённых в сети Internet, например,
материалов проекта – первоисточника arduino.cc [4], а также русскоязычных ресурсов
3

1. Платформа Arduino UNO
Описание аппаратной части
На рисунке 1.1 приведен внешний вид платы Arduino UNO.
Выделены следующие элементы:
1. Микросхема – микроконтроллер.
2. Группа каналов ввода аналоговых сигналов.
3. Группа выводов питания схемы.
4. Разъём дополнительного источника питания.
5. Разъём USB порта для программирования.
6. Кнопка RESET.
7. Контроллер USB порта.
8. Группа каналов ввода/вывода дискретных сигналов.
9. Разъём ICSP
В основу планы Arduino UNO положен микроконтроллер AT-
mega328P фирмы Atmel [1, 2]. Данный контроллер построен по AVR
архитектуре, является 8-ми разрядным, использует систему команд, близкую к RISC
делением памяти для программы и данных. Как и все микроконтроллеры, он содержит достаточно большое количество встроенных устройств ввода/вывода для связи с объектом управления,
а также каналов связи с другими микропроцессорными системами
и цифровыми датчиками. К таким устройствам относятся:
1
.
2
и реализует Гарвардскую архитектуру, с раз-
1
In-system programming (ISP), также называемый In-Circuit
Serial Programming (ICSP), -- интерфейс, позволяющий программи-
ровать установленные в готовую систему компоненты: микроконтроллеры, программируемые логические схемы и прочие подобные устройства.
2
RISC (restricted (reduced) instruction set computer )— «компью-
тер с сокращённым набором команд») — архитектура процес-
сора, в котором быстродействие увеличивается за счёт упрощения
инструкций, чтобы их декодирование было более простым, а время
выполнения — меньшим. Система команд микроконтроллера AT-
Mega328P включает 131 инструкцию, большая часть которых выполняется за один такт работы ядра. Таким образом, производительность ядра микроконтроллера, при условии его работы на частоте 20 МГц, может достигать 20 MIPS (Million Instructions Per Sec-
ond)
4

Рисунок 1.1 – Внешний вид платы Arduino UNO
1. Два 8-ми разрядных счётчика/таймера.
2. Один шестнадцатиразрядный счётчик/таймер
3. Часы реального времени (Real Time Counter)
4. 6 каналов формирования сигнала с широтно-импульсной
модуляцией (PWM – Pulse With Modulation)
5

5. 6-ти канальный 10-ти разрядный аналого-цифровой пре-
образователь (ADC – Analog/Digital Converter).
6. Программируемый последовательный синхронный/асин-
3
хронный канал связи (Serial USART)
.
7. Два типа специализированных последовательных канала
связи с интеллектуальными периферийными устрой-
4
2
5
и I
C
ствами, датчиками: SPI
[3].
8. Сторожевой таймер (Watchdog Timer).
9. Встроенный аналоговый компаратор.
Далее, для информации, приведена блок-диаграмма микро-
контроллера ATMega328P [1, 2] (рисунок 1.2).
3
Serial USART (Serial Universal Synchronous Asynchronous Re-
ceiver and Transmission/Transmitter) – универсальный последова-
тельный синхронный/асинхронный приёмопередатчик. В синхронных каналах ввод каждого единичного элемента произво-
дится в строго определенные моменты времени и они предназначены для передачи только изохронных сигналов (сигналов с постоянным тактовым интервалом). Синхронные каналы передачи данных используют при пакетной передаче информации (группой из
нескольких байт). Асинхронные каналы передачи данных не требует синхронизации работы отправителя и получателя данных, т.е.
могут передаваться как изохронный сигналы, так и анизохронные
(с переменным тактовым интервалом). Используют при организации побайтовой передачи данных.
4
SPI (Serial Peripheral Interface, SPI bus) — последовательный
периферийный интерфейс, шина SPI) — последовательный син-
хронный стандарт передачи данных в режиме полного дуплекса,
предназначенный для обеспечения высокоскоростного сопряжения микроконтроллеров и периферии.
5
I2C (Inter-Integrated Circuit) – последовательная шина данных
для соединения низкоскоростных периферийных компонентов с
центральным блоком. В документации ряда производителей, к которым относится и Atmel, для сохранения патентной чистоты применяется иное обозначение, например, TWI (Two-Wire Serial
Interface) – двухпроводный последовательный интерфейс [3].
6

Работа с интегрированной средой
разработки Arduino IDE
Для набора текста программы и его редактирования, компиляции (перевода текста программы с языка высокого уровня в машинный код) и загрузки результата в память микроконтроллера, а
также для исполнения полученной программы используется интегрированная среда разработки Arduino IDE. Последнюю версию
программы можно бесплатно загрузить с сайта разработчика
работающей программы Arduino IDE выглядит так, как приведено
на рисунке 1.3.
Подключение микроконтроллера к персональному компьютеру осуществляется через виртуальный последовательный канал связи – COM порт. Номер порта, по которому установлена связь,
отображается в правом нижнем углу окна работы программы (в
данном случае, это порт COM7).
. Окно
Рисунок 1.2 – Внутренняя структура
микроконтроллера ATMega328P
7

Рисунок 1.3 – Окно программы Arduino IDE
Рекомендуется после загрузки программы и подключения
микроконтроллера к порту USB компьютера уточнить правильность выбора порта для установки соединения компьютера и контроллера, для чего следует проверить настройки в пункте меню Ин-
струменты – Порт. Необходимо выбрать порт, содержащий
наименование подключённой платы микроконтроллера (рисунок
1.4).
Компиляция программы осуществляется после нажатия на
кнопку, расположенную на панели программы и обозначенную так,
как показано на рисунке 1.5.
В случае успешного завершения процедуры (отсутствия
ошибок), нижняя часть окна работы программы приобретёт вид,
пример которого показан на рисунке 1.6.
При наличии ошибок, будет выведено соответствующее
сообщение, в том числе приведена информация об обнаруженных
ошибках и месте их расположения в тексте программы (рисунок
8

1.7). При возникновении данной ситуации, имеющиеся ошибки
следует устранить, после чего повторить процесс компиляции.
Рисунок 1.4 – Проверка и корректировка порта
подключения микроконтроллера
Рисунок 1.5 – Изображение кнопки компиляции
Рисунок 1.6 – Результат успешного завершения компиляции
программы
Рисунок 1.7 – Результат завершения компиляции при нали-
чии ошибок в тексте программы
9

Важно отметить, что на этапе компиляции обнаружива-
ются только синтаксические ошибки. Ошибки в построении алгоритма и его реализации обнаруживаются в процессе отладки
программы.
После успешного завершения компиляции, следует загрузить программу в память микроконтроллера и запустить её. Для
выполнения этой задачи служит кнопка, изображение которой
приведено на рисунке 1.8.
Рисунок 1.8 – Изображение кнопки загрузки программы в
память и её исполнения
Заметим, что при нажатии этой кнопки также осуществляется
компиляция программы, если она не была выполнена ранее.
2. Программирование микроконтроллеров
на платформе Arduino
Основы языка программирования С/С++
Для программирования устройств на базе Arduino используется язык типа C/C++. Программы, разработанные для них, имеют
одну и ту же структуру, и состоят из двух разделов: раздела описаний, осуществляющего конфигурирование программной среды и
аппаратных устройств микроконтроллера под нужды пользователя, и основного, содержащего код программы управления:
int buttonPin = 3;
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop()
{
//…
}
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
