sdio接口协议.docx

上传人:b****4 文档编号:3461854 上传时间:2022-11-23 格式:DOCX 页数:8 大小:20.33KB
下载 相关 举报
sdio接口协议.docx_第1页
第1页 / 共8页
sdio接口协议.docx_第2页
第2页 / 共8页
sdio接口协议.docx_第3页
第3页 / 共8页
sdio接口协议.docx_第4页
第4页 / 共8页
sdio接口协议.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

sdio接口协议.docx

《sdio接口协议.docx》由会员分享,可在线阅读,更多相关《sdio接口协议.docx(8页珍藏版)》请在冰豆网上搜索。

sdio接口协议.docx

sdio接口协议

竭诚为您提供优质文档/双击可除

sdio接口协议

 

  篇一:

sdio小结20xx1018

  sdio

  sdio(input/output)是一种io接口规范。

目前,其最主要用途是为带有sd卡槽的设备进行外设功能扩展。

sdio卡是一种io外设,而不是memory。

sdio卡外形与sd卡一致,可直接插入sd卡槽中。

  一个完整的sdio控制系统包括:

sdio/sd/mmc卡、主控制器硬件层,以及由主控制器驱动、功能卡相关驱动、顶层应用程序组成的软件部分等。

sdio主控制器介于片上系统总线和外设卡之间,实现了系统总线信号到sd总线信号的转化,cpu对接在sdio主控制器上的外设的操作只要符合apb的时序要求,而底层的细节处理交给sdio主控制器来完成。

sdio主控制器的主要功能包括:

控制卡的读/写时序、命令生成与发送、响应接收与分析、数据发送与接收、硬件中断的处理、时钟域功耗的控制(主控制器必须提供频率可配置的时钟,因为外设卡的时钟由主控制器通过时钟线提供,需能匹配不同种类的外设卡;同时时钟与功耗有着直接关联)等。

  目前市场上有多种sdio接口的外设,比如sdio蓝牙,sdiogps,sdio无线网卡,sdio移动电视卡等。

这些卡底部带有和sd卡外形一致的插头,可直接插入sdio卡槽(即为sd卡槽)的智能手机、pda中,即可为这些手机、pda带来丰富的扩展功能。

用户可根据实际需要,灵活选择外设扩展的种类、品牌和性能等级。

sdio已为成为数码产品外设功能扩展的标准接口。

  sdio卡插入带有标准sd卡槽的设备后,如果该设备不支持sdio,sdio卡不会对sd卡的命令作出响应,处于非激活状态,不影响设备的正常工作;如果该设备支持sdio卡,则按照规范的要求激活sdio卡。

  sdio卡允许设备按io的方式直接对寄存器进行访问,无须执行Fat文件结构或数据sector等复杂操作。

此外,sdio卡还能向设备发出中断,这是与sdmemory卡的本质区别。

  sdio总线

  sdio总线和usb总线类似,sdio总线也有两端,其中一端是主机(host)端,另一端是设备端(deVice),采用host-deVice这样的设计是为了简化deVice的设计,所有的通信都是由host端发出命令开始的。

在deVice端只要能解析host的命令,就可以同host进行通信了。

  sd总线上的通信基于3种格式的比特流:

命令包、响应包和数据包。

控制器要按照sdio协议的格式给命令添加起始位、标志位、cRc校验位、停止位等。

命令在写入命令寄存器后,通过cmd线传给外设卡,卡收到命令后在cmd线上返回特定的响应到主控制器,主控制器把响应存放到响应寄存器,用来对卡状态进行分析判断。

  sdio的host可以连接多个deVice,这个是同sd的总线一样的,其中有如下的几种信号

  1.clk信号:

host给deVice的时钟信号.

  2.cmd信号:

双向的信号,用于传送命令和反应。

  3.dat0-dat3信号:

四条用于传送的数据线,支持1位或4位两种数据宽度的传输。

  4.Vdd信号:

电源信号。

  5.Vss1,Vss2:

电源地信号。

  在sdio总线定义中,dat1信号线复用为中断线。

在sdio的1bit模式下dat0用来传输数据,dat1用作中断线。

在sdio的4bit模式下dat0-dat3用来传输数据,其中dat1复用作中断线。

  sdio命令:

  sdio总线上都是host端发起请求,然后deVice端回应请求。

