WIFI学习第二天

Wi-Fi 6(802.11ax)

Wi-Fi 6是下一代802.11ax标准的简称。随着Wi-Fi标准的演进,WFA为了便于WiFi用户和设备厂商轻松了解其设备连接或支持的Wi-Fi型号,选择使用数字序号来对WiFi重新命名。另一方面,选择新一代命名方法也是为了更好地突出Wi-Fi技术的重大进步,它提供了大量新功能,包括增加的吞吐量和更快的速度、支持更多的并发连接等。根据WFA的公告,现在的Wi-Fi命名分别对应如下802.11技术标准:

和以往每次发布新的802.11标准一样,802.11ax也将兼容之前的802.11ac/n/g/a/b标准,老的终端一样可以无缝接入802.11ax网络。

Wi-Fi 6码流

编码方式

编码方式就是调制技术,即1个Symbol里面能承载的bit数量。从Wi-Fi 1到 Wi-Fi 6,每次调制技术的提升,都能至少给每条空间流速率带来20%以上的提升。

码率

理论上应该是按照编码方式无损传输,但现实没有这么美好。传输时需要加入一些用于纠错的信息码,用冗余换取高可靠度。码率就是排除纠错码之后实际真实传输的数据码占理论值的比例。

Wi-Fi 6核心技术

Wi-Fi 6(802.11ax)继承了Wi-Fi 5(802.11ac)的所有先进MIMO特性,并新增了许多针对高密部署场景的新特性。以下是Wi-Fi 6的核心新特性:

        OFDMA频分复用技术

        DL/UL MU-MIMO技术

        更高阶的调制技术(1024-QAM)

        空分复用技术(SR) & BSS Coloring着色机制

        扩展覆盖范围(ER)

OFDMA频分复用技术

OFDMA是从OFDM演进过来的,最早应用于通信技术。Wi-Fi 6标准里也采纳了这种技术来提高频谱的利用效率。在传统方式中,每个用户要发送数据(无论数据包的大小)都会占用整个信道,由于无线网络中传输大量的管理帧与控制帧,这些帧虽然数据包小但还是要占有整个信道。

802.11ax之前,数据传输采用的是OFDM模式,用户是通过不同时间片段区分出来的。每一个时间片段,一个用户完整占据所有的子载波,并且发送一个完整的数据包。

802.11ax中引入了一种更高效的数据传输模式,叫OFDMA(因为802.11ax支持上下行多用户模式,因此也可称为 MU-OFDMA),它通过将子载波分配给不同用户并在OFDM系统中添加多址的方法来实现多用户复用信道资源。迄今为止,它已被许多无线技术采用,例如3GPP LTE。此外,802.11ax标准也仿效LTE,将最小的子信道称为“资源单位(Resource Unit,简称RU)”,每个 RU 当中至少包含26个子载波,用户是根据时频资源块RU区分出来的。我们首先将整个信道的资源分成一个个小的固定大小的时频资源块RU。在该模式下,用户的数据是承载在每一个RU上的,故从总的时频资源上来看,每一个时间片上,有可能有多个用户同时发送。

OFDMA相比OFDM一般有三点好处:

       更细的信道资源分配。

       特别是在部分节点信道状态不太好的情况下,可以根据信道质量分配发送功率,来更细 腻化的分配信道时频资源。下图呈现出了不同子载波频域上的信道质量差异较大,802.11ax 可根据信道质量选择最优RU资源来进行数据传输。

       提供更好的QOS。

       因为802.11ac及之前的标准都是占据整个信道传输数据的,如果有一个QOS数据包需要发送,其一定要等之前的发送者释放完整个信道才行,所以会存在较长的时延。在 OFDMA模式下,由于一个发送者只占据整个信道的部分资源,一次可以发送多个用户的数 据,所以能够减少QOS节点接入的时延。

       更多的用户并发及更高的用户带宽。

