具有多个SDIO单元的多址单SDIO接口的制作方法

文档序号:13741918阅读:290来源:国知局
具有多个SDIO单元的多址单SDIO接口的制作方法

概括地说,本发明的各个配置涉及传送数字数据的装置、系统和方法。具体地说,该装置、系统和方法涉及共享公共数据接口的若干设备。尤其是,该装置、系统和方法提供在单个sdio主机和若干sdio设备之间发送和接收安全数字输入/输出(sdio)命令。



背景技术:

安全数字(sd)标准是在1999年八月作为多媒体卡(mmc)上的改进而引入的。安全数字标准是由sd协会(sda)来维护的。sd技术已经在数百个品牌中,跨越数十个产品类别以及在数千个电子设备中实现。sd通常用在非易失性存储卡中。这些存储卡被广泛地用于便携设备中,比如移动电话、数码相机、gps导航设备、掌上游戏机和平板计算机。该安全数字格式包括在三种不同形状因素中可用的四种卡系列。该四个系列是原始标准容量(sdsc)、高容量(sdhc)、扩展容量(sdxc)和sdio,所述sdio将输入/输出功能与数据存储结合起来。除了sdio的情况之外,这些标准可以以三个形状因素来实现:原始大小、小型大小和微大小。电气无源适配器允许较小的卡装入针对较大的卡构建的设备中并且在其中起作用。

安全数字输入输出接口标准是用于涵盖i/o功能的对sd规范的较新的扩展。sdio标准化接口具有较低的引脚计数。sdio卡只在被设计用于支持它们的输入/输出功能的主机设备(典型的是个人数字助理(pda),但是偶尔是膝上型计算机或移动电话)中完全起作用。这些设备可以使用sd槽来支持全球定位系统(gps)接收机、调制解调器、条形码读码器、fm无线调谐器、tv调谐器、射频识别(rfid)读取器、数码相机和到wi-fi、蓝牙、以太网和irda的接口。sdio卡支持sd卡的大部分存储器命令。虽然sdio卡能够被构造为八个逻辑卡,但是最近,sdio卡使用该能力的典型方式是将其自身构造为一个i/o卡和一个存储卡。

sdio和sd接口是物理上和电学上相似的。针对sdio卡构建的主机设备一般接受没有i/o功能的sd存储卡。但是,反之不成立;主机设备需要适当的驱动器和应用来支持该卡的i/o功能。将sdio卡插入任何sd槽不会对该主机设备造成物理损伤或破坏,但是当该sdio卡在被插入看上去兼容的槽中时无法发挥全部功能,用户可能会觉得沮丧。需要一种更好的方式与sdio设备交互。



技术实现要素:

根据本发明的一个方面,提供了只在其被寻址时才响应的安全数字/输入输出(sdio)单元。该sdio单元具有sdio时钟输入端口、具有高达三个双向线路的sdio数据总线输出端口和sdio双向命令端口。在一个配置中,该sdio单元内的地址指示符与该sdio单元相对应,以及该sdio单元将使用该地址来了解何时要对命令进行响应。在另一个配置中,该sdio单元将不会具有分配给它的地址,但是将寻找在该sdio命令中编码的sdio单元地址,以确定它是否要对该命令进行响应。

本发明的另一个方面提供了一种安全数字输入/输出(sdio)系统。该系统包括主机、连接到该主机的sdio接口、连接到该sdio接口的第一中继sdio(rsdio)单元和连接到该sdio接口的第二rsdio单元。该rsdio单元可以具有在初始化/配置阶段期间被分配给它们的地址。该第一rsdio单元包括第一sdio命令端口、以及连接到该第二rsdio单元的rsdio中继端口和sdio中继逻辑。如上文提及的以及后文更详细讨论的,该sdio中继逻辑通过检查在该sdio命令中包含的设备地址,来确定该第一rsdio单元是否要处理在该第一sdio命令端口上接收到的sdio命令。在该第一sdio单元接收sdio命令时,它自动从该第一rsdio中继端口向该第二rsdio单元中的第二sdio命令端口发送该命令。在该第一rsdio单元要处理该sdio命令时,该第一rsdio单元处理该sdio命令以及将处理该sdio命令的结果发送给该sdio接口。

