專利名稱:用于實施循環(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 Digital Interface, 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)生器,所以 當在經(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ù)來產(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ā)明。圖中,相似參考標號表示相同或功能類似的元件。元件第一 次出現(xiàn)的圖由相應(yīng)參考標號中最左數(shù)位表示。
圖1是耦合到數(shù)字裝置和外圍裝置的數(shù)字數(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是子幀標頭包格式的圖。
圖6是視頻流包格式的圖。圖7是CRC校驗器的圖。
圖8是用于初始化鏈路的方法的流程圖,所述方法涉及預(yù)填充CRC產(chǎn)生器。 圖9是提供用于有意破壞CRC值的機制的CRC產(chǎn)生器系統(tǒng)的圖。 圖IO是可解譯被有意破壞的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)或特性。此外,這些短語不一定是指同一實施例。此外,當結(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ù)字數(shù)據(jù)裝置接口 100的圖。數(shù)字裝 置150可包含(但不限于)蜂窩式電話、個人數(shù)據(jù)助理、智能電話或個人計算機。大體 上說,數(shù)字裝置150可包含充當針對數(shù)字指令和處理數(shù)字演示數(shù)據(jù)(digital presentation data)的處理單元的任何類型的數(shù)字裝置。數(shù)字裝置150包含系統(tǒng)控制器160和鏈路控制器170。
外圍裝置180可包含(但不限于)相機、條形碼讀出器、圖像掃描儀、音頻裝置和 傳感器。大體上說,外圍裝置180可包含任何類型的音頻、視頻或圖像捕獲和顯示裝置, 其中在外圍裝置與處理單元之間交換數(shù)字演示數(shù)據(jù)。外圍裝置180包含控制區(qū)塊190。 例如,當外圍裝置180是相機時,控制區(qū)塊190可包含(但不限于)鏡頭控制、閃光或 白色LED控制及快門控制。
數(shù)字演示數(shù)據(jù)可包含表示音頻、圖像和多媒體數(shù)據(jù)的數(shù)字數(shù)據(jù)。
數(shù)字數(shù)據(jù)接口裝置IOO經(jīng)由通信鏈路105以高速率傳遞數(shù)字演示數(shù)據(jù)。在一個實例 中,可使用MDDI通信鏈路,其支持最大帶寬為每秒3.2吉比特的雙向數(shù)據(jù)傳遞。視通 信鏈路而定,可支持數(shù)據(jù)傳遞的高于或低于此示范性速率的其它高速率。數(shù)字數(shù)據(jù)接口 裝置IOO包含消息解譯器模塊110、內(nèi)容模塊120、控制模塊130和鏈路控制器140。
位于數(shù)字數(shù)據(jù)接口 100內(nèi)的鏈路控制器140和位于數(shù)字裝置150內(nèi)的鏈路控制器170 建立通信鏈路105。鏈路控制器140和鏈路控制器170可以是MDDI鏈路控制器。
視頻電子標準協(xié)會("VESA") MDDI標準(其全文以引用的方式并入本文中)描述 允許便攜式裝置將來自小型便攜式裝置的數(shù)字圖像傳送到較大的外部顯示器的高速數(shù)字 包接口的要求。MDDI應(yīng)用微型連接器系統(tǒng)和對于將便攜式計算、通信和娛樂裝置鏈接 到例如可佩帶的微顯示器的新興產(chǎn)品來說比較理想的細撓性電纜。其還包含關(guān)于如何簡 化主機處理器與顯示裝置之間的連接的信息,以便減少成本并增加這些連接的可靠性。 鏈路控制器140和170基于VESAMDDI標準來建立通信路徑105。
2004年7月6日頒予Zou等人的題為"Gewem"'wg and/mpZewzew">ig a Commwm'ccm'ow /VotocoZ 她r/ace/or H!'gA D加S!.,Z 7>,/er,,的第6,760,772號美國專利(772 專利)描述一種數(shù)據(jù)接口,其使用包結(jié)構(gòu)經(jīng)由通信路徑在主機與客戶端之間傳遞數(shù)字數(shù) 據(jù),其中所述包結(jié)構(gòu)鏈接在一起以形成針對演示數(shù)據(jù)的通信協(xié)議。'772專利中教示的本 發(fā)明的實施例針對MDDI接口。鏈路控制器(例如,鏈路控制器140和170)使用信號 協(xié)議,所述鏈路控制器經(jīng)配置以產(chǎn)生、傳輸并接收形成通信協(xié)議的包,并將數(shù)字數(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ù)字數(shù)據(jù)接口裝置IOO與數(shù)字裝置150之間交換確認 消息的單一鏈路。鏈路控制器140和170另外可支持其它類型的接口,例如以太網(wǎng)或 RS-232串行端口接口。相關(guān)領(lǐng)域的技術(shù)人員基于本文的教示將了解可支持額外接口。
在數(shù)字數(shù)據(jù)接口裝置100內(nèi),消息解譯器模塊IIO接收來自系統(tǒng)控制器160的命令, 并經(jīng)由通信鏈路105向系統(tǒng)控制器160產(chǎn)生響應(yīng)消息,解譯命令消息,且將命令的信息 內(nèi)容路由到數(shù)字數(shù)據(jù)接口裝置100內(nèi)的適當模塊。
內(nèi)容模塊120接收來自外圍裝置180的數(shù)據(jù),存儲所述數(shù)據(jù)并將數(shù)據(jù)經(jīng)由通信鏈路 105傳遞到系統(tǒng)控制器160。
控制模塊130接收來自消息解譯器130的信息,并將信息路由到外圍裝置180的控 制區(qū)塊190??刂颇K130還可接收來自控制區(qū)塊190的信息,并將信息路由到消息解 譯器模塊110。
圖2是具有上翻蓋部分和下翻蓋部分的蜂窩式電話200的方框圖,所述蜂窩式電話 200使用MDDI接口來提供位于上翻蓋和下翻蓋中的組件之間的高速數(shù)據(jù)通信。以下關(guān) 于蜂窩式電話200的論述內(nèi)容提供說明性實例,其進一步展示數(shù)字數(shù)據(jù)接口裝置100的 實用性并提供關(guān)于其實施方案和用途的額外細節(jié)?;诒疚牡恼撌鰞?nèi)容,數(shù)字數(shù)據(jù)接口 裝置IOO與其它裝置(例如,個人數(shù)字助理和其它類型的移動電話) 一起使用將是顯而 易見的且在本發(fā)明的精神和范圍內(nèi)。
參看圖2,蜂窩式電話200的下翻蓋部分202包含移動臺調(diào)制解調(diào)器(MSM)基帶 芯片204。 MSM 204是數(shù)字基帶控制器。蜂窩式電話200的上翻蓋部分214包含液晶顯 示器(LCD)模塊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鏈路的主控制器。在蜂窩式電話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中的適當區(qū)塊以進行處理。
類似地,MDDI鏈路212將LCD模塊216連接到MSM 204。 MDDI鏈路212將集成 到MSM 204中的MDDI主機208與集成到耦合到LCD模塊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ù)以供LCD模塊216 使用。
接口系統(tǒng)230和232表示數(shù)字數(shù)據(jù)裝置接口 IOO的不同實施例。在接口系統(tǒng)230的 情況下,將實施數(shù)字數(shù)據(jù)裝置接口 IOO元件以支持相機圖像的數(shù)據(jù)傳遞和相機的相機控 制功能。在接口系統(tǒng)232的情況下,將實施數(shù)字數(shù)據(jù)裝置接口 IOO元件以支持到達LCD 的數(shù)據(jù)顯示和對LCD的控制功能。進一步解釋接口系統(tǒng)230以說明當用于具有相機的蜂 窩式電話(例如,具有相機模塊218的蜂窩式電話200)中時數(shù)字數(shù)據(jù)裝置接口 100的 實施例。
圖1中的裝置與蜂窩式電話200之間的關(guān)系如下。數(shù)字數(shù)據(jù)裝置接口 IOO由接口系 統(tǒng)230表示。鏈路控制器140由MDDI主機222表示。外圍裝置180由相機模塊218表 示。系統(tǒng)控制器160由MSM204表示,且鏈路控制器170由MDDI客戶端206表示。
圖3是上翻蓋214的圖且提供關(guān)于接口系統(tǒng)230的更多細節(jié)以突出如在具有相機的 蜂窩式電話內(nèi)使用的數(shù)字數(shù)據(jù)裝置接口 IOO的示范性實施例。接口系統(tǒng)230包含MDDI 主機222、相機消息解譯器302、相機視頻接口 304、 I2C主控器303、馬達控制308和 閃光/白色LED定時器310。 12C總線是通常使用的控制總線,其提供電路之間的通信鏈 路。I2C總線由Philips Electronics N.V.在20世紀80年代開發(fā)。
回想一下,接口系統(tǒng)230對應(yīng)于數(shù)字數(shù)據(jù)裝置接口 100。接口系統(tǒng)230的組件以以 下方式對應(yīng)于數(shù)字數(shù)據(jù)裝置接口 IOO的組件。相機消息解譯器302對應(yīng)于消息解譯器模 塊100。相機視頻接口 304對應(yīng)于內(nèi)容模塊120。 12C主控器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)的適當區(qū)塊(其可稱為MDDI相機接口裝置)。相機視頻接口 304接收來自相機320的圖像數(shù)據(jù),存儲所述 圖像數(shù)據(jù)并將圖像數(shù)據(jù)傳遞到MDDI主機222。 I2C主控器306、馬達控制308和閃光/ 白色LED定時器310共同形成相機控制區(qū)塊。在此情況下,12C主控器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)適當?shù)哪K,包含傳遞對命令處理器420的寫入和對寄存器430內(nèi)寄 存器值的讀取和寫入。
命令處理器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é)點標頭的數(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)造包。當 將經(jīng)由MDDI鏈路222輸出數(shù)據(jù)時,可從若干來源產(chǎn)生輸出的數(shù)據(jù)。包的第一來源是在 MDDI包構(gòu)造器450內(nèi)部產(chǎn)生的控制型包。示范性包包含子幀標頭包,填充包和鏈路關(guān) 閉包。包的另一來源是經(jīng)由DMA接口 440。這些包包含經(jīng)由鏈接的列表傳遞的包。在其 它實施例中,視頻數(shù)據(jù)(當外圍裝置包含視頻相機時)可直接傳遞到MDDI包構(gòu)造器450。 不論包的來源如何,所有包均經(jīng)由駐存在MDDI包構(gòu)造器450內(nèi)的CRC產(chǎn)生器系統(tǒng)處理。
數(shù)據(jù)握手模塊460管理物理MDDI鏈路210。這是利用負責握手過程、數(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ù)字數(shù)據(jù)接口裝置100內(nèi)進行分配。
參看圖5和6描述示范性包類型。這些示范性包用于說明本發(fā)明,但不希望將本發(fā) 明僅限于這些類型的包。如下文所述的使用唯一模式的其它包類型和CRC字段可用于本 發(fā)明。
圖5是根據(jù)VESAMDDI接口標準的子幀標頭包格式500的圖。子幀標頭包格式500 包含包長度字段510、包類型長度字段520、唯一字字段(unique word field) 530、子幀 標頭參數(shù)字段540和CRC字段550。包長度字段510包含16位(2個字節(jié))值,其規(guī)定 包中除包長度字段510以外的字節(jié)的總數(shù)。包類型字段520包含16位無符號整數(shù),其規(guī) 定包中所含的信息的類型。唯一字字段530包含唯一的16位字。唯一字字段和包類型字 段520兩者經(jīng)辨認以形成32位唯一模式來調(diào)整數(shù)據(jù)。也就是說,當接收包時,MDDI包 構(gòu)造器450可基于所述唯一模式確定MDDI包構(gòu)造器450正處理數(shù)據(jù)包的什么部分或字 段。子幀標頭參數(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ī)定包中所含的信息的類型。
11字段620到665各自為2字節(jié)字段,其含有關(guān)于應(yīng)如何格式化視頻顯示的參數(shù)數(shù)據(jù)。 這些字段的特定定義可査閱VESAMDDI接口標準。參數(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字段,例如子幀標頭包格式 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),并隨后進行驗證以確認未發(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值進行比 較。如果兩者匹配,那么認為數(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ù)可能具有相當大的數(shù)據(jù) 字段(例如,參數(shù)CRC字段670),且因此傳遞期間誤差的可能性增加。在具有兩個CRC 字段的包中,CRC產(chǎn)生器(當僅使用一個時)在第一CRC之后被重新初始化,使得長數(shù) 據(jù)字段之后的CRC計算不會受到包開始處的參數(shù)影響。
含有多個位誤差的包產(chǎn)生較好CRC的可能性極小。在含有許多誤差的非常長的包上, 在具有誤差的包上檢測到較好CRC的可能性接近7.6 X 10—6。通過設(shè)計,MDDI鏈路將 具有非常低的誤差率或零誤差率。希望使用CRC來監(jiān)視鏈路的健康狀態(tài)而不希望檢測特 定包上的誤差來確定是否應(yīng)重新傳輸包。
在示范性實施例中,已知用于CRC計算的多項式為CRC-16或X16 + X15 + X2 + XO。 圖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)在MDDICRC字段位位置1處等等,且直 到到達MDDI位位置14為止。
舉例來說,如果包內(nèi)容是0x000c、 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—W池—CRC線上的所得CRC輸出為0xd9aa (或表示為序列,如Oxaa、 0xd9)。
當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—NOW窗口內(nèi)輸出一個以上CRC誤差信號(見圖4E)。因此, CRC誤差計數(shù)器通常僅對其中CHECK—CRC—NOW為活動的每一間隔內(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ù)字數(shù)據(jù)傳輸鏈路。
與CRC的使用相關(guān)聯(lián)的一個難題涉及鏈路初始化。當鏈路啟動時,子幀標頭包(例如,子幀標頭包500)將由MDDI主機222發(fā)送到MDDI客戶端206。當鏈路初始化時, CRC校驗器456通常將不會知道數(shù)據(jù)流內(nèi)數(shù)據(jù)的對準。也就是說,其不會知道(例如) 其正在處理唯一字字段530還是CRC字段550內(nèi)的數(shù)據(jù)。因此,CRC校驗器456將需要 繼續(xù)將數(shù)據(jù)排隊到存儲器中,直到其辨認出其在數(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值的標準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 的用途。在一種方法中,假定子幀標頭的包長度始終相同,且將預(yù)先計算的值載入CRC 校驗器中,所述預(yù)先計算的值是基于包長度、包類型和唯一字的部分CRC。 一種替代方 法支持包長度可變的情形。在此情形下,可經(jīng)由預(yù)計算器抽取包長度以及唯一模式來產(chǎn) 生一值,接著在已接收到唯一模式的時間點將所述值放置在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ù)值。當喚醒鏈路時這些字段的 值將已知為先驗的。因此,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)生器。當被啟用時,CRC產(chǎn)生器720將以使用預(yù)加載的 唯一模式產(chǎn)生的現(xiàn)有CRC值為基礎(chǔ)。因此,CRC產(chǎn)生器720立即與數(shù)據(jù)對準,且無需在 存儲器中對數(shù)據(jù)進行排隊或存儲。當接收到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可辨認出發(fā)生了某一故障而削弱了所傳輸?shù)陌恼w性。在MDDI規(guī) 范內(nèi),存在一種告知MDDI客戶端206所述數(shù)據(jù)存在問題的方式?;蛘撸瑢⑿枰l(fā)送另 一消息,其跟隨含有誤差的包,實際上指示"我所發(fā)送的上一個包有缺陷"。
當MDDI客戶端206接收CRC值已受到有意破壞的包時,其決定如何處理所述包。 可形成算法來檢測并確定如何處理具有受到有意破壞的CRC值的包。對于某些類型的包, MDDI客戶端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以適當 地填充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值。
當破壞CRC值時,必須選擇算法以確保有意破壞不會產(chǎn)生可能對應(yīng)于有效數(shù)據(jù)且因 此將不會由CRC校驗器在傳輸鏈路的接收端作為唯一 CRC值而接收的CRC值。 一種可 能的算法將是,識別那些不會由有效數(shù)據(jù)產(chǎn)生的CRC值,并使用那些值作為用于有意破 壞CRC值的唯一值?;诒疚牡慕淌荆嚓P(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ù)
16據(jù)包的CRC字段內(nèi)的值。CRC誤差值檢測器1010識別CRC值何時對應(yīng)于識別系統(tǒng)誤差 狀況的受到有意破壞的CRC值。當識別出對應(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)誤差信息的方法 IIOO的流程圖。方法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字段來傳輸誤差代碼信息以表示誤差的類型。每當在主 機與客戶端之間僅傳遞數(shù)據(jù)包和CRC時,就不提供誤差代碼。僅有的誤差是同步的損失。
否則,必須等待鏈路由于缺乏良好的數(shù)據(jù)傳遞路徑或管線而超時,且接著重置鏈路并繼 續(xù)下去。不幸的是,這樣做耗時且在某種程度上說效率低下。
己開發(fā)出一種新的技術(shù)以用于一個實施例中,在所述技術(shù)中,使用包的CRC部分來 傳遞誤差代碼信息。也就是說,由所述處理器或處理數(shù)據(jù)傳遞的裝置產(chǎn)生一個或一個以 上誤差代碼,其指示通信處理或鏈路內(nèi)可能發(fā)生的特定的預(yù)定義的誤差或缺陷。當遭遇 誤差時,產(chǎn)生適當?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)生裝置來提供誤差代碼的補碼,以使得不會被誤認為是原 始CRC模式或值,且不會混淆檢測方案或使檢測方案變復(fù)雜。誤差代碼選擇器或選擇裝 置元件或裝置1210接著選擇其希望插入或覆寫的誤差代碼或值,或視需要選擇其各自的 補碼。誤差代碼CRC覆寫器或覆寫機構(gòu)或裝置1212 (例如,CRC破壞器920)是接收數(shù) 據(jù)流、包和待插入的所需代碼并覆寫相應(yīng)的或適當?shù)腃RC值,以便將所需的誤差代碼傳 遞到接收裝置的裝置。
如所提及,誤差代碼可使用一系列包而傳遞若干次,因此覆寫器1212可利用存儲器 存儲元件以便在處理期間維持代碼的副本,或從可用于視需要或按要求地存儲或保存其 值的先前元件或其它己知的存儲位置調(diào)用這些代碼。
圖13和14中額外詳細地展示圖12的覆寫機構(gòu)正實施的大體處理。圖13中,在步 驟1302中,在通信數(shù)據(jù)或過程中檢測一個或一個以上誤差,且在步驟1304中,選擇誤 差代碼以指示此狀況。同時,或在適當?shù)臅r間點,^步驟1306中校驗待替代的CRC值, 且在步驟1308中將其與所需的誤差代碼進行比較。如之前所論述,此比較結(jié)果是關(guān)于所 需的代碼或其它代表值是否將與存在的CRC值相同的判定。如果情況是這樣,那么處理 過程繼續(xù)到步驟1312,在步驟1312處,選擇補碼(或視需要,在一些情況下為另一代 表值)作為要插入的代碼。 一旦在步驟1310和1314中已確定要插入什么誤差代碼或值, 就選擇所述適當?shù)拇a進行插入。出于清楚的目的將這些步驟說明為單獨的,但其通常 表示基于步驟1308決策的輸出而作出的單一選擇。最后,在步驟1316中,在CRC位置 覆寫適當?shù)闹狄怨┡c作為過程的目標的包一起傳遞。
在包接收側(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中檢測所傳輸?shù)拇a中已出現(xiàn)什么誤差。 祭論
已提供本發(fā)明的示范性實施例。本發(fā)明不限于這些實例。本文提供這些實例是出于 說明的目的而不是限制的目的。相關(guān)領(lǐng)域的技術(shù)人員基于本文包含的教示將了解替代形 式(包含本文描述的內(nèi)容的等效物、延伸物、變化形式、偏差形式等)。這些替代形式在 本發(fā)明的范圍和精神內(nèi)。
本說明書中提及的所有公開案、專利和專利申請案表明本發(fā)明所屬領(lǐng)域的技術(shù)人員 的技術(shù)水平,且以引用的方式并入本文中,達到如同表明每一個別公開案、專利或?qū)@?申請案均明確且個別地以引用的方式并入的程度。
權(quán)利要求
1. 一種循環(huán)冗余校驗(CRC)校驗器,其包括唯一模式檢測器,其檢測經(jīng)由數(shù)字傳輸鏈路接收到的數(shù)據(jù)流內(nèi)的唯一模式;CRC產(chǎn)生器,其基于所述接收到的數(shù)據(jù)流而產(chǎn)生CRC值;CRC初始化器;以及CRC檢驗器,其檢測基于所接收的數(shù)據(jù)流產(chǎn)生的CRC值與所述接收的數(shù)據(jù)流內(nèi)發(fā)送的CRC值之間的差異。
2. 根據(jù)權(quán)利要求1所述的CRC校驗器,其中所述CRC初始化器在鏈路初始化時給所 述CRC產(chǎn)生器預(yù)填充所述唯一模式。
3. 根據(jù)權(quán)利要求1所述的CRC校驗器,其中所述CRC初始化器給所述CRC檢驗器預(yù) 填充與所述唯一模式相關(guān)聯(lián)的CRC值。
4. 根據(jù)權(quán)利要求1所述的CRC校驗器,所述根據(jù)權(quán)利要求1所述的CRC校驗器,其 中所述數(shù)字傳輸鏈路是MDDI傳輸鏈路。
5. 根據(jù)權(quán)利要求l所述的CRC校驗器,其中所述唯一數(shù)據(jù)模式包含子幀標頭包內(nèi)的包 長度、包類型和唯一字字段。
6. —種用于初始化數(shù)字傳輸鏈路的方法,其包括-(a) 接收初始化所述數(shù)字傳輸鏈路的請求;(b) 給CRC產(chǎn)生器預(yù)填充對應(yīng)于唯一數(shù)據(jù)模式的CRC值;(c) 禁用所述CRC產(chǎn)生器;(d) 監(jiān)視傳入的數(shù)據(jù)流以檢測所述唯一數(shù)據(jù)模式;以及(e) 當檢測到所述唯一數(shù)據(jù)模式時,啟用所述CRC產(chǎn)生器。
7. 根據(jù)權(quán)利要求5所述的方法,其中所述數(shù)字傳輸鏈路是MDDI傳輸鏈路。
8. 根據(jù)權(quán)利要求6所述的方法,其中所述唯一數(shù)據(jù)模式包含子幀標頭包的包長度、包 類型和唯一字字段。
9. 一種在主機系統(tǒng)內(nèi)的循環(huán)冗余校驗(CRC)產(chǎn)生器系統(tǒng),其包括CRC產(chǎn)生器,其基于待包含在將經(jīng)由數(shù)字傳輸鏈路傳輸?shù)臄?shù)據(jù)包中的數(shù)據(jù)來產(chǎn)生 CRC值;CRC破壞器,其破壞由所述CRC產(chǎn)生器產(chǎn)生的CRC值,以傳達主機狀態(tài)信息或 相關(guān)系統(tǒng)狀態(tài)信息;誤差檢測器,其檢測主機系統(tǒng)內(nèi)的誤差狀況,并為所述CRC破壞器提供有意破壞 CRC值的指令。
10. 根據(jù)權(quán)利要求8所述的CRC產(chǎn)生器系統(tǒng),其進一步包括誤差值產(chǎn)生器,所述誤差值 產(chǎn)生器指令所述CRC破壞器用指示系統(tǒng)誤差或狀態(tài)狀況的類型的CRC誤差值來代 替由所述CRC產(chǎn)生器產(chǎn)生的CRC值。
11. 根據(jù)權(quán)利要求8所述的CRC產(chǎn)生器系統(tǒng),其中所述數(shù)字傳輸鏈路是MDDI傳輸鏈 路。
12. —種循環(huán)冗余校驗(CRC)校驗器,其包括CRC誤差值檢測器,其檢測經(jīng)由數(shù)字傳輸鏈路接收的數(shù)據(jù)包的CRC字段內(nèi)的CRC 誤差值,其中所述CRC誤差值識別系統(tǒng)誤差狀況或相關(guān)系統(tǒng)誤差狀況; 循環(huán)冗余校驗(CRC)產(chǎn)生器,其基于所接收的數(shù)據(jù)流產(chǎn)生CRC值; CRC驗證器,其檢測基于所接收的數(shù)據(jù)流產(chǎn)生的CRC值與所述接收的數(shù)據(jù)流內(nèi) 發(fā)送的CRC值之間的差異。
13. 根據(jù)權(quán)利要求ll所述的CRC校驗器,其中所述數(shù)字傳輸鏈路是MDDI傳輸鏈路。
14. 一種經(jīng)由數(shù)字傳輸鏈路傳輸來自主機系統(tǒng)的系統(tǒng)誤差信息的方法,其包括-(a) 檢測主機系統(tǒng)或相關(guān)系統(tǒng)誤差;(b) 基于將經(jīng)由所述數(shù)字傳輸鏈路在包內(nèi)傳輸?shù)臄?shù)據(jù)產(chǎn)生CRC值;以及(c) 破壞所述CRC值,其中所述破壞指示所述主機系統(tǒng)或相關(guān)系統(tǒng)誤差已發(fā)生。
15. 根據(jù)權(quán)利要求13所述的方法,其進一步包括經(jīng)由所述數(shù)字傳輸鏈路在數(shù)據(jù)包內(nèi)傳 輸所述受破壞的CRC值。
16. 根據(jù)權(quán)利要求13所述的方法,其中所述數(shù)字傳輸鏈路是MDDI鏈路。
17. —種經(jīng)由數(shù)字傳輸鏈路傳輸來自主機系統(tǒng)的系統(tǒng)誤差信息的方法,其包括-(a) 檢測主機系統(tǒng)或相關(guān)系統(tǒng)誤差;(b) 基于將經(jīng)由所述數(shù)字傳輸鏈路在包內(nèi)傳輸?shù)臄?shù)據(jù)產(chǎn)生CRC值;(c) 基于步驟(a)中檢測到的誤差的類型確定CRC誤差值;以及(d) 用步驟(c)中產(chǎn)生的所述CRC誤差值來代替步驟(b)中產(chǎn)生的所述CRC 值,其中所述CRC誤差值指示所述主機或相關(guān)系統(tǒng)內(nèi)誤差狀況的具體類型。
18. 根據(jù)權(quán)利要求16所述的方法,其中經(jīng)由所述數(shù)字傳輸鏈路在數(shù)據(jù)包內(nèi)傳輸所述CRC 誤差值。
19. 根據(jù)權(quán)利要求16所述的方法,其中所述數(shù)字傳輸鏈路是MDDI鏈路。
全文摘要
本發(fā)明提供用于實施循環(huán)冗余校驗以改進鏈路初始化處理并交換系統(tǒng)誤差信息的系統(tǒng)和方法。在一個方面,提供循環(huán)冗余校驗(CRC)校驗器,其包含唯一模式檢測器、CRC產(chǎn)生器、CRC初始化器和CRC驗證器。所述CRC校驗器預(yù)填充所述CRC產(chǎn)生器以獲得唯一模式。當在經(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鏈路。
文檔編號H04J3/12GK101444027SQ200580046872
公開日2009年5月27日 申請日期2005年11月23日 優(yōu)先權(quán)日2004年11月24日
發(fā)明者喬治·A·威利, 布賴恩·斯蒂爾 申請人:高通股份有限公司