0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

OpenFPGA ? 來源:OpenFPGA ? 作者: 碎碎思 ? 2021-11-02 11:29 ? 次閱讀

今天開始將會通過4~5篇文章介紹FPGAUSB3.0通信的相關(guān)知識,這其實是《FPGA和外圍接口(繼續(xù)更新)基于FPGA的網(wǎng)口通信設(shè)計》后續(xù)。PCIe也在籌備中。

完成后也是《Xilinx 7系列FPGA入門級圖像處理-完整版V1》初、中級篇的開始,圖像處理部分也會通過攝像頭前端算法(主要ISP)和后端算法組成,最后應(yīng)該會形成一個初級工業(yè)UVC攝像頭和IPC,平臺還沒選定(不知道有沒有贊助,哈哈),算法基本驗證完畢。

USB3.0介紹

總線、接口和協(xié)議

這里首先提幾個概念,大家應(yīng)該常見到:

USB3.0協(xié)議

USB3.0接口

USB3.0總線

是不是很懵逼?

其實理解了這幾個概念,對于USB的具體協(xié)議就可以有得放矢,不需要看整個復雜又冗長的協(xié)議,針對自己的崗位去選擇。

總線是一組傳輸通道,是各種邏輯器件構(gòu)成的傳輸數(shù)據(jù)的通道,一般由由數(shù)據(jù)線、地址線、控制線等構(gòu)成。接口是一種連接標準,又常常被稱之為物理接口。協(xié)議就是傳輸數(shù)據(jù)的規(guī)則。

我們通常說的USB,既可以是USB信號,也可以是USB接口、USB總線,還可以是USB協(xié)議。之所以這么復雜,主要原因就是每個人對概念認知的差異。舉個簡單的例子,USB總線說的是一組傳輸通道,而USB接口是一種連接標準,兩者之間的關(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é)議要求的各種必要條件。

對于USB,下圖可以說明這三者關(guān)系:

3565e3be-3b8a-11ec-82a9-dac502259ad0.png

通過上面的分析,后面會在簡單介紹USB3.0中規(guī)定的幾個重要方面。

USB3.0的分層機制

大家都知道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)用層),為什么復雜協(xié)議都具有分層結(jié)構(gòu)呢?

這個由來主要來源于OSI五層參考模型(例說七層OSI參考模型)。

35c6924a-3b8a-11ec-82a9-dac502259ad0.png

即使簡單的RS232也是遵守上面的分層結(jié)構(gòu),只不過RS232只規(guī)定了物理層,所以現(xiàn)實中很少有人用分層結(jié)構(gòu)進行分析。

USB3.0的分層機制其實和PCIe類似(協(xié)議層(Protocol Layer),鏈路層(Link Layer)和物理層(Physical Layer)),從某種意義上看,可以把USB3.0看做是PCIe變形版本。下圖是分層的通訊結(jié)構(gòu):

36304a0a-3b8a-11ec-82a9-dac502259ad0.jpg

這種分層結(jié)構(gòu)即方便標準化,又方便擴展,所以現(xiàn)今大部分協(xié)議都遵循OSI參考模型,希望大家可以理解一下這個模型(推薦的文章中有很多形象的解釋)。

以上部分解釋包含了個人理解,為了通俗易懂,有些表述不是很準確,希望大家留言交流,下面就很俗套的簡單講解官方的文檔了。

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ā)送端,加擾應(yīng)用于8b/10b編碼之前的字符。在接收端,對8b/10b解碼后的字符應(yīng)用解擾。無論何時發(fā)送或接收COM符號,LFSR都會重置。

3798725a-3b8a-11ec-82a9-dac502259ad0.png

以上就是物理層大致的規(guī)定,詳情請見《USB3.0協(xié)議規(guī)范(英文完整版)(第六節(jié))》。

Link Layer鏈路層

高亮顯示部分:

37cfd8f8-3b8a-11ec-82a9-dac502259ad0.png

Link Layer鏈路層主要包括:

?數(shù)據(jù)包幀

?鏈路命令

?鏈路管理和流量控制

?鏈路錯誤規(guī)則/恢復

?重置

?鏈路狀態(tài)機描述

37e5d9be-3b8a-11ec-82a9-dac502259ad0.png

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

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

鏈路訓練和狀態(tài)機的狀態(tài)圖

協(xié)議層

高亮顯示部分:

38be6d24-3b8a-11ec-82a9-dac502259ad0.png

協(xié)議層主要包括:

?數(shù)據(jù)包類型

?數(shù)據(jù)包的格式

?對主機和設(shè)備發(fā)送的數(shù)據(jù)包的預期響應(yīng)

?描述了四種USB 3.0事務(wù)類型

?支持批量傳輸類型的流式傳輸支持

?設(shè)備/主機可能接收/發(fā)送的各種響應(yīng)和數(shù)據(jù)包的定時參數(shù)

整個協(xié)議層非常復雜,數(shù)據(jù)包就差不多十幾種類型,所以這里就不過多介紹了。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 主機
    +關(guān)注

    關(guān)注

    0

    文章

    995

    瀏覽量

    35136
  • RS232
    +關(guān)注

    關(guān)注

    13

    文章

    748

    瀏覽量

    94349
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1239

    瀏覽量

    82657
  • 數(shù)據(jù)包
    +關(guān)注

    關(guān)注

    0

    文章

    261

    瀏覽量

    24396

