LoraWAN论坛

标题: lora 跳频 [打印本页]

作者: 陈浪    时间: 2017-5-25 15:17
标题: lora 跳频
大家好,LoRa跳频,芯片资料中介绍 一个检测到 前导码 然后报头 在进行有效数据读取的过程就进行跳频,但是这样的话 不是每次跳频时间之前还需要对lora芯片进行频率的更改,还是怎么配置?


作者: BeyondDream    时间: 2017-5-25 15:38
跳频主要用于北美地区,像美国规定,一个Radio在某信道上的驻留时间,不能超过400ms。
跳频的双方,需要做2件事:同步(即同时切换频率),频率序列(切换相同的频率)。
这一般通过如下完成:
  1. 首先定义一个频率数组:
     const int32_t HoppingFrequencies[] =
     {
      916500000,
      923500000,
      。。。。。。
     }
  2. 通过寄存器 FreqHoppingPeriod 设置跳频周期;
  3. 周期到时,会触发中断 ChangeChannelFhss;
  4. 有一个寄存器 FhssPresentChannel 会累加跳频次数(0 -> 1 -> 2 ->......)
  5. 在中断服务程序里,根据数组 HoppingFrequencies[FhssPresentChannel ],切换下一个频率。

作者: 陈浪    时间: 2017-5-25 15:41
BeyondDream 发表于 2017-5-25 15:38
跳频主要用于北美地区,像美国规定,一个Radio在某信道上的驻留时间,不能超过400ms。
跳频的双方,需要做2 ...

这样的切换 是不是在同一包数据数据中吗?
作者: BeyondDream    时间: 2017-5-25 15:43
是的,跳频是在同一个数据包中完成。
比如,发送一个数据包,需要1200ms,第一part=freq#1,第二part=freq#2, 第三part=freq#3.
作者: 陈浪    时间: 2017-5-25 15:44
BeyondDream 发表于 2017-5-25 15:43
是的,跳频是在同一个数据包中完成。
比如,发送一个数据包,需要1200ms,第一part=freq#1,第二part=freq#2 ...

好的!太感谢了!我需要消化消化
作者: dreamchaser    时间: 2017-5-25 15:57
BeyondDream 发表于 2017-5-25 15:38
跳频主要用于北美地区,像美国规定,一个Radio在某信道上的驻留时间,不能超过400ms。
跳频的双方,需要做2 ...

感谢楼主,好像有点搞懂了
作者: sw51880    时间: 2017-12-27 14:13
BeyondDream 发表于 2017-5-25 15:38
跳频主要用于北美地区,像美国规定,一个Radio在某信道上的驻留时间,不能超过400ms。
跳频的双方,需要做2 ...

你好,在changechannel中断里,调用Radio.SetChannel接口配置频率,还需要做什么?

static void OnRadioFhssChannel(  uint8_t currentChannel  )
{
        Radio.SetChannel( HoppingFreqs[currentChannel] ) ;
}




欢迎光临 LoraWAN论坛 (http://lora.timeddd.com/) Powered by Discuz! X3.3