Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Микропроцессорное управление технологическими процессами в радиоэлектронике

..pdf
Скачиваний:
0
Добавлен:
12.11.2023
Размер:
10.3 Mб
Скачать

программирования. Даже с учетом разработки части ПО на языках высокого уровня (PL/М, Паскаль) затраты на создание индивидуальных программ очень высокие. Для уменьшения этих затрат, повышения эффективности разрабатываемой системы и снижения стоимости ПО целесообразно организовать работу контроллера под управлением исполнительной ОС, которая будет неотъемлемой частью контроллера не­ зависимо от его конкретного применения. Индиви­ дуальное программирование, т. е. настройка контрол­ лера па оборудование, заключается в разработке нескольких прикладных программных модулей, привя­ занных с конкретному оборудованию. Выполнение этих программных модулей происходит под управле­ нием исполнительной ОС.

Исполнительная операционная система реального времени RMX/80. События, на которые должна реа­ гировать СРВ, могут возникать в непредсказуемое время и в непредсказуемой последовательности. Си­ стема, которая реагирует на такие события, работает асинхронно. Асинхронные операции требуют синхро­ низации функций системы с конкретными событиями, а не с внутренними функциями. Таким образом, одно событие (внешнее по отношению к системе) вызывает появление другого, связанного с исполнением функ­ ции обработки. Тем не менее необходимо отметить, что для системы, работающей асинхронно, может по­ требоваться функция отсчета времени, которая, в свою очередь, требует наличия внутренней синхрони­ зации.

В СРВ в любой момент времени в рабочем состоя­ нии находятся несколько операций, если имеется только один процессор как в системах, работающих под управлением RMX/80. В действительности, в каждый момент времени может выполняться только одна операция. Однако вовсе не обязательно, чтобы

21 1

эта операция завершилась прежде, чем управление получит более быстрая или более важная операция! скорость процессора позволяет исполнять параллель­ ные операции псевдоодновремеино. Разработчик си­ стемы СРВ должен выделить функции, которые мож­ но выполнить параллельно. Они называются задача­ ми. Разработчик предъявляет эти задачи ядру RMX/80, которое и управляет их работой.

Когда несколько задач являются претендентами на исполнение, СРВ определяет, какая из них пойдет первой, т. е. какая задача имеет максимальный прио­ ритет. Для этого разработчик системы должен на­ значить каждой задаче уровень приоритета. Система RMX/80 обеспечивает 256 программных приоритетов для задач. Задачи, связанные с критическими усло­ виями, должны иметь больший приоритет, чем обыч­ ные: задачи, которые выполняются быстро или тре­ буют незамедлительного ответа, обладают более вы­ соким приоритетом, чем медленные и менее срочные задачи; наконец, задачи, которые обслуживают пре­ рывания от периферийных устройств, должны обыч­ но иметь больший приоритет, чем другие задачи обра­ ботки.

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

Другим требованием к СРВ является наличие свя­ зей между задачами. Одна задача может запустить

112

другую или передать ей некоторую информацию. Для этих целей в RMX/80 используется механизм «сообщение — обменник». Сообщение — это группа данных, которые одна задача посылает другой. Обмен­ ник — структура, где RMX/80 хранит элемент списка задач, ожидающих сообщений, или элемент сообще­ нии, которые ждут приема.

Для того чтобы избежать потерь времени на пере­ дачу всего сообщения в обменник, RMX/80 посылает только адрес сообщения. Когда сообщение поступает в обменник, где есть ожидающие задачи, оно ставит­ ся в соответствие первой ожидающей задаче в списке, и эта задача удаляется из списка. Точно также, ко­ гда задача поступает в обменник, где ожидают сооб­ щения, она ставится в соответствие первому ожидаю­ щему сообщению, и это сообщение удаляется из спис­ ка. Таким • образом, связь «задача — сообщение» организована по принципу «первым пришел — первым обслужен». Когда задача и сообщение ставятся в соответствие друг другу, задача становится готовой к выполнению.

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

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

2 1 8

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

Система RMX/80 содержит ряд управляющих структур (списков), которые несут информацию обо всех задачах, находящихся в системе. Рассмотрим кратко эти списки.

Список готовых — это список всех ^готовых задач в системе.

Список задержанных — это список всех задач, ожидающих завершения временных интервалов (ожи­ дание может быть по времени или безусловным).

Список приостановленных — это список всех при­ остановленных задач.

Задачи всегда вносятся в список готовых в порядке приоритета. Работающая задача — это задача макси­ мального приоритета в списке готовых. Если несколь­ ко задач имеют одинаковый приоритет, они вносятся в список готовых в порядке «первым пришел — пер­ вым обслужен». Задачи поступают в список готовых по любой из трех причин: 1) задача готова с исполне­ нию, когда она впервые создана; задачи создаются во время инициализации системы или другими зада­ чами во время исполнения; 2) задача стала готовой, когда условие, которого она ожидала, удовлетвори­ лось; задача может ожидать сообщения в обменнике или ждать завершения некоторого временного интер­

214

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

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

Задача добавляется в список приостановленных, если на это имеется указание в другой задаче или в ней самой. Если указывается — приостановить ожидаю­ щую задачу, то RMX/80, прежде чем перенести ее в список приостановленных, ждет, когда эта задача станет готовой. Задача из списка приостановленных переносится в список готовых, когда указывается на ее возобновление.

