主要内容

带WLAN信号干扰的BLE共存模型

这个例子展示了如何使用蓝牙协议的通信工具箱™库和WLAN工具箱™来模拟蓝牙®低能量(BLE)与WLAN干扰共存。为了减小WLAN对BLE网络的干扰,采用了共存机制。在本例中,每个WLAN网络的碰撞概率和干扰水平被用来破坏BLE信号。本例中生成的仿真结果表明,对于一个WLAN信道的高碰撞概率和干扰水平,各自的BLE信道的成功率较低。

BLE-WLAN共存机制

由于不同类型的无线网络在同一未经许可的频带内运作,两个不同的网络可能会相互干扰。这种干扰会导致两个网络的传输失败。目前还没有标准化的算法来实现两种不同无线网络的共存。然而,IEEE 802.15.2™标准[1]规定了一些建议的做法,以实现无线个人区域网(WPAN)与在未经许可的频带内运行的其他无线设备共存。

这个例子说明了一个带有WLAN信号干扰的BLE共存模型。WLAN通信要求至少20mhz带宽,BLE设备要求仅2mhz带宽。WLAN使用一种信道接入机制,称为载波侦听多址避碰(CSMA/CA),而BLE设备使用跳频。BLE和WLAN设备的工作频率重叠时会产生干扰。为了减少干扰,采用共存机制。

共存机制大致可分为以下两类[1]:

  • 协作:这种机制需要BLE网络和WLAN网络之间建立通信链路。由于这两个网络可以相互通信,其中一个网络在另一个网络使用信道时暂停传输。当WLAN和BLE设备嵌入到同一个物理设备中时,使用此机制。

  • 这个:这种机制不需要BLE和WLAN之间有任何通信链路。由于这两个网络不能相互通信,它们使用自己的方法来检测对方网络的干扰。当WLAN和BLE设备不在同一个物理设备内嵌时,使用此机制。

这个示例说明了BLE设备与WLAN的非协作共存机制。

BLE与WLAN共存-模型描述

本节详细介绍了BLE中的数据通信、WLAN干扰以及本例中为避免干扰而采用的共存算法。

沟通在祝福:BLE在链路层定义了两个主要角色,即主和从。主机发起数据通信,从机响应主机。在这个例子中,BLE数据包交换是在一个主服务器和多个(可配置的多达5个)从服务器之间建模的。在祝福2,数据通信只发生在连接事件期间。连接事件是一个在主服务器和从服务器之间重复发生的数据包交换序列(以固定的间隔称为连接间隔)。连接事件中的所有数据包都在同一数据通道上传输。在每一个连接事件开始时,主服务器发起与各自的从服务器的通信。此后,从服务器用一个数据包响应主服务器。如果没有数据发送,Slave响应一个空包。在本例中,每个连接事件只建模一个事务。新的连接事件使用新的数据通道。新信道的选择是基于自适应信道跳变的。在选择新信道时使用指示信道好坏的信道图,显示了信道跳变的适应性。

