Linux USB串行驱动程序(通信协议)

Linux USB串行驱动程序(通信协议),linux,usb,usbserial,Linux,Usb,Usbserial,我想开发一个FPGA,包括USB控制器和它的USB控制器实现USB到串行协议。 我认为USB到串行适配器很像键盘或鼠标。 但我发现恰恰相反。我测试的设备使用特定于供应商的协议。 这意味着每个USB串行驱动程序都需要自己的驱动程序,这似乎效率很低 对于大多数工程师来说,这可能不是问题,因为他们可以从商店购买USB串行适配器,并且其供应商提供必要的软件 但是如果我想在FPGA内部开发自己的USB到串行设备,我必须从头开始。我不想开发我自己的协议,我自己的驱动程序 是否有任何USB到串行协议是开放的,

我想开发一个FPGA,包括USB控制器和它的USB控制器实现USB到串行协议。 我认为USB到串行适配器很像键盘或鼠标。 但我发现恰恰相反。我测试的设备使用特定于供应商的协议。 这意味着每个USB串行驱动程序都需要自己的驱动程序,这似乎效率很低

对于大多数工程师来说,这可能不是问题,因为他们可以从商店购买USB串行适配器,并且其供应商提供必要的软件

但是如果我想在FPGA内部开发自己的USB到串行设备,我必须从头开始。我不想开发我自己的协议,我自己的驱动程序

是否有任何USB到串行协议是开放的,并且Linux驱动程序是可用的,这样我就可以在不侵犯他人权利的情况下实现

重新发明轮子是没有意义的。 如有任何意见和建议,将不胜感激

谢谢!
Aki-

您搜索CDC设备类。如果您部署设备,通常会有设备芯片供应商提供的VID和PID组合,可以免费与产品一起使用

您肯定应该为产品提供唯一的序列号。通常,片上ROM中有一个硬闪存序列号,因此您的产品可以绑定到Windows中相同的设备路径相同的COM

设备配置由其描述符给出。通过描述符,您应提供如上所述的序列号。CDC设备类具有最小的实现,包括一个用于线路配置的安装端点,大多数请求可以用不支持的方式响应,以及两个用于数据输入和数据输出的批量端点。通过最低限度的实现,数据端点是原始数据——PC端发送的数据在设备端接收,反之亦然。但是在这之上使用一些调制解调器协议是没有障碍的

没有在FPGA上完成这项工作,但是在几个MCU上完成了这项工作。作为一个起点,我将下载一些现代MCU的CDC演示,例如AVR或一些小臂NXP 11U系列,从中汲取灵感


Linux下对CDC设备类的支持很好,在开发过程中使用诸如lsusb之类的实用程序非常有用。在Windows平台上,Win7的情况要好得多,在WinXP下,您必须为每个VID和PID组合提供特定的.inf文件,以使用通用串行驱动程序,并使您的设备显示为COM。

谢谢Pavel。我知道增加了新的类,但不知道USB串行设备的类引入得如此之快,而且要跟上这么多。我将开始审查你提到的信息。所有这些都是很好的起点。