10. CAN personalizable
#Para qué sirve
El CAN personalizable arma e interpreta tramas CAN definidas por usted. Es la herramienta para conversar con equipos que no usan el protocolo FTCAN: paneles y dataloggers de otras marcas, módulos de caja de cambios, módulos de inyección o de ignición de terceros, sensores CAN y módulos originales del vehículo (vea los límites al final de este capítulo).
Con él la VCU puede:
- Transmitir (TX): tomar datos de la VCU (RPM, temperatura, marcha, presiones...) y enviarlos en tramas con el ID, la posición de bits y la escala que el otro equipo espera.
- Recibir (RX): escuchar un ID, extraer las señales de la trama y grabar los valores en canales de la VCU, que pasan a existir como los demás canales.
La ruta es Mi VCU > CAN personalizable, justo debajo de Puertas CAN. La función viene deshabilitada: actívela antes de configurar. El CAN personalizable funciona en un puerto configurado en Modo RAW o en FTCAN 2.0; para equipos de otras marcas use Modo RAW, a la velocidad del equipo. Verifique en Puertas CAN si el puerto elegido está activado: el editor no hace esa verificación. Antes de transmitir en una red original del vehículo, relea la advertencia de la Presentación.

#Tramas y señales
La pantalla tiene dos pestañas:
- Señales: el banco de señales, con hasta 48 señales. Cada señal vincula un canal de la VCU a una posición de bits (bit de inicio, longitud, orden, escala y offset).
- Marcos: 16 tramas fijas (Marco 1 a Marco 16; la pantalla llama Marco a cada trama). Cada trama tiene ID, puerto, tamaño, dirección, tiempo y la lista de señales que la componen.

La señal se define una vez y se marca en las tramas en que entra. Una misma señal puede marcarse en más de una trama; en ese caso ocupa la misma posición de bits en todas ellas.
| Recurso | Límite |
|---|---|
| Tramas | 16 |
| Señales en el banco (una señal marcada en varias tramas cuenta una vez) | 48 |
| Tamaño de la trama | 1 a 8 bytes; hasta 64 bytes en un puerto con Modo FD |
| Tamaño de la señal | 1 a 32 bits |
| Bit de inicio | 0 a 511 |
| Puertos | A, B y C |
#Campos de la trama
Cada trama tiene un interruptor Activada en el encabezado. Con él desactivado la trama queda en gris y la VCU la ignora.

| Campo | Qué hace |
|---|---|
| Nombre personalizado | Nombre de la trama en el editor y en el DBC exportado. No va a la VCU. |
| ID | Identificador en hexadecimal. Hasta 7FF con ID estándar; hasta 1FFFFFFF con ID extendido. El editor no acepta el mismo ID en dos tramas, aun en puertos o direcciones diferentes. |
| ID extendido | Activado: ID de 29 bits (extendido). Desactivado: ID de 11 bits. Viene activado en una trama nueva: verifique qué usa el equipo. |
| Bytes | Tamaño de los datos. Hasta 8 en un puerto sin Modo FD; hasta 64 en un puerto con Modo FD. |
| Dirección | TX (Transmite): la VCU envía la trama en cada Período. RX (Recibe): la VCU escucha el ID y decodifica las señales. |
| Puerta | Puerta A, B o C, la misma letra de la pantalla Puertas CAN. La FT470 tiene solo las Puertas A y B: la opción C no se aplica a ella. |
| Período (TX) | Intervalo entre transmisiones, de 0,01 s (100 Hz) a 60 s. El título del campo muestra la frecuencia equivalente. |
| Timeout (RX) | Tiempo máximo sin recibir la trama, de 0,5 a 60 s. Si se supera, las señales de la trama pasan a cero y quedan marcadas como sin dato válido. |
| Fuerzar clásica CAN | Así escrito en la pantalla (es decir, forzar CAN clásico). Solo en un puerto con Modo FD. Envía esta trama como CAN clásico, sin BRS, para equipos que no entienden CAN FD. Use como máximo 8 bytes en esta trama: el editor no lo limita por sí solo. |
| BRS (solo Can FD) | Solo en un puerto con Modo FD. Activado, la parte de datos va a la velocidad de datos FD del puerto. |
| Señales agregadas | La lista de las 48 señales con casilla de marcar. Marque las que componen esta trama. |
#Campos de la señal
| Campo | Qué hace |
|---|---|
| Nombre personalizado | Nombre de la señal en el editor y en el DBC exportado. No va a la VCU. |
| Canal de la VCU | El dato que la señal transporta. En una trama TX es el origen del valor; en una trama RX es el canal donde se graba el valor recibido. Con la opción Nada (ningún canal), la señal lleva un Valor fijo. |
| Canal aritmético | Define cómo hace la VCU el cálculo entre el canal y los bits (vea más adelante). Viene activado. Desactivado, el cálculo usa solo números enteros y positivos. |
| Start bit | Posición de la señal en la trama (el bit de inicio). En Intel es el bit menos significativo; en Motorola es el más significativo, en la numeración del DBC. |
| Longitud | Cantidad de bits de la señal, de 1 a 32. |
| Orden de bits | El orden de bytes del capítulo 3: Intel (Little Endian) o Motorola (Big Endian). Una señal nueva se crea en Motorola. |
| Tipo de valor | Sin señal (es decir, sin signo: no admite valores negativos) o Con señal (es decir, con signo: admite valores negativos, en complemento a dos; vea el capítulo 3). Vale para la lectura de tramas RX. |
| Escala y Offset | El factor y el offset de la señal: valor = bruto × Escala + Offset. |
| Valor fijo | Solo con Canal de la VCU en Nada. Valor en hexadecimal (hasta 8 dígitos) escrito directo en los bits de la señal, sin escala. |

