Программное обеспечение Simulink® Real-Time™ включает поддержку асинхронных событий в ответ на прерывание от плат ввода-вывода. В ответ на эти прерывания центральный процессор может приостановить нормальное выполнение, и скачок к другому разделу кода вызвал Процедуру обработки прерывания (ISR).
При разработке модели Simulink Real-Time можно смоделировать Стандартную программу сервера прерывания (ISR) при помощи Подсистемы вызова функций. Кроме того, добавьте Исходный блок IRQ, соединенный с блоком Function-Call Subsystem. Эта подсистема затем выполняется, когда прерывание происходит, и центральный процессор готов принять его.
После того, как вы установите плату ввода-вывода с поддержкой прерывания в ваш целевой компьютер, можно добавить Simulink Real-Time асинхронные блоки в модель Simulink.
В Командном окне MATLAB® ввести
slrtlib
Библиотека Simulink Real-Time открывается.
Дважды кликните Асинхронный блок группы События.
Библиотека: окно Event slrtlib/Asynchronous открывается.
Перетащите блок Simulink Real-Time IRQ в свою модель Simulink и соедините выход с этим блоком к входу Подсистемы вызова функций. Для получения дополнительной информации о Подсистемах вызова функций см. документация Simulink Coder™ и Simulink.
В настройке, показанной выше, центральный процессор выполняет содержимое Подсистемы вызова функции каждый раз, когда IRQ 5 происходит.
Дважды кликните Исходный блок IRQ.
Параметры блоков: диалоговое окно IRQ Source открывается.
Определить и использовать IRQ, что BIOS, присвоенный плате, из списка IRQ line number, выбирает Auto (PCI only)
.
В качестве альтернативы выберите одно из значений 3–15
для этого номера. Чтобы определить доступные числа линии IRQ на целевом компьютере, используйте функциональный SimulinkRealTime.target.getPCIInfo
.
От I/O board generating the interrupt выпадающий список выберите плату прерывания.
В поле PCI slot (-1: autosearch) or ISA base address введите номер слота PCI или введите -1
позволять программному обеспечению Simulink Real-Time определить номер.
Нажмите OK.
Для получения дополнительной информации об Исходном блоке IRQ, смотрите Асинхронный Источник IRQ.
Чтобы передать данные из вашего ISR, добавьте блок Async Transition или блок Async Read/Write к вашей модели Simulink. Смотрите Асинхронный Пример Прерывания.
Если вы используете полевую шину CAN с прерываниями, смотрите Асинхронный Пример Прерывания.
xpcasynctrans
модель использует внешний сигнал TTL инициировать прерывание на параллельном порте. Данные переданы между асинхронной задачей и пропорциональной числу обращений задачей при помощи блока Async Rate Transition. Для получения дополнительной информации см. аннотации в модели тот документ ее цель.
Если вы установили программное обеспечение MATLAB в месте по умолчанию, модель в качестве примера расположена в этой папке:
C:\MATLAB\toolbox\rtw\targets\xpc\xpcdemos