автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.13, диссертация на тему:Системы отладки промышленных контроллеров

кандидата технических наук
Ахметов, Ринат Равильевич
город
Москва
год
1996
специальность ВАК РФ
05.13.13
Автореферат по информатике, вычислительной технике и управлению на тему «Системы отладки промышленных контроллеров»

Автореферат диссертации по теме "Системы отладки промышленных контроллеров"

ИНСТИТУТ ЭЛЕКТРОННЫХ УПРАВЛЯЮЩИХ МАШИН

На правах рукописи

р Г 5 ОД 2 2 ДПР 1398

АХМЕГОВ Ринат Равильевич

СИСТЕМЫ ОТЛАДКИ ПРОМЫШЛЕННЫХ КОНТРОЛЛЕРОВ

Специальность * 05.13.13. Вычислительные машины, комплексы, системы и сети

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

Москва 1996

ИНСТИТУТ ЭЛЕКТРОННЫХ УПРАВЛЯЮЩИХ МАМН

На правах рукописи

АХМЕГОВ Ринат Равильевич

СИСТЕМЫ ОТЛАДКИ ПРОМЫШЛЕННЫХ КОНТРОЛЛЕРОВ

Специальность А 05.13.13. Вычислительные машины, комплексы, системы и сети

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

Москва 1996

Работа выполнена в Институте электронных управляющих машин. 11

Научный руководитель - доктор технических наук, профессор, член-корр. Международной академии информатизации Песелев К.В.

Официальные оппоненты: доктор технических наук,

профессор, академик Международной академии информатизации

Гореликов Н.И. кандидат технических наук, Кабанов П.Н.

Ведущее предприятие - ЦНШКА.

Защита состоится 1996 года в часов на

заседании Диссертационного Совета KII5.04.0I. по защите диссертаций на соискание ученой степени кандидата технических наук при ИНСТИТУТЕ ЭЛЕКТРОННЫХ УПРАВЛЯЮЩИХ МАШИН, 117812, Москва ГСП-1, В-334, Вавилова, 24, тел. 135-33-21.

С диссертацией можно ознакомиться в библиотеке Института электронных управляющих машин.

Автореферат разослан "12" 1996 года.

/

Ученый секретарь Диссертационного

Совета ИНЭУМ, к.т.н., доцент | . КрасовскиЯ.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

I

/

Актуальность темы. Современные однокристальные микроконтроллеры, для которых создабтся программное обеспечение относятся к классу сложных систем, характеризующихся многофункциональностью, различными состояниями и наличием целого ряда подсистем со своими задачами и целями.

Опыт создания программного обеспечения промышленных контролеров показывает, что дальнейшее усовершенствование инструментальных средств отладки реализуется в следующих основных направлениях: I) создание многооконных интегрированных сред для отладки программ, настраиваемых пользователем среды на свои конкретные запросы; 2) отладка программ на языках высокого уровня; 3) сетевая отладка нескольких программ в разных микроконтроллерах одной инструментальной системой; и др.

Важнейшей задачей инструментальных средств отладки является возможность создания надёжного и эффективного по размеру кода и времени выполнения программного обеспечения для промышленных контроллеров.

Объектом исследования работы являются промышленные контроллеры на базе 8-разрядного процессора 16051 фирмы INTEL, США и 16-разрядных микроконтроллеров SAB80C166 и SABC167 фирмы SIEMENS, ФРГ.

Предметом изучения являются вопросы создания надёжных и удобных средств отладки программного обеспечения к промышленным контроллерам, ориентированные на массовое внедрение.

Цель работы заключается в построении комплекса методов создания инструментальных средств отладки для как самых распространённых 8-разрядных микропроцессоров, так и для новейших 16-разрядных.

Реализация цели обеспечивает: повышение эффективности создания средств отладки для нового поколения промышленных контроллеров.

В качестве общих методов исследования использованы теория надбхности программного обеспечения, теория создания трансляторов, методы создания инструментальных средств отладки для многопроцессорных систем.

Научная новизна. Новые научные результаты, полученные в работе, заключаются в в решении теоретических и практических вопросов, связанных с исследованием и разработкой как инструментальных средств отладки, так и самого программного обеспечения.

К элементам научной новизны относятся:

- решение вопроса организации пошагового режима отладки микроконтролера в условиях отсутствия его аппаратной поддержки как процессором, так и всем контроллером в целом;

