SDIO wifi Marvell8801/Marvell88w8801 介绍(四) ---- Marvell8801/Marvell88w8801命令/事件/数据格式
代码工程的GITHUB连接:点进进入GITHUB仓库
https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi
点击购买Marvell8801开发板
Marvell自己实现驱动系列文章分为几篇介绍:
SDIO wifi Marvell8801/Marvell88w8801 介绍(一) ---- 芯片介绍
SDIO wifi Marvell8801/Marvell88w8801 介绍(二) ---- SDIO协议介绍
SDIO wifi Marvell8801/Marvell88w8801 介绍(三) ---- 寄存器介绍
SDIO wifi Marvell8801/Marvell88w8801 介绍(四) ---- 命令/事件/数据格式
SDIO wifi Marvell8801/Marvell88w8801 介绍(五) ---- TLV
SDIO wifi Marvell8801/Marvell88w8801 介绍(六) ---- 实现初始化功能
SDIO wifi Marvell8801/Marvell88w8801 介绍(七) ---- 实现搜索功能
SDIO wifi Marvell8801/Marvell88w8801 介绍(八) ---- 实现STA功能
SDIO wifi Marvell8801/Marvell88w8801 介绍(九) ---- 实现AP功能
SDIO wifi Marvell8801/Marvell88w8801 介绍(十) ---- 移植TCP/IP协议栈LWIP
SDIO wifi Marvell8801/Marvell88w8801 介绍(十一) ---- 自己编写LWIP没有的DHCP server
SDIO wifi Marvell8801/Marvell88w8801 介绍(十二) ---- MQTT介绍
SDIO wifi Marvell8801/Marvell88w8801 介绍(十三) ---- 百度云操作说明
SDIO wifi Marvell8801/Marvell88w8801 介绍(十四) ---- 上位机STA操作/代码
SDIO wifi Marvell8801/Marvell88w8801 介绍(十五) ---- 上位机AP操作/代码
SDIO wifi Marvell8801/Marvell88w8801 介绍(十六) ---- 上位机UDP操作/代码
SDIO wifi Marvell8801/Marvell88w8801 介绍(十七) ---- 上位机TCP操作/代码
SDIO wifi Marvell8801/Marvell88w8801 介绍(十八) ---- 上位机PING操作/代码
SDIO wifi Marvell8801/Marvell88w8801 介绍(十九) ---- 上位机云服务器(百度云)操作/代码
每篇更新打开专栏可以看到:打开Marvell8801/Marvell8801 专栏
1. SDIO header介绍
Marvell一共有三种类型的数据:
1)命令(command)/命令响应(command response):其中command用于host -> card,也就是wifi驱动给wifi芯片下发命令,比如搜索,连接之类的,command responses是
Host <- card,也就是wifi芯片收到wifi驱动下发的命令的响应动作,command和command reponse的格式是相同的,在2.3小节介绍
2)事件(event):方向是host <- card,也就是发生了一些特定的事情,芯片以事件的方式主动告知wifi驱动,比如AP关掉了之类的
3)数据(data):TCP/IP数据, host <–> card
所以Marvell针对以上三种做了4个byte的SDIO header,来驱动,并且告知数据包的大小,如图
再罗嗦几句:
command/command response的数据类型为0x01
event的数据类型为0x03
data的数据类型为0x00
2. 命令格式介绍
Command/command resonse的格式如下
其中command ID在fireware V14文档中有说明,在这个小节的最后会列出comand list,下面只是看下一个具体的command
再来个command response部分
由于牵扯到的command众多,后续分析Linux驱动和自己写驱动的时候会慢慢涉及到,这里你只需要知道command/command response的类型就行
最后列下command list
3 事件格式介绍
Event的格式只有前三个filed是确定的,其他都不确定(除了wifi direct,wifi direct暂时不做考虑范围内)
那一个命令举例
其中最后一个就是TLV(type-len-value)会在2.6小节介绍
最后列出event list
4. 数据格式介绍
在type数据就是tcp/ip的数据,其中TX,RX的格式还有点差异,我们先从TX说起,先来看下数据格式
4.1 TX数据
Flags如下
其中此部分处理有点小苗,牵扯到一个offset问题,我们先拿一个raw data分析下,正好也对前面的sdio header温故下,看下面的raw data
00000000h:42 00 00 00 01 00 2a 00 14 00 00 00 00 00 00 00
00000010h:00 00 00 00 00 00 00 00 ff ff ff ff ff ff 68 3e
00000020h:34 1d ec 3b 08 06 00 01 08 00 06 04 00 01 68 3e
00000030h:34 1d ec 3b c0 a8 01 64 00 00 00 00 00 00 c0 a8
00000040h:01 01
其中SDIO header为42 00 00 00,所以len为0x42=66个byte,type为0,代表data,也就是tcp/ip数据
往后的16byte,也就是TX的header为01 00 2a 00 14 00 00 00 00 00 00 00 00 00 00 00
01代表uap,也就是说我们是作为AP角色的
00 代表bss num为0
2a 00 代表tx payload len 0x2a=42,看到这里你可能有一个疑问,为什么是42呢,别急,配合下一个filed分析
14 00代表tx pkt offset,0x14=20,这个的意思是从header 便宜20个byte才是真正的tcp/ip数据,也就是从 ff ff ff ff ff ff之后,那么回过头,看下tx payload len你可能已经预感到什么了吧,没错,就是从 ff ff ff ff ff ff开始到最后的数据,刚好是42个byte
其他的filed就自行分析吧,所以这里就存在一个问题,就是这个封包中中间有4个byte的多余数据
剩下的从 ff ff ff ff ff ff就是tcp/ip数据,在后面自己写驱动的时候我们会了解到这个ethernet的header
6个全f,是代表dest mac,也就是广播地址,68 3e 34 1d ec 3b source mac,也就是我们本地的mac,08 06也就是ARP封包的type,好啦,就到这里吧,TCP/IP的东西后面会介绍
4.2 RX数据
同样来个raw data分析下,一切明了
00000000h:6c 00 00 00 01 00 2a 00 3e 00 02 00 0e 00 00 07
00000010h:36 53 01 11 24 98 77 11 70 20 00 93 00 00 00 00
00000020h:00 00 00 00 84 00 88 41 30 00 e0 b9 4d 21 f1 2c
00000030h:68 3e 34 1d ec 3b ff ff ff ff ff ff e0 00 00 00
00000040h:00 00 ff ff ff ff ff ff 68 3e 34 1d ec 3b 08 06
00000050h:00 01 08 00 06 04 00 01 68 3e 34 1d ec 3b c0 a8
00000060h:01 64 00 00 00 00 00 00 c0 a8 01 01
其中SDIO header为6c 00 00 00,所以len为0x6c=108个byte,type为0,代表data,也就是tcp/ip数据
往后的15byte,也就是RX的header为01 00 2a 00 3e 00 02 00 0e 00 00 07 36 53 01
01代表uap
00 代表bss num为0
2a 00 代表rx_pkt_len 0x2a=42,看到这里你可能有一个疑问,相信看了上面tx,你就知道这个意思了,就在自动找offset了
3e 00代表rx pkt offset,0x3e=62,这个的意思是从header 便宜62个byte才是真正的tcp/ip数据,也就是从 40h开始的ff ff ff ff ff ff之后的数据
SDIO wifi Marvell8801/Marvell88w8801 介绍(四) ---- Marvell8801/Marvell88w8801命令/事件/数据格式相关推荐
- 自己实现SDIO wifi Marvell8801/Marvell88w8801驱动 介绍(一) ---- 芯片介绍
代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...
- STM32F103+SDIO wifi Marvell8801/Marvell88w8801 介绍(九) ---- Marvell 8801/Marvell 88w8801 实现AP功能/实现热点功能
代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...
- SDIO wifi Marvell8801/Marvell88w8801 介绍(三) ---- Marvell8801/Marvell88w8801寄存器介绍
代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...
- SDIO wifi Marvell8801/Marvell88w8801 介绍(五) ---- Marvell8801/Marvell88w8801 TLV
代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...
- STM32F103驱动SDIO wifi Marvell8801/Marvell88w8801 介绍(十一) ---- 编写LWIP DHCP server
代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...
- SDIO wifi Marvell8801/Marvell88w8801 介绍(七) ---- Marvell8801/Marvell88w8801实现搜索功能
在介绍SDIO wifi Marvell8801/Marvell88w8801之前先附上模块链接: 点击购买Marvell8801开发板 代码工程的GITHUB连接:点进进入GITHUB仓库 http ...
- STM32F103驱动SDIO wifi Marvell8801/Marvell88w8801 介绍(十) ---- 移植TCP/IP协议栈LWIP
代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...
- SDIO wifi Marvell8801/Marvell88w8801 介绍(八) ---- Marvell 8801实现STA功能/连接open热点/连接wpa热点/连接wpa2热点
代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...
- STM32驱动SDIO WIFI 介绍(十六) ---- 上位机UDP操作/代码
代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...
最新文章
- JVM中的垃圾收集器
- 比较两个文件夹图像相似度
- Win8Metro(C#)数字图像处理--2.24二值图像闭运算
- Lucene学习总结之二:Lucene的总体架构
- 前端学习(1921)vue之电商管理系统电商系统之绘制基本布局并且获取数据
- SQL SERVER自定义函数
- JTextAre 文字右对齐 JTextArea دىكى خەتلەرنى ئوڭدىن س...
- Ant Design Pro引入Echarts 报错Unexpected token
- java线程中断和终止线程运行
- 华为 “VRRP” 多备份组
- pb 应用 迁移 linux_将你的应用迁移到 Python 3 的三个步骤 | Linux 中国
- Abelssoft Undeleter(数据恢复软件)v5.01免费版
- 第一次使用MFC开发桌面小程序
- aloha仿真matlab,ALOHA协议的MATLAB仿真开题报告(参考).doc
- 查询IP归属地的接口
- QTest 命名空间
- win7计算机图标排列,win7文件夹内图标取消自动排列,取消自动排列
- 机械革命 无界16pro闪屏
- 与CVTE的完美“邂逅”
- 其实英语实在太简单了