Главное меню

Карта сайта
Главная
Курсовые работы
Отчеты по практикам
Лабораторные работы
Методические пособия
Рефераты
Дипломы
Лекции



Микропроцессорные и цифровые устройства полиграфического оборудования

Разработка программных средств

При разработке программного обеспечения выполняются следующие этапы:

  1. создание общего алгоритма и его ориентация на выбранную аппаратную базу;
  2. разделение общего алгоритма на блоки и создание алгоритмов, которые будут реализованы в виде программных модулей;
  3. написание исходных модулей программы в ASCII кодировке и их сохранение в файлах с расширением *.asm, *.c или другим расширением в зависимости от используемого языка программирования (ассемблер, Си);
  4. компиляция (трансляция) каждого исходного модуля и сохранение контрольного результата в файле листинга с расширением *.lst и главного результата трансляции –  последовательности машинных кодов микропроцессора (программы в машинных кодах) в объектном модуле с расширением *.obj;
  5. исправление синтаксических ошибок, выявленных компилятором и показанных в файле *.lst , с последующей перетрансляцией;
  6. связывание полученных объектных модулей в исполняемый модуль с фиксированными физическими адресами  с использованием программы компоновщика (линкера) или вручную;
  7. создание загружаемого модуля, записываемого с помощью программатора в ПЗУ микроконтроллера;
  8. проверка полученной программы при помощи симулятора или других средств отладки.

Объектные модули, создаваемые в виде файлов *.obj (пункт 4) могут быть двух основных типов:

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

Оба типа объектных модулей могут сохраняться, в зависимости от свойств и настроек конкретного компилятора,  в текстовой кодировке ASCII в символах шестнадцатеричной системы  счисления (т.н. HEX-формат) или в бинарном формате машинных кодов микропроцессора. В последнем случае объектный модуль выполняет функции исполняемого модуля и после загрузки в память микроконтроллера может быть им выполнен. Аналогичный режим компиляции используется в лабораторном курсе по дисциплине “Микропроцессорные и цифровые устройства полиграфического оборудования”, где файл с расширением  *.obj является конечным результатом разработки программы, а этапы компоновки  опущены. При разработке реальных программ, состоящих из большого числа объектных модулей, используется принцип относительной адресации для объектных модулей и исполняемый модуль с абсолютной физической адресацией образуется в результате компоновки (пункт 6).

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

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

В лабораторном курсе по дисциплине “Микропроцессорные и цифровые устройства полиграфического оборудования” использовался метод разработки программ на основе языка ассемблера, поэтому при работе над курсовым проектом также рекомендуется использовать этот метод.

Под общим термином “ассемблер” (assembler - сборщик) понимается два объекта:

  1. язык программирования, содержащий: ­символьные обозначения машинных команд конкретного микропроцессора (микроконтроллера), ­директивы (команды самого языка, не представленные командами микропроцессора), ­правила записи и синтаксиса, в основе которых лежат общие для всех модификаций ассемблера принципы.
  2. компьютерная программа, выполняющая функцию трансляции (компиляции) исходного текста программы на языке ассемблера в объектную программу в машинных кодах микропроцессора.

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

Под термином “кросс ассемблер” понимают программу – компилятор  ассемблера, установленную на компьютере с центральным микропроцессором одного типа, генерирующую объектную программу для микропроцессора другого типа, например, для микропроцессорного ядра микроконтроллера. В современной литературе часть термина “кросс…” часто опускают и программу, отвечающую признакам кросс ассемблера называют программой ассемблера, подразумевая по контексту, что она выполняется на компьютере, но компилирует исходный текст в машинные команды микроконтроллера.  Файл, в котором хранится исходная программа, написанная на языке ассемблера или одном из языков высокого уровня, чаще всего одной из модификаций языка Си, имеет текстовую ASCII кодировку и может быть подготовлен в любом текстовом редакторе с отключенным или отсутствующим форматированием (переносы, отступы, положение на странице и т.д.). Как правило, используются специальные редакторы, интегрированные в средства данного языка программирования или в систему проектирования микроконтроллера в целом.  Знаковая 8-ми разрядная кодировка ASCII (American National Standard Code for Information Interchange – в русской транскрипции произносится как  "аски") принята “де факто” мировым стандартом и используется для создания исходных текстов во всех языках программирования, в т.ч. в языках описания страниц полиграфических изданий и страниц Internet:  HTML, PostScript, JavaScript, а также в языках описания чертежей,  схем и др. технической документации, создаваемой в САПР.

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

  • ­программный симулятор,
  • ­внутрисхемный эмулятор или отладочный комплекс;
  • ­встроенный программный отладчик,
  • ­макет устройства с записанной в память программ разработанной программой.
  • ­логические анализаторы, цифровые осциллографы и осциллографы смешанных сигналов;
  • ­различные виды плат развития;
  • ­эмуляторы ПЗУ с многократной записью;
  • ­программаторы.

