2013-03-25 158 views
1

我正在開發一個項目,在該項目中,我想通過USB端口爲外部設備製作虛擬USB閃存,例如需要用於記錄電視頻道的內存的衛星接收器。我想將PC USB端口連接到衛星USB端口,並將文件直接記錄到文件中。我正在使用C#/ .NET。如何通過USB爲外部設備虛擬創建存儲器閃存?

+0

不可能。 PC中的USB控制器被硬連線充當主機,並且(可能)在您的設備中。 也許使用特殊的電纜,但它不是簡單地通過軟件完成。 – 2013-03-25 18:32:58

+0

謝謝,你認爲使用USB串口轉換器電纜可以嗎?我想我必須通過串口實現Flash Memory協議,但是在哪裏可以找到它的協議?我的意思是在哪裏找到有關閃存協議的文檔?或者像庫一樣使用串口作爲內存? (請原諒延遲迴復)。 – 2013-04-07 15:08:23

回答

0

USB協議是兩個通常之間不同的設備:該主機客戶。主持人說什麼數據傳輸,什麼時候,客戶必須聽。然後爲客戶提供不同的設備類別。有USB可移動媒體,打印機,網絡攝像頭和其他人。 USB otg略有不同,因爲設備可以是客戶端或主機,具體取決於另一個設備。例如,當連接到PC或主機時,您的手機麪包車就是客戶端,它連接到USB存儲棒。

現在有你的衛星接收器。它想成爲主人。 (你知道,當它使用大型的A型插座),它期望一個可移動的媒體設備,如USB棒。當你連接打印機時,它不知道該如何使用它。與網絡適配器或串行端口一樣。

N.B .:您不可能通過串口實現「閃存協議」。因爲串行端口已經是客戶端設備類。另外,USB和串口之間不存在導線兼容性。

由於您的PC具有相同的角色,並且不會在USB連接中充當客戶端,所以沒有簡單的解決方案。 (我敢打賭你已經知道了,是吧?)

即使你有一個像閃存驅動器一樣的PCIexpress卡,也會有更多的障礙。例如,文件系統不能被兩臺計算機同時訪問。

回到建設性回答: Inspired from this link你可以抓住一些高端微控制器並連接一個(微型)SD卡。然後,讓它充當其USB端口上的閃存驅動器。使用其以太網連接(或WiFi),並通過samba訪問(微型)SD卡。

這是微處理器的一些非常高端的東西,所以最好不要使用非常便宜的東西。我認爲RasberryPI A型(不是B型,不能用作USB客戶端)或者Arduino/Netduino(最強大的)。 我無法找到隨時可用的設備。

重要的是,與您的PC連接使用某種網絡而不是USB。由於網絡協議具有併發性(多臺PC訪問相同的數據),而本地文件系統則沒有。

+0

感謝DasKrümelmonster的大型樂隊,我想我會開始非常蹩腳的工作,希望能有一個不錯的成績。 – 2013-04-12 18:07:27