IEEE 802.15.4 -异步CSMA MAC

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

背景

IEEE 802.15.4标准指定了MAC体育多层低速率无线个人区域网络(LR-WPANs)[1]。IEEE 802.15.4 MAC和PHY层提供了其他高层标准的基础,例如齐比、WirelessHart®、6LoWPAN和MiWi。这些标准在家庭自动化和传感器网络中得到应用,并且与物联网趋势高度相关。

IEEE 802.15.4 MAC [1]指定两种基本的MAC模式:(我)non-beacon-enabled,(二)启用信标的MAC。非启用信标的MAC是一个异步CSMA(载波感应多址)MAC,与IEEE 802.11 MAC非常相似。启用信标的MAC允许两个不同的MAC周期:(我)同步csma MAC周期,和(二)一个有时间槽、无争用的MAC周期。这个示例提供了对非信标、异步、基于csma的IEEE 802.15.4 MAC的广泛模拟。

网络设置

一个IEEE 802.15.4 PAN(个人区域网络)是由一个标准过程在终端设备和PAN协调器之间建立起来的。首先,想要加入网络的设备执行主动或被动操作扫描。主动扫描意味着设备首先发送a灯塔的请求然后执行被动扫描。被动扫描意味着设备通过嗅闻来收集信息信标帧来自PAN协调员(在主动扫描的情况下,他们可能已经收到了他们的信标请求)。在被动扫描期间收集信标后,终端设备选择它想关联的PAN。然后它传送关联请求致本PAN协调员,协调员承认。

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

一旦接收到关联响应并确认,终端设备就与PAN相关联。当时,数据帧可在协调器和终端设备之间进行任意方向的交换。数据帧可以被确认,取决于它们的“确认请求”指示。

异步媒介访问控制(MAC)

异步CSMA IEEE 802.15.4 MAC与通用CSMA操作和IEEE 802.11 MAC类似。在该MAC方案中,无需使用CSMA方法,立即传输应答帧。所有其他帧使用CSMA传输。

具体地说,一旦设备有帧要传输,它就随机选择a倒扣从范围[0 2^BE-1]开始的延迟(后退周期数),其中BE是后退指数。每个后退周期的持续时间为20个符号。对于2.4 GHz的OQPSK PHY,这个持续时间相当于128个芯片和0.32 ms。一旦设备已经等待选择的后退周期数,它执行载体传感. 如果媒体空闲,设备开始传输其帧,直到它被完全传输。

如果媒介在载波检测期间是繁忙的,那么回退指数递增1,并且从新的[0 2^BE-1]范围中选择一个新的回退周期数。当回退计数器再次过期时,载波传感被执行。如果在任何载波感知实例期间,在没有介质空闲的情况下达到后退计数的最大数目,则设备终止它传输帧的尝试。

网络仿真能力

该实例通过实例实现了所述的网络设置过程和CSMA方法lrwpan.MACFullFunctionDevicelrwpan.MACReducedFunctionDevice类。具体来说,以下功能是启用的:

  • 主动和被动扫描

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

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

  • 帧确认和帧重传(如果未及时接收到确认)

  • 长短帧间距(SIFS和LIFS)

  • 二进制指数倒扣

  • 载波感应

网络仿真

在本节中,我们将创建一个包含3个节点的IEEE 802.15.4网络:一个PAN协调器和两个终端设备。该网络模拟器被配置为以单个后退持续时间(20个符号,0.32 ms)递增的方式处理所有设备。

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

符号perstep=20;chipsPerSymbol=32;samplesPerChip=4;symbolRate=65.5e3;%符号/秒时间= 0;stopTime = 5;%秒%创建PAN协调器水平坐标=lrwpan.MACFullFunctionDevice(“PANCoordinator”,真的,“样本位置”4'泛标识符',“7777”,“ExtendedAddress”[repmat (' 0 ', 1,8)“7”,1,8)],'短地址',“1234”);%创建第一个终端设备:endDevice1 = lrwpan.MACReducedFunctionDevice (“样本位置”4'短地址',“0001”,“ExtendedAddress”[repmat (' 0 ', 1,8)“3”1 8)]);%初始化设备输入received1 = 0 (samplesPerChip * chipsPerSymbol * symbolsPerStep/ 2,1);received2 = 0 (samplesPerChip * chipsPerSymbol * symbolsPerStep/ 2,1);时间< stopTime%将接收到的信号传递给节点进行处理。另外,获取什么%他们必须传输:transmitted1 = panCoordinator (received1);transmitted2 = endDevice1 (received2);%理想的无线信道,其中两个节点都在范围内:received1 = transmitted2;%半双工无线电,发射时无接收接收D2=传输1;时间=时间+符号步幅/符号速率;%更新时钟结束
0001:*********添加信标请求帧到队列0001:被动扫描1584点的步骤0001:从队列0001处理下一个帧:初始化传输;退避延迟= 1个步骤0001:退避延迟= 1个步骤 - > 0的步骤0001:载波感测:介质是空闲的。0001:清除发送0001:发射信标请求0001:IFS偏移= 0的样品0001:发射OQPSK PHY 2050找到前同步码的1-1280。发现帧起始定界符OQPSK PHY的(SFD)。0001:IFS偏移= 0的样品0001:发射的2050 0001 1281年至2050年:成品传输0001:需要等待SIFS(12)符号。偏移= 12,下一个IFS = 4 0001:输入被动扫描1234:PHY解码IEEE 802.15.4帧CRC校验通过了该MAC帧。1234:***********接收帧类型= MAC命令1234:***********接收的MAC命令类型=信标请求1234:需要等待SIFS(12)的符号。偏移= 12,下一个IFS = 4 1234:*********添加Beacon帧到队列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偏移量= 256个样本1234:发射1-1024的2562 1234:IFS偏移= 0的样品1234:发射2325至04年的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协调器之间的链接中。

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

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

可以在网络中添加更多的节点,只要建立相应的通道关系(即通道关系)。,即接收到的信号作为传输信号的函数)。

进一步探索

您可以进一步研究以下生成器和解码函数以及配置对象:

选定的参考书目

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