ZHCU938C May   2018  – January 2021 CC3100 , CC3100MOD , CC3200 , CC3200MOD

 

  1. 概述
    1. 1.1 文档范围
    2. 1.2 概述
      1. 1.2.1 特性列表
    3. 1.3 主机驱动程序概述
    4. 1.4 可配置的信息元素
  2. 编写一个简单的联网应用程序
    1. 2.1 概述
      1. 2.1.1 基本示例代码
  3. 器件初始化
    1. 3.1 概述
    2. 3.2 主机接口
      1. 3.2.1 SPI 接口
      2. 3.2.2 UART 接口
        1. 3.2.2.1 更改 UART 波特率
  4. 器件配置
    1. 4.1 概述
    2. 4.2 器件参数
    3. 4.3 WLAN 参数
      1. 4.3.1 高级
    4. 4.4 网络参数
    5. 4.5 互联网和网络服务参数
    6. 4.6 电源管理参数
      1. 4.6.1 概述
      2. 4.6.2 电源策略
    7. 4.7 扫描参数
      1. 4.7.1 扫描策略
        1.       WLAN 连接
          1. 5.1 手动连接
            1. 5.1.1 STA
            2. 5.1.2 P2P
          2. 5.2 使用配置文件的连接
          3. 5.3 连接策略
          4. 5.4 与连接相关的异步事件
            1. 5.4.1 WLAN 事件
            2. 5.4.2 网络事件
            3. 5.4.3 不同连接场景的事件
          5. 5.5 使用 BSSID 进行 WLAN 连接
  5. 插座
    1. 5.1 概述
      1. 5.1.1 传输控制协议 (TCP)
      2. 5.1.2 用户数据报协议 (UDP)
    2. 5.2 套接字连接流程
    3. 5.3 TCP 连接流程
      1. 5.3.1 客户端
      2. 5.3.2 服务器端
    4. 5.4 UDP 连接流程
      1. 5.4.1 客户端
      2. 5.4.2 服务器端
    5. 5.5 套接字选项
      1. 5.5.1 阻塞与非阻塞
      2. 5.5.2 安全套接字
    6. 5.6 SimpleLink 支持的套接字 API
    7. 5.7 可用套接字的数量
    8. 5.8 数据包聚合
  6. 器件休眠
    1. 6.1 概述
  7. 配置
    1. 7.1 概述
    2. 7.2 SmartConfig
      1. 7.2.1 一般说明
      2. 7.2.2 使用方式/API
        1. 7.2.2.1 自动激活(开箱即用)
        2. 7.2.2.2 手动激活
        3. 7.2.2.3 停止智能配置
    3. 7.3 AP 模式
      1. 7.3.1 一般说明
      2. 7.3.2 使用方式/API
      3. 7.3.3 配置 AP 配置时的注意事项
    4. 7.4 WPS
      1. 7.4.1 一般说明
      2. 7.4.2 使用方式/API
      3. 7.4.3 使用 WPS 的示例
      4. 7.4.4 配置选项之间的权衡
  8. 安全性
    1. 8.1 WLAN 安全
      1. 8.1.1 个人
      2. 8.1.2 企业级
        1. 8.1.2.1 一般说明
        2. 8.1.2.2 使用方式/API
        3. 8.1.2.3 示例
        4. 8.1.2.4 限制
    2. 8.2 安全套接字
      1. 8.2.1 一般说明
      2. 8.2.2 使用方式/API
        1. 8.2.2.1 选择方法
        2. 8.2.2.2 选择密码套件
        3. 8.2.2.3 为套接字选择受保护的文件
        4. 8.2.2.4 设置域名以用于验证和 SNI
      3. 8.2.3 使用 SSL 的示例
      4. 8.2.4 支持的加密算法
    3. 8.3 限制
      1. 8.3.1 主要的已知限制
        1. 8.3.1.1 STA 模式
        2. 8.3.1.2 AP 模式
        3. 8.3.1.3 JavaScript 示例
        4. 8.3.1.4 主机驱动程序示例
  9. AP 模式
    1. 9.1 一般说明
    2. 9.2 设置 AP 模式 – API
    3. 9.3 WLAN 参数配置 – API
    4. 9.4 WLAN 参数查询 – API
    5. 9.5 AP 网络配置
    6. 9.6 DHCP 服务器配置
    7. 9.7 设置器件 URN
    8. 9.8 发送到主机的异步事件
    9. 9.9 示例代码
  10. 10对等 (P2P) 模式
    1. 10.1 一般说明
      1. 10.1.1 范围
      2. 10.1.2 Wi-Fi Direct 优势
      3. 10.1.3 Wi-Fi Direct 支持和功能
      4. 10.1.4 限制
    2. 10.2 P2P API 和配置
      1. 10.2.1 配置 P2P 全局参数
        1. 10.2.1.1 设置 P2P 角色
        2. 10.2.1.2 设置 P2P 网络配置
        3. 10.2.1.3 设置 P2P 器件名称
        4. 10.2.1.4 设置 P2P 器件类型
        5. 10.2.1.5 设置 P2P 侦听通道和运行通道
      2. 10.2.2 配置 P2P 策略
        1. 10.2.2.1 配置 P2P 意图值和协商引发器
      3. 10.2.3 配置 P2P 配置文件连接策略
      4. 10.2.4 发现远程 P2P 对等器件
        1. 10.2.4.1 如何启动 P2P 发现
        2. 10.2.4.2 如何查看/获取 P2P 远程对等器件(网络 P2P 列表)
      5. 10.2.5 协商方法
      6. 10.2.6 手动连接 P2P
      7. 10.2.7 手动断开 P2P 连接
      8. 10.2.8 P2P 配置文件
      9. 10.2.9 删除 P2P 配置文件
    3. 10.3 P2P 连接事件
    4. 10.4 用例和配置
      1. 10.4.1 案例 1 – 固定式 P2P 客户端低功耗配置文件
      2. 10.4.2 案例 2 – 移动客户端低功耗配置文件
      3. 10.4.3 案例 3 – 固定的中心插入式配置文件
      4. 10.4.4 案例 4 – 移动中心配置文件
      5. 10.4.5 案例 5 – 移动通用型配置文件
    5. 10.5 示例代码
  11. 11HTTP 服务器
    1. 11.1  概述
    2. 11.2  支持的功能
    3. 11.3  HTTP Web 服务器说明
      1. 11.3.1 概述
        1. 11.3.1.1 详细信息
    4. 11.4  HTTP GET 处理
      1. 11.4.1 概述
      2. 11.4.2 默认网页
      3. 11.4.3 SimpleLink GET 令牌
      4. 11.4.4 用户定义的令牌
      5. 11.4.5 带有动态 HTML 内容的 HTML 示例代码
    5. 11.5  HTTP POST 处理
      1. 11.5.1 概述
      2. 11.5.2 SimpleLink POST 令牌
      3. 11.5.3 SimpleLink POST 操作
      4. 11.5.4 用户定义的令牌
      5. 11.5.5 发布后重定向
      6. 11.5.6 带有 POST 和动态 HTML 内容的 HTML 示例代码
    6. 11.6  内部网页
    7. 11.7  “强制 AP”模式支持
    8. 11.8  访问网页
      1. 11.8.1 工作站模式下的 SimpleLink
      2. 11.8.2 AP 模式下的 SimpleLink
    9. 11.9  HTTP 身份验证检查
    10. 11.10 使用 SimpleLink 驱动程序处理主机中的 HTTP 事件
    11. 11.11 SimpleLink 驱动程序连接 HTTP 网络服务器
      1. 11.11.1 启用或禁用 HTTP 服务器
      2. 11.11.2 配置 HTTP 端口号
      3. 11.11.3 启用或禁用身份验证检查
      4. 11.11.4 设置或获取身份验证名称、密码和领域
      5. 11.11.5 设置或获取域名
      6. 11.11.6 设置或获取 URN 名称
      7. 11.11.7 启用或禁用 ROM 网页访问
    12. 11.12 SimpleLink 预定义令牌
      1. 11.12.1 GET 值
      2. 11.12.2 POST 值
      3. 11.12.3 POST 操作
      4. 11.12.4 HTTP 服务器限制
  12. 12mDNS
    1. 12.1 概述
    2. 12.2 协议详细信息
    3. 12.3 实现
      1. 12.3.1 默认实现
      2. 12.3.2 184
      3. 12.3.3 启动和停止 mDNS
      4. 12.3.4 mDNS 查询 – 一次性
      5. 12.3.5 mDNS 查询 – 连续
      6. 12.3.6 mDNS 服务注册
    4. 12.4 支持的功能
    5. 12.5 限制
  13. 13串行闪存文件系统
    1. 13.1 概述
      1. 13.1.1 指令汇总
      2.      文件创建
      3.      文件打开
      4.      文件关闭
      5.      文件写入
      6.      文件读取
      7.      文件删除
      8.      文件信息
  14. 14Rx 滤波器
    1. 14.1 概述
    2. 14.2 详细说明
    3. 14.3 示例
    4. 14.4 创建树
    5. 14.5 主机 API
      1. 14.5.1 代码示例
    6. 14.6 注意事项和限制
  15. 15收发器模式
    1. 15.1  一般说明
    2. 15.2  使用方式/API
    3. 15.3  发送和接收
    4. 15.4  更改套接字属性
    5. 15.5  内部数据包发生器
    6. 15.6  发送 CW(载波)
    7. 15.7  连接策略和收发器模式
    8. 15.8  关于接收和发送的注意事项
      1. 15.8.1 接收
    9. 15.9  用例
      1. 15.9.1 嗅探器
    10. 15.10 持续发送
    11. 15.11 Ping
    12. 15.12 收发器模式限制
  16. 16Rx 统计信息
    1. 16.1 一般说明
    2. 16.2 使用方式/API
    3. 16.3 关于接收和发送的注意事项
    4. 16.4 用例
    5. 16.5 Rx 统计信息限制
      1.      API 概述
        1. 17.1 器件
        2. 17.2 NetCfg
        3. 17.3 WLAN
        4. 17.4 套接字
        5. 17.5 NetApp
        6. 17.6 文件系统
  17. 17异步事件
    1. 17.1 概述
    2. 17.2 WLAN 事件
    3. 17.3 Netapp 事件
    4. 17.4 套接字事件
    5. 17.5 器件事件
  18. 18可配置的信息元素
    1. 18.1 通用
    2. 18.2 应用接口
      1. 18.2.1 API 输出
    3. 18.3 所有信息元素的总大小上限
  19. 19调试
    1. 19.1 捕获 NWP 日志
      1. 19.1.1 概述
      2. 19.1.2 指令
        1. 19.1.2.1 为 CC32xx 配置引脚复用
        2. 19.1.2.2 终端设置
        3. 19.1.2.3 运行程序
        4. 19.1.2.4 发送给 TI 工程师
          1.        参考文献
            1.         A 主机驱动程序架构
              1.          A.1 概述
                1.           A.1.1 SimpleLink WiFi 主机驱动程序 – 与平台无关的部分
                2.           A.1.2 SimpleLink WiFi 主机驱动程序 – 与平台相关的部分
                3.           A.1.3 SimpleLink WiFi 驱动程序配置
                4.           A.1.4 用户应用程序
              2.          A.2 驱动程序数据流
                1.           A.2.1 传输层协议
                2.           A.2.2 命令和命令完成
                3.           A.2.3 数据事务
                  1.            A.2.3.1 数据发送(从主机到 SimpleLink 网络处理器)
                  2.            A.2.3.2 数据流控制
                  3.            A.2.3.3 数据接收(从 SimpleLink 网络处理器到主机)
                  4.            A.2.3.4 阻塞接收
                  5.            A.2.3.5 非阻塞接收
                    1.             B 错误代码
                      1.              B.1 错误代码
                        1.               C 如何生成证书、公钥和 CA
                          1.                C.1 证书生成
                            1.                 修订历史记录

