You are here

Учебник: разработка приложений реального времени

Перевод может содержать ошибки. Читайте первоисточник: Real Time Application Design Tutorial

Назад: [Как работает FreeRTOS] Вверх: [Как работает FreeRTOS] Вперёд: [Как работает FreeRTOS]

 

Использование FreeRTOS в небольших встраиваемых системах.


Если вы пришли прямо на эту страницу, то начните с этого:

  1. Прочитайте "Домашнюю страницу" чтобы войти в курс дела.
  2. Прочитайте страницу "Что такое FreeRTOS" чтобы понять, для чего подходит FreeRTOS.

 

Введение

Этот раздел содержит учебное пособие по написанию приложений, использующих ОСРВ, на микроконтроллерах с ограниченным объёмом памяти. И это не полноценный учебник по FreeRTOS. Если вы ищете учебник по FreeRTOS, или более полное руководство по использованию ОСРВ во встроенных системах, то, возможно, вам больше подойдёт книга по FreeRTOS, но она пока только на английском языке.

В этой части сайта представлены четыре различных подхода к построению гипотетического приложения реального времени. Пригодность каждого решения оценивается для встраиваемых компьютеров с различными объёмами ОЗУ, ПЗУ и возможностями обработки. Кроме того, оценивается простота и удобство использования каждого подхода.

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

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

Примечание: этот раздел обновлялся до выхода FreeRTOS версии v4.0.0. В версии v4.0.0 появилась концепция сопрограмм, использование которой может дать новое отличное решение поставленной здесь задачи. Дополнительная информация находится в разделе Tasks and Co-routines.

 

[Гипотетическое] приложение

 


Структура системы

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

Как изображено выше, система содержит:

  1. Встраиваемый компьютер внутри управляющей панели.
  2. Два сетевых датчика, подключаемых по шине управления.
  3. Агрегат, которым необходимо управлять (это может быть что угодно: мотор, нагреватель и т.д.). Он подключается по той же шине управления..
  4. Матричная клавиатура, которая сканируется с использованием портов ввода/вывода общего назначения (GPIO).
  5. Два индикаторных светодиода.
  6. ЖК-дисплей.
  7. Встроенный веб-сервер, к которому может подключаться удалённый компьютер для мониторинга.
  8. Интерфейс RS232 для подключения к КПК с запущенной утилитой конфигурации.

 

Требования к программному обеспечению верхнего уровня

Здесь нас интересуют требования к последовательности и времени, а не точные функциональные требования.

Управление агрегатом

Каждый цикл управления должен выполнять следующую последовательность:

  1. Передача кадра через шину управления для запроса данных с сетевых датчиков.
  2. Ожидание приёма данных от обоих датчиков.
  3. Выполнение алгоритма управления.
  4. Отправка команды агрегату.

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

 

Локальные органы управления [клавиатура и ЖК-дисплей]

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

Чтобы не пропустить нажатие клавиши, клавиатура должна сканироваться как минимум каждые 15 мс. ЖК-дисплей должен обновляться в течение 50 мс после нажатия клавиши.

 

Светодиоды

Светодиоды должны использоваться для отображения состояния системы. Мигающий зелёный светодиод должен показывать, что система работает, как положено. Мигающий красный светодиод должен указывать на неисправность.

Корректный светодиод должен мигать один раз в секунду. Частота вспышек должна поддерживаться с точностью 50 мс.

 

Интерфейс RS232 для КПК

Интерфейс RS232 для подключения КПК должен иметь возможность просмотра и доступа к тем же данным, что и локальные органы управления, с теми же ограничениями по времени - со скидкой (или без скидки?) на любое время передачи данных.

The PDA RS232 interface shall be capable of viewing and accessing the same data as the local operator interface, and the same timing constraints apply - discounting any data transmission times.

Интерфейс TCP/IP

Встроенный веб-серверв должен обеспечивать обработку HTTP-запросов в течение одной секунды.

 

Компоненты приложения

Требования к хронометражу этой гипотетической системы можно разделить на три категории:

  1. Жёсткий хронометраж - управление агрегатом

    Функция управления имеет очень строгие требования к хронометражу, поскольку должна выполняться каждые 10 мс.

  2. Гибкий хронометраж - светодиоды

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

  3. Хронометраж "только крайний срок" - пользовательский интерфейс

    Включает в себя клавиатуру, ЖК-дисплей, интерфейс RS232 и TCP/IP соединение по сети Ethernet.

    Функции интерфейса пользователя имеют другой тип требований к хронометражу, поскольку указан только верхний предел. Например, клавиатура должна сканироваться каждые 15 мс, но допустима любая скорость до 15 мс.

Далее: Решение №1: Зачем использовать ядро ОСРВ?

Hobby's category: