Блоки драйверов ввода-вывода

Среда Simulink® Real-Time™ является решением для прототипирования и тестирования систем реального времени с помощью рабочего компьютера. Чтобы поддержать это решение, программное обеспечение позволяет вам добавлять блоки ввода-вывода в свою модель. Блоки библиотеки Simulink Real-Time обеспечивают конкретную функцию модуля ввода-вывода. При помощи блоков ввода-вывода в вашей модели можно сгенерировать исполняемый код, настроенный в частности на требования ввода-вывода.

Вы добавляете блоки драйверов ввода-вывода в свою модель Simulink, чтобы соединить вашу модель с модулями ввода-вывода (платы ввода-вывода). Эти модули ввода-вывода затем соединяются с датчиками и приводами в физической системе.

Модули ввода-вывода Speedgoat

Машины реального времени Speedgoat доступны с различными модулями ввода-вывода. См. Оборудование ввода-вывода Speedgoat.

Сторонние блоки драйверов

В дополнение к блокам, содержавшимся в библиотеке Simulink Real-Time, можно также использовать сторонние блоки драйверов в модели Simulink Real-Time. Описание этих блоков выходит за рамки документации Simulink Real-Time. Смотрите провайдера сторонних блоков драйверов для получения информации о тех платах и блоков драйверов.

Библиотека Блока драйверов ввода-вывода

Блок драйверов не представляет целую плату, но раздел I/O, поддержанный платой. Поэтому библиотека Simulink Real-Time может иметь больше чем один блок для каждой физической платы. Блоки драйверов ввода-вывода записаны как S-функции кода С (невстроенные S-функции). Исходный код для S-функций кода С включен с программным обеспечением Simulink Real-Time.

Отметьте, если ваша модель содержит блоки ввода-вывода, примите значения задержки ввода-вывода во внимание для образцового шага расчета. Чтобы найти значения задержки для платы поддерживаемыми библиотекой блоков Simulink Real-Time, консультируйтесь с таблицей данных поставщика. Чтобы найти ссылку на веб-сайт поставщика, см.:

www.mathworks.com/products/simulink-real-time/supported/hardware-drivers.html.

Чтобы найти значения задержки для плат Speedgoat, свяжитесь с технической поддержкой Speedgoat.

Система Simulink Real-Time поддерживает PCI и ISA (PC/104) шины. Если тип шины не обозначается в номере блока драйверов, определите тип шины блока путем исследования диалогового окна параметров блоков. Последний параметр является или слотом PCI, для Плат PCI, или базовым адресом, для ISA (PC/104) платы.

Можно открыть библиотеку драйвера устройства ввода-вывода с командой MATLAB® slrtlib. Библиотека slrtlib содержит подбиблиотеки, сгруппированные типом функции ввода-вывода, которую они обеспечивают.

Эта библиотека также содержит следующие блоки:

  • Примеры Драйвера Simulink Real-Time — Когда вы дважды кликаете этот блок, вкладку Demos в Навигаторе Справки MATLAB, открываются, отображая примеры Simulink Real-Time и группы в качестве примера.

  • Помогите для Simulink Real-Time — Когда вы дважды кликаете этот блок, страница дорожной карты Simulink Real-Time отображена. Можно получить доступ к документации Simulink Real-Time с этим блоком.

Примечание

Документация Simulink Real-Time описывает только блоки Simulink Real-Time. Это не описывает фактическую плату. Обратитесь к документации изготовителя платы для получения информации о платах.

Когда вы дважды кликаете одну из групп блока I/O, подбиблиотека открывается, отображая список, сгруппированный производителем. Двойной клик по одной из групп производителя отображает блоки драйверов устройства ввода-вывода для заданной функциональности ввода-вывода (например, A/D, D/A, Цифровые входы и Цифровые выходы).

Когда вы дважды кликаете один из блоков, диалоговое окно Block Parameters открывается, позволяя вам ввести специфичные для системы параметры. Параметры обычно включают

  • 'SampleTime'

  • Количество каналов

  • Область значений напряжения

  • Слот PCI (Платы PCI)

  • Базовый адрес (платы ISA/104)

Устройства с отображенной памятью

Simulink Real-Time резервирует пространство памяти на 112 Кбайт для устройств с отображенной памятью в диапазоне адресов:

C0000 - DBFFF

Драйверы для некоторых устройств с отображенной памятью, таких как плата Softing CAN-AC2-104, поддерживают диапазон адресов выше, чем область значений тот Simulink Real-Time поддержки. Задайте диапазон адресов, поддержанный и драйвером устройства и программным обеспечением Simulink Real-Time.