WLAN交通:WLAN流量根据指定的开始和结束时间动态地添加到模型中或从模型中删除。每个WLAN网络配置一个单独的碰撞概率。此外,每个WLAN网络都配置了WLAN干扰等级,以破坏各自信道中的BLE信号。对于每一次传输,都会生成一个0到1之间的随机数。如果生成的随机数小于碰撞概率,则通过在该信道中添加WLAN信号破坏了传输的BLE信号。生成的WLAN流量可以修改为IEEE®802.11ax™[3.或802.11n [4)使用wlanTraffic函数。然而,本示例仅使用20mhz WLAN信道。

BLE与WLAN共存:如果根据碰撞概率,所选BLE信道受到WLAN干扰的影响较大,则传输的BLE信号受到该信道内WLAN信号的干扰。主设备根据从通道中的包故障,周期性地将从通道划分为“好通道”或“坏通道”。信道分类信息以称为信道图的位图的形式存储。位图是一个由1和0组成的数组,定义了通道的分类(“好”或“坏”)。的classifyChannels函数对BLE通道进行分类并存储生成的位图。主服务器为每个从服务器维护一个不同的通道映射。更新后的通道图发送给Slave。信道分类的周期性是通过设置属性来配置的ClassificationIntervalhelperBLEChannelClassification对象。空闲状态下的BLE设备,通过对接收到的信号进行能量检测(ED)来计算所有“坏通道”的信道繁忙时间。如果当前的好通道数量小于首选的好通道数量,则对坏通道再次进行分类。这种分类是基于信道繁忙时间BadChannelClassificationMethod属性设置为“使用能源的迹象”.如果BadChannelClassificationMethod属性设置为“重置所有坏频道”,然后所有的坏频道被重置为好的频道。

检查支持包安装情况金宝app

检查是否安装了“蓝牙协议的通信工具箱库”支持包。金宝app

comm金宝appSupportPackageCheck (“蓝牙”);

BLE配置参数

本节将BLE主设备和指定数量的从设备添加到BLE网络中。由于主设备负责更新BLE网络中每个从设备的通道映射,因此通道分类参数在主设备上使用helperBLEChannelClassification.的helperBLEDeviceModel对象用于对BLE与WLAN共存进行建模。

%与主服务器相关的BLE从服务器的数量slavesCount = 1;创建能够连接“slavesCount”的BLE主设备%奴隶数量主= helperBLEDeviceModel (“角色”“大师”“SlavesCount”, slavesCount);%初始化信道分类参数,对BLE进行分类渠道分为好渠道和坏渠道。PERThreshold:包%错误率(PER)阈值%信道分类周期性RxStatusCount:MinRxCountToClassify最大接收报文数:BadChannelClassificationMethod:%坏通道分类方法preferredminimumgood通道:%良好渠道的首选数量channelClassification = helperBLEChannelClassification (“PERThreshold”现年40岁的“ClassificationInterval”, 150,“RxStatusCount”, 50岁,“MinRxCountToClassify”4“BadChannelClassificationMethod”“重置所有坏频道”“PreferredMinimumGoodChannels”, 30);%分配通道分类参数给主设备的主人。ChannelClassification = ChannelClassification;%初始化“slavesCount”奴隶数量slave (1, slavesCount) = helperBLEDeviceModel;%创建Slave设备的slavesCount数量idx = 1:slavesCount (idx) = helperBLEDeviceModel(“角色”“奴隶”);结束在“Master”和“Slaves”之间创建“slavesCount”连接。这函数通过共享公共连接来创建一个链路层连接参数,如连接间隔,访问地址%主从连接对。[master, slaves] = helperBLECreateLLConnection(master, slaves);

WLAN交通模型

本节通过指定的配置对WLAN流量建模。

配置参数

每个WLAN网络的配置参数包括在指定WLAN信道中的冲突概率、干扰级别、干扰开始时间和干扰结束时间。的helperBLEWLANSignalTrafficConfig对象用于对WLAN流量进行建模。

%设置干扰BLE网络的WLAN网络个数wlanNetworksCount = 6;%每个WLAN网络使用的WLAN信道集(范围[1,14])wlanChannels = [1, 5, 6, 12, 9, 8];%各WLAN网络与BLE网络冲突的概率collision - probability = [0.75, 0.68, 0.76, 0.80, 0.78, 0.64];%每个WLAN的开始和结束时间,单位为毫秒%网络wlanInterferencePeriod = [0, inf;]0,正无穷;0, 2100;0,正无穷;200年,2800年;150年,正);% WLAN信号功率与BLE信号功率的比值wlanInterferenceLevel = [1.20, 0.90, 0.85, 0.95, 0.70, 1.15];

WLAN交通模型

通过配置WLAN流量,配置对每个Slave的干扰。WLAN流量(非ht波形)添加到所有指定的WLAN通道使用wlanTraffic函数。

