Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Ч.4. Учебное пособие
.pdf
3.5. Системы на кристалле
81
сокращения тактовой частоты. Для оптимизации по скорости следует использовать MicroBlaze с 5-уровневым конвейером, что позволяет работать
при тактовой частоте до 235 МГц. Кроме того, ключевые команды процессора, которые редко используются, но при этом их дорого воспроизводить
«в железе», могут быть выборочно добавлены или удалены. Подобные
настройки предоставляют разработчику возможность строго определять
грань между аппаратной и программной частью в проекте.
Без блока управления памятью MicroBlaze способна функционировать
ОС с упрощенной защитой и виртуальной памятью, например μClinux или
FreeRTOS. С блоком управления памятью возможна работа операционных
систем, требующих аппаратной поддержки страничной организации памяти и защиты (ядро Linux). При этом следует иметь в виду, что производительность MicroBlaze значительно ниже, чем у таких аппаратных микропроцессорных ядер, встроенных в ПЛИС, как PowerPC-405 или Virtex-4.
Nios II [48]
Это 32-разрядная микропроцессорная архитектура для встраиваемых
приложений (soft-микропроцессор), разработанная специально для ПЛИС
фирмы Altera. Nios II является развитием архитектуры Nios и находит применение в различных встраиваемых приложениях, начиная от цифровой обработки сигналов до управляющих систем (см. рис. 26).
Рис. 26. Архитектура Nios II
Nios II можно сравнить с MicroBlaze, конкурирующей с микропроцессорной архитектурой для ПЛИС фирмы Xilinx. В отличие от Microblaze,

3. Классификация ОС РВ
82
Nios II возможно лицензировать для реализации в СБИС при посредничестве Synopsys Designware.
PicoBlaze [49]
Серия свободно распространяемых soft-процессорных ядер компании
Xilinx для ПЛИС. PicoBlaze основана на архитектуре 8-битного
RISC-процессора; скорость работы на ПЛИС семейства Virtex 4 может до-
стигать 100 MIPS. С целью обращения к периферии процессор использует
8-битную шину, посредством которой появляется возможность раздельно
читать и записывать до 256 портов.
PicoBlaze распространяется в виде исходного кода на языках VHDL и
Verilog для свободного использования на продуктах фирмы Xilinx. Особенности архитектуры гарантируют наилучшие характеристики для ПЛИС семейства Spartan и Virtex. Фирмой Xilinx предлагается к использованию специальное программное обеспечения для трансляции исходного кода на
языке Ассемблера. Синтаксис исходного языка нарочито упрощен в угоду
простоты и скорости. Также имеется специальное инструментальное программное обеспечение, созданное сторонними организациями (Mediatronix
и др.). Альтернативно существует PacoBlaze – модифицированное ядро
PicoBlaze, распространяемое под лицензией BSD.
При вставке PicoBlaze в проект на VHDL должно быть использовано
соответствующее имя компонента KCPSM. Ядро KCPSM3 поддерживает:
− обращение к 18-битным микрокомандам;
− выполнение микрокоманды за один цикл, два такта;
− 10 битный программный счетчик микрокоманд PC;
− одноадресные и двухадресные байтовые операции;
− 16 встроенных регистров;
− АЛУ арифметических и логических операций, однобитовый сдвиг;
− два флага операций: CARRY и ZERRO;
− встроенное ОЗУ strachpad на 64 байта в пространстве 256 байт;
− обращение к 256 независимым портам на чтение и запись;
− встроенный стек вызовов на 31 ячейку (CALL/RETURN stack);
− одноуровневое прерывание.
Ядро KCPSM6 для PicoBlaze поддерживает:
− обращение к 18-битным микрокомандам;
− выполнение микрокоманды за один цикл, два такта;

