数据传输装置、方法及控制器的制作方法

文档序号:6601121阅读:146来源:国知局
专利名称:数据传输装置、方法及控制器的制作方法
技术领域
本发明涉及一种电子设备,特别是涉及一种数据传输装置、方法及控制器。
背景技术
压缩闪存(CompactFlash card, CF)卡是符合闪存标准的大容量存储设备。闪存协会(CompactFlash Association)开发了 CF 标准,且相继颁布了 CF+(CompactFlash+)和 CF4(CompactFlash Specification Revision 4.0)的闪存标准。早期的 CF 卡为普通的数据存储设备。目前,根据具体的应用场合,CF+和CF4卡扩展至包括输入/输出(input/ output, 1/0)设备或磁盘数据存储。CF+和CF4卡比早期的CF卡支持更高的数据传输速率。早期的CF 卡可能只工作在 PC Card ATA(Advanced Technology Attachment) 使用存储器模式。CF4卡和CF+卡都可以工作在PCMCIA (Personal Computer MemoryCard International Association) Il ζ, 1 Il ζ 1 PC Card ATA 1/0 ^ 口模式和PCCard ATA使用存储器模式。CF4卡还可以工作在True IDE (Integrated DevelopmentEnvironment)模式,CF+卡也可以工作在iTrue IDE模式。在每个模式下,根据相应的读/写时序周期传输数据。所以,工作在不同模式的CF、CF+和CF4卡的数据传输速率可能不同。通常,控制器用于控制主机(例如,计算机)和存储装置之间的数据传输。控制器一般被设置为预设的模式,从而根据预设的数据传输速率和存储装置进行通信。然而,因为 CF卡、CF+卡和CF4卡支持不同的数据传输速率,可能会降低数据传输的效果。例如,若控制器被设置为PC Card ATA使用存储器模式,工作在PC Card ATA使用存储器模式的CF+/ CF4卡的数据传输速率可能低于工作在True IDE模式的CF+/CF4卡的。PCMCIA标准广泛应用于多种主机设备,例如,数字摄像头、数字音乐播放机、便携式电脑等。PCMCIA标准定义了 PCMCIA卡或称为PC卡,用于扩展存储空间,并支持输入输出(input/output, 1/0)。根据PCMCIA总线的类型,PC卡可包括16位PC卡(例如,随机存取存储器(random access memory, RAM)和闪存(flash memory))和 32 位 PC 卡(例如, CardBus PC卡,如调制解调器(modem)、网卡或电视卡等)。例如,16位PC卡采用16位 PCMCIA总线传输数据,32位PC卡采用32位PCMCIA总线传输数据。True IDE 模式包括可编程输入输出(programmed input and output, ΡΙΟ)模式和直接存储器存取(direct memory access,DMA)模式。16位PC卡仅支持PIO模式。主机设备的操作系统(例如-MICROSOFT WINDOWS)可以提供通用设备驱动,用以驱动16 位PC卡。例如,通用设备驱动可以驱动主机设备使其工作在PIO模式。在PIO模式中,中央处理单元(central processing unit,CPU)执行指令,以访问1/0地址空间,从而实现与 PC卡之间的数据传输。在PIO模式下,CPU在整个读或写的操作时间内都可能被占用。CF卡(例如CF+和CF4卡)也是一种16位大容量存储器。专用读卡器(例如 USB读卡器或1394读卡器)可以将CF卡连接到主机设备。CF卡支持PIO模式和DMA模式。在DMA模式下,读卡器在CF卡和主机设备的存储器之间传输数据,而不占用处理器时间。因此,由CPU执行的运算操作和由读卡器执行的数据传输可同时进行。由此,DMA模式比PIO模式具有更高的数据传输速率。如果专用读卡器不可用,CF卡则通过插塞式接合器或通用读卡器插入PC卡插槽。 也就是说,16位PC卡和CF卡可共享主机设备上的相同的插槽(例如64引脚双排接口)。 在这种情况下,CF卡可用作16位PC卡。例如,操作系统的通用设备驱动可使CF卡工作在 PIO模式而非DMA模式。由此,降低了 CF卡的数据传输速率,且降低了主机设备的效率。

发明内容
本发明要解决的技术问题在于提供一种数据传输装置、方法以及控制器,以提高数据传输的速率和效率。为解决上述技术问题,本发明提供了一种数据传输装置,所述数据传输装置至少包括插槽、计算机可读介质和控制器;所述插槽能与不同类型的存储介质连接;计算机可读介质用于存储计算机可执行的通用驱动和计算机可执行的专用驱动,其中,所述通用驱动与第一工作模式相关,且与所述不同类型的存储介质中的每一种存储介质都兼容,所述专用驱动与第二工作模式相关,且仅仅与所述不同类型的存储介质中的部分类型兼容;所述控制器耦合于所述插槽和所述计算机可读介质,用于当存储介质插入所述插槽时,从所述通用驱动和所述专用驱动中选择一个,并根据所述被选驱动工作在对应的工作模式,以与所述存储介质交换数据信息,其中,如果所述存储介质是所述部分类型中的一种类型,所述被选驱动包括所述专用驱动,否则,所述被选驱动包括所述通用驱动。本发明还提供了一种数据传输方法,所述数据传输的方法至少包括加载与第一工作模式相关的计算机可执行的通用驱动,所述通用驱动与多种类型的存储介质的每一种类型均兼容,通用插槽能够连接所述多种类型的存储介质;加载与第二工作模式相关的计算机可执行的专用驱动,所述专用驱动仅仅与所述多种类型的存储介质中的部分类型兼容;当所述存储介质插入所述插槽时,从所述通用驱动和所述专用驱动中选择一个被选驱动;及根据所述被选驱动工作在对应的工作模式,以与存储介质交换数据信息,其中,如果所述存储介质是所述部分类型的一种类型,所述被选驱动包括所述专用驱动,否则,所述被选驱动包括所述通用驱动。本发明再提供了一种控制器,所述控制器耦合于插槽,所述控制器用于传输主机和所述插槽之间的数据信息,所述插槽能够连接多种类型的存储介质,所述控制器至少包括通用核、专用核和多路选择器。所述通用核能够根据来自计算机可执行的通用驱动的控制指令工作于第一工作模式,以传输所述数据信息,所述第一工作模式与所述多种类型的存储介质的每一种类型均兼容;所述专用核能够根据来自计算机可执行的专用驱动的控制指令工作于第二工作模式,以传输所述数据信息,所述第二工作模式仅仅与所述多种类型的存储介质的部分类型兼容;所述多路选择器耦合于通用核和专用核的,用于根据耦合于所述多路选择器的寄存器中的数据集从所述通用核和所述专用核中选择一个被选核,以传输所述数据信息;其中,如果所述存储介质是所述部分类型中的一种类型,所述被选核包括所述专用核,否则,所述被选核包括所述通用核。与现有技术相比,在本发明的数据传输系统中,CF卡可以共享16位PC卡的插槽,且控制器自动选择专用驱动,并因此工作在DMA模式而非PIO模式进行数据传输。因此,提高了数据传输速率以及数据传输系统的效率。以下结合附图和具体实施例对本发明的技术方案进行详细的说明,以使本发明的特性和优点更为明显。