Устройства ввода-вывода ШИНЫ ISA

Существует два типа плат ISA:

  • Перемычка адресуемые карты ISA

  • PnP (Plug and Play) карты ISA

Программное обеспечение Simulink Real-Time только поддерживает перемычку адресуемые карты ISA (платы ISA не-PnP), где необходимо установить базовый адрес вручную.

Устройства ввода-вывода Шины PCI

Библиотека Simulink Real-Time I/O поддерживает платы ввода-вывода с шиной PCI. Во время процесса загрузки BIOS создает бесконфликтную настройку базовых адресов и линий прерывания для устройств PCI в целевой системе. Вы не должны задавать информацию о базовом адресе в диалоговых окнах драйверов.

Блоки драйвера устройства PCI имеют дополнительную запись в своих диалоговых окнах. Эта запись называется PCI Slot (-1 Autodetect) и позволяет вам использовать несколько идентичных Плат PCI в одной целевой системе. Эта запись использует значение по умолчанию -1, который позволяет драйверу искать целую шину PCI, чтобы найти плату. Если вы задаете один номер, X, больше, чем 0, драйвер использует плату в шине 0, слот X. Когда больше чем одна плата того же типа найдена, необходимо использовать номер соответствующего слота и избежать использования автоматического обнаружения. Для того, чтобы вручную установить номер слота, вы используете номер, больше, чем или равный 0. Если плата не может определить местоположение этого слота в целевом компьютере, ваше приложение реального времени сгенерирует сообщение об ошибке после загрузки.

Чтобы установить PCI Slot (-1 Autodetect) на значение равняются или больше, чем 0, необходимо идентифицировать, какую плату вы хотите на целевом компьютере. Чтобы идентифицировать плату, найдите идентификационный номер производителя (ID Поставщика) и идентификационный номер платы (ID Устройства) плат поддерживаемый библиотекой I/O. Когда цель загружается, BIOS выполняется, и монитор целевого компьютера показывает параметры для Плат PCI, установленных на целевом компьютере. Например:

Номер шины

Номер устройства

Функциональный номер

ID поставщика

ID устройства

Класс устройства

IRQ

0

4

1

8086

7111

IDE controller

14/15

0

4

2

8086

7112

Serial bus controller

10

0

11

0

1307

000B

Unknown PCI device

N/A

1

0

0

12D2

0018

Display controller

11

В этом примере третья строка указывает на местоположение Измерения Computing™ плата PCI-DIO48. Это местоположение известно начиная с Измерения Вычислительным ID поставщика является 0x1307, и ID устройства является 0xb. В этом случае вы видите, что Измерение Вычислительная плата включается в слот 11 PCI (Номер устройства). Введите это значение в запись диалогового окна в вашем драйвере устройства ввода-вывода для каждой модели, которая использует это устройство ввода-вывода.

Структуры Драйвера ввода-вывода Simulink Real-Time

Свойства для драйверов ввода-вывода Simulink Real-Time заданы с помощью диалогового окна параметра, сопоставленного с каждым блоком Simulink. Однако для более усовершенствованных драйверов, доступные поля, заданные текстовыми полями, флажками и выпадающими списками, являются несоответствующими, чтобы задать поведение драйвера. В таких случаях необходимо предоставить более текстовое описание, чтобы указать на то, что драйвер должен сделать во время выполнения. Текстовый в этом контексте относится к подобному языку программирования синтаксису и стилю.

Программное обеспечение Simulink Real-Time в настоящее время использует описание вектора символов, содержавшееся в структурах сообщения для обычных драйверов RS-232.

Что такое структура сообщения?

Структура сообщения является массивом MATLAB с каждой ячейкой, содержащей одно полное сообщение (команда). Сообщение состоит из одного или нескольких операторов.

Первое сообщениеВторое сообщениеТретье сообщение
Message(1).field Message(2).field Message(3).field
Message(1).field Message(2).field Message(3).field
Message(1).field Message(2).field Message(3).field

Синтаксис оператора сообщения

Каждый оператор в сообщении имеет следующий формат:

Structure_name(index).field_name = <field character vector or value>

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

Создание структуры сообщения

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

Лучший путь состоит в том, чтобы задать структуру сообщения как переменную в рабочем пространстве MATLAB и передать имя переменной драйверу. Например, чтобы инициализировать внешний модуль A/D и получить значение во время каждого демонстрационного интервала, создайте файл скрипта со следующими операторами:

Message(1).senddata='InitADConv, Channel %d'
Message(1).inputports=[1]
Message(1).recdata=''
Message(1).outputports=[]

