今天開始將會通過4~5篇文章介紹FPGA和USB3.0通信的相關知識,這其實是《FPGA和外圍接口(繼續(xù)更新)基于FPGA的網(wǎng)口通信設計》后續(xù)。PCIe也在籌備中。
完成后也是《Xilinx 7系列FPGA入門級圖像處理-完整版V1》初、中級篇的開始,圖像處理部分也會通過攝像頭前端算法(主要ISP)和后端算法組成,最后應該會形成一個初級工業(yè)UVC攝像頭和IPC,平臺還沒選定(不知道有沒有贊助,哈哈),算法基本驗證完畢。
USB3.0介紹
總線、接口和協(xié)議
這里首先提幾個概念,大家應該常見到:
USB3.0協(xié)議
USB3.0接口
USB3.0總線
是不是很懵逼?
其實理解了這幾個概念,對于USB的具體協(xié)議就可以有得放矢,不需要看整個復雜又冗長的協(xié)議,針對自己的崗位去選擇。
總線是一組傳輸通道,是各種邏輯器件構成的傳輸數(shù)據(jù)的通道,一般由由數(shù)據(jù)線、地址線、控制線等構成。接口是一種連接標準,又常常被稱之為物理接口。協(xié)議就是傳輸數(shù)據(jù)的規(guī)則。
我們通常說的USB,既可以是USB信號,也可以是USB接口、USB總線,還可以是USB協(xié)議。之所以這么復雜,主要原因就是每個人對概念認知的差異。舉個簡單的例子,USB總線說的是一組傳輸通道,而USB接口是一種連接標準,兩者之間的關系就是USB接口的設備都要通過USB總線來進行通信,而USB總線上走的設備并不全是USB接口的,像集成USB聲卡,走的就是USB總線,但是沒有走USB接口。在這里USB總線提供了一種通道,這個通道上可以有不同的符合這種通道要求的接口設備或信號(USB信號或Audio信號)。

USB板載聲卡
對于USB聲卡,外置聲卡時走的就是USB接口,板載聲卡時時走的USB總線而不包含USB接口(物理層滿足要求即可)。
所以總結一下:
協(xié)議即總體框架,定義接口設備、器件及信號、總線及通道之間需要滿足的關系,即要實現(xiàn)信號的傳輸,所有這些組成成員必須通力合作,各自滿足協(xié)議要求的各種必要條件。
對于USB,下圖可以說明這三者關系:

通過上面的分析,后面會在簡單介紹USB3.0中規(guī)定的幾個重要方面。
USB3.0的分層機制
大家都知道PCIe具有三層結構(事務層(Transaction Layer),數(shù)據(jù)鏈路層(Data Link Layer)和物理層(Physical Layer)),TCP/IP五層結構(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層、應用層),為什么復雜協(xié)議都具有分層結構呢?
這個由來主要來源于OSI五層參考模型(例說七層OSI參考模型)。

即使簡單的RS232也是遵守上面的分層結構,只不過RS232只規(guī)定了物理層,所以現(xiàn)實中很少有人用分層結構進行分析。
USB3.0的分層機制其實和PCIe類似(協(xié)議層(Protocol Layer),鏈路層(Link Layer)和物理層(Physical Layer)),從某種意義上看,可以把USB3.0看做是PCIe變形版本。下圖是分層的通訊結構:

這種分層結構即方便標準化,又方便擴展,所以現(xiàn)今大部分協(xié)議都遵循OSI參考模型,希望大家可以理解一下這個模型(推薦的文章中有很多形象的解釋)。
以上部分解釋包含了個人理解,為了通俗易懂,有些表述不是很準確,希望大家留言交流,下面就很俗套的簡單講解官方的文檔了。
USB3.0 與USB2.0的特性比較

硬件接口


物理層
高亮顯示部分:

本層主要定義了高速組件之間互操作性所需的電氣層參數(shù)。

物理層Tx框圖

物理層Rx框圖

不帶電纜(頂部)和帶電纜(底部)的通道示意圖
USB3.0使用8b/10b傳輸代碼。該傳輸代碼的定義與ANSI X3.230-1994(也稱為ANSI INCITS 230-1994)第11條中規(guī)定的定義相同。

加擾功能使用線性反饋移位寄存器(LFSR)實現(xiàn)。在發(fā)送端,加擾應用于8b/10b編碼之前的字符。在接收端,對8b/10b解碼后的字符應用解擾。無論何時發(fā)送或接收COM符號,LFSR都會重置。

以上就是物理層大致的規(guī)定,詳情請見《USB3.0協(xié)議規(guī)范(英文完整版)(第六節(jié))》。
Link Layer鏈路層
高亮顯示部分:

Link Layer鏈路層主要包括:
?數(shù)據(jù)包幀
?鏈路命令
?鏈路管理和流量控制
?鏈路錯誤規(guī)則/恢復
?重置
?鏈路狀態(tài)機描述

具有幀符號、CRC-16和鏈路控制字的分組報頭

鏈接控制字

鏈接命令結構

鏈接命令字結構

鏈路訓練和狀態(tài)機的狀態(tài)圖
協(xié)議層
高亮顯示部分:

協(xié)議層主要包括:
?數(shù)據(jù)包類型
?數(shù)據(jù)包的格式
?對主機和設備發(fā)送的數(shù)據(jù)包的預期響應
?描述了四種USB 3.0事務類型
?支持批量傳輸類型的流式傳輸支持
?設備/主機可能接收/發(fā)送的各種響應和數(shù)據(jù)包的定時參數(shù)
整個協(xié)議層非常復雜,數(shù)據(jù)包就差不多十幾種類型,所以這里就不過多介紹了。
編輯:jq
-
主機
+關注
關注
0文章
1062瀏覽量
36819 -
RS232
+關注
關注
13文章
882瀏覽量
98625 -
PCIe
+關注
關注
16文章
1474瀏覽量
88889 -
數(shù)據(jù)包
+關注
關注
0文章
270瀏覽量
25655
原文標題:FPGA和USB3.0通信-USB3.0協(xié)議介紹
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
USB3.0接口轉換高性能圖像傳感和數(shù)據(jù)采集方案
PL27A1超高速USB3.0數(shù)據(jù)對拷線芯片資料
基于FPGA和USB3.0通信的UVC攝像機設計方案
FPGA和USB3.0通信-USB3.0協(xié)議簡介
評論