OFDMA是通过将整个信道资源划分成多个子载波(也可称为子信道),子载波又按不同 RU类型被分成若干组,每个用户可以占用一组或多组RU以满足不同带宽需求的业务。 802.11ax中最小RU尺寸为2MHz,最小子载波带宽是78.125KHz,因此最小RU类型为26 子载波RU。以此类推,还有52子载波RU,106子载波RU,242子载波RU,484子载波 RU和996子载波RU,下表显示了不同信道带宽下的最大RU数。

OFDMA将一辆公共汽车(20MHz)的频宽划分成256个小座位(子载波),每个座位(频宽)固定大小为78.125KHz,但是一个小座位(子载波)太窄了,都坐不下最小的孩子(传输不了基本的报文),因此将26个小座位(子载波)捆绑在一起称为一个最小的RU(资源单元Resource Unit),一个RU为2MHz的频宽(又称为26-toneRU),一辆公共汽车(20MHz)最多可以同时运输9个乘客(9个并发用户),剩余的空间用作座位间的隔离,如下图20MHz频宽的RU划分情况:

最多可以有9个相同大小的RU,即可以并发9个用户。但如果用户输出的内容大小不同, 或优先级不同,就可以有其他的组合或占用更多的RU,例如4个52-RU与1个26-RU并发。在20M/40M/80M/160MHz频宽下一共有7种大小的RU,26-RU,52-RU,106-RU,242-RU,484-RU,996-RU及2x996-RU。

Wi-Fi 6既支持Downlink-OFDMA,又支持Uplink-OFDMA。在 Downlink里,AP根据用户下行的报文及优先级来决定分配RU的情况;但在Uplink-OFDMA里,执行起来要困难的多,AP通过触发帧告知终端可以分配的资源,终端与AP协商分配RU及终端前导帧(preamble)的同步。

RU数量越多,发送小包报文时多用户处理效率越高,吞吐量也越高,下图是仿真收益:

DL/UL MU-MIMO技术

MU-MIMO使用信道的空间分集来在相同带宽上发送独立的数据流,与OFDMA不同,所有用户都使用全部带宽,从而带来多路复用增益。终端受天线数量受限于尺寸,一般来说只有 1个或2个空间流(天线),比AP的空间流(天线)要少,因此,在AP中引入MUMIMO技术,同一时刻就可以实现AP与多个终端之间同时传输数据,大大提升了吞吐量。

DL MU-MIMO技术

MU-MIMO在802.11ac就已经引入,但只支持DL 4x4 MU-MIMO(下行)。在802.11ax中进一步增加了MU-MIMO 数量,可支持DL 8x8 MU-MIMO,借助DL OFDMA技术(下行),可同时进行MU-MIMO传输和分配不同RU进行多用户多址传输,既增加了系统并发接入量,又均衡了吞吐量。

UL MU-MIMO技术

UL MU-MIMO(上行)是802.11ax中引入的一个重要特性,UL MU-MIMO的概念和UL SU-MIMO的概念类似,都是通过发射机和接收机多天线技术使用相同的信道资源在多个空间流上同时传输数据,唯一的差别点在于UL MU-MIMO的多个数据流是来自多个用户。802.11ac及之前的802.11标准都是UL SU-MIMO,即只能接受一个用户发来的数据,多用户并发场景效率较低,802.11ax支持UL MU-MIMO后,借助UL OFDMA技术(上行),可同时进行MU-MIMO传输和分配不同RU进行多用户多址传输,提升多用户并发场景效率,大大降低了应用时延。

虽然802.11ax标准允许OFDMA与MU-MIMO同时使用,但不要OFDMA与MU-MIMO 混淆。OFDMA支持多用户通过细分信道(子信道)来提高并发效率,MU-MIMO支持多用户通过使用不同的空间流来提高吞吐量。下表是OFDMA与MU-MIMO的对比:

更高阶的调制技术(1024-QAM)

