¿Es suficiente un microcontrolador habilitado para CAN para conducir un bus CAN?

43

Hay una serie de módulos CAN integrados en los microcontroladores en estos días. El PIC18F2480 es un ejemplo de eso. ¿Es ese microcontrolador (con CAN incorporado) capaz de manejar 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 su aspecto, estos microcontroladores habilitados para CAN parecen tener solo el software, pero no dice que pueda o no pueda conducir el bus CAN 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 entre ellos o si las funciones integradas pueden manejar la comunicación desde una perspectiva de software y hardware.

Suponga que tendré las resistencias de terminación necesarias y otros componentes discretos pequeños (tapas, resistencias, etc.)

    
pregunta efox29

5 respuestas

53

Esta es una buena pregunta muy . Como regla general, CAN requiere un transceptor para cada nodo:

Sinembargo,bajociertascircunstancias,¡puedesescaparsinningúntransceptor!Esascircunstanciasson:

  • Longitudcortadelautobús(muchomenosde1metro)
  • Preferiblemente,todoslosmicrocontroladoresestánenlamismaPCBopiladePCB.
  • Lavelocidaddebitsesbaja
  • Elentornonoesdemasiadoruidosoeléctricamente

Estasnosonreglasduras.Esposiblequesesalgaconlavelocidaddebitsmáxima(1MB/s)sitieneunbusmuycorto(10cm).

Paralograresto,necesitasaberunpocosobreloquehaceeltransceptor.Comolamayoríadelostransceptores,puedenemitirunaseñalaltaobajaalbus(querepresenta1y0),peroel0puededominara1.I.E.Sidostransceptoresintentanhablaralmismotiempo,yunodice1yelotrodice0,entoncesel0ganará.Podemosrecrearlamismasituaciónsimplementeutilizandodiodos:

Consulte la nota de aplicación de Seimens AP2921: Comunicación a bordo a través de CAN sin Transceptor

Pero hay algo aún más interesante: ¡el PIC en realidad tiene soporte de hardware para CAN sin transceptor!

PuedeconfigurarelpinCANTXparaquesecomporteexactamentedelamismamaneraqueeltransceptor.EstosignificaquepuedeconectarelbusCANsinlosdiodos.Aúnasínecesitaráslaresistencia.

    
respondido por el Rocketmagnet
9

Sí, necesitas un tranceiver. Los pines CAN en el micro son recibidos y transmitidos. El bus CAN en sí mismo 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 usted presenta en el pin de TX y convertirlo en señales de bus CAN:

  • un '1' lógico se representa al no conducir el bus, por lo que las líneas ALTA y BAJA "flotan" a 2.5 V, lo que se denomina "bit recesivo" en la terminología CAN.
  • un '0' lógico se representa al impulsar la línea ALTA y la línea BAJA baja, lo que se denomina "bit dominante", ya que anulará cualquier bit recesivo que se transmita.

La otra es tomar lo que está en el bus y convertirlo en un nivel lógico para enviarlo desde el pin RX a tu micro.

    
respondido por el Martin Thompson
9

La familia LPC11Cxx (basada en ARM Cortex-M0) incluye el transceptor CAN en- chip.

    
respondido por el timrorr
8

Necesita un chip de 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 de Microchip Masters ahora mismo. Los ingenieros de Microchip me dijeron sin ambages que una de las piezas nuevas que resultó de la adquisición de Atmel es más barata y mejor que la MCP2551.

    
respondido por el Olin Lathrop
2

Los dispositivos analógicos tienen un ejemplo del circuito del transceptor CAN utilizando un amplificador diferencial.
No he intentado esto, estoy consciente de ello. También le interesa si podría implementarse con un amplificador operacional

Las ventajas de usar el transceptor IC CAN dedicado son que manejarán el arbitraje para usted y no tiene que preocuparse por interferir con el bus. Si solo está observando el bus y no es un entorno crítico de fallas, el circuito puede estar bien. Si bien el mcp2551 es muy popular, hay muchas opciones para los chips de interfaz.

Una nueva evolución son los tipos de chips System Base que incluyen regulación de voltaje, modos de energía y protección ESD del bus.

Como dijo Timorr arriba, el LCP11C24 de NXP es único en que el procesador incluye un transceptor CAN. Un tablero de demostración con esto es sólo $ 19. Otra solución de bajo costo es utilizar el tablero 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 similares a 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 examinar 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 se muestran TxRx conectados al bus; Esto va en contra de la convención y contribuye a la confusión.

    
respondido por el Chris K

Lea otras preguntas en las etiquetas