在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-PING協(xié)議詳解

嵌入式USB開(kāi)發(fā) ? 來(lái)源:嵌入式USB開(kāi)發(fā) ? 作者:嵌入式USB開(kāi)發(fā) ? 2023-07-23 16:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-PING協(xié)議詳解 (qq.com)

一. 前言

這里先介紹下PING協(xié)議的背景和原理,我們不一上來(lái)就介紹PING包格式和協(xié)議,因?yàn)橹挥兄淙恢渌匀徊拍芗由罾斫?,任何事?wù)都是有其出現(xiàn)的歷史背景的,不會(huì)憑空而生,所以理解背后產(chǎn)生的背景和原理很重要。

全/低速的批量/控制傳輸OUT事務(wù),如果設(shè)備沒(méi)有就緒,則可以NAK表示端點(diǎn)不接受數(shù)據(jù),主機(jī)可以稍后重發(fā)。以上過(guò)程存在一個(gè)問(wèn)題,就是OUT數(shù)據(jù)之后設(shè)備NAK,OUT數(shù)據(jù)這部分時(shí)間會(huì)占用總線,如果設(shè)備一直未就緒一直NAK,主機(jī)一直重發(fā)將會(huì)大量占用總線。

高速設(shè)備旨在提高傳輸帶寬,所以對(duì)這種帶寬的浪費(fèi)是不能容忍的,必須優(yōu)化。

優(yōu)化的思想其實(shí)很樸素,既然重發(fā)浪費(fèi)帶寬,那么就先“問(wèn)一下”,先“問(wèn)一下”設(shè)備準(zhǔn)備好了沒(méi),只有收到設(shè)備回復(fù)準(zhǔn)備好了再發(fā)數(shù)據(jù),這樣“問(wèn)一下”這句話很短占用帶寬不多,浪費(fèi)較少。這個(gè)問(wèn)一下就對(duì)應(yīng)的PING包。

只在高速設(shè)備才支持PING,且只有控制傳輸和批量傳輸支持,且都是針對(duì)OUT。

控制傳輸OUT(數(shù)據(jù)和狀態(tài)階段,SETUP階段不支持PING)

批量傳輸OUT的數(shù)據(jù)階段。

二.PING包格式

Ping包的ID為0100B,和令牌包格式一樣

圖片

圖片

如下是一個(gè)實(shí)例

圖片

三.PING協(xié)議過(guò)程和實(shí)例

Ping的響應(yīng)是硬件做的,因?yàn)樵O(shè)備需要接收主機(jī)連續(xù)的PING,如果軟件處理會(huì)來(lái)不及。

那么硬件怎么知道回主機(jī)的PING包回ACK還是NAK呢,這就是看軟件有沒(méi)有配置好DMA并設(shè)置CTL寄存器的EPena置位,如果軟件已經(jīng)配置好了則硬件回ACK,并自動(dòng)接收后面的OUT數(shù)據(jù),并通過(guò)DMA搬運(yùn)到用戶空間,反之則NAK。

過(guò)程如下:

1.主機(jī)OUT數(shù)據(jù),設(shè)備返回了NAK

2.主機(jī)收到NAK,知道設(shè)備沒(méi)就緒,于是發(fā)PING

3.設(shè)備收到PING之后如果還未就緒則NAK,否則則ACK

4.主機(jī)按照描述符中的bInterval時(shí)間間隔重新發(fā)PING,直到設(shè)備ACK,設(shè)備ACK后發(fā)數(shù)據(jù)。

5.設(shè)備收到主機(jī)OUT的數(shù)據(jù)如果還可以繼續(xù)接收后面的數(shù)據(jù)則ACK,否則則發(fā)NYET。注意雖然前面PING設(shè)備ACK了,這里設(shè)備還是有可能NAK。

  1. 主機(jī)如果收到設(shè)備的ACK則繼續(xù)發(fā)后面的數(shù)據(jù),如果收到NYET則表示本次OUT數(shù)據(jù)成功,但是設(shè)備不能接收后續(xù)數(shù)據(jù),發(fā)后面的數(shù)據(jù)前重復(fù)上面的PING過(guò)程,如果主機(jī)收到NAK則說(shuō)明本次數(shù)據(jù)設(shè)備沒(méi)有接收,需要重新PING然后重發(fā)本次數(shù)據(jù)。

總結(jié)一下就是對(duì)于OUT數(shù)據(jù)設(shè)備可能有三種響應(yīng)

ACK:本次接收了,還可以繼續(xù)接收后面的。

NYET:本次接收了,不能繼續(xù)接收。

NAK:本次未接收。

上述說(shuō)明的設(shè)備對(duì)PING ACK了,但是對(duì)后面的數(shù)據(jù)OUT又NAK了的情況,是不正常的現(xiàn)象,設(shè)備都告訴主機(jī)準(zhǔn)備好了,后面又沒(méi)有接收數(shù)據(jù)。