- разработка языка Ассемблера TASM166 на основе описания _ системы команд для микроконтроллеров семейства ^ SAB80C166/83С166 фирмы Siemens;

- создание транслятора Ассемблера и компоновщика объектных модулей с нетрадиционными возможностями оптимизации

программного кода.

Практическая ценность. Создан комплекс методов разработки и реализации инструментальных средств отладки, ориентированный на программистов - разработчиков интегрированных сред отладки программного обеспечения сложных управляющих систем.

Реализация разработанного для создания отладчиков ЕМ9107, TD166 и TD167 комплекса методов осуществляется в рамках операционной системы MS-DOS на IBM PC AT, что делает возможным его широкое использование.

#

Апробация работы. Разработанный комплекс методов был использован при создании инструментальных систем АП0166 и АП0167. С помощью АП0166 создан сетевой контроллер СИКОН - CI.

Публикации. Результаты исследований опубликованы в трёх научных статьях.

Объеи работы. Диссертация, включающая 150 стр., 33 рис., состоит из введения, четырбх глав и списка литературы из 21 наименования.

СОДЕРЖАНИЕ РАБОТЫ

В первой главе на основании краткого обзора литературы анализируется история развития архитектуры ЭВМ, прежде всего, в аспектах анализа источников ошибок программного обеспечения, методов разработки программного обеспечения и особенностей

задач создания эффективных средств отладки. Формируется постановка задачи.

С точки зрения систем реального времени и, прежде всего, промышленных контроллеров, историческое значение для архитектуры современных ЭВМ имело появление индексных регистров, регистров общего назначения, представления данных в форме с плавающей точкой, косвенной адресации, программных прерываний и асинхронного ввода-вывода. Для рационального использования архитектурных возможностей программисту теперь необходимо учитывать специфические конвейерные эффекты.

Наличие ошибок в современных многофункциональных программах можно считать неизбежным. Единственная важная объективная причина ошибок в программном обеспечении - неправильный перевод информации (из одного представления в другое).

Все методы, применяемые при разработке небольших программ можно классифицировать по следувдим грушам: а) "Прожги и ломай"; б) использование заменителей ПЗУ; в) применение ПЗУ -мониторов; г) использование аппаратных эмуляторов. Создание программных эмуляторов, развивающих метод ПЗУ-мониторов в настоящее время практически является единственным средством создания программных продуктов на мировом уровне в условиях массового использования промышленных контроллеров на новой элементной базе, для которой отсутствуют или недоступны фирменные отладочные средства.

Работа программиста в рамках крупного проекта начинается с получения задания. Затем обычно реализуются следующие этапы: алгоритмизация, выбор языка программирования и структур данных, запись на псевдокоде, оптимизация, подготовка отладки, тестов, программирование, тестирование и отладка, счбт и

I 7

подготовка документации.

Отладочную систему можно рассматривать как программно-аппаратный измеритель с запоминаемой программой. Наиболее важные характеристики отладчика-измерителя: уровень помех, точность, совместимость и стоимость.

Принципиальное значение для системы отладки имеет реализация пошагового режима выполнения программы. I) В однокристальных ЭВМ семейства МК51 пошаговый режим выполнения программы может быть реализован с использованием особенностей системы прерывания. 2) Чтобы обеспечить аппаратный пошаговый режим в случае, если микропроцессор не имеет аппаратной поддержки пошагового режима, осуществляется подмена кода команды, хранимой в памяти (ПЗУ или ОЗУ), кодом команды, хранимым в программно-доступном регистре. 3) Реализация пошагового режима в БАВ80С166 в отладчике ТБ166 чисто программная. Пошаговый режим возможен только в ОЗУ. Для того, чтобы сделать шаг, необходимо предсказать адрес следующей выбираемой команды. Туда ставится точка останова - программное прерывание.

На типичных малых машинах о недостатком памяти з качестве средства отладки громадные преимущества имеет моделирование, поскольку оно позволяет эффективно решать проблемы доступа, управления и повторимости/невозможности. Проблема доступа -проблема выборки и, возможно, изменения элементов данных, находящихся в таких устройствах, как ячейки памяти, регистры центрального процессора и т.д. Проблема управления - проблема управления динамическим процессом, работой программы, изменения и прерывания программы в ходе еб выполнения. Повторимость - воспроизведение отдельного состояния машины (в особенности того состояния, которое привело к гибели программы). Невозмож-