Message(2).senddata='Wait and Read converted Value'
Message(2).inputports=[]
Message(2).recdata='%f'
Message(2).outputports=[1]

Этот подход отличается от других блоков драйверов Simulink Real-Time:

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

    После создания вашего скрипта модели и сообщения Simulink набор функция предварительной нагрузки модели Simulink, чтобы загрузить скрипт регистрирует в следующий раз, когда вы открываете модель. В Командном окне ввести

    set_param(gcs, 'PreLoadFcn', 'script_name')

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

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

Для получения дальнейшей информации на полях в структуре сообщения RS-232, смотрите Ссылку RS-232 Simulink Real-Time,

Поддержка Simulink Real-Time и SimState

Можно сохранить полные состояния симуляции модели при симуляции на компьютере разработчика, модель Simulink, которая содержит некоторые блоки Simulink Real-Time. Программное обеспечение не поддерживает это поведение при выполнении такой модели на целевом компьютере.

Для этой операции, набор флажок Save complete SimState in final state в панели Data Import/Export диалогового окна Configuration Parameters. Если ваша модель содержит следующие блоки, вы не можете сохранить полные состояния симуляции модели при симуляции на компьютере разработчика.

  • ASCII кодирует

  • ASCII декодирует

  • Асинхронное буферное чтение

  • Асинхронная буферная запись

  • Последовательная основная плата

  • Основная плата последовательный F

  • Упаковка бита (Библиотека Utilities)

  • Бит, Распаковывающий (Библиотека Utilities)

  • Упаковка байта (Библиотека Utilities)

  • Байт, Распаковывающий (Библиотека Utilities)

  • Создайте Пакет Ethernet (библиотека Ethernet)

  • Чтение интервала FIFO

  • Чтение ASCII FIFO

  • Запись FIFO

  • UDP получает

  • UDP отправляет

Чтобы предотвратить эти сообщения, снимите флажок Save complete SimState in final state в узле Data Import/Export диалогового окна Configuration Parameters.

PWM и примечания блока драйверов FM

В PWM и блоках драйверов FM, ваше управление выходной частотой и рабочим циклом не точно. Несмотря на то, что значение основной частоты точно, способ, которым задана основная частота, влияет на выходную частоту и рабочий цикл.

В начале каждого шага расчета блок читает текущие значения входного сигнала. Это затем вычисляет два 16-битных целых числа без знака, n и m, от значений сигналов и параметров блоков. Во время шага расчета блок содержит выходной сигнал:

  1. Высоко для циклов m основной частоты

  2. Низко для следующего n-m циклы

  3. Высоко для следующих циклов m

  4. . . .

Для основной частоты b этот алгоритм приводит к прямоугольному выходному сигналу частоты b/n и рабочий цикл m/n. Поскольку m и n должны быть целыми числами, не возможно предоставить непрерывный спектр выходных частот и рабочих циклов с совершенной точностью.

Например, примите, что вы хотите сконфигурировать блок FM с рабочим циклом (m/n) 1/2. f входного сигнала к этому блоку является относительной частотой, которая задает выходную частоту b × f. Однако m и n должны быть целыми числами. Поэтому вы не можете всегда находить значения m и n (рабочий цикл m/n = 1/2) таким образом что:

f = b/n
точно и
n = 2 * m
точно. Можно найти точное совпадение только, когда входной сигнал f равняется 1/4, 1/6, 1/8, и т.д. Выходные частоты для прошедшего входного сигнала значения f являются аппроксимированными. Ошибки меньше, когда f приближается к 0 и больше, как f приближается к 1.

Чтобы достигнуть самого маленького предела погрешности, задайте самую большую основную частоту. То, что n и m должны быть 16-битными целыми числами, налагает нижний предел:

b / (2 161)

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

Документация блока драйверов

Типичная документация блока Simulink Real-Time кратко описывает поддерживаемую плату, затем описывает параметры для каждого из блоков, которые поддерживают плату. Включенный в документацию для каждой платы таблица характеристик платы. Таблицы характеристик Совета могут включать следующую информацию:

ХарактеристикаЗадает...
Имя СоветаИмя платы поддержано блоками. Например, Speedgoat IO333.
ПроизводительПроизводитель платы. Например, Speedgoat.
Тип шиныСоедините шиной, который используется платой. Например, PCI или PC/104.
Метод доступаС отображенной памятью ли плата или сопоставленный ввод-вывод.
Несколько блокируют поддержку экземпляраМожно ли использовать несколько блоков для той же функции на той же плате. Например, различные блоки для различных каналов устройства A/D.
Несколько обшивают поддержкиМожно ли использовать несколько плат того же типа в одном приложении реального времени.