Actualmente hay una serie de módulos CAN integrados en microcontroladores. El PIC18F2480 es un ejemplo de eso. ¿Es ese microcontrolador (con CAN incorporado) capaz de conducir un bus CAN por sí solo o se requiere un transceptor / controlador CAN externo?
Creo que CAN tiene una capa de software y hardware y, por lo que parece, estos microcontroladores habilitados para CAN parecen tener solo el software, pero no indica que pueda o no pueda conducir el bus CAN tal como está.
Estoy buscando conectar más de seis microcontroladores a través de un bus CAN y me gustaría saber si necesito un transceptor en todos ellos o si las cosas integradas pueden manejar la comunicación desde una perspectiva de software y hardware.
Suponga que tendré resistencias de terminación necesarias y otros componentes discretos pequeños (tapas, resistencias, etc.)
La familia de microcontroladores LPC11Cxx (basada en ARM Cortex-M0) incluye el transceptor CAN en chip.
fuente
Sí, necesitas un tranceiver. Los pines CAN del micro se reciben y transmiten. El bus CAN en sí utiliza un par trenzado con señalización diferencial en dos cables llamados ALTO y BAJO.
Uno de los trabajos del transceptor es tomar el nivel lógico que presenta en el pin TX y convertirlo en señales de bus CAN:
La otra es tomar lo que está en el bus y volver a convertirlo en un nivel lógico para enviarlo desde el pin RX a su micro.
fuente
Necesita un chip transceptor CAN entre la CPU y el bus CAN. Echa un vistazo a la MCP2551.
Actualización 17 de agosto de 2017:
Estoy en la conferencia Microchip Masters ahora mismo. Los ingenieros de Microchip me dijeron que una de las piezas nuevas que resultó de la adquisición de Atmel es más barata y mejor que la MCP2551.
fuente
Los dispositivos analógicos tienen un circuito transceptor CAN de ejemplo que utiliza un amplificador diferencial.
No he probado esto, solo soy consciente de ello. También interesado si se podría implementar con un amplificador operacional
Las ventajas de usar el transceptor IC CAN dedicado es que manejarán el arbitraje por usted y no tiene que preocuparse por interferir con el bus. Si solo está observando el bus y no es un entorno de falla crítica, el circuito puede estar bien. Si bien el mcp2551 es muy popular, existen muchas opciones para los chips de interfaz.
Una nueva evolución son los chips de tipo System Base que incluyen regulación de voltaje, modos de alimentación y protección ESD del bus.
Como dijo Timorr anteriormente, el LCP11C24 de NXP es único en el sentido de que el procesador incluye un transceptor CAN. Una placa de demostración con esto cuesta solo $ 19. Otra solución de bajo costo es utilizar la placa de demostración Cypress PSoC5 de $ 9.38, el CY8CKIT-059. El PSoC5 no tiene un controlador CAN; va más allá: el controlador se implementa en los bloques universales tipo FPGA. Los registros del controlador se configuran a través de la GUI del IDE, lo que hace que el filtrado y la I + D sean bastante fáciles.
Un método clave que he encontrado al leer las hojas de datos es que el mcu TTL está etiquetado como CAN-Tx y CAN-Rx, mientras que las líneas de datos de los transceptores al bus siempre están etiquetadas como CAN-H y CAN-L. No me gustan los diagramas en la otra respuesta donde TxRx se muestran conectados al bus; Esto va en contra de la convención y contribuye a la confusión.
fuente