3.5. Системы на кристалле
83
− 12 битный программный счетчик микрокоманд PC;
− дополнительная возможность ветвления программы по содержи-
мому регистра;
− дополнительная возможность возврата из подпрограмм и одновре-
менная идентификация точки возврата;
− одноадресные и двухадресные байтовые операции, расширенная по
отношению к KCPSM3 система команд;
− два, программно переключаемых, банка встроенных регистров по
16-ть регистров каждый;
− АЛУ арифметических и логических операций, однобитовый сдвиг;
− – два флага операций: CARRY и ZERRO;
− встроенное ОЗУ strachpad в пространстве 256 байт конфигурируе-
мого размера;
− обращение к 256 независимым портам на чтение и запись;
− дополнительное пространство 256 портов для специальной кон-
стантной записи;
− встроенный стек вызовов на 30 ячеек (CALL/RETURN stack);
− одноуровневое настраиваемое прерывание.
Кроме того, ядро PicoBlaze:
− выполняет команды преимущественно за два такта (в KCPSM6 не-
которые команды за 4 такта), при этом тактовая частота может доходить до
нескольких сотен МГц;
− быстро реагирует на прерывания (в худшем случае – за 5 тактов);
− в версии KCPSM-3 оптимизировано для архитектуры Xilinx
Spartan-3: занимает всего 96 ячеек (slices) и 1 блок RAM;
− в версии KCPSM-6 оптимизировано для архитектуры Xilinx
Spartan-6, Virtex-6, и FPGA седьмой серии: занимает всего 26 ячеек.
Программы для PicoBlaze необходимо писать на ассемблере. Программы, написанные для KCPSM3, требуют перетрансляции, когда необходимо их исполнение на KCPSM6, но и в этом случае по ряду общих команд
нет полной совместимости. Для отладки имеется программный симулятор.
С помощью специальных программных средств программа для
PicoBlaze может быть заменена непосредственно в файле прошивки ПЛИС
(с расширением bit). С помощью специальных программных средств можно

3. Классификация ОС РВ
84
загружать программу для PicoBlaze непосредственно в ПЛИС через интерфейс JTAG.
3.6. ОС РВ для микроконтроллеров
Ядро реального времени позволяет легко разрабатывать и расширять
приложения реального времени; можно добавлять функции без больших изменений в программном коде. Использование ОС РВ упрощает процесс разработки, разбивая код приложения на отдельные задачи. С использованием
приоритетной ОСРВ все критичные к времени события обрабатываются так
быстро и так эффективно, как это возможно для выбранного микроконтроллера. ОСРВ позволяет лучше использовать ресурсы центрального процессора посредством сервисов типа семафоров, почтовых ящиков, очередей,
задержек, тайм-аутов и т. д. Основным недостатком ОСРВ являются повышенные требования к производительности микроконтроллера.
В настоящее время существует более 80 различных операционных си-
стем реального времени, поддерживающих 8-, 16- и 32-разрядные микропроцессоры. Некоторые из этих пакетов – законченные ОС и включают не
только ядро реального времени, но также менеджер ввода-вывода, системы
управления выводом информации (дисплей), файловую систему, работу с
сетями, библиотеки языков интерфейса, отладчики и межплатформенные
компиляторы.
Azure [50]
Данная ОС РВ предназначается для устройств с ограниченными ресур-
сами Интернета вещей и пограничных устройств на базе микроконтроллеров (MCU). Она предоставляет среду безопасности, сертифицированную по
общему критерию EAL4 +, включая полную безопасность уровня IP посредством IPsec и безопасность уровня сокетов посредством TLS и DTLS.
ОС РВ Azure включает следующие компоненты (см. рис. 27):
− ОС РВ Azure ThreadX предназначается для глубоко встраиваемых
приложений;
− ОС РВ Azure FileX – это высокопроизводительная файловая си-
стема, совместимая с FAT;
− ОС РВ Azure GUIX – это пакет для графического пользователь-
ского интерфейса профессионального качества;

3.6. ОС РВ для микроконтроллеров
85
− ОС РВ Azure NetX – это высокопроизводительная реализация стан-
дартов протокола TCP/IP;
− ОС РВ Azure NetX Duo – это расширенный сетевой стек TCP/IP
промышленного класса, предназначенный для глубоко внедренных приложений, работающих в реальном времени;
− ОС РВ Azure USBX – это высокопроизводительный USB-узел,
устройство и встроенный стек оперативных средств.
Рис. 27. Компоненты ОС РВ Azure
uRTOS [51]
Является событийной ОС, обладающей свойством вытесняющей многозадачности. Кроме того, легко настраивается, масштабируется и обладает адаптивным потреблением памяти микроконтроллера. Реализована
на языке Ассемблер. Предназначается для работы на всех микроконтроллерах AVR фирмы Atmel с объёмом оперативной памяти от 128 байт
(см. рис. 28).
Рис. 28. Микроконтроллер на основе ОС РВ uRTOS

