主要内容

异步CSMA MAC

这个例子展示了如何模拟IEEE®802.15.4™异步CSMA MAC [1使用用于ZigBee和UWB的通信工具箱™库。

背景

IEEE 802.15.4标准指定了MAC体育低利率无线个人区域网络(LR-WPANs)[1]。IEEE 802.15.4 MAC和PHY层提供了其他更高层标准的基础,例如Zigbee.,wirelesshart®,6lowpan和miwi。这些标准在家庭自动化和传感器网络中找到了应用,并且与事物互联网(IOT)趋势非常相关。

IEEE 802.15.4 MAC [1指定两种基本MAC模式:(我)non-beacon-enabled,(ii)支持信标Mac。非信标Enabled MAC是异步CSMA(载波感测多个访问)MAC,其与IEEE 802.11 MAC非常相似。支持信标MAC允许两个不同的MAC句点:(我)同步的csma MAC周期(ii)一个时隙,无争用的Mac期。此示例提供了广泛的基于非信标,异步,基于CSMA的IEEE 802.15.4 MAC的仿真。

网络设置

IEEE 802.15.4 PAN(个人区域网络)由终端设备和平底锅协调器之间的标准进程设置。首先,希望加入网络的设备执行主动或被动扫描.主动扫描是指设备首先发送一个灯塔的请求然后进行被动扫描。被动扫描是指设备通过嗅探来收集数据信标框架来自PAN协调员(在主动扫描的情况下,他们可能已经收到了信标请求)。在被动扫描期间收集信标时,终端设备选择它想要关联的PAN。然后它发送一个协会要求对于这个锅的协调员,协调员承认它。

与IEEE 802.11相反,协调员不遵循承认立即传输的关联请求协会的反应.相反,IEEE 802.15.4协调员首先在本地存储关联响应;只有在终端设备发送时才会传输数据请求协调者会承认这一点。IEEE 802.15.4标准使用了这个术语间接传输指的是这种传送帧的机制。一般来说,这种机制对低流量网络(如传感器网络)的电池供电设备非常有用。这些设备可以周期性地激活它们的无线电来检查是否有任何帧等待它们,而不是连续地使用它们的无线电来立即接收帧。

一旦接收到关联响应并确认,终端设备就与平移相关联。那时候,数据框架可以在协调器和终端设备之间交换任何方向。根据其“确认请求”指示,可以确认数据帧。

异步媒体访问控制(Mac)

异步CSMA IEEE 802.15.4 MAC类似于通用CSMA操作和IEEE 802.11 MAC。在该MAC方案中,立即发送确认帧,而不使用CSMA方法。使用CSMA传输所有其他帧。

具体地,一旦设备具有传输帧,就会随机选择退却延迟(退避周期数)从范围[0 2 ^ be-1],其中是退避指数。每个退避周期的持续时间为20个符号。对于2.4 GHz中的OQPSK PHY,该持续时间对应于640个芯片和0.32毫秒。一旦设备等待所选的退避周期数,就会执行承运人感应.如果介质空闲,则设备开始传输其帧,直到完全传输。

如果介质在载波侦听期间繁忙,则回退指数增加1,并从新的[0 2^BE-1]范围中选择新的回退周期数。当回退计数器再次失效时,进行载波传感。如果在任何载波感知实例中,在没有介质空闲的情况下达到了最大退退计数,那么设备将终止传输帧的尝试。

网络仿真能力

此示例为所描述的网络设置过程和CSMA方法提供了一个实现的实现lrwpan.macfullfunctiondevice.lrwpan.macreduceedFunctionDevice.课程。具体来说,启用以下功能:

  • 主动和被动扫描

  • 关联请求和关联响应交换

  • 使用数据请求的间接传输

  • 如果不及时收到确认,则帧确认和帧重传

  • 短帧间距和长帧间距(SIFS和LIFS)

  • 二进制指数倒扣

  • 承运人感应

网络仿真

在本节中,我们创建一个由3个节点组成的IEEE 802.15.4网络:一个PAN协调器和两个终端设备。网络模拟器被配置为以单个回退持续时间(20个符号,0.32毫秒)的增量处理所有设备。

首先,下面的代码说明了第一个设备与网络的关联。

symbolspersep = 20;Chipspersymbol = 32;Samplesperchip = 4;symbolrate = 65.5e3;%符号/秒时间= 0;停止= 5;%秒创建PAN Coordinatorpancoordinator = lrwpan.macfullfunctionDevice('pancoordinator', 真的,'samplesperchip'4......'Panidentier'“7777”'ExtendedAddress'[repmat ('0', 1, 8)“7”,1,8)],......'shortaddress'“1234”);%创建第一端设备:endDevice1 = lrwpan。MACReducedFunctionDevice('samplesperchip'4......'shortaddress'“0001”'ExtendedAddress'[repmat ('0', 1, 8)“3”,1,8)]);%初始化设备输入收到了1 =零(Samplesperchip * Chipspersymbol *符号集/ 2,1);收到的2 =零(SamplesPerchip * Chipspersymbol * Symbolsperstep / 2,1);尽管时间将接收到的信号传递给节点进行处理。另外,获取什么%他们必须传播:transmitted1 = panCoordinator (received1);transmitted2 = endDevice1 (received2);%理想的无线通道,其中两个节点都在范围内:received1 = transmitted2;%半双工无线电,无接收在传输时接收2 =发送1;时间=时间+ symbolsperspersep / symbolrate;%更新时钟结束
0001:*********将信标请求帧添加到队列0001:无源扫描1584步骤0001:从队列0001处理下一帧:初始化传输;退避延迟= 1步骤0001:退避延迟= 1步 - > 0步骤0001:载波传感:介质是空闲的。0001:清除发送0001:发送信标请求0001:IFS offset = 0样本0001:发送2050的1-1280,发现OQPSK PHY的前导码。找到OQPSK PHY的帧开发分隔符(SFD)。0001:IFS offset = 0样本0001:传输1281-2050,共2050 0001:完成的传输0001:需要等待SIFS(12)符号。offset = 12,下一个IFS = 4 0001:输入被动扫描1234:PHY解码IEEE 802.15.4帧CRC检查传递给MAC帧。1234:***********收到的框架类型= mac命令1234:***********收到的mac命令类型= beacon请求1234:需要等待SIFS(12)符号.offset = 12,下一个ifs = 4 1234:*********将信标帧添加到队列1234:下一个ifs = 4 1234:从队列1234处理下一帧:初始化传输;退避延迟= 7步1234:退避延迟= 7步 - > 6步1234:退避延迟= 6步 - > 5步1234:退避延迟= 5步 - > 4步1234:退避延迟= 4步 - > 3步1234:退避延迟= 3步 - > 2步1234:退避延迟= 2步 - > 1步1234:退避延迟= 1步 - > 0步骤1234:载波感应:介质是空闲的。1234:清除传输1234:IFS offset = 256个样本1234:发送1-1024的2562 1234:IFS offset = 0个样本1234:发送1025-2304的2562的OQPSK PHY的前导码。 Found start-of-frame delimiter (SFD) of OQPSK PHY. 1234: IFS offset = 0 samples 1234: Transmitting 2305-2562 of 2562 1234: Finished transmission 1234: Need to wait for LIFS (40) symbols. Offset = 4, next IFS = 24 1234: Decreased wait time by 20 symbols to 4 0001: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 0001: *********** Received frame type = Beacon 0001: Need to wait for SIFS (12) symbols. Offset = 4, next IFS = -4 0001: next IFS = 0 0001: Scanning finished 0001: ********* Adding Association request frame to the queue 0001: Processing next frame from the queue 0001: Initializing transmission; backoff delay = 0 steps 0001: Carrier sensing: Medium is idle. 0001: Clear to transmit 0001: IFS offset = 0 samples 0001: Transmitting 1-1280 of 3458 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 0001: IFS offset = 0 samples 0001: Transmitting 1281-2560 of 3458 0001: IFS offset = 0 samples 0001: Transmitting 2561-3458 of 3458 0001: Finished transmission 0001: will wait for ack for 54 symbols additional to IFS = 0 1234: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 1234: *********** Received frame type = MAC command 1234: *********** Received MAC Command type = Association request 1234: Need to wait for LIFS (40) symbols. Offset = 14, next IFS = 34 1234: ********** Directly transmitting acknowledgement frame (no CSMA/CA) 1234: ********* Adding Data response frame to the PENDING queue 1234: next IFS = 34 0001: Decreasing ack wait durations by 20 symbols to 34 1234: IFS offset = 896 samples 1234: Transmitting 1-384 of 1410 0001: Decreasing ack wait durations by 20 symbols to 14 1234: IFS offset = 0 samples 1234: Transmitting 385-1410 of 1410 1234: Finished transmission 1234: Need to wait for SIFS (12) symbols. Offset = 16, next IFS = 8 0001: Decreasing ack wait durations by 20 symbols to -6 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 0001: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 0001: *********** Received frame type = Acknowledgment 0001: Need to wait for SIFS (12) symbols. Offset = 16, next IFS = 8 0001: *********** Adding Data request frame to the queue 0001: next IFS = 1920 0001: Decreased wait time by 20 symbols to 1900 0001: Decreased wait time by 20 symbols to 1880 0001: Decreased wait time by 20 symbols to 1860 0001: Decreased wait time by 20 symbols to 1840 0001: Decreased wait time by 20 symbols to 1820 0001: Decreased wait time by 20 symbols to 1800 0001: Decreased wait time by 20 symbols to 1780 0001: Decreased wait time by 20 symbols to 1760 0001: Decreased wait time by 20 symbols to 1740 0001: Decreased wait time by 20 symbols to 1720 0001: Decreased wait time by 20 symbols to 1700 0001: Decreased wait time by 20 symbols to 1680 0001: Decreased wait time by 20 symbols to 1660 0001: Decreased wait time by 20 symbols to 1640 0001: Decreased wait time by 20 symbols to 1620 0001: Decreased wait time by 20 symbols to 1600 0001: Decreased wait time by 20 symbols to 1580 0001: Decreased wait time by 20 symbols to 1560 0001: Decreased wait time by 20 symbols to 1540 0001: Decreased wait time by 20 symbols to 1520 0001: Decreased wait time by 20 symbols to 1500 0001: Decreased wait time by 20 symbols to 1480 0001: Decreased wait time by 20 symbols to 1460 0001: Decreased wait time by 20 symbols to 1440 0001: Decreased wait time by 20 symbols to 1420 0001: Decreased wait time by 20 symbols to 1400 0001: Decreased wait time by 20 symbols to 1380 0001: Decreased wait time by 20 symbols to 1360 0001: Decreased wait time by 20 symbols to 1340 0001: Decreased wait time by 20 symbols to 1320 0001: Decreased wait time by 20 symbols to 1300 0001: Decreased wait time by 20 symbols to 1280 0001: Decreased wait time by 20 symbols to 1260 0001: Decreased wait time by 20 symbols to 1240 0001: Decreased wait time by 20 symbols to 1220 0001: Decreased wait time by 20 symbols to 1200 0001: Decreased wait time by 20 symbols to 1180 0001: Decreased wait time by 20 symbols to 1160 0001: Decreased wait time by 20 symbols to 1140 0001: Decreased wait time by 20 symbols to 1120 0001: Decreased wait time by 20 symbols to 1100 0001: Decreased wait time by 20 symbols to 1080 0001: Decreased wait time by 20 symbols to 1060 0001: Decreased wait time by 20 symbols to 1040 0001: Decreased wait time by 20 symbols to 1020 0001: Decreased wait time by 20 symbols to 1000 0001: Decreased wait time by 20 symbols to 980 0001: Decreased wait time by 20 symbols to 960 0001: Decreased wait time by 20 symbols to 940 0001: Decreased wait time by 20 symbols to 920 0001: Decreased wait time by 20 symbols to 900 0001: Decreased wait time by 20 symbols to 880 0001: Decreased wait time by 20 symbols to 860 0001: Decreased wait time by 20 symbols to 840 0001: Decreased wait time by 20 symbols to 820 0001: Decreased wait time by 20 symbols to 800 0001: Decreased wait time by 20 symbols to 780 0001: Decreased wait time by 20 symbols to 760 0001: Decreased wait time by 20 symbols to 740 0001: Decreased wait time by 20 symbols to 720 0001: Decreased wait time by 20 symbols to 700 0001: Decreased wait time by 20 symbols to 680 0001: Decreased wait time by 20 symbols to 660 0001: Decreased wait time by 20 symbols to 640 0001: Decreased wait time by 20 symbols to 620 0001: Decreased wait time by 20 symbols to 600 0001: Decreased wait time by 20 symbols to 580 0001: Decreased wait time by 20 symbols to 560 0001: Decreased wait time by 20 symbols to 540 0001: Decreased wait time by 20 symbols to 520 0001: Decreased wait time by 20 symbols to 500 0001: Decreased wait time by 20 symbols to 480 0001: Decreased wait time by 20 symbols to 460 0001: Decreased wait time by 20 symbols to 440 0001: Decreased wait time by 20 symbols to 420 0001: Decreased wait time by 20 symbols to 400 0001: Decreased wait time by 20 symbols to 380 0001: Decreased wait time by 20 symbols to 360 0001: Decreased wait time by 20 symbols to 340 0001: Decreased wait time by 20 symbols to 320 0001: Decreased wait time by 20 symbols to 300 0001: Decreased wait time by 20 symbols to 280 0001: Decreased wait time by 20 symbols to 260 0001: Decreased wait time by 20 symbols to 240 0001: Decreased wait time by 20 symbols to 220 0001: Decreased wait time by 20 symbols to 200 0001: Decreased wait time by 20 symbols to 180 0001: Decreased wait time by 20 symbols to 160 0001: Decreased wait time by 20 symbols to 140 0001: Decreased wait time by 20 symbols to 120 0001: Decreased wait time by 20 symbols to 100 0001: Decreased wait time by 20 symbols to 80 0001: Decreased wait time by 20 symbols to 60 0001: Decreased wait time by 20 symbols to 40 0001: Decreased wait time by 20 symbols to 20 0001: Decreased wait time by 20 symbols to 0 0001: Processing next frame from the queue 0001: Initializing transmission; backoff delay = 2 steps 0001: Backoff delay = 2 steps -> 1 steps 0001: Backoff delay = 1 steps -> 0 steps 0001: Carrier sensing: Medium is idle. 0001: Clear to transmit 0001: IFS offset = 0 samples 0001: Transmitting 1-1280 of 3074 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 0001: IFS offset = 0 samples 0001: Transmitting 1281-2560 of 3074 0001: IFS offset = 0 samples 0001: Transmitting 2561-3074 of 3074 0001: Finished transmission 0001: will wait for ack for 54 symbols additional to IFS = 0 1234: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 1234: *********** Received frame type = MAC command 1234: *********** Received MAC Command type = Data request 1234: Need to wait for SIFS (12) symbols. Offset = 8, next IFS = 0 1234: ********** Directly transmitting acknowledgement frame (no CSMA/CA) 1234: Moving frame for 0000000033333333 from pending queue to the transmission queue 1234: next IFS = 0 1234: IFS offset = 0 samples 1234: Transmitting 1-1280 of 1410 0001: Decreasing ack wait durations by 20 symbols to 34 1234: IFS offset = 0 samples 1234: Transmitting 1281-1410 of 1410 1234: Finished transmission 1234: Need to wait for SIFS (12) symbols. Offset = 2, next IFS = -6 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 0001: Decreasing ack wait durations by 20 symbols to 14 1234: Processing next frame from the queue 1234: Initializing transmission; backoff delay = 5 steps 1234: Backoff delay = 5 steps -> 4 steps 0001: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 0001: *********** Received frame type = Acknowledgment 0001: Need to wait for SIFS (12) symbols. Offset = 2, next IFS = -6 0001: next IFS = 0 1234: Backoff delay = 4 steps -> 3 steps 1234: Backoff delay = 3 steps -> 2 steps 1234: Backoff delay = 2 steps -> 1 steps 1234: Backoff delay = 1 steps -> 0 steps 1234: Carrier sensing: Medium is idle. 1234: Clear to transmit 1234: IFS offset = 0 samples 1234: Transmitting 1-1280 of 4226 1234: IFS offset = 0 samples 1234: Transmitting 1281-2560 of 4226 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 1234: IFS offset = 0 samples 1234: Transmitting 2561-3840 of 4226 1234: IFS offset = 0 samples 1234: Transmitting 3841-4226 of 4226 1234: Finished transmission 1234: will wait for ack for 54 symbols additional to IFS = 0 1234: Decreasing ack wait durations by 20 symbols to 34 0001: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 0001: *********** Received frame type = MAC command 0001: *********** Received MAC Command type = Association response 0001: Need to wait for LIFS (40) symbols. Offset = 6, next IFS = 26 0001: *********** Association successful, changing short address to = 8CEC 8CEC: *********** Association successful, associated to PAN = 7777 8CEC: ********** Directly transmitting acknowledgement frame (no CSMA/CA) 8CEC: next IFS = 26 1234: Decreasing ack wait durations by 20 symbols to 14 8CEC: IFS offset = 384 samples 8CEC: Transmitting 1-896 of 1410 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 1234: Decreasing ack wait durations by 20 symbols to -6 8CEC: IFS offset = 0 samples 8CEC: Transmitting 897-1410 of 1410 8CEC: Finished transmission 8CEC: Need to wait for SIFS (12) symbols. Offset = 8, next IFS = 0 1234: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 1234: *********** Received frame type = Acknowledgment 1234: Need to wait for SIFS (12) symbols. Offset = 8, next IFS = 0 1234: next IFS = 0 8CEC: ********* (t=4.079360) Injecting data frame to the queue. From: 8CEC -> To: 1234 8CEC: Processing next frame from the queue 8CEC: Initializing transmission; backoff delay = 6 steps 8CEC: Backoff delay = 6 steps -> 5 steps 8CEC: Backoff delay = 5 steps -> 4 steps 8CEC: Backoff delay = 4 steps -> 3 steps 8CEC: Backoff delay = 3 steps -> 2 steps 8CEC: Backoff delay = 2 steps -> 1 steps 8CEC: Backoff delay = 1 steps -> 0 steps 8CEC: Carrier sensing: Medium is idle. 8CEC: Clear to transmit 8CEC: IFS offset = 0 samples 8CEC: Transmitting 1-1280 of 8578 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 8CEC: IFS offset = 0 samples 8CEC: Transmitting 1281-2560 of 8578 8CEC: IFS offset = 0 samples 8CEC: Transmitting 2561-3840 of 8578 8CEC: IFS offset = 0 samples 8CEC: Transmitting 3841-5120 of 8578 8CEC: IFS offset = 0 samples 8CEC: Transmitting 5121-6400 of 8578 8CEC: IFS offset = 0 samples 8CEC: Transmitting 6401-7680 of 8578 8CEC: IFS offset = 0 samples 8CEC: Transmitting 7681-8578 of 8578 8CEC: Finished transmission 8CEC: will wait for ack for 54 symbols additional to IFS = 0 1234: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 1234: *********** Received frame type = Data 1234: Need to wait for SIFS (12) symbols. Offset = 14, next IFS = 6 1234: ********** Directly transmitting acknowledgement frame (no CSMA/CA) 1234: next IFS = 6 1234: IFS offset = 384 samples 1234: Transmitting 1-896 of 1410 8CEC: Decreasing ack wait durations by 20 symbols to 34 1234: IFS offset = 0 samples 1234: Transmitting 897-1410 of 1410 1234: Finished transmission 1234: Need to wait for SIFS (12) symbols. Offset = 8, next IFS = 0 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 8CEC: Decreasing ack wait durations by 20 symbols to 14 8CEC: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 8CEC: *********** Received frame type = Acknowledgment 8CEC: Need to wait for LIFS (40) symbols. Offset = 8, next IFS = 28 8CEC: next IFS = 28 8CEC: Decreased wait time by 20 symbols to 8 8CEC: ********* (t=4.795200) Injecting data frame to the queue. From: 8CEC -> To: 1234 8CEC: Processing next frame from the queue 8CEC: Initializing transmission; backoff delay = 6 steps 8CEC: Backoff delay = 6 steps -> 5 steps 8CEC: Backoff delay = 5 steps -> 4 steps 8CEC: Backoff delay = 4 steps -> 3 steps 8CEC: Backoff delay = 3 steps -> 2 steps 8CEC: Backoff delay = 2 steps -> 1 steps 8CEC: Backoff delay = 1 steps -> 0 steps 8CEC: Carrier sensing: Medium is idle. 8CEC: Clear to transmit 8CEC: IFS offset = 512 samples 8CEC: Transmitting 1-768 of 8578 Found preamble of OQPSK PHY. 8CEC: IFS offset = 0 samples 8CEC: Transmitting 769-2048 of 8578 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 8CEC: IFS offset = 0 samples 8CEC: Transmitting 2049-3328 of 8578 8CEC: IFS offset = 0 samples 8CEC: Transmitting 3329-4608 of 8578 8CEC: IFS offset = 0 samples 8CEC: Transmitting 4609-5888 of 8578 8CEC: IFS offset = 0 samples 8CEC: Transmitting 5889-7168 of 8578 8CEC: IFS offset = 0 samples 8CEC: Transmitting 7169-8448 of 8578 8CEC: IFS offset = 0 samples 8CEC: Transmitting 8449-8578 of 8578 8CEC: Finished transmission 8CEC: will wait for ack for 54 symbols additional to IFS = 0 1234: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 1234: *********** Received frame type = Data 1234: Need to wait for SIFS (12) symbols. Offset = 2, next IFS = -6 1234: ********** Directly transmitting acknowledgement frame (no CSMA/CA) 1234: next IFS = 0 1234: IFS offset = 0 samples 1234: Transmitting 1-1280 of 1410 8CEC: Decreasing ack wait durations by 20 symbols to 34 1234: IFS offset = 0 samples 1234: Transmitting 1281-1410 of 1410 1234: Finished transmission 1234: Need to wait for SIFS (12) symbols. Offset = 2, next IFS = -6 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 8CEC: Decreasing ack wait durations by 20 symbols to 14 8CEC: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 8CEC: *********** Received frame type = Acknowledgment 8CEC: Need to wait for LIFS (40) symbols. Offset = 2, next IFS = 22 8CEC: next IFS = 22 8CEC: Decreased wait time by 20 symbols to 2 1234: ********* (t=5.001280) Injecting data frame to the queue. From: 1234 -> To: 8CEC 1234: Processing next frame from the queue 1234: Initializing transmission; backoff delay = 1 steps 1234: Backoff delay = 1 steps -> 0 steps 1234: Carrier sensing: Medium is idle. 1234: Clear to transmit 1234: IFS offset = 0 samples 1234: Transmitting 1-1280 of 8578 1234: IFS offset = 0 samples 1234: Transmitting 1281-2560 of 8578 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 1234: IFS offset = 0 samples 1234: Transmitting 2561-3840 of 8578 1234: IFS offset = 0 samples 1234: Transmitting 3841-5120 of 8578 1234: IFS offset = 0 samples 1234: Transmitting 5121-6400 of 8578 1234: IFS offset = 0 samples 1234: Transmitting 6401-7680 of 8578 1234: IFS offset = 0 samples 1234: Transmitting 7681-8578 of 8578 1234: Finished transmission 1234: will wait for ack for 54 symbols additional to IFS = 0 1234: Decreasing ack wait durations by 20 symbols to 34 8CEC: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 8CEC: *********** Received frame type = Data 8CEC: Need to wait for SIFS (12) symbols. Offset = 14, next IFS = 6 8CEC: ********** Directly transmitting acknowledgement frame (no CSMA/CA) 8CEC: next IFS = 6 8CEC: IFS offset = 384 samples 8CEC: Transmitting 1-896 of 1410 Found preamble of OQPSK PHY. Found start-of-frame delimiter (SFD) of OQPSK PHY. 1234: Decreasing ack wait durations by 20 symbols to 14 8CEC: IFS offset = 0 samples 8CEC: Transmitting 897-1410 of 1410 8CEC: Finished transmission 8CEC: Need to wait for SIFS (12) symbols. Offset = 8, next IFS = 0 1234: PHY decoded IEEE 802.15.4 frame CRC check passed for the MAC frame. 1234: *********** Received frame type = Acknowledgment 1234: Need to wait for LIFS (40) symbols. Offset = 8, next IFS = 28 1234: next IFS = 28 1234: Decreased wait time by 20 symbols to 8

