USB封包中的數(shù)據(jù)域類型
3.地址(Address,ADDR)數(shù)據(jù)域
ADDR數(shù)據(jù)域由7位組成,可用來尋址出達(dá)127個(gè)外圍設(shè)各。當(dāng)然每一個(gè)設(shè)各僅能對(duì)應(yīng)一個(gè)唯一的地址,而每當(dāng)新的外圍設(shè)各剛連接至USB接口時(shí),擁有預(yù)設(shè)的地址0,其后再賦予新的地址。也因此,27-1(預(yù)設(shè)地址)=127外圍設(shè)備。
4.端點(diǎn)(Endpoint,EN?。㏄)數(shù)據(jù)域
ENDP數(shù)據(jù)域由4位組成,之前有提及過,端點(diǎn)是類似微管線的概念。通過這4位,可以定義出高達(dá)16個(gè)端點(diǎn)。但基本上,只使用15個(gè)端點(diǎn)。而通過端點(diǎn)描述符的設(shè)置,則最多可尋址出30個(gè)端點(diǎn)。這個(gè)ENDP數(shù)據(jù)域僅用在IN、OUT與SETUP令牌封包中。對(duì)于低速的設(shè)各可支持端點(diǎn)0以及端點(diǎn)1作為中斷傳輸模式(如CY7C63O/iXX微控制器系列),而全速設(shè)各則可以擁有15個(gè)輸人端點(diǎn)(IN)與15個(gè)輸出端點(diǎn)(OUT)共30個(gè)端點(diǎn)。Cypress USB微控制器的CY7C64213與CY7C64313系列則最多可支持31個(gè)端點(diǎn)(另外包含一個(gè)端點(diǎn)0)。
5.循環(huán)冗余檢驗(yàn)(Cycle Redundancy Checks,CRC)數(shù)據(jù)域
根據(jù)不同的封包類型,CRC數(shù)據(jù)域由不同數(shù)目的位組成。其中,最重要的數(shù)據(jù)封包采用CRC16的數(shù)據(jù)域(16位),而其余的封包類型則采用CRC5的數(shù)據(jù)域(5位)。其中的的循環(huán)冗余檢驗(yàn)CRC,是一種用來做數(shù)據(jù)錯(cuò)誤檢測(cè)的技術(shù)。這是由于數(shù)據(jù)在做串行傳輸時(shí),有時(shí)候會(huì)發(fā)生若干錯(cuò)誤。因此,CRC可根據(jù)數(shù)據(jù)算出一個(gè)檢驗(yàn)值,然后依此判斷數(shù)據(jù)的正確性。
通過前面所介紹的5個(gè)數(shù)據(jù)域,即可構(gòu)成了大部分的封包類型,而以下再介紹其余特殊的數(shù)據(jù)域。
6.?dāng)?shù)據(jù)(data)欄
僅存于Data封包內(nèi),而根據(jù)不同的傳輸類型,擁有不同的字節(jié)大小,從0~1 024字節(jié)(僅能在等時(shí)傳輸時(shí)設(shè)置,USB 2.0規(guī)范)。而規(guī)范1。x則可設(shè)置0~1 023字節(jié)(僅能在等時(shí)傳輸時(shí)設(shè)置)。
7.幀號(hào)碼(frame number)數(shù)據(jù)域
僅存于SOF封包內(nèi),幀號(hào)碼數(shù)據(jù)域由11個(gè)位所組成。這對(duì)于等時(shí)傳輸是非常重要的信息數(shù)據(jù)。
8。閑置(idle)欄
閑置欄在每一個(gè)封包的結(jié)尾處,且當(dāng)D+與D-電位都為低電位時(shí)。
評(píng)論