同时支持大容量存储和以太网通信的系统及方法

文档序号:7917845阅读:195来源:国知局
专利名称:同时支持大容量存储和以太网通信的系统及方法
同时支持大容量存储和以太网通信的系统及方法技术领域
本发明一般地涉及以太网通信,并且更具体地涉及基于MMC/SD(Multimedia Memory Card/Secure Digital)接口的同时支持大容量存储和以太网通信的系统和方法。
背景技术
随着社会的发展,用户对在诸如手机、笔记本等嵌入式终端中存储数据的需求不断增加。然而,由于成本等原因,嵌入式设备不可能提供满足所有用户需求的存储空间。在实践中,常常使用MMC/SD存储卡、Micro-SD存储卡、Min1-SD存储卡等小型存储介质来提供扩展的数据空间。目前,使用MMC/SD接口扩展所述终端中的用户可用存储空间在嵌入式领域中已经非常普遍。图1是典型的基于MMC/SD接口的大容量存储结构模型,其包含通过 MMC/SD接口相互连接的至少一个主MMC/SD设备101和至少一个从MMC/SD设备102。如图1所示,主MMC/SD设备101包括主控制器103、主大容量存储装置105、主MMC/SD接口驱动装置107以及主MMC/SD接口,而从MMC/SD设备102包括从控制器104、从大容量存储装置 106、从MMC/SD接口驱动装置108以及从MMC/SD接口。主控制器103通过主大容量存储装置105提供文件系统服务以及对从设备存储数据的管理服务,而主MMC/SD接口驱动装置 107被用于实现MMC/SD信令在MMC/SD接口上的传输。相似地,从控制器104被设计用于控制从设备大容量存储装置106和从MMC/SD接口驱动装置108的运行并且从控制器104通过从大容量存储装置106提供数据存储服务。所述主设备和从设备还可以包括各种通用的或专用的外部设备(未在图1中示出)。
基于TCP/IP协议的以太网(!Ethernet)是当前应用最普遍的局域网技术。由于以太网平台技术扩展容易、维护简单、组网方便,该技术也不断被扩展到其他嵌入式领域。在嵌入式领域中,以太网物理层接口的主要形式有PCI网卡、USB卡以及光纤卡等。目前,MMC/ SD接口也已经可以作为以太网物理层接口来应用。图2是现有技术中的基于丽C/SD接口的以太网通信模型,其同样包含至少一个主MMC/SD设备201和至少一个从MMC/SD设备202, 所述至少一个主MMC/SD设备201和所述至少一个从MMC/SD设备202通过MMC/SD接口相互连接。不同于图1所示的大容量存储结构模型,主MMC/SD设备201包括主通信协议栈装置205而没有包括主大容量存储装置。同样地,从MMC/SD设备202中包括从通信协议栈装置206而没有包括主大容量存储装置。主MMC/SD设备201和从MMC/SD设备202也都可以包括各种通用的或专用的外部设备。基于MMC/SD接口的以太网通信系统的目的是在不改变嵌入式终端设备的硬件结构的基础上为其扩展网络应用能力。
然而,现有技术中基于MMC/SD接口的嵌入式终端设备或者单独支持主大容量存储装置,或者单独支持主通信息协议栈装 置。也就是说,用户如果希望嵌入式终端设备同时支持大容量存储设备和以太网通信,则不得不在嵌入式终端设备上设置至少两个MMC/SD 接口,而用户也需持有至少两个从MMC/SD设备,即只支持主大容量存储装置的从设备和只支持主通信协议栈装置的从设备。这使得嵌入式终端设备的生产成本提高,并且也给用户的操作带来了很多不便。
因此,存在对基于丽C/SD接口的同时支持大容量存储和以太网通信的系统的需求。发明内容
本发明的目标是提供基于MMC/SD接口的同时支持大容量存储和以太网通信的系统以及适用于这样的系统的方法,从而使得用户能够在带有MMC/SD接口的嵌入式终端设备上方便地同时进行大容量数据存储和以太网通信,并且使现有终端的结构得以简化,生产成本得以降低。
为了实现上述目标,本发明提供了一种用于同时支持大容量存储和以太网通信的主MMC/SD设备,所述主MMC/SD设备包括主MMC/SD接口,用于向从MMC/SD设备提供访问接口 ;SMMC/SD接口驱动装置,用于控制MMC/SD信令在所述主MMC/SD接口上的传输;主大容量存储装置,用于为大容量存储提供文件系统服务和数据管理服务;主通信协议栈装置,用于实现所述主MMC/SD设备与所述从MMC/SD设备之间的以太网通信;以及主控制器,用于控制所述主MMC/SD接口驱动装置、所述主大容量存储装置和所述主通信协议栈装置的操作; 其中所述主大容量存储装置和所述主通信协议栈装置分别与所述主MMC/SD接口驱动装置进行交互。
根据本发明的实施例,所述所述主大容量存储装置和所述主通信协议栈装置可以被设置为访问所述从MMC/SD设备中相互独立的物理地址。
根据本发明的实施例,所述主大容量存储装置和所述主通信协议站装置对所述主 MMC/SD接口驱动装置的操作是原子操作。
根据本发明的实施例,所述主控制器可以被用于通过所述主通信协议栈装置向所述从MMC/SD设备发送探查命令并且通过命令返回值确定所述从MMC/SD设备是否支持以太网通信。
根据本发明的实施例,所述主通信协议栈装置从上至下依次可以包括用于执行网络应用程序的应用层模块;用于执行以太网协议功能的传输层模块和网络层模块;用于封装以太网数据帧的数据链路层模块;用于为上层协议栈模拟以太网卡功能的MMC/SD以太网模拟模型EEM层模块;以及用于执行MMC/SD协议栈的MMC/SD协议层模块。
根据本发明的实施例,所述MMC/SD EEM层模块可以使用EEM包格式传输数据,所述EEM包可以由EEM头部字段和EEM负载字段组成。所述EEM头部字段可以包括第一字段和第二字段,所述第一字段可以用于定义所述EEM包的类型。
根据本发明的实施例,当所述EEM包为数据包时,所述第二字段可以包括校验状态字段和长度字段,其中所述长度字段可以用于指定所述EEM数据包中负载字段的长度, 而所述校验状态字段用于指定以太网数据帧的CRC校验的开启或关闭。
根据本发明的实施例,当所述EEM包为命令包时,所述第二字段可以包括命令类型字段和命令参数字段,其中所述命令类型字段可以用于定义EEM命令的类型,而所述命令参数字段用于定义EEM命令的参数。
根据本发明的实施例,所述MMC/SD协议层模块可以以下列方式中的一种使用 MMC/SD数据块承载所述EEM包一个MMC/SD数据块包含一个EEM包;一个MMC/SD数据块包含多个EEM包;多个MMC/SD数据块包含一个EEM包;多个MMC/SD数据块包含多个分开的EEM 包。
根据本发明的实施例,所述主MMC/SD接口可以是Min1-SD主接口、Micro_SD主接口或者标准MMC/SD主接口。
本发明还提供了一种用于同时支持大容量存储和以太网通信的从MMC/SD设备, 所述从MMC/SD设备包括从MMC/SD接口,用于向主MMC/SD设备提供访问接口;从MMC/SD 接口驱动装置,用于控制MMC/SD信令在所述从MMC/SD接口上的传输;从大容量存储装置, 用于为主MMC/SD设备的大容量存储提供对应的文件系统服务和数据管理服务;从通信协议栈装置,用于实现所述从MMC/SD设备与所述主MMC/SD设备之间的以太网通信;以及从控制器,用于控制所述从MMC/SD接口驱动装置、所述从大容量存储装置和所述从通信协议栈装置的操作;其中所述从大容量存储装置和所述从通信协议栈装置分别与所述从MMC/SD 接口驱动装置进行交互。
根据本发明的实施例,可以在所述从大容量存储装置的文件系统中包含特殊地址信息使得所述从MMC/SD接口驱动装置能够提供两个相互独立的物理通路。
根据本发明的实施例,所述特殊地址信息可以被设置在所述从大容量存储装置的文件系统王引导扇区后的保留扇区中。
根据本发明的实施例,所述特殊地址信息还可以被设置在从大容量存储装置的文件系统每个分区的引导扇区后的保留扇区中。
根据本发明的实施例,还可以在所述从大容量存储装置的文件系统主引导扇区后的保留扇区中设置对所述特殊地址信息的索引。
根据本发明的实施例,所述特殊地址信息的长度为512字节。
根据本发明的实施例,所述从控制器可以被设置为根据通过所述从MMC/SD接口接收到的数据是否发往所述特殊地址来区分所述数据是用于大容量存储还是用于以太网通信。
根据本发明的实施例,所述从通信协议栈装置从上至下依次可以包括用于执行网络应用程序的应用层模块;用于执行以太网协议功能的传输层模块和网络层模块;用于封装以太网数据帧的数据链路层模块;用于为上层协议栈模拟以太网卡功能的MMC/SD以太网模拟模型EEM层模块;以及用于执行MMC/SD协议栈的MMC/SD协议层模块。
根据本发明的实施例,所述MMC/SD EEM层模块可以使用EEM包格式传输数据,所述EEM包可以由EEM头部字段和EEM负载字段组成。所述EEM头部字段可以包括第一字段和第二字段,所述第一字段可以用于定义所述EEM包的类型。
根据本发明的实施例,当所述EEM包为数据包时,所述第二字段可以包括校验状态字段和长度字段,其中所述长度字段可以用于指定所述EEM数据包中负载字段的长度, 而所述校验状态字段可以用于指定以太网数据帧的CRC校验的开启或关闭。
根据本发明的实施例,当所述EEM包为命令包时,所述第二字段可以包括命令类型字段和命令参数字段,其中所述命令类型字段可以用于定义EEM命令的类型,而所述命令参数字段可以用于定义EEM命令的参数。
根据本发明的实施例,所述MMC/SD协议层模块可以以下列方式中的一种使用 MMC/SD数据块承载所述EEM包一个MMC/SD数据块包含一个EEM包;一个MMC/SD数据块包含多个EEM包;多个MMC/SD数据块包含一个EEM包;多个MMC/SD数据块包含多个分开的EEM 包。
根据本发明的实施例,所述从MMC/SD接口可以是Min1-SD从接口、Micro-SD从接口或者标准MMC/SD从接口。
本发明还提供了一种用于同时支持大容量存储和以太网通信的系统,所述系统包括上述任意一种主MMC/SD设备以及上述任意一种从MMC/SD设备,其中所述主MMC/SD设备与所述从MMC/SD设备通过同一 MMC/SD接口进行大容量存储和以太网通信。
根据本发明的实施例,所述主MMC/SD设备与所述从MMC/SD设备之间的以太网通信可以采用请求-响应机制,其中请求命令和响应命令均从所述从MMC/SD设备中的同一特殊地址读取。
根据本发明的实施例,在进行以太网通信时,所述主MMC/SD设备可以被设置为定时轮询所述从MMC/SD设备以从所述从MMC/SD设备接收数据。
根据本发明的实施例,所述主MMC/SD设备可以是带有MMC/SD主接口的手机、PDA、 膝上型计算机、POS机或者ATM机。
本发明还提供了一种用于在主MMC/SD设备与从MMC/SD设备之间同时支持大容量存储和以太网通信的方法,其中所述主MMC/SD设备为本发明所提供的主MMC/SD设备,所述方法包括下列步骤 a.主MMC/SD设备在检测到有从MMC/SD设备与其连接时读取从MMC/SD 设备文件系统中的特定位置以获取特殊地址信息;b.主MMC/SD设备向所述特殊地址发送探查命令并且根据命令返回值判断从MMC/SD设备是否是本发明所提供的从MMC/SD设备; c.如果不是,则主MMC/SD设备还原先前保存的特殊地址信息并且执行标准MMC/SD存储流程;否则,主MMC/SD设备加载主通信协议栈装置并且向从MMC/SD设备发送数据;d.从MMC/ SD设备根据来自主MMC/SD设备的数据是否发往所述特殊地址来区分所述数据是用于大容量存储还是用于以太网通信;e.如果所述数据向所述特殊地址发送,则从MMC/SD设备与主 MMC/SD设备进行以太网通信;否则,从MMC/SD设备与主MMC/SD设备一起执行标准MMC/SD 存储流程。
本发明提供了用于同时支持大容量存储和以太网通信的主MMC/SD设备及相应的从MMC/SD设备、由这两种设备构成的系统以及用于该系统的操作方法。本发明所公开的基于MMC/SD接口的同时支持大容量存储和以太网通信的设备、系统和方法使具有MMC/SD接口的主设备在保留大容量存储功能的同时,也可以支持网络功能,从而极大地拓展了这种具有大容量存储功能的MMC/SD接口的嵌入式终端设备的应用领域。
下面将结合具体的实施例来描述本发明的方法。


