我正在使用USB控制器和代码示例在微控制器中开发软件来实现虚拟COM端口 .
实现它是一个来回传输数据的设备,我正在考虑使用2个批量 endpoints ,在我的计算机中使用libusb来读取和写入它们 .
虚拟COM的优点是不需要libusb,因为它已经存在驱动程序,并且通过与com端口的交互来完成通信(在这种情况下只是Linux) .
在数据传输方面,最快的是什么?我知道两者都是使用2个批量 endpoints 的实现(虚拟com也使用中断,不确定我现在是否需要它) . 即使使用虚拟COM端口有效负载,是否有可能传输速率与使用2个批量 endpoints 实现某些内容相同,而没有USB类?
还有其他一点,你认为我错过了这个决定吗?
1 回答
要实现虚拟COM端口,还必须使用USB类 USB CDC ACM .
https://en.wikipedia.org/wiki/USB_communications_device_class
有关UART标准波特率,请参阅此https://electronics.stackexchange.com/questions/9264/what-standard-uart-rates-are-there
110,300,600,1200,2400,4800,9600,14400,19200,38400,57600,115200,230400,460800,921600,...高波特率有时会产生问题
使用USB CDC ACM时,设备将被识别为(虚拟)COM端口,可通过终端访问
批量传输是以最大速度传输数据的最简单方法,可以与 mass storage device class 一起使用
https://en.wikipedia.org/wiki/USB_mass_storage_device_class
该设备将被识别为大容量存储(像USB记忆棒一样的普通驱动器)
看到这个 http://www.beyondlogic.org/usbnutshell/usb4.shtml#Bulk
如果您需要Atmel MCU的示例和源代码,请参阅LUFA库(http://www.fourwalledcubicle.com/LUFA.php)或查看Contiki OS等嵌入式操作系统 . 其中包括其他MCU的USB源代码,如MSP430,......