專利名稱:用于實施循環(huán)冗余校驗的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及數(shù)據(jù)通信。更明確地說,本發(fā)明涉及使用循環(huán)冗余校驗的數(shù)字 傳輸鏈路。
背景技術(shù):
過去幾年中,計算機、移動電話、移動電話相機和視頻捕獲裝置、個人數(shù)據(jù)助理、電 子游戲相關(guān)產(chǎn)品和各種視頻技術(shù)(例如,DVD和高清晰度VCR)已顯著進步以提供對分辨率 日益變高的靜態(tài)、視頻、視頻點播和圖形圖像的捕獲和演示。將這些可視圖像與高質(zhì)量視頻 數(shù)據(jù)(例如,CD型聲音再現(xiàn)、DVD和具有相關(guān)聯(lián)的音頻信號輸出的其它裝置)組合,從而為 最終用戶產(chǎn)生更逼真、內(nèi)容豐富或真實的多媒體體驗。另外,已開發(fā)出高度可移動的、高質(zhì) 量的聲音系統(tǒng)和音樂傳送機構(gòu)(例如,MP3播放器)以便為用戶僅提供音頻演示。高質(zhì)量數(shù)據(jù)演示的發(fā)展迫使需要建立可以高數(shù)據(jù)速率傳遞數(shù)據(jù)的專用接口, 使得數(shù)據(jù)質(zhì)量不會降級或削弱。一個此類接口是移動顯示數(shù)字接口(Mobile Display Digitallnterface, MDDI),其用于(例如)在具有相機的蜂窩式電話的下翻蓋(lower clamshell)與上翻蓋(upper clamshell)之間交換高速數(shù)據(jù)。MDDI是具有成本效益的、 低功率消耗的傳遞機制,其實現(xiàn)主機與客戶端之間經(jīng)由短程通信鏈路的甚高速數(shù)據(jù)傳遞。 MDDI最少只需要四根引線加上用于利用本發(fā)明技術(shù)可遞送最大帶寬達每秒3. 2吉比特的 雙向數(shù)據(jù)傳遞的功率。雖然可使用MDDI和其它數(shù)據(jù)接口來有效地提供接口上的高速數(shù)據(jù)速率,但越來 越多地需要優(yōu)化性能并更有效地使用數(shù)字傳輸鏈路(例如,MDDI鏈路)。
發(fā)明內(nèi)容
本發(fā)明提供用于實施循環(huán)冗余校驗(CRC)以改進鏈路初始化處理并交換系統(tǒng)誤 差信息,使得可更有效地使用數(shù)字傳輸鏈路的系統(tǒng)和方法。在本發(fā)明的一個方面,提供CRC 校驗器,其包含唯一模式檢測器、CRC產(chǎn)生器、CRC初始化器和CRC驗證器。所述CRC校驗器 預(yù)填充所述CRC產(chǎn)生器以獲得唯一模式。因為預(yù)填充了所述CRC產(chǎn)生器,所以當(dāng)在經(jīng)由數(shù) 字傳輸鏈路所接收的數(shù)據(jù)流內(nèi)接收到所述唯一模式時,所述CRC校驗器可繼續(xù)校驗CRC而 無需對數(shù)據(jù)進行排隊和存儲。在本發(fā)明的另一方面,提供CRC產(chǎn)生器系統(tǒng),其有意破壞CRC值以傳輸系統(tǒng)誤差信 息或相關(guān)系統(tǒng)誤差信息。所述CRC產(chǎn)生器系統(tǒng)包含CRC產(chǎn)生器、CRC破壞器、誤差檢測器和 誤差值產(chǎn)生器。所述CRC產(chǎn)生器基于待包含在將經(jīng)由數(shù)字傳輸鏈路傳輸?shù)臄?shù)據(jù)包中的數(shù)據(jù)
4來產(chǎn)生CRC值。所述CRC破壞器破壞由所述CRC產(chǎn)生器產(chǎn)生的所述CRC值以傳達主機狀態(tài) 信息或相關(guān)系統(tǒng)狀態(tài)信息。所述誤差檢測器檢測主機或相關(guān)系統(tǒng)內(nèi)的誤差狀況,并為所述 CRC破壞器提供用于有意破壞CRC值的指令。在本發(fā)明的又一方面,CRC產(chǎn)生器系統(tǒng)可提供關(guān)于所包含的誤差類型的特定信息。 在此情況下,除了以上元件外,CRC產(chǎn)生器系統(tǒng)還包含誤差值產(chǎn)生器,其指令CRC破壞器用 特定CRC誤差值來代替CRC產(chǎn)生器產(chǎn)生的CRC值,所述特定CRC誤差值指示系統(tǒng)誤差或狀 態(tài)狀況的類型。在一個實例中,所述數(shù)字傳輸鏈路是MDDI鏈路。本發(fā)明不限于MDDI鏈路,且可與 使用CRC的任何類型的數(shù)字傳輸鏈路一起使用。下文參看附圖詳細描述本發(fā)明的其它實施例、特征和優(yōu)點,以及本發(fā)明各種實施 例的結(jié)構(gòu)和操作。
參看附圖描述本發(fā)明。圖中,相似參考標(biāo)號表示相同或功能類似的元件。元件第 一次出現(xiàn)的圖由相應(yīng)參考標(biāo)號中最左數(shù)位表示。圖1是耦合到數(shù)字裝置和外圍裝置的數(shù)字?jǐn)?shù)據(jù)裝置接口的圖。圖2是具有上翻蓋部分和下翻蓋部分的蜂窩式電話的方框圖,所述蜂窩式電話使 用MDDI接口來提供高速數(shù)據(jù)通信。圖3是具有相機的蜂窩式電話的上翻蓋的圖。圖4A是MDDI主機的圖。圖4B是包從MDDI包構(gòu)造器向MDDI鏈路流動的圖。圖4C是由MDDI包構(gòu)造器從MDDI鏈路接收的包的流動的圖。圖4D是CRC校驗器的圖。圖4E是展示CRC的產(chǎn)生的時序圖。圖4F是展示CRC的接收的時序圖。圖5是子幀標(biāo)頭包格式的圖。圖6是視頻流包格式的圖。圖7是CRC校驗器的圖。圖8是用于初始化鏈路的方法的流程圖,所述方法涉及預(yù)填充CRC產(chǎn)生器。圖9是提供用于有意破壞CRC值的機制的CRC產(chǎn)生器系統(tǒng)的圖。圖10是可解譯被有意破壞的CRC值的CRC校驗器的圖。圖11是用于通過有意破壞CRC值而經(jīng)由數(shù)字傳輸鏈路傳輸系統(tǒng)誤差信息的方法 的流程圖。圖 12 是 CRC 覆寫機構(gòu)(overwriting mechanism)的圖。圖13是CRC覆寫方法的流程圖。圖14是接收已覆寫的CRC值的方法的流程圖。
具體實施例方式本說明書揭示并入有本發(fā)明的特征的一個或一個以上實施例。所揭示的實施例僅例示本發(fā)明。本發(fā)明的范圍不限于所揭示的實施例。本發(fā)明由所附權(quán)利要求書界定。所描述的實施例和說明書中對于“一個實施例”、“實施例”、“示范性實施例”等的 參考表示所描述的實施例可包含特定部件、結(jié)構(gòu)或特性,但可能并不一定每個實施例均包 含所述特定部件、結(jié)構(gòu)或特性。此外,這些短語不一定是指同一實施例。此外,當(dāng)結(jié)合實施 例描述特定部件、結(jié)構(gòu)或特性時,應(yīng)了解,結(jié)合明確或未明確描述的其它實施例來實行此特 定部件、結(jié)構(gòu)或特性應(yīng)在所屬領(lǐng)域的技術(shù)人員的知識范圍內(nèi)進行。本發(fā)明的實施例可實施在硬件、固件、軟件,或其任何組合中。本發(fā)明的實施例也 可實施為存儲在機器可讀媒體上的指令,所述指令可由一個或一個以上處理器讀取和執(zhí) 行。機器可讀媒體可包含用于以可由機器(例如,計算裝置)讀取的形式存儲或傳輸信息 的任何機構(gòu)。舉例來說,機器可讀媒體可包含只讀存儲器(ROM);隨機存取存儲器(RAM); 磁盤存儲媒體;光學(xué)存儲媒體;快閃存儲器裝置;電、光學(xué)、聲音或其它形式的傳播信號(例 如,載波、紅外信號、數(shù)字信號等)等等。此外,本文中可將固件、軟件、例行程序、指令描述 為執(zhí)行某些動作。然而,應(yīng)了解,這些描述僅出于方便的目的,且這些動作實際上來自計算 裝置、處理器、控制器或執(zhí)行所述固件、軟件、例行程序、指令等的其它裝置。圖1是耦合到數(shù)字裝置150和外圍裝置180的數(shù)字?jǐn)?shù)據(jù)裝置接口 100的圖。 數(shù)字裝置150可包含(但不限于)蜂窩式電話、個人數(shù)據(jù)助理、智能電話或個人計算 機。大體上說,數(shù)字裝置150可包含充當(dāng)針對數(shù)字指令和處理數(shù)字演示數(shù)據(jù)(digital presentationdata)的處理單元的任何類型的數(shù)字裝置。數(shù)字裝置150包含系統(tǒng)控制器160 和鏈路控制器170。外圍裝置180可包含(但不限于)相機、條形碼讀出器、圖像掃描儀、音頻裝置和 傳感器。大體上說,外圍裝置180可包含任何類型的音頻、視頻或圖像捕獲和顯示裝置,其 中在外圍裝置與處理單元之間交換數(shù)字演示數(shù)據(jù)。外圍裝置180包含控制區(qū)塊190。例如, 當(dāng)外圍裝置180是相機時,控制區(qū)塊190可包含(但不限于)鏡頭控制、閃光或白色LED控 制及快門控制。數(shù)字演示數(shù)據(jù)可包含表示音頻、圖像和多媒體數(shù)據(jù)的數(shù)字?jǐn)?shù)據(jù)。數(shù)字?jǐn)?shù)據(jù)接口裝置100經(jīng)由通信鏈路105以高速率傳遞數(shù)字演示數(shù)據(jù)。在一個實 例中,可使用MDDI通信鏈路,其支持最大帶寬為每秒3. 2吉比特的雙向數(shù)據(jù)傳遞。視通信 鏈路而定,可支持?jǐn)?shù)據(jù)傳遞的高于或低于此示范性速率的其它高速率。數(shù)字?jǐn)?shù)據(jù)接口裝置 100包含消息解譯器模塊110、內(nèi)容模塊120、控制模塊130和鏈路控制器140。位于數(shù)字?jǐn)?shù)據(jù)接口 100內(nèi)的鏈路控制器140和位于數(shù)字裝置150內(nèi)的鏈路控制器 170建立通信鏈路105。鏈路控制器140和鏈路控制器170可以是MDDI鏈路控制器。視頻電子標(biāo)準(zhǔn)協(xié)會(“VESA”)MDDI標(biāo)準(zhǔn)(其全文以引用的方式并入本文中)描述 允許便攜式裝置將來自小型便攜式裝置的數(shù)字圖像傳送到較大的外部顯示器的高速數(shù)字 包接口的要求。MDDI應(yīng)用微型連接器系統(tǒng)和對于將便攜式計算、通信和娛樂裝置鏈接到例 如可佩帶的微顯示器的新興產(chǎn)品來說比較理想的細撓性電纜。其還包含關(guān)于如何簡化主機 處理器與顯示裝置之間的連接的信息,以便減少成本并增加這些連接的可靠性。鏈路控制 器140和170基于VESA MDDI標(biāo)準(zhǔn)來建立通信路徑105。2004 $ 7 月 6 H ^ ^ Zou ^ A W IS ^J "Generating and Implementing a CommunicationProtocol and Interface for High Data Rate Signal Transfer,,的第
66,760,772號美國專利C 772專利)描述一種數(shù)據(jù)接口,其使用包結(jié)構(gòu)經(jīng)由通信路徑在主 機與客戶端之間傳遞數(shù)字?jǐn)?shù)據(jù),其中所述包結(jié)構(gòu)鏈接在一起以形成針對演示數(shù)據(jù)的通信協(xié) 議?!?72專利中教示的本發(fā)明的實施例針對MDDI接口。鏈路控制器(例如,鏈路控制器 140和170)使用信號協(xié)議,所述鏈路控制器經(jīng)配置以產(chǎn)生、傳輸并接收形成通信協(xié)議的包, 并將數(shù)字?jǐn)?shù)據(jù)形成為一種或一種以上類型的數(shù)據(jù)包,其中至少一種類型的數(shù)據(jù)包駐存在主 機裝置中并經(jīng)由通信路徑(例如,通信路徑105)耦合到客戶端。所述接口提供經(jīng)由短程“串行”型數(shù)據(jù)鏈路的具有成本效益的、低功率、雙向、高速 數(shù)據(jù)傳遞機制,其適合于與微型連接器和細撓性電纜一起實施。鏈路控制器140和170的 實施例基于'772專利的教示建立通信路徑105?!?772專利全文以引用的方式并入本文 中。在其它實施例中,鏈路控制器140和170兩者均可以是USB鏈路控制器,或其兩 者均可包含控制器的組合,例如,舉例來說MDDI鏈路控制器與另一類型的鏈路控制器(例 如,舉例來說USB鏈路控制器)。或者,鏈路控制器140和170可包含控制器的組合,例如, MDDI鏈路控制器與用于在數(shù)字?jǐn)?shù)據(jù)接口裝置100與數(shù)字裝置150之間交換確認(rèn)消息的單一 鏈路。鏈路控制器140和170另外可支持其它類型的接口,例如以太網(wǎng)或RS-232串行端口 接口。相關(guān)領(lǐng)域的技術(shù)人員基于本文的教示將了解可支持額外接口。在數(shù)字?jǐn)?shù)據(jù)接口裝置100內(nèi),消息解譯器模塊110接收來自系統(tǒng)控制器160的命 令,并經(jīng)由通信鏈路105向系統(tǒng)控制器160產(chǎn)生響應(yīng)消息,解譯命令消息,且將命令的信息 內(nèi)容路由到數(shù)字?jǐn)?shù)據(jù)接口裝置100內(nèi)的適當(dāng)模塊。內(nèi)容模塊120接收來自外圍裝置180的數(shù)據(jù),存儲所述數(shù)據(jù)并將數(shù)據(jù)經(jīng)由通信鏈 路105傳遞到系統(tǒng)控制器160。控制模塊130接收來自消息解譯器110的信息,并將信息路由到外圍裝置180的 控制區(qū)塊190??刂颇K130還可接收來自控制區(qū)塊190的信息,并將信息路由到消息解譯 器模塊110。圖2是具有上翻蓋部分和下翻蓋部分的蜂窩式電話200的方框圖,所述蜂窩式電 話200使用MDDI接口來提供位于上翻蓋和下翻蓋中的組件之間的高速數(shù)據(jù)通信。以下關(guān) 于蜂窩式電話200的論述內(nèi)容提供說明性實例,其進一步展示數(shù)字?jǐn)?shù)據(jù)接口裝置100的實 用性并提供關(guān)于其實施方案和用途的額外細節(jié)。基于本文的論述內(nèi)容,數(shù)字?jǐn)?shù)據(jù)接口裝置 100與其它裝置(例如,個人數(shù)字助理和其它類型的移動電話)一起使用將是顯而易見的且 在本發(fā)明的精神和范圍內(nèi)。參看圖2,蜂窩式電話200的下翻蓋部分202包含移動臺調(diào)制解調(diào)器(MSM)基帶芯 片204。MSM 204是數(shù)字基帶控制器。蜂窩式電話200的上翻蓋部分214包含液晶顯示器 (IXD)模塊216和相機模塊218。下翻蓋部分202和上翻蓋部分214兩者均封閉在塑料中, 與通常用于蜂窩式電話的情況一樣。鉸鏈250和252以機械方式將下翻蓋202連接到上翻 蓋214。撓性耦合254提供下翻蓋202與上翻蓋214之間的電耦合。MDDI鏈路210將相機模塊218連接到MSM 204。通常,為相機模塊218和MSM 204 的每一者提供MDDI鏈路控制器。例如,在蜂窩式電話200內(nèi),MDDI主機222集成到耦合到 相機模塊212的接口系統(tǒng)230,而MDDI客戶端206駐存在MDDI鏈路210的MSM側(cè)。通常, MDDI主機是MDDI鏈路的主控制器。
7
在蜂窩式電話200中,來自相機模塊218的像素數(shù)據(jù)在傳輸?shù)組DDI鏈路210上 之前,由接口系統(tǒng)230使用MDDI主機222接收并格式化為MDDI包。MDDI客戶端206接收 MDDI包并將其再轉(zhuǎn)換為與由相機模塊218產(chǎn)生的像素數(shù)據(jù)相同格式的像素數(shù)據(jù)。接著將像 素數(shù)據(jù)發(fā)送到MSM 204中的適當(dāng)區(qū)塊以進行處理。類似地,MDDI鏈路212將LCD模塊216連接到MSM 204。MDDI鏈路212將集成到 MSM 204中的MDDI主機208與集成到耦合到IXD模塊216的接口系統(tǒng)232中的MDDI客戶 端220互連。由MSM 204的圖形控制器產(chǎn)生的顯示數(shù)據(jù)在傳輸?shù)組DDI鏈路212上之前,由 MDDI主機208接收并格式化為MDDI包。MDDI客戶端220接收MDDI包并將其再轉(zhuǎn)換為顯 示數(shù)據(jù),并通過接口系統(tǒng)232處理所述顯示數(shù)據(jù)以供IXD模塊216使用。接口系統(tǒng)230和232表示數(shù)字?jǐn)?shù)據(jù)裝置接口 100的不同實施例。在接口系統(tǒng)230 的情況下,將實施數(shù)字?jǐn)?shù)據(jù)裝置接口 100元件以支持相機圖像的數(shù)據(jù)傳遞和相機的相機控 制功能。在接口系統(tǒng)232的情況下,將實施數(shù)字?jǐn)?shù)據(jù)裝置接口 100元件以支持到達IXD的 數(shù)據(jù)顯示和對LCD的控制功能。進一步解釋接口系統(tǒng)230以說明當(dāng)用于具有相機的蜂窩式 電話(例如,具有相機模塊218的蜂窩式電話200)中時數(shù)字?jǐn)?shù)據(jù)裝置接口 100的實施例。圖1中的裝置與蜂窩式電話200之間的關(guān)系如下。數(shù)字?jǐn)?shù)據(jù)裝置接口 100由接口 系統(tǒng)230表示。鏈路控制器140由MDDI主機222表示。外圍裝置180由相機模塊218表 示。系統(tǒng)控制器160由MSM 204表示,且鏈路控制器170由MDDI客戶端206表示。圖3是上翻蓋214的圖且提供關(guān)于接口系統(tǒng)230的更多細節(jié)以突出如在具有相機 的蜂窩式電話內(nèi)使用的數(shù)字?jǐn)?shù)據(jù)裝置接口 100的示范性實施例。接口系統(tǒng)230包含MDDI 主機222、相機消息解譯器302、相機視頻接口 304、I2C主控器303、馬達控制308和閃光/ 白色LED定時器310。I2C總線是通常使用的控制總線,其提供電路之間的通信鏈路。I2C 總線由Philips Electronics N. V.在20世紀(jì)80年代開發(fā)?;叵胍幌?,接口系統(tǒng)230對應(yīng)于數(shù)字?jǐn)?shù)據(jù)裝置接口 100。接口系統(tǒng)230的組件以以 下方式對應(yīng)于數(shù)字?jǐn)?shù)據(jù)裝置接口 100的組件。相機消息解譯器302對應(yīng)于消息解譯器模塊 110。相機視頻接口 304對應(yīng)于內(nèi)容模塊120。I2C主控器303、馬達控制308和閃光/白色 LED定時器310共同對應(yīng)于控制模塊130。相機消息解譯器302經(jīng)由MDDI主機222接收命令,并向MSM 204產(chǎn)生響應(yīng)消息。 相機消息解譯器302解譯消息,且將信息內(nèi)容路由到接口系統(tǒng)230內(nèi)的適當(dāng)區(qū)塊(其可稱 為MDDI相機接口裝置)。相機視頻接口 304接收來自相機320的圖像數(shù)據(jù),存儲所述圖像 數(shù)據(jù)并將圖像數(shù)據(jù)傳遞到MDDI主機222。I2C主控器303、馬達控制308和閃光/白色LED 定時器310共同形成相機控制區(qū)塊。在此情況下,I2C主控器306提供對相機320的管理 的控制,馬達控制308提供對鏡頭322的管理的控制(例如,鏡頭變焦功能),且閃光/白色 LED定時器310提供對閃光/白色LED 324的管理的控制(例如,閃光亮度和持續(xù)時間)。圖4A是MDDI主機222的圖。MDDI主機222包含微處理器接口 410、命令處理器 420、寄存器430、直接存儲器存取(DMA)接口 440、MDDI包構(gòu)造器450、數(shù)據(jù)握手模塊460和 數(shù)據(jù)墊(data pad) 470。微處理器接口 410與到達控制MDDI主機222的主機處理器的總線 介接。主機處理器使用微處理器接口 410來設(shè)置寄存器,對寄存器進行讀取,并向MDDI主 機222發(fā)布命令。微處理器接口 410查看地址值并將數(shù)據(jù)傳出到MDDI主機222內(nèi)適當(dāng)?shù)?模塊,包含傳遞對命令處理器420的寫入和對寄存器430內(nèi)寄存器值的讀取和寫入。
8
命令處理器420處理從主機處理器接收到的命令。所述命令包含對MDDI鏈路210 斷電,對MDDI鏈路210加電,重置MDDI主機222,和產(chǎn)生某些類型的數(shù)據(jù)包。寄存器430存儲針對MDDI鏈路210上數(shù)據(jù)的傳輸?shù)募拇嫫?。寄存?30內(nèi)的寄 存器控制MDDI鏈路210的行為以及MDDI主機222的配置。DMA接口 440向外部存儲器提供脈沖請求以從接口系統(tǒng)230接收信息,從而對 MDDI包構(gòu)造器450的數(shù)據(jù)進行緩沖。DMA接口 440分析鏈路列表節(jié)點標(biāo)頭的數(shù)據(jù)并調(diào)節(jié)指 針以讀取實際的包數(shù)據(jù)。DMA接口 440提供關(guān)于下一數(shù)據(jù)包的信息以發(fā)出到MDDI包構(gòu)造器 450。MDDI包構(gòu)造器450做出關(guān)于接下來發(fā)送什么包以及構(gòu)造將需要通過MDDI鏈路 222的物理包的決策。從內(nèi)部寄存器、計數(shù)器和由DMA接口 440檢索到的數(shù)據(jù)構(gòu)造包。當(dāng)將 經(jīng)由MDDI鏈路222輸出數(shù)據(jù)時,可從若干來源產(chǎn)生輸出的數(shù)據(jù)。包的第一來源是在MDDI 包構(gòu)造器450內(nèi)部產(chǎn)生的控制型包。示范性包包含子幀標(biāo)頭包,填充包和鏈路關(guān)閉包。包 的另一來源是經(jīng)由DMA接口 440。這些包包含經(jīng)由鏈接的列表傳遞的包。在其它實施例中, 視頻數(shù)據(jù)(當(dāng)外圍裝置包含視頻相機時)可直接傳遞到MDDI包構(gòu)造器450。不論包的來源 如何,所有包均經(jīng)由駐存在MDDI包構(gòu)造器450內(nèi)的CRC產(chǎn)生器系統(tǒng)處理。數(shù)據(jù)握手模塊460管理物理MDDI鏈路210。這是利用負責(zé)握手過程、數(shù)據(jù)輸出、往 返延遲測量和反向數(shù)據(jù)的狀態(tài)機實現(xiàn)的。數(shù)據(jù)握手模塊460接收來自MDDI包構(gòu)造器450 的數(shù)據(jù)并將數(shù)據(jù)傳出到數(shù)據(jù)墊470,數(shù)據(jù)墊470將數(shù)據(jù)移出到MDDI鏈路222上。圖4B說明待提供給MDDI鏈路210的包的流動。如上文所指示,可在內(nèi)部產(chǎn)生包, 從DMA接口 440接收包,或者包可以是直接接收的視頻包。內(nèi)部產(chǎn)生的包由控制包產(chǎn)生器 452產(chǎn)生。所有類型的包均經(jīng)由CRC產(chǎn)生器系統(tǒng)454傳遞到數(shù)據(jù)握手模塊460。數(shù)據(jù)握手 模塊460進而將包提供到數(shù)據(jù)墊470,數(shù)據(jù)墊470將數(shù)據(jù)放置在MDDI鏈路210上。圖4C說明由MDDI包構(gòu)造器450經(jīng)由MDDI鏈路210接收的包的流動。在此情況 下,包由數(shù)據(jù)墊470從MDDI鏈路210接收,接著傳遞到數(shù)據(jù)握手模塊460。數(shù)據(jù)握手模塊 460將數(shù)據(jù)傳遞到MDDI包構(gòu)造器450內(nèi)的CRC校驗器456。一旦CRC校驗器456已驗證傳 入的包的CRC,就將包提供到DMA接口 440以便放置在處理器總線上,供在數(shù)字?jǐn)?shù)據(jù)接口裝 置100內(nèi)進行分配。參看圖5和6描述示范性包類型。這些示范性包用于說明本發(fā)明,但不希望將本 發(fā)明僅限于這些類型的包。如下文所述的使用唯一模式的其它包類型和CRC字段可用于本 發(fā)明。圖5是根據(jù)VESA MDDI接口標(biāo)準(zhǔn)的子幀標(biāo)頭包格式500的圖。子幀標(biāo)頭包格式 500包含包長度字段510、包類型長度字段520、唯一字字段(unique word field) 530、子幀 標(biāo)頭參數(shù)字段540和CRC字段550。包長度字段510包含16位(2個字節(jié))值,其規(guī)定包中 除包長度字段510以外的字節(jié)的總數(shù)。包類型字段520包含16位無符號整數(shù),其規(guī)定包中 所含的信息的類型。唯一字字段530包含唯一的16位字。唯一字字段和包類型字段520 兩者經(jīng)辨認(rèn)以形成32位唯一模式來調(diào)整數(shù)據(jù)。也就是說,當(dāng)接收包時,MDDI包構(gòu)造器450 可基于所述唯一模式確定MDDI包構(gòu)造器450正處理數(shù)據(jù)包的什么部分或字段。子幀標(biāo)頭 參數(shù)字段540包含用于管理MDDI鏈路222的控制參數(shù)。CRC字段包含16位CRC值。圖6是視頻流包格式600的圖。視頻流包攜帶視頻數(shù)據(jù)以更新顯示器的矩形部分。視頻流包格式600包含包長度字段610、包類型字段615、客戶端ID字段620、視頻格 式字段625、像素數(shù)據(jù)屬性字段630、X左邊緣字段635、Y頂部邊緣字段640、X右邊緣字段 645、y底部邊緣字段650、X開始字段655、Y開始字段660、像素計數(shù)字段665、參數(shù)CRC字 段670、像素數(shù)據(jù)字段675,和像素數(shù)據(jù)CRC字段680。包長度字段610包含16位(2個字節(jié))值,其規(guī)定包中除包長度字段610以外的 字節(jié)的總數(shù)。包類型字段620包含2字節(jié)無符號整數(shù),其規(guī)定包中所含的信息的類型。字段620到665各自為2字節(jié)字段,其含有關(guān)于應(yīng)如何格式化視頻顯示的參數(shù)數(shù) 據(jù)。這些字段的特定定義可查閱VESA MDDI接口標(biāo)準(zhǔn)。參數(shù)CRC字段670是兩字節(jié)字段, 其含有通過處理字段610到665中的參數(shù)數(shù)據(jù)而產(chǎn)生的CRC值。像素數(shù)據(jù)字段675包含至多為包和像素計數(shù)字段的大小所允許的數(shù)量的任何數(shù) 量的像素數(shù)據(jù)。像素CRC字段680是兩字節(jié)字段,其含有通過處理像素數(shù)據(jù)字段675內(nèi)的 像素數(shù)據(jù)而產(chǎn)生的CRC值。經(jīng)由MDDI鏈路210發(fā)送的每個包將包含至少一個CRC字段,例如子幀標(biāo)頭包格式 500內(nèi)的CRC字段550。在一些較長的包中,包將包含兩個CRC字段,例如視頻流包格式600 內(nèi)的參數(shù)CRC字段670和像素CRC字段680。CRC從較大數(shù)據(jù)區(qū)塊(例如,網(wǎng)絡(luò)通信量包或計算機文件區(qū)塊)中產(chǎn)生較小數(shù)目的 位,以便檢測傳輸或存儲過程中的誤差。將CRC計算為待發(fā)送的數(shù)據(jù)的函數(shù),并在傳輸或存 儲之前進行附加(例如,與CRC字段550),并隨后進行驗證以確認(rèn)未發(fā)生變化。通過將包數(shù)據(jù)推送經(jīng)過CRC產(chǎn)生器(例如,CRC產(chǎn)生器系統(tǒng)454)以產(chǎn)生與所述包 數(shù)據(jù)相關(guān)聯(lián)的唯一 CRC值來計算CRC。CRC校驗器(例如,CRC校驗器456)基于所接收的 數(shù)據(jù)產(chǎn)生接收的數(shù)據(jù)CRC值。接著將接收的數(shù)據(jù)CRC值與發(fā)送的CRC值進行比較。如果兩 者匹配,那么認(rèn)為數(shù)據(jù)是有效數(shù)據(jù),否則就是產(chǎn)生了 CRC誤差。CRC較普遍,因為其易于實施在二進制硬件中,易于以算術(shù)方式進行分析,且尤其 擅長檢測由傳輸信道中的噪聲引起的一般誤差。相關(guān)領(lǐng)域的技術(shù)人員將了解CRC產(chǎn)生器的 特定實施方案。如圖5和6所說明,CRC字段出現(xiàn)在包的末尾(例如,CRC字段512和像素數(shù)據(jù)CRC 字段680)且有時在包中某些較關(guān)鍵的參數(shù)之后,所述參數(shù)可能具有相當(dāng)大的數(shù)據(jù)字段(例 如,參數(shù)CRC字段670),且因此傳遞期間誤差的可能性增加。在具有兩個CRC字段的包中, CRC產(chǎn)生器(當(dāng)僅使用一個時)在第一 CRC之后被重新初始化,使得長數(shù)據(jù)字段之后的CRC 計算不會受到包開始處的參數(shù)影響。含有多個位誤差的包產(chǎn)生較好CRC的可能性極小。在含有許多誤差的非常長的包 上,在具有誤差的包上檢測到較好CRC的可能性接近7. 6X 10_6。通過設(shè)計,MDDI鏈路將具 有非常低的誤差率或零誤差率。希望使用CRC來監(jiān)視鏈路的健康狀態(tài)而不希望檢測特定包 上的誤差來確定是否應(yīng)重新傳輸包。在示范性實施例中,已知用于CRC計算的多項式為CRC-16或X16+X15+X2+X0。圖 4D展示可用于實施本發(fā)明的CRC產(chǎn)生器454和CRC校驗器456的示范性實施方案。圖4D 中,就在傳遞在Tx_MDDI_Data_Before_CRC線上輸入的包的第一位之前將CRC寄存器471 初始化為值0x0001,接著將包的字節(jié)移位到寄存器(首先以LSB開始)中。請注意,此圖 中寄存器位編號對應(yīng)于所使用的多項式的階數(shù),而不是由MDDI使用的位位置。較有效的是在單一方向上移位CRC寄存器,且這導(dǎo)致CRC位15出現(xiàn)在MDDI CRC字段的位位置0處,且 CRC寄存器位14出現(xiàn)在MDDI CRC字段位位置1處等等,且直到到達MDDI位位置14為止。舉例來說,如果包內(nèi)容是OxOOOc、0x0046、0x000、0x0400、0x00、0x00、0x0000 (或 表示為字節(jié)序列0x0c、0x00、0x46、0x00、0x00、0x00、0x00、0x04、0x00、0x00、0x00、0x00) 且使用多路復(fù)用器472和473以及AND門474的輸入進行提交,那么Tx_MDDI_Data_With_ CRC線上的所得CRC輸出為0xd9aa (或表示為序列,如0xaa、0xd9)。當(dāng)CRC產(chǎn)生器454和CRC校驗器456配置為CRC校驗器時,將在Rx_MDDI_Data線 上接收到的CRC輸入到多路復(fù)用器472和異或(XOR)門476,且使用NOR門475、AND門474 和AND門477將其逐位地與CRC寄存器中建立的值進行比較。如果存在任何誤差(如由 AND門477輸出的),那么通過將門477的輸出連接到寄存器471的輸入,針對含有CRC誤 差的每個包遞增CRC —次。請注意,圖4D的圖表中所示的示范性電路可在給定的CHECK_ CRC_N0W窗口內(nèi)輸出一個以上CRC誤差信號(見圖4E)。因此,CRC誤差計數(shù)器通常僅對其 中CHECK_CRC_N0W為活動的每一間隔內(nèi)的第一 CRC誤差實例進行計數(shù)。如果配置為CRC產(chǎn) 生器,那么在與包結(jié)束一致的時間將CRC從CRC寄存器中時鐘輸出。圖4E和4F以圖形說明輸入和輸出信號以及啟用信號的時序。圖4E展示CRC的產(chǎn) 生和數(shù)據(jù)包的傳輸,其中狀態(tài)(0或1)為Gen_Reset、Check_CRC_Now、Generate_CRC_Now和 Sending_MDDI_Data 信號,以及 Tx_MDDI_Data_Before_CRC 和 Tx_MDDI_Data_With_CRC 信 號。圖4F展示接收數(shù)據(jù)包和校驗CRC值,其中狀態(tài)為Gen_Reset、Check_CRC_Now、Generate_ CRC_Now 和 Sending_MDDI_Data 信號,以及 Rx_MDDI_Data 和 CRC 誤差信號。包內(nèi)存在CRC帶來操作上的困難,且也提供了更有效地利用MDDI鏈路210的各種 機會。雖然論述內(nèi)容集中于在MDDI鏈路210的情境下CRC的用途,但本發(fā)明不限于MDDI 情境。本發(fā)明可應(yīng)用于使用CRC的任何類型的數(shù)字?jǐn)?shù)據(jù)傳輸鏈路。與CRC的使用相關(guān)聯(lián)的一個難題涉及鏈路初始化。當(dāng)鏈路啟動時,子幀標(biāo)頭包(例 如,子幀標(biāo)頭包500)將由MDDI主機222發(fā)送到MDDI客戶端206。當(dāng)鏈路初始化時,CRC校 驗器456通常將不會知道數(shù)據(jù)流內(nèi)數(shù)據(jù)的對準(zhǔn)。也就是說,其不會知道(例如)其正在處 理唯一字字段530還是CRC字段550內(nèi)的數(shù)據(jù)。因此,CRC校驗器456將需要繼續(xù)將數(shù)據(jù) 排隊到存儲器中,直到其辨認(rèn)出其在數(shù)據(jù)流內(nèi)何處為止。這導(dǎo)致效率較低且需要使用較多 存儲器和芯片面積來對數(shù)據(jù)進行排隊和存儲。在不知道在數(shù)據(jù)流內(nèi)的精確位置的情況下, CRC校驗器456將不能夠產(chǎn)生可與所接收的CRC進行比較的CRC來使所接收的數(shù)據(jù)生效。圖7是解決這些難題的CRC校驗器456的圖。CRC校驗器456包含唯一模式檢測 器710、CRC產(chǎn)生器720、CRC初始化器730和CRC驗證器740。唯一模式檢測器710檢測傳 入的數(shù)據(jù)流內(nèi)的唯一模式以識別數(shù)據(jù)流中的特定點。CRC產(chǎn)生器720是用于產(chǎn)生與所接收 的數(shù)據(jù)相關(guān)聯(lián)的CRC值的標(biāo)準(zhǔn)CRC產(chǎn)生器。CRC初始化器730從CRC產(chǎn)生器720抽取與唯 一模式和包長度相關(guān)聯(lián)的數(shù)據(jù)值。CRC驗證器740基于所接收的數(shù)據(jù)將所接收的CRC值與 由CRC產(chǎn)生器720產(chǎn)生的CRC值進行比較以使數(shù)據(jù)生效。圖8是用于初始化鏈路的方法800的流程圖,其例證如圖7描繪的CRC校驗器456 的用途。在一種方法中,假定子幀標(biāo)頭的包長度始終相同,且將預(yù)先計算的值載入CRC校驗 器中,所述預(yù)先計算的值是基于包長度、包類型和唯一字的部分CRC。一種替代方法支持包 長度可變的情形。在此情形下,可經(jīng)由預(yù)計算器抽取包長度以及唯一模式來產(chǎn)生一值,接著
11在已接收到唯一模式的時間點將所述值放置在CRC校驗器中。方法800開始于步驟810。在步驟810中,接收初始化或喚醒傳輸鏈路的請求。舉 例來說,MDDI客戶端206可從MDDI主機222接收初始化或喚醒MDDI鏈路210的請求。在 MDDI客戶端206內(nèi),CRC校驗器456將通過此鏈路喚醒請求而初始化。明確地說,CRC初始 化器730將通過所述請求而進行初始化。在步驟820中,向CRC產(chǎn)生器預(yù)先組裝與唯一模式和包長度字段510相關(guān)聯(lián)的數(shù) 據(jù)值,使得可由CRC產(chǎn)生器產(chǎn)生與唯一模式和包長度字段相關(guān)聯(lián)的CRC值。如上文所指示, 在一個實施例中,假定包長度字段是固定的。舉例來說,CRC初始化器730可將唯一模式和 包長度字段提供到CRC產(chǎn)生器720。在MDDI的情況下,唯一模式是與包含在包類型字段520 和唯一字字段530內(nèi)的數(shù)據(jù)相關(guān)聯(lián)的數(shù)據(jù)值。當(dāng)喚醒鏈路時這些字段的值將已知為先驗 的。因此,CRC初始化器730可將其存儲并處于一位置,以能夠在接收到喚醒鏈路請求時將 其提供到CRC產(chǎn)生器730。在替代方法中,不是將數(shù)據(jù)值提供到CRC產(chǎn)生器,而是可向CRC 校驗器預(yù)加載預(yù)先計算的CRC值,如果唯一模式和包長度字段已被提供到CRC產(chǎn)生器則會 由所述CRC產(chǎn)生器產(chǎn)生所述預(yù)先計算的CRC值。在步驟830中,禁用CRC產(chǎn)生器(例如,CRC產(chǎn)生器720)。禁用產(chǎn)生器以便不處理 更多數(shù)據(jù)(這會改變CRC值),直到接收到唯一模式和包長度字段為止。在步驟840中,監(jiān)視傳入的數(shù)據(jù)以檢查唯一數(shù)據(jù)模式的接收。舉例來說,唯一模式 檢測器710監(jiān)視從MDDI鏈路210接收的數(shù)據(jù)。在步驟850中,確定已接收到唯一模式。舉例來說,唯一模式檢測器710確定已接 收到包長度字段510、包類型字段520和唯一字字段530。在步驟860中,啟用CRC產(chǎn)生器。當(dāng)被啟用時,CRC產(chǎn)生器720將以使用預(yù)加載的 唯一模式產(chǎn)生的現(xiàn)有CRC值為基礎(chǔ)。因此,CRC產(chǎn)生器720立即與數(shù)據(jù)對準(zhǔn),且無需在存儲 器中對數(shù)據(jù)進行排隊或存儲。當(dāng)接收到CRC字段550中包含的CRC值時,CRC驗證器740可 將CRC字段550內(nèi)的值與由CRC產(chǎn)生器720產(chǎn)生的值進行比較以確定是否存在CRC誤差。 在步驟870中,方法800結(jié)束。通常,使用CRC值來確定傳輸期間傳輸鏈路上的問題是否破壞了數(shù)據(jù)。在本發(fā)明 的另一方面,使用CRC值來傳達與系統(tǒng)誤差和狀態(tài)有關(guān)的信息。以此方式,消息內(nèi)的CRC字 段可更有效地用于支持對傳輸鏈路問題以及系統(tǒng)狀態(tài)或誤差信息的識別。在本發(fā)明的一個實施例中,CRC字段數(shù)據(jù)被破壞簡單地指示傳輸數(shù)據(jù)的系統(tǒng)存在 故障,且因此所接收的數(shù)據(jù)可能存在問題。舉例來說,在一些情況下,經(jīng)由MDDI鏈路210傳 出的數(shù)據(jù)將被破壞,因為傳入MDDI包構(gòu)造器450中的數(shù)據(jù)未被足夠快地接收。即使可用于 包的數(shù)據(jù)不充分,MDDI規(guī)范還是規(guī)定仍應(yīng)發(fā)送包。因此,即使發(fā)送了包,數(shù)據(jù)還是可能無效 或在某一方面不充分。在此情況下,可有意破壞CRC值(例如參數(shù)CRC 670或像素數(shù)據(jù)CRC 680),使得 MDDI客戶端206可辨認(rèn)出發(fā)生了某一故障而削弱了所傳輸?shù)陌恼w性。在MDDI規(guī)范內(nèi), 存在一種告知MDDI客戶端206所述數(shù)據(jù)存在問題的方式?;蛘?,將需要發(fā)送另一消息,其 跟隨含有誤差的包,實際上指示“我所發(fā)送的上一個包有缺陷”。當(dāng)MDDI客戶端206接收CRC值已受到有意破壞的包時,其決定如何處理所述包。 可形成算法來檢測并確定如何處理具有受到有意破壞的CRC值的包。對于某些類型的包,
12MDDI客戶端206可簡單地記錄CRC誤差并繼續(xù)使用數(shù)據(jù)。然而在其它情形下,MDDI客戶端 206可丟棄所接收的包并請求新的包。舉例來說,在視頻包(例如,視頻流包600)內(nèi),如果像素數(shù)據(jù)CRC值680受到有意 破壞,那么MDDI客戶端220將不會通知MDDI客戶端220外部的邏輯包受到破壞。在此情 況下,所接收的數(shù)據(jù)可在提供任何種類的誤差通知之前被緩沖。沒有足夠的存儲器來緩沖 可能的所有的視頻數(shù)據(jù)(即,所有待顯示的像素數(shù)據(jù))。因此,一接收到像素數(shù)據(jù),就將其提 供到顯示器。因此,如果視頻信息中某處存在CRC誤差,那么阻止使用所述視頻信息已經(jīng)太 遲。在此情況下,所做的只是記錄已發(fā)生了問題。概括地說,如果受到有意破壞的CRC誤差 發(fā)生在像素數(shù)據(jù)中而不是參數(shù)數(shù)據(jù)中,那么MDDI客戶端簡單地將CRC誤差記錄在誤差計數(shù) 器中,但仍使用后續(xù)的像素數(shù)據(jù)。另一方面,如果參數(shù)CRC值受到有意破壞,那么MDDI客戶 端將不會使用像素數(shù)據(jù)。圖9是提供用于有意破壞CRC值的機制的循環(huán)冗余產(chǎn)生器系統(tǒng)454的圖。循環(huán)冗 余產(chǎn)生器系統(tǒng)454包含CRC產(chǎn)生器910、CRC破壞器920、誤差檢測器930和誤差值產(chǎn)生器 940。CRC產(chǎn)生器910基于待包含在將經(jīng)由數(shù)字傳輸鏈路(例如(但不限于)MDDI鏈路 210)傳輸?shù)臄?shù)據(jù)包中的數(shù)據(jù)產(chǎn)生CRC值。CRC破壞器920破壞由CRC產(chǎn)生器910產(chǎn)生的CRC值以傳達主機或遠程系統(tǒng)狀態(tài) 信息。舉例來說,如果接口系統(tǒng)230不能將數(shù)據(jù)足夠快地提供到MDDI主機222以適當(dāng)?shù)靥?充MDDI包,那么CRC破壞器920有意破壞待發(fā)送的包的CRC值。誤差檢測器930檢測主機系統(tǒng)(例如,或者是MDDI主機222)內(nèi)的誤差狀況,或基 于從接口系統(tǒng)230接收的信息而接收誤差狀況信息,并為CRC破壞器920提供有意破壞CRC 值的指令。在一個實施例中,誤差檢測器930僅檢測到出現(xiàn)了故障,但不確定特定的誤差狀 況。在另一實施例中,誤差檢測器930確定特定類型的誤差狀況。在后一實施例中,誤差檢 測器930將誤差的性質(zhì)傳達到誤差值產(chǎn)生器940。誤差值產(chǎn)生器940指令CRC破壞器940 用指示系統(tǒng)誤差或狀態(tài)狀況的類型的特定值代替由CRC產(chǎn)生器910產(chǎn)生的CRC值。當(dāng)破壞CRC值時,必須選擇算法以確保有意破壞不會產(chǎn)生可能對應(yīng)于有效數(shù)據(jù)且 因此將不會由CRC校驗器在傳輸鏈路的接收端作為唯一 CRC值而接收的CRC值。一種可能 的算法將是,識別那些不會由有效數(shù)據(jù)產(chǎn)生的CRC值,并使用那些值作為用于有意破壞CRC 值的唯一值?;诒疚牡慕淌?,相關(guān)領(lǐng)域的技術(shù)人員將確定包含在本發(fā)明的精神和范圍內(nèi) 的其它算法。圖10是CRC校驗器456的圖,所述CRC校驗器456可解譯來自CRC產(chǎn)生器系統(tǒng)454 的被有意破壞的CRC值。CRC校驗器456包含CRC誤差值檢測器1010、CRC產(chǎn)生器1020和 CRC驗證器1030。CRC誤差值檢測器1010檢測經(jīng)由數(shù)字傳輸鏈路接收的數(shù)據(jù)包的CRC字段 內(nèi)的值。CRC誤差值檢測器1010識別CRC值何時對應(yīng)于識別系統(tǒng)誤差狀況的受到有意破壞 的CRC值。當(dāng)識別出對應(yīng)于系統(tǒng)誤差狀況的CRC值時,CRC誤差值檢測器1010通知所述接 收客戶端(例如,MDDI客戶端206)的主機處理器。主機處理器接著將基于檢測到的誤差的 類型而采取行動。CRC產(chǎn)生器1020基于所接收的數(shù)據(jù)流產(chǎn)生CRC值。CRC驗證器1030檢 測基于所接收的數(shù)據(jù)流產(chǎn)生的CRC值與所接收的數(shù)據(jù)流內(nèi)發(fā)送的CRC值之間的差異。CRC 產(chǎn)生器1020和CRC驗證器1030以相關(guān)領(lǐng)域的技術(shù)人員將了解的傳統(tǒng)方式操作。
圖11是用于通過有意破壞CRC值而在數(shù)字傳輸鏈路上傳輸系統(tǒng)誤差信息的方法 1100的流程圖。方法1100開始于步驟1110。在步驟1110中,檢測主機系統(tǒng)或相關(guān)系統(tǒng)內(nèi) 的誤差。舉例來說,誤差檢測器930檢測MDDI主機222或接口系統(tǒng)230內(nèi)的誤差。在步驟 1120中,產(chǎn)生CRC值。舉例來說,CRC產(chǎn)生器910產(chǎn)生與待發(fā)送的包相關(guān)聯(lián)的數(shù)據(jù)的CRC值。 在步驟1130中,破壞CRC值。舉例來說,誤差檢測器930指令CRC破壞器920破壞CRC值。 在步驟1140中,方法1100結(jié)束。請注意,雖然已參照涉及MDDI的系統(tǒng)描述了方法1100,但 方法1100適用于其中使用CRC的任何數(shù)字傳輸系統(tǒng)。在本發(fā)明內(nèi),也可使用CRC字段來傳輸誤差代碼信息以表示誤差的類型。每當(dāng)在 主機與客戶端之間僅傳遞數(shù)據(jù)包和CRC時,就不提供誤差代碼。僅有的誤差是同步的損失。 否則,必須等待鏈路由于缺乏良好的數(shù)據(jù)傳遞路徑或管線而超時,且接著重置鏈路并繼續(xù) 下去。不幸的是,這樣做耗時且在某種程度上說效率低下。已開發(fā)出一種新的技術(shù)以用于一個實施例中,在所述技術(shù)中,使用包的CRC部分 來傳遞誤差代碼信息。也就是說,由所述處理器或處理數(shù)據(jù)傳遞的裝置產(chǎn)生一個或一個以 上誤差代碼,其指示通信處理或鏈路內(nèi)可能發(fā)生的特定的預(yù)定義的誤差或缺陷。當(dāng)遭遇誤 差時,產(chǎn)生適當(dāng)?shù)恼`差代碼并使用包的CRC的位傳遞所述誤差代碼。也就是說,用所需的 誤差代碼使CRC值過載或被覆寫,這可在接收端由監(jiān)視CRC字段值的誤差監(jiān)視器或校驗器 檢測到。對于其中誤差代碼由于某一原因與CRC值匹配的那些情況,傳遞所述誤差的補碼 (compliment)以防止混淆。在一個實施例中,為了提供穩(wěn)固的誤差警告和檢測系統(tǒng),可使用一系列包將誤差 代碼傳遞若干次,所述一系列包通常是在已檢測到誤差之后傳遞或發(fā)送的所有包。誤差代 碼的傳遞一直發(fā)生,直到產(chǎn)生誤差的條件被從系統(tǒng)中清除的時間點為止,在該時間點有規(guī) 則的CRC位在不通過另一值過載的情況下傳遞。這種使CRC值過載的技術(shù)提供對于系統(tǒng)誤差的更快速的響應(yīng),同時使用最少量的 額外位或字段。如圖12所示,展示使用誤差檢測器或檢測裝置1202 (例如,誤差檢測器930)的 CRC覆寫機構(gòu)或設(shè)備1200,其可形成先前描述或已知的其它電路的一部分,檢測通信鏈路 或過程內(nèi)誤差的出現(xiàn)或存在??尚纬蔀槠渌娐返囊徊糠只蚴褂美绮檎冶淼募夹g(shù)來存儲 預(yù)選的誤差消息的誤差代碼產(chǎn)生器或裝置1204(例如,誤差值產(chǎn)生器940)產(chǎn)生一個或一個 以上誤差代碼以指示已檢測為發(fā)生的特定的預(yù)定義的誤差或缺陷。易了解,裝置1202和 1204可視需要形成為單個電路或裝置,或形成為其它已知處理器和元件的已擬訂的步驟序 列的一部分。展示CRC值比較器或比較裝置1206 (例如,CRC驗證器1030)用于校驗以確定所 述選定的誤差代碼或多個選定的誤差代碼是否與正傳遞的CRC值相同。如果情況是這樣, 那么使用代碼補碼產(chǎn)生器或產(chǎn)生裝置來提供誤差代碼的補碼,以使得不會被誤認(rèn)為是原始 CRC模式或值,且不會混淆檢測方案或使檢測方案變復(fù)雜。誤差代碼選擇器或選擇裝置元件 或裝置1210接著選擇其希望插入或覆寫的誤差代碼或值,或視需要選擇其各自的補碼。誤 差代碼CRC覆寫器或覆寫機構(gòu)或裝置1212 (例如,CRC破壞器920)是接收數(shù)據(jù)流、包和待 插入的所需代碼并覆寫相應(yīng)的或適當(dāng)?shù)腃RC值,以便將所需的誤差代碼傳遞到接收裝置的
直ο
如所提及,誤差代碼可使用一系列包而傳遞若干次,因此覆寫器1212可利用存儲 器存儲元件以便在處理期間維持代碼的副本,或從可用于視需要或按要求地存儲或保存其 值的先前元件或其它已知的存儲位置調(diào)用這些代碼。圖13和14中額外詳細地展示圖12的覆寫機構(gòu)正實施的大體處理。圖13中,在 步驟1302中,在通信數(shù)據(jù)或過程中檢測一個或一個以上誤差,且在步驟1304中,選擇誤差 代碼以指示此狀況。同時,或在適當(dāng)?shù)臅r間點,在步驟1306中校驗待替代的CRC值,且在步 驟1308中將其與所需的誤差代碼進行比較。如之前所論述,此比較結(jié)果是關(guān)于所需的代碼 或其它代表值是否將與存在的CRC值相同的判定。如果情況是這樣,那么處理過程繼續(xù)到 步驟1312,在步驟1312處,選擇補碼(或視需要,在一些情況下為另一代表值)作為要插入 的代碼。一旦在步驟1310和1314中已確定要插入什么誤差代碼或值,就選擇所述適當(dāng)?shù)?代碼進行插入。出于清楚的目的將這些步驟說明為單獨的,但其通常表示基于步驟1308決 策的輸出而作出的單一選擇。最后,在步驟1316中,在CRC位置覆寫適當(dāng)?shù)闹狄怨┡c作為 過程的目標(biāo)的包一起傳遞。在包接收側(cè),如圖14所示,在步驟1422中監(jiān)視包CRC值。通常,CRC值由系統(tǒng)內(nèi) 一個或一個以上過程監(jiān)視以確定數(shù)據(jù)傳遞中是否已發(fā)生誤差,以及是請求一個包或多個包 的重新傳輸,還是抑制進一步的操作等等,其中一些上文進行了論述。作為這種監(jiān)視的一部 分,也可使用所述信息將值與已知或預(yù)選的誤差代碼或代表值進行比較,并檢測誤差的存 在。或者,可實施單獨的誤差檢測過程和監(jiān)視。如果似乎存在代碼,那么在步驟1424中提 取或以另外的方式記錄所述代碼以進行進一步處理。在步驟1426中可確定其是實際的代 碼還是補碼,在補碼的情況下,可使用額外步驟1428將所述值翻譯為所需的代碼值。在任 一情況下,接著使用所得的所提取的代碼、補碼或其它恢復(fù)的值在步驟1430中檢測所傳輸 的代碼中已出現(xiàn)什么誤差。結(jié)論已提供本發(fā)明的示范性實施例。本發(fā)明不限于這些實例。本文提供這些實例是出 于說明的目的而不是限制的目的。相關(guān)領(lǐng)域的技術(shù)人員基于本文包含的教示將了解替代形 式(包含本文描述的內(nèi)容的等效物、延伸物、變化形式、偏差形式等)。這些替代形式在本發(fā) 明的范圍和精神內(nèi)。本說明書中提及的所有公開案、專利和專利申請案表明本發(fā)明所屬領(lǐng)域的技術(shù)人 員的技術(shù)水平,且以引用的方式并入本文中,達到如同表明每一個別公開案、專利或?qū)@?請案均明確且個別地以引用的方式并入的程度。
權(quán)利要求
一種循環(huán)冗余校驗CRC校驗器系統(tǒng),包括主機循環(huán)冗余校驗CRC生成器和CRC破壞器,其中,所述CRC生成器用于根據(jù)所發(fā)送的數(shù)據(jù)流生成CRC值,所述CRC破壞器用于將所生成的CRC值破壞成特定的破壞后的CRC誤差值,其中,所述破壞后的CRC誤差值與所述主機檢測出的特定系統(tǒng)誤差或狀態(tài)狀況相對應(yīng);在所述主機處的選擇器,用于在所述所發(fā)送的數(shù)據(jù)流中發(fā)送數(shù)據(jù)分組的CRC字段中的所生成的CRC值或所述破壞后的CRC誤差值;在客戶端處的客戶端生成器,用于根據(jù)從所述主機接收的數(shù)據(jù)流生成客戶端CRC唯一模式;在所述客戶端處的CRC驗證器,用于通過比較所述客戶端CRC唯一模式與源自所述主機的所生成的CRC值來檢測誤差狀況;在所述客戶端處的CRC誤差值生成器,用于檢測所述主機生成的與所述特定系統(tǒng)誤差或狀態(tài)狀況相對應(yīng)的所述破壞后的CRC誤差值;在所述客戶端處的指導(dǎo)器,用于指導(dǎo)所述客戶端根據(jù)所述CRC誤差值檢測器檢測出的所述破壞后的CRC誤差值采取特定校正動作。
2.根據(jù)權(quán)利要求1所述的循環(huán)冗余校驗CRC校驗器,其中,所述誤差狀況包括所述數(shù)據(jù) 流中的誤差。
3.根據(jù)權(quán)利要求1所述的循環(huán)冗余校驗CRC校驗器,其中,所述特定誤差或狀態(tài)狀況包 括源自包含如下的群組的至少一個成員對傳輸鏈路信息的識別、對系統(tǒng)狀態(tài)信息的識別和對系統(tǒng)誤差信息的識別。
4.根據(jù)權(quán)利要求1所述的循環(huán)冗余校驗CRC校驗器,還包括 在所述客戶端處的記錄器,用于記錄所述破壞后的CRC誤差值。
5.根據(jù)權(quán)利要求1所述的循環(huán)冗余校驗CRC校驗器,還包括所述客戶端處的誤差檢測器,用于檢測所述特定系統(tǒng)誤差或狀態(tài)狀況。
6.根據(jù)權(quán)利要求1所述的循環(huán)冗余校驗CRC校驗器,其中,所述數(shù)字傳輸鏈路是MDDI 傳輸鏈路。
7.一種用于在數(shù)字傳輸系統(tǒng)中校驗循環(huán)冗余校驗CRC的方法,所述方法包括如下步驟根據(jù)所發(fā)送的數(shù)據(jù)流生成CRC值,所述CRC破壞器用于將所生成的CRC值破壞成特定 的破壞后的CRC誤差值,其中,所述破壞后的CRC誤差值與所述主機檢測出的特定系統(tǒng)誤差 或狀態(tài)狀況相對應(yīng);通過所述主機選擇所生成的CRC值或所述破壞后的CRC誤差值,以在所發(fā)送的數(shù)據(jù)流 中的數(shù)據(jù)分組的CRC字段中進行傳輸;根據(jù)從所述主機接收的數(shù)據(jù)流,在所述客戶端處生成客戶端CRC唯一模式; 通過比較所述客戶端CRC唯一模式與源自所述主機的所生成的CRC值,在所述客戶端 處檢測誤差狀況;在所述客戶端處檢測所述主機生成的所述破壞后的CRC誤差值,其中,所述破壞后的 CRC誤差值與所述特定系統(tǒng)誤差或狀態(tài)狀況相對應(yīng);指導(dǎo)所述客戶端根據(jù)檢測出的所述破壞后的CRC誤差值采取特定校正動作。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述誤差狀況包括所述數(shù)據(jù)流中的誤差。2
9.根據(jù)權(quán)利要求7所述的方法,其中,所述特定誤差或狀態(tài)狀況包括源自包含如下的 群組的至少一個成員對傳輸鏈路信息的識別、對系統(tǒng)狀態(tài)信息的識別和對系統(tǒng)誤差信息的識別。
10.根據(jù)權(quán)利要求7所述的方法,還包括如下步驟 經(jīng)由所述客戶端記錄所述破壞后的CRC誤差值。
11.根據(jù)權(quán)利要求7所述的方法,還包括如下步驟 經(jīng)由所述主機檢測所述特定系統(tǒng)誤差或狀態(tài)狀況。
12.根據(jù)權(quán)利要求7所述的方法,其中,所述數(shù)字傳輸鏈路是MDDI傳輸鏈路。
13.一種用于存儲可執(zhí)行程序指令以實現(xiàn)一種用于在數(shù)據(jù)傳輸系統(tǒng)中進行循環(huán)冗余校 驗CRC的校驗器系統(tǒng)的非暫時性計算機可執(zhí)行介質(zhì),所述存儲介質(zhì)包括用于使得生成主機循環(huán)冗余校驗CRC和將所生成的CRC值破壞成特定的破壞后的CRC 誤差值的程序指令,其中,生成所述主機循環(huán)冗余校驗根據(jù)所發(fā)送的數(shù)據(jù)流來生成CRC值, 所述破壞后的CRC誤差值與所述主機檢測出的特定系統(tǒng)誤差或狀態(tài)狀況相對應(yīng);用于使得經(jīng)由所述主機選擇所生成的CRC值或所述破壞后的CRC誤差值以在所發(fā)送的 數(shù)據(jù)流中的數(shù)據(jù)分組的CRC字段中傳輸?shù)某绦蛑噶?;用于使得根?jù)從所述主機接收的數(shù)據(jù)流在所述客戶端處生成客戶端CRC唯一模式的 程序指令;用于通過比較所述客戶端CRC唯一模式與源自所述主機的所生成的CRC值在所述客戶 端處檢測誤差狀況的程序指令;用于在所述客戶端處檢測所述主機生成的所述破壞后的CRC誤差值的程序指令,其 中,所述破壞后的CRC誤差值與所述特定系統(tǒng)誤差或狀態(tài)狀況相對應(yīng);用于指導(dǎo)所述客戶端根據(jù)檢測出的所述破壞后的CRC誤差值采取特定校正動作的程 序指令。
14.根據(jù)權(quán)利要求13所述的非暫時性計算機可執(zhí)行介質(zhì),其中,所述誤差狀況包括所 述數(shù)據(jù)流中的誤差。
15.根據(jù)權(quán)利要求13所述的非暫時性計算機可執(zhí)行介質(zhì),其中,所述特定誤差或狀態(tài) 狀況包括源自包含如下的群組的至少一個成員對傳輸鏈路信息的識別、對系統(tǒng)狀態(tài)信息的識別和對系統(tǒng)誤差信息的識別。
16.根據(jù)權(quán)利要求13所述的非暫時性計算機可執(zhí)行介質(zhì),還包括 用于使得經(jīng)由所述客戶端記錄所述破壞后的CRC誤差值的程序指令。
17.根據(jù)權(quán)利要求13所述的非暫時性計算機可執(zhí)行介質(zhì),還包括用于使得經(jīng)由所述主機檢測所述特定系統(tǒng)誤差或狀態(tài)狀況的程序指令。
18.根據(jù)權(quán)利要求13所述的非暫時性計算機可執(zhí)行介質(zhì),其中,所述數(shù)字傳輸鏈路是 MDDI傳輸鏈路。
全文摘要
本發(fā)明提供用于實施循環(huán)冗余校驗以改進鏈路初始化處理并交換系統(tǒng)誤差信息的系統(tǒng)和方法。在一個方面,提供循環(huán)冗余校驗(CRC)校驗器,其包含唯一模式檢測器、CRC產(chǎn)生器、CRC初始化器和CRC驗證器。所述CRC校驗器預(yù)填充所述CRC產(chǎn)生器以獲得唯一模式。當(dāng)在經(jīng)由數(shù)字傳輸鏈路所接收的數(shù)據(jù)流內(nèi)接收到所述唯一模式時,所述CRC校驗器繼續(xù)校驗CRC而無需對數(shù)據(jù)進行排隊和存儲。在另一方面,提供CRC產(chǎn)生器系統(tǒng),其有意地破壞CRC值以傳輸系統(tǒng)誤差信息。所述CRC產(chǎn)生器系統(tǒng)包含CRC產(chǎn)生器、CRC破壞器、誤差檢測器和誤差值產(chǎn)生器。在一個實例中,所述數(shù)字傳輸鏈路是MDDI鏈路。
文檔編號H04L1/00GK101931503SQ20101029391
公開日2010年12月29日 申請日期2005年11月23日 優(yōu)先權(quán)日2004年11月24日
發(fā)明者喬治·A·威利, 布賴恩·斯蒂爾 申請人:高通股份有限公司