在一些实施例中,该rsdio中继端口是第一rsdio中继端口以及该sdio中继逻辑是第一sdio中继逻辑,以及该sdio系统还包括连接到该sdio接口的第三rsdio单元。该第三rsdio单元具有第三sdio命令端口。该第二rsdio单元包括连接到该第三sdio命令端口的第二rsdio中继端口和第二sdio中继逻辑。在该第二sdio单元接收该sdio命令时,它自动从该第二rsdio中继端口向该第三rsdio单元中的该sdio命令端口发送该命令。该第二sdio中继逻辑确定该第二rsdio单元是否要处理该sdio命令。在该第二rsdio单元要处理该sdio命令时,该第二rsdio单元处理该sdio命令以及将处理该sdio命令的结果发送给该sdio接口以及发送给该第一rsdio中继端口,以及该第一rsdio单元将该结果中继给该主机。只要满足协议时序要求,其它实施例可以具有多于三个rsdio单元。

在另一个实施例中,主机会知道一个sdio单元以及不知道要求分离寻址的其它sdio单元。该实施例利用逻辑功能的sdio概念。如本领域的普通技术人员所理解的,不同sdio功能号可以被分配给用于单个功能设备的设备中的每一个设备(替代地,不同功能地址集合可以用于多功能设备)。该方式的优势是由于该主机可以使用标准sdio功能,而不是必须对标准设施进行重新解释以实现总线协议,所以该主机会被简化。

附图说明

在附图和下文的描述中阐述了说明最佳模式的一个或多个优选实施例。所附权利要求书特定地以及明显地指出了以及阐述了本发明。

并入本说明书以及组成其一部分的附图举例说明了本发明的各个方面的各个示例方法和其它示例实施例。将被了解的是,附图中说明的元素边界(如,方格、方格的组或其它形状)代表边界的一个示例。本领域的普通技术人员将了解的是,在一些示例中,一个元素可以被设计为多个元素或者多个元素可以被设计为一个元素。在一些示例中,示出为另一个元素的内部组件的元素可以被实现为外部组件,反之亦然。此外,元素可以不按照比例绘制。

图1说明了中继sdio(rsdio)系统的一个示例实施例。

图2说明了中继sdio初始化序列的一个示例实施例的示例信号。

图3说明了中继sdio命令和响应时序的示例信号。

图4说明了具有两个无线设备的中继sdio系统的另一个实施例。

图5说明了具有中继的sdio数据的中继sdio系统的另一个示例实施例。

图6说明了中继sdio设备可以如何被初始化的示例状态图。

图7说明了rsdio逻辑的示例方块图。

图8说明了多址rsdio数据传送。

图9说明了当正在执行多址rsdio命令时由仲裁逻辑实现的信号以及其它相关信号的时序。

图10说明了在无需对sdio命令进行中继的情况下,使用单sdio端口来访问两个或高达任意数量的sdio单元的sdio系统的一个示例实施例。

图11说明了sdioio_wr_direct命令的实施例,其中,它的寄存器地址的未使用比特可以用于寻址不同的sdio单元。

图12说明了中继sdio系统中的操作的一个示例方法。

图13说明了使用单sdio接口来访问两个或更多个sdio单元的系统的操作的一个示例方法。

图14说明了使用单sdio接口来访问八个sdio设备的一个示例计算机系统。

遍及附图的相似的序号指的是相似的部分。

具体实施方式

在过去,使用sdio接口的主机只能够通过每个单sdio接口来与单sdio从属设备进行通信。图1说明了具有主机3的新颖中继sdio(rsdio)系统1的示例实施例,所述主机3使用单sdio接口3来与四个rsdio单元1-4通信。虽然举例说明了四个sdio单元,但是应该了解的是,该新颖发明可以使用单sdio接口来与两个或更多个sdio设备通信以及不限于四个sdio单元。