%创建WLAN流量配置对象wlanTrafficConfig = helperBLEWLANSignalTrafficConfig ();%使用指定的WLAN网络参数配置WLAN流量wlanTrafficConfig, wlanNetworksCount, wlanChannels, collisionprobability,wlanInterferencePeriod wlanInterferenceLevel);

共存的模拟

本节举例说明在干扰WLAN信号时主从设备之间的通信。

初始化仿真参数

初始化BLE与WLAN信号干扰共存所需的仿真参数。

初始化模拟参数重置随机数生成器种子sprev = rng (“默认”);%若要使能BLE与WLAN共存的可视化,请设置% "enableVisualization"为真。禁用BLE的可视化将“enableVisualization”设置为false。enableVisualization = true;要使通道跳频序列可视化,请设置% "enableHoppingVisualization"为真。使不可视化%通道跳转序列,将“enableHoppingVisualization”设置为false。%如果“enableVisualization”被设置为false,那么% "enableHoppingVisualization"不被考虑。enableHoppingVisualization = true;%总模拟时间,以毫秒为单位simulationTime = 4000;%一步时间为0.025毫秒。所有的时间%参数(连接间隔、扫描间隔、发布间隔、%等)是0.625毫秒的倍数。的%本例中使用的最小数据包大小是9个字节(72位)。的%数据包传输时间在不同PHY模式下为:0.072毫秒% (LE1M), 0.036毫秒(LE2M), 0.144毫秒(LE500K)%和0.288毫秒(以LE125K计算)。因此,步长为%被认为是0.025毫秒(0.625是0.025的倍数)来实现%在模拟时间和精度之间的权衡。步伐= 0.025;%生成BLE传输模式参数phyMode =“LE1M”% Mode可以是'LE2M' | 'LE1M' | 'LE500K' | 'LE125K'EbNo = 16;% Eb/ dB中没有值%初始化PHY参数sps:每符号取样bleSNR:% BLE信号噪声比inititimpairments: BLE PHY的系统对象%障碍[sps, bleSNR, inittimpairments] = helperBLEInitPHYParameters(EbNo, phyMode);为空包创建结构,初始化Master的输出LLPDU:生成的链路层协议数据单元(PDU)%的附加%循环冗余校验% RateIndex:表示数据包的速率的字符串%传播。它包含一个'LE2M' | 'LE1M' | 'LE500K'% |“LE125K”% AccessAddress:每个主从连接对的唯一地址% ChannelIndex:传输数据包的通道emptyPacket =结构(“LLPDU”[],“AccessAddress”''“RateIndex”''“ChannelIndex”1);%初始化Slave输出slaveOutput = emptyPacket;%预分配缓冲区来存储Slave输出slaveOutputs = cell(1, slavesCount);

模拟

本节模拟BLE主设备和从设备在指定时间内交换数据包的过程。

  • 主(发送或接收):在每个连接事件中,BLE Master通过发送数据通道上的链路层包生成的BLE波形来发起与各自的Slave的通信。WLAN信号会干扰各自BLE信道中产生的BLE波形。发送后,主服务器等待从服务器的响应。

  • 从服务器(传输或接收):在每个连接事件中,BLE从从数据通道上的主接收干扰波形。之后,从端响应同一数据通道上的主端,在产生BLE波形后发送链路层包。产生的BLE波形会受到各自BLE信道中的WLAN信号的干扰。

在添加WLAN干扰之前,BLE信号的传输经过以下射频损伤。

  • 直流偏置

  • 载波频率偏移量

  • 载波相位偏移量

  • 时间漂移

使用helperBLEImpairments功能,配置射频损伤。

运行的函数helperBLEDeviceModel用于BLE主设备和从设备之间的通信。的addInterference功能增加WLAN信号,破坏BLE信号。在BLE波形中加入高斯白噪声(WGN)。的helperBLEVisualizeCoexistence可视化BLE与WLAN信号共存的仿真。

