Получение сообщений CAN FD от указанного устройства CAN FD
Набор инструментов для сети транспортных средств: CAN FD Communication

Блок приема CAN FD получает сообщения из сети CAN и доставляет их в модель Simulink ®. Он выводит одно сообщение или все сообщения на каждом временном интервале в зависимости от параметров блока.
Примечание
Для использования этого блока необходима лицензия на программное обеспечение Vehicle Network Toolbox™ и Simulink.
Блок приема CAN FD имеет два выходных порта:
f() выходной порт является триггером подсистемы Function-Call. Если блок получает новое сообщение, он инициирует вызов функции из этого порта. Затем можно подключиться к подсистеме вызовов функций (Simulink) для распаковки и обработки сообщения.
Msg выходной порт содержит сообщение CAN, полученное в этот конкретный временной интервал. Блок выводит сообщения в виде сигнала шины Simulink. Дополнительные сведения об объектах шины Simulink см. в разделе Составные сигналы (Simulink).
Блок приема CAN FD хранит сообщения CAN в буфере FIFO. Буфер FIFO доставляет сообщения в модель в порядке очереди в каждый временной интервал.
Примечание
В модели, использующей один канал устройства PEAK-System, не может быть более одного блока приема CAN FD.
Блок приема CAN FD поддерживает использование режима Simulink Accelerator™. С помощью этой функции можно ускорить выполнение моделей Simulink. Дополнительные сведения см. в разделе Ускорение (Simulink).
Блок CAN FD Receive поддерживает использование генерации кода вместе с функцией packNGo для группировки требуемого исходного кода и зависимых общих библиотек. Дополнительные сведения см. в разделе Создание кода.
Блоки Simulink панели инструментов сети транспортных средств позволяют создавать код, позволяя моделям, содержащим эти блоки, работать в режимах Accelerator, Rapid Accelerator, External и Deployed.
Для создания кода на стороне хоста, который можно использовать для реализации модели, можно использовать инструментарий автомобильной сети, программное обеспечение Simulink Coder™ и Embedded Coder ®. Дополнительные сведения о создании кода см. в разделе Процесс построения (Simulink Coder).
Блок генерирует код с ограниченной переносимостью. Блок использует предварительно скомпилированные общие библиотеки, такие как DLL, для поддержки операций ввода-вывода для определенных типов устройств. С помощью этого блока можно использовать packNGo функция, поддерживаемая Simulink Coder для настройки и управления информацией о построении моделей. packNGo Функция (Simulink Coder) позволяет упаковывать код модели и зависимые общие библиотеки в zip-файл для развертывания. В целевой системе не требуется устанавливать MATLAB ®, но целевая система должна поддерживаться MATLAB.
Настройка packNGo:
set_param(gcs,'PostCodeGenCommand','packNGo(buildInfo)');
В этом примере: gcs - текущая модель, которую требуется построить. При построении модели создается zip-файл с тем же именем, что и имя модели. Вы можете переместить этот zip-файл на другой компьютер, и там построить исходный код в zip-файл, чтобы создать исполняемый файл, который может работать независимо от MATLAB и Simulink. Созданный код компилируется компиляторами C и C++. Дополнительные сведения см. в разделе Настройка процесса построения (Simulink Coder).
Примечание
На платформах Linux ® необходимо добавить папку, в которой распаковываются библиотеки, в переменную среды.LD_LIBRARY_PATH.
Совет
Настройте блок конфигурации CAN FD перед настройкой параметров блока приема CAN FD.
Выберите устройство CAN и канал на устройстве, от которого вы хотите получать сообщения CAN. В этом поле перечислены все устройства, установленные в системе. Здесь отображается имя поставщика, имя устройства и идентификатор канала. По умолчанию используется первое доступное устройство в системе.
Выберите фильтр в этом блоке для стандартных идентификаторов. Допустимые варианты:
Allow all (по умолчанию): Позволяет всем стандартным идентификаторам пройти фильтр.
Allow only: Допускает только идентификатор или диапазон идентификаторов, указанных в текстовом поле. Можно указать один идентификатор или массив идентификаторов. Можно также указать разделенные идентификаторы или массивы, разделенные запятой. Например, для приема идентификаторов от 400 до 500 и от 600 до 650 введите [[400:500] [600:650]]. Стандартные идентификаторы должны быть положительными целыми числами от 0 до 2047. Можно также указать шестнадцатеричные значения с помощью hex2dec функция.
Block all: Блокирует прохождение фильтра всеми стандартными идентификаторами.
Выберите фильтр в этом блоке для расширенных идентификаторов. Допустимые варианты:
Allow all (по умолчанию): Позволяет всем расширенным идентификаторам пройти фильтр.
Allow only: Позволяет использовать только те идентификаторы, которые указаны в текстовом поле. Можно указать один идентификатор или массив идентификаторов. Можно также указать разделенные идентификаторы или массивы, разделенные запятой. Например, для приема идентификаторов от 3000 до 3500 и от 3600 до 3620 введите [[3000:3500] [3600:3620]]. Расширенные идентификаторы должны быть положительными целыми числами от 0 до 536870911. Можно также указать шестнадцатеричные значения с помощью hex2dec функция.
Block all: Блокирует прохождение фильтра всеми расширенными идентификаторами.
Укажите время выборки блока во время моделирования, которое является временем моделирования, как описано в документации Simulink. Это значение определяет частоту, с которой во время моделирования выполняется блок приема CAN FD. Если блок находится внутри инициируемой подсистемы или для наследования времени выборки, можно указать -1 в качестве вашего времени образца. Можно также указать переменную MATLAB для времени выборки. Значение по умолчанию - 0,01 (в секундах).
Выберите количество сообщений, получаемых блоком в каждый заданный временной интервал. Допустимые варианты:
all (по умолчанию): блок CAN FD Receive доставляет модели все доступные сообщения в буфере FIFO в течение определенного временного интервала. Блок генерирует один вызов функции для каждого доставленного сообщения. Выходной порт всегда одновременно содержит одно сообщение CAN.
1: Блок CAN FD Receive доставляет по одному сообщению на временной интервал из буфера FIFO в модель.
Если блок не получает никаких сообщений до следующего временного интервала, он выводит последнее полученное сообщение.