IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 深入了解ESP8266WIFI模块的工作原理及特点---AT指令详解---透传概念----TCP和UDP的特点与区别-嵌入式软件面试常问 -> 正文阅读

[网络协议]深入了解ESP8266WIFI模块的工作原理及特点---AT指令详解---透传概念----TCP和UDP的特点与区别-嵌入式软件面试常问

为什么要拿这个简单的模块来讲一下呢?因为根据本人最近嵌入式软件面试来看,对于我们嵌入式应届,面试官主要问我们简历上做过的项目,大多应届生应该都接触过ESP8266或者ESP32吧,他们经常会对我们使用过的模块进行深入的追问,我们很有必要将自己使用过的模块深入学习了解,这篇文章就能帮到你哦。

我们来先认识一下ESP8266模块:

ESP8266 是串口型 WIFI,速度比较低,不能用来传输图像或者视频这些大容量的数据,主要应用于数据量传输比较少的场合,比如温湿度信息,一些传感器的开关量等。

在这里插入图片描述在这里插入图片描述

其他的电气特性,功耗特性我们就先不认识啦,我们在使用中也用不到这些。

模块实物图

在这里插入图片描述

资源介绍

在这里插入图片描述

原理图

在这里插入图片描述

功能介绍

无线组网

ESP8266 支持 softAP 模式,station 模式softAP + station 共存模式三种。
利用 ESP8266 可以实现十分灵活的组网方式和网络拓扑。

SoftAP:

即无线接入点,是一个无线网络的中心节点。通常使用的无线路由器就是一个无线接入点。

在这里插入图片描述

Station:

即无线终端,是一个无线网络的终端端。
在这里插入图片描述

SoftAP + station 共存模式

ESP8266 支持 softAP+station 共存的模式,用户设备、手机等可以作为station 连入 ESP8266 的 softAP 接口,同时,可以控制 ESP8266 的 station接口通过路由器(AP)连入 internet。
在这里插入图片描述

透传

透传,即透明传输功能。Host 通过 uart 将数据发给 ESP8266,ESP8266 再
通过无线网络将数据传出去;ESP8266 通过无线网络接收到的数据,同理通过uart 传到 Host。ESP8266 只负责将数据传到目标地址,不对数据进行处理,发送方和接收方的数据内容、长度完全一致,传输过程就好像透明一样。

透传需要先建立连接:
? 无线网络参数:
? 网络名称(SSID)
? 安全模式
? 密钥(password)
? TCP 连接参数
? 协议类型
? 连接类型(client)
? 目的 IP 地址
? 目的端口
? 串口参数
? 波特率
? 数据位
? 检验位
? 停止位
? 硬件流控

UART 成帧机制

我们讲一下USART传输因为我们ESP8266用来传输数据量较小,所以使用USART直接与单片机传输 。
判断 UART 传来的数据时间间隔,若时间间隔大于 20ms,则认为一帧结束;否则,一直接收数据到上限值 2KB,认为一帧结束。ESP8266 模块判断UART 来的数据一帧结束后,通过 WIFI 接口将数据转发出去。成帧时间间隔为 20ms,一帧上限值为 2KB。

WIFI加密

我们知道WIFI网络有很多种加密方式,下面简单介绍一下,此处不过多纠结,与我们研究的无关。

ESP8266 支持多种无线网络加密方式,包括:
? WEP (only station)
? WPA-PSK/TKIP
? WPA-PSK/AES
? WPA2-PSK/TKIP
? WPA2-PSK/AES

ESP8266模块的省电机制:

在这里插入图片描述
在这里插入图片描述

AT 指令说明

描述 Espressif ESP8266 模块 AT 指令集功能以及使用方法。

AT 指令集概述

指令集分为:基础 AT 命令、Wifi 功能 AT 命令、TCP/IP 工具箱 AT 命令等。
在这里插入图片描述
注意:
1)不是每条 AT 指令都具备上述 4 类命令。
2)后文指令中[ ]内数据为缺省值,不必填写或可能不显示。
3)波特率 115200。
4)参数为字符串的,需要加上双引号。例如:
AT+CWSAP=“ESP_756190”,“20130826”,1,4

指令集

在这里插入图片描述

AT+CWMODE

在这里插入图片描述
在这里插入图片描述

AT+CWJAP

在这里插入图片描述

AT+CWLAP

在这里插入图片描述

AT+CWQAP

在这里插入图片描述在这里插入图片描述

AT+ CWSAP

在这里插入图片描述

AT+CWLIF

在这里插入图片描述

AT+ CIPSTATUS

在这里插入图片描述

AT+CIPSTART

在这里插入图片描述在这里插入图片描述

AT+CIPSEND

在这里插入图片描述在这里插入图片描述

AT+CIPCLOSE

在这里插入图片描述
在这里插入图片描述

AT+CIFSR

在这里插入图片描述

AT+ CIPMUX

在这里插入图片描述
在这里插入图片描述

AT+ CIPSERVER

在这里插入图片描述

AT+ CIPMODE

在这里插入图片描述

AT+ CIPSTO

在这里插入图片描述

+IPD 接收到的网络数据

在这里插入图片描述

TCP/UDP/透传

TCP

TCP是一种面向连接的,提供可靠交付服务和全双工通信的,基于字节流的端到端的传输层通信协议。
TCP在传输数据之前必须先建立连接,数据传输结束后要释放连接。
每一条TCP连接提供的是端到端的服务,故TCP不提供广播或多播服务。
TCP提供可靠交付,有错误检查和数据重传机制。
TCP是面向字节流的。虽然应用进程和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字流。TCP并不知道所传输的字节流的含义。

UDP

UDP是一种无连接的,尽最大努力交付的,基于报文的端到端的传输层通信协议。
UDP,在发送数据之前不需要建立连接。
UDP不保证可靠交付,主机不需要位置复杂的连接状态。
UDP是面向报文的。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的的边界,即应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。在接收端,UDP一次交付一个完整的报文。
UDP没有拥塞控制,网络出现的拥塞不会使源主机的发送速率降低。
UDP支持一对一、一对多、多对一和多对多的交互通信。
UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

TCP和UDP编程:

网络间通信要解决的是不同主机进程间的通信需要解决的首要问题是网络间进程标识问题以及多重协议的识别问题随着UNIX操作系统的广泛应用Socket成为最流行的网络通信应用程序的开发接口。

Socket是一种文件描述符,代表了一个通信管道的一个端点 在Socket类型的文件描述符上,可以完成建立连接,数据传输等操作

socket套接字分类

常用的Socket类型有两种:
1.流式Socket:SOCK_STREAM,提供面向连接的Socket
2.数据报式Socket:SOCK_DGRAM,提供面向无连接的

字节序的概念:指多字节数据的存储顺序

分类:

大端格式:将高位字节数据存储在低地址。
小端格式:将低位字节数据存储在低地址
在这里插入图片描述
网络协议制定了通讯字节序----大端
在主机内小端,因此我们进行网络通讯时要进行转换可以看看inet_ntop,inet_pton, htons htonl ntohs ntohl函数
我们在这里只放一下TCP和UDP的服务模型吧.

服务模型

在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:53:47  更:2022-10-22 21:55:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 13:17:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码