УДК 658.01 1 .56

(РГУПС),

(РГУПС)

ОПЕРАЦИОННАЯ СИСТЕМА ДЛЯ МИКРОКОНТРОЛЛЕРА FUJITSU МВ90590

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

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

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

НЕ нашли? Не то? Что вы ищете?

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

Рис. 1. Состав операционной системы

Основными принципами построения системы являются:

• кооперативная многозадачность;

• ограничение прерываний одним уровнем вложенности для обеспечения обработки таймера и устройств последовательного доступа;

• межзадачное взаимодействие на основе вектора состояния под управлением ядра ОС;

• контроль максимального времени, отводимого на выполнение одной задачи, с помощью сторожевого таймера;

• организация прикладной задачи на основе модели конечного автомата;

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

Микроконтроллеры серии MB90590 в качестве целевой платформы выбраны не случайно. Они обладают достаточно высокими техническими характеристиками и специально предназначены для бортовых и промышленных систем. Главная особенность контроллеров этой серии – наличие двух CAN-интерфейсов, перезаписываемой флэш-памяти (объем ППЗУ зависит от модели и составляет от 64 до 256 Кб) и трех последовательных интерфейсов (см. рис. 2).

Процессор контроллеров семейства F2MC-16LX, к которому принадлежит и серия MB90590, является быстродействующим 16-разрядным CISC-процессором. Он поддерживает 32-разрядные операнды (в большинстве инструкций), так как имеет 32-битный аккумулятор, адресуемая память составляет до 16 Мб. ОЗУ микроконтроллера MB90590 отображается на первые 8 Кб адресного пространства. Из этих 8 килобайт 256 байт отводятся на регистры общего назначения и около 1,7 Кб – на порты ввода-вывода. Таким образом, остается 6 Кб, которые можно использовать в приложениях.

Для обмена данными с ПК используется последовательный интерфейс. Контроллер содержит три устройства UART, которые программируются одинаковым образом (отличие заключается в адресах портов ввода-вывода). UART поддерживает синхронный и асинхронный режим при различных скоростях (до 500000 бод в асинхронном режиме и до 2M бод – в синхронном), переменную ширину слова и бит четности. Контроллер также содержит два CAN-интерфейса, аналогово-цифровой преобразователь, 8/16‑разрядный программируемый генератор частоты, генератор звукового сигнала, 8 каналов внешних прерываний, сторожевой таймер и таймеры общего назначения.

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

Рис. 3. Взаимосвязь между диспетчером, прикладными и управляющими программами и прерываниями

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

Межзадачное взаимодействие осуществляется с помощью вектора состояния (ВС), который представляет собой запись, включающую элементы (ЭВС) различных типов. Задачи обмениваются данными, считывая и изменяя значения ЭВС. Чтобы обеспечить должный уровень устойчивости системы к ошибкам в прикладных программах, примитивы чтения и записи ЭВС реализованы в составе ОС и также включены в состав ядра.

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

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

Для этого разработан специальный инструмент – математическая модель прикладной задачи.

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

Каждому переходу задачи из одного состояния в другое соответствует некоторый набор (один или несколько) входных значений Ii, который появляется с вероятностью pi (для ее нахождения необходимо достаточно полное знание о характере поведения управляемого объекта). Каждому переходу из состояния Si в состояние Sj соответствует свое время tij, которое требуется задаче, чтобы произвести некоторые вычисления в соответствии с ее алгоритмом. Поскольку время каждого перехода задачи из одного состояния в другое зависит только от набора входных значений I и текущего состояния S (иными словами, не зависит от предыстории), то моделью происходящего процесса является цепь Маркова. Марковский процесс имеет стационарный режим, если за конечное число шагов возможен переход из любого состояния в любое другое. Поскольку модель задачи удовлетворяет этим условиям, существуют (и могут быть рассчитаны) стационарные вероятности Pi каждого состояния рассматриваемой задачи. Итак, исходными данными являются матрица интенсивностей перехода

матрица времен смены состояния задачи

и вектор вероятностей появления всех входных наборов переменных

Уравнения Колмогорова для стационарного режима марковского процесса составляются на основе графа состояний задачи и имеют следующий вид:

Решением этой системы уравнений является вектор стационарных состояний | Pi |. На основе этих данных с использованием матрицы времен смены состояния задачи можно вычислить математическое ожидание времени смены состояния задачи M[tij]:

где P(tij) = Pi × pj, поскольку это не что иное, как вероятность совпадения двух независимых событий, состоящих в том, что задача находилась в состоянии Si, и она получила набор значений входных переменных Ij.

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

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

где tmax – это максимальное время смены состояния каждой задачи. Чтобы определить это время для каждой задачи, нужно выбрать максимальный элемент ее матрицы | tij |. Таким образом, исходя из параметров каждой задачи, а также модели поведения управляемого объекта, можно рассчитать параметры характеристики построенной системы.

Выводы

При разработке ОС для микроконтроллера Fujitsu MB90590 решены следующие задачи:

1) обеспечение уровня абстракции над оборудованием – разработан набор библиотек, управляющих устройствами микроконтроллера;

2) обеспечение управления прикладными программами – на основе механизма кооперативной многозадачности спроектирован диспетчер задач;

3) предоставление средств взаимодействия процессов – реализован набор примитивов ядра для доступа к ЭВС;

4) предложена схема построения прикладных задач на основе конечных автоматов, построена математическая модель прикладной задачи и диспетчера, позволяющая оценить параметры характеристики ОС.