Статья опубликована в рамках: XI Международной научно-практической конференции «Естественные и математические науки в современном мире» (Россия, г. Новосибирск, 14 октября 2013 г.)
Наука: Информационные технологии
Секция: Элементы и устройства вычислительной техники и систем управления
Скачать книгу(-и): Сборник статей конференции
- Условия публикаций
- Все статьи конференции
дипломов
ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ И ВИРТУАЛЬНОЕ ПРОГРАММИРОВАНИЕ PIC-КОНТРОЛЛЕРОВ В АВТОМАТИЧЕСКОМ УПРАВЛЕНИИ ТЕХНОЛОГИЧЕСКИХ ПРОЦЕССОВ
Абузяров Владимир Николаевич
соискатель, старший преподаватель Филиала Московского технологического института «ВТУ» в г. Оренбурге, г. Оренбург
E-mail: vnab@bk.ru
Щудро Игорь Анатольевич
канд. техн. наук, зав. кафедрой информатики и автоматизации, доцент Филиала Московского технологического института «ВТУ» в г. Оренбурге, г. Оренбург
E-mail:
Елисеев Владимир Николаевич
соискатель, старший преподаватель Московского технологического института «ВТУ» Филиал в г. Оренбурге, г. Оренбург
E-mail:
TECHNOLOGY PROGRAMMING AND VIRTUAL PROGRAMMING PIC-CONTROLLER IN THE AUTOMATIC PROCESS
Abuzyarov Vladimir
applicant, a senior lecturer of the Moscow branch of Institute of Technology "WTU" in Orenburg, Orenburg
Schudro Igor
Candidate of Science, Head of Department Informatics and Automation, assistant professor of the Moscow branch of Institute of Technology "WTU" in Orenburg, Orenburg
Eliseev Vladimir
applicant, a senior lecturer of the Moscow branch of Institute of Technology "WTU" in Orenburg, Orenburg
АННОТАЦИЯ
В данной статье авторы рассматривают метод практического применения программирования PIC-контроллеров. Микроконтроллеры являются основой микропроцессорной техники. Большое значение имеет виртуальное программирование, что позволяет сократить время и ресурсы на эксперимент, а также использовать различные электрические схемы в виртуальном режиме.
ABSTRACT
In this article the authors examine the practical application of the method of programming PIC-controllers. Microcontrollers are the basis of microprocessor technology. Of great importance is the virtual programming, which reduces the time and resources to experiment and use a variety of electrical circuits in a virtual mode.
Ключевые слова: виртуальное программирование; микроконтроллер; компиляция.
Keywords: virtual programming, microcontroller; compilation.
Основу автоматических систем управления составляют различные электронные микроконтроллеры. К их числу относятся AVR и PIC. Несмотря на массовое применение, существуют различные трудности при программировании таких микроконтроллеров. AVR и PIC-контроллеры имеют несколько уровней сложности: низкий, средний и высокий. Такое различие требует и различные действия при программировании, что вносит путаницу и отнимает массу времени.
В различных публикациях описывается последовательность действий для конкретного микрочипа, а среда разработки программного обеспечения зачастую недоступна для пользователей. Данную проблему можно решить на примере микросхемы PIC-16F877A, которая относится к среднему уровню сложности [4]. В техническом описании такие изделия программируются на языке ASSEMBLER[2]. Вместе с тем на практике можно применить язык программирования высокого уровня Си. Необходимо иметь в виду, что для успешного решения такой задачи требуется соответствующий программатор. Дорогим, но надежным является PIC‑KITтм2. Программирование можно осуществить в среде MPLABIDE8.46. Используя Интернет-ресурсы применим компилятор PICCCOMPILER. Большую помощь при этом могут оказать известные публикации: Шпак Ю.А. «Программирование на языке С для AVR и PIC микроконтроллеров» (2011), Крупник А.Б. «Изучаем Си» (2001).
Интерес к микроконтроллерам высок благодаря их многофункциональности, компактности, доступности для изучения. Но вместе с тем такие электронные технологии для своего применения требуют и определенных знаний в области и информатики и электроники. Данная статья имеет своей целью не только ознакомить читателя с техническими возможностями микрочипа PIC-16F877A, но и показать возможность его программирования, а также распространить уже имеющийся опыт изготовления робота, в основе которого имеется такой PIC-контроллер. Публикаций на данную тему не достаточно и есть уверенность, что новая информация поможет развить интерес молодежи к изучению и программирования таких микрочипов.
PIC-16F877A — это микроконтроллер, который имеет высокоскоростную RISC архитектуру. Его технические характеристики достаточно высоки, а рыночная цена вполне приемлема, что также определяет повышенный спрос этой микросхемы. Она имеет: 35 инструкций, 20 МГц тактовый сигнал, 14 источников прерываний, 8-уровневый аппаратный стек, 2 В—5,5 В напряжение питания, малое энергопотребление (20мкА), два модуля сравнение/захват/ШИМ (CCP), многоканальное 10-разрядное АЦП, последовательный синхронный порт MSSP, последовательный синхронно- асинхронный приемопередатчик USARTс поддержкой детектирования адреса. Микрочип имеет 40 выводов, несколько входных и выходных портов, техническое описание переведено на русский язык.
Задача программирования PIC-контроллера не тривиальна. Трудность заключается в том, что последовательность его действий должна быть заранее предопределена, базовая платформа создана, электронная схема исправна и работает «в ручном» режиме. Это задача инженера и она мало беспокоит программистов. Но такой подход к делу приносит мало пользы. Нужны такие специалисты, для которых важен весь процесс разработки и применения робототехнических изделий. При такой постановке вопроса междисциплинарные знания приобретают первостепенное значение. Не вдаваясь в физическую сущность работы микроконтроллера, можно предложить уже опробованный на конкретном образце вариант действий для программирования PIC-16F877A.
Рассмотрим процесс компиляции программы. Проект компилируется с помощью подключенного компилятора CCS-PICC непосредственно в среде MPLAB. Выполнение команды меню Project Compile позволит открыть окно состояния компилятора CSS-PICC. Исходный файл cod, который требуется при отладке, можно создать, выполнив несколько манипуляций: в среде MPLAB необходимо выполнить команду меню Project-Build Options. В этом диалоговом окне требуется перейти на вкладку CCSC Compiler. В группе параметров Debug выбрать переключатель Expanded COD Format и нажать «ОК». Конкретный микроконтроллер выбирается на этапе создания проекта. Для перевода MPLAB в режим программной эмуляции выбирается меню Debugger-SelectTool-MPLABSIM. Эти манипуляции позволяют отобразить панель инструментов Debug с кнопками для отладки. Для настройки параметров эмуляции необходимо выполнить команду меню Debugger-Setting. В данном окне открыть вкладку OSC,в которой выбирается частота осциллятора. Останов эмуляции осуществляется с помощью команд расположенных во вкладке Break Options. В меню Debugger имеются команды для отладки программы в случаях прерывания. Для восстановления или удаления точки прерывания необходимо дважды кликнуть мышкой на сером фоне и выполнить команду меню Set Break Point. Для перехода в отладочный режим используют команды меню Debugger. Вызов окон отладчика осуществляется с помощью меню New. Эти окна способствуют просмотру содержимого регистров управления во время выполнения программы. После активации кнопки Add SFR создается элемент для просмотра регистра управления. После всего изложенного уже не трудно понять весь процесс программирования и, как следствие, область применения PIC-16F877A.
Фредерик Жимарши в книге «Сборка и программирование мобильных роботов», анализируя сложившиеся тенденции программистов в написании алгоритмов, предостерегает от традиционного подхода моделирования среды, близкой мобильному роботу [1]. Такой вывод закономерен, так как он подразумевает использование сложной математической системы расчетов и как следствие большого объема памяти. Используемые датчики должны при этом обладать исключительной точностью, что невозможно в связи с возникающими различными погрешностями. Предлагается другой подход, а именно использовать архитектуру приоритетных взаимодействий, что позволит собрать в единую согласованную систему все элементы управления мобильным роботом. Идея заключается в объединении восприятия и движения, что потребует лишь незначительных математических ресурсов. В развитие этой идеи предлагается метод приоритетного взаимодействия для программирования роботов. Такая технология предполагает использование приоритетов: реакции поведения высших порядков временно блокируют низшие до исчезновения условий вызвавших этот приоритет. Таким образом, происходит учет каждого события и соответствующей реакции. Преимущество подхода приоритетного взаимодействия очевидно, так как данный способ программирования разбивается на отдельные задачи, которые работают одновременно в параллельном режиме, что позволит программировать каждую задачу отдельно, а значит, появится возможность добавления новых функций без утраты уже существующих. Трудность может возникнуть при увязке и расстановке приоритетов. В случае одновременной работы нескольких программ необходимо использовать систему работы в режиме реального времени, что предполагает использование основной программы, которая будет выделять одинаковое количество времени для выполнения каждой задачи. При применении подхода приоритетного взаимодействия используют две переменные: одна из них для команды на микромоторчики, а другая оповещает систему о желаемой передаче сигнала на исполнительный элемент. Эта переменная называется флагом. Соответствующая программа имеет вид:
int Default command; // Команда на двигатели
int Default flag// Флаг для системы
void Default () Default command = Shutdown ; // Робот остановлен
Defaul tflag=1;// Команда активирована.
Такой подход программирования вполне применим для PIC-16F877A.
Пример программы PIC-16F877A для системы слежения: start:low0/ Низкий уровень шины 0 low1/Низкий уровень шины 1 pot2,255,b0/ Чтение показаний фотоэлемента 1 pot3,255,b1/ Чтение показаний фотоэлемента 2 if b0 to b1 then start/ Если показания равны, то ничего не делать if b0 b1 then greater/ Если больше, то насколько if b0 b1 then lesser/ Если меньше, то насколько greater:/ Процедура больше b2=b0-b1/ Определение разницы показаний if b2=10t hen cw/ Внутри границ? Если нет, перейти на cw goto start:/ Если внутри границ, измерять снова lesser:/ Процедура меньше b2=b1–b0/Определение разницы показаний if b2≠10 then ccw/ Внутри границ? Если нет, перейти на ccw goto start:/ Если внутри границ, измерять снова cw:/ Поворот блока по часовой стрелке hig 0/Включить мост pause 100/ Вращение 0,1 с goto start/ Новая проверка ccw:/ Поворот блока против часовой стрелки hig 1/Включить мост pause 100/Вращение 0,1 с goto start/ Новая проверка [3].
В данной программе задействованы два датчика — фотодиода. При их разной освещенности происходит поворот всей системы. При одинаковой освещенности поворота не происходит.
Конечно, все изложенное требует наличие конкретных электронных устройств и денежных затрат. Вместе с тем работу отлаженного кода можно проверить виртуально, используя среду Proteus. Запускается Proteus ISIS, в режиме Component необходимо нажать Pic from libraries и в списке PIC добавить наш PIC16F877A, далее выбирается LED-RED, RES и все другие компоненты схемы, которые соответственно добавляются в форму.
Включается кнопка «стрелка» и расставляются все элементы по принципиальной виртуальной электрической схеме. Для редактирования параметров необходимо щелкать левой кнопкой мыши на нужном элементе и в появляющемся окне выставлять технические параметры элемента. Все соединения в схеме выполняются с помощью курсора и левой кнопкой мыши. Код программы (HEX-файл) ищется в соответствующей строке свойств микроконтроллера и производится его запоминание (рисунок 1).
Рисунок 1. Виртуальная электрическая схема
Перед нажатием «PLAY» нажимается кнопка обнуления в схеме. После проведенных манипуляций схема работоспособна. В случае отказа, необходимо проанализировать работу кода программы и правильность соединений в принципиальной схеме, а также расположение компонентов.
Список литературы:
1.Жимарши Ф. Сборка и программирование мобильных роботов в домашних условиях / Ф. Жимарши; пер. с фр. М.А. Комаров. М.: НТ Пресс, 2007. — 288 с. : ил.
2.Корабельников А.А. Самоучитель по программированию PIC-контроллеров для начинающих [Электронный ресурс] — Режим доступа. — URL: http://ikarab.narod.ru/Kea_20.html (дата обращения 02.10.2013 г.).
3.Ловин Дж. Создаем робота — андроида своими руками.: Пер. с анг. Мельникова Г. М.: Издательский дом ДМК-пресс, 2007 — 320 с.: ил.
4.PIC16 MCU Products [Электронный ресурс] — Режим доступа. — URL: http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74 (дата обращения 02.10.2013 г.).
дипломов
Оставить комментарий