如何编程USB RNDIS?
我使用的是一个运行Linux的控制器板。我想通过USB将我的设备连接到主机(Windows操作系统) 我已经决定使用RNDIS类在主机和设备之间进行通信。我已经在设备端(linux)准备好了驱动程序。当我将设备连接到Windows主机时,它会将硬件检测为RNDIS/CDC未知设备。现在,对于windows的驱动程序开发,我使用了“Jungo windriver 10.10”。它生成了INF文件,并在系统上成功检测到我的设备 现在如何启动主机和设备之间的通信?我想说的是,我是编程新手,没有Windows端编程经验 可以肯定的是,我必须在这两方面(设备Linux和主机windows)开发应用程序驱动程序 有人能指导我怎么做吗如何编程USB RNDIS?,usb,embedded-linux,Usb,Embedded Linux,我使用的是一个运行Linux的控制器板。我想通过USB将我的设备连接到主机(Windows操作系统) 我已经决定使用RNDIS类在主机和设备之间进行通信。我已经在设备端(linux)准备好了驱动程序。当我将设备连接到Windows主机时,它会将硬件检测为RNDIS/CDC未知设备。现在,对于windows的驱动程序开发,我使用了“Jungo windriver 10.10”。它生成了INF文件,并在系统上成功检测到我的设备 现在如何启动主机和设备之间的通信?我想说的是,我是编程新手,没有Wind
提前感谢….据我所知,Windows上载通用USB客户端驱动程序(Jungo驱动程序)用于连接linux设备。因此,接下来您需要打开端点上的连接(可能是批量端点内外),以RNDIS协议的格式格式化此端点上的数据(您发送的数据)。您需要确定您的linux设备是否真的公开了RNDIS接口。如需帮助,我可以建议使用usb记录器。尝试将您的linux设备连接到Windows或linux,您知道该设备已被某个驱动程序识别,然后在该连接中记录usb上发生的情况。似乎你们开始研究usb接口和它的不同协议,我认为最好从一些现成的东西开始,尝试搜索和学习人们如何解析、理解和编写usb协议,例如kinect设备 首先,RNDIS是windows xp以后的标准版本,不是Jungo的主机堆栈,而是MS的 其次,你知道你在设备端准备了什么驱动程序吗?是Jungo RNDIS目标侧堆栈吗 要在RNDIS设备的主机和目标之间进行通信,请尝试MS的以下两个链接,以帮助您了解控制和数据通道以及EP设置: http://download.microsoft.com/download/B/0/B/B0B199DB-41E6-400F-90CD-C350D0C14A53/%5BMS-RNDIS%5D.pdf RNDIS使用两个通道,一个控制通道和一个数据通道。初始通信从控制通道开始,然后数据开始在数据通道上流动,该通道使用两个批量端点,输入和输出 但是,您应该注意一个事实,RNDIS规范要求在
将RNDIS控制消息提交到控制通道端点,即使在中断端点上,主机也将侦听该端点 在将linux mc连接到win pc时,已经有一些模块可以帮助您。请尝试查找g_file_存储模块,例如,它可以让您将linux mc中的文件系统映像装载到win pc,作为一个磁盘,您可以在其上进行格式化、文件输入输出等。希望您能在google上找到更多…) 谢谢 AJ