原文標題:FPGA和USB3.0通信-USB3.0協(xié)議介紹

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    請問ISO7760能應(yīng)用在USB3.0數(shù)據(jù)上隔離嗎?

    請問ISO7760能應(yīng)用在USB3.0數(shù)據(jù)上隔離嗎? USB3.0的最大傳輸帶寬高達5.0Gbps而ISO7760手冊上顯示是100Mbps數(shù)據(jù)速率兩者的bps單位一樣,疑惑的是傳輸帶寬和傳輸速率! 請問有那位朋友將ISO7760應(yīng)用再
    發(fā)表于 12-04 08:01

    USB3.0 /TYPE-C接口靜電保護六路器件

    USB3.0 /TYPE-C接口靜電保護六路器件
    的頭像 發(fā)表于 11-01 08:02 ?199次閱讀
    <b class='flag-5'>USB3.0</b> /TYPE-C接口靜電保護六路器件

    USB3.0的識別問題

    做了一個USB3.0集線器,現(xiàn)在遇到這個問題,USB3.0無法識別,插拔幾次后可以識別,接上其他設(shè)備也能正常工作,求高手幫忙啊,怎么處理USB3.0識別問題
    發(fā)表于 10-29 11:36

    晶沛電子USB3.0信號集成滑環(huán)及新型號產(chǎn)品

    晶沛電子在USB3.0信號滑環(huán)領(lǐng)域擁有十多年的研制歷史。
    的頭像 發(fā)表于 10-23 15:05 ?201次閱讀
    晶沛電子<b class='flag-5'>USB3.0</b>信號集成滑環(huán)及新型號產(chǎn)品

    CYUSB3014是否會自動調(diào)整工作模式USB3.0還是USB2.0?

    CYUSB3014是否會自動調(diào)整工作模式USB3.0還是USB2.0?它的工作模式是否可以或怎么通過FLAG傳輸給FPGA?
    發(fā)表于 08-14 08:00

    USB3.0/3.1靜電放電防護方案

    方案簡介 USB是一種通用的串行總線標準,定義了數(shù)據(jù)傳輸協(xié)議和電源供應(yīng)規(guī)范,用于連接計算機與外部設(shè)備。USB接口的設(shè)計初衷是為了簡化計算機與外部設(shè)備之間的連接,通過一個統(tǒng)一的接口標準來
    的頭像 發(fā)表于 08-05 17:37 ?600次閱讀
    <b class='flag-5'>USB3.0</b>/3.1靜電放電防護方案

    USB2.0型號模擬轉(zhuǎn)換USB3.0輸出

    通過模擬信號轉(zhuǎn)換,將原本輸入進來的USB2.0變成USB3.0,使其插到USB3.0的HUB上不會出現(xiàn)2.0降速的問題
    發(fā)表于 05-14 08:47

    GL3224 QFN32 USB3.0 插入過快 superspeed 用不了.

    GL3224 QFN32 USB3.0 插入過快 superspeed 用不了. 這個GL3224芯片,插入到 USB3.0 的 接口中,插入過快,就不工作,電源 5V 到了芯片的.指示燈也不亮;慢慢插入就只有 USB2.0 的
    發(fā)表于 04-24 16:03

    usb3.0和2.0的?。?!

    USB 3.0USB 2.0是USB接口的不同版本,它們之間有以下主要區(qū)別: 1. **傳輸速度**:USB
    的頭像 發(fā)表于 04-07 00:23 ?718次閱讀

    求一種1.3 USB3.0/TYPE-C靜電保護單顆方案

    方案優(yōu)點:USB3.0提供5.0Gbps的傳輸速度,本方案采用單顆器件防護,節(jié)約空間,
    的頭像 發(fā)表于 03-19 17:29 ?380次閱讀
    求一種1.3 <b class='flag-5'>USB3.0</b>/TYPE-C靜電保護單顆方案

    基于CYUSB3014做了一塊USB3.0的開發(fā)板,怎么樣能讓FX3被識別出USB3.0呢?

    運行,但是不能使用USB3.0功能了。請問我應(yīng)該怎么樣能讓FX3被識別出USB3.0呢?謝謝!麻煩了。?
    發(fā)表于 02-28 08:14

    電腦無法識別Fcx3 usb3.0的原因?怎么解決?

    ,后面的幾個usb口都試過。但是連接手機終端時,CyU3PUsbGetSpeed ()函數(shù)可以返回CY_U3P_SUPER_SPEED。請問針對PC時,是否usb3.0配置符還需要修改?
    發(fā)表于 02-28 07:12

    使用CYUSB3014作為USB3.0數(shù)據(jù)傳輸,USB3.0無法識別的原因?

    我們使用CYUSB3014作為USB3.0數(shù)據(jù)傳輸方案,目前處于試產(chǎn)階段。試產(chǎn)過程中偶爾出現(xiàn)板卡連接至PC后,USB3.0無法識別的情況。 固件使用的官方SlaveFifoSync固件。問題板卡上電
    發(fā)表于 02-23 06:12

    PCIe-6328 八口USB3.0圖像采集卡:專為工業(yè)自動化和機器視覺設(shè)計

    PCIe-6328一塊8口USB3.0主控卡,專為工業(yè)自動化和機器視覺相關(guān)應(yīng)用設(shè)計。USB3.0或稱作高速USB,是一項新興總線技術(shù),10倍于USB2.0的傳輸速度,尤其適用于高速數(shù)據(jù)
    的頭像 發(fā)表于 01-22 17:05 ?815次閱讀
    PCIe-6328 八口<b class='flag-5'>USB3.0</b>圖像采集卡:專為工業(yè)自動化和機器視覺設(shè)計

    USB3.0高速接口布局指南

    電子發(fā)燒友網(wǎng)站提供《USB3.0高速接口布局指南.pdf》資料免費下載
    發(fā)表于 01-02 10:21 ?7次下載