#Canal aritmético
Este campo exige atención cuando la señal se ingresa a mano.
- Activado (recomendado): la VCU hace el cálculo con números reales. Transmisión: bruto = (valor − Offset) ÷ Escala. Recepción: valor = bruto × Escala + Offset. Funciona con escala fraccionaria (0,1; 0,125; 0,01...) y con offset negativo (−40, −500...).
- Desactivado: el cálculo se hace solo con números enteros y positivos. La parte fraccionaria del canal se descarta y la Escala y el Offset también pasan a enteros positivos. Una escala de 0,1 pasa a 0 y un offset de −40 deja de funcionar.
#Cómo arma la VCU los bits
Algunas reglas ayudan a prever exactamente qué va a la red:
- Truncamiento, no redondeo. En la transmisión la VCU corta la parte fraccionaria del valor bruto. Una temperatura de 92,5 °C con escala 1 y offset −40 va como 132 (92 °C). Si la resolución importa y el equipo receptor permite elegir la escala, use una menor (por ejemplo 0,1) y configure la misma en los dos lados.
- Sin saturación. Si el valor no cabe en el tamaño de la señal, solo se escriben los bits más bajos y el valor se desborda y vuelve a empezar. Una señal de 8 bits sin signo con offset −40 cubre de −40 a 215 °C; 250 °C saldría como un valor bajo. Dimensione la longitud para el rango real.
- Los bits libres van en cero. Los bits de la trama que no pertenecen a ninguna señal se transmiten con 0.
- El valor se lee en el momento de armar la trama.
- Una señal superpuesta o fuera de la trama deshabilita la trama. Si dos señales marcadas en la misma trama usan el mismo bit, o si una señal pasa del último byte, la VCU deshabilita la trama y señala un error. Verifique las posiciones antes de grabar: el editor no dibuja el mapa de bits.
#Recepción: reglas importantes
- La VCU compara el ID exacto. No hay rango ni máscara de ID.
- Bytes es el tamaño mínimo aceptado. Una trama que llega con menos bytes de los configurados se ignora. Una trama mayor se acepta. En caso de duda, verifique el tamaño real con el sniffer.
- Timeout: si la trama deja de llegar, pasado el Timeout los canales de la trama pasan a cero y quedan marcados como sin dato válido. El valor vuelve apenas llegue una nueva trama. La verificación se hace en pasos de 0,1 s; use un Timeout de por lo menos tres veces el período con que el equipo transmite, y nunca menor que 0,5 s, el mínimo del campo.
- Canal de destino: prefiera los canales Medida customizada #01 a Medida customizada #36 (medidas personalizadas): son entradas libres del usuario y pueden renombrarse. Grabar en un canal que la propia VCU calcula (RPM, MAP, temperatura de un sensor conectado a la VCU) no se recomienda: el valor recibido tiende a ser sobrescrito por la medida real.
- Evite usar, en el mismo puerto, un ID que otra función ya escucha (Volante, Racelink, TCU externa, paquetes personalizados): solo una de ellas recibe la trama.

#Transmisión: reglas importantes
- El Período mínimo es 0,01 s (100 Hz).
- Las tramas se envían en orden de número. Con muchas tramas en períodos cortos, las de número mayor pueden salir con algún retraso respecto al período configurado. Ponga las tramas más rápidas en los primeros números (Marco 1, 2, 3...).
- Para transmitir es necesario que otro módulo esté conectado al bus para confirmar las tramas. Sola en el bus, la VCU abandona la trama entre 20 y 30 ms después del envío y, después de tres fallas seguidas, deja de transmitir en el puerto por 1,5 s antes de intentar de nuevo.
#Errores y cómo verlos
La VCU indica un problema en el CAN personalizable de tres formas (los nombres van tal como aparecen en el software, que también llama al recurso CAN Personalizada o CAN personalizado, y a la trama, marco):
- Canal "CAN Personalizada: error de marco": cada bit del valor corresponde a una trama (bit 0 = Marco 1, bit 1 = Marco 2...). Valor 0 = ninguna trama con error. Aparece en la lista de canales de la VCU.
- Notificación "CAN personalizado: Error de (des)composición del marco": aparece cuando una trama fue deshabilitada por error. Solo se muestra unos 60 s después de grabar el mapa (la notificación equivalente de los paquetes personalizados sale en unos 15 s).
- Validación del mapa en FuelTech Vision (ventana Validación de alertas de configuraciones): avisa de una trama con más de 8 bytes en un puerto sin Modo FD y de una señal con Canal aritmético desactivado y escala fraccionaria u offset negativo.
Situaciones que deshabilitan la trama o hacen que sea ignorada:
- Trama habilitada sin ninguna señal marcada.
- Período (en una trama TX) o Timeout (en una trama RX) fuera del rango.
- Trama TX con ID mayor que 7FF e ID extendido desactivado.
- Señales superpuestas, señal más allá del tamaño de la trama o canal inválido.
- En la recepción, señal más allá del tamaño de la trama que llegó.
#Límites del CAN personalizable
En la versión 3.0 el CAN personalizable no genera checksum (valor de verificación calculado sobre los datos) ni contador rotativo (valor que cambia en cada trama), no trata señales multiplexadas (señales cuyo significado depende de un selector en la propia trama), no transmite por evento (solo periódicamente), no envía ni responde tramas remotas, no tiene timeout por señal (solo por trama) y no trabaja con valores en punto flotante IEEE (número con decimales) ni con señales de más de 32 bits. Un módulo original moderno que exige checksum o contador puede rechazar esos comandos.