13. Exemplos passo a passo
#Exemplo 1: painel de outra marca (TX)
Um painel aceita, no ID 0x100 (11 bits) a 500 kbit/s, um quadro de 8 bytes com rotação, temperatura do motor, posição do acelerador e tensão da bateria, todos em Intel. A especificação do painel diz:
| Sinal | Start bit | Bits | Escala | Offset | Unidade |
|---|---|---|---|---|---|
| Rotação | 0 | 16 | 1 | 0 | rpm |
| Temperatura do motor | 16 | 8 | 1 | −40 | °C |
| Acelerador (TPS) | 24 | 8 | 0,4 | 0 | % |
| Bateria | 32 | 16 | 0,1 | 0 | V |
- Em Portas CAN, ative a porta onde o painel está ligado (neste exemplo, a Porta B) em Modo RAW, 500 kbit/s, Modo FD desligado. O Terminador da CAN vem ligado: deixe ligado só se a VCU estiver numa ponta do barramento.
- No CAN Personalizável, ligue a função e, na aba Sinais, crie quatro sinais. Em todos: Ordenação Intel, Tipo Sem sinal, Canal aritmético ligado. Preencha Canal da VCU, Start bit, Comprimento, Escala e Offset de acordo com a tabela.
- Na aba Quadros, no Quadro 1: Habilitada, ID 100, ID Extendido desligado, Bytes 8, Direção TX, Porta B, Período 0,02 s (50 Hz). Marque os quatro sinais.
- Grave o mapa e, se a configuração da porta mudou, desligue e ligue a VCU.
- Abra o Sniffer CAN na Porta B, direção TX, modo Filtrado, e confira o quadro.
Com 5432 rpm, 92,5 °C, 50% de acelerador e 13,8 V, o quadro sai assim:
ID 0x100 38 15 84 7D 8A 00 00 00
RPM T TPS BAT
A rotação 5432 é 0x1538, que em Intel aparece como 38 15. A temperatura vai como 132 (0x84): 92,5 + 40 = 132,5, truncado para 132. O acelerador vai como 125 (0x7D) e a bateria como 138 (0x008A, em Intel 8A 00).
#Exemplo 2: sensor de outra marca (RX)
Um módulo transmite a temperatura do óleo no ID 0x501 (11 bits), a cada 50 ms, a 500 kbit/s. O DBC do fabricante traz:
BO_ 1281 MODULO_OLEO: 8 MODULO
SG_ TEMP_OLEO : 7|16@0- (0.1,0) [-50|200] "C" FT700
1281 em decimal é 0x501. O sinal começa no bit 7, tem 16 bits, é Motorola (@0), com sinal (−), escala 0,1 e offset 0.
- Em Portas CAN, ative a porta onde o módulo está ligado (neste exemplo, a Porta C da FT700; a FT470 tem só as Portas A e B) em Modo RAW, 500 kbit/s. Terminador como no Exemplo 1.
- No CAN Personalizável, com a função ligada, crie o sinal: Canal da VCU = Medida customizada #01, Ordenação Motorola, Start bit 7, Comprimento 16, Tipo Com sinal, Escala 0,1, Offset 0, Canal aritmético ligado.
- Configure um quadro: ID 501, ID Extendido desligado, Bytes 8, Direção RX, Porta C (ou a porta escolhida no passo 1), Timeout 0,5 s. Marque o sinal.
- Grave o mapa, desligue e ligue a VCU se a configuração da porta mudou e acompanhe o canal em tempo real.
Leituras esperadas: bytes 03 84 no início do quadro (900) dão 90,0 °C; bytes FF 38 (−200) dão −20,0 °C. Se o módulo parar de transmitir, depois de cerca de 0,5 s o canal vai a zero e fica marcado como sem dado válido.
Se você tem o DBC, pode Importar DBC em vez de digitar o sinal. A importação substitui a configuração atual do CAN Personalizável e deixa os quadros importados transmitindo zeros pela Porta A: antes de gravar, desabilite os que não vai usar e ajuste Direção para RX, a Porta, o Timeout e o Canal da VCU (veja o capítulo de importação).
#Exemplo 3: quadro fixo (despertar módulo)
Alguns módulos só começam a transmitir depois de receber uma mensagem de presença. Crie um sinal com Canal da VCU Nenhum, Ordenação Intel, Start bit 0, Comprimento 8 e Valor fixo A5. Num quadro TX com o ID e o ID Extendido que o módulo documenta, na porta onde ele está ligado, com Bytes 1 e Período 0,1 s, marque esse sinal. A VCU enviará o byte A5 a cada 100 ms. A resposta do módulo, se houver, é lida por um quadro RX. Numa rede original do veículo, siga o aviso da Apresentação.