%初始化数字,以可视化共存模型的每个奴隶。%此可视化显示WLAN频道及其冲突%的概率,也显示了信道跳转为通信BLE主设备和从设备之间的%。它也显示状态(好或% bad),以及各自的成功率%的通道。coexistenceModel =helperBLEVisualizeCoexistence (“行动”“初始化”“SlaveCount”slavesCount,“WLANChannelList”wlanChannels,“PERThreshold”master.ChannelClassification.PERThreshold,“ClassificationInterval”master.ChannelClassification.ClassificationInterval,“ChannelBusyCountThreshold”master.ChannelClassification.ChannelBusyCountThreshold,“PreferredMinimumGoodChannels”master.ChannelClassification.PreferredMinimumGoodChannels,“ConnectionInterval”.ConnectionInterval master.LLConnectionConfigs (1),“Stoptime”simulationTime,“PHYMode”phyMode,“EnableVisualization”enableVisualization,“EnableHoppingVisualization”, enableHoppingVisualization);coexistenceModel.initializeVisualization ();视图模型(coexistenceModel);的主人。CoexistenceVisualization = coexistenceModel;%运行仿真simulationTimer = 0:步伐:simulationTime%停止模拟,如果所有的从从断开%主人由于干扰。如果BLE通道的PER他们彼此的交流是高的,然后大师和%从服务器断开连接。通道的PER值高是因为%在各自的通道中高碰撞概率。如果元素个数(master.ActiveConnectionIdxs(主人。ActiveConnectionIdxs ~= -1)) == 0'仿真终止,因为所有从设备断开连接' \n'打破结束%在可视化中更新WLAN流量helperBLEUpdateWLANTraffic(slavesCount, wlanChannels, wlanTrafficConfig, simulationTimer, master);% MASTER:发送或接收模式如果(主。ActiveChannel == slaveOutput.ChannelIndex) &&~isempty(slaveOutput. llpdu) masterOutput = run(master, slaveOutput);其他的masterOutput = run(master, emptyPacket);结束如果~ (isempty (masterOutput.LLPDU))产生PHY波形masterOutput。RateIndex = phyMode;masterWaveformTx = helperBLEPHYTx(masterOutput, sps);%添加障碍masterWaveformTx = helperbledamments (inittimpairments, masterWaveformTx, sps);%增加WLAN干扰masterWaveformTx = addInterference (wlanTrafficConfig,masterOutput。ChannelIndex、simulationTimer masterWaveformTx);%传输波形通过AWGN通道masterWaveformRx = awgn(masterWaveformTx, bleSNR);%在添加损伤和干扰后解码PHY波形[decodedMasterPacket, decodedMasterAccessAddress] = helperBLEPHYRx(masterWaveformRx,phyMode、sps masterOutput。AccessAddress masterOutput.ChannelIndex);masterOutput。LLPDU = decodedMasterPacket;当BLE PHY接收器失败时,%访问地址为空%检测到一个有效的BLE数据包由于高干扰电平或%损害或噪音水平。如果~ isempty (decodedMasterAccessAddress) masterOutput。AccessAddress = dec2hex(bi2de(decodedMasterAccessAddress'), 8);结束结束%更新当前模拟时间master.CoexistenceVisualization.CurrentTime = simulationTimer;master.CoexistenceVisualization.Action =“模拟进展”% SLAVE:发送或接收模式idx = 1: slavesCount将“MasterOutput”传递给正在监听的Slave%的频率如果(奴隶(idx)。ActiveChannel == masterOutput.ChannelIndex) &&~isempty(masterOutput. llpdu) slaveOutputs{idx} = run(slaves(idx), masterOutput);将一个空包传递给所有其他slave其他的{idx} = run(slave (idx), emptyPacket);结束%更新每个Slave的模拟进度master.CoexistenceVisualization.SlaveNumber = idx;视图模型(master.CoexistenceVisualization)结束slaveOutput = emptyPacket;%获取活动的Slave输出(在任何时候,只有一个Slave是%活跃)idx = 1: slavesCount如果~isempty(slaveOutputs{idx}.LLPDU) = slaveOutputs{idx};打破结束结束如果~ (isempty (slaveOutput.LLPDU))产生PHY波形slaveOutput。RateIndex = phyMode;slaveWaveformTx = helperBLEPHYTx(slaveOutput, sps);%添加BLE损失slaveWaveformTx = helperbledisments (inittimpairments, slaveWaveformTx, sps);%增加WLAN干扰slaveWaveformTx = addInterference (wlanTrafficConfig,slaveOutput。ChannelIndex、simulationTimer slaveWaveformTx);%传输波形通过AWGN通道slaveWaveformRx = awgn(slaveWaveformTx, bleSNR);%在添加损伤和干扰后解码PHY波形[decodedSlavePacket, decodedSlaveAccessAddress] = helperBLEPHYRx(slaveWaveformRx,)phyMode、sps slaveOutput。AccessAddress slaveOutput.ChannelIndex);slaveOutput。LLPDU = decodedSlavePacket;当BLE PHY接收器失败时,%访问地址为空%检测到一个有效的BLE数据包由于高干扰电平或%损害或噪音水平。如果~ isempty (decodedSlaveAccessAddress) slaveOutput。AccessAddress = dec2hex(bi2de(decodedSlaveAccessAddress'), 8);结束结束结束%更新每个Slave的模拟进度master. coexistencevisualize . slavenumber = idx;master.CoexistenceVisualization.Action =“模拟进展”;视图模型(master.CoexistenceVisualization)结束%将此示例的统计信息记录到% | bleCoexistenceWithWLANSignalStatistics。垫|文件helperBLELogCoexistenceStats(主人,奴隶,“bleCoexistenceWithWLANSignalStatistics.mat”);%恢复之前的随机数生成设置rng (sprev)

仿真结果

这个例子的模拟生成:

  1. 将显示每个主从连接对的运行时图,其中描述了每个通道的状态(好或坏)和最近的累计成功率

  2. 一个垫子文件bleCoexistenceWithWLANSignalStatistics.mat通过详细的统计信息,如接收的数据包数量,每个通道上损坏的数据包数量和每个分类间隔的通道状态(好或坏)

进一步的探索

你可以通过以下方式进一步探索这个例子:

  • 使用其他无线局域网格式的变体,如非HT直接序列扩频(DSSS)或高吞吐量(HT)wlanTraffic函数

  • 损坏了BLE信号addInterference通过改变BLE信号不同阶段的干扰来实现功能

你也可以探索BLE网络中WLAN干扰的统计建模

通过本示例,您可以分析BLE与WLAN信号干扰共存的情况。利用各WLAN网络的碰撞概率和干扰程度对BLE信号进行破坏。BLE主设备和从设备使用良好的通道相互通信,以避免丢包。计算每个BLE通道的成功率。该实例表明,对于高碰撞概率和高干扰水平的WLAN信道,各自的BLE信道的成功率较低。因此,这些通道不用于BLE主设备和从设备之间的通信。

附录

这个例子使用了这些特性:

这个例子使用了这些助手:

选定的参考书目

  1. IEEE标准®802.15.2™。“无线个人区域网络与在无牌频带内运作的其他无线设备共存”。信息技术推荐规程。系统间电信和信息交换。局域网和城域网。特殊要求。IEEE计算机协会

  2. 蓝牙特殊兴趣组(SIG)。“蓝牙核心规范”。5.0版。https://www.bluetooth.com/

  3. IEEE P802.11ax™/ D3.1。无线局域网介质访问控制(MAC)和物理层(PHY)规范-修改件6:对高效WLAN的增强信息技术标准草案。系统间电信和信息交换。IEEE计算机协会局域网/城域网标准委员会

  4. IEEE Std 802.11™。《无线局域网介质访问控制(MAC)和物理层(PHY)规范》。信息技术标准。系统间电信和信息交换。局域网和城域网。特殊要求。IEEE计算机协会局域网/城域网标准委员会

相关的话题