除了标准sdio信号:sdio_clk(sdio时钟)、sdio_cmd(sdio命令)和sdio_dat[3:0]之外,每个rsdio单元rsdio1-4可以通过构建在rsdio单元1-4中的双向cmd_relay(命令中继)端口,来向/从下一个rsdio单元传送该sdio命令和响应(例如,对其进行中继)。如图1所示,在cmd_relay连接到下一个rsdio单元的sdio_cmd的情况下,每个rsdio单元1-4连接到中继链中的下一个rsdio单元。在一些实施例中,最后的rsdio设备的cmd_relay端口可以接地,这样能够检测到它是该中继链中的最后的设备。图2说明了中继sdio初始化序列,以及图3说明了中继sdio命令和响应时序的一些细节。

在一些配置中,如下文讨论的图5所示,多个设备的sdio数据信号(sdio_dat)也可以类似地被中继,或者如图1所示,该sdio数据信号可以连接到公共共享的三态总线。在rsdio单元1-4之间对sdio_dat进行中继提供了优良的信号完整性,而使用共享总线减少了每个连接的rsdio单元1-4上要求的引脚数量。在图1的示例rsdio系统1中,多达四个rsdio单元1-4可以驱使该共享的单向sdio_dat[3:0]信号线去往主机3。但是,如前文所提及的,可以利用多于四个rsdio单元/设备来实现其它实施例。

现在简要介绍可以用于图1和图5的中继实现方式和/或图10的非中继实现方式中的寻址机构。例如,寻址方案可以利用比如cmd52和/或cmd53命令的标准sdio命令和响应。这些命令经常执行在主机和另一个设备之间的大量sdio通信。对于cmd52,‘寄存器地址’字段的‘n’个比特可以重新用作sdio单元地址。这与典型地只使用寄存器地址空间的一部分的当前sdio设备兼容。如下进一步讨论的,中继的sdio单元和非中继的sdio单元可以对这些地址比特进行解码以确定它们是否正在被寻址。

图1的rsdio系统1支持标准接口兼容性。比如rsdio单元1-4之类的中间设备包含允许rsdio系统1进行操作的sdio中继逻辑7;但是,主机3和可以在图1的示例sdio系统1中包括的其它可能的终端设备(sdioflash(闪存)等等)可以是不需要专用sdio中继逻辑7的兼容标准sdio的设备。

如本文中所使用的,“逻辑”包括但不限于用于执行功能或动作,和/或用于引起来自另一个逻辑、方法和/或系统的功能或动作的硬件、固件、软件和/或每个的组合。例如,基于期望的应用或需要,逻辑可以包括软件控制的微处理器、比如专用集成电路(asic)之类的分立逻辑、可编程逻辑设备、包含指令的存储器设备等等。逻辑可以包括一个或多个门、门的组合或其它电路组件。逻辑还可以完全地体现为软件。在描述多个逻辑性逻辑的情况下,可能将该多个逻辑合并到一个物理逻辑中。类似地,在描述单个逻辑的情况下,可能将该单个逻辑分布在多个物理逻辑之间。

图4说明了使用中继的rsdio_cmd信号的rsdio系统30的另一个实施例。如图所示,该实施例包括主机和两个无线设备1-2。每个无线设备1-2具有两个比特的rf接收机(rf2bit)、用于构造进入数据的帧的成帧逻辑和连接到sdio接口的帧fifo。该主机包括sdio端口、直接存储器存取(dma)单元和fifo。

如图所示,每个无线设备1-2对sdio命令进行响应。如图所示,每个无线设备针对sdio总线进行仲裁以确保帧被恰当地传送给主机fifo。在一个实施例中,来自多个无线调谐器前端的数据帧是经由一个共享的sdio总线来传送给主机dma的。在该示例实施例中,无线设备1-2传送相同大小(512字节)的帧以及具有相同的fifo大小。在一些实施例中,帧速率可以是取决于接收信号带宽而不同的。

由于emi原因,周期性地以这些速率发送处于音频范围内的数据可能不被接受。在一些配置中,可以实现具有变化的帧计数和随机化延迟的分散传输方案。针对模拟模式可能需要这个要求。

