无线电爱好网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

SDIO WiFi 之基础概念介绍

2022-5-13 16:50| 发布者: 闪电| 查看: 1| 评论: 0

摘要: 一、WiFi 介绍 WiFi 又称“无线热点”或“无线网络”,是 Wi-Fi 联盟的商标,一个基于 IEEE 802.11 标准的无线局域网技术。WiFi 支持的接口有 UART, USB, SDIO, PCIE,它们的传输速率分别由低到高排序,可以应用到不 ...

一、WiFi 介绍

       WiFi 又称“无线热点”或“无线网络”,是 Wi-Fi 联盟的商标,一个基于 IEEE 802.11 标准的无线局域网技术。WiFi 支持的接口有 UART, USB, SDIO, PCIE,它们的传输速率分别由低到高排序,可以应用到不同的场景中。

WiFi 网卡有两种工作模式:

① 一种是无线终端模式 (STA),也就是手机日常使用的模式,通过该模式连接网络上网;

② 一种是无线热点模式 (AP),也就是手机的个人热点模式,通过该模式提供热点供其它设备上网;

 

二、SDIO 接口介绍

SDIO 就是 SD 的 I/O 接口(interface)的意思,它是在 SD 内存卡接口的基础上发展起来的接口,SDIO 接口兼容以前的 SD 内存卡,并且可以连接 SDIO 接口的设备。 

SDIO1.0 标准定义了两种类型的 SDIO 卡:

      1. 全速的 SDIO 卡,传输率可以超过 100Mbps;

      2. 低速的 SDIO 卡,支援的时脉速率在 0 至 400KHz 之间。

 

  SDIO 协议是由 SD卡的协议演化升级而来的,很多地方保留了 SD 卡的读写协议,同时 SDIO 协议又在 SD 卡协议之上添加了 CMD52 和 CMD 53 命令。由于这个,SDIO 和 SD 卡规范间的一个重要区别是增加了低速标准,低速卡的目标应用是以最小的硬件开支来支持低速 I/O 能力。低速卡支持类似调制解调器,条形码扫描仪和 GPS 接收器等应用。高速卡支持网卡,电视卡以及组合卡等。组合卡指的是存储器+SDIO,对组合卡来操作需要全速和 4BIT 的传输模式,这是 SDIO1.0 标准规定的。

 

SDIO 通过 SD 的 I/O 管脚来连接外部的外围 DEVICE 并传输数据。这些外围设备,我们称为 SDIO 卡,常见的有:

       Wi-Fi card (无线网络卡)
       CMOS sensor card (照相模块)
       GPS card
       GSM/GPRS modem card
       Bluetooth card
       Radio/TV card

 

三、SDIO 总线

       SDIO 总线和 USB 总线类似,SDIO 总线也有两端,其中一端是主机(HOST)端,另一端是设备端(DEVICE),采用 HOST- DEVICE 这样的设计是为了简化 DEVICE 的设计,所有的通信都是由 HOST 端发出命令开始的。在 DEVICE 端只要能解析 HOST 的命令,就可以同 HOST 进行通信了,SDIO 的 HOST 可以连接多个 DEVICE。

CLK 信号:HOST 给 DEVICE 的 时钟信号,每个时钟周期传输一个命令。 
CMD 信号:双向 的信号,用于传送 命令 和 响应。 
DAT0-DAT3 信号:四条用于传送的数据线。 
VDD 信号:电源信号。 
VSS1,VSS2电源地信号。

 

SD/SDIO 的传输模式分为三种

              spi mode         ——(标准的 spi 模式)

              1-bit mode       —— cmd line、 data line、clk line、irq Line

              4-bit mode        ——1 cmd line 、3 data line、clk

 

SDIO 的每个脚位在不同信号模式下的定义如下图:

 

 

 

四、SDIO 的命令与响应

SDIO 总线上都是 HOST 端发起请求,然后 DEVICE 端回应请求

 

       Command用于开始传输的命令,是由 HOST 端发往 DEVICE 端的。其中命令是通过 CMD 信号线传送的。

       Response回应是 DEVICE 返回的 HOST 的命令,作为 Command 的回应。也是通过 CMD 线传送的。

       Data数据是双向的传送的。可以设置为 1 线模式,也可以设置为 4 线模式。数据是通过DAT0-DAT3 信号线传输的。

 

SDIO 命令为:字节,48bit

 

      
       对于读命令:
首先 HOST 会向 DEVICE 发送命令,紧接着 DEVICE 会返回一个握手信号,此时,当 HOST 收到回应的握手信号后,DEVICE会将数据放在 4 位的数据线上,在传送数据的同时会跟随着 CRC 校验码。当整个读传送完毕后,HOST 会再次发送一个命令,通知 DEVICE 操作完毕,DEVICE 同时会返回一个响应。 

 



       从机在收到主机相关命令后,开始发送数据块给主机,所有数据块都带 CRC 校验(由硬件自动处理),单个数据块读的时候,在收到 1 个数据块以后即可以停止了,不需要发送停止命令(CMD12)。但是多块数据读的时候,SDIO 卡将一直发送数据给主机,直到接到主机发送的 STOP 命令(CMD12)。

(1)发送 CMD17(单块)或 CMD18(多块)读命令,返回 0x00
(2)接收数据开始令牌 0xfe(或 0xfc )+ 正式数据 512Bytes + CRC 校验 2Bytes, 默认正式传输的数据长度是 512Bytes ,可用 CMD16 设置块长度。

 

       对于写命令:首先 HOST 会向 DEVICE 发送命令,紧接着 DEVICE 会返回一个握手信号,此时,当HOST 收到回应的握手信号后,会将数据放在 4 位的数据线上,在传送数据的同时会跟随着 CRC 校验码。当整个写传送完毕后,HOST 会再次发送一个命令,通知 DEVICE 操作完毕,DEVICE 同时会返回一个响应。

 

       数据块写操作同数据块读操作基本类似,只是数据块写的时候,多了一个繁忙判断,新的数据块必须在 SDIO 卡非繁忙的时候发送。这里的繁忙信号由 SDIO 卡拉低 SDIO_D0,以表示繁忙,SDIO 硬件自动控制,不需要我们软件处理

(1)发送 CMD24(单块)或 CMD25(多块)写命令,返回 0x00
(2)发送数据开始令牌 0xfe(或 0xfc ) + 正式数据 512Bytes + CRC 校验 2Bytes

  

       SDIO 卡的初始化流程:

              (1)发送 CMD52 复位 SDIO 卡

              (2)发送 CMD0 使卡进入 IDLE 状态

              (3)发送 CMD8 获取该卡所支持的电压值(3.3v or 1.8v)

              (4)发送 CMD5 读取 OCR 寄存器

              (5)发送 CMD3 获取设备的从地址

              (6)发送 CMD7 选中相应从地址的卡

              (7)发送 CMD52 设置4位数据传输模式

      详细的 SDIO 卡初始化过程的函数调用可参考我的另一篇文章《SDIO WiFi 之设备初始化流程分析》

  

五、参考文献

《SDIO接口》

《嵌入式接口-SDIO》


路过

雷人

握手

鲜花

鸡蛋

相关阅读

QQ|关于本站|小黑屋|Archiver|手机版|无线电爱好网 ( 粤ICP备15040352号 ) 无线电爱好技术交流5 无线电爱好技术交流1无线电爱好技术交流9开关电源讨论群LED照明应用、电源无线电爱好技术交流4无线电爱好技术交流8无线电爱好技术交流10无线电爱好技术交流11

粤公网安备 44030702001224号

GMT+8, 2022-5-13 16:50 , Processed in 0.109201 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

返回顶部