1. 程式人生 > >USB上電後兩次reset的chirp K訊號

USB上電後兩次reset的chirp K訊號

一、為何示波器上顯示有兩次chirp K而CATC卻只抓到了一次chirp K訊號


包1、2、3分別對應下圖示波器抓到的1、2、3處的波形,3個包傳送結束後主機再一次進行RESET,與device進行傳送chirp K握手。

然而在示波器上顯示兩次chirp K訊號,但是在CATC上卻只抓到了B處的chirp K訊號,

原因是在CATC只錄取high speed訊號的情況下,CATC以sof幀作為判斷high speed條件,而在示波器上顯示的第一次chirp K之前,

主機還沒有向device傳送sof從而CAT無法判斷A處chirp K訊號是否屬於high speed訊號,從而選擇不記錄第一個chirp K。


二、為何有兩次chirp K訊號

第一次chirp K訊號是在suspend之後的,此時屬於硬體列舉階段,主機想要了解device的速度因而進行的reset,

而第二次的chirp K可由上圖看到是在get device descriptor的3個包之後的,這個是根據不同的主機的行為,USB2.0規範並沒有要求這裡的復位動作,

復位是一個謹慎的動作,有的主機為了確保復位結束後設備處在一個已知的狀態。

相關推薦

USBreset的chirp K訊號

一、為何示波器上顯示有兩次chirp K而CATC卻只抓到了一次chirp K訊號 包1、2、3分別對應下圖示波器抓到的1、2、3處的波形,3個包傳送結束後主機再一次進行RESET,與device

【轉】USB過程 協議分析 初始化

最近換了工作,2018.0704進入ime。領導要我弄USB3.0的資料傳輸和虛擬 串列埠。網上搜的比較全面的USB資訊如下: USB 協議分析 初始化   現在非常流行USB裝置,時時刻刻都在我們身邊,比如使用U盤,使用MP3,使用手機,都需要與PC的

智慧卡返回ATR(即復位應答)時間過長而無法返ATR的解決方案

關於智慧卡片上電後返回ATR時間過長的問題,是在COS開發完成後的智慧卡相容性測試過程中發現的,不同讀卡器廠商均應遵循ISO7816接觸卡協議來設計接觸型讀卡器,理論上ATR響應時間是一樣的,不過實測之後有一定的差距。這也導致了載入開發COS的智慧IC卡在某些讀

解決Linuxcrontab執行及分析過程

問題描述: 寫了一個python指令碼,在linux上配置了crontab任務,由於涉及檔案讀寫,發現檔案內容經常錯亂,通過命令列執行沒有問題 分析過程:  1.在指令碼中增加了日誌,通過日誌發現指令碼被2個執行緒執行了,如下圖: 2.我艹...,什麼地方幫我執行了

sd卡拔插或重新無法繼續使用(初始化失敗)

最近1個專案需要用到sd卡儲存採集資料,起初是stm驅動一大堆bug,浪費了好幾天的時間。接著又出現了這個問題。 描述:sd卡拔插或重新上電後無法繼續使用,表現為初始化失敗,但是,格式化一次後又可以使用了。一旦拔插或斷電,問題又出現。 分析:起初天真的認為,是不是因為拔插或

Esp8266進階之路17 esp8266自研的快速開關五 (開-關為一) ,無需按鍵觸發則8266進去一鍵配網模式。(附帶Demo)

本系列部落格學習由非官方人員 半顆心臟 潛心所力所寫,僅僅做個人技術交流分享,不做任何商業用途。如有不對之處,請留言,本人及時更改。 很多人怎麼聯絡我一起學習進步,下面打個小小公告:

USB2.0速度識別(USB分析)

轉自:http://blog.csdn.net/am_111/article/details/6066556 我們知道USB2.0向下相容USB1.x,即高速2.0的hub能支援所有的速度型別的裝置,而USB1.x的hub不能支援高速裝置(High Speed Device

Android應用安裝完成開啟應用出現初始化解決方案

 啟動介面加上 if (!isTaskRoot()) { finish(); return; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(

複選框組的全選、全不選點選,attr()不生效、checkBox狀態不改變問題

複選框組的全選、全不選點選兩次後,attr不生效、checkBox狀態不改變問題,最後發現attr和prop的區別 <input type="checkbox" name="chk_all" i

過】Lintcode 460. 在排序陣列中找最接近的K個數

給一個目標數 target, 一個非負整數 k, 一個按照升序排列的陣列 A。在A中找與target最接近的k個整數。返回這k個數並按照與target的接近程度從小到大排序,如果接近程度相當,那麼小的數排在前面。 樣例 如果 A = [1, 2, 3], target

Spring的定時任務@Scheduled,部署執行載入

最近公司讓做定時抓取新聞的一個定時,一切都部署好後,發現每次都載入了兩次。配置檔案都檢查了,也沒發現問題。 1.註解的配置 <!-- 啟用註解定時 --> <task:annotation-driven scheduler="mySchedul

關於SSH專案中a標籤提交action執行的問題

             首先簡述一下問題,專案時SSH框架搭的,是一個小例子,什麼樣式都沒有,只是使用<s:iterator>將值棧中的資料遍歷出來,使用<a>標籤來提交修改和刪除,但是遇到了action執行兩次的問題。通過debug除錯。fire

Android Editext 點選軟鍵盤遮擋 Editext控制元件的問題

問題描述:點選了EditText,彈起軟鍵盤,這時候EditText會跟隨軟鍵盤上升,這時再次手動隱藏軟鍵盤,然後再次點選EditText,軟鍵盤彈出後就遮擋了EditText。 <androi

input file選擇檔案清空選擇框檔案資訊種解決方案

上傳檔案時,選擇了檔案後想清空檔案路徑。用兩種方法解決  <input type="file" id="fileupload" name="file" /> 第一種: var obj =

使用seek()方法,將Hadoop檔案系統中的一個檔案在標準輸出顯示

wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------

刪除STK傳送簡訊自動傳送

方法1 --- a/alps/frameworks/opt/telephony/src/java/com/android/internal/telephony/SmsApplication.java +++ b/alps/frameworks/opt/telephony/s

Vivado+FPGA學習之第一

背景:我本人沒有怎麼接觸過FPGA,但是這次一上來就被要求做FPGA的工作,實在是讓我感到無從下手,前前後後忙活了好幾天才第一次上電成功,所以把整個經過整理了一下,以便方面後來人。 開發平臺:Vivado 2015.2 FPGA :Xilinx Virte

n個硬幣反面朝,拋m,一可以拋k枚硬幣,正面朝得概率

    題意n個硬幣反面朝上,拋m次,一次可以拋k枚硬幣,問在最優得情況下正面朝上得概率     最優的情況 每次選的k枚硬幣儘量都選反面朝上的     dp[i][j]表示 第i次拋硬幣中j個正面朝上的概率,對於拋k枚硬幣,c

用jquery 繫結一個按鈕click事件,第一點選,一切正常,第二點選,竟然執行,以後越來越多

用jquery  繫結一個按鈕click事件後,第一次點選後,一切正常,第二次點選,竟然執行兩次,以後越來越多。 後來檢視文件發現  jquery click  不是 替換原有的function  而是接著新增,所以才會執行次數越來越多。 這有就可以在新增之前要先解除cli