图5说明了类似于图1的rsdio系统1的系统40的实施例。图5的rsdio系统40具有主机43、标准sdio接口45和rsdio设备1-4。在该rsdio系统40中,rsdio设备1-4具有中继的命令信号(sdio_cmd)和中继的数据信号(sdio_dat)二者。该实施例针对sdio_dat信号只使用一个引脚,因此可以与针对数据信号使用多个引脚的其它实现方式相比具有的引脚计数要小。其它实施例可以使用多于一个sdio_dat线/信号。

回到参考图1,如果rsdio单元1接收sdio_cmd信号,则它的sdio中继逻辑7将确定rsdio单元1是否要执行对应的sdio命令以及将那些结果发送回主机3。rsdio单元1总是自动生成cmd_relay信号以及输出cmd_relay信号,以将该sdio命令中继给rsdio单元2。如下文进一步讨论的,sdio中继逻辑7能够确定它的对应的sdio单元1是否要处理命令的一种方式是将该sdio单元中编码的地址与该sdio_cmd指令中的地址比特进行比较。

在rsdio单元2在它的sdio_cmd输入处从rsdio单元1接收该cmd_relay信号时,它的sdio中继逻辑7将自动生成cmd_relay信号以及向rsdio单元3输出cmd_relay信号。该sdio中继逻辑7将进行检查,以看rsdio单元2是否要处理该指令。如果rsdio单元2要处理该命令,则它将处理该命令以及将输出数据转发回主机3。要在sdio_cmd线上发送的输出数据将首先在它回到主机3的路上通过rsdio单元1来被向后转发。类似地,在rsdio单元3在它的sdio_cmd输入处从rsdio单元2接收该cmd_relay信号时,它会自动将所述cmd_relay信号中继给rsdio单元4,以及它的sdio中继逻辑7将类似地确定rsdio单元3是否要响应。如果有额外的单元,类似的情况将会发生在rsdio单元4中,以此类推,直到找到由该命令寻址的sdio单元以执行该命令为止。

在更详细地描述rsdio系统1之前,现在描述它的好处和其它特性中的一些。图1的中继sdio系统1维护sdio接口标准的引脚高效低速高吞吐量共享接口的目标,同时使用单sdio接口来提供与两个或更多个sdio芯片的系统芯片间通信。可以在没有额外引脚的情况下寻址多个设备。很多设计是引脚有限的,以及本文中描述的实施例提供用于访问多个设备的高效引脚解决方案。

如图1所示,可以利用以下各项来实现rsdio系统1:单个主机到从属sdio时钟(sdio_clk)、单个双向sdio命令(sdio_cmd)和一个或多个双向sdio数据(sdio_dat)信号引脚。在利用三个sdio接口引脚来实现时(假设是1比特共享的sdio数据总线),rsdio系统1的主机3可以以50mbps(兆比特每秒)或者更大速率与多达15个从属设备进行通信。连接的设备的数量可以受限于用于寻址的比特数量和/或受限于遍及命令中继链的延迟,因为可以期望的是在充分考虑信号完整性(比如在sdio_dat未被中继时的设备驱动强度)的情况下,该延迟满足要求的sdio响应时间。

在一些中继sdio实施例中,可以从连接到cmd_relay输出的相邻rsdio设备检测到响应。这触发了响应计数器,所述响应计数器跟踪在sdio接口上发送的比特的数量。该响应通过到sdio_cmd信号来传送给下一个rsdio设备或主机。由于sdio设备中的一个sdio设备在一时间处可以生成该响应,因此在中继信号上没有冲突。在一些实施例中,本地sdiofsm(有限状态机)是sdio_cmd的默认驱动器以及可以生成响应。

在一些配置中,可以定义全局地址以同时访问所有rsdio单元1-4。最后的设备(或任何被如此指定的设备)可以为要求一个响应的任何全局访问(比如读取访问)生成响应。例如,sdio“功能0”访问可以被处理为全局访问,使得从主机3的角度看,所有连接的设备相当于单个设备。本领域的普通技术人员将会了解的是,在初始化阶段期间使用“全局命令”可以在其它单元空闲时使一个指定的单元响应。空闲单元不回复,这样它们无法指示sdio总线上是否有任何错误。一种可能的解决方案是一旦初始化以及对全局命令的使用完成,就检查其它先前的设备的状态。额外地,在所有sdio设备都完全相同时,这些方式工作效果最好。

