物联网LoRa系列-28:LoRaWAN PingPong终端与Class A/B/C类型终端不能互通的原因与解决办法
在LoRa终端与LoRa网关和服务器联调之前,有时候需要通过相对简单的PingPong终端序给Class A/B/C类型的终端发送数据,以验证Class A/B/C终端可以正常收发数据包。然而原生提供的 PingPong与Class A/B/C类型终端之间是无法发送数据帧的。
经过一番深入调研,发现主要有如下的几个原因,导致这两种应用程序之间无法发送物理层的帧,解决了这些问题,会对LoRa的射频芯片的物理层和相应的软件驱动程序有一个更加深入的理解。
先总结如下:
一. RF层
原因1:频点
问题原因:
PingPoing测试应用程序采用的TDD的模式,上下行采用了相同的频点,如470300000。
Class A/B/C的470频带,采用是的FDD模式,上行的发送频率是470300000,而下行的接收频点为:
CN470_FIRST_RX1_CHANNEL 500300000
CN470_RX_WND_2_FREQ 505300000
解决办法:
- 修改PingPoing的接收和发送频点到500300000
#define RF_FREQUENCY 500300000 //470300000 // Hz
原因2:频点变化
PingPoing采用单一频点,且采用了相同的频点:470300000
CN470 Band,26M主频时,上行发送有连续的96个频点,下行接收有连续的48个频点。
因此,因此PingPoing的发送的数据,Class A/B/C类型终端肯定收不到。
解决办法:
固定化Class A/B/C类型终端的接收频点:
bool RegionCN470RxConfig( RxConfigParams_t* rxConfig, int8_t* datarate )
{
//frequency = CN470_FIRST_RX1_CHANNEL + ( rxConfig->Channel % 48 ) * CN470_STEPWIDTH_RX1_CHANNEL;
frequency = CN470_FIRST_RX1_CHANNEL + CN470_STEPWIDTH_RX1_CHANNEL;
}
二. 调制解调层
无
三. LoRa物理层
原因1: LoRa同步字
PingPong终端程序使用了默认的LoRa同步字:,属于private network的配置。
#define LORA_MAC_PRIVATE_SYNCWORD 0x1424
LoRaWAN的终端,采用的是公网的配置:
#define LORA_MAC_PUBLIC_SYNCWORD 0x3444
解决方法:
在main()函数中增加对public network下同步字的设定,代替默认的配置。
Radio.SetPublicNetwork(1);
原因2: IQ翻转
PingPong终端程序的IQ翻转未使能。
ClassA-C终端的的IQ翻转使能。
解决办法:
PingPong终端程序的IQ翻转使能。
#define LORA_IQ_INVERSION_FLAG 1 // from 0 t0 1
Radio.SetTxConfig(
MODEM_LORA,
TX_OUTPUT_POWER,
LORA_FDEV_NA,
LORA_BANDWIDTH,
LORA_SPREADING_FACTOR,
LORA_CODINGRATE,
LORA_PHY_PREAMBLE_LENGTH,
LORA_PHY_PAYLOAD_LENGTH_FLAG,
LORA_PHY_PAYLOAD_CRC_FLAG,
LORA_FREQ_HOP_FLAG,
LORA_FREQ_HOP_PERIOD,
LORA_IQ_INVERSION_FLAG,
TX_TIMEOUT_VALUE);
四. 数据包的收发控制
原因1:发送与接收窗口不对齐
PingPong终端程序定时发送,如5s。
ClassA-C有一定的接收窗口,即使classC, 其实也并不是一直设置在Rx模式。
解决办法:
case DEVICE_STATE_CYCLE:
{
printf("state: DEVICE_STATE_CYCLE=%d\r\n", DeviceState);
printf("Turn Rx on\r\n");
Radio.Rx(0); //确保class 终端,出发发送外,其他时间一直处于接收状态。
DeviceState = DEVICE_STATE_SLEEP;
// Schedule next packet transmission
TimerSetValue( &TxNextPacketTimer, TxDutyCycleTime );
TimerStart( &TxNextPacketTimer );
break;
}
后记:
(1)解决了上述问题,LoRaWAN PingPong终端就可以向Class A/B/C类型终端发送数据。
(2)数据的发送只停留在物理层的值,并没有在MAC层进行加密和解密。因此只限于物理层之间的通信
物联网LoRa系列-28:LoRaWAN PingPong终端与Class A/B/C类型终端不能互通的原因与解决办法相关推荐
- 物联网LoRa系列-32:LoRaWAN无线智能水表如何进行水量数据采集?脉冲采集、双干簧管、磁性元件、光电转换、霍尔元件
目录 1. 无线远传智能水表概述 2. 常用智能水表的发展与类型 3. 智能水表数据的采集的基本原理 3.1 光电转换型原理 3.2 双干簧管数据采集的基本原理 3.3 霍尔元件型原理 4. 干簧管脉 ...
- 物联网LoRa系列-24:LoRa终端--PingPong应用程序常见问题解析
前言: 前面对LoRa终端的各种技术的拆解, 从技术的内容角度看,主要是包括LoRa的SX1261/SX1262终端的硬件设计.SX1261/SX1262芯片资料的解读.以及PingPong应用程序的 ...
- 物联网LoRa系列-30:LoRaWAN A类/C类终端的载波信道资源与时间资源上下行调度算法
前言: 本文将从频率.时间这两个资源的角度,来剖析LoRaWAN A类/C类终端的信道选择算法与代码实现示例. 不同的地区的频段,有不同的规范要求,算法有所差异,本文将以中国区的470M频段为例进行拆 ...
- 物联网LoRa系列-11:LoRa终端--基于物理层协议的PingPong应用程序的软件架构
至此,我们已经搭建好LoRa终端的软硬件开发环境,接下来,将解构和实现LoRa终端的应用程序. LoRa终端的应用程序,(1)可以直接基于LoRa的物理层协议(LoRa芯片实现):(2)也可以基于Lo ...
- 物联网LoRa系列-15:图解、详解无线终端的天线对无线电磁波的发送与接收
前言: 任何一个无线射频设备,都离不开天线,它负责发送和接收来自空中的电磁辐射,或者说电磁波. 在发送方向,天线能够把射频设备的产生的高频率的电流信号,转换电磁波,并发送到空气中进行传播. 在接收方向 ...
- 关于三星某些系列笔记本电脑无法安装Windows10的原因及解决办法
最近,微软发布了Windows10的正式版,然而在之前的预览版和此次的正式版上都存在一个问题就是无法在三星RV411,R429,R428,Q430等系列笔记本上安装(目前个人倾向把此问题的责任归咎于微 ...
- 物联网LoRa系列-26:LoRaWAN Class A/B/C类型终端的软件架构
前言: 本文是在了解LoRoWAN协议的基础之上,对LoRa Class A/B/C终端的通用的软件实现架构进行拆解. 从软件架构的角度拆解LoRa Class A/B/C终端的软件功能实体之间的关系 ...
- 物联网LoRa系列-4:LoRa终端射频芯片SX1268、SX1278、SX1262对比与选择
1. 产品简述 LoRa的射频芯片主要分两大类,一类是LoRa终端射频芯片,另一类是LoRa基站/网关射频芯片. LoRa终端射频芯片目前有三款:SX1278.SX12786.SX1262: LoRa ...
- 物联网LoRa系列-12:LoRa终端--数据发送和接收的整个过程
在上文<全面拆解和构建5G物联网-11:LoRa终端--基于物理层协议的PingPong应用程序的软件架构>中,我们已经通过开发板提供商提供的软件工程文件,在两个LoRa节点之间进行了点对 ...
最新文章
- Spring Cloud第二篇:服务消费者RestTemplate+Ribbon
- 全球著名音乐抓轨软件EAC 设置详解
- 两圆重叠问题你会求解吗?这个问题的准确答案,德国数学家最近才找到
- pip错误:TypeError: parse() got an unexpected keyword argument 'transport_encoding'
- java 初始化二维数组_java二维数组的常见初始化
- Linux文件默认权限和umask笔记
- oracle数据库安装过程中出现主目录不兼容的问题
- HDUOJ---老人是真饿了
- 干货 | 语音识别类产品细分及其应用场景
- 有序序列的二分查找、冒泡排序、归并排序算法实战解析
- [渝粤教育] 西南科技大学 管理学原理 在线考试复习资料(3)
- 悦诗风吟网络营销的目标_睫毛膏营销策划方案
- typora下载安装步骤
- 百度收录-如何使用API提交
- 栋的月结 | 第三回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)[含泪总结.. 憋泪分享!]
- Chrome 扩展 Pomodoro 开发小结
- 根据身份证号回填信息
- 信号系统服务器,轨道交通信号系统知识介绍
- mysql 索引底层数据结构与算法
- Linux shell中进制转换