LoRa无线通信设计(一)原理

引言

1901年,古列尔默.马可尼把长波无线电信号从Cornwall(康沃尔,位于英国的西南部)跨过大西洋传送到3200公里之外的Newfoundland(加拿大的纽芬兰岛)。至此人类进入了无线通信时代。

100多年来。无线技术的发展为人类带来了无线电、电视、移动电话和通信卫星。

近20年。最让人们深刻感受的是移动通信。手机差点儿成为人们的一个器官,用它便捷接入Internet。

无线通信具有一些天生优势:投入成本低,扩展灵活性大,跨越空间阻碍。我们猜測下面将成为未来的趋势:

l 市电供电的设备(电视机、音响等)採用诸如UWB之类的快速短距离无线,

l 电池供电的设备(能耗表计。自行车等)将会採用微功率无线,

l 手持设备(手机。平板电脑等)继续使用4G/5G的移动通信技术。

更大胆的猜測是。随着生物识别技术、大容量储能和柔性屏幕材料突破,显示和通信将会无处不在,手机能够会消失,付款按指纹就可以。

是时候,让我们一起揭开无线通信的神奇面纱,了解下原理。接触一个即将来临身边的微功率无线通信。

一、      无线通信原理

在通信系统中。我们须要弄清模拟和数字的关系:一个模拟信号就是一个连续变化的电磁波,一个数字信号是一个电压脉冲序列。看一个实例。下图选自经典教材《无线通信与网络(第二版)》。电话通信是典型的模拟数据(声波)通过模拟信号传输;家庭宽带拔号上网是典型的数字数据(计算机仅仅能处理数字信号)通过模拟信号(由“猫”完毕调制)传输,同一时候模拟信号也能够转换成数字信号(由“猫”完毕解调);计算机局域共享则是典型的数字数据通过数字信号传输。

通信信号的第一个“敌人”是噪声,例如以下图所看到的,噪声会影响数字位,足以将1变为0,或将0变为1。

无线传播主要有3种类型:地波传播、天波传播和直线传播,例如以下图所看到的。

无线信号除直线传播外。由于阻碍物的存在,还会发现例如以下图所看到的的3种传播机制:反射(R)、散射(S)和衍射(D),由于传输路径的不同而引起多径衰退是无线通信的一个挑战。

由于电磁波是连续的模拟信号。无线通信中数字数据都须要调制成模拟信号,常见的方法有:ASK(幅移键控)、FSK(频移键控)和PSK(相移键控)。例如以下图所看到的。

二、      LoRa扩频通信

1944年,好莱坞26岁女影星HedyLamarr(号称世界上最漂亮的女人)发明了扩频通信技术,这样的跳频技术能够有效地抗击干扰和实现加密。

后来人们发现,扩频技术能够得到例如以下收益:从各种类型的噪声和多径失真中获得免疫性;得到信噪比的增益。换句话说,使用扩频通信抗干扰性更强,通信距离更远。

CDMA和WiFi都使用了扩频技术。

扩频调制的示意图例如以下所看到的,用户数据的原始信号与扩展编码位流进行XOR(异或)运算。生成发送信号流,这样的调制带来的影响是传输信号的带宽有显著添加(扩展了频谱)。

当然扩频技术也不是万能的。它至少有2个弊端:扩展编码调制生成很多其它片的数据流导致通信数据率下降。较复杂的调制和解调机制。



长期以来,要提高通信距离经常使用的办法是提高发射功率。同一时候也带来很多其它的能耗。电池供电的设备(如水表)一般仅仅能使用微功率无线通信,这样一来就限制了其通信距离。如今。SemTech公司推出的LoRa射频。由于採用了扩频调制技术,从而在同等的功耗下取得更远的通信距离。

2013年SemTech公司推出SX1276/8系列的扩频调制射频芯片,它的实现方式很巧妙。整个解调器引擎仅仅须要50K个门。功耗低:休眠电流0.2uA。接收电流12mA。发射电流29mA@13dBm,和常见的GFSK芯片Si4438和CC1125接近,可是通信距离是GFSK芯片的3倍。

附带说一句,我们国人在IT技术上最大的弱项是硬件呀,基本上IC(集中电路)芯片都靠进口。

SemTech公司官方宣称该芯片能够达到:可视距离15kM。城市环境中3kM的通信距离。

依据我们的实測数据:SX1278在1kbps的速率下能够单跳覆盖一个5000多户的小区。这意味着。使用简单的星型组网就能够建立LoRa微功率网络,而GFSK调制的芯片经常须要树型或MESH等复杂的路由网络。