ность - проблема внесения неожиданных (невозможных) изменений в данное состояние машины.

Во второй главе приводится обоснование структуры и описание разработанного программного интерпретатора ЕМ9107 для технико - программных систем на базе промышленных контроллеров и "моноблоков с центральными микропроцессорами семейства 18051. Наиболее распространенный восьмиразрядный микропроцессор 18051 выбран для обеспечения достаточно широкой области применения результатов разработки.

В результате изучение документации по системе команд микропроцессора были выбраны алгоритмы раскодаровки команд, моделирования памяти, интерпретации команд. Языком программирования был выбран Си. Структуры данных были выбраны в большинстве случаев в виде стандартных типов языка Си. Отдельно пришлось продумать структуру моделируемой памяти и структуру команды, получаемую в результате работы дешифратора команд.

Программирование началось с наиболее сложной процедуры -дешифратора команды. Сложность и трудоёмкость этого блокэ программ определяется тем, что здесь должны в достаточной степени отражаться основные архитектурные особенности микропроцессоров. Особенность блока программ " интерпретации команд" определяется необходимостью моделирования всех возможных вариантов полученных раскодировок. Затем программируется процедура выдачи дизассемблера команда. Последней в программу была встроена защита от несанкционированного распространения.

Тестирование и отладка - самый сложный этап. Сначала проверяются несколько базисных команд на правильность. Затем тест продолжается уже с использованием только что оттестированных команд. Тестовый прогон операционной системы 0С51

выявил существование ещё некоторого количества ошибок. Самыми сложными в исправлении оказываются ошибки, вызванные опечатками и двусмысленностями в документации.

Интерпретатор контролирует все ячейки памяти на предмет записи в них информации. Каждый байт значения имеет байт атрибута, который показывает состояние этого байта памяти. Это касается и регистров тоже. Если в память не загружена программа, то выдабтся сообщение об ошибке, т.к. нельзя выбирать команда из памяти.

Точек останова две. Одна из них ставится по значению адреса выполняемой команды, вторая по значению аккумулятора.

Программное моделирование позволяет снять часть проблем при разработке связи между микропроцессорами, поскольку одна программа последовательно выполняет отработку одного шага за все микроконтроллеры в единицу модельного времени. Таким образом все микроконтроллеры синхронизированы автоматически.

При появлении нового семейства микропроцессоров обычно документация с системой команд появляется раньше даже чем начинают выпускаться первые серийные годные к продаже микропроцессоры. Кроме того новый процессор всегда отличается завышенной ценой и недоступностью полного набора отладочных средств. В этом случае реальным и наиболее дешбвым способом начать осваивать микропроцессор является именно применение интерпретатора.

Описаны недостатки программы.

В третьей главе приведены материалы по разработке системы отладки ТВ166; анализируется состав и работа еб подсистем: редактора, транслятора, отладчика, меню.

Система ТБ166 выполняет функции создания, редактирования

и трансляции программ, написанных на ассемблерном языке ASM166, загрузки этих программ во внешнюю память микроконтроллера SAB 80С166 и их отладки. Структура системы TD166: меню -оконная оболочка, встроенный редактор, транслятор TASM166 с ассемблера в машинные кода и отладчик программ. Поддерживаются шесть видов пошаговых режимов.

Окна лежат в основе всех действий меню-оконной системы. Выбран режим функционирования меню - оконной системы на основе использования стековых окон. Т.е., если на экране открыты два окна, то закрывать их необходимо в обратном порядке. Рассматриваются алгоритмы работы окна и основные виды окон.

Разрабатывается полный набор функций, включённых в меню, структура данных горизонтального и вертикального меню, алгоритмы вывода строки на экран, входа и выхода из меню, определения момента нажатия пользователем клавиши.

Важно отметить, что все динамические захваты и освобождения памяти в отладчике производятся централизованным образом.

Основная задача редактора - исправлять синтаксические ошибки трансляции. После трансляции с ошибками пользователь автоматически попадает в режим просмотра ошибок трансляции. Выбрав ошибку, пользователь видит на экране строку исходного текста, в которой эта ошибка найдена.

