LoRaWAN网络编程规范与帧格式详解

需积分: 50 35 下载量 52 浏览量 更新于2024-08-06 收藏 714KB PDF 举报
"文档约定-Windows Sockets网络编程PDF与LoRaWAN协议中文版" 本文主要涉及两个主题:Windows Sockets网络编程的基本约定和LoRaWAN协议的详细规范。 在Windows Sockets网络编程中,文档约定对于理解和实现网络通信至关重要。在描述中提到的文档约定,主要是关于MAC命令格式、位和位域、常量以及变量的表示方式。例如,MAC命令如LinkCheckReq用粗斜体表示,位和位域如FRMPayload用粗体,常量如RECEIVE_DELAY1则使用非粗非斜体,而变量如N用斜体。此外,文档还规定了所有多字节字段的字节序使用小端模式,这是一种在计算机存储和处理数据时的字节顺序,确保不同架构系统间的数据交换一致性。EUI(扩展唯一标识符)是8字节字段,它以小端模式传输,这意味着低字节存储在内存地址较低的位置。默认情况下,所有未定义的RFU(保留位)都被设置为0,这是为了保持数据的完整性。 接下来,我们转向LoRaWAN协议,这是一种针对低功耗广域网络(LPWAN)的开放标准。LoRaWAN协议定义了设备如何通过长距离、低功耗的LoRa调制技术进行通信。文档首先介绍了LoRaWAN的类(Classes),包括Class A、B和C,这些类定义了终端设备的通信模式。Class A是最基本的形式,允许双向通信,但仅在发送后短暂的接收窗口内接收数据;Class B增加了预定的接收窗口;Class C则几乎始终处于接收模式,只有在充电时才关闭接收。 LoRaWAN协议详细描述了PHY帧和MAC帧的格式,包括上行和下行消息,以及接收窗口的工作机制。接收窗口分为第一和第二接收窗口,每个窗口有特定的信道、数据速率和启动条件。在接收窗口期间,节点需要处理接收到的信息,并可能对网络发送的消息做出响应。MAC帧包含MHDR字段,定义了消息的主版本和类型,以及MACPayload,其中包括FHDR、FPort和FRMPayload等部分。FHDR用于携带设备地址和其他控制信息,FPort指定应用数据所在的端口,而FRMPayload是实际的MAC命令或应用数据。 MAC命令是LoRaWAN中的一个重要组成部分,包括LinkCheckReq和LinkCheckAns用于链路质量检查,LinkADRReq和LinkADRAns用于调整链路数据速率和功率,DutyCycleReq和DutyCycleAns用于管理终端的发射占空比,RXParamSetupReq和RXParamSetupAns用于设置接收参数,DevStatusReq和DevStatusAns用于获取设备状态,以及NewChannelReq、NewChannelAns、DlChannelReq和DlChannelAns用于创建和修改信道参数。 这些约定和规范确保了LoRaWAN网络的高效、可靠和安全通信,同时也为开发者提供了详细的指南,帮助他们实现符合标准的LoRaWAN设备和网络服务。