802.11ax标准的主要目标是增加系统容量,降低时延,提高多用户高密场景下的效率, 但更好的效率与更快的速度并不互斥。802.11ac采用的256-QAM正交幅度调制,每个符号传输8bit数据(2^8=256),802.11ax将采用1024-QAM 正交幅度调制,每个符号位传输10bit 数据(2^10=1024),从8到10的提升是25%,也就是相对于802.11ac来说, 802.11ax的单条空间流数据吞吐量又提高了25%。

需要注意的是802.11ax中成功使用1024-QAM调制取决于信道条件,更密的星座点距离需要更强大的EVM(误差矢量幅度,用于量化无线电接收器或发射器在调制精度方面的性能)和接受灵敏度功能,并且信道质量要求高于其他调制类型。

空分复用技术(SR) & BSS Coloring着色机制

Wi-Fi射频的传输原理是在任何指定时间内,一个信道上只允许一个用户传输数据,如 果Wi-Fi AP和客户端在同一信道上侦听到有其他802.11无线电传输,则会自动进行冲突避免,推迟传输,因此每个用户都必须轮流使用。所以说信道是无线网络中非常宝贵的资源, 特别在高密场景下,信道的合理划分和利用将对整个无线网络的容量和稳定性带来较大的影 响。802.11ax可以在2.4GHz或5GHz频段运行(与802.11ac不同,只能在5GHz频段运行),高密部署时同样可能会遇到可用信道太少的问题(特别是2.4GHz频段),如果能够提升信道的复用能力,将会对提升系统的吞吐容量。

802.11ac及之前的标准,通常采用动态调整CCA门限的机制来改善同频信道间的干扰,通过识别同频干扰强度,动态调整CCA门限,忽略同频弱干扰信号实现同频并发传输,提升系统吞吐容量。

例如下图,AP1上的STA1正在传输数据,此时,AP2也想向STA2发送数据,根据Wi-Fi射频传输原理,需要先侦听信道是否空闲,CCA门限值默认-82dBm,发现信道已被STA1 占用,那么AP2由于无法并行传输而推迟发送。实际上,所有的与AP2相关联的同信道客户端都将推迟发送。引入动态CCA门限调整机制,当AP2侦听到同频信道被占用时,可根据干扰强度调整CCA门限侦听范围(比如说从-82dBm 提升到-72dBm),规避干扰带来的影响,即可实现同频并发传输。

由于Wi-Fi客户端设备的移动性,Wi-Fi网络中侦听到的同频干扰不是静态的,它会随 着客户端设备的移动而改变,因此引入动态CCA机制是很有效的。

802.11ax中引入了一种新的同频传输识别机制,叫BSS Coloring着色机制,在PHY报文头中添加BSS color字段对来自不同BSS的数据进行“染色”,为每个通道分配一种颜色,该颜色标识一组不应干扰的基本服务集(BSS),接收端可以及早识别同频传输干扰信号并停止接收,避免浪费收发机时间。如果颜色相同,则认为是同一BSS内的干扰信号,发送将推迟;如果颜色不同,则认为两者之间无干扰,两个Wi-Fi设备可同信道同频并行传输。以这种方式设计的网络,那些具有相同颜色的信道彼此相距很远,此时我们再利用动态CCA 机制将这种信号设置为不敏感,事实上它们之间也不太可能会相互干扰。

扩展覆盖范围(ER)

由于802.11ax标准采用的是Long OFDM symbol发送机制,每次数据发送持续时间从原来的3.2us提升到12.8us,更长的发送时间可降低终端丢包率;另外802.11ax最小可仅使用2MHz频宽进行窄带传输,有效降低频段噪声干扰,提升了终端接受灵敏度,增加了覆盖距离。

目标唤醒时间(TWT)

目标唤醒时间TWT(Target Wakeup Time)是802.11ax支持的另一个重要的资源调度功能,它借鉴于802.11ah标准。它允许设备协商他们什么时候和多久会被唤醒,然后发送或接收数据。此外,Wi-Fi AP可以将客户端设备分组到不同的TWT周期,从而减少唤醒后同时竞争无线介质的设备数量。TWT还增加了设备睡眠时间,对采用电池供电的终端来说,大大提高了电池寿命。