Язык Ассемблера ASM166 разработан автором на основе описания системы команд для микроконтроллеров семейства SAB80C166/83С166 фирмы Siemens. Транслятор ассемблера может вызываться как для трансляции всей программы, так и для трансляции команды или адреса (в режиме отладки).

Трансляция осуществляется в два прохода. На первом проходе определяются адреса меток, на втором формируются машинные

коды. Поскольку первый и второй проходы отличаются только состоянием таблицы символических имён, оба прохода выполняются одной и той же программой.

Для таблиц трансляции приведены структуры таблиц и описаны выполняемые операции. Приведена структура команд и псевдокоманд Ассемблера. Описана инициализация транслятора.

Лексический анализ выполняется функцией term. Описан синтаксический анализ программы, приведены диаграммы синтаксического анализа.

Описан разработанный наиболее экономичный по размеру программного кода стиль программирования на TASM166.

Отладка программ возможна только во внешнем ОЗУ, т.к. в память программ необходимо подставлять коды прерывания пошагового режима. Качественное повышение эффективности режима отладки обеспечено впервые разработанным автором для пошагового режима методом предсказания возможного адреса следующей выполняемой команды. Особая роль отведена в этом алгоритме дизассемблеру. Дизассемблер для SAB 80С166 создавался на основе опыта написания дизассемблер для 18051. Поскольку система команд SAB80C166 гораздо более сложная, чем 18051, последовательная проверка кода команды заменена на табличный выбор готовых характеристик команды.

Драйвер нижнего уровня представляет собой программы записи байта информации во внешнюю память микроконтроллера, считывания байта информации из внешней памяти микроконтроллера и установки состояния микроконтроллера. Их пишут разработчики аппаратной части м:тхроконтроллера, затем они подстыковывают драйверы к отладчику. Драйзер верхнего уровня представляет собой программы: записи непрерывной последовательности байтов

в память, считывания непрерывной последовательности байтов из

I

памяти и установки ссугтояния микроконтроллера. В отличие от драйверов нижнего уровня этот драйвер только один. Некоторые ячейки памяти нельзя показывать пользователю, вместо них драйвер верхнего уровня считывает копии.

Точки останова нужны для того, чтобы остановить выполнение программы и перейти в режим диалога с микроконтроллером с целью отладки программы. Точка останова - это вызов прерывания пошагового режима (обычно прерывание номер 1В, но очень удобно и NMI), подставленный в программу вместо первых двух байт кода команды. А прерывание пошагового режима - это вектор прерывания, который содержит переход на программу организации отладочного диалога микроконтроллера с персональной ЭВМ.

Разработаны алгоритмы работы отладчиков SAB и PC.

Описаны недостатки системы TD166.

Четвертая глава посвящена теоретическим и практическим аспектам разработки отладчика TD167, который является развитием TD166. С целью реализации новых возможностей архитектуры SABC167 приведён анализ тех фрагментов программы, которые подверглись изменению по сравнению с TD166.

Для повышения производительности пользователю предоставлена возможность конструирования рабочего места отладки и работы с несколькими рабочими местами, что позволяет работать одновременно с несколькими процессорами. Этим реализуется отладка многоконтроллерных комплексов. Добавлено окно исходного текста, которое позволяет осуществить пошаговый режим отладки по исходному тексту отлаживаемой программы. Разработан компоновщик, который позволяет собирать программы из отдельных модулей.

В качестве меню - оболочки использована библиотека

I

ТУ1з1оп. Меню воспринимает как команда клавиатуры, так и мыши, можно менять границы окон. Меню занимается только посылкой сообщений - команд существующим в данный момент объектам. Ориентация на написание программ на языках Си и Си++ обеспечивает сочетание в ней использования объектно-ориентированного программирования новых модулей и подстыковки модулей программы ТБ166, написанных на Си.

Для организации непрерывного сканировать била использована виртуальная функция ТРгобгат: :Ше, которая выполняется всякий раз, когда программа ожидает команды пользователя.

Система ТБ167 может по очереди контролировать несколько микроконтроллеров. Каждый из них занимает одно окно, называемое рабочим местом. Рабочее место настраивает параметры драйвера низкого уровня. Настройка может быть произведена в режиме автоматизации: программа проверит все подходящие драйверы и/или порты.

Рабочее место хранит доступную по указателю принадлежащим ему объектам информацию о состоянии микроконтроллера в виде структуры. Драйверы работы с микроконтроллером получают указатель на эту структуру и извлекают из неб всю необходимую им информацию.

