Проектирование алгоритмического и программного обеспечения

advertisement
1
`
Проектирование алгоритмического и программного
обеспечения мехатронных систем
Бошляков А. А., Овсянников С. B.
2
Обязательным компонентом любой современной мехатронной системы
является микропроцессорная система, реализующая алгоритмы управления
системы программным способом. В пособии излагаются этапы и подходы к
проектированию алгоритмического и программного обеспечения для микропроцессорных систем мехатронных систем.
Для студентов, изучающих курс «Проектирование мехатронных систем».
Рецензент: Нечаев Л.Д.
3
Введение
Обязательным компонентом любой современной мехатронной системы
является микроЭВМ, реализующая алгоритмы управления системы программным способом. Наиболее часто такие микроЭВМ представляют собой
один или несколько микропроцессорных контроллеров (МПК). Под микропроцессорным контроллером принято понимать функционально законченную совокупность микропроцессора и связанных с ним периферийных
устройств, таких как, оперативные запоминающие устройства (ОЗУ) памяти,
постоянные запоминающие устройства (ПЗУ) памяти, таймеры, контроллеры
прерываний и системной шины, порты ввода-вывода, аналого-цифровые преобразователи (АЦП) и цифро-аналоговые преобразователи (ЦАП), разнообразные универсальные асинхронные (UART, CAN) и синхронные приемопередатчики (SPI, I2C), супервизоры питания и т.д. Микропроцессорный контроллер может быть реализован как в виде электронного блока на основе
микросхемы микропроцессора и соответствующих ему микросхем периферийных устройств, так и в виде однокристального микроконтроллера (как с
набором дополнительных микросхем периферийных устройств, так и без
них). Примером первого варианта реализации МПК для мехатронных систем
могут служить микропроцессорные контроллеры на базе 16-разрядного микропроцессора Intel 8086 и набора микросхем периферийных устройств, предназначенных для работы с ним (отечественные аналоги - микропроцессор
К1810ВМ86 и комплект БИС 1810). Примером второго варианта могут служить однокристальные 8-разрядный микроконтроллер Intel MСS51 и 16разрядный микроконтроллер MCS196, а также однокристальные 16разрядные микроконтроллеры семейства Siemens SAB C167.
Как правило, использование 8-разрядных МПК в мехатронных системах оправдано только для «простых» систем, имеющих низкую динамику и
невысокую точность. В остальных случаях необходимо использовать 16разрядные МПК. Практика показывает, что реализация корректирующих
4
устройств в высокоточных мехатронных системах, например, в системах
наведения антенных установок, с использованием 16-разрядных МПК, требует работы с двойным словом, т.е. по сути, речь идет о необходимости 32разрядной реализации корректирующих устройств. Однако, использование
32-разрядных МПК в мехатронных системах не получило массового распространения из-за более «слабого» набора периферийных устройств в 32разрядных микроконтроллерах по сравнению с 16-разрядными.
В силу вышеизложенного представленный материал по проектированию алгоритмического и программного обеспечения мехатронных систем излагается применительно к системам с 16-разрядными МПК на основе микропроцессоров Intel 80x86 и однокристальных микроконтроллеров семейства
Siemens SAB C167 (и их аналогов – микроконтроллеров семейств Infineon
C167 и ST Microelectronics ST10CT167).
1. Процесс проектирования мехатронной системы с микропроцессорным контроллером
1.1. Этапы проектирования мехатронной системы с МПК
В общем случае процесс проектирования мехатронной системы с МПК
с точки зрения создания ее программного и алгоритмического обеспечения
можно изобразить в виде схемы на рис.1, содержащей семь основных этапов.
Рассмотрим их, отметив в скобках их возможное соответствие реальным этапам разработки изделия.
Этап 1. Анализ технического задания (аван-проект).
Содержанием этапа является:
- определение структурного построения мехатронной системы;
- определение функционального построения мехатронной системы;
- выбор элементной базы системы, в том числе выбор МПК;
- определение перечня корректирующих устройств и законов управления, которые предполагается реализовать в МПК.
5
Этап 2. Синтез мехатронной системы (эскизный, технический проекты).
Этап синтеза (в широком смысле) можно представить в виде пяти шагов:
- энергетический расчет силовой части мехатронной системы;
- разработка математической модели неизменяемой части мехатронной
системы;
- «ручной» синтез (синтез в узком смысле) мехатронной системы;
- моделирование мехатронной системы;
- разработка блок-схемы алгоритмического обеспечения мехатронной
системы.
Содержанием первого шага является окончательный выбор исполнительного устройства, рассмотренного на этапе анализа технического задания.
Второй шаг состоит в разработке простейшей математической модели
для проведения «ручного» синтеза без учета всех особенностей, вносимых
МПК. Естественным представляется вариант создания модели в виде структуры с фазовыми координатами.
Третий шаг представляет собой синтез линейной системы традиционными «ручными» методами, например, частотными, желательно с применением программного обеспечения для автоматизации расчетов и построения
«точных» частотных характеристик (например, с помощью программы
«Matcad»). Из всех особенностей, вносимых МПК в динамику системы, здесь
целесообразно учитывать только квантование по времени. Шаг заканчивается определением передаточных функций корректирующих устройств и законов управления исполнительным устройством, которые являются исходной
точкой для последующего моделирования.
Четвертый шаг состоит в моделировании мехатронной системы с МПК
с помощью программной модели, реализованной на персональном компьютере. Обязательным условием адекватности модели реальной системе является отражение особенностей, вносимых МПК:
- квантования по времени;
6
- квантования по уровню;
- ограничения разрядной сетки в МПК и в периферийных устройствах,
например в АЦП и ЦАП.
В силу этого процессы, происходящие в МПК, необходимо моделировать в виде кодов с целочисленными значениями. Кроме этого в случае использования маломощного МПК может возникнуть необходимость моделирования времени выполнения управляющей программы МПК.
По существу программная модель представляет собой средство разработки мехатронной системы с МПК, без которого не возможно спроектировать полноценное программное обеспечение для нее.
Возможно два варианта создания программной модели. Первый состоит в использовании универсальных прикладных пакетов моделирования систем автоматического управления, например, Matlab фирмы MathWorks. К
сожалению, в большинстве случаев прикладные пакеты не позволяют в полной мере смоделировать все особенности «сложных» мехатронных систем.
Однако последние версии Matlab (6.5 и 7) уже в значительной мере удовлетворяют потребностям высокоточных систем. Тем не менее, недостатком такого подхода является, как правило, отсутствие информации о допущениях,
принятых в модели, и о пределах ее реальных возможностей, что может приводить к искаженным результатам. Второй вариант состоит в создании собственной программы моделирования («под себя») для конкретной мехатронной системы. Этот вариант в принципе позволяет исследовать все тонкости
мехатронной системы, но и более трудоемок, чем первый вариант.
Пятый шаг состоит в разработке блок-схемы алгоритмического обеспечения мехатронной системы. Блок-схема представляет собой графическое
отображение программно-аппаратной реализации структурного построения
мехатронной системы в виде взаимодействия источников прерываний и программ обработки этих прерываний. Блок-схема служат исходным материалом
для разработки управляющей программы МПК.
7
Этап 3. Разработка программы настройки и контроля мехатронной системы (технический, рабочий проекты).
Целью разработки программы настройки и контроля мехатронной системы является создание средства, позволяющего автономно (вне изделия)
через персональный компьютер отлаживать и контролировать работу мехатронной системы с МПК, причем без «перепрошивки» ПЗУ в случае изменения параметров корректирующих устройств, и по командам, имитирующим работу изделия.
Этап 4. Разработка управляющей программы МПК (рабочий проект).
Целью разработки управляющей программы МПК является программная реализация корректирующих устройств и законов управления МПК.
Очевидно, что между управляющей программой МПК и программой
настройки и контроля должно существовать однозначное соответствие.
Этап 5. Отладка мехатронной системы с МПК с помощью контрольнопроверочной аппаратуры (автономные испытания).
Целью этапа является предварительная отладка программноаппаратного обеспечения мехатронной системы. По результатам этого этапа
возможна доработка программного обеспечения мехатронной системы.
Этап 6. Отладка мехатронной системы с МПК в составе изделия (испытания в составе изделия).
Целью этапа является окончательная отладка программноаппаратного обеспечения мехатронной системы.
Этап 7. Сдача заказчику (натурные испытания).
Целью этапа является сдача мехатронной системы заказчику.
Среди вышеперечисленных этапов наибольший интерес для проектирования алгоритмического и программного обеспечения мехатронной системы
представляют этапы 3 - 5, которые в основном далее и рассматриваются.
8
Этап 1
Анализ ТЗ
Этап 3
Разработка
программы
настройки
и контроля
Этап 2
Синтез
мехатронной
системы
Этап 4
Разработка
управляющей
программы МПК
Этап 5
Отладка
мехатронной
системы
с помощью КПА
(автономные
испытания)
Этап 6
Отладка
мехатронной
системы в составе
изделия
(испытания
в составе
изделия)
Этап 7
Сдача заказчику
(натурные
испытания)
Рис.1
1.2. Обзор программных средств, используемых при проектировании мехатронных систем с МПК
Основным средством получения конечного программного продукта –
исполняемого модуля - является компилятор. Под компилятором понимается специальная программа, переводящая исходные тексты на конкретном
языке программирования или сразу в исполняемый модуль, содержащий коды машинных команд данного процессора (микроконтроллера), или в промежуточный формат, т.н. объектный модуль. В последнем случае для получения исполняемого модуля требуется применение еще одной специальной
9
программы - линковщика. Линковщик позволяет сформировать конечный
исполняемый модуль путем объединения нескольких отдельных объектных
модулей. На рис.2 представлена схема процесса создания исполняемого модуля, где библиотекарь представляет собой специальную программу для обслуживания объектных модулей в виде библиотек. Часто под термином компилятор понимается пакет, состоящий из собственно компилятора, линковщика и библиотекаря, что и будем использовать далее в тексте. При этом в
качестве платформы функционирования всех программных средств будем
подразумевать Intel платформу в виде IBM совместимых персональных компьютеров.
1.2.1. Управляющая программа МПК
Для разработки управляющей программы МПК в настоящее время используются практически только два языка программирования – ассемблер и
Си. Это определяется широким распространением компиляторов только этих
двух языков при программировании различных процессоров и микроконтроллеров. Что касается других языков, например, Forth, то он не получил
широкого распространения.
1.2.1.1. Ассемблер
Ассемблером принято называть машинно-ориентированный язык, в котором каждой мнемонической команде соответствует одна машинная инструкция (за исключением макрокоманд). Макроассемблером называется ассемблер, в котором используется механизм макроподстановок (макрокоманд). Суть макроподстановки состоит в замене на первом шаге компиляции
символьного имени макрокоманды соответствующим ему блоком программного кода. Преимуществом ассемблера над другими языками является минимальный размер исполняемого модуля и максимальное быстродействие.
Применение ассемблера требует глубокого знания архитектуры и логики
МПК и предъявляет повышенные требования к программисту.
10
Текстовый
процессор
Файл исходного
текста (.ASM)
Компилятор
Файл ошибок (.ERR)
Объектный файл 2
(.OBJ)
Файл листинга (.LST)
Объектный файл 1
(.OBJ)
Библиотекарь
Файл библиотеки
(.LIB)
Линковщик
Двоичный файл
(.BIN)
Шестнадцатеричный
файл
(.HEX)
Рис.2
Для разработки управляющей программы для МПК на основе процессоров Intel 80x86 подходит практически любой 16-разрядный компилятор,
ориентированный на аппаратную платформу Intel, например, фирмы Microsoft (MASM, версии 5.10, 6.10), фирмы Borland (TASM, версии 2.0, 2.5).
Указанные компиляторы поддерживают работу из командной строки (отсутствует графический интерфейс), а результирующие файлы по умолчанию
имеют расширение “.EXE”. Для соответствия формату исполняемого модуля
процессора результирующий файл должен представлять собой двоичный образ управляющей программы, т.е. иметь расширение “.BIN” или “.COM”. Это
достигается или применением линковщика со специальным ключом (для
11
линковщика 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. Си
Язык Си относится к языкам высокого (по отношению к ассемблеру)
уровня, но из-за своей способности работать с аппаратурой МПК с такой же
эффективностью, как и ассемблер, получил название «ассемблер высокого
уровня». Преимуществом Си над ассемблером является уменьшение трудоемкости разработки управляющей программы при незначительном снижении
ее быстродействия. Однако использование Си по-прежнему требует глубокого знания архитектуры и логики МПК, а также особенностей модификации
языка Си конкретного компилятора, специфичных для данного типа микропроцессора или микроконтроллера.
12
Количество компиляторов Си для микропроцессоров и микроконтроллеров существенно меньше, чем для ассемблера. Большое распространение
получила интегрированная среда разработки (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» имеет графический
интерфейс, более приятный для пользователя, но не допускает программиста
13
к внутренним ресурсам 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. Моделирование мехатронной системы с МПК
Для создания собственной программы моделирования конкретной мехатронной системы подходят несколько языков программирования - Фортран, Си, Паскаль, Бейсик. Наибольшее распространение здесь получили
Фортран и Паскаль.
14
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.
15
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, включая и ноутбук. В процессе рабо-
16
ты эмулятор полностью заменяет собой процессор МПК («эмулирует его работу») и при помощи своего программного обеспечения отражает текущее
состояние «эмулируемого» процессора (регистры, порты ввода/вывода) и
связанной с ним периферии (ОЗУ, ПЗУ), а также обеспечивает пошаговое
выполнение управляющей программы МПК, т.е. выполняет функции отладчика. Однако, если ограничить отладочный комплекс только одним IBM PC с
эмулятором, то не возможно в полном объеме отладить управляющую программу МПК.
1
7
2
9
12
11
10
3
17
18
4
6
13
8
16
15
14
5
Рис.3
Для полноценной отладки необходимо формирование различных команд для мехатронной системы, что достигается включением в комплекс
второго IBM PC с программой настройки и контроля. Второй IBM PC соединяется с UART МПК через канал последовательной асинхронной связи RS232. В этом случае при помощи программы настройки и контроля, загружен-
17
ной в IBM PC №2, можно управлять работой всей мехатронной системы, посылая в нее управляющие команды и получая ответную реакцию, а при помощи эмулятора следить за работой управляющей программы МПК, т.е. за
детальным выполнением посылаемых команд в мехатронной системе. Наличие программы настройки и контроля позволяет накапливать массивы данных о работе мехатронной системы, и после обработки представлять их в виде удобном для анализа. Очевидно, что программа настройки и контроля и
управляющая программа МПК должны быть взаимосвязаны, т.е. алгоритмически и программно соответствовать друг другу. На рис.4 представлен пример фрагмента схемы взаимодействия программы настройки и контроля в
IBM PC №2 и управляющей программой в МПК.
Программа
настройки
и контроля
Управляющая
программа МПК
RS-232
Команда А
Расшифровка
подтверждения
RS-232
Подтверждение
Выполнение
команды А
Ожидание
Накопление
и обработка
Расшифровка
команды А
RS-232
Вывод
результатов
на дисплей
Рис.4
Выводы
результата
18
Для отладки управляющая программа в виде исполняемого модуля загружается в эмулятор. После окончания отладки эмулятор меняют на штатный процессор, а управляющая программа в виде исполняемого модуля записывается («прошивается») в ПЗУ с помощью специального устройства, называемого программатором.
2.1.2. Программная отладка
На рис.5 представлена схема аппаратно-программного комплекса отладки мехатронной системы при помощи программного отладчика. Этот
тип отладки характерен для МПК, построенного на основе микроконтроллера.
1
2
7
12
9
10
10
3
11
17
6
13
4
8
16
15
5
14
Рис.5
На рис.5 обозначено: 1-мехатронная система; 2–МПК; 3–
микроконтроллер; 4–ПЗУ; 5–универсальный асинхронный приемо-передатчик (UART); 6–усилитель мощности и исполнительный двигатель меха-
19
тронной системы; 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) под разные типы
микросхем. Посадочные места позволяют работать с микросхемами, имею-
20
щими 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» представляет собой двоичный образ программы, т.е. содержит набор
кодов машинных инструкций, буквально соответствующих последовательности мнемонических команд ассемблера в исходном тексте. В силу этого при
программировании МПК исполнительный модуль в виде файла с указанными
расширениями может быть сразу «прошит» в ПЗУ.
21
В операционных средах DOS и Windows платформы Intel существует
два типа исполняемых файлов: «.C0M» и «.EXE. Структура файлов с расширениями «.C0M» и «.EXE» представлено на рис.6а. Размер файла «.C0M» не
превышает одного сегмента (64K), а размер файла «.EXE» не ограничен по
числу сегментов.
Тело файла «.EXE» представляет собой образ задачи, которую построил линковщик, т.е. последовательное сочетание нескольких сегментов – кода,
данных, стека, и имеет в начале файла заголовок, размером 512 байт. Заголовок состоит из стандартной части (форматированной зоны) и таблицы
настройки адресов (таблицы размещения сегментов). Стандартная часть содержит признак файла «.EXE» - код ‘MZ’ и информацию, позволяющую вычислить размер программы и начальные значения кодового сегмента, сегмента стека и счетчика команд, необходимые для загрузки программы в ОЗУ.
Код и данные
(тело программы)
Файл .COM
Тело программы
Файл .EXE
Заголовок
Сегмент
данных
Сегмент
стека
Сегмент
кода
а.
ОЗУ
PSP
Загрузочный модуль
б.
Рис.6
22
Так, со смещением +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
Отсутствие указанной директивы приведет к генерации ошибки линковщика.
23
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
2
Количество
байт в записи
2
2-3
Символ ‘:’ (код 3Ah)
Количество байт данных
00-признак конца файла
4-7
Начальный адрес загрузки данных текущей записи
3
Адрес загрузки
4
Описание
4
Тип записи
2
8-9
00-двоичные данные
01-конец файла
02-номер параграфа
04-номер сегмента
5
Данные
-
10 - n
По два шестнадцатеричных
символа на каждый байт исход-
24
6
Контрольная
сумма
ной информации, указанной в
поле 2
Контрольная сумма как дополнение до 0 суммы по модулю
256 всех байт в полях 2-5
(n+1) –
(n+2)
2
Для последней записи, содержащей признак конца файла, адрес загрузки используется как адрес старта программы.
Пример 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
2
Тип записи
1
2
3
Количество байт в
2
3-4
Описание
Символ ‘S’ (код 53h)
0-заголовок
1 - 16р адресация
2 - 24р адресация
3 - 32р адресация
9 – конец файла
Со следующего поля (4)
до поля контрольной
25
записи
суммы (6) включительно
4
Адрес загрузки
4–8
5-x
5
Данные
-
(x+1) - n
6
Контрольная сумма
2
(n+1) –
(n+2)
x=08 – для 16р адресации
x=10 – для 24р адресации
x=12 – для 32р адресации
По два шестнадцатеричных символа на каждый
байт исходной информации
Дополнение до 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-команда безусловного пере-
26
хода на метку фонового режима (JMP WAIT); 7-сторожевой таймер; 8 – 10внешние устройства (события), вызывающие прерывание работы процессора
МПК; 11-контроллер прерываний; IRQ1-IRQn – запросы на прерывания от
внешних устройств (событий); IR1 – IRn - сигналы прерываний; ISR1-ISRn
– программы обработки соответствующих прерываний.
Запуск управляющей программы происходит автоматически при подаче
питания на МПК (1) или при перезапуске сторожевого таймера (7). Сразу
начинается этап инициализации (2), в котором происходит настройка периферийного оборудования МПК, необходимая для его согласованной работы.
Обычно инициализация включает:
 Тестирование (необязательное) арифметическо-логического устройства
процессора, ОЗУ, контрольной суммы ПЗУ;
 Очистку ОЗУ;
 Инициализацию стека;
 Инициализацию сторожевого таймера или его отключение;
 Загрузку управляющих слов и констант счета в таймеры;
 Загрузку управляющих слов в контроллер прерываний;
 Установку векторов прерываний;
 Установку начальных значений коэффициентов и постоянных времени,
а также вспомогательных переменных (флагов) мехатронной системы.
На время инициализации все прерывания в МПК должны быть запрещены.
Инициализация заканчивается разрешением прерываний и переходом в фоновый режим работы (3).
Фоновый режим представляет собой бесконечный замкнутый цикл из
ряда «пустых» команд (4) и команды безусловного перехода (6). Если в МПК
используется сторожевой таймер, то в фоновом режиме происходит его
обязательная перезагрузка константой счета (5).
Сторожевой таймер (7) предназначен для устранения последствий «зависания» процессора в процессе работы. Если процессор «завис», то в фоновом цикле сторожевой таймер не будет перезагружен и, следовательно, вы-
27
полнит свой счет до конца. Тогда после окончания счета сторожевой таймер
произведет принудительную перезагрузку процессора.
В моменты появления n-го сигнала прерывания IRn происходит переход управляющей программы из фонового режима на выполнение соответствующей программы обработки прерываний (ПОП) ISRn. После окончания
ее выполнения управляющая программа возвращается в фоновый режим.
Контроль над запросами прерываний IRQn и выработку сигналов прерываний IRn осуществляет контроллер прерываний (11). По существу весь алгоритм управления мехатронной системы реализуется в виде совокупности
указанных ПОП. При этом одной из важнейших функций контроллера прерываний является организация порядка выполнения всех ПОП мехатронной
системы.
1
7
2
3
WAIT
4
ISR1
11
IR1
IRQ1
IRQ2
ISR2
ISRn
IR2
IRQn
IRn
5
6
Рис.7
8
9
10
28
3.2. Прерывания
Как видно из блок-схемы управляющей программы (рис.7) прерывания
являются ключевым моментом в организации работы управляющей программы МПК.
3.2.1. Общие сведения
Прерывание – это программно-аппаратный процесс, активируемый
сигналом, который генерирует программа или оборудование. Соответственно
существует два типа прерываний:
1. Программные;
2. Аппаратные.
В свою очередь аппаратные прерывания в зависимости от источника возникновения (по отношению к процессору) могут быть:
 Внутренние:
 Внешние.
С механизмом прерываний связано понятие вектора прерывания. Вектор прерываний – это некоторая область памяти (адрес), к которой происходит обращение процессора при возникновении прерывания. Обозначается
вектор обычно так же, как и само прерывание: INT x, где x-номер прерывания. Каждому вектору прерываний соответствует своя программа обработки
прерывания. На рис.8 представлена схема типов и источников прерываний на
примере IBM PC, где INTR, NMI – аппаратные входы (pin) процессора 80x86
для сигналов соответственно контроллера прерываний и немаскируемых
прерываний.
3.2.1.1. Программные прерывания
Этот тип прерываний инициируется из текущей программы командой
вида INT x (Intel) или TRAP x (Siemens), где x-номер прерывания. Процесс
реализации программного прерывания, по сути, не отличается от процесса
29
реализации аппаратного прерывания, что подробно рассматривается в разделе 3.2.3. Назначение программных прерываний поясним на примере IBM PC
и операционной системы DOS. Здесь возможны два варианта:
 DOS Interrupt;
 BIOS Interrupt.
Аппаратные
внешние
Запросы прерываний прерывания
от внешних
устройств
IRQ 1
IRQ 2
IRQ n
Немаскируемые
прерывания
INT 2
Контроллер прерываний
(PIC)
Процессор
80x86
INTR
NMI
Схемы
прерываний
Аппаратные
внутренние
прерывания
Программные
прерывания
INT 0
Ошибка деления на 0
INT n
(n >=5)
INT 1
Пошаговый режим
INT 3
Прерывание
контрольной точки
INT 4
Переполнение
Рис.8
3.2.1.1.1. DOS Interrupt
Этот вариант программных прерываний связан с теми векторами прерываний, для которых операционная среда DOS загружает программы обработки прерываний в ОЗУ IBM PC при своем старте: INT 20h – INT 2Fh.
30
Так, вектор прерываний INT 20h завершает работу программы в среде
DOS и возвращает управление последней, вектор прерываний INT 24h осуществляет обработку критических ошибок DOS, вектора INT 25h/INT 26h
осуществляют чтение/запись жесткого диска.
Особое место занимает вектор прерываний INT 21h, который образует
семейство т.н. «функций DOS» (с номерами 00h-6Ch), предоставляющих
программисту возможность работы практически со всеми программными и
аппаратными компонентами среды DOS и IBM PC. Например:
функции 2Ah/2Bh – получить/установить системную дату;
функции 2Ch/2Dh – получить/установить системное время;
функции 3Dh/3Eh – открыть/закрыть файл;
функции 25h/35h – получить/установить вектор прерываний (т.е. соответствующий адрес) и т.д.
Пример фрагмента программы на ассемблере для получения вектора
прерываний через регистры Intel процессора (AH, AL, DX, DS) имеет вид:
MOV
AH, 25h
; номер функции
MOV
AL, xxh
; номер вектора прерываний
INT
21h
; прерывание - после выполнения этой команды
в регистрах DS:DX находится адрес (сегмент:смещение) вектора xxh.
3.2.1.1.2. BIOS Interrupt
Этот вариант программных прерываний связан с теми векторами прерываний, для которых программы обработки прерываний входят в состав
BIOS IBM PC, т.е. находятся в ПЗУ. Назначение этих прерываний состоит в
обеспечении начального старта IBM PC до момента загрузки операционной
системы. По своим функциональным возможностям эти прерывания аналогичны DOS прерываниям. Так, семейство функций вектора прерываний INT
10h обслуживает видеоадаптер, INT 14h-последовательные порты IBM PC,
INT 16h-клавиатуру, INT 17h-принтер, INT 1Ah-системный таймер и т.д.
31
Пример фрагмента программы на ассемблере для посылки одного символа в последовательный порт путем использования программного прерывания имеет вид:
MOV
AH, 1
; номер функции
MOV
DX, 0
; порт COM1 (0-COM1, 1-COM2)
MOV
AL,’Z’
; выбор символа
INT
14h
; прерывание – посылка символа в порт
SHL
AH, 1
; пересылка 7р регистра AH в бит переноса CF
JZ
ERROR
; переход к метке ERROR в случае неудачи (7р
AH=1).
3.2.1.2. Аппаратные прерывания
Этот тип прерываний инициируется каким-либо устройством (внешним
или внутренним по отношению к процессору) и обрабатывается контроллером прерываний, который может представлять собой отдельную микросхему
(например, для Intel 80x86) или входить в состав микроконтроллера (например, для Siemens SAB C167). Таблица аппаратных прерываний IBM PC
представлена в таблице 3.
Таблица 3
Вектор
Сигнал преры-
Устройство
Контроллер
Приоритет
Интервальный
таймер
Клавиатура
Первый
Высший
вания IRQ
08h
0
09h
1
0Ah
2
Второй контроллер
прерываний
Первый
70h
8
Второй
71h
9
Часы реального
времени
Видеоконтроллер
Первый
Второй
32
72h
10
Резерв
Второй
73h
11
Резерв
Второй
74h
12
Резерв
Второй
75h
13
Второй
76h
14
Математический
сопроцессор
Жесткий диск
77h
15
Резерв
Второй
0Bh
3
Первый
0Ch
4
0Dh
5
Последовательный
порт COM2
Последовательный
порт COM1
Жесткий диск
0Eh
6
Floppy
Первый
0Fh
7
Принтер
Первый
Второй
Первый
Первый
Низший
3.2.2. Таблица векторов прерываний
Совокупность всех векторов прерываний образует т.н. таблицу векторов прерываний. Таблицы векторов указанных выше МПК относятся к двум
разным типам таблиц векторов.
Для таблицы векторов прерываний IBM PC (МПК на основе Intel
80x86, К1810ВМ86) характерно, что каждый вектор представляет собой полный адрес соответствующей ему программы обработки прерываний. Указанная таблица содержит 256 векторов (в т.ч. до 15 аппаратных). Примерный
вид таблицы векторов представлен в таблице 4. Область векторов 20h-FFh
называется пользовательской, т.е. предназначена для размещения векторов,
обслуживающих прерывания от различных дополнительных периферийных
устройств. Каждый вектор прерывания состоит из 2-х слов. Первое слово
(младший адрес) содержит смещение IP, второе слово (старший адрес) – ко-
33
довый сегмент CS адреса программы обработки прерываний. Вектора из таблицы 3 являются частью таблицы 4 векторов для IBM PC.
Таблица 4
Адрес вектора
0000h
Номер
вектора
прерываний
00h
Источник
прерываний
Компоненты адреса
программы обработки прерывания
Ошибка деления на 0
IP
CS
0004h
01h
Пошаговый режим
IP
CS
0008h
02h
Прерывание от NMI
IP
CS
000Ch
03h
Контрольная точка
IP
CS
0010h
04h
Переполнение
IP
CS
….
….
0080h
….
…..
….
….
….
20h
Пользовательский
IP
….
CS
….
…..
03FCh
….
….
….
….
….
FFh
Пользовательский
IP
….
CS
Для таблицы векторов прерываний микроконтроллера Siemens SAB
C167 характерно, что каждый вектор представляет собой два слова памяти,
содержимое которых не регламентировано. Обычно здесь размещают инструкцию безусловного перехода на программу обработки прерывания,
предназначенную для обслуживания соответствующего вектора. Таблица
34
векторов для микроконтроллера Siemens SAB C167 содержит 56 векторов, а
ее примерный вид представлен в таблице 5.
Таблица 5
Тип
прерывания
Адрес вектора
Номер
вектора
Прерываний
Источник прерываний
Аппаратный
0000h
00h
Аппаратный перезапуск
Программный перезапуск
Сторожевой таймер
0008h
02h
0010h
04h
Немаскируемые
прерывания
Переполнение стека
(Stack Overflow)
0012h
08h
Переполнение стека
(Stack Underflow)
0028h
0Ah
Неизвестный код
0040h
….
….
….
….
011Ch
10h
…..
…..
…..
…..
47h
Прерывания от внутренних
устройств
микроконтроллера:
таймеров,
портов,
регистров ввода/вывода
00000h
….
01FCh
00h
….
7Fh
Команда
Trap x,
x-номер вектора
прерываний
Программный
В каждой таблице прерываний адрес расположения вектора прерывания связан с его номером соотношением:
Адрес вектора = Номер вектора * Шаг таблицы векторов. В обеих
таблицах 4 и 5 шаг таблицы векторов равен 4 (байта).
35
3.2.3. Механизм прерываний
Механизм прерываний рассмотрим на примере МПК Intel 80x86. На
рис. 9 представлена схема взаимодействия процессора, таблицы векторов
прерываний и стека.
Память
Адрес
0000 h
IP
0002 h
CS
0004 h
IP
0006 h
CS
INT 0
n*4 h
CS
INT 1
IP
(n*4+2) h
INT n
CS
Таблица векторов
прерываний
Стек
Процессор
Вершина стека
Регистр IP
IP
Регистр CS
CS
Регистр FLAGS
FLAGS
Направление
освобождения
стека
Направление
заполнения
стека
Дно стека
Рис 9
Стеком называется специально выделяемая при инициализации МПК
область ОЗУ, в которой хранятся временные данные по принципу «первый
вошел - последний вышел».
Процесс прерывания работы процессора реализован аппаратно и может быть представлен в виде трех шагов.
36
Шаг 1. В момент прерывания выполнение текущей программы останавливается и в стеке запоминается вектор прерванного процесса. Вектор
прерванного процесса – это совокупность содержимого регистра флагов
FLAGS и адреса возврата к прерванной точке программы. Адрес возврата
равен содержимому счетчика команд IP и регистра кодового сегмента CS
на момент прерывания.
Шаг 2. В счетчик команд IP и в регистр кодового сегмента CS заносится содержимое ячеек памяти вектора прерываний, соответствующего номеру
возникшего прерывания. В соответствии с новым содержимым регистров IP
и CS происходит переход на программу обработки прерывания и начинается
ее выполнение.
Шаг 3. По достижении последней команды программы обработки прерываний, которой должна быть команда IRET, происходит перенос вектора
прерванного процесса из стека в соответствующие регистры процессора. В
результате восстанавливается состояние процессора на момент прерывания
и продолжается выполнение прерванной программы.
Следует заметить, что изменение содержимого регистров общего
назначения AX, BX,CX,DX в процессе прерывания аппаратно не контролируется. Контроль за сохранностью их содержимого возлагается на программиста и должен осуществляться в ПОП.
3.3. Контроллер прерываний
Основное назначение контроллера прерываний состоит в организации
взаимодействия нескольких прерываний во времени. Рассмотрим особенности программирования контроллеров прерываний для МПК Intel 80x86 и
Siemens SAB C167.
37
3.3.1. Контроллер прерываний МПК Intel 80x86
Контроллер прерываний для МПК Intel 80x86 представляет собой отдельную микросхему Intel 8259 (отечественный аналог – КР1810ВН59А).
Контроллер может использоваться с 16 и 8 разрядными процессорами Intel.
Контроллер обслуживает до 8 запросов на прерывания и допускает каскадирование.
Контроллер содержит 3 регистра, доступных для программирования:
 Регистр маскирования прерываний IMR;
 Регистр запросов прерываний IRR;
 Регистр обслуживания прерываний ISR.
Регистр маскирования прерываний IMR осуществляет запрет/разрешение
на прохождение каждого сигнала запроса прерывания IRQ на вход регистра
запросов прерываний IRR. Последний содержит битовый вектор, указывающие на аппаратные запросы, требующие обслуживания. После выработки
сигнала прерывания центральному процессору разряд регистра IRR, соответствующий обслуживаемому запросу, устанавливается в нулевое состояние, а
соответствующий разряд регистра ISR - в единичное состояние, что блокирует обслуживание всех запросов с равным или более низким приоритетом.
Устранение этой блокировки производится либо сбросом соответствующего
бита в ISR, либо командой специального маскирования.
Доступ к контроллеру осуществляется через 2 регистра ввода-вывода.
В IBM PC это порты 20h и 21h. Для программирования контроллера применяются команды двух типов:

Слово инициализации;

Слово управления операцией.
3.3.1.1. Слово инициализации
Инициализация контроллера производится один раз. Существует 4 ко-
манды (слова) инициализации ICW1 – ICW4. Одним из признаков команды
являются четный или нечетный адрес регистра ввода-вывода контроллера,
38
куда направляется эта команда (обозначается A0=0 для четного адреса, A0=1
для нечетного адреса). Для IBM PC это соответственно порт 20h (A0=0) и
порт 21h (A0=1). Другим признаком может служить значения какого-либо
бита этой или другой команды Dn (n=0-7). Признаки команд представлены в
таблице 6.
Таблица 6
Команда
Признаки
 A0=0
ICW1
 D4=1
 A0=1
ICW2
 Следующая команда после ICW1
 A0=1
ICW3
 D1=1 в ICW1
 A0=1
ICW4
 D0=1 в ICW1
Рассмотрим содержимое команд (слов) инициализации.
ICW1. Значения битов ICW1 представлены в таблице 7.
Таблица 7
Бит
Значение
D0
0
ICW4 не программируется
1
ICW4 программируется
0
Каскадирование контроллера есть
1
Каскадирования контроллера нет
0
Размер вектора прерывания – 8 байт
D1
D2
Содержание
(для процессора Intel 8080)
1
Размер вектора прерывания – 4 байта
(для процессора Intel 8080)
39
D3
D4
D5 – D7
0
IRQ воспринимается уровнем
1
IRQ воспринимается фронтом
0
-
1
Признак ICW1
Разряды A5 – A7 адреса программы обработки прерываний для процессора Intel 8080
ICW2. Для Intel 80x86 команда содержит номер вектора прерывания,
который соответствует запросу IRQ0. Для Intel 8080 содержит разряды A8 –
A15 адреса программы обработки прерывания
ICW3. Возможны два варианта команды.
1. Контроллер – ведущий
Номер бита команды указывает на линию запроса (Dn – IRQn, n=0-7).
Значение бита указывает на источник запроса прерываний: 0-запрос с периферии, 1-запрос от ведомого контроллера.
2. Контроллер-ведомый
Значение команды определяет номер линии запроса ведущего контроллера (n – IRQn, n=0-7), к которой подключен ведомый контроллер.
ICW4. Значения битов ICW1 представлены в таблице 8.
Таблица 8
Бит
Значение
Содержание
D0
0
Работа с процессором Intel 8080
1
Работа с процессором Intel 80x86
0
Обычный конец прерывания
1
Автоматический конец прерывания
D1
Режим буферизации ведомый/ведущий
D3 D2
0x
Нет буферизации
10
С буфером ведомый контроллер
11
С буфером ведущий контроллер
40
D4
0
Разрешение приоритета ведомого
1
Порядок инициализации контроллера представлен на рис.10.
ICW1
ICW2
Да
D1=1 ?
ICW1
ICW3
Да
D0=1 ?
ICW1
ICW4
Готовность к приему запросов
Рис. 10
3.3.1.2. Слово управления операцией
Существует 3 команды (слова) управления операцией OCW1 – OCW4.
Каждая команда управления операцией OCWn (n=1-4) может быть загружена
41
в любое время после инициализации. Контроллер различает OCWn по адресу
порта и по битам D3, D4. Признаки команд представлены в таблице 9.
Таблица 9
Команда
Признаки
OCW1
 A0=1
OCW2
 A0=0
 D3=D4=0
OCW3
 A0=0
 D3=1, D4=0
Рассмотрим содержимое команд (слов) управления операцией.
OCW1. Осуществляет запись в регистр маскирования прерываний
IMR. Наличие 1 в бите n (n=0-7) маскирует соответствующий запрос прерываний IRQ n.
OCW2. Осуществляет запись в регистр обслуживания прерываний ISR.
Назначение OCW2 состоит в выборе того или иного алгоритма обслуживания
запросов прерываний. Значения OCW2 представлены в таблице 10.
Таблица 10
Побитное значение OCW2
D7 – D0
0 0 1 0 0 x x x
0 1 1 0 0 B2 B1 B0
1 0 1 0 0
x x x
1 1 1 0 0 B2 B1 B0
Содержание
Обычный конец прерываний.
Специальный конец прерываний;
B2 B1 B0 - двоично-десятичный код сбрасываемого разряда ISR.
Циклический сдвиг уровней приоритетов с
обычным концом прерываний
Циклический сдвиг уровней приоритетов со
специальным концом прерываний
42
1 0 0 0 0
0 0 0 0 0
x x x
x x x
1 1 0 0 0 B2 B1 B0
Разрешение вращений уровней прерываний
Сброс разрешения вращения уровней приоритета
Циклический сдвиг уровней приоритетов без
завершения прерываний
Команда «обычный конец прерывания» устанавливает в нулевое состояние разряд ISR, соответствующий последнему обслуженному запросу.
Команда «специальный конец прерывания» устанавливает в нулевое
состояние тот разряд ISR, номер которого указан в разрядах B0 B1 B2.
Команда «циклический сдвиг уровней приоритета с обычным концом
прерывания» устанавливает в ноль разряд ISR, соответствующий последнему
обслуженному запросу и этому же номеру запроса присваивается низший
уровень приоритета.
Аналогично действует команда «циклический сдвиг уровней приоритета со специальным концом прерывания», только низший уровень приоритета
присваивается тому входу IRQ, номер которого указан в разрядах B0 B1 B2.
Команда «циклический сдвиг уровней приоритета» устанавливает статус уровней приоритета без выполнения операции конца прерывания. Разряды B0 B1 B2 указывают дно приоритетного кольца.
OCW3. Обеспечивает чтение регистров обслуживания прерываний ISR
и запросов прерываний IRR и задает специальное маскирование. Значения
битов OCW2 представлены в таблице 11.
Таблица 11
Биты
Значения
D1 D0
0x
Запрещение чтения регистров
10
Разрешение чтения IRR при следующем обращении к порту с адресом A0=0
(порт 20h для IBM PC)
Разрешение чтения ISR при следующем обращении к порту с адресом A0=0
(порт 20h для IBM PC)
Режим опроса не установлен
11
D2
0
Содержание
43
1
D6 D5
Установка режима опроса
0x
Запрет специального маскирования
10
Сброс специального маскирования
11
Разрешение специального маскирования
Специальное маскирование состоит в блокировке действия тех разрядов ISR, которые замаскированы командой OCW1 на соответствующих позициях регистра IMR. Специальное маскирование используют для обслуживания такого запроса, который блокируется более высоким или равным по
уровню приоритета обслуженным запросом, хранящимся в ISR, не сбрасывая
последний.
Заметим, что для чтения регистра маскирования прерываний IMR достаточно просто прочитать порт с адресом A0=1 (порт 21h для IBM PC).
3.3.2. Контроллер прерываний микроконтроллера Siemens SAB C167
В микроконтроллерах семейства SAB C167 каждому аппаратному источнику прерываний согласно таблице векторов прерываний соответствует
свой регистр управления прерываниями (Interrupt Control Register). Программирование контроллера прерываний не требует общей начальной инициализации и сводится к настройке задействованных регистров управления
прерываниями. Настройка каждого из них состоит в выборе уровня приоритета и установки бита разрешения для данного источника прерываний. Уровень приоритета может меняться программистом в любом месте программы.
3.4. Программа обработки прерываний
Программа обработки прерываний – это подпрограмма (функция на
языке Си), на которую передается управление при возникновении аппаратного или программного прерывания процессора. Программа обработки прерываний должна быть «незаметной» для той программы, которую она преры-
44
вает. Это возможно, если состояние системных и аппаратных средств МПК
до и после прерывания не изменяется. Для этого ПОП должна удовлетворять
следующим требованиям.
1. Программа должна начинаться секцией кода, сохраняющей регистры процессора, изменяемые в процессе ее выполнения;
2. Программа должна завершаться секцией восстановления всех сохраненных регистров;
3. Возврат из ПОП должен завершаться восстановлением вектора
прерванного процесса.
В программе на ассемблере первые два пункта реализуются командами
соответственно PUSH xx (сохранить регистр xx в стеке) и POP xx (восстановить регистр xx содержимым из стека). Третий пункт обеспечивается применением не обычной командой выхода из подпрограммы RET, а специальной
командой (IRET-для МПК Intel, RETI-для микроконтроллера Siemens SAB
C167).
В программе на языке Си все три пункта реализуются при использовании в заголовке функции ПОП модификатора «Interrupt».
Если при инициализации контроллера прерываний Intel 8259 не установлен автоматический конец прерываний (D1=0 ICW4), то при обработке
прерывания необходимо в регистре запросов прерываний IRR сбрасывать бит
соответствующего устройства. Это обеспечивается, например, командой
OCW2 «специальный конец прерываний» с указанием сбрасываемого бита
или командой «обычный конец прерываний». Кроме этого указанные команды необходимо использовать в случае написания собственных обработчиков
прерываний для IBM PC. Так для IBM PC команда OCW2 «обычный конец
прерываний» на ассемблере имеет вид
MOV 20h, 20h,
а на Си имеет вид
outportb (0x20, 0x20).
45
Команда OCW2 «специальный конец прерываний», например, для ПОП первого (COM1) последовательного порта IBM PC на ассемблере имеет вид
MOV 20h, 64h,
а на Си имеет вид
outportb (0x20, 0x64).
Следует еще раз отметить, что если при обработке прерывания не сбросить
бит ISR для обслуживаемого устройства, то далее это устройство и устройства с более низкими уровнями приоритетов обслуживаться не будут.
Следует также отметить, что по умолчанию для микроконтроллеров
Siemens каждая ПОП может быть прервана другой ПОП с более высоким
приоритетом. Напротив, для МПК Intel 80x86 после возникновения прерывания автоматически сбрасывается бит разрешения прерывания IF в регистре
флагов, что запрещает все остальные прерывания на время обработки текущего прерывания (бит IF снова взводится при восстановлении вектора прерванного процесса). Для разрешения/запрещения других прерываний во время выполнения текущего прерывания в любом МПК следует использовать
команды ассемблера STI/CLI или функции Си enable()/disable().
3.5 Карта памяти управляющей программы
Рассмотрим примерные карты памяти управляющей программы, т.е.
расположение ее отдельных частей в адресном пространстве МПК.
3.5.1. МПК на основе Intel 80x86
Вариант карты памяти для МПК на основе Intel 80x86 представлен на
рис. 11. Таблица векторов прерываний располагается в ОЗУ, что позволяет
организовать при инициализации МПК автоматическое заполнение таблицы
адресами (IP, CS) подпрограмм обработки прерываний независимо от расположения последних. В ОЗУ также располагаются области коэффициентов,
переменных и флагов мехатронной системы, область накопления данных и
46
стек. Расположение коэффициентов системы в ОЗУ необходимо для возможности их изменения, во-первых, в случае самонастройки системы в штатном
режиме работы, и, во-вторых, в режиме отладки системы при управлении
от персонального компьютера (см. раздел 2.1). Загрузка начальных значений
коэффициентов системы происходит при инициализации МПК взятием их из
блока исходных коэффициентов и констант, расположенных в ПЗУ. Загрузка
новых значений коэффициентов в режиме отладки происходит в подпрограмме обработки прерываний, обслуживающую микросхему UART МПК
(поз.5 на рис. 3 и 5) . Прерывания от микросхемы UART возникают при поступлении в нее данных по интерфейсу RS-232 (поз.16 на рис. 3 и 5) из персонального компьютера IBM PC №2 (поз.8 на рис. 3 и 5). Необходимые значения коэффициентов выбираются там помощи программы настройки и
контроля (поз.15 на рис. 3 и 5). Старт управляющей программы в МПК на
базе Intel 80x86 происходит при подаче питания c адреса FFFF0h. По этому
адресу должна быть расположена команда безусловного перехода (JMP метка_начала_блока_инициализвции) на начало блока инициализации МПК,
расположенного в ПЗУ. После выполнения блока инициализации управляющая программа начинает выполнять фоновую программу до следующей перезагрузки питания МПК.
47
Память
Адрес
Таблица векторов
прерываний
00000h
ОЗУ
003FCh
Коэффициенты, переменные
и флаги мехатронной системы
Область
накопления данных
Стек
Дно стека
Вершина стека
ПЗУ
Исходные коэффициенты
и константы мехатронной системы
Блок инициализации
Фоновая программа
Блок подпрограмм обработки
прерываний
Команда безусловного перехода
на блок инициализации
FFFF0h
Точка старта
Intel 80x86
Рис.11
3.5.2. МПК на основе Siemens SAB167
Вариант карты памяти для МПК на основе Siemens SAB167 представлен на рис.12.
48
Память
Адрес
Вектор 0 - команда безусловного
перехода на блок инициализации
000000h
ПЗУ
Таблица векторов
прерываний
Точка старта
SAB C167
0001FCh
Блок инициализации
Фоновая программа
Исходные коэффициенты и
константы мехатронной системы
Блок подпрограмм обработки
прерываний
007FFFh
008000h
ОЗУ
ОЗУ внутреннее
00F600h
Коэффициенты, переменные и
флаги мехатронной системы
Стек
Дно стека
Вершина стека
00FDFFh
Область
накопления данных
FFFFFFh
Рис.12
В микроконтроллерах Siemens SAB C167 в начале адресного пространства всегда располагается ПЗУ (обычно размером 32K). Кроме этого старт
микроконтроллера происходит с 0 вектора таблицы векторов, где должна
быть расположена команда безусловного перехода (JMP метка_начала_блока_инициализвции) на начало блока инициализации МПК.
Остальная часть таблица векторов прерываний также должна содержать команды безусловных переходов на соответствующие подпрограммы обработки прерываний. Следует отметить, что ОЗУ в SAB C167 может быть двух видов – внутреннее (в кристалле микроконтроллера) и внешнее (вне кристалла).
Стек располагается во внутреннем ОЗУ, куда целесообразно поместить также
область коэффициентов, переменных и флагов мехатронной системы, а область накопления данных – во внешнее ОЗУ. В остальном расположение и
49
взаимодействие отдельных частей управляющей программы для SAB C167 и
Intel 80x86 практически совпадают.
3.6. Реализация корректирующих устройств в МПК
Исходной информацией для реализации корректирующего устройства в
МПК является его передаточная функция по Лапласу, определенная на этапе
синтеза системы. В общем случае передаточная функция может иметь вид
K ( p) 
y ( p) b0 p m  b1 * p m1  ...  bm1 * p  bm

,m  n ,
x( p) a0 * p n  a1 * p n 1  ...  an 1 * p  an
(1)
где x, y – входная и выходная координаты корректирующего устройства.
Очевидно, что реализация корректирующего устройства в МПК возможна
только в виде программы, связывающей значения координат x и y в разные
моменты квантования. Для написания такой программы необходимо иметь
разностное уравнение относительно координат x и y. Эквивалентной формой
разностного уравнения может быть передаточная функция корректирующего
устройства в z-форме. Для ее получения перепишем (1) в следующем виде
K ( p) 
b0 *
1
1
1
 bm * n
n 1
p
p
p
p
.
1
1
1
a0  a1 *  ...  an 1 * n 1  an * n
p
p
p
nm
 b2 *
1
n  m 1
 ...  bm 1 *
(2)
На основании анализа передаточной функции (2) можно представить структурное построение корректирующего устройства в виде соединения простейших аналоговых интеграторов
1
как на рис.13. Очевидно, что переход к
p
цифровому корректирующему устройству возможен путем замены простейших аналоговых интеграторов на цифровые F(z), которые должны быть в некотором смысле эквивалентны аналоговым. Тогда передаточная функция
корректирующего устройства в z-форме будет иметь вид
y ( z ) b0 * ( F ( z )) n  m  b1 * ( F ( z )) n  m 1  ...  bm 1 * ( F ( z )) n 1  bm * F ( z ) 

.
x( z )
a0  a1 * F ( z )  ...  an 1 * ( F ( z )) n 1  an * ( F ( z )) n
n
K ( z) 
(3)
50
Из передаточной функции (3) можно получить искомое разностное уравнение, имея в виду, что при переходе от z-формы к разностному уравнению
оператор z  k означает запаздывание сигнала на k тактов квантования. Таким
образом, получение программы реализации корректирующего устройства по
его передаточной функции по Лапласу сводится к вопросу выбора цифрового
интегратора F(z), эквивалентного в некотором смысле аналоговому интегратору
1
.
p
 1 
 
 p
1
p
n
an
a1
-1
x
nm
b0
1
 
 p
b1
1
 
 p
bm
 1 


 p 
y
1
a 0
nm1
n
Рис 13
В таблице 12 представлен ряд формул для замены аналогового интегратора на цифровой интегратор, где T обозначает период квантования.
Таблица 12
№
Наименование
Формула
Примечание
51
1
Метод Z преобразования
1
T

ð 1  z 1
1
T 2 * z 1

p2
(1  z 1 ) 2
1
p3
2
Метод ЦыпкинаГольденберга

T 3 z 1 * (1  z 1 )
*
2
(1  z 1 )3
1
T * z 1

p
1  z 1
1
T 2 * z 1 * (1  z 1 )

p2
(1  z 1 ) 2

1
T 3 z 1 * 1  4 * z 1  z 2

*
3
p3
6
1  z 1
3
Метод Тастина

1
T 1  z 1
 *
p
2 1  z 1
 T 1  z 1 
1
 *


1 
pn
 2 1 z 
4
Метод РагацциниБергена


n
Соответствует z преобразованию от передаточной функции интегратора с формирующим элементом, равным
периоду квантования T.
Обеспечивает инвариантность только импульсных характеристик интеграторов
Соответствует методу
прямоугольников при
численном интегрировании.
Обеспечивает инвариантность только переходных характеристик
интеграторов
Соответствует методу
трапеций при численном интегрировании
1
T 1  z 1
 *
p
2 1  z 1
1
T 2 1  4 * z 1  z 2

*
2
p2
6
1  z 1


1
T 3 1  11* z 1  11* z 2  1

*
3
p3
24
1  z 1

5
Метод БоксераТалера

1
T 1  z 1
 *
p
2 1  z 1
1
T 2 1  10 * z 1  z 2

*
2
p2
12
1  z 1



1
T 3 z 1 * 1  z 1
 *
3
p3
2
1  z 1

6
Правило 1/3
Симпсона

Соответствует получению выражения интегратора из соотношения
z  e  p*T путем разложения функции ln z в ряд

1
T 1  4 * z 1  z 2
 *
p
3
1  z 2
Соответствует методу
численного интегрировании путем аппроксимации выходной коор-
52
7
Правило 3/8
Симпсона
1
3 * T 1  3 * z 1  3 * z 2  z 3

*
p
8
1  z 3
динаты полиномом через 3 точки
Соответствует методу
численного интегрировании путем аппроксимации выходной координаты полиномом через 4 точки
Из методов, представленных в таблице 12, малопригодными для использования на практике следует признать методы 1 и 2, так как они не обеспечивают
эквивалентности процессов аналогового и цифрового интегрирования при
произвольном входном сигнале. Остальные методы 3 – 7 при использовании
их в корректирующих устройствах мехатронной системы обеспечивают приемлемые результаты, а разница между ними состоит в фазовых сдвигах, которые имеют частотные характеристики реальных цифровых интеграторов по
сравнению с идеальным интегратором. На практике наиболее удобен метод 3
(Тастина) в силу простоты формулы для любого порядка n интегратора.
4. Блок-схема алгоритмического обеспечения мехатронной системы
Рассмотрим блок-схему алгоритмического обеспечения мехатронной
системы на примере системы управления дверьми (СУД) монорельсовой дороги. Функциональная схема СУД представлена на рис. 14, где обозначено:
1-объект регулирования; 2-электродвигатель (M-ротор); 3-датчики Холла (6
штук); 4-усилитель мощности (V1-V6-силовые ключи); 5-драйвер (микросхема предварительного усилителя с защитой от аварийного тока); 6-МПК
(на основе микроконтроллера SAB 80C167); 7-двухканальный UART в составе МПК (канал A – интерфейс RS485, канал B – интерфейс RS232); 8формирователь последовательности импульсов из сигналов датчиков Холла;
9-система управления электроподвижного состава; 10-IBM PC с программой
настройки и контроля; 11,12-интерфейсы RS485, RS232; H1, H2, H3 и L1, L2,
53
L3-сигналы управления верхней и нижней группами усилителя мощности 4;
Fa, Fb, Fc, Fd, Fe, Ff-сигналы логического уровня (0/1) с датчиков Холла.
+24 В
H1
H2
H3
6
4
V1
2
V2
V3
L1
L2
L3
V4
M
1
V5
V6
5
0В
3
8
7
A
B
11
12
Fa,Fb,Fc,Fd,Fe,Ff
9
10
Рис 14
Структурная схема СУД представлена на рис.15, где позиции 1 - 8 совпадают с аналогичными позициями на рис.14. Кроме того, на рис.15 обозначено: 13-блок коммутации; 14-широтно-импульсный модулятор (ШИМ); 15блок вычисления положения; 16-блок суммирования импульсов; 17-блок вычисления скорости; 18-коэффициент усиления в контуре по положению; 19коэффициент усиления в контуре по скорости; Fшим-частота ШИМ; Uшимсигнал управления для ШИМ. В качестве электродвигателя в СУД используется 3-х фазная многополюсная синхронная машина с обмотками на статоре
и постоянными магнитами на роторе. Датчики Холла расположены на статоре. Три датчика Холла (сигналы Fa, Fb, Fc) смещены друг относительно друга на 1/3 периода магнитного поля ротора и используются для управления
электродвигателем.
54
6
Sign(Uшим)
18
19
H1
H2
H3
L1
L2
L3
13
Fшим
14
5
4
2
1
17
|Uшим|
15
16
Fa, Fb, Fc
8
3
Fa, Fb, Fc, Fd, Fe, Ff
Рис. 15
Три других датчика Холла (сигналы Fd, Fe, Ff) смещены относительно первых на 1/4 периода магнитного поля и служат дополнением для формирования сигналов скорости и положения. Блок 8 фиксирует изменения фронтов
сигналов датчиков Холла и по ним формирует временную последовательность импульсов. Каждый импульс соответствует постоянному приращению
положения объекта регулирования. Совокупность всех сигналов датчиков
Холла (Fa, Fb, Fc, Fd, Fe, Ff) в каждый момент времени образует вполне
определенное множество кодов. Анализ чередования этих кодов позволяет
определить направление вращения. Блок 15 подсчитывает число импульсов с
учетом направления вращения и определяет текущее положение объекта регулирования. Блок 16 подсчитывает число импульсов за каждый такт замыкания СУД. Блок 17 по числу подсчитанных в 16 импульсов определяет скорость движения объекта регулирования. Блок 13 представляет собой «электронный коммутатор», который на основании сигналов датчиков Холла Fa,
Fb, Fc и знака сигнала управления Uшим вырабатывает сигналы управления
силовыми ключами H1-H3 и L1-L3 для вращения электродвигателя при питании его от источника постоянного напряжения. Блок 14 производит модулирование по длительности сигналов управления драйвером 5 в соответствии
с величиной сигнала управления Uшим и заданной частотой Fшим.
55
Блок-схема алгоритмического обеспечения СУД представлена на рис.
16, где цифровые позиции совпадают с позициями на рис.14 и 15. Все структурное построение СУД реализовано в виде шести подпрограмм обработки
прерываний. Замыкание СУД по положению и по скорости осуществляется в
подпрограмме обработки прерывания ПОП0, обслуживающей сигнал прерывания IR0 от таймера T0, который задает такт замыкания системы. Подпрограмма ПОП0 является формирователем ядра структуры СУД. Входное воздействие для системы принимает только два значения (Bmax - открыть дверь
и 0 - закрыть дверь). Вычисление текущего положения (блок 15) и подсчет
числа импульсов за такт (блок 16) выполняет программа обслуживания прерываний ПОП3, обслуживающая сигнал прерывания IR3 от каждого импульса, формируемого блоком 8. Обмен информацией между ПОП0 и ПОП3 осуществляется через ячейки ОЗУ UGOL и IMP. В каждом такте замыкания в
ПОП0 по числу импульсов, находящемуся в IMP, вычисляется скорость
(блок 17), после чего ячейка IMP обнуляется. «Электронный коммутатор»
(блок 13) реализуется в подпрограмме обработки прерывания ПОП1, обслуживающей сигнал прерывания IR1 от таймера T1, который задает частоту
коммутации. Функции ШИМ (блок 14) реализуются в подпрограммах обработки прерываний ПОП2 и ПОП4, обслуживающих сигналы прерываний
IR2 и IR4 от таймеров T2 и T4, которые формируют верхний и нижний уровень сигналов ШИМ. Таймеры работают в составе блока GPT1 микроконтроллера SAB C167 совместно с таймером T3. Счет ведет таймер T3,
таймеры T2 и T4 служат для загрузки констант счета в T3. В каждый такт замыкания в таймер T2 загружается значение сигнала управления Uшим, а в T4
– его дополнение до константы счета Nшим, соответствующей периоду
ШИМа. Триггер T3OTL после окончания каждого счета T3 переходит в новое состояние. Переход в верхнее состояние (Front Up) вызывает сигнал прерывания IR2, а в нижнее (Front Down) - сигнал прерывания IR4. При этом
происходит перезагрузка содержимого таймеров Т2 или T4 в T3 и его запуск.
Подпрограммы обработки прерываний ПОП5 и ПОП6 обслуживают сигналы
UGOL
Bmax, 0
6
18
8
IR3
Вычислитель
положения и числа
импульсов
UGOL:=UGOL+/-1
IMP:=IMP+1
ПрОП3
17
19
IMP
9
Перезагрузка
Front
Down
T3OTL
Front
Up
Перезагрузка
Рис. 16
T4
T3
T2
Блок таймеров GPT1 SAB C167
Nшим|Uшим|
IMP:=0
«Электронный
коммутатор»
H1= L1=
H2= L2=
H3= L3=
Uшим
Формирователь ядра структуры
Низкий
уровень
ШИМ
ПрОП4
Высокий
уровень
ШИМ
ПрОП2
IR5
A
7
B
IR6
ПрОП5 ПрОП6
IR4
IR2
H1, H2, H3, L1, L2, L3
ПрОП1
IR1
Таймер T1
ПрОП0
IR0
Таймер T0
10
Fa, Fb, Fc
5
4
2
3
1
56
прерываний IR5 и IR6 от UART 7, инициируемые системой управления 9
или программой настройки и контроля в IBM PC 10.
57
Оглавление
ВВЕДЕНИЕ .................................................................................................................... 3
1. ПРОЦЕСС ПРОЕКТИРОВАНИЯ МЕХАТРОННОЙ СИСТЕМЫ С
МИКРОПРОЦЕССОРНЫМ КОНТРОЛЛЕРОМ ............................................................ 4
1.1. Этапы проектирования мехатронной системы с МПК ............................................................................... 4
1.2. Обзор программных средств, используемых при проектировании мехатронных систем с МПК ...... 8
1.2.1. Управляющая программа МПК ................................................................................................................... 9
1.2.2. Программа настройки и контроля ............................................................................................................. 12
1.2.3. Моделирование мехатронной системы с МПК ........................................................................................ 13
2. ТЕХНОЛОГИЯ ОТЛАДКИ МЕХАТРОННОЙ СИСТЕМЫ С МПК .......................... 15
2.1. Варианты построения программно-аппаратных комплексов для отладки мехатронной системы с
МПК ........................................................................................................................................................................... 15
2.1.1. Программно-аппаратная эмуляция процессора ....................................................................................... 15
2.1.2. Программная отладка ................................................................................................................................. 18
2.2. Программатор ................................................................................................................................................... 19
2.3. Форматы исполняемых кодов ........................................................................................................................ 20
2.3.1. Двоичный формат ...................................................................................................................................... 20
2.3.2. Шестнадцатеричный формат .................................................................................................................... 23
3. РАЗРАБОТКА УПРАВЛЯЮЩЕЙ ПРОГРАММЫ МПК ......................................... 25
3.1. Блок-схема управляющей программы ......................................................................................................... 25
3.2. Прерывания....................................................................................................................................................... 28
3.2.1. Общие сведения .......................................................................................................................................... 28
3.2.2. Таблица векторов прерываний .................................................................................................................. 32
3.2.3. Механизм прерываний ............................................................................................................................... 35
3.3. Контроллер прерываний ................................................................................................................................. 36
3.3.1. Контроллер прерываний МПК Intel 80x86 ............................................................................................... 37
3.3.2. Контроллер прерываний микроконтроллера Siemens SAB C167 ........................................................... 43
3.4. Программа обработки прерываний .............................................................................................................. 43
3.5 Карта памяти управляющей программы .................................................................................................... 45
3.5.1. МПК на основе Intel 80x86 ....................................................................................................................... 45
3.5.2. МПК на основе Siemens SAB167.............................................................................................................. 47
3.6. Реализация корректирующих устройств в МПК ...................................................................................... 49
4. БЛОК-СХЕМА АЛГОРИТМИЧЕСКОГО ОБЕСПЕЧЕНИЯ МЕХАТРОННОЙ
СИСТЕМЫ ................................................................................................................... 52
Download