同一时候。依据我们的使用经验,发现LoRa射频芯片至少有2个弊端:首先。通信速率低。它真正与GFSK拉开通信距离差距的速率都低于1kbps。这意味着LoRa主要用于低速率通信,如传感器数据;另外。1.5~2美金的售价比GFSK芯片高出很多。给产品带来高成本。

了解与下载很多其它的LoRa资料请链接:http://www.rimelink.com/col.jsp?id=105

三、      iWL881A的设计

iWL881A无线通信模块是“长沙市锐米通信科技有限公司(www.rimelink.com)”的LoRa长距离低功耗产品(例如以下图),它内嵌高效强大的物联网操作系统Contiki,支持星型/树型/MESH网络。与公司的集中器和云server组成“端管云”系统。典型应用场景为:居民抄表(水/电/气)、路灯控制、工厂採集、安全报警等。

该款微功耗无线通信产品应用场景基本由电池供电。因此低功耗设计成了首个“主战场”。MCU选用了ST公司超低功耗处理器STM8L151C8。射频芯片(RF)使用Semtech公司SX1278。

该产品具备超低功耗,待机功耗仅为0.6uA。接收功耗约16mA,超长距离发射功耗约100mA。

详细測试数据能够參考博文《MCU低功耗设计(三)产品》:

http://blog.csdn.net/jiangjunjie_2005/article/details/47700597

MCU与RF通过SPI总线连接,此外另一些控制引脚。SX1278硬件原理图例如以下:RF通过DIO0~5引脚给MCU发通知信号。NSS /SCK / MISO / MOSI是SPI总线,NRRST是MCU复位RF的引脚。

很多其它的介绍与技术支持请链接:http://www.rimelink.com/nd.jsp?id=32&_np=105_315

四、      Contiki操作系统

由于功耗、成本和尺寸等因素的限制,微功率无线通信产品一般仅仅能使用资源受限的MCU。同一时候,节能技术的实现。网络协议栈的支持。一样须要实现。

这时。就极为须要一个节省内存、支持多种网络协议栈、可裁剪的操作系统。

Contiki就是一个比較理想的无线通信产品操作系统,它很节省内存,丰富的无线通信协议原语,小巧有用的Coffee文件系统,可灵活更换的动态链接库,支持IPPv4和IPv6协议栈,由ASNI C语言实现,开源免费。

随着物联网的快速发展,Contiki可能会成为一个普及度十分高的物联网操作系统。如同Linux一样。

免费下载Contiki源码+原理+功能+编程+移植+驱动+网络。

请链接:http://www.rimelink.com/nd.jsp?

id=31&_np=105_315

假设您对于用Contiki设计无线通信产品,请參考下面博文:

Contiki经典论文:http://blog.csdn.net/jiangjunjie_2005/article/details/44274209

Contiki移植:http://blog.csdn.net/jiangjunjie_2005/article/details/44656389

Contiki内核原理:http://blog.csdn.net/jiangjunjie_2005/article/details/44684811

Contiki开发要点:http://blog.csdn.net/jiangjunjie_2005/article/details/44725997

Contiki协议栈:http://blog.csdn.net/jiangjunjie_2005/article/details/45932571

Contiki经常使用数据结构:

http://blog.csdn.net/jiangjunjie_2005/article/details/46385453

rtimer原理与移植:

http://blog.csdn.net/jiangjunjie_2005/article/details/44947899

解析Contiki系统protothread的预编译C代码:

http://blog.csdn.net/jiangjunjie_2005/article/details/44600365

欢迎增加“LoRaWAN论坛”http://lora.timeddd.com/forum.php