在一些实施例中,如图6中说明的状态图47中示出的,图1的sdio单元1-4中的每一个sdio单元可以被初始化。图7说明了可以在上文讨论的中继逻辑7中实现的一些rsdio逻辑49的示例方块图。

如本领域的普通技术人员所理解的,设备地址和全局地址的格式可以用不同方式实现。在一种实现方式中,17比特sdiocmd52/cmd53地址字段的三个msb(最高有效比特)被用于选择rsdio设备。在其它实施例中,使用在命令中嵌入的地址还可以由比如下文在图10中讨论的那些未中继的sdio设备来使用。此外,在其它实施例中可以使用更多或更少比特。可选择地,如果该3个msb都被设置为已知值,则可以执行全局访问(其中所有rsdio设备都被写入)。可以将逻辑功能的地址的一个示例存储器映射如下实现:

fn0(功能0)存储器映射:

所有0x00000到0x1ffff<--这被解码为全局(所有设备)访问。中继链中的最后的设备将响应。

fn1(功能1)存储器映射:

sdio设备00x00000到0x03fff

sdio设备10x04000到0x07fff

sdio设备20x08000到0x0bfff

sdio设备30x0c000到0x0ffff

sdio设备40x10000到0x13fff

sdio设备50x14000到0x17fff

sdio设备60x18000到0x1bfff

所有设备0x1c000到0x1ffff<--这被解码为全局(所有设备)访问。中继链中的最后的设备(或任何预先分配的设备)将对全局命令进行响应。

该存储器可以平等地应用于所有功能,但是在其它实施例中,不同存储器映射可以被分配给不同功能。

图8说明了在两个或更多个sdio单元对单个sdio命令进行响应并且向主机发送回数据的情况下,发起多址sdio数据传送的该单个sdio命令的实施例。在发起多个sdio访问时,响应于来自该主机的单个命令,每个sdio单元将依次等待/仲裁sdio数据总线以向该主机发送回数据。图9说明了由控制该多个sdio访问的多个sdio仲裁逻辑实现的一些信号以及其它相关信号的示例时序。在主机通过sdio_cmd发出命令时,多个sido仲裁逻辑检测该命令的开始。这触发跟踪在sdio接口上接收到的比特的数量的命令计数器。

如本领域普通技术人员所理解的,该仲裁逻辑的其它配置可以利用其它功能和信令来实现。例如,可以在rsdio设备之间共享busfree信号。这可以是专用信号(使用弱上拉和有线的or)。替代地,它可以是从sdio_dat[0]信号创建的。busfree指示共享总线何时可用于使用。重置不可以使它无效。在busfree是高值时,等待sdio_dat[0]降低(数据帧的开始)。接下来,载入具有用于传输的时钟数的发送计数器(txclkcnt)+swidlecnt,其中,可以选择swidlecnt来满足sd总线时序要求。busfree保持低值直到对sdio时钟进行计数的txclkcnt计数器倒数到0为止。

可选地,在busfree的上升边缘上,周期性时隙计数器(slotcnt)(周期=n_slots)被重置为0。sdio设备的时隙计数器可以同步地对sdio_clk周期或多个sdio时钟进行计数。在slotcnt等于它的被分配的slot_number(时隙数)时sdio设备可以访问该总线。该方案可以要求起初只有一个设备是活跃的以同步地开始所有其它设备中的时隙计数器,否则在第一访问上可能有冲突。第一sdio设备的传输可以是利用直接sdiocmd53命令来发起的。

水平计数器(lvlcnt)对时隙计数器的循环进行计数。l_max(>0)处的开始代表完全状态下至0~空。在一些实施例中,在sdio设备具有准备好要发送的帧并且它的水平计数器小于或等于它的缓存器水平时,sdio设备将访问该总线。可选地,可以使用缓存器水平的上半部分msb(例如,8个缓存器以及l_max=4)。