WLAN

sl_WlanSetMode – WLAN 器件具有多种 WLAN 运行模式。默认情况下,该器件充当 WLAN 工作站,但也可以充当其他 WLAN 角色。不同的选项包括:

  • ROLE_STA – 针对 WLAN 工作站模式
  • ROLE_AP – 针对 WLAN AP 模式
  • ROLE_P2P – 针对 WLAN P2P 模式
注:

设置的模式功能仅在下一次器件启动时生效。

从任意角色切换到 WLAN AP 角色的示例:

sl_WlanSetMode(ROLE_AP);                
/*关闭和打开器件以使角色更改生效 */
sl_Stop(0);
sl_Start(NULL,NULL,NULL);

sl_WlanSet – 让用户配置不同的 WLAN 相关参数。使用的主参数是 ConfigID 和 ConfigOpt。

可能的 ConfigID 和 ConfigOpt 组合为:

  • SL_WLAN_CFG_GENERAL_PARAM_ID – 不同的通用 WLAN 参数如下:
    • WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE
    • WLAN_GENERAL_PARAM_OPT_STA_TX_POWER – 设置 STA 模式 Tx 功率级别(一个 0 至 15 的数字),作为最大功率的 dB 偏移(0 将设置最大功率)。
    • WLAN_GENERAL_PARAM_OPT_AP_TX_POWER – 设置 AP 模式 Tx 功率级别(一个 0 至 15 的数字),作为最大功率的 dB 偏移(0 将设置最大功率)。
  • SL_WLAN_CFG_AP_ID – 不同的 AP 配置选项如下:
    • WLAN_AP_OPT_SSID
    • WLAN_AP_OPT_CHANNEL
    • WLAN_AP_OPT_HIDDEN_SSID – 将 AP 设置为隐藏或非隐藏
    • WLAN_AP_OPT_SECURITY_TYPE – 可能的选项为:
      • 开放安全:SL_SEC_TYPE_OPEN
      • WEP 安全:SL_SEC_TYPE_WEP
      • WPA 安全:SL_SEC_TYPE_WPA
    • WLAN_AP_OPT_PASSWORD – 设置 AP 模式的安全密码:
      • 对于 WPA:8 至 63 个字符
      • 对于 WEP:5 至 13 个字符 (ASCII)
  • SL_WLAN_CFG_P2P_PARAM_ID
    • WLAN_P2P_OPT_DEV_NAME
    • WLAN_P2P_OPT_DEV_TYPE
    • WLAN_P2P_OPT_CHANNEL_N_REGS – 侦听通道和监管等级确定了 P2P 查找和侦听阶段的器件侦听通道。运行通道和监管等级确定了器件更适合的运行通道(如果器件是组所有者,则会使用该运行通道)。通道应该是社会通道之一(1、6 或 11)。如果未选择侦听通道或运行通道,则将随机选择 1、6 或 11。
    • WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT – 应用程序为每个角色 (AP/P2P GO) 设置 MAX_PRIVATE_INFO_ELEMENTS_SUPPORTED 个信息元素。若要删除信息元素,请使用相关索引和长度 = 0。应用程序可以为同一角色设置不超过 MAX_PRIVATE_INFO_ELEMENTS_SUPPORTED 的值。但是,对于 AP,可以为所有信息元素存储不超过 INFO_ELEMENT_MAX_TOTAL_LENGTH_AP 字节。对于 P2P GO,可以为所有信息元素存储不超过 INFO_ELEMENT_MAX_TOTAL_LENGTH_P2P_GO 字节。
    • WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS – 更改扫描通道和 RSSI 阈值

