Ethernet фильтрация блока Rx

Фильтрация данных о Ethernet с помощью блока Ethernet Rx.

В этом примере показано, как использовать блоки в библиотеке xpcethernetlib отфильтровать данные о Ethernet на основе EtherType пакета. EtherType является полем в Ethernet сетевой стандарт, который определяет, какой протокол транспортируется в пакете Ethernet. Пакеты данных сигнала отправляются моделью передатчика, xpcEnetDemo4Tx, работая на одном целевом компьютере, TargetPC1, к модели получателя, xpcEnetDemo4Rx, работая на втором целевом компьютере, TargetPC2. Блок "Ethernet Rx" используется, чтобы задать критерии фильтра EtherType. В этом простом примере два отдельных Ethernet блоки Rx используются, чтобы получить и отфильтровать пакеты данных. Один блок Ethernet Rx принимает пакеты SERCOS-III (EtherType - 88CD), второй блок Ethernet Rx принимает пакеты EtherCAT® (EtherType - 88A4). Перейдите к вкладке Filter в соответствующем Ethernet блоки Rx, чтобы видеть опции спецификации EtherType.

Примечания:

  1. Действительный SERCOS-III и пакеты EtherCAT не передаются. Только поле EtherType в пакете Ethernet собирается эмулировать эти типы.

  2. Эта модель показывает, как получить и обработать пакеты с помощью нескольких Ethernet блоки Rx. Сравните этот пример с xpcEnetDemo3 который использует один блок Ethernet Rx и затем анализирует пакеты данных с блоком Network Buffer Filter. Используйте метод, показанный в этом примере, xpcEnetDemo4, если вы хотите больше чем один блок Ethernet Rx - возможно, каждый содержавшийся в отдельных подсистемах.

Требования

Чтобы запустить этот пример, вы будете нуждаться в двух целевых компьютерах, каждом с установленным и сконфигурировали выделенную карту Ethernet (в дополнение к карте Ethernet, используемой в подключении Ethernet между разработкой и целевыми компьютерами). Обратитесь к документации Simulink® Real-Time™ относительно основанных на модели коммуникаций Ethernet для деталей. После того, как сконфигурированный, устанавливает Шину PCI и Паз в блоке "Real-time Ethernet Configuration" xpcEnetDemo4Tx и xpcEnetDemo4Rx к той из карты Ethernet, установленной в TargetPC1 и TargetPC2 соответственно.

Открытый, сборка и загрузка модель Tx к TargetPC1

Щелкните здесь, чтобы открыть модель Tx: xpcEnetDemo4Tx. Эта модель управляет генератором с сигналом прямоугольной волны и отправляет сигналы ввода и вывода генератора в целевой компьютер Rx. Вход генератора (прямоугольная волна) передается как пакет SERCOS-III и генератор, выход передается как пакет EtherCAT. Откройте модель.

mdlOpen = 0;
systems = find_system('type', 'block_diagram');
if ~any(strcmp(systems, 'xpcEnetDemo4Tx'))
  mdlOpen = 1;
  open_system(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','xpcEnetDemo4Tx'));
end

Создайте модель и загрузите на целевой компьютер Tx, TargetPC1.

  • Сконфигурируйте для немногословной сборки.

  • Установите настройку Ethernet совпадать с настройками целевого компьютера.

  • Сборка и приложение загрузки.

  • Закройте модель, если мы открыли ее.

set_param('xpcEnetDemo4Tx','RTWVerbose','off');
set_param('xpcEnetDemo4Tx/Real-time Ethernet Configuration','Driver','Intel Gigabit','Bus','5','Slot','0');
evalc('rtwbuild(''xpcEnetDemo4Tx'')');
tgTx = slrt('TargetPC1');
load(tgTx,'xpcEnetDemo4Tx');
if (mdlOpen)
  bdclose('xpcEnetDemo4Tx');
end

Открытый, сборка и загрузка модель Rx к TargetPC2

Щелкните здесь, чтобы открыть модель Rx: xpcEnetDemo4Rx. Эта модель фильтрует пакеты на основе EtherType и распаковывает полученные данные для отображения в целевых осциллографах. Откройте модель.

mdlOpen = 0;
systems = find_system('type', 'block_diagram');
if ~any(strcmp(systems, 'xpcEnetDemo4Rx'))
  mdlOpen = 1;
  open_system(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','xpcEnetDemo4Rx'));
end

Подсистема получателя SERCOS-III

open_system('xpcEnetDemo4Rx/SERCOS-III Receiver');

Подсистема получателя EtherCAT

open_system('xpcEnetDemo4Rx/EtherCAT Receiver');

Выберите Ethertype (s) процента по вкладке Filter блока Ethernet Rx. Как пример, пакет SERCOS-III выбран здесь:

Создайте модель и загрузите на целевой компьютер Rx, TargetPC2.

Сконфигурируйте для немногословной сборки. * Настройка Ethernet набора, чтобы совпадать с настройками целевого компьютера. Сборка и приложение загрузки. Закройте модель, если мы открыли ее.

set_param('xpcEnetDemo4Rx','RTWVerbose','off');
set_param('xpcEnetDemo4Rx/Real-time Ethernet Configuration','Driver','Intel Gigabit','Bus','8','Slot','10');
evalc('rtwbuild(''xpcEnetDemo4Rx'')');
tgRx = slrt('TargetPC2');
load(tgRx,'xpcEnetDemo4Rx');
if (mdlOpen)
  bdclose('xpcEnetDemo4Rx');
end

Запустите обе Модели

Используя переменные объекта Simulink Real-Time tgTx и tgRx, запустите модели.

  • Запустите модель Tx.

  • Запустите модель Rx.

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

start(tgTx);
start(tgRx);
pause(5);

Отобразите осциллограф целевого компьютера Tx

Просмотрите видеодисплей целевого компьютера Tx. Это отображает график данных сигнала, который отправляется в целевой компьютер Rx через необработанный Ethernet. Используйте команду:

tgTx.viewTargetScreen;

Отобразите осциллографы целевого компьютера Rx

Просмотрите видеодисплей целевого компьютера Rx. Это отображает график данных сигнала, полученных от целевого компьютера Tx через необработанный Ethernet. Обратите внимание на то, что только данные с SERCOS-III и EtherCAT EtherTypes, проходят через соответствующий Ethernet блоки Rx. Используйте команду:

tgRx.viewTargetScreen;

Остановите обе Модели

Когда сделано, мешайте моделям запуститься.

  • Остановите модель Tx.

  • Остановите модель Rx.

stop(tgTx);
stop(tgRx);