Реферат: Проектирование алгоритмического и программного




`


Проектирование алгоритмического и программного обеспечения мехатронных систем
Бошляков А. А., Овсянников С. B.



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

Для студентов, изучающих курс «Проектирование мехатронных систем».


Рецензент: Нечаев Л.Д.
Введение

Обязательным компонентом любой современной мехатронной системы является микроЭВМ, реализующая алгоритмы управления системы программным способом. Наиболее часто такие микроЭВМ представляют собой один или несколько микропроцессорных контроллеров (МПК). Под микропроцессорным контроллером принято понимать функционально законченную совокупность микропроцессора и связанных с ним периферийных устройств, таких как, оперативные запоминающие устройства (ОЗУ) памяти, постоянные запоминающие устройства (ПЗУ) памяти, таймеры, контроллеры прерываний и системной шины, порты ввода-вывода, аналого-цифровые преобразователи (АЦП) и цифро-аналоговые преобразователи (ЦАП), разнообразные универсальные асинхронные (UART, CAN) и синхронные приемопередатчики (SPI, I2C), супервизоры питания и т.д. Микропроцессорный контроллер может быть реализован как в виде электронного блока на основе микросхемы микропроцессора и соответствующих ему микросхем периферийных устройств, так и в виде однокристального микроконтроллера (как с набором дополнительных микросхем периферийных устройств, так и без них). Примером первого варианта реализации МПК для мехатронных систем могут служить микропроцессорные контроллеры на базе 16-разрядного микропроцессора Intel 8086 и набора микросхем периферийных устройств, предназначенных для работы с ним (отечественные аналоги - микропроцессор К1810ВМ86 и комплект БИС 1810). Примером второго варианта могут служить однокристальные 8-разрядный микроконтроллер Intel MСS51 и 16-разрядный микроконтроллер MCS196, а также однокристальные 16-разрядные микроконтроллеры семейства Siemens SAB C167.

Как правило, использование 8-разрядных МПК в мехатронных системах оправдано только для «простых» систем, имеющих низкую динамику и невысокую точность. В остальных случаях необходимо использовать 16-разрядные МПК. Практика показывает, что реализация корректирующих устройств в высокоточных мехатронных системах, например, в системах наведения антенных установок, с использованием 16-разрядных МПК, требует работы с двойным словом, т.е. по сути, речь идет о необходимости 32-разрядной реализации корректирующих устройств. Однако, использование 32-разрядных МПК в мехатронных системах не получило массового распространения из-за более «слабого» набора периферийных устройств в 32-разрядных микроконтроллерах по сравнению с 16-разрядными.

В силу вышеизложенного представленный материал по проектированию алгоритмического и программного обеспечения мехатронных систем излагается применительно к системам с 16-разрядными МПК на основе микропроцессоров Intel 80x86 и однокристальных микроконтроллеров семейства Siemens SAB C167 (и их аналогов – микроконтроллеров семейств Infineon C167 и ST Microelectronics ST10CT167).

^ 1. Процесс проектирования мехатронной системы с микропроцессорным контроллером 1.1. Этапы проектирования мехатронной системы с МПК
В общем случае процесс проектирования мехатронной системы с МПК с точки зрения создания ее программного и алгоритмического обеспечения можно изобразить в виде схемы на рис.1, содержащей семь основных этапов. Рассмотрим их, отметив в скобках их возможное соответствие реальным этапам разработки изделия.

Этап 1. Анализ технического задания (аван-проект).

Содержанием этапа является:

- определение структурного построения мехатронной системы;

- определение функционального построения мехатронной системы;

- выбор элементной базы системы, в том числе выбор МПК;

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

Этап 2. Синтез мехатронной системы (эскизный, технический проекты).

Этап синтеза (в широком смысле) можно представить в виде пяти шагов:

- энергетический расчет силовой части мехатронной системы;

- разработка математической модели неизменяемой части мехатронной системы;

- «ручной» синтез (синтез в узком смысле) мехатронной системы;

- моделирование мехатронной системы;

- разработка блок-схемы алгоритмического обеспечения мехатронной системы.

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

Второй шаг состоит в разработке простейшей математической модели для проведения «ручного» синтеза без учета всех особенностей, вносимых МПК. Естественным представляется вариант создания модели в виде структуры с фазовыми координатами.

Третий шаг представляет собой синтез линейной системы традиционными «ручными» методами, например, частотными, желательно с применением программного обеспечения для автоматизации расчетов и построения «точных» частотных характеристик (например, с помощью программы «Matcad»). Из всех особенностей, вносимых МПК в динамику системы, здесь целесообразно учитывать только квантование по времени. Шаг заканчивается определением передаточных функций корректирующих устройств и законов управления исполнительным устройством, которые являются исходной точкой для последующего моделирования.

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

- квантования по времени;

- квантования по уровню;

- ограничения разрядной сетки в МПК и в периферийных устройствах, например в АЦП и ЦАП.

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

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

Возможно два варианта создания программной модели. Первый состоит в использовании универсальных прикладных пакетов моделирования систем автоматического управления, например, Matlab фирмы MathWorks. К сожалению, в большинстве случаев прикладные пакеты не позволяют в полной мере смоделировать все особенности «сложных» мехатронных систем. Однако последние версии Matlab (6.5 и 7) уже в значительной мере удовлетворяют потребностям высокоточных систем. Тем не менее, недостатком такого подхода является, как правило, отсутствие информации о допущениях, принятых в модели, и о пределах ее реальных возможностей, что может приводить к искаженным результатам. Второй вариант состоит в создании собственной программы моделирования («под себя») для конкретной мехатронной системы. Этот вариант в принципе позволяет исследовать все тонкости мехатронной системы, но и более трудоемок, чем первый вариант.

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

Этап 3. Разработка программы настройки и контроля мехатронной системы (технический, рабочий проекты).

Целью разработки программы настройки и контроля мехатронной системы является создание средства, позволяющего автономно (вне изделия) через персональный компьютер отлаживать и контролировать работу мехатронной системы с МПК, причем без «перепрошивки» ПЗУ в случае изменения параметров корректирующих устройств, и по командам, имитирующим работу изделия.

Этап 4. Разработка управляющей программы МПК (рабочий проект).

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

Этап 5. Отладка мехатронной системы с МПК с помощью контрольно-проверочной аппаратуры (автономные испытания).

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

Этап 6. Отладка мехатронной системы с МПК в составе изделия (испытания в составе изделия).

Целью этапа является окончательная отладка программно-аппаратного обеспечения мехатронной системы.

Этап 7. Сдача заказчику (натурные испытания).

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

Среди вышеперечисленных этапов наибольший интерес для проектирования алгоритмического и программного обеспечения мехатронной системы представляют этапы 3 - 5, которые в основном далее и рассматриваются.


^ 1.2. Обзор программных средств, используемых при проектировании мехатронных систем с МПК
Основным средством получения конечного программного продукта – исполняемого модуля - является компилятор. Под компилятором понимается специальная программа, переводящая исходные тексты на конкретном языке программирования или сразу в исполняемый модуль, содержащий коды машинных команд данного процессора (микроконтроллера), или в промежуточный формат, т.н. объектный модуль. В последнем случае для получения исполняемого модуля требуется применение еще одной специальной программы - линковщика. Линковщик позволяет сформировать конечный исполняемый модуль путем объединения нескольких отдельных объектных модулей. На рис.2 представлена схема процесса создания исполняемого модуля, где библиотекарь представляет собой специальную программу для обслуживания объектных модулей в виде библиотек. Часто под термином компилятор понимается пакет, состоящий из собственно компилятора, линковщика и библиотекаря, что и будем использовать далее в тексте. При этом в качестве платформы функционирования всех программных средств будем подразумевать Intel платформу в виде IBM совместимых персональных компьютеров.
^ 1.2.1. Управляющая программа МПК
Для разработки управляющей программы МПК в настоящее время используются практически только два языка программирования – ассемблер и Си. Это определяется широким распространением компиляторов только этих двух языков при программировании различных процессоров и микроконтроллеров. Что касается других языков, например, Forth, то он не получил широкого распространения.

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




Для разработки управляющей программы для МПК на основе процессоров Intel 80x86 подходит практически любой 16-разрядный компилятор, ориентированный на аппаратную платформу Intel, например, фирмы Microsoft (MASM, версии 5.10, 6.10), фирмы Borland (TASM, версии 2.0, 2.5). Указанные компиляторы поддерживают работу из командной строки (отсутствует графический интерфейс), а результирующие файлы по умолчанию имеют расширение “.EXE”. Для соответствия формату исполняемого модуля процессора результирующий файл должен представлять собой двоичный образ управляющей программы, т.е. иметь расширение “.BIN” или “.COM”. Это достигается или применением линковщика со специальным ключом (для линковщика TLINK.EXE 4.01 фирмы Borland это /Tdc) или конвертированием результирующего файла с расширением “.EXE” в файл с расширением “.BIN” при помощи утилиты “EXE2BIN.EXE”. В случае, если программное обеспечение, используемое далее, не понимает файл с расширением “.BIN”, достаточно переименовать расширение в “.COM”.

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

Для разработки управляющей программы для МПК на основе микроконтроллеров клона Siemens SAB C16x могут использоваться компиляторы ASM167 (версия 1.1), VASM (версия 1.02), а также среда разработки Vision (версии 2 и 3) фирмы Keil Software, содержащая макроассемблер A166. Результирующие файлы указанных компиляторов имеют шестнадцатеричный формат с расширением “.HEX”, а среда Vision и компилятор VASM позволяют получить также файл с расширением “.BIN”.

1.2.1.2. Си
Язык Си относится к языкам высокого (по отношению к ассемблеру) уровня, но из-за своей способности работать с аппаратурой МПК с такой же эффективностью, как и ассемблер, получил название «ассемблер высокого уровня». Преимуществом Си над ассемблером является уменьшение трудоемкости разработки управляющей программы при незначительном снижении ее быстродействия. Однако использование Си по-прежнему требует глубокого знания архитектуры и логики МПК, а также особенностей модификации языка Си конкретного компилятора, специфичных для данного типа микропроцессора или микроконтроллера.

Количество компиляторов Си для микропроцессоров и микроконтроллеров существенно меньше, чем для ассемблера. Большое распространение получила интегрированная среда разработки (IDE) Keil Vision (версии 2 и 3), содержащая компиляторы ассемблера и Си для нескольких сотен типов 8, 16 и 32-разрядных микроконтроллеров почти 60 фирм, а также отладчик программ. Среда позволяет получить исполняемые файлы в форматах “.HEX” и “.BIN” по выбору. Известна также интегрированная среда Си (версия 2.7) фирмы Tasking для семейства микроконтроллеров C166 (ST10). Определенным сдерживающим фактором для использования указанных сред программирования на Си является их высокая стоимость.

^ 1.2.2. Программа настройки и контроля
Языками программирования, которые целесообразно использовать для создания программы настройки и контроля, являются Си и Паскаль. В силу ряда обстоятельств наибольшее распространение здесь получил Си. Программу настройки и контроля можно разработать как в варианте «под DOS», так и в варианте «под Windows». В случае связи программы настройки и контроля c МПК через асинхронные последовательные интерфейсы RS-232 или RS-485 оба варианта с точки зрения эффективности отладки мехатронной системы с МПК одинаковы. Вариант программы настройки и контроля «под DOS» обеспечивает программисту полный доступ ко всем внутренним ресурсам IBM PC, включая регистры последовательных портов COM, вектора различных прерываний и программы по их обслуживанию. Но при этом программа имеет ограничения в пределах доступной ей памяти - 640К для обычной памяти (для кода и данных) и 16М для расширенной памяти (по спецификации XMS для данных). Кроме этого вариант «под DOS» имеет текстовой пользовательский интерфейс, и требуются определенные усилия по организации работы с «мышью». Вариант «под Windows» имеет графический интерфейс, более приятный для пользователя, но не допускает программиста к внутренним ресурсам IBM PC и требует знаний и умения пользоваться API (Application Programming Interface - программный интерфейс приложения). В общем случае выбор варианта реализации программы настройки и контроля является вопросом личных пристрастий и традиций. Следует заметить, что вариант «под DOS» может работать в среде как «чистой» DOS, так и в различных операционных средах Windows, а вариант «под Windows» практически не пригоден для «старых» IBM PC с ограниченным объемом памяти. Однако в любом варианте программа настройки и контроля должна представлять собой систему меню и оконных сообщений, наиболее удобную для эффективной работы.

Для разработки варианта «под DOS» на Си могут использоваться компиляторы фирмы Borland – TurboC 2.0, TurboC++ 1.0 и Borland C++ 3.1, а также фирмы Microsoft QuickC 2.0, 2.5, а также пакет Turbo Vision фирмы Borland для создания системы меню.

Для разработки варианта «под DOS» на Паскале могут использоваться компиляторы фирмы Borland – Turbo Pascal 6.0 и 7.0.

Для разработки варианта «под Windows» на Си могут использоваться интегрированные среды Microsoft VisualC 6 и VisualC++7 и Borland C++Builder 5.0.

Для разработки варианта «под Windows» на Паскале может использоваться интегрированная среда Borland Delphi 5.0.
^ 1.2.3. Моделирование мехатронной системы с МПК
Для создания собственной программы моделирования конкретной мехатронной системы подходят несколько языков программирования - Фортран, Си, Паскаль, Бейсик. Наибольшее распространение здесь получили Фортран и Паскаль.

1.2.3.1. Фортран
Несмотря на солидный возраст (с 1954 г) Фортран прочно занял нишу языка научных и инженерных расчетов благодаря огромному количеству библиотек подпрограмм, накопленных с момента его создания, и отлично подходит для разработки программы моделирования мехатронной системы «под себя». За время своего развития Фортран сменил несколько стандартов, отслеживая основные тенденции в мировом программировании и отбрасывая отмирающие конструкции своего синтаксиса – стандарты 66, 77, 90, 95.

Программу моделирования можно разработать как в варианте «под DOS», так и в варианте «под Windows». И здесь выбор варианта программы моделирования является вопросом личных пристрастий и традиций.

Для разработки варианта «под DOS» могут использоваться компиляторы фирмы Microsoft MsFortran 4.0 (стандарт 77), 5.0 (стандарт 90), 5.1 (стандарт 90). Последние два имеют в своем составе графическую библиотеку. Тем не менее, можно рекомендовать версию 4.0 как более «мощную», позволяющую создавать большие по объему модели. А для построения графиков в этом случае целесообразно использовать дополнительные библиотеки графических подпрограмм и функций, например, «Графор».

Для разработки варианта «под Windows» могут использоваться пакеты MsFortran PowerStation 4.0, Compaq Fortran 6.1, 6.5, причем все они в процессе инсталляции интегрируются в среду Microsoft Visual Studio.

^ 1.2.3.2. Си, Паскаль, Бейсик
При моделировании мехатронных систем на языках Си и Паскаль используются те же пакеты, что и при создании программы контроля и настройки. При моделировании на языке Бейсик целесообразно использовать Visual Basic, входящий в состав пакета Visual Studio.
^ 2. Технология отладки мехатронной системы с МПК 2.1. Варианты построения программно-аппаратных комплексов для отладки мехатронной системы с МПК

Рассмотрим два типовых варианта построения программно-аппаратных комплексов для отладки мехатронной системы с МПК. Варианты различаются по технологии взаимодействия МПК с отладочными средствами.

^ 2.1.1. Программно-аппаратная эмуляция процессора
На рис.3 представлена схема аппаратно-программного комплекса отладки мехатронной системы при помощи программно-аппаратного эмулятора процессора. Этот тип отладки характерен для МПК, построенного на основе микросхемы процессора и набора микросхем периферийных устройств к нему. На рис.3 обозначено: 1-мехатронная система; 2–МПК; 3–процессор; 4–ПЗУ; 5–универсальный асинхронный приемо-передатчик (UART); 6–усилитель мощности и исполнительный двигатель мехатронной системы; 7–IBM PC №1; 8–IBM PC №2; 9–эмулятор; 10–плата эмулятора; 11–программное обеспечение эмулятора: 12–шлейф эмулятора; 13– исполняемый модуль управляющей программы МПК; 14– последовательный порт IBM PC; 15– программа настройки и контроля; 16– кабель RS-232; 17– системная шина МПК; 18-программатор.

Эмулятор подключается к МПК вместо штатного процессора, который на время отладки удаляется из системы. Подключение шлейфа эмулятора на место процессора осуществляется при помощи специального технологического разъема. Аппаратная часть эмулятора (плата 10) подключается к IBM PC №1 через системную шину последнего (ISA или PCI). Заметим, что в ряде случаев аппаратная часть эмулятора может представлять собой отдельный блок, подключаемый к IBM PC через USB интерфейс, что позволяет использовать для отладки любой тип IBM PC, включая и ноутбук. В процессе работы эмулятор полностью заменяет собой процессор МПК («эмулирует его работу») и при помощи своего программного обеспечения отражает текущее состояние «эмулируемого» процессора (регистры, порты ввода/вывода) и связанной с ним периферии (ОЗУ, ПЗУ), а также обеспечивает пошаговое выполнение управляющей программы МПК, т.е. выполняет функции отладчика. Однако, если ограничить отладочный комплекс только одним IBM PC с эмулятором, то не возможно в полном объеме отладить управляющую программу МПК.



Для полноценной отладки необходимо формирование различных команд для мехатронной системы, что достигается включением в комплекс второго IBM PC с программой настройки и контроля. Второй IBM PC соединяется с UART МПК через канал последовательной асинхронной связи RS-232. В этом случае при помощи программы настройки и контроля, загруженной в IBM PC №2, можно управлять работой всей мехатронной системы, посылая в нее управляющие команды и получая ответную реакцию, а при помощи эмулятора следить за работой управляющей программы МПК, т.е. за детальным выполнением посылаемых команд в мехатронной системе. Наличие программы настройки и контроля позволяет накапливать массивы данных о работе мехатронной системы, и после обработки представлять их в виде удобном для анализа. Очевидно, что программа настройки и контроля и управляющая программа МПК должны быть взаимосвязаны, т.е. алгоритмически и программно соответствовать друг другу. На рис.4 представлен пример фрагмента схемы взаимодействия программы настройки и контроля в IBM PC №2 и управляющей программой в МПК.




Для отладки управляющая программа в виде исполняемого модуля загружается в эмулятор. После окончания отладки эмулятор меняют на штатный процессор, а управляющая программа в виде исполняемого модуля записывается («прошивается») в ПЗУ с помощью специального устройства, называемого программатором.
^ 2.1.2. Программная отладка
На рис.5 представлена схема аппаратно-программного комплекса отладки мехатронной системы при помощи программного отладчика. Этот тип отладки характерен для МПК, построенного на основе микроконтроллера.



На рис.5 обозначено: 1-мехатронная система; 2–МПК; 3–микроконтроллер; 4–ПЗУ; 5–универсальный асинхронный приемо-пере­датчик (UART); 6–усилитель мощности и исполнительный двигатель меха­тронной системы; 7–IBM PC №1; 8–IBM PC №2; 9–программный отладчик; 10- последовательный асинхронный порт микроконтроллера; 11-программа записи исполняемого модуля в ПЗУ МПК; 12, 16–кабели RS-232; 13–испол­няемый модуль управляющей программы МПК; 14-последовательный порт IBM PC; 15–программа настройки и контроля; 17-системная шина МПК.

В целом отладка мехатронной системы по второму варианту (рис.5) идентична отладке по первому варианту (рис.3), но отличается тем, что не требует замены штатного микроконтроллера, а отладчик представляет собой чисто программный продукт. Если в качестве ПЗУ используются современ­ные микросхемы Flash-памяти (например, типа 29F010, 29040), то для записи («прошивки») исполнительного модуля управляющей программы в ПЗУ применяются также программные средства, а не программаторы.

2.2. Программатор


Программатор предназначен для работы с исполняемым кодом в соот­ветствующих ПЗУ или в микроконтроллерах. Под работой понимаются про­цедуры записи, чтения или сравнения кодов. Рассмотрим типовой програм­матор на примере универсального программатора «AllMax» («AllMax+»).
Программатор состоит из трех компонентов:

Платы расширения в IBM PC (для системной шины ISA или PCI);

Блока прошивки (собственно программатора);

Программного обеспечения для IBM PC.

Блок прошивки соединяется специальным шлейфом с платой расширения в IBM PC, в который загружается программное обеспечение программатора. При помощи программного обеспечения выбирается тип микросхемы, с ко­торой работают, вид операции (чтение, запись, сравнение) и области памяти микросхемы, в которых предполагается обработка данных. На блоке про­шивки расположены несколько посадочных мест (socket) под разные типы микросхем. Посадочные места позволяют работать с микросхемами, имею­щими socket типа ZIP (48 pin) или типа SIM (24,28,32,40 pin). Сам программатор понимает следующие типы ПЗУ:

EPROM (перезаписываемая с ультрафиолетовым стиранием);

EEPROM (перезаписываемая с электрическим стиранием);

^ FLASH EPROMS;

PLD (программируемая логическая матрица);

Микроконтроллеры (Intel 87xx, Motorola 68H711xx, Zilog Z86Exx и т.д.).

Программатор поддерживает следующие форматы исполняемого кода:

Двоичный («.BIN»);

Шестнадцатеричный («.HEX») для Intel, Motorola, Tektronix.

Следует заметить, что в ряде других типов программаторов плата расширения может отсутствовать и тогда блок прошивки соединяется с IBM PC по стандартному последовательному или параллельному интерфейсам.

^ 2.3. Форматы исполняемых кодов
Тип исполняемого кода определяется компилятором (линковщиком). В программном обеспечении, связанном с отладкой и перепрограммированием МПК, используются два формата:

Двоичный (расширения - «.BIN», «.COM», «.PGM»);

Шестнадцатеричный (расширение - «.HEX»).

^ 2.3.1. Двоичный формат
Как отмечалось выше, тело файла с расширениями «.C0M», «.BIN» или «.PGM» представляет собой двоичный образ программы, т.е. содержит набор кодов машинных инструкций, буквально соответствующих последовательности мнемонических команд ассемблера в исходном тексте. В силу этого при программировании МПК исполнительный модуль в виде файла с указанными расширениями может быть сразу «прошит» в ПЗУ.

В операционных средах DOS и Windows платформы Intel существует два типа исполняемых файлов: «.C0M» и «.EXE. Структура файлов с расширениями «.C0M» и «.EXE» представлено на рис.6а. Размер файла «.C0M» не превышает одного сегмента (64K), а размер файла «.EXE» не ограничен по числу сегментов.

Тело файла «.EXE» представляет собой образ задачи, которую построил линковщик, т.е. последовательное сочетание нескольких сегментов – кода, данных, стека, и имеет в начале файла заголовок, размером 512 байт. Заголовок состоит из стандартной части (форматированной зоны) и таблицы настройки адресов (таблицы размещения сегментов). Стандартная часть содержит признак файла «.EXE» - код ‘MZ’ и информацию, позволяющую вычислить размер программы и начальные значения кодового сегмента, сегмента стека и счетчика команд, необходимые для загрузки программы в ОЗУ.





Так, со смещением +2 в стандартной части содержится (2 байта) число байт part_page в последней странице файла (страница равна 512 байт). Со смещением +4 содержится (2 байта) размер программы file_size в страницах. Очевидно, что размер любой программы с расширением «.EXE» вычисляется в байтах как file_size*512+ part_page-512, где последнее вычитаемое есть размер заголовка.

После загрузки в ОЗУ под управлением операционной среды исполняемый модуль программы представляет собой последовательное расположение префикса программного сегмента PSP (Program Segment Prefix) размером 256 байт и загрузочного модуля (рис.6б). Префикс программного сегмента содержит служебную информацию для операционной системы. Для файла с расширением «.C0M» загрузочный модуль совпадает с двоичным образом программы, для файла с расширением «.EXE» он изменяется в соответствии с таблицей настройки адресов.

Так как префикс программного сегмента имеет размер 256 байт (100h), то для правильного старта файла с расширением «.C0M» в операционной среде указатель команд процессора должен быть настроен на стартовый адрес 100h. Это достигается использованием директивы управления адресом «.ORG». Пример начального фрагмента программы с расширением «.C0M» на ассемблере выглядит так:

^ CODE SEGMENT

ASSUME CS:CODE

.ORG 100h

START: ………….. ;Точка старта программы

…………..

CODE ENDS

END START

Отсутствие указанной директивы приведет к генерации ошибки линковщика.

^ 2.3.2. Шестнадцатеричный формат
Шестнадцатеричный формат характерен для кросс-ассемблеров и представляет собой файл, в котором в текстовом символьном виде записана двоичная информация. Файл разбивается на записи (ASCII-строки) со своими адресами загрузки и контрольными суммами. Каждая запись начинается с поля маркера записи и кончается полем контрольной суммы. Всякая информация, размещенная после поля контрольной суммы до маркера следующей записи, игнорируется.

Существует несколько разновидностей шестнадцатеричного формата, например: Intel-83, Intel-86, Intel-386, Motorola, Tektronix. Рассмотрим две из них.

^ 2.3.2.1. Intel HEX-86
Каждая запись состоит из 6 последовательно расположенных полей. Поле данных имеет переменную длину. Параметры каждого поля представлены в таблице 1.

Таблица 1





Поле


Длина в байтах


Позиция в записи


Описание


1


Маркер записи


1


1


Символ ‘:’ (код 3Ah)


2


Количество байт в записи


2


2 - 3

Количество байт данных

00-признак конца файла


3


Адрес загрузки



4


4 - 7

Начальный адрес загрузки данных текущей записи



4


Тип записи



2


8 - 9

00-двоичные данные

01-конец файла

02-номер параграфа

04-номер сегмента


5


Данные



-


10 - n


По два шестнадцатеричных символа на каждый байт исходной информации, указанной в поле 2


6


Контрольная сумма



2


(n+1) – (n+2)

Контрольная сумма как дополнение до 0 суммы по модулю 256 всех байт в полях 2-5


Для последней записи, содержащей признак конца файла, адрес загрузки используется как адрес старта программы.

Пример 1 записи Intel-86 (в символьном коде):

: 02 0210 00 FB88 69

Здесь: 02h – количество байт данных в записи; 0210h-адрес загрузки; 00h-тип записи (двоичные данные); FB88h-данные; 69h-контрольная сумма.

Пример 2 записи Intel-86 (в символьном коде):

: 00 0000 01 FF

Здесь: 00h – признак конца файла; 0000h-адрес старта программы; 01h-тип записи (конец файла); FFh-контрольная сумма.

^ 2.3.2.2. Motorola S HEX
Каждая запись состоит из 6 последовательно расположенных полей. Поля адреса загрузки и данных имеют переменную длину. Параметры каждого поля представлены в таблице 2.

Таблица 2





Поле



Длина в байтах


Позиция в записи



Описание


1


Индикатор



1


1


Символ ‘S’ (код 53h)


2


Тип записи



1


2


0-заголовок

1 - 16р адресация

2 - 24р адресация

3 - 32р адресация

9 – конец файла


3


Количество байт в записи



2


3 - 4

Со следующего поля (4) до поля контрольной суммы (6) включительно


4


Адрес загрузки



4 – 8


5 - x

x=08 – для 16р адресации

x=10 – для 24р адресации

x=12 – для 32р адресации


5


Данные



-


(x+1) - n

По два шестнадцатеричных символа на каждый байт исходной информации


6



Контрольная сумма


2


(n+1) – (n+2)


Дополнение до 1 суммы по модулю 256 полей

3 - 5


Пример записи Motorola S HEX (в символьном коде):

S 9 03 0000 FC

Здесь: 9h – тип записи (конец файла); 03h-количество данных в полях 4-6; 0000h-адрес; FCh-контрольная сумма.

^ 3. Разработка управляющей программы МПК 3.1. Блок-схема управляющей программы
Исходным материалом для разработки управляющей программы МПК является блок-схема алгоритмического обеспечения мехатронной системы, разработанная на этапе синтеза мехатронной системы. Организацию работы управляющей программы МПК можно проиллюстрировать соответствующей блок-схемой управляющей программы. Сочетание блок-схемы алгоритмического обеспечения и блок-схемы управляющей программы дает достаточно полное представление о работе управляющей программы.

На рис.7 представлен типовой вариант блок-схемы управляющей программы МПК. На рис.7 обозначено: 1-подача питания на МПК; 2-инициализация управляющей программы; 3-фоновый режим работы управляющей программы (метка WAIT:); 4-одна или несколько команд «пусто» (NOP); 5-перезагрузка сторожевого таймера; 6-команда безусловного перехода на метку фонового режима (JMP WAIT); 7-сторожевой таймер; 8 – 10-внешние устройства (события), вызывающие прерывание работы процессора МПК; 11-контроллер прерываний; IRQ1-IRQn – запросы на прерывания от внешних устройств (событий); IR1 – IRn - сигналы прерываний; ISR1-ISRn – программы обработки соответствующих прерываний.

Запуск управляющей программы происходит автоматически при подаче питания на МПК (1) или при перезапуске сторожевого таймера (7). Сразу начинается этап инициализации (2), в котором происходит настройка периферийного оборудования МПК, необходимая для его согласованной работы. Обычно инициализация включает:

Тестирование (необязательное) арифметическо-логического устройства процессора, ОЗУ, контрольной суммы ПЗУ;

Очистку ОЗУ;

Инициализацию стека;

Инициализацию сторожевого таймера или его отключение;

Загрузку управляющих слов и констант счета в таймеры;

Загрузку управляющих слов в контроллер прерываний;

Установку векторов прерываний;

Установку начальных значений коэффициентов и постоянных времени, а также вспомогательных переменных (флагов) мехатронной системы.

На время инициализации все прерывания в МПК должны быть запрещены. Инициализация заканчивается разрешением прерываний и переходом в фоновый режим работы (3).

Фоновый режим представляет собой бесконечный замкнутый цикл из ряда «пустых» команд (4) и команды безусловного перехода (6). Если в МПК используется сторожевой таймер, то в фоновом режиме происходит его обязательная перезагрузка константой счета (5).

Сторожевой таймер (7) предназначен для устранения последствий «зависания» процессора в процессе работы. Если процессор «завис», то в фоновом цикле сторожевой таймер не будет перезагружен и, следовательно, выполнит свой счет до конца. Тогда после окончания счета сторожевой таймер произведет принудительную перезагрузку процессора.

В моменты появления n-го сигнала прерывания ^ IRn происходит переход управляющей программы из фонового режима на выполнение соответствующей программы обработки прерываний (ПОП) ISRn. После окончания ее выполнения управляющая программа возвращается в фоновый режим. Контроль над запросами прерываний IRQn и выработку сигналов прерываний IRn осуществляет контроллер прерываний (11). По существу весь алгоритм управления мехатронной системы реализуется в виде совокупности указанных ПОП. При этом одной из важнейших функций контроллера прерываний является организация порядка выполнения всех ПОП мехатронной системы.


3.2. Прерывания
Как видно из блок-схемы управляющей программы (рис.7) прерывания являются ключевым моментом в организации работы управляющей программы МПК.

^ 3.2.1. Общие сведения
Прерывание – это программно-аппаратный процесс, активируемый сигналом, который генерирует программа или оборудование. Соотве
еще рефераты
Еще работы по разное