4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
热卖商品
新闻详情
SDIO wifi Marvell8801/Marvell88w8801 介绍(四) --- M..._CSDN博客
来自 : CSDN技术社区 发布时间:2021-03-24

代码工程的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之后的数据

本文链接: http://8801.immuno-online.com/view-699606.html

发布于 : 2021-03-24 阅读(0)
公司介绍
品牌分类
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616
官网:http://