Фильтрация на мак адресе

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

В этом примере показано, как использовать блоки в библиотеке xpcethernetlib отфильтровать данные о Ethernet на основе Мак адреса отправителя. Данные сигнала отправляются моделью передатчика, xpcEnetDemo2Tx, работая на одном целевом компьютере, TargetPC1, к модели получателя, xpcEnetDemo2Rx, работая на втором целевом компьютере, TargetPC2. Блок "Filter Address" используется, чтобы задать исходные Мак адреса, которые будут приняты. В этом простом примере пакеты данных, содержащие один из трех исходных Мак адресов, пройдут через блок Filter Address в модели получателя:

  1. Мак адрес: 40:41:42:43:44:45

  2. Мак адрес: 20:21:22:23:24:25

  3. Мак адрес: 50:51:52:53:54:55

Примечание: Только пакеты с Мак адресом 20:21:22:23:24:25 на самом деле переданы, получены и построены.

Требования

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

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

Щелкните здесь, чтобы открыть модель Tx: xpcEnetDemo2Tx. Эта модель управляет генератором с сигналом прямоугольной волны и отправляет сигналы ввода и вывода генератора в целевой компьютер Rx с помощью необработанного Ethernet. Пакеты передаваемых данных имеют заданный Мак адрес 20:21:22:23:24:25. Откройте модель.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

set_param('xpcEnetDemo2Rx','RTWVerbose','off');
set_param('xpcEnetDemo2Rx/Real-time Ethernet Configuration','Driver','Intel Gigabit','Bus','8','Slot','10');
evalc('rtwbuild(''xpcEnetDemo2Rx'')');
tgRx = slrt('TargetPC2');
load(tgRx,'xpcEnetDemo2Rx');
if (mdlOpen)
  bdclose('xpcEnetDemo2Rx');
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. Обратите внимание на то, что данные проходят через только один из фильтров Мак адреса. Используйте команду:

tgRx.viewTargetScreen

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

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

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

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

stop(tgTx);
stop(tgRx);