读卡装置的整合型控制芯片与其数据存取方法

文档序号:6571362阅读:384来源:国知局
专利名称:读卡装置的整合型控制芯片与其数据存取方法
技术领域
本发明关于一种读卡装置的整合型控制芯片与其数据存取方法,特别关于使用单芯片同时控制两种或两种以上规格的读卡装置与其存取方法。

背景技术
传统上,能够同时兼容闪存卡(Flash Memory card)和智能卡(Smart card)的读卡器都是采用多个控制芯片。典型的架构如图1所示的读卡装置示意图,一个闪存卡读卡器芯片101和一个智能卡读卡器芯片103,另外再加上一个连接外部系统并控制USB接口数据流的USB集线装置(hub)控制芯片105,组成了一个多功能的读卡器。这种读卡器虽然实现起来复杂度比较低,但因其较高的生产成本会逐渐失去市场竞争力。
如图1所示,公知技术为了兼容多种形式的卡,使用多个控制芯片以同时兼容不同的卡片,因为操作系统对各卡片的请求(request)方式有所不同,故需要不同的控制芯片,如果需要支持两种或两种以上的卡片,则需要两套或两套以上完全不同的硬件来实现,如此便需要较高的生产成本。
在公知技术中,不论是整合型芯片还是多个控制器的方式,操作系统(Operation System)对闪存卡和智能卡的请求方式有所不同 (1)闪存卡是通过文件系统(File System)进行请求,通常受控于操作系统内标准的驱动程序; (2)智能卡的请求方式则是使用专用的应用程序,通过中间层软件(Middleware),如果是基于PC/SC架构,中间层软件如同智能卡服务提供商(Service Provider)提供的驱动程序(driver),由此和操作系统厂商提供的资源管理程序(Resource Manager)共同请求智能卡中的内容。
智能卡的驱动程序和闪存卡一般采用的大量储存装置的驱动程序(USBMass Storage driver)是两个没有关联的独立的代码,它们和读卡器的交互数据是基于USB处理(transaction)级别的。两种驱动程序完成一个完整的请求操作均需要一个至多个转换(transfer),读卡器完全有可能在还没有完成一个操作的情况下接收到另一个驱动程序发送过来的其它命令。
因此,不同的请求路径会造成控制芯片处理数据出现混乱。例如,文件系统需要从闪存卡读一笔数据,此程序会向读卡器发送一个读的命令,读卡器接到这个命令后,开始从闪存卡读取数据,并同时把读到的数据放到USB的缓冲器中。这时,如果智能卡应用程序也要求请求智能卡,若读卡器接受到这个命令后立即执行,刚才需要传给文件系统的闪存卡上的数据就有可能被破坏掉。


