新聞中心

usb基礎(chǔ)知識(shí)

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
1、端點(diǎn):位于USB設(shè)備或主機(jī)上的一個(gè)數(shù)據(jù)緩沖區(qū),每個(gè)端點(diǎn)有其唯一的地址,有不同的傳輸特性(輸入、輸出、配置、批量傳輸端點(diǎn))

幀: 是一個(gè)時(shí)間概念,在USB中,一幀就是1MS,包含了一系列總線動(dòng)作。USB

本文引用地址:http://m.butianyuan.cn/article/201611/322917.htm

   將一幀分為好幾份,每份就是USB的一個(gè)傳輸動(dòng)作。

上行:設(shè)備到主機(jī)為上行,主機(jī)到設(shè)備為下行。

2、數(shù)據(jù)在USB中的發(fā)送是由低位到高位發(fā)送的。

3、USB的數(shù)據(jù)格式:

    數(shù)字串構(gòu)成域(有七種),域再構(gòu)成包,包再構(gòu)成事務(wù)(IN、OUT、SETUP),事務(wù)最后構(gòu)成傳輸(中斷傳輸、并行傳輸、批量傳輸和控制傳輸)。

    域:

名稱

意義

同步域(SYNC)

固定為0000 0001

用于同步

標(biāo)識(shí)域(PID)

四位標(biāo)識(shí)符+四位標(biāo)識(shí)符反碼

表明包的類型和格式,共16種

地址域(ADDR)

7位地址

設(shè)備在主機(jī)上的地址(注1)

端點(diǎn)域(ENDP)

4位

幀號(hào)域(FRAM)

11位

每個(gè)幀都有其編號(hào),最大為0x800

數(shù)據(jù)域(DATA)

校驗(yàn)域(CRC)

    注:1、地址000 0000被命名為零地址,是任何一個(gè)設(shè)備第一次連接到主機(jī)時(shí),在被主機(jī)配置、枚舉前的默認(rèn)地址,由此可以知道為什么一個(gè)USB主機(jī)只能接127個(gè)設(shè)備的原因。

    2、端點(diǎn)域有4位,所以一個(gè)設(shè)備最多有16個(gè)端點(diǎn)。

   包:

   

令牌包

SYNC+PID+ADDR+ENDP+CRC5(五位的校驗(yàn)碼)(輸入、輸出、設(shè)置)

SYNC+PID+11位FRAM+CRC5(五位的校驗(yàn)碼)(幀起始包)

數(shù)據(jù)包

SYNC+PID+0~1023字節(jié)+CRC16

握手包

SYNC+PID

特殊包

   事務(wù):

     IN:令牌包、數(shù)據(jù)包、握手包

    ?。希眨裕毫钆瓢?、數(shù)據(jù)包、握手包

    ?。樱牛裕眨校毫钆瓢?shù)據(jù)包、握手包 這8個(gè)字節(jié)的內(nèi)容就是標(biāo)準(zhǔn)的USB設(shè)備請(qǐng)求命令(共有11條

  

傳輸:

    傳輸由IN、OUT、SETUP中的事務(wù)構(gòu)成,有中斷傳輸、批量傳輸、控制傳輸、  

    同步傳輸、控制傳輸,其中中斷傳輸和批量轉(zhuǎn)輸?shù)慕Y(jié)構(gòu)一樣,同步傳輸有最簡(jiǎn)單的結(jié)構(gòu),而控制傳輸是最重要的也是最復(fù)雜的傳輸。

1、    中斷傳輸:由OUT事務(wù)和IN事務(wù)構(gòu)成,用于鍵盤、鼠標(biāo)等HID設(shè)備的數(shù)據(jù)傳輸中

2、     批量傳輸:由OUT事務(wù)和IN事務(wù)構(gòu)成,用于大容量數(shù)據(jù)傳輸,沒(méi)有固定的傳輸速率,也不占用帶寬,當(dāng)總線忙時(shí),USB會(huì)優(yōu)先進(jìn)行其他類型的數(shù)據(jù)傳輸,而暫時(shí)停止批量轉(zhuǎn)輸。

3、     同步傳輸:由OUT事務(wù)和IN事務(wù)構(gòu)成,有兩個(gè)特殊地方,第一,在同步傳輸?shù)腎N和OUT事務(wù)中是沒(méi)有返回包階段的;第二,在數(shù)據(jù)包階段所有的數(shù)據(jù)包都為DATA0

4、   控制傳輸:最重要的也是最復(fù)雜的傳輸,控制傳輸由三個(gè)階段構(gòu)成(初始設(shè)置階段、可選數(shù)據(jù)階段、狀態(tài)信息步驟),每一個(gè)階段可以看成一個(gè)的傳輸,也就是說(shuō)控制傳輸其實(shí)是由三個(gè)傳輸構(gòu)成的,用來(lái)于USB設(shè)備初次加接到主機(jī)之后,主機(jī)通過(guò)控制傳輸來(lái)交換信息,設(shè)備地址和讀取設(shè)備的描述符,使得主機(jī)識(shí)別設(shè)備,并安裝相應(yīng)的驅(qū)動(dòng)程序,這是每一個(gè)USB開(kāi)發(fā)者都要關(guān)心的問(wèn)題

令牌包:

0x01輸出(OUT)啟動(dòng)一個(gè)方向?yàn)橹鳈C(jī)到設(shè)備的傳輸,并包含了設(shè)備地址和標(biāo)號(hào)

0x09輸入(IN)啟動(dòng)一個(gè)方向?yàn)樵O(shè)備到主機(jī)的傳輸,并包含了設(shè)備地址和標(biāo)號(hào)

0x05幀起始(SOF)表示一個(gè)幀的開(kāi)始,并且包含了相應(yīng)的幀號(hào)

0x0d設(shè)置(SETUP)啟動(dòng)一個(gè)控制傳輸,用于主機(jī)對(duì)設(shè)備的初始化

數(shù)據(jù)包:

0x03偶數(shù)據(jù)包(DATA0),

0x0b奇數(shù)據(jù)包(DATA1)

握手包:

0x02確認(rèn)接收到無(wú)誤的數(shù)據(jù)包(ACK)

0x0a無(wú)效,接收(發(fā)送)端正在忙而無(wú)法接收(發(fā)送)信息

0x0e錯(cuò)誤,端點(diǎn)被禁止或不支持控制管道請(qǐng)求

特殊包0x0C前導(dǎo),用于啟動(dòng)下行端口的低速設(shè)備的數(shù)據(jù)傳輸



關(guān)鍵詞: usb基礎(chǔ)知

評(píng)論


技術(shù)專區(qū)

關(guān)閉