WIFI无线通信专栏
文章平均质量分 79
无线互联世界
smartvxworks
VxWorks,Linux,QNX,PowerPC,ARM,FPGA,DSP,嵌入式系统架构师,QT UI架构师,项目经理,军工领域耕耘数十载,一起成长,不断进步。
一个优雅的程序员、一个沉稳的架构师。
展开
-
Linux wext和nl80211接口简介
Linux无线驱动接口有两种标准接口,wext(Wireless Extensions无线扩展接口)和nl80211接口。在linux-2.6.18版本之前,linux内核代码中并没有提供无线驱动接口以及无线驱动协议栈。wext是由开发者Jean Tourrilhes (惠普实验室软件工程师)定义的一套供用户层软件访问无线驱动以及驱动事件通知用户层的接口。原创 2023-08-24 15:21:13 · 690 阅读 · 0 评论 -
【WiFi】Hostapd工作流程分析
Hostapd是一个运行在用户态的守护进程,可以通过Hostapd来读取配置文件,通过nl802.11来控制底层的状态如RTS/CTS beacon帧间隔等等信息;也可以读取相关的信息。原创 2023-08-03 11:47:40 · 2877 阅读 · 4 评论 -
【WiFi】国产WiFi芯片
WiFi芯片是一种用于无线网络连接的芯片,内部包括射频收发器、基带处理器、天线等组件。它的工作原理是通过射频收发器将数字信号转换成无线电波信号,然后通过天线将信号发送出去。当其他设备接收到这个信号后,它们会将信号转换成数字信号,并通过基带处理器进行解码和处理,然后将处理后的数据传输到计算机或其他设备上。WiFi芯片的使用频率包括2.4GHZ和5GHZ。在其工作过程中,还需要进行一系列的协议来规定其工作方式和数据传输方式,以确保设备之间的互通性和兼容性。原创 2023-08-02 17:31:22 · 1272 阅读 · 0 评论 -
【WiFi】Wi-Fi HaLow技术
在向大家我们精心挑选的10家公司及其物联网Wi-Fi芯片/模块之前,先简要介绍一下面向物联网应用的无线通信技术、Wi-Fi联盟专门针对物联网而制定的Wi-Fi HaLow标准,以及在为物联网应用设计选择Wi-Fi芯片和模块时应考虑哪些因素。随着智能家居、智能表计、智能交通、智能安防,以及工业物联网的发展,针对物联网应用的无线通信技术也得到了快速发展。适合物联网的无线通信技术主要有两类:一是Wi-Fi、ZigBee和蓝牙等短距离通信;原创 2023-08-02 17:09:38 · 1654 阅读 · 0 评论 -
【WiFi】Wi-Fi 6(802.11ax)解析24:802.11ax中MU-MIMO和OFDMA的区别
以上,笔者大致把802.11ax中相关MU-MIMO和OFDMA的技术内容做一个技术笔记,本文仅仅偏向于技术笔记,以为很多物理层相关技术,尤其是MIMO的包含很多定义明确的概念,但是本文并没有考究。故本文如果有不对的地方,还请见谅。原创 2023-08-02 14:30:38 · 1487 阅读 · 0 评论 -
【WiFi】WIFI芯片的研发
请注意,WiFi芯片的研发是一项复杂的任务,需要涉及多个领域的知识和经验。通常情况下,这需要一个专门的团队或公司来完成。如果您是初学者,建议先深入了解相关的无线通信原理、电路设计和嵌入式系统开发等知识,然后逐步学习和实践。可以参考相关的学术文献、参加相关的培训课程或寻求专业工程师的指导。原创 2023-07-13 09:15:33 · 385 阅读 · 0 评论 -
【WiFi】wifi芯片架构与原理说明
WiFi芯片是一种用于无线网络通信的集成电路,它负责将数据转换为无线信号并进行传输。总结起来,WiFi芯片的架构包括无线传输模块、基带处理器、MAC层控制器和主机接口。它的工作原理是将数据转换为无线信号,并通过天线进行传输和接收,然后通过基带处理器进行处理和解码,最终将数据传递给主机设备。这样,我们可以通过WiFi芯片实现无线网络通信。原创 2023-07-12 18:14:45 · 3794 阅读 · 0 评论 -
【WiFi】cfg80211的kernel架构(基于Linux 3.08)
对于管理帧,通常是ieee80211_rx_handlers调用ieee80211_rx_h_mgmt,然后用wq的方式调用ieee80211_iface_work进一步调用ieee80211_sta_rx_queued_mgmt去处理。手头没任务,调用driver的channel_switch(回调实现后面的改chan值)或者hw_config函数,然后把local的chan值改一下。初始化ieee80211_local各个成员,并将wiphy.priv指向ieee80211_local。原创 2023-07-04 14:24:48 · 1299 阅读 · 0 评论 -
【WiFi】WIFI抗干扰分析介绍及来源
今天, WLAN 已经不再仅仅是最初的一种简便的网络接入方式,企业的许多重要应用,诸如语音、视频、定位等服务都逐渐部署到无线网络上。即便是普通的网络访问,用户也是希望带宽越高越好。随着应用的增加,无线干扰问题对网络服务的质量影响日显突出。原创 2023-06-02 18:13:45 · 3062 阅读 · 0 评论 -
【Linux】浅谈网络协议栈-网桥br0
简单来说,桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。交换机就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。于是,与交换机相连的若干主机就能够通过交换机的报文转发而互相通信。如下图:主机A发送的报文被送到交换机S1的口,由于eth0与eth1、eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出 去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、D。原创 2023-05-09 09:10:56 · 388 阅读 · 0 评论 -
【WIFI】无线通信 - 三、四地址(Addressing Mechanism)
IEEE 802.11指定了四种地址机制,由MAC帧头部Frame Control下的flag字段前两bit决定。第一个bit指示to DS(distribution system),第二个bit指示from DS。每个bit可以为0或1,所以总共可以构造出四种情况。(如下图中红色圈住的部分,最后一个bit指代上述第一个bit,倒数第二个bit指代上述第二个bit。转载 2023-05-05 15:08:34 · 3323 阅读 · 0 评论 -
【WIFI】WiFi驱动中的Band Steering功能
Band Steering功能并不复杂,主要考虑避免出现无法连接上的异常情况。要兼容只支持一个频段的终端能正常连接。对支持两个频段的终端,在算法上一定要保证不出现错误选择,同时也可以考虑其他因素对频段选择结果的影响。上面的流程中引入了对RSSI强度的判断,如果RSSI太弱,算法上会放弃preferband的选择,改作使用other band。转载 2023-05-04 14:41:00 · 2343 阅读 · 0 评论 -
【WIFI】802.11AX(WIFI6)无线协商速率计算
WiFi理论协商速率 =(符号位长×码率×子载波数量×空间流)÷ 传输时间*符号位长:不同调制方式的大小不同,某种调制方式下为一定值码率:不同调制方式的大小不同,某种调制方式下为一定制子载波数量:这里只计算有效子载波数量,即携带有效数据的载波数量空间流:就是我们常说的几发几收,1T1R,2T2R这种东西传输时间:不同协议时间不同,为一定值,注意我们计算时这里的时间要加上GI(帧间间隙)这个值在协议规范也是有一系列固定值的。能查到这里来的应该都是对802.11有一定了解的,所以一些细节东西就不展开去讲。转载 2023-04-21 09:27:28 · 3003 阅读 · 0 评论 -
【WIFI】WIFI基本知识汇总
这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习。因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种情况就直接英文来描述了。主要内容:一、基本概述二、实践基础三、一些原理四、补充五、其它============================目前有线网络中最著名的是以太网(Ethenet),但是无线网络WLAN是一个很有前景的发展领域,虽然可能不会完全取代以太网,但是它正拥有越来越多的用户,无线网络中最有前景的是Wifi。原创 2023-03-14 11:36:51 · 1828 阅读 · 0 评论 -
【WIFI】WiFi-hostapd-supplicant源码走读
AP设备必须先检测雷达当前工作的信道,这个过程称为CAC (Channel Availability Check).一旦AP设备检测到雷达的工作信道,AP会通知工作在此信道的Client停止数据传输,该信道成为不可用信道。如果是自定义信道,判断此信道是否是DFS信道,如果是DFS信道且当前的信道状态不为available,则进行CAC检测(大于60秒),检测完成后使用此信道,检测失败后还没看,国家码配置完成后,如果是ACS信道自动选择,则会进行ACS信道选择一个合适的信道。进入enabled状态。原创 2023-03-17 18:08:29 · 609 阅读 · 1 评论 -
【WIFI】WIFI-HT的意思
就是149+153两个信道组成的40MHz频宽,11na_ht40minus代表信道叠加时是向下减的叠加,例如配了这个,信道161,就等于是161+157组成了40M频宽的新信道。由于802.11n有个特性是40M频宽,该频宽是通过以前的两个20M信道叠加起来后生成的,并且叠加时两信道一个是主信道一个是副信道,这里的plus和minus都是针对主信道说的,所以11na_ht40plus代表40M频宽时的2个信道叠加向上加的叠加,例如当前信道是149,配成40M频宽需要叠加另外一个信道,原创 2023-03-17 18:12:13 · 1367 阅读 · 1 评论 -
【WIFI】WiFi-交互过程分析
1. 数据:数据数据包的作用是用来携带更高层次的数据 (如 IP 数据包,ISO7 层协议)。它负责在工作站之间传输数据2. 管理:管理数据包控制网络的管理功能1) 信标帧 (Beacons): 在无线设备中,定时依次按指定间隔发送的有规律的无线信号 (类似心跳包),主要用于定位和同步使用2) 解除认证 (Deauthentication) 数据包管理帧负责监督,主要用来加入或退出无线网络,以及处理接入点之间连接的转移事宜。原创 2023-03-24 10:04:22 · 3886 阅读 · 2 评论 -
Linux网络设备之注销
在注销网络设备时,会调用pci_driver->remove函数,以e100网卡驱动为例,实际调用e100_remove,该函数调用函数unregister_netdev进行设备注销操作;函数调用关系图如下,注销分为两步:(1) 回滚注册操作,进行初步注销,过程中如果设备尚未关闭,则需先调用dev_close_many将设备关闭;(2) 将设备加入到net_todo_list,然后通过netdev_run_todo进行设备最终的注销,其中包括调用netdev_wait_allre...转载 2022-04-21 08:50:57 · 906 阅读 · 1 评论 -
linux的网络接口之扫盲
(1)网络接口的命名 这里并不存在一定的命名规范,但网络接口名字的定义一般都是要有意义的。例如: eth0: ethernet的简写,一般用于以太网接口。 wifi0:wifi是无线局域网,因此wifi0一般指无线网络接口。 ath0: Atheros的简写,一般指Atheros芯片所包含的无线网络接口。 lo: local的简写,一般指本地环回接口。 (2)网络接口如何工作 网络接口是用来发送和接受数据包的基本设备。 系统中的所有网络接口组成一个链状结构..原创 2022-04-20 09:43:26 · 1859 阅读 · 0 评论 -
Linux下监测网卡状态
此代码主要对Linux下网卡4种状态进行检测,可以检查:网卡是否存在;网卡是否down;网卡UP,插了网线;网卡UP,没有插网线Linux下监测网卡状态:exist、down、up link、up unplugg。原创 2022-11-11 10:03:00 · 3609 阅读 · 0 评论 -
Linux内核中sk_buff结构详解
sk_buff结构体中的都是sk_buff的控制信息,是网络数据包的一些配置,真正储存数据的是sk_buff结构体中几个指针指向的数据区中,线性数据区的大小 = (skb->end - skb->head),对于每个数据包来说这个大小都是固定不变的,在传输过程中skb->end和skb->head所指向的地址都是不变的,这里要注意这个地址不是本机的地址,如果是本机的地址那么数据包传到其他主机上这个地址就是无效的,所以这个地址是这个skb缓冲区的相对地址。各层协议头部相关信息放在线性数据区中。原创 2022-12-30 09:32:12 · 2431 阅读 · 0 评论 -
Linux网络性能评估工具iperf 、CHARIOT测试网络吞吐量
在完成iperf安装后,执行“iperf3 –h”即可显示iperf的详细用法。iperf的命令行选项共分为三类,分别是客户端与服务器端公用选项、服务器端专用选项和客户端专用选项,下面对常用的选项进行介绍。服务器端专用选项的含义如表1所示。表1 服务器端专用选项的含义命令行参数含义描述-s将iperf以server模式启动,例如:iperf3 –s,iperf3默认启动的监听端口为5201,可以通过“-p”选项修改默认监听端口-D。原创 2022-10-08 18:50:23 · 2772 阅读 · 0 评论 -
linux网络之数据包的接受过程
网卡收包从整体上是网线中的高低电平转换到网卡FIFO存储再拷贝到系统主内存(DDR3)的过程,其中涉及到网卡控制器,CPU,DMA,驱动程序,在OSI模型中属于物理层和链路层,如下图所示。原创 2022-08-15 15:47:30 · 819 阅读 · 0 评论 -
Linux 网络协议栈收消息过程-Ring Buffer
想看能不能完整梳理一下收消息过程。从 NIC 收数据开始,到触发软中断,交付数据包到 IP 层再经由路由机制到 TCP 层,最终交付用户进程。会尽力介绍收消息过程中的各种配置信息,以及各种监控数据。知道了收消息的完整过程,了解了各种配置,明白了各种监控数据后才有可能在今后的工作中做优化配置。所有参考内容会列在这个系列最后一篇文章中。Ring Buffer 相关的收消息过程大致如下:图片来自参考1,对 raise softirq 的函数名做了修改,改为了 napi_schedule。......原创 2022-08-04 16:23:39 · 1655 阅读 · 0 评论 -
Linux网络编程开放资料
Linux网络编程开放资料原创 2022-08-01 10:44:31 · 159 阅读 · 0 评论 -
【WIFI】mtk7621驱动
mtk7621驱动无线驱动在完成驱动注册的同时,需要进行 cfg80211接口注册(提供命令支持)。1.驱动mtk wifi驱动基于pci进行扩展,第一个文件:/os/linux/pci_main_dev.c文件用于创建和注册基于pci接口的网络设备,PCI设备上有三种地址空间:PCI的I/O空间、PCI的存储空间和PCI的配置空间。CPU可以访问PCI设备上的所有地址空间,其中I/O空间和存储空间提供给设备驱动程序使用,而配置空间则由Linux内核中的PCI初始化代码使用。内核在启动..原创 2022-04-22 20:06:48 · 1685 阅读 · 0 评论 -
VLAN 基础知识
目录为什么需要VLAN1. 什么是VLAN?2.未分割广播域时……3. 广播信息是那么经常发出的吗?4.广播域的分割与VLAN的必要性实现VLAN的机制1. 实现VLAN的机制2.直观地描述VLAN3. 需要VLAN间通信时怎么办1.交换机的端口类型2.访问链接VLAN的汇聚链接(Trunk Link)1.需要设置跨越多台交换机的VLAN时……2.何谓汇聚链接?3.访问链接的总结VLAN间路由1.VLAN间路由的必要性2.使用...转载 2022-04-22 10:47:10 · 1012 阅读 · 0 评论