專利名稱:讀卡裝置的整合型控制芯片與其數(shù)據(jù)存取方法
技術(shù)領(lǐng)域:
本發(fā)明關(guān)于一種讀卡裝置的整合型控制芯片與其數(shù)據(jù)存取方法,特別關(guān)于使用單芯片同時(shí)控制兩種或兩種以上規(guī)格的讀卡裝置與其存取方法。
背景技術(shù):
傳統(tǒng)上,能夠同時(shí)兼容閃存卡(Flash Memory card)和智能卡(Smart card)的讀卡器都是采用多個(gè)控制芯片。典型的架構(gòu)如圖1所示的讀卡裝置示意圖,一個(gè)閃存卡讀卡器芯片101和一個(gè)智能卡讀卡器芯片103,另外再加上一個(gè)連接外部系統(tǒng)并控制USB接口數(shù)據(jù)流的USB集線裝置(hub)控制芯片105,組成了一個(gè)多功能的讀卡器。這種讀卡器雖然實(shí)現(xiàn)起來復(fù)雜度比較低,但因其較高的生產(chǎn)成本會逐漸失去市場競爭力。
如圖1所示,公知技術(shù)為了兼容多種形式的卡,使用多個(gè)控制芯片以同時(shí)兼容不同的卡片,因?yàn)椴僮飨到y(tǒng)對各卡片的請求(request)方式有所不同,故需要不同的控制芯片,如果需要支持兩種或兩種以上的卡片,則需要兩套或兩套以上完全不同的硬件來實(shí)現(xiàn),如此便需要較高的生產(chǎn)成本。
在公知技術(shù)中,不論是整合型芯片還是多個(gè)控制器的方式,操作系統(tǒng)(Operation System)對閃存卡和智能卡的請求方式有所不同 (1)閃存卡是通過文件系統(tǒng)(File System)進(jìn)行請求,通常受控于操作系統(tǒng)內(nèi)標(biāo)準(zhǔn)的驅(qū)動程序; (2)智能卡的請求方式則是使用專用的應(yīng)用程序,通過中間層軟件(Middleware),如果是基于PC/SC架構(gòu),中間層軟件如同智能卡服務(wù)提供商(Service Provider)提供的驅(qū)動程序(driver),由此和操作系統(tǒng)廠商提供的資源管理程序(Resource Manager)共同請求智能卡中的內(nèi)容。
智能卡的驅(qū)動程序和閃存卡一般采用的大量儲存裝置的驅(qū)動程序(USBMass Storage driver)是兩個(gè)沒有關(guān)聯(lián)的獨(dú)立的代碼,它們和讀卡器的交互數(shù)據(jù)是基于USB處理(transaction)級別的。兩種驅(qū)動程序完成一個(gè)完整的請求操作均需要一個(gè)至多個(gè)轉(zhuǎn)換(transfer),讀卡器完全有可能在還沒有完成一個(gè)操作的情況下接收到另一個(gè)驅(qū)動程序發(fā)送過來的其它命令。
因此,不同的請求路徑會造成控制芯片處理數(shù)據(jù)出現(xiàn)混亂。例如,文件系統(tǒng)需要從閃存卡讀一筆數(shù)據(jù),此程序會向讀卡器發(fā)送一個(gè)讀的命令,讀卡器接到這個(gè)命令后,開始從閃存卡讀取數(shù)據(jù),并同時(shí)把讀到的數(shù)據(jù)放到USB的緩沖器中。這時(shí),如果智能卡應(yīng)用程序也要求請求智能卡,若讀卡器接受到這個(gè)命令后立即執(zhí)行,剛才需要傳給文件系統(tǒng)的閃存卡上的數(shù)據(jù)就有可能被破壞掉。
發(fā)明內(nèi)容
為克服公知技術(shù)在多讀取指令下可能產(chǎn)生的信號混亂,本發(fā)明的讀卡裝置的整合型控制芯片與其數(shù)據(jù)存取方法的目的是在一個(gè)單芯片上集成閃存卡和智能卡的讀寫控制,其優(yōu)選實(shí)施例可為一個(gè)使用單芯片進(jìn)行讀寫控制的多功能讀卡裝置,還提供一種時(shí)序控制的機(jī)制以避免數(shù)據(jù)混亂發(fā)生,而可同時(shí)讀寫閃存卡和智能卡,并能降低多功能讀卡裝置的成本,增加產(chǎn)品的競爭力。
本發(fā)明揭示一種使用于讀卡裝置的整合型控制芯片,其中數(shù)據(jù)存取方法的優(yōu)選實(shí)施例包括先接收一卡片格式的請求信號,接著根據(jù)該卡片格式的請求信號鎖定信號量,并針對該卡片格式進(jìn)行數(shù)據(jù)存取,然后在存取結(jié)束后釋放信號量,在上述步驟中,若接收另一卡片格式的請求信號,則另一卡片格式先進(jìn)入休眠狀態(tài)并接著進(jìn)行下列步驟當(dāng)上述步驟結(jié)束后,另一卡片格式則進(jìn)入喚醒狀態(tài),并根據(jù)另一卡片格式的請求信號鎖定信號量,再針對另一卡片格式進(jìn)行數(shù)據(jù)存取,接著在存取結(jié)束后釋放信號量。
根據(jù)所述的多個(gè)卡片格式的數(shù)據(jù)存取方法,其中所述卡片格式以及該另一卡片格式的數(shù)據(jù)存取均由同一驅(qū)動程序所控制。
根據(jù)所述的多個(gè)卡片格式的數(shù)據(jù)存取方法,其中所述卡片格式是閃存卡格式以及智能卡格式的其中之一。
而本發(fā)明的執(zhí)行上述數(shù)據(jù)存取方法的讀卡裝置中的整合型控制芯片的優(yōu)選實(shí)施例包括有傳輸收發(fā)器,用以自外界存取數(shù)據(jù);多個(gè)卡片格式接口,分別耦接至傳輸收發(fā)器,且用以分別處理卡片格式數(shù)據(jù);串行接口引擎,用以將處理過的卡片格式數(shù)據(jù)轉(zhuǎn)換為串行傳輸格式數(shù)據(jù)串行接口;以及緩沖器,用以緩沖串行傳輸格式數(shù)據(jù)。特別的是,上述各卡片格式接口上的數(shù)據(jù)傳輸是基于傳輸收發(fā)器的處理級別。
根據(jù)所述的整合型控制芯片,其中所述卡片格式包括閃存卡格式以及智能卡格式。
根據(jù)所述的整合型控制芯片,其中所述多個(gè)卡片格式的數(shù)據(jù)存取由操作系統(tǒng)的標(biāo)準(zhǔn)驅(qū)動程序所控制。
本發(fā)明還提供一種整合型控制芯片,適用于多個(gè)卡片格式的數(shù)據(jù)存取,包括一傳輸收發(fā)器,用以自外界存取數(shù)據(jù);一卡片格式接口,分別耦接至該傳輸收發(fā)器,用以處理所述卡片格式的數(shù)據(jù);一串行接口引擎,用以將處理過的所述卡片格式的數(shù)據(jù)轉(zhuǎn)換為一串行傳輸格式的數(shù)據(jù);以及一緩沖器,用以緩沖該串行傳輸格式的數(shù)據(jù);其中,該卡片格式接口上的數(shù)據(jù)傳輸是基于該傳輸收發(fā)器的處理級別,且以一分時(shí)復(fù)用原理交替處理所述卡片格式的數(shù)據(jù)。
根據(jù)所述的整合型控制芯片,其中還包括一微處理單元,該微處理單元耦接至該串行接口引擎以及該緩沖器,并根據(jù)一固件依該分時(shí)復(fù)用原理產(chǎn)生該串行傳輸格式的數(shù)據(jù)。
根據(jù)所述的整合型控制芯片,其中所述卡片格式包括閃存卡格式以及智能卡格式。
根據(jù)所述的整合型控制芯片,其中所述的多個(gè)卡片格式的數(shù)據(jù)存取是由操作系統(tǒng)的標(biāo)準(zhǔn)驅(qū)動程序所控制。
本發(fā)明所揭示的讀卡裝置的整合型控制芯片與其數(shù)據(jù)存取方法,其目的在于在一個(gè)單芯片上整合閃存卡和智能卡的讀寫控制,解決公知技術(shù)在不同卡片的請求路徑會造成控制芯片處理數(shù)據(jù)出現(xiàn)混亂的現(xiàn)象,所以,本發(fā)明提供一種時(shí)序控制的機(jī)制以避免這種混亂發(fā)生,并能降低多功能讀卡裝置的成本,增加產(chǎn)品的競爭力。
圖1所示為公知技術(shù)的讀卡裝置示意圖; 圖2所示為本發(fā)明使用整合型控制芯片的讀卡裝置的實(shí)施例的架構(gòu)示意圖; 圖3A與圖3B為本發(fā)明中系統(tǒng)分別對閃存卡與智能卡的請求流程; 圖4所示為本發(fā)明整合型控制芯片實(shí)施例的架構(gòu)示意圖; 圖5所示為本發(fā)明整合型控制芯片的讀卡裝置的存取方法流程圖。
其中,附圖標(biāo)記說明如下 101 閃存卡讀卡器芯片 103 智能卡讀卡器芯片 105 USB集線裝置控制芯片 21 計(jì)算機(jī)系統(tǒng) 22 讀卡裝置 25 讀卡裝置 222 接口 221 整合型控制芯片 215 驅(qū)動程序 214 文件系統(tǒng) 213 SCSI層 215 驅(qū)動程序 212 智能卡應(yīng)用程序 211 智能卡通信協(xié)議 41 計(jì)算機(jī)系統(tǒng) 42 讀卡裝置 421 傳輸收發(fā)器 425 整合型控制芯片 423 串行接口引擎 424 緩沖器 410 操作系統(tǒng) 411 驅(qū)動程序A 412 驅(qū)動程序B 427 接口A 428 接口B 401 閃存卡接口 402 智能卡接口 431 閃存卡 432 智能卡
具體實(shí)施例方式 本發(fā)明為讀卡裝置的整合型控制芯片與其數(shù)據(jù)存取方法,即在一個(gè)單芯片上集成兩種或兩種以上規(guī)格的存取控制,而以下都將以閃存卡(FlashMemory Card)和智能卡(Smart Card)的讀寫控制為實(shí)施例。
其優(yōu)選實(shí)施例可為一種多功能讀卡裝置,主要特征為該讀卡裝置使用一個(gè)整合型控制芯片,結(jié)合一種時(shí)序控制的機(jī)制,除了可以避免數(shù)據(jù)混亂發(fā)生,且可同時(shí)讀寫閃存卡和智能卡,并能降低多功能讀卡裝置的成本,增加產(chǎn)品的競爭力。
計(jì)算機(jī)操作系統(tǒng)對閃存卡和智能卡的請求方式有所不同,閃存卡通過文件系統(tǒng)執(zhí)行請求指令,如公知技術(shù)所述,智能卡的請求方式則是使用應(yīng)用程序通過中間層軟件(Middleware),若是基于PC/SC架構(gòu)(PC/SC規(guī)格讓不同廠商間的智能卡讀取裝置可相互讀取不同的智能卡),中間層軟件應(yīng)該是智能卡提供商提供的驅(qū)動程序(driver),由此和操作系統(tǒng)廠商提供的資源管理程序和智能卡驅(qū)動程序來請求存取卡中的內(nèi)容。
舉例來說,若文件系統(tǒng)正要與閃存卡進(jìn)行數(shù)據(jù)存取,系統(tǒng)即向讀卡裝置發(fā)送一個(gè)讀寫的命令,當(dāng)讀卡裝置開始存取數(shù)據(jù),且同時(shí)會把讀到的數(shù)據(jù)放到存取接口的緩沖器,例如耦接于串行接口引擎(Serial Interface Engine,SIE)的緩沖器中,在此所述的串行接口引擎用以將處理過的各種卡片格式的數(shù)據(jù)轉(zhuǎn)換為串行傳輸格式的數(shù)據(jù),而緩沖器用以緩沖串行傳輸格式的數(shù)據(jù)。此時(shí),也有另一個(gè)智能卡應(yīng)用程序也要執(zhí)行請求指令,若讀卡裝置接受到命令后立即執(zhí)行請求,則兩種信號同時(shí)請求的狀況可能造成數(shù)據(jù)損毀。因此,本發(fā)明還在上述單芯片架構(gòu)中提供時(shí)序控制的機(jī)制,以避免這種混亂發(fā)生。
在此提及產(chǎn)生數(shù)據(jù)混亂的原因在于智能卡驅(qū)動程序和請求閃存卡一般采用的USB大量儲存裝置的驅(qū)動程序是兩個(gè)沒有關(guān)聯(lián)的獨(dú)立的代碼,它們和讀卡裝置交互數(shù)據(jù)是基于USB處理級別的,然而為了整合閃存卡與智能卡的讀寫控制于一單芯片上,并解決不同的請求路徑會造成控制芯片處理數(shù)據(jù)出現(xiàn)混亂的問題,本發(fā)明所提供的單芯片讀卡裝置主要針對個(gè)別請求程序進(jìn)行時(shí)序上的安排。本發(fā)明使用單個(gè)控制芯片進(jìn)行各種實(shí)施例的閃存卡與智能卡的控制,其中第一實(shí)施例的架構(gòu)請參閱圖2所示的示意圖。
請參閱圖2,該實(shí)施例利用一驅(qū)動程序?qū)⒂?jì)算機(jī)系統(tǒng)端對讀卡裝置的請求進(jìn)行排列,只有一系列完整的操作完成,才允許下一個(gè)操作傳遞給讀卡裝置。如此,硬件設(shè)計(jì)上只需提供卡片格式接口,可為兩個(gè)以上的多個(gè)接口,能分別耦接至傳輸收發(fā)器,以分別處理各種卡片格式的數(shù)據(jù),其優(yōu)選實(shí)施例可包括閃存卡與智能卡等兩種接口(interface),以同時(shí)支持兩種以上規(guī)格的卡片。而該閃存卡還可能因?yàn)椴煌?guī)格而有不同的設(shè)計(jì),包括并沒有顯示在圖中的實(shí)施例CF(Compact Flash)接口,用以存取CF卡中的信號;SM/xD接口,用以存取SM/xD卡中的信號;MS(Memory Stick)接口,用以存取MS卡或是MS/MSpro/MSproDuo卡的信號;SD/MMC接口,用以存取SD/MMC卡的信號等,使利用本發(fā)明所提供的驅(qū)動程序同時(shí)對兩種以上的設(shè)備的請求不會出現(xiàn)數(shù)據(jù)混亂的問題。
如圖所示,本發(fā)明使用整合型控制芯片的讀卡裝置分為計(jì)算機(jī)系統(tǒng)21的部分與讀卡裝置22的部分,如果讀卡裝置25通過接口222存取一筆數(shù)據(jù),此時(shí)讀卡裝置25內(nèi)的整合型控制芯片221控制進(jìn)行該數(shù)據(jù)的存取控制,并先將該USB總線中的數(shù)據(jù)暫存于一緩沖器(圖中未顯示)中,用以緩沖串行傳輸格式的數(shù)據(jù),之后由計(jì)算機(jī)系統(tǒng)21中的驅(qū)動程序215接手,通過緩沖器中的數(shù)據(jù)判斷其數(shù)據(jù)格式,其中優(yōu)選實(shí)施例由此判斷是閃存格式還是智能卡格式,讓操作系統(tǒng)(OS)部分能順利讀取讀卡裝置25內(nèi)卡片的數(shù)據(jù)。此時(shí)如果判斷為閃存格式,則由文件系統(tǒng)214通過SCSI層213和驅(qū)動程序215向讀卡裝置25發(fā)送一個(gè)讀/寫的命令,當(dāng)讀卡裝置25接到這個(gè)命令后,開始從閃存卡讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù),此時(shí)所讀寫的數(shù)據(jù)都會先暫存到USB裝置中的緩沖器(如上述緩沖器)中。若驅(qū)動程序215判斷該數(shù)據(jù)為智能卡的數(shù)據(jù)格式,則由相關(guān)智能卡應(yīng)用程序212利用標(biāo)準(zhǔn)的PC/SC通信協(xié)議211,通過驅(qū)動程序215對讀卡裝置25進(jìn)行數(shù)據(jù)存取。
依據(jù)上述本發(fā)明的架構(gòu)示意圖,所提供的整合型控制芯片將利用請求程序釋放(release)或鎖定(lock)信號量(semaphore)的判斷作為此控制芯片對不同卡片發(fā)出請求的依據(jù)。若本發(fā)明所揭示的讀卡裝置支持至少第一卡片與第二卡片的數(shù)據(jù)格式,當(dāng)計(jì)算機(jī)系統(tǒng)發(fā)出第一卡片的請求(時(shí),即鎖定一信號量,而當(dāng)完成第一卡片的數(shù)據(jù)存取后,即釋放該信號量;同時(shí),在信號量已被鎖定的狀態(tài)下,系統(tǒng)也對第二卡片發(fā)出請求,該請求程序?qū)⑦M(jìn)入休眠狀態(tài),當(dāng)?shù)谝豢ㄆ臄?shù)據(jù)存取完成后而該信號量也被釋放后,第二卡片的請求程序即被喚醒。通過上述讀卡裝置中使用的整合型控制芯片配合鎖定、釋放、休眠與喚醒等手段的時(shí)序控制的機(jī)制,以避免所述多種卡片間存取時(shí)的數(shù)據(jù)混亂現(xiàn)象。
舉例來說,當(dāng)文件系統(tǒng)需要從閃存卡讀取一筆數(shù)據(jù)時(shí),同時(shí)智能卡應(yīng)用程序也向智能卡發(fā)送一個(gè)APDU(Application Protocol Data Unit,應(yīng)用程序通信協(xié)議數(shù)據(jù)單位)請求,表達(dá)需要向智能卡進(jìn)行存取,但是此時(shí)文件系統(tǒng)已經(jīng)對閃存卡鎖定上述的信號量,智能卡應(yīng)用程序?qū)χ悄芸ǖ恼埱蟪绦驅(qū)M(jìn)入休眠狀態(tài)(sleep),等待閃存卡釋放信號量,才能進(jìn)行資源的占用。上述APDU是讀卡裝置與智能卡的通信協(xié)議,所以只要將APDU信號傳送給讀卡裝置,讀卡裝置就可以跟卡片做通信;而信號量的占用與釋放是由本發(fā)明所提供的讀卡裝置的驅(qū)動程序處理,其流程如圖3A所示。
圖3A的流程分為本發(fā)明所提供的整合型控制芯片分別對第一卡片(閃存卡)和第二卡片(智能卡)的請求流程,開始時(shí),控制芯片先針對第一卡片發(fā)出或接收請求信號 此例中第一卡片格式即為閃存卡格式、第二卡片格式即為智能卡格式,當(dāng)文件系統(tǒng)通過驅(qū)動程序?qū)﹂W存卡(第一卡片)發(fā)出要進(jìn)行存取的請求信號時(shí),此時(shí)在步驟S301讀卡裝置的整合型控制芯片即接收該閃存卡格式的請求信號;接著,在步驟S303讀卡裝置的整合性控制芯片通過驅(qū)動程序針對此請求程序鎖定信號量;因?yàn)橥瓿涉i定信號量,在步驟S305則可對閃存卡進(jìn)行數(shù)據(jù)存取動作,如果用在USB接口的實(shí)施例中,即使用符合USB規(guī)格的傳輸協(xié)議進(jìn)行數(shù)據(jù)的存取,主要包括發(fā)出讀取/寫入指令、進(jìn)行讀取/寫入閃存卡的數(shù)據(jù)與響應(yīng)讀取/寫入狀態(tài)等;在數(shù)據(jù)存取完成后,在步驟S307即釋放該信號量。
另一方面,在進(jìn)行閃存卡存取動作的同時(shí),智能卡(第二卡片)應(yīng)用程序?qū)χ悄芸òl(fā)出請求信號,此時(shí)在步驟S309由上述讀卡裝置的控制芯片接收該請求信號,也要首先鎖定上述的信號量,但是此信號量已經(jīng)被對上述流程中的閃存卡的請求程序占用,因此,在步驟S311讀卡裝置的驅(qū)動程序則使智能卡的請求程序進(jìn)入休眠狀態(tài),并等待信號量的釋放;當(dāng)上述對閃存卡的存取完成后,操作系統(tǒng)得知步驟S307中所釋放的信息,在步驟S313即喚醒智能卡應(yīng)用程序?qū)χ悄芸ǖ恼埱蟪绦颍从尚菝郀顟B(tài)進(jìn)入喚醒狀態(tài);在步驟S315由讀卡裝置的整合型控制芯片通過驅(qū)動程序?qū)υ撝悄芸ǖ恼埱蟪绦蜴i定信號量;之后,在步驟S317針對智能卡進(jìn)行數(shù)據(jù)存取,即進(jìn)行符合智能卡APDU通信協(xié)議的數(shù)據(jù)交換程序,包括智能卡與智能卡應(yīng)用程序間傳遞的APDU指令(APDU command)與響應(yīng)(APDU response);在完成此請求程序與存取動作后,在步驟S319控制芯片即釋放該信號量,以釋放所占用的USB總線相關(guān)資源。
在上述各卡片格式(一卡片格式與另一卡片格式,并不限于上述實(shí)施例)與系統(tǒng)間的信號傳遞與處理皆通過讀卡裝置中的整合型控制芯片完成,且其中數(shù)據(jù)存取皆通過同一驅(qū)動程序所控制,而各卡片通過文件系統(tǒng)進(jìn)行數(shù)據(jù)存取,如閃存卡格式,或可通過一專用應(yīng)用程序經(jīng)由中間層軟件進(jìn)行數(shù)據(jù)存取,如智能卡格式。
在實(shí)際應(yīng)用中,為保證由閃存卡或智能卡中所獲取到的數(shù)據(jù)無丟失包或是錯誤的傳遞,可在SIE和數(shù)據(jù)獲取的裝置(如計(jì)算機(jī)系統(tǒng)、讀卡裝置或其它外圍裝置)之間設(shè)立先進(jìn)先出(FIFO)型式的存儲器,以便對數(shù)據(jù)進(jìn)行暫存作業(yè)。
另一實(shí)施例如圖3B所示,第一卡片與第二卡片的請求程序調(diào)換,先由智能卡(第二卡片)應(yīng)用程序通過驅(qū)動程序?qū)ψx卡裝置的智能卡進(jìn)行請求,而數(shù)據(jù)存取期間有啟動閃存卡(第一卡片)的請求,本發(fā)明實(shí)施例的流程如下 一開始,智能卡應(yīng)用程序先對智能卡發(fā)出請求信號,此時(shí)在步驟S331讀卡裝置的整合型控制芯片接收針對上述卡片格式的請求信號;在步驟S333也要首先鎖定上述的信號量,故讀卡裝置的控制芯片即根據(jù)該卡片格式的請求信號通過驅(qū)動程序?qū)φ埱蟪绦蜴i定信號量;之后,在步驟S335即進(jìn)行符合智能卡APDU通信協(xié)議的數(shù)據(jù)交換程序,包括智能卡與智能卡應(yīng)用程序間傳遞APDU指令與響應(yīng);在完成此請求程序與存取動作后,在步驟S337即釋放信號量,以釋放所占用的USB總線相關(guān)資源。
同時(shí),文件系統(tǒng)也通過驅(qū)動程序?qū)﹂W存卡發(fā)出要進(jìn)行存取的請求信號,同理,在步驟S339讀卡裝置的整合型控制芯片接收該請求信號;之后,在步驟S341讀卡裝置的控制芯片通過驅(qū)動程序針對閃存卡的請求程序要鎖定上述被智能卡請求程序占用的信號量,但是因?yàn)樾盘柫勘徽加?,故讀卡裝置的驅(qū)動程序則先使閃存卡的請求程序進(jìn)入休眠狀態(tài),并等待信號量的釋放;當(dāng)上述對智能卡的存取完成后,在步驟S343操作系統(tǒng)得知步驟S337已釋放信號量,即喚醒文件系統(tǒng)通過驅(qū)動程序?qū)﹂W存卡的請求程序,即由休眠狀態(tài)進(jìn)入喚醒狀態(tài);并在步驟S345由讀卡裝置的控制芯片通過驅(qū)動程序?qū)υ撻W存卡的請求程序鎖定該信號量;因?yàn)橥瓿涉i定信號量,在步驟S347則可對閃存卡進(jìn)行存取動作,如進(jìn)行符合USB規(guī)格的傳輸協(xié)議進(jìn)行數(shù)據(jù)的存取;在數(shù)據(jù)存取完成后,在步驟S349即釋放該信號量。
上述方式是利用一個(gè)讀卡裝置的控制芯片通過驅(qū)動程序先后完成兩個(gè)不同接口與卡片的請求程序,已避免公知技術(shù)利用兩個(gè)驅(qū)動程序的請求操作需要一個(gè)到多個(gè)轉(zhuǎn)換(transfer)時(shí),讀卡裝置可能在還沒有完成一個(gè)操作的情況下接收到另一個(gè)驅(qū)動程序發(fā)送過來的其它命令時(shí)產(chǎn)生的錯誤。
上述第一實(shí)施例是在操作系統(tǒng)安裝專用的驅(qū)動程序,針對不同卡片的信號進(jìn)行信號的判斷,并且進(jìn)行讀寫程序的控管。
而利用本發(fā)明讀卡裝置的整合型控制芯片與其數(shù)據(jù)存取方法還有第二實(shí)施例,其硬件只需提供一個(gè)接口,但針對兩種卡片設(shè)計(jì)兩個(gè)邏輯接口(logicinterface),結(jié)合其中整合型控制芯片的固件(firmware)方案,針對讀卡裝置所要讀取的卡片信號進(jìn)行判讀,決定所要使用的邏輯接口之一。
在該實(shí)施例中,本發(fā)明利用整合型控制芯片的控制芯片與其中的判斷機(jī)制形成一固件形式的解決方案,通過提供兩個(gè)邏輯接口來整合閃存卡和智能卡讀卡裝置,其中一個(gè)接口(接口A)負(fù)責(zé)閃存卡的讀寫,另外一個(gè)接口(接口B)負(fù)責(zé)智能卡的讀寫。在此架構(gòu)下,整合型控制芯片對讀寫要求的處理方式同時(shí)也依賴于USB主機(jī)系統(tǒng)與雙接口的設(shè)備通信的機(jī)制。主機(jī)系統(tǒng)對不同接口上的數(shù)據(jù)傳輸是基于USB處理(transaction)級別的,因此在讀卡裝置端,總是以該處理為最小處理單元,比如在處理接口A的處理過程中,收到接口B的請求,那么讀卡裝置(包括有整合型控制芯片)會設(shè)法屏蔽接口B的請求,而等到接口A的處理完成以后,再去處理接口B的請求。
采用這種整合型控制芯片架構(gòu)與傳統(tǒng)的多控制芯片架構(gòu)相比,需要解決的問題是整合型控制芯片對來自不同卡片的讀寫要求的處理如何做到最佳化,使兩個(gè)接口分享一套硬件資源,不同于公知技術(shù)使用兩套硬件的方式,本發(fā)明雖用一套硬件,但是采用分時(shí)復(fù)用(Time Division Multiplexing)的技術(shù)交替處理不同卡片的讀寫要求,上述各卡片格式接口(A,B)上的數(shù)據(jù)傳輸根據(jù)傳輸收發(fā)器的處理級別,且以該分時(shí)復(fù)用原理交替處理各卡片格式的數(shù)據(jù),并且還可包括一耦接至串行接口引擎以及緩沖器的微處理單元(在圖中未顯示),并根據(jù)固件依該分時(shí)復(fù)用原理產(chǎn)生串行傳輸格式的數(shù)據(jù)。其采用的單一裝置雙邏輯接口的架構(gòu)示意圖如圖4所示。
圖4所示的實(shí)施例將整個(gè)系統(tǒng)分為計(jì)算機(jī)系統(tǒng)41與讀卡裝置42,其中讀卡裝置42的優(yōu)選實(shí)施例為USB讀卡裝置,由傳輸收發(fā)器(如USB收發(fā)器)421連接計(jì)算機(jī)系統(tǒng)41,計(jì)算機(jī)系統(tǒng)41即通過該傳輸收發(fā)器421自外界存取數(shù)據(jù),并達(dá)到存取各式卡片的目的。讀卡裝置42利用一整合型控制芯片425控制各式卡片格式的數(shù)據(jù)存取控制與時(shí)序控制,該整合型控制芯片425除包括連接計(jì)算機(jī)系統(tǒng)41的傳輸收發(fā)器421外,還至少包括有串行接口引擎(SIE)423、緩沖器424,并包括由本發(fā)明利用整合型控制芯片425虛擬出的邏輯接口A(427)與接口B(428),兩個(gè)邏輯接口A,B分別對應(yīng)連接實(shí)體的閃存卡接口401與智能卡接口402。
當(dāng)讀卡裝置42存取外部如智能卡432、閃存卡431的數(shù)據(jù),讀卡裝置42內(nèi)的整合型控制芯片425則利用兩種邏輯接口作為智能卡432或是閃存卡431的讀寫接口,因?yàn)閮蓚€(gè)邏輯接口分享一套硬件資源,故需要使進(jìn)行中的接口在數(shù)據(jù)存取時(shí),需引用一屏蔽手段(screening),當(dāng)其中之一邏輯接口在進(jìn)行數(shù)據(jù)存取時(shí),該整合型控制芯片即對另一個(gè)邏輯接口進(jìn)行屏蔽,當(dāng)運(yùn)行中的接口完成存取動作后,控制芯片425才會再處理通過另一個(gè)等待(屏蔽)中的接口所請求的程序。
當(dāng)進(jìn)行請求程序時(shí),由閃存卡431或智能卡432所存取(讀/寫)的數(shù)據(jù)(請求信號或是數(shù)據(jù))會先儲存于設(shè)置在整合型控制芯片425中的緩沖器424中,用以緩沖串行傳輸格式的數(shù)據(jù),再經(jīng)由串行接口引擎423則將處理過的卡片格式的數(shù)據(jù)轉(zhuǎn)換為串行傳輸格式的數(shù)據(jù),再傳送至讀卡裝置42中,整合型控制芯片425針對暫存于緩沖器424的數(shù)據(jù)判讀,根據(jù)數(shù)據(jù)是由閃存卡431或是智能卡432所傳遞,以判斷其中是由接口A(427)或接口B(428)通過傳輸收發(fā)器421傳遞至計(jì)算機(jī)系統(tǒng)41中,并由其中操作系統(tǒng)410接收。各閃存卡431或智能卡432上的數(shù)據(jù)傳輸根據(jù)傳輸收發(fā)器421的處理級別,以分時(shí)復(fù)用原理交替處理各卡片格式的數(shù)據(jù)。
特別的是,因不同的卡片通過不同的邏輯接口傳遞,而可以輕易針對不同的封包判斷是閃存卡或是智能卡的請求程序,再使用操作系統(tǒng)410中支持的USB驅(qū)動程序(如驅(qū)動程序A(411)或驅(qū)動程序B(412))分別進(jìn)行數(shù)據(jù)存取。因?yàn)閷SB裝置的驅(qū)動可為標(biāo)準(zhǔn)的驅(qū)動方式,故本發(fā)明所揭示的分別處理來自接口A與接口B的數(shù)據(jù)的驅(qū)動程序A(411)與驅(qū)動程序B(412)可為操作系統(tǒng)所內(nèi)建的標(biāo)準(zhǔn)驅(qū)動程序,所以本發(fā)明第二實(shí)施例所提供的方案并不需要額外安裝的驅(qū)動程序。
另一方面是由操作系統(tǒng)410主動通過驅(qū)動程序A(411)或驅(qū)動程序B(412)對讀卡裝置42進(jìn)行請求程序,也通過傳輸收發(fā)器421將數(shù)據(jù)分別通過整合型控制芯片中的邏輯接口A(427)或接口B(428)傳送至串行接口引擎423,并暫存于緩沖器424中,以進(jìn)行對各卡片的讀出或?qū)懭氤绦颉?br>
同理于第一實(shí)施例,若數(shù)據(jù)格式為一閃存格式,則由計(jì)算機(jī)系統(tǒng)中的文件系統(tǒng)通過一SCSI層使用該所對應(yīng)的驅(qū)動程序(A或B)向讀卡裝置發(fā)出請求;而若由控制芯片判斷數(shù)據(jù)格式為一智能卡格式,則由智能卡應(yīng)用程序利用標(biāo)準(zhǔn)的PC/SC通信協(xié)議,通過所對應(yīng)的驅(qū)動程序(A或B)對該讀卡裝置發(fā)出請求。并且,閃存卡進(jìn)行符合USB規(guī)格的傳輸協(xié)議的數(shù)據(jù)存取,而智能卡應(yīng)用程序則需向智能卡發(fā)出符合APDU通信協(xié)議的信號進(jìn)行數(shù)據(jù)存取。
第二實(shí)施例所揭示的固件(如使用整合型控制芯片結(jié)合時(shí)序控制)與硬件(如讀卡裝置)間的信號處理如圖5所示的流程,流程圖分為固件部分與硬件部分,分別使用了一些判斷機(jī)制作為相互通信的方式。
其中,硬件部分定義了兩個(gè)標(biāo)記(Flag),用以控制USB接收兩個(gè)接口之一的數(shù)據(jù),流程使用ccid_en標(biāo)記(1或0)控制是否接收來自智能卡對應(yīng)的接口的數(shù)據(jù);而mass_storage_en標(biāo)記則控制是否接收來自閃存卡所對應(yīng)的接口的數(shù)據(jù)。
步驟一開始,在步驟S501硬件部分判斷是否接收數(shù)據(jù)包進(jìn)讀卡裝置中,該步驟為一直處于判斷是否有包進(jìn)來的循環(huán)(loop),若為否,表示仍未接收到封包,則繼續(xù)此判斷步驟;若為是,表示有封包進(jìn)來,在步驟S503則對該讀卡裝置的控制芯片發(fā)出中斷(Interrupt)請求; 當(dāng)控制芯片接收到該中斷請求,在步驟S505由固件部分首先判斷是否是一個(gè)短包(short packet)中斷,該步驟也為一個(gè)處于判斷與等待中斷信號的循環(huán),若并未判斷為短包中斷的時(shí)候(否的情況),仍處于循環(huán)中;若判斷該中斷請求為短包中斷(是的情況),在步驟S507則表示USB裝置(本發(fā)明實(shí)施例為讀卡裝置)由計(jì)算機(jī)系統(tǒng)中接收指令,而固件部分可以通過一個(gè)auto_clr_en標(biāo)記選擇由固件部分或是硬件部分來處理ccid_en標(biāo)記和mass_storage_en標(biāo)記; 若auto_clr_en標(biāo)記有被設(shè)定(是的情況),如設(shè)auto_clr_en標(biāo)記為1,步驟進(jìn)行到硬件部分,則是以硬件部分處理來自智能卡與閃存卡的數(shù)據(jù);若為否,則是選擇固件部分處理來自智能卡與閃存卡的數(shù)據(jù)。然而,因?yàn)橛布男时容^高,所以本發(fā)明的優(yōu)選實(shí)施例會把上述的auto_clr_en標(biāo)記設(shè)為,使來自智能卡與閃存卡的數(shù)據(jù)由硬件處理; 然后,在步驟S509硬件部分將根據(jù)USB封包的端點(diǎn)(endpoint)的usb_cur_if標(biāo)記(ccid_if/mass_storage_if)判斷出接口的使用是ccid_if標(biāo)記還是mass_storage_if標(biāo)記,分別表示是否接收來自智能卡對應(yīng)的接口的數(shù)據(jù)或是來自閃存卡所對應(yīng)的接口的數(shù)據(jù); 此例是以usb_cur_if標(biāo)記所傳遞的信息判斷目前是由智能卡或是閃存卡使用讀卡裝置的資源,故經(jīng)步驟S509的判斷后,可以分為在步驟S513ccid_en標(biāo)記為1、mass_storage_en標(biāo)記為0,此為目前是接收對應(yīng)智能卡的接口的數(shù)據(jù)封包;與在步驟S515ccid_en標(biāo)記為0、mass_storage_en標(biāo)記為1的狀態(tài),此為目前是接收對應(yīng)閃存卡的接口的數(shù)據(jù)封包; 若步驟S507所設(shè)定的auto_clr_en標(biāo)記是指令固件部分處理所接收的數(shù)據(jù),如設(shè)auto_clr_en標(biāo)記為0,同理,在步驟S511固件部分將根據(jù)USB封包的端點(diǎn)判斷出接口的使用是ccid_if標(biāo)記還是mass_storage_if標(biāo)記,分別表示是否接收來自智能卡對應(yīng)的接口的數(shù)據(jù)或是來自閃存卡所對應(yīng)的接口的數(shù)據(jù); 經(jīng)步驟S511的判斷后,通過一屏蔽手段,在其中一邏輯接口進(jìn)行數(shù)據(jù)存取時(shí),即對另一個(gè)邏輯接口進(jìn)行屏蔽 同樣可以分為在步驟S519ccid_en標(biāo)記為1、mass_storage_en標(biāo)記為0,為目前是接收對應(yīng)智能卡的接口的數(shù)據(jù);與在步驟S517ccid_en標(biāo)記為0、mass_storage_en標(biāo)記為1的狀態(tài),為目前是接收對應(yīng)閃存卡的接口的數(shù)據(jù); 之后,在步驟S521進(jìn)行轉(zhuǎn)換(transfer)步驟,當(dāng)其中之一邏輯接口所對應(yīng)的驅(qū)動程序完成數(shù)據(jù)存取后,即再進(jìn)行屏蔽手段,而轉(zhuǎn)換至另一邏輯接口所對應(yīng)的數(shù)據(jù)存取步驟,即針對操作系統(tǒng)內(nèi)建的兩種驅(qū)動程序要完成一個(gè)完整的請求操作均需要一個(gè)到多個(gè)轉(zhuǎn)換,本發(fā)明實(shí)施例即利用ccid_en標(biāo)記與mass_storage_en標(biāo)記所表達(dá)的信息進(jìn)行請求程序的轉(zhuǎn)換。即,若上述的流程最后所設(shè)定的狀態(tài)為ccid_en標(biāo)記為1、mass_storage_en標(biāo)記為0,表示目前是接收對應(yīng)智能卡的接口的數(shù)據(jù),則控制芯片通過傳輸收發(fā)器將閃存卡對應(yīng)的接口上的數(shù)據(jù)屏蔽掉;若為ccid_en標(biāo)記為0、mass_storage_en標(biāo)記為1的狀態(tài),表示目前是接收對應(yīng)閃存卡的接口的數(shù)據(jù),則控制芯片再通過傳輸收發(fā)器將智能卡對應(yīng)的接口上的數(shù)據(jù)屏蔽掉,使兩者所發(fā)出的請求程序不會混亂; 最后,當(dāng)固件處理一個(gè)接口的請求后,在步驟S523會把上述ccid_en標(biāo)記與mass_storage_en標(biāo)記設(shè)為1,并在步驟S525進(jìn)入閑置(idle)狀態(tài),等待如開始的循環(huán)判斷步驟,由硬件部分等待接收下一筆數(shù)據(jù)包。
綜上所述,本發(fā)明所揭示的讀卡裝置的整合型控制芯片與其數(shù)據(jù)存取方法,其目的在于在一個(gè)單芯片上整合閃存卡和智能卡的讀寫控制,解決公知技術(shù)在不同卡片的請求路徑會造成控制芯片處理數(shù)據(jù)出現(xiàn)混亂的現(xiàn)象,所以,本發(fā)明提供一種時(shí)序控制的機(jī)制以避免這種混亂發(fā)生,并能降低多功能讀卡裝置的成本,增加產(chǎn)品的競爭力。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非以此限制本發(fā)明的保護(hù)范圍,所以凡運(yùn)用本發(fā)明說明書及附圖內(nèi)容所做的等效結(jié)構(gòu)變化,均同理包含于本發(fā)明的范圍內(nèi)。
權(quán)利要求
1. 一種多個(gè)卡片格式的數(shù)據(jù)存取方法,適用于一整合型控制芯片的讀卡裝置,其特征在于,包括下列步驟
接收一卡片格式的請求信號;
根據(jù)該卡片格式的請求信號鎖定信號量;
針對該卡片格式進(jìn)行數(shù)據(jù)存取;以及
存取結(jié)束后釋放信號量;
其中,在上述步驟間若接收另一卡片格式的請求信號,則該另一卡片格式先進(jìn)入一休眠狀態(tài)并包括下列步驟
待上述步驟結(jié)束后該另一卡片格式進(jìn)入一喚醒狀態(tài);
根據(jù)該另一卡片格式的請求信號鎖定信號量;
針對該另一卡片格式進(jìn)行數(shù)據(jù)存??;以及
存取結(jié)束后釋放信號量。
2. 如權(quán)利要求1所述的多個(gè)卡片格式的數(shù)據(jù)存取方法,其特征在于,所述卡片格式以及該另一卡片格式的數(shù)據(jù)存取均由同一驅(qū)動程序所控制。
3. 如權(quán)利要求1所述的多個(gè)卡片格式的數(shù)據(jù)存取方法,其特征在于,所述卡片格式是閃存卡格式以及智能卡格式的其中之一。
4. 一種整合型控制芯片,適用于多個(gè)卡片格式的數(shù)據(jù)存取,其特征在于,包括
一傳輸收發(fā)器,用以自外界存取數(shù)據(jù);
多個(gè)卡片格式接口,分別耦接至該傳輸收發(fā)器,用以分別處理所述卡片格式的數(shù)據(jù);
一串行接口引擎,用以將處理過的所述卡片格式的數(shù)據(jù)轉(zhuǎn)換為一串行傳輸格式的數(shù)據(jù);以及
一緩沖器,用以緩沖該串行傳輸格式的數(shù)據(jù);
其中,所述卡片格式接口上的數(shù)據(jù)傳輸是基于該傳輸收發(fā)器的處理級別。
5. 如權(quán)利要求4所述的整合型控制芯片,其特征在于,所述卡片格式包括閃存卡格式以及智能卡格式。
6. 如權(quán)利要求4所述的整合型控制芯片,其特征在于,所述多個(gè)卡片格式的數(shù)據(jù)存取由操作系統(tǒng)的標(biāo)準(zhǔn)驅(qū)動程序所控制。
7. 一種整合型控制芯片,適用于多個(gè)卡片格式的數(shù)據(jù)存取,其特征在于,包括
一傳輸收發(fā)器,用以自外界存取數(shù)據(jù);
一卡片格式接口,分別耦接至該傳輸收發(fā)器,用以處理所述卡片格式的數(shù)據(jù);
一串行接口引擎,用以將處理過的所述卡片格式的數(shù)據(jù)轉(zhuǎn)換為一串行傳輸格式的數(shù)據(jù);以及
一緩沖器,用以緩沖該串行傳輸格式的數(shù)據(jù);
其中,該卡片格式接口上的數(shù)據(jù)傳輸是基于該傳輸收發(fā)器的處理級別,且以一分時(shí)復(fù)用原理交替處理所述卡片格式的數(shù)據(jù)。
8. 如權(quán)利要求7所述的整合型控制芯片,其特征在于,還包括一微處理單元,該微處理單元耦接至該串行接口引擎以及該緩沖器,并根據(jù)一固件依該分時(shí)復(fù)用原理產(chǎn)生該串行傳輸格式的數(shù)據(jù)。
9. 如權(quán)利要求7所述的整合型控制芯片,其特征在于,所述卡片格式包括閃存卡格式以及智能卡格式。
10. 如權(quán)利要求7所述的整合型控制芯片,其特征在于,所述的多個(gè)卡片格式的數(shù)據(jù)存取是由操作系統(tǒng)的標(biāo)準(zhǔn)驅(qū)動程序所控制。
全文摘要
本發(fā)明提供一種讀卡裝置的整合型控制芯片與其數(shù)據(jù)存取方法,其中所揭示的整合型控制芯片的優(yōu)選實(shí)施例包括有傳輸收發(fā)器,用以自外界存取數(shù)據(jù);一或多個(gè)卡片格式接口,分別耦接至傳輸收發(fā)器,用以分別處理各卡片格式數(shù)據(jù);串行接口引擎,用以將處理過的卡片格式的數(shù)據(jù)轉(zhuǎn)換為串行傳輸格式數(shù)據(jù);以及緩沖器,用以緩沖串行傳輸格式數(shù)據(jù),其中,所述的各種卡片格式接口上的數(shù)據(jù)傳輸是基于傳輸收發(fā)器的處理級別。本發(fā)明的讀卡裝置的整合型控制芯片及其數(shù)據(jù)存取方法是在一個(gè)單芯片上整合多個(gè)卡片格式的數(shù)據(jù)存取,如使用于閃存卡和智能卡的存取控制,并通過時(shí)序控制避免不同驅(qū)動程序或接口造成處理數(shù)據(jù)出現(xiàn)混亂的現(xiàn)象。
文檔編號G06F13/38GK101236539SQ20071000834
公開日2008年8月6日 申請日期2007年1月29日 優(yōu)先權(quán)日2007年1月29日
發(fā)明者煒 王, 俊 陶, 楊章順 申請人:瑞昱半導(dǎo)體股份有限公司