Программа пошагового режима со стороны ЗАВ-отладчика вынесена в файл mal.nstep.166. Для обеспечения более гибкой и быстрой отладки в отладчике ТБ167 подкорректированы алгоритмы пошагового режима. Пользователь может поменять некоторые параметры пошагового режима. Драйвер низкого уровня работает гораздо быстрее, так как информация передается по 32 байта.

Описывается механизм последовательных ловушек, позволя-

юций организовать различные пошаговые режимы, в том числе по исходным текстам на языках высокого уровня.

Язык АБМ167 является дальнейшим развитием языка АБМ166. В него добавлены команда условной трансляции, команды определения чисел с плаваицей точкой в трбх различных форматах, команды поддержки трансляции языков высокого уровня, псевдопеременные.

Транслятор ТАБМ167 состоит из однопроходного транслятора и многопроходного компоновщика объектных модулей. Вместе они образуют многопроходный транслятор, способный делать эффективные оптимизации.

В трансляторе реализован быстрый захват памяти небольших размеров. Эта память используется в таблицах символических имён трансляции, при организации списков сегментов, исходников, кодов, меток и т.д. Таблиц трансляции стало четыре (в ТБ166 их две), алгоритмы поиска и заполнения ускорились.

Кодировка информации в файлах с объектным и исполняемым модулями защищена контрольными суммами. Структура одного такого файла делится на разделы, причём первым идёт раздел фиксированной длины, называемый заголовком файла. Прочитав заголовок можно сразу же определить всю основную информацию об остальных разделах (например, ,размеры и смещения разделов в файле).

Оптимизации коснулись обращения к внешней памяти, команд перехода и вызова. Имеется возможность создавать логические сегменты со своими именами. Задача компоновщика состоит в сборке логических сегментов вместе, определении всех физических адресов и создании загрузочного модуля, готового к выполнению микроконтроллером.

Добавлены команды Jmp - переход, call - вызов по условию,

i>

return - возврат из подпрограммы. Для привязки DPP-регистров к каким-либо номерам физических страниц имеется команда assume. Эти команды позволяют оптимизировать программу.

Описаны достоинства и недостатки отладчика TD167.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

1.Ha основании анализа архитектуры процессора 18051 и особенностей программирования в характерных областях применения разработана и программно реализована имитационная модель -симулятор процессора, позволяющая отлаживать программное обеспечение в режимах, не требующих реального времени выполнения программы и без использования аппаратуры самого процессора.

2. Разработана и программно реализована инструментальная интегрированная среда отладки TD166 промышленных контроллеров для микроконтроллеров семейства SAB80C166, включающая в себя встроенный транслятор с языка Ассемблера ASM166. 3.Разработана и программно реализована улучшенная инструментальная многооконная среда отладки TD167 промышленных контроллеров для микроконтроллеров семейств SAB80C166 и SABC-167.

4. Для среды отладки TD167 разработаны и программно реализованы транслятор с языка Ассемблера ASM167 и компоновщик объектных модулей с возможностями подключения языка высокого уровня, работы в любом сегменте памяти и автоматическими оптимизациями на уровне компоновки.

5. Разработанный комплекс методов может быть положен в основу создания инструментальной системы отладки и тестирования для новых микроконтроллеров. Реализованная на основе этих

методов система отладки Т0166 использована в качестве инструмента для создания программного обеспечения сетевого контроллера СИК0Н-С1.

6. Эффективность отладчика проверена на ряде применений (г.Рязань, подстанция Песочная, Владимирская область, подстанция Боголюбове, г.Москва, АЗЛК) и разработана методика создания программно-аппаратных отладчиков, учитывающих особенности области применения современных контроллеров на базе микропроцессоров БАВ80С166, ЭАВ-С167.

1.Ахметов P.P. Бакин А.Д. Кабанов Н.Д. Однокристальные промышленные микроконтроллеры. Мир ПК, JilO, 31-37, 1993

2.Ахметов P.P.

Опримизирующий компоновщик программ для микроконтроллера SAB 80С166. Приборы и системы управления, М, 5-7, 1995

3.Ахметов P.P. Кабанов Н.Д. Сатов В.А.

Сетевой контроллер СИКОН. Приборы и системы управления, Jtö, 10-14, 1995

ПУБЛИКАЦИИ.