Фильтрация данных о Ethernet с помощью Мак адресов.
В этом примере показано, как использовать блоки в библиотеке xpcethernetlib
отфильтровать данные о Ethernet на основе Мак адреса отправителя. Данные сигнала отправляются моделью передатчика, xpcEnetDemo2Tx
, работая на одном целевом компьютере, TargetPC1, к модели получателя, xpcEnetDemo2Rx
, работая на втором целевом компьютере, TargetPC2. Блок "Filter Address" используется, чтобы задать исходные Мак адреса, которые будут приняты. В этом простом примере пакеты данных, содержащие один из трех исходных Мак адресов, пройдут через блок Filter Address в модели получателя:
Мак адрес: 40:41:42:43:44:45
Мак адрес: 20:21:22:23:24:25
Мак адрес: 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: 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: 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. Это отображает график данных сигнала, которые это отправляется в целевой компьютер Rx через необработанный Ethernet. Используйте команду:
tgTx.viewTargetScreen
Просмотрите видеодисплей целевого компьютера Rx. Это отображает график данных сигнала, полученных от целевого компьютера Tx через необработанный Ethernet. Обратите внимание на то, что данные проходят через только один из фильтров Мак адреса. Используйте команду:
tgRx.viewTargetScreen
Когда сделано, мешайте моделям запуститься.
Остановите модель Tx.
Остановите модель Rx.
stop(tgTx); stop(tgRx);