为 AP 模式设置 SSID 的示例:

unsigned char  str[33];
memset(str, 0, 33);
memcpy(str, ssid, len);  // ssid string of 32 characters
sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_SSID, strlen(ssid), str);

sl_WlanGet – 让用户能够配置不同的 WLAN 相关参数。使用的主参数是 ConfigID 和 ConfigOpt。sl_WlanGet 的用法与 sl_WlanSet 类似。

sl_WlanConnect – 手动连接到 WLAN 网络

sl_WlanDisconnect – 断开 WLAN 连接

sl_WlanProfileAdd – 启用自动启动连接策略后,器件会根据配置文件表连接到 AP。最多支持七个配置文件。如果配置了多个配置文件,器件会选择优先级最高的配置文件。在每个优先级组中,器件根据以下参数按优先级降序选择配置文件:安全策略、信号强度。

sl_WlanProfileGet – 从器件读取 WLAN 配置文件

sl_WlanProfileDel – 删除现有配置文件

sl_WlanPolicySet – 管理以下 WLAN 功能的配置:

  • SL_POLICY_CONNECTION – SL_POLICY_CONNECTION 类型可定义用于将 CC31xx 器件连接至 AP 的三个选项:
    • 自动连接 – 每次连接失败或者器件重新进行引导后,CC31xx 器件都会尝试自动重新连接到其存储的配置文件之一。若要设置此选项,请使用:
      • sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(1,0,0,0,0),NULL,0)
    • 快速连接 – CC31xx 器件尝试快速连接到 AP。若要设置此选项,请使用:
      • sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(0,1,0,0,0),NULL,0)
        
    • P2P 连接 – 如果设置了“任何 P2P”模式,CC31xx 器件会尝试自动连接至可用的第一个 P2P 器件,仅支持使用按钮。若要设置此选项,请使用:
      • sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(0,0,0,1,0),NULL,0)
    • 重新启动后自动 SmartConfig – 器件在 SmartConfig 模式下唤醒。主机发出的任何命令都会使此状态结束。若要设置此选项,请使用:
      • sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(0,0,0,0,1),NULL,0)
        
  • SL_POLICY_SCAN – 定义没有连接时的系统扫描时间间隔。默认间隔为 10 分钟。设置扫描间隔后,系统会立即激活扫描。下一次扫描基于间隔设置。若要将扫描间隔设置为 1 分钟,请使用以下示例:
    unsigned long intervalInSeconds = 60;
    #define SL_SCAN_ENABLE  1
    sl_WlanPolicySet(SL_POLICY_SCAN,SL_SCAN_ENABLE, (unsigned char *)
    &intervalInSeconds,sizeof(intervalInSeconds));

    若要禁用扫描,请使用:

    #define SL_SCAN_DISABLE  0
    sl_WlanPolicySet(SL_POLICY_SCAN,SL_SCAN_DISABLE,0,0);
    
  • SL_POLICY_PM – 定义仅用于工作站模式的电源管理策略。共有四个可用的电源策略:
    • SL_NORMAL_POLICY(默认)– 若要设置正常电源管理策略,请使用:
      • sl_WlanPolicySet(SL_POLICY_PM , SL_NORMAL_POLICY, NULL,0)
        
    • SL_ALWAYS_ON_POLICY – 若要设置始终开启电源管理策略,请使用:
      • sl_WlanPolicySet(SL_POLICY_PM , SL_ALWAYS_ON_POLICY, NULL,0)
    • SL_LONG_SLEEP_INTERVAL_POLICY – 若要设置长时间睡眠间隔策略,请使用:
      • unsigned short PolicyBuff[4] = {0,0,800,0}; // 800 is max sleep time in mSec
        sl_WlanPolicySet(SL_POLICY_PM , SL_LONG_SLEEP_INTERVAL_POLICY, PolicyBuff,sizeof(PolicyBuff));
        
  • SL_POLICY_P2P – 为 P2P 角色定义 P2P 协商策略参数。若要设置意图协商值,请设置以下之一:
    • SL_P2P_ROLE_NEGOTIATE – 意图 3
    • SL_P2P_ROLE_GROUP_OWNER – 意图 15
    • SL_P2P_ROLE_CLIENT – 意图 0
  • 若要设置协商发起方值(第一个协商操作帧的发起方策略),请设置以下之一:
    • SL_P2P_NEG_INITIATOR_ACTIVE
    • SL_P2P_NEG_INITIATOR_PASSIVE
    • SL_P2P_NEG_INITIATOR_RAND_BACKOFF

    例如:

    set sl_WlanPolicySet(SL_POLICY_P2P, SL_P2P_POLICY(SL_P2P_ROLE_NEGOTIATE,SL_P2P_NEG_INITIATOR_RAND_BACKOFF),NULL,0);