在一些实施例中,在多个sdio访问期间从连接的设备的数据传送可以被分散以减小emi。在一些应用中,帧是以恒定速率可用的。该帧时序可以表示为sdio时钟的倍数。以连续速率,fm帧之间存在可能造成不期望的音调的恒定间隙。

可以由范围从0到2x间隙时间的txholdoff时间来诱发分散。直到rsdio设备的间隙定时器(自从码片的最后一个tx结束,对sdio时钟除以编程的除法器进行计数)达到txholdoff或达到临界缓存器水平门限为止,rsdio设备不发送。其它同步逻辑保持活跃,这样该总线只在其空闲时被访问。txholdoff的范围可以是0...255。该间隙定时器计数的滴答数是间隙周期*2/255。txholdoff可以从在每个tx之后创建最大长度序列的lfsr载入。加上从buffer_level到txholdoff的额外反馈(在比较之前将n倍的bufferlevel加到间隙定时器)以减少对增加缓存器水平的推迟。在高总线利用率的情况下,tx时间与被密集地分组的帧所定义的栅格对齐以及发生帧重新排序。

图10说明了具有四个sdio单元1-4、主机23和单sdio接口25的sdio系统20。但是,与图1不同的是,这四个单元不是中继的sdio单元,因为它们可以在无需中继的情况下被单独地寻址。因此,图10的sdio单元1-4不需要具有cmd_relay输出。在一个实施例中,图10中的sdio单元1-4中的每一个sdio单元可以是在制造时利用独特的sdio单元地址a1-4来编程的。一些配置可以提供针对具有非易失性存储器(nvm)的设备的对sdio总线共享机构的简化。很多sdio设备(比如sdio单元1-4)具有nvm,所述nvm使与该单元的操作有关的参数能够在半永久性的基础上存储在该nvm中。在存在这样的能力时,它可以用于在sdio单元的存储器中存储与sdio接口的操作有关的参数,所述参数包括sdio单元地址。这使得sdio单元地址能够在制造时被预先分配,简化用于共享该sdio接口的机构以及避免对用于分配地址的中继机构的需要。

还可以在知道关于它要与之连接的sdio单元1-4的地址27的情况下,对主机23进行编程。知道该地址,主机23能够通过使用/发送在例如sdio_cmd信号中嵌入的适当的地址来与单个sdio单元通信。

如稍早提及的,寻址机构可以具有下文的可以用在图1和图5的中继实现方式和/或图10的非中继实现方式中的一些特征。例如,寻址方案可以利用比如cmd52和/或cmd53命令之类的标准sdio命令和响应。对于cmd52,‘寄存器地址’字段的‘n’个比特可以被重新用作sdio单元地址。这与通常只使用寄存器地址空间的一部分的当前sdio设备兼容。图11中说明了sdio规范中的cmd52的格式。

不但增加用于存储sdio设备地址的能力,而且sdio单元1-4可以从标准操作被修改为被直接寻址时响应。在实践中,在主机将命令cmd52和cmd53用于通信功能之前,它将执行若干个先前的安全数字(sd)命令。先前的sd命令是在该sdio标准之前建立的较早的sd标准中指定的。在一些实施例中,在寻址这些更早的sd命令时可以使用替代方式。一种方式可以是以与如上列出的针对cmd52和cmd53命令类似的方式,对这些较早的sd命令进行重新解释,以包括设备地址(例如,举例而言,通过使用cmd5的保留比特)。如果重新解释不是期望的方式,如果所有sdio设备都是完全相同的,则另一种替代方法会是让每个sdio单元1-4处理初始sd命令以及任命一个预先指定的设备来发送响应。如上文提及的,非响应设备可以检测sdio总线错误,这样它们的状态可以在初始化完成之后被检查,以解决循环冗余校验(crc)。但是,那些本领域的普通技术人员将了解用于处理总线错误/crc的其它各种方式。

