Программа для ЭВМ это упорядоченная последовательность команд, подлежащая обработке
Скачать 1.98 Mb.
|
52.Основы проектирования микропроцессорных систем: цикл проектирования МПС, средства разработки и отладки МПС.В основе стратегии проектирования лежит функциональная декомпозиция. Для системы в целом и ее блоков используется концепция «черного ящика». Для «черного ящика» разрабатывается функциональная спецификация, включающая внешнее описание блока (входы и выходы) и внутреннее описание – функцию или алгоритм работы: F = Ф(Х, t), где Х – вектор входных величин, F – вектор выходных величин, t – время. При декомпозиции функция Ф разбивается на более простые функции Ф1-ФK, между которыми должны быть установлены определенные связи, соответствующие принятому алгоритму реализации функции Ф. Переход от функции к структуре – синтез. Декомпозиция функций блоков выполняется до тех пор, пока не получатся типовые функции, каждая из которых может быть реализована элементами выбранного уровня иерархии. Процесс проектирования – многоуровневый, многошаговый и итерационный, с возвратами назад и пересмотром ранее принятых решений. Такая методология проектирования отображает процесс проектирования «сверху-вниз»: от технического задания до электрических схем, файлов прошивки ПЗУ и конфигурации программируемых приборов, а также конструкции устройства в целом. Приведенное выше описание процесса проектирования относится к каждому уровню проектирования. При этом декомпозиция заканчивается при получении типовых функций, соответствующих выбранному уровню иерархии. Так, на верхнем уровне (при многоплатной реализации) декомпозиция заканчивается при представлении проекта в виде отдельных плат, на следующем уровне – в виде отдельной платы, еще ниже декомпозиция осуществляется до реализации функций при помощи той или иной микросхемы. Традиционным является разбиение процесса проектирования на следующие этапы: системное проектирование; структурно-алгоритмическое проектирование; функционально-логическое проектирование; конструкторско-технологическое проектирование. На этапе системного проектирования определяется архитектура будущей системы, состав компонентов и основные характеристики системы при таком её построении. При структурно-алгоритмическом проектировании определяются алгоритмы функционирования аппаратных и программных компонентов системы. На этапе функционально-логического проектирования разрабатываются функциональные и принципиальные электрические схемы, программы, подготавливаются тестовые и контрольные данные. На конструкторском этапе производится привязка элементов проекта к конструктивным элементам. Тесное взаимодействие аппаратных и программных средств в микропрцессорных системах находит свое отражение в концепции сопряженного проектирования аппаратно-программных систем – (Hardware-Software Codesign). Основа методологии сопряженного проектирования – параллельная взаимосвязанная проработка программных и аппаратных средств, что обеспечивает создание наиболее эффективных конфигураций при сокращении времени разработки. Концепция сопроектирования предполагает решение следующих вопросов: анализ задачи и ее разделение на фрагменты, безусловно назначаемые к исполнению программно, безусловно исполняемые в аппаратуре, и фрагменты, которые могут быть назначены как в аппаратную, так и в программную части таким образом, чтобы максимизировать показатель качества системы в целом в зависимости от имеющихся ресурсов. Процедуру такого предварительного распределения весьма сложно формализовать. Рекомендуется назначать в программную часть сравнительно редко выполняемые фрагменты и фрагменты, требующие больших аппаратных ресурсов, например, содержащие операции арифметики с плавающей запятой. К безусловно аппаратным относят обычно операции непосредственного управления периферией; создание библиотеки возможных исполнителей алгоритмов, типичных для предполагаемой области применения. Каждый объект такой библиотеки представляет некоторую задачу и включает несколько вариантов программной реализации, а также несколько вариантов аппаратной реализации. Эти варианты сопровождаются количественными характеристиками возможных реализаций, таких как время исполнения, затраты памяти, используемые ресурсы микросхем; выбор оптимального сочетания исполнителей частей задачи исходя из определенной целевой функции, ограничений и характеристик задачи. Обычно за критерий оптимизации принимается время исполнения задачи. Имеющиеся ресурсы (например, память) выступают как ограничения. Задача поиска оптимума является дискретной оптимизационной задачей; разработка соответствующего интерфейса между процессором и блоками, включаемыми в аппаратную часть системы. Основным достоинствомтакой совмещенной процедуры является сокращение требуемого времени проектирования. Структура алгоритма проектирования Укрупненная структура алгоритма проектирования микропроцессорной системы показана на рис. 108. Рисунок 108 – Укрупненная структура алгоритма проектирования микропроцессорной системы Первый шаг цикла проектирования системы включает определение набора требований пользователя и построение функциональной спецификации, вытекающей из требований пользователя. Требования пользователя определяют, что пользователь хочет от системы и что она должна делать. Функциональная спецификация определяют функции, которые система должна выполнять для пользователя после завершения проектирования. Они включают описания форматов как на входе, так и на выходе системы, а также внешние условия, управляющие действиями системы. Функциональная спецификация и требования пользователя являются критериями оценки функциональных характеристик системы после завершения проектирования. Требования пользователя определяют, что пользователь хочет от системы, а функциональная спецификация фиксирует, что система должна делать и как она взаимодействует с окружением. Как только функциональная спецификация определена, она используется вместе с требованиями пользователя в качестве основы для проектирования системы. По этой причине важно, чтобы как требования пользователя, так и функциональная спецификация были не только полными и точными, но также четкими и легко усваиваемыми. Вторым шагом является проектирование системы на основе функциональной спецификации. Для микропроцессорной системы требуется проектирование как аппаратных, так и программных средств. На этом шаге, исходя из требуемого функционирования устройства, проектировщик осуществляет разбиение проекта на части, определяет множества входных и выходных сигналов составных частей, их характер и взаимосвязь, а также решает отдельные вопросы реализации составных частей. Основным результатом этого этапа является разбиение алгоритмов работы системы на две составляющие для реализации программным и аппаратным обеспечением выбранного типа микропроцессорного ядра, а также выделение задач, требующих для своего выполнения разработки нетипового оборудования, как цифрового, так и аналогового. Необходимо определить организацию аппаратной и программной частей системы, из каких компонентов должна состоять система и как эти части должны быть взаимосвязаны. Проектирование аппаратной части может быть выполнено с использованием стандартной методологии проектирования аппаратуры. Проектирование программной части лучше всего может быть выполнено с использованием языка программирования, ориентированного на выбранный микропроцессор (микроконтроллер). Программное обеспечение тестируется и одновременно с аппаратурой объединяется в единое целое. Затем выполняется комплексная отладка аппаратных средств и программного обеспечения, после чего оцениваются эксплуатационные характеристики системы – эффективность системы. Две части системы часто разрабатываются параллельно, что на рис. 108 выглядит в виде отдельных ветвей. Средства разработки и отладки микропроцессорных систем В процессе разработки и отладки микропроцессорных систем используются следующие программные средства: ассемблеры, компиляторы; симуляторы (программно-логические модели); отладчики, редакторы связей (компоновщики, загрузчики). В современных комплексах проектирования/отладки систем эти средства обычно работают совместно, в составе интегрированной среды (оболочки) программирования. Особенно сложные задачи приходится решать при программировании управляющих систем, работающих в реальном масштабе времени. В этом случае разработчик должен использовать какую-либо из имеющихся операционных систем реального времени (ОСРВ) или создавать собственные программы-мониторы реального времени с помощью указанных выше средств программирования. В составе многих ОСРВ имеются средства поддержки программирования, которые могут использоваться при проектировании/отладке системы. В настоящее время программирование и отладка чаще всего выполняются с помощью интегрированной среды развития или средств ОСРВ. Программирование производится обычно с помощью кросс-средств, инсталлированных на инструментальном компьютере с мощной операционной системой. В качестве инструментальных компьютеров используются персональные компьютеры или рабочие станции. Операционными системами этих компьютеров служат различные версии Windows и UNIX (Solaris, AIX, ULTRIX и др.). Язык Ассемблера очень часто применяется при программировании микропроцессорных и микроконтроллерных систем, так как его использование обеспечивает существенное уменьшение объема памяти программ и времени выполнения программных модулей (до 20-50%). В качестве языков высокого уровня чаще всего используются С, С++. Некоторыми фирмами поставляются также компиляторы для языков FORTRAN, Modula-2, Ada, Pascal. Все эти компиляторы обеспечивают также программирование на языке Ассемблера. Большинство из них содержат компоновщики для связи программных модулей, библиотеки функций. Многие компиляторы по указанию разработчика могут оптимизировать процесс трансляции исходного текста с целью получения объектного кода с минимальным объемом или минимальным временем выполнения программы. Такие компиляторы называются оптимизирующими. Симуляторы (программно-логические модели) микропроцессоров и микроконтроллеров, используемые при отладке программ, редко поставляются в виде отдельных средств поддержки программирования. Обычно они входят в состав отладчиков. Отладчики являются основным инструментом разработчика программного обеспечения, без которого практически невозможно получить работоспособные объектные модули рабочей программы. Отладчик реализует различные режимы выполнения транслированной программы – пошаговый или с остановами в контрольных точках, позволяет производить просмотр и коррекцию содержимого регистров и ячеек памяти, обеспечивает в точке останова контроль выполнения предыдущих шагов программы (просмотр трассы), дисассемблирование команд. Отладчик воспринимает программу на уровне исходного кода или в символическом виде, с использованием введенных разработчиком имен и меток. Символические отладчики являются наиболее удобным средством отладки, так как они представляют и воспринимают информацию в наиболее наглядной и удобной для программиста форме. Технические средства разработки и отладки МПС На этапе автономной отладки аппаратных средств основными орудиями разработчика являются традиционные измерительные приборы – осциллографы, мультиметры, пробники и другие, а также логические анализаторы, которые обладают широкими возможностями контроля состояния различных узлов системы в заданные моменты времени. Весьма эффективным является использование на этом этапе средств тестирования по стандарту JTAG, которые имеются в составе многих современных моделей микропроцессоров и микроконтроллеров. На этапе комплексной отладки разработчик использует весь набор программных и аппаратных средств, применяющихся для автономной отладки аппаратных средств, а также ряд специальных средств. Наиболее эффективным средством комплексной отладки систем являются схемные эмуляторы – специализированные устройства, включаемые вместо микропроцессора или микроконтроллера прототипной системы и обеспечивающие возможность контроля ее работы с помощью персонального компьютера, связанного со схемным эмулятором. Одним из эффективных средств комплексной отладки микроконтроллерных систем являются эмуляторы ПЗУ. Это устройство включается вместо ПЗУ прототипной системы и работает под управлением подключенного к нему персонального компьютера. Так обеспечивается текущий контроль за выполнением программы и ее оперативная коррекция, что значительно упрощает процесс отладки. Внутрисхемный эмулятор представляет собой программно-аппаратный комплекс, который в процессе отладки замещает в реализуемой системе микропроцессор или микроконтроллер. В результате такой замены функционирование отлаживаемой системы становится наблюдаемым и контролируемым. Разработчик получает возможность визуального контроля за работой системы на экране дисплея и управления ее работой путем установки определенных управляющих сигналов и модификации содержимого регистров и памяти. Благодаря наличию таких возможностей внутрисхемный эмулятор является наиболее универсальным и эффективным отладочным средством, используемым на этапе комплексной отладки системы. Наиболее широкое применение получили внутрисхемные эмуляторы, подключаемые к базовому персональному компьютеру или рабочей станции. Обычно такие внутрисхемные эмуляторы конструктивно оформлены в виде прибора, размещенного в отдельном корпусе с автономным источником питания и соединенного с портом базового компьютера. С помощью кабеля к внутрисхемному эмулятору подключается соединитель для включения в систему вместо эмулируемого микропроцессора или микроконтроллера. В внутрисхемном эмуляторе размещается эмулирующий микропроцессор (микроконтроллер), который выполняет те же функции, что и эмулируемый, но работает под управлением компьютера. В структуру внутрисхемного эмулятора входят следующие блоки: эмулятор микропроцессора или микроконтроллера; память трассы, которая хранит значения сигналов, устанавливаемых на выводах микропроцессора (микроконтроллера) в процессе выполнения программы; блок контрольных прерываний, который реализует остановы в контрольных точках, заданных пользователем с клавиатуры компьютера; эмуляционная память ( ОЗУ), которая заменяет в процессе отладки внутреннее ПЗУ микроконтроллеров или другие разделы памяти, внешний доступ к которым в процессе отладки ограничен; таймер, используемый для контроля времени выполнения отлаживаемых фрагментов программы. |