新四季網

數據串傳送方法、系統及其控制器的製作方法

2023-05-14 21:58:51

專利名稱:數據串傳送方法、系統及其控制器的製作方法
技術領域:
本發明是有關於一種數據串傳送方法、系統及其控制器,且特別是有關於一種適
用於從主機傳遞數據至具有晶片的外圍裝置的數據串傳送方法、系統及其控制器。
背景技術:
數字相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲 存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有數據非易失性、省電、體積小,以 及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
另一方面,隨著使用者逐漸接受使用電子錢包及預付儲值,使得智慧卡的使用日 益普及。智慧卡(Smart Card)是具有例如微處理器、卡作業系統、安全模塊及存儲器的組 件的集成電路晶片(IC晶片),以允許持有者執行預定操作。智慧卡提供計算、加密、雙向 通信及安全功能,使得這張卡片除了儲存數據的功能外還能達到對其所儲存的數據加以 保護的功能。使用全球移動通信系統(GSM)機制的蜂巢式電話中所使用的用戶識別模塊 (Subscriber Identification Module, SM)卡為智慧卡的其中一個應用範例。然而,智能 卡本身受限於儲存容量,因此近年來開始與大量儲存裝置的存儲卡作結合,以擴增智慧卡 的儲存容量。 在現有技術中,結合快閃記憶體與智慧卡的應用是透過特殊命令來區別傳送給智慧卡或 快閃記憶體的數據,此特殊命令可能會造成硬體裝置或驅動程序無法支持的問題。此外,在現有 技術中是比對此特殊命令中關於所傳送數據串的型態信息來判斷此數據串是否為智慧卡 的命令格式。然而,此方法往往會造成一般文件數據與屬於智慧卡的命令格式碰撞的問題 (即將一般文件數據誤判為智慧卡的數據串)。 另外,在一些具有高速緩衝存儲器(Cache)的電子產品的應用中,因這些電子產 品本身的限制,智慧卡與電子產品之間數據串的傳遞並無法繞過高速緩衝存儲器,而使得 智慧卡所產生的響應訊息並無法被無誤地回傳至所依附的電子產品,進而限制智慧卡在這 類具有高速緩衝存儲器的電子產品上的應用。舉例來說,在一個Java系統的行動電話中, 因Java系統並不支持諸如NO Cache等不須透過高速緩衝存儲器而直接地對高速緩衝存儲 器進行存取的指令,故很難將智慧卡和快閃記憶體以整合為存儲卡的形式應用在這類Java系統 的行動電話中。請參考圖1,圖1為現有搭配存儲卡12的主機10的功能方塊圖。主機10 為一種電子產品(如Java系統的行動電話),並具有高速緩衝存儲器14,而存儲卡12具 有快閃記憶體16和智慧卡晶片18。主機10與存儲卡12之間的數據傳遞路徑都會經過高速緩衝 存儲器14。然而,因為高速緩衝存儲器14會暫存最近主機10與存儲卡12之間所傳遞的數 據的緣故,當主機IO欲從智慧卡晶片18獲得數據時,若高速緩衝存儲器14內已經存有與 讀取指令相符的數據時,則高速緩衝存儲器14就會將相符的數據傳送至主機10。然而,在 這樣的架構下,智慧卡晶片18的響應訊息往往會被高速緩衝存儲器14已有的數據所取代, 而使得智慧卡晶片18的加密及安全通信的功能大受影響。 基此,有需要發展一套能夠在智慧卡的相關應用中無誤地傳遞智慧卡的響應訊息的系統和方法。