其中请求和回应中会数据信息。

  mand:

用于开始传输的命令,是由host端发往deVice端的。

其中命令是通过cmd信号线传送的。

  2.Response:

回应是deVice返回的host的命令,作为command的回应。

也是通过cmd线传送的。

  3.data:

数据是双向的传送的。

可以设置为1线模式,也可以设置为4线模式。

数据是通过dat0-dat3信号线传输的。

  sdio的每次操作都是由host在cmd线上发起一个cmd,对于有的cmd,deVice需要返回Response,有的则不需要。

  对于读命令,首先host会向deVice发送命令,紧接着deVice会返回一个握手信号,此时,当host收到回应的握手信号后,会将数据放在4位的数据线上,在传送数据的同时会跟随着cRc校验码。

当整个读传送完毕后,host会再次发送一个命令,通知deVice操作完毕,deVice同时会返回一个响应。

  对于写命令,首先host会向deVice发送命令,紧接着deVice会返回一个握手信号,此时,当host收到回应的握手信号后,会将数据放在4位的数据线上,在传送数据的同时会跟随着c(sdio接口协议)Rc校验码。

当整个写传送完毕后,host会再次发送一个命令,通知deVice操作完毕,deVice同时会返回一个响应。

  sdio的寄存器:

  sdio卡的设备驱动80%的任务就是操作sdio卡上的有关寄存器。

sdio卡最多允许有7个功能(function),这个同其功能号是对应的(1~7),每个功能都对应一个128k字节大小的寄存器,这个见下面的图。

功能号之所以取值范围是1~7,而没有包含0,是因为功能0并不代表真正的功能,而代表cia寄存器,即commoni/oarea,这个纪录着sdio卡的一些基本信息和特性,并且可以改写这些寄存器。

其中地址0x1000~0x17fff是sdio卡的cis区域,就是基本信息区域,commoninformationstructure。

初始化的时候读取并配对sdio设备。

  sdio与sd接口的区别

  sdio协议是由sd卡的协议演化升级而来的,很多地方保留了sd卡的读写协议,同时sdio协议又在sd卡协议之上添加了cmd52和cmd53命令。

由于这个,sdio和sd卡规范间的一个重要区别是增加了低速标准,低速卡的目标应用是以最小的硬件开始来支持低速i/o能力。

低速卡支持类似调制解调器,条形码扫描仪和gps接收器等应用。

高速卡支持网卡,电视卡还有“组合”卡等,组合卡指的是存储器+sdio。

在非组合卡的sdio设备里,其最高速度要只有达到25m,而组合卡的最高速度同sd卡的最高速度一样,要高于25m。

  此外,sd卡和sdio卡还在一些commands,R6register,reset,buswidth,carddetectresistor,datatransferblocksizes,datatransferabort,somefixedsdmemoryregisters有差异,具体差异可查阅simplifiedsdiocardspec.pdf第四章4.2~4.10.

  篇二:

sd协议

  一、sd规范介绍二、物理层规范

  三、sdmemorycard四、sdiocard五、驱动编写

  一、sd2.0规范介绍1、版本

  sdspec1.0低速度、低容量25m2gsdspec1.1高速度、低容量50m2gsdspec2.0高速度、高容量50m32g

  2、sd规范包括

(1)物理层规范

(2)文件系统规范(3)sd卡安全规范

  (4)sd卡音频应用规范+其他相关应用规范(5)sdmc扩展规范移动设备(6)sdio卡规范

  现在针对sdmemory和sdio两种类型的设备,所以下面内容只涉及子协议

(1)、(6)。

  3、符合sd2.0规范的设备

  sd卡minisd、microsd1.0/1.1sdio卡wifi、gps

  sdhc2.0最少支持class2sdxc

  combocard

  传输速度类型分为class0旧的卡,class2大于2mb/sclass4大于4mb/sclass6大于6mb/s

  二、物理层规范

  2、总线传输模式

  spi串行传输、低速度sd最多支持四线传输兼容mmc3sd总线

  3.1总线分为hostdevice

  

(1)comand命令hosttodevice都是48位

  a、广播命令b、点对点命令

  

