Событийно-управляемые задачи

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

Примечание

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

Создайте модель Simulink с управляемой событиями задачей

В этом примере показано, как создать и сконфигурировать модель Simulink®, чтобы использовать управляемую событиями функцию задачи SoC Blockset.

Создайте модель руководства по программному обеспечению

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

  1. Создайте новую пустую модель.

  2. В редакторе Simulink добавьте блок Function-Call Subsystem в модель. Соедините Inport блок с входным портом блока Function-Call Subsystem. Соедините выходной порт с блоком Terminator.

  3. Добавьте блок Asynchronous Task Specification в модель. На диалоговом окне Block Parameters, набор Приоритет задач к 41.

  4. Соедините выходной порт блока Asynchronous Task Specification к функции () вход блока Function-Call Subsystem.

  5. Добавьте Inport блок и откройте диалоговое окно Параметров блоков. На вкладке Signal Attributes проверяйте вызов Выходной функции. Соедините Inport блок с входным портом блока Asynchronous Task Specification.

  6. Откройте модель Подсистемы вызова функций.

  7. Добавьте блок UDP Read в модель. Откройте диалоговое окно Block Parameters, установите Максимальную длину данных (элементы) на 1024 и проверка Включает основанное на событии выполнение.

  8. Соедините Inport блок с Портом данных UDP блока UDP Read. Соедините Порт данных с блоком Outport. Соедините порт Length с блоком Terminator.

  9. Откройте диалоговое окно Configuration Parameters, выберите панель Решателя. Установите выбор Решателя> Тип к Fixed-step и проверяйте Управление задачами и демонстрационные опции таймера>, Более высокое приоритетное значение указывает на более высокий приоритет задач.

  10. Выберите панель Аппаратной реализации, установите Аппаратную плату на Zedboard.

  11. Сохраните модель как soc_task_createeventdriventask_software.slx.

Завершенная модель должна выглядеть похожей на следующую модель.

Создайте прикладную модель SoC

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

  1. Создайте новую пустую модель.

  2. В редакторе Simulink добавьте блок Model. На диалоговом окне Block Parameters, определенном Имени модели к soc_task_createeventdriventask_software.slx.

  3. Добавьте блок Task Manager и откройте диалоговое окно Block Parameters. Установите Основное> Тип к Event-driven и Основной> Приоритет к 41. Каждая недавно добавленная событийно-управляемая задача отсоединяет входной порт сообщения о событии на блоке Task Manager.

  4. (Необязательно) На вкладке Simulation, вы задаете длительность задачи для той задачи. Для получения дополнительной информации о том, чтобы поставить длительность задачи смотрите Длительность Задачи.

  5. В редакторе добавьте блок IO Data Source в модель. Откройте диалоговое окно Block Parameters и включите порт события Show.

  6. Соедините порт Event блока IO Data Source с Диспетчером задач и Портом данных UDP к порту UDP Data Message на блоке Модели - ссылки.

  7. Откройте диалоговое окно Configuration Parameters, выберите панель Решателя. Установите выбор Решателя> Тип к Fixed-step и проверяйте Управление задачами и демонстрационные опции таймера>, Более высокое приоритетное значение указывает на более высокий приоритет задач.

  8. Выберите панель Аппаратной реализации, установите Аппаратную плату на Zedboard.

  9. Обновите схему, нажмите Ctrl+D.

  10. Сохраните модель как soc_task_createeventdriventask_application.slx.

Завершенная модель должна выглядеть похожей на следующую модель.

Запустите модель с управляемой событиями задачей

В редакторе Simulink запустите soc_task_createeventdriventask_application.slx модель. Когда запуск завершится, откройте Инспектора Данных моделирования и выберите Task1. Инспектор Данных моделирования показывает, что Task1 инициировал и выполняется каждый раз, когда новый пакет UDP прибывает. Несмотря на то, что поверхностно выполнение задачи кажется периодическим, это - только побочный продукт текущих настроек по умолчанию блока IO Data Source, который генерирует событие с временным шагом 0.1.

Смотрите также

|

Похожие темы