概述
文章目录
- 1.常用术语
1.常用术语
SNR (信噪比SIGNAL-NOISE RATIO)
信噪比(SIGNAL NOISE RATIO,SNR or S/N),即放大器的输出信号的功率,与同时输出的噪声功率的比值,常常用分贝数表示。设备的信噪比越高表明它产生的杂音越少。一般来说,信噪比越大,说明混在信号里的噪声越小,声音回放的音质量越高,否则相反。
RSSI (Received Signal Strength Indication接收的信号强度指示)
Received Signal Strength Indication接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度。
通过接收到的信号强弱测定信号点与接收点的距离,进而根据相应数据进行定位计算的一种定位技术。如无线传感的ZigBee网络CC2431芯片的定位引擎就采用的这种技术、算法。接收机测量电路所得到的接收机输入的平均信号强度指示。这一测量值一般不包括天线增益或传输系统的损耗。
FSK (Frequency-shift keying)
FSK(Frequency-shift keying)是信息传输中使用得较早的一种调制方式,它的主要优点是: 实现起来较容易,抗噪声与抗衰减的性能较好。在中低速数据传输中得到了广泛的应用。最常见的是用两个频率承载二进制1和0的双频FSK系统。
GFSK (Gauss frequency Shift Keying)
高斯频移键控GFSK - Gauss frequency Shift Keying ,是在调制之前通过一个高斯低通滤波器来限制信号的频谱宽度。
GFSK的技术基础于FSK。
当原始数字信号在经过FSK调变送出前,加上一个高斯低通滤波器来限制调变后的信号频谱宽度,使得在通讯上能限制频谱宽度的传输以及功率的消耗。
OOK (On-Off Keying)
OOK是ASK调制的一个特例,把一个幅度取为0,另一个幅度为非0,就是OOK。
二进制启闭键控(OOK:On-Off Keying)又名二进制振幅键控(2ASK),它是以单极性不归零码序列来控制正弦载波的开启与关闭。该调制方式的出现比模拟调制方式还早,Morse码的无线电传输就是使用该调制方式。由于OOK的抗噪声性能不如其他调制方式,所以该调制方式在目前的卫星通信、数字微波通信中没有被采用,但是由于该调制方式的实现简单,在光纤通信系统中,振幅键控方式却获得广泛应用。该调制方式的分析方法是基本的,因而可从OOK调制方式入门来研究数字调制的基本理论。
CAD (Channel activity detection)
信道检测原理(CAD)
LoRa学习:信道占用检测原理(CAD
FHSS (Frequency-Hopping Spread Spectrum)
FHSS,跳频技术 (Frequency-Hopping Spread Spectrum)在同步、且同时的情况下,接受两端以特定型式的窄频载波来传送讯号,对于一个非特定的接受器,FHSS所产生的跳动讯号对它而言,也只算是脉冲噪声。FHSS所展开的讯号可依特别设计来规避噪声或One-to-Many的非重复的频道,并且这些跳频讯号必须遵守FCC的要求,使用75个以上的跳频讯号、且跳频至下一个频率的最大时间间隔(Dwell Time)为400ms。
SX1276 / 77/78-137 MHz至1020 MHz低功率远程收发器
应用场景
1.自动抄表。
2.家庭和楼宇自动化。
3.无线警报和安全系统。
4.工业监控
5.远程灌溉系统
SX1276 / 77/78集成了LoRa扩频调制解调器,与基于FSK或OOK调制的现有系统相比,它能够实现更长的范围。在LoRa的最大数据速率下,灵敏度比FSK好8dB,但是与FSK相比,使用具有20ppm XTAL XTAL LoTAL的低成本材料清单可以将接收器灵敏度提高20dB以上。 LoRa还提供了选择性和阻断性能方面的重大进步,进一步提高了通信可靠性。为了获得最大的灵活性,用户可以决定扩频调制带宽(BW),扩频因子(SF)和纠错率(CR)。扩频调制的另一个好处是每个扩频因子都是正交的,因此多个发射信号可以占用同一信道而不会产生干扰。这也允许与现有的基于FSK的系统简单共存。还提供了标准GFSK,FSK,OOK和GMSK调制,以允许与现有系统或标准(例如无线MBUS和IEEE 802.15.4g)兼容。 SX1276提供的带宽选项范围为7.8 kHz至500 kHz,扩展因子范围为6至12,并覆盖所有可用频带。 SX1277提供相同的带宽和频带选项,扩展因子为6到9。SX1278提供带宽,频带和扩展因子选项,但仅覆盖较低的UHF频带。
SX1276 / 77/78 芯片型号功能
芯片型号 | 频率范围 | 扩频因子 | 带宽 | 影响比特率 | 灵敏度 |
---|---|---|---|---|---|
SX1276 | 137 - 1020Mhz | 6 - 12 | 7.8 - 500Khz | .018 - 37.5kbps | -110 to -148dBm |
SX1277 | 137 - 1020Mhz | 6 - 9 | 7.8 - 500Khz | 0.11 - 37.5kbps | -110 to -139dBm |
SX1278 | 137 - 525Mhz | 6 - 12 | 7.8 - 500Khz | .018 - 37.5kbps | -110 to -148dBm |
SX1276 / 77/78配备了标准FSK和远程扩频(LoRa)调制解调器。 根据选择的模式,可以采用传统的OOK或FSK调制,也可以采用LoRa扩频调制解调器。
LoRa调制解调器的设置如下图所示。 这种配置允许简单地更换
通过配置寄存器设置RegOpMode将FSK调制解调器与LoRa调制解调器一起使用。 可以在飞行中(在睡眠操作模式下)执行此更改,从而允许结合使用标准FSK或OOK以及远程功能。 LoRa调制和解调过程是专有的,它使用扩展频谱调制的形式与循环纠错编码相结合。 这两个因素的综合影响是链路预算的增加和抗干扰能力的增强。
上图还可以看到LoRa调制解调器具有一个独立的双端口数据缓冲区FIFO,可通过所有模式共用的SPI接口进行访问。 选择LoRa模式后,SX1276 / 77/78的配置寄存器映射会更改。 有关此更改的完整详细信息,请查阅第6节的寄存器描述。
Lora相关重要参数
扩频因子 Spreading Factor
通过用多个信息码片表示有效载荷信息的每一位来执行扩频LoRa调制。 发送扩展信息的速率称为符号速率(Rs),标称符号速率与码片速率之间的比率为扩展因子,代表每比特信息发送的符号数。 下表显示了可通过LoRa调制解调器访问的值的范围。
SpreadingFactor(RegModulationCfg) | SpreadingFactor (Chips / symbol) | LoRa Demodulator SNR |
---|---|---|
6 | 64 | -5 dB |
7 | 128 | -7.5 dB |
8 | 256 | -10 dB |
9 | 512 | -12.5 dB |
10 | 1024 | -15 dB |
11 | 2048 | -17.5 dB |
12 | 4096 | -20 dB |
注意:因为不同的SF之间为正交关系,因此必须提前获知链路发送端和接收端的SF。另外,还必须获知接受机输入端的信噪比。。在负信噪比条件下信号也能正常接收,这改善了LoRa接受机的林敏度,链路预算及覆盖范围。。
理解扩频因子的概念:
通俗的说 扩频时你的数据每一位都和扩频因子相乘,例如有一个1 bit需要传送,当扩频因子为1时,传输的时候数据1就用一个1来表示,扩频因子为6时(有6位)111111,这111111就来表示1,这样乘出来每一位都由一个6位的数据来表示,也就是说需要传输总的数据量增大了6倍。
这样扩频后传输可以降低误码率也就是信噪比,但是在同样数据量条件下却减少了可以传输的实际数据,所以,扩频因子越大,传输的数据数率(比特率)就越小。
Lora扩频因子的使用:
当扩频因子SF为6时,LoRa的数据传输速率最快,因此这一扩频因子仅在特定情况下使用。使用时需要配置LoRa芯片SX127x:
在RegModemConfig2,将SpreadingFactor设为6
将报头设置为隐式模式
在寄存器地址(0x31)的2至0位写入0b101
在寄存器地址(0x37)写入0x0C
编码率 Coding Rate
编码率,是数据流中有用部分的比例。
编码率(或信息率)是数据流中有用部分(非冗余)的比例。也就是说,如果编码率是k/n,则对每k位有用信息,编码器总共产生n位的数据,其中n-k是多余的。
LoRa采用循环纠错编码进行前向错误检测与纠错。这种错误编码会产生传输开销-下表显示了每次传输所产生的额外数据开销。
CodingRate(RegTxCfg1) | Cyclic Coding Rate | Overhead Ratio |
---|---|---|
1 | 4/5 | 1.25 |
2 | 4/6 | 1.5 |
3 | 4/7 | 1.75 |
4 | 4/8 | 2 |
在存在干扰的情况下,前向纠错能有效提高链路的可靠性。由此,编码率(抗干扰性能)可以随着信道条件的变化而变化,可以选择在报头加入编码率以便接收端能够解析。
带宽 (Signal Bandwidth)
信道带宽(BW)是限定允许通过该信道的信号下限频率和上限频率,可以理解为一个频率通带。比如一个信道允许的通带为1.5kHz至15kHz,则其带宽为13.5kHz
在LoRa中,增加BW,可以提高有效数据速率以缩短传输时间,但是 以牺牲部分接受灵敏度为代价。对于LoRa芯片SX127x,LoRa带宽为双边带宽(全信道带宽),而FSK调制方式的BW是指单边带宽。
下表给出了与大多数法规情况相关的带宽范围
Bandwidth(kHz) | Spreading Factor | Coding rate | Nominal Rb (bps) |
---|---|---|---|
7.8 | 12 | 4/5 | 18 |
10.4 | 12 | 4/5 | 24 |
15.6 | 12 | 4/5 | 37 |
20.8 | 12 | 4/5 | 49 |
31.2 | 12 | 4/5 | 73 |
41.7 | 12 | 4/5 | 98 |
62.5 | 12 | 4/5 | 146 |
125 | 12 | 45 | 293 |
250 | 12 | 4/5 | 586 |
500 | 12 | 4/5 | 1172 |
注意在较低频段(169 MHz)中,不支持250 kHz和500 kHz带宽。
LoRa传输参数关系
LoRa符号速率Rs可以通过以下公式计算:
Rs=BW/(2^SF)
其中BW是编程的带宽,SF是扩展因子。 传输的信号是恒定包络
信号。 等效地,每Hz带宽每秒发送一个码片。
LoRa数据速率DR可以通过以下公式计算:
DR= SF*( BW/2^SF)*CR
LoRa调制解调器采用两种类型的数据包格式,即显式和隐式。 显式数据包包括一个短报头,该报头包含有关字节数,编码率以及数据包中是否使用CRC的信息。 数据包格式如下图所示。
LoRa数据包包含三个元素:
1.序言。
2.可选标头。
3.数据有效负载。
空中速率
所谓空中速率表示LoRa/FSK 无线(在空气中的)通讯速率,也叫空中波特率,单位bps,
空中速率高,则数据传输速度快,传输相同数据的时间延迟小,但传输距离会变短。
LoRa调制解调器包括三种类型的数字接口,静态配置寄存器,状态寄存器和FIFO数据缓冲区。 所有这些都可以通过SX1276 / 77/78的SPI接口进行访问。
配置寄存器可通过SPI接口访问,在所有设备模式(包括休眠)下均可读取。 但是,它们只能在睡眠和待机模式下写入。 请注意,自动顶级定序器(TLS模式)在LoRa模式下不可用,并且配置寄存器映射如表38所示进行更改。LoRa配置寄存器的内容在FSK / OOK模式下保留。 有关FSK / OOK和LoRa模式共有的模式寄存器的功能,请查阅本文档的“模拟和射频前端”部分(第5节)。
SX1276 / 77/78配备256字节RAM数据缓冲区,在LoRa模式下可以唯一访问该缓冲区。 用户可以完全自定义此RAM区域(在此称为FIFO数据缓冲区),并允许访问已接收或要发送的数据。 对LoRa FIFO数据缓冲区的所有访问都是通过SPI接口完成的。 FIFO数据缓冲区的用户定义的存储器映射图如下所示。 可以在除睡眠之外的所有工作模式下读取这些FIFO数据缓冲区,并存储与上次执行的接收操作有关的数据。 在每次新的接收模式转换后,它将自动清除旧内容。
Lora芯片八种工作模式
Operating Mode | Description |
---|---|
SLEEP | 低功耗模式。 在这种模式下,只能访问SPI和配置寄存器。 无法访问Lora FIFO。请注意,这是允许在FSK / OOK模式和LoRa模式之间切换的唯一模式。 |
STAND-BY | 晶体振荡器和Lora基带模块均打开,RF部分和PLL被禁用。 |
FSTX | 这是用于传输的频率合成模式。 选择用于发送的PLL被锁定并以发送频率激活。 射频部分关闭。 |
FSRX | 这是用于接收的频率合成模式。 选择用于接收的PLL被锁定并在接收频率下处于活动状态。 射频部分关闭。 |
TX | 激活后,SX1276 / 77/78会为传输所需的所有剩余模块供电,使PA斜升,传输数据包并返回待机模式。 |
RXCONTINUOUS | 激活后,SX1276 / 77/78将为接收所需的所有剩余块供电,处理所有接收到的数据,直到发出新的用户请求以更改操作模式为止。 |
RXSINGLE | 激活后,SX1276 / 77/78会为接收所需的所有剩余块供电,并保持此状态,直到接收到有效的数据包,然后返回待机模式。 |
CAD | 当在CAD模式中,设备将检查给定的信道以检测洛拉前导信号 |
通过更改RegOpMode寄存器中的值,可以从任何其他模式访问任何模式。
数据传输顺序:
在发送模式下,仅当需要发送分组数据时,才通过启用RF,PLL和PA模块来优化功耗。下图显示了典型的LoRa发送序列
静态配置寄存器只能在休眠模式,待机模式或FSTX模式下访问。
- LoRaTM FIFO只能在待机模式下填充。
- 通过发送TX模式请求启动数据传输。
- 完成后,将发出TxDone中断,无线电将返回待机模式。
- 在发送之后,可以将无线电手动设置为睡眠模式,或者为后续的Tx操作重新填充FIFO。
LoRaTM发送数据FIFO填充
为了将数据包数据写入FIFO,用户应:
1将FifoPtrAddr设置为FifoTxPtrBase。
2将PayloadLength字节写入FIFO(RegFifo)
数据接收顺序
下图显示了用于单个和连续接收器工作模式的典型LoRa接收序列
LoRa接收调制解调器可以在两种不同的模式下工作
1.单次接收模式
2.连续接收模式
这两种模式对应于不同的用例,重要的是要了解它们之间的细微差别。
单次接收模式:
在这种模式下,调制解调器在给定的时间窗口内搜索前同步码。如果在时间窗口结束时未找到前同步码,则芯片会生成RxTimeout中断,并返回待机模式。窗口的长度(以符号为单位)由RegSymbTimeout寄存器定义,并且应在4(调制解调器获取前导码锁定的最短时间)的范围内(最多1023个符号)。 (默认值为5)。如果在此窗口中未检测到前同步码,则生成RxTimeout中断,无线电返回待机模式。在有效负载结束时,如果有效负载CRC无效,则生成RxDone中断以及中断PayloadCrcError。但是,即使CRC无效,数据也会写入FIFO数据缓冲区以进行后处理。在RxDone中断之后,无线电进入待机模式。当产生中断RxDone或RxTimeout时,调制解调器也将自动返回待机模式。因此,仅在知道分组到达的时间窗口时才应使用此模式。在其他情况下,应使用RX连续模式。
在Rx单模中,一旦接收到数据包,便通过关闭PLL和RF模块来实现低功耗。流程如下:
1设置FifoAddrPtr到FifoRxBaseAddr。
2可以在休眠模式,待机模式或FSRX模式下写入静态配置寄存器设备。
3单包接收操作是通过选择操作模式RXSINGLE启动。
4然后,接收机将等待接收到有效的前同步码。一旦收到,就设置接收链的增益。
在随后接收到有效标头之后,由显式模式下的ValidHeader中断指示。分组接收过程开始。接收过程完成后,将设置RxDone中断。收音机随后自动返回待机模式以降低功耗。
5接收机状态寄存器PayloadCrcError应检查分组有效载荷的完整性。
6如果已收到有效的数据包有效负载,则应读取FIFO(请参阅下面的有效负载数据提取)。如果需要触发随后的单个数据包接收,则必须重新选择RXSINGLE操作模式以再次启动接收过程-注意将SPI指针(FifoAddrPtr)重置为内存中的基本位置(FifoRxBaseAddr)。
连续接收模式:
在连续接收模式下,调制解调器连续扫描信道以获取前同步码。 每次检测到前同步码时,调制解调器都会对其进行检测和跟踪,直到接收到数据包,然后继续等待下一个前同步码。如果前同步码长度超过寄存器RegPreambleMsb和RegPreambleLsb(以符号周期为单位)设置的预期值,则该前同步码 将被删除,并且重新开始搜索前导。 但是,这种情况不会被中断标记。 与单次RX模式相反,在连续RX模式下,当产生超时中断时,设备将不会进入待机模式。 在这种情况下,用户仅需在设备继续等待有效前同步码的同时清除中断即可。
同样重要的是要注意,已解调的字节按接收到的顺序写入数据缓冲存储器。意思是,新数据包的第一个字节紧接在前一个数据包的最后一个字节之后。只要启用了此模式,就不会重置RX调制解调器地址指针。因此,有必要对同伴微控制器来处理地址指针,以确保FIFO数据缓冲器是永不满足。
在连续模式下,接收到的数据包处理顺序如下。
1在睡眠或待机模式下,选择RXCONT模式。
2接收到有效的报头CRC后,将设置RxDone中断。无线电保持在RXCONT模式,等待下一个RX LoRaTM数据包。
3应该检查PayloadCrcError标志的数据包完整性。
4如果已正确接收到数据包,则可以读取FIFO数据缓冲区(请参见下文)。
5可以重复接收过程(步骤2-4)或按需要退出接收器操作模式。
在连续模式下,状态信息仅适用于收到的最后一个数据包,即在下一个RxDone到达之前应读取相应的寄存器。
从FIFO中提取有效载荷数据
为了从FIFO检索接收到的数据,用户必须确保未声明状态寄存器RegIrqFlags中的ValidHeader,PayloadCrcError,RxDone和RxTimeout中断,以确保成功终止数据包接收(即不应设置任何标志)。
如果出现错误,应跳过以下步骤,并丢弃数据包。为了从中检索有效的接收数据
用户必须先入先出:
- RegRxNbBytes表示到目前为止已接收的字节数。
- RegFifoAddrPtr是动态指针,它精确指示Lora调制解调器接收的数据已写入的位置
至。 - 将RegFifoAddrPtr设置为RegFifoRxCurrentAddr。这会将FIFO指针设置为接收到的最后一个数据包的位置
FIFO。然后可以通过读取寄存器RegFifo,RegRxNbBytes时间来提取有效负载。 - 或者,可以从当前位置的开头手动指向最后收到的数据包的位置
数据包,方法是将RegFifoAddrPtr设置为RegFifoRxByteAddr减去RegRxNbBytes。然后可以通过读取RegFifo地址RegRxNbBytes次从FIFO中读取有效载荷字节
基于序言开始的数据包过滤
软件数据包过滤过程遵循以下步骤:
- 每次接收到RxDone中断时,将RegFifoRxByteAddr [7:0]寄存器的内容锁存到一个变量中,该变量将称为start_address。 SX1276 / 77/78的RegFifoRxByteAddr [7:0]寄存器实时提供接收LoRa调制解调器写入数据缓冲区的最后一个字节的地址+ 1(或将写入下一个字节的地址)。 。因此,通过这样做,我们确保变量start_address始终包含下一个数据包的起始地址。
- 在收到中断ValidHeader之后,开始轮询RegFifoRxByteAddr [7:0]寄存器,直到它开始递增。该寄存器增加的速度取决于扩展因子,纠错码和调制带宽。 (请注意,此中断仍在隐式模式下生成)。
- 一旦RegFifoRxByteAddr [7:0]> =起始地址+ 4,则前4个字节(地址)将存储在FIFO数据缓冲区中。可以对它们进行读取和测试,以查看数据包是否以无线电为目的地,并保持在Rx模式下以接收数据包,或者如果没有则返回睡眠模式。
接收超时处理:
在单一的或连续的LoRaTM接收模式下,都可以使用接收器超时功能,该功能允许接收器在生成指示没有接收到有效数据包的中断信号之前侦听预定的时间段。 计时器是绝对计时器,一旦将无线电设置为单接收或连续接收模式便开始计时。 中断本身RxTimeout可以在中断寄存器RegIrqFlags中找到。 在Rx Single模式下,中断发生后,设备将立即返回待机模式,并且需要清除中断后才能返回Rx Single模式。 在Rx连续模式下,中断将简单地引发,但设备将保持在Rx连续模式下。 因此,在仍处于“接收连续”模式下,伴随微控制器有责任清除中断。 编程的超时值表示为符号周期的倍数,并由下式给出:
TimeOut = LoraRxTimeout * Ts
通道活动检测(CAD)
扩频调制技术的使用在确定信道是否已经被可能低于接收机的本底噪声的信号使用中提出了挑战。 在这种情况下使用RSSI显然是不可行的。 为此,通道活动检测器用于检测其他LoRaTM信号的存在。 图11显示了通道活动检测(CAD)流程:
CAD 工作原理 (Principle of Operation)
信道活动检测模式旨在以最佳功率效率检测无线电信道上的LoRa前导。一旦进入CAD模式,SX1276 / 77/78将对频段进行快速扫描以检测LoRa数据包的前同步码。
在CAD期间,发生以下操作:
- PLL锁定
- 无线电接收器从信道捕获数据的LoRa前导符号。在那期间的无线电电流消耗
相位对应于指定的Rx模式电流 - 无线电接收器和PLL关闭,并且调制解调器数字处理开始。
- 调制解调器搜索无线电捕获的样本和理想的前同步码波形之间的相关性。该相关过程花费的时间少于符号周期。该阶段的无线电电流消耗大大降低。
- 一旦计算完成,调制解调器将生成CadDone中断。如果关联成功,则同时生成CadDetected。
- 芯片返回待机模式。
- 如果检测到前同步码,请清除中断,然后通过将无线电置于RX单模式或RX连续模式来启动接收。
通道活动检测所需的时间取决于所使用的LoRa调制设置。 对于给定的配置,下图显示了典型的CAD检测时间(CAD时间与扩展因子的关系),表示为LoRa符号周期的倍数。 在此期间,无线电处于(2SF + 32)/ BW秒的接收器模式。 在其余的CAD周期中,无线电处于降低的消耗状态。
为了说明此过程以及每种模式下的消耗情况,CAD过程遵循以下概述的事件顺序:
然后,接收器处于完全接收器模式,仅进行一半以上的活动检测,随后进入功耗降低处理阶段,其中功耗随LoRa带宽而变化,如下表所示。
Bandwidth | Full Rx,IDDR)L (mA) | Processing,IDDC_L (mA) |
---|---|---|
7.8 to 41.7 | 11 | 5.2 |
62.5 | 11 | 5.6 |
125 | 11.5 | 6 |
250 | 12.4 | 6.8 |
500 | 13.8 | 8.3 |
注意:在低频端口上使用频段2和3时,这些数字可能会稍低。
数字IO引脚映射
LoRaTM模式下可以使用SX1276 / 77/78的六个通用IO引脚。 它们的映射如下所示,并且取决于寄存器RegDioMapping1和RegDioMapping2的配置。
DIO映射LoRa模式
调制解调器状态指示灯
可通过RegModemStat中的ModemStatus位访问LoRa调制解调器的状态。 它们通常可用于Rx模式下的调试,并且有用的指示器包括:
- 位0:检测到信号表示已检测到有效的LoRa前导
- 位1:“信号已同步”表示已检测到前同步码的末尾,调制解调器处于锁定状态
- 位3:当检测到有效的报头(具有正确的CRC)时,Header Info Valid变为高电平
SPI接口可通过同步全双工协议访问配置寄存器,该协议对应于Motorola / Freescale命名法中的CPOL = 0和CPHA = 0。仅实现从属端。
提供了对寄存器的三种访问模式:
- 单次访问:写访问时发送一个地址字节,后跟一个数据字节,而读访问则发送一个地址字节,接收一个读字节。 NSS引脚在帧开始时变为低电平,并在数据字节之后变为高电平。
- 突发访问:地址字节后跟几个数据字节。地址在内部自动递增
每个数据字节之间。此模式可用于读取和写入访问。 NSS引脚在
帧的开始,并在每个字节之间保持低电平。仅在最后一个字节传输后,它才变为高电平。 - FIFO访问:如果地址字节对应于FIFO的地址,则随后的数据字节将寻址FIFO。该地址不会自动递增,但会被存储,因此不需要在每个数据字节之间发送。 NSS引脚在帧开始时变为低电平,并在每个字节之间保持低电平。仅在最后一个字节传输后,它才变为高电平。
下图显示了对寄存器的典型SPI单次访问:
MOSI由主机在SCK的下降沿产生,并由从机(即此SPI接口)在SCK的上升沿采样。 从器件在SCK的下降沿产生MISO。始终通过NSS引脚变为低电平开始传输。 当NSS为高时,MISO为高阻抗。第一个字节为地址字节。 它包括:
- wnr位,写访问权限为1,读访问权限为0。
- 然后是地址的7位,MSB在前。
第二个字节是数据字节,如果是写访问,则由主机在MOSI上发送;如果是读访问,则由主机在MISO上接收。 数据字节先发送MSB,随后的字节可以通过MOSI发送(用于写访问)或通过MISO接收(用于读访问),而不会使NSS上升沿并重新发送地址。 在FIFO模式下,如果该地址是FIFO地址,则将在FIFO地址处写入/读取字节。 在突发模式下,如果该地址不是FIFO地址,则对于每个收到的新字节,该地址都会自动递增。当NSS变高时,帧结束。 下一个帧必须以地址字节开头。 因此,单访问模式是FIFO /突发模式的一种特殊情况,仅传输1个数据字节。在写访问期间,MISO线上从从设备传输到主设备的字节是写操作之前已写寄存器的值 。
芯片复位:
上电时会触发SX1276 / 77/78的上电复位,此外,可以通过控制引脚7进行手动复位。
如果应用程序要求从SX1276 / 77/78断开VDD,尽管睡眠模式电流极低,则用户应在POR周期结束后等待10 ms,然后才能开始通过SPI总线进行通信。 在POR序列期间,引脚7(NRESET)应悬空。
请注意,任何CLKOUT活动也可用于检测芯片是否就绪。
ps:POR(Power-On Reset)为单片机的上电复位的简写,与BOD(Brown-Out Detector)(电源电压检测)一样,一般为单片机内置,只需给予一个上拉电阻就可以,不必使用外部复位IC。同PIC一样可重设启动复位。
下图为POR时序图:
手动复位(Manual Reset)
即使对于无法物理断开VDD的应用,也可以手动复位SX1276 / 77/78。 引脚7应拉低100微秒,然后释放。 然后,用户应等待5 ms,然后再使用芯片。
当引脚7被驱动为低电平时,在VDD上可以看到高达1毫安的过电流消耗。
下图为Manual Reset时序图:
为了定义不同的序列或场景,一个用户可编程的状态机称为顶层序列器(简称为Sequencer),可以自动控制芯片模式.
最佳音序器:聆听模式
在这种情况下,电路大部分时间都处于空闲模式,在此期间仅RC振荡器处于开启状态。 接收器会定期唤醒,并寻找输入信号。 如果检测到有用信号,则接收机保持打开状态并分析数据。否则,如果没有有用信号的规定的时间内,接收器被关闭,直到下一个接收期.在监听模式下,无线电停留在低功耗模式下的时间最多,导致非常低的平均功耗 。下图给出了这种情况的一般时序图。
在数据包接收时会产生一个中断请求。 然后,用户可以采取适当的措施。
根据应用程序和环境,有几种方法可以实现侦听模式:
在PreambleDetect中断上唤醒
在SyncAddress中断上唤醒
在PayloadReady中断中唤醒
最佳音序器:信标模式
在这种模式下,周期性地发送重复消息。如果有效载荷发送总是相同的,并且PayloadLength比FIFO的大小越小,一起使用在RegPacketConfig2的BeaconOn位与定序许可证来实现,无需任何用户干预的周期性信标。
最后
以上就是无私汽车为你收集整理的stm32L05k8u6调试SX127X Lora模块记录1.常用术语的全部内容,希望文章能够帮你解决stm32L05k8u6调试SX127X Lora模块记录1.常用术语所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复