图1为根据本发明的实施例的数据传输系统的结构图;图2为根据本发明的实施例的数据传输系统的另一结构图;图3为根据本发明的实施例的数据传输系统的另一结构图;图4为根据本发明的实施例的控制数据传输的方法的流程图;图5所示为根据本发明的实施例的数据传输系统的另一结构图;图6所示为根据本发明的实施例的控制器和接口的结构图;图7所示为根据本发明的实施例的数据传输系统的操作流程图;图8所示为根据本发明的实施例的数据传输系统的另一操作流程图;图9所示为根据本发明的实施例的数据传输系统的另一操作流程图。
具体实施例方式以下将对本发明的实施例给出详细的说明。尽管本发明将结合一些具体实施方式
进行阐述和说明,但需要注意的是本发明并不仅仅只局限于这些实施方式。相反,对本发明进行的修改或者等同替换,均应涵盖在本发明的权利要求范围当中。另外,为了更好的说明本发明,在下文的具体实施方式
中给出了众多的具体细节。 本领域技术人员将理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于大家熟知的方法、流程、元件和电路未作详细描述,以便于凸显本发明的主旨。本发明的实施例提供了一种数据传输系统。该数据传输系统包括插槽、控制器和计算机可读介质。插槽可以连接不同类型的存储介质(例如CF卡和16位PC卡)。计算机可读介质存储与第一工作模式(例如ΡΙ0模式)相关的通用驱动,所述通用驱动与所述不同类型的存储介质中的每一种类型均兼容。计算机可读介质还存储与第二工作模式(例如DMA模式)相关的专用驱动,所述专用驱动仅仅与所述不同类型的存储介质中的部分类型兼容。当一个存储介质插入该插槽时,控制器从通用驱动和专用驱动中选择一个被选驱动,并根据被选驱动工作在对应的工作模式,以传输数据信息。优点在于,当存储介质为该部分类型的一种时,所述被选驱动包括专用驱动,否则,被选驱动包括通用驱动。例如,如果存储介质是CF卡,则选择专用驱动,从而使控制器工作在DMA模式而非PIO模式,以进行数据传输。因此,提高了数据传输速率以及数据传输系统的效率。图1为根据本发明的一个实施例的数据传输系统100。在图1的实施例中,数据传输系统100包括主机102、接口 120、控制器140和客户端。在一个实施例中,客户端包括存储介质106。存储介质106可以包括但不仅限于CF+卡或CF4卡。控制器140和接口 120在主机102和存储介质106之间传输数据。接口 120可以包括但不仅限于外设组件互连标准 (peripheral component interconnect,PCI)接口、PCI-X(PCIextended)接口或 PCIe (PCIexpress)接口。主机102可以为电子设备或系统,例如,计算机、个人数字助理(personal digital assistance,PDA)、移动电话等。主机102可以从存储介质106读出数据或将数据写入存储介质106。接口 120用作主机102和控制器140之间I/O接口。在主机102和控制器140之间传输的信息可以包括数据信息和控制信息。在一实施例中,主机102工作在主状态,发起数据传输。在这种情况下,主机102发送控制信息至控制器140。在传输数据信息之前,控制信息可以使主机102和控制器140进行握手。控制信息可以定义数据传输的特征,例如, 数据是写入存储介质106还是从存储介质106读出。例如,数据信息可以在写操作中从主机102传输至控制器140,也可以在读操作中从控制器140传输至主机102。控制信息还可以表示数据传输的状态,例如,数据传输的开始。在一实施例中,存储介质106可以工作在主状态,发起数据传输,在这种情况下,存储介质106发送控制信息至控制器140。在一实施例中,接口 120分析来自主机102的信息,以判断主机102传输的是数据信息还是控制信息。根据主机102传输的信息类型,接口 120对应地选择数据通道174或控制通道176传输信息。若主机102传输的是数据信息,该数据信息可以通过数据通道174 传输至控制器140。若主机102传输的是控制信息,该控制信息可以通过控制通道176传输至控制器140。此外,接口 120可以将来自控制器140的数据信息封装成主机102可读的数据,且传输该数据至主机102。控制器140可以在接口 120和存储介质106之间传输数据信息。优点在于,耦合在接口 120和存储介质106之间的控制器140可以工作在多个工作模式,以控制主机102 和存储介质106间的数据传输。在一实施例中,至少有两个工作模式的数据读/写时序周期互不相同。读时序周期为一个读操作和下一个读操作之间需要的时间。写时序周期为一个写操作和下一个写操作之间需要的时间。所以,至少有两个工作模式的数据传输速率互不相同。在一实施例中,多个工作模式包括但不仅限于PCMCIA模式和True IDE模式。在 PCMCIA模式,根据PCMCIA标准相应的读/写时序传输数据。在True IDE模式,根据True IDE标准相应的读/写时序传输数据。优点在于,控制器140可以根据存储介质106的类型从多个工作模式中选择一种工作模式。因为不同类型的存储介质106可能支持的数据传输模式不同,因此控制器140 可以根据与存储介质106兼容的模式在主机102和存储介质106之间传输数据。例如,若存储介质106为CF+卡或CF4卡,则控制器140选择PCMCIA模式或TrueIDE模式。换句话说,控制器140可以为通用控制器,并根据存储介质106的类型选择合适的工作模式。控制器140可以工作在选择的工作模式,从而根据该工作模式相应的数据读/写时序周期和相应的数据传输速率,在接口 120和存储介质106之间传输数据。在一实施例中,若在多个工作模式中有多于一个工作模式和存储介质106兼容,控制器140可以选择能提供期望的数据传输性能的模式,例如,支持较高的数据传输速率的模式作为工作模式。此外,在一实施例中,控制器140选择的工作模式包括多个子工作模式。控制器 140基于预设的工作标准从多个子工作模式中选择一种子工作模式。例如,PCMCIA模式包括多个子工作模式,例如,PC card ATA使用输入输出模式和PC card ATA使用存储器模式。 当控制器140工作在PC card ATA使用输入输出模式或PC card ATA使用存储器模式时, 存储介质106使用不同的信号和控制器140通讯。例如,当存储介质106为CF+或CF4卡,且当控制器140工作在PC card ATA使用输入输出模式时,存储介质106使用其管脚34和管脚35的信号(图中未示出)和控制器140通讯。在一实施例中,控制器140使用管脚34 的IORD信号从存储介质106读出信号,并使用管脚35的IOWR信号将来自主机102的数据写入存储介质106。然而,当控制器140工作在PC card ATA使用存储器模式,在一实施例中,存储介质106和控制器140之间的通讯不使用管脚34和管脚35的信号。当存储介质 106为CF+或CF4卡,且当控制器140工作在PC card ATA使用存储器模式,存储介质106 使用其管脚9和管脚36的信号(图中未示出)和控制器140通讯。在一实施例中,控制器 140使用管脚9的OE信号从存储介质106读出信号,使用管脚36的TO信号将来自主机102 的数据写入存储介质106。然而,当控制器140工作在PC card ATA使用输入输出模式时, 控制器140使用管脚9的OE信号从存储介质106的配置寄存器读出数据,使用管脚36的 WE信号将数据写入存储介质106的配置寄存器。True IDE模式可以包括多个子工作模式,例如,可编程输入/输出(programmedl/ Ο,ΡΙΟ)模式、多字直接存储器访问(multiword direct memory access,MDMA)模式和超速直接存储器访问(ultra direct memory access, UDMA)模式。举个例子,当存储介质106 为CF+或CF4卡,且当控制器140工作在PIO模式时,在主机102和存储介质106之间每传输512比特的数据,需要一个中断。当控制器140工作在MDMA模式时,无需任何中断而一次传输完所有数据。当控制器140工作在UDMA模式时,存储介质106工作在主状态,例如, 存储介质106发起一次数据从存储介质106到主机102的数据传输。在这一实施例中,存储介质106发送控制信息,例如,DMA请求给控制器140,以发起数据传输。PIO模式可以包括多个PIO模式,且多个PIO模式可能有不同的读/写时序周期。相似地,MDMA模式可以包括多个MDMA模式,多个MDMA模式可能有不同的读/写时序周期;UDMA模式可以包括多个UDMA模式,多个UDMA模式可能有不同的读/写时序周期。控制器140可以基于预设工作标准,从多个子工作模式中选择一种子工作模式。在一实施例中,预设工作标准为数据传输速率标准。控制器140选择子工作模式, 以获得接口 120和存储介质106之间数据传输的期望的数据传输速率,例如,高数据传输速率。在另一实施例中,预设工作标准为优先级标准。控制器140可以判断数据传输要求的优先级,且根据接口 120和存储介质106之间数据传输要求的优先级,选择所述子工作模式。例如,在数据传输系统100中,主机102和存储介质106之间传输数据的数据传输要求可能和其他要求(例如,中断请求)共存。若主机102和存储介质106之间传输数据的数据传输要求的优先级较高,则模式选择模块130选择支持高数据传输速率的模式为子工作模式;若主机102和存储介质106之间传输数据的数据传输要求的优先级较低,模式选择模块130选择支持低数据传输速率的模式为子工作模式。在一实施例中,模式选择模块130 执行一段计算机可执行程序,以选择工作模式和/或子工作模式。在图1的实施例中,控制器140包括数据缓冲器142、寄存器144、模式选择模块 130、多路选择器152和核模块160。数据缓冲器142可以缓冲来自接口 120的数据信息,并提供该数据信息给核模块160。数据缓冲器142也可以缓冲来自核模块160的数据信息, 并提供该数据信息至接口 120。当主机102工作在主状态时,寄存器144存储来自接口 120 的控制信息;当存储介质106工作在主状态时,寄存器144存储来自存储介质106的控制信息。寄存器144还可以存储模式数据,该模式数据表示控制器140的多个工作模式和多个子工作模式。模式选择模块130可以访问前述的模式数据,为控制器140选择工作模式和 /或子工作模式。在一实施例中,寄存器144也存储表示传输是否完成的数据,且主机102 可以访问该数据。在这种情况下,核模块160产生表示传输是否完成的数据。在另一实施例中,主机102可以自行判断数据传输是否完成。核模块160耦合至数据缓冲器142,可以包括多个核。每个核可以工作在相应的工作模式与存储介质106通讯。在一实施例中,每个核为一微控制器,其根据相应的工作模式的读/写时序产生信号(例如,读/写信号)以进行数据传输。存储介质106接收核产生的信号,并做出相应的反应。例如,若主机102发起一次数据传输以将数据写入存储介质 106,相应的核可以根据来自主机102的控制信息产生写信号。相应地,存储介质106接收来自主机102的数据信息。若主机102发起一次数据传输以从存储介质106读出数据,相应的核根据来自主机102的控制信息产生读信号。相应地,存储介质106传送/提供数据信息给主机102。在一实施例中,若已选择了一工作模式,则可以根据该工作模式启动相应的核,与存储介质106通讯。数据可以通过启动的核在主机102和存储介质106之间传输。在一实施例中,在模式选择模块130选择出工作模式之前,控制器140工作在缺省模式,可以工作在该缺省模式的缺省核被用于与存储介质106通讯。根据存储介质106的类型,模式选择模块130可以从多个工作模式选择一种工作模式,且可以根据预设的工作标准,从多个子工作模式选择一子工作模式。更确切地说,模式选择模块130可以访问寄存器144中表示控制器140的多个工作模式和子工作模式的数据。模式选择模块130可以检测存储介质106的类型和存储介质106所支持的工作模式。 在一实施例中,模式选择模块130可以发送识别命令至寄存器144以要求存储介质106的识别信息。核模块160中的缺省核监测寄存器144,并相应地产生要求存储介质106识别信息的信号。作为回应,存储介质106通过缺省核发送表示存储介质106的类型和其所支持的工作模式的数据至寄存器144。这样,模式选择模块130就可以访问寄存器144中存储介质106的识别信息。模式选择模块130从多个工作模式选择与存储介质106兼容的一个工作模式。在一实施例中,若在多个模式中有多于一个工作模式和存储介质106兼容,模式选择模块130可以选择能提供期望的数据传输性能的工作模式,例如,支持较高数据传输速率的工作模式。若选择的工作模式包括多个子工作模式,模式选择模块130还可以根据预设的工作标准,进一步地从相应的多个子工作模式中选择一种子工作模式。一旦选择出工作模式,模式选择模块130配置控制器140以工作在选择的工作模式或子工作模式。在一实施例中,模式选择模块130通过将表示选择的工作模式或子工作模式的数据写入寄存器144以配置控制器140。多路选择器152耦合至寄存器144和核模块160,根据寄存器144中表示选择的工作模式或子工作模式的数据,使能核模块160中的一个核。结果,被使能的核根据所选择的工作模式或子工作模式的数据传输速率与存储介质106通讯,例如,传输数据信息至存储介质106。在此,以从主机102将数据传输至存储介质106为例进行说明。在一实施例中,通过接口 120和控制通道176,主机102首先传输控制信息至控制器140,以发起从主机102至存储介质106的数据传输。当寄存器144接收到该控制信息,模式选择模块130启动以选择一种工作模式。模式选择模块130可以选择工作模式,以及进一步选择子工作模式。这样,模式选择模块130设置控制器140工作在选择的工作模式和子工作模式。根据模式选择模块130选择的工作模式和子工作模式,多路选择器152启动核模块160中的一个核以与存储介质106通讯。通过接口 120和数据通道174,主机102传输数据信息至数据缓冲器 142。数据缓冲器142可以提供数据信息至核模块160中的被启动的核。这样,数据信息被传送至存储介质106。在一实施例中,主机102可以访问寄存器144以得知数据传输是否完成。在此,再以将数据从存储介质106传输至主机102为例进行说明。在一实施例中, 通过接口 120和控制通道176,主机102首先发送控制信息至控制器140,以请求从存储介质106至主机102的数据传输。在模式选择模块130选择出工作模式和子工作模式后,且设置控制器140在该工作模式和子工作模式之后,多路选择器152启动核模块160中的一个核与存储介质106通讯。这样,数据可以从存储介质106传输至核模块160。通过数据缓冲器142和数据通道174,数据可以被传送至主机102。在一实施例中,主机102可以访问寄存器144以得知数据传输是否完成。如上所述,主机102工作在主状态,以发起数据传输。在另一实施例中,存储介质 106工作在主状态,以发起数据传输。在另一实施例中,由主机102启动模式选择模块130, 选择工作模式。举个例子,当存储介质106为CF+或CF4卡,模式选择模块130选择True IDE模式作为工作模式,且进一步选择UDMA模式作为子工作模式。这样,模式选择模块130 设置控制器140为UDMA模式。多路选择器152启动核模块160中的一个可以工作在UDMA 模式的核以与存储介质106通讯。在UDMA模式,存储介质106工作在主状态,以发起存储介质106与主机102之间的数据传输。更具体地说,在一实施例中,存储介质106发送控制信息给控制器140以发起数据传输。核模块160中被启动的核分析来自存储介质106的信息,判断存储介质106发送的是数据信息还是控制信息。若存储介质106发送的是控制信息,则核模块160分析控制信息以判断是否存储介质106发起的是读操作(从主机102读出数据)还是写操作(将数据写入主机10 。若存储介质106发送的是数据信息,则控制器140经过数据通道174传输数据。若存储介质106发起一个将数据写入主机102的数据传输,则被启动的核根据来自存储介质106的控制信息产生读信号。相应地,主机102接收来自存储介质106通过数据通道174传输的数据信息。若存储介质106发起一个从主机102读出数据的数据传输,则被启动的核根据来自存储介质106的控制信息产生写信号。相应地,主机102通过数据通道174传输/提供数据信息给存储介质106。综上所述,控制器140可以根据存储介质106的类型选择工作模式。此外,控制器 140可以根据预设的工作标准,选择子工作模式。有利地是,控制器140可以根据不同类型的存储介质106,在不同的工作标准下,控制数据传输。在一实施例中,在存储介质106耦合至控制器140之前,可以设置控制器140为缺省模式。在一实施例中,缺省模式支持相对较高的数据传输速率。在存储介质106耦合至控制器140之后,模式选择模块130判断缺省模式是否和存储介质106兼容。若缺省模式和存储介质106兼容,控制器140则工作在缺省模式与存储介质106通讯。这样,可以获得较高的数据传输速率。若缺省模式和存储介质106不兼容,则模式选择模块130选择其它模式。
图2为根据本发明的一个实施例的数据传输系统200。图2中与图1标号相同的元件具有相同的功能。在图2的实施例中,数据传输系统200包括主机102、PCIe接口 120、 控制器140和存储介质106。存储介质106可以为但不仅限于CF+卡或CF4卡。控制器140 和PCIe接口 120可以在主机102和存储介质106之间传输数据。PCIe接口 120起I/O交互的作用,在主机102和控制器140之间传输数据。PCIe 为具有较高的数据传输速率的计算机交互的标准。例如,PCIe连接可以支持高达32个通道和提供有效的单方向单通道上约2. 5G/秒的带宽。这样,PCIe提供比PCI和PCI-X高的性能。此外,PCIe支持热插拔。在图2的实施例中,PCIe接口 120包括PCIe物理层222和 PCIe核心层224。若主机102发送串行信号至PCIe接口 120,则PCIe物理层222将串行信号转化为并行信号,且提供该并行信号PCIe核心层224。PCIe核心层2M解析并行信号以判断主机102传输的是数据信息还是控制信息。PCIe核心层2M通过数据通道174传输数据信息至控制器140,通过控制通道176传输控制信息至控制器140。这样,来自主机 102的信息可以通过PCIe接口 120送至控制器140。相似地,若控制器140传输数据信息至PCIe接口 120,则PCIe核心层2 打包数据信息,且提供该并行的数据信息至PCIe物理层222。PCIe物理层222转化并行数据至串行信息,并传送该串行信息至主机102。这样,PCIe接口 120可以传输数据信息至主机102。控制器140可以与存储介质106通讯,以在PCIe接口 120和存储介质106之间传输数据。在图2的实施例中,控制器140包括数据缓冲器142、寄存器144、模式选择模块 130、多路选择器152和核模块160。在一实施例中,核模块160包括PCMCIA核246和True IDE核248,其中PCMCIA核246工作在PCMCIA模式,True IDE核248工作在True IDE模式。根据存储介质106的类型,模式选择模块130从PCMCIA模式和True IDE模式中选择工作模式。此外,若选择的工作模式包括多个子工作模式,则根据预设的工作标准,模式选择模块130从选择的工作模式中的多个子工作模式中选择一种子工作模式。在图2的实施例中,模式选择模块130包括微处理单元(micro controller unit, MCU) 234和固件236。固件236存储计算机可执行的程序,微处理单元234能够执行固件236 中的计算机可执行程序,进而选择工作模式/子工作模式。微处理单元234读取寄存器144 中表示控制器140所支持的工作模式和/或子工作模式的模式数据。微处理单元234发送识别指令(例如,若存储介质106为CF4卡,则发送的识别指令为识别设备命令,Identify Device),以检测存储介质106的类型和其所支持的工作模式。在选择出工作模式和/或子工作模式之后,微处理单元234发送配置指令(例如,若存储介质106为CF4卡,则该配置指令可为设置特征命令,Set Feature),配置存储介质106中的寄存器以设置存储介质106 为所选择的工作模式和/或子工作模式,且通过将表示所选择的工作模式和/或子工作模式的数据写入寄存器144配置寄存器144,以设置控制器140为所选择的工作模式和/或子工作模式。根据寄存器144中表示所选择的工作模式的数据,多路选择器152启动PCMCIA核 246和True ^^核对8中的一个。这样,根据所选择的工作模式和/或子模式相应的数据传输速率,被启动的核可以与存储介质106通讯。在另一实施例中,工作在PCMCIA模式或 True IDE模式的核与存储介质106通讯,从而实现主机102与存储介质106的数据传输。
所以,控制器140可以根据不同的存储介质106在不同的工作标准下控制数据传输。此外,通过PCIe接口 120,存储介质106可以以较高的性能与主机系统通讯。这样,数据传输的性能进一步提高。此外,因为PCIe接口 120支持热插拔,所以控制器140也支持热插拔。在一实施例中,在存储介质106耦合至控制器140之前,控制器140被设置为缺省模式。在一实施例中,缺省模式为True IDE模式。在存储介质106耦合至控制器140之后, 模式选择模块130发送一识别指令(例如,若存储介质106为CF4卡,则该识别指令可为识别设备命令)至存储介质106,以判断缺省模式是否和存储介质106兼容。若缺省模式和存储介质106兼容,微处理单元234发送配置指令(例如,若存储介质106为CF4卡,则该配置指令可为设置特征命令)以设置存储介质106至TrueIDE模式。图3为根据本发明的另一个实施例的数据传输系统300。图3中和图2标号相同的元件具有相同的功能。在图3的实施例中,模式选择模块130设于控制器140之外。模式选择模块130包括驱动336,所述驱动336可以是用于选择工作模式和子工作模式的计算机可执行的程序或者能够选择工作模式和子工作模式的装置。在一实施例中,主机102的信号处理器(图中未出示)通过执行/控制驱动336以实现模式选择的功能。图4为根据本发明的一个实施例的控制数据传输的方法的流程图400。图4将结合图1进行说明。在步骤402,检测存储介质106的类型和其所支持的工作模式。在步骤404,根据存储介质106的类型,从多个工作模式中选择一种工作模式。例如,控制器140中的模式选择模块130访问寄存器144中表示控制器140所支持的多个工作模式和子工作模式的数据。 模式选择模块130从多个工作模式中选择和存储介质106兼容的工作模式。在步骤406,根据预设工作标准,从多个子工作模式中选择一种子工作模式。在一实施例中,所选择的工作模式可能包括多个子工作模式。在这种情况下,根据预设工作标准,模式选择模块130还可以从相应的多个子工作模式中选择出一种子工作模式,例如,数据传输速率标准或优先级标准。在步骤408,使能控制器140工作在所选出的工作模式和/或子工作模式。模式选择模块130可以配置寄存器144以设置控制器140为工作模式和/或子工作模式。在一实施例中,模式选择模块130可以将表示所选择的工作模式和/或子工作模式的数据写入寄存器144,以设置控制器140为所选择的工作模式和/或子工作模式。在步骤410,控制器140根据所选择的工作模式的传输速率和读/写时序周期,在存储介质106和主机102之间传输数据。根据寄存器144中表示所选择的工作模式和/或子工作模式的数据,多路选择器152启动核模块160中的一个核。这样,根据选择的工作模式的传输速率和读/写时序周期,被启动的核与存储介质106通讯,进而和存储介质106交换数据。图5所示为根据本发明的实施例的数据传输系统500的另一结构图。图5将结合图1进行描述。图5中与图1标号相同的元件具有相同的功能。在图5的实施例中,数据传输系统500包括主机102、接口 120、控制器M0、通用插槽5 和存储介质106。在一个实施例中,存储介质106包括但不局限于16位PC卡或CF卡。16位PC卡和CF卡都支持16位数据传输。主机102通过接口 120、控制器540和通用插槽5 从存储介质106读取数据信息或向存储介质106写入数据信息。在一个实施例中,主机102包括总线562、处理器564、主机接口 566和存储器568。 存储器568可为但不局限于随机访问存储器(random access memory, RAM)、只读存储器 (read only memory, ROM)、电可擦除只读存储器(electrically erasableprogrammabIe read-only memory, EEPR0M)或闪存(flash memory)。存储器568可存储数据和计算机可执行程序指令。处理器564可为中央处理器(central processing unit,CPU)、微处理器或其他可读取及执行程序指令的设备。在一个实施例中,操作系统(例如MICR0S0FT WINDOWS)被安装到主机102的存储器568中。操作系统提供具有服务组顺序(service-group-order)文件的注册表。服务组顺序文件按预设顺序列出多个服务组。当主机102启动时,处理器564按服务组顺序文件中的预设顺序加载对应的程序。为执行特定的程序,处理器564调用相关的程序指令,并发送对应的控制命令给相关的硬件元件,控制其执行这些指令。主机接口 566包括串行接口、并行接口或其他类型的接口,用于接收或发送携带数字数据流的电信号、电磁信号或光信号。例如,主机接口 566与控制器540相连,以传送数据信息和控制信息。主机102的硬件元件(例如处理器564、主机接口 566和存储器568)之间的通信由总线562来建立。主机102可包括其他元件,且不局限于图5的实施例。接口 120耦合于主机102和控制器MO之间,作为主机102和控制器MO之间的输入输出(input/output,1/0)通道。控制器540传送主机102和存储介质106之间的数据信息。在一个实施例中,通用插槽5 可以连接不同类型的存储介质。例如,通用插槽526 可为68引脚双排接口,因此,16位PC卡和CF卡均可以插入通用插槽526。与图1中的控制器140类似,控制器540能够工作在多种工作模式,以控制主机 102和控制器540之间的数据传输。不同的工作模式具有不同的数据读/写时序周期。在一个实施例中,由于16位PC卡和CF卡均支持True IDE标准的读/写时钟,控制器540可以工作在True IDE模式下的多个子工作模式。因此,控制器540的工作模式可包括可编程输入输出(programmed input and output, ΡΙΟ)模式禾口直接存储器存取(direct memory access, DMA)模式。在一个实施例中,16位PC卡和CF卡均可按照PIO标准定义的读/写时序工作,然而仅有CF卡可按照DMA标准定义的读/写时序工作。在这个实施例中,PIO模式与16位PC卡和CF卡均兼容,而DMA模式仅仅与CF卡兼容。存储器568可存储多个计算机可执行驱动,用于驱动控制器M0。更具体地说,处理器564执行驱动,从而产生控制命令,例如初始化命令。在传送数据信息之前,初始化命令使能主机102和控制器540之间的握手。此外,初始化命令可以定义数据传输的特性,例如,是向存储介质106写入数据还是从存储介质106读出数据。初始化命令还可表示数据传输的状态,例如,数据传输的启动或初始化。由此,控制器540可根据初始化命令传送数据信息。不同的驱动与不同的工作模式有关。也就是说,为了传送数据信息,控制器540可以根据来自多个驱动的控制命令工作在不同的工作模式。在一个实施例中,驱动包括通用驱动552和专用驱动554。通用驱动552与PIO模式相关,并且能够和插入通用插槽5 的多种类型的存储介质(例如16位PC卡和CF卡)中的每一种类型均兼容。通用驱动5M与DMA模式相关,并且和多种类型的存储介质中的部分存储介质兼容,例如,专用驱动M4 仅仅与CF卡兼容。在一个实施例中,通用驱动552由主机102的操作系统提供,且通用驱动552与操作系统的注册表中的通用卡驱动组(universal-card-driver)相对应。基于通用驱动552 的控制命令,数据传输系统500在PIO模式下传送数据信息。更具体地说,在PIO模式下, 处理器564执行通用驱动552,以初始化数据传输,并控制数据传输的过程。例如,在写操作中,处理器564将数据信息从存储器568传送到处理器564的内部缓存。当存入了预设长度的数据(例如512字节的数据)时,处理器564将数据信息从内部缓存通过控制器MO 传送到存储介质106。同理,在读操作中,处理器564将数据信息从存储介质106通过控制器540读取到处理器564的内部缓存。当读入了预设长度的数据(例如512字节的数据) 时,处理器564将数据信息从内部缓存存入到存储器568。由此,在PIO模式中,每当传送了预设长度的数据时,均会出现一次中断。专用驱动5M可设置在存储器568中。一旦设置了专用驱动554,专用驱动5M则将专用卡驱动组(dedicated-card-driver)存入服务组顺序文件。基于专用驱动5M的控制命令,数据传输系统500可以在DMA模式下传送数据信息。更具体地说,在DMA模式下,控制器540控制数据传输的全过程。举例说明,在DMA模式(例如MDMA模式或UDMA模式) 中,处理器564执行专用驱动554,以初始化一个读或写数据操作。然后,处理器564把总线控制权交给控制器讨0,并根据专用驱动5M的指令从数据传输的操作中释放出来。控制器 540开始传送存储器568和存储介质106之间的数据信息,而不占用处理器时间。在这个实施例中,所有的数据信息一次性传送完毕,而没有任何中断。由此,DMA模式相比PIO模式具有更高的数据传输速率。与此同时,处理器564可以更有效的执行其他操作,例如运算操作。存储在存储器568中的驱动能够使控制器540选择出对应的工作模式。在一个实施例中,当数据传输系统500启动时,控制器540默认选择专用驱动554。专用驱动5M可以识别存储介质106,并根据存储介质106的类型决定DMA模式是否与存储介质106兼容。 基于该决定,控制器540选择对应的驱动,并工作在对应的工作模式,以传输数据信息。更具体地说,当存储介质106插入插槽526时,控制器540提供对应的卡插入 (card-insertion)信号至专用驱动554。作为对卡插入信号的回应,专用驱动5 读取存储介质106中的识别信息(例如卡识别结构,card identification structure,CIS),并识别存储介质106的类型。例如,专用驱动5M判断存储介质106是16位PC卡还是CF卡。 由此,在一个实施例中,专用驱动5M根据识别出的类型判断DMA模式是否与存储介质106 兼容。如果存储介质106是16位PC卡(即不支持DMA模式的类型),专用驱动5M产生选择通用驱动命令(select-universal-driver)。作为选择通用驱动命令的回应,控制器MO 选择通用驱动552,并据此工作在PIO模式下,以传输数据信息。如果存储介质106是CF卡 (即支持DMA模式的类型),专用驱动554驱动控制器M0,使其工作在DMA模式下,以传输数据信息。如果主机102启动且专用驱动5M还没有加载,通用驱动552可能会开始驱动控制器M0,无论存储介质106是16位PC卡还是CF卡。优点在于,处理器564执行专用驱动 554,以添加专用卡服务组至通用卡服务组之前。因此,处理器564在加载通用驱动552之前加载专用驱动阳4。因此,通过从通用驱动552(与多种类型的存储介质的每一种类型均兼容)和专用驱动554(仅仅与多种类型的存储介质中的部分类型兼容)中选择一种,数据传输系统500 可以与共享相同插槽5 的不同类型的存储介质交换数据。优点在于,如果存储介质106是该部分类型的其中一种,被选择的驱动包括专用驱动阳4,否则,被选择的驱动包括通用驱动552。例如,如果存储介质106是支持PIO模式的16位PC卡,则选择通用驱动552,从而使控制器540进入PIO模式以传输数据。如果存储介质106是既支持PIO模式又支持DMA 模式的CF卡,则选择专用驱动554,从而使控制器540进入DMA模式以传输数据。由于DMA 模式比PIO模式的数据传输速率快且占用较少的处理器时间,则提高了数据传输系统500 的效率。图6所示为根据本发明的实施例的控制器540和接口 120的结构框图。图6中与图1和图5相同的元件具有相同的功能。图6将结合图5进行描述。接口 120耦合于主机接口 566,用于将控制器540连接到主机102。在图6的实施例中,控制器540包括多个核(比如通用核610和专用核620)、多路选择器630和逻辑模块 640。多个核用于建立多个驱动和存储介质106之间的通信。通用核610可以建立通用驱动552和存储介质106之间的通信。专用核620可以建立专用驱动5M和存储介质106 之间的通信。多路选择器630用于从多个核中选择一个。因为不同的核可以与不同的驱动通信,多路选择器630可以通过选择对应的核选择驱动。在一个实施例中,逻辑模块640包括控制信号处理器642、卡感应器644和状态信号生成器646。所述多个核根据来自主机102的控制信息传送对应的控制信号给逻辑模块 640。控制信号处理器642分析控制信号,并据此读或写对应的数据信息。卡感应器644感应存储介质106的状态,例如,卡感应器644监测存储介质106是否插入了插槽5 或者是否从插槽5 移除。状态信号生成器646根据控制信号处理器642的分析操作和卡感应器 644的感应操作产生表示存储介质106的状态的多个状态信号,例如,当卡感应器644感应到存储介质106插入插槽5 时,状态信号生成器646产生卡插入信号。此外,当控制信号处理器642接收到选择通用驱动命令,状态信号生成器646产生另一个卡插入信号。控制器540可以具有其他的结构,且不局限于图6的实施例。在一个实施例中,通用核610包括寄存器612、数据缓存器614和通用控制模块 616。数据缓存器614用于缓存数据信息。寄存器612用于存储来自通用驱动552的控制信息或来自存储介质106的状态信息。耦合于寄存器612和数据缓存器614的通用控制模块616具有PIO控制器的功能。更具体地说,通用控制模块616监测存储在寄存器612的控制信息,并产生对应的控制信号以控制数据传输。例如,通用控制模块616可以根据从通用驱动552传送至寄存器612中的读指令,发送对应的读信号给存储介质106 ;控制信号处理器642分析读信号,并从存储介质106中读取数据信息至数据缓存器614。此外,通用控制模块616也监测从存储介质106传送至寄存器612的状态信息,并产生对应的状态指令。处理器564执行通用驱动552,以根据状态指令决定数据传输的后续步骤。例如,在写操作中,当卡感应器644检测到存储介质106的存储空间已被占满时,状态信号生成器646产生空间满(space-full)信号并送至寄存器612。因此,通用控制模块616产生空间满命令,以向通用驱动552通报存储介质106不能接收更多的数据信息。为回应空间满命令,通用驱动552产生终止命令,以停止数据传输。在一个实施例中,专用核620包括寄存器622、数据缓存器6M和专用控制模块 626。专用核620中的寄存器622和数据缓存器6M与通用核610中的寄存器612和数据缓存器614具有同样的功能。耦合于寄存器622和数据缓存器624的专用控制模块6 具有 DMA控制器的功能。例如,当处理器564执行专用驱动5M产生初始命令后,专用驱动5M 赋予专用控制模块6 直接访问总线562和存储器568的权利。在写操作中,专用控制模块6 从存储器568中读取数据信息至数据缓存器624,并从数据缓存器6M传送数据信息至存储介质106。在读操作中,专用控制模块626从存储介质106中读取数据信息至数据缓存器624,并从数据缓存器6M传送数据信息至存储器568。此外,专用控制模块6 监测寄存器622的状态信息,并决定数据传输的后续步骤。例如,当寄存器622接收空间满信号,专用控制模块6 直接停止数据传输,而不需要发送由处理器564访问的状态指令。在一个实施例中,寄存器622还存储包含核选择(core-selection)数据、驱动器有效(driver-valid)数据和请求驱动器控制(need-driver-control)数据的数据集。或者,该数据集可存储在其他耦合于多路选择器630的存储介质,例如通用核610的寄存器 614或设于通用核610和专用核620之外的存储介质。在一个实施例中,核选择数据、驱动器有效数据和请求驱动器控制数据均为具有两个值(例如逻辑1或逻辑0)的1位数据。 多路选择器630根据存储在寄存器622的数据集选择一种核。更具体地说,专用控制模块 626监测存储在寄存器622的数据集,并可产生核选择信号632。由此,多路选择器630从多个核中选择对应的核与对应的驱动通信。由此,选择了对应的驱动,且控制器540根据被选中的驱动工作在对应的工作模式下,以传输数据。核选择数据表示专用驱动5M和存储介质106的类型之间的兼容性。在一个实施例中,当移除存储介质106时,专用控制模块拟6可设置核选择数据为缺省值,例如逻辑 1,以表示默认选择专用驱动554。因此,当存储介质106下一次插入插槽526时,多路选择器630根据核选择数据的缺省值选择专用驱动554。由此,处理器564执行专用驱动5M识别存储介质106,并据此决定专用驱动5M和存储介质106的类型是否兼容。正如图5中所描述的,专用驱动5M决定与专用驱动5M相关的DMA模式是否与存储介质106的类型兼容。如果DMA模式与存储介质106兼容,则设置核选择数据为第一数值,例如逻辑1。如果DMA模式与存储介质106不兼容,专用驱动5M产生选择通用驱动命令。根据选择通用驱动命令,专用控制模块6 设置核选择数据为第二数值,例如逻辑0。基于核选择数据的第二数值,多路选择器630选择通用核610与通用驱动552通信。 因此,选择了通用驱动552,以驱动控制540工作在PIO模式。在一个实施例中,专用驱动5M可能被用户卸载或无效。此时,多路选择器630需要选择通用驱动552和通用核610。驱动有效数据表示专用驱动M4的可用性。例如,当专用驱动5M安装到主机102时,专用控制模块6 设置驱动有效数据为第一数值,例如逻辑1,以表示专用驱动5M可用。当专用驱动5M从主机102上卸载或被无效时,专用控制模块6 设置驱动有效数据为第二数值,例如逻辑0,以表示专用驱动5M不可用。多路选择器630根据驱动有效数据选择驱动。如果驱动有效数据表示专用驱动 554可用,多路选择器630根据核选择数据如前述方法选择一种核。优点在于,如果驱动有
17效数据表示专用驱动5M不可用,多路选择器630自动选择通用驱动552,无论核选择数据是逻辑1还是逻辑0。因此,避免了由于专用驱动5M的缺失造成数据传输系统500的停止现象的发生,提高了数据传输系统500的稳定性。在一个实施例中,当通用驱动552和通用核610正在传输数据信息时,可能安装专用驱动M4或使专用驱动M4有效。此时,专用驱动M4不需要执行数据传输。请求驱动控制数据表示数据传输是由通用驱动552和通用核610建立的还是由专用驱动5M和专用核620建立的。在一个实施例中,专用控制模块6 根据核选择数据和驱动有效数据决定请求驱动控制数据的值。更具体地说,当卡感应器644发现存储介质106已经插入,或控制信号处理器642接收到选择通用驱动命令,状态信号生成器646均会产生卡插入信号。为响应卡插入信号,专用控制模块626对核选择数据和驱动有效数据执行逻辑与运算,并据此决定请求驱动控制数据的值。例如,如果核选择数据为逻辑0 (表示专用驱动554与存储介质106 不兼容)或驱动有效数据为逻辑0 (表示专用驱动5M不可用),专用控制模块6 设置请求驱动控制数据为第一数值,例如逻辑0,表示通用驱动552和通用核610正在传输数据。 否则,设置请求驱动控制数据为第二数值,例如逻辑1,表示专用驱动5M和专用核620正在传输数据。优点在于,尽管当专用驱动5M被用户安装或设置为有效时驱动有效数据会被设置为逻辑1,多路选择器630和专用驱动M4会检查请求驱动控制数据。如果请求驱动控制数据表示通用驱动552和通用核610正在传输数据信息,专用驱动5M停止工作。此外,多路选择器630根据请求驱动控制数据选择通用驱动552和通用核610,而不去判断核选择数据和驱动有效数据的数值。由此,避免了由于专用驱动5M和通用驱动552之间的矛盾引起数据传输系统500的停止现象的发生,提高了数据传输系统500的稳定性。总之,基于核选择数据、驱动有效数据和请求驱动控制数据,控制器540能在各种情况下适当的选择通用驱动552或专用驱动554,由此,提高了数据传输系统500的稳定性。图7所示为根据本发明的实施例的数据传输系统500的操作流程图700。图7将结合图5和图6进行描述。在图7的实施例中,专用驱动M4可用。流程图700描述了 DATAO、 DATAl和DATA2,其中DATAO表示核选择数据,DATAl表示驱动有效数据,DATA2表示请求驱动控制数据。在步骤702中,数据传输系统500启动。处理器564根据注册表中的服务组顺序文件加载多个程序。在步骤704中,安装了专用驱动554,且设置专用驱动M4为有效。由此,设置DATAl为逻辑1,表示专用驱动M4可用。当存储介质106在上一次插入插槽526 又从插槽526中移除时,设置DATAO为缺省值,即逻辑1。在步骤706中,存储介质106插入插槽526。多路选择器630根据DATAO默认选择专用核620。卡感应器644感应到存储介质106的插入,并使状态信号生成器646发送卡插入信号至专用核620。为响应卡插入信号,专用核620通过对DATAO和DATAl进行逻辑与运算来决定DATA2。因此,DATA2被设置为逻辑1。专用驱动M4根据存储介质106的身份信息识别存储介质106的类型,并据此决定核选择数据。在步骤708中,存储介质106可以是支持DMA模式的CF卡。因此,DATAO仍为逻辑 1。在步骤710中,多路选择器630根据DATA0、DATA1和DATA2选择专用驱动554,以在DMA模式下传输数据。在步骤712中,移除存储介质106。DATAO被设置为缺省值,例如=DATAO 保持为逻辑1。在步骤714中,存储介质106可以是不支持DMA模式的16位PC卡。因此,专用驱动5M产生选择通用驱动命令,以设置DATAO为逻辑0,同时,逻辑模块640还根据选择通用驱动命令产生另外一个卡插入信号。在步骤716中,多路选择器630根据DATAO选择通用驱动552。此外,为响应卡插入信号,专用控制模块6 通过对DATAO和DATAl进行逻辑与运算来决定DATA2。因此,DATA2被设置成逻辑0,以表示通用驱动552和通用核610正在传送数据信息。在步骤718中,移除存储介质106。DATAO被设置为缺省值,例如逻辑1。图8所示为根据本发明的实施例的数据传输系统500的操作流程图800。图8将结合图5和图6进行描述。在图8的实施例中,专用驱动M4不可用。流程图800描述了 DATAO,DATAl和DATA2。DATAO表示核选择数据,DATAl表示驱动有效数据,DATA2表示请求驱动控制数据。在步骤802中,数据传输系统500启动。处理器564根据注册表中的服务组顺序文件加载多个程序。在步骤804中,卸载或无效专用驱动554。由此,设置DATAl为逻辑0, 表示专用驱动5M不可用。在步骤806中,存储介质106插入插槽526。状态信号生成器646产生卡插入信号。为响应卡插入信号,专用控制模块6 通过对DATAO和DATAl进行逻辑与运算来决定 DATA2。因此,DATA2被设置为逻辑0,表示数据传输是由通用驱动552和通用核610建立。 在步骤808中,尽管DATAO具有缺省值逻辑1,多路选择器630根据DATAl选择通用驱动552 和通用核610。在步骤814中,移除存储介质106。DATAO保持为缺省值逻辑1。在步骤810中,安装专用驱动554。DATAl设置为逻辑1,表示专用驱动5M变为可用。根据DATA2,多路选择器630选择通用驱动552。此外,专用驱动M4停止运行。在步骤812中,移除存储介质106。DATAO设置为缺省值逻辑1。数据传输系统500可具有其他的操作,且不局限于图7和图8的实施例。图9所示为根据本发明的实施例的数据传输系统500的方法流程图900。图9将结合图5至图8进行描述。图9所涵盖的具体步骤仅仅作为示例。也就是说,本发明适用于其他合理的流程或对图9进行改进的步骤。在步骤902中,加载计算机可执行的通用驱动,例如通用驱动552。该通用驱动与第一工作模式(例如ΡΙ0模式)相关,且与多种类型的存储介质(例如16位PC卡和CF 卡)的每一种类型均兼容。插槽(例如通用插槽526)能够连接该多种类型的存储介质。在步骤904中,加载计算机可执行的专用驱动(例如专用驱动554)。专用驱动与第二工作模式(例如DMA模式)相关,且仅仅与该多种类型的存储介质中的部分类型(例如CF卡)兼容。在一个实施例中,在加载通用驱动之前加载专用驱动。在步骤906中,当存储介质(例如存储介质106)插入插槽时,从通用驱动和专用驱动中选择一个。其中,如果存储介质是部分类型的一种类型,被选中的驱动包括专用驱动,否则,被选中的驱动包括通用驱动。在一个实施例中,访问表示专用驱动是否与存储介质兼容的核选择数据,并根据核选择数据选择被选驱动。设置核选择数据为缺省值,并当存储介质插入插槽时,根据缺省值默认选择专用驱动。然后,根据包含在存储介质中的识别信息识别存储介质的类型,并根据该类型决定核选择数据的值。此外,访问表示专用驱动是否可用的驱动有效数据,并根据驱动有效数据选择被选驱动。访问表示通用驱动和通用核是否正在传输数据信息的请求驱动控制数据,且根据请求驱动控制数据选择被选驱动。在步骤908中,根据被选中的驱动工作在对应的工作模式,以与存储介质交换数据信息。上文具体实施方式
和附图仅为本发明之常用实施例。显然,在不脱离权利要求书所界定的本发明精神和发明范围的前提下可以有各种增补、修改和替换。本领域技术人员应该理解,本发明在实际应用中可根据具体的环境和工作要求在不背离发明准则的前提下在形式、结构、布局、比例、材料、元素、组件及其它方面有所变化。因此,在此披露之实施例仅用于说明而非限制,本发明之范围由后附权利要求及其合法等同物界定,而不限于此前之描述。
权利要求
1.一种数据传输装置,其特征在于,所述数据传输装置至少包括能与不同类型的存储介质连接的插槽;计算机可读介质,用于存储计算机可执行的通用驱动和计算机可执行的专用驱动,其中,所述通用驱动与第一工作模式相关,且与所述不同类型的存储介质中的每一种存储介质都兼容,所述专用驱动与第二工作模式相关,且仅仅与所述不同类型的存储介质中的部分类型兼容;及耦合于所述插槽和所述计算机可读介质的控制器,用于当存储介质插入所述插槽时, 从所述通用驱动和所述专用驱动中选择一个,并根据所述被选驱动工作在对应的工作模式,以与所述存储介质交换数据信息,其中,如果所述存储介质是所述部分类型中的一种类型,所述被选驱动包括所述专用驱动,否则,所述被选驱动包括所述通用驱动。
2.根据权利要求1所述的数据传输装置,其特征在于,所述第一工作模式包括可编程输入输出(programmed input output, ΡΙΟ)模式,所述第二工作模式包括直接存储器访问 (direct memory access, DMA)模式。
3.根据权利要求1所述的数据传输装置,其特征在于,所述不同类型的存储介质包括 PCMCIA 卡禾口 CF 卡。
4.根据权利要求1所述的数据传输装置,其特征在于,所述控制器至少包括通用核,用于建立所述存储介质和所述通用驱动之间的通信;专用核,用于建立所述存储介质和所述专用驱动之间的通信;及耦合于所述通用核和所述专用核的多路选择器,用于从至少所述通用核和所述专用核选择一个对应核,从而选择所述被选驱动。
5.根据权利要求4所述的数据传输的装置,其特征在于,所述控制器还包括耦合于所述多路选择器的寄存器,用于存储核选择(core-selection)数据,所述核选择数据表示所述专用驱动是否与所述存储介质兼容,其中,所述多路选择器根据所述核选择数据选择所述被选驱动。
6.根据权利要求5所述的数据传输的装置,其特征在于,当存储介质插入所述插槽时, 所述核选择数据具有缺省值,所述多路选择器根据所述缺省值默认选择所述专用驱动。
7.根据权利要求6所述的数据传输的装置,其特征在于,所述专用驱动根据包含在所述存储介质中的识别信息识别所述存储介质的类型,并根据所述类型决定所述核选择数据的值。
8.根据权利要求4所述的数据传输的装置,其特征在于,所述控制器还包括耦合于所述多路选择器的寄存器,用于存储表示所述专用驱动是否可用的驱动有效(driver-valid)数据,所述多路选择器根据所述驱动有效数据选择所述被选驱动。
9.根据权利要求4所述的数据传输的装置,其特征在于,所述控制器还包括耦合于所述多路选择器的寄存器,用于存储请求驱动控制(need-driver-control)数据,所述请求驱动控制数据表示所述通用驱动和所述通用核是否正在传输所述数据信息, 其中,所述多路选择器根据所述请求驱动控制数据选择所述被选驱动。
10.根据权利要求1所述的数据传输的装置,其特征在于,在加载所述通用驱动之前加载所述专用驱动。
11.一种数据传输方法,其特征在于,所述数据传输的方法至少包括加载与第一工作模式相关的计算机可执行的通用驱动,所述通用驱动与多种类型的存储介质的每一种类型均兼容,通用插槽能够连接所述多种类型的存储介质;加载与第二工作模式相关的计算机可执行的专用驱动,所述专用驱动仅仅与所述多种类型的存储介质中的部分类型兼容;当所述存储介质插入所述插槽时,从所述通用驱动和所述专用驱动中选择一个被选驱动;及根据所述被选驱动工作在对应的工作模式,以与存储介质交换数据信息, 如果所述存储介质是所述部分类型的一种类型,所述被选驱动包括所述专用驱动,否则,所述被选驱动包括所述通用驱动。
12.根据权利要求11所述的数据传输的方法,其特征在于,所述选择步骤还至少包括 访问表示所述专用驱动是否与所述存储介质兼容的核选择数据;及根据所述核选择数据选择所述被选驱动。
13.根据权利要求12所述的数据传输的方法,其特征在于,所述选择步骤还至少包括 设置所述核选择数据为缺省值;及当所述存储介质插入所述通用插槽时,根据所述缺省值默认选择所述专用驱动。
14.根据权利要求13所述的方法,其特征在于,所述选择步骤还至少包括 根据包含在所述存储介质中的识别信息识别所述存储介质的类型;及根据所述类型决定所述核选择数据的值。
15.根据权利要求11所述的方法,其特征在于,所述选择步骤还至少包括 访问表示所述专用驱动是否可用的驱动有效数据;及根据所述驱动有效数据选择所述被选驱动。
16.根据权利要求11所述的方法,其特征在于,所述选择步骤还至少包括访问表示所述通用驱动和所述通用核是否正在传输所述数据信息的请求驱动控制数据;及根据所述请求驱动控制数据选择所述被选驱动。
17.根据权利要求11所述的方法,其特征在于,所述加载步骤还包括 在加载所述通用驱动之前加载所述专用驱动。
18.—种控制器,其特征在于,所述控制器耦合于插槽,所述控制器用于传输主机和所述插槽之间的数据信息,所述插槽能够连接多种类型的存储介质,所述控制器至少包括通用核,能够根据来自计算机可执行的通用驱动的控制指令工作于第一工作模式,以传输所述数据信息,所述第一工作模式与所述多种类型的存储介质的每一种类型均兼容;专用核,能够根据来自计算机可执行的专用驱动的控制指令工作于第二工作模式,以传输所述数据信息,所述第二工作模式仅仅与所述多种类型的存储介质的部分类型兼容;耦合于通用核和专用核的多路选择器,用于根据耦合于所述多路选择器的寄存器中的数据集从所述通用核和所述专用核中选择一个被选核,以传输所述数据信息,如果所述存储介质是所述部分类型中的一种类型,所述被选核包括所述专用核,否则, 所述被选核包括所述通用核。
19.根据权利要求18所述的控制器,其特征在于,所述数据集包括表示所述专用驱动是否与所述存储介质兼容的核选择数据。
20.根据权利要求19所述的控制器,其特征在于,当所述存储介质插入所述插槽时,所述核选择数据具有缺省值,从而使所述多路选择器默认选择所述专用核,其中,所述专用驱动识别所述存储介质的类型,并根据所述类型决定所述核选择数据的值。
21.根据权利要求19所述的控制器,其特征在于,所述数据集还包括表示所述专用驱动是否可用的驱动有效数据。
22.根据权利要求21所述的控制器,其特征在于,如果所述驱动有效数据表示所述专用驱动可用,所述多路选择器根据所述核选择数据选择所述被选核。
23.根据权利要求21所述的控制器,其特征在于,如果所述驱动有效数据表示所述专用驱动不可用,所述多路选择器选择所述通用核而不考虑所述核选择数据。
24.根据权利要求21所述的控制器,其特征在于,所述数据集还包括表示所述通用核是否正在传输所述数据信息的请求驱动控制数据。
25.根据权利要求M所述的控制器,其特征在于,所述控制器根据所述核选择数据和所述驱动有效数据决定所述请求驱动控制数据。
26.根据权利要求M所述的控制器,其特征在于,如果所述请求驱动控制数据表示所述通用核正在传输所述数据信息,所述多路选择器选择所述通用核而不考虑所述核选择数据和所述驱动有效数据。
全文摘要
本发明提供了一种数据传输装置,所述数据传输装置至少包括插槽、计算机可读介质和控制器,所述插槽能与不同类型的存储介质连接,所述计算机可读介质用于存储计算机可执行的通用驱动和计算机可执行的专用驱动,其中,所述通用驱动与第一工作模式相关,且与所述不同类型的存储介质中的每一种存储介质都兼容,所述专用驱动与第二工作模式相关,且仅仅与所述不同类型的存储介质中的部分类型兼容,所述控制器用于当存储介质插入所述插槽时,从所述通用驱动和所述专用驱动中选择一个,并根据所述被选驱动工作在对应的工作模式,以与所述存储介质交换数据信息;本发明的数据传输装置中,CF卡可以共享16位PC卡的插槽,且控制器选择专用驱动,并据此工作在DMA模式而非PIO模式进行数据传输,因此,提高了数据传输速率以及数据传输系统的效率。
文档编号G06F13/16GK102222054SQ20101015302
公开日2011年10月19日 申请日期2010年4月19日 优先权日2010年4月19日
发明者任立, 余晓光, 姚炜, 方任, 赵红晓, 陶亮 申请人:凹凸电子(武汉)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1