Программирование в ОС РВ RMX/80. Для выпол­ нения системных действий RMX/80 содержит ряд управляющих структур. Наиболее важные из этих структур следующие: описатель задачи, описатель обменников, описатель обменника прерываний, заго­ ловок сообщения, стек задачи. Прикладной програм­ мист должен знать эти структуры, так как он должен инициализировать некоторые из них и время от време­ ни обращаться к ним.

Описатель задачи — это управляющая структура, которая определяет задачу в системе. Он содержит приоритет, состояние задачи и указывает адрес стека задачи. RMX/80 строит описатель задачи в памяти пользователя по информации, которая задается на

215

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

Описатель обменника является физическим вопло­ щением обменника в системе. Он позволяет RMX/80 отслеживать задачи, ждущие в обменнике, или сооб­ щения, находящиеся в обменнике. Он содержит ука­ затели на список задач и список сообщений. Когда сообщение поступает в обменник или задача посту­ пает на ожидание в обменник, или задача получает сообщение, RMX/80 изменяет эти списки, RMX/80 ставит задачи и сообщения в соответствие друг другу по принципу «первым пришел — первым обслужен». Если, например, в обменнике хранятся три сообщения] первая задача, которая обращается в обменник, получает первое сообщение из списка, и это сообще­ ние удаляется из обменника. В следующий раз эта задача (или другая, которая обращается в обменник) получит второе сообщение из списка и т. д.

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

RMX/80 создает описатели обменников и описате­ ли обменников прерываний в ОЗУ пользователя по данным, представленным программистом на этапе конфигурации системы, или когда работающая про­ грамма запрашивает создание обменников.

Каждое сообщение начинается с поля управляю­ щей информации в 5 или 9 байт, которая называется заголовком сообщения. Заголовок содержит указа-

216

тель, используемый для объединения сообщения в списки, индикаторы типа и длины и (дополнительно) некоторые адреса обменников, связанных с данным сообщением. Задача строит сообщения в некоторой области ОЗУ, которая может принадлежать задаче, или задача может запросить ее у программы управле­ ния свободной памятью. Последнее особенно полезно, когда задачи посылают сообщения переменной длины. Сообщение может иметь любую длину, если для него есть место в ОЗУ.

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

Структура ПО контроллера состоит из двух час­ тей: общего ПО, включающего исполнительную ОС, и специального ПО, состоящего из программ, завися­ щих от конкретного применения. Специальное ПО разрабатывается в соответствии с инструкцией по определенным правилам. На рис. 26 показана струк­ тура ПО программируемого логического контроллера.

Исполнительная операционная система (ИОС) контроллера содержит ряд обрабатывающих программ. Рассмотрим более подробно назначение каждой про­ граммы.

Восемь модулей составляют группу программ вво­ да-вывода: обработка прерываний от клавиатуры

выполняется по прерыванию ввод кода нажатой кла­ виши и посылает сообщение задаче обслуживания кла­ виатуры; обслуживание клавиатуры определяет наз­ начение нажатой клавиши и формирует соответствую­ щее сообщение для управляющей задачи или драйвера НМЛК; обслуживание экрана обеспечивает вывод на

Рис. 26. Структура ПО программируемого логического контрол­ лера

экран дисплея типа «Электроника» любой информа­ ции, предназначенной для оператора и представлен­ ной в стандартном 7-битовом символьном коде с воз­ можностью инвертирования; с помощью 8-го бита обеспечивает изменение цвета отображаемого симво­ ла (темный символ на светлом фоне или светлый сим­ вол на темном фоне); буфер символьной информации

218

имеет 8 страниц по 280 символов (14 х 20); драйвер ИРПС — задача обслуживания интерфейса радиаль­ ного последовательного; драйвер ИРПР обслуживает интерфейс радиальный параллельный; драйвер НМЛК обеспечивает чтение информации с кассетного накопи­ теля на магнитных лентах; драйвер ввода-вывода дискретной информации обслуживает модули дискрет­ ного ввода-вывода; драйвер ввода-вывода аналоговой информации обслуживает модули аналогового вводавывода.

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

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

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

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

также четыре задачи, реализующие непосредственное управление линией: управление автооператором

219

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

5.7.УСТРОЙСТВА ВВОДА-ВЫВОДА

Устройства ввода-вывода служат для связи микропро­ цессора с периферийными устройствами. Для их реа­ лизации используют компоненты общего назначе­ ния: буферные регистры, шинные формирователи, системные контроллеры, программируемые таймеры, параллельные и последовательные интерфейсы, моду­ ли обработки прерываний. Рассмотрим основные схе­ мы, принципы функционирования и организацию управления наиболее распространенных устройств ввода-вывода.

Многорежимный буферный регистр К589ИР12 (МБР) с формированием запросов прерываний ис­ пользуется для организации мультиплексоров, схем фиксаторов, стробируемых буферов, двунаправленных магистралей. Схема К589ИР12 (рис. 27) состоит из 8-битового параллельного регистра на основе D-триг­ геров с трехстабильными схемами И на выходах. МБР имеет встроенную логическую схему для

220

Соседние файлы в папке книги