LoRaWAN协议解析 第3章 PHY帧格式

1 前言

我正在陆续对《LoRaWAN102》即LoRaWAN协议规范 V1.0.2 版本(2016年7月定稿)协议的各个章节进行翻译。译文之外还对LoRaWAN协议和源码进行了解析,可点此查看帖子LoRa学习笔记_汇总

欢迎同行朋友们留言交流。

本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/

2 梳理解析

LoRaWAN第3章,主要是讲了接收窗口这回事,只要记住张图就行。

目前RX1一般是在上行后1秒开始,RX2是在上行后2秒开始。

3 源码分析

3.1 源码流程

在梳理这章节的对应代码时,自己手动做了张思维导图。有时是这样,代码再有层次感,也不及一个图。好,请收下。

3.2 发送完成就开始RX1和RX2延时

static void OnRadioTxDone( void )
{
	...
	// Setup timers
	if( IsRxWindowsEnabled == true )
	{
		TimerSetValue( &RxWindowTimer1, RxWindow1Delay );
		TimerStart( &RxWindowTimer1 );
		if( LoRaMacDeviceClass != CLASS_C )
		{
			TimerSetValue( &RxWindowTimer2, RxWindow2Delay );
			TimerStart( &RxWindowTimer2 );
		}
		if( ( LoRaMacDeviceClass == CLASS_C ) || ( NodeAckRequested == true ) )
		{
			TimerSetValue( &AckTimeoutTimer, RxWindow2Delay + ACK_TIMEOUT +
											 randr( -ACK_TIMEOUT_RND, ACK_TIMEOUT_RND ) );
			TimerStart( &AckTimeoutTimer );
		}
	}
	...
}

3.3 接收窗口的射频处理

从上面一步,我们已经清晰的知道,对应的处理肯定是在OnRxWindow1TimerEvent和OnRxWindow2TimerEvent中。
这两个接收窗口的处理,会对速率和信道进行设置,按照LoRaWAN协议中文版_配套文件 地区参数(物理层) 中对各地区的要求分别进行处理。

比如这个470的处理,对上行信道对48取余得到下行信道。

RxWindowSetup( LORAMAC_FIRST_RX1_CHANNEL + ( Channel % 48 ) * LORAMAC_STEPWIDTH_RX1_CHANNEL, datarate, bandwidth, symbTimeout, false );

4 End

That’s all.


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值