logo资料库

mxchipWNet 基础版软件库使用说明(RM0004_mxchipWNet_library_V1.27).pdf

第1页 / 共63页
第2页 / 共63页
第3页 / 共63页
第4页 / 共63页
第5页 / 共63页
第6页 / 共63页
第7页 / 共63页
第8页 / 共63页
资料共63页,剩余部分请下载后查看
1 mxchipWNet软件库简介
1.1 主要功能
1.2 运行环境
1.2.1 硬件平台
1.2.2 FLASH和SRAM空间的使用
Flash的使用
SRAM的使用
1.2.3 已使用的处理器资源
1.2.4 软件库内容和开发环境
1.3 基本运行模型
2 功能描述和API详解
2.1 数据类型
2.2 软件库初始化、功能块
2.2.1 常量
MxchipStatus
2.2.2 数据类型
lib_config_t
2.2.3 函数
system_lib_version
system_version(char *str, int len)
lib_config
mxchipInit
mxchipTick
2.3 Wi-Fi无线网络的扫描,控制,连接和状态返回
2.3.1 数据类型
UwtPara_str
ApList_str
network_InitTypeDef_st
apinfo_adv_t
network_InitTypeDef_adv_st
sta_ap_state_t
2.3.2 函数
mxchipStartScan
ApListCallback
StartNetwork
StartAdvNetwork
sta_disconnect
uap_stop
WifiStatusHandler
connected_ap_info
wlan_disconnect
wifi_power_up
CheckNetLink
wlan_set_max_station_num
wifi_roam_trigger
ps_enable
ps_disable
OpenConfigmodeWPS
CloseConfigmodeWPS
OpenEasylink,OpenEasylink2
CloseEasylink, CloseEasylink2
RptConfigmodeRslt
2.4 基本网络服务
2.4.1 常量
WiFi_Interface
2.4.2 数据结构
net_para_st
2.4.3 函数
getNetPara
NetCallback
gethostbyname
dns_request
dns_ip_set
ReallocIP
2.5 类BSD Socket网络数据传输
2.5.1 常量
SOCK_OPT_VAL
2.5.2 数据结构
sockaddr_t
timeval_t
fd_set
2.5.3 函数
socket
setsockopt
bind
connect
socket_connected
listen
accept
select
tx_buf_size
send,write, sendto
recv,read, recvfrom
close
FD_ZERO(p)
FD_SET(n, p)
FD_CLR(n, p)
FD_ISSET(n, p)
set_tcp_keepalive
get_tcp_keepalive
setSslMaxlen
getSslMaxlen
setSSLmode
2.6 STM32的外部中断配置和使用
2.6.1 常量
gpio_irq_trigger_t
2.6.2 函数
gpio_irq_enable
gpio_irq_disable
2.7 工具
2.7.1 数据格式转换
inet_ntoa
inet_addr
ntohs,ntohl
htons,htonl
2.7.2 定时相关
MsTimer
sleep,msleep
SetTimer
WatchDog
2.7.3 调试工具
get_tcp_clients
memory_status
2.7.4 其他
md5_hex
3 功能实现和应用范例
3.1 Demo1: Wi-Fi网络的搜索、连接、切换
3.1.1 功能
3.1.2 用户操作
3.2 Demo2: TCP UDP网络数据传输
3.2.1 功能
3.2.2 用户操作
3.3 Demo3: WPS 和 EasyLink配置
3.3.1 功能
3.3.2 用户操作
3.4 Demo4: 网页服务器和OTA远程升级
3.4.1 功能
3.4.2 用户操作
3.5 Demo5 :mDNS_bonjour零配置局域网搜索服务
3.5.1 功能
3.5.2 用户操作
3.6 Demo6:SSL_https访问SSL加密网页
3.6.1 功能
3.6.2 用户操作
3.7 应用范例: mxchipWNet-HA家庭智能设备通讯协议范例
3.7.1 默认配置
3.7.2 模块工作流程
3.7.3 数据包格式
命令格式详述
3.7.4 用户操作
4 升级历史
5 Sales Information
6 Technical Support
mxchipWNet Library mxchipWNet Library 基础版 使用说明 使用 mxchipWNet 基础版软件库开发嵌入式 Wi-Fi 应用 316x0001.027 Date:2014-5-22 Reference manual 概述 mxchipWNetTM library 是运行在 MXCHIP 公司开 发的 EMW316x 系列嵌入式 Wi-Fi 模块上的 TCP/IP 协 议栈、Wi-Fi 射频驱动、运行环境以及相关示例程序, 是构建嵌入式 Wi-Fi 应用的完整解决方案。 该软件库专门为嵌入式 Wi-Fi 应用设计,拥有快速 的联网速度,高实时性的事件处理机制,低消耗、可配 置的硬件资源管理等特性,并且在 EMW316x 模块上可 以实现最高 20Mbps 的超高速传输速率。 User application TCP/IP management FTP, HTTP, SMTP... Wi-Fi control mxchipWNet Library TCP/IP Stack TCP/UDP socket, IPv4, DHCP, ARP, DNS... 同时该软件库采用标准的 BSD socket API 为基础, 配合简单易用的无线网络配置 API,开发者可以很方便 地在 EMW316x 模块上开发各种嵌入式 Wi-Fi 应用程序。 该软件库的易用性能大大缩短开发周期,提高产品上市 进度。 主要功能: 802.11 TX/RX Wi-Fi Security Supplicant Soft AP, Dual WLAN, WPS... 802.11MAC Baseband RF EMW316x  包含引导程序,应用程序和驱动程序  提供 73k 字节的可以自由分配的内存空间 TCP/IP features:  提供多达 720k 字节的可用 Flash 空间  符合 BSD socket 接口定义  支持 OTA 无线升级的系统架构  DHCP 客户端和服务器  内置的功能测试模式  提供多种支持工具 Wi-Fi features:  DNS, mDNS (bonjour)服务  提供阻塞或非阻塞式的调用方式  支持 12 个 TCP socket 和 2 个 UDP socket  支持 IEEE 802.11 b/g/n@2.4GHz  支持 SSL 加密的 socket 连接  支持 Station 和 Soft AP 模式  HTTP、FTP、SMTP 等应用范例  支持 WEP,WPA/WPA2 加密方式  支持 IEEE 802.11 power save 模式  内存管理和调试功能 上海庆科信息技术有限公司 无线网络开发部
目录 MXCHIPWNET 软件库简介 ................................................................................... 5 主要功能 ............................................................................................................................................. 5 运行环境 ............................................................................................................................................. 5 硬件平台 .............................................................................................................................................................. 5 FLASH 和 SRAM 空间的使用 .......................................................................................................................... 5 已使用的处理器资源.......................................................................................................................................... 7 软件库内容和开发环境 ..................................................................................................................................... 8 基本运行模型 .................................................................................................................................... 11 功能描述和 API 详解 ............................................................................................ 13 数据类型 ........................................................................................................................................... 13 软件库初始化、功能块 ...................................................................................................................... 13 常量 ..................................................................................................................................................................... 13 数据类型 ............................................................................................................................................................ 13 函数 ..................................................................................................................................................................... 15 Wi-Fi 无线网络的扫描,控制,连接和状态返回 ................................................................................ 17 数据类型 ............................................................................................................................................................ 17 函数 ..................................................................................................................................................................... 20 基本网络服务 .................................................................................................................................... 25 常量 ..................................................................................................................................................................... 25 数据结构 ............................................................................................................................................................ 25 函数 ..................................................................................................................................................................... 26 2
类 BSD Socket 网络数据传输 ........................................................................................................... 28 常量 ..................................................................................................................................................................... 28 数据结构 ............................................................................................................................................................ 30 函数 ..................................................................................................................................................................... 31 STM32 的外部中断配置和使用 ......................................................................................................... 39 常量 ..................................................................................................................................................................... 39 函数 ..................................................................................................................................................................... 39 工具 .................................................................................................................................................. 41 数据格式转换 .................................................................................................................................................... 41 定时相关 ............................................................................................................................................................ 42 调试工具 ............................................................................................................................................................ 43 其他 ..................................................................................................................................................................... 43 功能实现和应用范例 ............................................................................................. 44 Demo1: Wi-Fi 网络的搜索、连接、切换 .......................................................................................... 44 功能 ..................................................................................................................................................................... 44 用户操作 ............................................................................................................................................................ 44 Demo2: TCP UDP 网络数据传输 ..................................................................................................... 45 功能 ..................................................................................................................................................................... 45 用户操作 ............................................................................................................................................................ 45 Demo3: WPS 和 EasyLink 配置 .................................................................................................... 47 功能 ..................................................................................................................................................................... 47 用户操作 ............................................................................................................................................................ 47 3
Demo4: 网页服务器和 OTA 远程升级 .............................................................................................. 48 功能 ..................................................................................................................................................................... 48 用户操作 ............................................................................................................................................................ 48 Demo5 :mDNS_bonjour 零配置局域网搜索服务 ............................................................................ 49 功能 ..................................................................................................................................................................... 49 用户操作 ............................................................................................................................................................ 49 Demo6:SSL_https 访问 SSL 加密网页 .......................................................................................... 50 功能 ..................................................................................................................................................................... 50 用户操作 ............................................................................................................................................................ 50 应用范例: mxchipWNet-HA 家庭智能设备通讯协议范例 ................................................................ 51 默认配置 ............................................................................................................................................................ 51 模块工作流程 .................................................................................................................................................... 51 数据包格式 ........................................................................................................................................................ 52 用户操作 ............................................................................................................................................................ 57 升级历史 .............................................................................................................. 61 SALES INFORMATION ...................................................................................... 64 TECHNICAL SUPPORT ...................................................................................... 65 4
mxchipWNet 软件库简介 主要功能 mxchipWNet 软件库(下称“软件库”)是运行在 MXCHIP 公司开发的 EMW316x 系列嵌入式 Wi-Fi 模块上的 TCP/IP 协 议栈、Wi-Fi 射频驱动、运行环境以及相关示例程序,是构建嵌入式 Wi-Fi 应用的完整解决方案。 该软件库专门为嵌入式 Wi-Fi 应用设计,拥有快速的联网速度,高实时性的事件处理机制,低消耗、可配置的硬件资源管理 等特性,并且在 EMW316x 模块上可以实现最高 20Mbps 的超高速传输速率。 同时该软件库采用标准的 BSD socket API 为基础,配合简单易用的无线网络配置 API,开发者可以很方便地在 EMW316x 模块上开发各种嵌入式 Wi-Fi 应用程序。该软件库的易用性能大大缩短开发周期,提高产品上市进度。 运行环境 硬件平台 基于软件库的应用可以运行在 EMW316x 嵌入式 Wi-Fi 模块上的 STM32 微控制器上。该微控制器主频 120MHz,包含 1M 字节 flash 空间和 128k 字节的 SRAM。 可以从以下网站获得相关的模块信息: EMW3161:http://www.mxchip.com/product.php?class_id=15&id=2 EMW3162:http://www.mxchip.com/product.php?class_id=15&id=41 FLASH 和 SRAM 空间的使用 Flash 的使用 STM32 的 1M 字节 Flash 空间按照如下列表分配给各个功能块: 表 1.1 FLASH 的分区 起始地址 结束地址 类型 大小(字节) 0x08000000 0x08003FFF 0x08004000 0x0800BFFF 0x0800C000 0x08060000 0x08060000 0x080C0000 0x080C0000 0x080FFFFF 各个功能块的主要功能描述: 1. 引导程序: B P A - D 16k 32k 336k 384k 256k 内容 引导程序 OTA信息,用户参数 用户应用程序 OTA升级数据的暂存空间 射频芯片驱动程序 STM32 上电或者复位后会自动运行这部分代码,程序根据 BOOT 引脚的状态决定是否引导应用程序还是进入引导程序的主 菜单,用户可以在引导程序的主菜单下通过不同的命令来更新 Flash 中各个分区的内容。同时,引导程序也会根据 Flash 中区域 的 OTA 信息决定是否使用 OTA 升级数据的暂存空间中的数据来替换其他分区的数据,以便实现 Flash 中数据的自动升级。 BOOT 引脚定义:EMW3162 PIN16(PB1)EMW3161 PIN36(PE6) 表 1.2 BOOT 引脚的功能 BOOT 引脚 0(低电平) 1(高电平) 引导状况 进入引导程序主菜单 正常引导应用程序 使用引导程序进行 Flash 内容更新的功能请参考应用笔记: http://www.mxchip.com/uploadfiles/soft/EMW/AN0002E_FirmwareUpdate_V3.pdf 同时,引导程序在运行时,会检查“OTA 升级数据的暂存空间”中的数据状况,当不需要执行 OTA 升级时,或者 OTA 升级 已经完成的情况下,引导程序会自动擦除这块区域的所有数据,这个功能的主要目的是:应用程序在接收到 OTA 数据时能够尽 快地写入“OTA 升级数据的暂存空间”,而不需要执行擦除操作,提高了 OTA 操作的执行效率。 注意:以上功能用户都可以通过修改引导程序的源代码进行修改。 5
2. 启动信息,用户参数 这部分 Flash 空间可以用来存储系统运行的参数,比如模块启动时自动连接的无线网网络名称、密码等,除了一部分软件库 明确定义的参数结构以外,所有的 Flash 空间都可以由用户应用程序自由组织,擦除和编程。这部分已经定义的参数结构称为 OTA 信息,用户在操作这部分存储空间时,应保证这部分区域不被破坏。 OTA 信息的存储地址:0x08004000,也就是这个存储区域的头部,可以用一个结构体描述这个 OTA 信息块,该结构体定已 在 mxchipWNET.h 头文件中的 boot_table_t 结构体中。OTA 信息的结构如下: 表 1.3 OTA 信息的结构: 名称 类型 长度 内容 START ADDRESS 32位数据 LENGTH VERSION TYPE UPDATE 32位数据 字符 字符 字符 REVERSED 8位数据 1 1 8 1 1 6 OTA数据的存储地址(当前固定为0x08060000) OTA数据的长度 版本信息(当前未提供实际功能) OTA数据的类型(’B’,’P’,’A’,’D’) 升级标志(‘U’) 保留 OTA 数据的类型表明了 OTA 暂存数据的数据类型,用于表明引导程序用 OTA 数据刷新目标区块的位置。这个类型和表 1.1 中的“类型”是匹配的,如写入字符 A 时,引导程序就会使用 OTA 数据来刷写 A 区域的数据,也就是用户的应用程序。 UPDATE 字符用于声明是否需要使用引导程序执行刷新的操作,当 OTA 数据已经准备好,应用程序就可以在这个位置写入 字符 U,并且软件重启模块,由引导程序使用 OTA 数据刷新目标存储区域。 所以,应用程序实现 OTA 功能的主要流程是: -将接收到的升级数据写入地址 0x08060000 开始的 OTA 数据暂存空间。 -写入正确的 OTA 信息。 -软件重新启动模块,由引导程序完成刷新操作。 -引导程序完成 Flash 内存的更新后,将 OTA 信息恢复到初始状态,并擦除 OTA 数据暂存区域的数据 -正常引导用户应用程序 3. 用户应用程序 用于实现模块功能的可执行程序的存储区域,由于这个区域的起始地址不是 STM32 的 Flash 起始地址,所以用户在编译链 接时,应该设置程序的链接地址为 0x0800C000,同时将 STM32 的中断向量表重映射到这个地址。 4. OTA 升级数据的暂存空间 临时保存的 OTA 数据,如果用户在引导程序中关闭 OTA 升级功能,或者采用外部存储保存 OTA 数据,这部分存储空间可以 合并到用户应用程序块中,这样就可以存放更庞大的用户应用程序。 5. 射频芯片驱动程序 用于存放模块上的射频芯片的固件,这个固件是固定的,不能修改的,任何对这个区域的修改都会导致系统不能正常运行。 一旦这个区域的数据被破坏,就只能通过仿真工具重新写入数据,或者在引导程序的主菜单下,通过命令“driverupdate”命令 来重新写入数据。 SRAM 的使用 STM32F2 提供 128k 字节的内存空间,一旦软件库初始化完成,软件库中的 Wi-Fi 驱动和网络协议栈会占用一部分内存空间, 并且为 UDP socket 分配 8k 字节静态内存,剩下的可用内存约为 73kbytes 字节。这些剩余的内存空间可以用于用户的应用程 序,并且为每一个 socket 分配发送缓冲区(WRBUF)和接收缓冲区(RDBUF)的大小,需要注意的是 socket 的发送缓冲区和接收 缓冲区的大小和网络传输速度息息相关,比较大的缓冲区能够提供更加高速的传输速度,但是总内存大小的限制又使得缓冲区的 大小不能无限增加。所以在编程时,应该将传输速度,连接数量,应用的内存占用综合起来考虑。 软件库中,UDP socket 连接的内存分配采用静态方式,协议栈最多允许创建 2 个 UDP 连接,每一个 UDP 占用 4k 字节, 6
一共占用 8k 字节内存,此外,用于监听的 TCP socket 仅占用 256 字节的动态内存。 在软件库中,提供了两种方式来管理 TCP socket 连接的内存占用。在协议栈初始化之前因对这两种管理方式进行选择。 1. 静态分配(默认) 协议栈完成初始化后,立即分配一段静态的 48k 字节的内存空间,用于 socket 的发送缓冲和接收缓冲,每一个 socket 的发 送缓冲和接收缓冲的大小都固定为 2k 字节,所以一共可以建立 12(48/4)个 socket 连接。除此之外,每一个 socket 连接建 立时仍然会动态分配 256 字节的内存。 使用静态分配之后,用于应用的可用空间约 23k 字节左右。在该情况下,用户仅需要管理好用户应用中的内存消耗即可。 在静态分配的情况下,软件库可建立的最大的 TCP 连接数和每一个 TCP 连接的缓冲区大小可以在软件库初始化之前进行设 置,以改变默认值。 2. 动态分配 协议栈完成初始化后,不会再分配额外的内存空间,协议栈在创建每一个 socket 连接时,根据用户设定的参数动态的分配 内存,并且在 socket 关闭时释放。这些参数参数可以使用 setsockopt 函数来进行设置。由于用户自行设定 socket 的缓冲区大 小,所以协议栈总共可以建立 socket 的连接数量不是固定的。如果剩余的内存空间不能满足新增的一个 socket 连接时,  如果调用 connect 函数来创建一个 socket,connect 函数会返回错误,  当用户使用一个 socket 监听 TCP 客户端的连接时,协议栈会直接拒绝新的客户端的连接请求,不会将客户端的连接 事件提交给这个监听的 socket。 使用动态分配,用户要管理好 socket 连接的内存分配和用户应用程序的内存分配,并且防止内存碎片的产生,比静态分配 的方式要复杂一些。为此,软件库提供了一些内存分析和管理的 API 函数,详情请参阅章节:2.7.1 内存调试 已使用的处理器资源 软件库在运行时会使用 STM32 的一些外设资源,现列出如下,在开发应用程序中引避免使用这些外设,或者使用软件库提 供的 API 接口来操作这些外设。 外设 已使用的功能 SystemTick及其 为协议栈运行产生时基,设置的 中断 SDIO 时钟周期是: 1ms 用于和Wi-Fi射频芯片通讯 DMA2 Stream 3 用于和Wi-Fi射频芯片通讯 模块 所有 所有 所有 EXTI Line13 用于和Wi-Fi射频芯片通讯 EMW3162 注释 请勿修改该外设参数,但仍可在其中断 处理函数中增加简单功能。 PC2 看门狗信号输出 EMW3162 须通过lib_config函数开启看门狗输出 EXTI Line0 用于和Wi-Fi射频芯片通讯 EMW3161 PB14 看门狗信号输出 EMW3161 须通过lib_config函数开启看门狗输出 当使用软件库中提供的 UART 相关函数时,如 SetUartPara, OpenUART 等。 外设 UART1 PA8, PA9, PA10, PA11 已使用的功能 模块 注释 模块的UART功能 EMW3162 仅在使用UART相关API时启用, UART功能使用的引脚 EMW3162 使用模块引脚PIN20, 21, 22, 23 DMA2 Stream 2 模块的UART接收DMA功能 EMW3162 仅在使用UART相关API时启用 UART2 模块的UART功能 EMW3161 仅在使用UART相关API时启用 PA0, PA1, PA2, PA3 UART功能使用的引脚 EMW3161 使用模块引脚PIN45, 46, 47, 48 DMA1 Stream 5 模块的UART接收DMA功能 EMW3161 仅在使用UART相关API时启用 当使用软件库中提供的 NFC 相关函数时,如 OpenConfigmodeNFC 等。 外设 IIC1 已使用的功能 模块 注释 用于和NFC模块EMF2104通讯 所有 仅在使用NFC功能时启用 PB6, PB7, PB14 用于和NFC模块EMF2104通讯 EMW3162 使用模块引脚PIN1,2,13 EXTI Line14 用于和NFC模块EMF2104通讯 EMW3162 仅在使用NFC功能时启用 7
PB6, PB7, PB15 用于和NFC模块EMF2104通讯 EMW3161 使用模块引脚PIN6,28,29 EXTI Line15 用于和NFC模块EMF2104通讯 EMW3161 仅在使用NFC功能时启用 软件库内容和开发环境 使用 mxchipWNet 软件库进行开发时,硬件的连接方法如下: MXCHIP 提供的 mxchipWNet 软件包中包含如下的文件夹 Demos 文件夹中包含了基于 mxchipWNet 软件库开发的多个示例程序,用于演示软件库的各种功能,为用户提供参考。 HAL 目录中包含了独立于 mxchipWNet 软件库功能以外的与平台相关的硬件配置,常用功能实现。 Library 目录中包含了可以在各个开发环境中使用的 mxchipWNet 软件库,及其头文件。 Projects 目录中包含了在常用的开发环境中可以直接打开的,配置好的示例工程。 STM32……目录中包含了 ST 提供的用于操作 STM32 外设的 API 接口函数及其源代码,mxchipWNet 软件库会调用某些接 口函数。 可以使用 KEIL(RVMDK)或者 IAR 开发基于该软件库的应用程序。用户可以打开/Projects 文件夹,打开相应的工程文件。 以 KEIL 为例: 8
分享到:
收藏