sl_WlanPolicyGet – 读取不同的 WLAN 策略设置。可能的选项包括:

  • SL_POLICY_CONNECTION
  • SL_POLICY_SCAN
  • SL_POLICY_PM
  • SL_POLICY_P2P

sl_WlanGetNetworkList – 获取最新的 WLAN 扫描结果

sl_WlanSmartConfigStart – 将器件置于 SmartConfig 状态。SmartConfig 成功结束后,将收到一个异步事件:SL_OPCODE_WLAN_SMART_CONFIG_START_ASYNC_RESPONSE。该事件包含 SSID 以及一个可能也已完成传递的额外字段(例如,器件名称)。

sl_WlanSmartConfigStop – 停止 SmartConfig 过程。停止 SmartConfig 后,将收到一个异步事件:SL_OPCODE_WLAN_SMART_CONFIG_STOP_ASYNC_RESPONSE

sl_WlanRxStatStart – 开始收集 WLAN Rx 统计信息(不限时间)

sl_WlanRxStatStop – 停止收集 WLAN Rx 统计信息

sl_WlanRxStatGet – 获取 WLAN Rx 统计信息。调用此命令后,统计信息计数器将被清除。返回的统计信息如下:

  • 接收到的有效数据包数 – 正确接收的数据包总数(包括已过滤的数据包)
  • 接收到的 FCS 错误数据包 – 由于 FCS 错误而丢弃的数据包总数
  • 接收到的 PLCP 错误数据包 – 由于 PLCP 错误而丢弃的数据包总数
  • 平均数据 RSSI – 接收到的所有有效数据包的平均 RSSI
  • 平均管理 RSSI – 接收到的所有有效管理数据包的平均 RSSI
  • 速率直方图 – 接收到的所有有效数据包的速率直方图
  • RSSI 直方图 – 从 -40 到 -87 的 RSSI 直方图(低于和高于 RSSI 的所有值都出现在第一个和最后一个单元中)
  • 开始时间戳 – 开始收集统计信息的时间戳(以 µSec 为单位)
  • 获取时间戳 – 读取统计信息的时间戳(以 µSec 为单位)