我使用的是一个运行Linux的控制板。我想通过USB将我的设备连接到主机(Windows OS)。
我决定使用RNDIS类来实现主机和设备之间的通信。我已经在设备端准备好了驱动程序(linux)。当我将我的设备连接到Windows主机时,它检测到硬件是RNDIS/CDC未知设备。现在,对于windows的驱动程序开发,我使用了"Jungo windriver 10.10“。它生成了INF文件,并且在系统上成功检测到我的设备。
现在,我如何开始主机和设备之间的通信?我想提一下,我是编程新手,在Windows端编程方面没有经验。
可以肯定的是,我将不得不在两端(设备-Linux和主机-windows)上开发应用程序驱动程序
有没有人能指导我该怎么做呢?
提前感谢....
发布于 2011-04-06 00:21:02
首先,从windows xp开始,RNDIS作为标准交付,而不是Jungo的主机堆栈,而是微软的主机堆栈。
其次,你知道你在设备端准备了什么驱动程序吗?它是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使用两个通道,一个控制通道和一个数据通道。初始通信从控制通道开始,然后数据开始在数据通道上流动,数据通道使用两个批量端点IN和OUT。
但是,您应该注意这样一个事实,RNDIS规范要求在向控制通道端点提交RNDIS控制消息之后,主机即使在中断端点上也会监听。
发布于 2011-03-07 18:27:03
据我所知,Windows通用USB客户端驱动程序(Jungo驱动程序)用于连接您的linux,接下来您将需要打开端点的连接,可能是进出批量端点,通过此端点以device.So协议的格式格式化数据(即您发送的数据)。您需要确定您linux设备是否真的公开了RNDIS接口。为了获得帮助,我可以建议使用usb记录器。尝试将你的linux设备连接到Windows或Linux,在那里你知道该设备已经被某个驱动程序识别,并且有连接,然后记录usb上发生的事情。似乎你开始研究usb接口和它的不同协议我认为最好从一些现成的东西开始,尝试搜索和了解人们如何解析,理解和编写例如kinect设备的usb协议。
发布于 2011-05-13 22:08:05
已经有一些模块可以帮助你将linux mc连接到win pc。尝试查找g_file_storage模块,例如,它可以让你从linux mc挂载一个文件系统映像到win pc作为一个saperate磁盘,在上面你可以做格式化,文件输入输出等。:)谢谢,AJ
https://stackoverflow.com/questions/4171509
复制相似问题