(2)response响应devicetohost

  根据内容不同分为R1、R3、R4、R7(48位)和R2(136位)

  初始化阶段,host给sd卡分配地址

  数据传输是有单块传输命令和多块传输命令,然后通过发送一个终止命令停止传输单块还是多块传输,通过host去配置命令先传msb在lsb

  3.2格式

(1)命令格式

  

(2)响应格式

  (3)数据格式有两种

  

(1)usualdatabus字节为单位发送

(2)widedatabus以块单位发送

  usualdata:

先发送高位,在发送低位一字节一字节发送

  widedatabus:

整个数据块发送

  三、sdmemorycard

  1、初始化,发送命令读写卡中的寄存器

  发送命令完成读写、擦除等操作

  cid卡标识寄存器产品序列生产日期csd卡特性寄存器

  scR卡配置寄存器支持协议支持总线宽度ocR操作寄存器电压值上电状态dsR驱动层寄存器

  Rca卡地址

  3、sdmemorycard的命令

  物理层完全命令(英文).doc

  4、sdmemorycard的响应

  物理层完全响应(英文).doc

  四、sdiocard1sdio概述

  sdio卡在sd内存卡基础上发展起来,sdio接口兼容之前的sd内存卡,可连接sdio设备,根据sdio协议的spec,支持设备包括蓝牙,gps卡,网卡,电视卡等。

  sdio协议是sd协议的一个子协议,很多地方保留sd卡协议,在这基础上增加了cmd52和cmd53命令。

sdio与sd的一个重要区别是,增加了低速标准。

  2sdio设备分类

  低速卡:

调制解调器、条形码扫描仪,gps接收器等clock0~400khz

  高速卡:

网卡clock0~25mhz数据speed10mb/s

  组合卡:

电视卡(组合卡指sdio+存储器)

  组合卡中sdio最高clock为25mhz,sd最高高于25m强制4bitssd模式

  3sdio寄存器(与sdmemory不同点1)

(1)sd物理层协议定义了7个寄存器

  ocRsdio有通过cmd5来访问,cid单sdio无csd单sdio无

  Rca一张卡一个共享的dsR单sdio无scR单sdio无

(2)

  sdio卡的设备驱动80%的任务就是操作sdio卡上的有关寄存器。

sdio卡最多允许有7个功能(function),这个同其功能号是对应的(0~7),每个功能都对应一个128k字节大小的寄存器,这个见下面的图。

功能号之所以取值范围是1~7,而没有包含0,是因为功能0并不代表真正的功能,而代表cia寄存器,即commoni/oarea,这个纪录着sdio卡的一些基本信息和特性,并且可以改写这些寄存器。

其中地址0x1000~0x17fff是sdio卡的cis区域,就是基本信息区域,commoninformationstructure。

初始化的时候读取并配对sdio设备。

  篇三:

sd卡与sdio卡的区别

  

(1)wifi卡的常用接口有:

  –cF接口

  –usb接口

  –sdio接口

  –spi接口

  –pcmcia接口

  很多时候,同一个wifi卡同时支持多种接口,譬如marvell的8686的wifi卡,既支持spi接口,也支持sdio接口.

  

(2)sd卡与sdio卡的异同

  1.sd卡使用的是sd卡协议,而sdio卡使用的是sdio协议;协议不一样,初始化/读写方式都不一样

  2.aRk1600控制器既支持sd卡也支持sdio卡,在驱动上完全可以做到同一个卡槽既支持sd卡也支持sdio卡,甚至combo卡,因此在驱动上有个判断过程,判断插进来的是sd卡还是sdio卡

  3.两者的引脚定义不一样,尽管引脚个数都一样

  (3)

  sdio协议

  –相对于sd协议,sdio协议特有的命令有:

cmd5,cmd52,cmd53

  –cmd5命令相当于sd卡协议中的acmd41,用于匹配sdio卡的电压

  –对于sdio卡中的单个寄存器的读写一般都使用cmd52命令,而对于多字节数据的读写则用cmd53命令。

  –cmd53分字节和块传输模式

  对于字节传输模式相当于sd协议的单块读写(cmd17,cmd24)

  对于块传输模式相当于sd协议的块读写(cmd18,cmd25)

  (4)

  cmd53

  –对于字节传输模式,它可以是1~512之间的任意长度的传输,而不是固定长度–对于块传输模式,首先它的块长度可以人为设定,但不能超过规定的最大块长度–相对于sd卡中的块传输模式,在最后一个块传输末尾,是不需要发送块停止命令的(cmd12)

  --每个sdio卡都由1~7个function(optional)和一个memoryfunction(mandatory)组成

  什么是function

  –所谓function,就是一个i/o设备,它实质就是一些寄存器的集合

  (5)sdio卡里function的组织分布

  cia就是function0,也就是memoryfunction,它每个sdio卡所必须具有的,它里面包含了如下一些重要信息:

  –sdio协议的版本号,busmod,块大小等。