高速的批量/控制端點(diǎn)在其端點(diǎn)描述符中需要指定其最大NAK速率。每個(gè)bInterval 時(shí)間間隔內(nèi),端點(diǎn)最多允許NAK一次。如果端點(diǎn)的描述符bInterval為0則表示端點(diǎn)從不會(huì)NAK。

如果在數(shù)據(jù)階段之后發(fā)生超時(shí),主機(jī)必須返回到PING階段。轉(zhuǎn)回PING狀態(tài)不會(huì)影響事務(wù)數(shù)據(jù)階段的data toggle 狀態(tài)。

以下是一個(gè)實(shí)例過(guò)程

圖片

(1)主機(jī)OUT數(shù)據(jù),設(shè)備NAK了,表示設(shè)備不能接收

(2)主機(jī)看到設(shè)備NAK,不能接收,于是進(jìn)入PING狀態(tài)。注意上面主機(jī)不會(huì)一上來(lái)就PING,因?yàn)檫@個(gè)時(shí)候還不知道設(shè)備能不能接收,所以先不管三七二十一發(fā)一把再說(shuō),萬(wàn)一設(shè)備能接受呢。只有主機(jī)確認(rèn)設(shè)備不能接收,即設(shè)備NAK之后才會(huì)進(jìn)入PING狀態(tài)。

圖片

(3)設(shè)備一直NAK則主機(jī)一直P(pán)ING

(4)設(shè)備終于ACK了主機(jī)的PING,表示可以接收數(shù)據(jù)了。

這里的ACK是設(shè)備的硬件做的,所以在此之前設(shè)備的軟件配置好了DMA并置位了DOEP的CTL寄存器的EPena位。

(5)主機(jī)OUT數(shù)據(jù),設(shè)備也接受了,回了ACK,至此數(shù)據(jù)的OUT階段總算成功了。

第(5)步設(shè)備實(shí)際還有可能回NAK,表示未接收,回NYET表示本包接收但是不能接收下一包。

四. 總結(jié)

以上介紹了高速數(shù)據(jù)階段的PING協(xié)議,了解了過(guò)程和背景,對(duì)于驅(qū)動(dòng)開(kāi)發(fā)人員尤其要了解哪些是硬件做的,哪些是軟件做的,分別在什么階段什么時(shí)機(jī)做。

