新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > USB封包格式

        USB封包格式

        作者: 時間:2013-10-12 來源:網絡 收藏

          圖3 顯示了PC主機所起始的SETUP令牌封包。

          圖3 令牌封包的各種組成的字段

          3.數據封包

          在接口中,主機執行了總線的管理、數據傳輸以及設各對主機所提出的要求命令作出響應的動作。這些所要傳輸的數據與要求命令是什么呢?因此,必須通過數據封包來執行這項工作。

          而由SETUP、IN與OUT令牌封包所起始的數據傳輸,將會以DATAO、DATA1、DATA2與MDATA封包來加以實現。一個數據封包含了4個數據域:SYNC、PID、DATA與CRC16。各個字段的意義之前已有介紹過。這即是54233的第2個數字:4。在這里,要稍微注意的是DATA字段內所放置的位值,須根據設各的傳輸設備(低速、高速與全速)以及傳輸類型(中斷傳輸、批量傳輸與等時傳輸)而定,且須以所設置的MaxPackSize字節為基本單位。也即是,若傳輸的數據不足MaxPackSize字節,或是傳輸到最后所剩余的也不足MaxPackSize字節,則仍須傳輸MaxPackSize個字節的數據域。

          列出由4個數據域所組合而成的數據封包。

          數據封包的PID數據域(PID[1:0]=[1:1])包含了4種類型:DATA0、DATA1、DATA2與MDATA。而根據規范,最初的數據封包都以DATA0作為開始,其后才是DATA1,然后依此方式交替切換。這個動作稱之為數據緊密連接(data toggle)。這個動作有點類似將數據緊密連接。如此就可確保整個傳輸過程中,主機能與設各維持同步,且作為幀錯之用。例如,如果兩個連續的DATA0被接收到的話,意味著DATA1封包被遺漏掉,并產生了錯誤的狀況。而DATA2與MDATA,則僅適用于高速的等時傳輸。

          若主機要針對特別尋址的設各端點,送出取得設各描述符的命令,就可如圖4所示,將含有命令的數據封包傳出。其中,須特別注意的是,由于是控制傳輸,所以數據域中僅有8字節。至于“8006 0001 000040”的設備要求的意義。

          圖4 數據封包的各種組成字段

          4.握手封包

          握手封包是最簡單的封包類型。在這個握手封包中,僅包含一個PID數據域。它的格式如下所列,僅包含SYNC與PID兩個數據域,這即是54233的第3個數字:2。

          握手封包的PID數據域(PID[1:0]=[1:0])中包含了ACK、NAK、STALL與NYET這4種PID類型名稱。也就是含有ACK、NAK、STALL與NYET握手封包。

          延伸上一個圖例,如果設備已收到主機要執行取得設備描述符的命令,設備就以握手封包來加以響應。因此須注意的是,如果設備已準備接收的話就以ACK握手封包響應;如果尚未就緒就使用NAK握手封包響應;如果發生錯誤而停滯,就使用STALL握手封包響應。圖5顯示一個握手封包的格式,其中ACK的PID數據域值為Ox4B,剛好與SETUP的PID數據域值相反。

          圖5 握手封包的各種組成字段

        pid控制相關文章:pid控制原理


        三相異步電動機相關文章:三相異步電動機原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 资阳市| 诸暨市| 兴山县| 江油市| 墨玉县| 图木舒克市| 海宁市| 和静县| 舒城县| 新安县| 社旗县| 奎屯市| 牡丹江市| 双桥区| 北海市| 炉霍县| 班玛县| 什邡市| 南川市| 隆安县| 宣恩县| 岱山县| 晋州市| 故城县| 广汉市| 武汉市| 盐山县| 乐至县| 新巴尔虎左旗| 定南县| 延川县| 武夷山市| 历史| 桃江县| 永昌县| 界首市| 临沭县| 揭西县| 通海县| 镇雄县| 天津市|