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

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

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

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

Создайте образец модели программного обеспечения

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

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

  2. В редакторе Simulink добавьте блок Подсистема Вызова Функций к модели. Подключите блок Inport к входу порту блока Подсистемы вызова функций. Соедините выход порт с блоком Terminator.

  3. Добавьте блок Asynchronous Task Specification к модели. В диалоговом окне Параметры Блоков установите приоритет Задачи равным 41.

  4. Подключите выход порт блока Asynchronous Task Спецификации к входу функции () блока Подсистемы вызова функций.

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

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

  7. Добавьте блок UDP Read к модели. Откройте диалоговое окно Параметров блоков, установите значение Maximum данных length (элементов) равным 1024 и установите флажок Включить основанное на событиях выполнение.

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

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

  10. Выберите панель Аппаратная реализация ( Hardware Implementation) , устанавливать Оборудование плату равной Zedboard.

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

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

Создайте модель приложения SoC

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

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

  2. В редакторе Simulink добавьте блок Model. В диалоговом окне «Параметры блоков» установите значение «имя модели» soc_task_createeventdriventask_software.slx.

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

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

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

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

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

  8. Выберите панель Аппаратная реализация ( Hardware Implementation) , устанавливать Оборудование плату равной Zedboard.

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

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

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

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

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

См. также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте