我正在构建一个 Lora 网络,其中包含两个 SX1278 模块和 Arduino Uno。Lora 基于三个类。A , B 和 C, 问题是:为了实现 B 类,是否需要更改 Lora 模块寄存器?!或者班级之间的差异只是他们相互交流的时间? 如果你有源代码,它真的会让生活更轻松。
或实现 B 类,是否需要更改 Lora 模块寄存器?
嗯,是。它需要不时做一个RX窗口。
或者班级之间的差异只是他们相互交流的时间?
一般是的。无线通信中几乎所有节能方法的实现都可能被简化为“只是它们通信之间的时间”的差异——这是一种过度简化。但一般来说,是的,类操纵从网关到信标的下行链路可能的时间。
A类可以随时发送消息,发送后才接收消息。B 类是具有周期性同步接收窗口的 A 类。C 类可以随时接收消息 - 保持 RX 始终打开。
来自lora-allience.org/about-lorawan:
A 类 – 最低功耗的双向终端设备:
所有 LoRaWAN 终端设备必须支持的默认类,A 类通信始终由终端设备发起并且是完全异步的。每个上行链路传输都可以在任何时间发送,然后是两个短的下行链路窗口,为双向通信或网络控制命令(如果需要)提供机会。这是一种 ALOHA 类型的协议。终端设备能够在其自身应用定义的时间内进入低功耗睡眠模式:定期唤醒没有网络要求。这使得 A 类成为最低功耗的工作模式,同时仍允许随时进行上行链路通信。因为下行链路通信必须始终遵循具有终端设备应用程序定义的时间表的上行链路传输,
B 类 – 具有确定性下行链路延迟的双向终端设备:
除了 A 类启动的接收窗口之外,B 类设备还使用周期性信标与网络同步,并在预定时间打开下行链路“ping 时隙”。这为网络提供了发送具有确定性延迟的下行链路通信的能力,但以终端设备中的一些额外功耗为代价。延迟可编程高达 128 秒以适应不同的应用,额外的功耗足够低,仍然适用于电池供电的应用。
C 类 – 最低延迟、双向终端设备:
除了上行链路的 A 类结构后跟两个下行链路窗口之外,C 类结构通过在终端设备不进行传输(半双工)的所有时间保持终端设备的接收器打开,进一步减少了下行链路的延迟。基于此,网络服务器可以在假设终端接收器打开的情况下随时发起下行传输,因此没有延迟。折衷方案是接收器的功率消耗(高达 ~50mW),因此 C 类适用于可提供连续功率的应用。对于电池供电的设备,A 类和 C 类之间的临时模式切换是可能的,并且对于固件无线更新等间歇性任务非常有用。
有什么办法可以给你发消息 PV 以了解有关 LoRA 的更多详细信息?
好吧,你可以在这里写 xd :p
好的:)),我如何实现 LoRa 类?我的意思是,一对 SX1278 足以启动还是需要 sx13xx 模块?!其次,对于更改类,例如将 A 更改为 B,是否需要通过网关发送特殊命令位?还是我应该更改寄存器位?
我应该通过更改命令咬来更改通信类吗?还是我应该自己编写所有协议?第三,对于 B 类,信标格式是否适用于所有 Lora 标准网络?!我的意思是,它是否具有通用格式,还是对每个网络都开放且灵活?第四,什么是 LoraWan 堆栈!?这是设备吗?<<<感谢先进<3>>
how can I implement LoRa classes?
这是非常广泛的 - 如果您希望实现整个堆栈,您很可能应该创办一家公司并雇用更多程序员。务实的答案是你不要,使用现有的实现,比如 LoRaMAC-node。或 mbed。或其他。is a pair of SX1278 enough for start
是的t needs sx13xx modules?
不知道那是什么does it need to send special command bits by gateway?
是的,网关必须知道何时发送数据,配置和时间同步至关重要。Should i change register bits?
不知道 - 我没有阅读 SX1278 规格。