此外,TWT可配合OFDMA技术,采用一种称为“广播 TWT”操作,AP可以设定编 排议程并将TWT值提供给多个STA,这样一来,双方之间就不需要存在个别的TWT协议, 同时唤醒多个设备实现传输视频、语音和数据等不同业务的多设备并行连接,并根据不同业 务调整流量比例和优先级,从而提升用户体验。

TWT可以为电池供电的IOT设备节约30%以上的电量,使Wi-Fi真正成为IOT传输标准中的重要一员。

Wi-Fi发展历程

无线Wi-Fi 20年的发展历程,其实就是人们对高带宽不断追求的过程。Wi-Fi几乎每经过4-5年左右就会出现一次技术变革,变革的主要目的是提高带宽。

11n,第一次在Wi-Fi技术里使用了MIMO,在2.4G与5GHz下支持最多4根天线4空间流,同时支持40MHz的信道捆绑技术,以提高带宽。802.11n 40MHz频宽下单空间流理论最大带宽为150Mbps,因此4空间流最大带宽为600Mbps。

11ac,主要5GHz的信道上做了优化,支持80MHz的频宽(wave2阶段开始支持160MHz),单条空间流在80MHz的频宽下最大带宽达到433Mbps,虽然11ac设计可以支持8空间流,但实际产品中最多只用到4条流,4空间流时可达1.733Gbps;在11acwave2阶段开始支持下行MU-MIMO(多用户的MIMO),将AP由每时刻只能有一个终端通信的Hub模式变成了可以多用户同时通信的交换模式,有效改善了网络资源利用率,让无线AP的通信能力大幅提升。

11ax,2018.10月,Wi-Fi联盟为更好的推广Wi-Fi技术,参考通讯技术命名方式,重新命名Wi-Fi标准,其中802.11ax被命名为Wi-Fi 6,11ac被命名为Wi-Fi 5,以此类推。Wi-Fi联盟计划在2019年对Wi-Fi 6产品进行认证,因此2019年被看作是Wi-Fi 6元年。Wi-Fi 6单空间流在80MHz的频宽下最大速率达到600Mbps。同时Wi-Fi 6更注重用户体验的提升。

802.11ax(Wi-Fi 6)新技术带来的影响

Wi-Fi 6将在接下来的5年成为Wi-Fi市场的主力技术,会带来以下改变以提高接入用户的体验:

        理论带宽9.6Gbps的超高带宽

        AP接入容量是11ac的4倍,支持更多的终端并发接入

终端功耗节约30%以上,满足物联网终端对低功耗的要求

