主要内容

用CSMA/CD协议建立以太网通信网络模型

这个例子展示了如何使用Simulink®消息和SimEvents®对CSMA/CD协议的以太网通信网络建模。金宝app在这个例子中,有三台计算机通过以太网通信网络进行通信。每台计算机都有一个生成数据的软件组件和一个用于通信的以太网接口。每台计算机尝试将数据发送到另一台具有唯一MAC地址的计算机。以太网接口通过使用CSMA/CD通信协议控制计算机与网络的交互。该协议用于响应当多台计算机同时发送数据时发生的冲突。以太网组件表示网络和计算机之间的连接。

软件组件

在模型中,每个软件组件生成数据(有效负载),并将数据、其大小和其目的地组合成消息。然后将消息发送到以太网接口进行通信。

在每个软件组件子系统中:

  • 一个MATLAB函数块生成大小介于之间的数据461500个字节(1].

  • Constant块为数据分配目的地址。

  • 总线创建器块转换数据PayloadSize,DestAddress调用非虚拟总线对象的信号dataPacket

  • A发送块转换dataPacket一个消息。

  • 出口块将消息发送到以太网接口进行通信。

每台计算机以不同的速率产生数据。可以通过MATLAB函数块的采样时间来改变数据生成速率。

要学习创建消息发送和接收接口的基础知识,请参见建立软件组件间的消息收发接口

以太网接口

双击“以太网接口”。注意,您可以指定站ID传输缓冲容量

以太网接口子系统有三个主要部分:

  1. 组装以太网帧-将传入的消息转换为以太网(MAC)帧。

  2. 传输缓冲区 - 存储以太网帧以进行传输。

  3. 介质访问控制-实现一个CSMA/CD协议的包传输[2].

组装以太网帧

组装以太网帧块通过向消息附加以太网特定属性将消息转换为以太网帧[1].

在分组组装过程中:

  • 标记为Copy Message的SimEvents®Entity Replicator块复制传入消息。原始消息被转发到标记为“组装MAC帧”的SimEvents®实体生成器块。因为实体生成器块生成方法参数设置为基于事件的当原始消息到达块时,它立即产生一个实体。将消息的副本转发到Simulink功能块金宝appinitPacket ()函数。条款消息实体可以在Simulink®和SimEvents®之间互换使用。金宝app

  • Simu金宝applink Function块将数据、其大小和目的地址传输到Assemble MAC Frame块进行帧组装。

  • 组装MAC帧块生成承载从Simulink功能块传输的特定以太网属性和值的以太网帧。金宝app

组装Mac帧块调用initPacket ()函数作为每个帧生成事件调用的操作。

这些是生成的以太网帧的属性:

  • Entity.txaddress.StationID

  • 实体。RxAddress实体。数据,实体。PayloadSize从Simulink函数块中赋值。金宝app

  • 实体。TxDelay为传输延迟。它由有效负载大小和比特率定义。的比特率参数由模型属性中的初始化函数指定。

  • 实体。儿童权利公约是用于错误检测的循环冗余检查。

传输缓冲区

传输缓冲区使用先进先出(FIFO)策略在传输前存储实体。缓冲区由一个Queue块建模。

队列的容量由传输缓冲容量参数。

介质访问控制

介质访问控制块是通过使用六个SimEvents®块建模的。

  • 标记为1帧的实体门块配置为具有两个输入端口的启用门。一个输入端口允许来自传输缓冲区块的帧。另一个输入端口称为控制端口,接受来自CSMA / CD块的消息。当它从CSMA / CD块接收到正值时,块允许一帧提前前进。

  • 实体输入开关块标记为合并合并两条路径。一个输入端口接受由Admit 1帧块承认的新帧,另一个输入端口接受由CSMA/CD块发送的重传帧。

  • 标有一个实体服务器块等待通道模型帧通过信道重传之前的帧的后关时间。

  • 另一个标记为Send to Channel的实体门块在通道空闲时打开门接受帧。通道状态通过CSMA/CD图进行通信。

  • 标记为复制传输帧的实体复制器块生成帧的副本。一帧被转发到以太网网络,另一帧被转发到CSMA/CD图表。

  • 标记为CSMA/CD的离散事件图块表示对CSMA/CD协议建模的状态机。

CSMA / CD协议

CSMA/CD协议[2]由离散事件图块建模,该块有两个输入:

  • TxIn—传输帧的拷贝。

  • RxIn—接收到以太网络的帧。

该图表有五个输出:

  • IsIdle—当值为时,打开Send to Channel门接受帧1,并在值为时关闭大门0

  • TXRE.—如果在传输过程中检测到冲突,则转发到Merge块的重传帧。

  • TxNext—当值为时,打开Admit 1 Frame门接受新帧1

  • DataOut——接收的数据。

  • 大小-接收数据的大小。

发送和接收信息

块最初是在备用状态和通道是空闲的。

如果块正在发送,在延迟之后,块尝试发送消息和Isle.data被设置为0声明该通道正在使用中。

如果传输成功,则设置块TxNext.data1允许新消息进入通道并将其重置为备用状态。

如果有冲突,则块在延迟消息一个随机的返回时间后重新发送消息。n是逆向崩溃的柜台。该块重新传输最多的消息16次了。如果所有的重传尝试都不成功,则该块终止消息并允许新消息的进入。然后重置为备用

同样,块可以接收来自其他计算机的消息。如果没有错误,则成功接收消息,并且块输出接收到的数据及其大小。

以太网集线器

以太网组件代表通信网络和计算机到网络的电缆连接。

双击Ethernet块以查看其参数。

  • 连接站-这些值被赋给,这是一个以站点id为元素的向量。

  • 电缆长度(m)-这些值被赋给CableLength表示连接到集线器的每台计算机的电缆长度,单位为米。

  • 包错误率(PER)-这些值被赋给表示每台计算机在信息传输中的错误率。

  • 处理时间(s)-这些值被赋给ProcessingTime它表示信道传输延迟。

三个SimEvents®块用于模拟以太网网络。使用实体输入开关块合并三个计算机连接。使用Entity Server块根据电缆长度对信道传输延迟进行建模。一个实体复制器块复制传输的消息并将其转发给三台计算机。

模拟模型并回顾结果

模拟该模型并打开显示平均信道利用率的Scope块。信道利用率收敛为近似0.12

打开软件组件1作为顶级模型,并通过设置来更改数据生成速率样品时间生成数据1块的0.01.再次运行模拟,观察通道利用率增加到0.2

将新计算机连接到网络

你可以把更多的计算机连接到网络上。

向网络中添加一台新计算机:

  • 复制一台现有的计算机并通过双击以太网接口块分配一个新的ID。在这个例子中,新计算机有ID4

  • 双击以太网块,为新计算机添加站号、电缆长度和包错误率。

参考

  1. 以太网架构-维基百科(https://en.wikipedia.org/wiki/Ethernet_frame

  2. 带碰撞检测的载波感测多次访问 - 维基百科(https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_detection