Содержание к диссертации
Введение
ГЛАВА 1 Современные средства разработки и отладки программного обеспечения микроконтроллеров 7
Введение 7
1.1 Основные этапы проектирования ПО МК 7
1.2 Средства отладки ПО МК 10
1.2.1 Аппаратные средства отладки 10
1.2.2 Программные средства отладки 13
1.3 Интегрированные среды проектирования 14
1.4 Структура современных МК и связь с внешними устройствами 21
1.4.1 Структура микроконтроллера 21
1.4.2 Внешние устройства 26
1.5 Заключение 31
ГЛАВА 2 Верификация программ микроконтроллерных устройств 33
Введение 33
2.1 Общие проблемы верификации 33
2.2 Особенности ПО МК 39
2.3 Особенности верификации программ микроконтроллерных у строй ств 41
2.4 Заключение 50
ГЛАВА 3 Математическое описание модели взаимодействия по мк с внешними устройствами 51
Введение 51
3.1 Рїмитация взаимодействия ПО МК с внешними устройствами 51
3.1.1 Построение концептуальной модели взаимодействия внешних устройств с ПО МК 52
3.2 Математические модели 54
3.2.1 Формальная модель объекта имитации 54
3.2.2 Типовые математические схемы 57
3.2.3 Предварительная формализация объекта имитации 70
3.2.4 Разработка модели взаимодействия внешних устройств с ПОМК 71
3.2.5 Математическое описание подсхем 79
3.3 Заключение 84
ГЛАВА 4 Программное обеспечение комплекса 86
Введение 86
4.1 Программный имитатор внешних устройств 86
4.1.1 Алгоритм работы ПО комплекса программно-математических средств 88
4.2 Программная реализация компонентов комплекса 93
4.3 Заключение 113
Список литературы
- Средства отладки ПО МК
- Особенности верификации программ микроконтроллерных у строй ств
- Построение концептуальной модели взаимодействия внешних устройств с ПО МК
- Алгоритм работы ПО комплекса программно-математических средств
Введение к работе
Необходимость создания математического и программного обеспечения средств верификации программ микроконтроллерных устройств связана с существующими проблемами в этой области. Одной из основных особенностей разработки драйверов программного обеспечения (ПО) микроконтроллеров (МК), является то, что инженер реализует взаимодействие ПО на прямую с аппаратной частью МК. Данное обстоятельство приводит к необходимости решения вопросов, не только связанных с функциональной верификацией, но и с верификацией временных характеристик обработки событий.
На сегодняшний день получили большое распространение интегрированные среды проектирования (ИСП), обеспечивающие разработку и отладку программного обеспечения для микроконтроллеров, однако, как правило, ИСП имеют средства отладки, ориентированные на проведение функциональной верификации в ручном режиме. При этом отсутствуют средства верификации других характеристик ПО, в частности характеристик связанных с обработкой событий во времени. В ИСП отсутствуют как методики, так и средства разработки спецификаций ПО. Существующие средства имитации взаимодействия ПО МК с внешними устройствами поддерживают имитацию взаимодействия только со стандартными интерфейсами. Перечисленные недостатки приводят к тому, что локализация ошибок остаётся сложным и трудоёмким процессом, в особенности в части драйверов ПО МК.
В настоящее время работы в области совершенствования интегрированных сред проектирования ведутся рядом организаций, таких как: НПК "Технологический центр" МИЭТ, Учебно-методический центр "Моторола - Микропроцессорные Системы" Московского государственного инженерно-физического института (МИФИ), Фирма
"Фитон" и др. Однако вопросы создания специальных средств верификации драйверов ПО МК, затрагиваются в этих работах в недостаточной мере.
Теоретические вопросы обеспечения качества программных средств и верификации программ рассмотрены в работах Липаева В.В., Захарова В.А., Царькова Д.В., Евстигнеева В.А., Круглова М.Г., Лемана М.М. и др.
В рамках проведённого исследования был рассмотрен ряд диссертационных работ: Непомнящий О.В. «Программно аппаратный комплекс проектирования цифровых систем обработки данных, базирующихся на схемах высокой и сверх высокой степени интеграции», Гончаровский О.В. «Разработка и исследование моделей и методов синтеза тестов для однокристальных микропроцессоров», Иванов А.Г. «Программная имитация многопроцессорных схем, входящих в состав цифровых устройств», в которых затрагиваются проблемы разработки и отладки цифровых систем. Однако, полученные авторами результаты имеют узконаправленную область применения и не могут быть напрямую использованы для совершенствования средств верификации программ и компонентов драйверов микроконтроллерных устройств.
Таким образом, актуальность темы определяется необходимостью совершенствования средств и методов разработки драйверов ПО микроконтроллерных устройств на основе ИСП, в части средств верификации временных характеристик.
Целью работы является разработка математического обеспечения и программных средств верификации программного обеспечения микроконтроллерных устройств, в части взаимодействия ПО драйверов микроконтроллеров с внешними устройствами по не стандартным интерфейсам.
В диссертации разработан комплекс программно-математических средств для решения задач верификации временных характеристик драйверов ПО МК, включающий в себя методику построения
спецификаций ПО драйверов МК и методику построения моделей взаимодействия ПО МК с внешними устройствами.
Разработано математическое описание требований к временным характеристикам обработки событий в компонентах драйверов программного обеспечения микроконтроллеров.
Разработана математическая модель взаимодействия ПО МК с внешними устройствами в целях создания входных воздействий для верификации ПО драйверов МК.
На основе результатов диссертационного исследования разработаны программные средства, зарегистрированные в Федеральной службе по интеллектуальной собственности (свидетельство № 2004612425 от 15.10.2004).
Результаты проведённых исследований и разработок внедрены в производственный процесс ООО «ВИСАТ-ТЕЛ» и ООО «АРКОМТЕЛ».
Разработанные средства могут быть использованы совместно с различными интегрированными средами проектирования при разработке и отладке ПО микроконтроллерных устройств, и в учебном процессе.
Основные материалы диссертации опубликованы в шести печатных работах.
Диссертационная работа состоит из введения, четырёх глав, заключения, приложения и библиографического списка. Основной текст диссертации изложен на 115 страницах, содержит 64 рисунка, 10 таблиц и библиографический список из 119 наименований.
Средства отладки ПО МК
Программные средства отладки на сегодняшний день являются наиболее распространёнными по сравнению с аппаратными, т. к. имеют значительно меньшую стоимость [3, 10, 11, 12, 71]. Симуляторы
Симулятор - программное средство, способное имитировать работу устройства. Симулятор является ключевым инструментом для отладки и оптимизации программы. Основными показателями характеризующими симуляторы являются: - точность; - скорость; - сложность; - поддержка отладки и оптимизации; - наличие дополнительных функций. Точность, с точки зрения процесса эмуляции представляют интерес два рода точности: - функциональная точность; - точность синхронизации.
Функциональная точность отображает адекватность, с которой симулятор эмулирует устройство. Функциональная точность оценивается вероятностью, с которой некоторая последовательность действий, выполняющих определённые функции, будет давать те же результаты на симуляторе, что и на самом устройстве.
Точность синхронизации характеризует ту достоверность, с какой симулятор эмулирует временные соотношения между операциями внутри устройства.
Для адекватной эмуляции симуляторы должны обладать скоростью работы соизмеримой со скоростью эмулируемого устройства.
Этот показатель характеризует возможность симулятора эмулировать работу не только самого устройства, но и его периферийных устройств.
Разработчик взаимодействует с симулятором через программу, называемую отладчиком. Возможности отладки и оптимизации определяются отладчиками.
Наличие дополнительных функций у симуляторов обуславливается классом и архитектурой используемого устройства.
Отладчики
Отладчик - программа, предоставляющая разработчику необходимый интерфейс и обеспечивающая функциональные возможности симулятора и внутрисхемного эмулятора, при наличии необходимых аппаратных средств.
На сегодняшний день основным инструментом разработки программного обеспечения для микроконтроллеров является интегрированная среда проектирования, позволяющие проектировать и отлаживать ПО на ранних стадиях проектирования [15, 117].
В разных средах проектирования разработка программного обеспечения может осуществляться разными способами. К наиболее распространенным и универсальным способам описания алгоритма функционирования МК, относят графический и текстовый [3, 15, 20, 36, 66]. Наиболее распространенным способом является текстовое описание на языке программирования. Но в некоторых ИСП, таких как Algorithm Builder, реализован графический способ описания алгоритма функционирования МК (рис. 1.3). Графическое представление проекта создаётся в базисе допустимых для среды проектирования библиотечных элементов. Главное достоинство графического способа - это наглядность. зрения его структуры. Достоинства текстового способа описания проекта заключается в его компактности и относительной простоте автоматизации любых преобразований, включая начальную генерацию описания проекта.
Современные языки описания аппаратуры допускают описание проектируемого устройства, как с точки зрения его поведения, так и с точки зрения его структуры. Достоинства текстового способа описания проекта заключается в его компактности и относительной простоте автоматизации любых преобразований, включая начальную генерацию описания проекта [6, 43, 85].
Процесс разработки в интегрированной среде проектирования можно разделить на следующие этапы[2, 3, 62, 67, 110]:
- Составление функциональной блок-схемы устройства. Первая задача переход от технического задания к формализованному описанию проектируемого устройства. Техническое задание, как правило, является смесью словесного и технического описания, его формализация приводит к выявлению основных блоков устройства (или алгоритмов) и определению их связей и/или взаимодействия.
- Разработка общей структуры операционного блока. Выбор допустимых для данного уровня иерархии элементов, определение связей между ними и, если параметры элементов являются настраиваемыми, то и их настройка.
- Описание алгоритма работы устройства. На этом этапе выбирается метод решения задачи и разрабатывается алгоритм его реализации.
- Формируется структура программы в виде функциональных модулей, определяется их интерфейс.
- Осуществляется выбор языка программирования, в соответствии с: аппаратной частью(видом программируемого устройства), сложностью задачи, возможностями средств разработки.
- Компиляция проекта. После составления проекта и всех его частей производится компиляция проекта. На этом этапе выявляются все ошибки, которые были сделаны в процессе описания. Результатом компиляции является загрузочный файл.
Особенности верификации программ микроконтроллерных у строй ств
Процесс отладки с использованием математической модели можно описать следующими этапами: планирование эксперимента, проведение эксперимента, анализ экспериментальных данных. Данные этапы осуществляются с использованием программы отладчика, как правило отладчик входит в состав ИСП. Основу отладчика составляет модель МК с которой можно проводить определённые эксперименты. На рис.2.3. изображен вид окна отладчика ИСП AVR Studio. Как правило, программа отладчик имеет возможность имитации исполнения программы в пошаговом режиме, при этом пользователь имеет возможность наблюдать в окне программы состояние контроллера (состояние внутренних регистров, памяти, портов ввода/вывода) на каждом шаге программы. Важной частью планирования эксперимента является создание входных воздействий, которые имитируют работу внешних устройств. В большинстве случаев входные воздействия создаются в текстовом редакторе в ручном Трудоёмкость создания входных воздействий
Трудоёмкость создания входных воздействий определяется временем их создания. Для программ МК, алгоритмы которых представлены в приложении, созданы входные воздействия. Время создания входных воздействий приведены в таб. 2.2.
Проверка правильности созданных входных воздействий требует проведения эксперимента с моделью МК в ручном режиме во всём диапазоне времени эксперимента. Создание входных воздействий производится по частям, т.к. ошибка на раннем этапе может привести к необходимости исправления всего массива входных воздействий.
Таким образом, очевидно, что создание входных воздействий в ручном режиме целесообразно при малых временах имитации.
При реальной эксплуатации электронного устройства входными данными для него будет являться информация, поступающая с внешних устройств. Одной из задач в жизненном цикле программной системы является проведение верификации реализованного ПО и требований спецификации, то есть проверки соответствия требований спецификации и ПО [30, 39, 41].
Как правило, основным средством отладки в интегрированной среде проектирования является отладчик. Отладчик - это программа позволяющая осуществлять эксперименты с МК (при наличии аппаратных средств отладки) или с его моделью. Как правило, программа отладчик имеет возможность имитации исполнения программы в пошаговом режиме, при этом пользователь имеет возможность наблюдать в окне программы состояние контроллера (рис. 2,5) (состояние внутренних регистров, памяти, портов ввода/вывода) на каждом шаге программы [15, 46].
Вид окна состояния микроконтроллера.
Верификацию программ микроконтроллерных устройств будем рассматривать следующих двух типов: верификация потоков управления и верификация потоков данных.
Верификация потоков управления состоит в проверке корректности последовательностей передач управления и формирования маршрутов исполнения программы. Реализация данного метода основана на выделении структуры программы и маршрутов исполнения программы. В случае верификации программ микроконтроллерных устройств описанный подход становится не правомочным, т.к. формирование маршрутов исполнения программы в МК происходит не только программным способом, но и аппаратным способом. Это обстоятельство делает не возможным формирование маршрутов исполнения программы в виде требований к программе, без знания состояний аппаратных частей микроконтроллера, как внутренних, так и внешних, во все моменты времени функционирования МК.
Таким образом, формирование маршрутов исполнения программы МК можно описать как объединение двух множеств маршрутов: М = Мпр u Ма, где Ма - множество маршрутов, причиной формирования которых служили аппаратные события. М - множество маршрутов, причиной формирования которых служили программные условия.
Для формирование маршрутов исполнения программы с использованием средств программы отладчика, входящего в состав большинства ИСП, необходимо создание входных воздействий, имитирующих взаимодействие МК с внешним устройством. Маршрут исполнения программы зависит как от алгоритма заложенного в программу, так и от внешних/внутренних устройств, взаимодействующих с ядром МК. Существующие отладчики, как правило, поддерживают имитацию внутренних устройств, интегрированных в кристалл микросхемы. Однако сравнительный анализ показал, что в ИСП отсутствуют имитационные модели внешних устройств и средства создания имитационных моделей внешних устройств [39,40].
Опишем процесс функционирования ПО МК во времени. Временная диаграмма распределения событий и их обработка во времени, описанные перечисленными параметрами изображено на рис. 2.6.
Построение концептуальной модели взаимодействия внешних устройств с ПО МК
Декомпозиция системы имитации взаимодействия внешних устройств с ПО МК На рис. 3.2 изображена общая схема имитации взаимодействия внешних устройств с ПО МК, которая состоит из следующих основных компонентов: - модуль приёма данных; - модуль управления; - модуль передачи данных; - интегрированная среда проектирования.
Для математического описания первых трёх компонентов представим каждый из них как систему, которая имеет ряд параметров, необходимых для построения математической модели: - множество входов X; - множество выходов Г; - множество элементов, связанных между собой, входами и выходами, определяющих логику работы.
Значения на множестве входов X и на множестве выходов Y, определены на множестве моментов времени Т. Элементы характеризуются состоянием в момент времени /,. (/ = 1,2,3,...), где tt є Т и функцией перехода из одного состояния в другое [47].
В соответствии с методами общей теории систем каждый из элементов системы имитации взаимодействия внешних устройств с ПО МК обладает свойствами временной неупреждающей системы.
Временной системой S над X и Y называется отношение на X и У, т.е. S czXxY. Пусть А и В - произвольные множества, Т - множество моментов времени, Ат и Вт - множества всевозможных отображений из Т в А и В соответственно, и XcAT,YczBT. Множества А и В алфавиты входных воздействий (входов) и выходных величин (выходов) системы соответственно. Множества X и Y - временные объекты системы; их элементами х:Т— А и у:Т— В служат абстрактные функции времени [47].
Система называется неупреждающей, если существует такое семейство объектов состояний, что будущее значения любых выходных величин системы определяются исключительно состоянием системы в предшествующий момент времени и входными воздействиями на рассматриваемом отрезке времени [47].
Так как система, описывающая взаимодействия ПО МК с внешними устройствами, с точки зрения математического моделирования, характеризуются значениями сигналов на входах/выходах и внутренними состояниями, при этом значения сигналов на выходе определяются состоянием в предшествующий момент времени и значениями сигналов на входе, тогда система описывающая внешние устройства обладает свойством неупреждаемости.
Исходя из выше сказанного представим модель взаимодействия ПО МК с внешними устройствами как временную неупреждающую систему, - -» - которая в динамическом представлении определяется парой (р,(р), где р -+ реакция системы, ф - функция перехода состояний: -» р = {р, : С, х X, -» Yt}, где С - состояние системы р = {ср„, :С,хХ„,- С,,}.
В соответствии с общей теорией систем произведём декомпозицию данной системы на подсистемы, описывающих по отдельности реакцию системы на состояние и на входное воздействие. Результат структурной декомпозиции представлен на рис. 3.4.
Подсистема 51 - является инерционной подсистемой, полностью отражающей динамику поведения системы. Выходная величина инерционной системы зависит от текущего значения входного воздействия и от «предистории» этого воздействия.
Подсистемы S2 и S3 - являются статическими подсистемами. Статическая система характеризуются тем, что значения её выходной величины в любой момент времени зависят исключительно от текущего входного воздействия и состояния, с которого началась её эволюция.
Цель математического описания взаимодействия ПО МК с внешними устройствами - создание математической модели системы имитации взаимодействия ПО МК с внешними устройствами. Программные средства имитации взаимодействия ПО МК с внешними устройствами, для их эффективного использования, должны обладать возможностью проектирования модели, как на структурном уровне, так и на функциональном. Для этого произведём расширенную декомпозицию системы имитации взаимодействия ПО МК с внешними устройствами, с учётом функциональных особенностей внешних устройств.
В комплексе средств имитации модель взаимодействия ПО МК с внешними устройствами является конечным элементом, для неё самой источник входных данных не существует. Входными данными x(t), для модели имитации взаимодействия ПО МК с внешними устройствами, будет являться сигнал изменение значения которого синхронно с изменением значения текущего программного времени, который представлен в следующем виде: ( 1, если t = 1,3,5,... О, если / = 0,2,4,...
С функциональной точки зрения у внешних устройств можно выделить следующие свойства, которые необходимо учитывать при описании процесса взаимодействия ПО МК с внешними устройствами: - дискретно-детерминированные; — дискретно-стохастические. Функциональная декомпозиция системы SczXxY, должна соответствовать (JS S, при этом 5,.(/6/) - функциональная /є/ подсистема системы эмуляции, где /-множество элементов системы S(StcS). На рис. 3.5 представлена декомпозиция системы имитации взаимодействия ПО МК с внешними устройствами.
Поведение подсистемы М\ однозначно определено и зависит от внутреннего функционального содержания и значений сигнала x(t).
Система обладает дискретно-детерминированными свойствами. Поведение подсистемы М2 зависит от внутреннего функционального содержания и значений сигнала x(t). Система обладает дискретно-стохастическими свойствами. Поведение подсистемы МЗ зависит от внутреннего функционального содержания и значений множества входных сигналов X, система обладает дискретно-детерминированными свойствами.
Алгоритм работы ПО комплекса программно-математических средств
Модель взаимодействия ПО МК с внешними устройствами будем рассматривать, как систему состоящую из элементов и связей между ними. Взаимодействие подсхем, представляющих собой структурные элементы модели взаимодействия ПО МК с внешними устройствами, рассматриваются как результат совокупности воздействий каждого элемента на другие элементы. Воздействие, представляет собой набор характеристик, в частности набором логических сигналов: 1,0, z -состояние. Таким образом, взаимодействие структурных элементов модели взаимодействия ПО МК с внешними устройствами рассматривается в рамках механизма взаимодействия сигналами [68, 72, 73, 87].
Сигналы передаются по каналам связи, соединяющие между собой элементы. Началом данного канала является выход (выходной полюс) элемента, выдающего сигнал, а окончанием - вход (входной полюс) элемента, принимающего сигнал. Канал, передающий сигналы мгновенно и без искажений, называется идеальным. При построении модели имитируемого внешнего устройства все соединения со всеми элементами будут осуществляться идеальными каналами связи [13, 23, 59, 60, 89].
В следствии того, что ПО имитации взаимодействия ПО МК с внешними устройствами представляет собой внешнюю среду для интегрированных сред проектирования, то для самого ПО имитации взаимодействия ПО МК с внешними устройствами с одной стороны внешней средой будет являться дискретное время Г, а с другой стороны интегрированная среда проектирования, рис.4.2.
Передача параметров входных воздействий будет осуществляться через модуль интеграции.
Алгоритм работы комплекса представлен на рис. 4.3. Построение структурной схемы модели взаимодействия ПО МК с внешними устройствами осуществляется в редакторе структурной схемы. Редактор позволяет осуществлять построение схемы при помощи пяти структурных элементов: - три базовых элементов; - генератор тактов; - выходной элемент.
Элементы связываются между собой связями. В ПЭВМ данная схема представляется в виде матрицы смежности (таб. 4.1).
Названия элементов назначаются программой автоматически -приставка «Element» +номер элемента по порядку. Если элемент из строки к связан с элементом из столбца g, но на пересечении этого столбца и строки ставится «1», в противном случае «О». В процессе проектирования данная матрица смежности хранится в оперативной памяти ПЭВМ в виде массива данных.
Построение логических подсхем осуществляется в редакторе логических схем. Редактор позволяет осуществлять построение логической схемы при помощи следующих логических и вспомогательных элементов: и, или, не, триггер, VCC - логическая 1, GND - логический 0, входной элемент, выходной элемент, Z - элемент с третьим состоянием.
Элементы связываются между собой связями. В ПЭВМ данная схема представляется аналогично структурной схемы. Для каждого структурного элемента составляется своя собственная логическая схема, после чего сохраняется на «жесткий» диск ПЭВМ. Каждому структурному элементу должна соответствовать своя собственная логическая схема. Эта операция производится путем ввода имени файла и описания логической схемы.
Ввод связи схемы осуществляется для соединения выходов подсхем между собой через таблицу (таб.3). Где п- количество выводов в логических подсхемах, U - количество цепей, соединяющие между собой структурные элементы.
Компилятор осуществляет преобразование всей схемы в одну логическую схему, представляющую собой логическую модель. В процессе компиляции осуществляется проверка на наличие ошибок построения модели. Ошибками считаются следующие недопустимые ситуации: - соединение двух и более выходов элементов к одной цепи, - цепь не подсоединена ни к одному выходу элемента.
При отсутствии ошибок, осуществляется логический синтез и генерируется файл модели взаимодействия ПО МК с внешними устройствами, предназначенный для дальнейшей имитации. Если ошибки были найдены, то процесс построения модели повторяется с целью поиска исправления данных ошибок.
Взаимодействие подсхем
Сигналы передаются по каналам связи, соединяющие между собой элементы. Началом данного канала является выход (выходной полюс) элемента выдающего сигнал, а окончанием - вход (входной полюс) элемента принимающего сигнал. Канал, передающий сигналы мгновенно и без искажений, называется идеальным [65,94].
При построении модели взаимодействия ПО МК с внешними устройствами все соединения со всеми элементами будут осуществляться идеальными каналами связи [65, 94].