xuos-web/docs/doc/hardware/connector/WiFi.md

97 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# WiFi
## 模块介绍
### ESP8266
<div style="display: flex;justify-content: center;align-items: center;">
<img src = "./imagesrc/esp8266.jpg" alt="esp8266" width =50% max-width= 50% >
</br>
</div>
ESP8266芯片是一款串口转无线模芯片内部自带固件用户操作简单无需编写时序信号等。</br>
#### ESP8266 特性:
* 802.11 b/g/n
* 内置低功耗32位CPU:可以兼作应用处理器
* 内置10 bit高精度ADC
* 内置TCP/IP协议栈
* 内置TR开关、balun、LNA、功率放大器和匹配网络
* 内置PLL、稳压器和电源管理组件
* 支持天线分集
* STBC、1x1 MIMO、2x1 MIMO
* A-MPDU、A-MSDU的聚合和0.4 s的保护间隔
* WiFi @ 2.4 GHz,支持 WPA/WPA2 安全模式
* 支持STA/AP/STA+AP工作模式
* 支持Smart Config功能包括Android和iOS设备
* SDIO 2.0、H) SPI、UART、I2C、I2S、IR Remote Control、PWM、GPIO
* 深度睡眠保持电流为10 uA,关断电流小于5 uA
* 2 ms之内唤醒、连接并传递数据包
* 802.11b模式下+20 dBm的输出功率
* 待机状态消耗功率小于1.0 mW (DTIM3)
* 工作温度范围:-40°C - 125°C
* 通过 FCC, CE, TELEC, WiFi Alliance 及 SRRC 认证
## 软件结构
<div style="display: flex;justify-content: center;align-items: center;">
<img src = "./imagesrc/esp8266_swstruct.png" alt="esp8266 software structure" width =40% max-width= 40% >
</br>
</div>
软件结构如上图故测试WiFi的时候需要添加 **AT protocol** 和**Mqtt**
## 模块配置和代码树
[\*] Enable Wifi ---></br>
&ensp;&ensp;&ensp;&ensp;--- Enable Wifi</br>
&ensp;&ensp;&ensp;&ensp;[\*] Espressif ESP8266 ---> (里面的默认设置就可以使用,无需修改)</br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;--- Espressif ESP8266</br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;[ ] Enable initialize by thread</br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;[\*] **Enable sample模块注册测试程序 选定后会再启动时自动加载模块)**</br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;(xiaoshanos) WIFI ssid </br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;(12345678) WIFI password</br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;(uart2) AT client device name </br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;(512) The maximum length of receive line buffer</br></br>
[\*] Enable AT protocol ---> (里面的默认设置就可以使用,无需修改)</br>
&ensp;&ensp;&ensp;&ensp;--- Enable AT protocol</br>
&ensp;&ensp;&ensp;&ensp;Socket abstraction layer --->(里面的默认设置就可用,无需修改)</br>
&ensp;&ensp;&ensp;&ensp;Network interface device --->(里面的默认设置就可用,无需修改)</br>
&ensp;&ensp;&ensp;&ensp;AT commands ---> (里面的默认设置就可用,无需修改,但可添加调试信息)</br></br>
[\*] Enable AT commands</br>
&ensp;&ensp;&ensp;&ensp;**[ ]Enable debug log output(simple)** </br>
&ensp;&ensp;&ensp;&ensp;[\*]Enable AT commands client</br>
&ensp;&ensp;&ensp;&ensp;(2) The maximum number of supported clients</br>
&ensp;&ensp;&ensp;&ensp;[\*]Enable BSD Socket support</br>
&ensp;&ensp;&ensp;&ensp; **[ ]Enable print RAW format communication data(complex)**</br>
&ensp;&ensp;&ensp;&ensp;(128)The maximum length of AT Commands buffer</br></br>
[\*] Enable Mqtt --->当需要测试mqtt时可以打开里面的默认设置就可以使用无需修改</br>
<div>
<img src = "./imagesrc/esp8266_CodeTree.png" alt="esp8266_CodeTree" width =300 >
</div></br></br>
## 连接方式
<div style="display: flex;justify-content: center;align-items: center;">
<img src = "./imagesrc/esp8266_link.png" alt="esp8266 link" width =40% max-width= 40% >
</br>
</div></br></br>
## 用户接口
```c
static const struct netdev_ops esp8266_netdev_ops{
esp8266_netdev_set_up,
esp8266_netdev_set_down,
esp8266_netdev_set_addr_info,
esp8266_netdev_set_dns_server,
esp8266_netdev_set_dhcp,
#ifdef NETDEV_USING_PING
esp8266_netdev_ping,
#endif
#ifdef NETDEV_USING_STAT
esp8266_netdev_stat,
#endif
}
```