我正在使用USB控制器和代码示例在微控制器中开发软件,以实现虚拟COM端口。
实现它是一个来回传输数据的设备,我正在考虑使用2个批量端点,在我的计算机中使用libusb来读写它们。
虚拟COM的优势在于不需要libusb,因为它已经存在驱动程序,并且通过与com端口的交互来完成通信(在这种情况下只是Linux)。
在数据传输方面,最快的是什么?我知道两者都是使用2个批量端点的实现(虚拟com也使用中断,不确定我现在是否需要它)。即使使用虚拟COM端口有效负载,是否有可能传输速率与使用2个批量端点实现某些内容相同,而没有USB类?
您认为我缺少任何其他观点来做出此决定?
答案 0 :(得分: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,...... 高波特率有时会产生问题< / p>
使用USB CDC ACM时,设备将被识别为(虚拟)COM端口,可通过终端访问
批量转移是以最快速度传输数据的最简单方法,可与大容量存储设备类
一起使用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,......还