如先前提到的,虽然在图10中描绘了四个sdio单元1-4,但是设备的数量可以扩展到高达用于寻址的比特数量所意味的极限。在另一个实施例中,会使主机23知道一个sdio单元并且不知道要求分离寻址的其它三个sdio单元。该实施例利用逻辑功能的sdio概念。如本领域的那些普通技术人员所理解的,不同sdio功能号可以被分配给设备中的每个设备(针对单个功能设备;替代地不同的功能地址集合会被用于多功能设备)。sdio标准支持七个功能。该方式的优势是由于主机可以使用标准化sdio功能,而不是必须对标准设施进行重新解释以实现总线协议,所以它可以被简化。

逻辑功能的使用可能还需要对使用较旧的sd传统命令的初始化序列作出解释。一些实施例可以对完全相同的sdio单元1-4的集合进行限制以处理公共sd信令和初始功能0信令。如本领域的那些普通技术人员所理解的以及如上文所讨论的,其它实施例可以使用具有明显的设备地址和功能地址的混合方式。

参考流程图可以更好地了解示例方法。虽然出于简化的目的,将对说明的方法的解释示出以及描述为一系列块。但是要了解的是,该方法不受块的顺序限制,因为一些块可以按照与示出的和描述的不同顺序发生和/或与示出的和描述的其它块并发发生。此外,可以要求比所有说明的块要少的块来实现示例方法。块可以被组合或分散到多个组件中。此外,额外的和/或替代的方法可以采用额外的、未说明的块。

图12说明了使用单个主机和单个sdio来与两个或更多个中继sdio(rsdio)单元进行连接的方法400。在402处,方法400由通过第一rsdio单元处的sdio接口,来在第一rsdio单元处从主机接收sdio命令开始。关于该第一rsdio单元是否要对该命令进行响应,在404处,它总是在接收到该命令时立刻将该命令转发给第二rsdio单元。如上文所讨论的,该第一rsdio单元可以包含sdio中继逻辑,所述sdio中继逻辑将该sdio命令从第一rsdio单元上的中继端口转发给该第二rsdio单元上的sdio_cmd端口。在406处进行确定以确定该第一rsdio单元是否应该对该sdio命令进行响应。在一个配置中,该确定可以由rsdio单元中的每个rsdio单元中的中继逻辑来进行。例如,该中继逻辑能够对该sdio命令进行解码,以及至少部分基于该sdio命令来确定该第一rsdio单元是否要响应。如上文所讨论的,该确定可以是基于sdio命令中的地址比特的。在408处,如果该第一rsdio单元要响应,则该第一rsdio单元执行该命令以及通过该单sdio接口向主机发送响应。在410处,在第二rsdio单元接收该命令时,该第二rsdio单元总是将相同的命令转发给第三rsdio单元。在412处进行确定以确定该第二rsdio单元是否要执行该命令。在414处,如果该第二rsdio单元确定它要执行该sdio命令,则该第二rsdio单元执行该命令以及通过该单sdio接口向主机发送响应。类似于前两个sdio单元,该第三rsdio单元将确定它是否要执行该命令,并且如果是的话,则在416处执行该命令以及向主机发送响应。当然,这是具有三个rsdio单元的示例;但是,其它示例可以包含多于三个rsdio单元以及具有与图4类似的流。

图13说明了使用单个设备和单sdio接口来与使用现有sdio命令指令中的自由比特的两个或更多个sdio设备进行通信的示例方法500。在502处,该方法500由向sdio单元分配地址开始。在504处,这些地址被输入到sdio设备中。如上文所讨论的,该地址可以被输入到nvr中,硬连线到该sdio设备中的硬件或地址解码逻辑中,或者以另一种方式编码到该sdio设备中。在506处,关于地址分配的信息类似地存储到主机设备中。在508处,方法500生成sdio命令,所述sdio命令在该命令的先前未使用的比特中将地址编码到该单个sdio设备。该命令可以由主机生成。随后,在510处,该sdio命令通过单sdio端口被发送给至少两个sdio设备。在512处,接收该sdio命令的所有sdio设备对存储在该sdio命令中的地址比特进行解码。在一个实施例中,在514处,只有被那些比特寻址的sdio设备执行该命令以及通过该单sdio接口来对该主机进行响应。