審核編輯:湯梓紅

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

    關(guān)注

    60

    文章

    8172

    瀏覽量

    272267
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3688

    瀏覽量

    95124
  • Ping
    +關(guān)注

    關(guān)注

    0

    文章

    69

    瀏覽量

    16413
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5650

    瀏覽量

    104076
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4896

    瀏覽量

    70565
  • 單板計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    15965
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    677

    瀏覽量

    33928
  • 驅(qū)動(dòng)開(kāi)發(fā)

    關(guān)注

    0

    文章

    133

    瀏覽量

    12300
  • DWC2
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    250
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-0x01開(kāi)篇介紹與新思DWC2 USB2.0控制器簡(jiǎn)介

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-0x01開(kāi)篇介紹與新思DWC2 USB2
    的頭像 發(fā)表于 05-08 18:10 ?5574次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-0x01開(kāi)篇介紹與新思<b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0控制器簡(jiǎn)介

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-0x02 DWC2 USB2.0 IP功能特征介紹

    DWC2即新思(Synopsys )的DesignWare? Cores USB 2.0 HiSpeed On-The-Go (OTG)控制器IP,被大量使用。從linux的內(nèi)核源碼驅(qū)動(dòng)中就帶
    的頭像 發(fā)表于 05-09 10:09 ?1.2w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-0x02 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0 IP功能特征介紹

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-IAD描述符詳解

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-IAD描述符詳解 (qq.com) 一.? 前言 IAD描述符用于一個(gè)設(shè)備功能關(guān)聯(lián)多
    的頭像 發(fā)表于 06-27 08:45 ?44.3w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-IAD描述符<b class='flag-5'>詳解</b>

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-USB復(fù)位詳解

    本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-USB復(fù)位詳解 (qq.com) 一.前言
    的頭像 發(fā)表于 07-07 11:18 ?11.3w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-<b class='flag-5'>USB</b>復(fù)位<b class='flag-5'>詳解</b>

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-USB連接詳解

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-USB連接詳解 (qq.com) 一.前
    的頭像 發(fā)表于 07-07 08:46 ?4491次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-<b class='flag-5'>USB</b>連接<b class='flag-5'>詳解</b>

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-高速設(shè)備枚舉為全速設(shè)備問(wèn)題案例分析

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-高速設(shè)備枚舉為全速設(shè)備問(wèn)題案例分析 (qq.com) 一.前言 ? 本文分享一個(gè)高速設(shè)備被枚舉為全速的問(wèn)題。 ? ? 高速設(shè)備速
    的頭像 發(fā)表于 07-10 17:12 ?2002次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-高速設(shè)備枚舉為全速設(shè)備問(wèn)題案例分析

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-UVC的處理單元詳解

    本篇來(lái)詳細(xì)分析下UVC的處理單元相關(guān)的內(nèi)容,同樣的我們理論結(jié)合實(shí)踐來(lái)進(jìn)行。
    的頭像 發(fā)表于 07-13 09:42 ?3012次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-UVC的處理單元<b class='flag-5'>詳解</b>

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-設(shè)備類驅(qū)動(dòng)框架

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-設(shè)備類驅(qū)動(dòng)框架 (qq.com) 一.前言 從軟件頂層,從數(shù)據(jù)流的角度來(lái)看
    的頭像 發(fā)表于 07-16 15:56 ?1788次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-設(shè)備類<b class='flag-5'>驅(qū)動(dòng)</b>框架

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-發(fā)送相關(guān)的寄存器DMA寄存器詳解

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-發(fā)送相關(guān)的寄存器DMA寄存器詳解 (qq.com) 前言 如下寄存器DIEPxxx,
    的頭像 發(fā)表于 07-16 16:42 ?2241次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-發(fā)送相關(guān)的寄存器DMA寄存器<b class='flag-5'>詳解</b>

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-USB詳解

    不管什么通訊協(xié)議,比如UART,SPI,USB等等,不管是并口還是串口,不管是同步還是異步,我們從抽象的角度去看,其本質(zhì)都是一樣的。都是先定義物理信號(hào),物理信號(hào)可能是差分,單端,電流驅(qū)動(dòng)電壓驅(qū)
    的頭像 發(fā)表于 07-23 17:11 ?3306次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-<b class='flag-5'>USB</b>包<b class='flag-5'>詳解</b>

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-數(shù)據(jù)不能發(fā)送問(wèn)題分析案例

    本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-數(shù)據(jù)不能發(fā)送問(wèn)題分析案例 (qq.com) ? 一.前言 ? ? ? ?對(duì)于驅(qū)動(dòng)
    的頭像 發(fā)表于 08-08 09:43 ?3361次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-數(shù)據(jù)不能發(fā)送問(wèn)題分析案例

    新思 DWC2 的參考手冊(cè)從哪里可以下載

    最近在學(xué)習(xí)STM32F4 USB驅(qū)動(dòng),有看到 dwc2驅(qū)動(dòng)的代碼,但是沒(méi)有手冊(cè)用來(lái)參考,ST手冊(cè)上寄存器不全,從網(wǎng)上看到有下面兩個(gè)手冊(cè),但是一直找不到下載的資源 《DesignWar
    發(fā)表于 01-22 11:32

    RK3399平臺(tái)上USB控制器和PHY的連接方式和配置說(shuō)明

    。USB2.0 OTG對(duì)應(yīng)的控制器是DWC2。USB2.0 OTG使用的是Synopsys 方案,即使用DWC2控制器同時(shí)實(shí)現(xiàn)Host和Device功能,
    發(fā)表于 05-12 17:46

    如何對(duì)基于hal庫(kù)的DWC2 USB IP進(jìn)行調(diào)試呢

    背景之前適配 DWC2 USB IP 的時(shí)候,主要是基于 st 的 hal 庫(kù)來(lái)走的,當(dāng)時(shí)我就對(duì)他們的 hal 庫(kù)代碼不滿,只是無(wú)奈,迫于時(shí)間就沒(méi)重構(gòu),果不其然,usb bug 一堆,隨意舉例,這還
    發(fā)表于 06-14 15:23

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-抽絲剝繭再論切換到狀態(tài)階段標(biāo)志DOEPINTn.StsPhseRcvd

    本文轉(zhuǎn)自公眾號(hào)系列文章,歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-USB詳解 (qq.com)
    的頭像 發(fā)表于 07-24 18:04 ?2512次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-抽絲剝繭再論切換到狀態(tài)階段標(biāo)志DOEPINTn.StsPhseRcvd
    主站蜘蛛池模板: 天天射天天干天天操 | 种子天堂bt | 午夜69成人做爰视频网站 | 天堂在线观看视频 | 日韩理论电影2021第1页 | 色天天综合网 | 超级碰碰青草免费视频92 | 国产精品久久久久久吹潮 | 在线黄色网 | 欧美在线视频免费播放 | 国产小视频在线高清播放 | 天堂中文字幕 | 国产精品任我爽爆在线播放6080 | 日日夜夜狠狠 | 午夜男人影院 | 黄色综合 | 种子天堂bt磁力在线资源 | 亚洲狠狠色丁香婷婷综合 | 她也啪97在线视频 | 日本丝瓜着色视频 | 天天操夜夜操免费视频 | 高清在线观看视频 | 免费亚洲视频在线观看 | 一级特黄毛片 | 日本xxxxx69| 天堂网www在线观看 天堂网www在线资源中文 | 夜夜夜夜夜夜夜猛噜噜噜噜噜噜 | 日日干夜夜欢 | 2021国产精品午夜久久 | 欧美xingai| 四月婷婷七月婷婷综合 | 国产亚洲精品免费 | 日本天天射 | 夜夜骑首页 | 色久月| 五月天婷婷在线观看 | 国产做a爰片久久毛片 | 亚洲电影一区二区三区 | 欧美社区| 色又色 | 亚洲欧美在线观看 |