4. CAN FD
#Qué cambia
CAN FD (Flexible Data-rate) es la evolución del CAN, estandarizada en 2015 (ISO 11898-1). Mantiene el mismo bus, los mismos cables y el mismo arbitraje, y cambia dos cosas:
- Más datos por trama: hasta 64 bytes, contra 8 del CAN clásico.
- Fase de datos más rápida: después del arbitraje, la trama puede cambiar a una velocidad mayor solo durante los datos (por ejemplo, arbitraje a 500 kbit/s y datos a 2 Mbit/s). Este cambio lo controla el bit BRS (Bit Rate Switch, cambio de velocidad de bits).

El arbitraje continúa a la velocidad nominal porque todos los módulos necesitan disputar el bus al mismo tiempo. Cuando solo un módulo está transmitiendo, el bit puede acortarse.
#Tamaños de trama en el CAN FD
En el CAN FD el campo DLC (el código de longitud de la trama) continúa con 4 bits, por lo que no todos los tamaños son posibles. Por encima de 8 bytes los tamaños válidos son fijos:
| DLC | Bytes de datos |
|---|---|
| 0 a 8 | 0 a 8 (igual que el CAN clásico) |
| 9 | 12 |
| 10 | 16 |
| 11 | 20 |
| 12 | 24 |
| 13 | 32 |
| 14 | 48 |
| 15 | 64 |
Una trama configurada con 10 bytes, por ejemplo, se transmite con 12 bytes; los bytes sobrantes se rellenan.
#Compatibilidad con CAN clásico
Un controlador CAN clásico no entiende una trama FD y la trata como error, destruyéndola. Por eso no se mezcla en un mismo bus un módulo solo clásico con tramas FD. Un puerto configurado en CAN FD sigue pudiendo transmitir tramas clásicas cuando la trama se marca para eso (en el CAN personalizable, Fuerzar clásica CAN, así escrito en la pantalla: es decir, forzar CAN clásico), lo que permite conversar con un equipo clásico en el mismo bus, siempre que ninguna trama FD circule por allí.