LoRa无线通信设计(一)原理的更多相关文章

  1. paip.自适应网页设计 同 响应 与设计的原理的差and实践总结

    paip.自适应网页设计 同 响应 与设计的原理的差and实践总结 响应式Web设计(Responsive Web design)的理念是: 1 #-----------自适应布局VS响应式布局 2 ...

  2. kafka知识体系-kafka设计和原理分析

    kafka设计和原理分析 kafka在1.0版本以前,官方主要定义为分布式多分区多副本的消息队列,而1.0后定义为分布式流处理平台,就是说处理传递消息外,kafka还能进行流式计算,类似Strom和S ...

  3. dubbo源码解析五 --- 集群容错架构设计与原理分析

    欢迎来我的 Star Followers 后期后继续更新Dubbo别的文章 Dubbo 源码分析系列之一环境搭建 博客园 Dubbo 入门之二 --- 项目结构解析 博客园 Dubbo 源码分析系列之 ...

  4. Atitit.struts排除url 的设计and 原理 自定义filter 排除特定url

    Atitit.struts排除url 的设计and 原理 自定义filter 排除特定url 1.1. 原理流程1 2. Invoke1 3. StrutsX2 1.1. 原理流程 读取struts配 ...

  5. MySQL Cluster 与 MongoDB 复制群集分片设计及原理

    分布式数据库计算涉及到分布式事务.数据分布.数据收敛计算等等要求 分布式数据库能实现高安全.高性能.高可用等特征,当然也带来了高成本(固定成本及运营成本),我们通过MongoDB及MySQL Clus ...

  6. 深入理解Kafka核心设计及原理(三):消费者

    转载请注明出处:https://www.cnblogs.com/zjdxr-up/p/16114877.html 深入理解Kafka核心设计及原理(一):初识Kafka 深入理解Kafka核心设计及原 ...

  7. 深入理解Kafka核心设计及原理(四):主题管理

    转载请注明出处:https://www.cnblogs.com/zjdxr-up/p/16124354.html 目录: 4.1创建主题 4.2 优先副本的选举 4.3 分区重分配 4.4 如何选择合 ...

  8. 深入理解Kafka核心设计及原理(五):消息存储

    转载请注明出处:https://www.cnblogs.com/zjdxr-up/p/16127749.html 目录: 5.1文件目录布局 5.2消息压缩 5.3日志索引 5.4日志文件及索引文件分 ...

  9. CPU GPU设计工作原理《转》

    我知道这非常长,可是,我坚持看完了.希望有幸看到这文章并对图形方面有兴趣的朋友,也能坚持看完.一定大有收获.毕竟知道它们究竟是怎么"私下勾搭"的.会有利于我们用程序来指挥它们... ...

随机推荐

  1. Chisel常用命令总结

    Chisel简介 Chisel是Facebook开源的一款lldb调试工具,其实就是对系统lldb命令的封装,开发者可以通过简化的命令更方便的进行调试工作.开源地址:https://github.co ...

  2. c++字符指针

    对于C/C++中的 字符指针和字符数组,总是在碰到的时候无法确定而不得不现场测试,来确定末尾是否包含'\0',函数到底如何使用等等.真是劳民伤财,现在总结一下: 字符指针的赋值 (1)指向一个字符串常 ...

  3. MUI 分享功能(微信、QQ 、朋友圈)

    配置文件:manifest.json plus ->plugins 下边 "share": {/*配置应用使用分享功能,参考http://ask.dcloud.net.cn/ ...

  4. 什么是真正的APM?

    近年来APM行业被越来越多的企业所关注,尤其是在2014年末,NewRelic的成功上市,更加激发了人们对这个行业前景的无限遐想.那么究竟什么是APM?APM的目的是什么?要求我们做什么?有不少企业对 ...

  5. 【BZOJ2004】[Hnoi2010]Bus 公交线路 状压+矩阵乘法

    [BZOJ2004][Hnoi2010]Bus 公交线路 Description 小Z所在的城市有N个公交车站,排列在一条长(N-1)km的直线上,从左到右依次编号为1到N,相邻公交车站间的距离均为1 ...

  6. 【BZOJ5099】[POI2018]Pionek 几何+双指针

    [BZOJ5099][POI2018]Pionek Description 在无限大的二维平面的原点(0,0)放置着一个棋子.你有n条可用的移动指令,每条指令可以用一个二维整数向量表示.每条指令最多只 ...

  7. List<String>和String相互转换

    List<String>转String String Message=""; for (String msg : message) { Message = Messag ...

  8. C++,一些常用的知识点

    用typedef定义数组.指针.结构等类型将带来很大的方便,不仅使程序书写简单而且使意义更为明确,因而增强了可读 性. C++中是用关键字typedef定义一个标识符来代表一种数据类型,该标识符可以象 ...

  9. Mybatis 搭配 阿里druid连接池 连接 oracle 或 mysql

    DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针 ...

  10. [Android] 配置安卓模拟器,使得dex文件不被优化成odex

    最近做一个模块,需要将apk里面加载的dex文件dump出来,所以需要配置让dalvik不要把dex文件优化成odex. 1. 配置build.prop 主要是通过修改文件/system/build. ...