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

Вид материалаДокументы
3.4. Программа обработки прерываний
3.5 Карта памяти управляющей программы
3.5.1. МПК на основе Intel 80x86
3.5.2. МПК на основе Siemens SAB167
3.6. Реализация корректирующих устройств в МПК
Блок-схема алгоритмического обеспечения мехатронной системы
Блок-схема алгоритмического обеспечения
1.2. Обзор программных средств, используемых при проектировании мехатронных систем с МПК 8
2. Технология отладки мехатронной системы с МПК 15
3. Разработка управляющей программы МПК 26
Подобный материал:
1   2   3   4   5   6   7

3.4. Программа обработки прерываний


Программа обработки прерываний – это подпрограмма (функция на языке Си), на которую передается управление при возникновении аппаратного или программного прерывания процессора. Программа обработки прерываний должна быть «незаметной» для той программы, которую она прерывает. Это возможно, если состояние системных и аппаратных средств МПК до и после прерывания не изменяется. Для этого ПОП должна удовлетворять следующим требованиям.
  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).

Команда 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) подпрограмм обработки прерываний независимо от расположения последних. В ОЗУ также располагаются области коэффициентов, переменных и флагов мехатронной системы, область накопления данных и стек. Расположение коэффициентов системы в ОЗУ необходимо для возможности их изменения, во-первых, в случае самонастройки системы в штатном режиме работы, и, во-вторых, в режиме отладки системы при управлении от персонального компьютера (см. раздел 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 метка_начала_блока_инициализвции) на начало блока инициализации МПК, расположенного в ПЗУ. После выполнения блока инициализации управляющая программа начинает выполнять фоновую программу до следующей перезагрузки питания МПК.





3.5.2. МПК на основе Siemens SAB167


Вариант карты памяти для МПК на основе Siemens SAB167 представлен на рис.12.





В микроконтроллерах Siemens SAB C167 в начале адресного пространства всегда располагается ПЗУ (обычно размером 32K). Кроме этого старт микроконтроллера происходит с 0 вектора таблицы векторов, где должна быть расположена команда безусловного перехода (JMP метка_начала_блока_инициализвции) на начало блока инициализации МПК. Остальная часть таблица векторов прерываний также должна содержать команды безусловных переходов на соответствующие подпрограммы обработки прерываний. Следует отметить, что ОЗУ в SAB C167 может быть двух видов – внутреннее (в кристалле микроконтроллера) и внешнее (вне кристалла). Стек располагается во внутреннем ОЗУ, куда целесообразно поместить также область коэффициентов, переменных и флагов мехатронной системы, а область накопления данных – во внешнее ОЗУ. В остальном расположение и взаимодействие отдельных частей управляющей программы для SAB C167 и Intel 80x86 практически совпадают.

3.6. Реализация корректирующих устройств в МПК


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

, (1)

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

. (2)

На основании анализа передаточной функции (2) можно представить структурное построение корректирующего устройства в виде соединения простейших аналоговых интеграторов как на рис.13. Очевидно, что переход к цифровому корректирующему устройству возможен путем замены простейших аналоговых интеграторов на цифровые F(z), которые должны быть в некотором смысле эквивалентны аналоговым. Тогда передаточная функция корректирующего устройства в z-форме будет иметь вид

. (3)

Из передаточной функции (3) можно получить искомое разностное уравнение, имея в виду, что при переходе от z-формы к разностному уравнению оператор означает запаздывание сигнала на k тактов квантования. Таким образом, получение программы реализации корректирующего устройства по его передаточной функции по Лапласу сводится к вопросу выбора цифрового интегратора F(z), эквивалентного в некотором смысле аналоговому интегратору .




В таблице 12 представлен ряд формул для замены аналогового интегратора на цифровой интегратор, где T обозначает период квантования.


Таблица 12



Наименование

Формула

Примечание

1

Метод преобразования







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

Обеспечивает инвариантность только импульсных характеристик интеграторов

2

Метод Цыпкина-Гольденберга








Соответствует методу прямоугольников при численном интегрировании.

Обеспечивает инвариантность только переходных характеристик интеграторов

3

Метод Тастина






Соответствует методу трапеций при численном интегрировании

4

Метод Рагаццини-Бергена










5

Метод Боксера-Талера







Соответствует получению выражения интегратора из соотношения путем разложения функции в ряд

6

Правило 1/3 Симпсона



Соответствует методу численного интегрировании путем аппроксимации выходной координаты полиномом через 3 точки

7

Правило 3/8 Симпсона



Соответствует методу численного интегрировании путем аппроксимации выходной координаты полиномом через 4 точки


Из методов, представленных в таблице 12, малопригодными для использования на практике следует признать методы 1 и 2, так как они не обеспечивают эквивалентности процессов аналогового и цифрового интегрирования при произвольном входном сигнале. Остальные методы 3 – 7 при использовании их в корректирующих устройствах мехатронной системы обеспечивают приемлемые результаты, а разница между ними состоит в фазовых сдвигах, которые имеют частотные характеристики реальных цифровых интеграторов по сравнению с идеальным интегратором. На практике наиболее удобен метод 3 (Тастина) в силу простоты формулы для любого порядка n интегратора.

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


Рассмотрим блок-схему алгоритмического обеспечения мехатронной системы на примере системы управления дверьми (СУД) монорельсовой дороги. Функциональная схема СУД представлена на рис. 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, L3-сигналы управления верхней и нижней группами усилителя мощности 4; Fa, Fb, Fc, Fd, Fe, Ff-сигналы логического уровня (0/1) с датчиков Холла.




Структурная схема СУД представлена на рис.15, где позиции 1 - 8 совпадают с аналогичными позициями на рис.14. Кроме того, на рис.15 обозначено: 13-блок коммутации; 14-широтно-импульсный модулятор (ШИМ); 15-блок вычисления положения; 16-блок суммирования импульсов; 17-блок вычисления скорости; 18-коэффициент усиления в контуре по положению; 19-коэффициент усиления в контуре по скорости; Fшим-частота ШИМ; Uшим-сигнал управления для ШИМ. В качестве электродвигателя в СУД используется 3-х фазная многополюсная синхронная машина с обмотками на статоре и постоянными магнитами на роторе. Датчики Холла расположены на статоре. Три датчика Холла (сигналы Fa, Fb, Fc) смещены друг относительно друга на 1/3 периода магнитного поля ротора и используются для управления электродвигателем.


Три других датчика Холла (сигналы 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шим.

Блок-схема алгоритмического обеспечения СУД представлена на рис. 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 обслуживают сигналы прерываний IR5 и IR6 от UART 7, инициируемые системой управления 9 или программой настройки и контроля в IBM PC 10.






Оглавление

Введение 3

1. Процесс проектирования мехатронной системы с микропроцессорным контроллером 4

1.1. Этапы проектирования мехатронной системы с МПК 4

1.2. Обзор программных средств, используемых при проектировании мехатронных систем с МПК 8

1.2.1. Управляющая программа МПК 9

1.2.2. Программа настройки и контроля 12

1.2.3. Моделирование мехатронной системы с МПК 14

2. Технология отладки мехатронной системы с МПК 15

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

2.1.1. Программно-аппаратная эмуляция процессора 15

2.1.2. Программная отладка 19

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

2.3. Форматы исполняемых кодов 21

2.3.1. Двоичный формат 21

2.3.2. Шестнадцатеричный формат 24

3. Разработка управляющей программы МПК 26

3.1. Блок-схема управляющей программы 26

3.2. Прерывания 29

3.2.1. Общие сведения 29

3.2.2. Таблица векторов прерываний 34

3.2.3. Механизм прерываний 36

3.3. Контроллер прерываний 38

3.3.1. Контроллер прерываний МПК Intel 80x86 38

3.3.2. Контроллер прерываний микроконтроллера Siemens SAB C167 45

3.4. Программа обработки прерываний 45

3.5 Карта памяти управляющей программы 47

3.5.1. МПК на основе Intel 80x86 47

3.5.2. МПК на основе Siemens SAB167 49

3.6. Реализация корректирующих устройств в МПК 51

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