今天開始將會(huì)通過4~5篇文章介紹FPGA和USB3.0通信的相關(guān)知識(shí),這其實(shí)是《FPGA和外圍接口(繼續(xù)更新)基于FPGA的網(wǎng)口通信設(shè)計(jì)》后續(xù)。PCIe也在籌備中。
完成后也是《Xilinx 7系列FPGA入門級(jí)圖像處理-完整版V1》初、中級(jí)篇的開始,圖像處理部分也會(huì)通過攝像頭前端算法(主要ISP)和后端算法組成,最后應(yīng)該會(huì)形成一個(gè)初級(jí)工業(yè)UVC攝像頭和IPC,平臺(tái)還沒選定(不知道有沒有贊助,哈哈),算法基本驗(yàn)證完畢。
USB3.0介紹
總線、接口和協(xié)議
這里首先提幾個(gè)概念,大家應(yīng)該常見到:
USB3.0協(xié)議
USB3.0接口
USB3.0總線
是不是很懵逼?
其實(shí)理解了這幾個(gè)概念,對(duì)于USB的具體協(xié)議就可以有得放矢,不需要看整個(gè)復(fù)雜又冗長的協(xié)議,針對(duì)自己的崗位去選擇。
總線是一組傳輸通道,是各種邏輯器件構(gòu)成的傳輸數(shù)據(jù)的通道,一般由由數(shù)據(jù)線、地址線、控制線等構(gòu)成。接口是一種連接標(biāo)準(zhǔn),又常常被稱之為物理接口。協(xié)議就是傳輸數(shù)據(jù)的規(guī)則。
我們通常說的USB,既可以是USB信號(hào),也可以是USB接口、USB總線,還可以是USB協(xié)議。之所以這么復(fù)雜,主要原因就是每個(gè)人對(duì)概念認(rèn)知的差異。舉個(gè)簡單的例子,USB總線說的是一組傳輸通道,而USB接口是一種連接標(biāo)準(zhǔn),兩者之間的關(guān)系就是USB接口的設(shè)備都要通過USB總線來進(jìn)行通信,而USB總線上走的設(shè)備并不全是USB接口的,像集成USB聲卡,走的就是USB總線,但是沒有走USB接口。在這里USB總線提供了一種通道,這個(gè)通道上可以有不同的符合這種通道要求的接口設(shè)備或信號(hào)(USB信號(hào)或Audio信號(hào))。
USB板載聲卡
對(duì)于USB聲卡,外置聲卡時(shí)走的就是USB接口,板載聲卡時(shí)時(shí)走的USB總線而不包含USB接口(物理層滿足要求即可)。
所以總結(jié)一下:
協(xié)議即總體框架,定義接口設(shè)備、器件及信號(hào)、總線及通道之間需要滿足的關(guān)系,即要實(shí)現(xiàn)信號(hào)的傳輸,所有這些組成成員必須通力合作,各自滿足協(xié)議要求的各種必要條件。
對(duì)于USB,下圖可以說明這三者關(guān)系:
通過上面的分析,后面會(huì)在簡單介紹USB3.0中規(guī)定的幾個(gè)重要方面。
USB3.0的分層機(jī)制
大家都知道PCIe具有三層結(jié)構(gòu)(事務(wù)層(Transaction Layer),數(shù)據(jù)鏈路層(Data Link Layer)和物理層(Physical Layer)),TCP/IP五層結(jié)構(gòu)(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層),為什么復(fù)雜協(xié)議都具有分層結(jié)構(gòu)呢?
這個(gè)由來主要來源于OSI五層參考模型(例說七層OSI參考模型)。
即使簡單的RS232也是遵守上面的分層結(jié)構(gòu),只不過RS232只規(guī)定了物理層,所以現(xiàn)實(shí)中很少有人用分層結(jié)構(gòu)進(jìn)行分析。
USB3.0的分層機(jī)制其實(shí)和PCIe類似(協(xié)議層(Protocol Layer),鏈路層(Link Layer)和物理層(Physical Layer)),從某種意義上看,可以把USB3.0看做是PCIe變形版本。下圖是分層的通訊結(jié)構(gòu):
這種分層結(jié)構(gòu)即方便標(biāo)準(zhǔn)化,又方便擴(kuò)展,所以現(xiàn)今大部分協(xié)議都遵循OSI參考模型,希望大家可以理解一下這個(gè)模型(推薦的文章中有很多形象的解釋)。
以上部分解釋包含了個(gè)人理解,為了通俗易懂,有些表述不是很準(zhǔn)確,希望大家留言交流,下面就很俗套的簡單講解官方的文檔了。
USB3.0 與USB2.0的特性比較
硬件接口
物理層
高亮顯示部分:
本層主要定義了高速組件之間互操作性所需的電氣層參數(shù)。
物理層Tx框圖
物理層Rx框圖
不帶電纜(頂部)和帶電纜(底部)的通道示意圖
USB3.0使用8b/10b傳輸代碼。該傳輸代碼的定義與ANSI X3.230-1994(也稱為ANSI INCITS 230-1994)第11條中規(guī)定的定義相同。
加擾功能使用線性反饋移位寄存器(LFSR)實(shí)現(xiàn)。在發(fā)送端,加擾應(yīng)用于8b/10b編碼之前的字符。在接收端,對(duì)8b/10b解碼后的字符應(yīng)用解擾。無論何時(shí)發(fā)送或接收COM符號(hào),LFSR都會(huì)重置。
以上就是物理層大致的規(guī)定,詳情請(qǐng)見《USB3.0協(xié)議規(guī)范(英文完整版)(第六節(jié))》。
Link Layer鏈路層
高亮顯示部分:
Link Layer鏈路層主要包括:
?數(shù)據(jù)包幀
?鏈路命令
?鏈路管理和流量控制
?鏈路錯(cuò)誤規(guī)則/恢復(fù)
?重置
?鏈路狀態(tài)機(jī)描述
具有幀符號(hào)、CRC-16和鏈路控制字的分組報(bào)頭
鏈接控制字
鏈接命令結(jié)構(gòu)
鏈接命令字結(jié)構(gòu)
鏈路訓(xùn)練和狀態(tài)機(jī)的狀態(tài)圖
協(xié)議層
高亮顯示部分:
協(xié)議層主要包括:
?數(shù)據(jù)包類型
?數(shù)據(jù)包的格式
?對(duì)主機(jī)和設(shè)備發(fā)送的數(shù)據(jù)包的預(yù)期響應(yīng)
?描述了四種USB 3.0事務(wù)類型
?支持批量傳輸類型的流式傳輸支持
?設(shè)備/主機(jī)可能接收/發(fā)送的各種響應(yīng)和數(shù)據(jù)包的定時(shí)參數(shù)
整個(gè)協(xié)議層非常復(fù)雜,數(shù)據(jù)包就差不多十幾種類型,所以這里就不過多介紹了。
編輯:jq
-
主機(jī)
+關(guān)注
關(guān)注
0文章
1038瀏覽量
35986 -
RS232
+關(guān)注
關(guān)注
13文章
808瀏覽量
95975 -
PCIe
+關(guān)注
關(guān)注
16文章
1342瀏覽量
85145 -
數(shù)據(jù)包
+關(guān)注
關(guān)注
0文章
269瀏覽量
24991
原文標(biāo)題:FPGA和USB3.0通信-USB3.0協(xié)議介紹
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
電流功率檢測USB3.0HUB,USB3.0擴(kuò)展塢,可擴(kuò)展的USB2.0
使用CYUSB3014作為USB3.0數(shù)據(jù)傳輸方案,USB3.0無法識(shí)別是什么原因?
在automaster和autoslave項(xiàng)目中如何配置參數(shù)來滿足usb3.0和usb2.0的數(shù)據(jù)傳輸?
是否可以與USB2.0集線器 (CYUSB2302) 共享USB2通道SS線路直接到USB3.0端口?
CYUSB3014無法識(shí)別為USB3.0設(shè)備怎么解決?
CH634USB3.0HUB控制芯片USB3.0國產(chǎn)控制芯片

基于FT600Q芯片 的USB3.0設(shè)計(jì),為什么連接PC后設(shè)備無法識(shí)別?
軒展科技發(fā)布4K USB3.0編碼采集模塊
請(qǐng)問ISO7760能應(yīng)用在USB3.0數(shù)據(jù)上隔離嗎?
USB3.0的識(shí)別問題
CYUSB3014是否會(huì)自動(dòng)調(diào)整工作模式USB3.0還是USB2.0?
USB3.0/3.1靜電放電防護(hù)方案

評(píng)論