发明内容
为克服公知技术在多读取指令下可能产生的信号混乱,本发明的读卡装置的整合型控制芯片与其数据存取方法的目的是在一个单芯片上集成闪存卡和智能卡的读写控制,其优选实施例可为一个使用单芯片进行读写控制的多功能读卡装置,还提供一种时序控制的机制以避免数据混乱发生,而可同时读写闪存卡和智能卡,并能降低多功能读卡装置的成本,增加产品的竞争力。
本发明揭示一种使用于读卡装置的整合型控制芯片,其中数据存取方法的优选实施例包括先接收一卡片格式的请求信号,接着根据该卡片格式的请求信号锁定信号量,并针对该卡片格式进行数据存取,然后在存取结束后释放信号量,在上述步骤中,若接收另一卡片格式的请求信号,则另一卡片格式先进入休眠状态并接着进行下列步骤当上述步骤结束后,另一卡片格式则进入唤醒状态,并根据另一卡片格式的请求信号锁定信号量,再针对另一卡片格式进行数据存取,接着在存取结束后释放信号量。
根据所述的多个卡片格式的数据存取方法,其中所述卡片格式以及该另一卡片格式的数据存取均由同一驱动程序所控制。
根据所述的多个卡片格式的数据存取方法,其中所述卡片格式是闪存卡格式以及智能卡格式的其中之一。
而本发明的执行上述数据存取方法的读卡装置中的整合型控制芯片的优选实施例包括有传输收发器,用以自外界存取数据;多个卡片格式接口,分别耦接至传输收发器,且用以分别处理卡片格式数据;串行接口引擎,用以将处理过的卡片格式数据转换为串行传输格式数据串行接口;以及缓冲器,用以缓冲串行传输格式数据。特别的是,上述各卡片格式接口上的数据传输是基于传输收发器的处理级别。
根据所述的整合型控制芯片,其中所述卡片格式包括闪存卡格式以及智能卡格式。
根据所述的整合型控制芯片,其中所述多个卡片格式的数据存取由操作系统的标准驱动程序所控制。
本发明还提供一种整合型控制芯片,适用于多个卡片格式的数据存取,包括一传输收发器,用以自外界存取数据;一卡片格式接口,分别耦接至该传输收发器,用以处理所述卡片格式的数据;一串行接口引擎,用以将处理过的所述卡片格式的数据转换为一串行传输格式的数据;以及一缓冲器,用以缓冲该串行传输格式的数据;其中,该卡片格式接口上的数据传输是基于该传输收发器的处理级别,且以一分时复用原理交替处理所述卡片格式的数据。
根据所述的整合型控制芯片,其中还包括一微处理单元,该微处理单元耦接至该串行接口引擎以及该缓冲器,并根据一固件依该分时复用原理产生该串行传输格式的数据。
根据所述的整合型控制芯片,其中所述卡片格式包括闪存卡格式以及智能卡格式。
根据所述的整合型控制芯片,其中所述的多个卡片格式的数据存取是由操作系统的标准驱动程序所控制。
本发明所揭示的读卡装置的整合型控制芯片与其数据存取方法,其目的在于在一个单芯片上整合闪存卡和智能卡的读写控制,解决公知技术在不同卡片的请求路径会造成控制芯片处理数据出现混乱的现象,所以,本发明提供一种时序控制的机制以避免这种混乱发生,并能降低多功能读卡装置的成本,增加产品的竞争力。



