具有经由控制器集成的多功能的闪存驱动器的制造方法
【专利说明】具有经由控制器集成的多功能的闪存驱动器
[0001]相关申请的交互引用
[0002]本申请要求2014年8月19日提交的美国临时专利申请号为62/039,353,名称为“FLASH DRIVE WITH MULTIPLE FUNCT1NS INTEGRATED VIA A CONTROLLER” 的优先权。该申请的内容以引用方式被全部合并于此。
【背景技术】
[0003]闪存驱动器是包含闪存,其是非易失性存储器,并且可以通过标准连接器连接到计算设备,诸如个人计算机,智能手机,平板电脑等的设备。在经由标准接口将闪存驱动器连接到第一计算设备,如经由全尺寸通用串行总线(USB)连接器连接台式计算机之后,用户可以使用一组标准协议,诸如用于USB大容量存储设备类的,将数据从桌面计算机传送至IJ闪存驱动器。因为数据被存储在非易失性闪存中,闪存驱动器保留数据,即使未连接到任何计算设备和未接收任何功率。闪存驱动器可以连接到第二计算设备,其具有相同的标准连接器并支持相同的协议,比如具有全尺寸USB连接器的笔记本电脑,并且该数据可以从闪存驱动器的闪存传送到笔记本电脑。
【发明内容】
[0004]本文中所介绍的技术是利用闪存驱动器的单个控制模块来集成多种功能。集成的功能可以由闪存驱动器利用以与该闪存驱动器连接的计算设备进行通信。上述的闪存驱动器,是具有全尺寸USB连接器的闪存驱动器且其支持USB协议,具有由于不与一些计算设备兼容的问题。由于不兼容的物理连接器,闪存驱动器可能与某些计算设备不兼容。例如,闪存驱动器不能直接连接到不具有全尺寸USB连接器的平板计算机。
[0005]即使当计算设备具有物理上兼容的连接器,闪存驱动器仍然可能不兼容,例如,由于不兼容的通信协议。例如,虽然运行iPhone操作系统(1S)的Apple电脑TM(Apple)计算设备可以具有一个全尺寸USB连接器,但Apple计算设备可能具有不兼容的通信协议。当用户插入闪存驱动器到Apple计算设备的全尺寸USB连接器时,Apple计算设备可能会显示一个消息,说明该闪存驱动器是无法识别或不被支持的设备。这可能是因为Apple计算设备不能识别仅支持大容量存储类USB协议的设备,即使该设备通过标准的USB连接器相连。作为具有不兼容的通信协议的结果是,该闪存驱动器不能被用来从不相容的Apple计算设备发送数据或获得数据,即使该闪存驱动器和Apple计算设备都可以通过物理上兼容的连接器进行连接。
[0006]1S设备,其是运行任何版本的1S的计算设备,可能要求经由USB连接器(“1SUSB设备”)进行通信的设备,如实现所公开的技术以与USB和1S设备(“1S USB闪存驱动器”)进行通信的闪存驱动器,除了支持USB大容量存储类协议外还支持外设协议。外设协议是能使外设,如闪存驱动器,与1S设备进行通信的协议和/或一组命令。例如,Apple公司的计算设备可能要求1S USB设备支持USB大容量存储器类的协议和外设协议。外设协议可以是,例如,Apple的专有外设协议,该协议的细节可从Apple公司的MFi许可项目获得。外设协议的例子包括提交于2012年1月10日的美国专利8,590, 036,题为“Methodand system for authenticating an accessory (认证附件的方法和系统)”中所涉及的附件协议。
[0007]1S可以进一步要求1S USB闪存驱动器支持认证方案,其需要1S USB闪存驱动器包括安全1C。安全1C为可以从计算设备,例如1S设备,接收消息,并能将响应提供给计算设备,使计算设备能验证包括安全1C的外设设备。1S USB闪存驱动器的一个例子使用外设协议发起与1S设备,如iPhone或iPad的通信。作为发起通信的一部分,1S设备认证1S USB闪存驱动器。为了认证闪存驱动器,验证消息被发送到1S USB闪存驱动器,其反过来将消息发送到安全1C,这是1S USB闪存驱动器的一部分。安全1C响应于合适的响应消息,该消息被中继到1S设备。当1S设备接收到正确的响应消息,授权的通信通道可以被建立作为控制会话。一旦控制会话建立,被开发以与驱动器一起工作的应用可以打开二级通道以用于用户数据传送。
[0008]与USB兼容设备以及1S设备两者进行通信的一种方式是使用存储控制器模块来实现USB协议的功能,并与闪存进行通信,并使用1S控制器模块来实现外设协议的功能,并与安全1C进行通信。本文所介绍的技术使得单个控制模块实现所有的这些功能(“集成的功能”)。换句话说,利用该技术,单个控制模块,诸如存储控制器模块,能够实现USB协议的功能,并与所述闪存进行通信,以及实现外设协议的功能,并与安全1C通信。
[0009]利用单个模块,诸如存储控制器1C,集成所有的集成功能,许多限制被克服。例如,为了克服使用不旨在实现外设协议的模块的性能限制,连接的外设(CP)通道可以被实现以为了使小型计算机系统接口(SCSI)命令能被使用。CP通道是两个组件之间的通信通道,其使这两个组件使用外设协议的命令以外的协议和/或命令进行通信。存储控制器1C,设计用于数据存储应用,支持SCSI命令,其不被外设协议所支持。通过建立CP通道,这些更高性能的SCSI命令可用于加快多达一个数量级的数据传送,相比于仅仅使用外设协议的协议和/或命令来执行数据传送而言。
[0010]作为另一实例,因为数据传送是在应用层被管理,并且由于在较低的层上做出的错误检测对于应用不可见,所以较低层的错误检测已被避免。当错误在较低层被检测到时,没有通知被发送到应用层,所以应用层没有解决错误。另外,由于管理发生在应用层,在较低层检测到的错误没有被处理,因为应用层没有被通知有错误。为确保应用层被通知所有错误,错误,如循环冗余校验(CRC),可在数据传递到较低一层之前在应用层被检测,并且应用层可以修复错误(以及避免任何CRC错误由较低层检测到)。如这些的技术使得使用单个控制模块集成功能的集成成为可能。
【附图说明】
[0011]—个或多个实施例以举例的方式在附图中被说明,其中类似的标号表示类似的元件。
[0012]图1是环境图示,其示出了闪存驱动器被在其中使用的环境,与各种实施例一致。
[0013]图2是示出了为两组功能利用两个控制器模块的闪存驱动器的一个例子的方框图,与各种实施例一致。
[0014]图3是示出了使用控制器模块集成两组功能的闪存驱动器的一个例子的方框图,与各种实施例一致。
[0015]图4是示出了通过存储控制器的1C设计的定制集成了两组功能的闪存驱动器的一个例子的框图,与各种实施例一致。
[0016]图5是示出了使用闪存驱动器从非-1Phone操作系统(1S)计算设备复制数据到1S计算设备的工作图,与各种实施例一致。
[0017]图6是示出了具有两个控制器模块的闪存驱动器的一个例子的框图,其能使电流从源设备传送到移动设备,与各种实施例一致。
[0018]图7是示出了具有集成控制器模块的闪存驱动器的一个例子的框图,其能使电流从源设备传送到移动设备,与各种实施例一致。
[0019]图8是示出了具有电源管理模块的闪存驱动器的一个例子的框图,其能使电流从源设备传送到移动设备,与各种实施例一致。
[0020]图9是示出了使用闪存驱动器来将电流从源设备传递到移动设备的工作图,与各种实施例一致。
[0021]图10是示出了当用户持有智能手机时,在智能手机和用户的手之间形成的空间的图示,与各种实施例一致。
[0022]图11是示出了用户的小指被放置在智能手机的底部边缘上以稳定智能手机的图示,与各种实施例一致。
[0023]图12示出了被成形以利用移动装置后面的空间的闪存驱动器的图示,与各种实施例一致,以及如从三个不同的角度所观看的一样。
[0024]图13是示出了连接到一个智能手机并利用智能手机后面的空间的闪存驱动器的主视图,与各种实施例一致。
[0025]图14是示出了连接到一个智能手机并利用智能手机后面的空间的闪存驱动器的侧视图,与各种实施例一致。
[0026]图15是示出了连接到一个智能手机并利用智能手机后面的空间的闪存驱动器的后视图,与各种实施例一致。
[0027]图16是示出了利用智能手机和用户的手之间的空间的闪存驱动器的仰视图,与各种实施例一致。
[0028]图17是示出了利用智能手机和用户的手之间的空间的闪存驱动器的主视图,与各实施例一致。
[0029]图18是示出了具有被成形为利用移动设备后面的空间的连接器的闪存驱动器的图示,与各实施例一致,如从两个不同的角度观看的一样。
[0030]图19是示出了能够被弯曲以适应不同的厚度的移动设备的闪存驱动器图示,与各个实施例一致。
[0031]图20是示出了包括一帽,其被成形为利用移动设备后面的空间的闪存驱动器的分解图,与各实施例一致。
[0032]图21是示出了处理系统的示例的框图,在其中在此描述的至少一些操作可以被实现,与各种实施例一致。
【具体实施方式】
[0033]在本说明书中,提及“实施例”,“ 一个实施例”,“实例”或类似的,意味着所描述的特定特征、功能、结构或特性被包括在这里介绍的技术的至少一个实施例中。在本说明书中这样的短语出现不一定都指代相同实施例。另一方面,提及的实施例也并不一定是相互排斥的。另外,术语“模块”是指广义上的软件、硬件或固件(或其任何组合)的组件。模块通常是功能组件,可以使用指定的输入产生有用数据或其它输出。模块可以是或可以不是独立的。应用程序(也称为“应用”)可以包括一个或多个模块,或者模块可以包括一个或多个应用程序。
[0034]此外,术语“引起”及其变化是指任何直接的因果关系或间接因果关系。例如,一个计算机系统可以通过发送消息给第二计算机系统来“引起”动作,以命令、请求或促使第二计算机系统执行动作。任何数量的中间设备可以在此过程中检查和/或中继该消息。在这方面,设备可以“引起”动作,即使它可能不知道该设备是否最终将执行动作。
[0035]另外,一个协议,例如USB协议,可包括任何一组协议的,可包括任何各种版本的协议,可包括任何各类的设备,等等,正如可以由本领域普通技术人员所能够理解的。例如,USB协议可以包括任何USB大容量存储设备类,USB人机接口设备类等,可包括任何的USB版本1.0、USB2.0、USB3.0,等。此外,支持协议可以包括支持该协议的仅一部分。例如,支持协议可以包括仅支持该组协议的一部分,仅支持各种版本的协议的一部分,仅支持各类设备的一部分,等等,或者甚至仅支持该组协议中的一个的一部分。
[0036]图1是环境图示,示出了闪存驱动器被在其中被使用的环境,与各种实施例一致。在环境100的实施例中,用户105具有闪存驱动器110并希望从电脑115传送数据到智能手机120。在此实施例中,电脑115运行Microsoft Windows操作系统(Windows),包括标准的全尺寸USB端口,且支持USB协议。在各种实施方案中,电脑115和/或智能手机120可以是任何一个运行支持USB大容量存储协议的操作系统的计算机系统,例如Android,1S的,MacOS的,OS X,Unix,HP-UX, Solaris,BSD,Linux等。操作系统可以是实时操作系统,诸如 LynxOS,RTLinux,VxWorks,Windows CE,FreeRTOS 等。返回到图 1 的实施例,用户 105可将USB连接器125插入到电脑115的USB端口。一旦连接,电脑115识别闪存驱动器110作为USB设备,并建立通信。用户105使用Windows界面,发起复制命令来从电脑115的硬盘复制一些数据,如电影到闪存驱动器110。
[0037]在将电影复制到闪存驱动器之后,用户105从电脑115的USB端口移除USB连接器125,并将闪电连接器130,这是一个标准的Apple电脑TM (Apple)连接器,插入智能手机120,它是运行1S的Apple设备。一旦连接,智能手机120识别闪存驱动器110作为Apple兼容设备,并建立通信。用户105,使用1S界面,发起复制命令,将电影从闪存驱动器125复制至智能手机120。
[0038]图2是一个框图,示出了为两组功能利用两个控制器模块的闪存驱动器的一个例子,与各种实施例一致。闪存驱动器200包括第一连接器205、第二连接器210、多路复用器215、锁存器220、安全IC 225、i0S接口控制器230、存储控制器235和闪存240。存储控制器235被用于第一组功能,其包括处理USB协议和管理与闪存240的通信。1S接口控制器230被用于第二组功能,其包括Apple 1S特定处理,和与安全1C或模块的通信。在图2的实施例中,第一连接器205、第二连接器210、多路复用器215、锁存器220、安全1C 225、1S接口控制器230、存储控制器235和闪存240,每一个都是连接到印刷电路板(PCB,未示出)的单独的组件,并且PCB电连至各组件的连接点,也被称为引脚。另外,安全IC 225、1S接口控制器230、存储控制器235和闪存240的每一个都是集成电路(1C)。而225-240在本实施例中是单独的集成电路,在其他实施方案中,任何和/或所有的225-240,以及多路复用器215和锁存器220,可以被集成到一个或多个1C中。
[0039]在图2的实施例中,第一连接器205是标准的Apple连接器,如Apple闪电连接器,Apple 30针连接器,或Apple雷电连接器,并且可以被用来连接到运行1S的计算设备。第二连接器210是用于非-1OS计算设备的标准连接器(即运行操作系统不是任何版本的1S的其他计算设备),如全尺寸USB连接器,标准的USB连接器,标准的A型USB连接器,B型USB连接器,迷你USB连接器,迷你USB A型连接器,迷你USB B型连接器,微型USB连接器,微型USB A型连接器,微型USB B型连接器或UC-E6连接器。第二连接器210可以被用来连接到非_1S计算设备,并且在一些实施方案中,可用于连接到运行1S的计算设备。标准的连接器可以是上述的标准Apple连接,或上述用于非-1OS计算设备的标准连接器,或任何其他工业标准的连接器。在各种实施例中,第一连接器205是第一类型的标准连接器以及第二连接器210是第二类型的标准连接器。
[0040]返回到图1的例子,闪电连接器130可以是第一连接器205,以及USB连接器125可以是第二连接器210。使用图1的例子,用户105可以将第二连接器210插入电脑115的USB端口。一旦连接,第二连接器210的电源引脚被电连接到电脑115的5.5V电源,并且电源引脚传送5.5V到锁存器220。
[0041]在这一点上,第一连接器205的电源引脚未被连接。锁存器220,它可以是交叉耦合的NAND锁存器,从检测到来自第二连接器210的5.5V电源引脚是活跃的,以及检测到来自第一连接器205的3.3V电源引脚是不活跃的。锁存器220被设置为第二值,以指示第二连接器210是活跃的(即,以指示闪存驱动器的读取和写入将通过这个连接器)。锁存器220的输出被电连接到多路复用器215的选择输入,并且当选择输入设置为第二值时,该多路复用器选择第二连接器210的数据引脚以发送到1S接口控制器230。锁存器220的输出也被电连接到1S接口控制器230和存储控制器235。当锁存器220的输出被设定为第二值时,1S接口控制器230和存储控制器235可以采样锁存器220的输出,以确定第二连接器210是否是活跃的。
[0042]组件215-240可以通过适当的电源引脚供电(如第一连接器205的3.3V电源引脚,第二连接器210的5.5V电源引脚,两个电源引脚的组合,第一连接器205或第二连接器210的不同的电源引脚,等等)。一旦部件215-240被通电,这些组件通过一个复位序列,其初始化部件并开始执行被存储在闪存240中的应用程序以有效地“引导”闪存驱动器进入就绪状态。
[0043]在闪存驱动器处于就绪状态之后的某点处,笔记本电脑115发送USB协议消息至闪存驱动器200以启动通信。USB协议消息经由多路复用器215到1S接口控制器230,其将USB协议消息与存储控制器235关联。存储控制器235被配置为,经由存储控制器235的1C设计的定制和/或通过存储控制器235执行的软件,使用USB协议进行通信。存储控制器235接收并识别出USB命令,并相应地运作以建立在笔记本电脑115和闪存驱动器200之间的通信。用户105,使用WindowS界面,发起复制命令以从电脑115的硬盘到闪存驱动器110复制一些数据,诸如电影。笔记本电脑115,利用一系列的USB命令,通过第二连接器210和多路复用器215发送电影到1S接口控制器230,其将数据转发到存储控制器235,其根据USB命令运作并将电影写入闪存240。
[0044]存储控制器235还配置成,通过存储控制器235的1C设计的定制和/或通过存储控制器235执行的软件,管理与闪存240的通信。存储控制器235可以是被优化以管理与闪存240的通信的模块,其包括管理从闪存读取数据,将数据写入闪存,以及擦除闪存的数据。管理与闪存的通信可以需要某些性能,例如管理闪存的数据的能力,以便适当地处理“擦除块”