Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование микропроцессорных систем управления подвижного состава железных дорог. Учебное пособие по дисциплинам «Автоматизированные и микропроц.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
МИНИСТЕРСТВО ТРАНСПОРТА
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«РОССИЙСКИЙ УНИВЕРСИТЕТ ТРАНСПОРТА (МИИТ)»
Институт транспортной техники и систем управления
Кафедра «Электропоезда и локомотивы»
Программирование микропроцессорных систем управления
подвижного состава железных дорог
Учебное пособие
для студентов специальности
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]