(Spread Spectrum Communication)简称扩频通信,其特点是传输信息所用的带宽远大于信息本身带宽。扩频通信技术在发端以扩频编码进行扩频调制,在收端以相关解调技术收信息,这一过程使其具有诸多优良特性。扩频通信技术是一种信息传输方式,其信号所占有的频带宽度远大于所传信息必需的最小带宽;频带的扩展是通过一个独立的码序列来完成,用编码及调制的方法来实现的,与所传信息数据无关;在接收端则用同样的码进行相关同步接收、解扩及恢复所传信息数据。
又称直接序列扩频,就是直接用具有高码率的码序列在发送端去扩展信号的频谱。而在接收端,用相同的扩频码序列去进行解扩,把的扩频信号还原成原始的信息。使用一串连续的伪随机码(pseudonoise,PN)序列,用相位偏移调制的方法来调制信息。这一串连续的伪随机码称为码片(chips),其每个码的持续时间远小于要调制的信息位。即每个信息位都被频率更高的码片所调制。因此,码片速率远大于信息位速率。DSSS通讯架构中,发送端产生的码片在发送前已经被接收端所获知。接收端可以使用相同的码片来解码接收到的信号,解调用此码片调制过的信号,还原为原来的信息。直接序列扩频通过利用高速率的扩频序列在发射端扩展信号的频谱,而在接收端用相同的扩频码序列进行解扩,把展开的扩频信号还原成原来的信号。
FHSS跳频技术,英文全称“Frequency-Hopping Spread Spectrum”,缩写为FHSS,是无线通讯最常用的扩频方式之一。跳频技术是通过收发双方设备无线传输信号的载波频率按照预定算法或者规律进行离散变化的通信方式,也就是说,无线通信中使用的载波频率受伪随机变化码的控制而随机跳变。 从通信技术的实现方式来说,“跳频技术”是一种用码序列进行多频频移键控的通信方式,也是一种码控载频跳变的通信系统。从时域上来看,跳频信号是一个多频率的频移键控信号;从频域上来看,跳频信号的频谱是一个在很宽频带上以不等间隔随机跳变的。其中:跳频控制器为核心部件,包括跳频图案产生、同步、自适应控制等功能;频合器在跳频控制器的控制下合成所需频率;数据终端包含对数据进行差错控制。与定频通信相比,跳频通信比较隐蔽也难以被截获。只要对方不清楚载频跳变的规律,就很难截获我方的通信内容。同时,跳频通信也具有良好的抗干扰能力,即使有部分频点被干扰,仍能在其他未被干扰的频点上进行正常的通信。由于跳频通信系统是瞬时窄带系统,它易于与其他的窄带通信系统兼容,也就是说,跳频电台可以与常规的窄带电台互通,有利于设备的更新。因为这些优点,跳频技术 被广泛适用于对通讯安全或者通讯干扰具有较高要求的无线领域,低端的应用产品包括无声电话、蓝牙设备、数字宝护神、婴儿监视器、无线摄像枪、移动电话等,中高端应用产品例如手军用电台、卫星电话等.
跳频通信 是最常用的扩频方式之一,其工作原理是指收发双方的载波频率按照预定规律进行离散变化的通信方式,也就是说,通信中使用的载波频率受伪随机变化码的控制而随机跳变。从通信技术的实现方式来说,“跳频”是一种用码序列进行多频频移键控的通信方式,也是一种码控载频跳变的通信系统。
,即带宽,指所占据的宽度;在被用来描述时,带宽是指能够有效通过该信道的信号的最大频带宽度。对于而言,带宽又称为频宽,以(Hz)为单位。例如模拟电话的信号带宽为3100Hz,一个PAL-D电视频道的带宽为8MHz(含保护带宽)。对于而言,带宽是指单位时间内链路能够通过的数据量。例如的B信道带宽为64Kbps。由于数字信号的传输是通过模拟信号的调制完成的,为了与模拟带宽进行区分,数字信道的带宽一般直接用或来描述。带宽在许多应用中都是一个关键的概念。例如在通信中,带宽是占据的频率范围
带宽 可以用来标识信号传输的数据传输能力、标识单位时间内通过链路的数据量、标识显示器的显示能力。1. 在系统又叫,是指在固定的时间可的资料数量,亦即在传输管道中可以传递数据的能力。通常以每秒传送周期或(Hz)来表示。2. 在数字设备中,带宽指单位时间能通过链路的数据量。通常以来表示,即每秒可传输之位数。 带宽目前还没有公认的定义,一般理解有两种,分语境。第一种: 信号具有的频带宽度.信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围.也就是信号的最高频率分量与最低频率分量之差,单位:HZ.譬如,一个由数个正弦波叠加成的方波信号,其最低频率分量是其基频,假定为f =2kHz,其最高频率分量是其7次谐波频率,即7f =7×2=14kHz,因此该信号带宽为7f - f =14-2=12kHz。信道带宽则限定了允许通过该信道的信号下限频率和上限频率,也就是限定了一个频率通带。这里有个关于放大器带宽讲解比较通俗的链接,有兴趣可以了解一下:第二种:在计算机网络中,带宽用来表示网络的通信线路所能传送数据的能力,因此网络带宽 表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”.单位同样是HZ。在网络中有两种不同的速率: 信号(即电磁波)在传输媒体上的传播速率(米/秒,或公里/秒) 计算机向网络发送比特的速率(比特/秒) 这两种速率的意义和单位完全不同。 在理解带宽这个概念之前,我们首先来看一个公式:带宽=时钟频率x总线位数/8,从 公式中我们可以看到,带宽和时钟频率、总线位数是有着非常密切的关系的。其实在一个计 算机系统中,不仅显示器、内存有带宽的概念,在一块板卡上,带宽的概念就更多了,完全 可以说是带宽无处不在。 简单的说,带宽就是传输速率,是指每秒钟传输的最大字节数(MB/S),即每秒处理多少兆字节,高带宽则意味着系统的高处理能力。为了更形象地理解带宽、位宽、时钟频率的关系,我们举个比较形象的例子,工人加工零件,如果一个人干,在大家单个加工速度相同的情况下,肯定不如两个人干的多,带宽就象是加工零件的总数量,位宽仿佛工人数量,时钟工作频率相当于加工单个零件的速度,位宽越宽,时钟频率越高则总线带宽越大,其好处也是显而易见的。
终端 (英语:Computer terminal),是与计算机系统相连的一种输入输出设备,通常离计算机较远。根据功能不同,可分若干类。具有某些处理功能的终端称为灵巧终端或智能终端,这类终端有它自己的微处理器和控制电路;没有此功能的叫做哑终端,它没有微处理器。支持与计算机会话或处理的终端叫交互终端或联机终端。终端其实就是一种,相对于计算机主机而言属于外设,本身并不提供运算处理功能。
基站 是指 一定的、无线电覆盖区域中,通过移动通信交换中心,与移动电话终端之间进行信息传递的无线电收发信电台。说得更通俗一点,基站之间主要负责手机信号的接收和发送,把收集到的信号简单处理之后再传送到移动交换中心,通过交换机等设备的处理,再传送给终端用户,从而实现无线用户的通信功能。
又称、器。网关在以上实现,是复杂的网络互连设备,仅用于两个高层协议不同的。网关既可以用于互连,也可以用于互连。 网关是一种充当转换重任的或设备。使用在不同的、数据格式或语言,甚至完全不同的两种系统之间,网关是一个。与只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同层--应用层。
集中器(Concentrator)是远程的中心管理设备和控制设备,负责定时读取终端数据、系统的命令传送、数据通讯、网络管理、事件记录、数据的横向传输等功能。
网络服务器 是计算机局域网的核心部件。网络操作系统是在网络服务器上运行的,网络服务器的效率直接影响整个网络的效率。因此,一般要用高档计算机或专用服务器计算机作为网络服务器。网络服务器主要有以下4个作用:运行网络操作系统,控制和协调网络中各计算机之间的工作,最大限度地满足用户的要求,并做出响应和处理。存储和管理网络中的共享资源,如数据库、文件、、磁盘空间、、等。为各工作站的应用程序服务,如采用客户/服务器(Client/Server)结构使网络服务器不仅担当网络服务器,而且还担当应用程序服务器。对网络活动进行监督及控制,对网络进行实际管理,分配系统资源,了解和调整系统运行状态,关闭/启动某些资源等。
网络服务器 是高性能计算机,用作网络内用户共享的数据和各种程序的中央存储库。用户在他们的个人电脑、笔记本电脑和设备上保存了大量的程序和文件。当足够多的用户共享相同的资源时,网络服务器就是一个通用系统,可以实现网络资源的共享、存储和管理。 虽然“网络服务器”在二十年前是一个常见的术语,但新千年的趋势是为特定的目的和工作负载设计服务器。尽管这种趋势还在继续,但网络服务器对于需要中央管理器的小型网络来说仍然有很大的用处。 本文着眼于当今网络服务器的含义、它们在网络管理中的作用、如何部署网络服务器以及安全性考虑。 什么是网络服务器? 在鼎盛时期,网络服务器功能强大,足以承载多个程序和大量用户文件。然而,在今天这个虚拟化和强大处理器的时代,名称中的“网络”部分经常被去掉,只剩下通用服务器的概念。 随着时间的推移,计算技术缩小了设备,今天的一些消费类计算机的功能与几十年前的网络服务器一样。虽然它在今天的企业网络中的优先级可能较低,但对大多数组织来说,它仍然是一个至关重要的角色。因为这两种类型的服务器在促进共享数据资源方面扮演着相似的角色,所以现在网络服务器最常与文件服务器混淆。旨在展示网络服务器如何工作以及如何向网络提供资源的图形。由山姆·英格尔斯设计。 网络服务器是如何工作的?当处理敏感的应用程序或文件时,在本地设备上保存进度是一个开始,但是如果您无法访问您的设备怎么办?网络服务器通过托管与网络最相关的文件和程序来解决这个问题,并支持一致的实时访问。 因此,员工或网络客户端可以即时访问重要数据或工具,同时促进用户之间的协作。多个用户可以对同一个程序或文档进行更改,以便在项目过程中继续开发。通过安全登录,远程用户可以连接到家庭网络。 在上图中,圆圈代表一个组织网络,其中网络服务器促进网络客户端(设备)之间的协作和文件共享。 网络和文件服务器:一个豆荚里的两颗豌豆 网络和文件服务器被混淆是理所当然的,因为它们扮演着相似的角色,并且是早期网络的基础。网络和文件服务器都是网络客户端和资源的中介和主机。 网络服务器如何变化 网络服务器——作为最接近通用服务器的服务器——在可用性和外观方面继续发展。当今的网络服务器通常有以下几种形式: 物理内部设备 虚拟化网络服务器 网络连接存储(NAS) 基于云的托管 说到本地服务器,请查看我们挑选的2021年顶级机架式服务器。 网络服务器功能 随着企业的发展,依赖电子邮件或本地硬盘存储数据已经不再可行。合理的步骤是拥有一个中心位置来存储文件,并共享对打印机等设备或CRM等应用程序的访问。 因此,网络服务器的作用是为用户提供一组服务和对网络资源的访问。这些功能包括: 网络用户的许可访问和登录 组织对互联网的网关访问 网络资源的集中位置 共享访问网络上的设备,如打印机或扫描仪 托管多用户应用程序,如电子邮件服务器、web应用程序或CRM 戴尔EMC产品营销高级总监Jonathan Seckler表示:“数据使用和内容呈爆炸式增长,对于购买服务器的人来说,需要文件服务器来托管共享文件仍然是一个重要的考虑因素。
是指通过各种协议把曝露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器使用此商业逻辑就像调用对象的一个方法一样。定义随着Internet的发展壮大,“主机/终端”或“客户机/服务器”的传统的应用系统模式已经不能适应新的环境,于是就产生了新的分布式应用系统,相应地,新的开发模式也应运而生,即所谓的“浏览器/服务器”结构、“瘦客户机”模式。应用服务器便是一种实现这种模式核心技术。
搞明白了基础概念之后,就可以了解节点如何工作了。在正式收发数据之前,终端都必须先加网。有两种加网方式:Over-the-Air Activation(空中激活方式 OTAA),Activation by Personalization(独立激活方式 ABP)。商用的LoRaWAN网络一般都是走OTAA激活流程,这样安全性才得以保证。此种方式需要准备 DevEUI,AppEUI,AppKey 这三个参数。
AppEUI 是一个类似IEEE EUI64的全球唯一ID,标识唯一的应用提供者。比如各家的垃圾桶监测应用、烟雾报警器应用等等,都具有自己的唯一ID。
AppKey 是由应用程序拥有者分配给终端。
加网之后,应用数据就被加密处理了。LoRaWAN规定数据帧类型有 Confirmed 或者 Unconfirmed 两种,即 需要应答 和不需要应答类型。厂商可以根据应用需要选择合适的类型。另外,从介绍中可以看到,LoRaWAN设计之初的一大考虑就是要支持应用多样性。除了利用 AppEUI 来划分应用外,在传输时也可以利用 FPort 应用端口来对数据分别处理。FPort 的取值范围是(1~223),由应用层来指定。
我们知道LoRa调制中有扩频因子的概念,不同的扩频因子会有不同的传输距离和传输速率,且对数据传输互不影响。为了扩大LoRaWAN网络容量,在协议上了设计一个LoRa速率自适应(Adaptive data rate - ADR)机制,不同传输距离的设备会根据传输状况,尽可能使用最快的数据速率。这样也使得整体的数据传输更有效率。
LoRa联盟官方在协议之外,还发布了一个配套补充文档《LoRaWAN 地区参数》,这份文档描述了全球不同地区的LoRaWAN具体参数。为了避免新区域的加入而导致文档的变动,因此将地区参数章节从协议规范中剥离出来。这份文档主要讲了LoRaWAN在全球各地区的具体物理层参数,不单单是频段有区别,细化到信道划分,甚至是数据速率,发射功率,最大数据长度等等都有区别。为了方便大家了解总体情况,我又做了个表。
上行链路:终端发射基站接收。下行链路:基站发射终端接收。
是一种数据编码的技术,数据的接收方可以根据编码检查传输过程中的误码。 在 FEC 中,发送者一般在要发送的数据前加上一段冗余的数据,这样接收者就可以根据这些冗余数据和提前设计好的算法发现数据中的误码并且确定具体错误码子的位置,从而纠正错误。
(Acknowledge character)即是确认字符,在数据通信中,接收站发给发送站的一种传输类。表示发来的数据已确认接收无误。
(open source)”这个词,指的是事物规划为可以公开访问的,因此人们可以修改并分享。这个词最初是起源于软件开发中,指的是一种开发软件的特殊形式。但到了今天,“开源”已经泛指一组概念——就是我们称之为的“”。这些概念包括开源项目、产品,或是自发倡导并欢迎开放变化、协作参与、快速原型、公开透明、精英体制以及面向社区开发的原则。
架构介绍
1.1 系统总体
上行链路:网关收到的无线电数据包以及网关添加的元数据转发到服务器。可能还包括网关状态。
下行链路:服务器生成的带有附加元数据的数据包,将由网关在无线电信道上进行传输。可能还包括网关的配置数据。
Concentrator集中器:基于Semtech多通道调制解调器的无线电RX / TX模块(SX130x),收发器(SX135x)和低功耗独立调制解调器(SX127x)。
Host:运行包转发器的嵌入式计算机。驱动通过SPI链接的集中器。
GPS:GNSS接收器,“每秒1脉冲”发送包含时间和时间的NMEA帧地理坐标数据。可选
网关:由至少一个无线电集中器,主机,一些设备组成的设备 ,连接到互联网或专用网络(以太网,3G,Wifi, 微波链接),以及可选的用于同步的GPS接收器。
1.2 上行协议
PUSH_DATA packet
这个包被网关用于打包收到的RF包还有相关的数据,然后发送给服务器。
PUSH_ACK packet
这个包类型被服务器用于立即确认所有收到的PUSH_DATA/
1.3 下行协议
PULL_DATA packet
网关使用该数据包类型来轮询来自服务器的数据。网关必须定期发送PULL_DATA数据包以确保网络
路由保持开放状态,确保数据包能双向流动。
PULL_ACK数据包
服务器使用该数据包类型来确认网络路由为 打开,服务器可以随时发送PULL_RESP数据包。
PULL_RESP
下行的数据包,服务器发给网关的。
TX_ACK
网关对PULL_RESP的应答信息。
2 packer forward(数据包转发器)功能介绍 官方是这么描述packer forward的LoRa数据包转发器是在LoRa网关的主机上运行的程序,该程序将集中器接收的RF数据包通过IP / UDP链接转发到服务器,并发出服务器发送过来的的RF数据包。它还可以发出网络范围的GPS同步信标信号,用于协调网络的所有节点。
关键在这4个文件,下面我们解释以下这4个文件的作用,其中第一个项目包是核心。
3 辅助程序
3.1 util_sink数据包接收器是一个简单的帮助程序,它在单个端口上侦听UDP数据报,并在每次接收到该消息时显示一条消息。数据报本身的内容将被忽略。
3.2 util_ack数据包确认器是一个简单的帮助程序,它在单个UDP端口上侦听并使用PUSH_ACK响应PUSH_DATA数据报,并使用PULL_ACK响应PULL_DATA数据报。
3.3 util_tx_test网络数据包发送器是一个简单的帮助程序,用于通过网关到服务器的下行链路路由发送数据包。该程序首先等待网关向其发送PULL_DATA数据报。之后,它将把指定数量的PULL_RESP数据报发送回网关,每个数据报都包含要立即发送的数据包和可变有效负载。
4 核心程序lora_pkt_fwd这个文件夹下的文件是核心,然后我们主要是配置globlal_conf_json这个配置文件。通过配置这个文件,我们可以连上AS,还有配置频点。cfg给出了拥因为我们是中国频段,CN470-510.下面是一位行业大佬配置的https://github.com/twowinter/packet_forwarder/blob/master/lora_pkt_fwd/cfg/global_conf.json.CN470.basic有一个地方是我们自己要根据自己部署的服务器而修改的。gateway_id:chirpstack应用服务器生成的那个。server_address:自己服务器部署主机的ip,这里我是部署在腾讯云服务器上的。
另外根据自己网关的设备情况,修改自己的交叉编译器
(UserDatagramProtocol)是一个简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息传递,并且UDP层在发送后不会保留UDP 消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。UDP使用具有最小协议机制的简单无连接通信模型。UDP提供数据完整性的校验和,以及用于在数据报的源和目标寻址不同函数的端口号。它没有握手对话,因此将用户的程序暴露在底层网络的任何不可靠的方面。如果在网络接口级别需要纠错功能,应用程序可以使用为此目的设计的传输控制协议(TCP)。
UDP是基于IP的简单协议,不可靠的协议。UDP的优点:简单,轻量化。UDP的缺点:没有流控制,没有应答确认机制,不能解决丢包、重发、错序问题。这里需要注意一点,并不是所有使用UDP协议的应用层都是不可靠的,应用程序可以自己实现可靠的数据传输,通过增加确认和重传机制,所以使用UDP 协议最大的特点就是速度快。
端口号是计算机中的应用程序的一个整数数字标号,用来区分不同的应用程序。 0 ~ 1024 为被系统使用或保留的端口号,0 ~ 65535为有效的端口号,也就是说我们要对一些程序定义端口号的时候,要选择1024 ~ 65535范围内的整数数字。 比如,以前学过的MySQL的端口号是3306,SQLServer的端口号是1433,查了一下Oracle的端口号是1521。 一定要把这些数据库对应的端口号,藏在深深的脑海里,以后在连接数据库的时候,会使用到端口号。
说的通俗一点,通信协议就是网络通信中的规则,分为TCP协议和UDP协议两种。第一种:TCP协议 英文名:Transmission Control Protocol 中文名:传输控制协议协议说明:TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。举例:打电话,需要双方都接通,才能进行对话 特点:效率低,数据传输比较安全 第二种:UDP协议 英文名:User Datagram Protocol 中文名:数据报协议 协议说明:UDP是一种面向无连接的传输层通信协议。 举例:发短信,不需要双方建立连接,But,数据报的大小应限制在64k以内 特点:效率高,数据传输不安全,容易丢包
API 是用于构建应用程序软件的一组子程序定义,协议和工具。一般来说,这是一套明确定义的各种软件组件之间的通信方法。
LORA Getway Bridge
lora-gateway-bridge 负责接收 gateway 通过 发送的 packet-forwarder 数据 然后通过 MQTT broker 将报文转发给 LoRa Server
MQTT(消息队列遥测传输)是 标准(ISO/IEC PRF 20922)下基于/范式的消息协议。它工作在 TCP/IP协议族上,是为低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息,为此,它需要一个。
MQTT是一个基于-的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
LBT功能是用于当网关在传输资料时可以减少对其他无线电设备的干扰,这些设备可能没能在某些国家的无线电法规中强制要求。其工作原理为当LBT启用时,网关会在传输每一个数据封包之前先监视同一通讯频段下的信号功率是否高于预定值。通讯频道频率、频段功率预定、LBT的扫描持续时间以及网关在侦测到闲置频道后可以传输的时间都是自行配置的。
频谱扫描目的在使每一个 Corecell 网关可以定期来监视所设定的ISM 频段,用于基于 SX1302 和 SX1250 位置的先听后听 (LBT) 和频谱扫描,以建立出频段中频率占用的区段和其强度。频谱扫描的操作为指定所要测量频率的起始点和扫描点数,以及应该重复扫描的次数和频率的额外选项。频谱扫描信息可用于识别出特定频道上的干扰问题,然后改变现有的通讯频道规划以供脱离干扰部分的频谱。 log意即日志,通常是系统或者某些软件对已完成的某种处理的记录,以便将来作为参考,它并没有固定的格式,通常是文本文件,可以用记事本打开以查看内容,当然很可能是其它格式,直接打开就是。大部分的log可以从文件名看出它的作用,比如uninstall.log或是error.log,当然前者通常是软件安装过程中生成的记录,以便将来的时候可以提供给卸载程序使用,后者通常是用来记录一些软件运行中的错误信息等等。
这条命令可以一次性配置网关的所有通道(0-9)的频段,band的可用选项有:EU868, US915, EU433, CN780, AU915, AS923, KR920, CN470, CN470Prequel,IN866。
这些选项对应的频段值如下:
在服务器下行信道不通畅时,ABP入网方式是一个较好的选择。这是由于ABP入网方式省略了设备对服务器进行入网请求,以及服务器对设备入网请求的回复信息。每个节点设备会有默认的DevAddr,AppEUI,NwkSKey,AppSKey,将这些信息填入服务器的待入网设备信息中,之后服务器与节点之间的通讯密钥不会再改变。这种激活设备的方式就叫作独立激活方式。
表格 54 入网请求格式
Size (bytes) | 8 | 8 | 2 |
Join Request | AppEUI | DevEUI | DevNonce |
DevNonce 是一个随机值。网络服务器为每个终端记录之前的DevNonce数值,如果相同设备发出相同的 DevNonce 的join request就会忽略。
如果网络服务器准许终端加入网络,就会对 join-request 回复 join-accept 消息。OTAA入网方式是使用的动态密钥,使得设备通讯更加安全,在后面程序中也选用这种方式入网。