登錄 注冊(cè)
購(gòu)物車(chē)0
TOP
Imgs 行業(yè)資訊

0

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

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

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

雙面板免費(fèi)加費(fèi),四層板加急打樣,厚銅電路板打樣

Xcm