TWI400889B - Systems and methods for implementing cyclic redundancy checks - Google Patents
Systems and methods for implementing cyclic redundancy checks Download PDFInfo
- Publication number
- TWI400889B TWI400889B TW94141287A TW94141287A TWI400889B TW I400889 B TWI400889 B TW I400889B TW 94141287 A TW94141287 A TW 94141287A TW 94141287 A TW94141287 A TW 94141287A TW I400889 B TWI400889 B TW I400889B
- Authority
- TW
- Taiwan
- Prior art keywords
- crc
- error
- value
- client
- host
- Prior art date
Links
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
Description
廣義言之,本發明與資料通信有關。更特定地說,本發明與使用循環冗餘檢查的數位傳輸鏈有關。Broadly speaking, the invention relates to data communication. More specifically, the present invention relates to a digital transmission chain that uses cyclic redundancy checking.
在過去數年來,與電腦、行動電話、行動電話照相機及影像捕捉裝置、個人資料助理、電玩等相關的產品及各種視訊技術(例如DVD及高畫質VCR)都有極大的進步,用以捕捉及呈現解析度愈來愈高的靜止畫面、視訊、隨選視訊、及繪圖影像。結合這些視覺影像與高品質的音頻資料,諸如CD類型的聲音再生、DVD、及其它結合有音頻信號輸出的裝置,能為終端使用者創造出更真實、內容豐富、或真正的多媒體經驗。此外,現已發展出只呈現音頻給使用者的高機動性、高品質音頻系統及音樂傳送機構,諸如MP3播放機。In the past few years, products related to computers, mobile phones, mobile phone cameras and video capture devices, personal data assistants, video games, and various video technologies (such as DVDs and high-definition VCRs) have made great strides to capture And to present still images with higher resolution, video, video on demand, and graphics. Combining these visual images with high-quality audio material, such as CD-type sound reproduction, DVD, and other devices that combine audio signal output, can create a more realistic, informative, or true multimedia experience for end users. In addition, highly mobile, high quality audio systems and music delivery mechanisms, such as MP3 players, have been developed that present audio only to the user.
高品質資料呈現的劇增,推動建立能以高資料率傳輸資料之特殊介面的需求,以使資料品質不致劣化或受損。這類介面之一是行動顯示數位介面(Mobile Display Digital Interface;MDDI),例如用於在具有照相機之細胞式電話的上蓋與機身間交換高速資料。MDDI是具成本效益、低功耗的傳輸機制,其能在主機與用戶(host and client)間的短距離通信鏈上進行極高速的資料傳輸。MDDI用於雙向資料傳輸只需要最少的四條線加電源,以目前的技術,其可傳送的最大頻寬達每秒3.2Gbits。The dramatic increase in the presentation of high-quality data has driven the need to create special interfaces that can transmit data at high data rates so that the quality of the data does not deteriorate or be compromised. One such interface is the Mobile Display Digital Interface (MDDI), for example for exchanging high speed data between the upper cover and the body of a cell phone with a camera. MDDI is a cost-effective, low-power transmission mechanism that enables extremely high-speed data transfer over short-range communication links between the host and the client. MDDI uses only a minimum of four lines plus power for bidirectional data transmission. With the current technology, it can transmit a maximum bandwidth of 3.2 Gbits per second.
雖然MDDI及其它資料介面可用來有效率地提供跨介面的高資料率,但對效能最佳化及更有效率地使用數位傳輸鏈(諸如MDDI鏈)的需求,也與日俱增。While MDDI and other data interfaces can be used to efficiently provide high data rates across interfaces, the need to optimize performance and use digital transmission chains (such as MDDI chains) more efficiently is increasing.
本發明提供用於實施循環冗餘檢查(CRC)的系統及方法,用以改善鏈結的初始化處理及交換系統錯誤資訊,以使數位傳輸鏈能被更有效率地使用。在本發明的一態樣中,提供一CRC檢查器,其包括獨有樣式偵測器、CRC產生器、CRC初始化器、及CRC確認器。CRC檢查器為一獨有樣式預填入(prepopulate)CRC產生器。由於CRC產生器被預填入,在接收到從數位傳輸鏈上所接收之資料流內的獨有樣式後,CRC檢查器可進行CRC檢查,而不需要佇列及儲存資料。The present invention provides systems and methods for implementing Cyclic Redundancy Check (CRC) to improve the initialization processing of the link and exchange system error information so that the digital transmission chain can be used more efficiently. In one aspect of the invention, a CRC checker is provided that includes a unique style detector, a CRC generator, a CRC initializer, and a CRC validator. The CRC checker prepopulates the CRC generator for a unique style. Since the CRC generator is pre-filled, the CRC checker can perform a CRC check after receiving a unique pattern from the data stream received on the digital transmission chain without the need to queue and store the data.
在本發明的另一態樣中,提供一CRC產生器系統,其故意地訛誤CRC值以傳送系統或相關的系統錯誤資訊。CRC產生器系統包括CRC產生器、CRC訛誤器、錯誤偵測器、及錯誤值產生器。CRC產生器根據被包括在要透過數位傳輸鏈傳送之資料封包內的資料產生CRC值。CRC訛誤器訊誤CRC產生器所產生的CRC值,以傳遞主機系統或相關的系統狀態資訊。錯誤偵測器偵測主機系統或相關系統內的錯誤狀況,並提供指令供CRC訛誤器故意地訛誤CRC值。In another aspect of the invention, a CRC generator system is provided that deliberately delays the CRC value to convey system or associated system error information. The CRC generator system includes a CRC generator, a CRC error detector, an error detector, and an error value generator. The CRC generator generates a CRC value based on the data included in the data packet to be transmitted through the digital transmission chain. The CRC error detector CRC value generated by the CRC generator to communicate the host system or related system status information. The error detector detects an error condition in the host system or related system and provides an instruction for the CRC error to intentionally delay the CRC value.
在本發明的另一態樣中,CRC產生器系統可提供指定的資訊,其中包括錯誤的類型。在此情況,除了上述單元外,CRC產生器系統還包括一錯誤值產生器,其指令CRC訊誤器以指定的CRC錯誤值取代CRC產生器所產生的CRC值,該指定的CRC錯誤值指示系統錯誤的類型或狀態情況。In another aspect of the invention, the CRC generator system can provide specified information, including the type of error. In this case, in addition to the above unit, the CRC generator system further includes an error value generator that instructs the CRC error detector to replace the CRC value generated by the CRC generator with a specified CRC error value indicating the CRC error value. The type or status of the system error.
在一例中,數位傳輸鏈是MDDI鏈。本發明並不限於MDDI鏈,可以用於使用CRC之任何類型的數位傳輸鏈。In one example, the digital transmission chain is an MDDI chain. The invention is not limited to the MDDI chain and can be used for any type of digital transmission chain using CRC.
本發明的其它實施例、特徵及優點,以及本發明各種實施例之結構及操作的細節,將在下文中參考附圖詳細描述。Other embodiments, features, and advantages of the present invention, as well as details of the structure and operation of various embodiments of the present invention, will be described in detail below with reference to the drawings.
本說明書揭示結合本發明之特徵的一或多個實施例。所揭示的實施例僅是例示本發明。本發明的範圍並不受所揭示之實施例的限制。本發明是由所附申請專利範圍所定義。This specification discloses one or more embodiments that incorporate the features of the invention. The disclosed embodiments are merely illustrative of the invention. The scope of the invention is not limited by the disclosed embodiments. The invention is defined by the scope of the appended claims.
所描述的實施例,及在本說明書中參考的“一實施例”、“某實施例”、“例示性實施例”等,指示所描述的該實施例可能包括某特定特徵、結構、或特性,但並不必然所有實施例都包括該特定特徵、結構、或特性。此外,這些用語並不必然都參考相同的實施例。此外,當所描述的某特定特徵、結構、或特性與一實施例相關時,須瞭解,無論是否明確描述,熟悉此方面技術之人士的知識,也能使這些特徵、結構、或特性與相它實施例相關。The described embodiments, and the "an embodiment", "an embodiment", "exemplary embodiment", etc., referred to in this specification, indicate that the described embodiment may include a particular feature, structure, or characteristic. It is not intended that all embodiments include such specific features, structures, or characteristics. Moreover, these terms are not necessarily referring to the same embodiment. In addition, when a particular feature, structure, or characteristic described is related to an embodiment, it is to be understood that the knowledge of those skilled in the art, whether or not explicitly described, may also be such a feature, structure, or characteristic. It is related to the embodiment.
本發明的實施例可使用硬體、韌體、軟體、或其任意的組合實施。本發明的實施例也可使用儲存在機器可讀取媒體中,可被一或多個處理器讀取或執行的指令實施。機器可讀取媒體可包括任何以可被機器(例如計算裝置)讀取之型式儲存或傳送的資訊。機器可讀取媒體例如包括唯讀記憶體(ROM);隨機存取記憶體(RAM);磁碟儲存媒體;光學儲存媒體;快閃記憶體裝置;電、光、聲或其它型式的可傳播信號(例如載波、紅外線信號、數位信號等),及其它。此外,本文所描述的韌體、軟體、常式、指令是執行某些特定動作。不過,須瞭解,這些描述僅是為了方便,且這些動作事實上是來自於計算裝置、處理器、控制器、或其它韌體、軟體、常式、指令等的執行結果。Embodiments of the invention may be implemented using hardware, firmware, software, or any combination thereof. Embodiments of the invention may also be implemented using instructions stored in a machine readable medium that can be read or executed by one or more processors. Machine readable media can include any information stored or transmitted in a format that can be read by a machine (eg, a computing device). The machine readable medium includes, for example, a read only memory (ROM); a random access memory (RAM); a disk storage medium; an optical storage medium; a flash memory device; an electrical, optical, acoustic or other type of transmission. Signals (such as carrier waves, infrared signals, digital signals, etc.), and others. In addition, the firmware, software, routines, and instructions described herein perform certain actions. However, it should be understood that these descriptions are for convenience only, and that such acts are actually derived from the execution of computing devices, processors, controllers, or other firmware, software, routines, instructions, and the like.
圖1是耦合至數位裝置150及周邊裝置180的數位資料裝置介面100。數位裝置150可包括但不限於細胞式電話、個人資料助理、智慧型電話或個人電腦。一般來說,數位裝置150可包括任何類型的數位裝置,其做為數位指令及處理以數位呈現之資料的處理單元。數位裝置150包括系統控制器160及鏈結控制器170。1 is a digital data device interface 100 coupled to a digital device 150 and a peripheral device 180. Digital device 150 can include, but is not limited to, a cellular telephone, a personal data assistant, a smart phone, or a personal computer. In general, digital device 150 can include any type of digital device that acts as a digital instruction and processing unit that processes the data presented in digital form. The digital device 150 includes a system controller 160 and a link controller 170.
周邊裝置180可包括但不限於照相機、條碼讀取機、影響掃瞄器、音頻裝置、及偵測器。一般來說,周邊裝置180可包括任何類型的音頻、視訊或影像捕捉及顯示裝置,其中,以數位呈現的資料是在周邊與處理單元間交換。周邊裝置180包括控制方塊190。當周邊裝置180是照相機時,控制方塊190例如可包括但不限於鏡頭控制、閃光燈或白色LED控制、以及快門控制。以數位呈現的資料可包括以數位資料表示的音頻、影像及多媒體資料。Peripheral devices 180 can include, but are not limited to, cameras, bar code readers, impact scanners, audio devices, and detectors. In general, peripheral device 180 can include any type of audio, video or image capture and display device in which data presented in digital form is exchanged between the periphery and the processing unit. Peripheral device 180 includes a control block 190. When peripheral device 180 is a camera, control block 190 may include, for example, but is not limited to, lens control, flash or white LED control, and shutter control. Digitally presented data may include audio, video and multimedia material in digital form.
數位資料裝置介面100在通信鏈105上以高速率傳輸以數位呈現的資料。在一例中,可以使用MDDI通信鏈,其支援最大頻寬3.2Gbit/秒的雙向資料傳輸。其它高於或低於此例的高資料傳輸速率也可支援,視通信鏈而定。數位資料裝置介面100包括訊息翻譯器模組110、內容模組120、控制模組130、及鏈控制器140。Digital data device interface 100 transmits digitally presented data at a high rate over communication link 105. In one example, an MDDI communication link can be used that supports bidirectional data transmission with a maximum bandwidth of 3.2 Gbit/s. Other high data transfer rates above or below this example are also supported, depending on the communication link. The digital data device interface 100 includes a message translator module 110, a content module 120, a control module 130, and a chain controller 140.
位於數位資料裝置介面100內的鏈控制器140與位於數位裝置150內的鏈控制器170建立通信鏈105。鏈控制器140與鏈控制器170可以是MDDI鏈控制器。A chain controller 140 located within the digital data device interface 100 establishes a communication chain 105 with a chain controller 170 located within the digital device 150. Chain controller 140 and chain controller 170 may be MDDI chain controllers.
視訊電子標準協會(“VESA”)的MDDI標準(該標準全文併入本文參考)描述高速數位封包介面的要求,其讓可攜式裝置能將數位影像從小的可攜式裝置傳送到較大的外部顯示器。MDDI應用小型化的連接器系統及可彎曲的細電纜,非常適合將可攜式計算、通信及娛樂裝置連接至即將問世的產品,諸如可配戴的微型顯示器。其也包括關於如何簡化主機處理器與顯示裝置間連接的資訊,以便降低成本及提高這些連接的可靠度。鏈控制器140及170根據VESA MDDI標準建立通信路徑105。The Video Electronics Standards Association ("VESA") MDDI standard, which is incorporated by reference in its entirety, describes the requirements of a high-speed digital packet interface that enables portable devices to transfer digital images from small portable devices to larger External display. MDDI's miniaturized connector system and flexible thin cable are ideal for connecting portable computing, communication and entertainment devices to upcoming products such as wearable microdisplays. It also includes information on how to simplify the connection between the host processor and the display device in order to reduce costs and increase the reliability of these connections. Chain controllers 140 and 170 establish communication path 105 in accordance with the VESA MDDI standard.
2004年7月6日授予Zou等人名稱為Generating and Implementing a Communication Protocol and Interface for High Data Rate Signal Transfer的美國專利6,760,772(‘772專利)中描述一種在主與客間透過通信路徑傳輸數位資料的資料介面,其使用封包結構鏈結在一起以形成一用於呈現資料的通信協定。‘772專利中所教的發明實施例是針對MDDI介面。鏈控制器(諸如鏈控制器140及170)所使用的信號協定被架構成產生、發射、及接收封包形成通信協定,並將數位資料形成一或多種類型的資料封包,至少一個駐於主機裝置內,並經由通信路徑(諸如通信路徑105)耦合至客裝置。U.S. Patent No. 6,760,772 (the '772 patent) issued to the U.S. Pat. Interfaces are chained together using a packet structure to form a communication protocol for presenting data. The inventive embodiment taught in the '772 patent is directed to the MDDI interface. The signal protocols used by the chain controllers (such as the chain controllers 140 and 170) are framed to generate, transmit, and receive packets to form a communication protocol, and the digital data is formed into one or more types of data packets, at least one of which resides in the host device. And coupled to the guest device via a communication path, such as communication path 105.
該介面提供在短距離“串列”型之資料鏈上成本效益高、耗電少的雙向高速資料傳輸機制,其適合以小型化的連接器及可彎曲的細電纜實施。鏈控制器140及170的實施例根據‘772專利之教導建立通信路徑105。‘772專利的全文併入本文參考。The interface provides a bi-directional high-speed data transfer mechanism that is cost-effective and consumes less power in a short-range "serial" type of data link, and is suitable for implementation with miniaturized connectors and flexible thin cables. Embodiments of chain controllers 140 and 170 establish communication path 105 in accordance with the teachings of the '772 patent. The entire text of the '772 patent is incorporated herein by reference.
在其它實施例中,鏈控制器140及170可以是USB鏈控制器,或兩者都可包括多種控制器的組合,例如MDDI控制器與其它類型的鏈控制器,諸如USB鏈控制器。或者,鏈控制器140及170可包括控制器的組合,諸如MDDI鏈控制器與用於在數位資料裝置介面100與數位裝置150間交換認可息訊的單鏈(single link)。此外,鏈控制器140及170也可支援其它類型的介面,諸如乙太網路或RS-232串列埠介面。熟悉相關技術之人士根據本文的教導也將瞭解可支援的其它介面。In other embodiments, chain controllers 140 and 170 can be USB chain controllers, or both can include a combination of various controllers, such as MDDI controllers and other types of chain controllers, such as USB chain controllers. Alternatively, chain controllers 140 and 170 may include a combination of controllers, such as an MDDI chain controller and a single link for exchanging accreditation information between digital data device interface 100 and digital device 150. In addition, chain controllers 140 and 170 can also support other types of interfaces, such as an Ethernet or RS-232 serial port interface. Those skilled in the relevant art will also appreciate other interfaces that may be supported in light of the teachings herein.
在數位資料裝置介面100內,訊息翻譯器模組110經由通信鏈105接收系統控制器160的命令,並產生回應息訊給系統控制器160,翻譯該命令息訊,並將命令的資訊內容路由(route)給數位資料裝置介面100內適當的模組。In the digital data device interface 100, the message translator module 110 receives the command of the system controller 160 via the communication link 105, and generates a response message to the system controller 160, translates the command message, and routes the command information content. (route) to the appropriate module in the digital data device interface 100.
內容模組120接收來自周邊裝置180的資料,儲存該資料,並經由通信鏈105將該資料傳輸給系統控制器160。The content module 120 receives the data from the peripheral device 180, stores the data, and transmits the data to the system controller 160 via the communication link 105.
控制模組130接收來自訊息翻譯器110的資訊,並將資訊路由給周邊裝置180的控制方塊190。控制模組130也接收來自控制方塊190的資訊,並將資訊路由給訊息翻譯器模組110。Control module 130 receives the information from message translator 110 and routes the information to control block 190 of peripheral device 180. Control module 130 also receives information from control block 190 and routes the information to message translator module 110.
圖2是具有上蓋及機身之細胞式電話200的方塊圖,其使用MDDI介面提供位於上蓋與機身內之組件間的高速資料通信。以下與細胞式電話200有關的討論提供一說明的實例,其進一步顯示數位資料裝置介面100的用途,並提供與實施及使用相關的其它細節。根據本文的討論,將可瞭解數位資料裝置介面100可用於其它裝置,例如個人數位助理及其它類型的行動電話,且都在本發明的精神與範圍內。2 is a block diagram of a cell phone 200 having an upper cover and a body that provides high speed data communication between the upper cover and components within the fuselage using the MDDI interface. The following discussion related to cellular telephone 200 provides an illustrative example that further illustrates the use of digital data device interface 100 and provides other details related to implementation and use. In light of the discussion herein, it will be appreciated that the digital data device interface 100 can be used with other devices, such as personal digital assistants and other types of mobile phones, and is within the spirit and scope of the present invention.
現請參閱圖2,細胞式電話200的機身202包括行動站台數據機(Mobile Station Modem;MSM)基頻晶片204。MSM 204是一數位基頻控制器。細胞式電話200的上蓋214包括一液晶顯示器(LCD)模組216以及一照相機模組218。機身202與上蓋214都包裝在塑膠殼內,如典型細胞式電話所使用。鉸鏈250與252機械地連接機身202與上蓋214。可彎曲的耦合件254提供機身202與上蓋214間的電氣耦合。Referring now to Figure 2, the body 202 of the cell phone 200 includes a Mobile Station Modem (MSM) baseband chip 204. The MSM 204 is a digital baseband controller. The upper cover 214 of the cell phone 200 includes a liquid crystal display (LCD) module 216 and a camera module 218. Both the body 202 and the upper cover 214 are packaged in a plastic case, such as that used in typical cell phones. Hinge 250 and 252 mechanically connect body 202 and upper cover 214. The bendable coupling 254 provides electrical coupling between the body 202 and the upper cover 214.
MDDI鏈210將照相機模組218連接至MSM 204。典型上,照相機模組218與MSM 204都配置有MDDI鏈控制器。例如,在細胞式電話200內,MDDI主機端222整合在介面系統230內,其耦合至照相機模組218,而MDDI客戶端206位於MDDI鏈210的MSM側上。典型上,MDDI主機端是MDDI鏈的主機控制器。The MDDI chain 210 connects the camera module 218 to the MSM 204. Typically, camera module 218 and MSM 204 are both equipped with an MDDI chain controller. For example, within cell phone 200, MDDI host 222 is integrated within interface system 230, which is coupled to camera module 218, while MDDI client 206 is located on the MSM side of MDDI chain 210. Typically, the MDDI host is the host controller for the MDDI chain.
在細胞式電話200內,介面系統230使用MDDI主機端222接收來自照相機模組218的像素資料,在將其傳送到MDDI鏈210前,先將其格式化成MDDI封包。MDDI客戶端206接收MDDI封包,並將其再轉換成與照相機模組218所產生之格式相同的像素資料。接著,像素資料被送至MSM 204內適當的方塊供處理。Within the cell phone 200, the interface system 230 receives the pixel data from the camera module 218 using the MDDI host 222, which is formatted into an MDDI packet before being transmitted to the MDDI chain 210. The MDDI client 206 receives the MDDI packet and reconverts it to the same pixel data as the camera module 218 generated. The pixel data is then sent to the appropriate block within MSM 204 for processing.
同樣地,MDDI鏈212將LCD模組216連接至MSM 204。MDDI鏈212將整合在MSM 204內的MDDI主機端208與整合在介面系統232內的MDDI客戶端220互連,介面系統232耦合至LCD模組216。MDDI主機208接收MSM 204之圖形控制器所產生的顯示資料,並在傳送給MDDI鏈212之前,先將其格式化成MDDI封包。MDDI客戶端220接收MDDI封包,並將其再轉換成顯示資料,並經由介面系統232處理該顯示資料供LCD模組216使用。Likewise, MDDI chain 212 connects LCD module 216 to MSM 204. The MDDI chain 212 interconnects the MDDI host 208 integrated within the MSM 204 with the MDDI client 220 integrated within the interface system 232, which is coupled to the LCD module 216. The MDDI host 208 receives the display material generated by the graphics controller of the MSM 204 and formats it into an MDDI packet before transmitting it to the MDDI chain 212. The MDDI client 220 receives the MDDI packet and converts it into display material and processes the display data via the interface system 232 for use by the LCD module 216.
介面系統230及232代表數位資料裝置介面100不同的實施例。在介面系統230的情況中,實施數位資料裝置介面100單元是支援照相機影像的資料傳送及照相機的照相機控制功能。在介面系統232的情況中,實施數位資料裝置介面100單元是支援將資料顯示於LCD及LCD的控制功能。下文將進一步解釋介面系統230,以說明當使用具有照相機之細胞式電話時之數位資料裝置介面100的實施例,諸如具有照相機模組218的細胞式電話200。Interface systems 230 and 232 represent different embodiments of digital data device interface 100. In the case of the interface system 230, the digital data device interface 100 unit is implemented to support data transfer of camera images and camera control functions of the camera. In the case of the interface system 232, the implementation of the digital data device interface 100 unit is a control function that supports display of data on the LCD and LCD. The interface system 230 will be further explained below to illustrate an embodiment of a digital data device interface 100 when using a cellular telephone with a camera, such as a cellular telephone 200 having a camera module 218.
圖1之裝置與細胞式電話200間的關係如下。介面系統230代表數位資料裝置介面100。MDDI主機端222代表鏈控制器104。照相機模組218代表周邊180。MSM 204代表系統控制器160,以及MDDI客戶端206代表鏈控制器107。The relationship between the device of Fig. 1 and the cellular telephone 200 is as follows. Interface system 230 represents digital data device interface 100. The MDDI host 222 represents the chain controller 104. Camera module 218 represents perimeter 180. MSM 204 represents system controller 160, and MDDI client 206 represents chain controller 107.
圖3是上蓋214的圖,且提供與介面系統230有關的進一步的細節,以強調用於含有照相機之細胞式電話之數位資料裝置介面100的例示性實施例。介面系統230包括MDDI主機端222、照相機訊息翻譯器302、照相機視頻介面304、I2C主匯流排303、馬達控制器308、及閃光燈/白光LED計時器310。I2C匯流排是一通用控制匯流排,其提供電路間的通信鏈結。I2C匯流排是由菲利浦電子N.V.於1980年代所發展。3 is a diagram of upper cover 214 and provides further details regarding interface system 230 to highlight an exemplary embodiment of digital data device interface 100 for a cell phone containing a camera. The interface system 230 includes an MDDI host 222, a camera message translator 302, a camera video interface 304, an I2C main bus 303, a motor controller 308, and a flash/white LED timer 310. The I2C bus is a general purpose control bus that provides communication links between circuits. The I2C busbar was developed by Philips Electronics N.V. in the 1980s.
回憶介面系統230對應於數位資料裝置介面100。介面系統230的組件按如下方式對應於數位資料裝置介面100的組件。照相機視頻介面304對應於內容模組120。集合I2C主匯流排303、馬達控制器308、及閃光燈/白光LED計時器310對應於控制模組130。The recall interface system 230 corresponds to the digital data device interface 100. The components of the interface system 230 correspond to components of the digital data device interface 100 as follows. Camera video interface 304 corresponds to content module 120. The collective I2C main bus 303, the motor controller 308, and the flash/white LED timer 310 correspond to the control module 130.
照相機訊息翻譯器302接收命令並產生反應訊息經由MDDI主機端222到達MSM 204。照相機訊息翻譯器302翻譯訊息,並將資訊內容路由到介面系統230內適當的方塊,其可稱為MDDI照相機介面裝置。照相機視頻介面304從照相機320接收影像資料,儲存影像資料,並將影像資料傳送給MDDI主機端222。集合I2C主匯流排306、馬達控制器308、及閃光燈/白光LED計時器310構成照相機控制方塊。在此情況,I2C主匯流排306提供控制管理照相機320所需的控制(例如鏡頭變焦功能),以及閃光燈/白光LED計時器310提供管理閃光燈/白光LED324(例如閃光亮度及持續時間)所需的控制。The camera message translator 302 receives the command and generates a response message to the MSM 204 via the MDDI host 222. Camera message translator 302 translates the message and routes the information content to appropriate blocks within interface system 230, which may be referred to as MDDI camera interface devices. The camera video interface 304 receives image data from the camera 320, stores the image data, and transmits the image data to the MDDI host 222. The collective I2C main bus 306, motor controller 308, and flash/white LED timer 310 form a camera control block. In this case, the I2C main bus 306 provides the controls needed to control the management camera 320 (eg, the lens zoom function), and the flash/white LED timer 310 provides the management flash/white LED 324 (eg, flash brightness and duration) required. control.
圖4A是MDDI主機端222的圖。MDDI主機端222包括微處理器介面410、命令處理器420、暫存器430、直接記憶體存取(DMA)介面440、MDDI封包建構器450、資料聯繫交換模組460及資料墊470。微處理器介面410與到主機處理器的匯流排介接,主機處理器控制MDDI主機端222。主機處理器使用微處理器介面410設定暫存器、讀取暫存器並發出命令給MDDI主機端222。微處理器介面410注意位址值,並將資料傳給MDDI主機端222內的適當模組,包括將寫入傳送給命令處理器420,以及讀取及寫入暫存器430內的暫存器值。4A is a diagram of the MDDI host 222. The MDDI host 222 includes a microprocessor interface 410, a command processor 420, a scratchpad 430, a direct memory access (DMA) interface 440, an MDDI packet constructor 450, a data contact switch module 460, and a data pad 470. The microprocessor interface 410 interfaces with a bus to the host processor, which controls the MDDI host 222. The host processor uses the microprocessor interface 410 to set the scratchpad, read the scratchpad, and issue commands to the MDDI host 222. The microprocessor interface 410 pays attention to the address value and passes the data to the appropriate module in the MDDI host 222, including transferring the write to the command processor 420, and reading and writing the temporary memory in the scratchpad 430. Value.
命令處理器420處理接收自主機處理器的命令。該些命令包括將MDDI鏈210關機、將MDDI鏈210開機、重置MDDI主機端222、以及產生特定類型的資料封包。Command processor 420 processes commands received from the host processor. The commands include shutting down the MDDI chain 210, powering up the MDDI chain 210, resetting the MDDI host 222, and generating a particular type of data packet.
暫存器430儲存跨MDDI鏈210之資料傳送所用的暫存器。暫存器430內的暫存器控制MDDI鏈210的行為,以及MDDI主機端222的組態。The register 430 stores the registers used for data transfer across the MDDI chain 210. The scratchpad within the scratchpad 430 controls the behavior of the MDDI chain 210 and the configuration of the MDDI host 222.
DMA介面440提供叢發(burst)請求給外部記憶體,以從介面系統230接收資訊,為MDDI封包建構器450緩衝資料。DMA介面440解析鏈結表節點標頭的資料,並調整指標符以讀取實際的封包資料。DMA介面440提出關於次一個資料封包的資訊,以送給MDDI封包建構器450。The DMA interface 440 provides a burst request to the external memory to receive information from the interface system 230 and buffer the data for the MDDI packet constructor 450. The DMA interface 440 parses the data of the link table node header and adjusts the indicator to read the actual packet data. The DMA interface 440 presents information about the next data packet for delivery to the MDDI packet constructor 450.
關於接下來要送出那一個封包由MDDI封包建構器450決定,並建構需要通過MDDI鏈222的實體封包。該些封包是建構自內部暫存器、計數器、及DMA介面440所擷取的資料。當資料要在MDDI鏈222上輸出時,所要輸出的資料可從數個來源產生。封包的第一個來源是由MDDI封包建構器450內部產生的控制型封包。這些封包的例子包括子框標頭封包、填充封包及鏈結關閉封包。封包的另一個來源是經由DMA介面440。這些封包包括經由被鏈結之表傳遞的封包。在其它實施例中,當周邊包括視訊照相機時,視訊資料可直接傳遞到MDDI封包建構器450。無論封包的來源為何,所有的封包都經由位在MDDI封包建構器450內的CRC產生器系統處理。The next packet to be sent is determined by the MDDI Packet Builder 450 and constructs an entity packet that needs to pass through the MDDI chain 222. The packets are constructed from internal registers, counters, and DMA interface 440. When data is to be output on the MDDI chain 222, the data to be output can be generated from several sources. The first source of the packet is a control packet generated internally by the MDDI Packet Builder 450. Examples of such packets include sub-frame header packets, padding packets, and link closure packets. Another source of packets is via the DMA interface 440. These packets include packets that are passed through the linked list. In other embodiments, the video material can be passed directly to the MDDI packet constructor 450 when the perimeter includes a video camera. Regardless of the source of the packet, all packets are processed via a CRC generator system located within the MDDI packet constructor 450.
資料聯繫交換模組460管理實體的MDDI鏈210。此由負責聯繫交換處理、資料輸出、往返延遲(round trip delay)管理及反轉資料的狀態機完成。資料聯繫交換模組460接收MDDI封包建構器450的資料,並將該資訊傳遞給資料墊(data pad)470,其將資料移出到MDDI鏈222上。The data contact switch module 460 manages the entity's MDDI chain 210. This is done by a state machine responsible for contacting the exchange process, data output, round trip delay management, and reverse data. The data contact switch module 460 receives the data of the MDDI packet constructor 450 and passes the information to a data pad 470 that moves the data out onto the MDDI chain 222.
圖4B說明將封包提供給MDDI鏈210的流程。如前所述,封包可由內部產生、接收自DMA介面440,或直接接收視訊封包。內部產生的封包是由控制封包產生器452所產生。所有類型的封包都經由CRC產生器系統454傳遞給資料聯繫交換模組460。資料聯繫交換模組460依次將封包提供給資料墊470,其將資料置於MDDI鏈210上。FIG. 4B illustrates the flow of providing a packet to the MDDI chain 210. As previously mentioned, the packet may be internally generated, received from the DMA interface 440, or directly received by the video packet. The internally generated packet is generated by the control packet generator 452. All types of packets are passed to the data contact switch module 460 via the CRC generator system 454. The data contact exchange module 460 sequentially provides the packets to the data pad 470, which places the data on the MDDI chain 210.
圖4C說明MDDI封包建構器450接收MDDI鏈210上之封包的流程。在此情況,資料墊470接收來自MDDI鏈210的封包,接著將資料傳遞給資料聯繫交換模組460。資料聯繫交換模組460將資料傳遞給位在MDDI封包建構器450內的CRC檢查器456。一旦CRC檢查器456確認了進入之封包的CRC,提供給DMA介面440的封包被置於處理器匯流排上,供在數位資料介面裝置100內分配。4C illustrates the flow of the MDDI Packet Builder 450 receiving packets on the MDDI chain 210. In this case, data pad 470 receives the packet from MDDI chain 210 and then passes the data to data contact switch module 460. The data contact switch module 460 passes the data to the CRC checker 456 located within the MDDI packet constructor 450. Once the CRC checker 456 confirms the CRC of the incoming packet, the packet provided to the DMA interface 440 is placed on the processor bus for distribution within the digital data interface device 100.
圖5至6描述封包類型的例子。這些例示性封包用於說明本發明,但無意限制本發明只能使用這些封包類型。本發明也可使用其它特有樣式的封包(如下所述)及CRC欄位。Figures 5 through 6 illustrate examples of packet types. These exemplary packages are used to illustrate the invention, but are not intended to limit the invention to the use of these types of packets. Other unique styles of packets (described below) and CRC fields can also be used with the present invention.
圖5是根據VESA MDDI介面標準的子框標頭封包格式500圖。子框標頭封包格式500包括封包長度欄510、封包類型欄520、獨有字欄530、子框標頭參數欄540及CRC欄550。封包長度欄510包括一16位元(2位元組)值,其指定封包內不包括封包長度欄510的總位元組數。封包類型欄520包括一16位元的無符號整數,其指定封包內所含資訊的類型。獨有字欄530包括一16位元的獨有字。獨有字欄與封包類型欄520被識別以形成一32位元的獨有樣式以對齊資料。亦即,當接收封包時,MDDI封包建構器450可根據該獨有樣式決定MDDI封包建構器450正在處理資料封包的那一部分或欄位。子框標頭參數欄540包括管理MDDI鏈222的控制參數。CRC欄包括一16位元的CRC值。Figure 5 is a diagram of a sub-frame header packet format 500 in accordance with the VESA MDDI interface standard. The sub-frame header packet format 500 includes a packet length column 510, a packet type column 520, a unique word field 530, a sub-frame header parameter field 540, and a CRC field 550. The packet length field 510 includes a 16-bit (2-byte) value that specifies the total number of bytes in the packet that do not include the packet length column 510. The packet type field 520 includes a 16-bit unsigned integer that specifies the type of information contained within the packet. The unique word field 530 includes a unique 16-bit word. The unique word and packet type fields 520 are identified to form a unique 32-bit style to align the material. That is, when the packet is received, the MDDI packet constructor 450 can determine which portion or field the MDDI packet constructor 450 is processing the data packet based on the unique pattern. The sub-frame header parameter field 540 includes control parameters that manage the MDDI chain 222. The CRC column includes a 16-bit CRC value.
圖6是視訊流封包格式600圖。視訊流封包載送視訊資料用以更新顯示器的矩形部分。視訊流封包格式600包括封包長度欄610、封包類型欄615、客戶端ID欄620、視訊格式欄625、像素資料屬性欄630、X左緣欄635、Y頂緣欄640、X右緣欄645、Y底緣欄650、X開始欄655、Y開始欄660、像素計數欄665、參數CRC欄670、像素資料欄675、以及像素資料CRC欄680。6 is a diagram of a video stream packet format 600. The video stream packet carries video data to update the rectangular portion of the display. The video stream packet format 600 includes a packet length column 610, a packet type column 615, a client ID field 620, a video format field 625, a pixel data attribute column 630, an X left edge column 635, a Y top edge column 640, and an X right edge column 645. The Y bottom edge column 650, the X start column 655, the Y start column 660, the pixel count column 665, the parameter CRC column 670, the pixel data column 675, and the pixel data CRC column 680.
封包長度欄610包括一16位元(2位元組)值,其指定封包內不包括封包長度欄610的總位元組數。封包類型欄620包括一2位元的無符號整數,其指定封包內所含資訊的類型。The packet length field 610 includes a 16-bit (2-byte) value that specifies the total number of bytes in the packet that do not include the packet length field 610. The packet type column 620 includes a 2-bit unsigned integer that specifies the type of information contained within the packet.
欄位620至665每一個都是2位元組的欄位,其包含有關於視訊顯示器該如何格式化的參數資料。這些欄位的明確定義可見於VESA MDDI介面標準。參數CRC欄670是一2位元組的欄位,其包含處理欄位610至665內之參數資料所產生的CRC值。Fields 620 through 665 are each a 2-byte field containing parameter data on how the video display should be formatted. A clear definition of these fields can be found in the VESA MDDI interface standard. The parameter CRC column 670 is a 2-byte field containing the CRC value generated by processing the parameter data in fields 610 through 665.
像素資料欄675包括任何數量的像素資料,直至封包之大小及像素計數欄所允許的量。像素CRC欄680是一2位元組的欄位,其包含處理像素資料欄675內之像素資料所產生的CRC值。Pixel data field 675 includes any number of pixel data up to the size of the packet and the amount allowed by the pixel count column. The pixel CRC field 680 is a 2-byte field that contains the CRC value generated by processing the pixel data in the pixel data field 675.
每一個在MDDI鏈210上傳送的封包至少包括一個CRC欄位,諸如子框標頭封包格式500內的CRC欄550。在某些較長的封包內將包括2個CRC欄位,諸如視訊流封包格式600內的參數CRC欄670及像素CRC欄680。Each packet transmitted on the MDDI chain 210 includes at least one CRC field, such as a CRC field 550 within the sub-frame header packet format 500. Two CRC fields will be included in some of the longer packets, such as the parameter CRC column 670 and the pixel CRC field 680 within the video stream packet format 600.
CRC從資料的大區塊(諸如網路交通的封包或電腦檔案的區塊)產生一小數量的位元,以偵測傳送或儲存中的錯誤。CRC是以所要傳送之資料為函數所計算,並在傳送或儲存前附加(例如以CRC欄550附加),並於之後驗證,以確認沒發生改變。The CRC generates a small number of bits from a large block of data (such as packets of network traffic or blocks of computer files) to detect errors in transmission or storage. The CRC is calculated as a function of the data to be transmitted and is appended (eg, appended with the CRC column 550) prior to transmission or storage and verified thereafter to confirm that no changes have occurred.
CRC是經由將封包資料推過CRC產生器(諸如CRC產生器系統454)被計算,以產生與封包資料相關的獨有CRC值。CRC檢查器(諸如CRC檢查器456)根據所接收的資料產生所接收之資料的CRC值。接著,所接收之資料的CRC值與被傳送的CRC值比較。如果兩者相符,則該資料可視為有效資料,否則產生CRC錯誤。The CRC is calculated by pushing the packet data through a CRC generator, such as CRC generator system 454, to generate a unique CRC value associated with the packet material. A CRC checker (such as CRC checker 456) generates a CRC value of the received data based on the received data. The CRC value of the received data is then compared to the transmitted CRC value. If the two match, the data can be considered as valid data, otherwise a CRC error will occur.
CRC受歡迎的原因是它們在二進制硬體中實施很簡單,很容易以數學分析,且特別善於偵測傳輸通道內之雜訊所造成的一般錯誤。熟悉此方面相關技術之人士應瞭解CRC產生器的特定實施。The reason why CRC is popular is that they are very simple to implement in binary hardware, easy to mathematically analyze, and especially good at detecting common errors caused by noise in the transmission channel. Those skilled in the art of this aspect should be aware of the specific implementation of the CRC generator.
如圖5及6之說明,CRC欄出現在封包的尾端(例如CRC欄512及像素資料CRC欄680),以及有時在封包中某些更關鍵之參數的後方,其可能具有相當大的資料欄位(例如參數CRC欄670),且因此在傳輸期間發生錯誤的可能性提高。在具有兩個CRC欄位的封包內,當僅使用一個時,在第一個CRC之後,CRC產生器被再初始化,以便跟在長度資料欄位後的CRC計算,不會受封包開始處之參數的影響。As illustrated in Figures 5 and 6, the CRC column appears at the end of the packet (e.g., CRC column 512 and pixel data CRC column 680), and sometimes behind some of the more critical parameters in the packet, which may be quite large. The data field (e.g., parameter CRC column 670), and thus the likelihood of an error occurring during transmission increases. In a packet with two CRC fields, when only one is used, after the first CRC, the CRC generator is reinitialized so that the CRC calculation following the length data field is not subject to the beginning of the packet. The impact of the parameters.
含有很多錯誤位元之封包能產生良好CRC的機率微乎其微。在含有很多錯誤之極長封包上偵測到良好CRC的機率大約是7.6×10- 6 。經由設計,MDDI鏈將具有極低或零錯誤率。CRC意欲用來監視鏈結的健康狀態,並無意偵測特定封包之錯誤以決定是否要再傳送封包。Packets with many erroneous bits have a very low chance of producing a good CRC. In the error probability of containing many extremely long packets detected good CRC is about 7.6 × 10 - 6. By design, the MDDI chain will have a very low or zero error rate. The CRC is intended to monitor the health of the link and is not intended to detect errors in a particular packet to determine whether or not to forward the packet.
在一例示性實施例中,用於計算CRC的多項式如習知的CRC-16或X16+X15+X2+X0。用於實施本發明之CRC產生器454及CRC檢查器456的實施樣品如圖4D所示。在圖4D中,在傳送封包的第一個位元之前,CRC暫存器471的值被初始化到0x0001,該封包從Tx_MDDI_Data_Before_CRC線輸入,接著,封包的位元組先從LSB開始被位移到暫存器內。請注意,在本圖中暫存器的位元數對應於所使用之多項式的冪次,並非MDDI所使用的位元位置。其能更有效率地在單一方向位移CRC暫存器,此致使CRC位元15出現在MDDI CRC欄位的位元位置0,且CRC暫存器位元14出現在MDDI CRC欄位的位元位置1,等等,直至到達MDDI位元位置14。In an exemplary embodiment, the polynomial used to calculate the CRC is conventional CRC-16 or X16+X15+X2+X0. An example of the implementation of CRC generator 454 and CRC checker 456 for practicing the present invention is shown in Figure 4D. In FIG. 4D, before the first bit of the transport packet is transmitted, the value of the CRC register 471 is initialized to 0x0001, the packet is input from the Tx_MDDI_Data_Before_CRC line, and then the byte of the packet is first shifted from the LSB to the temporary bit. Inside the memory. Note that the number of bits in the scratchpad in this figure corresponds to the power of the polynomial used, not the bit position used by MDDI. It can more efficiently shift the CRC register in a single direction, which causes the CRC bit 15 to appear in the bit position 0 of the MDDI CRC field, and the CRC register bit 14 appears in the bit of the MDDI CRC field. Position 1, and so on, until the MDDI bit position 14 is reached.
例如,如果封包的內容為:0x000c、0x0046、0x000、0x0400、0x00、0x00、0x0000(或以位元組的序列表示:0x0c、0x00、0x46、0x00、0x00、0x00、0x00、0x04、0x00、0x00、0x00、0x00),且使用多工器472、473及AND閘474的輸入提交,則在Tx_MDDI_Data_With_CRC線上所得到的CRC輸出為0xd9aa(或以0xaa,0xd9的序列表示)。For example, if the contents of the packet are: 0x000c, 0x0046, 0x000, 0x0400, 0x00, 0x00, 0x0000 (or represented by a sequence of bytes: 0x0c, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00 , 0x00, 0x00), and using the input of multiplexers 472, 473 and AND gate 474, the CRC output obtained on the Tx_MDDI_Data_With_CRC line is 0xd9aa (or represented by a sequence of 0xaa, 0xd9).
當CRC產生器454及CRC檢查器456被組構成CRC檢查器時,在Rx_MDDI_Data線上接收的CRC被輸入到多工器472及互斥-OR(XOR)閘476,並使用NOR閘475、AND閘474、及AND閘477與CRC暫存器內發現的值逐位元比較。如有任何錯誤,由AND閘477輸出,經由將閘477的輸出連接到暫存器471的輸入,每一個含有CRC錯誤的封包會使CRC遞增一次。請注意,圖4D中所示的電路例能在一指定的CHECK_CRC_NOW窗口內,輸出一個以上的CRC錯誤信號(見圖4E)。因此,在CHECK_CRC_NOW動作的每一個區間內,CRC錯誤計數器通常只能計數第一個CRC錯誤情況。如果被組構成CRC產生器,則在與封包結束相合的時間,CRC被時控離開CRC暫存器。When the CRC generator 454 and the CRC checker 456 are grouped to form a CRC checker, the CRC received on the Rx_MDDI_Data line is input to the multiplexer 472 and the exclusive-OR (XOR) gate 476, and the NOR gate 475, AND gate is used. 474, and AND gate 477 are compared to the value found in the CRC register bit by bit. If there is any error, it is output by the AND gate 477. By connecting the output of the gate 477 to the input of the register 471, each packet containing the CRC error increments the CRC once. Note that the circuit example shown in Figure 4D can output more than one CRC error signal within a specified CHECK_CRC_NOW window (see Figure 4E). Therefore, in each interval of the CHECK_CRC_NOW action, the CRC error counter can usually only count the first CRC error condition. If the CRC generator is grouped, the CRC is timed out of the CRC register at the time coincident with the end of the packet.
輸入及輸出信號、以及致能信號的時序說明於圖4E及4F。圖4E以Gen_Reset、Check_CRC_Now、Generate_CRC_Now、及Sending_MDDI_Data信號的狀態(0或1),連同Tx_MDDI_Data_Before_CRC及Tx_MDDI_Data_With_CRC信號顯示CRC的產生及資料封包之傳送。圖4F以Gen_Reset、Check_CRC_Now、Generate_CRC_Now、及Sending_MDDI_Data信號的狀態,連同Rx_MDDI_Data_Before_CRC及Rx_MDDI_Data_With_CRC信號顯示資料封包的接收與CRC值的檢查。The timing of the input and output signals, as well as the enable signal, is illustrated in Figures 4E and 4F. 4E shows the generation of the CRC and the transmission of the data packet with the states (0 or 1) of the Gen_Reset, Check_CRC_Now, Generate_CRC_Now, and Sending_MDDI_Data signals, along with the Tx_MDDI_Data_Before_CRC and Tx_MDDI_Data_With_CRC signals. 4F displays the receipt of the data packet and the CRC value in the states of the Gen_Reset, Check_CRC_Now, Generate_CRC_Now, and Sending_MDDI_Data signals, along with the Rx_MDDI_Data_Before_CRC and Rx_MDDI_Data_With_CRC signals.
封包內出現CRC存在著操作上的挑戰,也給予各種機會以能更有效率地利用MDDI鏈210。雖然本文的討論是集中在CRC用於MDDI鏈210的環境中,但本發明並不限於MDDI的環境。本發明可應用於任何類型使用CRC的數位資料傳輸鏈。The presence of CRC within the packet presents operational challenges and opportunities for more efficient use of the MDDI chain 210. Although the discussion herein is focused on the environment in which the CRC is used for the MDDI chain 210, the invention is not limited to the MDDI environment. The invention is applicable to any type of digital data transmission chain using CRC.
與使用CRC相關的挑戰之一是與鏈結的初始化有關。當鏈結被啟動,MDDI主機端222將子框標頭封包(例如子框標頭封包格式500)傳送給MDDI客戶端206。在鏈結初始化後,通常CRC檢查器456不會知道資料流內資料的排列。亦即,CRC檢查器例如不會知道其是處理獨有字欄530或CRC欄550內的資料。結果是,CRC檢查器456需要將資料連續地佇列到記憶體內,直到其識別出該資料在資料流中的位置。此導致效率不佳且需要更多的記憶體及晶片面積來佇列及儲存資料。CRC檢查器456不知道資料在資料流中正確的位置,即無法產生與所接收之CRC比較的CRC,用以驗證所接收的資料。One of the challenges associated with using CRC is related to the initialization of the link. When the link is initiated, the MDDI host 222 transmits the sub-frame header packet (e.g., sub-box header packet format 500) to the MDDI client 206. After the link is initialized, typically the CRC checker 456 does not know the arrangement of the data in the data stream. That is, the CRC checker, for example, does not know that it is processing the data in the unique word field 530 or the CRC field 550. As a result, the CRC checker 456 needs to continuously queue the data into the memory until it recognizes the location of the data in the data stream. This results in inefficient and requires more memory and wafer area to queue and store data. The CRC checker 456 does not know the correct location of the data in the data stream, i.e., cannot generate a CRC compared to the received CRC to verify the received data.
圖7是CRC檢查器456圖,其針對這些挑戰。CRC檢查器456包括獨有樣式偵測器710、CRC產生器720、CRC初始化器730及CRC驗證器740。獨有樣式偵測器710偵測進入之資料流內的獨有樣式以識別資料流中的某特定點。CRC產生器720是標準的CRC產生器,用以產生與所接收之資料相關的CRC值。CRC初始化器730以與獨有樣式及封包長度相關的資料值泵CRC產生器720。CRC驗證器740比較所接收的CRC值與CRC產生器720根據接收之資料所產生的CRC值,以驗證該資料。Figure 7 is a diagram of a CRC checker 456 that addresses these challenges. The CRC checker 456 includes a unique pattern detector 710, a CRC generator 720, a CRC initializer 730, and a CRC validator 740. The unique style detector 710 detects unique patterns within the incoming data stream to identify a particular point in the data stream. The CRC generator 720 is a standard CRC generator for generating CRC values associated with the received data. The CRC initializer 730 pumps the CRC generator 720 with data values associated with the unique pattern and packet length. The CRC verifier 740 compares the received CRC value with the CRC value generated by the CRC generator 720 based on the received data to verify the data.
圖8是初始化一鏈結之方法800的流程圖,其實證圖7所描述之CRC檢查器456的使用。在一方法中,假設子框標頭的封包長度保持固定,且預計算值被載入到CRC檢查器,其是根據封包長度、封包類型及獨有字元的部分CRC。另一方法支援封包長度可變的情況。在此情況中,封包長度連同獨有樣式可被泵送通過預計算器以產生一值,接著,當獨有樣式被接收時,可在該點將該值置入CRC檢查器。8 is a flow diagram of a method 800 of initializing a link, in fact using the CRC checker 456 described in FIG. In one method, it is assumed that the packet length of the sub-frame header remains fixed and the pre-computed value is loaded into the CRC checker, which is based on the packet length, the packet type, and the partial CRC of the unique character. Another method supports the case where the packet length is variable. In this case, the packet length along with the unique pattern can be pumped through the pre-calculator to produce a value, which can then be placed into the CRC checker at that point when the unique pattern is received.
方法800從步驟810開始。在步驟810中,接收到初始化或喚醒一傳輸鏈的請求,例如,MDDI客戶端206接收到來自MDDI主機端222初始化或喚醒MDDI鏈210的請求。在MDDI客戶端206內,CRC檢查器456被此鏈結喚醒請求初始化。特別是,CRC初始化器730被該請求初始化。The method 800 begins at step 810. In step 810, a request to initialize or wake up a transport chain is received, for example, MDDI client 206 receives a request from MDDI host 222 to initialize or wake up MDDI chain 210. Within the MDDI client 206, the CRC checker 456 is initialized by this link wakeup request. In particular, CRC initializer 730 is initialized by the request.
在步驟820,CRC產生器被與獨有樣式及封包長度欄510相關的資料值預填入(pre-populate),以便CRC產生器能產生與獨有樣式及封包長度欄510相關的CRC值。如前所述,在一實施例中,假設封包長度欄位固定。例如,CRC初始化器730可提供獨有樣式及封包長度欄給CRC產生器720。在MDDI的情況中,獨有樣式是與包含在封包類型欄520及獨有字欄530內之資料相關的資料值。在喚醒一鏈結之後,這些欄位的值都是已知。因此,CRC初始化器730可儲存這些值,當接收到喚醒鏈結的請求時,在一位置將這些值提供給CRC初始化器730。在另一方法中,與其提供資料值給CRC產生器,不如將CRC產生器所產生之具有提供給CRC產生器之獨有樣式及封包長度欄的預計算CRC值預載入CRC檢查器。At step 820, the CRC generator is pre-populated with the data values associated with the unique pattern and packet length column 510 so that the CRC generator can generate a CRC value associated with the unique pattern and packet length column 510. As previously mentioned, in one embodiment, the packet length field is assumed to be fixed. For example, CRC initializer 730 can provide a unique style and packet length column to CRC generator 720. In the case of MDDI, the unique style is the data value associated with the material contained in the package type column 520 and the unique word field 530. The values of these fields are known after awakening a link. Thus, CRC initializer 730 can store these values and provide these values to CRC initializer 730 at a location when a request to wake up the link is received. In another method, instead of providing a data value to the CRC generator, the pre-computed CRC value generated by the CRC generator with the unique pattern and packet length field provided to the CRC generator is preloaded into the CRC checker.
在步驟830,CRC產生器(諸如CRC產生器720)被去能。產生器被去能以便不處理會改變CRC值之進一步的資料,直到獨有樣式與封包長度欄被接收。At step 830, the CRC generator (such as CRC generator 720) is disabled. The generator is de-energized so that no further data that would change the CRC value is processed until the unique style and packet length fields are received.
在步驟840,進入的資料被監視,以檢查獨有資料樣式的接收。例如,獨有樣式偵測器710監視接收自MDDI鏈210的資料。At step 840, the incoming data is monitored to check for receipt of the unique material style. For example, the unique style detector 710 monitors the data received from the MDDI chain 210.
在步驟850,決定是否已接收到獨有樣式。例如,獨有樣式偵測器710決定已接收到封包長度欄510、封包類型欄520、以及獨有字欄530。At step 850, a determination is made as to whether a unique style has been received. For example, the unique style detector 710 determines that the packet length column 510, the packet type column 520, and the unique word field 530 have been received.
在步驟860,CRC產生器被賦能。在被賦能後,CRC產生器720將建構使用預載入之獨有樣式所產生的現有CRC值。結果是,CRC產生器720立刻與資料對正,且不需要在記憶體內佇列或儲存資料。在接收到包含在CRC欄550內的CRC值後,CRC驗證器740可比較CRC欄550內的值與CRC產生器720所產生的值,以決定CRC錯誤是否存在。步驟870,方法800結束。At step 860, the CRC generator is energized. After being enabled, CRC generator 720 will construct an existing CRC value generated using the unique style of preloading. As a result, the CRC generator 720 immediately aligns with the data and does not need to queue or store the data in memory. Upon receiving the CRC value contained in CRC column 550, CRC verifier 740 can compare the value in CRC column 550 with the value generated by CRC generator 720 to determine if a CRC error is present. At step 870, method 800 ends.
通常,在資料傳輸期間,CRC值被用來決定傳輸鏈是否有使資料訛誤的問題。在本發明的另一態樣中,CRC值被用來運送與系統錯誤及狀態相關的資訊。按此方式,訊息內的CRC欄可被用來更有效率地支援傳輸鏈之問題、系統狀態或錯誤資訊的識別。Usually, during data transmission, the CRC value is used to determine if the transmission chain has a problem that corrupts the data. In another aspect of the invention, the CRC value is used to carry information related to system errors and status. In this way, the CRC field within the message can be used to more efficiently support the identification of transmission chain problems, system status or error information.
在本發明的一實施例中,CRC欄資料被訛誤以簡單地指示系統傳輸資料有些問題,且因此所接收的資料可能有問題。例如,在某些情況中,從MDDI鏈210離開的資料可能因為MDDI封包建構器450接收進入之資料不夠快而被訛誤。即使可用於封包的資料不足,按MDDI的規格,一封包仍應被傳送。因此,即使一封包被傳送,該資料可能無效,或在某些方面不充分。In an embodiment of the invention, the CRC column data is delayed to simply indicate that the system is transmitting data with some problems, and thus the received data may be problematic. For example, in some cases, data leaving the MDDI chain 210 may be corrupted because the MDDI packet constructor 450 receives incoming data that is not fast enough. Even if there is not enough data available for the packet, a packet should still be transmitted according to MDDI specifications. Therefore, even if a package is delivered, the material may be invalid or insufficient in some respects.
在此情況,該CRC值(諸如參數CRC 670或像素資料CRC 680)可被故意訛誤,以使MDDI客戶端206可辨識出發生傳輸之封包的完整性受損之問題。在MDDI規格中,此為指示MDDI客戶端206該資料有問題的方法。或者,跟在含有錯誤之封包後需傳送另一個訊息,專實上是說“我所傳送的上一個封包是壞的”。In this case, the CRC value (such as parameter CRC 670 or pixel data CRC 680) can be deliberately delayed so that MDDI client 206 can recognize the problem of compromised integrity of the transmitted packet. In the MDDI specification, this is a method of indicating that the MDDI client 206 has a problem with the data. Or, after sending the packet with the error, you need to send another message, specifically saying "The last packet I sent is bad."
當MDDI客戶端206接收到一封包內具有被故意訛誤的CRC值時,其要決定如何處理該封包。可發展偵測及決定如何處理具有被故意訛誤之CRC值之封包的演算法。對某些類型的封包而言,MDDI客戶端206可簡單地記錄CRC錯誤,並繼續使用該資料。然而在其它情況中,MDDI客戶端206可將所接收的封包丟棄,並請求新的封包。When the MDDI client 206 receives a CRC value with a deliberate error in a packet, it decides how to process the packet. Algorithms for detecting and deciding how to handle packets with deliberately delayed CRC values can be developed. For certain types of packets, the MDDI client 206 can simply log a CRC error and continue to use the material. In other cases, however, MDDI client 206 may discard the received packet and request a new packet.
例如,在視訊封包(如視訊流封包600)內,如果像素資料CRC值680被故意訛誤,MDDI客戶端220不會通知MDDI客戶端220外部的邏輯有封包被訛誤。在此情況,在提供任何錯誤通知的分類前,所接收的資料會被緩衝。在此,沒有足夠的記憶體可用來緩衝所有潛在的視訊資料(即,要被顯示的所有像素資料)。因此,像素資料一旦被接收,即被提供給顯示器。結果是如果該視訊資訊內的某處有CRC錯誤,要停止使用該視訊資訊為時已晚。在此情況,除了記錄該問題已發生之外,不做任何動作。綜言之,如果像素資料內發生故意訛誤的CRC值且不在參數資料內,則MDDI客戶端僅簡單地將CRC錯誤記錄在CRC計數器內,但仍使用後續的像素資料。另一方面,如果一參數CRC值被故意地訛誤,則MDDI客戶端將不使用該像素資料。For example, in a video packet (such as video stream packet 600), if the pixel data CRC value 680 is intentionally corrupted, the MDDI client 220 does not notify the MDDI client 220 that the logic outside the packet is corrupted. In this case, the received data is buffered before the classification of any error notifications is provided. Here, there is not enough memory available to buffer all potential video data (ie, all pixel data to be displayed). Therefore, once the pixel data is received, it is provided to the display. The result is that if there is a CRC error somewhere in the video message, it is too late to stop using the video message. In this case, no action is taken except that the problem has been recorded. In summary, if a deliberately corrupted CRC value occurs in the pixel data and is not in the parameter data, the MDDI client simply records the CRC error in the CRC counter, but still uses the subsequent pixel data. On the other hand, if a parameter CRC value is intentionally corrupted, the MDDI client will not use the pixel data.
圖9是循環冗餘產生器系統454的圖,其提供故意訛誤CRC值的機制。循環冗餘產生器系統454包括CRC產生器910、CRC訛誤器920、錯誤偵測器930、錯誤值產生器940。9 is a diagram of a cyclic redundancy generator system 454 that provides a mechanism to deliberately delay CRC values. The cyclic redundancy generator system 454 includes a CRC generator 910, a CRC error detector 920, an error detector 930, and an error value generator 940.
CRC產生器910根據要被包括在要在數位傳輸鏈(例如但不限於MDDI鏈210)上傳送之資料封包內的資料產生CRC值。The CRC generator 910 generates a CRC value based on the data to be included in the data packet to be transmitted on the digital transmission chain (e.g., but not limited to, the MDDI chain 210).
CRC訛誤器920訛誤CRC產生器910所產生的CRC值,以運送主機端或遠端系統狀態資訊。例如,如果介面系統230無法夠快地提供資料給MDDI主機端222以正確地填入MDDI封包,CRC訛誤器920故意地訛誤要被傳送之封包的CRC值。The CRC error 920 corrupts the CRC value generated by the CRC generator 910 to carry host or remote system status information. For example, if interface system 230 is unable to provide information to MDDI host 222 quickly enough to properly fill the MDDI packet, CRC error 920 deliberately delays the CRC value of the packet to be transmitted.
錯誤偵測器930偵測主機系統(諸如MDDI主機端222)內的錯誤狀況,或根據接收自介面系統230的資訊接收錯誤狀況資訊,並提供指令給CRC訛誤器920以故意地訛誤CRC值。在一實施例中,錯誤偵測器930簡單地偵測有錯之處,但不決定特定的錯誤狀況。在稍後的實施例中,錯誤偵測器930將錯誤的種類運送至錯誤值產生器940。錯誤值產生器940指令CRC訛誤器920以指示系統錯誤類型或狀態狀況的特定值取代CRC產生器910所產生的CRC值。Error detector 930 detects an error condition within the host system (such as MDDI host 222) or receives error status information based on information received from interface system 230 and provides instructions to CRC error 920 to intentionally delay the CRC value. In one embodiment, error detector 930 simply detects errors, but does not determine a particular error condition. In a later embodiment, the error detector 930 carries the type of error to the error value generator 940. The error value generator 940 instructs the CRC error 920 to replace the CRC value generated by the CRC generator 910 with a particular value indicating the type of system error or status condition.
當訛誤CRC值時,必須選擇演算法以確保故意的訛誤不會導向對應於有效資料的CRC值,且因此不會被位在傳輸鏈之接收端上的CRC檢查器接收做為獨有的CRC值。一可能的演算法可識別這些不是由有效資料所產生的CRC值,並使用這些值做為故意地訛誤一CRC值的獨有值。根據本文之教示,熟悉此方面技術之人士將可決定其它的演算法,這些都包括在本發明的精神與範圍內。When the CRC value is delayed, the algorithm must be chosen to ensure that the intentional corruption does not lead to the CRC value corresponding to the valid data, and therefore will not be received by the CRC checker at the receiving end of the transmission chain as a unique CRC. value. A possible algorithm can identify these CRC values that are not generated by valid data and use these values as a unique value that intentionally delays a CRC value. In view of the teachings herein, those skilled in the art will be able to determine other algorithms, which are included within the spirit and scope of the present invention.
圖10是CRC檢查器456的圖,其可翻譯來自CRC產生器系統454之被故意訛誤的CRC值。CRC檢查器456包括CRC錯誤值偵測器1010、CRC產生器1020及CRC驗證器1030。CRC錯誤值偵測器1010偵測接收自數位傳輸鏈之資料封包之CRC欄內的值。CRC錯誤值偵測器1010偵測CRC值何時對應於識別系統錯誤狀況之被故意訛誤的CRC值。當對應於系統錯誤狀況的CRC值被識別時,CRC錯誤值偵測器1010通知接收之客戶端(如MDDI客戶端206)的主機處理器。主機處理器即根據被偵測之錯誤的類型採取動作。CRC產生器1020根據所接收的資料流產生CRC值。CRC驗證器1030偵測根據所接收之資料流而產生的CRC值與在所接收之資料流內傳送之CRC值間的差異。CRC產生器1020與CRC驗證器1030以熟悉此方面技術之人士所習知的傳統方式操作。10 is a diagram of a CRC checker 456 that can translate a deliberately corrupted CRC value from the CRC generator system 454. The CRC checker 456 includes a CRC error value detector 1010, a CRC generator 1020, and a CRC verifier 1030. The CRC error value detector 1010 detects the value in the CRC column of the data packet received from the digital transmission chain. The CRC error value detector 1010 detects when the CRC value corresponds to a CRC value that was intentionally corrupted to identify a system error condition. When the CRC value corresponding to the system error condition is identified, the CRC error value detector 1010 notifies the host processor of the receiving client (e.g., MDDI client 206). The host processor takes action based on the type of error being detected. The CRC generator 1020 generates a CRC value based on the received data stream. The CRC verifier 1030 detects the difference between the CRC value generated based on the received data stream and the CRC value transmitted within the received data stream. CRC generator 1020 and CRC verifier 1030 operate in a conventional manner as is known to those skilled in the art.
圖11是以故意訛誤的CRC值在數位傳輸鏈上傳送系統錯誤資訊之方法1100的流程圖。方法1100開始於步驟1110。在步驟1110中,主機系統或相關系統內錯誤被偵測。例如,錯誤偵測器930偵測MDDI主機端222或介面系統230內的錯誤。在步驟1120中,CRC值被產生。例如CRC產生器910產生與被傳送之封包相關之資料的CRC值。在步驟1130,CRC值被訛誤。例如,錯誤偵測器930指令CRC訛誤器920訛誤一CRC值。方法1110在步驟1140結束。請注意,雖然方法1100是參考關於MDDI的系統描述,但方法1100可應用於使用CRC的任何數位傳輸系統。11 is a flow diagram of a method 1100 of transmitting system error information over a digital transmission chain with a deliberately delayed CRC value. Method 1100 begins at step 1110. In step 1110, an error is detected within the host system or associated system. For example, error detector 930 detects errors within MDDI host 222 or interface system 230. In step 1120, a CRC value is generated. For example, CRC generator 910 generates a CRC value for the material associated with the transmitted packet. At step 1130, the CRC value is corrupted. For example, error detector 930 instructs CRC error detector 920 to delay a CRC value. The method 1110 ends at step 1140. Note that while method 1100 is directed to a system description with respect to MDDI, method 1100 can be applied to any digital transmission system that uses CRC.
在本發明中,CRC欄也可用來傳送代表錯誤類型的錯誤碼資訊。無論何時,在主機端與客戶端間僅資料封包與CRC被傳送,其內沒有容納錯誤碼。唯一的錯誤是失去同步。否則,吾人必須等待鏈結脫離不佳的資料傳輸路徑或管線,接著重置鏈結並繼續。不幸的是,此會虛耗時間且多少有些效率不佳。In the present invention, the CRC field can also be used to transmit error code information representing the type of error. At any time, only the data packet and the CRC are transmitted between the host side and the client, and no error code is accommodated therein. The only mistake is to lose synchronization. Otherwise, we must wait for the link to break away from the poor data transfer path or pipeline, then reset the link and continue. Unfortunately, this can be time consuming and somewhat inefficient.
在一實施例中使用一已發展的新技術,其中,封包的CRC部分被用來傳送錯誤碼資訊。亦即,管理資料傳輸之處理器或裝置,產生用以指示通信處理或鏈結內可能發生預先定義之特定錯誤或瑕疵(flaw)的一或多個錯誤碼。當遇到錯誤時,適當的錯誤碼被產生,並使用封包之CRC的位元傳送。亦即,CRC值被所要的錯誤碼覆載(overloaded)或覆寫(overwritten),該錯誤碼可在接收端被監視CRC欄之值的錯誤監視器或檢查器偵測到。在這些狀況中,基於某些原因使錯誤碼與CRC值匹配,傳送錯誤的互補以防止混淆。In an embodiment a new and developed technique is used in which the CRC portion of the packet is used to convey error code information. That is, the processor or device that manages the transmission of data generates one or more error codes to indicate that a particular error or flaw may be pre-defined within the communication process or link. When an error is encountered, an appropriate error code is generated and transmitted using the bit of the CRC of the packet. That is, the CRC value is overwritten or overwritten by the desired error code, which can be detected at the receiving end by an error monitor or checker that monitors the value of the CRC column. In these situations, the error code is matched to the CRC value for some reason, and the complement of the error is transmitted to prevent confusion.
在一實施例中,為提供強固的錯誤譬告及偵測系統,在錯誤被偵測到後,可使用一連串被傳送或送出的封包(通常是所有的)傳送錯誤碼數次。此動作一直發生,直至產生錯誤狀況的點從系統中清除,在該點,正常的CRC位元被傳送,不被另一值覆載。In one embodiment, to provide a robust error reporting and detection system, a series of transmitted or sent packets (usually all) may be transmitted a number of times after the error is detected. This action occurs until the point at which the error condition occurred is cleared from the system, at which point the normal CRC bit is transmitted and not overwritten by another value.
此項覆載CRC值的技術提供對系統錯誤極快速的反應,同時,所使用的額外位元或欄位量最少。This technique of overlaying CRC values provides an extremely fast response to system errors while minimizing the number of extra bits or fields used.
如圖12所示,圖中所顯示的CRC覆寫機制或裝置1200使用錯誤偵測器或偵測機構1202,諸如錯誤偵測器930,其可成為前所描述或習知之其它電路的一部分,偵測通信鏈結或處理中所呈現或存在的錯誤。錯誤碼產生器或機構1204,諸如CRC值產生器940,其可成為其它電路的一部分,或使用諸如查找表技術,以儲存預選擇的錯誤訊息,當發生曾被偵測過之預先定義的特定錯誤或瑕疵時,其產生一或多個錯誤碼用以指示。吾人很容易瞭解,如有需要,裝置1202及1204可形成為單一電路或裝置,或可成為其它習知處理器及單元所用之可程式步驟序列的一部分。As shown in FIG. 12, the CRC overwrite mechanism or device 1200 shown in the figure uses an error detector or detection mechanism 1202, such as error detector 930, which may be part of any of the other circuits previously described or known. Detect errors that are present or present in a communication link or process. An error code generator or mechanism 1204, such as CRC value generator 940, which may be part of other circuitry, or use, for example, lookup table technology to store pre-selected error messages when a predefined specificity has been detected When an error or defect occurs, it generates one or more error codes for indication. It will be readily apparent to those skilled in the art that devices 1202 and 1204 can be formed as a single circuit or device, or can be part of a sequence of programmable steps for other conventional processors and units.
CRC值比較器或比較機構1206(諸如CRC驗證器1030)用以檢查所選擇的錯誤碼或碼,是否與被傳送的CRC值相同。如果相同,則一互補碼產生器或產生機構或裝置被用來提供錯誤碼的互補,以至於不會誤解原始的CRC樣式或值,並使偵測設計混淆或複雜。接著,錯誤碼選擇器或選擇機構單元或裝置1210選擇想要插入或覆寫的錯誤碼或值,或其各自適當的互補。錯誤碼CRC覆寫器或覆寫機制或機構1212(諸如CRC訛誤器920)是一接收資料流、封包、及想要插入及覆寫對應或適當CRC值之碼的裝置,以便將所要的錯誤碼傳送給接收裝置。A CRC value comparator or comparison mechanism 1206 (such as CRC verifier 1030) is used to check if the selected error code or code is the same as the transmitted CRC value. If the same, a complementary code generator or generation mechanism or device is used to provide complementation of the error code so that the original CRC pattern or value is not misinterpreted and the detection design is confusing or complicated. Next, the error code selector or selection mechanism unit or device 1210 selects the error code or value that it is desired to insert or overwrite, or its respective appropriate complement. The error code CRC overrider or overwrite mechanism or mechanism 1212 (such as CRC error 920) is a means for receiving data streams, packets, and codes that are intended to insert and overwrite corresponding or appropriate CRC values in order to resolve the desired error. The code is transmitted to the receiving device.
如前所述,可使用一連串的封包多次傳送錯誤碼,因此,在處理期間,覆寫器1212可利用記憶體儲存單元保存碼的拷貝,或視需要從先前的單元或用來儲存或保存這些碼之值的已知儲存位置喚回這些碼。As previously mentioned, the error code can be transmitted multiple times using a series of packets, so during processing, the overlayer 1212 can utilize the memory storage unit to save a copy of the code, or to store or save from the previous unit as needed. The known storage locations of the values of these codes recall these codes.
圖13及14顯示實施圖12之覆寫機制之一般處理的其它細節。在圖13中,在步驟1302偵測到通信資料或處理中的一或多個錯誤,且在步驟1304選擇一錯誤碼用以指示此狀況。在此同時,或在適當的點,在步驟1306檢查要被替換的CRC值,並在步驟1308與所要的錯誤碼比較。如先前的討論,此比較的結果,是關於所要的碼或其它的代表值,是否與目前CRC值相同的決定。如果相同,則處理前進到步驟1312,在此,視需要選擇互補(或在某些情況是其它代表值)做為要插入的碼。在步驟1310及1314決定所要插入的錯誤碼或值為何,即,選擇適當的碼供插入。這些步驟分開說明的目的是為能清晰闡明,通常是根據步驟1308決定的輸出做一次選擇。最後,在步驟1316,適當的值被覆寫到CRC位置內,供與被該處理所標定的封包一起傳送。Figures 13 and 14 show additional details of the general process of implementing the overwrite mechanism of Figure 12. In FIG. 13, one or more errors in the communication material or process are detected in step 1302, and an error code is selected in step 1304 to indicate this condition. At the same time, or at an appropriate point, the CRC value to be replaced is checked at step 1306 and compared to the desired error code at step 1308. As discussed earlier, the result of this comparison is a decision as to whether the desired code or other representative value is the same as the current CRC value. If they are the same, then processing proceeds to step 1312 where complementary (or in some cases other representative values) is selected as the code to be inserted. At steps 1310 and 1314, it is determined what error code or value to insert, i.e., the appropriate code is selected for insertion. The purpose of these separate steps is to make it clear that it is usually a selection based on the output determined in step 1308. Finally, at step 1316, the appropriate value is overwritten into the CRC location for transmission with the packet calibrated by the process.
在封包接收側,如圖14所示,在步驟1422監視封包的CRC值。通常,CRC值被系統內的一或多項處理監視,以決定傳送的資料內是否出現錯誤,以及是否請求再傳送該封包或多個封包,或禁止進一步的操作等,其中某些已在前文中討論過。此監視的一部分是該資訊也可用來比較各值,以得知或預選錯誤碼或代表值,並偵測錯誤的出現。或者,可實施一獨立的錯誤偵測處理及監視。在步驟1424,如果一碼呈現要存在,其被擷取,或否則被註記供進一步處理。在步驟1426決定此是否為實際的碼或為互補,在此情況,可使用附加步驟1428將該值轉換成所要的碼值。無論是何情況,在步驟1430,所擷取的碼、互補、或其它復原的值被用來偵測構成被傳送的碼發生何種錯誤。On the packet receiving side, as shown in FIG. 14, the CRC value of the packet is monitored in step 1422. Typically, the CRC value is monitored by one or more processes within the system to determine if an error has occurred in the transmitted data, and whether to request the retransmission of the packet or packets, or to prohibit further operations, etc., some of which are in the foregoing Discussed. Part of this monitoring is that the information can also be used to compare values to know or pre-select an error code or representative value and detect the occurrence of an error. Alternatively, an independent error detection process and monitoring can be implemented. At step 1424, if a code presentation is to be present, it is retrieved or otherwise noted for further processing. At step 1426 it is determined if this is the actual code or is complementary, in which case an additional step 1428 can be used to convert the value to the desired code value. In either case, at step 1430, the retrieved code, complement, or other recovered value is used to detect what constitutes the error in the transmitted code.
已提出本發明的例示性實施例。本發明並不限於這些例。本文提出這些例的目的是為說明而非限制。熟悉此方面技術之人士根據本文內的教導應明瞭各種的替代物(包括本文所描述之各例的相等物、延伸物、衍生物、或岐變物等)也包含在本文內。這些替代都在本發明的精神與範圍內。Illustrative embodiments of the invention have been presented. The invention is not limited to these examples. The examples are presented herein for purposes of illustration and not limitation. It will be apparent to those skilled in the art from this disclosure that various alternatives, including equivalents, extensions, derivatives, or mutagenesis of the various examples described herein, are also included herein. These alternatives are within the spirit and scope of the invention.
本說明書中所提及併入本文參考的所有出版品、專利及專利申請案指示本發明所屬之技術的技術層次具有相同範圍,如同各個出版品、專利及專利申請案是特別及各別指出要併入本文參考。All publications, patents, and patent applications referred to in this specification are hereby incorporated by reference in their entirety to the extent to the extent of Incorporated herein by reference.
100...數位資料裝置介面100. . . Digital data device interface
1010...CRC錯誤值產生器1010. . . CRC error value generator
1020...CRC產生器1020. . . CRC generator
1030...CRC驗證器1030. . . CRC validator
105...通信鏈105. . . Communication chain
110...訊息翻譯器模組110. . . Message translator module
120...內容模組120. . . Content module
1200...CRC覆寫機構或裝置1200. . . CRC overwriting mechanism or device
1202...錯誤偵測器或偵測機構1202. . . Error detector or detection mechanism
1204...錯誤碼產生器或機構1204. . . Error code generator or mechanism
1206...CRC值比較器或比較機構1206. . . CRC value comparator or comparison mechanism
1210...錯誤碼選擇器或選擇機構單元或裝置1210. . . Error code selector or selection mechanism unit or device
1212...覆寫器1212. . . Overwrite
130...訊息翻譯器130. . . Message translator
140...鏈控制器140. . . Chain controller
150...數位裝置150. . . Digital device
160...系統控制器160. . . System controller
170...鏈結控制器170. . . Link controller
180...周邊裝置180. . . Peripheral device
190...控制方塊190. . . Control block
200...細胞式電話200. . . Cellular phone
202...機身202. . . body
204...行動站台數據機基頻晶片204. . . Mobile station data base frequency chip
206...MDDI客戶端206. . . MDDI client
208...MDDI主機端208. . . MDDI host
210...MDDI鏈210. . . MDDI chain
212...MDDI鏈212. . . MDDI chain
214...上蓋214. . . Upper cover
216...液晶顯示器模組216. . . LCD module
218...照相機模組218. . . Camera module
220...MDDI客戶端220. . . MDDI client
222...MDDI主機端222. . . MDDI host
230...介面系統230. . . Interface system
232...介面系統232. . . Interface system
250...鉸鏈250. . . Hinge
252...鉸鏈252. . . Hinge
254...可彎曲的耦合件254. . . Flexible coupling
302...照相機訊息翻譯器302. . . Camera message translator
303...I2C主匯流排303. . . I2C main bus
304...照相機視頻介面304. . . Camera video interface
306...I2C主匯流排306. . . I2C main bus
308...馬達控制器308. . . Motor controller
310...閃光燈/白光LED計時器310. . . Flash/white LED timer
322...透鏡322. . . lens
324...閃光燈/白光LED324. . . Flash/white LED
410...微處理器介面410. . . Microprocessor interface
420...命令處理器420. . . Command processor
430...暫存器430. . . Register
440...直接記憶體存取介面440. . . Direct memory access interface
450...MDDI封包建構器450. . . MDDI packet constructor
452...控制封包產生器452. . . Control packet generator
454...CRC產生器454. . . CRC generator
456...CRC檢查器456. . . CRC checker
460...資料聯繫交換模組460. . . Data contact switch module
470...資料墊470. . . Data pad
471...CRC暫存器471. . . CRC register
472...多工器472. . . Multiplexer
473...多工器473. . . Multiplexer
474...AND閘474. . . AND gate
475...NOR閘475. . . NOR gate
476...互斥-OR(XOR)閘476. . . Mutually exclusive -OR (XOR) gate
477...AND閘477. . . AND gate
500...子框標頭封包格式500. . . Sub-frame header packet format
510...封包長度510. . . Packet length
520...封包類型520. . . Packet type
530...獨有字元530. . . Unique character
540...子框標頭參數540. . . Sub-frame header parameter
550...循環冗餘檢查550. . . Cyclic redundancy check
600...視訊流封包格式600. . . Video stream packet format
610...封包長度欄610. . . Packet length column
615...封包類型欄615. . . Packet type column
620...客戶端ID欄620. . . Client ID column
625...視訊格式欄625. . . Video format bar
630...像素資料屬性欄630. . . Pixel data attribute bar
635...X左緣欄635. . . X left edge bar
640...Y頂緣欄640. . . Y top edge bar
645...X右緣欄645. . . X right edge bar
650...Y底緣欄650. . . Y bottom edge
655...X開始欄655. . . X start bar
660...Y開始欄660. . . Y start bar
665...像素計數欄665. . . Pixel count bar
670...參數CRC欄670. . . Parameter CRC column
675...像素資料欄675. . . Pixel data column
680...像素資料CRC欄680. . . Pixel data CRC column
710...獨有樣式偵測器710. . . Unique style detector
720...CRC產生器720. . . CRC generator
730...CRC初始化器730. . . CRC initializer
740...CRC驗證器740. . . CRC validator
910...CRC產生器910. . . CRC generator
920...CRC訛誤器920. . . CRC error
930...錯誤偵測器930. . . Error detector
940...錯誤碼產生器940. . . Error code generator
在各圖中,相同的參考編號指示相同或功能類似的單元。參考編號中最左的數字指示該單元第一次出現的圖。In the respective figures, the same reference numerals indicate the same or functionally similar elements. The leftmost digit in the reference number indicates the first occurrence of the unit.
圖1是數位資料裝置介面的圖,耦合至數位裝置及周邊裝置。1 is a diagram of a digital data device interface coupled to a digital device and peripheral devices.
圖2是具有上蓋與機身之細胞式電話的方塊圖,其使用MDDI介面提供高速資料通信。2 is a block diagram of a cellular telephone having an upper cover and a body that provides high speed data communication using the MDDI interface.
圖3是具有照相機之細胞式電話的上蓋圖。Figure 3 is a top cover view of a cell phone with a camera.
圖4A是MDDI主機的圖。4A is a diagram of an MDDI host.
圖4B是封包從MDDI封包包裝器到MDDI鏈的流程圖。Figure 4B is a flow diagram of the packet from the MDDI packet wrapper to the MDDI chain.
圖4C是MDDI封包包裝器從MDDI鏈接收封包的流程圖。4C is a flow diagram of the MDDI packet wrapper receiving a packet from the MDDI chain.
圖4D是CRC檢查器的圖。4D is a diagram of a CRC checker.
圖4E顯示CRC之產生的時序圖。Figure 4E shows a timing diagram of the generation of CRC.
圖4F顯示CRC之接收的時序圖。Figure 4F shows a timing diagram for the reception of the CRC.
圖5是子框標頭封包格式圖。Figure 5 is a diagram of a sub-frame header packet format.
圖6是視訊流封包格式圖。Figure 6 is a video stream packet format diagram.
圖7是CRC檢查器。Figure 7 is a CRC checker.
圖8是初始化一包括CRC產生器預填入之鏈結的方法流程圖。Figure 8 is a flow diagram of a method of initializing a link including a pre-filled CRC generator.
圖9是CRC產生器系統的圖,其提供故意訛誤CRC值的機制。9 is a diagram of a CRC generator system that provides a mechanism to deliberately delay CRC values.
圖10是CRC檢查器的圖,其可解釋被故意訛誤的CRC值。Figure 10 is a diagram of a CRC checker that can explain a CRC value that is intentionally corrupted.
圖11是在數位傳輸鏈上傳送經由故意訛誤CRC值之系統錯誤資訊的方法流程圖。11 is a flow diagram of a method of transmitting system error information via a deliberately corrupted CRC value over a digital transmission chain.
圖12是CRC覆寫機制圖。Figure 12 is a diagram of a CRC overwrite mechanism.
圖13是CRC覆寫方法的流程圖。Figure 13 is a flow chart of the CRC overwrite method.
圖14是接收已被覆寫之CRC值之方法的流程圖。Figure 14 is a flow diagram of a method of receiving a CRC value that has been overwritten.
454...CRC產生器454. . . CRC generator
910...CRC產生器910. . . CRC generator
920...CRC訛誤器920. . . CRC error
930...錯誤偵測器930. . . Error detector
940...錯誤碼產生器940. . . Error code generator
Claims (24)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63085304P | 2004-11-24 | 2004-11-24 | |
US63282504P | 2004-12-02 | 2004-12-02 | |
US11/285,391 US8667363B2 (en) | 2004-11-24 | 2005-11-23 | Systems and methods for implementing cyclic redundancy checks |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200644445A TW200644445A (en) | 2006-12-16 |
TWI400889B true TWI400889B (en) | 2013-07-01 |
Family
ID=37600922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW94141287A TWI400889B (en) | 2004-11-24 | 2005-11-24 | Systems and methods for implementing cyclic redundancy checks |
Country Status (2)
Country | Link |
---|---|
AR (1) | AR051245A1 (en) |
TW (1) | TWI400889B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI697771B (en) * | 2018-06-21 | 2020-07-01 | 友達光電股份有限公司 | Data correcting system and method and data correcting device thereof |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8356331B2 (en) * | 2007-05-08 | 2013-01-15 | Qualcomm Incorporated | Packet structure for a mobile display digital interface |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5422894A (en) * | 1993-06-25 | 1995-06-06 | Oki Electric Industry Co., Ltd. | Real-time convolutional decoder with block synchronizing function |
-
2005
- 2005-11-24 TW TW94141287A patent/TWI400889B/en not_active IP Right Cessation
- 2005-11-24 AR ARP050104913A patent/AR051245A1/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5422894A (en) * | 1993-06-25 | 1995-06-06 | Oki Electric Industry Co., Ltd. | Real-time convolutional decoder with block synchronizing function |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI697771B (en) * | 2018-06-21 | 2020-07-01 | 友達光電股份有限公司 | Data correcting system and method and data correcting device thereof |
Also Published As
Publication number | Publication date |
---|---|
AR051245A1 (en) | 2006-12-27 |
TW200644445A (en) | 2006-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8667363B2 (en) | Systems and methods for implementing cyclic redundancy checks | |
CA2698730C (en) | Systems and methods for implementing cyclic redundancy checks | |
CN101444027B (en) | Systems and methods for implementation of cyclic redundancy check | |
KR101166734B1 (en) | Generating and implementing a signal protocol and interface for higher data rates | |
ES2323129T3 (en) | HIGH SPEED DATA INTERFACE. | |
WO2022078426A1 (en) | Data transmission method and system, and computer-readable storage medium | |
WO2008113168A1 (en) | Automated compliance testing for video devices | |
TWI400889B (en) | Systems and methods for implementing cyclic redundancy checks | |
EP3671720B1 (en) | Real-time on-chip data transfer system | |
KR100450320B1 (en) | Method/Module of Digital TV image signal processing with Auto Error Correction | |
US20090187672A1 (en) | Packet structure for a mobile display digital interface | |
US20070294595A1 (en) | Detecting Errors In Transmitted Data | |
KR101109904B1 (en) | A packet structure for a mobile display digital interface | |
JP2008017250A (en) | Data transfer controller and electronic device | |
JP5311199B2 (en) | Test equipment | |
CN116956321A (en) | Method, device and system for encrypting chip data | |
WO2015151779A1 (en) | Electronic device and method for determining cable adaptability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |