选择USB接口?

选择USB接口?,usb,can-bus,Usb,Can Bus,我是一名电气工程师,软件不是我的强项。我想给自己做一个罐头分析仪。硬件相当简单,CAN收发器与微控制器相连。我正在努力的是如何将它与计算机连接起来 我下意识的反应是使用FTDI芯片将串行数据转换成USB数据。这很容易在计算机端编程,数据可以以流方式异步到达。此外,FTDI还有USB设备的驱动程序。问题是串行连接无法维持can速度和数据流。充其量,我必须在微型计算机上缓冲数据,然后将其发送到计算机 我的第二个想法是,我可以在微控制器上设置一个USB堆栈。这将消除串行链路的物理瓶颈。从理论上讲,这可

我是一名电气工程师,软件不是我的强项。我想给自己做一个罐头分析仪。硬件相当简单,CAN收发器与微控制器相连。我正在努力的是如何将它与计算机连接起来

我下意识的反应是使用FTDI芯片将串行数据转换成USB数据。这很容易在计算机端编程,数据可以以流方式异步到达。此外,FTDI还有USB设备的驱动程序。问题是串行连接无法维持can速度和数据流。充其量,我必须在微型计算机上缓冲数据,然后将其发送到计算机

我的第二个想法是,我可以在微控制器上设置一个USB堆栈。这将消除串行链路的物理瓶颈。从理论上讲,这可以完成以上所有工作。我犹豫的地方是不知道这种联系的实际局限性。USB 2.0应该能够毫无问题地保持CAN的速度,但我使用过的所有串行终端都只能达到115200。这是一个实际的限制,还是如果我直接与司机交谈,速度会加快


是否有一个USB链路与虚拟通信端口一样易于使用,但可以在本机上保持can速度?

如果在微控制器上实现虚拟COM,则可以超过115200波特/bps的速率

CAN的最大比特率为1Mbps()

标准UART波特率的单位为
bps
(位/秒),同时为
baud
,因为假定1个符号有1位 (,)

FTDI USB到UART芯片的最大波特率为3MBaud(3Mbps)(),因此FTDI芯片可能超过115200,也可能超过CAN的1Mbps

当使用在微控制器的USB接口(CDC-ACM设备类)上实现虚拟COM的USB堆栈时,波特率可以增加到更高的cf

LUFA堆栈
()为Atmel MCU实现了一个虚拟COM端口(CDC-ACM(虚拟串行)类驱动程序)

通常由于传输错误,UART/串行(包括FTDI芯片)上过高的数据速率可能会有问题


另请参阅时钟速率与UART传输速率的关系

如果在微控制器上实现虚拟COM,则可以超过115200波特/bps速率

CAN的最大比特率为1Mbps()

标准UART波特率的单位为
bps
(位/秒),同时为
baud
,因为假定1个符号有1位 (,)

FTDI USB到UART芯片的最大波特率为3MBaud(3Mbps)(),因此FTDI芯片可能超过115200,也可能超过CAN的1Mbps

当使用在微控制器的USB接口(CDC-ACM设备类)上实现虚拟COM的USB堆栈时,波特率可以增加到更高的cf

LUFA堆栈
()为Atmel MCU实现了一个虚拟COM端口(CDC-ACM(虚拟串行)类驱动程序)

通常由于传输错误,UART/串行(包括FTDI芯片)上过高的数据速率可能会有问题


另请参见时钟速率和UART传输速率的关系

在Micro上使用虚拟通信端口可以获得1.8Mbps。在Micro上使用虚拟通信端口可以获得1.8Mbps。