我正在使用一块运行着Linux的控制器板。我想通过USB将设备连接到主机(Windows OS)。

我决定使用RNDIS类在主机和设备之间进行通信。我已经在设备端(Linux)准备好了驱动程序。当我将设备连接到Windows主机时,它将硬件检测为RNDIS / CDC未知设备。现在,对于Windows的驱动程序开发,我使用了“ Jungo windriver 10.10”。它生成了INF文件,并且在系统上成功检测到我的设备。

现在如何开始主机与设备之间的通信?我想提一下,我是编程新手,没有Windows侧编程经验。

可以肯定的是,我将必须在两面都开发应用程序驱动程序(Device-Linux和host-windows)

有人可以指导我如何进行此操作吗?

提前致谢....

最佳答案

首先,RNDIS作为标准交付在Windows XP以后的版本中提供,而不是Jungo的主机栈,而是MS的主机栈。

其次,您知道在设备端准备好的驱动程序吗?是Jungo RNDIS目标侧堆栈吗?

要在RNDIS设备的主机和目标之间进行通信,请尝试以下来自MS的两个链接,以帮助您了解控制和数据通道以及EP设置:

http://207.46.16.248/en-us/library/ee483123(WinEmbedded.60).aspx
http://download.microsoft.com/download/B/0/B/B0B199DB-41E6-400F-90CD-C350D0C14A53/%5BMS-RNDIS%5D.pdf

RNDIS使用两个通道,一个控制通道和一个数据通道。初始通信从控制通道开始,然后数据开始在数据通道上流动,该通道使用两个BULK端点IN和OUT。

但是,您应该注意以下事实:RNDIS规范要求
提交RNDIS控制消息以控制通道端点,主机即使在中断端点上也将侦听。

08-05 22:23