3. Классификация ОС РВ
86
uRtos состоит из ядра и пользовательских процессов. Под ядром пони-
мается набор программных средств, которые обеспечивают функционирование процессов и выполняют обработку прерывания микроконтроллера.
Основным компонентом ядра, отвечающим за работу с процессами, является диспетчер (планировщик). Диспетчер отвечает за запуск и выполнение
процессов, а также выполняет их перепланировку в соответствии с алгоритмом работы системы.
uRTOS является ОС мягкого реального времени, так как внутри её диспетчера любые прерывания запрещены. В результате происходит растягивание интервала выполнения задачи реального времени во время работы
системы при больших нагрузках.
uRTOS осуществляет поддержку до 31 пользовательского процесса.
Каждый процесс представляет собой обособленную программу, выполняющую определённый круг задач и имеющую свой стек для сохранения данных и адресов возврата из процедур. Процессы встраиваются в систему на
этапе компиляции. При этом и динамическое взаимодействие с процессами
не поддерживается.
Salvo [52]
Первые версии ОС РВ Salvo были написаны на ассемблере и предназначались для микроконтроллера Microchip PIC17C756 PICmicro в частной
внутренней системе сбора данных. Эта версия поддерживала большое
число базовых функций, позднее использовавшихся в последующих версиях. Дальнейшие версии данной ОС РВ, реализованные на языке программирования C, обладали расширенным функционалом. Salvo стала более
мощной и гибкой, а также полностью переносимой. Она предназначалась
для всего ряда микроконтроллеров Microchip PICmicro. Salvo версии 3 поддерживала новые микропроцессоры, такие как 8-битные 8051 и 16-битные –
MSP430. Salvo версии 4 поддерживала 32-битные встроенные процессоры.
Был достигнут максимум конфигурируемости и эффективности, что предоставляет пользователю полную гибкость в режиме реального времени.
Salvo является чрезвычайно гибко конфигурируемой системой для
удовлетворения требований самого широкого круга пользователей встраиваемых микроконтроллеров. Она также обеспечивает пользователя всеми
необходимыми заголовочными файлами, инструментами пользователя,
предопределенными константами, типами данных, функциями и т.д.

3.6. ОС РВ для микроконтроллеров
87
jacOS [53]
Является кооперативной многозадачной ОС РВ. Порядок выполнения
задач определяется их приоритетами и событиями, обслуживаемыми системой. В последней версии реализованы семафоры, сообщения, таймауты,
маскируемые события. В библиотечной версии количество задач и событий
искусственно не ограничено. Приоритеты задач статические.
jacOS версии 1.06.0 поддерживает 12-и, 14-и и 16-битные контроллеры
PIC, а также AVR, MSP430 и х51. В качестве ограничения для первых двух
серий выбрана память данных. Для 18-й серии дело обстоит иначе, так как
в библиотечной версии для каждого процессора была выбрана только одна
«модель» работы с памятью. В табл. 2 указаны подробности обо всех ограничениях для каждой серии контроллеров.
Таблица 2
Подробности обо всех ограничениях
для каждой серии контроллеров
Контроллер
Модель
Ограничения
Примечания
PIC 12 бит
H–T
SMALL
Строковые константы и
таблица переходов вместе должны поместиться
в 256 слов ROM.
Каждая точка переключения
контекста требует два слова в
таблице переходов
PIC 14 бит
H–T
COMPACT
Все системные переменные + TCB + ECB
должны находиться в
bank() и bank1 .
Каждая задача требует от 4 до
8 байт для блока управления
(TCB). Для каждого события
так же требуется блок управления (ECB) в 2–4 байта.
Библиотеки с поддержкой банков 2–3 можно получить по запросу.
PIC 18
H–T
COMPACT
1. Все системные пере-
менные, TCB и ECB
имеют квалификатор
near, следовательно,
должны уместиться в
128 байт RAM (96 байт
для некоторых контроллеров).
2. Данная модель рабо-
тает с памятью до 64 Kb
(32 килослова)
TCB занимает от 4 до 8 байт.
ECB – от 3 до 4.
Максимальное количество задач для этой модели составляет 24.
PIC 18
IAR
NORMAL
1. Все системные пере-
менные, TCB и ECB
объявлены с ключевым
словом _bank1 (256 б.)
Code model = Static overlay.
TCB занимает от 5 до 9 байт.
ECB – от 4 до 5.

