主要内容

蓝牙低能发射机

这个例子展示了如何使用用于蓝牙协议的通信工具箱™库实现蓝牙®低能耗(BLE)发射器。您可以使用ADALM-PLUTO无线电传输BLE信号或写入基带文件(*.bb)。所发送的BLE信号可以通过同伴示例接收,蓝牙低能量接收器(i)两个SDR平台连接到运行两个MATLAB会话的同一主机计算机(ii)两个SDR平台连接到运行不同MATLAB会话的两台计算机。

指的是指导主机-无线电硬件设置(模拟设备通信工具箱支持包ADALM-Pluto金宝app无线电)有关如何配置主机以使用ADALM-PLUTO Radio的支持包的详细信息的文档。金宝app

所需硬件和软件

运行此示例,需要以下软件:

  • 蓝牙协议的通信工具箱库

为了实时传输信号,您还需要ADALM-PLUTO无线电和相应的支持包Add-On:金宝app

有关“通信工具箱支持的SDR平台”的完整列表,请参阅“支持的硬件”一节金宝app软件定义无线电(SDR)发现页面

背景

蓝牙特殊兴趣组(SIG)引入了BLE用于低功率短程通信。蓝牙标准[1)指定了链接图层,包括两个体育MAC层。BLE应用包括移动电话、家庭自动化和物联网(IoT)之间的图像和视频文件传输。

规范的祝福:

  • 传输频率范围: 2.4 - -2.4835 GHz

  • 射频通道: 40

  • 符号率: 1 Msym/s, 2 Msym/s

  • 调制高斯最小移位键控(GMSK)

  • 体育传播模式:(i) LE1M -未编码PHY,数据速率为1mbps (ii) LE2M -未编码PHY,数据速率为2mbps (iii) LE500K -编码PHY,数据速率为500kbps (iv) LE125K -编码PHY,数据速率为125kbps

蓝牙标准[1]指定BLE的所有四种PHY传输方式的空中接口包格式。

  • 序言:由PHY传输模式决定。LE1M模式使用一个由0和1交替组成的8位序列'01010101'。LE2M使用16位的0和1交替序列,'0101…'。LE500K和LE125K模式使用80位零和1序列,通过重复'00111100'十次获得。

  • 访问地址:指定两台BLE设备之间共享的连接地址,32位顺序。

  • 编码指标:用于区分编码模式的2位序列(LE125K和LE500K)。

  • 有效载荷:输入消息位,包括PDU (protocol data unit)和CRC (cyclic redundancy check)。消息的最大长度为2080位。

  • 终止字段:两个3位零向量,用于前向纠错编码。终止域只存在于编码模式(LE500K和LE125K)。

无编码PHY (LE1M和LE2M)模式的包格式如下图所示:

编码PHY (LE500K和LE125K)模式的包格式如下图所示:

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

%检查“蓝牙协议的通信工具箱库”%支金宝app持包是否安装。comm金宝appSupportPackageCheck (“蓝牙”);

示例结构

BLE发射机示例的总体结构描述如下:

  1. 生成链路层pdu

  2. 生成基带IQ波形

  3. 发射机处理

生成链路层pdu

链路层pdu可以是发布通道pdu,也可以是数据通道pdu。通过命令配置和生成发布通道pdubleLLAdvertisingChannelPDUConfigbleLLAdvertisingChannelPDU函数分别。通过配置和生成数据通道pdubleLLDataChannelPDUConfigbleLLDataChannelPDU函数分别。

%配置发布通道PDUcfgLLAdv = bleLLAdvertisingChannelPDUConfig;cfgLLAdv。PDUType =广告显示的;cfgLLAdv。AdvertisingData =“0123456789六边形abcdef”;cfgLLAdv。AdvertiserAddress =“1234567890 ab”%生成发布通道PDUmessageBits = bleLLAdvertisingChannelPDU (cfgLLAdv);

生成基带IQ波形

你可以使用bleWaveformGenerator函数生成符合标准的波形。

