В этом примере показано, как смоделировать коммуникационную сеть Ethernet с протоколом CSMA/CD с помощью сообщений Simulink® и SimEvents®. В примере существует три компьютера, которые связываются через коммуникационную сеть Ethernet. Каждый компьютер имеет компонент программного обеспечения, который генерирует данные и интерфейс Ethernet для коммуникации. Каждый компьютер пытается отправить данные в другой компьютер с уникальным Мак адресом. Интерфейс Ethernet управляет взаимодействием компьютера с сетью при помощи протокола связи CSMA/CD. Протокол используется, чтобы ответить на столкновения, которые происходят, когда несколько компьютеров отправляют данные одновременно. Компонент Ethernet представляет сеть и связь между компьютерами.
В модели каждый компонент программного обеспечения генерирует данные (полезная нагрузка) и комбинирует данные, его размер и его место назначения в сообщение. Затем сообщение отправляется в интерфейс Ethernet для коммуникации.
В каждой подсистеме Компонента программного обеспечения:
Блок MATLAB function генерирует данные с размером между 46
и 1500
байты [1].
Блок Constant присваивает адреса назначения данным.
Блок Bus Creator преобразует Data
, PayloadSize
, и DestAddress
сигналы к невиртуальной шине возражают названному dataPacket
.
Блок Send преобразует dataPacket
к сообщению.
Блок Outport отправляет сообщение в интерфейс Ethernet для коммуникации.
Каждый компьютер генерирует данные с различным уровнем. Можно изменить скорость генерации данных от шага расчета блока MATLAB function.
Чтобы изучить основы создания сообщения отправляют и получают интерфейсы, видят, Устанавливают сообщение, Отправляют и Получают Интерфейсы Между Компонентами программного обеспечения.
Дважды кликните Интерфейс Ethernet 1. Заметьте, что можно задать ID Станции и буферность Передачи.
Подсистемы Интерфейса Ethernet имеют три основных части:
Соберитесь Система координат Ethernet — Преобразует входящее сообщение в Ethernet (MAC) система координат.
Буфер передачи — Ethernet Хранилищ структурирует для передачи.
Среднее Управление доступом — Реализации протокол CSMA/CD для пакетной передачи [2].
Собрать блоки Системы координат Ethernet преобразуют сообщения в системы координат Ethernet путем присоединения специфичных для Ethernet атрибутов к сообщению [1].
В процессе сборки пакетов:
Блок SimEvents® Entity Replicator пометил копии Copy Message входящим сообщением. Исходное сообщение передается с блоком Entity Generator SimEvents®, пометил Assemble MAC Frame. Поскольку параметр метода Генерации блока Entity Generator устанавливается на Event-based
, это сразу производит сущность, когда исходное сообщение прибывает в блок. Копия сообщения передается Функциональному блоку Simulink с initPacket()
функция. Сообщение условий и сущность используются взаимозаменяемо между Simulink® и SimEvents®.
Функциональный блок Simulink передает данные, его размер и его адрес назначения с блоком Assemble MAC Frame для блока системы координат.
Блок Assemble MAC Frame генерирует системы координат Ethernet, которые несут и специфичные для Ethernet атрибуты и значения, переданные от Функционального блока Simulink.
Соберитесь блок MAC Frame вызывает initPacket()
функционируйте как действие, которое вызывается каждым событием генерации системы координат.
Это атрибуты сгенерированной системы координат Ethernet:
entity.TxAddress
StationID
.
entity.RxAddress
, entity.Data
, и entity.PayloadSize
присвоены значения от Функционального блока Simulink.
entity.TxDelay
задержка передачи. Это задано размером полезной нагрузки и скоростью передачи. Bitrate
параметр задан функцией инициализации в Model Properties.
entity.CRC
контроль циклическим избыточным кодом на выявление ошибок.
Сущности буферной памяти передачи перед передачей при помощи политики метода "первым пришел - первым вышел" (FIFO). Буфер моделируется блоком Queue.
Способность очереди определяется параметром буферности Передачи.
Средние Блоки управления доступом моделируются при помощи шести блоков SimEvents®.
Блок Entity Gate пометил Admit 1 Frame, сконфигурирован как активированный логический элемент с двумя входными портами. Один входной порт позволяет системы координат от блока Transmission Buffer. Другой входной порт называется портом управления, который принимает сообщения от блока CSMA/CD. Блок позволяет одной системе координат совершенствоваться, когда это получает сообщение с положительным значением от блока CSMA/CD.
Входной блок switch Сущности пометил слияния Merge двумя путями. Один входной порт принимает новые системы координат, которые допускает Допущение 1 блока системы координат, и другой входной порт принимает кадры для повторной передачи, которые передаются блоком CSMA/CD.
Помеченный блок Entity Server Ожидает моделей Channel спина от времени системы координат перед ее повторной передачей через канал.
Другой блок Entity Gate пометил Send to Channel, открывает логический элемент, чтобы принять системы координат, когда канал неактивен. Состояние канала передается графиком CSMA/CD.
Блок Entity Replicator пометил Copy Transmitted Frame, генерирует копию системы координат. Один кадр передается к сети Ethernet, и другой передается графику CSMA/CD.
Блок Discrete-Event Chart пометил CSMA/CD, представляет конечный автомат, который моделирует протокол CSMA/CD.
Протокол [2] CSMA/CD моделируется блоком Discrete-Event Chart, который имеет два входных параметров:
TxIn
— Копия переданного кадра.
RxIn
— Принятый кадр от сети Ethernet.
График имеет пять выходных параметров:
IsIdle
— Открывает Отправление в логический элемент Канала, чтобы принять системы координат, когда значением является 1
, и закрывает логический элемент, когда значением является 0
.
TxRe
— Ретранслируемый кадр, который передается с блоком Merge, если существует столкновение, обнаруженное во время его передачи.
TxNext
— Открывает Допущение, что 1 логический элемент Системы координат принимает новые системы координат, когда значением является 1
.
DataOut
— Полученные данные.
Size
— Размер полученных данных.
Блок находится первоначально в Standby
состояние и канал неактивны.
Если блок передает, после задержки блок пытается передать сообщение и Isle.data
установлен в 0
объявить, что канал используется.
Если передача успешна, блок устанавливает TxNext.data
к 1
позволить новое сообщение в канал и сброс к Standby
состояние.
Если существует столкновение, блок снова посылает сообщение после задержки его для случайной спины от времени. n является счетчиком для повторных передач. Блок ретранслирует сообщение максимум 16
\times. Если все попытки повторной передачи неудачны, то блок отключает сообщение и позволяет запись нового сообщения. Затем это сбрасывает к StandBy
.
Точно так же блок может получить сообщения от других компьютеров. Если нет никакой ошибки, сообщения успешно получены, и блок выводит полученные данные и его размер.
Компонент Ethernet представляет коммуникационную сеть и телеграфированные связи компьютеров к сети.
Дважды кликните блок Ethernet, чтобы видеть его параметры.
Связанные станции — Эти значения присвоены Stations
, который является вектором с идентификаторами станции как элементы.
Длина кабелей (m) — Эти значения присвоена CableLength
и представляйте длину кабелей, в метрах, для каждого компьютера, соединенного с концентратором.
Пакетный коэффициент ошибок (PER) — Эти значения присвоены PER
и представляйте уровень ошибки в передаче сообщения для каждого компьютера.
Время (времена) вычислений — Эти значения присвоены ProcessingTime
и это представляет задержку передачи канала.
Блоки Three SimEvents® используются, чтобы смоделировать сеть Ethernet. Три компьютерных связи объединены при помощи Входного блока switch Сущности. Блок Entity Server используется, чтобы смоделировать задержку передачи канала на основе длины кабеля. Блок Entity Replicator копирует переданное сообщение и вперед это к этим трем компьютерам.
Симулируйте модель и откройте блок Scope, который отображает среднее использование канала. Использование канала сходится приблизительно к 0.12
.
Открытый Компонент программного обеспечения 1 как топ-модель и изменение скорость генерации данных путем установки Шага расчета блока Generate Data 1 к 0.01
. Запустите симуляцию снова и заметьте, что использование канала увеличивается до 0.2
.
Можно соединить больше компьютеров с сетью.
Добавить новый компьютер в сеть:
Скопируйте существующий компьютер и присвойте новый ID путем двойного клика по блоку Ethernet Interface. В этом примере новый компьютер имеет ID 4
.
Дважды кликните блок Ethernet и добавьте ID станции, длину кабеля и пакетный коэффициент ошибок для нового компьютера.
Система координат Ethernet - Википедия (https://en.wikipedia.org/wiki/Ethernet_frame)
Обнаружение несущей несколько получают доступ с обнаружением коллизий - Википедия (https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_detection)