專利名稱:同時(shí)支持大容量存儲和以太網(wǎng)通信的系統(tǒng)及方法
同時(shí)支持大容量存儲和以太網(wǎng)通信的系統(tǒng)及方法技術(shù)領(lǐng)域
本發(fā)明一般地涉及以太網(wǎng)通信,并且更具體地涉及基于MMC/SD(Multimedia Memory Card/Secure Digital)接口的同時(shí)支持大容量存儲和以太網(wǎng)通信的系統(tǒng)和方法。
背景技術(shù):
隨著社會的發(fā)展,用戶對在諸如手機(jī)、筆記本等嵌入式終端中存儲數(shù)據(jù)的需求不斷增加。然而,由于成本等原因,嵌入式設(shè)備不可能提供滿足所有用戶需求的存儲空間。在實(shí)踐中,常常使用MMC/SD存儲卡、Micro-SD存儲卡、Min1-SD存儲卡等小型存儲介質(zhì)來提供擴(kuò)展的數(shù)據(jù)空間。目前,使用MMC/SD接口擴(kuò)展所述終端中的用戶可用存儲空間在嵌入式領(lǐng)域中已經(jīng)非常普遍。圖1是典型的基于MMC/SD接口的大容量存儲結(jié)構(gòu)模型,其包含通過 MMC/SD接口相互連接的至少一個(gè)主MMC/SD設(shè)備101和至少一個(gè)從MMC/SD設(shè)備102。如圖1所示,主MMC/SD設(shè)備101包括主控制器103、主大容量存儲裝置105、主MMC/SD接口驅(qū)動裝置107以及主MMC/SD接口,而從MMC/SD設(shè)備102包括從控制器104、從大容量存儲裝置 106、從MMC/SD接口驅(qū)動裝置108以及從MMC/SD接口。主控制器103通過主大容量存儲裝置105提供文件系統(tǒng)服務(wù)以及對從設(shè)備存儲數(shù)據(jù)的管理服務(wù),而主MMC/SD接口驅(qū)動裝置 107被用于實(shí)現(xiàn)MMC/SD信令在MMC/SD接口上的傳輸。相似地,從控制器104被設(shè)計(jì)用于控制從設(shè)備大容量存儲裝置106和從MMC/SD接口驅(qū)動裝置108的運(yùn)行并且從控制器104通過從大容量存儲裝置106提供數(shù)據(jù)存儲服務(wù)。所述主設(shè)備和從設(shè)備還可以包括各種通用的或?qū)S玫耐獠吭O(shè)備(未在圖1中示出)。
基于TCP/IP協(xié)議的以太網(wǎng)(!Ethernet)是當(dāng)前應(yīng)用最普遍的局域網(wǎng)技術(shù)。由于以太網(wǎng)平臺技術(shù)擴(kuò)展容易、維護(hù)簡單、組網(wǎng)方便,該技術(shù)也不斷被擴(kuò)展到其他嵌入式領(lǐng)域。在嵌入式領(lǐng)域中,以太網(wǎng)物理層接口的主要形式有PCI網(wǎng)卡、USB卡以及光纖卡等。目前,MMC/ SD接口也已經(jīng)可以作為以太網(wǎng)物理層接口來應(yīng)用。圖2是現(xiàn)有技術(shù)中的基于麗C/SD接口的以太網(wǎng)通信模型,其同樣包含至少一個(gè)主MMC/SD設(shè)備201和至少一個(gè)從MMC/SD設(shè)備202, 所述至少一個(gè)主MMC/SD設(shè)備201和所述至少一個(gè)從MMC/SD設(shè)備202通過MMC/SD接口相互連接。不同于圖1所示的大容量存儲結(jié)構(gòu)模型,主MMC/SD設(shè)備201包括主通信協(xié)議棧裝置205而沒有包括主大容量存儲裝置。同樣地,從MMC/SD設(shè)備202中包括從通信協(xié)議棧裝置206而沒有包括主大容量存儲裝置。主MMC/SD設(shè)備201和從MMC/SD設(shè)備202也都可以包括各種通用的或?qū)S玫耐獠吭O(shè)備?;贛MC/SD接口的以太網(wǎng)通信系統(tǒng)的目的是在不改變嵌入式終端設(shè)備的硬件結(jié)構(gòu)的基礎(chǔ)上為其擴(kuò)展網(wǎng)絡(luò)應(yīng)用能力。
然而,現(xiàn)有技術(shù)中基于MMC/SD接口的嵌入式終端設(shè)備或者單獨(dú)支持主大容量存儲裝置,或者單獨(dú)支持主通信息協(xié)議棧裝 置。也就是說,用戶如果希望嵌入式終端設(shè)備同時(shí)支持大容量存儲設(shè)備和以太網(wǎng)通信,則不得不在嵌入式終端設(shè)備上設(shè)置至少兩個(gè)MMC/SD 接口,而用戶也需持有至少兩個(gè)從MMC/SD設(shè)備,即只支持主大容量存儲裝置的從設(shè)備和只支持主通信協(xié)議棧裝置的從設(shè)備。這使得嵌入式終端設(shè)備的生產(chǎn)成本提高,并且也給用戶的操作帶來了很多不便。
因此,存在對基于麗C/SD接口的同時(shí)支持大容量存儲和以太網(wǎng)通信的系統(tǒng)的需求。發(fā)明內(nèi)容
本發(fā)明的目標(biāo)是提供基于MMC/SD接口的同時(shí)支持大容量存儲和以太網(wǎng)通信的系統(tǒng)以及適用于這樣的系統(tǒng)的方法,從而使得用戶能夠在帶有MMC/SD接口的嵌入式終端設(shè)備上方便地同時(shí)進(jìn)行大容量數(shù)據(jù)存儲和以太網(wǎng)通信,并且使現(xiàn)有終端的結(jié)構(gòu)得以簡化,生產(chǎn)成本得以降低。
為了實(shí)現(xiàn)上述目標(biāo),本發(fā)明提供了一種用于同時(shí)支持大容量存儲和以太網(wǎng)通信的主MMC/SD設(shè)備,所述主MMC/SD設(shè)備包括主MMC/SD接口,用于向從MMC/SD設(shè)備提供訪問接口 ;SMMC/SD接口驅(qū)動裝置,用于控制MMC/SD信令在所述主MMC/SD接口上的傳輸;主大容量存儲裝置,用于為大容量存儲提供文件系統(tǒng)服務(wù)和數(shù)據(jù)管理服務(wù);主通信協(xié)議棧裝置,用于實(shí)現(xiàn)所述主MMC/SD設(shè)備與所述從MMC/SD設(shè)備之間的以太網(wǎng)通信;以及主控制器,用于控制所述主MMC/SD接口驅(qū)動裝置、所述主大容量存儲裝置和所述主通信協(xié)議棧裝置的操作; 其中所述主大容量存儲裝置和所述主通信協(xié)議棧裝置分別與所述主MMC/SD接口驅(qū)動裝置進(jìn)行交互。
根據(jù)本發(fā)明的實(shí)施例,所述所述主大容量存儲裝置和所述主通信協(xié)議棧裝置可以被設(shè)置為訪問所述從MMC/SD設(shè)備中相互獨(dú)立的物理地址。
根據(jù)本發(fā)明的實(shí)施例,所述主大容量存儲裝置和所述主通信協(xié)議站裝置對所述主 MMC/SD接口驅(qū)動裝置的操作是原子操作。
根據(jù)本發(fā)明的實(shí)施例,所述主控制器可以被用于通過所述主通信協(xié)議棧裝置向所述從MMC/SD設(shè)備發(fā)送探查命令并且通過命令返回值確定所述從MMC/SD設(shè)備是否支持以太網(wǎng)通信。
根據(jù)本發(fā)明的實(shí)施例,所述主通信協(xié)議棧裝置從上至下依次可以包括用于執(zhí)行網(wǎng)絡(luò)應(yīng)用程序的應(yīng)用層模塊;用于執(zhí)行以太網(wǎng)協(xié)議功能的傳輸層模塊和網(wǎng)絡(luò)層模塊;用于封裝以太網(wǎng)數(shù)據(jù)幀的數(shù)據(jù)鏈路層模塊;用于為上層協(xié)議棧模擬以太網(wǎng)卡功能的MMC/SD以太網(wǎng)模擬模型EEM層模塊;以及用于執(zhí)行MMC/SD協(xié)議棧的MMC/SD協(xié)議層模塊。
根據(jù)本發(fā)明的實(shí)施例,所述MMC/SD EEM層模塊可以使用EEM包格式傳輸數(shù)據(jù),所述EEM包可以由EEM頭部字段和EEM負(fù)載字段組成。所述EEM頭部字段可以包括第一字段和第二字段,所述第一字段可以用于定義所述EEM包的類型。
根據(jù)本發(fā)明的實(shí)施例,當(dāng)所述EEM包為數(shù)據(jù)包時(shí),所述第二字段可以包括校驗(yàn)狀態(tài)字段和長度字段,其中所述長度字段可以用于指定所述EEM數(shù)據(jù)包中負(fù)載字段的長度, 而所述校驗(yàn)狀態(tài)字段用于指定以太網(wǎng)數(shù)據(jù)幀的CRC校驗(yàn)的開啟或關(guān)閉。
根據(jù)本發(fā)明的實(shí)施例,當(dāng)所述EEM包為命令包時(shí),所述第二字段可以包括命令類型字段和命令參數(shù)字段,其中所述命令類型字段可以用于定義EEM命令的類型,而所述命令參數(shù)字段用于定義EEM命令的參數(shù)。
根據(jù)本發(fā)明的實(shí)施例,所述MMC/SD協(xié)議層模塊可以以下列方式中的一種使用 MMC/SD數(shù)據(jù)塊承載所述EEM包一個(gè)MMC/SD數(shù)據(jù)塊包含一個(gè)EEM包;一個(gè)MMC/SD數(shù)據(jù)塊包含多個(gè)EEM包;多個(gè)MMC/SD數(shù)據(jù)塊包含一個(gè)EEM包;多個(gè)MMC/SD數(shù)據(jù)塊包含多個(gè)分開的EEM 包。
根據(jù)本發(fā)明的實(shí)施例,所述主MMC/SD接口可以是Min1-SD主接口、Micro_SD主接口或者標(biāo)準(zhǔn)MMC/SD主接口。
本發(fā)明還提供了一種用于同時(shí)支持大容量存儲和以太網(wǎng)通信的從MMC/SD設(shè)備, 所述從MMC/SD設(shè)備包括從MMC/SD接口,用于向主MMC/SD設(shè)備提供訪問接口;從MMC/SD 接口驅(qū)動裝置,用于控制MMC/SD信令在所述從MMC/SD接口上的傳輸;從大容量存儲裝置, 用于為主MMC/SD設(shè)備的大容量存儲提供對應(yīng)的文件系統(tǒng)服務(wù)和數(shù)據(jù)管理服務(wù);從通信協(xié)議棧裝置,用于實(shí)現(xiàn)所述從MMC/SD設(shè)備與所述主MMC/SD設(shè)備之間的以太網(wǎng)通信;以及從控制器,用于控制所述從MMC/SD接口驅(qū)動裝置、所述從大容量存儲裝置和所述從通信協(xié)議棧裝置的操作;其中所述從大容量存儲裝置和所述從通信協(xié)議棧裝置分別與所述從MMC/SD 接口驅(qū)動裝置進(jìn)行交互。
根據(jù)本發(fā)明的實(shí)施例,可以在所述從大容量存儲裝置的文件系統(tǒng)中包含特殊地址信息使得所述從MMC/SD接口驅(qū)動裝置能夠提供兩個(gè)相互獨(dú)立的物理通路。
根據(jù)本發(fā)明的實(shí)施例,所述特殊地址信息可以被設(shè)置在所述從大容量存儲裝置的文件系統(tǒng)王引導(dǎo)扇區(qū)后的保留扇區(qū)中。
根據(jù)本發(fā)明的實(shí)施例,所述特殊地址信息還可以被設(shè)置在從大容量存儲裝置的文件系統(tǒng)每個(gè)分區(qū)的引導(dǎo)扇區(qū)后的保留扇區(qū)中。
根據(jù)本發(fā)明的實(shí)施例,還可以在所述從大容量存儲裝置的文件系統(tǒng)主引導(dǎo)扇區(qū)后的保留扇區(qū)中設(shè)置對所述特殊地址信息的索引。
根據(jù)本發(fā)明的實(shí)施例,所述特殊地址信息的長度為512字節(jié)。
根據(jù)本發(fā)明的實(shí)施例,所述從控制器可以被設(shè)置為根據(jù)通過所述從MMC/SD接口接收到的數(shù)據(jù)是否發(fā)往所述特殊地址來區(qū)分所述數(shù)據(jù)是用于大容量存儲還是用于以太網(wǎng)通信。
根據(jù)本發(fā)明的實(shí)施例,所述從通信協(xié)議棧裝置從上至下依次可以包括用于執(zhí)行網(wǎng)絡(luò)應(yīng)用程序的應(yīng)用層模塊;用于執(zhí)行以太網(wǎng)協(xié)議功能的傳輸層模塊和網(wǎng)絡(luò)層模塊;用于封裝以太網(wǎng)數(shù)據(jù)幀的數(shù)據(jù)鏈路層模塊;用于為上層協(xié)議棧模擬以太網(wǎng)卡功能的MMC/SD以太網(wǎng)模擬模型EEM層模塊;以及用于執(zhí)行MMC/SD協(xié)議棧的MMC/SD協(xié)議層模塊。
根據(jù)本發(fā)明的實(shí)施例,所述MMC/SD EEM層模塊可以使用EEM包格式傳輸數(shù)據(jù),所述EEM包可以由EEM頭部字段和EEM負(fù)載字段組成。所述EEM頭部字段可以包括第一字段和第二字段,所述第一字段可以用于定義所述EEM包的類型。
根據(jù)本發(fā)明的實(shí)施例,當(dāng)所述EEM包為數(shù)據(jù)包時(shí),所述第二字段可以包括校驗(yàn)狀態(tài)字段和長度字段,其中所述長度字段可以用于指定所述EEM數(shù)據(jù)包中負(fù)載字段的長度, 而所述校驗(yàn)狀態(tài)字段可以用于指定以太網(wǎng)數(shù)據(jù)幀的CRC校驗(yàn)的開啟或關(guān)閉。
根據(jù)本發(fā)明的實(shí)施例,當(dāng)所述EEM包為命令包時(shí),所述第二字段可以包括命令類型字段和命令參數(shù)字段,其中所述命令類型字段可以用于定義EEM命令的類型,而所述命令參數(shù)字段可以用于定義EEM命令的參數(shù)。
根據(jù)本發(fā)明的實(shí)施例,所述MMC/SD協(xié)議層模塊可以以下列方式中的一種使用 MMC/SD數(shù)據(jù)塊承載所述EEM包一個(gè)MMC/SD數(shù)據(jù)塊包含一個(gè)EEM包;一個(gè)MMC/SD數(shù)據(jù)塊包含多個(gè)EEM包;多個(gè)MMC/SD數(shù)據(jù)塊包含一個(gè)EEM包;多個(gè)MMC/SD數(shù)據(jù)塊包含多個(gè)分開的EEM 包。
根據(jù)本發(fā)明的實(shí)施例,所述從MMC/SD接口可以是Min1-SD從接口、Micro-SD從接口或者標(biāo)準(zhǔn)MMC/SD從接口。
本發(fā)明還提供了一種用于同時(shí)支持大容量存儲和以太網(wǎng)通信的系統(tǒng),所述系統(tǒng)包括上述任意一種主MMC/SD設(shè)備以及上述任意一種從MMC/SD設(shè)備,其中所述主MMC/SD設(shè)備與所述從MMC/SD設(shè)備通過同一 MMC/SD接口進(jìn)行大容量存儲和以太網(wǎng)通信。
根據(jù)本發(fā)明的實(shí)施例,所述主MMC/SD設(shè)備與所述從MMC/SD設(shè)備之間的以太網(wǎng)通信可以采用請求-響應(yīng)機(jī)制,其中請求命令和響應(yīng)命令均從所述從MMC/SD設(shè)備中的同一特殊地址讀取。
根據(jù)本發(fā)明的實(shí)施例,在進(jìn)行以太網(wǎng)通信時(shí),所述主MMC/SD設(shè)備可以被設(shè)置為定時(shí)輪詢所述從MMC/SD設(shè)備以從所述從MMC/SD設(shè)備接收數(shù)據(jù)。
根據(jù)本發(fā)明的實(shí)施例,所述主MMC/SD設(shè)備可以是帶有MMC/SD主接口的手機(jī)、PDA、 膝上型計(jì)算機(jī)、POS機(jī)或者ATM機(jī)。
本發(fā)明還提供了一種用于在主MMC/SD設(shè)備與從MMC/SD設(shè)備之間同時(shí)支持大容量存儲和以太網(wǎng)通信的方法,其中所述主MMC/SD設(shè)備為本發(fā)明所提供的主MMC/SD設(shè)備,所述方法包括下列步驟 a.主MMC/SD設(shè)備在檢測到有從MMC/SD設(shè)備與其連接時(shí)讀取從MMC/SD 設(shè)備文件系統(tǒng)中的特定位置以獲取特殊地址信息;b.主MMC/SD設(shè)備向所述特殊地址發(fā)送探查命令并且根據(jù)命令返回值判斷從MMC/SD設(shè)備是否是本發(fā)明所提供的從MMC/SD設(shè)備; c.如果不是,則主MMC/SD設(shè)備還原先前保存的特殊地址信息并且執(zhí)行標(biāo)準(zhǔn)MMC/SD存儲流程;否則,主MMC/SD設(shè)備加載主通信協(xié)議棧裝置并且向從MMC/SD設(shè)備發(fā)送數(shù)據(jù);d.從MMC/ SD設(shè)備根據(jù)來自主MMC/SD設(shè)備的數(shù)據(jù)是否發(fā)往所述特殊地址來區(qū)分所述數(shù)據(jù)是用于大容量存儲還是用于以太網(wǎng)通信;e.如果所述數(shù)據(jù)向所述特殊地址發(fā)送,則從MMC/SD設(shè)備與主 MMC/SD設(shè)備進(jìn)行以太網(wǎng)通信;否則,從MMC/SD設(shè)備與主MMC/SD設(shè)備一起執(zhí)行標(biāo)準(zhǔn)MMC/SD 存儲流程。
本發(fā)明提供了用于同時(shí)支持大容量存儲和以太網(wǎng)通信的主MMC/SD設(shè)備及相應(yīng)的從MMC/SD設(shè)備、由這兩種設(shè)備構(gòu)成的系統(tǒng)以及用于該系統(tǒng)的操作方法。本發(fā)明所公開的基于MMC/SD接口的同時(shí)支持大容量存儲和以太網(wǎng)通信的設(shè)備、系統(tǒng)和方法使具有MMC/SD接口的主設(shè)備在保留大容量存儲功能的同時(shí),也可以支持網(wǎng)絡(luò)功能,從而極大地拓展了這種具有大容量存儲功能的MMC/SD接口的嵌入式終端設(shè)備的應(yīng)用領(lǐng)域。
下面將結(jié)合具體的實(shí)施例來描述本發(fā)明的方法。
本發(fā)明的前述和其他目標(biāo)、特征和優(yōu)點(diǎn)根據(jù)下面對本發(fā)明的實(shí)施例的更具體的說明將是顯而易見的,這些實(shí)施例在附圖中被示意。
圖1是現(xiàn)有技術(shù)中基于MMC/SD接口的大容量存儲結(jié)構(gòu)模型;
圖2是現(xiàn)有技術(shù)中基于MMC/SD接口的以太網(wǎng)通信模型;
圖3是根據(jù)本發(fā)明的基于MMC/SD接口的同時(shí)支持大容量存儲和以太網(wǎng)通信的系統(tǒng)的不意圖4示出了用于根據(jù)本發(fā)明的基于MMC/SD接口的同時(shí)支持大容量存儲和以太網(wǎng)通信的設(shè)備的通信協(xié)議棧的示例結(jié)構(gòu);
圖5示出了用于根據(jù)本發(fā)明的基于MMC/SD接口的同時(shí)支持大容量存儲和以太網(wǎng)通信的設(shè)備的EEM包的示例組成;
圖6是根據(jù)本發(fā)明的基于MMC/SD接口的用于同時(shí)支持大容量存儲和以太網(wǎng)通信的方法的流程圖。
具體實(shí)施方式
以下結(jié)合附圖和具體實(shí)施方式
進(jìn)一步詳細(xì)說明本發(fā)明。需要說明的是,附圖中的各結(jié)構(gòu)只是示意性說明,用以使本領(lǐng)域普通技術(shù)人員最佳地理解本發(fā)明的原理,其不一定按比例繪制。
圖3是根據(jù)本發(fā)明的基于MMC/SD接口的同時(shí)支持大容量存儲和以太網(wǎng)通信的系統(tǒng)300的示意圖。如圖3所示,系統(tǒng)300包括至少一個(gè)本發(fā)明所提供的同時(shí)支持大容量存儲和以太網(wǎng)通信的主MMC/SD設(shè)備301以及至少一個(gè)本發(fā)明所提供的同時(shí)支持大容量存儲和以太網(wǎng)通信的從MMC/SD設(shè)備302,這兩個(gè)設(shè)備能夠通過一個(gè)MMC/SD接口相互連接。所述 MMC/SD接口可以是Min1-SD接口、Micro-SD接口、標(biāo)準(zhǔn)MMC/SD接口等任何符合MMC/SD接口協(xié)議規(guī)范的其他接口。主MMC/SD設(shè)備301和從MMC/SD設(shè)備302還可以分別包括各種通用的或?qū)S玫耐獠吭O(shè)備(未在圖3中示出)。
根據(jù)本發(fā)明的主MMC/SD設(shè)備301包括主控制器303、主大容量存儲裝置305、主通信協(xié)議棧裝置307、主MMC/SD接口驅(qū)動裝置309以及用于向從MMC/SD設(shè)備302提供訪問的主MMC/SD接口。一般地,主控制器303被用于控制主大容量存儲裝置305、主通信協(xié)議棧裝置307以及主MMC/SD接口驅(qū)動裝置309的操作。主大容量存儲裝置305主要被用于提供文件系統(tǒng)服務(wù)以及數(shù)據(jù)管理服務(wù),其與現(xiàn)有主MMC/SD設(shè)備中的主大 容量存儲裝置的功能相似。主通信協(xié)議棧裝置307被用于實(shí)現(xiàn)主MMC/SD設(shè)備301與從設(shè)備MMC/SD設(shè)備302之間的以太網(wǎng)通信信息的接收和發(fā)送,將在下文中結(jié)合圖4詳細(xì)說明該主通信協(xié)議棧裝置的結(jié)構(gòu)。主MMC/SD接口驅(qū)動裝置309主要被用于實(shí)現(xiàn)MMC/SD信令在主MMC/SD接口上的傳輸。
相應(yīng)地,根據(jù)本發(fā)明的從MMC/SD設(shè)備302包括從控制器304、從大容量存儲裝置 306、從通信協(xié)議棧裝置308、從MMC/SD接口驅(qū)動裝置310以及用于向主MMC/SD設(shè)備301提供訪問的從MMC/SD接口。相似地,從控制器304被用于控制從大容量存儲裝置306、從通信協(xié)議棧裝置308以及從MMC/SD接口驅(qū)動裝置310的操作。從大容量存儲裝置306主要被用于為主MMC/SD設(shè)備301與其之間的大容量存儲提供對應(yīng)的文件系統(tǒng)服務(wù)和數(shù)據(jù)管理服務(wù),其與現(xiàn)有從MMC/SD設(shè)備中的從大容量存儲裝置的功能相似。從通信協(xié)議棧裝置307具有與主通信協(xié)議棧裝置完全相同的協(xié)議棧結(jié)構(gòu),將在下文中結(jié)合圖4詳細(xì)說明。從MMC/SD 接口驅(qū)動裝置310被用于實(shí)現(xiàn)MMC/SD信令在從MMC/SD接口上的傳輸。
圖4示出了根據(jù)本發(fā)明的用于基于MMC/SD接口的同時(shí)支持大容量存儲和以太網(wǎng)通信的設(shè)備的通信協(xié)議棧的示例結(jié)構(gòu)。如圖4所示,主通信協(xié)議棧裝置與從通信協(xié)議棧裝置具有完全相同的協(xié)議棧結(jié)構(gòu),并且主MMC/SD設(shè)備301與從MMC/SD設(shè)備302中的相同層相互對應(yīng),這類似于一般地基于以太網(wǎng)通信的兩個(gè)設(shè)備之間的關(guān)聯(lián)。舉例來說,這樣的通信協(xié)議??梢园☉?yīng)用層模塊、傳輸層模塊、網(wǎng)絡(luò)層模塊、數(shù)據(jù)鏈路層模塊、MMC/SDEEM(Ethernet Emulation Model,以太網(wǎng)模擬模型)層模塊、MMC/SD協(xié)議層模塊。具體而言,應(yīng)用層模塊主要被用于執(zhí)行網(wǎng)絡(luò)應(yīng)用程序,諸如TFTP、HTTP等;傳輸層模塊和網(wǎng)絡(luò)層模塊被用于執(zhí)行以太網(wǎng)協(xié)議功能,例如TCP/IP ;數(shù)據(jù)鏈路層模塊被用于執(zhí)行以太網(wǎng)數(shù)據(jù)幀的封裝。MMC/SD EEM層模塊被用于向上層協(xié)議棧模擬以太網(wǎng)卡的功能,而MMC/SD協(xié)議層模塊被用于執(zhí)行MMC/SD協(xié)議棧的功能,實(shí)現(xiàn)該協(xié)議棧支持的各種MMC/SD命令。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,主通信協(xié)議棧裝置307以及從通信協(xié)議棧308并不限于圖4所示的這種分層結(jié)構(gòu)。在實(shí)踐中,可以根據(jù)不同需求而將幾個(gè)相關(guān)層合并,例如將傳輸層模塊與網(wǎng)絡(luò)層模塊合并。此外,也可以根據(jù)需要將MMC/SD協(xié)議層模塊與主或從MMC/SD接口驅(qū)動裝置合并。
根據(jù)圖4所示的通信協(xié)議棧裝置結(jié)構(gòu),當(dāng)主或從MMC/SD設(shè)備發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)流從例如應(yīng)用層開始從上至下逐層傳送并且從MMC/SD接口發(fā)出;當(dāng)從或主MMC/SD設(shè)備接收數(shù)據(jù)時(shí),將待接收的數(shù)據(jù)從MMC/SD接口收回并且逐層從下至上傳送。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,數(shù)據(jù)流不一定要從應(yīng)用層開始,而是可以根據(jù)不同的需求從中間某層開始,如MMC/SD EEM層。另外,數(shù)據(jù)流也不一定要順序經(jīng)過每一層,而是可以跳過某些層。從圖4中可以大體上看出,在MMC/SD EEM層之上的幾層與TCP/IP網(wǎng)絡(luò)模型相一致,因此其數(shù)據(jù)傳輸格式可以遵循TCP/IP協(xié)議棧,舉例來說網(wǎng)絡(luò)層的數(shù)據(jù)格式可以是IP包、數(shù)據(jù)鏈路層的數(shù)據(jù)格式可以是以太網(wǎng)數(shù)據(jù)幀。相對地,在MMC/SD EEM層之下的幾層與MMC/SD協(xié)議模型相一致,由其產(chǎn)生的數(shù)據(jù)包遵循MMC/SD協(xié)議所規(guī)定的在MMC/SD接口上傳輸?shù)臄?shù)據(jù)的格式。MMC/SD EEM 層本身則被用于實(shí)現(xiàn)上下兩部分之間的連接,其可以使用EEM包格式來向上或向下傳輸數(shù)據(jù)。
圖5示出了用于根據(jù)本發(fā)明的基于MMC/SD接口的同時(shí)支持大容量存儲和以太網(wǎng)通信的設(shè)備的EEM包的示例組成。如圖5所示,EEM包例如可以由EEM頭部字段(EEM Header)和負(fù)載字段(Payload)(例如以太網(wǎng)數(shù)據(jù)幀)組成。在一些實(shí)施例中,EEM包頭部字段可以包括第一字段(bmType)和第二字段。第一字段可以被用于定義EEM包的類型,即指示該EEM是數(shù)據(jù)包還是命令包,而第二字段則依據(jù)EEM包類型的不同具有不同的結(jié)構(gòu)。
在一些實(shí)施例中,當(dāng)EEM包是用于承載以太網(wǎng)數(shù)據(jù)幀的數(shù)據(jù)包時(shí),其第一字段 bmType = Data,即表示該E EM包被用于傳輸網(wǎng)絡(luò)數(shù)據(jù)。因此,該EEM包頭部的第二字段可以例如包括校驗(yàn)狀態(tài)字段和長度字段,其中校驗(yàn)狀態(tài)字段(bmCRC)可以被用于指定以太網(wǎng)數(shù)據(jù)幀的CRC校驗(yàn)的開啟或關(guān)閉,而長度字段可以被用于指定EEM包中的負(fù)載,即以太網(wǎng)數(shù)據(jù)中貞的長度。
在一些實(shí)施例中,當(dāng)EEM包是用于控制以太網(wǎng)通信的命令包時(shí),其第一字段 bmType = Command,即表示該EEM包被用于傳輸以太網(wǎng)通信控制命令。因此,該EEM包頭部的第二字段可以例如包括命令類型字段和命令參數(shù)字段,其中命令類型字段(bmCMD)可以被用于指示EEM命令類型,而命令參數(shù)字段(bmPara)可以被用于設(shè)定命令參數(shù)。EEM命令包由MMC/SD EEM層模塊直接建立,其與應(yīng)用層或網(wǎng)絡(luò)協(xié)議棧無直接關(guān)系,主要用于網(wǎng)絡(luò)接口控制。
在一些實(shí)施例中,主MMC/SD設(shè)備301與從MMC/SD設(shè)備302之間的以太網(wǎng)通信可以采用請求-命令機(jī)制,即由主設(shè)備向從設(shè)備發(fā)送請求命令以指示從設(shè)備的操作,而從設(shè)備在完成操作之后返回相應(yīng)的應(yīng)答命令。可以利用上述EEM命令包實(shí)現(xiàn)這種請求響應(yīng)機(jī)制以在主MMC/SD設(shè)備301與從MMC/SD設(shè)備302之間建立以太網(wǎng)通信連接、結(jié)束以太網(wǎng)通信連接、檢查以太網(wǎng)通信連接狀態(tài)等。為此,EEM命令包頭部字段中的命令類型字段可以被用于指示例如以下命令類型
-Probe命令,該P(yáng)robe命令被主MMC/SD設(shè)備用于驗(yàn)證從MMC/SD設(shè)備是否支持以太網(wǎng)通信,其中主MMC/SD設(shè)備在向從MMC/SD設(shè)備發(fā)送Probe命令之后根據(jù)從MMC/SD設(shè)備是否返回ProbeResponse命令來判斷其是否支持以太網(wǎng)通信;
· ProbeResponse 命令,該 ProbeResponse 命令被從 MMC/SD 設(shè)備用于響應(yīng)主 MMC/ SD設(shè)備發(fā)出的Probe命令;
Stop命令,該Stop命令被主MMC/SD設(shè)備用于關(guān)閉從MMC/SD設(shè)備的以太網(wǎng)通信功能;
· StopResponse命令,該StopResponse命令被從MMC/SD設(shè)備用于響應(yīng)主設(shè)備發(fā)出的Stop命令;
·WakeUp命令,該WakeUp命令被主MMC/SD設(shè)備用于重新啟動從MMC/SD設(shè)備的以太網(wǎng)通信功能;
· WakeupResponse命令,該WakeupResponse命令被從MMC/SD設(shè)備用于響應(yīng)主 MMC/SD設(shè)備發(fā)出的Wakeup命令;
Echo命令,該Echo命令被用于驗(yàn)證以太網(wǎng)通信連接的有效性,其中主MMC/SD設(shè)備和從MMC/SD設(shè)備都可以使用該命令;當(dāng)任何一方接收到Echo命令時(shí)需要使用該命令的負(fù)載字段內(nèi)的數(shù)據(jù)發(fā)送EchoResponse命令;
.EchoResponse 命令,該 EchoResponse 命令被主 MMC/SD 設(shè)備或從 MMC/SD 設(shè)備用于響應(yīng)相應(yīng)的Echo命令;
·ResponseHint 命令,該 ResponseHint 命令被從 MMC/SD 設(shè)備用于在主 MMC/SD 設(shè)備停止查詢來自從MMC/SD設(shè)備的數(shù)據(jù)時(shí)設(shè)置停止查詢的最小時(shí)間間隔,主MMC/SD設(shè)備可以忽略該命令;
· ResponseCompleteHint 命令,所述 ResponseCompleteHint 命令被從 MMC/SD 設(shè)備用于通知主MMC/SD設(shè)備現(xiàn)在沒有數(shù)據(jù)要發(fā)出,當(dāng)主MMC/SD設(shè)備收到該命令時(shí),其可以停止查詢直到其自身有數(shù)據(jù)要發(fā)或者到達(dá)指定時(shí)間,主MMC/SD設(shè)備也可以忽略該命令;當(dāng)?shù)竭_(dá)所述指定時(shí)間而主MMC/SD設(shè)備沒有數(shù)據(jù)要發(fā)時(shí),主MMC/SD設(shè)備可以發(fā)送Tickle命令給從MMC/SD設(shè)備;但是由于主MMC/SD設(shè)備可以忽略該命令,所以從MMC/SD設(shè)備不一定會在指定時(shí)間到達(dá)時(shí)收到所述Tickle命令;
· Tickle命令,該Tickle命令被主MMC/SD設(shè)備用于通知從MMC/SD設(shè)備 ResponseCompleteHint命令的指定時(shí)間已到;由于主MMC/SD設(shè)備可以忽略該命令,所以從 MMC/SD設(shè)備不一定會在指定時(shí)間到達(dá)時(shí)收到所述Tickle命令。
本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,除以上所述的命令類型以外,可以根據(jù)需要對所述命令集進(jìn)行相應(yīng)的擴(kuò)展,從而完善主MMC/SD設(shè)備與從MMC/SD設(shè)備之間的以太網(wǎng)通信功能。
根據(jù)圖4所示的通信協(xié)議棧裝置結(jié)構(gòu)可知,MMC/SD EEM層所生成的EEM包將被傳送給MMC/SD協(xié)議層和MMC/SD接口驅(qū)動裝置,進(jìn)而從MMC/SD接口發(fā)出;或者相反,EEM包可由MMC/SD EEM層從MMC/SD協(xié)議層和MMC/SD接口驅(qū)動裝置接收,并且在MMC/SD層就地被處理或者解包后繼續(xù)向上傳送?,F(xiàn)有的MMC/SD協(xié)議規(guī)定了在MMC/SD接口上傳輸?shù)臄?shù)據(jù)應(yīng)以塊為單位,每個(gè)塊為512字節(jié)的2n倍,而RFC894規(guī)范規(guī)定了以太網(wǎng)數(shù)據(jù)幀大小為64-1518字節(jié)。因此,以塊大小為BL0CK_LEN(例如512字節(jié))為例,如果需要發(fā)送或接收的EEM包的長度在BL0CK_LEN之內(nèi),則MMC/SDEEM層可以調(diào)用MMC/SD協(xié)議層的單塊讀寫命令(CMD17/ CMD24)并且通過所述MMC/SD接口驅(qū)動裝置控制的MMC/SD接口發(fā)送或接收;如果EEM包的長度大于BL0CK_LEN,則MMC/SD EEM層可以使用MMC/SD協(xié)議層的多塊讀寫命令(CMD18/ CMD25)。如果存在包間空隙,則可以使用任何不影響解包的字符填充(例如0x0)。舉例來說,使用MMC/SD塊承載EEM包可以存在以下幾種形式一個(gè)MMC/SD塊包含一個(gè)EEM包;一個(gè)MMC/SD塊包含多個(gè)EEM包;多個(gè)MMC/SD塊包含一個(gè)EEM包;多個(gè)MMC/SD塊包含多個(gè)分開的EEM包。
下面將描述利用圖4所示的通信協(xié)議棧裝置在主MMC/SD設(shè)備301與從MMC/SD設(shè)備302之間進(jìn)行以太網(wǎng)通信的過程。以從主MMC/SD設(shè)備301向從MMC/SD設(shè)備302傳輸IP 數(shù)據(jù)包為例,該過程可以包括如下兩個(gè)部分
a)在發(fā)送端,主MMC/SD設(shè)備301中的應(yīng)用層數(shù)據(jù)經(jīng)主通信協(xié)議棧裝置307中的傳輸層模塊和網(wǎng)絡(luò)層模塊處理并且在形成網(wǎng)絡(luò)層IP數(shù)據(jù)包之后傳送給數(shù)據(jù)鏈路層模塊,數(shù)據(jù)鏈路層模塊將該網(wǎng)絡(luò)層IP數(shù)據(jù)包封裝成以太網(wǎng)數(shù)據(jù)幀,然后交由MMC/SD EEM層模塊處理。MMC/SD EEM模塊在所收到的以太網(wǎng)數(shù)據(jù)幀頭部添加EEM頭部字段,將其封裝成EEM數(shù)據(jù)包。隨后,依據(jù)要發(fā)送的EEM包(單個(gè)或多個(gè))的大小組成單塊或多塊MMC/SD數(shù)據(jù)塊, 調(diào)用MMC/SD協(xié)議中的命令CMD24 (單塊寫命令)或命令CMD25 (多塊寫命令),通過MMC/SD 協(xié)議層模塊及主MMC/SD接口驅(qū)動裝置將MMC/SD數(shù)據(jù)塊從主MMC/SD接口發(fā)出。
b)在接收端,從MMC/SD設(shè)備302通過從MMC/SD接口收到所述單塊或多塊MMC/SD 數(shù)據(jù)塊,并將其傳送到MMC/SD EEM層模塊;所述MMC/SD EEM層模塊從所述MMC/SD數(shù)據(jù)塊中獲取單個(gè)或多個(gè)EEM包,并依據(jù)EEM包的頭部字段判斷該包的類型,即是命令包還是數(shù)據(jù)包 。如果確定是EEM命令包,則由該模塊直接處理;如果是EEM數(shù)據(jù)包,則去掉EEM頭部字段獲取以太網(wǎng)數(shù)據(jù)幀并交由數(shù)據(jù)鏈路層模塊處理;所述數(shù)據(jù)鏈路層模塊從以太網(wǎng)數(shù)據(jù)幀中獲取IP數(shù)據(jù)包后再傳送至傳輸層模塊和網(wǎng)絡(luò)層模塊處理,最后由應(yīng)用層模塊處理相關(guān)的應(yīng)用層數(shù)據(jù)。
本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,上述IP數(shù)據(jù)包只是網(wǎng)絡(luò)層數(shù)據(jù)包的一種形式,其還可以是ARP數(shù)據(jù)包、RARP數(shù)據(jù)包等,并且數(shù)據(jù)流的起始也可以不是應(yīng)用層(例如TCP的同步包由傳輸層構(gòu)建)。
由于基于MMC/SD接口的傳輸為主從模式,即所有數(shù)據(jù)傳輸必須都由主MMC/SD設(shè)備301發(fā)起,所以對于由從MMC/SD設(shè)備302向主MMC/SD設(shè)備301傳輸網(wǎng)絡(luò)通信數(shù)據(jù)的情況,可以規(guī)定從設(shè)備將需要傳送的數(shù)據(jù)塊放入發(fā)送緩存中,然后等待主設(shè)備讀取。根據(jù)本發(fā)明的實(shí)施例,可以采用由主MMC/SD設(shè)備301定時(shí)輪詢從MMC/SD設(shè)備302的方式來實(shí)現(xiàn)從設(shè)備的數(shù)據(jù)發(fā)送,該功能可以利用上文中所描述的MMC/SD EEM層模塊生成的EEM命令包來實(shí)現(xiàn)。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,具體實(shí)現(xiàn)并不依賴于某一特定的方式,而是可以使用諸如定時(shí)器、操作系統(tǒng)服務(wù)、操作系統(tǒng)內(nèi)核線程等任何具有輪詢功能的方法。
從以上所描述的過程可以看出,主MMC/SD設(shè)備301與從MMC/SD設(shè)備302可以通過使用MMC/SD EEM層模塊來進(jìn)行網(wǎng)絡(luò)通信,包括使用現(xiàn)有的網(wǎng)絡(luò)應(yīng)用進(jìn)行網(wǎng)絡(luò)通訊。另外,主 MMC/SD設(shè)備301和從MMC/SD設(shè)備302中只要有一方可以連接到其他網(wǎng)絡(luò)例如Internet), 則另一方也能作為一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)連接到該網(wǎng)絡(luò)。
圖6是根據(jù)本發(fā)明的基于MMC/SD接口的用于同時(shí)支持大容量存儲和以太網(wǎng)通信的方法的流程圖。下面將結(jié)合圖3所描述的主MMC/SD設(shè)備301和從MMC/SD設(shè)備302來描述該方法流程,并且進(jìn)一步說明本發(fā)明所提供的用于同時(shí)支持大容量存儲和以太網(wǎng)通信的基于MMC/SD的主設(shè)備和從設(shè)備的特性及優(yōu)點(diǎn)。
在步驟S601中,將從MMC/SD設(shè)備與主MMC/SD設(shè)備301相連,此處該從MMC/SD設(shè)備并不一定是從MMC/SD設(shè)備302,其可以是帶有與主MMC/SD設(shè)備301相應(yīng)的從MMC/SD接口的任何從MMC/SD設(shè)備。因此,主MMC/SD設(shè)備301可以檢測出在其主MMC/SD接口上有從設(shè)備接入。一般地,在檢測到有從設(shè)備接入時(shí),主MMC/SD設(shè)備301將給從設(shè)備供電,例如對于從MMC/SD設(shè)備302而言可以是給從MMC/SD接口驅(qū)動裝置310供電。從設(shè)備由此開始各個(gè)模塊的上電初始化及加載過程,例如從MMC/SD設(shè)備302將完成從大容量存儲裝置306以及從通信協(xié)議棧裝置308的加載。對于主MMC/SD設(shè)備302本身而言,其也將初始化及加載相應(yīng)的模塊,包括主大容量存儲裝置305以及主通信協(xié)議裝置307的部分功能。
在步驟S602中,主MMC/SD設(shè)備301的主控制器303將通過主大容量存儲裝置305 讀取從設(shè)備中的特殊地址信息并對該信息進(jìn)行保存??梢詫⒅鱉MC/SD設(shè)備301配置為讀取從設(shè)備的文件系統(tǒng)中的固定位置并且將從該位置讀取到的數(shù)據(jù)保存為一個(gè)物理地址(而不管其實(shí)際上是否代表地址信息)。接著在步驟S603中,主MMC/SD設(shè)備301將向其所認(rèn)為的地址發(fā)送一探查命令并且根據(jù)從設(shè)備發(fā)回的命令響應(yīng)值來判斷該從設(shè)備是否是從MMC/ SD設(shè)備302。下面將詳細(xì)描述這個(gè)過程。
已知在MMC/SD協(xié)議中規(guī)定了讀寫塊命令(單塊讀寫命令CMD17/CMD24或者多塊讀寫命令CMD18/CMD25)的參數(shù)中必須包含讀寫塊的起始地址。為了使主MMC/SD設(shè)備301 中的主大容量存儲裝置305和主通信協(xié)議棧裝置307可以同時(shí)運(yùn)行并且互不干涉,需要從 MMC/SD接口能夠提供兩個(gè)互不影響的物理通路。也就是說,主大容量存儲裝置305訪問的從MMC/SD設(shè)備中的地址空間和主通信協(xié)議棧裝置307訪問的從MMC/SD設(shè)備中的地址空間是不同的而且是互相獨(dú)立的。因此,為了得到這樣的相互獨(dú)立的物理地址空間,除了用于大容量存儲的常規(guī)地址之外,可以在根據(jù)本發(fā)明的從MMC/SD設(shè)備中設(shè)定一個(gè)特殊地址作為用于以太網(wǎng)通信的起始地址。
對于根據(jù)本發(fā)明的從MMC/SD設(shè)備302而言,與該特殊地址有關(guān)的信息可以被預(yù)先設(shè)置在從大容量存儲裝置306的文件系統(tǒng)主引導(dǎo)扇區(qū)后的保留扇區(qū)內(nèi),該主引導(dǎo)扇區(qū)可以是整個(gè)存儲裝置一開始的第一個(gè)扇區(qū),例如PC硬盤的O柱面O磁頭I扇區(qū)。一般而言,該特殊地址信息是一個(gè)扇區(qū)的內(nèi)容,大小為512字節(jié)。當(dāng)從大容量存儲裝置306中存在多個(gè)分區(qū)時(shí),該特殊地址信息可以被設(shè)置在每個(gè)分區(qū)中的引導(dǎo)扇區(qū),即每個(gè)分區(qū)開始存儲全局參數(shù)信息的扇區(qū)后的保留扇區(qū)中。這樣的文件系統(tǒng)可以是FAT16/32、NTFS或者exFAT。在這種情況下,對于每個(gè)分區(qū)可以使用不同的保留扇區(qū)。另外,還可以在所述從大容量存儲裝置的文件系統(tǒng)主引導(dǎo)扇區(qū)后的保留扇區(qū)中設(shè)置對所述特殊地址信息的索引。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,所述特殊地址信息并不僅限于用這些方法得到。只要保證主大容量存儲裝置305和主通信協(xié)議棧裝置307訪問的從MMC/SD設(shè)備中的地址空間是相互獨(dú)立,可以采用任何其他方法。
在實(shí)踐中,主MMC/SD設(shè)備301可以首先利用上述特殊地址信息斷是否能夠與連接至其的從設(shè)備一起實(shí)現(xiàn)上文所描述的用于以太網(wǎng)通信的請求響應(yīng)機(jī)制,從而建立以太網(wǎng)通信連接。舉例來說,主MMC/SD設(shè)備301根據(jù)預(yù)先設(shè)置在步驟S602中讀取從大容量存儲裝置306的文件系統(tǒng)主引導(dǎo)扇區(qū)后的保留扇區(qū),讀取該扇區(qū)中的內(nèi)容并且將其保存為用于以太網(wǎng)通信的特殊地址。接著在步驟S603中,主MMC/SD設(shè)備301可以生成EEM命令包,在其中包含上述Probe命令作為所述探查命令,并且在MMC/SD寫命令中包含所述特殊地址。主 MMC/SD設(shè)備301將該探查命令發(fā)往從設(shè)備,并且等待一段預(yù)定的時(shí)間之后再向所述特殊地址發(fā)出MMC/SD讀命令。通過判斷從該特殊地址讀取的內(nèi)容是否為ProbeResponse命令來判斷連接至其的從設(shè)備是普通的MMC/SD從設(shè)備還是本發(fā)明所提供的從MMC/SD設(shè)備302。 對于普通的MMC/SD從設(shè)備,在所述保留扇區(qū)中將不會設(shè)置有用于以太網(wǎng)通信的特殊地址并且也不會響應(yīng)Probe命令而發(fā)回ProbeResponse命令。
在步驟604中,如果主MMC/SD設(shè)備301確定與其連接的從設(shè)備不是從MMC/SD設(shè)備302,而僅是例如MMC/SD存儲卡等一般的從MMC/SD設(shè)備,則其不再加載完整的主通信協(xié)議棧裝置307,而是執(zhí)行標(biāo)準(zhǔn)的MMC/SD大容量存儲流程,該過程為現(xiàn)有技術(shù),因而在此不再贅述。
如果主MMC/SD設(shè)備301在步驟604中確定與其連接的從設(shè)備是從MMC/SD設(shè)備 302,則在步驟S605中主MMC/SD設(shè)備301加載主通信協(xié)議棧裝置307的完整功能并對其進(jìn)行初始化。在此之后,主MMC/SD設(shè)備301向從MMC/SD設(shè)備302發(fā)送數(shù)據(jù)以進(jìn)行大容量數(shù)據(jù)存儲或者以太網(wǎng)通信。
在步驟S606中,從MMC/SD設(shè)備302中的從控制器304進(jìn)而通過判斷來自主MMC/ SD設(shè)備301的數(shù)據(jù)是否發(fā)向所述特殊地址來區(qū)分是所收到的數(shù)據(jù)是來自主大容量存儲裝置305還是來自主通信協(xié)議棧裝置307的。如果確定所收到的數(shù)據(jù)發(fā)往所述特殊地址,則從控制器304就將其轉(zhuǎn)發(fā)給從通信協(xié)議棧裝置308,然后返回響應(yīng)的從通信協(xié)議棧裝置308 的響應(yīng),從而實(shí)現(xiàn)以太網(wǎng)通信。如果確定所收到的數(shù)據(jù)不是發(fā)往所述特殊地址,而是發(fā)往例如從MMC/SD設(shè)備中一般用于大容量存儲的地址,則從控制器304就會把這些數(shù)據(jù)轉(zhuǎn)發(fā)給從大容量存儲裝置306,然后返回相應(yīng)的從大容量存儲裝置306的響應(yīng),從而實(shí)現(xiàn)標(biāo)準(zhǔn)的基于 MMC/SD接口的大容量存儲流程。
應(yīng)當(dāng)注意的是,由于主大容量存儲裝置305和主通信協(xié)議棧裝置307使用同一 MMC/SD接口,因此為了使主大容量存儲裝置305和主通信協(xié)議棧裝置307同時(shí)運(yùn)行互不干擾,根據(jù)本發(fā)明的實(shí)施例還必須要求主大容量存儲裝置305和主通信協(xié)議棧裝置307對主 MMC/SD接口驅(qū)動裝置309的操作必須是原子操作。原子操作是指在嵌入式操作系統(tǒng)中不會被線程調(diào)度機(jī)制打斷的操作,也就是說在根據(jù)本發(fā)明的用于同時(shí)支持大容量存儲和以太網(wǎng)通信的主MMC/SD設(shè)備的操作過程中,任何一個(gè)MMC/SD協(xié)議命令的處理過程都不能被打斷。
在實(shí)踐中,由于主大容量存儲裝置一般在帶有主MMC/SD接口的嵌入式終端設(shè)備的現(xiàn)有系統(tǒng)中已經(jīng)存在并且 一般不對其進(jìn)行修改,因此主通信協(xié)議棧裝置306在使用主 MMC/SD接口驅(qū)動裝置309時(shí)需要讀取該主MMC/SD接口驅(qū)動裝置的狀態(tài)并確定其是否在執(zhí)行命令。如果已有根據(jù)MMC/SD協(xié)議的CMD命令在執(zhí)行,則主大容量存儲裝置306須等待其空閑時(shí)才能使用MMC/SD接口驅(qū)動裝置。同樣地,主通信協(xié)議棧裝置307在使用主MMC/SD 接口驅(qū)動裝置309的時(shí)候,也必須保證在其執(zhí)行根據(jù)MMC/SD協(xié)議的CMD命令的時(shí)候是原子操作。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,具體的原子操作實(shí)現(xiàn)并不依賴于某一特定的方式,而是可以使用諸如嵌入式操作系統(tǒng)提供的屏蔽中斷等實(shí)現(xiàn)原子操作的功能方法。
另外,如果在實(shí)現(xiàn)本發(fā)明所提供的主MMC/SD設(shè)備時(shí),主大容量存儲裝置306和主通信協(xié)議棧裝置308都重新設(shè)計(jì),而不使用帶有主MMC/SD接口的嵌入式終端設(shè)備中現(xiàn)有的主大容量存儲裝置,則帶有主MMC/SD接口的嵌入式終端設(shè)備,即主MMC/SD設(shè)備301的主控制器303可以采用信號量、自旋鎖等嵌入式操作系統(tǒng)提供的并發(fā)處理機(jī) 制來保證主大容量存儲裝置305和主通信協(xié)議棧裝置307對主MMC/SD接口驅(qū)動裝置309的操作為原子操作。 本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,具體的原子操作實(shí)現(xiàn)并不止上述方式。
舉例來說,可以在帶有MMC/SD主接口的手機(jī)、PDA、膝上型計(jì)算機(jī)、POS機(jī)或者ATM 機(jī)上實(shí)現(xiàn)本發(fā)明所提供的主MMC/SD設(shè)備,從而使得這些設(shè)備在與本發(fā)明所提供的從MMC/ SD設(shè)備一起使用時(shí)可以同時(shí)進(jìn)行大容量存儲和以太網(wǎng)通信。
應(yīng)當(dāng)說明的是,以上具體實(shí)施方式
僅用以說明本發(fā)明的技術(shù)方案而非對其進(jìn)行限制。盡管參照上述具體實(shí)施方式
對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,依然可以對本發(fā)明的具體實(shí)施方式
進(jìn)行修改或?qū)Σ糠旨夹g(shù)特征進(jìn)行等同替換而不脫離本發(fā)明的實(shí)質(zhì),其均涵蓋在本發(fā)明請求保護(hù)的范圍中。
權(quán)利要求
1.一種用于同時(shí)支持大容量存儲和以太網(wǎng)通信的主MMC/SD設(shè)備,其特征在于,所述主 MMC/SD設(shè)備包括主MMC/SD接口,用于向從MMC/SD設(shè)備提供訪問接口 ;主MMC/SD接口驅(qū)動裝置,用于控制MMC/SD信令在所述主MMC/SD接口上的傳輸;主大容量存儲裝置,用于為大容量存儲提供文件系統(tǒng)服務(wù)和數(shù)據(jù)管理服務(wù);主通信協(xié)議棧裝置,用于實(shí)現(xiàn)所述主MMC/SD設(shè)備與所述從MMC/SD設(shè)備之間的以太網(wǎng)通信;以及主控制器,用于控制所述主MMC/SD接口驅(qū)動裝置、所述主大容量存儲裝置和所述主通信協(xié)議棧裝置的操作;其中所述主大容量存儲裝置和所述主通信協(xié)議棧裝置分別與所述主MMC/SD接口驅(qū)動裝置進(jìn)行交互。
2.根據(jù)權(quán)利要求1所述的主MMC/SD設(shè)備,其特征在于,其中所述所述主大容量存儲裝置和所述主通信協(xié)議棧裝置被設(shè)置為訪問所述從MMC/SD設(shè)備中相互獨(dú)立的物理地址。
3.根據(jù)權(quán)利要求2所述的主MMC/SD設(shè)備,其特征在于,其中所述主大容量存儲裝置和所述主通信協(xié)議站裝置對所述主MMC/SD接口驅(qū)動裝置的操作是原子操作。
4.根據(jù)權(quán)利要求3所述的主MMC/SD設(shè)備,其特征在于,其中所述主控制器被用于通過所述主通信協(xié)議棧裝置向所述從MMC/SD設(shè)備發(fā)送探查命令并且通過命令返回值確定所述從MMC/SD設(shè)備是否支持以太網(wǎng)通信。
5.根據(jù)權(quán)利要求1所述的主MMC/SD設(shè)備,其特征在于,所述主通信協(xié)議棧裝置從上至下依次包括用于執(zhí)行網(wǎng)絡(luò)應(yīng)用程序的應(yīng)用層模塊;用于執(zhí)行以太網(wǎng)協(xié)議功能的傳輸層模塊和網(wǎng)絡(luò)層模塊;用于封裝以太網(wǎng)數(shù)據(jù)幀的數(shù)據(jù)鏈路層模塊;用于為上層協(xié)議棧模擬以太網(wǎng)卡功能的MMC/SD以太網(wǎng)模擬模型EEM層模塊;以及用于執(zhí)行MMC/SD協(xié)議棧的MMC/SD協(xié)議層模塊。
6.根據(jù)權(quán)利要求5所述的主MMC/SD設(shè)備,其特征在于,其中所述MMC/SDEEM層模塊使用EEM包格式傳輸數(shù)據(jù),所述EEM包由EEM頭部字段和EEM負(fù)載字段組成。
7.根據(jù)權(quán)利要求6所述的主MMC/SD設(shè)備,其特征在于,其中所述EEM頭部字段包括第一字段和第二字段,所述第一字段用于定義所述EEM包的類型。
8.根據(jù)權(quán)利要求7所述的主MMC/SD設(shè)備,其特征在于,其中當(dāng)所述EEM包為數(shù)據(jù)包時(shí), 所述第二字段包括校驗(yàn)狀態(tài)字段和長度字段;其中所述長度字段用于指定所述EEM數(shù)據(jù)包中負(fù)載字段的長度,而所述校驗(yàn)狀態(tài)字段用于指定以太網(wǎng)數(shù)據(jù)幀的CRC校驗(yàn)的開啟或關(guān)閉。
9.根據(jù)權(quán)利要求7所述的主MMC/SD設(shè)備,其特征在于,其中當(dāng)所述EEM包為命令包時(shí), 所述第二字段包括命令類型字段和命令參數(shù)字段;其中所述命令類型字段用于定義EEM命令的類型,而所述命令參數(shù)字段用于定義EEM命令的參數(shù)。
10.根據(jù)權(quán)利要求6所述的主MMC/SD設(shè)備,其特征在于,其中所述MMC/SD協(xié)議層模塊以下列方式中的一種使用MMC/SD數(shù)據(jù)塊承載所述EEM包一個(gè)MMC/SD數(shù)據(jù)塊包含一個(gè)EEM包;一個(gè)MMC/SD數(shù)據(jù)塊包含多個(gè)EEM包;多個(gè)MMC/SD數(shù)據(jù)塊包含一個(gè)EEM包;多個(gè)MMC/SD 數(shù)據(jù)塊包含多個(gè)分開的EEM包。
11.根據(jù)權(quán)利要求1中所述的主MMC/SD設(shè)備,其中所述主MMC/SD接口是Min1-SD主接口、Micro-SD主接口或者標(biāo)準(zhǔn)MMC/SD主接口。
12.一種用于同時(shí)支持大容量存儲和以太網(wǎng)通信的從MMC/SD設(shè)備,其特征在于,所述從MMC/SD設(shè)備包括從MMC/SD接口,用于向主MMC/SD設(shè)備提供訪問接口 ;從MMC/SD接口驅(qū)動裝置,用于控制MMC/SD信令在所述從MMC/SD接口上的傳輸;從大容量存儲裝置,用于為主MMC/SD設(shè)備的大容量存儲提供對應(yīng)的文件系統(tǒng)服務(wù)和數(shù)據(jù)管理服務(wù);從通信協(xié)議棧裝置,用于實(shí)現(xiàn)所述從MMC/SD設(shè)備與所述主MMC/SD設(shè)備之間的以太網(wǎng)通信;以及從控制器,用于控制所述從MMC/SD接口驅(qū)動裝置、所述從大容量存儲裝置和所述從通信協(xié)議棧裝置的操作;其中所述從大容量存儲裝置和所述從通信協(xié)議棧裝置分別與所述從MMC/SD接口驅(qū)動裝置進(jìn)行交互。
13.根據(jù)權(quán)利要求12所述的從MMC/SD設(shè)備,其特征在于,其中在所述從大容量存儲裝置的文件系統(tǒng)中包含特殊地址信息使得所述從MMC/SD接口驅(qū)動裝置能夠提供兩個(gè)相互獨(dú)立的物理通路。
14.根據(jù)權(quán)利要求13所述的從MMC/SD設(shè)備,其特征在于,其中所述特殊地址信息被設(shè)置在所述從大容量存儲裝置的文件系統(tǒng)主引導(dǎo)扇區(qū)后的保留扇區(qū)中。
15.根據(jù)權(quán)利要求13所述的從MMC/SD設(shè)備,其特征在于,其中所述特殊地址信息被設(shè)置在從大容量存儲裝置的文件系統(tǒng)每個(gè)分區(qū)的引導(dǎo)扇區(qū)后的保留扇區(qū)中。
16.根據(jù)權(quán)利要求13所述的從MMC/SD設(shè)備,其特征在于,其中在所述從大容量存儲裝置的文件系統(tǒng)主引導(dǎo)扇區(qū)后的保留扇區(qū)中設(shè)置對所述特殊地址信息的索引。
17.根據(jù)權(quán)利要求13-16所述的從MMC/SD設(shè)備,其特征在于,其中所述特殊地址信息的長度為512字節(jié)。
18.根據(jù)權(quán)利要求13所述的從MMC/SD設(shè)備,其特征在于,其中所述從控制器被設(shè)置為根據(jù)通過所述從MMC/SD接口接收到的數(shù)據(jù)是否發(fā)往所述特殊地址來區(qū)分所述數(shù)據(jù)是用于大容量存儲還是用于以太網(wǎng)通信。
19.根據(jù)權(quán)利要求12所述的從MMC/SD設(shè)備,其特征在于,所述從通信協(xié)議棧裝置從上至下依次包括用于執(zhí)行網(wǎng)絡(luò)應(yīng)用程序的應(yīng)用層模塊;用于執(zhí)行以太網(wǎng)協(xié)議功能的傳輸層模塊和網(wǎng)絡(luò)層模塊;用于封裝以太網(wǎng)數(shù)據(jù)幀的數(shù)據(jù)鏈路層模塊;用于為上層協(xié)議棧模擬以太網(wǎng)卡功能的MMC/SD以太網(wǎng)模擬模型EEM層模塊;以及用于執(zhí)行MMC/SD協(xié)議棧的MMC/SD協(xié)議層模塊。
20.根據(jù)權(quán)利要求19所述的從MMC/SD設(shè)備,其特征在于,其中所述MMC/SDEEM層模塊使用EEM包格式傳輸數(shù)據(jù),所述EEM包由EEM頭部字段和EEM負(fù)載字段組成。
21.根據(jù)權(quán)利要求20所述的從MMC/SD設(shè)備,其特征在于,其中所述EEM頭部字段包括第一字段和第二字段,所述第一字段用于定義所述EEM包的類型。
22.根據(jù)權(quán)利要求21所述的從MMC/SD設(shè)備,其特征在于,其中當(dāng)所述EEM包為數(shù)據(jù)包時(shí),所述第二字段包括校驗(yàn)狀態(tài)字段和長度字段;其中所述長度字段用于指定所述EEM數(shù)據(jù)包中負(fù)載字段的長度,而所述校驗(yàn)狀態(tài)字段用于指定以太網(wǎng)數(shù)據(jù)幀的CRC校驗(yàn)的開啟或關(guān)閉。
23.根據(jù)權(quán)利要求21所述的從MMC/SD設(shè)備,其特征在于,其中當(dāng)所述EEM包為命令包時(shí),所述第二字段包括命令類型字段和命令參數(shù)字段;其中所述命令類型字段用于定義EEM命令的類型,而所述命令參數(shù)字段用于定義EEM命令的參數(shù)。
24.根據(jù)權(quán)利要求20所述的從MMC/SD設(shè)備,其特征在于,其中所述MMC/SD協(xié)議層模塊以下列方式中的一種使用MMC/SD數(shù)據(jù)塊承載所述EEM包一個(gè)MMC/SD數(shù)據(jù)塊包含一個(gè)EEM 包;一個(gè)MMC/SD數(shù)據(jù)塊包含多個(gè)EEM包;多個(gè)MMC/SD數(shù)據(jù)塊包含一個(gè)EEM包;多個(gè)MMC/SD 數(shù)據(jù)塊包含多個(gè)分開的EEM包。
25.根據(jù)權(quán)利要求12中所述的從MMC/SD設(shè)備,其中所述從MMC/SD接口是Min1-SD從接口、Micro-SD從接口或者標(biāo)準(zhǔn)MMC/SD從接口。
26.一種用于同時(shí)支持大容量存儲和以太網(wǎng)通信的系統(tǒng),其特征在于,所述系統(tǒng)包括如權(quán)利要求1-11中任意一項(xiàng)所述的主MMC/SD設(shè)備以及如權(quán)利要求12-25中任意一項(xiàng)所述的從MMC/Sb設(shè)備,其中所述主MMC/SD設(shè)備與所述從MMC/SD設(shè)備通過同一 MMC/SD接口進(jìn)行大容量存儲和以太網(wǎng)通信。
27.如權(quán)利要求26所述的系統(tǒng),其特征在于,其中所述主MMC/SD設(shè)備與所述從MMC/SD 設(shè)備之間的以太網(wǎng)通信采用請求-響應(yīng)機(jī)制,其中請求命令和響應(yīng)命令均從所述從MMC/SD 設(shè)備中的同一特殊地址讀取。
28.如權(quán)利要求27所述的系統(tǒng),其特征在于,其中在進(jìn)行以太網(wǎng)通信時(shí),所述主MMC/SD 設(shè)備被設(shè)置為定時(shí)輪詢所述從MMC/SD設(shè)備以從所述從MMC/SD設(shè)備接收數(shù)據(jù)。
29.如權(quán)利要求26所述的系統(tǒng),其特征在于,其中所述主MMC/SD設(shè)備是帶有MMC/SD主接口的手機(jī)、PDA、膝上型計(jì)算機(jī)、POS機(jī)或者ATM機(jī)。
30.一種用于在主MMC/SD設(shè)備與從MMC/SD設(shè)備之間同時(shí)支持大容量存儲和以太網(wǎng)通信的方法,其中所述主MMC/SD設(shè)備是如權(quán)利要求1所述的主MMC/SD設(shè)備,其特征在于,所述方法包括下列步驟a.主MMC/SD設(shè)備在檢測到有從MMC/SD設(shè)備與其連接時(shí)讀取從MMC/SD設(shè)備文件系統(tǒng)中的特定位置以獲取特殊地址信息;b.主MMC/SD設(shè)備向所述特殊地址發(fā)送探查命令并且根據(jù)命令返回值判斷從MMC/SD設(shè)備是否是如權(quán)利要求12所述的從MMC/SD設(shè)備;c.如果不是,則主MMC/SD設(shè)備還原先前保存的特殊地址信息并且執(zhí)行標(biāo)準(zhǔn)MMC/SD存儲流程;否則,主MMC/SD設(shè)備加載主通信協(xié)議棧裝置并且向從MMC/SD設(shè)備發(fā)送數(shù)據(jù);d.從MMC/SD設(shè)備根據(jù)來自主MMC/SD設(shè)備的數(shù)據(jù)是否發(fā)往所述特殊地址來區(qū)分所述數(shù)據(jù)是用于大容量存儲還是用于以太網(wǎng)通信;e.如果所述數(shù)據(jù)向所述特殊地址發(fā)送,則從MMC/SD設(shè)備與主MMC/SD設(shè)備進(jìn)行以太網(wǎng)通信;否則,如權(quán) 利要求12所述的從MMC/SD設(shè)備與主MMC/SD設(shè)備一起執(zhí)行標(biāo)準(zhǔn)MMC/SD存儲流程。
全文摘要
本發(fā)明提供了用于同時(shí)支持大容量存儲和以太網(wǎng)通信的主MMC/SD設(shè)備、用于同時(shí)支持大容量存儲和以太網(wǎng)通信的從MMC/SD設(shè)備、由這兩種設(shè)備構(gòu)成的系統(tǒng)以及用于該系統(tǒng)的操作方法。本發(fā)明所公開的基于MMC/SD接口的同時(shí)支持大容量存儲和以太網(wǎng)通信的設(shè)備、系統(tǒng)和方法使具有MMC/SD接口的主設(shè)備在保留大容量存儲功能的同時(shí),也可以支持網(wǎng)絡(luò)功能,從而極大地拓展了這種具有大容量存儲功能的MMC/SD接口的嵌入式終端設(shè)備的應(yīng)用領(lǐng)域。
文檔編號H04L29/08GK103024087SQ20111028395
公開日2013年4月3日 申請日期2011年9月22日 優(yōu)先權(quán)日2011年9月22日
發(fā)明者魯志軍, 劉勁梅, 孟祥瑞, 孟宏文 申請人:中國銀聯(lián)股份有限公司