我有一块硬件通过以太网发送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