Фильтрация данных о 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.
Сконфигурируйте для немногословной сборки.
Сборка и приложение загрузки.
Закройте модель, если мы открыли ее.
set_param('xpcEnetDemo2Tx','RTWVerbose','off'); evalc('rtwbuild(''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.
Сконфигурируйте для немногословной сборки.
Сборка и приложение загрузки.
Закройте модель, если мы открыли ее.
set_param('xpcEnetDemo2Rx','RTWVerbose','off'); evalc('rtwbuild(''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);