图1所示为公知技术的读卡装置示意图; 图2所示为本发明使用整合型控制芯片的读卡装置的实施例的架构示意图; 图3A与图3B为本发明中系统分别对闪存卡与智能卡的请求流程; 图4所示为本发明整合型控制芯片实施例的架构示意图; 图5所示为本发明整合型控制芯片的读卡装置的存取方法流程图。
其中,附图标记说明如下 101 闪存卡读卡器芯片 103 智能卡读卡器芯片 105 USB集线装置控制芯片 21 计算机系统 22 读卡装置 25 读卡装置 222 接口 221 整合型控制芯片 215 驱动程序 214 文件系统 213 SCSI层 215 驱动程序 212 智能卡应用程序 211 智能卡通信协议 41 计算机系统 42 读卡装置 421 传输收发器 425 整合型控制芯片 423 串行接口引擎 424 缓冲器 410 操作系统 411 驱动程序A 412 驱动程序B 427 接口A 428 接口B 401 闪存卡接口 402 智能卡接口 431 闪存卡 432 智能卡
具体实施例方式 本发明为读卡装置的整合型控制芯片与其数据存取方法,即在一个单芯片上集成两种或两种以上规格的存取控制,而以下都将以闪存卡(FlashMemory Card)和智能卡(Smart Card)的读写控制为实施例。
其优选实施例可为一种多功能读卡装置,主要特征为该读卡装置使用一个整合型控制芯片,结合一种时序控制的机制,除了可以避免数据混乱发生,且可同时读写闪存卡和智能卡,并能降低多功能读卡装置的成本,增加产品的竞争力。
计算机操作系统对闪存卡和智能卡的请求方式有所不同,闪存卡通过文件系统执行请求指令,如公知技术所述,智能卡的请求方式则是使用应用程序通过中间层软件(Middleware),若是基于PC/SC架构(PC/SC规格让不同厂商间的智能卡读取装置可相互读取不同的智能卡),中间层软件应该是智能卡提供商提供的驱动程序(driver),由此和操作系统厂商提供的资源管理程序和智能卡驱动程序来请求存取卡中的内容。
举例来说,若文件系统正要与闪存卡进行数据存取,系统即向读卡装置发送一个读写的命令,当读卡装置开始存取数据,且同时会把读到的数据放到存取接口的缓冲器,例如耦接于串行接口引擎(Serial Interface Engine,SIE)的缓冲器中,在此所述的串行接口引擎用以将处理过的各种卡片格式的数据转换为串行传输格式的数据,而缓冲器用以缓冲串行传输格式的数据。此时,也有另一个智能卡应用程序也要执行请求指令,若读卡装置接受到命令后立即执行请求,则两种信号同时请求的状况可能造成数据损毁。因此,本发明还在上述单芯片架构中提供时序控制的机制,以避免这种混乱发生。
在此提及产生数据混乱的原因在于智能卡驱动程序和请求闪存卡一般采用的USB大量储存装置的驱动程序是两个没有关联的独立的代码,它们和读卡装置交互数据是基于USB处理级别的,然而为了整合闪存卡与智能卡的读写控制于一单芯片上,并解决不同的请求路径会造成控制芯片处理数据出现混乱的问题,本发明所提供的单芯片读卡装置主要针对个别请求程序进行时序上的安排。本发明使用单个控制芯片进行各种实施例的闪存卡与智能卡的控制,其中第一实施例的架构请参阅图2所示的示意图。
请参阅图2,该实施例利用一驱动程序将计算机系统端对读卡装置的请求进行排列,只有一系列完整的操作完成,才允许下一个操作传递给读卡装置。如此,硬件设计上只需提供卡片格式接口,可为两个以上的多个接口,能分别耦接至传输收发器,以分别处理各种卡片格式的数据,其优选实施例可包括闪存卡与智能卡等两种接口(interface),以同时支持两种以上规格的卡片。而该闪存卡还可能因为不同规格而有不同的设计,包括并没有显示在图中的实施例CF(Compact Flash)接口,用以存取CF卡中的信号;SM/xD接口,用以存取SM/xD卡中的信号;MS(Memory Stick)接口,用以存取MS卡或是MS/MSpro/MSproDuo卡的信号;SD/MMC接口,用以存取SD/MMC卡的信号等,使利用本发明所提供的驱动程序同时对两种以上的设备的请求不会出现数据混乱的问题。
如图所示,本发明使用整合型控制芯片的读卡装置分为计算机系统21的部分与读卡装置22的部分,如果读卡装置25通过接口222存取一笔数据,此时读卡装置25内的整合型控制芯片221控制进行该数据的存取控制,并先将该USB总线中的数据暂存于一缓冲器(图中未显示)中,用以缓冲串行传输格式的数据,之后由计算机系统21中的驱动程序215接手,通过缓冲器中的数据判断其数据格式,其中优选实施例由此判断是闪存格式还是智能卡格式,让操作系统(OS)部分能顺利读取读卡装置25内卡片的数据。此时如果判断为闪存格式,则由文件系统214通过SCSI层213和驱动程序215向读卡装置25发送一个读/写的命令,当读卡装置25接到这个命令后,开始从闪存卡读取数据或写入数据,此时所读写的数据都会先暂存到USB装置中的缓冲器(如上述缓冲器)中。若驱动程序215判断该数据为智能卡的数据格式,则由相关智能卡应用程序212利用标准的PC/SC通信协议211,通过驱动程序215对读卡装置25进行数据存取。
依据上述本发明的架构示意图,所提供的整合型控制芯片将利用请求程序释放(release)或锁定(lock)信号量(semaphore)的判断作为此控制芯片对不同卡片发出请求的依据。若本发明所揭示的读卡装置支持至少第一卡片与第二卡片的数据格式,当计算机系统发出第一卡片的请求(时,即锁定一信号量,而当完成第一卡片的数据存取后,即释放该信号量;同时,在信号量已被锁定的状态下,系统也对第二卡片发出请求,该请求程序将进入休眠状态,当第一卡片的数据存取完成后而该信号量也被释放后,第二卡片的请求程序即被唤醒。通过上述读卡装置中使用的整合型控制芯片配合锁定、释放、休眠与唤醒等手段的时序控制的机制,以避免所述多种卡片间存取时的数据混乱现象。
举例来说,当文件系统需要从闪存卡读取一笔数据时,同时智能卡应用程序也向智能卡发送一个APDU(Application Protocol Data Unit,应用程序通信协议数据单位)请求,表达需要向智能卡进行存取,但是此时文件系统已经对闪存卡锁定上述的信号量,智能卡应用程序对智能卡的请求程序将会进入休眠状态(sleep),等待闪存卡释放信号量,才能进行资源的占用。上述APDU是读卡装置与智能卡的通信协议,所以只要将APDU信号传送给读卡装置,读卡装置就可以跟卡片做通信;而信号量的占用与释放是由本发明所提供的读卡装置的驱动程序处理,其流程如图3A所示。
图3A的流程分为本发明所提供的整合型控制芯片分别对第一卡片(闪存卡)和第二卡片(智能卡)的请求流程,开始时,控制芯片先针对第一卡片发出或接收请求信号 此例中第一卡片格式即为闪存卡格式、第二卡片格式即为智能卡格式,当文件系统通过驱动程序对闪存卡(第一卡片)发出要进行存取的请求信号时,此时在步骤S301读卡装置的整合型控制芯片即接收该闪存卡格式的请求信号;接着,在步骤S303读卡装置的整合性控制芯片通过驱动程序针对此请求程序锁定信号量;因为完成锁定信号量,在步骤S305则可对闪存卡进行数据存取动作,如果用在USB接口的实施例中,即使用符合USB规格的传输协议进行数据的存取,主要包括发出读取/写入指令、进行读取/写入闪存卡的数据与响应读取/写入状态等;在数据存取完成后,在步骤S307即释放该信号量。
另一方面,在进行闪存卡存取动作的同时,智能卡(第二卡片)应用程序对智能卡发出请求信号,此时在步骤S309由上述读卡装置的控制芯片接收该请求信号,也要首先锁定上述的信号量,但是此信号量已经被对上述流程中的闪存卡的请求程序占用,因此,在步骤S311读卡装置的驱动程序则使智能卡的请求程序进入休眠状态,并等待信号量的释放;当上述对闪存卡的存取完成后,操作系统得知步骤S307中所释放的信息,在步骤S313即唤醒智能卡应用程序对智能卡的请求程序,即由休眠状态进入唤醒状态;在步骤S315由读卡装置的整合型控制芯片通过驱动程序对该智能卡的请求程序锁定信号量;之后,在步骤S317针对智能卡进行数据存取,即进行符合智能卡APDU通信协议的数据交换程序,包括智能卡与智能卡应用程序间传递的APDU指令(APDU command)与响应(APDU response);在完成此请求程序与存取动作后,在步骤S319控制芯片即释放该信号量,以释放所占用的USB总线相关资源。
在上述各卡片格式(一卡片格式与另一卡片格式,并不限于上述实施例)与系统间的信号传递与处理皆通过读卡装置中的整合型控制芯片完成,且其中数据存取皆通过同一驱动程序所控制,而各卡片通过文件系统进行数据存取,如闪存卡格式,或可通过一专用应用程序经由中间层软件进行数据存取,如智能卡格式。
在实际应用中,为保证由闪存卡或智能卡中所获取到的数据无丢失包或是错误的传递,可在SIE和数据获取的装置(如计算机系统、读卡装置或其它外围装置)之间设立先进先出(FIFO)型式的存储器,以便对数据进行暂存作业。
另一实施例如图3B所示,第一卡片与第二卡片的请求程序调换,先由智能卡(第二卡片)应用程序通过驱动程序对读卡装置的智能卡进行请求,而数据存取期间有启动闪存卡(第一卡片)的请求,本发明实施例的流程如下 一开始,智能卡应用程序先对智能卡发出请求信号,此时在步骤S331读卡装置的整合型控制芯片接收针对上述卡片格式的请求信号;在步骤S333也要首先锁定上述的信号量,故读卡装置的控制芯片即根据该卡片格式的请求信号通过驱动程序对请求程序锁定信号量;之后,在步骤S335即进行符合智能卡APDU通信协议的数据交换程序,包括智能卡与智能卡应用程序间传递APDU指令与响应;在完成此请求程序与存取动作后,在步骤S337即释放信号量,以释放所占用的USB总线相关资源。
同时,文件系统也通过驱动程序对闪存卡发出要进行存取的请求信号,同理,在步骤S339读卡装置的整合型控制芯片接收该请求信号;之后,在步骤S341读卡装置的控制芯片通过驱动程序针对闪存卡的请求程序要锁定上述被智能卡请求程序占用的信号量,但是因为信号量被占用,故读卡装置的驱动程序则先使闪存卡的请求程序进入休眠状态,并等待信号量的释放;当上述对智能卡的存取完成后,在步骤S343操作系统得知步骤S337已释放信号量,即唤醒文件系统通过驱动程序对闪存卡的请求程序,即由休眠状态进入唤醒状态;并在步骤S345由读卡装置的控制芯片通过驱动程序对该闪存卡的请求程序锁定该信号量;因为完成锁定信号量,在步骤S347则可对闪存卡进行存取动作,如进行符合USB规格的传输协议进行数据的存取;在数据存取完成后,在步骤S349即释放该信号量。
上述方式是利用一个读卡装置的控制芯片通过驱动程序先后完成两个不同接口与卡片的请求程序,已避免公知技术利用两个驱动程序的请求操作需要一个到多个转换(transfer)时,读卡装置可能在还没有完成一个操作的情况下接收到另一个驱动程序发送过来的其它命令时产生的错误。
上述第一实施例是在操作系统安装专用的驱动程序,针对不同卡片的信号进行信号的判断,并且进行读写程序的控管。
而利用本发明读卡装置的整合型控制芯片与其数据存取方法还有第二实施例,其硬件只需提供一个接口,但针对两种卡片设计两个逻辑接口(logicinterface),结合其中整合型控制芯片的固件(firmware)方案,针对读卡装置所要读取的卡片信号进行判读,决定所要使用的逻辑接口之一。
在该实施例中,本发明利用整合型控制芯片的控制芯片与其中的判断机制形成一固件形式的解决方案,通过提供两个逻辑接口来整合闪存卡和智能卡读卡装置,其中一个接口(接口A)负责闪存卡的读写,另外一个接口(接口B)负责智能卡的读写。在此架构下,整合型控制芯片对读写要求的处理方式同时也依赖于USB主机系统与双接口的设备通信的机制。主机系统对不同接口上的数据传输是基于USB处理(transaction)级别的,因此在读卡装置端,总是以该处理为最小处理单元,比如在处理接口A的处理过程中,收到接口B的请求,那么读卡装置(包括有整合型控制芯片)会设法屏蔽接口B的请求,而等到接口A的处理完成以后,再去处理接口B的请求。
采用这种整合型控制芯片架构与传统的多控制芯片架构相比,需要解决的问题是整合型控制芯片对来自不同卡片的读写要求的处理如何做到最佳化,使两个接口分享一套硬件资源,不同于公知技术使用两套硬件的方式,本发明虽用一套硬件,但是采用分时复用(Time Division Multiplexing)的技术交替处理不同卡片的读写要求,上述各卡片格式接口(A,B)上的数据传输根据传输收发器的处理级别,且以该分时复用原理交替处理各卡片格式的数据,并且还可包括一耦接至串行接口引擎以及缓冲器的微处理单元(在图中未显示),并根据固件依该分时复用原理产生串行传输格式的数据。其采用的单一装置双逻辑接口的架构示意图如图4所示。
图4所示的实施例将整个系统分为计算机系统41与读卡装置42,其中读卡装置42的优选实施例为USB读卡装置,由传输收发器(如USB收发器)421连接计算机系统41,计算机系统41即通过该传输收发器421自外界存取数据,并达到存取各式卡片的目的。读卡装置42利用一整合型控制芯片425控制各式卡片格式的数据存取控制与时序控制,该整合型控制芯片425除包括连接计算机系统41的传输收发器421外,还至少包括有串行接口引擎(SIE)423、缓冲器424,并包括由本发明利用整合型控制芯片425虚拟出的逻辑接口A(427)与接口B(428),两个逻辑接口A,B分别对应连接实体的闪存卡接口401与智能卡接口402。
当读卡装置42存取外部如智能卡432、闪存卡431的数据,读卡装置42内的整合型控制芯片425则利用两种逻辑接口作为智能卡432或是闪存卡431的读写接口,因为两个逻辑接口分享一套硬件资源,故需要使进行中的接口在数据存取时,需引用一屏蔽手段(screening),当其中之一逻辑接口在进行数据存取时,该整合型控制芯片即对另一个逻辑接口进行屏蔽,当运行中的接口完成存取动作后,控制芯片425才会再处理通过另一个等待(屏蔽)中的接口所请求的程序。
当进行请求程序时,由闪存卡431或智能卡432所存取(读/写)的数据(请求信号或是数据)会先储存于设置在整合型控制芯片425中的缓冲器424中,用以缓冲串行传输格式的数据,再经由串行接口引擎423则将处理过的卡片格式的数据转换为串行传输格式的数据,再传送至读卡装置42中,整合型控制芯片425针对暂存于缓冲器424的数据判读,根据数据是由闪存卡431或是智能卡432所传递,以判断其中是由接口A(427)或接口B(428)通过传输收发器421传递至计算机系统41中,并由其中操作系统410接收。各闪存卡431或智能卡432上的数据传输根据传输收发器421的处理级别,以分时复用原理交替处理各卡片格式的数据。
特别的是,因不同的卡片通过不同的逻辑接口传递,而可以轻易针对不同的封包判断是闪存卡或是智能卡的请求程序,再使用操作系统410中支持的USB驱动程序(如驱动程序A(411)或驱动程序B(412))分别进行数据存取。因为对USB装置的驱动可为标准的驱动方式,故本发明所揭示的分别处理来自接口A与接口B的数据的驱动程序A(411)与驱动程序B(412)可为操作系统所内建的标准驱动程序,所以本发明第二实施例所提供的方案并不需要额外安装的驱动程序。
另一方面是由操作系统410主动通过驱动程序A(411)或驱动程序B(412)对读卡装置42进行请求程序,也通过传输收发器421将数据分别通过整合型控制芯片中的逻辑接口A(427)或接口B(428)传送至串行接口引擎423,并暂存于缓冲器424中,以进行对各卡片的读出或写入程序。
同理于第一实施例,若数据格式为一闪存格式,则由计算机系统中的文件系统通过一SCSI层使用该所对应的驱动程序(A或B)向读卡装置发出请求;而若由控制芯片判断数据格式为一智能卡格式,则由智能卡应用程序利用标准的PC/SC通信协议,通过所对应的驱动程序(A或B)对该读卡装置发出请求。并且,闪存卡进行符合USB规格的传输协议的数据存取,而智能卡应用程序则需向智能卡发出符合APDU通信协议的信号进行数据存取。
第二实施例所揭示的固件(如使用整合型控制芯片结合时序控制)与硬件(如读卡装置)间的信号处理如图5所示的流程,流程图分为固件部分与硬件部分,分别使用了一些判断机制作为相互通信的方式。
其中,硬件部分定义了两个标记(Flag),用以控制USB接收两个接口之一的数据,流程使用ccid_en标记(1或0)控制是否接收来自智能卡对应的接口的数据;而mass_storage_en标记则控制是否接收来自闪存卡所对应的接口的数据。
步骤一开始,在步骤S501硬件部分判断是否接收数据包进读卡装置中,该步骤为一直处于判断是否有包进来的循环(loop),若为否,表示仍未接收到封包,则继续此判断步骤;若为是,表示有封包进来,在步骤S503则对该读卡装置的控制芯片发出中断(Interrupt)请求; 当控制芯片接收到该中断请求,在步骤S505由固件部分首先判断是否是一个短包(short packet)中断,该步骤也为一个处于判断与等待中断信号的循环,若并未判断为短包中断的时候(否的情况),仍处于循环中;若判断该中断请求为短包中断(是的情况),在步骤S507则表示USB装置(本发明实施例为读卡装置)由计算机系统中接收指令,而固件部分可以通过一个auto_clr_en标记选择由固件部分或是硬件部分来处理ccid_en标记和mass_storage_en标记; 若auto_clr_en标记有被设定(是的情况),如设auto_clr_en标记为1,步骤进行到硬件部分,则是以硬件部分处理来自智能卡与闪存卡的数据;若为否,则是选择固件部分处理来自智能卡与闪存卡的数据。然而,因为硬件的效率比较高,所以本发明的优选实施例会把上述的auto_clr_en标记设为,使来自智能卡与闪存卡的数据由硬件处理; 然后,在步骤S509硬件部分将根据USB封包的端点(endpoint)的usb_cur_if标记(ccid_if/mass_storage_if)判断出接口的使用是ccid_if标记还是mass_storage_if标记,分别表示是否接收来自智能卡对应的接口的数据或是来自闪存卡所对应的接口的数据; 此例是以usb_cur_if标记所传递的信息判断目前是由智能卡或是闪存卡使用读卡装置的资源,故经步骤S509的判断后,可以分为在步骤S513ccid_en标记为1、mass_storage_en标记为0,此为目前是接收对应智能卡的接口的数据封包;与在步骤S515ccid_en标记为0、mass_storage_en标记为1的状态,此为目前是接收对应闪存卡的接口的数据封包; 若步骤S507所设定的auto_clr_en标记是指令固件部分处理所接收的数据,如设auto_clr_en标记为0,同理,在步骤S511固件部分将根据USB封包的端点判断出接口的使用是ccid_if标记还是mass_storage_if标记,分别表示是否接收来自智能卡对应的接口的数据或是来自闪存卡所对应的接口的数据; 经步骤S511的判断后,通过一屏蔽手段,在其中一逻辑接口进行数据存取时,即对另一个逻辑接口进行屏蔽 同样可以分为在步骤S519ccid_en标记为1、mass_storage_en标记为0,为目前是接收对应智能卡的接口的数据;与在步骤S517ccid_en标记为0、mass_storage_en标记为1的状态,为目前是接收对应闪存卡的接口的数据; 之后,在步骤S521进行转换(transfer)步骤,当其中之一逻辑接口所对应的驱动程序完成数据存取后,即再进行屏蔽手段,而转换至另一逻辑接口所对应的数据存取步骤,即针对操作系统内建的两种驱动程序要完成一个完整的请求操作均需要一个到多个转换,本发明实施例即利用ccid_en标记与mass_storage_en标记所表达的信息进行请求程序的转换。即,若上述的流程最后所设定的状态为ccid_en标记为1、mass_storage_en标记为0,表示目前是接收对应智能卡的接口的数据,则控制芯片通过传输收发器将闪存卡对应的接口上的数据屏蔽掉;若为ccid_en标记为0、mass_storage_en标记为1的状态,表示目前是接收对应闪存卡的接口的数据,则控制芯片再通过传输收发器将智能卡对应的接口上的数据屏蔽掉,使两者所发出的请求程序不会混乱; 最后,当固件处理一个接口的请求后,在步骤S523会把上述ccid_en标记与mass_storage_en标记设为1,并在步骤S525进入闲置(idle)状态,等待如开始的循环判断步骤,由硬件部分等待接收下一笔数据包。
综上所述,本发明所揭示的读卡装置的整合型控制芯片与其数据存取方法,其目的在于在一个单芯片上整合闪存卡和智能卡的读写控制,解决公知技术在不同卡片的请求路径会造成控制芯片处理数据出现混乱的现象,所以,本发明提供一种时序控制的机制以避免这种混乱发生,并能降低多功能读卡装置的成本,增加产品的竞争力。
以上所述仅为本发明的优选实施例,并非以此限制本发明的保护范围,所以凡运用本发明说明书及附图内容所做的等效结构变化,均同理包含于本发明的范围内。
权利要求
1. 一种多个卡片格式的数据存取方法,适用于一整合型控制芯片的读卡装置,其特征在于,包括下列步骤
接收一卡片格式的请求信号;
根据该卡片格式的请求信号锁定信号量;
针对该卡片格式进行数据存取;以及
存取结束后释放信号量;
其中,在上述步骤间若接收另一卡片格式的请求信号,则该另一卡片格式先进入一休眠状态并包括下列步骤
待上述步骤结束后该另一卡片格式进入一唤醒状态;
根据该另一卡片格式的请求信号锁定信号量;
针对该另一卡片格式进行数据存取;以及
存取结束后释放信号量。
2. 如权利要求1所述的多个卡片格式的数据存取方法,其特征在于,所述卡片格式以及该另一卡片格式的数据存取均由同一驱动程序所控制。
3. 如权利要求1所述的多个卡片格式的数据存取方法,其特征在于,所述卡片格式是闪存卡格式以及智能卡格式的其中之一。
4. 一种整合型控制芯片,适用于多个卡片格式的数据存取,其特征在于,包括
一传输收发器,用以自外界存取数据;
多个卡片格式接口,分别耦接至该传输收发器,用以分别处理所述卡片格式的数据;
一串行接口引擎,用以将处理过的所述卡片格式的数据转换为一串行传输格式的数据;以及
一缓冲器,用以缓冲该串行传输格式的数据;
其中,所述卡片格式接口上的数据传输是基于该传输收发器的处理级别。
5. 如权利要求4所述的整合型控制芯片,其特征在于,所述卡片格式包括闪存卡格式以及智能卡格式。
6. 如权利要求4所述的整合型控制芯片,其特征在于,所述多个卡片格式的数据存取由操作系统的标准驱动程序所控制。
7. 一种整合型控制芯片,适用于多个卡片格式的数据存取,其特征在于,包括
一传输收发器,用以自外界存取数据;
一卡片格式接口,分别耦接至该传输收发器,用以处理所述卡片格式的数据;
一串行接口引擎,用以将处理过的所述卡片格式的数据转换为一串行传输格式的数据;以及
一缓冲器,用以缓冲该串行传输格式的数据;
其中,该卡片格式接口上的数据传输是基于该传输收发器的处理级别,且以一分时复用原理交替处理所述卡片格式的数据。
8. 如权利要求7所述的整合型控制芯片,其特征在于,还包括一微处理单元,该微处理单元耦接至该串行接口引擎以及该缓冲器,并根据一固件依该分时复用原理产生该串行传输格式的数据。
9. 如权利要求7所述的整合型控制芯片,其特征在于,所述卡片格式包括闪存卡格式以及智能卡格式。
10. 如权利要求7所述的整合型控制芯片,其特征在于,所述的多个卡片格式的数据存取是由操作系统的标准驱动程序所控制。
全文摘要
本发明提供一种读卡装置的整合型控制芯片与其数据存取方法,其中所揭示的整合型控制芯片的优选实施例包括有传输收发器,用以自外界存取数据;一或多个卡片格式接口,分别耦接至传输收发器,用以分别处理各卡片格式数据;串行接口引擎,用以将处理过的卡片格式的数据转换为串行传输格式数据;以及缓冲器,用以缓冲串行传输格式数据,其中,所述的各种卡片格式接口上的数据传输是基于传输收发器的处理级别。本发明的读卡装置的整合型控制芯片及其数据存取方法是在一个单芯片上整合多个卡片格式的数据存取,如使用于闪存卡和智能卡的存取控制,并通过时序控制避免不同驱动程序或接口造成处理数据出现混乱的现象。
文档编号G06F13/38GK101236539SQ20071000834
公开日2008年8月6日 申请日期2007年1月29日 优先权日2007年1月29日
发明者炜 王, 俊 陶, 杨章顺 申请人:瑞昱半导体股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1