我有一塊硬件通過以太網發送USB數據(只有存儲在包中的數據將被髮送)。在遠程PC上,數據通過以太網接收。如何將這些數據發送到USB驅動程序,以便將數據轉換爲應用程序可以使用的命令?以太網 - USB通信
回答
您需要一個服務器監聽您嘗試連接的任何端口/套接字。 Twisted Matrix爲網絡通信提供了體面的Python庫。
以太網通訊不是問題。問題是:如何理解usb數據。驅動程序通常會翻譯它並將請求發送到請求它的應用程序。使用此設備USB驅動程序將不會收到數據。因此,我必須找到一種方法,將接收到的數據發送給將翻譯它的驅動程序,或者我必須找到自己翻譯數據的方法。這可能非常困難,因爲連接的設備是對數據進行編碼的MiFare RFID讀取器。 – 2009-10-01 13:37:12
我認爲這會很麻煩。
USB通常設置爲根據設備的各種ID號將驅動程序與連接的設備相關聯,如在總線遍歷期間發現的。
您的數據通過以太網傳送,因此該平臺的USB驅動程序堆棧將不知道任何關於該設備的問題。這意味着你需要直接與正確的驅動程序交談,並準備好處理來自(從其角度看)未連接設備的事件。
我可以想到爲什麼即使是精心設計的USB堆棧也不能很好地處理這個問題的幾個原因。
在Linux上,您可以通過使用相同的API解釋數據併發送數據來「作弊」:實際的驅動程序已經使用過。這對於任何USB設備來說當然都不適用,它需要你知道設備是什麼。
它在windows上也是doable,但是你需要大量的內核/ usb知識才能使它工作我不認爲我會錯誤的估計這個任務爲少數幾年的人(你可以大幅降低這個估計if您需要支持的設備/設備種類有限
您將需要開發一個總線驅動程序,將主機控制器驅動程序模擬到本機USB主機,不幸的是,該接口不公開,我們沒有設法獲得MS的合作
有額外的選擇在集線器層面工作,而不是在控制器層面上,這個接口是可用的,但我沒有設法找到我的筆記
您可以下載evaluation version並調查驅動程序堆棧可能會給你一個線索從哪裏開始。
你最好是讓硬件做相反的操作,將基於IP的USB信息發送到USB子系統,而不是嘗試破解軟件驅動程序本身。我無法想象你的硬件供應商沒有這樣做的設備。
- 1. USB到USB通信
- 2. 使用mbed在兩個接口(USB-CDC ECM和以太網)之間橋接以太網通信LPC1768
- 3. 以太網信息
- 4. 訪問以太網或USB端口
- 5. 通過以太網端口或主機USB的SSH Beaglebone
- 6. 通過USB通信
- 7. C++ USB通信
- 8. Android ICS 4.1 - USB以太網 - 如何切換以太網連接狀態?
- 9. Arduino以太網和DHCP無法通信到互聯網
- 10. 替代的Wireshark的原始以太網捕獲通過USB以太網適配器
- 11. 使用Node.js通過以太網與Arduino通信
- 12. 通過以太網盾Arduino和android之間的通信
- 13. 通過以太網進行Android Arduino通信的「最佳」方式
- 14. 開幕USB通信
- 15. USB通信端口
- 16. 通過USB的OBD通信
- 17. 通過USB與PC進行通信
- 18. WinCE和PC USB通信
- 19. 與Android/Arduino的USB通信
- 20. 與USB端口通信
- 21. 與USB設備通信
- 22. iOS <-> PC USB通信
- 23. Windows Phone 8 USB通信
- 24. PC到移動USB通信
- 25. PC到PC USB通信
- 26. Android USB主機通信
- 27. Arduino和處理(PDE)通過以太網
- 28. 通過USB的Android信息
- 29. 以太網類型
- 30. 如何同時在USB和以太網上啓動adb
假設你有一個USB->以太網適配器是否安全?數據是以IP包發送的嗎? – 2009-10-01 12:27:01
發送USB數據的硬件以IP數據包發送它。使用Winsock可以讀取數據。該適配器使用微控制器(atmel AVR 8bit RISC)和EN28J60 ic進行編程。 - – 2009-10-01 12:33:55
您需要在問題*中指定*或使用標籤,您希望發生這種情況的平臺。 – unwind 2009-10-01 12:51:20