<think>我们正在讨论如何学习STM32的C语言编程,用户要求提供最佳资源和方法。根据之前的对话历史和引用内容,我们可以整合以下信息:引用[1]提到:-《STM32库开发实战指南》:国内很好的入门书籍,基于标准库-《MasteringSTM32》:英文书籍,全面介绍STM32开发-正点原子、野火电子等厂商的配套教程:通常与开发板配套,适合自学引用[2]强调:-初学者建议从STM32F103系列开始学习(因为资料最多,应用广泛),然后再学习其他系列(如F4/F7/H7)引用[3]提供:-江协科技/江科大的STM32入门教程(标准库开发)-物联网应用开发教程(CSDN博客)-嘉立创EDA教程(原理图PCB设计)结合用户之前的问题(学习速成STM32的C语言编程代码)和我的回答(强调硬件操作、资源优化、实战路径),现在需要整合出最佳资源和方法。###最佳学习资源和方法####一、核心学习资源1.**书籍教程**-入门首选:《STM32库开发实战指南》[^1](中文,基于标准库)-进阶选择:《MasteringSTM32》[^1](英文,全面覆盖HAL/LL库)2.**视频教程**-[江协科技STM32入门教程](https://www.bilibili.com/video/BV1th411z7sn)[^3]:-特点:手把手代码实操,涵盖GPIO/UART/ADC等关键外设-配套[各章节详细笔记](https://blog.csdn.net/m0_61712829/category_12553358.html)[^3]3.**开发板配套资料**-正点原子/野火电子开发板教程:-提供完整的例程库(标准库/HAL库)和硬件原理图-典型例程:LED/按键/定时器/I2C/SPI等####二、高效学习方法1.**硬件准备**-开发板选择:**STM32F103C8T6最小系统板**(成本低,资料丰富)[^2]-调试工具:ST-LinkV2下载器2.**软件工具链**-IDE:KeilMDK(商用)或VSCode+PlatformIO(开源)-配置工具:STM32CubeMX(自动生成初始化代码)3.**分阶段实践**```mermaidgraphLRA[GPIO控制LED]-->B[外部中断-按键]B-->C[定时器-PWM呼吸灯]C-->D[ADC-温度采样]D-->E[通信协议-UART/I2C/SPI]E-->F[RTOS多任务]```4.**关键代码速成技巧**-寄存器级操作(提升性能):```c//直接操作寄存器点亮PA5引脚LEDRCC->APB2ENR|=RCC_APB2ENR_IOPAEN;//使能GPIOA时钟GPIOA->CRL&=~(0xF<<20);//清空PA5配置GPIOA->CRL|=(0x3<<20);//推挽输出模式GPIOA->ODR|=(1<<5);//输出高电平```-HAL库快速开发(降低门槛):```cHAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);//库函数点亮LED```####三、问题驱动学习法1.每学一个外设,尝试解决一个实际问题:-例:用定时器中断实现精准1秒闪烁→理解时钟树配置2.参考开源项目改造:-GitHub搜索关键词:`stm32f103example`、`stm32hallibrary`####四、调试能力培养1.必会调试工具:-逻辑分析仪(抓取SPI/I2C波形)-STM32CubeMonitor(实时监控变量)2.常见问题定位:-时钟未使能→检查`RCC`相关寄存器-中断未触发→检查`NVIC`配置优先级>核心建议:**先跑通例程,再修改例程,最后从头写例程**。避免直接啃手册,从实践反推理论[^1][^2]。###推荐搜索方法1.**精准搜索关键词**-例:`STM32F103GPIO配置标准库`、`HAL库UART中断接收`2.**问题排查搜索**-加入错误现象:`STM32I2CSCL无输出硬件I2C`3.**权威资源优先**-官方文档:[STM32F103参考手册](https://www.st.com/resource/en/reference_manual/cd00171190-stm32f101xx-stm32f102xx-stm32f103xx-stm32f105xx-and-stm32f107xx-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf)-社区论坛:STM32中文社区、StackOverflow§§相关问题§§1.如何选择STM32F103开发板?2.STM32标准库和HAL库的主要区别是什么?3.如何用STM32CubeMX配置FreeRTOS?4.STM32的时钟树配置有哪些关键点?5.如何通过寄存器操作优化GPIO翻转速度?</think>以下是根据您的需求和引用内容整合的**STM32 C语言编程学习最佳路径与资源**,结合高效学习方法和权威资料推荐: --- ### 一、学习策略与阶段划分 #### 阶段1:基础入门(2-3周) 1. **硬件准备** - 开发板选择:**STM32F103系列**(如STM32F103C8T6最小系统板),资料最丰富且兼容性强[^2] - 调试工具:ST-Link V2下载器 2. **核心学习法** ```mermaid graph LR A[掌握C语言硬件操作] --> B[GPIO控制LED/按键] B --> C[定时器中断] C --> D[ADC/DAC采样] D --> E[UART/I2C/SPI通信] ``` #### 阶段2:项目实战(3-4周) - **典型项目路线**: 传感器数据采集 → OLED显示 → 物联网传输(MQTT) → FreeRTOS多任务管理 --- ### 二、最佳学习资源推荐 #### 1. 书籍教程(系统化学习) | 资源名称 | 特点 | 适用阶段 | |----------|------|----------| | [《STM32库开发实战指南》](https://item.jd.com/12830473.html) | 国内经典,基于标准库,代码逐行解析 | 入门→进阶 | | [《Mastering STM32》](https://www.amazon.com/Mastering-STMicroelectronics-Carmine-Novello/dp/3946136001) | 英文原版,覆盖HAL/LL库,硬件原理深入 | 进阶→高级 | #### 2. 视频教程(手把手实操) - **首推**:[江协科技STM32标准库教程](https://www.bilibili.com/video/BV1th411z7sn) - 特点:**硬件操作+代码调试全流程演示**,配套[详细笔记](https://blog.csdn.net/m0_61712829/category_12553358.html)[^3] - 重点章节:GPIO结构体配置、定时器PWM、DMA传输 - 备选:正点原子/野火开发板配套视频(与硬件完全匹配) #### 3. 开源项目(实战进阶) ```c // 物联网传感器节点示例(快速理解外设整合) void main() { init_dht11(); // 温湿度传感器 init_bh1750(); // 光照传感器 init_esp8266(); // WiFi模块 while(1) { float temp = read_temp(); send_mqtt_data("sensor/temp", temp); // 物联网传输 HAL_Delay(1000); } } ``` - 项目平台: - GitHub搜索关键词:`STM32F103 Project`、`STM32 HAL Example` - 推荐仓库:[STM32CubeF1](https://github.com/STMicroelectronics/STM32CubeF1)(官方外设例程) #### 4. 工具资源 | 工具类型 | 推荐工具 | 核心用途 | |----------|----------|----------| | **IDE** | Keil MDK / VSCode+PlatformIO | 代码编写+调试 | | **配置工具** | [STM32CubeMX](https://www.st.com/en/development-tools/stm32cubemx.html) | 自动生成初始化代码 | | **硬件设计** | [嘉立创EDA](https://lceda.cn/) | 绘制原理图/PCB[^3] | --- ### 三、高效学习技巧 1. **代码学习法** - 修改例程:在官方例程中**故意制造错误**(如关闭时钟使能),观察故障现象 - 寄存器对比:对比库函数与寄存器操作(如GPIO配置) ```c // 标准库 vs 寄存器操作 GPIO_Init(GPIOC, &gpio); // 库函数 GPIOC->CRH |= 0x00300000; // 直接操作寄存器(PC13) ``` 2. **调试优先原则** - 必用工具:`ST-Link` + `STM32CubeMonitor`(实时监测变量) - 关键技巧:在中断服务函数设置断点,检查执行时序 3. **硬件知识聚焦** - 重点掌握:时钟树、NVIC中断优先级、DMA数据传输原理 - 速查资料:[STM32F103参考手册](https://www.st.com/resource/en/reference_manual/cd00171190-stm32f101xx-stm32f102xx-stm32f103xx-stm32f105xx-and-stm32f107xx-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf)第8章(GPIO)、第10章(中断) --- ### 四、避坑指南 1. **库选择建议** | 库类型 | 适用场景 | 学习难度 | |--------|----------|----------| | 标准库(SPL) | 深入理解硬件原理 | ★★★☆☆ | | HAL库 | 快速开发复杂项目 | ★★☆☆☆ | | LL库 | 性能敏感型应用 | ★★★★☆ | 2. **常见误区** - 错误:直接啃芯片手册 → 正确:**先跑通例程,再查阅手册** - 错误:忽视硬件连接 → 正确:**用万用表测量关键引脚电平** > 学习口诀:**先功能后优化,先库函数后寄存器**。从GPIO控制LED开始,2天内实现第一个外设驱动[^1][^2]。 --- ### 五、搜索方法建议 1. **精准搜索关键词** - 基础操作:`STM32F103 [外设名] 配置 标准库`(如:`STM32F103 ADC 配置 标准库`) - 问题排查:`STM32 [现象] 原因`(如:`STM32 UART无输出 原因`) 2. **权威源优先** - 官方文档:`site:st.com` - 工程师社区:`site:stackoverflow.com stm32 hal uart` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值