Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Saber Electrónica
76
Interpretación de Comandos OBD
de datos que se ha de mostrar. Quizás sólo quiere ver los 2xx's, use el comando “AT MR 02”, y para ver todos
mensajes que están siendo transmitidos por el ECU con los 7xx's, debe usar “AT MR 07”.
dirección 10. Para hacer eso, simplemente tipee: El ELM327 se puede poner para que envíe automá-
ticamente el comando Monitor All a sí mismo después
> AT MT 10 del encendido, si PP 00 se pone en 0 y se habilita.
Saber Electrónica
77
Auto Eléctrico
grama de bits que le dice al CI qué bits del filtro son rele- beneficio extra de que mientras están en efecto, el CI
vantes. Si el bit de la máscara es 1, ese bit de filtro es permanecerá quieto, sin enviar reconocimiento o seña-
relevante, y se requiere que coincida. Todos los bits del les de error, de modo que cualquier cosa que haga
mensaje anterior son relevantes, excepto los de los dos mientras monitorea no debe perturbar a otros dispositi-
últimos dígitos. Para establecer esta máscara, necesita vos que están conectados al bus.
usar el comando CAN Mask: Note que si se ha puesto un filtro, se usará para
todos los mensajes CAN, de modo que establecer filtros
> AT CM 1F FF FF 00 y máscaras puede hacer que sean ignorados los pedi-
dos OBD normales, y Ud. puede comenzar a ver “NO
Los CAN IDs de 11 bits se tratan de la misma mane- DATA” como respuesta. Si eso es lo que sucede, y no
ra. Recuerde que se almacenan internamente en los 11 está seguro de por qué, Ud. puede querer reinicializar
bits más a la derecha de las posiciones usadas para todo a sus valores por defecto (con AT D) y comenzar de
CAN de 29 bits, las cuales deben considerarse cuando nuevo.
se crea un filtro o máscara. Como ejemplo, suponga que
queremos mostrar todos los mensajes que tienen un 6
como el primer dígito del ID de 11 bits. Necesitamos Respuesta Multilínea
establecer un filtro que busque 6:
A veces, un vehículo debe responder con más infor-
> AT CF 00 00 06 00 mación que la que un “mensaje” puede mostrar. En
estos casos, responde con varias líneas que deben
El ID de 11 bits se almacena en las últimas 3 ubica- armarse en un mensaje completo.
ciones, de modo que el 6 aparece donde se muestra. Un ejemplo de esto es un pedido del número de serie
Ahora para hacer que ese dígito sea relevante, creamos de un vehículo (modo 09, PID 02). Esta es una respues-
la máscara: ta multilínea que necesita unirse. En estas situaciones,
debe asegurarse que toda la respuesta ha sido recibida
> AT CM 00 00 0F 00 y está en el orden correcto antes de armar el mensaje.
La respuesta real tiene un byte que muestra la secuen-
El sistema sólo usa los bits más a la derecha en este cia de los datos. Aquí está un ejemplo para un vehículo
caso, de modo que podemos ser perezosos e ingresar típico SAE J1850:
la F como se muestra (el primer bit de la F será ignora-
do, y se tratará como si hubiéramos ingresado un 7). >0902
Claramente, esto puede ser bastante complicado si 49 02 01 00 00 00 31
se usan sistemas CAN de 11 bits en forma rutinaria. 49 02 02 44 34 47 50
Para ayudar con eso, el ELM327 ofrece algunas versio- 49 02 03 30 30 52 35
nes más cortas de los comandos CF y CM. Para usarlos 49 02 04 35 42 31 32
en el ejemplo anterior, sólo ingrese argumentos de 3 49 02 05 33 34 35 36
dígitos:
Note que todos los vehículos compatibles con OBD
> AT CF 600 no necesariamente proveen esta información. Los más
y viejos no, pero como regla los más nuevos sí. Si su vehí-
AT CM F00 culo no soporta este parámetro, sólo verá una respues-
ta “NO DATA”.
Como en las versiones de 29 bits, sólo se usan real- Los primeros 2 bytes (49 y 02) en cada línea de la
mente los 11 dígitos menos significativos (más a la dere- respuesta anterior no muestran ninguna información del
cha), de modo que no tiene que tener cuidado especial vehículo. Sólo muestran que esta es una respuesta a un
con el 1er. bit. pedido 09 02. El siguiente byte en cada línea muestra el
Con un poco de práctica, estos comandos son fáci- orden en el cual deben armarse los datos. El armado del
les de aprender. Inicialmente, intente ingresar los valo- resto de los datos en ese orden, ignorando los primeros
res del filtro y la máscara, luego use un comando tal pocos 00's, da:
como AT MA para ver cuáles son los resultados. El ELM
327 sabe que Ud. está tratando de filtrar, y combina los 31 44 34 47 50 30 30 52 35 35 42 31 32 33 34 35 36
efectos de ambos comandos (hará eso para MR y MT
también). Los comandos MA, MR y MT todos tienen el Usando una tabla ASCII para convertir esos dígitos
Saber Electrónica
78
Interpretación de Comandos OBD
hexadecimales da el siguiente número de serie del vehí- >AT H1
culo : OK
1 D 4 G P 0 0 R 5 5 B 1 2 3 4 5 6 >01 00
48 6B 10 41 00 BE 3E B8 11 FA
Los sistemas CAN mostrarán esta información en 48 6B 18 41 00 80 10 80 00 C0
una forma un poco diferente. Aquí tenemos una res-
puesta típica de un vehículo CAN: Ahora, si Ud. analiza el encabezamiento, puede ver
que el 3º byte muestra que ECU 10 (el controlador del
>0902 motor) y ECU 18 (la transmisión) ambos están respon-
014 diendo con una respuesta que es válida para ellos. Este
0 : 49 02 01 31 44 34 tipo de respuesta ocurre a menudo, y debe estar prepa-
1 : 47 50 30 30 52 35 35 rado para ello.
2 : 42 31 32 33 34 35 36 Un ejemplo final muestra cómo a veces se pueden
“mezclar” mensajes similares en un sistema CAN.
El Formateo CAN ha sido activado haciendo que la Pedimos al vehículo el ID de Calibración (09 04) y se
lectura de los datos sea más fácil. Con el formateo acti- presentan con la siguiente respuesta:
vado, los números de secuencia se muestran con dos
puntos (“:”) después de cada uno, de modo que puedan >09 04
destacarse claramente (0:, 1:, etc.). Los sistemas CAN 013
agregan este dígito hexadecimal (va de 0 a F y luego se 0 : 49 04 01 35 36 30
repite), para ayudar a rearmar los datos, tal como lo 1 : 32 38 39 34 39 41 43
hacía el vehículo J1850. 013
La primera línea de esta respuesta dice que hay 014 0 : 49 04 01 35 36 30
bytes de información que siguen. Esto es 14 en hexade- 1 : 32 38 39 34 39 41 43
cimal, o 20 en decimal, lo cual coincide con los 6 + 7 + 7 2 : 00 00 00 00 00 00 00
bytes mostrados en las 3 líneas. Los números de serie
son de 17 dígitos, de modo que ¿cómo armamos el que es bastante confuso. El primer grupo (el grupo
número a partir de 20 dígitos?. La segunda línea mostra- 013, 0:, 1:) parece tener algún sentido, pero el grupo
da comienza con el familiar 49 02, dado que ésta es una siguiente es muy confuso.
respuesta a un pedido 09 02. Claramente no son parte de
un número de serie. Ocasionalmente CAN agregará un 3º ¿Por qué hay dos segmentos con 2? ¿A cuál perte -
byte a la respuesta que vemos a continuación (el “01”), necen?
que muestra el número de ítems de datos que siguen (el La única forma de saber es activar los encabeza-
vehículo sólo puede tener un VIN, de modo que la res- mientos, y repetir su pedido:
puesta dice que sólo hay un ítem de datos). Ese 3º byte
se puede ignorar, de modo que esto deja 17 bytes de >AT H1
datos que constituyen el número de serie (a propósito OK
elegido idéntico al del ejemplo anterior). Todo lo que se
necesita es una conversión a ASCII, a fin de leerlo como >09 04
antes. Lo siguiente muestra un ejemplo de un tipo dife- 7E8 10 13 49 04 01 35 36 30
rente de respuesta multilínea que puede ocurrir cuando 2 7E8 21 32 38 39 34 39 41 43
o más ECUs responden a un pedido. Aquí tenemos una 7E9 10 13 49 04 01 35 36 30
respuesta típica a un pedido 01 00: 7E8 22 00 00 00 00 00 00 31
7E9 21 22 38 39 35 34 41 43
>01 00 7E9 22 00 00 00 00 00 00 00
41 00 BE 3E B8 11
41 00 80 10 80 00 Esta vez el orden parece ser el mismo, pero tenga
en cuenta que puede no ser. Por eso es que la norma
Esto es difícil de descifrar sin saber un poco más de requiere que se transmitan códigos de secuencia con
información. Necesitamos activar los encabezamientos las respuestas multilínea. Mirando los primeros dígitos
para ver realmente “quién” está haciendo la conversa- de estas respuestas, Ud. puede ver que algunos
ción: comienzan con 7E8 y algunos comienzan con 7E9.
Saber Electrónica
79
Auto Eléctrico
Estos son los CAN
IDs especiales que
representan a ECU
# 1 y ECU # 2, res-
pectivamente.
Agrupando las res-
puestas de los dos
ECUs da:
De aquí, los
mensajes se pue-
den agrupar en el
orden correcto.
Para hacerlo, mire-
mos al byte que
sigue al CAN ID. Se
conoce como el
byte PCI, y se usa
para decir qué tipo
de datos sigue. En Figura 1
este caso, el byte
PCI comienza con 1 (para un mensaje de “Primer gramas de uso libre que se consiguen por Internet.
Cuadro”), o un 2 (para los “Cuadros Consecutivos”). La La computadora, a través de su puerto de serie (9
2da. mitad del byte PCI muestra el orden en el cual se pines), interroga o recibe información del coche.
debe agrupar la información (o sea el número de seg- La interfase ejerce una función de conversión de la
mento). En este caso, los números de segmento ya información entre la PC y el coche.
están en orden, pero si no lo estuvieran, habría sido Lo he probado con el programa ScanTool.ner versión
necesario reordenar los mensajes para ponerlos en 1.08, figura 2, y he conseguido algunos reportes como
orden. para “comenzar a investigar” aunque dista mucho de ser
Cada norma OBD tiene algunas peculiaridades un circuito profesional.
menores. Esperamos que esto le haya ayudado con
algunas de las más difíciles. Si todavía tiene problemas, Recomiendo su armado para aprender sobre códi -
le decimos que compre la norma relevante y estúdiela. gos OBD. ✪
Saber Electrónica
80
Auto Eléctrico
Saber Electrónica
81