CCIe協(xié)議上的錯誤檢測能力的制作方法
【專利摘要】提供了一種設(shè)備,包括共享總線、從設(shè)備和主設(shè)備。從設(shè)備可耦合至共享總線。主設(shè)備可耦合至控制數(shù)據(jù)總線并且被適配成管理共享總線上的通信。共享總線上的傳輸是被編碼到三進制數(shù)中的多個比特,這些三進制數(shù)隨后被轉(zhuǎn)碼成碼元以供傳輸,并且該多個比特中的3個最低有效位或者最低有效位被用于傳輸?shù)腻e誤檢測。
【專利說明】CC Ie協(xié)議上的錯誤檢測能力
[0001]相關(guān)申請的交叉引用
[0002]本專利申請要求于2013年10月9日提交的題為“Error Correct1n CapabilityOver CCIe Bus(CCIe總線上的糾錯能力)”的美國臨時申請申請?zhí)?1/889,030,以及于2014年2月28 日提交的題為 “Bit Allocat1n Over A Camera Control Interface ExtendedBus (相機控制接口擴展總線上的比特分配)”的美國臨時申請申請?zhí)朜0.61/946,647的優(yōu)先權(quán),這兩篇申請均被轉(zhuǎn)讓給本申請受讓人并且通過援引被明確納入于此。
[0003]領(lǐng)域
[0004]本公開涉及實現(xiàn)共享總線上的高效操作,尤其涉及促成共享相機控制接口擴展(CCIe)總線上的錯誤檢測。
【背景技術(shù)】
[0005]I2C(也稱為I2C)是被用于將低速外圍設(shè)備附連至母板、嵌入式系統(tǒng)、蜂窩電話或其他電子設(shè)備的多主控串行單端總線。I2C總線包括具有7比特尋址的時鐘(SCL)和數(shù)據(jù)(SDA)線。該總線具有兩個設(shè)備角色:主設(shè)備和從設(shè)備。主設(shè)備是生成時鐘并發(fā)起與從設(shè)備的通信的設(shè)備。從設(shè)備是接收時鐘并在被主設(shè)備尋址時進行響應(yīng)的設(shè)備。I2C總線是多主控總線,這意味著可存在任何數(shù)目的主設(shè)備。另外,主角色和從角色可以在消息之間(在STOP被發(fā)送之后)改變。12C定義了基本類型的消息,其中每種消息始于開始(START)并結(jié)束于停止(STOP)。
[0006]在相機實現(xiàn)的此上下文中,單向傳輸可被用于從傳感器捕捉圖像并向基帶處理器中的存儲器傳送此類圖像數(shù)據(jù),而控制數(shù)據(jù)可在該基帶處理器與傳感器以及其他外圍設(shè)備之間交換。在一個示例中,相機控制接口(CCI)協(xié)議可被用于基帶處理器與圖像傳感器(和/或一個或多個從設(shè)備)之間的此類控制數(shù)據(jù)。在一個示例中,CCI協(xié)議可在圖像傳感器與基帶處理器之間的I2C串行總線上實現(xiàn)。
[0007]在共享總線的諸設(shè)備之間的傳輸中提供錯誤檢測將是期望的。
[0008]概述
[0009]提供了一種設(shè)備,包括共享總線、從設(shè)備和主設(shè)備。從設(shè)備可耦合至共享總線。主設(shè)備可耦合至控制數(shù)據(jù)總線并且被適配成管理共享總線上的通信。共享總線上的傳輸是被編碼到三進制數(shù)中的多個比特,這些三進制數(shù)隨后被轉(zhuǎn)碼成碼元以供傳輸,并且該多個比特中的3個最低有效位或者最低有效位被用于傳輸?shù)腻e誤檢測。
[0010]共享總線可以是雙線總線,并且該雙線總線中的兩條線均被用于傳輸碼元。時鐘信號可被嵌入在碼元到碼元轉(zhuǎn)變內(nèi)。從設(shè)備可實現(xiàn)狀態(tài)機邏輯電路,該狀態(tài)機邏輯電路檢測時鐘信號中的錯誤的時鐘脈沖缺失和錯誤的額外時鐘脈沖。
[0011]在一個示例中,該多個比特可以是20比特序列。將3個最低有效位用于錯誤檢測保證了對整個20比特序列中的錯誤的檢測。另外,第二和第三最低有效位的使用可以被靈活地分配給數(shù)據(jù)傳輸或錯誤檢測。在3個最低有效位被用于錯誤檢測時,這3個最低有效位的值可以被設(shè)置成恒定的二進制值“000”或“111”。
[0012]將最低有效位用于錯誤檢測僅在約50%的時間保證對整個20比特序列中的單碼元錯誤的檢測。在一個示例中,在僅最低有效位被用于錯誤檢測時,該最低有效位的值被設(shè)置成恒定的二進制值“I”或“O”。
[0013]根據(jù)一個方面,提供了一種包括總線接口和處理電路的發(fā)射機設(shè)備。總線接口可用于將發(fā)射機設(shè)備耦合至共享總線(接收方設(shè)備或從設(shè)備耦合至該共享總線)。發(fā)射機設(shè)備可管理或控制共享總線上的通信。該處理電路可被配置成:(a)獲得要在共享總線上傳送的多個比特,其中該多個比特中的3個最低有效位或最低有效位被用于錯誤檢測;(b)將該多個比特轉(zhuǎn)換成三進制數(shù);(C)將該三進制數(shù)的各個數(shù)位轉(zhuǎn)換成順序碼元;(d)將多個碼元組合成字以供傳輸;和/或(e)在共享總線上向接收方設(shè)備傳送該字。時鐘可被嵌入在碼元到碼元轉(zhuǎn)變內(nèi)。共享總線可以是雙線總線,并且該雙線總線中的兩條線均被用于傳輸碼元。該處理電路可以被進一步配置成:(a)計算所傳送比特的校驗和;和/或(b)向接收方設(shè)備傳送所傳送比特的校驗和。該校驗和可被插入在任何的任意字內(nèi)以供傳送給接收方設(shè)備。
[0014]根據(jù)另一方面,提供了一種接收機設(shè)備,包括:總線接口和處理電路??偩€接口可用于耦合至主設(shè)備在其上管理通信的共享總線。該處理電路可被配置成:(a)在共享總線上接收多個碼元;(b)將該多個碼元轉(zhuǎn)換成數(shù)位;(c)將這些數(shù)位組合成三進制數(shù);(d)將該三進制數(shù)轉(zhuǎn)換成比特,其中該多個比特中的3個最低有效位或最低有效位被用于錯誤檢測;和/或(e)基于該多個比特中的3個最低有效位或最低有效位來查明所接收到的多個比特內(nèi)的錯誤。時鐘可被嵌入在多個收到碼元的碼元到碼元轉(zhuǎn)變內(nèi)。共享總線可以是雙線總線,并且該雙線總線中的兩條線均被用于傳輸碼元。接收機設(shè)備可實現(xiàn)狀態(tài)機邏輯電路,該狀態(tài)機邏輯電路檢測時鐘信號中的錯誤的時鐘脈沖缺失和錯誤的額外時鐘脈沖。
[0015]附圖
[0016]在結(jié)合附圖理解下面闡述的詳細描述時,各種特征、本質(zhì)、和優(yōu)點會變得明顯,在附圖中,相像的附圖標記貫穿始終作相應(yīng)標識。
[0017]圖1是解說具有基帶處理器和圖像傳感器并且實現(xiàn)圖像數(shù)據(jù)總線和多模式控制數(shù)據(jù)總線的設(shè)備的框圖。
[0018]圖2解說了時鐘可如何在CCIe模式中被嵌入在碼元到碼元轉(zhuǎn)變內(nèi),由此允許將I2C總線中的兩條線(即,SDA線和SCL線)用于數(shù)據(jù)傳輸。
[0019]圖3是解說用于在發(fā)射機處將數(shù)據(jù)比特轉(zhuǎn)碼成經(jīng)轉(zhuǎn)碼碼元以在這些經(jīng)轉(zhuǎn)碼碼元內(nèi)嵌入時鐘信號的示例性方法的框圖。
[0020]圖4解說了轉(zhuǎn)變數(shù)與順序碼元之間的示例性轉(zhuǎn)換。
[0021 ]圖5解說了轉(zhuǎn)變數(shù)與順序碼元之間的轉(zhuǎn)換。
[0022]圖6解說了用于從最高有效位到最低有效位將二進制比特轉(zhuǎn)換成三進制數(shù)的方法。
[0023]圖7解說了用于從最高有效位到最低有效位將二進制比特轉(zhuǎn)換成三進制數(shù)的發(fā)射機側(cè)邏輯電路。
[0024]圖8解說了用于從最高有效位到最低有效位將三進制數(shù)轉(zhuǎn)換成二進制比特的方法。
[0025]圖9解說了用于將12位三進制數(shù)轉(zhuǎn)換成20比特的接收機側(cè)邏輯電路。
[0026]圖10概念性地解說了比特19(8卩,在比特計數(shù)開始于為比特O的第一比特時的第20比特)大多數(shù)情況下在CCIe協(xié)議中不被使用并且可被用于共享總線上的設(shè)備之間的命令。
[0027]圖11解說了對CCIe模式進入指示符的示例性通用調(diào)用,該CCIe模式進入指示符可由主設(shè)備在共享總線上發(fā)送以向從設(shè)備指示共享總線正在從I2C操作模式切換到CCIe操作模式。
[0028]圖12解說了可由CCIe主設(shè)備(例如,圖1中的處于I2C模式的主設(shè)備)發(fā)布以向所有具有CCIe能力的設(shè)備指示從CCIe模式轉(zhuǎn)變到I2C模式的示例性CCIe調(diào)用。
[0029]圖13解說了示例性CCIe從標識符(SID)字格式。
[0030]圖14解說了示例性CCIe地址字格式。
[0031]圖15解說了示例性寫數(shù)據(jù)字格式。
[0032]圖16解說了示例性讀規(guī)范字格式。
[0033]圖17解說了示例性讀數(shù)據(jù)字格式。
[0034]圖18解說了I2C—個字節(jié)寫數(shù)據(jù)操作的示例性時序圖。
[0035]圖19解說了其中數(shù)據(jù)比特已被轉(zhuǎn)碼成12個碼元以供在SDA線和SCL線上傳送的示例性CCIe傳輸。
[0036]圖20解說了從圖2-10中解說的編碼方案得到的第20比特(比特19)的示例性映射。
[0037]圖21解說了圖20的第20比特(比特19)區(qū)域的示例性映射內(nèi)的子區(qū)域的細節(jié)。
[0038]圖22解說了可能發(fā)生的各種碼元錯誤狀況。
[0039]圖23解說了示出所傳送的碼元序列0321_0321_0321(其轉(zhuǎn)譯成二進制序列0000_0000_0000_0000_0000和三進制數(shù)0000_0000_00003)中的可能錯誤的表以及可如何在3個最低有效位內(nèi)檢測此類錯誤。
[0040]圖24解說了示出所傳送的碼元序列2301_2301_2301(其轉(zhuǎn)譯成二進制序列0100_0000_11011111_1000和三進制數(shù)1111_1111_11113)中的可能錯誤的表以及可如何在3個最低有效位內(nèi)檢測此類錯誤。
[0041 ]圖25解說了示出所傳送的碼元序列3131_3131_3131(其轉(zhuǎn)譯成二進制序列1000_0001 10111111_0000和三進制數(shù)2222_2222_22223)中的可能錯誤的表以及可如何在3個最低有效位內(nèi)檢測此類錯誤。
[0042]圖26解說了示出所傳送的碼元序列0132_3101_3231中的可能錯誤的表以及可如何在3個最低有效位內(nèi)檢測此類錯誤。
[0043]圖27解說了示出所傳送的碼元序列2030_2120_3021中的可能錯誤的表以及可如何在3個最低有效位內(nèi)檢測此類錯誤。
[0044]圖28解說了示出所傳送的碼元序列3231_0132_3101中的可能錯誤的表以及可如何在3個最低有效位內(nèi)檢測此類錯誤。
[0045]圖29解說了CCIe字可如何將3個最低有效位或最低有效位用于錯誤檢測。
[0046]圖30解說了可如何在CCIe字內(nèi)實現(xiàn)8比特校驗和。
[0047]圖31解說了8比特校驗和生成器的示例性實現(xiàn)。
[0048]圖32解說了促成錯誤檢測的示例性CCIe字格式。
[0049]圖33是解說根據(jù)本公開提供的主/從設(shè)備的示例性組件的框圖。
[0050]圖34解說了根據(jù)協(xié)議(例如,CCIe協(xié)議)的一個或多個錯誤檢測特征來促成通信的示例性方法。[0051 ]圖35解說了不具有時鐘錯誤的示例性CCIe字傳輸。
[0052]圖36解說了具有單個時鐘缺失錯誤的示例性CCIe字傳輸。
[0053]圖37解說了具有兩個時鐘缺失錯誤的示例性CCIe字傳輸。
[0054]圖38解說了具有額外時鐘錯誤的示例性CCIe字傳輸。
[0055]詳細描述
[0056]在以下描述中,給出了具體細節(jié)以提供對諸實施例的透徹理解。然而,本領(lǐng)域普通技術(shù)人員將理解,沒有這些具體細節(jié)也可實踐這些實施例。例如,電路可能用框圖示出以免使這些實施例混淆在不必要的細節(jié)中。在其他實例中,公知的電路、結(jié)構(gòu)、和技術(shù)可能不被詳細示出以免使這些實施例不明朗。
[0057]總覽
[0058]已開發(fā)出被稱為CCIe(相機控制接口擴展)的對CCI的擴展,該CCIe將二進制數(shù)轉(zhuǎn)換成三進制數(shù),該三進制數(shù)隨后被轉(zhuǎn)碼成嵌入有時鐘的碼元以供在雙線I2C總線上傳送,從而實現(xiàn)比之前更高的速度。二進制數(shù)首先被轉(zhuǎn)換成三進制數(shù)(即,基數(shù)為3的數(shù))。三進制數(shù)的每一數(shù)位隨后被轉(zhuǎn)換成碼元,其中沒有兩個順序碼元重復并且僅使用有限數(shù)目的碼元(例如,4個碼元)。這些碼元隨后在總線上傳送。
[0059]使用三進制數(shù)空間并且轉(zhuǎn)換成碼元導致額外比特變得可用。在一個示例中,此額外比特可以是最高有效位,從而三進制數(shù)的一區(qū)域變得可用以支持原本不可用的其他功能性。例如,由于可被包括在此額外比特中的額外信息,因而可以促成錯誤檢測和校驗和。
[0060]根據(jù)一個方面,每個所傳送字(例如,20比特字)的最低有效位可被用于檢測可能在傳輸期間出現(xiàn)的約一半錯誤。
[0061]根據(jù)第二方面,靈活的校驗和字被添加到通信協(xié)議以檢測傳輸中的錯誤。該校驗和字可被插入到傳輸中的任何的任意點處。
[0062]根據(jù)第三方面,字內(nèi)的各個比特被安排成使得3個最低有效位可用于整個字上的錯誤檢測。
[0063]根據(jù)第四方面,接收機設(shè)備可維護狀態(tài)機邏輯電路,該狀態(tài)機邏輯電路幫助檢測嵌入在CCIe字的碼元到碼元轉(zhuǎn)變中的時鐘信號內(nèi)的缺失的時鐘脈沖和額外的時鐘脈沖以檢測錯誤。
[0064]示例性操作環(huán)境
[0065]圖1是解說具有基帶處理器104和圖像傳感器106并且實現(xiàn)圖像數(shù)據(jù)總線116和多模式控制數(shù)據(jù)總線108的設(shè)備102的框圖。雖然圖1解說了相機設(shè)備內(nèi)的多模式控制數(shù)據(jù)總線108,但是應(yīng)當清楚,該控制數(shù)據(jù)總線108可在各種不同設(shè)備和/或系統(tǒng)中實現(xiàn)??稍趫D像數(shù)據(jù)總線116(例如,高速差分DPHY鏈路)上將圖像數(shù)據(jù)從圖像傳感器106發(fā)送給基帶處理器104。
[0066]在一個示例中,控制數(shù)據(jù)總線108可以是包括兩條線路(時鐘線(SCL)和串行數(shù)據(jù)線(SDA))的I2C總線。時鐘線SCL可被用來發(fā)送被用于同步I2C總線(控制數(shù)據(jù)總線108)上的所有數(shù)據(jù)傳輸?shù)臅r鐘。數(shù)據(jù)線SDA和時鐘線SCL耦合至I2C總線(控制數(shù)據(jù)總線108)上的所有設(shè)備112、114、和118。在該示例中,可以經(jīng)由控制數(shù)據(jù)總線108在基帶處理器104與圖像傳感器106以及其他外圍設(shè)備118、122和/或124之間交換控制數(shù)據(jù)。I2C的標準時鐘(SCK)速度最高達10KHz。I2C快速模式中的標準時鐘SCL速度最高達400KHz,并且在I2C快速模式+(Fm+)中最高達IMHz。在用于相機應(yīng)用時,I2C總線上的這些操作模式可被稱為相機控制接口(CCI)模式。
[0067]根據(jù)一個方面,可以在多模式控制數(shù)據(jù)總線108上實現(xiàn)改進的操作模式(S卩,大于IMHz的控制數(shù)據(jù)總線傳輸頻率)以支持相機操作。I2C總線上的這種改進的操作模式在用于相機應(yīng)用時可被稱為相機控制接口擴展(CCIe)模式。在CCIe模式中,SCL線和SDA線兩者均可用于傳送數(shù)據(jù),而時鐘被嵌入在這兩條線上的碼元到碼元轉(zhuǎn)變內(nèi)。在該示例中,基帶處理器104包括主設(shè)備112且圖像傳感器106包括從設(shè)備114,主設(shè)備112和從設(shè)備114兩者可根據(jù)相機控制接口擴展(CCIe)模式在控制數(shù)據(jù)總線108上操作,而不影響耦合至控制數(shù)據(jù)總線108的其他舊式I2C設(shè)備的正確操作。根據(jù)一個方面,控制數(shù)據(jù)總線108上的這種改進模式可在CCIe設(shè)備與舊式I2C從設(shè)備之間沒有任何橋接設(shè)備的情況下實現(xiàn)。
[0068]提供了準許兼容I2C的設(shè)備和兼容CCIe的設(shè)備并發(fā)地耦合至共享控制數(shù)據(jù)總線108的協(xié)議。控制數(shù)據(jù)總線108可動態(tài)地在根據(jù)不同通信協(xié)議(例如,I2C模式和CCIe模式)操作之間切換。如先前提及的,多模式主設(shè)備112管理對共享控制數(shù)據(jù)總線108的通信和/或訪問。主設(shè)備傳送進入調(diào)用以指示控制數(shù)據(jù)總線108要將其通信協(xié)議從第一協(xié)議模式(例如,I2C模式)切換到第二協(xié)議模式(例如,CCIe模式)。類似地,主設(shè)備傳送退出調(diào)用以指示控制數(shù)據(jù)總線108要將其通信協(xié)議從第二協(xié)議模式(例如,CCIe模式)切換到第一協(xié)議模式(例如,I2C模式)。耦合至共享總線108的從設(shè)備監(jiān)視這些進入和退出調(diào)用以查明它們何時可在共享總線108上操作。
[0069]示例性CCIe編碼技術(shù)
[0070]圖2解說了時鐘可如何在CCIe模式中被嵌入在碼元到碼元轉(zhuǎn)變內(nèi),由此允許將I2C總線中的兩條線(即,SDA線和SCL線)用于數(shù)據(jù)傳輸。在一個示例中,時鐘的這種嵌入可以通過轉(zhuǎn)變時鐘轉(zhuǎn)碼來達成。例如,要在物理鏈路(線路)上傳送的數(shù)據(jù)204被轉(zhuǎn)碼,從而保證所傳送碼元在所傳送碼元206的每個碼元循環(huán)或轉(zhuǎn)變處改變狀態(tài)。在一個示例中,比特序列被轉(zhuǎn)換成三進制數(shù),并且該三進制數(shù)的每一數(shù)位被轉(zhuǎn)換成碼元以供傳輸。即使在三進制數(shù)的兩個順序數(shù)位相同的情況下,也保證順序碼元是不同的。因此,原始時鐘202可被嵌入在每個碼元循環(huán)的碼元狀態(tài)的改變中。接收機從(所傳送碼元206中的)每個碼元處的狀態(tài)轉(zhuǎn)變恢復時鐘信息208并且隨后倒轉(zhuǎn)對所傳送碼元206的轉(zhuǎn)碼以獲得原始數(shù)據(jù)210。在一個示例中,每個碼元被轉(zhuǎn)換成一數(shù)位,多個數(shù)位構(gòu)成一三進制數(shù),其中該三進制數(shù)隨后被轉(zhuǎn)換成多個比特。因此,原始時鐘202可被嵌入在每個碼元循環(huán)的碼元狀態(tài)的改變中。這允許I2C總線的兩條線路(圖1中的控制數(shù)據(jù)總線108,SDA線和SCL線)被用于發(fā)送數(shù)據(jù)信息。另外,碼元速率可以加倍,因為不再需要在時鐘信號與數(shù)據(jù)信號之間具有建立時間和保持時間。
[0071]圖3是解說用于在發(fā)射機處將數(shù)據(jù)比特轉(zhuǎn)碼成經(jīng)轉(zhuǎn)碼碼元以在這些經(jīng)轉(zhuǎn)碼碼元內(nèi)嵌入時鐘信號的示例性方法的框圖。在發(fā)射機302處,數(shù)據(jù)比特序列304被轉(zhuǎn)換成三進制(基數(shù)為3)數(shù)(即,“轉(zhuǎn)變數(shù)”),并且這些三進制數(shù)隨后被轉(zhuǎn)換成在時鐘線SCL 312和數(shù)據(jù)線SDA314上傳送的(順序)碼元。
[0072]在一個示例中,原始的20比特二進制數(shù)據(jù)被輸入到比特至轉(zhuǎn)變數(shù)轉(zhuǎn)換器塊308以轉(zhuǎn)換成12位三進制數(shù)。該12位三進制數(shù)的每一數(shù)位表示“轉(zhuǎn)變數(shù)”。兩個連貫轉(zhuǎn)變數(shù)可具有相同的數(shù)字(即,三進制數(shù)的連貫數(shù)位可以是相同的)。每個轉(zhuǎn)變數(shù)在轉(zhuǎn)變至碼元塊310處被轉(zhuǎn)換成順序碼元以使得任何兩個連貫的順序碼元不具有相同值。由于在每個順序碼元處保證有轉(zhuǎn)變,因而此類順序碼元轉(zhuǎn)變可用于嵌入時鐘信號。每個順序碼元316隨后在雙線物理鏈路(例如,包括SCL線312和SDA線314的12C總線)上被發(fā)送。
[0073]圖4解說了轉(zhuǎn)變數(shù)402與順序碼元404之間的示例性轉(zhuǎn)換。三進制數(shù)(基數(shù)為3的數(shù))的個體數(shù)位(也被稱為轉(zhuǎn)變數(shù))可具有三(3)個可能數(shù)字或狀態(tài)0、I或2之一。雖然在三進制數(shù)的兩個連貫數(shù)位中可能出現(xiàn)相同數(shù)字,但任何兩個連貫的順序碼元不具有相同值。轉(zhuǎn)變數(shù)和順序碼元之間的轉(zhuǎn)換保證順序碼元即使在連貫的轉(zhuǎn)變數(shù)是相同的情況下也總是改變(從順序碼元到順序碼元)。
[0074]在圖5中解說性地闡述轉(zhuǎn)換功能。在發(fā)射機側(cè)(TX:T到S) 502,轉(zhuǎn)變數(shù)(T)可被轉(zhuǎn)換成順序碼元(S)。例如,當前的順序碼元(Cs)可基于先前的順序碼元(Ps)和作為當前轉(zhuǎn)變數(shù)(T)的函數(shù)的臨時轉(zhuǎn)變數(shù)(Ttmp)來獲得。臨時轉(zhuǎn)變數(shù)(Ttmp)可通過將當前轉(zhuǎn)變數(shù)T與O進行比較來獲得,并且當T = O時,臨時轉(zhuǎn)變數(shù)(Ttmp)變成等于3,否則(當T不等于O時)!\_變成等于T(即,Ttmp = T = 0?3:T)。當前順序碼元可以作為當前順序碼元(Cs)加先前順序碼元(Ps)加臨時轉(zhuǎn)變數(shù)(Ttmp)的總和(S卩,Cs = Ps+TtmP)來獲得。
[0075]在接收機側(cè)(RX:S到T)504,轉(zhuǎn)換操作被倒轉(zhuǎn)以從當前順序碼元(Cs)和先前順序碼元(Ps)獲得轉(zhuǎn)變數(shù)。臨時轉(zhuǎn)變數(shù)(Ttmp)可以作為當前順序碼元(Cs)加4減去先前順序碼元(Ps)的總和(S卩,Ttmp = Cs+4-Ps)來獲得。當前轉(zhuǎn)變數(shù)(T)等于臨時轉(zhuǎn)變數(shù)(Ttmp),但是臨時轉(zhuǎn)變數(shù)(Ttmp)與三⑶進行比較,并且當Ttmp = 3,臨時轉(zhuǎn)變數(shù)(Ttmp)變成等于零(O),否則(當Ttmp不等于3時)T變成等于Ttmp(S卩,T = Ttmp = 3?0:T)。
[0076]表506解說了轉(zhuǎn)變數(shù)與順序碼元之間的轉(zhuǎn)換。
[0077]再次參照圖4,本文解說了轉(zhuǎn)變數(shù)與順序碼元之間的轉(zhuǎn)換的示例。例如,在第一循環(huán)406中,當前轉(zhuǎn)變數(shù)(Ta)為2,所以Ttmp也為2,并且在先前順序碼元Ps為I的情況下,新的當前順序碼元Cs現(xiàn)在為3。
[0078]在第二循環(huán)408中,轉(zhuǎn)變數(shù)(Tb)為I。由于轉(zhuǎn)變數(shù)(Tb)不等于0,因而臨時轉(zhuǎn)變數(shù)Ttmp等于轉(zhuǎn)變數(shù)(Tb)值I。通過將先前順序碼元(Ps)值3與臨時轉(zhuǎn)變數(shù)Ttmp I相加來獲得當前順序碼元(Cs)。由于該加法運算的結(jié)果等于4,大于3,因而翻轉(zhuǎn)數(shù)O變成當前順序碼元(Cs)。[0079 ]在第三循環(huán)410中,當前轉(zhuǎn)變數(shù)(T)為I。因為轉(zhuǎn)變數(shù)T為I,所以臨時轉(zhuǎn)變數(shù)Ttmp也為I。通過將先前順序碼元(Ps)值O與臨時轉(zhuǎn)變數(shù)Ttmp I相加來獲得當前順序碼元(Cs)。由于加法運算的結(jié)果等于I,不大于3,因而當前碼元(Cs)等于I。
[0080]在第四循環(huán)412中,當前轉(zhuǎn)變數(shù)(T)為O。因為轉(zhuǎn)變數(shù)T為O,所以臨時轉(zhuǎn)變數(shù)!\_為3。
[0081]通過將先前順序碼元(Ps)值I與臨時轉(zhuǎn)變數(shù)Ttmp3相加來獲得當前順序碼元(Cs)。由于該加法運算的結(jié)果為4,大于3,因而翻轉(zhuǎn)數(shù)O變成當前順序碼元(Cs)。
[0082]注意,即使兩個連貫的三進制位Tb和Tc具有相同數(shù)字,該轉(zhuǎn)換也保證了兩個連貫順序碼元具有不同狀態(tài)值。正因如此,順序碼元404中的經(jīng)保證轉(zhuǎn)變可用于嵌入時鐘信號,由此釋放I2C總線中的時鐘線SCL以用于數(shù)據(jù)傳輸。
[0083]再次參照圖3,在接收機320處,該過程被倒轉(zhuǎn)以將經(jīng)轉(zhuǎn)碼碼元轉(zhuǎn)換回比特,并且在該過程中從碼元轉(zhuǎn)變中提取時鐘信號。接收機320在雙線物理鏈路(例如,包括SCL線324和SDA線326的I2C總線)上接收順序碼元序列322。所接收的順序碼元322被輸入時鐘數(shù)據(jù)恢復(CDR)塊328以恢復時鐘定時并采樣經(jīng)轉(zhuǎn)碼碼元(S)。碼元至轉(zhuǎn)變數(shù)轉(zhuǎn)換器塊330隨后將經(jīng)轉(zhuǎn)碼(順序)碼元轉(zhuǎn)換成轉(zhuǎn)變數(shù)(即,一個三進制數(shù)位數(shù)字)ο接著,轉(zhuǎn)變數(shù)至比特轉(zhuǎn)換器332轉(zhuǎn)換12個轉(zhuǎn)變數(shù)以從12位三進制數(shù)恢復20比特原始數(shù)據(jù)。
[0084]圖3和4中針對雙線系統(tǒng)和12個轉(zhuǎn)變數(shù)解說的示例可被一般化為η線系統(tǒng)和m個轉(zhuǎn)變數(shù)。如果每一個Τ(Τ0到Tm-1)存在r個可能的碼元轉(zhuǎn)變狀態(tài),那么m個轉(zhuǎn)變可發(fā)送rm個不同狀態(tài)(即,r = 2n-l)。因此,轉(zhuǎn)變TO-Tm-1包含可具有(2n-l)m個不同狀態(tài)的數(shù)據(jù)。
[0085]本文解說的技術(shù)可被用來增加控制總線108(圖1)的鏈路速率,超出I2C標準總線提供的鏈路速率,并且于此被稱為CCIe模式。在一個示例中,耦合至控制數(shù)據(jù)總線108的主設(shè)備和/或從設(shè)備可實現(xiàn)在碼元傳輸內(nèi)嵌入時鐘信號的發(fā)射機和/或接收機(如圖2、3、4和5中所解說的),以在相同控制數(shù)據(jù)總線上達成比使用標準I2C總線可能達成的更高比特率。
[0086]圖6解說了用于從最高有效位到最低有效位將二進制比特轉(zhuǎn)換成三進制數(shù)的方法。三進制數(shù)的每一數(shù)位可被轉(zhuǎn)碼(轉(zhuǎn)換)成傳送給接收方設(shè)備的碼元。對于12位三進制數(shù)602,其中TO,Τ1...Τ11表示該三進制數(shù),TO表示3*3數(shù)位(并且是最低有效位),而Tl I表示311位(并且是最高有效位)。從收到比特(例如,20比特序列)開始,首先獲得三進制數(shù)602的最高有效位Tll。隨后,接下來獲得下一最高有效位T10。此過程繼續(xù)直至獲得最低有效位T0。三進制數(shù)602的每一數(shù)位也可被稱為“轉(zhuǎn)變數(shù)”。
[0087]圖7解說了用于從最高有效位到最低有效位將二進制比特轉(zhuǎn)換成三進制數(shù)的發(fā)射機側(cè)邏輯電路。圖6和7解說了以1'11、110、了9.....TO的次序發(fā)送的12位三進制數(shù)602。通過首先獲得和發(fā)送最高有效位,所涉及的邏輯和電路系統(tǒng)的復雜度被簡化。在圖6和7中的辦法中,最尚有效順序碼兀被首先傳送給接收方設(shè)備,并且因此被稱為先MSS (首先最尚有效碼元)。如本文所使用的,“最低有效碼元”指代與三進制數(shù)602的最低有效位相對應(yīng)的經(jīng)轉(zhuǎn)碼碼元。例如并且參照圖4和5,當TO被轉(zhuǎn)碼成順序碼元時,該碼元是最低有效碼元,因為它源自最低有效三進制位。類似地,如本文所使用的,“最高有效碼元”指代與三進制數(shù)602的最高有效位相對應(yīng)的經(jīng)轉(zhuǎn)碼碼元。例如并且參照圖4和5,當Tll被轉(zhuǎn)碼成順序碼元時,該碼元是最高有效碼元,因為它源自最高有效三進制位。并且在碼元到轉(zhuǎn)變數(shù)轉(zhuǎn)換器塊330(圖3)隨后接收并且將經(jīng)轉(zhuǎn)碼的(順序)碼元轉(zhuǎn)換成轉(zhuǎn)變數(shù)(S卩,三進制數(shù)的數(shù)位)時,其將首先是最高有效位Tll并且最后是最低有效位TC。
[0088]回頭參考3,20比特原始數(shù)據(jù)被按倒序轉(zhuǎn)換成三進制數(shù)(S卩,最高有效位被首先提供給轉(zhuǎn)換器),隨后三進制數(shù)的每一數(shù)位(例如,每個轉(zhuǎn)變數(shù))被按倒序轉(zhuǎn)換(即,轉(zhuǎn)碼)成順序碼元,并且這些經(jīng)轉(zhuǎn)碼碼元按倒序(即,首先最高有效碼元)在總線上傳送。
[0089]圖8解說了用于從最高有效位到最低有效位將三進制數(shù)轉(zhuǎn)換成二進制比特的方法。即,此接收機側(cè)轉(zhuǎn)換倒轉(zhuǎn)圖6和7中所解說的發(fā)射機側(cè)轉(zhuǎn)換中執(zhí)行的操作。接收方設(shè)備(例如,從設(shè)備)接收倒序傳輸并且執(zhí)行時鐘恢復和碼元采樣以將經(jīng)轉(zhuǎn)碼碼元轉(zhuǎn)換回三進制數(shù),該三進制數(shù)隨后以倒序被提供給圖9中的將該三進制數(shù)轉(zhuǎn)換回20比特二進制原始數(shù)據(jù)的邏輯電路。圖7解說了具有耦合至去往邏輯設(shè)備的單個輸出端的12個輸入端的復用器。
[0090]圖9解說了用于將12位三進制數(shù)轉(zhuǎn)換成20比特的接收機側(cè)邏輯電路。
[0091]圖10概念性地解說了比特19(8卩,在比特計數(shù)開始于為比特O的第一比特時的第20比特)大多數(shù)情況下在CCIe協(xié)議中不被使用并且可被用于共享總線上的設(shè)備之間的命令。即,作為圖3-9中解說的編碼方案的結(jié)果,所傳送碼元中的額外比特(S卩,比特19)現(xiàn)在可用。更具體地,圖10解說了比特19(8卩,第20比特)。換言之,如計算機科學中典型的,從零開始逐比特計數(shù),并且比特19是第20比特。此處,在三進制數(shù)范圍0000_0000_00003到2221_2201_20013內(nèi)表示比特0-18。范圍2221_2201_20023到2222_2222_22223中的三進制數(shù)未被使用。因此,三進制數(shù)范圍2221_2201_20023到2222_2222_22223可被用于表示比特19(S卩,第20比特)。換言之,三進制2221,2201,20023是二進制10 ,000 ,000,000,000 ,000 ,000(十六進制0x80000),并且三進制2222_2222_22223(0x81BF0)是可能的最大12位三進制數(shù)。
[0092]用于CCIe模式的示例性協(xié)議
[0093]圖11解說了對CCIe模式進入指示符的示例性通用調(diào)用,該CCIe模式進入指示符可由主設(shè)備在共享總線上發(fā)送以向從設(shè)備指示共享總線正在從I2C操作模式切換到CCIe操作模式。通用調(diào)用1102可由I2C主設(shè)備在共享總線(例如,圖1中的處于I2C模式的主設(shè)備112在SDA線和SCL線)上發(fā)布以向所有兼容I2C的設(shè)備指示從I2C模式到CCIe模式的轉(zhuǎn)變。
[0094]在I2C模式中,CCIe主設(shè)備發(fā)布具有“CCIe模式”字節(jié)或指示符1104的此I2C通用調(diào)用1102。兼容CCIe的從設(shè)備確認對通用調(diào)用1102的接收。兼容CCIe的從設(shè)備可通過在通用調(diào)用期間保持(控制數(shù)據(jù)總線108的)SCL線為低來插入等待循環(huán)(若必要)。
[0095]一旦處于CCIe模式,所有兼容CCIe的設(shè)備能夠?qū)碜訡CIe主設(shè)備的請求作出響應(yīng)。不支持CCIe模式的兼容I2C的舊式從設(shè)備在共享控制數(shù)據(jù)總線上的操作狀態(tài)或任何功能性不受任何CCIe事務(wù)的影響。
[0096]圖12解說了可由CCIe主設(shè)備(例如,圖1中的處于I2C模式的主設(shè)備112)發(fā)布以向所有具有CCIe能力的設(shè)備指示從CCIe模式到I2C模式的轉(zhuǎn)變的示例性CCIe調(diào)用1202<XCIe主設(shè)備可發(fā)布此退出調(diào)用1202來代替CCIe SID0
[0097]在CCIe模式中,在CCIe模式中的之后跟隨著S的最末數(shù)據(jù)之后,CCIe主設(shè)備發(fā)送特殊的CCIe SID碼(“退出”碼/指示符1204)以指示(例如,向兼容CCIe的設(shè)備)CCIe模式的結(jié)束并且轉(zhuǎn)變回到I2C模式。另外,在“退出”碼/指示符1204之后,CCIe主設(shè)備根據(jù)I2C協(xié)議來發(fā)送之后跟隨著“通用調(diào)用”1206的S(開始比特),其中“退出”碼1208在I2C協(xié)議內(nèi)的第二個字節(jié)處。所有具有CCIe能力的從設(shè)備都必須確收通用調(diào)用1204。
[0098]圖13解說了示例性CCIe從標識符(SID)字格式。其解說了將16比特從標識符(SID)1304用作CCIe SID字格式1302的一部分。此類SID字格式將在該字被置于控制數(shù)據(jù)總線上時被用于標識特定的從設(shè)備。
[0099]圖14解說了示例性CCIe地址字格式1402。其解說了每個地址字1406包括16比特地址1404。地址字1406還包括2比特控制碼1408和I比特錯誤檢測常數(shù)1410。表1412解說了控制碼的各種可能值。
[0100]多個地址字可被順序發(fā)送。如果當前控制字是‘00’,則這表示地址字將跟在后面。如果控制碼是‘01’,則下一數(shù)據(jù)字為寫數(shù)據(jù)字。如果控制碼是‘01’,則下一數(shù)據(jù)字為一字讀數(shù)據(jù)字??刂拼a‘11’被禁止。
[0101]圖15解說了示例性寫數(shù)據(jù)字格式1502。其解說了每個數(shù)據(jù)字1500包括16比特寫數(shù)據(jù)部分1502。寫數(shù)據(jù)字1500還包括2比特控制碼1504和I比特錯誤檢測常數(shù)1510。表1514解說了控制碼的各種可能值。
[0102]多個寫數(shù)據(jù)字可被順序發(fā)送。如果當前寫字的控制碼是‘00’(碼元CO),則數(shù)據(jù)要被寫入到先前地址。如果當前寫字的控制碼是‘01’(碼元Cl),則數(shù)據(jù)要被寫入到先前地址+
I。如果控制碼是‘10’(碼元E),則下一字將是SID或退出碼。
[0103]圖16解說了示例性讀規(guī)范字格式1600。讀規(guī)范數(shù)據(jù)字1600可包括16比特讀數(shù)據(jù)值部分1604、2比特控制碼1608、和3比特錯誤檢測常數(shù)1610。
[0104]在最后一個地址字1607之后,跟隨著“讀規(guī)范”(RS)字1612。讀規(guī)范(RS)字1612指定了后面跟隨的讀數(shù)據(jù)字的數(shù)目。如表1616中解說的,控制碼‘00’被用于指示來自相同地址的讀字??刂拼a‘01’被用于指示來自遞增地址的讀字。(數(shù)據(jù)正被從中讀取的)從設(shè)備將不發(fā)送比由“讀規(guī)范”(RS)字1604指定的數(shù)據(jù)字更多的數(shù)據(jù)字(不包括CHK字)。從設(shè)備將發(fā)送至少一個讀字(不包括CHK字)。從設(shè)備可在發(fā)送由“讀規(guī)范”(RS) 1604字指定的字數(shù)目之前結(jié)束讀取傳輸。
[0105]圖17解說了示例性讀數(shù)據(jù)字格式1702。讀數(shù)據(jù)字1702可包括16比特讀數(shù)據(jù)值部分1704、2比特控制碼1706、和I比特錯誤檢測常數(shù)1708。由SID 1707尋址的從設(shè)備確定要返回給請求方主設(shè)備的字數(shù)目。如表1716中解說的,如果讀字繼續(xù)來自相同地址,則控制碼是“00”(碼元R0)。如果讀字繼續(xù)來自遞增地址,則控制碼是“01”(碼元R1)。如果該字是最后一個讀字并且在該字之后沒有CHK,則控制碼是“10”(碼元E)??刂拼a“00”被禁止。
[0106]共享總線上的示例性I2C傳輸相對于CCIe傳輸
[0107]圖18解說I2C—個字節(jié)寫數(shù)據(jù)操作的示例性時序圖。在該示例中,共享控制數(shù)據(jù)總線108 (圖1)包括串行數(shù)據(jù)線SDA 1802和串行時鐘線SCL 1804。圖18中解說的傳輸方案可被稱為“I2C模式”。SCL線1804被用于從主設(shè)備向所有從設(shè)備發(fā)送時鐘,而SDA線1802傳送數(shù)據(jù)比特。I2C主設(shè)備在SDA線1802中發(fā)送7比特從ID 1808以指示主設(shè)備希望訪問I2C總線上的哪一個從設(shè)備,然后發(fā)送指示寫操作的I比特。只有其ID與7比特從ID 1808匹配的從設(shè)備才能導致預期動作。為了使I2C從設(shè)備檢測其自己的ID,主設(shè)備必須在SDA線上發(fā)送至少8比特(或者在SCL線2204上發(fā)送8個時鐘脈沖)。
[0108]I2C標準要求所有兼容I2C的從設(shè)備在接收到START(開始)狀況1806(例如,在SCL線上為高時由SDA線上的高到低轉(zhuǎn)變指示)之際使其總線邏輯復位。
[0109]CCIe協(xié)議將SDA線1802和SCL線1804兩者用于數(shù)據(jù)傳輸,而同時將時鐘信號嵌入在數(shù)據(jù)傳輸內(nèi)。例如,數(shù)據(jù)比特可被轉(zhuǎn)碼成隨后在諸條線上傳送的多個碼元。通過將時鐘信號(圖18中的I2C總線的SCL線)嵌入在碼元轉(zhuǎn)變內(nèi),SDA線1802和SCL線1804兩者均可被用于數(shù)據(jù)傳輸。
[0110]圖19解說了其中數(shù)據(jù)比特已被轉(zhuǎn)碼成12個碼元以用于在SDA線1902和SCL線1904上進行傳輸?shù)氖纠訡CIE傳輸。圖19中解說的傳輸方案可被稱為“CCIe模式”。CCIe模式是源同步的,由推挽驅(qū)動器驅(qū)動。在共享控制數(shù)據(jù)總線上發(fā)出數(shù)據(jù)的任何設(shè)備也發(fā)出嵌入在數(shù)據(jù)(例如,嵌入在碼元到碼元轉(zhuǎn)變內(nèi))的時鐘信息。因此,僅控制數(shù)據(jù)總線上的一個設(shè)備被允許在任一時間驅(qū)動共享控制數(shù)據(jù)總線。
[0111]為了在同一條總線上支持舊式I2C設(shè)備和CCIe設(shè)備兩者,CCIe模式操作使用相同的3了41^狀況1906、1908、1910,這防止舊式12(:從設(shè)備對任何0:16操作作出反應(yīng)(例如,0:16模式期間的START狀況使舊式I2C從設(shè)備復位)。在此示例中,在傳送全部從ID( S卩,全部7比特)之前檢測START狀況1906、1908、1910(8卩,在SCL線1904為高時由SDA線1902上的高到低轉(zhuǎn)變指示),因此這是不完整的從ID(少于7比特)。如果主設(shè)備發(fā)送6個SCL脈沖隨后發(fā)布START狀況1906、1908、1910,則所有舊式I2C從設(shè)備在它們將該數(shù)據(jù)識別為I2C從ID之前使其總線邏輯復位。由于這些6比特序列(例如,對應(yīng)于每兩個碼元)是在兩個START狀況1906、1908、1910之間發(fā)送的,因而這些6比特序列不被任何I2C從設(shè)備解碼為有效的從ID。因此,舊式I2C從設(shè)備將不會對不完整的從ID采取動作。
[0112]在此系統(tǒng)中,主設(shè)備控制對總線的訪問。因此,希望在控制數(shù)據(jù)總線上進行傳送的任何設(shè)備必須例如通過發(fā)布中斷請求來向主設(shè)備請求此類訪問。用于發(fā)布中斷的現(xiàn)有技術(shù)機制依賴于專用的中斷線或?qū)S玫闹袛嗫偩€。然而,此類專用的中斷線或中斷總線意味著設(shè)備必須包括至少一個附加管腳以容適此類中斷線或中斷總線。為了消除對此類專用的中斷管腳和中斷線/總線的需要,需要一種用于CCIe內(nèi)的帶內(nèi)中斷的機制。
[0113]帶內(nèi)中斷的使用還應(yīng)當避免總線爭用或沖突。例如,為了避免沖突,當主設(shè)備正驅(qū)動控制數(shù)據(jù)總線時,從設(shè)備不應(yīng)被允許驅(qū)動控制數(shù)據(jù)總線(例如,SDA線1802或SCL線1904)以斷言IRQ。
[0114]示例性比特19區(qū)域和校驗和
[0115]圖20解說了從圖2-10中解說的編碼方案得到的第20比特(比特19)的示例性映射。如能夠領(lǐng)會的,可用的三進制數(shù)可用于擴展主設(shè)備與從設(shè)備之間的特征和能力。例如,比特19內(nèi)可用的此三進制數(shù)空間(S卩,其比特19為“I”的數(shù)據(jù)區(qū)域)可用于促成或指示:從設(shè)備到從設(shè)備傳輸,(b)傳輸?shù)男r灪停?c)至從設(shè)備的主操作切換,(d)心跳時鐘等。
[0116]圖21解說了圖20的第20比特(比特19)區(qū)域的示例性映射內(nèi)的子區(qū)域的細節(jié)。
[0117]圖22解說了可能發(fā)生的各種碼元錯誤狀況。時序圖2202解說了控制數(shù)據(jù)總線(SDA線和SCL線)和接收機時鐘(RXCLK)上的正確傳輸。
[0118]解說了時鐘缺失2204,其中接收機時鐘(RXCLK)缺少兩個循環(huán)2212和2214,以使得數(shù)據(jù)比特2210被不正確地檢測。如果在相同傳輸方向上有更多后續(xù)字,則在后續(xù)字中很可能檢測到字數(shù)據(jù)錯誤。同步(SYNC)丟失也可能被檢測到。如果在最后一個字上出現(xiàn)錯誤,則主設(shè)備需要超時檢測功能性。
[0119]解說了額外時鐘2206,其中接收機時鐘(RXCLK)具有在額外時鐘循環(huán)2220處檢測到的額外碼元‘01’2216和2218。這種錯誤很可能在該字或后續(xù)字中檢測到。同步丟失也可能被檢測到。
[0120]解說了碼元錯誤2208,其中沒有接收機時鐘(RXCLK)缺失但是出現(xiàn)單個碼元錯誤2222。這種錯誤很可能在該字或后續(xù)字中檢測到。校驗和錯誤很可能被檢測到。
[0121 ]所傳送碼元內(nèi)的示例性錯誤檢測
[0122]圖23-28解說了對于各種CCIe字而言可能出現(xiàn)的各種碼元錯誤狀況(S卩,不具有碼元滑動的單個碼元錯誤)。如所示出的,這些錯誤可以通過使用3個比特(比特0、1和2)來檢測,如以下進一步討論的。這些示例將三(3)個最低有效位(比特[2:0])用于錯誤檢測。
[0123]圖23解說了示出所傳送的碼元序列0321_0321_0321中的可能錯誤的表2300以及可如何在3個最低有效位內(nèi)檢測此類錯誤。通過使用圖3、4、5、6、7和8中解說的方法來將20比特序列(比特[19:0])0000_0000_0000_0000_00002302轉(zhuǎn)換成三進制數(shù)(1'11"1'0)0000_0000_00003 2304,該三進制數(shù)隨后被轉(zhuǎn)換成順序碼元(511"50)0321_0321_0321 2306。出于此示例的目的,該3個最低有效位2308均為0(000)。如果在傳輸期間在原始順序碼元0321_0321_0321 2306中的任何碼元處引入了錯誤,則這將導致錯誤的碼元2310。例如,如果最后一個碼元“I”被改變成“O”,則這會導致3個最低有效位從“000”改變成“010” ο如果最后一個碼元“I”被改變成“3”,則這會導致3個最低有效位從“000”改變成“001?!比绻谝粋€碼元“O”被改變成“2”,則這會導致3個最低有效位從“000”改變成“100”。表2300解說了只要3個最低有效位是已知常數(shù)(例如,固定常數(shù)“000”)則可如何通過這3個最低有效位來檢測任何單個碼元的改變的各種其他示例。
[0124]圖24解說了示出所傳送的碼元序列2301_2301_2301中的可能錯誤的表2400以及可如何在3個最低有效位內(nèi)檢測此類錯誤。通過使用圖3、4、5、6、7和8中解說的方法來將20比特序列(比特[19:0])0100_0000_1101_1111_10002402轉(zhuǎn)換成三進制數(shù)(1'11."1'0)1111_1111_11113 2404,該三進制數(shù)隨后被轉(zhuǎn)換成順序碼元(SI I…SO) 2301_2301_2301 2406。出于此示例的目的,該3個最低有效位2408均為0(000)。如果在傳輸期間在原始順序碼元2301_2301_2301 2406中的任何碼元處引入了錯誤,則這將導致錯誤的碼元2410。例如,如果最后一個碼元“I”被改變成“3”,則這會導致3個最低有效位從“000”改變成“111?!比绻詈笠粋€碼元“I”被改變成“2”,則這會導致3個最低有效位從“000”改變成“001”。如果第一個碼元“2”被改變成“O”,則這會導致3個最低有效位從“000”改變成“100”。表2400解說了只要3個最低有效位是已知常數(shù)(例如,固定常數(shù)“000”)則可如何通過這3個最低有效位來檢測任何單個碼元的改變的各種其他示例。
[0125]圖25解說了示出所傳送的碼元序列3131_3131_3131中的可能錯誤的表2500以及可如何在3個最低有效位內(nèi)檢測此類錯誤。通過使用圖3、4、5、6、7和8中解說的方法來將20比特序列(比特[19:0])1000_0001_1011_1111_00002502轉(zhuǎn)換成三進制數(shù)(111."1'0)2222_2222_22223 2504,該三進制數(shù)隨后被轉(zhuǎn)換成順序碼元(51卜50)3131_3131_3131 2506。出于此示例的目的,該3個最低有效位2508均為0(000)。如果在傳輸期間在原始順序碼元3131_3131_3131 2406中的任何碼元處引入了錯誤,則這將導致錯誤的碼元2510。例如,如果最后一個碼元“I”被改變成“O”,則這會導致3個最低有效位從“000”改變成“111” ο如果最后一個碼元“I”被改變成“2”,則這會導致3個最低有效位從“000”改變成“100”。如果第一個碼元“3”被改變成“O”,則這會導致3個最低有效位從“000”改變成“001”。表2500解說了只要3個最低有效位是已知常數(shù)(例如,固定常數(shù)“000”)則可如何通過這3個最低有效位來檢測任何單個碼元的改變的各種其他示例。
[0126]圖26解說了示出所傳送的碼元序列0132_3101_3231中的可能錯誤的表2600以及可如何在3個最低有效位內(nèi)檢測此類錯誤。通過使用圖3、4、5、6、7和8中解說的方法來將20比特序列(比特[19:0])0001_1000_1111_0011_10002602轉(zhuǎn)換成三進制數(shù)(1'11."1'0)0120_1201_20123 2604,該三進制數(shù)隨后被轉(zhuǎn)換成順序碼元(31卜50)0132_3101_3231 2606。出于此示例的目的,該3個最低有效位2608均為0(000)。如果在傳輸期間在原始順序碼元0132_3101_3231 2606中的任何碼元處引入了錯誤,則這將導致錯誤的碼元2610。例如,如果最后一個碼元“I”被改變成“O”,則這會導致3個最低有效位從“000”改變成“111” ο如果最后一個碼元“I”被改變成“2”,則這會導致3個最低有效位從“000”改變成“110” ο如果第一個碼元“O”被改變成“3”,則這會導致3個最低有效位從“000”改變成“111”。表2600解說了只要3個最低有效位是已知常數(shù)(例如,固定常數(shù)“000”)則可如何通過這3個最低有效位來檢測任何單個碼元的改變的各種其他示例。
[0127]圖27解說了示出所傳送的碼元序列2030_2120_3021中的可能錯誤的表2700以及可如何在3個最低有效位內(nèi)檢測此類錯誤。通過使用圖3、4、5、6、7和8中解說的方法來將20比特序列(比特[19:0])0100_1010_1101_1010_10002702轉(zhuǎn)換成三進制數(shù)(1'11."1'0)1201_2012_01203 2704,該三進制數(shù)隨后被轉(zhuǎn)換成順序碼元(SI I…SO) 2030_2120_3021 2706。出于此示例的目的,該3個最低有效位2708均為0(000)。如果在傳輸期間在原始順序碼元2030_2120_3021 2706中的任何碼元處引入了錯誤,則這將導致錯誤的碼元2710。例如,如果最后一個碼元“I”被改變成“O”,則這會導致3個最低有效位從“000”改變成“010” ο如果第一個碼元“2”被改變成“O”,則這會導致3個最低有效位從“000”改變成“011”。表2700解說了只要3個最低有效位是已知常數(shù)(例如,固定常數(shù)“000”)則可如何通過這3個最低有效位來檢測任何單個碼元的改變的各種其他示例。
[0128]圖28解說了示出所傳送的碼元序列3231_0132_3101中的可能錯誤的表2800以及可如何在3個最低有效位內(nèi)檢測此類錯誤。通過使用圖3、4、5、6、7和8中解說的方法來將20比特序列(比特[19:0])0101_1110_1101_0000_10002802轉(zhuǎn)換成三進制數(shù)(1'11."1'0)2012_0120_12013 2804,該三進制數(shù)隨后被轉(zhuǎn)換成順序碼元(51卜50)3231_0132_3101 2806。出于此示例的目的,該3個最低有效位2808均為0(000)。如果在傳輸期間在原始順序碼元3231_0132_3101 2806中的任何碼元處引入了錯誤,則這將導致錯誤的碼元2810。例如,如果最后一個碼元“I”被改變成“3”,則這會導致3個最低有效位從“000”改變成“111” ο如果第一個碼元“3”被改變成“O”,則這會導致3個最低有效位從“000”改變成“100”。表2800解說了只要3個最低有效位是已知常數(shù)(例如,固定常數(shù)“000”)則可如何通過這3個最低有效位來檢測任何單個碼元的改變的各種其他示例。
[0129]用于錯誤檢測的第一示例性辦法
[0130]如圖23-28中所提及的,使用20比特CCIe字的3個最低有效位來檢測不具有時鐘缺失或碼元滑動的任何單個碼元錯誤是可能的。
[0131]圖29解說了CCIe字2902可如何將3個最低有效位2903或最低有效位2905用于錯誤檢測。對于第一CCIe字2902(例如,20比特序列),3個最低有效位2903可被設(shè)置成固定常數(shù)(例如,“000”),并且如果所接收到的20比特序列具有不同于該固定常數(shù)(例如,“000”)的3個最低有效位,則在接收方設(shè)備處檢測到錯誤。通過使用這種辦法不會遺漏CCIe字中(例如,該字中的12個碼元中的任何一個碼元中或者20比特(從十六進制0x00000到0x81BF0)的比特[19:0])中的任何比特中)的不具有碼元滑動的單個碼元錯誤,由此提供對任何此類單個碼元錯誤的100%檢測。然而,將二十(20)比特中的三(3)個比特用于錯誤檢測對于許多實現(xiàn)而言可能過于昂貴。
[0132]替換辦法提供了將單個比特(例如,最低有效位O)而不是3個最低有效位用于錯誤檢測。在約一半情形中,可以使用固定的比特0(例如,固定為“O”)來幫助檢測碼元錯誤(不具有時鐘缺失或碼元滑動)。除了使用固定的比特O之外,順序CCIe字的比特I和2的校驗和可被計算(參見圖31)并且被發(fā)送給接收方設(shè)備以查明是否在所傳送的CCIe字中已出現(xiàn)錯誤。
[0133]對于第二CCIe字2904(例如,20比特序列),最低有效位2905可被設(shè)置成固定常數(shù)(例如,“O”)。如從圖23-28可領(lǐng)會的,當在相應(yīng)的碼元序列中存在碼元錯誤時,最低有效位2905在約一半的時間發(fā)生改變。因此,對于在最低有效位處反應(yīng)的錯誤,如果序列中的最低有效位不是固定常數(shù)(例如,“O”),則接收方設(shè)備可成功地查明在所接收到的20比特序列中存在單個碼元錯誤(不具有時鐘缺失或碼元滑動)。
[0134]除了將最低有效位2905用于檢測或者結(jié)合將最低有效位2905用于檢測,校驗和消息可被用于提供對CCIe字序列的較高程度的錯誤檢測。此類校驗和消息未檢測到錯誤的唯一情景為:在計算校驗和時兩個碼元錯誤的效果抵消。
[0135]圖30解說了可如何在CCIe字內(nèi)實現(xiàn)8比特校驗和。在此示例中,校驗和字3005可(在20比特序列內(nèi))通過將比特19設(shè)置成‘I’并且將比特12設(shè)置成‘0’而同時在CCIe地址字3004a、寫字3004b和/或讀字3004c的CCIe幀內(nèi)放置校驗和值來標示(例如,每個字的比特4-11可被用于校驗和)。8比特校驗和值3003可以在若干CCIe字傳輸上被計算。例如,此校驗和字3005可以在CCIe字傳輸序列的末尾處被發(fā)送。
[0136]由于比特19,此校驗和字可以在可用的附加空間內(nèi)定義(參見圖20)。校驗和字3005可被插入在寫命令3006和/或讀命令3010的地址或數(shù)據(jù)部分內(nèi)。例如,在寫命令3006中,一個或多個地址字3008a、3008b和/或一個或多個寫字3008c和3008d可被用于傳達校驗和值(例如,從主設(shè)備向從設(shè)備)。類似地,在讀命令3010中,一個或多個地址字3012a、3012b和/或一個或多個讀字3012c和2312d可被用于傳達校驗和值。
[0137]與其他校驗和辦法形成對比,可以由發(fā)送方在傳輸內(nèi)的任何地方和任何時間插入當前CCIe校驗和字3005。
[0138]圖31解說了8比特校驗和生成器的示例性實現(xiàn)。校驗和生成器3102可包括用于校驗和3104的8個比特中的每一個比特的I比特寄存器。第一CCIe字N 3110的比特2和I與校驗和3104中的最低有效位異或(XOR)。隨后,第二CCIe字N+1 3112的比特2和I與校驗和3104中的下一最低有效位異或(XOR)。隨后,第三CCIe字N+2 3114的比特2和I與校驗和3104中的下一最低有效位異或(XOR)。隨后,第四CCIe字N+3 3116的比特2和I與校驗和3104中的最高有效位異或(XOR)。在達到校驗和值3104的最高有效位之后,在下一CCIe字N+4上,校驗和生成器可在校驗和3104的兩個最低有效位處再次啟動。
[0139]以此方式,來自不同CCIe字的貢獻跨8比特校驗和傳播其使用。這些I比特寄存器可在傳輸?shù)拿總€開始處(例如,在SID之前和/或在讀字的開始之前)被初始化。為了實現(xiàn)CCIe校驗和字,傳送方設(shè)備可在發(fā)送每個CCIe字時計算校驗和值。在接收機設(shè)備處,也以相同的方式為每個接收到的CCIe字計算校驗和值。隨后,發(fā)射機設(shè)備可向接收機設(shè)備發(fā)送具有最新近校驗和值的CCIe校驗和字,接收機設(shè)備可將該校驗和值與其自己的校驗和值進行比較以查明是否已發(fā)生任何碼元錯誤。
[0140]校驗和字3005可跟隨在包括以下各項的任何CCIe字之后:(a)CHK字(重復CHK字)和/或(b)心跳/SYNC字。CCIe發(fā)射機和接收機可支持校驗和功能性。例如,CCIe發(fā)射機可發(fā)送CCIe接收機隨后使用的校驗和字3005。
[0141]如果接收機設(shè)備檢測到校驗和(CHK)錯誤,則:(a)該接收機設(shè)備可掛起CCIe動作(例如,寄存器寫)直至SYNC字或WAKEUP(蘇醒)事件,(b)該接收機設(shè)備可經(jīng)由IRQ報告CHK錯誤,(c)該接收機設(shè)備可在狀態(tài)寄存器中設(shè)置CHK錯誤事件,和/或(d)該接收機設(shè)備可忽略校驗和錯誤。
[0142]校驗和(CHK)字可被插入在任何字邊界處。這利用了可在不同碼元/協(xié)議內(nèi)容易攜帶的校驗和以及可縮放的數(shù)據(jù)質(zhì)量(例如,在較不可靠的總線上使用較多CHK)。
[0143]在一些實現(xiàn)中,校驗和(CHK)支持可以不是強制性的。這為低等級產(chǎn)品創(chuàng)建了較少負擔并且還在不需要使用校驗和的情況下允許平滑折舊。
[0144]用于錯誤檢測的第二示例性辦法
[0145]檢測具有圖29-31中解說的格式的字中的碼元錯誤并不始終可靠并且對于一些系統(tǒng)而言可能是有問題的。在要求高數(shù)據(jù)完整性的總線系統(tǒng)(例如,諸如醫(yī)療、汽車、航天或軍事使用)中,往往希望立即檢測所有碼元錯誤。為了解決這個問題,公開了一種替換CCIe字格式,其中可達到100 %碼元錯誤檢測(即,在不具有碼元滑動的情況下每字單個碼元錯誤)。為此,首先應(yīng)當注意,本文公開的各方面部分地依賴于圖23-28中的觀察,其中可以在3個最低有效位(LSB)均固定具有已知常數(shù)的情況下傳送經(jīng)編碼字時達到100%碼元錯誤檢測。然而,利用3個LSB來表示錯誤比特檢測常數(shù)要求這3個LSB是靈活的,以使得它們的比特值可被控制。
[0146]例如,在圖30中的CCIe校驗和字3005中,比特I和2被分配給CCIe字的控制碼。此類控制碼標識字包含讀操作還是寫操作并且不能在不影響CCIe字的操作的情況下被修改。
[0147]一種解決方案是修改圖30中解說的CCIe字格式,以使得3個LSB可表示3比特錯誤檢測常數(shù)。此類修改的示例在圖13-15中提供,其實現(xiàn)了可按需優(yōu)化數(shù)據(jù)吞吐量或錯誤檢測的靈活的比特分配方案。
[0148]圖32解說了促成錯誤檢測的示例性靈活CCIe字格式3203。在此20比特字3202中,比特[O]被分配給錯誤檢測常數(shù)3204;比特[2,I]被分配給數(shù)據(jù)或者擴展錯誤檢測常數(shù)3206;比特[4,3]被分配給控制比特3208;比特[18,5]被分配給14比特數(shù)據(jù)字段3210;并且比特[19]被分配給先前提及的“額外”比特3212。即,相對于其中比特[2,1]可被用于不能被用于錯誤檢測的控制碼3228的替換CCIe字格式3220,靈活的CCIe字3202可將這兩個控制比特從比特[2,1]移走,這提供了將比特[2,1]用于數(shù)據(jù)以優(yōu)化數(shù)據(jù)吞吐量(S卩,通過經(jīng)由比特[18,5]和比特[2,1]來為數(shù)據(jù)分配16比特)或者將比特[2,I]用于錯誤檢測常數(shù)擴展以優(yōu)化錯誤檢測(即,通過為錯誤檢測常數(shù)分配3個LSB以達到前面提及的100%錯誤檢測)的靈活性。用戶可由此按需在以非100%碼元錯誤檢測發(fā)送具有16比特數(shù)據(jù)的經(jīng)編碼字或者以100%碼元錯誤檢測發(fā)送具有14比特數(shù)據(jù)的經(jīng)編碼字之間進行選擇。
[0149]應(yīng)當注意,各種比特分配方案中的任一者均被構(gòu)想落在本文所公開的各方面的范圍內(nèi)。例如,盡管圖32解說了將比特[4,3]分配給控制比特以使它們對于此特定示例而言更靠近LSB(即,而不是將它們分配得更靠近較高值的MSB),但是其他比特分配方案可包括將這些控制比特放置在比特[18,3]內(nèi)的任何比特組合中。還應(yīng)當注意,盡管圖32解說了20比特CCIe字格式,但是比特分配方案被類似地構(gòu)想用于任何比特長度的字,其中分配給數(shù)據(jù)或錯誤檢測常數(shù)擴展的最低有效位的固定數(shù)目可以適當?shù)卦黾?減少。
[0150]此外,本文公開的各方面可促成第一比特分配方案與第二比特分配方案之間的動態(tài)切換,其中第一比特分配方案涉及數(shù)據(jù)優(yōu)化(即,為數(shù)據(jù)分別16比特),并且其中第二比特分配方案涉及錯誤檢測優(yōu)化(即,為錯誤檢測常數(shù)分配3個LSB)。
[0151 ] 示例性時鐘/碼元滑動錯誤檢測
[0152]由時鐘缺失或額外時鐘造成的碼元滑動錯誤可能不被錯誤檢測常數(shù)和/或校驗和檢測到。然而,這些類型的錯誤中的大多數(shù)可在下一碼字處檢測和/或使用接收機設(shè)備處的狀態(tài)機來檢測。
[0153]圖35解說了不具有時鐘錯誤的示例性CCIe字傳輸。使用包括第一線(SDA)3502和第二線(SCL)3504的共享總線,在開始狀況3508和3510之間傳送12個碼元3512(構(gòu)成一 CCIe字)。此類開始狀況3508和3510在第二線(SCL)3504為高時在第一線(SDA)3502上的高到低轉(zhuǎn)變上發(fā)生。所有遵從CCIe的設(shè)備將此理解為在可由接收機設(shè)備的狀態(tài)機跟蹤的預期CCIe字邊界處的開始狀況(即,在第二線(SCL)3504為高時的第一線(SDA)3502上的高到低轉(zhuǎn)變)。另外,還解說了嵌入在碼元到碼元轉(zhuǎn)變內(nèi)的時鐘3506。
[0154]圖36解說了具有單個時鐘缺失錯誤的示例性CCIe字傳輸。即,在此示例中,時鐘脈沖3602未被接收機設(shè)備檢測到,這導致相應(yīng)的碼元“2”被忽略。此狀況3604可被稱為碼元滑動。因為接收機設(shè)備錯過時鐘,所以該接收機設(shè)備將繼續(xù)從第一和第二線3502和3504讀取碼元并且將第二開始狀況3510解讀為碼元,以及將預期下一碼元3602為開始狀況。此時,時鐘缺失錯誤由接收機設(shè)備檢測到,因為下一碼元3602將決不會是開始狀況。接收機設(shè)備可隨后假定同步丟失并且使其接收機邏輯復位。
[0155]圖37解說了具有兩個缺失時鐘錯誤的示例性CCIe字傳輸。即,在此示例中,兩個時鐘脈沖3702未被接收機設(shè)備檢測到,這導致碼元“2”和“3”3704被忽略。此狀況可被稱為雙碼元滑動。因為接收機設(shè)備錯過兩個時鐘,所以該接收機設(shè)備將繼續(xù)從第一和第二線3502和3504讀取碼元并且將第二開始狀況3510解讀為碼元。對于9種情形中的8種情形,接收機設(shè)備邏輯將識別出預期的開始狀況缺失(在下一字3702的第一和第二碼元之間),由此檢測到雙時鐘缺失。接收機設(shè)備可包括用于跟蹤何時預期開始狀況的狀態(tài)機邏輯。對于下一字3702的第一和第二碼元之間的轉(zhuǎn)變將被檢測為開始狀況(S卩,3到I碼元轉(zhuǎn)變)的1/9幾率,接收機設(shè)備可在下一字上檢測到此雙時鐘錯誤(即,在下一 CCIe字中的某一點處,第一碼元與第二碼元之間的轉(zhuǎn)變將不是開始狀況并且錯誤被接收機設(shè)備檢測到)。
[0156]圖38解說了具有額外時鐘錯誤的示例性CCIe字傳輸。即,在此示例中,額外時鐘脈沖3802被接收機設(shè)備檢測到,這導致額外的碼元“I”被讀取。在此狀況3804下,接收機設(shè)備將在最后一個有效碼元轉(zhuǎn)變3806期間預期下一開始狀況。在9種情形中的8種情形中,CCIe字的最后兩個碼元中的碼元組合將不會導致開始狀況,所以接收機設(shè)備將識別出同步錯誤。在9種情形中的I種情形中,CCIe字的最后兩個碼元將被接收機設(shè)備識別為開始狀況(即,3到I碼元轉(zhuǎn)變)。對于該情況,接收機設(shè)備可依賴當前和/或下一 CCIe字的錯誤檢測常數(shù)來檢測這個錯誤。
[0157]具有靈活錯誤檢測的示例性設(shè)備
[0158]圖33是解說根據(jù)本公開提供的主/從設(shè)備的示例性組件的框圖。如所解說的,主/從設(shè)備3314經(jīng)由控制數(shù)據(jù)總線3350耦合至主/從設(shè)備3360。此處,構(gòu)想主/從設(shè)備3314或主/從設(shè)備3360可根據(jù)本文公開的前述方面作為主設(shè)備或從設(shè)備來操作,并且主/從設(shè)備3314和主/從設(shè)備3360可具有基本上相似的組件。
[0159]在該示例中,主/從設(shè)備3314可被實現(xiàn)成具有由總線3302—般化地表示的內(nèi)部總線架構(gòu)。取決于主/從設(shè)備3314的具體應(yīng)用和整體設(shè)計約束,總線3302可包括任何數(shù)目的互連總線和橋接器??偩€3302將包括一個或多個處理器(一般地由處理電路3304表示)、存儲器3305和計算機可讀介質(zhì)(一般地由計算機可讀介質(zhì)3306表示)的各種電路鏈接在一起。總線3302還可鏈接各種其它電路,諸如定時源、外圍設(shè)備、穩(wěn)壓器和功率管理電路,這些電路在本領(lǐng)域中是眾所周知的,且因此將不再進一步描述??偩€接口/電路3308提供控制數(shù)據(jù)總線3350與主/從設(shè)備3314之間的接口。
[0160]在本公開的一方面,計算機可讀介質(zhì)3306被配置成包括各種指令3306a、3306b和/或3306c以促成如本文公開的CCIe協(xié)議通信。在類似方面,此類通信可取而代之經(jīng)由硬件通過將處理電路3304耦合至電路3320、3330和/或3340中的任一者來實現(xiàn),如所示出的。替換地,處理電路3304可包括和/或?qū)崿F(xiàn)電路3320、3330和/或3340中的任一者。此外,構(gòu)想了CCIe通信可通過指令3306a、3306b和/或3306c的任何組合以及電路3320、3330和/或3340的任何組合來促成。
[0161]例如,編碼器/解碼器指令3306a和編碼器/解碼器電路3320涉及根據(jù)CCIe協(xié)議來編碼/解碼各個字。如先前提及的(參見圖2-21),此類編碼/解碼可包括在逐數(shù)位基礎(chǔ)上將三進制數(shù)轉(zhuǎn)換成多個碼元(例如,12位三進制數(shù)導致12個碼元)以產(chǎn)生前述“額外比特”(比特 19) 0
[0162]在本公開的另一方面,錯誤檢測指令3306b和錯誤檢測電路3330涉及執(zhí)行如圖23-32中描述和解說的錯誤檢測和/或根據(jù)期望的CCIe字格式來執(zhí)行錯誤檢測。為此,如圖31-32中那樣,本文公開的所構(gòu)想的CCIe字格式包括經(jīng)編碼的20比特字,其中3個最低有效位被分配用于數(shù)據(jù)或錯誤檢測。此外,構(gòu)想了錯誤檢測指令3306b和/或錯誤檢測電路3330中任一者可被構(gòu)造成促成靈活的比特分配,其中最低有效位被分配用于錯誤檢測,并且其中第二最低有效位和第三最低有效位中的每一者被分配用于數(shù)據(jù)或錯誤檢測。如圖23-30和35-38中那樣,進一步構(gòu)想了錯誤檢測指令3306b和/或錯誤檢測電路3330中的任一者可被配置成通過使用固定的最低有效位和/或結(jié)合校驗和字被添加到協(xié)議,和/或通過使用檢測缺失的開始狀況的接收機設(shè)備邏輯來促成錯誤檢測。
[0163]在本公開的另一方面,校驗和指令3306c和/或檢驗和電路3340可被配置成為從總線3350接收和/或傳送的字生成校驗和。具體而言,校驗和指令3306c和/或檢驗和電路3340中的任一者可被配置成促成校驗和計算以支持CCIe檢驗和字。
[0164]應(yīng)當領(lǐng)會,處理電路3304負責管理總線3302(8卩,當設(shè)備3314是主設(shè)備時)和一般處理,包括存儲在計算機可讀介質(zhì)3306上的軟件的執(zhí)行。軟件在由處理電路3304執(zhí)行時使主/從設(shè)備3314執(zhí)行以下針對任何特定裝置描述的各種功能。計算機可讀介質(zhì)3306還可被用于存儲由處理電路3304在執(zhí)行軟件時操縱的數(shù)據(jù)。
[0165]處理電路3304中的一個或多個處理器可執(zhí)行軟件。軟件應(yīng)當被寬泛地解釋成意為指令、指令集、代碼、代碼段、程序代碼、程序、子程序、軟件模塊、應(yīng)用、軟件應(yīng)用、軟件包、例程、子例程、對象、可執(zhí)行件、執(zhí)行的線程、規(guī)程、函數(shù)等,無論其是用軟件、固件、中間件、微代碼、硬件描述語言、還是其他術(shù)語來述及皆是如此。軟件可駐留在計算機可讀介質(zhì)3306上。計算機可讀介質(zhì)3306可以是非瞬態(tài)計算機可讀介質(zhì)。作為示例,非瞬態(tài)計算機可讀介質(zhì)包括:磁存儲設(shè)備(例如,硬盤、軟盤、磁條)、光盤(例如,壓縮碟(CD)或數(shù)字多功能碟(DVD))、智能卡、閃存設(shè)備(例如,記憶卡、記憶棒、或鑰匙驅(qū)動器)、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可編程ROM(PROM)、可擦式PROM(EPROM)、電可擦式PROM(EEPROM)、寄存器、可移動盤、以及任何其他用于存儲可由計算機訪問和讀取的軟件和/或指令的合適介質(zhì)。作為示例,計算機可讀介質(zhì)還可包括承載、傳輸線、與任何其他用于傳送可由計算機訪問與讀取的軟件與/或指令的合適介質(zhì)。計算機可讀介質(zhì)3306可以駐留在主/從設(shè)備3314中、在主/從設(shè)備3314外部、或跨包括該主/從設(shè)備3314在內(nèi)的多個實體分布。計算機可讀介質(zhì)3306可以實施在計算機程序產(chǎn)品中。作為示例,計算機程序產(chǎn)品可包括封裝材料中的計算機可讀介質(zhì)。本領(lǐng)域技術(shù)人員將認識到如何取決于具體應(yīng)用和加諸于整體系統(tǒng)上的總體設(shè)計約束來最佳地實現(xiàn)本公開中通篇給出的所描述的功能性。
[0166]圖34解說了根據(jù)協(xié)議(例如,CCIe協(xié)議)的一個或多個錯誤檢測特征來促成通信的示例性方法。獲得要在共享總線上傳送的多個比特,其中該多個比特中的3個最低有效位或最低有效位可被用于錯誤檢測,3402。該多個比特被轉(zhuǎn)換成三進制數(shù),3404。三進制數(shù)的各個數(shù)位被轉(zhuǎn)換成順序碼元,其中時鐘被嵌入在碼元到碼元轉(zhuǎn)變內(nèi),3406 ο多個碼元被組合成字以供傳輸,3408。該字可隨后在共享總線上傳送給接收方設(shè)備,3410。另外,可為所傳送比特計算校驗和,3412。所傳送比特的校驗和可被發(fā)送給接收方設(shè)備,3414。
[0167]根據(jù)一個方面,提供了一種包括總線接口和處理電路的發(fā)射機設(shè)備。總線接口可用于將發(fā)射機設(shè)備耦合至共享總線(接收方設(shè)備或從設(shè)備耦合至該共享總線)。發(fā)射機設(shè)備可管理或控制共享總線上的通信。該處理電路可被配置成:(a)獲得要在共享總線上傳送的多個比特,其中該多個比特中的3個最低有效位或最低有效位被用于錯誤檢測;(b)將該多個比特轉(zhuǎn)換成三進制數(shù);(C)將該三進制數(shù)的各個數(shù)位轉(zhuǎn)換成順序碼元;(d)將多個碼元組合成字以供傳輸;和/或(e)在共享總線上向接收方設(shè)備傳送該字。時鐘可被嵌入在碼元到碼元轉(zhuǎn)變內(nèi)。共享總線可以是雙線總線,并且該雙線總線中的兩條線均被用于傳輸碼元。該處理電路可以被進一步配置成:(a)計算所傳送比特的校驗和;和/或(b)向接收方設(shè)備傳送所傳送比特的校驗和。該校驗和可被插入在任何的任意字內(nèi)以供傳送給接收方設(shè)備。
[0168]根據(jù)另一方面,提供了一種接收機設(shè)備,包括:總線接口和處理電路??偩€接口可用于耦合至主設(shè)備在其上管理通信的共享總線。該處理電路可被配置成:(a)在共享總線上接收多個碼元;(b)將該多個碼元轉(zhuǎn)換成各個數(shù)位;(C)將這些數(shù)位組合成三進制數(shù);(d)將該三進制數(shù)轉(zhuǎn)換成比特,其中該多個比特中的3個最低有效位或最低有效位被用于錯誤檢測;和/或(e)基于該多個比特中的3個最低有效位或最低有效位來查明所接收到的多個比特內(nèi)的錯誤。時鐘可被嵌入在多個收到碼元的碼元到碼元轉(zhuǎn)變內(nèi)。共享總線可以是雙線總線,并且該雙線總線中的兩條線均被用于傳輸碼元。接收機設(shè)備可實現(xiàn)狀態(tài)機邏輯電路,該狀態(tài)機邏輯電路檢測時鐘信號中的錯誤的時鐘脈沖缺失和錯誤的額外時鐘脈沖。
[0169]附圖中解說的組件、步驟、特征、和/或功能之中的一個或多個可以被重新編排和/或組合成單個組件、步驟、特征、或功能,或可以實施在數(shù)個組件、步驟或功能中。還可添加附加的元件、組件、步驟、和/或功能而不會脫離本文中所公開的新穎特征。附圖中所圖解的裝置、設(shè)備和/或組件可以被配置成執(zhí)行在這些附圖中所描述的方法、特征、或步驟中的一個或多個。本文中描述的新穎算法還可以高效地實現(xiàn)在軟件中和/或嵌入在硬件中。
[0170]另外應(yīng)注意,這些實施例可能是作為被描繪為流程圖、流圖、結(jié)構(gòu)圖、或框圖的過程來描述的。盡管流程圖可能會把諸操作描述為順序過程,但是這些操作中有許多操作能夠并行或并發(fā)地執(zhí)行。另外,這些操作的次序可以被重新安排。過程在其操作完成時終止。過程可對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等。當過程對應(yīng)于函數(shù)時,它的終止對應(yīng)于該函數(shù)返回調(diào)用方函數(shù)或主函數(shù)。
[0171]此外,存儲介質(zhì)可以代表用于存儲數(shù)據(jù)的一個或多個設(shè)備,包括只讀存儲器(R0M)、隨機存取存儲器(RAM)、磁盤存儲介質(zhì)、光學存儲介質(zhì)、閃存設(shè)備、和/或其他用于存儲信息的機器可讀介質(zhì)。術(shù)語“機器可讀介質(zhì)”包括,但不被限定于,便攜或固定的存儲設(shè)備、光學存儲設(shè)備、無線信道以及能夠存儲、包含或承載指令和/或數(shù)據(jù)的各種其它介質(zhì)。
[0172]此外,諸實施例可以由硬件、軟件、固件、中間件、微代碼、或其任何組合來實現(xiàn)。當在軟件、固件、中間件、或微碼中實現(xiàn)時,執(zhí)行必要任務(wù)的程序代碼或代碼段可被存儲在諸如存儲介質(zhì)之類的機器可讀介質(zhì)或其它存儲中。處理器可以執(zhí)行這些必要的任務(wù)。代碼段可表示規(guī)程、函數(shù)、子程序、程序、例程、子例程、模塊、軟件包、類,或是指令、數(shù)據(jù)結(jié)構(gòu)、或程序語句的任何組合。通過傳遞和/或接收信息、數(shù)據(jù)、自變量、參數(shù)、或存儲器內(nèi)容,一代碼段可被耦合到另一代碼段或硬件電路。信息、自變量、參數(shù)、數(shù)據(jù)等可以經(jīng)由包括存儲器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)鹊娜魏魏线m的手段被傳遞、轉(zhuǎn)發(fā)、或傳輸。
[0173]結(jié)合本文中公開的示例描述的各個解說性邏輯塊、模塊、電路、元件和/或組件可用設(shè)計成執(zhí)行本文中描述的功能的通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其他可編程邏輯組件、分立的門或晶體管邏輯、分立的硬件組件、或其任何組合來實現(xiàn)或執(zhí)行。通用處理器可以是微處理器,但在替換方案中,該處理器可以是任何常規(guī)的處理器、控制器、微控制器、或狀態(tài)機。處理器還可以實現(xiàn)為計算組件的組合,例如DSP與微處理器的組合、數(shù)個微處理器、與DSP核心協(xié)作的一個或多個微處理器、或任何其他此類配置。
[0174]結(jié)合本文中公開的示例描述的方法或算法可直接在硬件中、在能由處理器執(zhí)行的軟件模塊中、或在這兩者的組合中以處理單元、編程指令、或其他指示的形式實施,并且可包含在單個設(shè)備中或跨多個設(shè)備分布。軟件模塊可駐留在RAM存儲器、閃存、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動盤、⑶-ROM、或本領(lǐng)域中所知的任何其他形式的存儲介質(zhì)中。存儲介質(zhì)可耦合到處理器以使得該處理器能從/向該存儲介質(zhì)讀寫信息。替換地,存儲介質(zhì)可以被整合到處理器。
[0175]本領(lǐng)域技術(shù)人員將可進一步領(lǐng)會,結(jié)合本文中公開的實施例描述的各種解說性邏輯塊、模塊、電路、和算法步驟可被實現(xiàn)為電子硬件、計算機軟件、或兩者的組合。為清楚地解說硬件與軟件的這一可互換性,各種解說性組件、塊、模塊、電路、和步驟在上面是以其功能性的形式作一般化描述的。此類功能性是被實現(xiàn)為硬件還是軟件取決于具體應(yīng)用和施加于整體系統(tǒng)的設(shè)計約束。
[0176]本文所述的本發(fā)明的各種特征可實現(xiàn)于不同系統(tǒng)中而不脫離本發(fā)明。應(yīng)注意,以上實施例僅是示例,且不應(yīng)被解釋成限定本發(fā)明。這些實施例的描述旨在是說明性的,而并非旨在限定權(quán)利要求的范圍。由此,本發(fā)明的教導可以現(xiàn)成地應(yīng)用于其他類型的裝置,并且許多替換、修改和變形對于本領(lǐng)域技術(shù)人員將是顯而易見的。
【主權(quán)項】
1.一種設(shè)備,包括: 共享總線; 耦合至所述共享總線的從設(shè)備; 耦合至所述控制數(shù)據(jù)總線并且被適配成管理所述共享總線上的通信的主設(shè)備;并且其中所述共享總線上的傳輸是被編碼到三進制數(shù)中的多個比特,所述三進制數(shù)隨后被轉(zhuǎn)碼成碼元以供傳輸,并且所述多個比特中的3個最低有效位或者最低有效位被用于所述傳輸?shù)腻e誤檢測。2.如權(quán)利要求1所述的設(shè)備,其特征在于,所述共享總線是雙線總線,并且所述雙線總線中的兩條線均被用于傳輸所述碼元。3.如權(quán)利要求1所述的設(shè)備,其特征在于,時鐘信號被嵌入在碼元到碼元轉(zhuǎn)變內(nèi)。4.如權(quán)利要求3所述的設(shè)備,其特征在于,所述從設(shè)備實現(xiàn)狀態(tài)機邏輯電路,所述狀態(tài)機邏輯電路檢測所述時鐘信號中的錯誤的時鐘脈沖缺失和錯誤的額外時鐘脈沖。5.如權(quán)利要求1所述的設(shè)備,其特征在于,所述多個比特是20比特序列。6.如權(quán)利要求5所述的設(shè)備,其特征在于,將所述3個最低有效位用于錯誤檢測保證對整個20比特序列中的錯誤的檢測。7.如權(quán)利要求1所述的設(shè)備,其特征在于,第二和第三最低有效位的使用被靈活地分配給數(shù)據(jù)傳輸或錯誤檢測。8.如權(quán)利要求7所述的設(shè)備,其特征在于,將所述最低有效位用于錯誤檢測僅在約50%的時間保證對整個20比特序列中的單碼元錯誤的檢測。9.如權(quán)利要求1所述的設(shè)備,其特征在于,在僅所述最低有效位被用于錯誤檢測時,所述最低有效位的值被設(shè)置成恒定的二進制值“I”或“O”。10.如權(quán)利要求6所述的設(shè)備,其特征在于,在所述3個最低有效位被用于錯誤檢測時,所述3個最低有效位的值被設(shè)置成恒定的二進制值“000”或“111”。11.一種在發(fā)射機設(shè)備上操作的方法,包括: 獲得要在共享總線上傳送的多個比特,其中所述多個比特中的3個最低有效位或最低有效位被用于錯誤檢測; 將所述多個比特轉(zhuǎn)換成三進制數(shù); 將所述三進制數(shù)的各個數(shù)位轉(zhuǎn)換成順序碼元;以及 將多個碼元組合成字以供傳輸。12.如權(quán)利要求11所述的方法,其特征在于,進一步包括: 在所述共享總線上向接收方設(shè)備傳送所述字。13.如權(quán)利要求11所述的方法,其特征在于,進一步包括: 計算所傳送比特的校驗和;以及 向所述接收方設(shè)備傳送所傳送比特的所述校驗和。14.如權(quán)利要求11所述的方法,其特征在于,所述校驗和被插入在任何的任意字內(nèi)以供傳送給所述接收方設(shè)備。15.如權(quán)利要求1所述的方法,其特征在于,時鐘被嵌入在碼元到碼元轉(zhuǎn)變內(nèi)。16.如權(quán)利要求11所述的方法,其特征在于,所述共享總線是雙線總線,并且所述雙線總線中的兩條線均被用于傳輸所述碼元。17.一種發(fā)射機設(shè)備,包括: 用于耦合至共享總線的總線接口 ; 處理電路,其耦合到所述總線接口并且被配置成: 獲得要在共享總線上傳送的多個比特,其中所述多個比特中的3個最低有效位或最低有效位被用于錯誤檢測; 將所述多個比特轉(zhuǎn)換成三進制數(shù); 將所述三進制數(shù)的各個數(shù)位轉(zhuǎn)換成順序碼元;以及 將多個碼元組合成字以供傳輸。18.如權(quán)利要求17所述的設(shè)備,其特征在于,所述處理電路被進一步配置成:在所述共享總線上向接收方設(shè)備傳送所述字。19.如權(quán)利要求17所述的設(shè)備,其特征在于,所述處理電路被進一步配置成: 計算所傳送比特的校驗和;以及 向所述接收方設(shè)備傳送所傳送比特的所述校驗和。20.如權(quán)利要求17所述的設(shè)備,其特征在于,所述校驗和被插入在任何的任意字內(nèi)以供傳送給所述接收方設(shè)備。21.如權(quán)利要求17所述的設(shè)備,其特征在于,時鐘被嵌入在碼元到碼元轉(zhuǎn)變內(nèi)。22.如權(quán)利要求17所述的設(shè)備,其特征在于,所述共享總線是雙線總線,并且所述雙線總線中的兩條線均被用于傳輸所述碼元。23.一種接收機設(shè)備,包括: 用于耦合至共享總線的總線接口 ; 處理電路,其耦合到所述總線接口并且被配置成: 在所述共享總線上接收多個碼元; 將所述多個碼元轉(zhuǎn)換成各個數(shù)位; 將所述各個數(shù)位組合成三進制數(shù);以及 將所述三進制數(shù)轉(zhuǎn)換成比特,其中所述多個比特中的3個最低有效位或最低有效位被用于錯誤檢測。24.如權(quán)利要求23所述的接收機設(shè)備,其特征在于,所述處理電路被進一步配置成: 基于所述多個比特中的所述3個最低有效位或所述最低有效位來查明所接收到的多個比特內(nèi)的錯誤。25.如權(quán)利要求23所述的接收機設(shè)備,其特征在于,時鐘被嵌入在所述多個收到碼元的碼元到碼元轉(zhuǎn)變內(nèi)。26.如權(quán)利要求23所述的接收機設(shè)備,其特征在于,進一步包括: 狀態(tài)機邏輯電路,所述狀態(tài)機邏輯電路檢測所述時鐘信號中的錯誤的時鐘脈沖缺失和錯誤的額外時鐘脈沖。27.如權(quán)利要求23所述的接收機設(shè)備,其特征在于,所述共享總線是雙線總線,并且所述雙線總線中的兩條線均被用于傳輸所述碼元。
【文檔編號】H03M13/09GK105900340SQ201480055750
【公開日】2016年8月24日
【申請日】2014年10月9日
【發(fā)明人】S·森戈庫
【申請人】高通股份有限公司