Программный симулятор (имитатор) – это наиболее доступное средство отладки программ микроконтроллеров, предоставляемое, как правило, их производителями в составе минимального набора для каждого типа микроконтроллера. Кроме того, компьютерные программы симуляции создаются сторонними организациями и программистами одиночками и также свободно распространяются по Internet. В лабораторном курсе по дисциплине “Микропроцессорные и цифровые устройства полиграфического оборудования”, наряду с аппаратным учебным комплексом используются симуляторы для микропроцессора i8080. Современный программный симулятор микроконтроллера имеет развитый экранный интерфейс, позволяющий отслеживать процесс выполнения программы по всем элементам архитектуры, средства подготовки исходного текста в ассемблере или Си и его компиляции, библиотеку симуляторов внешних устройств, подключенных к портам микроконтроллера, имитаторы аналоговых сигналов и т.д. Основное назначение программного симулятора – отладка программы микроконтроллера на логическом уровне.

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

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

Дальнейшим развитием внутрисхемной эмуляции является режим фоновой отладки (OCD – On-Chip Debugging), основанный на установленных в памяти микроконтроллера на этапе его изготовления программных средствах (т.н. системный монитор), которые обеспечивают функции отладки целевой программы и тестирование микроконтроллера при его функционировании в штатном режиме. Разница между внутрисхемной эмуляцией и фоновой отладкой заключается в том, что внутрисхемный эмулятор с той или иной степенью достоверности имитирует поведение целевого микроконтроллера в отлаживаемой системе, в то время как в режиме фоновой отладки программа исполняется самим целевым микроконтроллером и достигается полное совпадение временных и электрических параметров системы в отладочном и штатном режимах. В микроконтроллерах, поддерживающих режим OCD, блок управления отладкой и соответствующий объем памяти является частью самого отлаживаемого микроконтроллера, а управление процессом отладки или тестирования выполняется компьютерной программой, взаимодействующей с целевым микроконтроллером через компьютерный порт. Процесс программирования или перепрограммирования таких микроконтроллеров может осуществляться также в фоновом режиме без участия специальных отдельных средств программирования. Режим OCD стал возможен за счет прогресса интегральной технологии, в результате которого дополнительные объемы памяти и дополнительные аппаратные средства, встроенные в общий кристалл интегральной схемы, практически не изменяют ее стоимости при массовом производстве.

Интегрированная среда разработки (IDE – Integrated Development Environment) – это комплекс согласованных программных и аппаратных средств, с помощью которых выполняются все этапы программной и частично аппаратной разработки микроконтроллерного устройства. Фирмы – производители микроконтроллеров создают несколько вариантов интегрированных сред, часть из которых (программные среды) распространяется свободно на бесплатной основе и входит в т.н. стартовые наборы разработчика. В такие наборы входит:

  • ­редактор для подготовки исходного текста на языке ассемблера;
  • ­компилятор языка ассемблера;
  • ­компилятор языка Си;
  • ­программный симулятор микроконтроллера, принимающий программы в виде исходного текста, в объектной форме или в виде исполняемого файла;
  • ­отладчик программ, также как симулятор работающий с программой в любой форме представления.

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

Основные этапы работы над проектом

Работа над курсовым проектом рассчитана на один семестр и выполняется в следующей последовательности:

  1. Получение и оформление задания на курсовой проект, изучение общей части пособия по проектированию, лекционного курса и пособия по лабораторным работам.
  2. Анализ задания и выбор базового микроконтроллера и других существенных элементов разрабатываемого устройства.
  3. Изучение предметной области, для которой предназначено разрабатываемое устройство.
  4. Подбор и изучение рекомендованной литературы и материалов Internet.
  5. Знакомство с архитектурой и техническими параметрами выбранной элементной базы, изучение состава команд выбранного микроконтроллера, изучение особенностей его языка ассемблера или (и) принципов его программирования на языке высокого уровня.
  6. Подбор и освоение программных средств поддержки разработки аппаратной части (САПР).
  7. Подбор и освоение средств  разработки программной части (компиляторы ассемблера или Си, программные симуляторы, редакторы и т.д.).
  8. Разработка функциональной схемы устройства и общего алгоритма его работы (блок-схема алгоритма).
  9. Разработка функциональных элементов устройства до уровня логических и  принципиальных схем.
  10. Разработка полной принципиальной схемы.
  11. Разработка схемы расположения элементов и трассировка печатной платы для двухстороннего монтажа.
  12. Разработка алгоритмов программных модулей и текстов программ на выбранном языке программирования (рекомендуется ассемблер).
  13. Подготовка текста пояснительной записки (файл или распечатка).
  14. Подготовка графических материалов и текстов программ (распечатка на принтере или плоттере).

Пояснительная записка должна соответствовать следующей структуре:

  • ­Титульный лист.
  • ­Задание.
  • ­Ключевые слова.
  • ­Реферат.
  • ­Содержание (может быть опущено).
  • ­Введение.
  • ­Основная часть.
  • ­Заключение.
  • ­Список литературы.
  • ­Приложения.

Ключевые слова и реферат располагаются на одной странице. Само название “Ключевые слова” обычно не пишется, а слова и словосочетания, наиболее полно отражающие тематику работы (не более 10-12), располагаются в строку через запятые. Ключевые слова используются для быстрого знакомства с темой. В некоторых случаях, например, при подготовке тематических научных изданий, авторам предлагается выбрать ключевые слова, соответствующие тематике их работы, из предлагаемого издательством ограниченного списка.

Реферат содержит 10-12 строк текста с заголовком “Реферат” или без заголовка и располагается под ключевыми словами, отделенный от них увеличенным интервалом. Реферат – это следующий после ключевых слов уровень знакомства с тематикой работы или книги.  Рефераты могут публиковаться в отдельных изданиях, в основном через Internet и содержат краткую характеристику темы работы и перечень ее составных частей: объем, число иллюстраций, таблиц, приложений и т.д.

Введение (не нумеруется) объемом 30-40 строк содержит основные сведения из тех технических областей, с которыми связана поставленная в задании на курсовое проектирование задача. Это не только микропроцессорная техника, но и предметная область, для которой она будет проектироваться.

Основная часть (как название раздела не используется)  состоит из отдельных разделов и подразделов, имеющих нумерацию арабскими цифрами, часть из которых, начиная с первого номера, имеет названия. Размер нумерованного или именованного раздела в основной части не должен быть менее, чем  30 – 40 строк. Все названия разделов основной части и пояснительной записки в целом выделяются начертанием базового шрифта или (и) его кеглем. Для выделения кеглем достаточно отличия в два пункта. Пункт – это полиграфическая единица измерения размера шрифта по вертикали и составляет 1/72 дюйма. Набор основного текста обычно выполняется 12-м кеглем.  Для выделения названий разделов подчеркивание  не используется. При наборе текста применяется, как правило, один базовый шрифт, в котором при необходимости изменяют начертание и размер. Для набора исходных текстов программ может быть использован второй шрифт, упрощенный или т.н. равноширинный, имитирующий шрифт пишущей машинки.  Названия разделов и подразделов основной части выбираются произвольно, но должны примерно соответствовать порядку проектирования:

  1. Анализ задания и выбор базового микроконтроллера.
  2. Основные технические характеристики элементной базы.
  3. Разработка функциональной схемы и базового алгоритма.
  4. Характеристики используемых средств проектирования.
  5. Разработка электрической принципиальной схемы и конструкции печатной платы.
  6. Разработка алгоритмов программных модулей и исходных текстов программ.
  7. Отладка программного обеспечения.

Заключение (не нумеруется)  объемом 25 – 30 строк содержит краткие выводы по проделанной работе и возможные альтернативные варианты решения задачи, не рассмотренные в процессе проектирования, например, использование чисто аппаратного принципа вместо микроконтроллера. Кроме того, в заключении могут быть рассмотрены расширенные варианты применения разработанного устройства или расширение его функций в процессе разработки, например, использование микроконтроллера терморегулятора для отсчета времени и т.д.

Список литературы является обязательным и должен содержать перечень всех использованных источников и Internet включительно.

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