2015-10-06 66 views
3

我目前正在爲我的大學課程開展一個項目。我正在設計一個設備,它將成爲計算機和USB閃存驅動器之間的中間接口,即數據從計算機 - >我的設備 - > USB驅動器。如何使用我自己的電路檢測USB閃存驅動器上是否存在數據活動?

我想在這個設備上的功能之一是能夠檢測是否有任何數據活動正在進行,並將此信息發送到微控制器。我不需要知道有關數據本身的任何信息,只需知道是否有數據正在傳輸。

我已經在網上做了一些關於USB如何工作的研究,但我似乎無法找到這樣做的好方法。我曾與一位大學的家教講過話。顯然這是「非常容易」做的,但我真的不知道如何。任何人都可以建議一些想法非常感謝。

回答

0

您正在嘗試製作一個協議分析器,如catc http://teledynelecroy.com/protocolanalyzer/protocolstandard.aspx?standardid=4 這些設備就像任何網絡中的人一樣。

您將需要您的設備同時充當USB主機(主設備)和USB設備(從設備)。同時將數據從一個端口複製到另一個端口時,您需要製作數據副本以供分析。 USB設備具有關鍵的時序要求,並以高數據速率運行。因此,您的設備可能需要大量的處理能力。這也使得這樣的分析儀很昂貴。

如果沒有分析USB協議的要求,您可以使用能夠分析像uart,spi I2c等較慢總線的設備。您可以檢查像Sparkfun這樣的愛好製造商是否適用於此類跟蹤設備。 祝你好運

1

你的導師不太對。
USB總線總是有活動,即使沒有數據傳輸。

仔細閱讀USB規範(http://www.usb.org/developers/docs/),尤其是'協議層'部分。您可能會在'簡而言之'一文中看到一些基本知識。
用示波器探索總線。
另外,您也可以使用http://desowin.org/usbpcap/http://freeusbanalyzer.com/等軟件分析器來瀏覽總線上的數據。

我認爲,足以捕獲總線上帶有外部微控制器的所有數據包,測量它們的持續時間並對廢棄的SOF數據包和有價值的數據包進行分類。

當然,您的微控制器必須足夠快,以保持USB 2.0總線的速度。低速設備(如鍵盤)的活動檢測將更加簡單,甚至可以使用arduino完成。

3

在這種情況下,最簡單的方法是使用附加的柔和,可以登錄USB協議以及微控制器,像USBlyzer(http://www.usblyzer.com/)或USB數據採集(http://www.eltima.com/products/usb-capture/

您需要將閃存盤插入到設備插入計算機的USB端口。然後運行USB數據分析軟件並找到USB端口。就這樣!之後,您可以監控和分析微控制器和應用程序之間的所有數據。此外,您可以保存並導出捕獲的數據