

# 配置网关的子带和筛选功能
<a name="lorawan-subband-filter-configuration"></a>

LoRaWAN 网关运行 [LoRa Basics Station](https://doc.sm.tc/station) 软件，使网关能够连接到 适用于 LoRaWAN 的 AWS IoT Core。为连接到 适用于 LoRaWAN 的 AWS IoT Core，您的 LoRa 网关首先查询 CUPS 服务器的 LNS 端点，然后建立与该端点的 WebSockets 数据连接。建立连接后，上行链路和下行链路帧便可以通过该连接进行交换。

## 筛选网关接收的 LoRa 数据帧
<a name="lorawan-frequency-channels-subbands"></a>

LoRaWAN 网关建立与端点的连接后， 适用于 LoRaWAN 的 AWS IoT Core 将响应一条 `router_config` 消息，为 LoRa 网关的配置指定一系列参数，其中包括筛选参数 `NetID` 和 `JoinEui`。有关 `router_config` 的更多信息以及如何与 LoRaWAN Network Server (LNS) 建立连接，请参阅 [LNS 协议](https://doc.sm.tc/station/tcproto.html)。

```
{
"msgtype"    : "router_config"
"NetID"      : [ INT, .. ]
"JoinEui"    : [ [INT,INT], .. ] // ranges: beg,end inclusive
"region"     : STRING             // e.g. "EU863", "US902", ..
"hwspec"     : STRING
"freq_range" : [ INT, INT ]       // min, max (hz)
"DRs"        : [ [INT,INT,INT], .. ]   // sf,bw,dnonly
"sx1301_conf": [ SX1301CONF, .. ]
"nocca"      : BOOL
"nodc"       : BOOL
"nodwell"    : BOOL
}
```

这些网关通常通过 Wi-Fi、Ethernet 或蜂窝移动网络等高带宽网络将 LoRaWAN 设备数据传输到 LNS。网关通常会接收所有消息，然后将收到的流量传送到 适用于 LoRaWAN 的 AWS IoT Core。但是，您可以配置网关以筛选某些设备数据流量，这有助于节省带宽用量并减少网关与 LNS 之间的流量流。

要配置 LoRa 网关以筛选数据帧，可以在 `router_config` 消息中使用参数 `NetID` 和 `JoinEui`。`NetID` 是接受的 NetID 值列表。任何带有除所列内容以外数据帧的 LoRa 数据帧都将被删除。`JoinEui` 是编码 JoinEUI 值范围的整数值对列表。联接请求帧将被网关删除，除非消息中的字段 `JoinEui` 处于 [BegEui，EndEui] 范围内。

## 频率通道和子频段
<a name="lorawan-frequency-channels-subbands"></a>

对于 US915 和 AU915 射频区域，无线设备可选择 64 个 125 KHz 和 8 个 500kHz 上行链路通道，以便使用 LoRa 网关访问 LoRaWAN 网络。上行链路频率通道分为 8 个子频段，每个子频段有 8 个 125KHz 通道和一个 500KqHz 通道。对于 AU915 区域中的每个常规网关，将支持一个或多个子频段。

某些无线设备无法在子频段之间跳远，且在连接到 适用于 LoRaWAN 的 AWS IoT Core 时仅在一个子频段中使用频率通道。对于要传输且来自这些设备的上行链路数据包，请配置 LoRa 网关以使用该特定子频段。对于其他射频区域（如 EU868）的网关，不需要此配置。

## 使用控制台配置您的网关以使用筛选条件和子频段
<a name="lorawan-configure-gateway-channels-console"></a>

您可以配置网关以使用特定的子频段，还可以启用筛选 LoRa 数据帧的功能。要使用控制台指定这些参数：

1. 导航到 AWS IoT 控制台的 [适用于 LoRaWAN 的 AWS IoT Core](https://console.aws.amazon.com/iot/home#/wireless/gateways) ** Gateways**（网关）页面并选择 **Add gateway**（添加网关）。

1. 指定网关详细信息，例如 **Gateway’s Eui**（网关的 Eui）、**Frequency band (RFRegion)**（频段（射频区域））和可选内容，如 **Name**（名称）和 **Description**（说明），然后选择是否将 AWS IoT 事物与您的网关关联。有关如何添加网关的更多信息，请参阅 [使用控制台添加网关](lorawan-onboard-gateway-add.md#lorawan-onboard-gateway-console)。

1. 在 **LoRaWAN configuration**（LoRaWAN 配置）部分中，您可以指定子频段和筛选信息。
   + `SubBands`：要添加子频段，请选择 **Add SubBand**（添加子频段）并指定一个整数值列表，这些值将说明网关支持哪些子频段。`SubBands` 参数只能在 `RfRegion` US915 和 AU915 上进行配置，并且在其中支持的区域之一中拥有处于范围 `[1,8]` 内的值。
   + `NetIdFilters`：要筛选上行链路帧，请选择 **Add NetId**（添加 NetId）并指定网关使用的字符串值列表。来自无线设备的传入上行链路帧的 NetID 必须与至少一个列出的值匹配，否则该帧将被丢弃。
   + `JoinEuiFilters`：选择 **Add JoinEui 范围**（添加 JoinEui 范围），并指定网关用于筛选 LoRa 帧的字符串值对列表。作为来自无线设备的联接请求的一部分指定的 JoinEui 值必须至少在一个 JoinEuiRange 值的范围内，每个值都以 [BegeUI, EndeUI] 对的形式列示，否则该帧将被删除。

1. 然后，您可以按照 [使用控制台添加网关](lorawan-onboard-gateway-add.md#lorawan-onboard-gateway-console) 中所述的指示继续配置网关。

添加网关后，在 AWS IoT 控制台的 [适用于 LoRaWAN 的 AWS IoT Core](https://console.aws.amazon.com/iot/home#/wireless/gateways) ** Gateways**（网关）页面，如果选择已添加的网关，则可以在网关详细信息页面的 **LoRaWAN specific details**（LoRaWAN 具体详情）部分看到 `SubBands` 和筛选条件 `NetIdFilters` 及 `JoinEuiFilters`。

## 使用 API 配置您的网关以使用筛选条件和子频段。
<a name="lorawan-configure-gateway-channels-api"></a>

您可以使用您用来创建网关的 [CreateWirelessGateway](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessGateway.html) API，来配置要使用的子频段并启用筛选功能。借助 `CreateWirelessGateway` API，您可以指定子频段和筛选条件，将其作为您使用 `LoRaWAN` 字段所提供的网关配置信息的一部分。下面显示包含此信息的请求令牌。

```
POST /wireless-gateways HTTP/1.1
Content-type: application/json

{
"Arn": "arn:aws:iotwireless:us-east-1:400232685877aa:WirelessGateway/
       a11e3d21-e44c-471c-afca-6716c228336a",
"Description": "Using my first LoRaWAN gateway",
   "LoRaWAN": { 
      "GatewayEui": "a1b2c3d4567890ab",
      "JoinEuiFilters": [
        ["0000000000000001", "00000000000000ff"],
        ["000000000000ff00", "000000000000ffff"]
      ],
      "NetIdFilters": ["000000", "000001"],
      "RfRegion": "US915",
      "SubBands": [2]
   },
   "Name": "myFirstLoRaWANGateway"  
   "ThingArn": null,
   "ThingName": null
}
```

您也可以使用 [UpdateWirelessGateway](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateWirelessGateway.html) API 来更新筛选条件，但不更新子频段。如果 `JoinEuiFilters` 和 `NetIdfilters` 值为空，这意味着字段没有更新。如果值不为空且包含空列表，则应用更新。若要获取您指定的字段的值，请使用 [GetWirelessGateway](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetWirelessGateway.html) API。