本发明的前述和其他目标、特征和优点根据下面对本发明的实施例的更具体的说明将是显而易见的,这些实施例在附图中被示意。
图1是现有技术中基于MMC/SD接口的大容量存储结构模型;
图2是现有技术中基于MMC/SD接口的以太网通信模型;
图3是根据本发明的基于MMC/SD接口的同时支持大容量存储和以太网通信的系统的不意图4示出了用于根据本发明的基于MMC/SD接口的同时支持大容量存储和以太网通信的设备的通信协议栈的示例结构;
图5示出了用于根据本发明的基于MMC/SD接口的同时支持大容量存储和以太网通信的设备的EEM包的示例组成;
图6是根据本发明的基于MMC/SD接口的用于同时支持大容量存储和以太网通信的方法的流程图。
具体实施方式
以下结合附图和具体实施方式
进一步详细说明本发明。需要说明的是,附图中的各结构只是示意性说明,用以使本领域普通技术人员最佳地理解本发明的原理,其不一定按比例绘制。
图3是根据本发明的基于MMC/SD接口的同时支持大容量存储和以太网通信的系统300的示意图。如图3所示,系统300包括至少一个本发明所提供的同时支持大容量存储和以太网通信的主MMC/SD设备301以及至少一个本发明所提供的同时支持大容量存储和以太网通信的从MMC/SD设备302,这两个设备能够通过一个MMC/SD接口相互连接。所述 MMC/SD接口可以是Min1-SD接口、Micro-SD接口、标准MMC/SD接口等任何符合MMC/SD接口协议规范的其他接口。主MMC/SD设备301和从MMC/SD设备302还可以分别包括各种通用的或专用的外部设备(未在图3中示出)。
根据本发明的主MMC/SD设备301包括主控制器303、主大容量存储装置305、主通信协议栈装置307、主MMC/SD接口驱动装置309以及用于向从MMC/SD设备302提供访问的主MMC/SD接口。一般地,主控制器303被用于控制主大容量存储装置305、主通信协议栈装置307以及主MMC/SD接口驱动装置309的操作。主大容量存储装置305主要被用于提供文件系统服务以及数据管理服务,其与现有主MMC/SD设备中的主大 容量存储装置的功能相似。主通信协议栈装置307被用于实现主MMC/SD设备301与从设备MMC/SD设备302之间的以太网通信信息的接收和发送,将在下文中结合图4详细说明该主通信协议栈装置的结构。主MMC/SD接口驱动装置309主要被用于实现MMC/SD信令在主MMC/SD接口上的传输。
相应地,根据本发明的从MMC/SD设备302包括从控制器304、从大容量存储装置 306、从通信协议栈装置308、从MMC/SD接口驱动装置310以及用于向主MMC/SD设备301提供访问的从MMC/SD接口。相似地,从控制器304被用于控制从大容量存储装置306、从通信协议栈装置308以及从MMC/SD接口驱动装置310的操作。从大容量存储装置306主要被用于为主MMC/SD设备301与其之间的大容量存储提供对应的文件系统服务和数据管理服务,其与现有从MMC/SD设备中的从大容量存储装置的功能相似。从通信协议栈装置307具有与主通信协议栈装置完全相同的协议栈结构,将在下文中结合图4详细说明。从MMC/SD 接口驱动装置310被用于实现MMC/SD信令在从MMC/SD接口上的传输。
图4示出了根据本发明的用于基于MMC/SD接口的同时支持大容量存储和以太网通信的设备的通信协议栈的示例结构。如图4所示,主通信协议栈装置与从通信协议栈装置具有完全相同的协议栈结构,并且主MMC/SD设备301与从MMC/SD设备302中的相同层相互对应,这类似于一般地基于以太网通信的两个设备之间的关联。举例来说,这样的通信协议栈可以包括应用层模块、传输层模块、网络层模块、数据链路层模块、MMC/SDEEM(Ethernet Emulation Model,以太网模拟模型)层模块、MMC/SD协议层模块。具体而言,应用层模块主要被用于执行网络应用程序,诸如TFTP、HTTP等;传输层模块和网络层模块被用于执行以太网协议功能,例如TCP/IP ;数据链路层模块被用于执行以太网数据帧的封装。MMC/SD EEM层模块被用于向上层协议栈模拟以太网卡的功能,而MMC/SD协议层模块被用于执行MMC/SD协议栈的功能,实现该协议栈支持的各种MMC/SD命令。本领域的技术人员应当理解,主通信协议栈装置307以及从通信协议栈308并不限于图4所示的这种分层结构。在实践中,可以根据不同需求而将几个相关层合并,例如将传输层模块与网络层模块合并。此外,也可以根据需要将MMC/SD协议层模块与主或从MMC/SD接口驱动装置合并。
根据图4所示的通信协议栈装置结构,当主或从MMC/SD设备发送数据时,数据流从例如应用层开始从上至下逐层传送并且从MMC/SD接口发出;当从或主MMC/SD设备接收数据时,将待接收的数据从MMC/SD接口收回并且逐层从下至上传送。本领域技术人员应当理解,数据流不一定要从应用层开始,而是可以根据不同的需求从中间某层开始,如MMC/SD EEM层。另外,数据流也不一定要顺序经过每一层,而是可以跳过某些层。从图4中可以大体上看出,在MMC/SD EEM层之上的几层与TCP/IP网络模型相一致,因此其数据传输格式可以遵循TCP/IP协议栈,举例来说网络层的数据格式可以是IP包、数据链路层的数据格式可以是以太网数据帧。相对地,在MMC/SD EEM层之下的几层与MMC/SD协议模型相一致,由其产生的数据包遵循MMC/SD协议所规定的在MMC/SD接口上传输的数据的格式。MMC/SD EEM 层本身则被用于实现上下两部分之间的连接,其可以使用EEM包格式来向上或向下传输数据。
图5示出了用于根据本发明的基于MMC/SD接口的同时支持大容量存储和以太网通信的设备的EEM包的示例组成。如图5所示,EEM包例如可以由EEM头部字段(EEM Header)和负载字段(Payload)(例如以太网数据帧)组成。在一些实施例中,EEM包头部字段可以包括第一字段(bmType)和第二字段。第一字段可以被用于定义EEM包的类型,即指示该EEM是数据包还是命令包,而第二字段则依据EEM包类型的不同具有不同的结构。
在一些实施例中,当EEM包是用于承载以太网数据帧的数据包时,其第一字段 bmType = Data,即表示该E EM包被用于传输网络数据。因此,该EEM包头部的第二字段可以例如包括校验状态字段和长度字段,其中校验状态字段(bmCRC)可以被用于指定以太网数据帧的CRC校验的开启或关闭,而长度字段可以被用于指定EEM包中的负载,即以太网数据中贞的长度。
在一些实施例中,当EEM包是用于控制以太网通信的命令包时,其第一字段 bmType = Command,即表示该EEM包被用于传输以太网通信控制命令。因此,该EEM包头部的第二字段可以例如包括命令类型字段和命令参数字段,其中命令类型字段(bmCMD)可以被用于指示EEM命令类型,而命令参数字段(bmPara)可以被用于设定命令参数。EEM命令包由MMC/SD EEM层模块直接建立,其与应用层或网络协议栈无直接关系,主要用于网络接口控制。
在一些实施例中,主MMC/SD设备301与从MMC/SD设备302之间的以太网通信可以采用请求-命令机制,即由主设备向从设备发送请求命令以指示从设备的操作,而从设备在完成操作之后返回相应的应答命令。可以利用上述EEM命令包实现这种请求响应机制以在主MMC/SD设备301与从MMC/SD设备302之间建立以太网通信连接、结束以太网通信连接、检查以太网通信连接状态等。为此,EEM命令包头部字段中的命令类型字段可以被用于指示例如以下命令类型
-Probe命令,该Probe命令被主MMC/SD设备用于验证从MMC/SD设备是否支持以太网通信,其中主MMC/SD设备在向从MMC/SD设备发送Probe命令之后根据从MMC/SD设备是否返回ProbeResponse命令来判断其是否支持以太网通信;
· ProbeResponse 命令,该 ProbeResponse 命令被从 MMC/SD 设备用于响应主 MMC/ SD设备发出的Probe命令;
Stop命令,该Stop命令被主MMC/SD设备用于关闭从MMC/SD设备的以太网通信功能;
· StopResponse命令,该StopResponse命令被从MMC/SD设备用于响应主设备发出的Stop命令;
·WakeUp命令,该WakeUp命令被主MMC/SD设备用于重新启动从MMC/SD设备的以太网通信功能;
· WakeupResponse命令,该WakeupResponse命令被从MMC/SD设备用于响应主 MMC/SD设备发出的Wakeup命令;
Echo命令,该Echo命令被用于验证以太网通信连接的有效性,其中主MMC/SD设备和从MMC/SD设备都可以使用该命令;当任何一方接收到Echo命令时需要使用该命令的负载字段内的数据发送EchoResponse命令;
.EchoResponse 命令,该 EchoResponse 命令被主 MMC/SD 设备或从 MMC/SD 设备用于响应相应的Echo命令;
·ResponseHint 命令,该 ResponseHint 命令被从 MMC/SD 设备用于在主 MMC/SD 设备停止查询来自从MMC/SD设备的数据时设置停止查询的最小时间间隔,主MMC/SD设备可以忽略该命令;
· ResponseCompleteHint 命令,所述 ResponseCompleteHint 命令被从 MMC/SD 设备用于通知主MMC/SD设备现在没有数据要发出,当主MMC/SD设备收到该命令时,其可以停止查询直到其自身有数据要发或者到达指定时间,主MMC/SD设备也可以忽略该命令;当到达所述指定时间而主MMC/SD设备没有数据要发时,主MMC/SD设备可以发送Tickle命令给从MMC/SD设备;但是由于主MMC/SD设备可以忽略该命令,所以从MMC/SD设备不一定会在指定时间到达时收到所述Tickle命令;
· Tickle命令,该Tickle命令被主MMC/SD设备用于通知从MMC/SD设备 ResponseCompleteHint命令的指定时间已到;由于主MMC/SD设备可以忽略该命令,所以从 MMC/SD设备不一定会在指定时间到达时收到所述Tickle命令。
本领域的技术人员应当理解,除以上所述的命令类型以外,可以根据需要对所述命令集进行相应的扩展,从而完善主MMC/SD设备与从MMC/SD设备之间的以太网通信功能。
根据图4所示的通信协议栈装置结构可知,MMC/SD EEM层所生成的EEM包将被传送给MMC/SD协议层和MMC/SD接口驱动装置,进而从MMC/SD接口发出;或者相反,EEM包可由MMC/SD EEM层从MMC/SD协议层和MMC/SD接口驱动装置接收,并且在MMC/SD层就地被处理或者解包后继续向上传送。现有的MMC/SD协议规定了在MMC/SD接口上传输的数据应以块为单位,每个块为512字节的2n倍,而RFC894规范规定了以太网数据帧大小为64-1518字节。因此,以块大小为BL0CK_LEN(例如512字节)为例,如果需要发送或接收的EEM包的长度在BL0CK_LEN之内,则MMC/SDEEM层可以调用MMC/SD协议层的单块读写命令(CMD17/ CMD24)并且通过所述MMC/SD接口驱动装置控制的MMC/SD接口发送或接收;如果EEM包的长度大于BL0CK_LEN,则MMC/SD EEM层可以使用MMC/SD协议层的多块读写命令(CMD18/ CMD25)。如果存在包间空隙,则可以使用任何不影响解包的字符填充(例如0x0)。举例来说,使用MMC/SD块承载EEM包可以存在以下几种形式一个MMC/SD块包含一个EEM包;一个MMC/SD块包含多个EEM包;多个MMC/SD块包含一个EEM包;多个MMC/SD块包含多个分开的EEM包。
下面将描述利用图4所示的通信协议栈装置在主MMC/SD设备301与从MMC/SD设备302之间进行以太网通信的过程。以从主MMC/SD设备301向从MMC/SD设备302传输IP 数据包为例,该过程可以包括如下两个部分
a)在发送端,主MMC/SD设备301中的应用层数据经主通信协议栈装置307中的传输层模块和网络层模块处理并且在形成网络层IP数据包之后传送给数据链路层模块,数据链路层模块将该网络层IP数据包封装成以太网数据帧,然后交由MMC/SD EEM层模块处理。MMC/SD EEM模块在所收到的以太网数据帧头部添加EEM头部字段,将其封装成EEM数据包。随后,依据要发送的EEM包(单个或多个)的大小组成单块或多块MMC/SD数据块, 调用MMC/SD协议中的命令CMD24 (单块写命令)或命令CMD25 (多块写命令),通过MMC/SD 协议层模块及主MMC/SD接口驱动装置将MMC/SD数据块从主MMC/SD接口发出。
b)在接收端,从MMC/SD设备302通过从MMC/SD接口收到所述单块或多块MMC/SD 数据块,并将其传送到MMC/SD EEM层模块;所述MMC/SD EEM层模块从所述MMC/SD数据块中获取单个或多个EEM包,并依据EEM包的头部字段判断该包的类型,即是命令包还是数据包 。如果确定是EEM命令包,则由该模块直接处理;如果是EEM数据包,则去掉EEM头部字段获取以太网数据帧并交由数据链路层模块处理;所述数据链路层模块从以太网数据帧中获取IP数据包后再传送至传输层模块和网络层模块处理,最后由应用层模块处理相关的应用层数据。
本领域的技术人员应当理解,上述IP数据包只是网络层数据包的一种形式,其还可以是ARP数据包、RARP数据包等,并且数据流的起始也可以不是应用层(例如TCP的同步包由传输层构建)。
由于基于MMC/SD接口的传输为主从模式,即所有数据传输必须都由主MMC/SD设备301发起,所以对于由从MMC/SD设备302向主MMC/SD设备301传输网络通信数据的情况,可以规定从设备将需要传送的数据块放入发送缓存中,然后等待主设备读取。根据本发明的实施例,可以采用由主MMC/SD设备301定时轮询从MMC/SD设备302的方式来实现从设备的数据发送,该功能可以利用上文中所描述的MMC/SD EEM层模块生成的EEM命令包来实现。然而,本领域的技术人员应当理解,具体实现并不依赖于某一特定的方式,而是可以使用诸如定时器、操作系统服务、操作系统内核线程等任何具有轮询功能的方法。
从以上所描述的过程可以看出,主MMC/SD设备301与从MMC/SD设备302可以通过使用MMC/SD EEM层模块来进行网络通信,包括使用现有的网络应用进行网络通讯。另外,主 MMC/SD设备301和从MMC/SD设备302中只要有一方可以连接到其他网络例如Internet), 则另一方也能作为一个网络节点连接到该网络。
图6是根据本发明的基于MMC/SD接口的用于同时支持大容量存储和以太网通信的方法的流程图。下面将结合图3所描述的主MMC/SD设备301和从MMC/SD设备302来描述该方法流程,并且进一步说明本发明所提供的用于同时支持大容量存储和以太网通信的基于MMC/SD的主设备和从设备的特性及优点。
在步骤S601中,将从MMC/SD设备与主MMC/SD设备301相连,此处该从MMC/SD设备并不一定是从MMC/SD设备302,其可以是带有与主MMC/SD设备301相应的从MMC/SD接口的任何从MMC/SD设备。因此,主MMC/SD设备301可以检测出在其主MMC/SD接口上有从设备接入。一般地,在检测到有从设备接入时,主MMC/SD设备301将给从设备供电,例如对于从MMC/SD设备302而言可以是给从MMC/SD接口驱动装置310供电。从设备由此开始各个模块的上电初始化及加载过程,例如从MMC/SD设备302将完成从大容量存储装置306以及从通信协议栈装置308的加载。对于主MMC/SD设备302本身而言,其也将初始化及加载相应的模块,包括主大容量存储装置305以及主通信协议装置307的部分功能。
在步骤S602中,主MMC/SD设备301的主控制器303将通过主大容量存储装置305 读取从设备中的特殊地址信息并对该信息进行保存。可以将主MMC/SD设备301配置为读取从设备的文件系统中的固定位置并且将从该位置读取到的数据保存为一个物理地址(而不管其实际上是否代表地址信息)。接着在步骤S603中,主MMC/SD设备301将向其所认为的地址发送一探查命令并且根据从设备发回的命令响应值来判断该从设备是否是从MMC/ SD设备302。下面将详细描述这个过程。
已知在MMC/SD协议中规定了读写块命令(单块读写命令CMD17/CMD24或者多块读写命令CMD18/CMD25)的参数中必须包含读写块的起始地址。为了使主MMC/SD设备301 中的主大容量存储装置305和主通信协议栈装置307可以同时运行并且互不干涉,需要从 MMC/SD接口能够提供两个互不影响的物理通路。也就是说,主大容量存储装置305访问的从MMC/SD设备中的地址空间和主通信协议栈装置307访问的从MMC/SD设备中的地址空间是不同的而且是互相独立的。因此,为了得到这样的相互独立的物理地址空间,除了用于大容量存储的常规地址之外,可以在根据本发明的从MMC/SD设备中设定一个特殊地址作为用于以太网通信的起始地址。
对于根据本发明的从MMC/SD设备302而言,与该特殊地址有关的信息可以被预先设置在从大容量存储装置306的文件系统主引导扇区后的保留扇区内,该主引导扇区可以是整个存储装置一开始的第一个扇区,例如PC硬盘的O柱面O磁头I扇区。一般而言,该特殊地址信息是一个扇区的内容,大小为512字节。当从大容量存储装置306中存在多个分区时,该特殊地址信息可以被设置在每个分区中的引导扇区,即每个分区开始存储全局参数信息的扇区后的保留扇区中。这样的文件系统可以是FAT16/32、NTFS或者exFAT。在这种情况下,对于每个分区可以使用不同的保留扇区。另外,还可以在所述从大容量存储装置的文件系统主引导扇区后的保留扇区中设置对所述特殊地址信息的索引。本领域的技术人员应当理解,所述特殊地址信息并不仅限于用这些方法得到。只要保证主大容量存储装置305和主通信协议栈装置307访问的从MMC/SD设备中的地址空间是相互独立,可以采用任何其他方法。
在实践中,主MMC/SD设备301可以首先利用上述特殊地址信息断是否能够与连接至其的从设备一起实现上文所描述的用于以太网通信的请求响应机制,从而建立以太网通信连接。举例来说,主MMC/SD设备301根据预先设置在步骤S602中读取从大容量存储装置306的文件系统主引导扇区后的保留扇区,读取该扇区中的内容并且将其保存为用于以太网通信的特殊地址。接着在步骤S603中,主MMC/SD设备301可以生成EEM命令包,在其中包含上述Probe命令作为所述探查命令,并且在MMC/SD写命令中包含所述特殊地址。主 MMC/SD设备301将该探查命令发往从设备,并且等待一段预定的时间之后再向所述特殊地址发出MMC/SD读命令。通过判断从该特殊地址读取的内容是否为ProbeResponse命令来判断连接至其的从设备是普通的MMC/SD从设备还是本发明所提供的从MMC/SD设备302。 对于普通的MMC/SD从设备,在所述保留扇区中将不会设置有用于以太网通信的特殊地址并且也不会响应Probe命令而发回ProbeResponse命令。
在步骤604中,如果主MMC/SD设备301确定与其连接的从设备不是从MMC/SD设备302,而仅是例如MMC/SD存储卡等一般的从MMC/SD设备,则其不再加载完整的主通信协议栈装置307,而是执行标准的MMC/SD大容量存储流程,该过程为现有技术,因而在此不再赘述。
如果主MMC/SD设备301在步骤604中确定与其连接的从设备是从MMC/SD设备 302,则在步骤S605中主MMC/SD设备301加载主通信协议栈装置307的完整功能并对其进行初始化。在此之后,主MMC/SD设备301向从MMC/SD设备302发送数据以进行大容量数据存储或者以太网通信。
在步骤S606中,从MMC/SD设备302中的从控制器304进而通过判断来自主MMC/ SD设备301的数据是否发向所述特殊地址来区分是所收到的数据是来自主大容量存储装置305还是来自主通信协议栈装置307的。如果确定所收到的数据发往所述特殊地址,则从控制器304就将其转发给从通信协议栈装置308,然后返回响应的从通信协议栈装置308 的响应,从而实现以太网通信。如果确定所收到的数据不是发往所述特殊地址,而是发往例如从MMC/SD设备中一般用于大容量存储的地址,则从控制器304就会把这些数据转发给从大容量存储装置306,然后返回相应的从大容量存储装置306的响应,从而实现标准的基于 MMC/SD接口的大容量存储流程。
应当注意的是,由于主大容量存储装置305和主通信协议栈装置307使用同一 MMC/SD接口,因此为了使主大容量存储装置305和主通信协议栈装置307同时运行互不干扰,根据本发明的实施例还必须要求主大容量存储装置305和主通信协议栈装置307对主 MMC/SD接口驱动装置309的操作必须是原子操作。原子操作是指在嵌入式操作系统中不会被线程调度机制打断的操作,也就是说在根据本发明的用于同时支持大容量存储和以太网通信的主MMC/SD设备的操作过程中,任何一个MMC/SD协议命令的处理过程都不能被打断。
在实践中,由于主大容量存储装置一般在带有主MMC/SD接口的嵌入式终端设备的现有系统中已经存在并且 一般不对其进行修改,因此主通信协议栈装置306在使用主 MMC/SD接口驱动装置309时需要读取该主MMC/SD接口驱动装置的状态并确定其是否在执行命令。如果已有根据MMC/SD协议的CMD命令在执行,则主大容量存储装置306须等待其空闲时才能使用MMC/SD接口驱动装置。同样地,主通信协议栈装置307在使用主MMC/SD 接口驱动装置309的时候,也必须保证在其执行根据MMC/SD协议的CMD命令的时候是原子操作。本领域的技术人员应当理解,具体的原子操作实现并不依赖于某一特定的方式,而是可以使用诸如嵌入式操作系统提供的屏蔽中断等实现原子操作的功能方法。
另外,如果在实现本发明所提供的主MMC/SD设备时,主大容量存储装置306和主通信协议栈装置308都重新设计,而不使用带有主MMC/SD接口的嵌入式终端设备中现有的主大容量存储装置,则带有主MMC/SD接口的嵌入式终端设备,即主MMC/SD设备301的主控制器303可以采用信号量、自旋锁等嵌入式操作系统提供的并发处理机 制来保证主大容量存储装置305和主通信协议栈装置307对主MMC/SD接口驱动装置309的操作为原子操作。 本领域的技术人员应当理解,具体的原子操作实现并不止上述方式。
举例来说,可以在带有MMC/SD主接口的手机、PDA、膝上型计算机、POS机或者ATM 机上实现本发明所提供的主MMC/SD设备,从而使得这些设备在与本发明所提供的从MMC/ SD设备一起使用时可以同时进行大容量存储和以太网通信。
应当说明的是,以上具体实施方式
仅用以说明本发明的技术方案而非对其进行限制。尽管参照上述具体实施方式
对本发明进行了详细的说明,本领域的普通技术人员应当理解,依然可以对本发明的具体实施方式
进行修改或对部分技术特征进行等同替换而不脱离本发明的实质,其均涵盖在本发明请求保护的范围中。
权利要求
1.一种用于同时支持大容量存储和以太网通信的主MMC/SD设备,其特征在于,所述主 MMC/SD设备包括主MMC/SD接口,用于向从MMC/SD设备提供访问接口 ;主MMC/SD接口驱动装置,用于控制MMC/SD信令在所述主MMC/SD接口上的传输;主大容量存储装置,用于为大容量存储提供文件系统服务和数据管理服务;主通信协议栈装置,用于实现所述主MMC/SD设备与所述从MMC/SD设备之间的以太网通信;以及主控制器,用于控制所述主MMC/SD接口驱动装置、所述主大容量存储装置和所述主通信协议栈装置的操作;其中所述主大容量存储装置和所述主通信协议栈装置分别与所述主MMC/SD接口驱动装置进行交互。
2.根据权利要求1所述的主MMC/SD设备,其特征在于,其中所述所述主大容量存储装置和所述主通信协议栈装置被设置为访问所述从MMC/SD设备中相互独立的物理地址。
3.根据权利要求2所述的主MMC/SD设备,其特征在于,其中所述主大容量存储装置和所述主通信协议站装置对所述主MMC/SD接口驱动装置的操作是原子操作。
4.根据权利要求3所述的主MMC/SD设备,其特征在于,其中所述主控制器被用于通过所述主通信协议栈装置向所述从MMC/SD设备发送探查命令并且通过命令返回值确定所述从MMC/SD设备是否支持以太网通信。
5.根据权利要求1所述的主MMC/SD设备,其特征在于,所述主通信协议栈装置从上至下依次包括用于执行网络应用程序的应用层模块;用于执行以太网协议功能的传输层模块和网络层模块;用于封装以太网数据帧的数据链路层模块;用于为上层协议栈模拟以太网卡功能的MMC/SD以太网模拟模型EEM层模块;以及用于执行MMC/SD协议栈的MMC/SD协议层模块。
6.根据权利要求5所述的主MMC/SD设备,其特征在于,其中所述MMC/SDEEM层模块使用EEM包格式传输数据,所述EEM包由EEM头部字段和EEM负载字段组成。
7.根据权利要求6所述的主MMC/SD设备,其特征在于,其中所述EEM头部字段包括第一字段和第二字段,所述第一字段用于定义所述EEM包的类型。
8.根据权利要求7所述的主MMC/SD设备,其特征在于,其中当所述EEM包为数据包时, 所述第二字段包括校验状态字段和长度字段;其中所述长度字段用于指定所述EEM数据包中负载字段的长度,而所述校验状态字段用于指定以太网数据帧的CRC校验的开启或关闭。
9.根据权利要求7所述的主MMC/SD设备,其特征在于,其中当所述EEM包为命令包时, 所述第二字段包括命令类型字段和命令参数字段;其中所述命令类型字段用于定义EEM命令的类型,而所述命令参数字段用于定义EEM命令的参数。
10.根据权利要求6所述的主MMC/SD设备,其特征在于,其中所述MMC/SD协议层模块以下列方式中的一种使用MMC/SD数据块承载所述EEM包一个MMC/SD数据块包含一个EEM包;一个MMC/SD数据块包含多个EEM包;多个MMC/SD数据块包含一个EEM包;多个MMC/SD 数据块包含多个分开的EEM包。
11.根据权利要求1中所述的主MMC/SD设备,其中所述主MMC/SD接口是Min1-SD主接口、Micro-SD主接口或者标准MMC/SD主接口。
12.一种用于同时支持大容量存储和以太网通信的从MMC/SD设备,其特征在于,所述从MMC/SD设备包括从MMC/SD接口,用于向主MMC/SD设备提供访问接口 ;从MMC/SD接口驱动装置,用于控制MMC/SD信令在所述从MMC/SD接口上的传输;从大容量存储装置,用于为主MMC/SD设备的大容量存储提供对应的文件系统服务和数据管理服务;从通信协议栈装置,用于实现所述从MMC/SD设备与所述主MMC/SD设备之间的以太网通信;以及从控制器,用于控制所述从MMC/SD接口驱动装置、所述从大容量存储装置和所述从通信协议栈装置的操作;其中所述从大容量存储装置和所述从通信协议栈装置分别与所述从MMC/SD接口驱动装置进行交互。
13.根据权利要求12所述的从MMC/SD设备,其特征在于,其中在所述从大容量存储装置的文件系统中包含特殊地址信息使得所述从MMC/SD接口驱动装置能够提供两个相互独立的物理通路。
14.根据权利要求13所述的从MMC/SD设备,其特征在于,其中所述特殊地址信息被设置在所述从大容量存储装置的文件系统主引导扇区后的保留扇区中。
15.根据权利要求13所述的从MMC/SD设备,其特征在于,其中所述特殊地址信息被设置在从大容量存储装置的文件系统每个分区的引导扇区后的保留扇区中。
16.根据权利要求13所述的从MMC/SD设备,其特征在于,其中在所述从大容量存储装置的文件系统主引导扇区后的保留扇区中设置对所述特殊地址信息的索引。
17.根据权利要求13-16所述的从MMC/SD设备,其特征在于,其中所述特殊地址信息的长度为512字节。
18.根据权利要求13所述的从MMC/SD设备,其特征在于,其中所述从控制器被设置为根据通过所述从MMC/SD接口接收到的数据是否发往所述特殊地址来区分所述数据是用于大容量存储还是用于以太网通信。
19.根据权利要求12所述的从MMC/SD设备,其特征在于,所述从通信协议栈装置从上至下依次包括用于执行网络应用程序的应用层模块;用于执行以太网协议功能的传输层模块和网络层模块;用于封装以太网数据帧的数据链路层模块;用于为上层协议栈模拟以太网卡功能的MMC/SD以太网模拟模型EEM层模块;以及用于执行MMC/SD协议栈的MMC/SD协议层模块。
20.根据权利要求19所述的从MMC/SD设备,其特征在于,其中所述MMC/SDEEM层模块使用EEM包格式传输数据,所述EEM包由EEM头部字段和EEM负载字段组成。
21.根据权利要求20所述的从MMC/SD设备,其特征在于,其中所述EEM头部字段包括第一字段和第二字段,所述第一字段用于定义所述EEM包的类型。
22.根据权利要求21所述的从MMC/SD设备,其特征在于,其中当所述EEM包为数据包时,所述第二字段包括校验状态字段和长度字段;其中所述长度字段用于指定所述EEM数据包中负载字段的长度,而所述校验状态字段用于指定以太网数据帧的CRC校验的开启或关闭。
23.根据权利要求21所述的从MMC/SD设备,其特征在于,其中当所述EEM包为命令包时,所述第二字段包括命令类型字段和命令参数字段;其中所述命令类型字段用于定义EEM命令的类型,而所述命令参数字段用于定义EEM命令的参数。
24.根据权利要求20所述的从MMC/SD设备,其特征在于,其中所述MMC/SD协议层模块以下列方式中的一种使用MMC/SD数据块承载所述EEM包一个MMC/SD数据块包含一个EEM 包;一个MMC/SD数据块包含多个EEM包;多个MMC/SD数据块包含一个EEM包;多个MMC/SD 数据块包含多个分开的EEM包。
25.根据权利要求12中所述的从MMC/SD设备,其中所述从MMC/SD接口是Min1-SD从接口、Micro-SD从接口或者标准MMC/SD从接口。
26.一种用于同时支持大容量存储和以太网通信的系统,其特征在于,所述系统包括如权利要求1-11中任意一项所述的主MMC/SD设备以及如权利要求12-25中任意一项所述的从MMC/Sb设备,其中所述主MMC/SD设备与所述从MMC/SD设备通过同一 MMC/SD接口进行大容量存储和以太网通信。
27.如权利要求26所述的系统,其特征在于,其中所述主MMC/SD设备与所述从MMC/SD 设备之间的以太网通信采用请求-响应机制,其中请求命令和响应命令均从所述从MMC/SD 设备中的同一特殊地址读取。
28.如权利要求27所述的系统,其特征在于,其中在进行以太网通信时,所述主MMC/SD 设备被设置为定时轮询所述从MMC/SD设备以从所述从MMC/SD设备接收数据。
29.如权利要求26所述的系统,其特征在于,其中所述主MMC/SD设备是带有MMC/SD主接口的手机、PDA、膝上型计算机、POS机或者ATM机。
30.一种用于在主MMC/SD设备与从MMC/SD设备之间同时支持大容量存储和以太网通信的方法,其中所述主MMC/SD设备是如权利要求1所述的主MMC/SD设备,其特征在于,所述方法包括下列步骤a.主MMC/SD设备在检测到有从MMC/SD设备与其连接时读取从MMC/SD设备文件系统中的特定位置以获取特殊地址信息;b.主MMC/SD设备向所述特殊地址发送探查命令并且根据命令返回值判断从MMC/SD设备是否是如权利要求12所述的从MMC/SD设备;c.如果不是,则主MMC/SD设备还原先前保存的特殊地址信息并且执行标准MMC/SD存储流程;否则,主MMC/SD设备加载主通信协议栈装置并且向从MMC/SD设备发送数据;d.从MMC/SD设备根据来自主MMC/SD设备的数据是否发往所述特殊地址来区分所述数据是用于大容量存储还是用于以太网通信;e.如果所述数据向所述特殊地址发送,则从MMC/SD设备与主MMC/SD设备进行以太网通信;否则,如权 利要求12所述的从MMC/SD设备与主MMC/SD设备一起执行标准MMC/SD存储流程。
全文摘要
本发明提供了用于同时支持大容量存储和以太网通信的主MMC/SD设备、用于同时支持大容量存储和以太网通信的从MMC/SD设备、由这两种设备构成的系统以及用于该系统的操作方法。本发明所公开的基于MMC/SD接口的同时支持大容量存储和以太网通信的设备、系统和方法使具有MMC/SD接口的主设备在保留大容量存储功能的同时,也可以支持网络功能,从而极大地拓展了这种具有大容量存储功能的MMC/SD接口的嵌入式终端设备的应用领域。
文档编号H04L29/08GK103024087SQ20111028395
公开日2013年4月3日 申请日期2011年9月22日 优先权日2011年9月22日
发明者鲁志军, 刘劲梅, 孟祥瑞, 孟宏文 申请人:中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1