專利名稱:節(jié)省usb協(xié)議中存封包的存儲器的數(shù)據(jù)傳輸方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種數(shù)據(jù)傳輸方法,更明確地說,是有關(guān)于一種可節(jié)省通用串行 總線(Universal Serial Bus, USB)協(xié)議中用來儲存封包的存儲器的數(shù)據(jù)傳輸方法。
背景技術(shù):
請參考圖1。圖1是為說明于先前技術(shù)中USB 3. 0封包DP的封包格式的示意圖。 如圖1所示,封包DP包含一檔頭H,以及一數(shù)據(jù)負載P。檔頭H包含一型態(tài)資訊TP、一端點 資訊(end point)EP、一鏈路命令字元(link commandword)LW、一檔頭錯誤校驗碼CRCH,以 及一保留區(qū)RA。數(shù)據(jù)負載P包含一數(shù)據(jù)段D,以及一數(shù)據(jù)錯誤校驗碼CRCd。型態(tài)資訊TP可用來判斷封包DP的封包類型。封包類型,舉例來說,可為握手 (handshake)、數(shù)據(jù)(data)...等。端點資訊EP可用來判斷封包DP所屬的傳輸類型。舉例而 言,在USB協(xié)議3.0版中,包含四種傳輸類型控制型傳輸類型(control transfer type)、 中斷型傳輸類型(interrupt transfer type)、巨量型傳輸類型(bulk transfer type), 以及同時型傳輸類型(isochronous transfer type)。每種傳輸類型分別用來傳輸具有不 同特性的數(shù)據(jù),如同時型傳輸類型用來即時傳輸(real-time transfer),可應(yīng)用傳輸語音 和視訊數(shù)據(jù),以避免所傳輸?shù)恼Z音或視訊產(chǎn)生不連續(xù)或不同步(延遲)的現(xiàn)象。鏈路命令 字元LW用來表示數(shù)據(jù)鏈路的情況,且鏈路命令字元LW另包含一鏈路命令字元錯誤校驗碼 CRQ與檔頭順序參數(shù)(Header Sequence Number) HSEQ。鏈路命令字元錯誤校驗碼CRQ用 來判斷鏈路命令字元LW是否有錯誤。檔頭順序參數(shù)HSEQ用來判斷封包DP的封包順序是 否有錯誤。檔頭錯誤校驗碼CRCH用來判斷檔頭H是否有錯誤。保留區(qū)RA是可用來儲存使 用者所自行定義的數(shù)據(jù)。數(shù)據(jù)段D提供傳送端實際所傳輸?shù)臄?shù)據(jù),如攝影機所傳送的視訊數(shù)據(jù)與隨身碟所 儲存的數(shù)據(jù)等。數(shù)據(jù)錯誤校驗碼CRCD用來判斷數(shù)據(jù)段D是否有錯誤。此外,數(shù)據(jù)段D可包 含N筆數(shù)據(jù)SDi SDn。在先前技術(shù)中,于USB傳輸時,可分為傳送端T與接收端R。傳送端T可為一主控 端(host)或一裝置端(device),而接收端R則為一對應(yīng)的裝置端或一對應(yīng)的主控端。傳送 端T與接收端R于傳輸封包時的數(shù)據(jù)處理是從最底部依序分層為物理層(physical layer) PH、數(shù)據(jù)鏈路層(data link layer) DL與協(xié)議層(protocollayer) PR。以下分別說明于接收 端R接收封包DP與傳送端T欲傳送封包DP的工作原理。當接收端R接收到封包DP時,接收端R會將封包DP儲存于接收端R的數(shù)據(jù)鏈路 層DL的數(shù)據(jù)鏈路存儲器DLM。接收端R的數(shù)據(jù)鏈路層DL判斷封包DP的檔頭H正確時,接 收端R的數(shù)據(jù)鏈路層DL會將儲存于數(shù)據(jù)鏈路存儲器DLM的封包DP復(fù)制到接收端R的協(xié)議 層冊的協(xié)議存儲器PRM。如此,接收端R的協(xié)議層冊可對儲存于協(xié)議存儲器PRM的封包 DP進行后續(xù)處理。當傳送端T需要傳送數(shù)據(jù)負載P時,傳送端T的協(xié)議層PR會根據(jù)數(shù)據(jù)負載P產(chǎn)生 檔頭H,并根據(jù)檔頭H與數(shù)據(jù)負載P于傳送端T的協(xié)議層PR的協(xié)議存儲器PRM內(nèi)產(chǎn)生封包DP。傳送端T會將儲存于協(xié)議存儲器PRM封包DP復(fù)制到傳送端T的數(shù)據(jù)鏈路層DL的數(shù)據(jù) 鏈路存儲器DLM。此時,傳送端T的協(xié)議層PRM會通知傳送端T的數(shù)據(jù)鏈路層DL發(fā)送儲存 于數(shù)據(jù)鏈路存儲器DLM的封包DP。由于在先前技術(shù)中,無論是傳送端T或接收端R的協(xié)議層ra與數(shù)據(jù)鏈路層DL皆 需要有存儲器來儲存封包(如協(xié)議存儲器PRM與數(shù)據(jù)鏈路存儲器DLM)。也就是說,當接收 或傳送封包DP時,封包DP會在接收端R或傳送端T占用兩倍于封包DP的大小的存儲器空 間。如此,造成存儲器不必要的浪費,而使成本上升,帶給使用者極大的不便。
發(fā)明內(nèi)容
本發(fā)明提供一種可節(jié)省通用串行總線協(xié)議中用來儲存封包的存儲器的數(shù)據(jù)傳輸 方法。該數(shù)據(jù)傳輸方法包含一接收端接收一傳送端所傳送的一封包,且將該封包儲存于一 共用存儲器、該接收端的一數(shù)據(jù)鏈路層對儲存于該共用存儲器內(nèi)的該封包的一檔頭進行錯 誤碼校驗,以得出一數(shù)據(jù)鏈路校驗結(jié)果,并據(jù)以傳送一協(xié)議層處理訊號給該接收端的一協(xié) 議層,以及該接收端的該協(xié)議層根據(jù)該協(xié)議層處理訊號,直接對儲存于該共用存儲器內(nèi)的 該封包進行后續(xù)處理。本發(fā)明另提供一種可節(jié)省通用串行總線協(xié)議中用來儲存封包的存儲器的數(shù)據(jù)傳 輸方法。該數(shù)據(jù)傳輸方法包含一傳送端的一協(xié)議層將一數(shù)據(jù)負載寫入于一共用數(shù)據(jù)負載存 儲器、該傳送端的該協(xié)議層根據(jù)該數(shù)據(jù)負載產(chǎn)生一檔頭,并將該檔頭寫入一共用檔頭存儲 器,以及該傳送端的一數(shù)據(jù)鏈路層直接將儲存于該共用檔頭存儲器內(nèi)的該檔頭與儲存于該 共用數(shù)據(jù)負載存儲器內(nèi)的該數(shù)據(jù)負載組成一封包,并將該封包傳送至一接收端。本發(fā)明另提供一種可節(jié)省通用串行總線協(xié)議中用來儲存封包的存儲器的裝置。該 裝置包含一傳送裝置,以及一接收裝置。該傳送裝置包含一共用檔頭存儲器、一共用數(shù)據(jù)負 載存儲器、一第一協(xié)議層裝置,以及一第一數(shù)據(jù)鏈路層裝置。該第一協(xié)議層裝置,用來根據(jù) 一數(shù)據(jù)負載,以產(chǎn)生一檔頭,并儲存該數(shù)據(jù)負載于該共用數(shù)據(jù)負載存儲器,以及儲存該檔頭 于該共用檔頭存儲器。該第一數(shù)據(jù)鏈路層裝置,用來直接將儲存于該共用檔頭存儲器的該 檔頭與儲存于該共用數(shù)據(jù)負載存儲器的該數(shù)據(jù)負載組成一封包,并發(fā)送該封包。該接收裝 置,用來接收該封包。該接收裝置包含一共用存儲器、一第二數(shù)據(jù)鏈路層裝置,以及一第二 協(xié)議層裝置。該共用存儲器,用來儲存該封包。該第二數(shù)據(jù)鏈路層裝置,用來對儲存于該共 用存儲器內(nèi)的該封包的該檔頭進行錯誤碼校驗,以產(chǎn)生一數(shù)據(jù)鏈路校驗結(jié)果,并根據(jù)該數(shù) 據(jù)鏈路校驗結(jié)果,以傳送一數(shù)據(jù)鏈路回復(fù)訊號至該傳送裝置,與產(chǎn)生一協(xié)議層處理訊號。該 第二協(xié)議層裝置,用來根據(jù)該協(xié)議層處理訊號與儲存于該共用存儲器的該封包的該檔頭的 一端點資訊,以判斷儲存于該共用存儲器的該封包為同時型傳輸類型封包。本發(fā)明另提供一種節(jié)省存儲器的接收裝置,該接收裝置依據(jù)一通訊協(xié)議接收一封 包,該封包包含一檔頭與一數(shù)據(jù)負載。該接收裝置包含一共用存儲器、一第二數(shù)據(jù)鏈路層裝 置,以及一第二協(xié)議層裝置。該共用存儲器包含復(fù)數(shù)個封包儲存單元。該復(fù)數(shù)個封包儲存單 元的一第一封包儲存單元儲存該封包且該第一封包儲存單元對應(yīng)一第一存儲器位址。該第 二數(shù)據(jù)鏈路層裝置電性連接于該共用存儲器。該第二數(shù)據(jù)鏈路層裝置依據(jù)該第一存儲器位 址來讀取儲存于該第一封包儲存單元的該封包。該第二協(xié)議層裝置電性連接于該共用存儲 器。該第二協(xié)議層裝置依據(jù)該第一存儲器位址讀取儲存于該第一封包儲存單元的該封包。
本發(fā)明另提供一種節(jié)省存儲器的接收裝置,該接收裝置依據(jù)一通訊協(xié)議接收一封 包,該封包包含一檔頭與一數(shù)據(jù)負載。該接收裝置包含一數(shù)據(jù)鏈路存儲器、一協(xié)議存儲器、 一第二數(shù)據(jù)鏈路層裝置,以及一第二協(xié)議層裝置。該數(shù)據(jù)鏈路存儲器包含復(fù)數(shù)個檔頭儲存 單元,該復(fù)數(shù)個檔頭儲存單元一第一檔頭儲存單元儲存該封包的該檔頭而不儲存該封包的 該數(shù)據(jù)負載。該第一檔頭儲存單元對應(yīng)一第二存儲器位址。該協(xié)議存儲器包含復(fù)數(shù)個數(shù)據(jù) 負載儲存單元,該復(fù)數(shù)個數(shù)據(jù)負載儲存單元的一第一數(shù)據(jù)負載儲存單元儲存該封包的該數(shù) 據(jù)負載而不儲存該封包的該檔頭。該第一數(shù)據(jù)負載儲存單元對應(yīng)一第三存儲器位址。該第 二數(shù)據(jù)鏈路層裝置電性連接于該數(shù)據(jù)鏈路存儲器。該第二數(shù)據(jù)鏈路層裝置依據(jù)該第二存儲 器位址來讀取該封包的該檔頭。該第二協(xié)議層裝置電性連接于該協(xié)議存儲器。該第二協(xié)議 層裝置依據(jù)該第三存儲器位址讀取該封包的該數(shù)據(jù)負載。本發(fā)明另提供一種節(jié)省存儲器的傳送裝置。該傳送裝置依據(jù)一通訊協(xié)議傳送一封 包,該封包包含一檔頭與一數(shù)據(jù)負載。該傳送裝置包含一第一協(xié)議層裝置、一共用檔頭存儲 器、一共用數(shù)據(jù)負載存儲器,以及一第一數(shù)據(jù)鏈路層裝置。該第一協(xié)議層裝置用來根據(jù)該封 包的該數(shù)據(jù)負載以產(chǎn)生該封包的該檔頭。該共用檔頭存儲器電性連接于該第一協(xié)議層裝 置。該共用檔頭存儲器包含復(fù)數(shù)個共用檔頭儲存單元。該復(fù)數(shù)個共用檔頭儲存單元的一第 一共用檔頭儲存單元儲存該封包的該檔頭而不儲存該封包的該數(shù)據(jù)負載。該第一共用檔頭 儲存單元對應(yīng)一第四存儲器位址。該共用數(shù)據(jù)負載存儲器電性連接于該第一協(xié)議層裝置。 該共用數(shù)據(jù)負載存儲器包含復(fù)數(shù)個共用數(shù)據(jù)負載儲存單元。該復(fù)數(shù)個共用數(shù)據(jù)負載儲存單 元的一第一共用數(shù)據(jù)負載儲存單元儲存該封包的該數(shù)據(jù)負載而不儲存該封包的該檔頭。該 第一共用數(shù)據(jù)負載儲存單元對應(yīng)一第五存儲器位址。該第一數(shù)據(jù)鏈路層裝置電性連接于該 共用數(shù)據(jù)負載存儲器與該共用檔頭存儲器。該第一數(shù)據(jù)鏈路層裝置依據(jù)該第四存儲器位址 與該第五存儲器位址將該檔頭與該數(shù)據(jù)負載組成該封包并發(fā)送該封包至該傳送裝置所對 應(yīng)的一接收裝置。
圖1是為說明于先前技術(shù)中USB 3. 0封包的封包格式的示意圖;圖2是為說明根據(jù)本發(fā)明的第一實施例的可節(jié)省USB協(xié)議中用來儲存封包的存儲 器的數(shù)據(jù)傳輸方法的流程圖;圖3是為說明根據(jù)本發(fā)明的第二實施例的可節(jié)省USB協(xié)議中用來儲存封包的存儲 器的數(shù)據(jù)傳輸方法的流程圖;圖4是為說明本發(fā)明的可節(jié)省USB協(xié)議中用來儲存封包的存儲器的裝置的示意 圖;圖5、圖6以及圖7分別為說明當已確認指標大于、小于,或等于待發(fā)送指標時的可 被寫入的共用檔頭存儲器的檔頭儲存單元的示意圖;圖8是為說明協(xié)議層寫入檔頭至檔頭儲存單元之后,設(shè)定待發(fā)送指標為對應(yīng)的檔 頭位址的示意圖;圖9、圖10以及圖11分別為說明當待發(fā)送指標大于、小于、等于已發(fā)送指標時傳送 端的數(shù)據(jù)鏈路層需發(fā)送其所儲存的數(shù)據(jù)的數(shù)據(jù)儲存單元的示意圖;圖12是為說明本發(fā)明的接收裝置的另一實施例的示意圖。
附圖標記說明200、300_ 方法;201 203、301 305-步驟;400-裝置;410-傳送裝置;411、421、 521-數(shù)據(jù)鏈路層裝置;412、422、522_協(xié)議層裝置;420、520_接收裝置;ADDRH婦)、ADDRH x> ADDRh y-檔頭位址;CRCh、CRCd、CRCl-錯誤校驗碼;DP-封包;D-數(shù)據(jù)段;DLM-數(shù)據(jù)鏈路存 儲器;EP-端點資訊;H-檔頭;諷 HMn-檔頭儲存單元;HSEQ-檔頭順序參數(shù);LW-鏈路命 令字元;P-數(shù)據(jù)負載;PIA PLMn-數(shù)據(jù)負載儲存單元;PRM-協(xié)議存儲器;PTRaa-已確認指 標;PTRas-已發(fā)送指標;PTRWS-待發(fā)送指標;RA-保留區(qū);SAeK-交握訊號;Sm-數(shù)據(jù)鏈路回復(fù) 訊號;SPKP-協(xié)議層處理訊號;SDi SDn-數(shù)據(jù);SHHM-共用檔頭存儲器;T-傳送端;TP-型態(tài) 資訊。
具體實施例方式有鑒于此,本發(fā)明提供一種數(shù)據(jù)傳輸方法,無論是傳送端或接收端的協(xié)議層與數(shù) 據(jù)鏈路層皆可共用同一存儲器來儲存封包,以節(jié)省儲存封包時所需的存儲器空間,進而降 低成本。請參考圖2。圖2是為說明根據(jù)本發(fā)明的第一實施例的可節(jié)省USB協(xié)議中用來儲 存封包的存儲器的數(shù)據(jù)傳輸方法200的流程圖。于數(shù)據(jù)傳輸方法200中,設(shè)接收端R為一 主控端(host)或一裝置端(device),而傳送端T則為對應(yīng)于接收端R的一裝置端或一主 控端。接收端R包含一實體層PH、一數(shù)據(jù)鏈路層DL、一協(xié)議層PR,以及一共用存儲器SHM。 共用存儲器SHM用來儲存數(shù)據(jù)。共用存儲器SHM包含封包儲存單元DPMi DPMN以及旗號 (flag) Fn。封包儲存單元DPMi DPMn用來儲存封包。旗號& FN分別用來指示封包 儲存單元DPMi DPMn是否可被寫入數(shù)據(jù)。數(shù)據(jù)傳輸方法200的步驟說明如下步驟201 接收端R接收傳送端T所傳送的封包DP,且將封包DP儲存于共用存儲 器 SHM;步驟202 接收端R的數(shù)據(jù)鏈路層DL對儲存于共用存儲器SHM內(nèi)的封包DP的檔 頭H進行錯誤碼校驗,以得出數(shù)據(jù)鏈路校驗結(jié)果Em,并據(jù)以傳送協(xié)議層處理訊號SPKP給接收 端R的協(xié)議層冊;步驟203 接收端R的協(xié)議層PR根據(jù)協(xié)議層處理訊號SPKP,直接對儲存于共用存儲 器SHM內(nèi)的封包DP進行后續(xù)處理。于步驟201中,當接收端R接收傳送端T所傳送的封包DP時,接收端R會先根據(jù) 旗號& Fn,以找出可被寫入的封包儲存單元。舉例而言,當旗號Fk表示「可被寫入」時, 代表此時共用存儲器SHM的封包儲存單元DPMK可被寫入數(shù)據(jù);當旗號?£表示「已被寫入」 時,代表此時共用存儲器SHM的封包儲存單元DPMk已經(jīng)有儲存數(shù)據(jù),因此不可再被寫入數(shù) 據(jù),以免覆蓋掉原本儲存于封包儲存單元DPMK&數(shù)據(jù)。設(shè)此時旗號FK表示「可被寫入」,因 此接收端R會將封包DP寫入且儲存于共用存儲器SHM的封包儲存單元DPMk,且接收端R會 將旗號FK標記為「已被寫入」。 于步驟202中,接收端R的數(shù)據(jù)鏈路層DL對儲存于共用存儲器SHM內(nèi)的封包儲存 單元DPMk的封包DP的檔頭H進行錯誤碼校驗,以得出數(shù)據(jù)鏈路校驗結(jié)果Em。更明確地說, 接收端R的數(shù)據(jù)鏈路層DL會依據(jù)封包DP的鏈路命令字元錯誤校驗碼CRQ與檔頭錯誤校驗 碼CRCh,判斷封包DP的檔頭H是否正確。封包DP的檔頭H的錯誤校驗碼CRCh可為16位元的循環(huán)冗余校驗碼(Cyclic Redundancy Check 16,CRC-16),而錯誤校驗碼CRQ可為5 位元的循環(huán)冗余校驗碼(CRC-5)。數(shù)據(jù)鏈路層DL利用錯誤校驗碼CRCh與CRQ以分別對封 包DP的檔頭H與鏈路命令字元LW進行循環(huán)冗余校驗。舉例來說,檔頭H整體的循環(huán)冗余 校驗,是將封包DP的檔頭H (包含錯誤校驗碼CRCh)除以一預(yù)定除數(shù)CRCdh,以據(jù)以得一對應(yīng) 的余數(shù)CRCra。當余數(shù)CRCra等于一預(yù)定值X(舉例而言,X等于零)時,校驗結(jié)果EH表示封 包DP的檔頭H為正確;當余數(shù)CRC^不等于預(yù)定值X時,校驗結(jié)果Eh表示封包DP的檔頭H 為錯誤。而鏈路命令字元校驗結(jié)果&可以類似的方式得出。當校驗結(jié)果&與Eh中有一者為錯誤時,則接收端R的數(shù)據(jù)鏈路層DL判斷檔頭H 為錯誤。此時,數(shù)據(jù)鏈路校驗結(jié)果表示錯誤,且接收端R的數(shù)據(jù)鏈路層DL會發(fā)送重送訊 號S^^至傳送端T,以告知傳送端T所傳送的封包DP于接收端R的數(shù)據(jù)鏈路校驗結(jié)果 表示錯誤,來使傳送端T重新傳送封包DP。反的,當校驗結(jié)果&與Eh皆為正確時,接收端R 的數(shù)據(jù)鏈路層DL會判斷檔頭H為正確。此時,數(shù)據(jù)鏈路校驗結(jié)果表示正確,且接收端R 的數(shù)據(jù)鏈路層DL會發(fā)送確認訊號S^^至傳送端T,以告知傳送端T所傳送的封包DP于接 收端R的數(shù)據(jù)鏈路校驗結(jié)果表示正確。此外,當數(shù)據(jù)鏈路校驗結(jié)果表示正確時,接收端R的數(shù)據(jù)鏈路層DL會傳送協(xié)議 層處理訊號SPKP給接收端R的協(xié)議層PR。協(xié)議層處理訊號SPKP是用來指示對應(yīng)于共用存儲 器SHM的封包儲存單元DPMk的封包位址ADDR,以使協(xié)議層冊對儲存于共用存儲器SHM內(nèi) 的封包儲存單元DPMk的封包DP進行后續(xù)處理。于步驟203中,設(shè)數(shù)據(jù)鏈路層DL所傳送的協(xié)議層處理訊號SPKP所指示的封包位 址ADDR代表「K」,因此協(xié)議層冊可根據(jù)代表「K」的封包位址ADDR,以讀取對應(yīng)于封包位址 ADDR的共用存儲器SHM的封包儲存單元DPMk所儲存的數(shù)據(jù)。也就是說,接收端R的協(xié)議層 PR可讀取封包儲存單元DPMk所儲存的封包DP。如此,接收端R的協(xié)議層ra可根據(jù)封包DP 的檔頭H的端點資訊EP,以接收封包DP的數(shù)據(jù)負載P以進行后續(xù)處理。更進一步地說,接收端R的協(xié)議層ra根據(jù)封包DP的檔頭H的端點資訊EP,以判斷 封包DP是否為同時型傳輸類型封包。當端點資訊EP指示封包DP為同時型傳輸類型封包時,接收端R的協(xié)議層冊直接 接收封包DP的數(shù)據(jù)負載P以進行后續(xù)處理。舉例而言,數(shù)據(jù)負載P為傳輸端T傳送給接收 端R的語音數(shù)據(jù),因此接收端R可直接接收封包DP的數(shù)據(jù)負載P,以根據(jù)數(shù)據(jù)負載P的語音 數(shù)據(jù)來播放語音。當端點資訊EP指示封包DP非為同時型傳輸類型封包時,接收端R的協(xié)議層冊對 封包DP的數(shù)據(jù)負載P的數(shù)據(jù)負載錯誤校驗碼CRCD進行循環(huán)冗余校驗,得出數(shù)據(jù)負載校驗 結(jié)果并據(jù)以發(fā)送交握(ACK)封包S-至傳送端T。其中數(shù)據(jù)負載錯誤校驗碼CRCD可為 32位元的循環(huán)冗余校驗碼(CRC-32)。接收端R的協(xié)議層PL利用數(shù)據(jù)負載錯誤校驗碼CRCd 進行循環(huán)冗余校驗,以得到數(shù)據(jù)負載校驗結(jié)果其工作原理與前述的數(shù)據(jù)鏈路層DL利用 錯誤校驗碼CRCh與CRQ封包DP的檔頭H與鏈路命令字元LW進行循環(huán)冗余校驗的方式類 似,故不再贅述。當根據(jù)數(shù)據(jù)負載錯誤校驗碼CRCd所得到的數(shù)據(jù)負載校驗結(jié)果表示正 確時,接收端R的協(xié)議層冊會傳送交握訊號SM至傳送端T,其中交握訊號SACK包含有關(guān) 封包DP的檔頭順序參數(shù)HSEQ,以使傳送端T可根據(jù)檔頭順序參數(shù)HSEQ,判斷交握訊號SM 是對應(yīng)于封包DP,且此時交握訊號SAeK是用來告知傳送端T于接收端R中對應(yīng)于封包DP的數(shù)據(jù)負載校驗結(jié)果Epl表示正確(意即接收端R已正確地接收封包DP)。反的,當根據(jù)數(shù)據(jù) 負載錯誤校驗碼CRCd所得到的數(shù)據(jù)負載校驗結(jié)果E11表示錯誤時,此時接收端R的協(xié)議層 PR所傳送的交握訊號SA。K會告知傳送端T于接收端R中對應(yīng)于封包DP的數(shù)據(jù)負載校驗結(jié) 果E11表示錯誤。如此,傳送端T根據(jù)檔頭順序參數(shù)HSEQ,可得知對應(yīng)于檔頭順序參數(shù)HSEQ 的封包DP沒有被接收端R正確地接收。因此,傳送端T會再重新傳送封包DP。根據(jù)前述的說明可知,在本發(fā)明的數(shù)據(jù)傳輸方法200中,當接收端R接收封包DP 時,封包DP是儲存于共用存儲器SHM的一封包儲存單元。也就是說,當接收端R接收封包 DP時,接收端R僅需要有等同于一個封包大小的存儲器空間(如封包儲存單元DPMk),以儲 存封包DP。如此,可節(jié)省儲存封包時所需的存儲器空間,來降低成本。此外,根據(jù)數(shù)據(jù)傳輸方法200的基本精神可衍生出另一實施例。于另一實施例中, 前述的共用存儲器SHM中每一封包儲存單元DPM1 DPMn可分成兩個主要部份,第一部份是 儲存檔頭,第二部份用來儲存數(shù)據(jù)負載。以下將作更進一步地說明。共用存儲器SHM包含一數(shù)據(jù)鏈路存儲器DLM,以及一協(xié)議存儲器PRM。數(shù)據(jù)鏈路存 儲器DLM包含檔頭儲存單元服工 HMn。檔頭儲存單元服工 HMn用來儲存檔頭。檔頭儲存 單元HM1 HMn分別包含共用檔頭旗號Fhi Fra。共用檔頭旗號Fhi Fra分別用來指示檔 頭儲存單元HM1 HMn是否可被寫入數(shù)據(jù)。協(xié)議存儲器PRM包含數(shù)據(jù)負載儲存單元PLM1 PLMn。數(shù)據(jù)負載儲存單元PLM1 PLMn用來儲存數(shù)據(jù)負載。數(shù)據(jù)負載儲存單元PLM1 PLMn 分別包含共用數(shù)據(jù)負載旗號Fpu Fm。共用數(shù)據(jù)負載旗號Fpu Fm是分別用來指示數(shù)據(jù) 負載儲存單元PLM1 PLMn是否可被寫入數(shù)據(jù)。類似于步驟201,當接收端R接收傳送端T所傳送的封包DP時,接收端R會先根 據(jù)共用檔頭旗號Fhi Fhn,以找出可被寫入的檔頭儲存單元,以及根據(jù)共用數(shù)據(jù)負載旗號 Fpli Fm以找出可被寫入的數(shù)據(jù)負載儲存單元。舉例而言,當共用檔頭旗號Fhk表示「可 被寫入」時,代表此時數(shù)據(jù)鏈路存儲器DLM的檔頭儲存單元HMk可被寫入數(shù)據(jù);當共用檔頭 旗號Fhk表示「已被寫入」時,代表此時數(shù)據(jù)鏈路存儲器DLM的檔頭儲存單元HMk已經(jīng)有儲 存數(shù)據(jù),因此不可再被寫入數(shù)據(jù),以免覆蓋掉原本儲存于檔頭儲存單元HMk的數(shù)據(jù)。利用類 似的方法可根據(jù)共用數(shù)據(jù)負載旗號Fpu Fm以找出可被寫入的數(shù)據(jù)負載儲存單元,故不 再贅述。設(shè)此時共用檔頭旗號Fhk與共用數(shù)據(jù)負載旗號Fpui皆表示「可被寫入」,因此接收端 R會將封包DP的檔頭H寫入且儲存于數(shù)據(jù)鏈路存儲器DLM的檔頭儲存單元HMK,將封包DP 的數(shù)據(jù)負載P寫入且儲存于協(xié)議存儲器PRM的數(shù)據(jù)負載儲存單元PLMK,且接收端R會將共 用檔頭旗號Fhk與共用數(shù)據(jù)負載旗號Fpui皆標記為「已被寫入」。類似于步驟202,接收端R的數(shù)據(jù)鏈路層DL對儲存于數(shù)據(jù)鏈路存儲器DLM內(nèi)的檔 頭儲存單元HMk的封包DP的檔頭H進行錯誤碼校驗,以得出數(shù)據(jù)鏈路校驗結(jié)果Em。更明 確地說,接收端R的數(shù)據(jù)鏈路層DL會依據(jù)封包DP的鏈路命令字元錯誤校驗碼CRQ與檔頭 錯誤校驗碼CRCh,判斷封包DP的檔頭H是否正確。數(shù)據(jù)鏈路層DL利用錯誤校驗碼CRCh與 CRCl以分別對封包DP的檔頭H與鏈路命令字元LW進行循環(huán)冗余校驗,以分別得到校驗結(jié) 果Eh與&。其工作原理如同前述說明,故不再贅述。當校驗結(jié)果&與Eh中有一者為錯誤時,則接收端R的數(shù)據(jù)鏈路層DL判斷檔頭H 為錯誤。此時,數(shù)據(jù)鏈路校驗結(jié)果E11表示錯誤,且接收端R的數(shù)據(jù)鏈路層DL會發(fā)送重送訊號S^^至傳送端T,以告知傳送端T所傳送的封包DP于接收端R的數(shù)據(jù)鏈路校驗結(jié)果 表示錯誤,來使傳送端T重新傳送封DP。反之,當校驗結(jié)果&與Eh皆為正確時,接收端R的 數(shù)據(jù)鏈路層DL會判斷檔頭H為正確。此時,數(shù)據(jù)鏈路校驗結(jié)果表示正確,且接收端R的 數(shù)據(jù)鏈路層DL會發(fā)送確認訊號S^^至傳送端T,以告知傳送端T所傳送的封包DP于接收 端R的數(shù)據(jù)鏈路校驗結(jié)果表示正確。此外,當數(shù)據(jù)鏈路校驗結(jié)果表示正確時,接收端R的數(shù)據(jù)鏈路層DL會傳送協(xié)議 層處理訊號SPKP給接收端R的協(xié)議層PR。協(xié)議層處理訊號SPKP是用來指示對應(yīng)于數(shù)據(jù)鏈路 存儲器DLM的檔頭儲存單元HMk的檔頭位址ADDRh以及協(xié)議存儲器PRM的數(shù)據(jù)負載儲存單 元PLMk的數(shù)據(jù)負載位址ADD、。類似于步驟203,協(xié)議層PR可根據(jù)數(shù)據(jù)鏈路層DL所傳送的協(xié)議層處理訊號SPKP所 指示的檔頭位址々00&與數(shù)據(jù)負載位址ADDR&,以分別讀取儲存于數(shù)據(jù)鏈路存儲器DLM的檔 頭儲存單元HMk的封包DP的檔頭H,以及儲存于協(xié)議存儲器PRM的數(shù)據(jù)負載儲存單元PLMk 的封包DP的數(shù)據(jù)負載P。因此,協(xié)議層ra可將檔頭H與數(shù)據(jù)負載P組成封包DP后,根據(jù)封 包DP的檔頭H的端點資訊EP,以判斷封包DP是否為同時型傳輸類型封包,并對封包DP進 行后續(xù)處理。其后續(xù)處理的方法與前述說明類似,故不再贅述。因此,在本實施例中,當接收端R接收封包DP時,封包DP的檔頭H是儲存于數(shù)據(jù)鏈 路存儲器DLM的一檔頭儲存單元,且封包DP的數(shù)據(jù)負載P是儲存于協(xié)議存儲器DLM的一數(shù) 據(jù)負載儲存單元。也就是說,當接收端R接收封包DP時,接收端R僅需要有等同于一個封 包大小的存儲器空間(如檔頭儲存單元HMk加上數(shù)據(jù)負載儲存單元PLMk),以儲存封包DP。 如此,可節(jié)省儲存封包時所需的存儲器空間,來降低成本。請參考圖3。圖3是為說明根據(jù)本發(fā)明的第二實施例的可節(jié)省USB協(xié)議中用來儲 存封包的存儲器的數(shù)據(jù)傳輸方法300的流程圖。于數(shù)據(jù)傳輸方法300中,設(shè)傳送端T可為 一主控端或一裝置端,而接收端R則為對應(yīng)于傳送端T的一裝置端或一主控端。傳送端T 包含一實體層PH、一數(shù)據(jù)鏈路層DL、一協(xié)議層PR、一共用檔頭存儲器SHHM,以及一共用數(shù)據(jù) 負載存儲器SHPM。共用數(shù)據(jù)負載存儲器SHPM包含數(shù)據(jù)負載儲存單元PIA PLMN以及共用 數(shù)據(jù)負載旗號Fpu Fm。數(shù)據(jù)負載儲存單元PLMi PLMN用來儲存數(shù)據(jù)負載。共用數(shù)據(jù)負 載旗號FPU Fm是分別用來指示數(shù)據(jù)負載儲存單元PIA PLMn是否可被寫入數(shù)據(jù)。舉例 而言,當共用數(shù)據(jù)負載旗號FPU 表示「可被寫入」時,代表此時共用數(shù)據(jù)負載存儲器SHPM的 數(shù)據(jù)負載儲存單元PLMK可被寫入數(shù)據(jù);當共用數(shù)據(jù)負載旗號FPU 表示「已被寫入」時,代表 此時共用數(shù)據(jù)負載存儲器SHPM的數(shù)據(jù)負載儲存單元PLMk已經(jīng)有儲存數(shù)據(jù),因此不可再被 寫入數(shù)據(jù),以避免覆蓋掉原本儲存于數(shù)據(jù)負載儲存單元PLMK&數(shù)據(jù)。共用檔頭存儲器SHHM 包含檔頭儲存單元觀 HMN、一待發(fā)送指標PTRWS、一已發(fā)送指標PTRas,以及一已確認指標 PTRm。檔頭儲存單元!^ !!^用來儲存檔頭。待發(fā)送指標卩11^是用來指示在檔頭儲存 單元圓工 HMN之中,需要傳送端T將所儲存的數(shù)據(jù)傳送至接收端R的檔頭儲存單元。已發(fā) 送指標PTRAS是用來指示在檔頭儲存單元HMi HMN之中,傳送端T已經(jīng)將所儲存的數(shù)據(jù)傳 送至接收端R的檔頭儲存單元。已確認指標PTRaa是用來指示在檔頭儲存單元腿工 HMN之 中,傳送端T已經(jīng)將所儲存的數(shù)據(jù)傳送至接收端R,且傳送端T也接收到接收端R所傳送的 對應(yīng)的代表正確地接收的交握訊號SAeK的檔頭儲存單元。數(shù)據(jù)傳輸方法300的步驟說明如 下
步驟301 傳送端T的協(xié)議層冊將數(shù)據(jù)負載P寫入于共用數(shù)據(jù)負載存儲器SHPM ;步驟302 傳送端T的協(xié)議層冊根據(jù)數(shù)據(jù)負載P產(chǎn)生檔頭H,并將檔頭H寫入共用 檔頭存儲器SHHM ;步驟303 傳送端T的數(shù)據(jù)鏈路層DL直接將儲存于共用檔頭存儲器SHHM內(nèi)的檔 頭H與儲存于共用數(shù)據(jù)負載存儲器SHPM內(nèi)的數(shù)據(jù)負載P組成一封包DP,并將封包DP傳送 至接收端R ;步驟304 傳送端T的數(shù)據(jù)鏈路層DL根據(jù)接收端R所傳送的對應(yīng)于封包DP的數(shù) 據(jù)鏈路回復(fù)訊號Sm,以判斷是否要重新傳送封包DP ;步驟305 傳送端T的協(xié)議層冊根據(jù)接收端R所傳送的對應(yīng)于封包DP的交握訊 號SACK,以進行后續(xù)處理。于步驟301中,當傳送端T欲傳送數(shù)據(jù)負載P,傳送端T的協(xié)議層PR會根據(jù)共用數(shù) 據(jù)負載旗號FPU Fm,以找出可被寫入的數(shù)據(jù)負載儲存單元。舉例而言,設(shè)此時共用數(shù)據(jù) 負載旗號FPU 表示「可被寫入」,因此傳送端T會將封包DP寫入且儲存于共用數(shù)據(jù)負載存儲 器SHPM的數(shù)據(jù)負載儲存單元PLMk,且傳送端T會將共用數(shù)據(jù)負載旗號FPU 標記為「已被寫 入」。于步驟302中,傳送端T的協(xié)議層冊根據(jù)數(shù)據(jù)負載P與對應(yīng)于數(shù)據(jù)負載儲存單元 PLMk的數(shù)據(jù)負載位址資訊D_KI,以產(chǎn)生檔頭H。舉例而言,當數(shù)據(jù)負載P是為傳送端T欲 傳送給接收端R的控制命令,協(xié)議層PR設(shè)定檔頭H的端點資訊EP代表控制型傳輸類型;當 數(shù)據(jù)負載P是為傳送端T欲傳送給接收端R的語音或視訊數(shù)據(jù),協(xié)議層PR設(shè)定檔頭H的端 點資訊EP代表同時型傳輸類型。協(xié)議層ra除了產(chǎn)生USB協(xié)議中所規(guī)范的檔頭H所包含的 資訊(如型態(tài)資訊TP、端點資訊EP、鏈路命令字元LW、錯誤校驗碼CRQ與CRCH、檔頭順序 參數(shù)HSEQ等)的外,協(xié)議層PR還會在檔頭H的保留區(qū)RA寫入用來指示數(shù)據(jù)負載儲存單元 PLMk的數(shù)據(jù)負載位址ADDRPU 的數(shù)據(jù)負載位址資訊D_KI。傳送端T的協(xié)議層ra根據(jù)待發(fā)送指標PTRWS與已確認指標PTRaa以找到可被寫入的 共用檔頭存儲器SHHM的檔頭儲存單元。圖5、圖6以及圖7分別為說明當已確認指標PTRaa 大于、小于,或等于待發(fā)送指標PTRWS時的可被寫入的共用檔頭存儲器SHHM的檔頭儲存單元 的示意圖。舉例而言,設(shè)待發(fā)送指標PTRWS是為檔頭儲存單元腿㈣)的檔頭位址ADDRh (k_d, 而已確認指標PTRaa是為檔頭儲存單元HMX的檔頭位址ADDRH x。在圖5中,檔頭位址ADDRh X大于檔頭ADDRh (k_D,此時表示檔頭儲存單元HMk HMX是可被寫入數(shù)據(jù),而其他儲存單元 則已有儲存數(shù)據(jù)。在圖6中,檔頭位址ADDRH x小于檔頭ADDRh (k_d,此時表示HMi HMX與 HMk HMn是可被寫入數(shù)據(jù),而其他儲存單元則已有儲存數(shù)據(jù)。在圖7中,檔頭位址ADDRh 、等于檔頭ADDRh _),此時表示腿 HMn皆可被寫入數(shù)據(jù)。設(shè)于步驟302中,待發(fā)送指標 PTRWS是為檔頭儲存單元HMn)的檔頭位址ADDRh (k_d且已確認指標PTRaa也等于檔頭位址 ADDRh (k_d,則協(xié)議層ra可將檔頭H寫入檔頭儲存單元HMk,且協(xié)議層ra寫入檔頭H至檔頭 儲存單元HMk之后,會設(shè)定待發(fā)送指標PTRWS為檔頭儲存單元HMk的檔頭位址ADDRH K(如圖 8所示)。于步驟303中,傳送端T的數(shù)據(jù)鏈路層DL根據(jù)待發(fā)送指標PTRWS與已發(fā)送指標 PTRas,以判斷在共用檔頭存儲器SHHM的檔頭儲存單元腿工 HMN之中,需傳送端T的數(shù)據(jù) 鏈路層DL發(fā)送其所儲存的數(shù)據(jù)的數(shù)據(jù)儲存單元。圖9、圖10以及圖11分別為說明當待發(fā)送指標PTRWS大于、小于、等于已發(fā)送指標PTRas時傳送端T的數(shù)據(jù)鏈路層DL需發(fā)送其所儲 存的數(shù)據(jù)的數(shù)據(jù)儲存單元的示意圖。舉例而言,假設(shè)此時待發(fā)送指標PTRWSK指示的位址為 檔頭儲存單元HMk的檔頭位址ADDRH K,而已發(fā)送指標PTRass為檔頭儲存單元HMy的檔頭位址 ADDRH Y。由圖9可看出,若檔頭位址ADDRk大于檔頭位址ADDRH Y,則表示傳送端T需發(fā)送對 應(yīng)于檔頭儲存單元HM(Y+1) 儲存的檔頭的封包。由圖10可看出,若檔頭位址ADDRh K小于檔頭位址ADDRH Y,則表示傳送端T需發(fā)送對應(yīng)于檔頭儲存單元HM(y+1) HMn與HMi 腿£所儲存的檔頭的封包。由圖11可看出,若檔頭位址ADDRhk等于檔頭位址ADDRHY,則表 示傳送端T目前沒有需要發(fā)送的封包。當傳送端T的數(shù)據(jù)鏈路層DL根據(jù)待發(fā)送指標PTRWS與已發(fā)送指標PTRAS,判斷需發(fā) 送對應(yīng)于檔頭儲存單元HMk所儲存的檔頭H的封包后,傳送端T的數(shù)據(jù)鏈路層DL會讀取儲 存于檔頭儲存單元HMk所儲存的檔頭H。傳送端T的數(shù)據(jù)鏈路層DL根據(jù)檔頭H的保留區(qū)RA 的數(shù)據(jù)負載位址資訊D_KI,以得到儲存于共用數(shù)據(jù)負載存儲器SHPM的數(shù)據(jù)負載儲存單元 PLMk的數(shù)據(jù)負載位址ADDRPU 。如此,傳送端T的數(shù)據(jù)鏈路層DL可根據(jù)數(shù)據(jù)負載位址ADDR& K,以讀取儲存于數(shù)據(jù)負載儲存單元PLMk的數(shù)據(jù)負載P,并將數(shù)據(jù)負載P與檔頭H組成一封 包DP,以將封包DP傳送至接收端R。于步驟304中,當接收端R所傳送的數(shù)據(jù)鏈路回復(fù)訊號是為重送訊號時, 此時傳送端T的數(shù)據(jù)鏈路層DL可根據(jù)已確認指標PTRaa以調(diào)整已發(fā)送指標PTRas,以使數(shù)據(jù) 鏈路層DL重新傳送封包DP。以下將作更進一步地說明。由于傳送端T的數(shù)據(jù)鏈路層DL是根據(jù)已確認指標PTRaa與已發(fā)送指標PTRAS,以判 斷在檔頭儲存單元HMi HMN中,已傳送過數(shù)據(jù)但尚未接收到接收端R所傳送的代表正確地 接收的交握訊號SAeK的檔頭儲存單元。舉例而言,設(shè)已確認指標PTRm所指示的位址為檔頭 儲存單元HMZ的檔頭位址ADDRH z,而已發(fā)送指標PTRas所指示的位址為檔頭儲存單元HMk的 檔頭位址ADDRh k。若檔頭位址ADDRh k大于檔頭位址ADDRh z,則表示傳送端T已發(fā)送對應(yīng)于 檔頭儲存單元HMZ HMK所儲存的檔頭的封包,但尚未接收到接收端R所傳送的代表正確地 接收的交握訊號SAeK ;若檔頭位址ADDRH K小于檔頭位址ADDRH z,則表示傳送端T已發(fā)送對 應(yīng)于檔頭儲存單元HMZ HMN與HMi HMk所儲存的檔頭的封包,但尚未接收到接收端R所 傳送的代表正確地接收的交握訊號SAeK的檔頭儲存單元;若檔頭位址ADDRH K等于檔頭位址 ADDRH z,則表示針對對應(yīng)于傳送端T所發(fā)送的封包,皆已接收到接收端R所傳送的代表正確 地接收的交握訊號SM。設(shè)于步驟304中,已確認指標PTRm所指示的位址為檔頭儲存單元腿婦)的檔頭 位址ADDRh (k_d,且已發(fā)送指標PTRas所指示的位址為檔頭儲存單元HMk的檔頭位址ADDRh K。 此時,若數(shù)據(jù)鏈路回復(fù)訊號是為重送訊號SmD時,表示重送訊號SmD是對應(yīng)于檔頭儲存 單元HMk所儲存的檔頭H的封包DP,因此數(shù)據(jù)鏈路層DL可將已發(fā)送指標PTRas設(shè)為已確認 指標PTRaa(意即檔頭位址ADDRh (k_d)。如此一來,如同前述(于步驟303)的說明,當數(shù)據(jù) 鏈路層DL根據(jù)待發(fā)送指標PTRWS與已發(fā)送指標PTRas,以判斷在共用檔頭存儲器SHHM的檔 頭儲存單元HMi HMN之中,數(shù)據(jù)鏈路層DL需發(fā)送其所儲存的數(shù)據(jù)的數(shù)據(jù)儲存單元時,由于 此時待發(fā)送指標PTRWS仍為檔頭位址ADDRH K而已發(fā)送指標PTRas已被重新設(shè)定為檔頭位址 ADDRH (k_d,因此數(shù)據(jù)鏈路層DL會以類似于步驟303的說明的方式重新發(fā)送封包DP。于步驟305中,由于交握訊號SAeK是包含有關(guān)對應(yīng)于封包DP的檔頭順序參數(shù)HSEQ的資訊,因此協(xié)議層冊可先根據(jù)交握訊號SAeK所指示的檔頭順序參數(shù)HSEQ,以判斷交握訊 號SAeK是對應(yīng)于封包DP。當協(xié)議層ra判斷交握訊號sAeK是指示封包DP已被正確地接收時,協(xié)議層ra可調(diào) 整已確認指標PTRm,以釋放用來儲存封包DP的檔頭H的檔頭儲存單元。舉例而言,設(shè)封包 DP的檔頭H儲存于共用檔頭存儲器SHHM的檔頭儲存單元HMK,因此協(xié)議層冊會將已確認指 標PTRaa設(shè)定為檔頭儲存單元HMk的檔頭位址ADDRH K,以表示針對對應(yīng)于檔頭儲存單元HMk 所儲存的檔頭H的封包DP,傳送端T已接收到接收端R所傳送的代表正確地接收的交握訊 號SAeK。由于根據(jù)步驟302的說明可知,協(xié)議層冊根據(jù)已確認指標PTRm與待發(fā)送指標PTRWS, 以判斷共用檔頭存儲器SHHM的檔頭儲存單元腿工 HMn是否可被寫入,因此當協(xié)議層冊設(shè) 定已確認指標PTRaa為共用檔頭存儲器SHHM的檔頭儲存單元HMk的檔頭位址ADDRH K時,表 示協(xié)議層PR會判斷檔頭儲存單元HMk可被寫入數(shù)據(jù)(意即釋放共用檔頭存儲器SHHM的檔 頭儲存單元HMk)。此外,協(xié)議層ra可根據(jù)檔頭H的數(shù)據(jù)負載位址資訊DaddkI,以得到數(shù)據(jù)負載位址 ADDRpL KO如此,協(xié)議層ra根據(jù)數(shù)據(jù)負載位址ADDRPU ,可將對應(yīng)于共用數(shù)據(jù)負載存儲器SHPM 的數(shù)據(jù)負載儲存單元PLMk的共用數(shù)據(jù)負載旗號FPU ,標記為「可被寫入」,以釋放共用數(shù)據(jù) 負載存儲器SHPM的數(shù)據(jù)負載儲存單元PLMk。因此,由前述的說明可知,當協(xié)議層ra判斷交握訊號SACK是指示封包DP已被正確 地接收時,協(xié)議層會調(diào)整已確認指標PTRm與共用數(shù)據(jù)負載存儲器SHPL中用來儲存封包 DP的數(shù)據(jù)負載P的數(shù)據(jù)負載儲存單元PLMk所對應(yīng)的共用數(shù)據(jù)負載旗號FPU ,以釋放在共用 檔頭存儲器SHHM中用來儲存封包DP的檔頭H的檔頭儲存單元HMk與共用數(shù)據(jù)負載存儲器 SHPM中用來儲存封包DP的數(shù)據(jù)負載P的數(shù)據(jù)負載儲存單元PLMk。當協(xié)議層ra判斷交握訊號sAeK是指示封包DP沒有被正確地接收時,協(xié)議層ra根 據(jù)已確認指標PTRaa調(diào)整已發(fā)送指標PTRas,以使該傳送端T的數(shù)據(jù)鏈路層DL據(jù)以重新傳送 封包DP。其工作原理與步驟304中當數(shù)據(jù)鏈路層DL接收的數(shù)據(jù)鏈路回復(fù)訊號為重送 訊號SmD的方法類似,故不再贅述。另外,相較于先前技術(shù),在本發(fā)明的數(shù)據(jù)傳輸方法300中,當傳送端T欲傳送對應(yīng) 于數(shù)據(jù)負載P的封包DP時,封包DP的檔頭H是儲存于共用檔頭存儲器SHHM的一檔頭儲存 單元,且封包DP的數(shù)據(jù)負載P是儲存于共用數(shù)據(jù)負載存儲器SHPM的一數(shù)據(jù)負載儲存單元。 也就是說,當傳送端T欲傳送對應(yīng)于封包DP時,傳送端T僅需要等同于一個檔頭的大小的 存儲器(如檔頭儲存單元HMk)與等同于一個數(shù)據(jù)負載的大小的存儲器(如數(shù)據(jù)負載儲存 單元PLMk),以儲存封包DP。換句話說,當傳送端T欲傳送對應(yīng)于數(shù)據(jù)負載P的封包DP時, 傳送端T僅需要有等同于一個封包大小的存儲器空間,以儲存封包DP。如此可節(jié)省存儲器 空間,以降低成本。請參考圖4。圖4是為說明本發(fā)明的可節(jié)省USB協(xié)議中用來儲存封包的存儲器的 裝置400的示意圖。裝置400用來傳送數(shù)據(jù)。裝置400包含一傳送裝置410與一接收裝置 420。傳送裝置510是為傳送端。傳送裝置410包含一第一數(shù)據(jù)鏈路層裝置411、一第一協(xié) 議層裝置412、一共用檔頭存儲器SHHM,以及一共用數(shù)據(jù)負載存儲器SHPM。接收裝置420是 為接收端。接收裝置420包含一第二數(shù)據(jù)鏈路層裝置421、一第二協(xié)議層裝置422,以及一 共用存儲器SHM。裝置400的接收裝置420與傳送裝置410是分別根據(jù)本發(fā)明的第一實施例與第二實施例所衍生。當傳送裝置410欲發(fā)送一數(shù)據(jù)負載P時,第一協(xié)議層裝置412將數(shù)據(jù)負載P寫入 于共用數(shù)據(jù)負載存儲器SHPM,且第一協(xié)議層裝置412根據(jù)數(shù)據(jù)負載P產(chǎn)生檔頭H,并將檔頭 H寫入共用檔頭存儲器SHHM。接著,第一數(shù)據(jù)鏈路層裝置411直接將儲存于共用檔頭存儲 器SHHM內(nèi)的檔頭H與儲存于共用數(shù)據(jù)負載存儲器SHPM內(nèi)的數(shù)據(jù)負載P組成一封包DP,并 發(fā)送封包DP至接收裝置420。當接收裝置420接收到封包DP時,會將封包DP儲存于共用存儲器SHM。接收裝置 420的第二數(shù)據(jù)鏈路層裝置421對儲存于共用存儲器SHM內(nèi)的封包DP的檔頭H進行錯誤碼 校驗,以得出數(shù)據(jù)鏈路校驗結(jié)果Em,并據(jù)以產(chǎn)生數(shù)據(jù)鏈路回復(fù)訊號S11至傳送裝置410,以及 傳送協(xié)議層處理訊號Spkp至第二協(xié)議層裝置422。當數(shù)據(jù)鏈路校驗結(jié)果Em表示錯誤時,第 二數(shù)據(jù)鏈路層裝置421所產(chǎn)生的數(shù)據(jù)鏈路回復(fù)訊號SDL是為重送訊號Smffl,用來告知傳送 裝置410對應(yīng)于封包DP的數(shù)據(jù)鏈路校驗結(jié)果E11表示錯誤,以使傳送裝置410的第一數(shù)據(jù) 鏈路層裝置411據(jù)以發(fā)送封包DP。當數(shù)據(jù)鏈路校驗結(jié)果E11表示正確時,第二數(shù)據(jù)鏈路層裝 置421所產(chǎn)生的數(shù)據(jù)鏈路回復(fù)訊號S11是為確認訊號Suoti,用來告知傳送裝置410對應(yīng)于封 包DP的數(shù)據(jù)鏈路校驗結(jié)果E11表示正確,且第二協(xié)議層裝置412根據(jù)協(xié)議層處理訊號SPKP, 直接對儲存于共用存儲器SHM內(nèi)的封包DP進行后續(xù)處理。更明確地說,當?shù)诙f(xié)議層裝置 412接收到協(xié)議層處理訊號Spkp時,第二協(xié)議層裝置412會根據(jù)封包DP的檔頭H的端點資 訊EP,以判斷封包DP是否為同時型傳輸類型封包。當?shù)诙f(xié)議層裝置412判斷封包DP為 同時型傳輸類型封包時,直接接收封包DP的數(shù)據(jù)負載P ;當?shù)诙f(xié)議層裝置412判斷封包 DP非為同時型傳輸類型封包時,對封包DP的數(shù)據(jù)負載P的數(shù)據(jù)負載錯誤校驗碼CRCd進行 循環(huán)冗余校驗,得出數(shù)據(jù)負載校驗結(jié)果并據(jù)以發(fā)送一交握訊號Sm至傳送裝置410,以 讓傳送裝置410的第一協(xié)議層裝置412據(jù)以作后續(xù)處理。此外,上述的接收裝置也可根據(jù)數(shù)據(jù)傳輸方法200的另一實施例而據(jù)以實施。舉 例而言,根據(jù)數(shù)據(jù)傳輸方法200的另一實施例的接收裝置520是可用來替代上述的接收裝 置420。請參考圖12,接收裝置520包含一數(shù)據(jù)鏈路存儲器DLM、一協(xié)議存儲器PRM、一第二 數(shù)據(jù)鏈路層裝置521、一第二協(xié)議層裝置522。數(shù)據(jù)鏈路存儲器DLM包含檔頭儲存單元HM1 HMn。檔頭儲存單元服工 HMn用來儲存檔頭。檔頭儲存單元服工 HMn分別包含共用檔頭 旗號Hl1 Fra。共用檔頭旗號Fhi Fhn分別用來指示檔頭儲存單元HM1 HMn是否可被寫 入數(shù)據(jù)。協(xié)議存儲器PRM包含數(shù)據(jù)負載儲存單元PLM1 PLMn。數(shù)據(jù)負載儲存單元PLM1 PLMn用來儲存數(shù)據(jù)負載。數(shù)據(jù)負載儲存單元PLM1 PLMN分別包含共用數(shù)據(jù)負載旗號Fpu Fm。共用數(shù)據(jù)負載旗號Fpu Fm是分別用來指示數(shù)據(jù)負載儲存單元PLM1 PLMn是否可 被寫入數(shù)據(jù)。換句話說,數(shù)據(jù)鏈路存儲器DLM是用來儲存封包的檔頭而不儲存封包的數(shù)據(jù) 負載,協(xié)議存儲器PRM用來儲存封包的數(shù)據(jù)負載而不儲存封包的檔頭。第二數(shù)據(jù)鏈路層裝 置521電性連接于數(shù)據(jù)鏈路存儲器DLM。第二協(xié)議層裝置522電性連接于協(xié)議存儲器PRM。 接收裝置520與傳送裝置410之間的數(shù)據(jù)傳輸?shù)墓ぷ髟砼c接收裝置420與傳送裝置410 之間的數(shù)據(jù)傳輸?shù)墓ぷ髟眍愃?,故不再贅述。綜上所述,本發(fā)明提供的數(shù)據(jù)傳輸方法,當接收端接收到封包時,將封包儲存于共 用存儲器,且數(shù)據(jù)鏈路層對儲存于共用存儲器內(nèi)的封包的檔頭進行錯誤碼校驗,以得出數(shù) 據(jù)鏈路校驗結(jié)果,并據(jù)以傳送協(xié)議層處理訊號給協(xié)議層。如此,協(xié)議層可根據(jù)協(xié)議層處理訊號,以直接對儲存于共用存儲器內(nèi)的封包進行后續(xù)處理。利用本發(fā)明的數(shù)據(jù)傳輸方法,當 接收端接收封包時,接收端僅需要有等同于封包大小的存儲器空間,以儲存該封包。此外, 本發(fā)明另提供一數(shù)據(jù)傳輸方法,當傳送端欲傳送數(shù)據(jù)負載時,傳送端的協(xié)議層將數(shù)據(jù)負載 寫入于共用數(shù)據(jù)負載存儲器。協(xié)議層根據(jù)數(shù)據(jù)負載產(chǎn)生對應(yīng)的檔頭,并將對應(yīng)的檔頭寫入 共用檔頭存儲器,且傳送端的數(shù)據(jù)鏈路層直接將儲存于共用檔頭存儲器內(nèi)的檔頭與儲存于 共用數(shù)據(jù)負載存儲器內(nèi)的數(shù)據(jù)負載組成一封包,并發(fā)送該封包。利用本發(fā)明的數(shù)據(jù)傳輸方 法,當傳送端欲傳送對應(yīng)數(shù)據(jù)負載時,傳送端僅需要有等同于一個封包大小的存儲器空間, 以儲存對應(yīng)于數(shù)據(jù)負載的封包。如此可節(jié)省存儲器空間,以降低成本,帶給使用者更大的方 便。 以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明權(quán)利要求所做的均等變化與修 飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
權(quán)利要求
一種可節(jié)省通用串行總線協(xié)議中用來儲存封包的存儲器的數(shù)據(jù)傳輸方法,其特征在于,包含以下步驟一接收端接收一傳送端所傳送的一封包,且將該封包儲存于一共用存儲器;該接收端的一數(shù)據(jù)鏈路層對儲存于該共用存儲器內(nèi)的該封包的一檔頭進行錯誤碼校驗,以得出一數(shù)據(jù)鏈路校驗結(jié)果,并據(jù)以傳送一協(xié)議層處理訊號給該接收端的一協(xié)議層;以及該接收端的該協(xié)議層根據(jù)該協(xié)議層處理訊號,直接對儲存于該共用存儲器內(nèi)的該封包進行后續(xù)處理。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸方法,其特征在于,該接收端的該數(shù)據(jù)鏈路層對儲 存于該共用存儲器內(nèi)的該封包的該檔頭進行錯誤碼校驗,以得出該數(shù)據(jù)鏈路校驗結(jié)果,并 據(jù)以傳送該協(xié)議層處理訊號給該接收端的該協(xié)議層,包含對該封包的該檔頭的一檔頭錯誤校驗碼進行循環(huán)冗余校驗,以得出一檔頭校驗結(jié)果; 對該封包的該檔頭的一鏈路命令字元錯誤校驗碼進行循環(huán)冗余校驗,以得出一鏈路命 令字元校驗結(jié)果;以及根據(jù)該檔頭校驗結(jié)果與該鏈路命令字元校驗結(jié)果,得出該數(shù)據(jù)鏈路校驗結(jié)果;以及 于該數(shù)據(jù)鏈路校驗結(jié)果表示正確時,傳送該協(xié)議層處理訊號給該接收端的該協(xié)議層, 并傳送一確認訊號至該傳送端;其中該確認訊號是用來告知該傳送端所傳送的該封包于該接收端的該數(shù)據(jù)鏈路校驗 結(jié)果表示正確。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)傳輸方法,其特征在于,該接收端的該數(shù)據(jù)鏈路層對儲 存于該共用存儲器內(nèi)的該封包的該檔頭進行錯誤碼校驗,以得出該數(shù)據(jù)鏈路校驗結(jié)果,并 據(jù)以傳送該協(xié)議層處理訊號給該接收端的該協(xié)議層另包含于該數(shù)據(jù)鏈路校驗結(jié)果表示錯誤時,傳送一重送訊號至該傳送端; 其中該重送訊號是用來通知該傳送端所傳送的該封包于該接收端的該數(shù)據(jù)鏈路校驗 結(jié)果表示錯誤。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)傳輸方法,其特征在于,根據(jù)該檔頭校驗結(jié)果與該鏈路 命令字元校驗結(jié)果,得出該數(shù)據(jù)鏈路校驗結(jié)果包含當該檔頭校驗結(jié)果與該鏈路命令字元校驗結(jié)果皆為正確時,該數(shù)據(jù)鏈路校驗結(jié)果表示 正確;以及當該檔頭校驗結(jié)果與該鏈路命令字元校驗結(jié)果中有一者為錯誤時,該數(shù)據(jù)鏈路校驗結(jié) 果表示錯誤。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸方法,其特征在于,該接收端的該協(xié)議層根據(jù)該協(xié) 議層處理訊號,直接對儲存于該共用存儲器內(nèi)的該封包進行后續(xù)處理,包含根據(jù)該協(xié)議層處理訊號,以得到該共用存儲器的一位址; 根據(jù)該共用存儲器的該位址,以讀取儲存于該共用存儲器的該封包;以及 根據(jù)該封包的該檔頭的一端點資訊,接收該封包的該數(shù)據(jù)負載以進行后續(xù)處理。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)傳輸方法,其特征在于,根據(jù)該封包的該檔頭的該端點 資訊,接收該封包的該數(shù)據(jù)負載以進行后續(xù)處理包含當該端點資訊指示該封包為同時型傳輸類型封包時,接收該封包的該數(shù)據(jù)負載以進行后續(xù)處理;以及當該端點資訊指示該封包非為同時型傳輸類型封包時,對該共用存儲器所儲存的該封 包的該數(shù)據(jù)負載的一數(shù)據(jù)負載錯誤校驗碼進行循環(huán)冗余校驗,得出一數(shù)據(jù)負載校驗結(jié)果, 并據(jù)以發(fā)送一交握訊號至該傳送端。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸方法,其特征在于,該接收端是為一主控端或一裝 置端,且該傳送端是為對應(yīng)于該接收端的一主控端或一裝置端。
8.一種可節(jié)省通用串行總線協(xié)議中用來儲存封包的存儲器的數(shù)據(jù)傳輸方法,其特征在 于,包含以下步驟一傳送端的一協(xié)議層將一數(shù)據(jù)負載寫入于一共用數(shù)據(jù)負載存儲器; 該傳送端的該協(xié)議層根據(jù)該數(shù)據(jù)負載產(chǎn)生一檔頭,并將該檔頭寫入一共用檔頭存儲 器;以及該傳送端的一數(shù)據(jù)鏈路層直接將儲存于該共用檔頭存儲器內(nèi)的該檔頭與儲存于該共 用數(shù)據(jù)負載存儲器內(nèi)的該數(shù)據(jù)負載組成一封包,并將該封包傳送至一接收端。
9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)傳輸方法,其特征在于,該傳送端的該協(xié)議層將該數(shù)據(jù) 負載寫入于該共用數(shù)據(jù)負載存儲器包含根據(jù)對應(yīng)于該共用數(shù)據(jù)負載存儲器的一共用數(shù)據(jù)負載旗號,以將該數(shù)據(jù)負載寫入該共 用數(shù)據(jù)負載存儲器;以及將對應(yīng)于該共用數(shù)據(jù)負載存儲器的該共用數(shù)據(jù)負載旗號,標記為已被寫入。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)傳輸方法,其特征在于,該傳送端的該協(xié)議層根據(jù)該數(shù) 據(jù)負載產(chǎn)生該檔頭,并將該檔頭寫入該共用檔頭存儲器包含根據(jù)一待發(fā)送指標與一已確認指標,以判斷該共用檔頭存儲器是可被寫入; 根據(jù)該數(shù)據(jù)負載與對應(yīng)于該共用數(shù)據(jù)負載存儲器的一數(shù)據(jù)負載位址資訊,以產(chǎn)生該檔 頭,并將該檔頭儲存于該共用檔頭存儲器;以及根據(jù)對應(yīng)于該共用檔頭存儲器的一檔頭位址,以調(diào)整該待發(fā)送指標; 其中對應(yīng)于該共用數(shù)據(jù)負載存儲器的該數(shù)據(jù)負載位址資訊是用來指示該共用數(shù)據(jù)負 載存儲器的一數(shù)據(jù)負載位址。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)傳輸方法,其特征在于,該數(shù)據(jù)負載位址資訊是儲存 于該檔頭的一保留區(qū)。
12.根據(jù)權(quán)利要求10所述的數(shù)據(jù)傳輸方法,其特征在于,該傳送端的該數(shù)據(jù)鏈路層將 儲存于該共用檔頭存儲器內(nèi)的該檔頭與儲存于該共用數(shù)據(jù)負載存儲器內(nèi)的該數(shù)據(jù)負載組 成該封包,并將該封包傳送至該接收端,包含該傳送端的該數(shù)據(jù)鏈路層根據(jù)該待發(fā)送指標與一已發(fā)送指標,以判斷需發(fā)送對應(yīng)于該 共用檔頭存儲器所儲存的該檔頭的該封包;該傳送端的該數(shù)據(jù)鏈路層根據(jù)該檔頭,以得到該數(shù)據(jù)負載位址資訊,并據(jù)以得到儲存 于該共用數(shù)據(jù)負載存儲器的該數(shù)據(jù)負載;以及該傳送端的該數(shù)據(jù)鏈路層將該檔頭與該數(shù)據(jù)負載組成該封包,并傳送至該接收端。
13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)傳輸方法,其特征在于,該數(shù)據(jù)傳輸方法另包含 該傳送端的該數(shù)據(jù)鏈路層根據(jù)一接收端所傳送的對應(yīng)于該封包的一數(shù)據(jù)鏈路回復(fù)訊號,以判斷是否要重新傳送該封包;以及該傳送端的該協(xié)議層根據(jù)該接收端所傳送的對應(yīng)于該封包的一交握訊號,以進行后續(xù)處理。
14.根據(jù)權(quán)利要求13所述的數(shù)據(jù)傳輸方法,其特征在于,該傳送端的該數(shù)據(jù)鏈路層根 據(jù)該接收端所傳送的對應(yīng)于該封包的該數(shù)據(jù)鏈路回復(fù)訊號,以判斷是否要重新傳送該封 包,包含于該數(shù)據(jù)鏈路回復(fù)訊號為重送訊號時,根據(jù)該已確認指標調(diào)整該已發(fā)送指標,以使該 傳送端的該數(shù)據(jù)鏈路層據(jù)以重新傳送該封包。
15.根據(jù)權(quán)利要求14所述的數(shù)據(jù)傳輸方法,其特征在于,于該數(shù)據(jù)鏈路回復(fù)訊號為重 送訊號時,根據(jù)該已確認指標,調(diào)整該已發(fā)送指標,以使該傳送端的該數(shù)據(jù)鏈路層據(jù)以重新 傳送該封包,包含該傳送端的該數(shù)據(jù)鏈路層根據(jù)該待發(fā)送指標與該已發(fā)送指標,以判斷需發(fā)送對應(yīng)于該 共用檔頭存儲器所儲存的該檔頭的該封包;該傳送端的該數(shù)據(jù)鏈路層根據(jù)該檔頭,以得到該數(shù)據(jù)負載位址資訊,并據(jù)以得到儲存 于該共用數(shù)據(jù)負載存儲器的該數(shù)據(jù)負載;以及該傳送端的該數(shù)據(jù)鏈路層將該檔頭與該數(shù)據(jù)負載組成該封包,并傳送至該接收端。
16.根據(jù)權(quán)利要求13所述的數(shù)據(jù)傳輸方法,其特征在于,該傳送端的該協(xié)議層根據(jù)該 接收端所傳送的對應(yīng)于該封包的該交握訊號,以進行后續(xù)處理,包含于該交握訊號指示該封包已被正確地接收時,根據(jù)該交握訊號以調(diào)整該已確認指標與 對應(yīng)于該共用數(shù)據(jù)負載存儲器的該共用數(shù)據(jù)負載旗號,以釋放該共用檔頭存儲器與該共用 數(shù)據(jù)負載存儲器;以及于該交握訊號指示該封包沒有被正確地接收時,根據(jù)該已確認指標調(diào)整該已發(fā)送指 標,以使該傳送端的該數(shù)據(jù)鏈路層據(jù)以重新傳送該封包。
17.根據(jù)權(quán)利要求16所述的數(shù)據(jù)傳輸方法,其特征在于,于該交握訊號指示該封包已 被正確地接收時,根據(jù)該交握訊號以調(diào)整該已確認指標與對應(yīng)于該共用數(shù)據(jù)負載存儲器的 該共用數(shù)據(jù)負載旗號,以釋放該共用檔頭存儲器與該共用數(shù)據(jù)負載存儲器,包含根據(jù)該交握訊號內(nèi)所儲存的一檔頭順序參數(shù),以得到該共用檔頭存儲器的該檔頭位址 與儲存于該共用檔頭存儲器的該檔頭;根據(jù)該檔頭的該數(shù)據(jù)負載位址資訊,以得到該共用數(shù)據(jù)負載存儲器的該數(shù)據(jù)負載位址;根據(jù)該共用檔頭存儲器的該檔頭位址,以調(diào)整該已確認指標,來釋放該共用檔頭存儲 器;以及根據(jù)該數(shù)據(jù)負載位址,以將對應(yīng)于共用數(shù)據(jù)負載存儲器的該共用數(shù)據(jù)負載旗號,標記 為可被寫入,來釋放該共用數(shù)據(jù)負載存儲器。
18.根據(jù)權(quán)利要求16所述的數(shù)據(jù)傳輸方法,其特征在于,于該交握訊號指示該封包沒 有被正確地接收時,根據(jù)該已確認指標調(diào)整該已發(fā)送指標,以使該傳送端的該數(shù)據(jù)鏈路層 據(jù)以重新傳送該封包,包含該傳送端的該數(shù)據(jù)鏈路層根據(jù)該待發(fā)送指標與該已發(fā)送指標,以判斷需發(fā)送對應(yīng)于該 共用檔頭存儲器所儲存的該檔頭的該封包;該傳送端的該數(shù)據(jù)鏈路層根據(jù)該檔頭,以得到該數(shù)據(jù)負載位址資訊,并據(jù)以得到儲存于該共用數(shù)據(jù)負載存儲器的該數(shù)據(jù)負載;以及該傳送端的該數(shù)據(jù)鏈路層將該檔頭與該數(shù)據(jù)負載組成該封包,并傳送至該接收端。
19.根據(jù)權(quán)利要求18所述的數(shù)據(jù)傳輸方法,其特征在于,該傳送端是為一主控端或一 裝置端,且該接收端是為對應(yīng)于該傳送端的一主控端或一裝置端。
20.一種可節(jié)省通用串行總線協(xié)議中用來儲存封包的存儲器的裝置,其特征在于,包含一傳送裝置,其包含 一共用檔頭存儲器; 一共用數(shù)據(jù)負載存儲器;一第一協(xié)議層裝置,用來根據(jù)一數(shù)據(jù)負載,以產(chǎn)生一檔頭,并儲存該數(shù)據(jù)負載于該共用 數(shù)據(jù)負載存儲器,以及儲存該檔頭于該共用檔頭存儲器;以及一第一數(shù)據(jù)鏈路層裝置,用來直接將儲存于該共用檔頭存儲器的該檔頭與儲存于該共 用數(shù)據(jù)負載存儲器的該數(shù)據(jù)負載組成一封包,并發(fā)送該封包;以及 一接收裝置,用來接收該封包,該接收裝置包含 一共用存儲器,用來儲存該封包;一第二數(shù)據(jù)鏈路層裝置,用來對儲存于該共用存儲器內(nèi)的該封包的該檔頭進行錯誤碼 校驗,以產(chǎn)生一數(shù)據(jù)鏈路校驗結(jié)果,并根據(jù)該數(shù)據(jù)鏈路校驗結(jié)果,以傳送一數(shù)據(jù)鏈路回復(fù)訊 號至該傳送裝置,與產(chǎn)生一協(xié)議層處理訊號;以及一第二協(xié)議層裝置,用來根據(jù)該協(xié)議層處理訊號與儲存于該共用存儲器的該封包的該 檔頭的一端點資訊,以判斷儲存于該共用存儲器的該封包是否為同時型傳輸類型封包。
21.根據(jù)權(quán)利要求20所述的裝置,其特征在于,當該第二協(xié)議層裝置判斷該封包為同 時型傳輸類型封包時,直接接收該封包的該數(shù)據(jù)負載;當該第二協(xié)議層裝置判斷該封包非 為同時型傳輸類型封包時,對該封包的該數(shù)據(jù)負載的一數(shù)據(jù)負載錯誤校驗碼進行循環(huán)冗余 校驗,得出一數(shù)據(jù)負載校驗結(jié)果,并據(jù)以發(fā)送一交握訊號至該傳送裝置,以使該傳送裝置的 該第一協(xié)議層作后續(xù)處理。
22.根據(jù)權(quán)利要求20所述的裝置,其特征在于,當該數(shù)據(jù)鏈路校驗結(jié)果表示錯誤時,該 數(shù)據(jù)鏈路回復(fù)訊號是為重送訊號以使該傳送裝置的該第一數(shù)據(jù)鏈路層重送該封包;當該數(shù) 據(jù)鏈路校驗結(jié)果表示正確時,該數(shù)據(jù)鏈路回復(fù)訊號是為確認訊號且該第二數(shù)據(jù)鏈路裝置傳 送該協(xié)議層處理訊號至該第二協(xié)議層裝置。
23.一種節(jié)省存儲器的接收裝置,該接收裝置依據(jù)一通訊協(xié)議接收一封包,該封包包含 一檔頭與一數(shù)據(jù)負載,其特征在于,該接收裝置包含一共用存儲器,包含復(fù)數(shù)個封包儲存單元,該復(fù)數(shù)個封包儲存單元的一第一封包儲存 單元儲存該封包且該第一封包儲存單元對應(yīng)一第一存儲器位址;一第二數(shù)據(jù)鏈路層裝置,電性連接于該共用存儲器,該第二數(shù)據(jù)鏈路層裝置依據(jù)該第 一存儲器位址來讀取儲存于該第一封包儲存單元的該封包;以及一第二協(xié)議層裝置,電性連接于該共用存儲器,該第二協(xié)議層裝置依據(jù)該第一存儲器 位址讀取儲存于該第一封包儲存單元的該封包。
24.根據(jù)權(quán)利要求23所述的接收裝置,其特征在于,該第一封包儲存單元包含一第一 旗號用來指示該第一封包儲存單元是否可被寫入數(shù)據(jù)。
25.根據(jù)權(quán)利要求23所述的接收裝置,其特征在于,該第二數(shù)據(jù)鏈路層裝置依據(jù)該封 包的該檔頭進行錯誤碼校驗以產(chǎn)生一數(shù)據(jù)鏈路校驗結(jié)果,并根據(jù)該數(shù)據(jù)鏈路校驗結(jié)果傳送 一數(shù)據(jù)鏈路回復(fù)訊號至該接收裝置所對應(yīng)的一傳送裝置。
26.根據(jù)權(quán)利要求25所述的接收裝置,其特征在于,該第二數(shù)據(jù)鏈路層裝置根據(jù)該數(shù) 據(jù)鏈路校驗結(jié)果,選擇性地產(chǎn)生一協(xié)議層處理訊號至該第二協(xié)議層裝置,該第二協(xié)議層裝 置收受該協(xié)議層處理訊號后依據(jù)該封包的該檔頭的一端點資訊,以判斷儲存于該共用存儲 器的該封包是否為同時型傳輸類型封包。
27.根據(jù)權(quán)利要求26所述的接收裝置,其特征在于,該協(xié)議層處理訊號包含該第一存 儲器位址,使該第二協(xié)議層裝置依據(jù)該第一存儲器位址讀取儲存于該第一封包儲存單元的 該封包。
28.一種節(jié)省存儲器的接收裝置,該接收裝置依據(jù)一通訊協(xié)議接收一封包,該封包包含 一檔頭與一數(shù)據(jù)負載,其特征在于,該接收裝置包含一數(shù)據(jù)鏈路存儲器,包含復(fù)數(shù)個檔頭儲存單元,該復(fù)數(shù)個檔頭儲存單元的一第一檔頭 儲存單元儲存該封包的該檔頭而不儲存該封包的該數(shù)據(jù)負載,且該第一檔頭儲存單元對應(yīng) 一第二存儲器位址;一協(xié)議存儲器,包含復(fù)數(shù)個數(shù)據(jù)負載儲存單元,該復(fù)數(shù)個數(shù)據(jù)負載儲存單元的一第一 數(shù)據(jù)負載儲存單元儲存該封包的該數(shù)據(jù)負載而不儲存該封包的該檔頭,且該第一數(shù)據(jù)負載 儲存單元對應(yīng)一第三存儲器位址;一第二數(shù)據(jù)鏈路層裝置,電性連接于該數(shù)據(jù)鏈路存儲器,該第二數(shù)據(jù)鏈路層裝置依據(jù) 該第二存儲器位址來讀取該封包的該檔頭;以及一第二協(xié)議層裝置,電性連接于該協(xié)議存儲器,該第二協(xié)議層裝置依據(jù)該第三存儲器 位址讀取該封包的該數(shù)據(jù)負載。
29.根據(jù)權(quán)利要求28所述的接收裝置,其特征在于,該第一檔頭儲存單元包含一第二 旗號用來指示該第一檔頭儲存單元是否可被寫入數(shù)據(jù),而該第一數(shù)據(jù)負載單元包含一第三 旗號用來指示該第一數(shù)據(jù)負載儲存單元是否可被寫入數(shù)據(jù)。
30.根據(jù)權(quán)利要求28所述的接收裝置,其特征在于,該第二數(shù)據(jù)鏈路層裝置依據(jù)該封 包的該檔頭進行錯誤碼校驗以產(chǎn)生一數(shù)據(jù)鏈路校驗結(jié)果,并根據(jù)該數(shù)據(jù)鏈路校驗結(jié)果傳送 一數(shù)據(jù)鏈路回復(fù)訊號至該接收裝置所對應(yīng)的一傳送裝置。
31.根據(jù)權(quán)利要求30所述的接收裝置,其特征在于,該第二數(shù)據(jù)鏈路層裝置根據(jù)該數(shù) 據(jù)鏈路校驗結(jié)果,選擇性地產(chǎn)生一協(xié)議層處理訊號至該第二協(xié)議層裝置,該第二協(xié)議層裝 置收受該協(xié)議層處理訊號后依據(jù)該封包的該檔頭的一端點資訊,以判斷該封包為同時型傳 輸類型封包。
32.根據(jù)權(quán)利要求31所述的接收裝置,其特征在于,該協(xié)議層處理訊號包含該第二存 儲器位址,使該第二協(xié)議層裝置依據(jù)該第二存儲器位址讀取儲存于該第一檔頭儲存單元的 該封包的該檔頭。
33.根據(jù)權(quán)利要求31所述的接收裝置,其特征在于,該協(xié)議層處理訊號包含該第三存 儲器位址,其中當該第二協(xié)議層裝置判斷該封包為同時型傳輸類型封包時,該第二協(xié)議層 裝置依據(jù)該第三存儲器位址直接讀取儲存于該第一數(shù)據(jù)負載儲存單元的該封包的該數(shù)據(jù) 負載而不對該數(shù)據(jù)負載的一數(shù)據(jù)負載錯誤校驗碼進行循環(huán)冗余校驗;當該第二協(xié)議層裝置判斷該封包非為同時型傳輸類型封包時,該第二協(xié)議層裝置依據(jù)該第三存儲器位址讀取儲 存于該第一數(shù)據(jù)負載儲存單元的該封包的該數(shù)據(jù)負載并對該數(shù)據(jù)負載的該數(shù)據(jù)負載錯誤 校驗碼進行循環(huán)冗余校驗,得出一數(shù)據(jù)負載校驗結(jié)果,并據(jù)以發(fā)送一交握訊號至該傳送裝 置,以使該傳送裝置的一第一協(xié)議層作后續(xù)處理。
34.一種節(jié)省存儲器的傳送裝置,該傳送裝置依據(jù)一通訊協(xié)議傳送一封包,該封包包含 一檔頭與一數(shù)據(jù)負載,其特征在于,該傳送裝置包含一第一協(xié)議層裝置,用來根據(jù)該封包的該數(shù)據(jù)負載以產(chǎn)生該封包的該檔頭; 一共用檔頭存儲器,電性連接于該第一協(xié)議層裝置,該共用檔頭存儲器包含復(fù)數(shù)個共 用檔頭儲存單元,該復(fù)數(shù)個共用檔頭儲存單元的一第一共用檔頭儲存單元儲存該封包的該 檔頭而不儲存該封包的該數(shù)據(jù)負載,且該第一共用檔頭儲存單元對應(yīng)一第四存儲器位址;一共用數(shù)據(jù)負載存儲器,電性連接于該第一協(xié)議層裝置,該共用數(shù)據(jù)負載存儲器包含 復(fù)數(shù)個共用數(shù)據(jù)負載儲存單元,該復(fù)數(shù)個共用數(shù)據(jù)負載儲存單元的一第一共用數(shù)據(jù)負載儲 存單元儲存該封包的該數(shù)據(jù)負載而不儲存該封包的該檔頭,且該第一共用數(shù)據(jù)負載儲存單 元對應(yīng)一第五存儲器位址;以及一第一數(shù)據(jù)鏈路層裝置,電性連接于該共用數(shù)據(jù)負載存儲器與該共用檔頭存儲器,該 第一數(shù)據(jù)鏈路層裝置依據(jù)該第四存儲器位址與該第五存儲器位址將該檔頭與該數(shù)據(jù)負載 組成該封包并發(fā)送該封包至該傳送裝置所對應(yīng)的一接收裝置。
35.根據(jù)權(quán)利要求34所述的傳送裝置,其特征在于,該第一共用數(shù)據(jù)負載儲存單元包 含一第四旗號用來指示該第一共用數(shù)據(jù)負載儲存單元是否可被寫入數(shù)據(jù)。
全文摘要
一種可節(jié)省通用串行總線協(xié)議中用來儲存封包的存儲器的數(shù)據(jù)傳輸方法,當傳送端欲傳送數(shù)據(jù)負載時,傳送端的協(xié)議層將數(shù)據(jù)負載寫入于共用數(shù)據(jù)負載存儲器。協(xié)議層根據(jù)數(shù)據(jù)負載產(chǎn)生對應(yīng)的檔頭,并將對應(yīng)的檔頭寫入共用檔頭存儲器,且傳送端的數(shù)據(jù)鏈路層直接將儲存于共用檔頭存儲器內(nèi)的檔頭與儲存于共用數(shù)據(jù)負載存儲器內(nèi)的數(shù)據(jù)負載組成一封包,并發(fā)送該封包。因此當傳送端欲傳送對應(yīng)數(shù)據(jù)負載時,傳送端僅需要有等同于一個封包大小的存儲器空間,以儲存對應(yīng)于數(shù)據(jù)負載的封包。如此可節(jié)省存儲器空間,以降低成本。
文檔編號G06F13/42GK101887403SQ20101021893
公開日2010年11月17日 申請日期2010年6月25日 優(yōu)先權(quán)日2010年6月25日
發(fā)明者張倬炫, 許銘勛, 謝登全 申請人:鈺創(chuàng)科技股份有限公司