發明內容
本發明提供一種數據串傳送系統及其控制器,能夠無誤地傳遞智慧卡的響應訊 息。 本發明提供一種數據串傳送方法,能夠無誤地傳遞智慧卡的響應訊息。 本發明所提供的數據串傳送方法、系統及其控制器,除了可應用在結合快閃記憶體與智
能卡的應用中,還另可應用在其它晶片與快閃記憶體的結合應用中,以無誤地傳遞晶片的響應訊
息,而上述晶片可以是射頻識別晶片、無線傳輸晶片(如藍牙晶片)或多媒體控制晶片
(如數字錄音晶片)。 本發明提出一種數據串傳送方法,其適用於從主機傳遞數據串至具有的外圍裝 置。此數據串傳送方法包括產生一寫入符記,並將該寫入符記藏於一第一數據串中;傳 送一第一寫入指令至該外圍裝置,該第一寫入指令被設定為寫入該第一數據串至該外圍裝 置;傳送該第一數據串的至少一部份至該晶片,並記錄該第一數據串中的該寫入符記;以 及依序地傳送多個讀取指令至該外圍裝置,直到該主機自該外圍裝置接收到一第一響應訊 息為止,其中該第一響應訊息的一預設數據區內的數據為該晶片因接收到該第一數據串的 至少一部份而產生,且該第一響應訊息含有該寫入符記,而該多個讀取指令被設定為讀取 多個邏輯區塊地址上的數據。 本發明提出一種數據串傳送系統,其適用於在主機和具有晶片的外圍裝置之間的 數據串傳送。此數據串傳送系統包括應用程式以及控制器。應用程式安裝於主機上並且 用以操作外圍裝置。控制器設置於外圍裝置中,並且電性連接至晶片。其中該控制器會產 生一寫入符記,並將該寫入符記藏於一第一數據串中。主機會執行應用程式會以送一寫入 指令至控制器,寫入指令被設定為寫入第一數據串至外圍裝置。控制器會傳送第一數據串 的至少一部份至該晶片,並記錄該第一數據串中的寫入符記。當主機執行該應用程式時,該 主機會依序地傳送多個讀取指令至該外圍裝置,直到從該控制器接收到一第一響應訊息為 止,其中該第一響應訊息的一預設數據區內的數據為該晶片因接收到該第一數據串的至少 一部份而產生,且該第一響應訊息含有該寫入符記,而該多個讀取指令被設定為讀取多個 邏輯區塊地址上的數據。 本發明提出 一種控制器,其適用於具有晶片的外圍裝置。此控制器包括一微處理
單元以及一緩衝存儲器。上述微處理單元用以控制控制器的整體運作,而上述緩衝存儲器
用以暫時地儲存數據。其中微處理單元會將來自於一主機的第一數據串的至少一部份傳送
至該晶片,並記錄該第一數據串中的一寫入符記。在該第一數據串的至少一部份被傳送至
該晶片之後,以及在該微處理單元傳送一第一響應訊息至該主機之前,該微處理單元會依
序地傳送一第二響應訊息至該主機,以響應來自該主機的多個讀取指令。其中該第一響應
訊息的一預設數據區內的數據為該晶片因接收到該第一數據串的至少一部份而產生。當該
微處理單元自該晶片接收到該第一響應訊息的該預設數據區內的數據之後,該微處理單元
會將該第一響應訊息傳送至該主機,而該第一響應訊息含有該寫入符記。 本發明提出一種應用程式,其安裝在一主機中。其中該主機會通過執行該應用程
序,以進行上述的數據串傳送方法,進而控制該主機和具有晶片的外圍裝置之間的數據串傳送。 本發明提出一種控制器,安裝在一主機中。該控制器包括一微處理器單元、一緩衝 存儲器以及一數據串傳送模塊。該緩衝存儲器耦接至該微處理器單元,而該數據串傳送模 塊耦接至該微處理器單元。該數據串傳送模塊具有可由該微處理器單元執行的多個機器 指令,以對該主機和一具有晶片的外圍裝置間的數據串傳送進行多個數據串傳送步驟。該 些數據串傳送步驟包括產生一寫入符記,並將該寫入符記藏於一第一數據串中;傳送一 第一寫入指令至該外圍裝置,該第一寫入指令被設定為寫入該第一數據串至該外圍裝置; 傳送該第一數據串的至少一部份至該晶片,並記錄該第一數據串中的該寫入符記;以及依 序地傳送多個讀取指令至該外圍裝置,直到該主機自該外圍裝置接收到一第一響應訊息為 止,其中該第一響應訊息的一預設數據區內的數據為該晶片因接收到該第一數據串的至少 一部份而產生,且該第一響應訊息含有該寫入符記,而該多個讀取指令被設定為讀取多個 邏輯區塊地址上的數據。 在本發明的一實施例中,上述數據串傳送方法更包括判斷該主機傳送至該外圍
裝置的任一數據串中是否含有一特定標記;以及倘若該主機傳送至該外圍裝置的數據串中
含有該特定標記,則含有該特定標記的數據串的至少一部份會被傳送至該晶片。 在本發明的一實施例中,上述外圍裝置更包括一非易失性存儲器,而上述數據串
傳送方法更包括倘若該主機傳送至該外圍裝置的數據串中未含有該特定標記,則將未含
有該特定標記的該數據串寫入至該非易失性存儲器。 在本發明的一實施例中,上述外圍裝置更包括一非易失性存儲器,而上述數據串 傳送方法更包括判斷任一個從該主機傳送至該外圍裝置的讀取指令是否被設定為讀取該 多個邏輯區塊地址上的數據;以及對任一讀取指令而言,倘若該讀取指令並非被設定為讀 取該多個邏輯區塊地址上的數據,則依據該讀取指令所指派的地址從該非易失性存儲器中 讀取對應的數據。 在本發明的一實施例中,上述數據串傳送方法更包括當產生該寫入符記後,記錄 該寫入符記於該主機;以及比對該外圍裝置回傳至該主機的響應訊息中的寫入符記是否與 記錄於該主機的該寫入符記一致。 在本發明的一實施例中,上述數據串傳送方法更包括倘若該外圍裝置回傳至該 主機的響應訊息中的寫入符記與記錄於該主機的該寫入符記並不一致,則繼續傳送讀取指 令至該外圍裝置,直到接收到該第一響應訊息為止。 在本發明的一實施例中,上述數據串傳送方法更包括當產生該寫入符記後,記錄 該寫入符記於該主機;以及在該主機傳送一第二寫入指令至該外圍裝置以將數據傳送至該 晶片之前,更新該主機所記錄的該寫入符記,並將更新後的該寫入符記隨著該第二寫入指 令傳送至該外圍裝置。 在本發明的一實施例中,上述數據串傳送方法更包括響應該多個讀取指令,而將 對應的讀取符記加入至回傳給該主機的響應訊息中;以及判斷該主機所接收到的響應訊息 中的讀取符記是否與一系統設定值一致。 在本發明的一實施例中,上述數據串傳送方法更包括當該外圍裝置回傳至該主 機的響應訊息中的寫入符記與記錄於該主機的寫入符記一致,且該主機所接收到的響應訊 息中的該讀取符記與該系統設定值一致時,判斷該主機所連續接收到的至少三個響應訊息中的讀取符記之間的差值是否為一定值。 在本發明的一實施例中,其中該至少三個響應訊息所對應的多個讀取指令被設定
成讀取該多個邏輯區塊地址中多個彼此不相鄰的邏輯區塊地址上的數據。 在本發明的一實施例中,上述主機每傳送該多個讀取指令當中的任一個讀取指令
至該外圍裝置後,該主機會執行一第三寫入指令,以將數據寫入至該外圍裝置的一暫存檔。 在本發明的一實施例中,當上述主機傳送該第一寫入指令至該外圍裝置後,該主
機執行該第三寫入指令,以將數據寫入至該暫存檔。 在本發明的一實施例中,當上述暫存檔的大小超過一預設數據量時,該控制器會 清除該暫存檔。 在本發明的一實施例中,上述任兩個接續地回傳給該主機的響應訊息中的讀取符 記,皆相差一默認值。 在本發明的一實施例中,上述寫入符記為依據一系統時間產生。
在本發明的一實施例中,上述寫入符記為一隨機數值。 在本發明的一實施例中,上述多個邏輯區塊地址上的數據屬於單一特定文件。
在本發明的一實施例中,上述外圍裝置更包括一非易失性存儲器,而上述數據串 傳送方法更包括判斷該單一特定文件是否存在於該非易失性存儲器內;以及倘若該單一 特定文件尚未存在於該非易失性存儲器內,則在該非易失性存儲器內建立該單一特定文 件。 在本發明的一實施例中,上述多個邏輯區塊地址上的數據屬於多個特定文件。
在本發明的一實施例中,上述外圍裝置更包括一非易失性存儲器,而上述數據串 傳送方法更包括判斷該多個特定文件是否存在於該非易失性存儲器內;以及倘若該多個 特定文件的任何一個特定文件尚未存在於該非易失性存儲器內,則在該非易失性存儲器內 建立還尚未建立的特定文件。 在本發明的一實施例中,上述主機包括一高速緩衝存儲器,該主機與該外圍裝置 之間所有指令與數據的傳遞皆會通過該高速緩衝存儲器。 在本發明的一實施例中,上述多個邏輯區塊地址上的數據的總和大於或等於該高 速緩衝存儲器的容量。 在本發明的一實施例中,上述外圍裝置實際上並不儲存數據於該多個邏輯區塊地 址。 在本發明的一實施例中,上述數據串傳送方法更包括每當該外圍裝置接收到該 多個讀取指令的其中一個讀取指令之後,倘若該主機尚未接收到該第一響應訊息,則從該 外圍裝置傳送一第二響應訊息至該主機。 在本發明的一實施例中,上述第二響應訊息的一預設數據區內的每個位所記錄的為零。 在本發明的一實施例中,上述第一響應訊息的該預設數據區內的每個位所記錄的 數據不全為零。 在本發明的一實施例中,上述晶片為智慧卡晶片、射頻識別晶片、無線傳輸晶片或 多媒體控制晶片。 在本發明的一實施例中,上述外圍裝置為SD存儲卡或匪C存儲卡。
在本發明的一實施例中,上述晶片兼容於ISO 7816標準或ISO 14443標準。
在本發明的一實施例中,上述非易失性存儲器為單層記憶單元(Single LevelCell, SLC)反及(NAND)快閃記憶體或多層記憶單元(Multi Level Cell,MLC)反及(NAND) 快閃記憶體。 在本發明的一實施例中,上述第一數據串的至少一部份為一指令-應用程式協議
數據單元(Command-Application Protocol Data Unit, C-APDU),而第一響應訊息為一響
應-應用程式協議數據單元(Response-Application Protocol DataUnit, R-APDU)。 基於上述,本發明通過在不同的寫入指令中嵌入寫入符記,並使響應訊息中包含
有對應的寫入符記,可避免在主機具有高速緩衝存儲器的情況下,因關閉應用程式而產生
的數據誤判的情況,而更一步地確保數據的正確性。此外,周邊裝置的控制器亦可將對應的
讀取符記加到要回傳至主機的數據串中,以進一步地確保當主機前後兩次所產生的寫入符
記發生碰撞時,主機仍可正確地判斷是否接收到智慧卡所產生的響應訊息。 為讓本發明的上述特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合附圖,
作詳細說明如下。


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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