图14说明了本文中描述的示例系统和方法以及等效物可以在其中操作的示例计算设备。该示例计算设备可以是计算机600,所述计算机600可以是主机设备。该计算机600包括由总线608可操作地连接的处理器602、存储器604和输入/输出端口610。在一个示例中,计算机600可以包括sdio地址逻辑630,所述sdio地址逻辑630被配置为确定要进行寻址的以及已经执行了sdio命令的那个sdio设备1-8。如上文所讨论的,可以通过在要执行的命令的未使用的比特中放置表示sdio设备1-8中的一个sdio设备的地址来执行。在不同示例中,sdio地址逻辑630可以实现在硬件、软件、固件和/或它们的组合中。因此,逻辑630可以提供用于在sd或sdio指令中放置地址,使得一个sdio设备执行该指令以及对该指令进行响应的单元(例如,硬件、软件、固件)。虽然逻辑630被说明为附着到总线608的硬件组件,但是要了解的是在一个示例中,逻辑630可以实现在处理器602中。

一般描述计算机600、处理器602的示例配置可以是包括双微处理器和其它多处理器架构的不同的各种处理器。存储器604可以包括易失性存储器和/或非易失性存储器。非易失性存储器可以包括,例如rom、prom、eprom和eeprom。易失性存储器可以包括,例如ram、同步ram(sram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、直接ram总线ram(drram)等等。

盘606可以是经由例如输入/输出(例如,卡、设备)618和输入/输出端口610来可操作地连接到计算机600的。盘606可以是,例如磁盘驱动、固态硬盘驱动、软盘驱动、磁带驱动、zip驱动、闪存卡和/或存储棒。此外,盘606可以是cd-rom、cd可记录驱动(cd-r驱动)、cd可重写驱动(cd-rw驱动)和/或数字视频rom驱动(dvdrom)。例如,存储器604能够存储过程614和/或数据616。盘606和/或存储器604能够存储对计算机600的资源进行控制和分配的操作系统。

总线608可以是单个内部总线互连架构和/或其它总线或网格架构。虽然说明了单个总线,但是要了解的是,计算机600可以使用其它总线(例如,pcie、sata、infiniband、1384、usb、以太网)与各种设备、逻辑和外围设备通信。总线608可以是包括以下各项的类型:例如存储器总线、存储器控制器、外围总线、外部总线、纵横开关和/或本地总线。

计算机600可以经由输入/输出接口618和输入/输出端口610来与输入/输出设备交互。输入/输出设备可以是,例如键盘、麦克风、定点设备和选择设备、相机、视频卡、显示器、盘606、网络设备620等等。输入/输出端口610可以包括,例如串行端口、并行端口、usb端口等等。

单个sdio接口632与输入/输出端口610连接。八个sdio设备1-8并行连接到单个输入/输出端口610。如上文所讨论的,这些sdio设备1-8均预先加载有不同地址,使得只有由在sdio命令的先前未使用比特中放置的地址实际寻址的sdio设备将会对该命令进行响应。

计算机600可以操作在网络环境中,并且因此可以经由输入/输出接口618和/或输入/输出端口610来连接到网络设备620。通过网络设备620,计算机600可以与网络交互。通过该网络,计算机600可以逻辑上连接到远程计算机。计算机600可以与之交互的网络包括,但不限于局域网(lan)、广域网(wan)和其它网络。所述网络可以是有线和/或无线网络。

在上文的描述中,为了简洁、清楚和理解已经使用了某些术语。在先前技术的要求之外不需要从此暗示不必要的限制,因为这样的术语是用于描述性目的的,以及旨在被广义地翻译。因此,本发明不限于示出的和描述的特定细节、代表性实施例和说明性示例。因此,本申请旨在包含落在所附权利要求范围内的变更、修改和变型。

此外,本发明的描述和说明是示例,以及本发明不限于示出的或描述的确切细节。对“优选实施例”、“实施例”、“一个示例”、“示例”等等的提及指示这样描述的实施例或示例可以包括特定特征、结构、特性、属性、元素或限制,但是不是每个实施例或示例都必须包括该特定特征、结构、特性、属性、元素或限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1