一旦第一个端设备被关联起来,数据帧就被随机注入到端设备和PAN Coordinator之间的链路中。

接下来,第三个设备加入PAN,数据帧随后在协调器和两端设备之间交换,采用星型拓扑方式(终端设备只能向协调器传输帧)。在这种情况下,输出被抑制。

%创建第二个端设备:endDevice2 = lrwpan。MACReducedFunctionDevice('samplesperchip'4......'shortaddress''0002''ExtendedAddress'[repmat ('0', 1, 8)“4”,1,8)],'冗长'、假);%抑制详细输出:endDevice1。冗长= false;panCoordinator。冗长= false;%初始化输入received3 = 0 (samplesPerChip * chipsPerSymbol * symbolsPerStep/ 2,1); / /接收到的数据stopTime = 10;%秒尽管时间将接收到的信号传递给节点进行处理。另外,获取什么%他们必须传播:transmitted1 = panCoordinator (received1);transmitted2 = endDevice1 (received2);transmitted3 = endDevice2 (received3);%理想的无线通道,所有节点在范围内:收到的1 =发送2 +发送3;%半双工无线电,无接收在传输时接收2 =发送1 +发送3;收到3 =发送的1 +发送2;时间=时间+ symbolsperspersep / symbolrate;%更新时钟结束

只要建立相应的信道关系(即接收信号作为发送信号的函数),就可以向网络中添加更多的节点。

进一步的探索

您可以进一步探索以下生成器和解码功能,以及配置对象:

选定的参考书目

  1. IEEE 802.15.4-2011 IEEE局域网和城域网标准第15.4部分:低速率无线个人区域网(rr - wpan)