13 协议栈能力

对于不同的软件包、不同的芯片系列,协议栈能力不同,汇总63于表 13.1,表 13.2 和 表 13.3

表 13.1: {typical, extension, exp} 软件包协议栈能力
系列 广播集数目 连接数目 白名单容量 CTE 最大 MTU
ING9188X \(8\) \(8\) \(16\) \(\checkmark\) \(247\)
ING9187X \(8\) \(8\) \(16\) \(247\)
ING9168X \(5\) \(5\) \(8\) \(\checkmark\) \(247\)
表 13.2: {mass_conn} 软件包协议栈能力
系列 广播集数目 连接数目 白名单容量 CTE 最大 MTU
ING9188X \(8\) \(26\) \(24\) \(\checkmark\) \(247\)
ING9187X \(8\) \(26\) \(24\) \(247\)
ING9168X \(5\) \(10\) \(10\) \(\checkmark\) \(247\)
表 13.3: {mini} 软件包协议栈能力
系列 广播集数目 连接数目 白名单容量 CTE 最大 MTU
ING9188X \(1\) \(1\) \(4\) \(\checkmark\) \(247\)
ING9187X \(1\) \(1\) \(4\) \(247\)
ING9168X \(1\) \(1\) \(4\) \(\checkmark\) \(247\)

通过 ll_get_capabilitiesbtstack_get_capabilities 可分别获取链路层和 Host 的协议栈能力64

13.1 “非标”扩展

软件包 extensionexp 包含一系列“非标”扩展。这些扩展多为放松参数限制,可供开发者测试、对比。 使用这些“非标”扩展将带来兼容性问题,故需谨慎,并遵循相关管理规定。

以下扩展功能各型号芯片皆可支持,具体表现依赖于芯片本身的处理能力:

  1. 允许广播最小间隔小于 \(20ms\),最小间隔取决于数据包空口时长;

  2. 允许连接间隔小于 \(7.5ms\),最小间隔取决于时间单位(默认 \(1.25ms\))、芯片处理能力及数据包空口时长;

  3. 自定义连接间隔的时间单位;

    void ll_set_conn_interval_unit(
      uint16_t unit);   // 自定义的时间单位(微秒)
  4. 在扩展广播上附着 CTE65

    int ll_attach_cte_to_adv_set(
      uint8_t adv_hdl,  // 广播集句柄
      uint8_t cte_type, // CTE 类型(0 为 AoA)
      uint8_t cte_len,  // CTE 长度
      // 用于 AoD 发送的天线切换模板的长度
      uint8_t switching_pattern_len,
      // 用于 AoD 发送的天线切换模板
      const uint8_t *switching_pattern);
  5. 锁频66

    // 锁频
    void ll_lock_frequency(
      int freq_mhz);    // 频点(单位:MHz)
    
    // 解锁
    void ll_unlock_frequency(void);
  6. Raw Packet;

    详见 Controller API Reference。

以下扩展功能不适用于 ING918 芯片家族:

  1. 允许传统广播数据长度超过 \(31\) 字节,最大 \(249\) 字节;

  2. 自定义数据白化初值;

    void ll_override_whitening_init_value(
      uint8_t override, // 是否启用
      uint8_t value);   // 自定义的初值
  3. 自定义广播数据包 PDU 类型;

    void ll_allow_nonstandard_adv_type(
      uint8_t allowed,  // 是否允许
      uint8_t type);    // 自定义的PDU 类型
  4. 自定义 CTE 比特。

    void ll_set_cte_bit(
      uint8_t bit);     // CTE 比特(默认为 1)

  1. 依据 SDK v8.3.7。ING916XX 协议栈能力可能发生变化。↩︎

  2. 限 SDK v8.4.13 或更高版本。↩︎

  3. 仅限支持 CTE 的芯片型号。↩︎

  4. 将所有射频行为固定在一个指定的信道。↩︎