这些信息有些是只读的,有些是可读可写的Function1~7是可选的,根据具体的应用的不同,所包含的function数目也不一样,譬如我门使用的marvell的8686芯片,它就只有function0和function1

  (6)sdio1~4bitmode

  pinsdio4-bitmode

  1cd/dat3dataline3

  2cmdcommandline

  3Vss1ground

  4Vddsupplyvoltage

  5clkclock

  6Vss2ground

  7dat[0]dataline0

  8dat[1]dataline1orintline

  9dat[2]dataline2orreadwait

  1.sdiomode同样也有1bit和4bit总线模式sdio1-bitmoden/cnotusedcmdcommandlineVss1groundVddsupplyvoltageclkclockVss2grounddatadatalineiRqinterruptionRwReadwait

  2.sd与sdio卡的引脚的一个最大的区别是:

sdio有个中断引脚dat[1],在4bit模式下,dat[1]既做数据线,又做中断线,因此是分时复用的,在总线发送命令期间,dat[1]用作中断线。

  (7)sd

  pin

  1

  2

  3

  4

  5

  6

  7

  8sdmodenamecd/data3cmdVss1VddVss2dat0dat1typei/o/ppppsssi/o/ppi/o/ppdescriptioncarddetect/dataline3command/responsegroundsupplyvoltagegrounddataline0dataline1

  9dat2i/o/ppdataline2

  当host同时连接多个卡时:

  –时钟,电源,地线可以为每个卡公共

  –但每个卡都有自己单独的数据和命令总线,避免干扰

  –在卡的初始化过程中,命令是单独发到每个卡的,允许驱动来检测每个卡槽的卡是否存在,并且分配相应的逻辑地址给每个卡槽。

  –host与每个卡槽的卡的数据传输都是单独进行的,因为每个卡槽都有自己的数据总线–在卡的初始化完成后,命令可以同时发送到每个卡槽,因为此时命令中已经包含了卡的逻辑地址(在卡的分别初始化时分配的)

  (8)sd卡与sdio卡的检测判别

  –上电,发送cmd5命令,如果有响应,并且响应中的mp位为0,说明对应卡槽中的卡为sdio卡,进而开始sdio卡的初始化流程

  –如果发送cmd5命令没有响应,则说明对应卡槽的卡为sd或mmc卡,进而开始sd/mmc卡的初始化流程

  –如果发送cmd5命令,有响应,且响应中的mp位为1,说明这个卡不但是sdio卡,同时也时sd卡,也就是所谓的combo卡,则进行combo卡的初始化流程

  (9)目前linux下,已支持的wifi卡有如下厂家的卡:

  –marvell8385andmarvell8686

  –intersil公司prism54chipsseries

  –inteliwl4965andiwl3945

  –atheroscorporation5xxxchipset

  –broadcom(博通)43xx

  –Ralink(雷凌)Rt2x00

  linux下已经支持了市面上的大多数wifi卡的驱动

  每种wifi卡都是需要固件(firmware)才能驱动的,并且同一种卡工作在不同接口时对应的firmware是不一样的

  需要注意的是:

很多firmware都是要花钱的

  固件通过其驱动下载到无线卡中,才能驱动起来

  (10)wifi驱动的通用的软件架构

  1.分为两部分,上面为主机端驱动,下面是我们之前所说的firmware

  2.其中固件部分的主要工作是:

因为天线接受和发送回来的都是802.11帧的帧,而主机接受和传送出来的数据都必须是802.3的帧,所以必须由firmware来负责802.3的帧和802.11帧之间的转换,

  3.当天线收到数据,并被firmware处理好后会放在一个buffer里,并产生一个中断,主机在收到中断后就去读这个buffer。

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1