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