新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > USB封包中的數據域類型

        USB封包中的數據域類型

        作者: 時間:2013-10-17 來源:網絡 收藏
        是以令牌封包為主(token based)的總線協議,而且PC主機掌握了這個總線的一切主控權。換而言之,一切的溝通都由PC主機來負責激活與執行。再加上,由于USB不占用任何PC的中斷向量、DMA或是任何輸人/輸出的資源,因此,必須通過嚴謹的協議才能與外圍設各達成通信的目的,進而執行各項傳輸的命令。當然,在USB的通信協議中,不僅只有令牌封包而已,還包含了數據封包、握手封包以及特殊封包等。因此,就必須先介紹類型中的各種數據域的格式,并加以說明。

          不同的封包類型,含有不同數量與形態的數據域。以下依序介紹各種數據域的規范與結構。而通過不同形態的數據域的組成,即可構成所要的封包類型。

          封包內所包含的信息數據位于1~3 074字節之間。第1個字節總是封包標識符(PID),用來定義其余的信息字節所要表達的意義。而封包的最后一部分,則是封包結束EOP(End-of-Packet)標識符。

          但應注意,USB的串行傳輸是先送出最低位LSB,然后再依序送出,直到最高位MSB為止,如圖1所示。而PID[0:3]與PID[0:3]的意義稍后會再加以解釋。

          圖1 封包格式

          首先,介紹第一個,也是每一種封包都含有的數據域:同步列數據域。

          1.同步列(Synchronization Sequence,SYNC)數據域

          SYNC字段由8位組成,作為每一個數據封包的前導,用來產生同步,將會起始PLL。因此,它的數值固定為:00000001。這個字段僅可以在閑置時,作傳輸之用。封包的起始是由總線從J狀態轉換成K狀態的變化所產生設置的。大部分的傳送過程是由傳送器在下一個可用的位時間所驅動的,并用來產生一個SYNC序列。而另一端的接收器即可利用此序列,將其所接收到時鐘與所接收到的數據傳輸過程,兩者加以調和,如此即可確保封包的信息部分是可靠地接收到。這個SYNC序列以2個K狀態來結束,且在下一個位時間,開始傳遞封包的信息。

          此外,若針對高速傳輸,SYNC序列將會由PC主機所產生,且其中包含了09位的SYNC(KJ KJKJ…KJKK)。雖然這些SYNC序列將會由于集線器的阻隔而消耗若干信號,但在最后末端的設備至少可以收到12位SYNC序列。而這已足夠去鎖住接收的時鐘,并用來產生PLL。但對低速/全速的設備來說,僅需使用8位SYNC序列。

          2.封包標識符(Packet Identifier,PID)數據域

          PID字段緊隨在SYNC字段后面,用來表示數據封包的類型。PID字段由一個4位的標識符欄以及一個互為補碼的檢查欄組成。在表3,2中,列出了封包的類型,其可分為令牌、數據、握手或特殊等4種封包類型。這4種類型可由PID[0:1]2個位來定義。此外,在每一種的封包類型中,還可通過PID[2:3]2個位來定義出不同的封包格式。例如,在令牌封包中,又可細分為OUT、IN、SETUP與SOF等4種封包格式。如此,可推類至其余的封包類型。但在2.0規范中,新增了幾個封包標識符,其中,數據封包類型新添了DATA2與DATA3兩個封包標識符。

          表 各種封包的類型與規范

        續表


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阿克陶县| 福州市| 宁河县| 文成县| 洛南县| 禄丰县| 扎囊县| 文登市| 云龙县| 珠海市| 山阳县| 墨玉县| 乐亭县| 阜宁县| 绍兴市| 黄浦区| 偏关县| 虹口区| 大石桥市| 怀宁县| 武汉市| 浮梁县| 通河县| 安平县| 大方县| 奉节县| 中方县| 白山市| 宽城| 西峡县| 鸡西市| 平昌县| 漠河县| 合山市| 大宁县| 庆安县| 当阳市| 恩施市| 琼海市| 绥阳县| 河东区|