Eu fiz uma interface USB / CAN usando o FT2232H no modo MPSSE (esqueça UART), MCP2515 e MCP2551. MCP2515 é a peça chave que você está perdendo aqui. Estude bem o que faz. É o controlador CAN real que enquadra, ACKs, geração e verificação de soma de verificação, filtragem de mensagens e outras coisas menos óbvias que um nó CAN deve fazer pelo padrão. Se você deseja um sniffer, o MCP2515 possui um modo de escuta que não garante transmissão no barramento. O MCP2551 é simplesmente um adaptador de camada física estúpido, semelhante a um MAX232 para RS-232 ou ADM485 para RS-485.
Agora, essa arquitetura está longe de ser perfeita, pois a tecnologia FTDI MPSSE não tem suporte para interrupções (acredito que ela use apenas transferências USB em massa nos bastidores), por isso preciso pesquisar o controlador com frequência para novas mensagens. Isso carrega muita carga no controlador host USB, mas ainda não garante que nenhuma mensagem seja perdida (o MCP2515 pode armazenar até 2 mensagens recebidas internamente se você ativar o "modo de transbordamento", apenas uma se não o fizer). Uma solução muito melhor seria um microcontrolador adequado com periféricos CAN e USB embutidos, como o STM32F105 (103 não pode usar USB e CAN ao mesmo tempo). Veja este projeto para uma implementação de trabalho exatamente dessa ideia. O LPC18xx, como sugerido por stevenh, também funcionará, mas o LPC17xx provavelmente é mais barato e fácil de encontrar.