Перевод может содержать ошибки. Читайте первоисточник: Real Time Application Design Tutorial
Назад: [Как работает FreeRTOS] | Вверх: [Как работает FreeRTOS] | Вперёд: [Как работает FreeRTOS] |
Если вы пришли прямо на эту страницу, то начните с этого:
Этот раздел содержит учебное пособие по написанию приложений, использующих ОСРВ, на микроконтроллерах с ограниченным объёмом памяти. И это не полноценный учебник по FreeRTOS. Если вы ищете учебник по FreeRTOS, или более полное руководство по использованию ОСРВ во встроенных системах, то, возможно, вам больше подойдёт книга по FreeRTOS, но она пока только на английском языке.
В этой части сайта представлены четыре различных подхода к построению гипотетического приложения реального времени. Пригодность каждого решения оценивается для встраиваемых компьютеров с различными объёмами ОЗУ, ПЗУ и возможностями обработки. Кроме того, оценивается простота и удобство использования каждого подхода.
Здесь не представлено исчерпывающего списка всех возможных подходов, но дано руководство по способам использования ядра реального времени FreeRTOS.
Следует отметить, что этот раздел был написан несколько лет назад, когда FreeRTOS использовалась в основно на очень маленьких микроконтроллерах. С тех пор FreeRTOS стала чаще использоваться на более крупных микроконтроллерах, где нет таких жёстких ограничений по объёму ОЗУ и ПЗУ.
Примечание: этот раздел обновлялся до выхода FreeRTOS версии v4.0.0. В версии v4.0.0 появилась концепция сопрограмм, использование которой может дать новое отличное решение поставленной здесь задачи. Дополнительная информация находится в разделе Tasks and Co-routines.
Приложение будет выполняться на встраиваемом одноплатном компьютере, который должен управлять неким агрегатом и обеспечивать локальный и удалённый пользовательские интерфейсы.
Как изображено выше, система содержит:
Здесь нас интересуют требования к последовательности и времени, а не точные функциональные требования.
Каждый цикл управления должен выполнять следующую последовательность:
Функция управления встроенного компьютера должна передавать запрос точно каждые 10 миллисекунд, а результирующая команда должна отправляться в течение 5 миллисекунд после запроса. Управляющий алгоритм зависит от точности синхронизации, поэтому крайне важно, чтобы эти требования синхронизации были соблюдены.
Клавиатура и ЖК-дисплеймогут использоваться оператором для выбора, просмотра и изменения системных данных. Интерфейс оператора должен всегда функционировать, пока выполняется управление агрегатом.
Чтобы не пропустить нажатие клавиши, клавиатура должна сканироваться как минимум каждые 15 мс. ЖК-дисплей должен обновляться в течение 50 мс после нажатия клавиши.
Светодиоды должны использоваться для отображения состояния системы. Мигающий зелёный светодиод должен показывать, что система работает, как положено. Мигающий красный светодиод должен указывать на неисправность.
Корректный светодиод должен мигать один раз в секунду. Частота вспышек должна поддерживаться с точностью 50 мс.
Интерфейс 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.
Встроенный веб-серверв должен обеспечивать обработку HTTP-запросов в течение одной секунды.
Требования к хронометражу этой гипотетической системы можно разделить на три категории:
Функция управления имеет очень строгие требования к хронометражу, поскольку должна выполняться каждые 10 мс.
Хотя выходы для светодиодов имеют ограничения по минимальному и максимальному времени, имеется большой диапазон хронометража, в пределах которого они могут функционировать.
Включает в себя клавиатуру, ЖК-дисплей, интерфейс RS232 и TCP/IP соединение по сети Ethernet.
Функции интерфейса пользователя имеют другой тип требований к хронометражу, поскольку указан только верхний предел. Например, клавиатура должна сканироваться каждые 15 мс, но допустима любая скорость до 15 мс.