文章目录
下面给出github上的地址。
https://github.com/Lora-net/packet_forwarder
1 架构介绍
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.下面是一位行业大佬配置的
有一个地方是我们自己要根据自己部署的服务器而修改的。
- gateway_id:chirpstack应用服务器生成的那个。
server_address:自己服务器部署主机的ip,这里我是部署在腾讯云服务器上的。
另外根据自己网关的设备情况,修改自己的交叉编译器。