專利名稱:數(shù)據(jù)串傳送方法、系統(tǒng)及其控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種數(shù)據(jù)串傳送方法、系統(tǒng)及其控制器,且特別是有關(guān)于一種適
用于從主機(jī)傳遞數(shù)據(jù)至具有芯片的外圍裝置的數(shù)據(jù)串傳送方法、系統(tǒng)及其控制器。
背景技術(shù):
數(shù)字相機(jī)、移動電話與MP3播放器在這幾年來的成長十分迅速,使得消費(fèi)者對儲 存媒體的需求也急速增加。由于閃存(Flash Memory)具有數(shù)據(jù)非易失性、省電、體積小,以 及無機(jī)械結(jié)構(gòu)等特性,所以非常適合內(nèi)建于上述所舉例的各種可攜式多媒體裝置中。
另一方面,隨著使用者逐漸接受使用電子錢包及預(yù)付儲值,使得智能卡的使用日 益普及。智能卡(Smart Card)是具有例如微處理器、卡操作系統(tǒng)、安全模塊及存儲器的組 件的集成電路芯片(IC芯片),以允許持有者執(zhí)行預(yù)定操作。智能卡提供計算、加密、雙向 通信及安全功能,使得這張卡片除了儲存數(shù)據(jù)的功能外還能達(dá)到對其所儲存的數(shù)據(jù)加以 保護(hù)的功能。使用全球移動通信系統(tǒng)(GSM)機(jī)制的蜂巢式電話中所使用的用戶識別模塊 (Subscriber Identification Module, SM)卡為智能卡的其中一個應(yīng)用范例。然而,智能 卡本身受限于儲存容量,因此近年來開始與大量儲存裝置的存儲卡作結(jié)合,以擴(kuò)增智能卡 的儲存容量。 在現(xiàn)有技術(shù)中,結(jié)合閃存與智能卡的應(yīng)用是透過特殊命令來區(qū)別傳送給智能卡或 閃存的數(shù)據(jù),此特殊命令可能會造成硬件裝置或驅(qū)動程序無法支持的問題。此外,在現(xiàn)有 技術(shù)中是比對此特殊命令中關(guān)于所傳送數(shù)據(jù)串的型態(tài)信息來判斷此數(shù)據(jù)串是否為智能卡 的命令格式。然而,此方法往往會造成一般文件數(shù)據(jù)與屬于智能卡的命令格式碰撞的問題 (即將一般文件數(shù)據(jù)誤判為智能卡的數(shù)據(jù)串)。 另外,在一些具有高速緩沖存儲器(Cache)的電子產(chǎn)品的應(yīng)用中,因這些電子產(chǎn) 品本身的限制,智能卡與電子產(chǎn)品之間數(shù)據(jù)串的傳遞并無法繞過高速緩沖存儲器,而使得 智能卡所產(chǎn)生的響應(yīng)訊息并無法被無誤地回傳至所依附的電子產(chǎn)品,進(jìn)而限制智能卡在這 類具有高速緩沖存儲器的電子產(chǎn)品上的應(yīng)用。舉例來說,在一個Java系統(tǒng)的移動電話中, 因Java系統(tǒng)并不支持諸如NO Cache等不須透過高速緩沖存儲器而直接地對高速緩沖存儲 器進(jìn)行存取的指令,故很難將智能卡和閃存以整合為存儲卡的形式應(yīng)用在這類Java系統(tǒng) 的移動電話中。請參考圖1,圖1為現(xiàn)有搭配存儲卡12的主機(jī)10的功能方塊圖。主機(jī)10 為一種電子產(chǎn)品(如Java系統(tǒng)的移動電話),并具有高速緩沖存儲器14,而存儲卡12具 有閃存16和智能卡芯片18。主機(jī)10與存儲卡12之間的數(shù)據(jù)傳遞路徑都會經(jīng)過高速緩沖 存儲器14。然而,因為高速緩沖存儲器14會暫存最近主機(jī)10與存儲卡12之間所傳遞的數(shù) 據(jù)的緣故,當(dāng)主機(jī)IO欲從智能卡芯片18獲得數(shù)據(jù)時,若高速緩沖存儲器14內(nèi)已經(jīng)存有與 讀取指令相符的數(shù)據(jù)時,則高速緩沖存儲器14就會將相符的數(shù)據(jù)傳送至主機(jī)10。然而,在 這樣的架構(gòu)下,智能卡芯片18的響應(yīng)訊息往往會被高速緩沖存儲器14已有的數(shù)據(jù)所取代, 而使得智能卡芯片18的加密及安全通信的功能大受影響。 基此,有需要發(fā)展一套能夠在智能卡的相關(guān)應(yīng)用中無誤地傳遞智能卡的響應(yīng)訊息的系統(tǒng)和方法。
發(fā)明內(nèi)容
本發(fā)明提供一種數(shù)據(jù)串傳送系統(tǒng)及其控制器,能夠無誤地傳遞智能卡的響應(yīng)訊 息。 本發(fā)明提供一種數(shù)據(jù)串傳送方法,能夠無誤地傳遞智能卡的響應(yīng)訊息。 本發(fā)明所提供的數(shù)據(jù)串傳送方法、系統(tǒng)及其控制器,除了可應(yīng)用在結(jié)合閃存與智
能卡的應(yīng)用中,還另可應(yīng)用在其它芯片與閃存的結(jié)合應(yīng)用中,以無誤地傳遞芯片的響應(yīng)訊
息,而上述芯片可以是射頻識別芯片、無線傳輸芯片(如藍(lán)牙芯片)或多媒體控制芯片
(如數(shù)字錄音芯片)。 本發(fā)明提出一種數(shù)據(jù)串傳送方法,其適用于從主機(jī)傳遞數(shù)據(jù)串至具有的外圍裝 置。此數(shù)據(jù)串傳送方法包括產(chǎn)生一寫入符記,并將該寫入符記藏于一第一數(shù)據(jù)串中;傳 送一第一寫入指令至該外圍裝置,該第一寫入指令被設(shè)定為寫入該第一數(shù)據(jù)串至該外圍裝 置;傳送該第一數(shù)據(jù)串的至少一部份至該芯片,并記錄該第一數(shù)據(jù)串中的該寫入符記;以 及依序地傳送多個讀取指令至該外圍裝置,直到該主機(jī)自該外圍裝置接收到一第一響應(yīng)訊 息為止,其中該第一響應(yīng)訊息的一預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)為該芯片因接收到該第一數(shù)據(jù)串的 至少一部份而產(chǎn)生,且該第一響應(yīng)訊息含有該寫入符記,而該多個讀取指令被設(shè)定為讀取 多個邏輯區(qū)塊地址上的數(shù)據(jù)。 本發(fā)明提出一種數(shù)據(jù)串傳送系統(tǒng),其適用于在主機(jī)和具有芯片的外圍裝置之間的 數(shù)據(jù)串傳送。此數(shù)據(jù)串傳送系統(tǒng)包括應(yīng)用程序以及控制器。應(yīng)用程序安裝于主機(jī)上并且 用以操作外圍裝置。控制器設(shè)置于外圍裝置中,并且電性連接至芯片。其中該控制器會產(chǎn) 生一寫入符記,并將該寫入符記藏于一第一數(shù)據(jù)串中。主機(jī)會執(zhí)行應(yīng)用程序會以送一寫入 指令至控制器,寫入指令被設(shè)定為寫入第一數(shù)據(jù)串至外圍裝置??刂破鲿魉偷谝粩?shù)據(jù)串 的至少一部份至該芯片,并記錄該第一數(shù)據(jù)串中的寫入符記。當(dāng)主機(jī)執(zhí)行該應(yīng)用程序時,該 主機(jī)會依序地傳送多個讀取指令至該外圍裝置,直到從該控制器接收到一第一響應(yīng)訊息為 止,其中該第一響應(yīng)訊息的一預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)為該芯片因接收到該第一數(shù)據(jù)串的至少 一部份而產(chǎn)生,且該第一響應(yīng)訊息含有該寫入符記,而該多個讀取指令被設(shè)定為讀取多個 邏輯區(qū)塊地址上的數(shù)據(jù)。 本發(fā)明提出 一種控制器,其適用于具有芯片的外圍裝置。此控制器包括一微處理
單元以及一緩沖存儲器。上述微處理單元用以控制控制器的整體運(yùn)作,而上述緩沖存儲器
用以暫時地儲存數(shù)據(jù)。其中微處理單元會將來自于一主機(jī)的第一數(shù)據(jù)串的至少一部份傳送
至該芯片,并記錄該第一數(shù)據(jù)串中的一寫入符記。在該第一數(shù)據(jù)串的至少一部份被傳送至
該芯片之后,以及在該微處理單元傳送一第一響應(yīng)訊息至該主機(jī)之前,該微處理單元會依
序地傳送一第二響應(yīng)訊息至該主機(jī),以響應(yīng)來自該主機(jī)的多個讀取指令。其中該第一響應(yīng)
訊息的一預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)為該芯片因接收到該第一數(shù)據(jù)串的至少一部份而產(chǎn)生。當(dāng)該
微處理單元自該芯片接收到該第一響應(yīng)訊息的該預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)之后,該微處理單元
會將該第一響應(yīng)訊息傳送至該主機(jī),而該第一響應(yīng)訊息含有該寫入符記。 本發(fā)明提出一種應(yīng)用程序,其安裝在一主機(jī)中。其中該主機(jī)會通過執(zhí)行該應(yīng)用程
序,以進(jìn)行上述的數(shù)據(jù)串傳送方法,進(jìn)而控制該主機(jī)和具有芯片的外圍裝置之間的數(shù)據(jù)串傳送。 本發(fā)明提出一種控制器,安裝在一主機(jī)中。該控制器包括一微處理器單元、一緩沖 存儲器以及一數(shù)據(jù)串傳送模塊。該緩沖存儲器耦接至該微處理器單元,而該數(shù)據(jù)串傳送模 塊耦接至該微處理器單元。該數(shù)據(jù)串傳送模塊具有可由該微處理器單元執(zhí)行的多個機(jī)器 指令,以對該主機(jī)和一具有芯片的外圍裝置間的數(shù)據(jù)串傳送進(jìn)行多個數(shù)據(jù)串傳送步驟。該 些數(shù)據(jù)串傳送步驟包括產(chǎn)生一寫入符記,并將該寫入符記藏于一第一數(shù)據(jù)串中;傳送一 第一寫入指令至該外圍裝置,該第一寫入指令被設(shè)定為寫入該第一數(shù)據(jù)串至該外圍裝置; 傳送該第一數(shù)據(jù)串的至少一部份至該芯片,并記錄該第一數(shù)據(jù)串中的該寫入符記;以及依 序地傳送多個讀取指令至該外圍裝置,直到該主機(jī)自該外圍裝置接收到一第一響應(yīng)訊息為 止,其中該第一響應(yīng)訊息的一預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)為該芯片因接收到該第一數(shù)據(jù)串的至少 一部份而產(chǎn)生,且該第一響應(yīng)訊息含有該寫入符記,而該多個讀取指令被設(shè)定為讀取多個 邏輯區(qū)塊地址上的數(shù)據(jù)。 在本發(fā)明的一實施例中,上述數(shù)據(jù)串傳送方法更包括判斷該主機(jī)傳送至該外圍
裝置的任一數(shù)據(jù)串中是否含有一特定標(biāo)記;以及倘若該主機(jī)傳送至該外圍裝置的數(shù)據(jù)串中
含有該特定標(biāo)記,則含有該特定標(biāo)記的數(shù)據(jù)串的至少一部份會被傳送至該芯片。 在本發(fā)明的一實施例中,上述外圍裝置更包括一非易失性存儲器,而上述數(shù)據(jù)串
傳送方法更包括倘若該主機(jī)傳送至該外圍裝置的數(shù)據(jù)串中未含有該特定標(biāo)記,則將未含
有該特定標(biāo)記的該數(shù)據(jù)串寫入至該非易失性存儲器。 在本發(fā)明的一實施例中,上述外圍裝置更包括一非易失性存儲器,而上述數(shù)據(jù)串 傳送方法更包括判斷任一個從該主機(jī)傳送至該外圍裝置的讀取指令是否被設(shè)定為讀取該 多個邏輯區(qū)塊地址上的數(shù)據(jù);以及對任一讀取指令而言,倘若該讀取指令并非被設(shè)定為讀 取該多個邏輯區(qū)塊地址上的數(shù)據(jù),則依據(jù)該讀取指令所指派的地址從該非易失性存儲器中 讀取對應(yīng)的數(shù)據(jù)。 在本發(fā)明的一實施例中,上述數(shù)據(jù)串傳送方法更包括當(dāng)產(chǎn)生該寫入符記后,記錄 該寫入符記于該主機(jī);以及比對該外圍裝置回傳至該主機(jī)的響應(yīng)訊息中的寫入符記是否與 記錄于該主機(jī)的該寫入符記一致。 在本發(fā)明的一實施例中,上述數(shù)據(jù)串傳送方法更包括倘若該外圍裝置回傳至該 主機(jī)的響應(yīng)訊息中的寫入符記與記錄于該主機(jī)的該寫入符記并不一致,則繼續(xù)傳送讀取指 令至該外圍裝置,直到接收到該第一響應(yīng)訊息為止。 在本發(fā)明的一實施例中,上述數(shù)據(jù)串傳送方法更包括當(dāng)產(chǎn)生該寫入符記后,記錄 該寫入符記于該主機(jī);以及在該主機(jī)傳送一第二寫入指令至該外圍裝置以將數(shù)據(jù)傳送至該 芯片之前,更新該主機(jī)所記錄的該寫入符記,并將更新后的該寫入符記隨著該第二寫入指 令傳送至該外圍裝置。 在本發(fā)明的一實施例中,上述數(shù)據(jù)串傳送方法更包括響應(yīng)該多個讀取指令,而將 對應(yīng)的讀取符記加入至回傳給該主機(jī)的響應(yīng)訊息中;以及判斷該主機(jī)所接收到的響應(yīng)訊息 中的讀取符記是否與一系統(tǒng)設(shè)定值一致。 在本發(fā)明的一實施例中,上述數(shù)據(jù)串傳送方法更包括當(dāng)該外圍裝置回傳至該主 機(jī)的響應(yīng)訊息中的寫入符記與記錄于該主機(jī)的寫入符記一致,且該主機(jī)所接收到的響應(yīng)訊 息中的該讀取符記與該系統(tǒng)設(shè)定值一致時,判斷該主機(jī)所連續(xù)接收到的至少三個響應(yīng)訊息中的讀取符記之間的差值是否為一定值。 在本發(fā)明的一實施例中,其中該至少三個響應(yīng)訊息所對應(yīng)的多個讀取指令被設(shè)定
成讀取該多個邏輯區(qū)塊地址中多個彼此不相鄰的邏輯區(qū)塊地址上的數(shù)據(jù)。 在本發(fā)明的一實施例中,上述主機(jī)每傳送該多個讀取指令當(dāng)中的任一個讀取指令
至該外圍裝置后,該主機(jī)會執(zhí)行一第三寫入指令,以將數(shù)據(jù)寫入至該外圍裝置的一暫存盤。 在本發(fā)明的一實施例中,當(dāng)上述主機(jī)傳送該第一寫入指令至該外圍裝置后,該主
機(jī)執(zhí)行該第三寫入指令,以將數(shù)據(jù)寫入至該暫存盤。 在本發(fā)明的一實施例中,當(dāng)上述暫存盤的大小超過一預(yù)設(shè)數(shù)據(jù)量時,該控制器會 清除該暫存盤。 在本發(fā)明的一實施例中,上述任兩個接續(xù)地回傳給該主機(jī)的響應(yīng)訊息中的讀取符 記,皆相差一默認(rèn)值。 在本發(fā)明的一實施例中,上述寫入符記為依據(jù)一系統(tǒng)時間產(chǎn)生。
在本發(fā)明的一實施例中,上述寫入符記為一隨機(jī)數(shù)值。 在本發(fā)明的一實施例中,上述多個邏輯區(qū)塊地址上的數(shù)據(jù)屬于單一特定文件。
在本發(fā)明的一實施例中,上述外圍裝置更包括一非易失性存儲器,而上述數(shù)據(jù)串 傳送方法更包括判斷該單一特定文件是否存在于該非易失性存儲器內(nèi);以及倘若該單一 特定文件尚未存在于該非易失性存儲器內(nèi),則在該非易失性存儲器內(nèi)建立該單一特定文 件。 在本發(fā)明的一實施例中,上述多個邏輯區(qū)塊地址上的數(shù)據(jù)屬于多個特定文件。
在本發(fā)明的一實施例中,上述外圍裝置更包括一非易失性存儲器,而上述數(shù)據(jù)串 傳送方法更包括判斷該多個特定文件是否存在于該非易失性存儲器內(nèi);以及倘若該多個 特定文件的任何一個特定文件尚未存在于該非易失性存儲器內(nèi),則在該非易失性存儲器內(nèi) 建立還尚未建立的特定文件。 在本發(fā)明的一實施例中,上述主機(jī)包括一高速緩沖存儲器,該主機(jī)與該外圍裝置 之間所有指令與數(shù)據(jù)的傳遞皆會通過該高速緩沖存儲器。 在本發(fā)明的一實施例中,上述多個邏輯區(qū)塊地址上的數(shù)據(jù)的總和大于或等于該高 速緩沖存儲器的容量。 在本發(fā)明的一實施例中,上述外圍裝置實際上并不儲存數(shù)據(jù)于該多個邏輯區(qū)塊地 址。 在本發(fā)明的一實施例中,上述數(shù)據(jù)串傳送方法更包括每當(dāng)該外圍裝置接收到該 多個讀取指令的其中一個讀取指令之后,倘若該主機(jī)尚未接收到該第一響應(yīng)訊息,則從該 外圍裝置傳送一第二響應(yīng)訊息至該主機(jī)。 在本發(fā)明的一實施例中,上述第二響應(yīng)訊息的一預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的每個位所記錄的為零。 在本發(fā)明的一實施例中,上述第一響應(yīng)訊息的該預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的每個位所記錄的 數(shù)據(jù)不全為零。 在本發(fā)明的一實施例中,上述芯片為智能卡芯片、射頻識別芯片、無線傳輸芯片或 多媒體控制芯片。 在本發(fā)明的一實施例中,上述外圍裝置為SD存儲卡或匪C存儲卡。
在本發(fā)明的一實施例中,上述芯片兼容于ISO 7816標(biāo)準(zhǔn)或ISO 14443標(biāo)準(zhǔn)。
在本發(fā)明的一實施例中,上述非易失性存儲器為單層記憶單元(Single LevelCell, SLC)反及(NAND)閃存或多層記憶單元(Multi Level Cell,MLC)反及(NAND) 閃存。 在本發(fā)明的一實施例中,上述第一數(shù)據(jù)串的至少一部份為一指令-應(yīng)用程序協(xié)議
數(shù)據(jù)單元(Command-Application Protocol Data Unit, C-APDU),而第一響應(yīng)訊息為一響
應(yīng)-應(yīng)用程序協(xié)議數(shù)據(jù)單元(Response-Application Protocol DataUnit, R-APDU)。 基于上述,本發(fā)明通過在不同的寫入指令中嵌入寫入符記,并使響應(yīng)訊息中包含
有對應(yīng)的寫入符記,可避免在主機(jī)具有高速緩沖存儲器的情況下,因關(guān)閉應(yīng)用程序而產(chǎn)生
的數(shù)據(jù)誤判的情況,而更一步地確保數(shù)據(jù)的正確性。此外,周邊裝置的控制器亦可將對應(yīng)的
讀取符記加到要回傳至主機(jī)的數(shù)據(jù)串中,以進(jìn)一步地確保當(dāng)主機(jī)前后兩次所產(chǎn)生的寫入符
記發(fā)生碰撞時,主機(jī)仍可正確地判斷是否接收到智能卡所產(chǎn)生的響應(yīng)訊息。 為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合附圖,
作詳細(xì)說明如下。
圖1為現(xiàn)有搭配存儲卡的主機(jī)的功能方塊圖。
圖2為根據(jù)本發(fā)明第一實施例繪示的數(shù)據(jù)串傳送系統(tǒng)的功能方塊圖。 圖3為根據(jù)本發(fā)明第一實施例繪示主機(jī)運(yùn)作時的流程圖。 圖4為根據(jù)本發(fā)明第一實施例繪示外圍裝置運(yùn)作時的流程圖。 圖5為根據(jù)圖3和圖4繪示的本發(fā)明第一實施例的數(shù)據(jù)流示意圖。 圖6則繪示圖2中的應(yīng)用程序兩次與智能卡芯片聯(lián)系時寫入符記WT的數(shù)據(jù)流向。 圖7繪示本發(fā)明一實施例中主機(jī)通過控制器傳送指令或數(shù)據(jù)至智能卡芯片時所
采用的數(shù)據(jù)串的架構(gòu)。 圖8繪示本發(fā)明一實施例中控制器回傳至主機(jī)的數(shù)據(jù)串的結(jié)構(gòu)。 圖9繪示本發(fā)明另一實施例中控制器回傳至主機(jī)的數(shù)據(jù)串的結(jié)構(gòu)。 圖10繪示主機(jī)與智能卡芯片聯(lián)系時寫入符記與讀取符記的數(shù)據(jù)流向。 圖11為本發(fā)明一實施例中,主機(jī)在檢驗所接收到的響應(yīng)訊息是否為智能卡芯片
所產(chǎn)生時的流程圖。 圖12繪示本發(fā)明第三實施例傳送數(shù)據(jù)串時的數(shù)據(jù)流向。 圖13為圖2高速緩沖存儲器的使用空間配置圖。 圖14為根據(jù)本發(fā)明第四實施例繪示主機(jī)運(yùn)作時的流程圖。 圖15為根據(jù)本發(fā)明第四實施例繪示外圍裝置運(yùn)作時的流程圖。 圖16為根據(jù)圖14和圖15繪示的本發(fā)明第四實施例的數(shù)據(jù)流示意圖。
具體實施例方式
本發(fā)明提供一種數(shù)據(jù)串傳送方法、系統(tǒng)及其控制器,其適用于在主機(jī)和具有芯片 的外圍裝置之間的數(shù)據(jù)串傳送。上述系統(tǒng)包括應(yīng)用程序與控制器,而應(yīng)用程序與控制器是 分別地安裝和設(shè)置在主機(jī)與外圍裝置。此外,數(shù)據(jù)串得以通過寫入指令而被傳送至芯片。之
11后,通過執(zhí)行多個讀取指令,芯片所產(chǎn)生的響應(yīng)訊息可無誤地被接收。其中,一寫入符記會 被用來檢驗回傳數(shù)據(jù)的正確性,以使主機(jī)得以區(qū)別所接收到響應(yīng)訊息是暫存在高速緩沖存 儲器中的前次響應(yīng)訊息,亦或是本次芯片所產(chǎn)生的響應(yīng)訊息。以下將以數(shù)個范例實施例并 配合所附圖式來詳細(xì)說明本發(fā)明。但必須了解的是,此些范例實施例并非限制本發(fā)明,舉例 來說,本發(fā)明所提供的數(shù)據(jù)串傳送方法、系統(tǒng)及其控制器,除了可應(yīng)用在具有高速緩沖存儲 器的主機(jī)與芯片之間的數(shù)據(jù)串傳遞,以無誤地傳遞芯片的響應(yīng)訊息,而上述芯片可以是射 頻識別(RadioFrequency Identification, RFID)芯片、無線傳輸芯片(如:藍(lán)牙芯片)或 多媒體控制芯片(如數(shù)字錄音芯片)…等。
[第一實施例] 請參照圖2,圖2是根據(jù)本發(fā)明第一實施例繪示的數(shù)據(jù)串傳送系統(tǒng)的概要方塊圖。 數(shù)據(jù)串傳送系統(tǒng)包括應(yīng)用程序206與控制器110。應(yīng)用程序206是安裝在主機(jī)200內(nèi),而控 制器110是設(shè)置在外圍裝置100內(nèi),用以控制外圍裝置100的操作,以及控制外圍裝置100 與主機(jī)200之間的數(shù)據(jù)傳遞。詳細(xì)地說,應(yīng)用程序可儲存于主機(jī)內(nèi)的一控制器中(圖未示), 該控制器可具有一微處理器單元(圖未示)、一緩沖存儲器(圖未示),及一數(shù)據(jù)串傳送模 塊(圖未示)。其中,緩沖存儲器及數(shù)據(jù)串傳送模塊分別耦接至微處理器單元數(shù)據(jù)傳送模 塊。此外,通常外圍裝置100會與主機(jī)200 —起使用,以使主機(jī)200可將指令和數(shù)據(jù)傳送到 周邊裝置100。特別是,外圍裝置100還包括用以執(zhí)行安全驗證等功能的智能卡芯片140, 而控制器110以及執(zhí)行應(yīng)用程序206的主機(jī)200可執(zhí)行根據(jù)本發(fā)明實施例的數(shù)據(jù)傳送方 法,以將訊息傳送至智能卡芯片140并無誤地回傳智能卡芯片140的響應(yīng)訊息至主機(jī)200。 主機(jī)200另包括高速緩沖存儲器212,用以暫存主機(jī)200最近曾使用過的數(shù)據(jù),以提升主機(jī) 200整體的數(shù)據(jù)處理速度。 在本實施例中,外圍裝置100具有用以儲存一般數(shù)據(jù)的非易失性存儲器130,電性 連接控制器110。然而,須說明的,非易失性存儲器130對本發(fā)明來說是選擇性的組件,而非 必要的組件。控制器110會控制外圍裝置100的整體運(yùn)作,例如數(shù)據(jù)串的傳遞、儲存、讀取與 抹除等。控制器110包括微處理單元110a、閃存接口 110b與緩沖存儲器110c。微處理單元 110a會執(zhí)行應(yīng)用程序206所傳送過來的指令,并協(xié)調(diào)控制器110內(nèi)的各個組件以控制控制 器110的整體運(yùn)作。閃存接口 110b電性連接至微處理單元110a,并且用以存取非易失性存 儲器130。換言之,主機(jī)200欲寫入至非易失性存儲器130的數(shù)據(jù)會經(jīng)由閃存接口 110b轉(zhuǎn) 換為非易失性存儲器130所能接受的格式。然而,須說明的,因非易失性存儲器130對本發(fā) 明來說是選擇性的組件,而非必要的組件。故在本發(fā)明的其它不具非易失性存儲器130的 實施例當(dāng)中,控制器110不必具有存儲器接口 110b。緩沖存儲器110c用以暫時地儲存系統(tǒng) 數(shù)據(jù)(例如邏輯實體對映表)或者主機(jī)200所讀取或?qū)懭氲臄?shù)據(jù)。在本實施例中,緩沖存儲 器110c為靜態(tài)隨機(jī)存取存儲器(static random access memory, SRAM)。然而,必須了解的 是,本發(fā)明不限于此,動態(tài)隨機(jī)存取存儲器(Dynamic RandomAccess memory,DRAM)、磁阻式 存儲器(Magnetoresistive Random Access Memory, M廳)、相變化存儲器(Phase Change Random Access Memory, PRAM)、同步動態(tài)隨機(jī)存取存儲器(Synchronous DRAM, SDRAM)或其 它適合的存儲器亦可應(yīng)用于本發(fā)明。 智能卡芯片140電性連接控制器110,并且用以執(zhí)行計算、加密、雙向通信及安全 認(rèn)證等功能。在本發(fā)明實施例中,智能卡芯片140為兼容于IS0 7816標(biāo)準(zhǔn)的接觸式智能卡芯片。然而,必須了解的是,本發(fā)明不限于此。例如,智能卡芯片140亦可是兼容于IS0 14443、 ISO 15408或其它安全芯片標(biāo)準(zhǔn)的接觸或非接觸式智能卡芯片,此外,值得說明的 是,控制器110與智能卡芯片140可各為一獨(dú)立芯片,亦可合并封裝為一單一芯片。
在本發(fā)明實施例中,非易失性存儲器130為單層記憶單元(Single Level Cell, SLC)反及(NAND)閃存。然而,本發(fā)明不限于此,在本發(fā)明另一實施例中,非易失性存儲器 130為亦可為多層記憶單元(Multi Level Cell, MLC)反及(NAND)閃存或其它適合的非 易失性存儲器。此外,雖未繪示于本實施例中,但控制器110可更包括錯誤校正模塊(ECC Module, Error Correction Code Module)與電源管理模i央等功能模塊。
在本實施例中,外圍裝置100可為智能卡或更包含非易失性存儲器而為一整合性 的安全數(shù)字(secure digital, SD)存儲卡。但必須了解的是,在本發(fā)明另一實施例中外圍 裝置100亦可以是多媒體卡(Multi Media Card,匪C)存儲卡或其它的存儲裝置。
本實施例中,外圍裝置100除了控制器110、非易失性存儲器130以及智能卡芯片 140之外還包括總線連接接口 120??偩€連接接口 120電性連接控制器110,并且用以與主 機(jī)200連接。在本實施例中,總線連接接口 120則為一SD接口。必須了解的是,總線連接 接口 120亦可為其它適合的接口。例如當(dāng)外圍裝置100為匪C存儲卡時,總線連接接口 120 為MMC接口 。 主機(jī)200通過執(zhí)行應(yīng)用程序206來操作外圍裝置100,以完成根據(jù)本發(fā)明實施 例的數(shù)據(jù)傳送方法。此外,必須了解的是主機(jī)200亦包含其它組件,例如處理器、操作系 統(tǒng)...等。在本實施例中,主機(jī)200與外圍裝置100之間所有指令與數(shù)據(jù)的傳遞皆會通過 高速緩沖存儲器212。此外,上述主機(jī)200可為個人計算機(jī)、移動電話、筆記本計算機(jī)、個人 數(shù)字助理機(jī)(PDA)....等。 基此,在主機(jī)200在對上述含有智能卡芯片140的外圍裝置IOO進(jìn)行操作時,根據(jù) 本發(fā)明實施例的控制器110配合主機(jī)200所執(zhí)行的應(yīng)用程序206能夠正確地將數(shù)據(jù)或指令 傳送至智能卡芯片140,并無誤地將智能卡芯片140的響應(yīng)訊息傳遞至主機(jī)200。以下將配 合圖3至圖6詳細(xì)說明控制器110與主機(jī)200之間所執(zhí)行數(shù)據(jù)傳送程序的流程。其中,圖3 是根據(jù)本發(fā)明第一實施例繪示主機(jī)200運(yùn)作時的流程圖,圖4是根據(jù)本發(fā)明第一實施例繪 示外圍裝置100運(yùn)作時的流程圖,而圖5是根據(jù)圖3和圖4繪示的數(shù)據(jù)流示意圖,而圖6則 繪示主機(jī)200兩次與智能卡芯片140聯(lián)系時的數(shù)據(jù)流向。 請先參照圖3,每當(dāng)主機(jī)200要傳送數(shù)據(jù)至智能卡芯片140之前,主機(jī)200會先獲 得或產(chǎn)生一寫入符記(write token)WT,并記錄該寫入符記WT(步驟S401)。其中,寫入符 記WT可依一設(shè)定的原則產(chǎn)生,如依序、隨機(jī)數(shù)或是依據(jù)一系統(tǒng)時間產(chǎn)生,故一般說來,在每 次主機(jī)200欲傳送數(shù)據(jù)至智能卡芯片140時,主機(jī)200所獲得的寫入符記WT大多會彼此不 同。此外,當(dāng)主機(jī)200傳送寫入指令至智能卡芯片140時,寫入符記WT會隨著寫入指令被 傳送到控制器110,且寫入符記WT亦會被包含在回傳至主機(jī)200的數(shù)據(jù)串中。主機(jī)200會 比較傳送至控制器110的寫入符記是否與控制器110所回傳的寫入符記一致,以作為在判 斷回傳數(shù)據(jù)是否正確時的依據(jù)。 之后,在主機(jī)200傳送數(shù)據(jù)或指令至外圍裝置100的智能卡芯片140之前,主 機(jī)200會將所欲傳送數(shù)據(jù)或指令與一特定標(biāo)記及寫入符記WT合并,以形成數(shù)據(jù)串(步驟 S403)。如圖7所示,在本實施例中,主機(jī)200傳送至控制器110的數(shù)據(jù)或指令704為一指令-應(yīng)用程序協(xié)議數(shù)據(jù)單元(Command-Application ProtocolData Unit, C-APDU),而 C-APDU 704與特定標(biāo)記702以及寫入符記706合并后,即可形成數(shù)據(jù)串700,以作為主機(jī) 200與智能卡芯片140之間的聯(lián)系之用。然而須注意的,在本發(fā)明外圍裝置IOO不具有非 易失性存儲器130的其它實施例中,數(shù)據(jù)串700可不具有特定標(biāo)記702。亦即,對這些不具 有非易失性存儲器130的實施例而言,特定標(biāo)記702不必包含在數(shù)據(jù)串700當(dāng)中。換言之, 在這些不具有非易失性存儲器130的實施例,當(dāng)進(jìn)行步驟S403時,只須合并C-APDU 704與 寫入符記706,以形成數(shù)據(jù)串700。在本實施例中,特定標(biāo)記702是位于數(shù)據(jù)串700的數(shù)個 最高有效字符(Most Significant Bit, MSB)而形成在C-APDU 704之前,寫入符記706則 是位于數(shù)據(jù)串700的數(shù)個最低有效字符(Least Significant Bit, LSB)而形成在C-APDU 704之后。然而,須注意的,特定標(biāo)記702和寫入符記706在數(shù)據(jù)串700中的位置并不以此 為限,例如在本發(fā)明的另一個實施例中,可通過一編碼器,將特定標(biāo)記702和寫入符記706 的各個位分散在數(shù)據(jù)串700之中,之后在通過相同的編碼器從數(shù)據(jù)串700中擷取出特定標(biāo) 記702和寫入符記706。另外,在本發(fā)明的一實施例中,特定標(biāo)記702和寫入符記706位于 數(shù)據(jù)串700的同一端;在本發(fā)明的另一實施例中,特定標(biāo)記702位于數(shù)據(jù)串700的右端,而 寫入符記706位于數(shù)據(jù)串700的左端。 另須說明的,在本實施例中,倘若主機(jī)200存取的對象為非易失性存儲器130而不 是智能卡芯片140的話,則上述的特定標(biāo)記702及寫入符記706并不會被并入至主機(jī)200 傳送給控制器110的數(shù)據(jù)串中。在后面的說明中,將會進(jìn)一步地說明控制器iio如何依據(jù) 所接收到的數(shù)據(jù)串中是否含有上述的特定標(biāo)記702,來判斷數(shù)據(jù)串所要傳送的目的地是非 易失性存儲器130亦或是智能卡芯片140。 當(dāng)數(shù)據(jù)串700形成之后,主機(jī)200會通過寫入指令,將數(shù)據(jù)串700傳送至外圍裝置 100的控制器110 (步驟S405)。亦即,主機(jī)200會傳送寫入指令至外圍裝置IOO,而此一寫 入指令系被設(shè)定為寫入數(shù)據(jù)串700至外圍裝置100。 當(dāng)數(shù)據(jù)串700被傳送到控制器110之后,主機(jī)200會依序地傳送多個讀取指令至 外圍裝置100的控制器IIO,直到該主機(jī)自外圍裝置IOO接收到智能卡芯片140所產(chǎn)生的 響應(yīng)訊息為止。其中,上述多個讀取指令被設(shè)定為依序地讀取多個邏輯區(qū)塊地址(Logical Block Address, LBA) A工至AN上的數(shù)據(jù)。在本實施例中,上述多個邏輯區(qū)塊地址A工至AN是 屬于單一特定文件。請參考圖3,在將多個讀取指令傳送到外圍裝置100之前,主機(jī)200會 將目前的讀取地址A設(shè)定為起始邏輯區(qū)塊地址& (步驟S407)。之后,主機(jī)200會傳送讀 取指令至外圍裝置100 (步驟S409),而此一讀取指令被設(shè)定讀取一預(yù)定長度的邏輯區(qū)塊地 址,在本實施例中該邏輯區(qū)塊地址為A至(A+511字節(jié))的數(shù)據(jù)(即[A:A+511]的數(shù)據(jù)), 但并不以此為限。另須說明的,在本實施例中,當(dāng)控制器110接收到主機(jī)200所輸出的讀取 指令之后,控制器110會先判斷此讀取指令是否被設(shè)定為讀取上述多個邏輯區(qū)塊地址A至 AN上的數(shù)據(jù),而倘若該讀取指令被設(shè)定為讀取上述多個邏輯區(qū)塊地址&至AN上的數(shù)據(jù),控 制器110是由一緩沖存儲器器中直接產(chǎn)生512位組長度且全為零的數(shù)據(jù),以減少因讀取數(shù) 據(jù)而耗費(fèi)的時間。此外,在本發(fā)明的另一個實施例中,上述512位長度且且全為零的數(shù)據(jù)是 直接從上述單一特定文件讀取,而上述單一特定文件可存在非易失性存儲器130當(dāng)中或是 被配置到控制器110所虛擬出的一存儲單元當(dāng)中。在本實施例中,多個邏輯區(qū)塊地址A至 A,上實際所儲存的數(shù)據(jù)全為零,但在另一實施例中多個邏輯區(qū)塊地址A至A,上所儲存的數(shù)
14據(jù)亦可為一預(yù)設(shè)樣式(pattern)。 請再參考圖3,當(dāng)主機(jī)200傳送讀取指令至外圍裝置100后,即會等待并接收外圍 裝置100所回傳的數(shù)據(jù)串(步驟S411),而上述回傳的數(shù)據(jù)串是微處理單元110a為響應(yīng)已 接收到該讀取指令而產(chǎn)生的,且上述回傳的數(shù)據(jù)串中包含有上述的寫入符記WT。詳言之,當(dāng) 微處理單元llOa接收到包含有寫入符記WT的數(shù)據(jù)串700時,會暫存其中的寫入符記WT,之 后當(dāng)微處理單元110a響應(yīng)主機(jī)200所傳送的讀取指令時,會將所暫存的寫入符記WT加到 要回傳的數(shù)據(jù)串內(nèi)。請參考圖8,圖8為微處理單元110a回傳至主機(jī)200的數(shù)據(jù)串800之 數(shù)據(jù)結(jié)構(gòu)圖。數(shù)據(jù)串800包含有一預(yù)設(shè)數(shù)據(jù)區(qū)802以及一寫入符記區(qū)804,其中預(yù)設(shè)數(shù)據(jù)區(qū) 802用來記載智能卡芯片140所產(chǎn)生的訊息或記載上述512位組長度且全為零(或上述預(yù) 設(shè)樣式)的數(shù)據(jù),而寫入符記區(qū)804則是用來記載上述的寫入符記WT。如圖8所示,寫入符 記區(qū)804位于預(yù)設(shè)數(shù)據(jù)區(qū)802之后。然而,本發(fā)明并不以此為限,例如在本發(fā)明的另一實 施例中,寫入符記區(qū)804位于預(yù)設(shè)數(shù)據(jù)區(qū)802之前。 在之后的步驟S413中,主機(jī)200會判斷回傳的數(shù)據(jù)串800的預(yù)設(shè)數(shù)據(jù)區(qū)802內(nèi)的 每個位所記錄的數(shù)據(jù)是否全部為零,或是判斷預(yù)設(shè)數(shù)據(jù)區(qū)802內(nèi)的數(shù)據(jù)是否為上述的預(yù)設(shè) 樣式。倘若數(shù)據(jù)串800的預(yù)設(shè)數(shù)據(jù)區(qū)802內(nèi)的每個位所記錄的數(shù)據(jù)全部為零,或預(yù)設(shè)數(shù)據(jù) 區(qū)802內(nèi)的數(shù)據(jù)為上述的預(yù)設(shè)樣式,則表示控制器110的微處理單元110a尚未接收到智能 卡芯片140的響應(yīng)訊息,而會進(jìn)行步驟S415 ;而相對的,倘若數(shù)據(jù)串800的預(yù)設(shè)數(shù)據(jù)區(qū)802 內(nèi)的每個位所記錄的數(shù)據(jù)不全為零,則表示控制器110的微處理單元110a可能已經(jīng)接收到 智能卡芯片140的響應(yīng)訊息,而會進(jìn)行步驟S419。 在步驟S419中,主機(jī)200會判斷微處理單元110a所回傳的數(shù)據(jù)串800中的寫入 符記WT是否與主機(jī)200所暫存的寫入符記WT —致。倘若上述兩寫入符記WT彼此一致,則 進(jìn)行步驟S421 ;而倘若上述兩寫入符記WT并不一致,則進(jìn)行步驟S415。 一般說來,在不重 新激活應(yīng)用程序206的情況下,微處理單元110a所回傳的數(shù)據(jù)串800中的寫入符記WT大 多會與主機(jī)200所暫存的寫入符記WT —致。然而,因為主機(jī)200具有高速緩沖存儲器212 的緣故,高速緩沖存儲器212中會存有先前微處理單元110a所回傳的數(shù)據(jù)串,而當(dāng)應(yīng)用程 序206被重新激活而使得主機(jī)200所記錄的寫入符記WT有所變動后,即很有可能會發(fā)生主 機(jī)200所記錄的寫入符記WT與回傳的數(shù)據(jù)串800中的寫入符記WT彼此不一致的情形。
當(dāng)主機(jī)200所記錄的寫入符記WT與回傳的數(shù)據(jù)串800中的寫入符記WT并不一致 時,即使數(shù)據(jù)串800的預(yù)設(shè)數(shù)據(jù)區(qū)802內(nèi)的每個位所記錄的數(shù)據(jù)不全為零,或預(yù)設(shè)數(shù)據(jù)區(qū) 802內(nèi)的數(shù)據(jù)為上述的預(yù)設(shè)樣式,主機(jī)200仍不會將所接收到的數(shù)據(jù)串800的預(yù)設(shè)數(shù)據(jù)區(qū) 802內(nèi)的數(shù)據(jù)視為智能卡芯片140的響應(yīng)訊息。故就數(shù)據(jù)的正確性而言,通過步驟S419中 對于寫入符記WT的比對動作,可避免主機(jī)200將高速緩沖存儲器212先前所暫存的數(shù)據(jù)誤 認(rèn)為由智能卡芯片140所產(chǎn)生的響應(yīng)訊息。舉例來說,假設(shè)在主機(jī)200開機(jī)至關(guān)機(jī)的期間, 應(yīng)用程序206先后被執(zhí)行兩次。在前一次應(yīng)用程序206執(zhí)行期間,主機(jī)200通過上述步驟 S401 S421從智能卡芯片140接收到響應(yīng)訊息,而此一響應(yīng)訊息在應(yīng)用程序206重新被執(zhí) 行后仍存于高速緩沖存儲器212中。在此情況下,倘若重新激活的應(yīng)用程序206在傳送訊 息至智能卡芯片140并等待智能卡芯片140的響應(yīng)訊息的期間并不進(jìn)行步驟S419的判斷 的話,則主機(jī)200即可能會將暫存在高速緩沖存儲器212的前次響應(yīng)訊息誤認(rèn)為本次的響 應(yīng)訊息,而導(dǎo)致數(shù)據(jù)上的錯誤。換言之,通過步驟S419的判斷動作,主機(jī)200即可區(qū)別所接收到的響應(yīng)訊息是本次的響應(yīng)訊息還是高速緩沖存儲器212所暫存的前次響應(yīng)訊息,進(jìn)而 使得數(shù)據(jù)的準(zhǔn)確性會大幅地提高。 當(dāng)主機(jī)200確認(rèn)所接收到的響應(yīng)訊息是本次的響應(yīng)訊息后,主機(jī)200即會將所 接收到的數(shù)據(jù)串800的預(yù)設(shè)數(shù)據(jù)區(qū)802內(nèi)的數(shù)據(jù)視為智能卡芯片140的響應(yīng)訊息(步驟 S421)。 另須注意的,在本發(fā)明的另一實施例中,上述的步驟S413和S419的先后次序?qū)?調(diào),亦即先執(zhí)行步驟S419再執(zhí)行步驟S413。在這實施例中,倘若在步驟S419中判斷出兩寫 入符記WT并不一致,則進(jìn)行步驟S415 ;反之,則進(jìn)行步驟S413。此外,倘若在步驟S413中 判斷出回傳的數(shù)據(jù)串800的預(yù)設(shè)數(shù)據(jù)區(qū)802內(nèi)的每個位所記錄的數(shù)據(jù)全部為零,則進(jìn)行步 驟S415 ;反之,則進(jìn)行步驟S421。 在步驟S415中,主機(jī)200會判斷目前的讀取地址A是否等于最后一個邏輯區(qū)塊地 址A『倘若目前的讀取地址A等于最后一個邏輯區(qū)塊地址A,,則表示主機(jī)200已經(jīng)傳送過 N個讀取指令至外圍裝置100,此時主機(jī)200即會再將目前的讀取地址A設(shè)定為起始邏輯區(qū) 塊地址A (步驟S407),其中上述N個讀取指令系被設(shè)定為從非易失性存儲器130中讀取多 個邏輯區(qū)塊地址A至AN上的數(shù)據(jù)。然而,倘若目前的讀取地址A并不等于最后一個邏輯區(qū) 塊地址AN,則主機(jī)200會將目前的讀取地址A加上一預(yù)設(shè)數(shù)據(jù)長度(步驟S417),而在本實 施例中,此預(yù)設(shè)數(shù)據(jù)長度為512字節(jié)。因此,在本實施例中,主機(jī)200所產(chǎn)生的多個讀取指 令系被設(shè)定為依序地從多個邏輯區(qū)塊地址A至AN讀取相同長度(即512字節(jié)的數(shù)據(jù)。此 外,為了簡化主機(jī)200的操作,在本發(fā)明的另一個實施例中,主機(jī)200會依據(jù)起始邏輯區(qū)塊 地址A以及上述單一特定文件的大小,得到所有的邏輯區(qū)塊地址A至A,,例如第二個邏輯 區(qū)塊地址4即等于(A,512),最后一個邏輯區(qū)塊地址Aw等于(A一512X (N-l)),而該單一特 定文件的大小系等于(512XN)。 此外,在本發(fā)明的其它實施例中,亦可利用一對照表來獲得所有的邏輯區(qū)塊地址 A至AN的信息,其中在一實施例中,上述對照表會列出所有屬于該特定文件的邏輯區(qū)塊地 址;而在另一實施例中,對照表則只列出該特定文件的頭端及尾端的兩個邏輯區(qū)塊地址。其 中,因為邏輯區(qū)塊地址通常以區(qū)段(sector)為單位,而每一區(qū)段的數(shù)據(jù)長度通常即為512 字節(jié),故可通過上述頭端及尾端的兩個邏輯區(qū)塊地址來求得所有的邏輯區(qū)塊地址A工至AN。 如此一來,當(dāng)微處理單元110a判斷出讀取指令中所指派的地址與該對照表所記錄的邏輯 區(qū)塊地址吻合時,倘若智能卡芯片140尚未產(chǎn)生響應(yīng)訊息,微處理單元110a即回傳預(yù)設(shè)數(shù) 據(jù)區(qū)802內(nèi)的每個位所記錄的數(shù)據(jù)皆為零的數(shù)據(jù)串至主機(jī)200。此外,在本發(fā)明的其它實 施例中,外圍裝置100實際上并不儲存數(shù)據(jù)于上述多個邏輯區(qū)塊地址^至A,,亦即上述的 特定文件可以是虛擬的,而當(dāng)微處理單元110a判斷出讀取指令所指派的地址屬于上述多 個邏輯區(qū)塊地址A至AN時,微處理單元110a則直接產(chǎn)生響應(yīng)訊息并將響應(yīng)訊息傳送至主 機(jī)200,而省略掉讀取上述特定文件的程序。另須說明的,本發(fā)明中的預(yù)設(shè)數(shù)據(jù)長度并不以 512字節(jié)限,上述的預(yù)設(shè)數(shù)據(jù)長度可以是其它數(shù)值,,如4K字節(jié)、8K字節(jié)等。除此之外,在本 實施例中,因每個讀取指令系被設(shè)定為讀取預(yù)設(shè)數(shù)據(jù)長度的數(shù)據(jù),故該預(yù)設(shè)數(shù)據(jù)長度可針 對不同的需求來調(diào)整,例如可以將該預(yù)設(shè)數(shù)據(jù)長度縮小,以使每次控制器110的微處理單 元110a為響應(yīng)讀取指令而回傳的數(shù)據(jù)串的數(shù)據(jù)量可以降低,進(jìn)而可縮短微處理單元110a 響應(yīng)的時間,并增進(jìn)控制器110的效能。
16
相對于圖3所繪示的主機(jī)200與一智能卡芯片140運(yùn)作時的流程,外圍裝置100與該主機(jī)200的運(yùn)作流程則可參考圖4。首先,當(dāng)外圍裝置100開始運(yùn)作時,控制器110的微處理單元110a會先記錄上述單一特定文件的起始邏輯區(qū)塊地址A以及大小(步驟S501),以作為后續(xù)比對主機(jī)200所產(chǎn)生的讀取指令之用。然而,在本發(fā)明的另一實施例中,在記錄起始邏輯區(qū)塊地址A以及單一特定文件的大小之前,微處理單元110a會先判斷該單一特定文件是否存在于該非易失性存儲器130內(nèi),而倘若上述的單一特定文件尚未存在于非易失性存儲器130內(nèi),則微處理單元110a會在非易失性存儲器130內(nèi)建立上述的單一特定文件,或是虛擬出的一存儲單元,并將上述單一特定文件配置到所虛擬出的存儲單元當(dāng)中。
當(dāng)起始邏輯區(qū)塊地址&與單一特定文件的大小被記錄之后,控制器110即可開始接收主機(jī)200所輸出的寫入指令(步驟S503),其中該寫入指令系被設(shè)定為寫入第一數(shù)據(jù)串至外圍裝置100,而該第一數(shù)據(jù)串可以是如圖7中所示的數(shù)據(jù)串700或是其它的數(shù)據(jù)串。當(dāng)控制器110接收到寫入指令之后,即會判斷該第一數(shù)據(jù)串是否含有如圖7所示的特定標(biāo)記702 (步驟S505)。倘若第一數(shù)據(jù)串不含有特定標(biāo)記702,則控制器110的微處理單元110a會依據(jù)寫入指令所指派的地址,將第一數(shù)據(jù)串寫入至非易失性存儲器130(步驟S507);相對的,倘若第一數(shù)據(jù)串含有特定標(biāo)記702,則控制器110的微處理單元110a會將第一數(shù)據(jù)串中的寫入符記WT(如圖7中的寫入符記706)記錄在緩沖存儲器110c,并將特定標(biāo)記702與寫入符記WT從第一數(shù)據(jù)串中去除,以產(chǎn)生第二數(shù)據(jù)串(如圖7中所示的C-APDU 704),再將第二數(shù)據(jù)串傳送至智能卡芯片140(步驟S509)。如此一來,通過偵測第一數(shù)據(jù)串中是否含有特定標(biāo)記702,控制器110的微處理單元110a即可判斷數(shù)據(jù)串應(yīng)該送往非易失性存儲器130或送往智能卡芯片140。須說明的,在本發(fā)明不具有非易失性存儲器130的其它實施例中,因數(shù)據(jù)串700不具有特定標(biāo)記702,故圖4的流程中的步驟S505和S507會予以省略,且在步驟S509中即不須將特定標(biāo)記702從數(shù)據(jù)串700除去,而直接將數(shù)據(jù)串700的至少一部份傳送到智能卡芯片140。另須說明的,在本發(fā)明的另一個實施例中,上述的第二數(shù)據(jù)串即為上述的第一數(shù)據(jù)串。換言之,微處理單元110a不會將特定標(biāo)記702或?qū)懭敕沇T從第一數(shù)據(jù)串中去除,而是將第一數(shù)據(jù)串直接轉(zhuǎn)送到智能卡芯片140。之后,智能卡芯片140再從所接收到的第一數(shù)據(jù)串辨識出特定標(biāo)記702、 C-APDU 704和寫入符記WT。此外,本實施例中,第一數(shù)據(jù)串中的寫入符記WT除如上所述會記錄在緩沖存儲器110c之外。在本發(fā)明的另一實施例中,微處理單元110a會將第一數(shù)據(jù)串中的寫入符記WT記錄在非易失性存儲器130。 當(dāng)?shù)诙?shù)據(jù)串被送往智能卡芯片140之后,控制器110的微處理單元110a即會等待接收主機(jī)200所傳送過來的讀取指令(步驟S511),其中上述的讀取指令包含但不限于主機(jī)200于圖3的步驟S409所傳送的讀取指令。之后,控制器110的微處理單元110a會判斷所接收的讀取指令所指派的地址是否屬于上述的單一特定文件(步驟S513),亦即微處理單元110a會判斷所接收的讀取指令是否被設(shè)定為讀取上述多個邏輯區(qū)塊地址&至AN上的數(shù)據(jù)。若上述讀取指令所指派的地址并非屬于該單一特定文件,則微處理單元110a會依據(jù)讀取指令所指派的地址讀取對應(yīng)的數(shù)據(jù)(步驟S515),并將數(shù)據(jù)傳送至主機(jī)200 ;相對的,若上述讀取指令所指派的地址屬于上述的單一特定文件,則微處理單元110a會再判斷使否已經(jīng)接收到智能卡芯片140的響應(yīng)訊息(步驟S517),而在本實施例中,此響應(yīng)訊息為智能卡芯片140因接收到上述的第二數(shù)據(jù)串而產(chǎn)生,并且為一響應(yīng)-應(yīng)用程序協(xié)議數(shù)據(jù)單元(Response-Application Protocol Data Unit, R-APDU)。在步驟S517中,倘若微處理單元110a已經(jīng)接收到智能卡芯片140的響應(yīng)訊息,則微處理單元llOa會將智能卡芯片140所產(chǎn)生的響應(yīng)訊息會與記錄在緩沖存儲器110c(或非易失性存儲器130)內(nèi)的寫入符記WT合并成一第一響應(yīng)訊息(步驟S521),再將此第一響應(yīng)訊息回傳至主機(jī)200 (步驟S523)。上述的第一響應(yīng)訊息的數(shù)據(jù)結(jié)構(gòu)與圖8所示數(shù)據(jù)串800的數(shù)據(jù)結(jié)構(gòu)一致,其中預(yù)設(shè)數(shù)據(jù)區(qū)802用來記載智能卡芯片140所產(chǎn)生的響應(yīng)訊息,而寫入符記區(qū)804則用來記載寫入符記WT。
倘若在步驟S517中,微處理單元110a尚未接收到智能卡芯片140的響應(yīng)訊息,則控制器110的微處理單元110a會回傳一第二響應(yīng)訊息至主機(jī)200,以響應(yīng)所接收到的讀取指令(步驟S519)。在本實施例中,第二響應(yīng)訊息的數(shù)據(jù)結(jié)構(gòu)亦與圖8所示數(shù)據(jù)串800的數(shù)據(jù)結(jié)構(gòu)一致,其中預(yù)設(shè)數(shù)據(jù)區(qū)802內(nèi)的每個位所記錄的數(shù)據(jù)皆為零,而寫入符記區(qū)804則用來記載寫入符記WT。須說明的,在本發(fā)明的另一實施例中,倘若在步驟S517中微處理單元110a尚未接收到智能卡芯片140的響應(yīng)訊息,則在步驟S519中,微處理單元110a會回傳所有位皆為零的數(shù)據(jù)串至主機(jī)200,亦即回傳至主機(jī)200的第二響應(yīng)訊息中并不含有寫入符記WT。當(dāng)進(jìn)行完步驟S519之后,微處理單元110a會再繼續(xù)等待主機(jī)200的下一個讀取指令,直到接收到智能卡芯片140所產(chǎn)生的響應(yīng)訊息,并回傳上述的第一響應(yīng)訊息至主機(jī)200為止。 綜上所述,主機(jī)200和外圍裝置100之間的數(shù)據(jù)串傳送過程大略地可區(qū)分為一傳送程序以及一等待響應(yīng)訊息程序,如圖5所示。在進(jìn)行傳送程序期間,主機(jī)200會先傳送寫入指令至控制器IIO(相當(dāng)于圖3的步驟S403和S405),之后控制器110會檢驗所接收的數(shù)據(jù)串是否含有特定標(biāo)記(相當(dāng)于圖4的步驟S505)。倘若所接收的數(shù)據(jù)串含有特定標(biāo)記,控制器110就會記錄數(shù)據(jù)串中的寫入符記WT,并將數(shù)據(jù)串中的C-APDU傳送至智能卡芯片140(相當(dāng)于圖4的步驟S509)。此外,在進(jìn)行上述等待響應(yīng)訊息程序的期間,倘若智能卡芯片140尚未產(chǎn)生響應(yīng)訊息(例如R-APDU),主機(jī)200會依序地傳送多個讀取指令至控制器110并接收控制器110所回傳的第二響應(yīng)訊息(相當(dāng)于圖3的步驟S407至S417)。另一方面,控制器110會比較讀取指令中所指配的地址是否與邏輯區(qū)塊地址&至AN吻合并回傳第二響應(yīng)訊息至主機(jī)200(相當(dāng)于圖4的步驟S511至S519)。之后,當(dāng)控制器110接收到智能卡芯片140所產(chǎn)生的響應(yīng)訊息后,控制器110則會將上述的第一響應(yīng)訊息傳送至主機(jī)200(相當(dāng)于圖4的步驟S521和S523)。然后,主機(jī)200會比對所接收到的第一響應(yīng)訊息中的寫入符記是否與所記錄的寫入符記一致(相當(dāng)于圖3的步驟S419)。最后,當(dāng)?shù)谝豁憫?yīng)訊息中的寫入符記與主機(jī)200所記錄的寫入符記一致時,主機(jī)200即會將所接收到的第一響應(yīng)訊息的預(yù)設(shè)數(shù)據(jù)區(qū)802內(nèi)的數(shù)據(jù)視為智能卡芯片140所產(chǎn)生的響應(yīng)訊息(相當(dāng)于圖3的步驟S421)。 此外,如上所述,每當(dāng)主機(jī)200要傳送數(shù)據(jù)至智能卡芯片140之前,主機(jī)200會先獲得寫入符記WT,而每次主機(jī)200所獲得的寫入符記WT大多會彼此不同。請參考圖6,每次主機(jī)200傳送數(shù)據(jù)至智能卡芯片140時,主機(jī)200會將寫入符記WT加入至欲傳遞的數(shù)據(jù)串中,之后再通過寫入指令將含有寫入符記WT的數(shù)據(jù)串傳送到控制器110 。如圖6所示,主機(jī)200前后兩次傳送數(shù)據(jù)串至智能卡芯片140時,其所獲得的寫入符記彼此不同,其中前一次獲得寫入符記WT1,而后一次獲得寫入符記WT2。當(dāng)控制器110接收到來自主機(jī)200的寫入數(shù)據(jù)串時,控制器110會先后地暫存數(shù)據(jù)串當(dāng)中的寫入符記WT1及WT2,而當(dāng)控制器110接收到包含有寫入符記WT2的數(shù)據(jù)串時,其原先所暫存的寫入符記WT1會被后來的寫入符記WT2所取代。此外,當(dāng)控制器110接收到智能卡芯片140的響應(yīng)訊息(例如R-APDU)時,控制器110會將所暫存的寫入符記WT1或WT2加入到回傳的響應(yīng)訊息當(dāng)中。如此一來,主機(jī)200通過比對主機(jī)200所暫存的寫入符記與響應(yīng)訊息中的寫入符記,即可判斷所接收到的響應(yīng)訊息是否是智能卡芯片140針對特定的寫入指令所要產(chǎn)生的響應(yīng)訊息。
此外,在本實施例中,系將圖3步驟S405的寫入指令所指派的內(nèi)存寫入地址設(shè)定成不同于圖3的步驟S409的讀取指令所指派的內(nèi)存讀取地址。因此,當(dāng)主機(jī)200傳送讀取指令至控制器110之后,圖2的主機(jī)200并不會將先前因?qū)懭胫噶顚懭胪鈬b置100而儲存至高速緩沖存儲器212的數(shù)據(jù)串視為快取數(shù)據(jù)而回傳至主機(jī)200。另外,在本實施例中,上述單一特定文件的數(shù)據(jù)量大于或等于高速緩沖存儲器212的容量,且因每次主機(jī)所傳送的讀取指令系讀取不同邏輯區(qū)塊地址上的數(shù)據(jù),故在高速緩沖存儲器212所儲存的快取數(shù)據(jù)會逐漸地被新的快取數(shù)據(jù)所取代的情況下,高速緩沖存儲器212中所儲存的響應(yīng)訊息會持續(xù)更新而保有最新數(shù)據(jù),故可避免高速緩沖存儲器212傳送錯誤的響應(yīng)訊息給主機(jī)200。因此,智能卡芯片140所產(chǎn)生的響應(yīng)訊息即可無誤地被回傳至主機(jī)200。
[第二實施例] 在本發(fā)明的另一實施例中,控制器110會將一讀取符記(read token)加入到回傳至主機(jī)200的響應(yīng)訊息中,用以進(jìn)一步地確保當(dāng)主機(jī)200產(chǎn)生的寫入符記發(fā)生碰撞時,主機(jī)200仍可正確地判斷是否接收到智能卡140所產(chǎn)生的響應(yīng)訊息。請參考圖9,圖9繪示本發(fā)明另一實施例中控制器110回傳至主機(jī)200的數(shù)據(jù)串900之結(jié)構(gòu)。數(shù)據(jù)串900除了具有如上述數(shù)據(jù)串800的預(yù)設(shè)數(shù)據(jù)區(qū)802以及寫入符記區(qū)804之外,另具有一讀取符記區(qū)806。讀取符記區(qū)806是用來記載控制器110的微處理單元110a所產(chǎn)生的讀取符記RT。此外,預(yù)設(shè)數(shù)據(jù)區(qū)802和寫入符記區(qū)804的作用在上述說明中已經(jīng)闡述過,在此即不再贅述。雖然,圖9中所繪示的讀取符記區(qū)806位于寫入符記區(qū)804之后,但本發(fā)明并不以此為限。例如寫入符記區(qū)804和讀取符記區(qū)806在數(shù)據(jù)串900上的位置可以互換,或是寫入符記區(qū)804和讀取符記區(qū)806可分別位于數(shù)據(jù)串900的兩端或皆位于數(shù)據(jù)串900的同一端。
請參考圖10,圖10繪示主機(jī)200與智能卡芯片140聯(lián)系時寫入符記WT與讀取符記RT的數(shù)據(jù)流向。與前一實施例一樣,主機(jī)200亦會將所獲得的寫入符記WT加入至傳送給控制器110的數(shù)據(jù)串中,而控制器110會將來自主機(jī)200的寫入符記WT暫存起來。在本實施例中,控制器110于響應(yīng)主機(jī)200所傳送的讀取指令時,除了會在響應(yīng)訊息中加入所暫存的寫入符記WT之外,亦會依據(jù)一預(yù)設(shè)規(guī)則產(chǎn)生一讀取符記RT,并將所產(chǎn)生的讀取符記RT加入至響應(yīng)訊息中。如圖10所示,當(dāng)主機(jī)200與智能卡芯片140聯(lián)系時,主機(jī)200會先傳送一寫入指令再依序地傳送多個讀取指令。而與前一實施例中一樣,該寫入指令被設(shè)定為寫入數(shù)據(jù)串700至外圍裝置100,以將寫入符記WT傳送給控制器IIO,并將數(shù)據(jù)串700中的C-APDU 704傳送給智能卡芯片140 ;至于多個讀取指令亦是被設(shè)定為依序地讀取上述單一特定文件的多個邏輯區(qū)塊地址A至A,上的數(shù)據(jù)。在本實施例中,當(dāng)控制器110接收到具有寫入符記WT的寫入數(shù)據(jù)串之后,即會重新設(shè)定讀取符記RT,其中,該讀取符記RT可為一特定樣式,而每次讀取符記RT被重新設(shè)定后,其特定樣式即會改變。如此一來,主機(jī)200通過分析回傳數(shù)據(jù)串當(dāng)中的讀取符記RT是否符合特定樣式,即可判斷出回傳數(shù)據(jù)串是暫存于高速緩沖存儲器212的舊有數(shù)據(jù)串,亦或是控制器110所產(chǎn)生的新數(shù)據(jù)串。詳言之,倘若回傳數(shù)據(jù)串當(dāng)中的讀取符記RT符合特定樣式,且其中的寫入符記WT與主機(jī)200所暫存的寫入符記一致時,主機(jī)200即會將回傳的數(shù)據(jù)串視為控制器110所產(chǎn)生的新數(shù)據(jù)串;而倘若回傳數(shù)據(jù)串當(dāng)中的讀取符記RT不符合特定樣式,或其中的寫入符記WT與主機(jī)200所暫存的寫入符記不一致時,主機(jī)200即會將回傳的數(shù)據(jù)串視為暫存于高速緩沖存儲器212的舊有數(shù)據(jù)串。 在本發(fā)明的另一實施例中,讀取符記RT的設(shè)定方式可另以下述方式執(zhí)行。當(dāng)控制器110接收到具有特定標(biāo)記702和寫入符記WT的寫入數(shù)據(jù)串之后,即會初始化讀取符記RT的初始值。換言之,在每一次重新設(shè)定讀取符記RT的初始值后,當(dāng)次所重新設(shè)定的讀取符記RT的初始值,會與前一次重新設(shè)定的讀取符記RT的初始值不同。之后,每當(dāng)控制器110接收到上述被設(shè)定為讀取該特定文件的任一個讀取指令時,控制器110即會依據(jù)一預(yù)設(shè)規(guī)則更新讀取符記RT的值,并將更新后的讀取符記RT加入到回傳的數(shù)據(jù)串900中。舉例來說,在本發(fā)明的一實施例中,讀取符記RT的初始值會被設(shè)定為O,而每當(dāng)控制器110接收到上述被設(shè)定為讀取該特定文件的任一個讀取指令時,讀取符記RT會被累加1。如以圖IO配合來說明的話,圖10中第一個回傳的讀取符記RT1即等于1,第二個回傳的讀取符記RT2即等于2……依此類推。須注意的是,累加至讀取符記RT的值除了 l之外,在本發(fā)明的其它實施例中,累加至讀取符記RT的值可以是其它值,而使得任兩個接續(xù)地回傳給主機(jī)200的響應(yīng)訊息中的讀取符記RT皆相差一默認(rèn)值。在此實施例中,倘若任兩個接續(xù)地回傳給主機(jī)200的響應(yīng)訊息中的讀取符記RT之間的差值等于上述默認(rèn)值,且其中的寫入符記WT與主機(jī)200所暫存的寫入符記一致時,主機(jī)200會將回傳的數(shù)據(jù)串視為控制器110所產(chǎn)生的新數(shù)據(jù)串;而倘若任兩個接續(xù)地回傳給主機(jī)200的響應(yīng)訊息中的讀取符記RT之間的差值不等于上述默認(rèn)值,或其中的寫入符記WT與主機(jī)200所暫存的寫入符記不一致時,主機(jī)200即會將回傳的數(shù)據(jù)串視為暫存于高速緩沖存儲器212的舊有數(shù)據(jù)串。 在本發(fā)明的另一實施例中,為進(jìn)一步地確保可正確地接收到智能卡140所產(chǎn)生的響應(yīng)訊息,主機(jī)200除了會檢驗所連續(xù)地接收到的響應(yīng)訊息之間的差值是否與系統(tǒng)所預(yù)設(shè)的差值一致之外,主機(jī)200還會判斷所連續(xù)地接收到的至少一預(yù)定數(shù)目個響應(yīng)訊息中的讀取符記RT之間的差值是否皆為一定值。此外,當(dāng)寫入符記WT和讀取符記RT都通過檢測時,主機(jī)200傳送給控制器110的下一個讀取指令所要讀取的邏輯區(qū)塊地址,會與最近一次已傳送的讀取指令所要讀取的邏輯區(qū)塊地址,相間隔多個邏輯區(qū)塊。請參考圖ll,圖11為本發(fā)明的另一實施例中,主機(jī)200在檢驗所接收到的響應(yīng)訊息是否為智能卡芯片140所產(chǎn)生時的流程圖。首先,在步驟S902中,主機(jī)200會先設(shè)定變量j、B和x,以供后續(xù)流程進(jìn)行之用,其中變量j是用以記錄目前寫入符記WT和讀取符記RT都通過檢測的次數(shù),變量x是用以設(shè)定連續(xù)通過檢測的次數(shù),而變量B是用以設(shè)定每次讀取邏輯區(qū)塊地址的間隔倍數(shù)。在本實施例中,變量j、B和x分別設(shè)為0、2和3,但本發(fā)明并不以此為限。設(shè)定完變量j、 B和x之后,在步驟S904中,主機(jī)200會傳送讀取指令至控制器110,以讀取邏輯區(qū)塊地址A至(A+511字節(jié))的數(shù)據(jù)(即[A:A+511]的數(shù)據(jù)),并等待接收回傳的數(shù)據(jù)串。當(dāng)主機(jī)200于步驟S906接收到回傳的數(shù)據(jù)串之后,主機(jī)200會判斷所回傳的數(shù)據(jù)串中的寫入符記WT是否與主機(jī)200本身所暫存的寫入符記一致。倘若所回傳的數(shù)據(jù)串中的寫入符記WT與主機(jī)200本身所暫存的寫入符記并不一致,則變量j會歸零,且目前的邏輯區(qū)塊地址A會累加512字節(jié)的長度,以設(shè)定下一個所要讀取的邏輯區(qū)塊的地址(步驟S918);倘若所回傳的數(shù)據(jù)串中的寫入符記WT與主機(jī)200本身所暫存的寫入符記一致,則主機(jī)200會進(jìn)行步驟S910,以判斷回傳的數(shù)據(jù)串中的讀取符記RT是否與上一個回傳數(shù)據(jù)串中的讀取符記相差一定值。其中,上述定值可以是任何值,而在本實施例中該定值為整數(shù)一。倘若回傳的數(shù)據(jù)串中的讀取符記RT與上一個回傳數(shù)據(jù)串中的讀取符記之間的差值并不等于上述定值,或是因回傳的數(shù)據(jù)串是第一筆回傳的數(shù)據(jù)串而沒有上一個回傳數(shù)據(jù)串的話,則主機(jī)200會進(jìn)行步驟S918,以設(shè)定下一個所要讀取的邏輯區(qū)塊,并將變量j歸零;然倘若回傳的數(shù)據(jù)串中的讀取符記RT與上一個回傳數(shù)據(jù)串中的讀取符記之間的差值等于上述定值的話,則主機(jī)會將變量j累加1 (步驟S912)。之后,主機(jī)200會判斷目前變量j的值是否大于或等于變量x的值(步驟S914)。倘若變量j小于變量x,則主機(jī)會將目前的邏輯區(qū)塊地址A會累加(512XB)字節(jié)的長度(步驟S920),以設(shè)定下一個所要讀取的邏輯區(qū)塊的地址,而因B大于1,故下一個所要讀取的邏輯區(qū)塊的地址會與最近一次已讀取的邏輯區(qū)塊地址相間隔多個邏輯區(qū)塊,其中在本實施例中,每個邏輯區(qū)塊的大小為512字節(jié)。然而,倘若在步驟S914中,主機(jī)200判斷出變量j大于或等于變量x的話,則表示主機(jī)200所連續(xù)地接收到的至少x個(即三個)響應(yīng)訊息中的讀取符記RT之間的差值皆為上述的定值。之后,主機(jī)200即會將最近所接收到的j個回傳數(shù)據(jù)串都視為控制器110所新產(chǎn)生的數(shù)據(jù)串(步驟S916)。由此可知,在本實施例中,唯有當(dāng)寫入符記WT和讀取符記RT都通過檢測的連續(xù)次數(shù)大于或等于變量x的設(shè)定值時,所回傳的數(shù)據(jù)串才會被判定為是由控制器110所新產(chǎn)生的數(shù)據(jù)串。此外,須注意的是,倘若在步驟S920中,邏輯區(qū)塊地址A累加后的地址超過最大的邏輯區(qū)塊地址A,,則累加后所得到的邏輯區(qū)塊地址A會再減去上述特定文件的文件大小,或直接將邏輯區(qū)塊地址A設(shè)定為第一個邏輯區(qū)塊地址A,而使得邏輯區(qū)塊地址A會落在&至AN之間。在本實施例中,目前的邏輯區(qū)塊地址A每次所累加位長度為每個邏輯區(qū)塊大小(512字節(jié))的整數(shù)倍(即一倍或B倍)。然而,須注意的,本發(fā)明中每個邏輯區(qū)塊大小并不以512字節(jié)為限,每邏輯區(qū)塊的大小亦可為其它值,如4K字節(jié)、8K字節(jié)等。
[第三實施例] 請參考圖2。在本發(fā)明的第三實施例中,為更有效濾地排除暫存于高速緩沖存儲器212的舊有數(shù)據(jù)串,且更快地接收到來自控制器110所傳送過來的新數(shù)據(jù)串,主機(jī)200在每傳送任一個讀取指令至外圍裝置100以讀取邏輯區(qū)塊地址&至AN上的數(shù)據(jù)后,主機(jī)200會再執(zhí)行另一寫入指令,以將數(shù)據(jù)寫入至外圍裝置100的暫存盤112。在本實施例中,暫存盤112配置在緩沖存儲器110c當(dāng)中;而在本發(fā)明的另一實施例中,暫存盤112則配置在非易失性存儲器130當(dāng)中。請參考圖13,圖13繪示本發(fā)明第三實施例傳送數(shù)據(jù)串時的數(shù)據(jù)流向。在本實施例中,當(dāng)主機(jī)200每傳送任一個讀取指令至外圍裝置100以讀取邏輯區(qū)塊地址A至AN上的數(shù)據(jù)后,主機(jī)200會再執(zhí)行寫入指令,以將數(shù)據(jù)寫入至外圍裝置100的暫存盤112。此外,在本發(fā)明的另一個實施例中,在主機(jī)200通過寫入指令將上述的數(shù)據(jù)串700傳送到控制器110之后,主機(jī)200也會再執(zhí)行寫入指令,以將數(shù)據(jù)寫入至?xí)捍姹P112。如圖所示,當(dāng)主機(jī)200通過寫入指令將數(shù)據(jù)串700傳送到控制器110之后,以及每當(dāng)主機(jī)200傳送讀取指令以讀取邏輯區(qū)塊地址A至Ax(其中Ax屬于&至AN當(dāng)中的一個)上的數(shù)據(jù)后,主機(jī)200會再執(zhí)行寫入指令,以將數(shù)據(jù)寫入至?xí)捍姹P112的邏輯區(qū)塊地址Atl至At(x+1)。此外,因存在有高速緩沖存儲器212的緣故,寫到暫存盤112的數(shù)據(jù)也會被暫存到高速緩沖存儲器212當(dāng)中。如圖14所示,高速緩沖存儲器212的暫存數(shù)據(jù)區(qū)218即是用來暫存寫到暫
21存盤112的數(shù)據(jù)。此外,控制器110因響應(yīng)主機(jī)的讀取指令而回傳給主機(jī)200的數(shù)據(jù)串會被暫存在高速緩沖存儲器212的讀取數(shù)據(jù)區(qū)216中,而主機(jī)200通過寫入指令而傳送至控制器110的數(shù)據(jù)串則會被暫存在高速緩沖存儲器212的寫入數(shù)據(jù)區(qū)。因暫存數(shù)據(jù)區(qū)218所暫存的數(shù)據(jù)產(chǎn)生排擠效應(yīng),故當(dāng)暫存盤112逐漸增大時,寫入數(shù)據(jù)區(qū)214和讀取數(shù)據(jù)區(qū)216所配置到的使用空間會逐漸地縮小。又因智能卡經(jīng)片140所產(chǎn)生的響應(yīng)訊息會被包含在控制器110回傳到主機(jī)200的數(shù)據(jù)串中,故當(dāng)讀取數(shù)據(jù)區(qū)216的使用空間變小時,主機(jī)200所接收到的回傳數(shù)據(jù)串可能是高速緩沖存儲器212先前所暫存的舊有數(shù)據(jù)串的機(jī)率就會降低,相對地即提高主機(jī)200接收到來自控制器110新數(shù)據(jù)串的機(jī)率,進(jìn)而使得主機(jī)200可更有效濾地排除暫存于高速緩沖存儲器212的舊有數(shù)據(jù)串,而更快地接收到來自控制器110所傳送過來的新數(shù)據(jù)串。此外,在本發(fā)明的另一實施例中,當(dāng)暫存盤112的大小超過一預(yù)設(shè)數(shù)據(jù)量時,主機(jī)200會發(fā)出清除暫存盤112的指令至控制器110,以清除暫存盤112的數(shù)據(jù)。舉例來說,假設(shè)高速緩沖存儲器212的容量為2048K字節(jié),未避免暫存數(shù)據(jù)區(qū)218過大而影響主機(jī)200與控制器110之間數(shù)據(jù)與指令的傳遞,主機(jī)200會在暫存盤112的數(shù)據(jù)量大于1920K字節(jié)時,發(fā)出清除暫存盤112的指令,而使得暫存數(shù)據(jù)區(qū)218的使用空間重新地配置。當(dāng)然,上述僅是示例性的說明,高速緩沖存儲器212的容量以及清除暫存盤112的時機(jī)并不以此為限。[第四實施例] 上述第一實施例中,主機(jī)200傳送至外圍裝置100的多個讀取指令系被設(shè)定為讀取單一特定文件的多個邏輯區(qū)塊地址A至A,上的數(shù)據(jù)。相對地,在本發(fā)明的第四實施例中,主機(jī)200傳送至外圍裝置100的多個讀取指令被設(shè)定為讀取多個特定文件巳至FN的多個邏輯區(qū)塊地址B工至BN上的數(shù)據(jù),其中上述多個特定文件巳至FN儲存在非易失性存儲器130中。此外,在本發(fā)明的其它實施例中,外圍裝置100實際上并不儲存數(shù)據(jù)于上述多個邏輯區(qū)塊地址B工至BN,亦即上述多個特定文件巳至FN可以是虛擬的,而當(dāng)微處理單元110a判斷出讀取指令所指派的地址屬于上述多個邏輯區(qū)塊地址A工至AN時,微處理單元110a則直接產(chǎn)生響應(yīng)訊息并將響應(yīng)訊息串送至主機(jī)200,而省略掉讀取非易失性存儲器130的程序。
請參考圖15至圖17,圖15為根據(jù)本發(fā)明第四實施例繪示主機(jī)200運(yùn)作時的流程圖。圖16為根據(jù)本發(fā)明第四實施例繪示外圍裝置100運(yùn)作時的流程圖。圖17為根據(jù)圖15和圖16繪示的本發(fā)明第四實施例的數(shù)據(jù)流示意圖。 圖15所繪示的流程與圖3所繪示的流程非常類似,其中的不同之處在于圖3中的步驟S407、 S409、 S415和S417分別被圖15中的步驟S407'、 S409'、 S415'和S417'所取代,至于其它的步驟S401、S403、S405、S411、S413、S419和S421則相同而不再贅述。在步驟S407'中,主機(jī)200會將目標(biāo)文件Ft設(shè)置為第一個特定文件巳。之后,主機(jī)200會傳送讀取指令至外圍裝置100(步驟S409'),而此一讀取指令被設(shè)定為從非易失性存儲器130中讀取目標(biāo)文件Ft。此外,在步驟S415'中,主機(jī)200會判斷目前的目標(biāo)文件Ft是否為最后一個特定文件F『倘若目前的目標(biāo)文件Ft為最后一個特定文件F,,則表示主機(jī)200已經(jīng)傳送過N個讀取指令至外圍裝置100,此時主機(jī)200即會再將目前的目標(biāo)文件Ft設(shè)定為第一個特定文件巳(步驟S407')。然而,倘若目前的目標(biāo)文件Ft不是最后一個特定文件F爐則主機(jī)200會將目標(biāo)文件Ft設(shè)定為一個特定文件(步驟S417'),即將變量t累加l。另附加說明的,在本發(fā)明的另一個實施例中,上述多個特定文件巳至FN的起始邏輯區(qū)塊地址可分別為B工至BN(類似于第一實施例中的邏輯區(qū)塊地址&至AN)。 至于圖16所繪示的流程與圖4所繪示的流程非常類似,其中的不同之處在于圖4 中的步驟S501和S513分別被圖8中的步驟S501'和S513'所取代,至于其它的步驟則相同 而不再贅述。在步驟S501'中,控制器110的微處理單元110a會先記錄上述多個特定文件 ^至FN的邏輯區(qū)塊地址B工至BN。在步驟S513'中,控制器110的微處理單元110a會判斷 所接收的讀取指令其指派的地址是否屬于上述多個特定文件巳至F,,亦即微處理單元110a 會判斷所接收的讀取指令是否被設(shè)定為讀取上述多個邏輯區(qū)塊地址B工至BN上的數(shù)據(jù)。
至于圖17所繪示的流程與圖5所繪示的流程非常類似,不同之處在于,當(dāng)進(jìn)行等 待響應(yīng)訊息程序的期間,主機(jī)200傳送至控制器110的讀取指令被設(shè)定為讀取上述多個特 定檔巳至FN。此外,在控制器110尚未接收到智能卡芯片140所產(chǎn)生的響應(yīng)訊息之前,控 制器110會比較讀取指令中所指配的地址是否與邏輯區(qū)塊地址B工至BN吻合。
另附帶說明的,在本發(fā)明的另一實施例中,在記錄特定文件F工至FN的邏輯區(qū)塊地 址B工至BN之前,微處理單元110a會先判斷上述多個特定文件巳至FN是否存在于非易失 性存儲器130內(nèi),而倘若上述多個特定文件巳至FN的任何一個特定文件尚未存在于非易失 性存儲器130內(nèi),則微處理單元llOa會在非易失性存儲器130內(nèi)建立還尚未建立的特定文 件。 此外,本發(fā)明第二實施例中通過檢驗讀取符記RT以確認(rèn)響應(yīng)訊息是否正確的技
術(shù)手段,可被套用在第四實施例中采用多個特定文件F工至F,的架構(gòu)下。換言之,第二實施
例中讀取指令可由原先設(shè)定成讀取單一特定文件的邏輯區(qū)塊地址A至A,上的數(shù)據(jù),變更為
設(shè)定成讀取上述多個特定文件巳至FN的邏輯區(qū)塊地址B工至BN上的數(shù)據(jù)。 綜上所述,本發(fā)明因主機(jī)將特定的標(biāo)記加入至欲傳遞至芯片的數(shù)據(jù)串中,故控制
器可通過判別數(shù)據(jù)串中是否有該標(biāo)記,來判斷此數(shù)據(jù)串是否為要被送往某特定芯片的數(shù)據(jù)
串。此外,在等待該芯片的響應(yīng)訊息的期間,執(zhí)行讀取特定邏輯區(qū)塊地址上的數(shù)據(jù)的讀取指
令,并回傳預(yù)設(shè)的數(shù)據(jù)串(如預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)所有位皆為零的數(shù)據(jù)串),而當(dāng)芯片產(chǎn)生響應(yīng)訊
息時,再回傳芯片所產(chǎn)生的響應(yīng)訊息(預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)位不全為零的數(shù)據(jù)串)。其中,寫入符
記會被用來檢驗回傳數(shù)據(jù)的正確性,以使主機(jī)得以區(qū)別所接收到響應(yīng)訊息是暫存在高速緩
沖存儲器中的前次響應(yīng)訊息,亦或是本次芯片所產(chǎn)生的響應(yīng)訊息。如此一來,不但主機(jī)可以
將數(shù)據(jù)或指令傳送給芯片,而芯片所產(chǎn)生的響應(yīng)訊息也可無誤地被主機(jī)接收。 雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何所屬技術(shù)
領(lǐng)域中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動與潤飾,因此
本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求所界定的為準(zhǔn)。
2權(quán)利要求
一種數(shù)據(jù)串傳送方法,其適用于從主機(jī)傳遞數(shù)據(jù)串至具有芯片的外圍裝置,該數(shù)據(jù)串傳送方法包括產(chǎn)生一寫入符記,并將該寫入符記藏于一第一數(shù)據(jù)串中;傳送一第一寫入指令至該外圍裝置,該第一寫入指令被設(shè)定為寫入該第一數(shù)據(jù)串至該外圍裝置;傳送該第一數(shù)據(jù)串的至少一部份至該芯片,并記錄該第一數(shù)據(jù)串中的該寫入符記;以及依序地傳送多個讀取指令至該外圍裝置,直到該主機(jī)自該外圍裝置接收到一第一響應(yīng)訊息為止,其中該第一響應(yīng)訊息的一預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)為該芯片因接收到該第一數(shù)據(jù)串的至少一部份而產(chǎn)生,且該第一響應(yīng)訊息含有該寫入符記,而該多個讀取指令被設(shè)定為讀取多個邏輯區(qū)塊地址上的數(shù)據(jù)。
2. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,其更包括判斷該主機(jī)傳送至該外圍裝置的任一數(shù)據(jù)串中是否含有一特定標(biāo)記;以及倘若該主機(jī)傳送至該外圍裝置的數(shù)據(jù)串中含有該特定標(biāo)記,則含有該特定標(biāo)記的數(shù)據(jù)串的至少一部份會被傳送至該芯片。
3. 如權(quán)利要求2所述的數(shù)據(jù)串傳送方法,其特征在于,該外圍裝置更包括一非易失性存儲器,該數(shù)據(jù)串傳送方法更包括倘若該主機(jī)傳送至該外圍裝置的數(shù)據(jù)串中未含有該特定標(biāo)記,則將未含有該特定標(biāo)記的該數(shù)據(jù)串寫入至該非易失性存儲器。
4. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,該外圍裝置更包括一非易失性存儲器,該數(shù)據(jù)串傳送方法更包括判斷任一個從該主機(jī)傳送至該外圍裝置的讀取指令是否被設(shè)定為讀取該多個邏輯區(qū)塊地址上的數(shù)據(jù);以及對任一讀取指令而言,倘若該讀取指令并非被設(shè)定為讀取該多個邏輯區(qū)塊地址上的數(shù)據(jù),則依據(jù)該讀取指令所指派的地址從該非易失性存儲器中讀取對應(yīng)的數(shù)據(jù)。
5. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,其更包括當(dāng)產(chǎn)生該寫入符記后,記錄該寫入符記于該主機(jī);以及比對該外圍裝置回傳至該主機(jī)的響應(yīng)訊息中的寫入符記是否與記錄于該主機(jī)的該寫入符記一致。
6. 如權(quán)利要求5所述的數(shù)據(jù)串傳送方法,其特征在于,其更包括倘若該外圍裝置回傳至該主機(jī)的響應(yīng)訊息中的寫入符記與記錄于該主機(jī)的該寫入符記并不一致,則繼續(xù)傳送讀取指令至該外圍裝置,直到接收到該第一響應(yīng)訊息為止。
7. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,其更包括當(dāng)產(chǎn)生該寫入符記后,記錄該寫入符記于該主機(jī);以及在該主機(jī)傳送一第二寫入指令至該外圍裝置以將數(shù)據(jù)傳送至該芯片之前,更新該主機(jī)所記錄的該寫入符記,并將更新后的該寫入符記隨著該第二寫入指令傳送至該外圍裝置。
8. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,其更包括響應(yīng)該多個讀取指令,而將對應(yīng)的讀取符記加入至回傳給該主機(jī)的響應(yīng)訊息中;以及判斷該主機(jī)所接收到的響應(yīng)訊息中的讀取符記是否與一系統(tǒng)設(shè)定值一致。
9. 如權(quán)利要求8所述的數(shù)據(jù)串傳送方法,其特征在于,其更包括當(dāng)該外圍裝置回傳至該主機(jī)的響應(yīng)訊息中的寫入符記與記錄于該主機(jī)的寫入符記一致,且該主機(jī)所接收到的響應(yīng)訊息中的該讀取符記與該系統(tǒng)設(shè)定值一致時,判斷該主機(jī)所連續(xù)接收到的至少三個響應(yīng)訊息中的讀取符記之間的差值是否為一定值。
10. 如權(quán)利要求9所述的數(shù)據(jù)串傳送方法,其特征在于,該至少三個響應(yīng)訊息所對應(yīng)的多個讀取指令被設(shè)定成讀取該多個邏輯區(qū)塊地址中多個彼此不相鄰的邏輯區(qū)塊地址上的數(shù)據(jù)。
11. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,其更包括每傳送該多個讀取指令當(dāng)中的任一個讀取指令至該外圍裝置后,執(zhí)行一第三寫入指令,以將數(shù)據(jù)寫入至該外圍裝置的一暫存盤。
12. 如權(quán)利要求11所述的數(shù)據(jù)串傳送方法,其特征在于,其更包括當(dāng)傳送該第一寫入指令至該外圍裝置后,執(zhí)行該第三寫入指令,以將數(shù)據(jù)寫入至該暫存盤。
13. 如權(quán)利要求11所述的數(shù)據(jù)串傳送方法,其特征在于,其更包括當(dāng)該暫存盤的大小超過一預(yù)設(shè)數(shù)據(jù)量時,清除該暫存盤。
14. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,該寫入符記為依據(jù)一系統(tǒng)時間產(chǎn)生。
15. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,該寫入符記為一隨機(jī)數(shù)值。
16. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,該多個邏輯區(qū)塊地址上的數(shù)據(jù)屬于單一特定文件。
17. 如權(quán)利要求16所述的數(shù)據(jù)串傳送方法,其特征在于,該外圍裝置更包括一非易失性存儲器,該數(shù)據(jù)串傳送方法更包括判斷該單一特定文件是否存在于該非易失性存儲器內(nèi);以及倘若該單一特定文件尚未存在于該非易失性存儲器內(nèi),則在該非易失性存儲器內(nèi)建立該單一特定文件。
18. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,該多個邏輯區(qū)塊地址上的數(shù)據(jù)屬于多個特定文件。
19. 如權(quán)利要求18所述的數(shù)據(jù)串傳送方法,其特征在于,該外圍裝置更包括一非易失性存儲器,該數(shù)據(jù)串傳送方法更包括判斷該多個特定文件是否存在于該非易失性存儲器內(nèi);以及倘若該多個特定文件的任何一個特定文件尚未存在于該非易失性存儲器內(nèi),則在該非易失性存儲器內(nèi)建立還尚未建立的特定文件。
20. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,該主機(jī)包括一高速緩沖存儲器,該主機(jī)與該外圍裝置之間所有指令與數(shù)據(jù)的傳遞皆會通過該高速緩沖存儲器。
21. 如權(quán)利要求20所述的數(shù)據(jù)串傳送方法,其特征在于,該多個邏輯區(qū)塊地址上的數(shù)據(jù)的總和大于或等于該高速緩沖存儲器的容量。
22. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,該外圍裝置實際上并不儲存數(shù)據(jù)于該多個邏輯區(qū)塊地址。
23. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,其更包括每當(dāng)該外圍裝置接收到該多個讀取指令的其中一個讀取指令之后,倘若該主機(jī)尚未接收到該第一響應(yīng)訊息,則從該外圍裝置傳送一第二響應(yīng)訊息至該主機(jī)。
24. 如權(quán)利要求23所述的數(shù)據(jù)串傳送方法,其特征在于,該第二響應(yīng)訊息的一預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的每個位所記錄的數(shù)據(jù)皆為零。
25. 如權(quán)利要求1所述的數(shù)據(jù)串傳送方法,其特征在于,該第一響應(yīng)訊息的該預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的每個位所記錄的數(shù)據(jù)不全為零。
26. —種數(shù)據(jù)串傳送系統(tǒng),其適用于在主機(jī)和具有芯片的外圍裝置之間的數(shù)據(jù)串傳送,該數(shù)據(jù)串傳送系統(tǒng)包括應(yīng)用程序,安裝于該主機(jī)上并且用以操作該外圍裝置;以及控制器,設(shè)置于該外圍裝置中,并且電性連接至該芯片;其中該控制器會產(chǎn)生一寫入符記,并將該寫入符記藏于一第一數(shù)據(jù)串中;其中該主機(jī)會執(zhí)行該應(yīng)用程序以傳送一寫入指令至該控制器,該寫入指令被設(shè)定為寫入該第一數(shù)據(jù)串至該外圍裝置;其中該控制器會傳送該第一數(shù)據(jù)串的至少一部份至該芯片,并記錄該第一數(shù)據(jù)串中的該寫入符記;其中當(dāng)該主機(jī)執(zhí)行該應(yīng)用程序時,該主機(jī)會依序地傳送多個讀取指令至該外圍裝置,直到從該控制器接收到一第一響應(yīng)訊息為止,其中該第一響應(yīng)訊息的一預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)為該芯片因接收到該第一數(shù)據(jù)串的至少一部份而產(chǎn)生,且該第一響應(yīng)訊息含有該寫入符記,而該多個讀取指令被設(shè)定為讀取多個邏輯區(qū)塊地址上的數(shù)據(jù)。
27. 如權(quán)利要求26所述的數(shù)據(jù)串傳送系統(tǒng),其特征在于,該控制器會判斷該主機(jī)傳送至該外圍裝置的任一數(shù)據(jù)串中是否含有一特定標(biāo)記,而倘若該主機(jī)傳送至該外圍裝置的數(shù)據(jù)串中含有該特定標(biāo)記,則該控制器會將含有該特定標(biāo)記的數(shù)據(jù)串的至少一部份傳送至該心片。
28. 如權(quán)利要求27所述的數(shù)據(jù)串傳送系統(tǒng),其特征在于,該外圍裝置更包括一非易失性存儲器,而倘若該主機(jī)傳送至該外圍裝置的數(shù)據(jù)串中未含有該特定標(biāo)記,則該控制器會將未含有該特定標(biāo)記的該數(shù)據(jù)串寫入至該非易失性存儲器。
29. 如權(quán)利要求26所述的數(shù)據(jù)串傳送系統(tǒng),其特征在于,該外圍裝置更包括一非易失性存儲器,該控制器會判斷任一個從該主機(jī)傳送至該外圍裝置的讀取指令是否被設(shè)定為讀取該多個邏輯區(qū)塊地址上的數(shù)據(jù),而對任一讀取指令而言,倘若該讀取指令并非被設(shè)定為讀取該多個邏輯區(qū)塊地址上的數(shù)據(jù),則該控制器會依據(jù)該讀取指令所指派的地址從該非易失性存儲器中讀取對應(yīng)的數(shù)據(jù)。
30. 如權(quán)利要求26所述的數(shù)據(jù)串傳送系統(tǒng),其特征在于,當(dāng)該主機(jī)執(zhí)行該應(yīng)用程序時,該主機(jī)會記錄該寫入符記,并比對該外圍裝置回傳至該主機(jī)的響應(yīng)訊息中的寫入符記是否與記錄于該主機(jī)的該寫入符記一致。
31. —種控制器,其適用于具有芯片的外圍裝置,該控制器包括一微處理單元,用以控制該控制器的整體運(yùn)作;以及一緩沖存儲器,用以暫時地儲存數(shù)據(jù);其中該微處理單元會將來自于一主機(jī)的第一數(shù)據(jù)串的至少一部份傳送至該芯片,并記錄該第一數(shù)據(jù)串中的一寫入符記;其中在該第一數(shù)據(jù)串的至少一部份被傳送至該芯片之后,以及在該微處理單元傳送一第一響應(yīng)訊息至該主機(jī)之前,該微處理單元會依序地傳送一第二響應(yīng)訊息至該主機(jī),以響應(yīng)來自該主機(jī)的多個讀取指令,其中該第一響應(yīng)訊息的一預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)為該芯片因接收到該第一數(shù)據(jù)串的至少一部份而產(chǎn)生;其中當(dāng)該微處理單元自該芯片接收到該第一響應(yīng)訊息的該預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)之后,該微處理單元會將該第一響應(yīng)訊息傳送至該主機(jī),而該第一響應(yīng)訊息含有該寫入符記。
32. 如權(quán)利要求31所述的控制器,其特征在于,該微處理單元會判斷該主機(jī)傳送至該外圍裝置的任一數(shù)據(jù)串中是否含有一特定標(biāo)記,而倘若該主機(jī)傳送至該外圍裝置的數(shù)據(jù)串中含有該特定標(biāo)記,則該微處理單元會將含有該特定標(biāo)記的數(shù)據(jù)串的至少一部份傳送至該心片。
33. 如權(quán)利要求32所述的控制器,其特征在于,該外圍裝置更包括一非易失性存儲器,而倘若該主機(jī)傳送至該外圍裝置的數(shù)據(jù)串中未含有該特定標(biāo)記,則該微處理單元會將未含有該特定標(biāo)記的該數(shù)據(jù)串寫入至該非易失性存儲器。
34. 如權(quán)利要求31所述的控制器,其特征在于,該外圍裝置更包括一非易失性存儲器,該微處理單元會判斷任一個從該主機(jī)傳送至該外圍裝置的讀取指令是否被設(shè)定為讀取該多個邏輯區(qū)塊地址上的數(shù)據(jù),而對任一讀取指令而言,倘若該讀取指令并非被設(shè)定為讀取該多個邏輯區(qū)塊地址上的數(shù)據(jù),則該微處理單元會依據(jù)該讀取指令所指派的地址從該非易失性存儲器中讀取對應(yīng)的數(shù)據(jù)。
35. 如權(quán)利要求31所述的控制器,其特征在于,該寫入符記會被記錄于該主機(jī),而該主機(jī)會比對該外圍裝置回傳至該主機(jī)的響應(yīng)訊息中的寫入符記是否與記錄于該主機(jī)的該寫入符記一致。
36. —種控制器,安裝在一主機(jī)中,其中該控制器包括一微處理器單元;一緩沖存儲器,耦接至該微處理器單元;以及一數(shù)據(jù)串傳送模塊,耦接至該微處理器單元且具有可由該微處理器單元執(zhí)行的多個機(jī)器指令以對該主機(jī)和一具有芯片的外圍裝置間的數(shù)據(jù)串傳送進(jìn)行多個數(shù)據(jù)串傳送步驟,該些數(shù)據(jù)串傳送步驟包括產(chǎn)生一寫入符記,并將該寫入符記藏于一第一數(shù)據(jù)串中;傳送一第一寫入指令至該外圍裝置,該第一寫入指令被設(shè)定為寫入該第一數(shù)據(jù)串至該外圍裝置;傳送該第一數(shù)據(jù)串的至少一部份至該芯片,并記錄該第一數(shù)據(jù)串中的該寫入符記;以及依序地傳送多個讀取指令至該外圍裝置,直到該主機(jī)自該外圍裝置接收到一第一響應(yīng)訊息為止,其中該第一響應(yīng)訊息的一預(yù)設(shè)數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)為該芯片因接收到該第一數(shù)據(jù)串的至少一部份而產(chǎn)生,且該第一響應(yīng)訊息含有該寫入符記,而該多個讀取指令被設(shè)定為讀取多個邏輯區(qū)塊地址上的數(shù)據(jù)。
37. 如權(quán)利要求36所述的控制器,其特征在于,該數(shù)據(jù)串傳送步驟更包括判斷該主機(jī)傳送至該外圍裝置的任一數(shù)據(jù)串中是否含有一特定標(biāo)記;以及倘若該主機(jī)傳送至該外圍裝置的數(shù)據(jù)串中含有該特定標(biāo)記,則含有該特定標(biāo)記的數(shù)據(jù)串的至少一部份會被傳送至該芯片。
38. 如權(quán)利要求37所述的控制器,其特征在于,該外圍裝置更包括一非易失性存儲器, 該數(shù)據(jù)串傳送步驟更包括倘若該主機(jī)傳送至該外圍裝置的數(shù)據(jù)串中未含有該特定標(biāo)記,則將未含有該特定標(biāo)記 的該數(shù)據(jù)串寫入至該非易失性存儲器。
39. 如權(quán)利要求36所述的控制器,其特征在于,該外圍裝置更包括一非易失性存儲器, 該數(shù)據(jù)串傳送步驟更包括判斷任一個從該主機(jī)傳送至該外圍裝置的讀取指令是否被設(shè)定為讀取該多個邏輯區(qū) 塊地址上的數(shù)據(jù);以及對任一讀取指令而言,倘若該讀取指令并非被設(shè)定為讀取該多個邏輯區(qū)塊地址上的數(shù) 據(jù),則依據(jù)該讀取指令所指派的地址從該非易失性存儲器中讀取對應(yīng)的數(shù)據(jù)。
40. 如權(quán)利要求36所述的控制器,其特征在于,該數(shù)據(jù)串傳送步驟更包括 當(dāng)產(chǎn)生該寫入符記后,記錄該寫入符記于該主機(jī);以及比對該外圍裝置回傳至該主機(jī)的響應(yīng)訊息中的寫入符記是否與記錄于該主機(jī)的該寫 入符記一致。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)串傳送方法、系統(tǒng)及其控制器,其適用于在主機(jī)和具有芯片的外圍裝置之間的數(shù)據(jù)串傳送。數(shù)據(jù)串的至少一部份會由主機(jī)傳送至外圍裝置的芯片。之后,通過執(zhí)行多個讀取指令,主機(jī)可無誤地接收芯片所產(chǎn)生的響應(yīng)訊息。其中,數(shù)據(jù)串與響應(yīng)訊息皆包含有對應(yīng)的寫入符記,而數(shù)據(jù)串的寫入符記會與響應(yīng)訊息的寫入符記比對,以確認(rèn)響應(yīng)訊息的正確性。
文檔編號G06F13/42GK101788970SQ20091000989
公開日2010年7月28日 申請日期2009年1月24日 優(yōu)先權(quán)日2009年1月24日
發(fā)明者詹清文 申請人:群聯(lián)電子股份有限公司