登錄 注冊
購物車0
TOP
Imgs 行業(yè)資訊

0

FPGA和USB3.0通信-USB3.0協(xié)議簡介

2021-11-25 13:58:33
今天我們就通過4~5篇文章介紹FPGA與USB3.0通信的相關(guān)知識,其實是《FPGA和外圍接口(繼續(xù)更新)基于FPGA的網(wǎng)口通信設(shè)計》的后續(xù)。PCIe也在準(zhǔn)備中。
完成后,也是《Xilinx  7系列FPGA入門級圖像處理-完整版V1》初級和中級章節(jié)的開始。圖像處理部分也將由攝像頭前端算法(主ISP)和后端算法組成。最后,應(yīng)形成初級工業(yè)UVC攝像機和IPC。平臺還沒選好(不知道有沒有贊助,哈哈),算法基本驗證完畢。
USB3.0簡介
總線、接口和協(xié)議
首先,這里有幾個概念,應(yīng)該是大家都通用的:
USB3.0協(xié)議
USB3.0接口
USB3.0總線
是不是很蠢?
其實了解了這些概念,就可以針對USB的具體協(xié)議,不需要看整個復(fù)雜冗長的協(xié)議來選擇自己的立場。
總線是一組傳輸通道,是由各種邏輯器件組成的傳輸數(shù)據(jù)的通道,一般由數(shù)據(jù)線、地址線、控制線等組成。接口是一種連接標(biāo)準(zhǔn),通常稱為物理接口。協(xié)議是數(shù)據(jù)傳輸?shù)囊?guī)則。
一般來說,USB可以是USB信號、USB接口、USB總線或USB協(xié)議。它如此復(fù)雜的主要原因是每個人對概念的理解不同。舉個簡單的例子,USB總線指的是一組傳輸通道,而USB接口是一個連接標(biāo)準(zhǔn)。兩者的關(guān)系是所有帶USB接口的設(shè)備都要通過USB總線進行通信,而USB總線上的設(shè)備并不都是USB接口。比如集成的USB聲卡是USB總線,不是USB接口。這里,USB總線提供了一個通道,在這個通道上可以有不同的接口設(shè)備或信號(USB信號或Audio信號)滿足這個通道的要求。
35306478-3b8a-11ec-82a9-dac502259ad0.png
USB板載聲卡
對于USB聲卡,安裝外置聲卡時使用USB接口,板載聲卡始終使用沒有USB接口的USB總線(物理層可以滿足要求)。
所以總結(jié)一下:
即協(xié)議的整體框架,定義了接口設(shè)備、器件、信號、總線、通道之間要滿足的關(guān)系,即要實現(xiàn)信號的傳輸,所有這些成員必須協(xié)同工作,滿足協(xié)議所要求的各種必要條件。
對于USB,下圖可以說明三者之間的關(guān)系:
3565e3be-3b8a-11ec-82a9-dac502259ad0.png
通過以上分析,后面將簡要介紹USB3.0中規(guī)定的幾個重要方面。
USB3.0的分層機制
大家都知道PCIe有三層結(jié)構(gòu)(事務(wù)層、數(shù)據(jù)鏈路層和物理層)和TCP/IP五層結(jié)構(gòu)(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層)。為什么復(fù)雜的協(xié)議有層次結(jié)構(gòu)?
這個起源主要來自于OSI五層參考模型(比如七層OSI參考模型)
即使是簡單的RS232也遵循上面的層次結(jié)構(gòu),但是RS232只指定了物理層,所以現(xiàn)實中很少有人使用層次結(jié)構(gòu)進行分析。
USB3.0的分層機制實際上類似于PCIe(協(xié)議層、鏈路層和物理層)。從某種意義上說,USB3.0可以看作是PCIe的變種。下圖是分層通信結(jié)構(gòu):
36304a0a-3b8a-11ec-82a9-dac502259ad0.jpg
這種分層結(jié)構(gòu)便于標(biāo)準(zhǔn)化和擴展,因此現(xiàn)在大多數(shù)協(xié)議都遵循OSI參考模型。希望大家能理解這個模型(推薦文章中有很多生動的解釋)。
以上部分解釋包含個人理解。為了通俗易懂,有些表達不太準(zhǔn)確。希望大家留言交流。這是對官方文件的簡單解釋。
USB3.0和USB2.0的功能比較
366bd674-3b8a-11ec-82a9-dac502259ad0.jpg
硬件接口
368d22fc-3b8a-11ec-82a9-dac502259ad0.png
369da5f0-3b8a-11ec-82a9-dac502259ad0.png
物理層
突出顯示部分:
36f20a28-3b8a-11ec-82a9-dac502259ad0.png
該層主要定義高速組件之間互操作所需的電氣層參數(shù)。
37240398-3b8a-11ec-82a9-dac502259ad0.png
Tx物理層框圖
3735cdf8-3b8a-11ec-82a9-dac502259ad0.png
物理層Rx框圖
377764ca-3b8a-11ec-82a9-dac502259ad0.png
不帶電纜(頂部)和帶電纜(底部)的通道示意圖
USB3.0使用8b/10b傳輸代碼。該傳輸代碼的定義與ANSI  X3.230-1994(也稱為ANSI  INCITS  230-1994)第11條中規(guī)定的定義相同。
378bc7ee-3b8a-11ec-82a9-dac502259ad0.png
加擾功能由線性反饋移位寄存器(LFSR)實現(xiàn)。在發(fā)送端,在8b/10b編碼之前對字符進行加擾。在接收端,對8b/10b解碼字符進行解擾。每當(dāng)發(fā)送或接收通信符號時,LFSR都會復(fù)位。
3798725a-3b8a-11ec-82a9-dac502259ad0.png
這些是物理層的一般規(guī)定。詳見《USB3.0協(xié)議規(guī)范(英文完整版)(第六節(jié))》。
鏈路層鏈路層
突出顯示部分:
37cfd8f8-3b8a-11ec-82a9-dac502259ad0.png
鏈路層鏈路層主要包括:
分組幀
鏈接命令
鏈路管理和流量控制
鏈接錯誤規(guī)則/恢復(fù)
重置
鏈接狀態(tài)機描述
37e5d9be-3b8a-11ec-82a9-dac502259ad0.png
帶有幀符號、CRC-16和鏈路控制字的數(shù)據(jù)包報頭
3823003c-3b8a-11ec-82a9-dac502259ad0.png
鏈接控制字
3833b10c-3b8a-11ec-82a9-dac502259ad0.png
指令結(jié)構(gòu)
38625fa2-3b8a-11ec-82a9-dac502259ad0.png
命令字結(jié)構(gòu)
387475de-3b8a-11ec-82a9-dac502259ad0.png
鏈路訓(xùn)練和狀態(tài)機的狀態(tài)圖
協(xié)議層
突出顯示部分:
38be6d24-3b8a-11ec-82a9-dac502259ad0.png
協(xié)議層主要包括:
數(shù)據(jù)包類型
數(shù)據(jù)包格式
對主機和設(shè)備發(fā)送的數(shù)據(jù)包的預(yù)期響應(yīng)
描述了四種USB  3.0事務(wù)類型。
批量傳輸類型的流支持
設(shè)備/主機可以接收/發(fā)送的數(shù)據(jù)包的各種響應(yīng)和定時參數(shù)。
整個協(xié)議層非常復(fù)雜,數(shù)據(jù)包的類型幾乎有十幾種,這里就不贅述了。

高都電子,為客戶創(chuàng)造價值!

雙面板免費加費,四層板加急打樣,厚銅電路板打樣

Xcm