142 www.finestreet.ru компоненты микроконтроллеры
Евгений СИМОНОВ
Отладочные модули
для решения задач малой автоматизации
Запланировав разработку системы управления на базе 8-разрядных микроконтроллеров семейства PICmicro, разработчик сталкивается с рядом вопросов по выбору отладочных средств. Модули для отладки программного кода будущей системы должны быть универсальными, функциональными, надежными и оправдывать вложенные в их приобретение денежные средства.
С приходом Flash-технологии в сферу микроконтроллерной техники стало возможным при разработке какого-либо изделия или системы на микроконтроллере отладку программ производить непосредственно в составе собранного макета. Этому послужил ряд положительных особенностей Flash-контроллеров:
• легкость перепрограммирования кристалла новым программным обеспечением;
• 100000 и более циклов стирания-записи Flash-памяти программ;
• невысокая стоимость по сравнению с кристаллами с УФ-стиранием.
Для эмуляции работы микроконтроллеров фирмы Microchip и проверки работоспособности сложной системы в реальном времени применяются достаточно дорогие внутрисхемные эмуляторы. Применение эмуляторы оправдано, если его стоимость «растворяется» в бюджете серьезного проекта, но для задач малой автоматизации обычно достаточно для отладки системы использовать возможности Flash-контроллера и программного симулятора. Что касается программного симулятора, встроенного в интегрированную среду разработки MPLAB®IDE, то переход на Flash-контроллеры позволил разработчику в основном исключить его использование для нужд отладки в сравнении с потребностью в нем при работе с однократно-программируемыми OTP-кристаллами. С другой стороны, поиск неверных логических переходов в программе и пошаговая ее отладка в программном симуляторе по-прежнему остаются полезным методом в борьбе с ошибками.
В настоящее время отладочные средства для микроконтроллеров Microchip выпускаются не одним производителем, поэтому, когда перед разработчиком стоит задача с минимальными затратами оценить работоспособность программного обеспечения непосредственно в собранном изделии или макете, произвести
доработку и отладку аппаратной части системы, очень удобно подыскать подходящий отладочный модуль с Flash-контроллером. При решении задач малой автоматизации штатные отладочные платы фирмы Microchip оказываются для такого рода применений, как правило, функционально избыточными и дорогими. Для ознакомления с возможностями новых изделий фирмы Microchip удобны фирменные демоплаты [1], но когда речь идет о создании своей системы, разработчику нужна свобода для творчества. Другими словами, если и использовать готовые модули стороннего производителя, специально предназначенные для облегчения процесса макетирования и отладки программ, то они должны позволять разработчику самому решать, какие аппаратные ресурсы контроллера и как задействовать в своем проекте.
Три подхода к макетированию
Разработав структурно-функциональную схему будущей системы, определившись с вариантами микроконтроллеров, обладающих набором необходимых периферийных модулей, с подходящим количеством линий ввода-вывода, с достаточным объемом памяти программ и т. д., разработчик может выбирать один из нескольких путей макетирования и отладки.
Первый из них — это разработка своей печатной платы или комплекта плат с учетом особенностей решаемой задачи и, например, заказ их изготовления стороннему производителю. В случае, когда необходимы высокие скорости передачи данных и предъявляются особые требования к топологии печатных проводников, этот путь позволяет производить отладку программного обеспечения и аппаратной части в условиях, максимально приближенных к эксплуатационным. Такой путь дает возможность оценить в реальных условиях тепловые режимы, протестировать схе-
мотехнические решения, выявить недоработки конструктива и прочее.
Второй путь предполагает проводной монтаж изделия на макетной плате, является трудоемким, затратным по времени, сопряжен с поиском или «кустарным» изготовлением подходящей печатной платы, поэтому пригоден только для решения самых простых задач, в которых подобное исполнение допустимо.
Третий путь, как золотая середина между первыми двумя, — это использование для макетирования модульной технологии [2]. Электронные модули по своему функциональному назначению подразделяются на следующие группы:
• отладочные микроконтроллерные модули и программаторы;
• датчики состояния и преобразователи сигналов;
• драйверы исполнительных устройств;
• устройства обмена данными;
• устройства электропитания;
• устройства коммутации.
Процессорное ядро разрабатываемой системы в модульной технологии конструктивно представлено в виде отдельной платы — контроллерного модуля, поэтому основное внимание следует уделить выбору именно этого аппаратного узла.
Какой контроллерный модуль выбрать?
Отладлочные модули для задач малой автоматизации позволяют прорабатывать структуру будущей системы, используя готовую аппаратную платформу стороннего производителя с открыто предоставляемой технической документацией (то есть перечнем элементов и принципиальной схемой на каждый модуль), что значительно сокращает затраты времени на сборку макета. Данный подход позволяет практически сра-
микроконтроллеры
компоненты
143
зу приступить к разработке и отладке программного обеспечения и анализу работы системы на аппаратном уровне. Такие модули базируются на Flash-микроконтроллерах, которые либо уже установлены на печатных платах, либо под их установку предусмотрена соответствующая колодка. Если разработчик уже точно определился, на каком контроллере он собирается вести свою разработку, то вариант отладочного модуля с установленным кристаллом предпочтительнее, а если задачей предусмотрено несколько вариантов контроллеров, то целесообразнее выбирать модуль, в котором контроллеры можно легко заменять, не прибегая при этом к паяльнику. Вариант с колодкой также удобен в тех случаях, когда нежелательно наличие гальванической связи программатора с устройством (как при внутрисхемном программировании), например, по соображениям безопасности.
Уже упоминалось, что при разработке очень важно, когда инженеру, использующему готовые модульные решения, предоставляется возможность самому распределять аппаратные ресурсы выбранного кристалла, поэтому следует обращать внимание на то, чтобы цифровые и аналоговые линии микроконтроллера были доступны на внешних разъемах и сгруппированы функционально по портам. В этом случае каждый порт микроконтроллера может легко быть выведен, например, на винтовые колодки, через которые далее будет осуществляться подключение к управляющему узлу разрабатываемой системы драйверов исполнительных устройств, датчиков состояния, преобразователей связных интерфейсов для связи с другими контроллерами или ПЭВМ. При использовании отладочных модулей в учебных заведениях (например, в составе лабораторных стендов) возможность быстрого пере-конфигурирования и постепенного наращивания системы, легкость замены одного процессорного ядра другим решает множество проблем, особенно в условиях динамично меняющегося учебного плана. На рис. 1 для примера представлен популярный отладочный модуль МС7 в следующем составе:
1. Микроконтроллер Microchip в 44-выводном корпусе QFP (PIC16F877, PIC18F452/458).
2. Кварцевый резонатор (на максимальную рабочую частоту контроллера).
3. Разъем для внутрисхемного программирования.
4. Кнопка аппаратного сброса микроконтроллера.
5. Линии портов микроконтроллера (выведены через токоограничительные резисторы).
6. Разъем для подключения внешнего питающего напряжения и индикатор питания.
7. Монтажные отверстия.
В таком исполнении отладочный модуль функционально не ограничивает ресурсы микроконтроллера и может быть использован как в макете, так и в составе изделия, выпускаемо-
Рис. 1. Отладочный модуль серии МС7
го малыми сериями. Учитывая расширенную периферию, более высокую производительность, увеличенный объем Flash-памяти программ и другие достоинства микроконтроллеров Microchip семейства PIC18F, можно уверенно рекомендовать ориентироваться при разработке именно на них. Для контроллеров в DIP-корпусах с 8, 14, 18, 28 или 40 выводами (рис. 2) фирма «Аверон» также выпускает отладочные модули серий МС11 и МС12 с DIP-колодкой или ZIF-сокетой.
Данные модули схожи по составу с рассмотренным выше модулем МС7, c той лишь раз-
Рис. 2. Отладочные модули серий MC11 и MC12
ницей, что на них отсутствуют токоограничивающие резисторы на линиях портов, а кварцевый резонатор нужной частоты устанавливается пользователем в специально предусмотренное для этого посадочное место. Эти отладочные модули позволяют разработчику производить замену используемых микроконтроллеров (на совместимые по выводам).
Во всех перечисленных отладочных модулях для удобства макетирования к восьми линиям каждого порта микроконтроллера на внешних разъемах добавлены вывод напряжения питания и общий вывод. Разработчик тем самым
-е
Рис. 3. Пример построения макета системы на базе модульной технологии Аверон. В макете системы использован отладочный модуль MC7 на базе PIC18F452. Два порта микроконтроллера подключены к модулю ЕК для обеспечения интерфейса с пользователя. На индикаторе отображается результат измерения температуры окружающей среды. Четыре светодиода имитируют сигналы управления, подаваемые по нажатию кнопок на клавиатуре модуля EK. Программирование и отладка программы микроконтроллера производятся программатором MP3
144
компоненты
микроконтроллеры
может подать питание на отладочный модуль через разъем любого порта микроконтроллера или использовать эти два дополнительных вывода, например, для размножения шины 5-вольтового питания. Для вывода портов микроконтроллера на винтовые колодки в модульной технологии «Аверон» предусмотрены адаптеры плоского 10-жильного кабеля CIDC10. Другими словами, вооружившись подходящим отладочным модулем, разработчик легко соединяет по «отверточной» технологии процессорное ядро системы с набором необходимых исполнительных устройств, и макет изделия (или лабораторный стенд) собирается с минимальными затратами времени, сохраняя при этом возможность такого же простого перекон-фигурирования. Пример использования отладочных модулей в составе макета представлен на рис. 3.
Отдельно следует выделить отладочные модули, конструктивно совмещенные с индикатором и клавиатурой, удобные для построения пользовательского интерфейса. Часть аппаратных ресурсов микроконтроллера в интерфейсных модулях задействованы для обслуживания индикатора и клавиатуры, а оставшиеся доступные разработчику линии могут быть использованы для связи с другим контроллером, например, в распределенных системах управления на базе интерфейсов RS-485, CAN. В настоящее время у PIC-микроконтроллеров аппаратно поддерживается широкий спектр связных интерфейсов (UART и его модификации, SPI, I2C, CAN, LIN, USB), поэтому в терминальных модулях эти интерфейсы по возможности выводятся на внешние разъемы.
На рис. 4 представлен отладочный интерфейсный модуль MC14 — фактически готовый удаленный терминал. В данном модуле предусмотрены:
• панелька для установки PIC-контроллера в корпусе DIP28;
• символьный индикатор (16x2);
• 4 кнопки, звукоизлучатель;
• разъемы подключения 11 внешних сигналов (включая 2 аналоговых входа, UART, SPI);
• разъем для внутрисхемного программирования;
• возможность установки ИМС часов реального времени с литиевой батареей. Модуль MC14 по своим конструктивным
особенностям очень удобно использовать в качестве универсального пульта управления. Вместо привычного ЖКИ с подсветкой может быть установлен светодиодный индикатор типа OLED с повышенным контрастом (рис. 4).
Другим примером готового пульта управления может служить модуль MC15 на базе микроконтроллера PIC18F1320 (рис. 5).
В нем роль клавиатуры выполняет энкодер с кнопкой, для отображения информации установлен жидкокристаллический индикатор (12x2 символов), предусмотрена возможность приема данных по радиоканалу, аппаратно поддерживаемый контроллером интерфейс UART выведен на внешний разъем.
Рис. 4. Отладочный интерфейсный модуль MC14
Рис. 5. Интерфейсный модуль MC15
Интерфейсные модули, как правило, устанавливаются в корпус либо встраиваются в переднюю панель прибора или стенда, поэтому важно, чтобы конструктивно возможность подобной установки была предусмотрена. К примеру, геометрия модуля MC15 разработана под изящный корпус (рис. 5), что позволяет сделать удаленный пульт управления привлекательным и эргономичным.
О программировании отладочных модулей
Программирование микроконтроллеров Microchip производится по последовательному протоколу (ICSP). Следует отметить, что важными критериями при выборе отладочных модулей, помимо функциональности и легкости стыковки их между собой, являются также наличие технической поддержки со стороны производителя и широкий выбор средств, подходящих для их программирования.
Для программирования отладочного модуля с Flash-микроконтроллером можно пользоваться как штатными средствами Microchip, так и изделиями сторонних фирм. В любом случае программатор выбирается с позиций надежности его работы, оптимального соотношения стоимости и функциональности, наличия или отсутствия возможностей автономной работы, а также исходя из перечня поддерживаемых кристаллов с учетом перспективы на будущие разработки. Такие важные характеристики программаторов, как точность формирования напряжения программирования, наличие и корректное выполнение режима самотестирования и проверки правильности подключения программатора к программируемому микроконтроллеру, удобство пользовательского интерфейса, оценить заранее затруднительно.
Перед тем как сделать свой выбор, целесообразно сравнить работу программаторов различных производителей, но следует иметь в виду, что когда этого оказывается недостаточно и требуется дополнительная техническая информация об изделии, то не каждый изготовитель может удовлетворить такие взыскательные требования потребителя или гарантировать, например, систематическое обновление программного обеспечения. Чем больше требований разработчик предъявляет к возможностям приобретаемого им программатора, тем цена последнего выше.
При необходимости внутрисхемной отладки кода следует ориентироваться на программатор-отладчик ICD2 фирмы Microchip или его аналоги. Использование режима внутрисхемной отладки кода позволяет разработчику пошагово выполнять отлаживаемую программу, запускать и приостанавливать ее выполнение, осуществлять сброс микроконтроллера, передавать компьютеру содержимое управляющих регистров или регистров памяти, а также производить изменения содержимого этих регистров непосредственно в микроконтроллере. Программатор-отладчик ICD2 фирмы Microchip (или его аналоги) наряду с COM-портом для связи с компьютером имеет USB-интерфейс, работает под управлением среды MPLAB®IDE версий 6.xx и 7.xx, а также позволяет производить внутрисхемную отладку кода большинства PIC-микроконтроллеров. Для «стыковки» ICD2 с отладочными модулями фирмы «Аверон» необходимо изготовить простой переходник, и этот вопрос легко решается, поскольку в модульной технологии используются стандартные разъемы и открыто предоставляются принципиальные, монтажные схемы и перечни элементов на каждый модуль.
Когда нет необходимости во внутрисхемной отладке кода для всего семейства микроконтроллеров Microchip, то можно ограничиться, например, универсальным программатором MP3 фирмы «Аверон» (рис. 6). Данный программатор (подобно программатору-отладчику ICD1 фирмы Microchip) обладает возможностью внутрисхемного программирования и отладки кода микроконтроллера семейства PIC16F87x под управлением интегрированной среды разработки кода MPLAB версии не вы-
микроконтроллеры
ше 5.7.40, а также может быть универсальным внутрисхемным программатором PIC-контроллеров семейств 10, 12, 16, 18 и dsPIC под управлением программ сторонних производителей [3]. Для связи с компьютером в данном программаторе-отладчике имеется интерфейс RS-232, и через него же производится смена прошивки программного обеспечения самого программатора. Напряжение питания модуля MP3 может быть подано как со стороны отладочного модуля (3-5 В), так и от внешнего источника питания (9-12 В).
Определившись с выбором программатора, разработчику остается решить вопрос с программным обеспечением для разработки программы под процессорное ядро разрабатываемой системы. Текст программы для микроконтроллеров Microchip разработчик может писать на ассемблере или языке Си.
Интегрированная среда разработки и отладки MPLAB®IDE распространяется свободно и включает в себя в том числе текстовый редактор, программный симулятор, язык ассемблера и средства поддержки известных &-ком-пиляторов Microchip, Hi-Tech, IAR и др.
Однако для создания проекта разработчик, в силу своих пристрастий, может пользоваться любым редактором, позволяющим подключать внешний компилятор, например Source Insight 3 [4]. В Source Insight 3 вызов компилятора осуществляется из командной строки, а форматы вывода, необходимые ключи и т. д. указываются в BAT-файле. Пример текста BAT-файла, исполняемого по ко-
манде «Build Project» (запуск компилятора HI-TECH PICC-18 для проекта на PIC18F252): REM удаляем результат предыдущей сборки проекта
@del *.obj @del *.lst @del *.rlf @del *.hex
REM указываем формат вывода сообщений типа ПРЕДУПРЕЖДЕНИЕ и ОШИБКА
@set HTC_WARN_FORMAT=WARNING: file %%f; line %%l; column %%c; %%s
@set HTC_ERR_FORMAT=ERROR: file %%f; line %%l; column %%c; %%s
REM вызываем последовательно Си-компилятор и линкер
@C:\HTSOFT\PIC18\BIN\PICC18.EXE -O -Zg3 -NOERRATA -ASM-LIST -18F252 -C -E name1.c name2.c name3.c name4.c name5.c name6.c name7.c> con
@C:\HTSOFT\PIC18\BIN\PICC18.EXE -INTEL -NOERRATA -Mmap -PSECTMAP -18F252 -output.HEX name1.obj name2.obj name3.obj name4.obj name5.obj name6.obj name7.obj
При успешной компиляции проекта остается запрограммировать контроллер сформированным HEX-файлом — и можно оценить результат проделанной работы!
Несколько слов напоследок
Модульная технология обеспечивает аппаратной платформой процесс разработки и отладки системы и очень удобна для быстрого решения нестандартных задач промышленной автоматизации, а также для оснащения лабораторны-
ми стендами кафедр микроконтроллерной и микропроцессорной техники учебных заведений.
В открытой модульной технологии нет ограничений по использованию тех или иных электронных модулей, а разработчику предоставляется возможность оптимизировать схемотехнические решения, в том числе и на аппаратном уровне, путем внесения собственных изменений в конструкцию используемых модулей для достижения желаемого результата. С учетом пожеланий пользователей модульной технологии линейка образующих ее изделий постоянно расширяется, увеличивая тем самым возможности применения данного подхода к разработке системы микроконтроллерно-го управления при максимально сниженных временных затратах. Наличие технической поддержки со стороны производителя позволяет разработчику значительно облегчить выбор оптимального набора электронных модулей из предлагаемого ассортимента под конкретную задачу. ■
Литература
1. Development Tools Guide. http://www.microchip.com
2. Симонов Е., Герасимов Д., Цыганов С. Модульные технологии в обучении, разработке, на производстве // Компоненты и технологии. 2005. № 4.
3. http://www.ccsinfo.com/picc.html
4. http://www.sourceinsight.com