3. Классификация ОС РВ
88
Окончание табл. 2
Контрол-
лер
Модель
Ограничения
Примечания
AVR GCC
WINAVR
NORMAL
TCB занимает от 5 до 9 байт.
ECB – от 4 до 6.
AVR
IAR
COMPACT
NORMAL
1. Системные пере-
менные имеют квалификатор _tiny.
2. Опция Cross Call
при оптимизации
должна быть отключена.
3. Опция Cross Call при
оптимизации должна
быть отключена.
Максимальное количество задач
для этой модели составляет 30.
Поддерживаются модели компилятора tiny и small в конфигурациях от v0, v1, v3. TCB занимает
от 4 до 8 байт. ECB – от 2 до 5.
Поддерживается модель small в
конфигурации v3. TCB занимает
от 5 до 12 байт. ECB – от 3 до 6.
MSP430
IAR
NORMAL
TCB занимает от 6 до 12 байт.
ECB – от 4 до 6.
X51
Keil
NORMAL
Программная память
до 64 Kb
TCB занимает от 4 до 8 байт.
ECB – от 3 до 5.
KeilRTX [54]
Keil RTOS – многозадачная открытая ОС РВ, интегрированная в среду
Keil (см. рис. 29). Функционирование происходит только на архитектуре
ARM. Данная ОС РВ Поддерживает многозадачность и сервисы для
мьютексов, семафоров, событий, почтовых ящиков. Обеспечивает циклическую, упреждающую и неупреждающую (совместную) политику планирования. Поддержка отладки RTX интегрирована в инструменты MDK-ARM.
Кроме того, реализует API CMSIS-RTOS, стандартизированный ARM. Поскольку исходный код предоставляется вместе с инструментами MDKARM, он используется исключительно при разработке устройств на базе
процессоров ARM Cortex-Mx.
К основным преимуществам следует отнести:
1. портируемость в пределах архитектуры ARM;
2. поддержка большого количества готовых библиотек;
3. высокоскоростная работа в реальном времени с малой задержкой
прерывания;
4. высокая надежность.
Основными недостатками являются:
1. невозможность использования не на архитектурах ARM;
2. низкая скорость;
3. сложна в использовании;
4. отсутствие графического интерфейса.

3.7. Обеспечение отказоустойчивости систем реального времени
89
Рис. 29. Архитектура ядра
Производительность системы Keil RTX зависит от множества факторов, включая архитектуру процессора, объем памяти, выделенный для системы, и характеристики исполняемых задач. В целом, система Keil RTX
является быстрой и эффективной, что позволяет использовать ее на микроконтроллерах с низким энергопотреблением.
Требования к системной памяти Keil RTX зависят от конкретной реализации системы, а также от требуемого числа задач и объема обрабатываемой информации. В среднем для работы Keil RTX потребуется от 2 до 8 Кб
ОЗУ и от 6 до 12 Кб ПЗУ. Для эффективного использования системы необходимо выбирать микроконтроллеры с соответствующим объемом памяти.
Keil RTX оптимизирована для 32-разрядной архитектуры ARM и полностью отвечает всем этим требованиям. RTX имеет следующие характеристики: малое время переключения <5 мкс, 255 уровней прерываний, до
256 выполняемых одновременно задач, неограниченное число таймеров
пользователя.
Для удобства программиста в среде Keil модули объединяют в группы
по назначению. На рис. 30 показана структура проекта с указанием всех
модулей.
3.7. Обеспечение отказоустойчивости
систем реального времени
С целью обеспечения надежного функционирования системы и ожида-
емого выполнения задач в условиях случайных и систематических сбоев
должен быть применен один из следующих двух подходов:

3. Классификация ОС РВ
90
1. восстановление / возобновление задачи после сбоя системы;
2. предотвращение отказа системы.
Рис. 30. Структура модулей проекта
Первый подход состоит во внедрении дополнительных механизмов
прямого и возвратного восстановления задачи. Прямое восстановление осуществляется без восстановления предыдущего состояния, т.е. задача запускается заново с переходом к следующему состоянию.
При возвратном восстановлении производится возврат процесса к его
предыдущему состоянию. Подобный процесс невозможен без надежного
хранения текущего состояния процессов.
С целью восстановления состояния может быть применён один из следующих двух методов:
1. промежуточная фиксация;
2. ведение журнала.
Следует отметить, что использование данных методов будет затруднено для распределенной системы, так как процесс хранения состояний нескольких параллельно взаимодействующих объектов достаточно сложен.
Для устранения подобных сложностей созданы системы, которые
устойчивы к распространенным типам сбоев и отказов. Такие системы либо
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