phyMode =“LE1M”%从集合{'LE1M','LE2M','LE500K','LE125K'}中选择一个模式sps = 8;每符号样本%channelIdx = 37;%通道索引值在[0,39]范围内accessAddLen = 32;%访问地址长度accessAddHex =“8 e89bed6”%访问地址值,十六进制accessAddBin = de2bi (hex2dec (accessAddHex) accessAddLen) ';%访问地址,以二进制表示%基于|'Mode'的符号率symbolRate = 1 e6;如果比较字符串(phyMode“LE2M”) symbolRate = 2e6;结束产生BLE波形txWaveform = bleWaveformGenerator (messageBits,...“模式”phyMode,...“SamplesPerSymbol”sps,...“ChannelIndex”channelIdx,...“AccessAddress”, accessAddBin);%设置频谱查看器spectrumScope = dsp。简介(...“SampleRate”, symbolRate * sps,...“SpectrumType”的功率密度...“SpectralAverages”10...“YLimits”(-130 0),...“标题”“基带BLE信号频谱”...“YLabel”的功率谱密度);%表示BLE信号的功率谱密度spectrumScope (txWaveform);

发射机处理

指定信号接收器为'File'或'ADALM-PLUTO'。

  • 文件:使用comm.BasebandFileWriter写入基带文件。

  • ADALM-PLUTO:使用sdrtx(模拟设备通信工具箱支持包ADALM-Pluto金宝app无线电)用于从SDR硬件传输实时信号的系统对象。

%初始化信号源所需的参数txCenterFrequency = 2.402 e9;%根据通道索引值不同而不同txFrameLength =长度(txWaveform);txNumberOfFrames = 1 e4;txFrontEndSampleRate = symbolRate * sps;%默认信号源为“File”signalSink =“文件”如果比较字符串(signalSink“文件”) sigSink = comm.BasebandFileWriter(“CenterFrequency”txCenterFrequency,...“文件名”“bleCaptures.bb”...“SampleRate”, txFrontEndSampleRate);sigSink (txWaveform);%写入基带文件'bleCaptures.bb'elseif比较字符串(signalSink“ADALM-PLUTO”%首先检查HSP是否存在如果isempty ((“plutoradio.internal.getRootDir”)错误(消息(“comm_demos:常见:NoSupp金宝apportPackage”...“ADALM-PLUTO无线电通信工具箱支持包”金宝app...' < a href = " //www.tatmou.com/hard金宝appware-support/ '...' ADALM-PLUTO Radio .html">ADALM-PLUTO Radi金宝appo Support From Communications Toolbox')));结束connectedRadios = findPlutoRadio;%发现ADALM-PLUTO无线电连接到您的计算机radioID = connectedRadios (1) .RadioID;sigSink = sdrtx (“冥王星”...“RadioID”radioID,...“CenterFrequency”txCenterFrequency,...“获得”0,...“SamplesPerFrame”txFrameLength,...“BasebandSampleRate”, txFrontEndSampleRate);将基带数据传输到SDR硬件的过程包含在一个% try / catch块。这意味着,如果在%传输时,SDR系统使用的硬件资源%对象(TM)被释放。叫做= 1;试一试叫做< = txNumberOfFrames%数据传输sigSink (txWaveform);%更新计数器currentFrame = currentFrame + 1;结束我释放(sigSink);重新抛出(我)结束其他的错误(“无效的信号。有效的条目是File和ADALM-PLUTO。”);结束%释放信号接收器发行版(sigSink)

进一步的探索

同伴的例子蓝牙低能量接收器可用于解码通过本示例传输的波形。您还可以使用这个示例通过更改两个示例中的信道索引、访问地址和中心频率值来传输数据信道pdu。

故障排除

用于ADALM-PLUTO无线电的SDR硬件和通信工具箱支持包的故障排除的一般提示可以在金宝app常见问题及修复(模拟设备通信工具箱支持包ADALM-Pluto金宝app无线电)

选定的参考书目

  1. 蓝牙核心规范第6卷,5.0版核心系统包[低能量控制器卷]。