10. CAN Personalizável
#Para que serve
O CAN Personalizável monta e interpreta quadros CAN definidos por você. É a ferramenta para conversar com equipamentos que não usam o protocolo FTCAN: painéis e dataloggers de outras marcas, módulos de câmbio, módulos de injeção ou de ignição de terceiros, sensores CAN e módulos originais do veículo (veja os limites no fim deste capítulo).
Com ele a VCU pode:
- Transmitir (TX): pegar dados da VCU (rotação, temperatura, marcha, pressões...) e enviá-los em quadros com o ID, a posição de bits e a escala que o outro equipamento espera.
- Receber (RX): escutar um ID, extrair os sinais do quadro e gravar os valores em canais da VCU, que passam a existir como os demais canais.
O caminho é Minha VCU > CAN Personalizável, logo abaixo de Portas CAN. A função vem desabilitada: ligue-a antes de configurar. O CAN Personalizável funciona em porta configurada em Modo RAW ou em FTCAN 2.0; para equipamentos de outras marcas use Modo RAW, na taxa do equipamento. Confira em Portas CAN se a porta escolhida está ativada: o editor não faz essa conferência. Antes de transmitir numa rede original do veículo, releia o aviso da Apresentação.

#Quadros e sinais
A tela tem duas abas:
- Sinais: o banco de sinais, com até 48 sinais. Cada sinal liga um canal da VCU a uma posição de bits (bit de início, comprimento, ordem, escala e offset).
- Quadros: 16 quadros fixos (Quadro 1 a Quadro 16). Cada quadro tem ID, porta, tamanho, direção, tempo e a lista de sinais que o compõem.

O sinal é definido uma vez e marcado nos quadros em que entra. Um mesmo sinal pode ser marcado em mais de um quadro; nesse caso ele ocupa a mesma posição de bits em todos eles.
| Recurso | Limite |
|---|---|
| Quadros | 16 |
| Sinais no banco (um sinal marcado em vários quadros conta uma vez) | 48 |
| Tamanho do quadro | 1 a 8 bytes; até 64 bytes em porta com Modo FD |
| Tamanho do sinal | 1 a 32 bits |
| Bit de início | 0 a 511 |
| Portas | A, B e C |
#Campos do quadro
Cada quadro tem um interruptor Habilitada no cabeçalho. Com ele desligado o quadro fica acinzentado e a VCU o ignora.

| Campo | O que faz |
|---|---|
| Nome customizado | Nome do quadro no editor e no DBC exportado. Não vai para a VCU. |
| ID | Identificador em hexadecimal. Até 7FF com ID padrão; até 1FFFFFFF com ID Extendido. O editor não aceita o mesmo ID em dois quadros, mesmo em portas ou direções diferentes. |
| ID Extendido | Ligado: ID de 29 bits (estendido). Desligado: ID de 11 bits. Vem ligado em quadro novo: confira o que o equipamento usa. |
| Bytes | Tamanho dos dados. Até 8 em porta sem Modo FD; até 64 em porta com Modo FD. |
| Direção | TX (Transmite): a VCU envia o quadro a cada Período. RX (Recebe): a VCU escuta o ID e decodifica os sinais. |
| Porta | Porta A, B ou C, a mesma letra da tela Portas CAN. A FT470 tem só as Portas A e B: a opção C não se aplica a ela. |
| Período (TX) | Intervalo entre transmissões, de 0,01 s (100 Hz) a 60 s. O título do campo mostra a frequência equivalente. |
| Timeout (RX) | Tempo máximo sem receber o quadro, de 0,5 a 60 s. Estourado, os sinais do quadro vão a zero e ficam marcados como sem dado válido. |
| Forçar CAN Clássico | Só em porta com Modo FD. Envia este quadro como CAN clássico, sem BRS, para equipamentos que não entendem CAN FD. Use no máximo 8 bytes neste quadro: o editor não limita sozinho. |
| BRS (somente Can FD) | Só em porta com Modo FD. Ligado, a parte de dados vai na taxa de dados FD da porta. |
| Sinais adicionados | A lista dos 48 sinais com caixa de marcar. Marque os que compõem este quadro. |
#Campos do sinal
| Campo | O que faz |
|---|---|
| Nome customizado | Nome do sinal no editor e no DBC exportado. Não vai para a VCU. |
| Canal da VCU | O dado que o sinal transporta. Em quadro TX é a origem do valor; em quadro RX é o canal onde o valor recebido é gravado. Com Nenhum, o sinal carrega um Valor fixo. |
| Canal aritmético | Define como a VCU faz a conta entre o canal e os bits (veja adiante). Vem ligado. Desligado, a conta usa só números inteiros e positivos. |
| Start bit | Posição do sinal no quadro (o bit de início). Em Intel é o bit menos significativo; em Motorola é o mais significativo, na numeração do DBC. |
| Comprimento | Quantidade de bits do sinal, de 1 a 32. |
| Ordenação de bits | A ordem dos bytes do capítulo 3: Intel (Little Endian) ou Motorola (Big Endian). Sinal novo nasce em Motorola. |
| Tipo de valor | Sem sinal ou Com sinal (complemento de dois, veja o capítulo 3). Vale para a leitura de quadros RX. |
| Escala e Offset | O fator e o offset do sinal: valor = bruto × Escala + Offset. |
| Valor fixo | Só com Canal da VCU em Nenhum. Valor em hexadecimal (até 8 dígitos) escrito direto nos bits do sinal, sem escala. |

#Canal aritmético
Este campo exige atenção quando o sinal é digitado à mão.
- Ligado (recomendado): a VCU faz a conta com números reais. Transmissão: bruto = (valor − Offset) ÷ Escala. Recepção: valor = bruto × Escala + Offset. Funciona com escala fracionária (0,1; 0,125; 0,01...) e com offset negativo (−40, −500...).
- Desligado: a conta é feita só com números inteiros e positivos. A parte fracionária do canal é descartada e a Escala e o Offset também viram inteiros positivos. Uma escala de 0,1 vira 0 e um offset de −40 deixa de funcionar.
#Como a VCU monta os bits
Algumas regras ajudam a prever exatamente o que vai para a rede:
- Truncamento, não arredondamento. Na transmissão a VCU corta a parte fracionária do valor bruto. Temperatura de 92,5 °C com escala 1 e offset −40 vai como 132 (92 °C). Se a resolução importa e o equipamento receptor permite escolher a escala, use uma menor (por exemplo 0,1) e configure a mesma nos dois lados.
- Sem saturação. Se o valor não cabe no tamanho do sinal, só os bits mais baixos são escritos e o número dá a volta. Um sinal de 8 bits sem sinal com offset −40 cobre de −40 a 215 °C; 250 °C sairia como um valor baixo. Dimensione o comprimento para a faixa real.
- Bits livres vão em zero. Os bits do quadro que não pertencem a nenhum sinal são transmitidos com 0.
- O valor é lido na hora de montar o quadro.
- Sinal sobreposto ou fora do quadro desabilita o quadro. Se dois sinais marcados no mesmo quadro usam o mesmo bit, ou se um sinal passa do último byte, a VCU desabilita o quadro e acusa erro. Confira as posições antes de gravar: o editor não desenha o mapa de bits.
#Recepção: regras importantes
- A VCU compara o ID exato. Não há faixa nem máscara de IDs.
- Bytes é o tamanho mínimo aceito. Um quadro que chega com menos bytes do que o configurado é ignorado. Quadro maior é aceito. Na dúvida, confira o tamanho real com o sniffer.
- Timeout: se o quadro parar de chegar, depois do Timeout os canais do quadro vão a zero e ficam marcados como sem dado válido. O valor volta assim que um novo quadro chegar. A verificação é feita em passos de 0,1 s; use um Timeout de pelo menos três vezes o período com que o equipamento transmite, e nunca menor que 0,5 s, o mínimo do campo.
- Canal de destino: prefira os canais Medida customizada #01 a Medida customizada #36: são entradas livres do usuário e podem ser renomeadas. Gravar num canal que a própria VCU calcula (rotação, MAP, temperatura de um sensor ligado na VCU) não é recomendado: o valor recebido tende a ser sobrescrito pela medida real.
- Evite usar, na mesma porta, um ID que outra função já escuta (Volante, Racelink, TCU externa, pacotes customizados): só uma delas recebe o quadro.

#Transmissão: regras importantes
- O Período mínimo é 0,01 s (100 Hz).
- Os quadros são enviados em ordem de número. Com muitos quadros em períodos curtos, os de número maior podem sair com algum atraso em relação ao período configurado. Coloque os quadros mais rápidos nos primeiros números (Quadro 1, 2, 3...).
- Para transmitir é preciso que outro módulo esteja ligado no barramento para confirmar os quadros. Sozinha no barramento, a VCU abandona o quadro entre 20 e 30 ms depois do envio e, depois de três falhas seguidas, para de transmitir na porta por 1,5 s antes de tentar de novo.
#Erros e como enxergá-los
A VCU indica problema no CAN Personalizável de três formas:
- Canal "CAN Personalizada: erro de quadro": cada bit do valor corresponde a um quadro (bit 0 = Quadro 1, bit 1 = Quadro 2...). Valor 0 = nenhum quadro com erro. Ele aparece na lista de canais da VCU.
- Notificação "CAN Personalizada: Erro de (de)composição de quadro": aparece quando um quadro foi desabilitado por erro. Ela só é mostrada depois de cerca de 60 s da gravação do mapa (a notificação equivalente dos pacotes customizados sai em cerca de 15 s).
- Validação do mapa no FuelTech Vision (janela Validação de alertas de configurações): avisa quadro com mais de 8 bytes em porta sem Modo FD e sinal com Canal aritmético desligado e escala fracionária ou offset negativo.
Situações que desabilitam o quadro ou o fazem ser ignorado:
- Quadro habilitado sem nenhum sinal marcado.
- Período (em quadro TX) ou Timeout (em quadro RX) fora da faixa.
- Quadro TX com ID maior que 7FF e ID Extendido desligado.
- Sinais sobrepostos, sinal além do tamanho do quadro ou canal inválido.
- Na recepção, sinal além do tamanho do quadro que chegou.
#Limites do CAN Personalizável
Na versão 3.0 o CAN Personalizável não gera checksum (valor de verificação calculado sobre os dados) nem contador rotativo (valor que muda a cada quadro), não trata sinais multiplexados (sinais cujo significado depende de um seletor no próprio quadro), não transmite por evento (só periodicamente), não envia nem responde quadros remotos, não tem timeout por sinal (só por quadro) e não trabalha com valores em ponto flutuante IEEE (número com casas decimais) nem com sinais de mais de 32 bits. Módulo original moderno que exige checksum ou contador pode recusar esses comandos.