15eslectronica 2
15eslectronica 2
15eslectronica 2
ACAS
ADEL
API
LA
AGAIN&AGAIN M M
E A
N Y
U O
D R
E E
O O
AGAI
N&AGAI
N
LACASADELAPI
LA
ahor
at énenNAUCALPAN:
ambi
LOESPERAMOSEN:
Av.Jar
d i
nesd eSanMateoNº
125
Local5,Co l
.Sta.Cr
uzAcat
lan
NAUCAL PAN,EDO.DEMEX ICO
CP:53150
TEL:55-12-22-99
l
ac asadel
apil
acel
da@gmail
.com
Fabr
icaci
óndeBancos,Pi
lasdePlomo,AcidyunExt
ensoSurt
idoenPilaspar
aPC,
CompacyyComputadorasdeTodasl
asMarcasdePrest
igi
o.
Editorial
La electrónica del automóvil : OBD II / Horacio Vallej ; dirigido por Horacio Vallejo. - 1a ed. - Buenos
Aires : Quark, 2010.
80 p. ; 28x20 cm.
ISBN 978-987-623-208-1
Club Saber Electrónica Nº 65. Fecha de publicación: JULIO de 2010. Publicación mensual editada y publicada por Editorial Quark, Herrera 761 (1295)
Capital Federal, Argentina (005411-43018804), en conjunto con Saber Internacional SA de CV, Av. Moctezuma Nº 2, Col. Sta. Agueda, Ecatepec de Mo-
relos, México (005255-58395277), con Certificado de Licitud del título (en trámite). Distribución en Argentina: Capital: Carlos Cancellaro e Hijos SH,
Gutenberg 3258 - Cap. 4301-4942 - Interior: Distribuidora Bertrán S.A.C. Av. Vélez Sársfield 1950 - Cap. – Distribución en Uruguay: Rodesol SA Ciu-
dadela 1416 – Montevideo, 901-1184 – La Editorial no se responsabiliza por el contenido de las notas firmadas. Todos los productos o marcas que se
mencionan son a los efectos de prestar un servicio al lector, y no entrañan responsabilidad de nuestra parte. Está prohibida la reproducción total o
parcial del material contenido en esta revista, así como la industrialización y/o comercialización de los aparatos o ideas que aparecen en los mencio-
nados textos, bajo pena de sanciones legales, salvo mediante autorización por escrito de la Editorial.
Club Saber Electrónica, ISSN: 1668-6004
Director de la Colección Club SE Editor Responsable en Argentina y Director Club Saber Electrónica: Liliana Vallejo
Ing. Horacio D. Vallejo México: Luis Leguizamón Mariela Vallejo
Ing. Horacio D. Vallejo Fabian Nieves
Responsable de Atención al Lector: Ramón Miño
Jefe de Redacción:
Administración Argentina: Alejandro A. Vallejo Fernando Ducach
Ing. Horacio D. Vallejo Teresa C. Jara
Coordinador Internacional Areas de Apoyo
Autor de esta edición: Administración México: José María Nieves Teresa Ducach
Ing. Horacio D. Vallejo Patricia Rivero Rivero Disprof
[email protected] Publicidad Fernando Flores
Comercio Exterior Argentina: Argentina: 4301-8804 - México: 5839-5277 Paula Vidal
Club Saber Electrónica es una publica- Hilda Jara Raúl Romero
ción de Saber Internacional SA de CV de Staff
México y Editorial Quark SRL de Comercio Exterior México: Víctor Ramón Rivero Rivero Internet: www.webelectronica.com.ar
Argentina Margarita Rivero Rivero Olga Vargas Web Manager: Luis Leguizamón
Capítulo 1
¿Qué es OBD?
sistema mucho más sofisticado que OBD II ya que dad de códigos generales de problemas, junto con có-
usa "mapas" de las entradas a los sensores de diag- digos específicos de los fabricantes. Estos códigos se
nóstico basados en las condiciones de operación del clasifican en:
motor, y los componentes se adaptan al sistema cali-
Código B Sistemas de la carrocería.
brándose empíricamente. Esto significa que los
Código C Sistemas del chasis.
repuestos necesitan ser de alta calidad y específicos
Código U Comunicaciones de la red.
para el vehículo y modelo.
Código P Sistemas del tren de potencia (Motor y
Transmisión).
Antes de continuar debemos aclarar: Un motor
OBD I y OBD II controlado por una computadora es similar al viejo
motor no computarizado, debido a que el principio de
combustión interna es el mismo (pistones, bujías, vál-
En el capítulo 5 del primer tomo de esta serie, vulas, cigueñal, árbol de levas, etc.)
correspondiente al tomo Nº 58 de la Colección Club
Saber Electrónica, dimos una introducción sobre los Igualmente los sistemas de carga, arranque y en-
sistemas de diagnóstico a bordo. A continuación, cendido son similares. En otras palabras, los probado-
brindaremos los datos sobresalientes de este tema res de encendido, los medidores de compresión, las
para poder encarar el estudio de los escaner para auto- bombas de vacío y las lámparas de sincronización si-
móviles. Sabemos que los vehículos vienen equipa- guen siendo útiles.
dos con computadoras. También sabemos que las En la figura 1 podemos observar un tipo de lector
computadoras han evolucionado estos últimos años de códigos (auto scanner OBD II). Este tipo de scan-
de tal manera que la capacidad de procesamiento de ner, no necesita batería, sólo se acopla al conector del
los últimos adelantos en computación no tenían por vehículo con un cable como el de la figura 2 y se pro-
qué ser ajenos a los vehículos. cede a leer códigos. En la figura 3 se muestra un
La diferencia entre OBD II y los sistemas compu- ejemplo de dónde debe conectarse el cable en un co-
tarizados anteriores a 1996 consiste, elementalmente, che para poder realizar la lectura de códigos.
en que el sistema OBD II es un sistema que generali- Los códigos obtenidos deben ser interpretados, en
za la forma de leer los códigos de la computadora de forma específica, recurriendo al manual del vehículo
a bordo, lo que quiere decir que no necesita adaptado- ya que cada fabricante programa su computadora con
res para hacer la conexión, sin importar si los vehícu- sus propios códigos.
los son de fabricación nacional o extranjera; ni tam-
poco andar rastreando por todo el vehículo tratando Esto podría ser un inconveniente pero la ventaja es
de ubicar el bendito conector que sirve para apagar la que en la red (www.autoelectronico.com) existen di-
luz de: "chequear el motor", "servicio rápido", "check recciones de fácil acceso que tienen a disposición del
engine", etc. visitante bancos de datos de estos códigos, totalmen-
te gratis. En otras palabras, cualquier persona puede
A partir de enero de l996 se requiere que los vehí- acceder a la lectura de códigos de su vehículo y en-
culos vendidos en muchos países de la región sean contrar la interpretación en la red.
compatibles con OBD II. La mayoría de fabricantes
de los Estados Unidos ya venían equipando sus vehí- Para esto no necesita experiencia previa (este co-
culos con OBD II desde l994. La Agencia de Protec- nector suele estar ubicado a un lado de la columna de
ción Ambiental es la que impone normas y regulacio- dirección, abajo del tablero de control).
nes para la protección del medio ambiente. Las normas exigen que en el caso de no encontrar-
Los sistemas OBD II reúnen los requisitos adecua- se el conector en esta ubicación, el fabricante deberá
dos para monitorear y detectar fallas, permanentes o pegar una etiqueta en este lugar, indicando en qué
intermitentes que podrían hacer que un vehículo con- lugar se encuentra.
tamine el medio ambiente. Almacena una gran canti- Hasta aquí estamos de acuerdo en que el sistema
Figura 1 OBD II facilita la forma de * La computadora del sistema OBD II tiene comu -
acceder a los códigos que nicación con el módulo de encendido y con el módu -
almacena la computadora lo de la transmisión, lo que significa que para efecto
de a bordo. Pero si usted de activar uno de sus actuadores, se vale de la infor -
cree que después de leer los mación que tienen estos módulos.
códigos e interpretar su sig-
nificado solucionó su pro- Si usted por alguna razón (por presumido) cambió
blema, se equivoca. Por el tipo de llantas de su vehículo, la computadora reci-
que aquí es donde se verá la birá datos contradictorios entre las vueltas de la trans-
sabiduría, experiencia, y misión y la revolución de las llantas.
capacidad de discernimien-
Recuerde que el sistema OBD II lo que pretende
to del mecánico.
es optimizar el consumo de combustible y para esto
Los códigos obtenidos se vale de sensores colocados en diferentes partes re-
con el lector electrónico só- lacionadas al funcionamiento del vehículo. Cualquier
lo pueden servir de referen- alteración de los componentes del vehículo engañará
cia debido a lo siguiente: a los sensores y por lo tanto la información que reci-
be la computadora será falsa y falsa
Figura 2 será la interpretación y decisión que
origine una orden a cualquiera de los
actuadores.
La computadora del sistema OBD II
controla el suministro de combusti-
ble, la velocidad de marcha en vacío,
el avance por vacío y los controles
de emisiones. En algunos casos las
computadoras de a bordo controlan
la transmisión, los frenos y el sistema
de suspensión.
Los sensores son pequeños dispositi-
Figura 3 vos que miden las condiciones de
operación y las traducen en señales
que la computadora pueda entender.
Por ejemplo: sensores térmicos, (sen-
sor de temperatura), potenciómetros
(sensor de posición de la válvula re-
guladora de aire), generador de seña-
les (sensor de oxígeno).
Los actuadores son dispositivos eléc-
tricos que pueden ser activados por la
computadora.
Entre éstos se incluyen los solenoi-
des y relés.
Los sensores, actuadores, generado-
res de señales y potenciómetros no
son baratos. Si usted decide cambiar-
Figura 9
fabricantes de incluir componentes electrónicos. Por la lectura de los estados en que se encuentran los sen-
tal motivo, más adelante, explicar básicamente cómo sores colocados en el vehículo para monitorear el fun-
influyen los diferentes elementos electrónicos en el cionamiento de cada parte mecánica y/o eléctrica.
funcionamiento del motor. Le recomendamos que Para poder leer estos valores es preciso un escaner
tenga paciencia en la lectura y tendrá como recom- adecuado que funciona en base al protocolo de comu-
pensa un sentimiento de comodidad al hacer diag- nicaciones adoptado para el sistema de diagnóstico y
nósticos. Para terminar, ya a modo de complemento, que no requiere de una computadora para mostrar los
en la figura 10 reproducimos imágenes de localiza- códigos de error o las diferentes pantallas alusivas al
ción del conector OBD2 en algunos modelos de au- funcionamiento de los sensores.
tomóviles.
Otra opción consiste en el uso de interfases OBD
En conclusión, los sistemas de diagnóstico a bordo para conectar el sistema de diagnóstico a bordo (com-
permiten detectar problemas en el vehículo mediante putadora del vehículo) con una computadora tipo PC.
La interfase converti-
rá los datos enviados
por el vehículo en
valores que sean
interpretados por un
programa instalado
en la computadora.
La interfase podrá
conectar al módulo
OBD del vehículo ya
sea al puerto serial
Figura 10 (RS232), USB,
bluethoot, etc.
Es por este motivo
que en este libro
explicaremos los
diferentes aspectos
relacionados con la
lectura de códigos,
describiremos algu-
nas interfases y men-
cionaremos algunos
escaners comercia-
les. El objetivo es
que Ud. cuente con
todos los elementos
que le permitan
entender cómo fun-
ciona este sistema,
cómo leer los códi-
gos y cómo interpre-
tarlos para poder
efectuar un diagnós-
tico certero del esta-
do del vehículo. ✪
Capítulo 2
Vmeasure (pata 2): Es una entrada analógica que se siempre se puede habilitar o inhabilitar con los
usa para medir una señal de 0 a 5V que se le aplique. Se comandos AT M1 y AT M0.
debe tener cuidado de que la tensión no supere el valor
de la alimentación ya que puede haber daño. Si no se
usa, esta pata debe conectarse a Vdd o Vss. Baud Rate (pata 6): Este terminal es una entrada
que controla la velocidad de transferencia de la inter-
faz RS232. Si está en “1” durante el arranque o la rei-
J1850 Volts (pata 3): Se trata de un salida que se nicialización, la velocidad de transferencia se estable-
puede usar para controlar una tensión de alimentación cerá en 38400 (o la velocidad que ha sido establecida
para la salida “J1850 Bus +”. Esta pata pone un “1” por PP OC) y si está en “0” siempre será 9600.
cuando se requiere 8V (para el J1850 VPW) y un 0
cuando se necesita 5V (como en aplicaciones J1850
PWM). Si no se necesita esta capacidad de conmuta- LFmode (pata 7): Esta entrada se usa para selec-
ción para su aplicación, esta salida se puede dejar sin cionar el modo de alimentación de línea por defecto a
conexión. usar luego de un arranque o reinicialización. Si está en
“1”, entonces por defecto los mensajes enviados por el
ELM327 serán terminados tanto con un retorno de carro
J1850 Bus + (pata 4): Es otra salida que se usa como con un carácter de alimentación de línea. Si está
para excitar la línea “J1850 Bus +” a un nivel activo. en “0”, las líneas se terminarán sólo con un retorno de
Note que esta señal no se tiene que usar para la “Línea carro. Este comportamiento siempre se puede modificar
Bus” (como sucede en el LM320) ya que se provee emitiendo un comando AT L1 o AT L0.
una salida separada “J1850 Bus” en la pata 14.
se deben conectar capacitores de 27pF entre estas 2 CAN Tx (pata 23) y CAN Rx (pata 24): Estas
patas y tierra. son las 2 señales CAN de interfaz que deben conec-
tarse a un CI transceptor CAN. Si no se usa, esta pata
Note que este dispositivo no ha sido configurado
debe conectarse a VDD.
para trabajar con un oscilador externo ya que sólo se
debe conectar un cristal a estas patas.
RS232 Rx LED (pata 25), RS232 Tx LED (pata
26), OBD Rx LED (pata 27) y OBD Tx LED (pata
VPW In (pata 11): Esta es la entrada activa alta
28): Estas 4 patas de salida normalmente están en “1”
de la señal de datos J1850 VPW. En reposo, esta pata
y pasan a “0” cuando el ELM327 está transmitiendo
debe estar en “0”. Esta entrada tiene un Schmitt trig-
o recibiendo datos. Estas salidas son adecuadas para
ger de manera que no se necesita una amplificación
excitar directamente a la mayoría de los LEDs a tra-
especial.
vés de resistores limitadores de corriente o para hacer
de interfaz con otros circuitos lógicos. Si no se usan,
ISO In (pata 12): Es la entrada activa baja de la estas patas se pueden dejar abiertas.
señal de datos ISO 9141 e ISO 14230. Se deriva de Note que la pata 28 también se puede usar para
la Línea K y debe estar en “1” en reposo (bus en rece- apagar todos los Parámetros Programables.
so). No se requiere amplificación especial ya que esta
entrada tiene un Schmitt trigger.
En la figura 2 se observa el diagrama en bloques
VDD (pata 20): Esta pata es la de la tensión posi-
del integrado. Note que el conector OBD del automó-
tiva de alimentación. El circuito interno conectado a
vil puede enviar datos al ELM327 siguiendo diferen-
esta pata se usa para suministrar la reinicialización de
tes protocolos (CAN, ISO, J1850), además, siempre
encendido del microprocesador, de manera que no se
envía una tensión variable cuyo valor le indica al inte-
necesita una señal externa de reinicialización.
grado el tipo de código que se debe interpretar. Esta
ISO K (pata 21) e ISO L (pata 22): Estas son las tensión ingresa a un conversor A/D de modo que la
señales de salida activa alta que se usan para excitar señal resultante se dirige al intérprete de códigos y
los buses ISO 9141 e ISO 14230 a un nivel activo. protocolos en conjunto con la información del código
Muchos vehículos no requieren la Línea “L”. Si el OBD. La señal es procesada y convertida en informa-
suyo no lo necesita, simplemente puede dejar la pata ción RS232 que será enviada por la pata 17 del
22 abierta. ELM327.
Figura 2
Figura 3
De esta manera hemos descripto la función de Deduciremos que usar el ELM327 no es tan difícil
cada terminal del ELM327. A partir de ahora vere- como parece. Muchos usuarios nunca necesitarán
mos cómo usar el ELM327 para obtener información emitir un comando AT, ajustar tiempos de exclusión o
de su vehículo. Comenzaremos viendo cómo ¨hablar¨ cambiar encabezadores. A lo sumo, todo lo que se
al CI usando una PC, luego explicaremos cómo cam- requiere es una PC o una PDA con un programa
biar opciones usando comandos AT, y finalmente Terminal 8tal como HyperTerminal o ZTemp y cono-
mostraremos cómo usar el ELM327 para obtener cimiento de comandos OBD, tema que ya hemos
códigos de fallas (y reinicializarlos). desarrollado y volveremos a hacerlo con mayor pro-
fundidad.
Para que el lector pueda tener una noción de cómo
es un circuito “intérprete” de códigos OBD, en la
figura 3 se grafica el circuito de una interfase OBD a
puerto USB (vea la foto del comienzo para saber Comunicando al ELM327 con el Vehículo
cómo se presenta comercialmente este equipo). y la Computadora PC
En esta obra veremos cómo construir este prototi-
po, cómo conectarlo a la PC y cuál es el programa que El ELM327 espera la comunicación con una PC a
se debe instalar en la PC para que reconozca los códi- través de una conexión serie RS232. Aunque las com-
gos enviados por esta interfase. putadoras modernas usualmente no proveen una
conexión serie como ésta, hay varias maneras en que nicación con el vehículo, de modo que el estado de
se puede crear un “puerto serie virtual”. Los disposi- esa conexión aún se desconoce).
tivos más comunes son adaptadores USB a RS232,
El carácter “>” que se muestra en la segunda línea
pero hay muchos otros tales como tarjetas de PC, dis-
es el “prompt” del ELM327. Indica que el dispositivo
positivos ethernet o adaptadores Bluetooth a serie.
está en estado de reposo, listo para recibir caracteres
Nota importante: A continuación hablaremos de en el puerto RS232. Si no vio la cadena de identifica-
comandos AT, comandos OBD, programas de gestión ción, trate de reinicializar el CI nuevamente con el
y de otros utilitarios que permiten enviar datos desde comando ATZ (reinicializar). Simplemente tipee las
y hacia el vehículo a través del teclado de una com- letras A T y Z (los espacios son opcionales), luego
putadora. Si Ud. no sabe qué son los comandos AT, no oprima la tecla de retorno :
se preocupe, siga leyendo este capítulo como si fuese
>AT Z
“una novela”; ya que posteriormente abordaremos el
tema de los comandos AT y Ud. ya tendrá en claro la Esto hará que los LEDs destellen de nuevo y que
importancia de este lenguaje. se imprima la cadena de identificación. Si ve caracte-
res de apariencia extraña, entonces verifique su velo-
Sin importar cómo se conecte físicamente al
cidad en baud (probablemente la haya puesto mal).
ELM327, necesitará una forma de enviar y recibir
Los caracteres enviados de la computadora están des-
datos. El método más simple es usar uno de los
tinados para uso interno del ELM327, o para refor-
muchos programas para terminales para poder tipear
matear y transmitirlos al vehículo. El ELM327 puede
los caracteres directamente desde su teclado.
determinar rápidamente adónde deben dirigirse los
Para ello deberá hacer varios ajustes. Primero caracteres recibidos monitoreando el contenido del
asegúrese que su software está configurado para usar mensaje. Los comandos destinados para uso interno
el puerto COM adecuado y que ha elegido la veloci- comenzarán con los caracteres AT mientras que los
dad adecuada de transferencia de datos (que será comandos OBD para el vehículo sólo pueden conte-
9600 baud si la pata 6 está en 0V en el arranque, o ner los códigos ASCII de los dígitos hexadecimales (0
38400 baud si PP 0C no ha sido cambiado). Si selec- al 9 y de la A a la F).
ciona el puerto COM equivocado, no podrá enviar o
Independientemente de lo anterior, todos los men-
recibir datos.
sajes del ELM327 deben estar terminados con un
Si selecciona la velocidad equivocada, la informa- carácter de retorno de carro (“0D” en hexadecimal)
ción que envíe o reciba será confusa e ilegible por Ud. antes de actuar sobre ellos. La excepción es cuando se
o el ELM327. No olvide establecer su conexión para envía una cadena incompleta y no aparece ningún
datos de 8 bits, sin bits de paridad, y un bit de deten- retorno de carro. En este caso un temporizador inter-
ción, y ponerlo en el modo adecuado “line end” (ter- no automáticamente abortará el mensaje incompleto
minal de línea). Todas las respuestas del ELM327 después de 20 s y el ELM327 imprimirá un signo de
están terminadas con un solo carácter de retorno de interrogación para mostrar que la entrada no se enten-
carro y, opcionalmente, un carácter de alimentación dió y no fue implementada.
de línea (dependiendo de sus ajustes).
Los mensajes que no son entendidos por el
El ELM327, adecuadamente conectado y alimen- ELM327 (errores de sintaxis) siempre se señalizarán
tado, energizará 4 salidas de LEDs en secuencia y con un solo signo de interrogación, e incluyen men-
entonces enviará el mensaje : sajes incompletos, comandos AT incorrectos, o cade-
nas inválidas de dígitos hexadecimales, pero no indi-
ELM327 v1.3a
can si el mensaje fue entendido o no por el vehículo.
Además de identificar la versión de este CI, reci- Uno debe tener en cuenta que el CI es un intérprete de
bir esta cadena es una buena forma de confirmar que protocolo y no hace ningún intento de evaluar la vali-
las conexiones de la computadora y las configuracio- dez de los mensajes OBD. Sólo asegura que los dígi-
nes del software de la Terminal son correctas (sin tos hexadecimales fueron recibidos, combinados en
embargo, hasta ahora no ha ocurrido ninguna comu- bytes, luego transmitidos al puerto OBD, y descono-
ce si el mensaje enviado al vehículo era erróneo. dos por la PC, buscando mensajes que comienzan con
el carácter “A” seguido del carácter “T”. Si se
Mientras procesa comandos OBD, el ELM327
encuentran, los próximos caracteres se interpretarán
continuamente monitorea si hay una entrada activa
como una configuración interna o comando AT y se
RTS o un carácter recibido RS232. Cualquiera de
ejecutarán al recibir un carácter de retorno de carro.
ellos interrumpirá al CI, retornando rápidamente el
Si el comando es solo un cambio de ajuste, el CI res-
control al usuario, mientras posiblemente aborta cual-
ponderá con los caracteres “OK” para decir que fue
quier iniciación, etc, que estaba en progreso. Después
completado exitosamente.
de generar una señal para interrumpir el CI, el soft-
ware siempre debe esperar el prompt (“>” o 3E en Algunos de los comandos permiten pasar números
hexadecimal) o un nivel bajo en la salida Busy (ocu- como argumentos a fin de ajustar los valores internos.
pado) antes de comenzar a enviar el siguiente coman- Estos siempre serán valores hexadecimales que gene-
do. ralmente deben suministrarse de a pares. También hay
que tener en cuenta que para los tipos de comandos
Finalmente, el CI no es sensible a las mayúsculas
on/off, el segundo carácter es el número 1 o el 0, los
o minúsculas, de modo que ATZ o atz es lo mismo.
términos universales para encendido y apagado.
También ignora los espacios y todos los caracteres de
control a la entrada, de modo que se pueden insertar
en cualquier parte si eso mejora la legibilidad.
Otra característica es la habilidad para repetir
Algunos Circuitos de Interfases para OBD II
cualquier comando (AT u OBD) cuando se recibe un
solo carácter de retorno de carro. Si ha enviado un
comando (por ejemplo 01 0C para obtener rpm), no Si bien el objeto de este texto es dar los elementos
tiene que reenviar todo el comando a fin de reenviar- necesarios para que pueda armar una interfase con
lo al vehículo. Simplemente envíe un carácter de ELM327, a modo de ejemplo reproducimos los cir-
retorno de carro , y el CI le repetirá el comando. El cuitos de algunas interfases que se emplean en mar-
buffer de memoria sólo recuerda el último comando y cas específicas de vehículos.
por ahora el CI no puede almacenar más.
Figura 10
Figura 12
A los fines prácticos, en la figura 13 reproducimos
la placa de circuito impreso con la máscara de com-
ponentes y en las figuras 14 y 15 dos fotografías del
circuito armado (pero utilizando 3 optoacopladores
PS2501-1-N, por no haber conseguido el original).
Figura 18
Figura 19
Figura 21
Figura 20
Varios:
Puerto serie hembra placa 9
R11, R12 - Resistencia 4.7kohm pines 1 X1 (no es imprescindible), puerto serie hem -
R8, R9, R10 - Resistencia 10kohm bra placa 25 pines 1 X2 (no es imprescindible),
R13 - Resistencia 47kohm placa de Circuito impreso, gabinete para montaje,
R14 - Resistencia 100kohm estaño, cables, etc. ✪
Capítulo 3
Los Comandos AT
Utilizados en OBD II
Introducción Protocolos
Antiguamente, los fabricantes de automóviles Al comienzo cada fabricante usaba su propio sis-
usaban carburadores en sus vehículos, debido a sus tema de auto-diagnóstico a bordo (OBD). Cada fabri-
bajos costos y alta potencia en sus unidades pero, en cante estableció su protocolo de comunicación para el
la década de los ochenta obligados por legislaciones sistema de diagnóstico, lo que hacía que los técnicos
de control de emisiones más estrictas, se vieron obli- tengan que adquirir diferentes equipos que cubran los
gados a modificar el sistema de alimentación de com- diferentes protocolos y contar con los conectores para
bustible en el motor. dichas marcas.
Los sistemas de Inyección de combustible evolu- La EPA (Agencia De Protección Al Ambiente)
cionaron a partir de sistemas anteriores como encen- estableció una norma que dicta que todos los vehícu-
didos electrónicos con captadores magnéticos y car- los que fueron vendidos en USA a partir de 1996
buradores electrónicos controlados por módulos, debían contar con un conector trapezoidal de 16 pines
desarrollando sistemas que suministran la cantidad de para el sistema de autodiagnóstico conocido hoy
combustible que se requiere bajo cualquier situación, como OBD II, por lo cual, desde esa fecha, se nor-
valiéndose de sensores y actuadores que son contro- malizó la conexión a la computadora del auto aunque
lados por un módulo central (computadora) que se empleen diferentes protocolos para comunicar esta
monitorea dichos elementos para una operación ade- computadora con algún elemento de cómputo exte-
cuada del motor de combustión. rior.
Como los primeros sistemas no funcionaban De esta manera los técnicos con un solo cable
correctamente, los fabricantes añadieron sistemas de podrán acceder a una gama completa de vehículos
autodiagnóstico a los módulos de control, para así teniendo que, buscar así un equipo que aunque cuen-
poder detectar de manera mas rápida las posibles te con el conector siga cubriendo los diferentes pro-
fallas en los sistemas. Los primeros módulos de con- tocolos que usan cada fabricante.
trol (PCM) usaban un sistema de diagnóstico a bordo
En Europa muchos fabricantes se establecieron
(OBD) que encendía una luz "CHECK ENGINE" O
este conector como base en la mayoría de sus vehícu-
"SERVICE SOON" en el tablero, con un proceso gra-
los a partir del 2001 conocido como el EOBD.
dual que, dependiendo de los destellos, daba un códi-
go que indicaba el posible fallo en el sistema. Cualquier vehículo Americano, Europeo o Asiático
que no cuente con el conector de 16 pines para fácil
Los módulos actuales deben monitorear el control
identificación se le llamará vehículo OBD I.
de emisiones y proveer suficientes datos al técnico
para poder solucionar fallas de emisión o de funcio- Los protocolos más usados en OBD II son los
namiento en general del automóvil. siguientes:
Los comandos AT son instrucciones codificadas Cuando se quiere realizar una comunicación por
que conforman un lenguaje de comunicación entre el medio de comandos AT se debe hacer una petición y
hombre y un terminal tipo modem. En un principio, el el terminal remoto debe dar una respuesta. La sintaxis
juego de comandos AT fue desarrollado en 1977 por de una petición es, por ejemplo:
Dennis Hayes como un interfaz de comunicación con
un modem para así poder configurarlo y proporcio- AT + CFCO <CR>
narle instrucciones, tales como marcar un número de Donde: (AT+CFCO) es el comando y <CR>
teléfono. Más adelante, con el avance del baudio, fue- (carriage return) indica que finaliza el mensaje.
ron las compañías Microcomm y US Robotics las que
siguieron desarrollando y expandiendo el juego de Luego, el terminal remoto puede responder en
comandos hasta universalizarlo. forma correcta o incorrecta. La estructura de una res-
puesta correcta es la siguiente:
Los comandos AT se denominan así por la abre-
viatura de “attention”. <CR><LF>ON BOARD SYSTEM<CR><LF>
Aunque la finalidad principal de los comandos AT <CR><LF>OK<CR><LF>
es la comunicación con módems, otros servicios los
toman como lenguaje de comunicación. Por ejemplo, Donde: <CR><LF> es la secuencia de inicio, ON
la telefonía móvil GSM también ha adoptado como BOARD SYSTEM es la respuesta y <CR><LF>
estándar este lenguaje para poder comunicarse con representa la secuencia del final del mensaje; <CR>
sus terminales. es la sentencia de “retorno de carro” y <LF> indica
que avance una línea. Si la respuesta fuese incorrecta,
De esta forma, todos los teléfonos móviles GSM la estructura del mensaje sería:
poseen un juego de comandos AT específico que sirve
de interfaz para configurar y proporcionar instruccio- <CR><LF>ERROR<CR><LF>
nes a los terminales. Este juego de instrucciones Note que siempre están los caracteres de inicio y
puede encontrarse en la documentación técnica de los finalización del mensaje y el contenido principal, en
terminales GSM y permite acciones tales como reali- este caso, está indicando que hubo un error en la
zar llamadas de datos o de voz, leer y escribir en la comunicación.
CV dddd: Calibrate the Voltage to dd.dd volts. Calibre la tensión en dd.dd volts.
RV: Read the Voltage. Lea la tensión.
Comandos OBD
IB 10: Set the ISO Baud rate to 10400*. Fije la velocidad ISO en 10400 Baud.
IB 96: Set the ISO Baud rate to 9600. Fije la velocidad ISO en 9600 Baud.
IIA hh: Set the ISO (slow) Init Address to hh. Fije la habilitación ISO (baja) en hh.
KW: Display the Key Words. Muestre las palabras clave.
KW0, KW1: Key Word checking Off, or On*. Habilite o deshabilite el chequeo de las palabras clave.
SW hh.. Set Wakeup interval to hh x 20 msec. Establezca el intervalo de activación de hh en 20 milisegundos.
WM 1 - 6 bytes: Set the Wakeup Message. Fije los mensajes de activación.
CAF0, CAF1: Automatic Formatting Off, or On*. Habilite, deshabilite el formateo automático.
CF hhh: Set the ID Filter to hhh. Fije el filtro ID en hhh.
CF hhhhhhhh: Set the ID Filter to hhhhhhhh. Fije el filtro ID en hhhhhhhh.
CFC0, CFC1: Flow Controls Off, or On*. Active, desactive controles de flujo.
CM hhh: Set the ID Mask to hhh. Fije la máscara ID en hhh.
CM hhhhhhhh: Set the ID Mask to hhhhhhhh. Fije la máscara ID en hhhhhhhh.
CP hh: Set CAN Priority to hhh (29 bit). Fije prioridad CAN en hhh (29 BIT).
CRA hhh: Set CAN Receive Address to hhh. Fije la dirección de recepción CAN en hh.
CRA hhhhhhhh: Set the Rx Address to hhhhhhhh. Fije la dirección de recepción en hhhhhhhh.
CS: Show the CAN Status counts. Muestre el estado de cuenta CAN.
D0, D1: Display of the DLC Off*, or On. Active, desactive la muestra de DLC.
FC SM h: Flow Control, Set the Mode to h. Control de flujo, fíje el Modo en h.
FC SH hhh: FC, Set the Header to hhh. FC, fije el inicio en hhh.
FC SH hhhhhhhh: FC, Set the Header to hhhhhhhh. FC, fije el inicio en hhhhhhhh.
FC SD 1-5 bytes: FC, Set Data to ….. FC, fije el dato en …
RTR: Send an RTR message. Envíe un mensaje RTR.
V0, V1: Use of Variable DLC Off* or On. Habilite, deshabilite el uso de la variable DLC.
de las que están por debajo. Actualmente ArCan solo esquema de la figura 3. En este caso debemos tener en
implementa los niveles 1 y 2, es decir “Nivel Físico” cuenta que para usar OBD no es necesario implemen-
y “Nivel de Enlace de Datos” y es sobre esta última tar todas las capas OSI, ya que sólo usa la 1,2,3,7. El
capa en la que debemos basarnos para implementar el mcp2551 implementa la capa 1 “Nivel Físico”, el
OBD. mcp2515 la 2 “Nivel de Enlace de Datos” y por soft-
ware, generalmente se debe implementar la capa 3 o
Para entender qué es un modelo OSI y cómo fun-
“Nivel de Red” que es donde se define como se
ciona, recomiendo visitar los siguientes links:
estructuran los mensajes, y la capa 7 o “Nivel de
http://es.wikitel.info/wiki/OSI Aplicación” que recoge los distintos comandos dispo-
http://en.wikipedia.org/wiki/OSI_model nibles.
http://es.wikipedia.org/wiki/Modelo_OSI
La SAE, Sociedad de Ingenieros Automotrices,
OBD define una capa de aplicación para el diag- define normas con los mismos objetivos que las vis-
nóstico del automóvil, es decir, la capa 7 del modelo tas hasta ahora, pero en este caso para Estados
OSI. Todo lo relacionado con el diagnóstico del auto- Unidos.
móvil sobre CAN, lo podemos encontrar básicamen-
te en un grupo de normas ISO:
a) Diagnostic services (layer 7) está especificado
en la ISO 15765-3. Resumen de Comandos AT en el ELM327
b) Network layer services (layer 3) está especifi -
cado en la ISO 15765-2.
AL (Allow Long messages)
c) Controller area network (CAN) services (layer
Los protocolos OBD normales restringen el núme-
1 y 2) está especificado en la ISO 11898.
ro de bytes de datos de un mensaje, que el ELM 327
Para aclarar dudas que pudiera tener, consulte el normalmente hace (tanto para enviar como para reci-
bir), a 7. Si se selecciona AL, el CI permitirá largos
envíos (8 bytes de datos) y largas recepciones (ilimi-
tadas en número). El defecto es AL off (y NL selec-
cionado).
AT0, AT1 y AT2 (Adaptive Timing control) del buffer OBD. Este byte representa el número real
Cuando se reciben respuestas de un vehículo, el de bytes recibidos, entren o no en el buffer OBD.
ELM 327 tradicionalmente espera el tiempo estable- Esto puede ser útil cuando se ven largos flujos de
cido por la posición AT ST 44 para responder. Para datos (con AT AL), dado que el número representa
asegurar que el CI trabaje con una gran variedad de exactamente el número de bytes recibidos.
vehículos, se estableció el valor por defecto en un Sólo los 12 primeros bytes recibidos se almacenan
número conservador (lento). en el buffer.
Aunque este tiempo es ajustable, mucha gente no
tiene el equipo o la experiencia para determinar el BI (By pass the Initialization sequence)
valor óptimo. La característica de Temporización
Adaptable automáticamente establecerá el valor del Este comando debe usarse con precaución.
tiempo de exclusión en un nivel basado en los tiem- Permite que se active el protocolo OBD sin reque-
pos reales de respuesta del vehículo. A medida que rir ningún tipo de iniciación. El proceso de iniciación
cambian las condiciones tales como carga del bus, normalmente se usa para validar el protocolo, y sin él
etc., el algoritmo aprende de ellos y hace ajustes apro- los resultados pueden ser difíciles de predecir. No
piados. Note que siempre usa la posición AT ST hh debe usarse para el uso de rutina de OBD y fue pen-
como la posición máxima, y nunca elegirá una que sado para permitir la construcción de simuladores
sea más larga. ECU y demostradores de entrenamiento.
Hay 3 posiciones de temporización adaptable que
están disponibles para usar. Por defecto, se habilita la BRD 44 (try Baud Rate Divisor hh)
opción 1 (AT1) y es la posición recomendada.
Este comando se usa para cambiar el divisor de
ATO se usa para inhabilitar la temporización adap- velocidad en baud al valor hexadecimal provisto por
table (usualmente se usa cuando se experimenta), hh. La velocidad real (en kb ps) será 4000 dividido
mientras que AT2 es una versión más agresiva (el por este divisor. Por ejemplo, una posición de 115,2
efecto es más notable para conexiones muy lentas. kbps requeriría un divisor de 4000/115,2 o sea 35. En
Puede que no vea mucha diferencia con sistemas notación hexadecimal 35 se escribe 23, de modo que
OBD más rápidos). El protocolo J1939 no soporta la el comando real que hay que enviar sería:
Temporización Adaptable.
AT BRD 23
Las respuestas del J1939 usan tiempos fijos de
exclusión como lo establece la norma. Dado que el ELM 327 puede operar a velocidades
mucho más altas que las que pueden soportar algunas
interfaces, el comando BRD requiere que se prueben
BD (perform an OBD Buffer Dump) las velocidades pedidas, con regreso a la velocidad
anterior si hay problemas. En el uso, el comando se
Todos lo mensajes enviados y recibidos por el envía como pedido para cambiar la velocidad, y el CI
ELM 327 se almacenan temporáriamente en un con- responde con “OK”. Después de eso, un temporizador
junto de 12 posiciones de memoria llamado Buffer interno comienza a esperar para asegurar que la com-
OBD. A veces puede servirnos ver el contenido de putadora controladora tenga tiempo suficiente para
este buffer, quizás para ver por qué falló una inicia- cambiar su velocidad a la misma. El CI luego envía el
ción, para ver los bytes de encabezamiento del último mensaje de encendido a la nueva velocidad, y
mensaje, o aprender más de la estructura de los men- comienza a esperar mientras que la computadora con-
sajes OBD. Ud puede preguntar en cualquier troladora evalúa lo que se ha recibido. Si el mensaje
momento cuál es el contenido de este buffer para ser AT 1 fue recibido sin errores, la computadora contro-
“iniciado” (impreso) y cuando lo hace, el ELM 327 ladora envía un carácter de retorno de carro para pro-
envía un byte que representa la longitud del mensaje bar el circuito transmisor. Si el CI lo recibió correcta-
del buffer, seguido del contenido de las 12 posiciones mente, se retiene la nueva velocidad. Si la computa-
dora controladora ve errores, simplemente no envía También puede ver los caracteres “FC:” al
respuesta, el CI espera el tiempo establecido por AT comienzo de una línea (si está experimentando). Esto
BRT, y cuando no se detecta ninguna respuesta, representa un mensaje de Control de Flujo que se
regresa a la velocidad anterior. envía como parte de la señalización del mensaje mul-
tilínea. Los mensajes de Control de Flujo son genera-
Cualquier nueva velocidad que se establezca de
dos automáticamente por el ELM 327 en respuesta a
esta manera se retiene entre llamadas para establecer
un “Primer Cuadro” mientras éste activa la posición
defectos (ATD) y para arranques tibios (AT WS), pero
CFC (no importa si ha seleccionado los modos CAF1
no sobrevivirá una reinicialización por hardware (un
o CAF0).
encendido/apagado o una llamada a AT 2). Si tiene el
hábito de llamar AT 2 en su código, aconsejamos usar Otro tipo de mensaje -el RTR (o “Pedido de
AT WS. Transferencia Remota”)- será automáticamente ocul-
tado en el modo CAF1, dado que no contiene datos.
Cuando el Autoformateo está inactivo (CAF0), verá
BRT hh (set Baud Rate Timeout to hh) impreso los caracteres “RTA” cuando se ha recibido
Este comando permite variar el tiempo de exclu- un cuadro de pedido de transferencia remota.
sión usado en el protocolo de velocidad (o sea, AT Desactivado el Autoformateo CAN (CAF0), hará que
BRD). El retardo de tiempo está dado por hh x 5 ms, el CI imprima todos los bytes de datos recibidos. No
donde hh es un valor hexadecimal. El valor por defec- se le ocultará ningún byte y ninguno se le insertará.
to de esta posición es OF, dando 75ms. Note que un Similarmente, cuando se envía un pedido de datos
valor de 00 no da 0 ms, sino el tiempo máximo de 256 con el formateo desactivado, debe suministrar todos
x 5ms, o 1,28s. los bytes de datos requeridos exactamente como tie-
nen que enviarse el ELM 327 no ejecutará ningún for-
mateo salvo agregar algunos bytes traseros de relleno
CAF0 y CAF1 (CAN Auto Formatting off or on) para asegurar que se envíen los 8 bytes de datos
Estos comandos determinan si el ELM 327 le requeridos. Esto permite la operación en sistema que
ayuda en el formateo de los datos CAN que se envían no usan bytes PCI como lo hace IVO 15765-4.
y reciben. Con el CAF1 habilitado, el CI automática- Activando la presentación de encabezados (con AT
mente generará bytes para dar formato (PCI) al enviar h1) anulará algo del formateo CAF1 de los cuadros de
y los quitará al recibir. Esto significa que puede seguir datos recibidos, de modo que los bytes recibidos apa-
emitiendo pedidos OBD (01 00, etc) como de cos- recerán como en el modo CAF0 (o sea, como se reci-
tumbre, sin importar los bytes extra que requieren los ben). Sólo la impresión de los datos recibidos será
sistemas de diagnóstico CAN. También, con el for- afectada cuando se habiliten los modos CAF1 y H1;
mateo activo, cualquier bytes de datos extra (no usa- cuando se envíen datos, el byte PCI aún le será crea-
dos) que se reciben en el cuadro serán eliminados, y do y se agregarán bytes de relleno. El Autoformateo
se ignorará cualquier mensaje con bytes PCI inváli- activo (CAF1) es la posición por defecto del ELM
dos. Cuando se realiza el monitoreo, no obstante, los 327.
mensajes con bytes PCI inválidos se mostrarán con
un enunciado: “<DATA ERROR” para mostrar que
los datos no son válidos para el protocolo elegido. CF hhh (set the CAN ID Filter to hhh)
Ocasionalmente, las respuestas largas (multicua- El filtro CAN trabaja junto con la máscara CAN
dro) son devueltas por el vehículo. Para ayudar a ana- para determinar qué información tiene que ser acep-
lizarlas, el modo “Autoformateo” extraerá la longitud tada por el receptor. A medida que se recibe cada
total de datos y la imprimirá en una línea. A conti- mensaje, los bits entrantes CAN ID se comparan con
nuación irá cada segmento del mensaje, con el núme- los bits del filtro CAN (cuando el bit de máscara es un
ro de segmentos (un solo dígito hexadecimal) mostra- “1”). Si todos los bits relevantes son iguales, el men-
do al comienzo de la línea con 2 puntos (“:”) como saje será aceptado y procesado por el ELM 327, de lo
separador. contrario, será descartado.
Esta versión de 3 niveles del comando del filtro señaliza poniendo un bit en “0”. Esta variación de 3
CAN hace que sea un poco más fácil ajustar filtros dígitos del comando CM se usa para suministrar valo-
con sistemas ID CAN de 11 bits. Sólo se usan los 11 res de máscara en sistemas ID de 11 bits (el bit más
bits que están más a la derecha de los nibbles sumi- significativo siempre se ignora).
nistrados, y se ignora el bit más significativo. Los
Note que se usa una posición de almacenamiento
datos se almacenan en 4 bytes internamente y el
interno para las máscaras de 29 y 11 bits, de modo
comando agrega ceros delanteros para los otros bytes.
que una máscara de 11 bits podría asignarse con el
próximo comando (CM hh hh hh hh) en caso de que
quiera hacer el tipeo extra. Los valores se justifican
CF hh hh hh hh (set the CAN ID Filter to hhhhhhhh)
por derecha, de modo que necesitará suministrar 5
Esta instrucción muestra los 4 bytes (en realidad, ceros delanteros seguidos de 3 bytes de máscara.
29 bits) del filtro CAN para realizar ajustes de inme-
diato. Los 3 bits más significativos siempre serán
ignorados y se les puede dar cualquier valor. Note que CM hh hh hh hh (set the CAN ID Mask to hhhhhhhh)
este comando se puede usar para ingresar filtros ID de
Este comando se usa para asignar valores de más-
11 bits también, dado que se almacenan en las mis-
cara en los sistemas ID de 29 bits. Es lo mismo que lo
mas posiciones internamente (ingresar AT CF 00 00
dicho para la instrucción CM hhh, salvo la longitud.
0h hh es exactamente lo mismo que ingresar el
Los 3 bits más significativos que debe proveer en el
comando más corto AT CF hhh).
primer dígito serán ignorados.
debe establecer la máscara y el filtro independiente- potencia al principio. El último protocolo almacena-
mente. Para invertir los cambios hechos por el do se retirará de memoria y se convertirá en la posi-
comando CRA, simplemente envíe el comando Auto ción actual (posiblemente cerrando otros protocolos
Receive (AT AR). que están activos). Cualquier ajuste que el usuario
haya hecho para los encabezados, filtros o máscaras
serán restaurados a sus valores por defecto, y también
CRA hhhhhhhh (set the CAN Rx Addr to hhhhhhhh) el del temporizador.
Este comando es idéntico al anterior, salvo que se
usa para establecer los CAN IDs de 29 bits en vez de
D0 y D1 (display DLC off (0) or on (1))
11. El comando de Autorrecepción (AT AR) también
se usa para invertir los cambios hechos por este El CAN (ISO 15765-4) OBD requiere que todos
comando. los mensajes tengan 8 bytes de datos, de modo que
mostrar el número de bytes de datos (el DLC) nor-
malmente no es muy útil.
CS (show the CAN Satatus counts)
Cuando se experimenta con otros protocolos, no
El protocolo CAN requiere que se mantengan obstante, puede ser útil poder ver cuáles son las lon-
estadísticas con respecto a los números de errores gitudes de los datos. Los comandos D0 y D1 contro-
detectados en la transmisión y en la recepción (debi- lan la presentación del dígito DLC (los encabezados
do a problemas de hardware o de software). también deben estar activos a fin de ver este dígito).
Si llega a haber un número importante de errores, Cuando se muestra, el dígito DLC aparecerá entre los
el dispositivo saldrá de la línea para no afectar otos bytes del ID (encabezado) y los bytes de datos. La
datos del bus. El comando AT CS le permite ver la posición por defecto se determina mediante PP 29.
cuenta de errores del transmisor (Tx) y del receptor
(Rx) en hexadecimal. Si el transmisor está desconec- DM 1 (monitor for DM 1s)
tado (cuenta >FF), verá “OFF” en vez de una cuenta
específica. El protocolo SAEJ1939 publica códigos de fallas
periódicamente a medida que se detectan, usando
mensajes DIAGNOSTIC MODE 1 (DM1). Este
CV dddd (Calibrate the Voltage to dd dd volts) comando establece que el ELM 327 monitoree conti-
nuamente este tipo de mensaje, siguiendo protocolos
Con este comando se puede calibrar la lectura de
de transporte multi-segmento como se requiere. Una
tensión que muestra el ELM 327 ante un pedido AT
combinación de máscaras y filtros podría establecer-
RV. El argumento (“dddd”) siempre debe darse en 4
se para dar una salida similar, pero no permitirían
dígitos, sin punto decimal (supone que el lugar deci-
detectar mensajes multilínea. El comando DM1 agre-
mal está entre el 2º y el 3º dígito). Para usar esta
ga lógica extra, necesaria para los mensajes multilí-
característica, simplemente se debe usar un medidor
nea. Este comando sólo está disponible cuando se ha
exacto para leer la tensión de entrada real, luego debe
seleccionado un Protocolo CAN (A, B o C) para el
emplear el comando CV para cambiar el factor de la
formateo J1939. Devuelve error si se intenta en cual-
calibración interna. Por ejemplo, si el ELM 327
quier otra condición.
muestra la tensión en 12,2V mientras que Ud. Mide
11.99V, entonces envíe AT CV 1199 y el CI se recali-
brará en esa tensión (realmente leerá 12.0V debido al
DP (Describe the Corrent Protocol)
redondeo).
El LM327 puede determinar automáticamente el
protocolo OBD adecuado para usar en cada vehículo
D (set all to Defaults) al cual se conecte. Cuando el CI se conecta a un vehí-
Este comando se usa para establecer las opciones culo, devuelve sólo los datos pedidos y no informa el
en sus posiciones por defecto, como cuando se aplica protocolo encontrado. El comando DP se usa para
mostrar el protocolo corriente que se seleccionó para FC SH hhhhhhhh (Flow Control Set Header to …)
el LM 327 (aunque no esté conectado).
Este comando se usa para establecer los bits de
Si también se selecciona la opción automática, el encabezamiento (o “CAN ID”) para las respuestas de
protocolo mostrará la palabra “AUTO” delante de él, Control de Flujo en sistemas CAN ID de 29 bits.
seguido del tipo. Se muestran los nombres reales de Dado que 8 nibbles definen 32 bits, sólo se usarán los
protocolo, no los números usados por los comandos 29 bits más a la derecha de aquellos suministrados.
de establecimiento de protocolos. Los 3 bits más significativos siempre se eliminan.
Este comando sólo afecta el modo 1 del Control de
Flujo.
DPN (Describe the Protocol by Number)
Este comando es similar al comando DP, pero
FC SD (1-5 bytes) (Flow Control Set Data to..)
devuelve un número que representa el protocolo
corriente. Si también se habilita la función de bús- Los bytes de datos que se envían en un mensaje de
queda automática, el número será precedido por la Control de Flujo CAN pueden establecerse con este
letra “A”. El número es el mismo que se usa con el comando. La versión corriente del software permite
protocolo establecido y los comandos de protocolo de que se definan de 1 a 5 bytes de datos, y el resto de
prueba. los bytes de datos del mensaje se establecen en el byte
de relleno CAN por defecto. Los datos provistos con
este comando sólo se usan cuando se han habilitado
E0 y E1 (Echo off(0) or on (1) los modos 1 o 2 de Control de Flujo.
Estos comandos controlan si los caracteres recibi-
dos en el puesto RS232 son retransmitidos o no a la
FE (Forget Events)
computadora anfitrión. El eco del carácter se puede
usar para confirmar que los caracteres enviados al Hay ciertos eventos que pueden cambiar cómo
LM327 fueron recibidos correctamente. El comando responde el LM327 de ahí en más. Uno de ellos es
por defecto es E1 (o eco activo). que ocurra la condición ERR94, que bloquea la bús-
queda subsecuente a través de protocolos CAN si el
bit 5 del PP24 es “1”. Normalmente, un evento tal
FC JM h (Flow Control Set Mode to h)
como este afectará todas las búsquedas hasta el pró-
Este comando establece cómo responde el ELM ximo apagado y encendido, pero se puede “olvidar”
327 a mensajes de Primer Cuadro cando se habilitan usando software con el comando AT FE.
las respuestas del Control de Flujo automático. El Similarmente, un evento “LV RESET” evitará
dígito suministrado puede ser “0” (por defecto) para búsquedas a través de protocolos CAN si el bit 4 de
respuestas completamente automáticas, “1” para res- PP24 es “1”, y también se puede olvidar con el
puestas completamente definidas por el usuario, o “2” comando FE. FE es un comando nuevo con L1.3ª del
para bytes de datos definidos por el usuario en la res- CI.
puesta.
FC SH hhh (Flow Control Set Header to….) H0 y H1 (Headers off (o) or on (1))
Los bytes de encabezamiento (o más correctamen- Estos comandos controlan si los bytes adicionales
te “CAN ID”) usados para los mensajes de respuesta (encabezamiento) de información se muestran o no en
del Control de Flujo CAN se pueden establecer usan- las respuestas del vehículo. Normalmente no se
do este comando. Sólo los 11 bits más a la derecha de muestran por parte del ELM327, pero se pueden acti-
los suministrados son los que usarán, mientras que el var emitiendo un comando AT H1.
bit más significativo siempre se elimina. Este coman- La activación de los encabezadores muestra más
do sólo afecta el modo 1 de Control de Flujo. que tan solo los bytes de encabezamiento, Ud. verá el
mensaje completo como se transmite, incluyendo los siempre se envíe un byte IFR, sin importar lo que
dígitos de verificación y los bytes PCI, y posiblemen- indican los bytes de encabezamiento.
te el código de la longitud de datos CAN (DLC) si ha
El comando AT IFR1 restaura la respuesta para
sido habilitado con PP 29. La versión corriente de
suministrar el envío automático de IFRs, como lo
este CI no muestra el código CAN CRC ni los bytes
determina el bit “K” del byte de encabezamiento.
especiales J1850 IFR (que algunos protocolos usan
IFR1 es la posición por defecto del LM327.
para reconocer la recepción de un mensaje).
JE (enables the J1939 ELM data format) Palabras Clave) que se le envían durante las secuen-
cias de iniciación ISO 9141-2 e ISO 14230-4. si no se
La norma J1939 requiere que los pedidos PGN
encuentran esos bytes, se dice que la iniciación ha
sean enviados con el orden de los bytes invertido. Por
fallado. Esto puede ser porque Ud. Está tratando de
ejemplo, para enviar un pedido de la temperatura del
conectarse a un ECU no compatible con OBD, o qui-
motor (PGN OOFEEE), los bytes de datos realmente
zás con uno viejo.
se envían en el orden inverso, o sea EE FE OO, y el
ELM 327 normalmente esperaría recibir los datos en Si desea experimentar pero no quiere que el
ese orden para pasarlos al vehículo. Cuando se expe- ELM327 verifique los valores contenidos en las pala-
rimenta, esta constante necesidad de inversiones de bras clave, puede desactivar la verificación con:
los bytes puede ser muy confusa, de modo que hemos
>AT KWO
definido un formato ELM que invierte los bytes para
Ud. Cuando se habilita el formato J1939 ELM (JE), y después de lo cual el CI buscará los bytes de la
ha seleccionado el protocolo J1939, y Ud. Suministra Palabra Clave en la respuesta, pero no los valores rea-
los 3 bytes de datos al ELM 327, invertirá el orden les de los bytes. Esto puede permitir una conexión en
para Ud. Antes de enviarlos al ECU. Para pedir la una situación que de otra manera sería “imposible”.
temperatura del motor PGN, Ud. Enviaría OO FE EE El comportamiento normal puede volver con AT
(y no EE FE OO). El tipo “JE” de formateo automá- KW1, que es la posición por defecto. Se debe tener
tico se habilita por defecto. precaución con este comando, dado que se está salte-
ando las verificaciones que normalmente se ejecutan
sobre los bytes de la palabra clave. El CI envía un
JS (enables the J1939 SAE data format) reconocimiento al ECU por estos bytes, pero esto es
El comando AT JS inhabilita el reordenamiento sin considerar cuáles son realmente los bytes. Ud.
automático de los bytes que el comando JE ejecuta podría activar incorrectamente un ISO 9141 o un pro-
para Ud.. Si desea enviar bytes de datos al vehículo tocolo KWP 2000, así que sea cuidadoso.
J1939 sin manipulación del orden de los bytes, enton-
ces elija el formateo JS. Usando el ejemplo anterior
para la temperatura del motor (PGN OOFEEE) con el L0 y L1 (Linefeeds off (o) or on (1) )
formato de los datos puesto en JS, Ud. debe enviar los Esta opción controla el envío de caracteres de ali-
bytes al ELM327 como EE FE OO. El tipo JS de for- mentación de línea después de cada carácter de retor-
mateo de datos se anula por defecto, pero era el único no de carro. Para AT L1 se generarán alimentaciones
tipo de formateo de datos provisto por el ELM327 v de línea después de cada carácter de retorno de carro,
1.2. si cambia la versión del CI, tenga en cuenta esta y para AT L0, se desactivarán. Los usuarios general-
diferencia. mente desearán tener esta opción activada si se usa un
programa de terminal, pero desactivada si se usa una
interfase especial de computadora (dado que los
KW (display the key words) caracteres extra transmitidos sólo servirán para desa-
Cuando se inicializan los protocolos ISO 9141-2 e celerar las comunicaciones). La posición por defecto
ISO 14230 – 4, se transmiten 2 bytes especiales (pala- está determinada por la tensión en la pata 7 durante el
bras clave) al ELM 327 (los valores se usan interna- encendido (o reinicialización). Si el nivel es alto, por
mente para determinar si una variación particular de defecto las alimentaciones de línea estarán activadas;
protocolo puede ser soportada por el ELM 327). Si de lo contrario, estarán desactivados.
desea ver cuáles eran los valores de esos bytes, simple-
mente envíe el comando AT KW.
M0 y M1 (Memory off (o) or on (1))
El ELM327 tiene una memoria interna no volátil
KW0 y KW 1 (key Word checks off (0) or on (1))
que puede recordar el último protocolo usado, inclu-
El ELM 327 busca bytes específicos (llamados so después de apagada la potencia aplicada. Esto
puede ser conveniente si el CI se usa a menudo con nivel bajo interrumpirá al dispositivo también). Es
un protocolo particular, dado que será el primero que necesario esperar el prompt dado que el tiempo de
se intente cuando luego se aplique la potencia. Para respuesta varía según lo que estaba haciendo el CI
habilitar esta función de memoria, es necesario usar cuando fue interrumpido. Si por ejemplo está en el
un comando AT para seleccionar la opción M1 o medio de la impresión de una línea, primero comple-
haber elegido “memoria activada” como el modo por tará esa línea, luego vuelve al estado del comando,
defecto (conectando la pata 5 del CI en un nivel lógi- emitiendo un carácter “prompt”. Si simplemente
co alto). fuera esperar la entrada, volverá inmediatamente.
Note que el carácter que detiene el monitoreo siempre
Cuando se habilita la función de memoria, cada
será descartado, y no afectará a los comandos subsi-
vez que el CI encuentra un protocolo OBD válido, ese
guientes.
protocolo se memorizará (almacenará) y se converti-
rá en el nuevo por defecto. Si no se habilita la función Comenzando con V1.3 de este CI, todos los men-
de memoria, los protocolos encontrados durante una sajes se imprimirán a medida que se encuentren, aun-
sesión no se memorizarán, y el CI siempre arrancará que esté activado el autoformateo CAN (CA F1). La
usando el último protocolo guardado. Si el CI se usa versión anterior de este CI (V1.2) no mostraba algu-
en un entorno donde el protocolo cambia constante- nos mensajes CAN ilegales si estaba activado el auto-
mente, es probable que lo mejor sea desactivar la fun- formateo, pero ahora se muestran todos los mensajes
ción de memoria y emitir un comando AT SP 0 una recibidos, y si el formato de los datos no parece ser
vez. El comando SP 0 le dice al CI que comience en correcto, entonces se mostrará “<DATA ERROR” al
un modo de búsqueda de protocolo “automático”, que lado de los datos.
es el más útil en un entorno desconocido. Los CI5
Si se usa este comando con los protocolos CAN, y
vienen de fábrica con este modo. Sin embargo, si Ud.
si el filtro CAN y/o la máscara fueron establecidos
tiene un solo vehículo al cual se conecta regularmen-
previamente (con CF, CM o CRA), entonces el
te, lo que tendría más sentido sería almacenar el pro-
comando MA será afectado por la posición. Por ejem-
tocolo del vehículo como el protocolo por defecto.
plo, si la dirección de recepción había sido estableci-
Como se mencionó, la posición por defecto de la da previamente con CRA 4B0, entonces el comando
función de memoria está determinada por la tensión AT MA sólo podría “ver” los mensajes con un ID de
en la pata 5 en el arranque (o reinicialización del sis- 4B0. A menudo esto no es lo que se desea. Puede que
tema). Si se conecta a nivel alto (Vdd), entonces la primero quiera reinicializar las máscaras y los filtros
función de memoria se activa por defecto. Si la pata 5 (con AT AR).
se conecta a un nivel bajo, el almacenamiento de la
Todos los comandos de monitoreo (MA, MR y
memoria se desactivará por defecto.
MT) funcionan cerrando el protocolo corriente (inter-
namente se ejecuta un AT PC), luego se configura el
MA (Monito All messages) CI para un monitoreo silencioso de los datos (sin
mensajes “despertar”, IFRs o reconocimientos CAN
Este comando pone al CI en un modo de monito- enviados por el ELM327). Cuando se transmita el
reo del bus, en el cual continuamente monitorea (y siguiente comando OBD, el protocolo nuevamente se
muestra) todos los mensajes que ve en el bus OBD. inicializará y puede ver mensajes que dicen eso.
Es un monitoreo quieto, sin enviar IFR5 para siste- También se puede ver “SEARCHING…….”, según
mas J1850, reconocimientos para sistemas CAN o qué cambios se hicieron durante el monitoreo.
mensajes Despertar para los protocolos IS0 9141 e
IS0 14230. El monitoreo continuará hasta que se
detenga la actividad en la entrada RS232, o la pata
MP hhhh (Monitor for PGN hhhh)
RTS. Para detener el monitoreo, simplemente envíe
cualquier carácter al ELM327, luego espere que res- Los comandos AT, MA, MR y MT son bastante
ponda con un prompt (“>”), o una salida de nivel útiles cuando desea monitorear un byte específico en
bajo en la pata Buiy (poniendo la entrada RTS en un el encabezamiento de un mensaje OBD típico. Para el
protocolo SAE J1939, no obstante, a menudo es dese- mente establecidos (con CF, CM o CRA), entonces el
able monitorear los Números de Grupos de comando MR sobrescribirá los valores anteriores para
Parámetros multibyte (o PG Ns), que pueden aparecer estos bits solamente; los otros permanecerán sin cam-
en el encabezamiento o en los bytes de datos EP bio. Como ejemplo, si la dirección de recepción ha
comando MP es un comando único especial J1939 sido establecida con CRA 4B0, y luego envía MR 02,
que se usa para buscar respuestas a un pedido parti- el 02 reemplazará el 4, y la máscara/filtros CAN solo
cular PGN, y seguir cualquier aparición multiseg- permitirán IDs que sean iguales a 2B0. A menudo esto
mentada de ellas. Note que este comando MP no pro- no es lo que se desea; Ud. puede querer primero rei-
vee ningún medio para establecer los 2 primeros dígi- nicializar la máscaras y los filtros (con AT AR). Como
tos del PGN pedido, y siempre se supone que son 00. con el comando AT MA, este comando comienza eje-
Por ejemplo, el DM2 PGN tiene un valor asignado de cutando un Cierre Interno de Protocolo. Los pedidos
00 FE CB (ver SAE J1939-73). Para monitorear los OBD subsiguientes pueden mostrar los mensajes
mensajes DM2, Ud. emitiría AT MP FECB, eliminan- “SEARCHING “ o BUS INIT”, etc. Cuando se reac-
do 00 dado que el comando MP hhhh siempre supone tiva el protocolo.
que PGN está precedido por 2 ceros. Este comando
sólo está disponible cuando se ha seleccionado un
Protocolo CAN (A, B o C) para el formateo SAE MT hh (Monitor for Transmitter hh)
J1939. Devuelve error si se intenta bajo cualquier otra Este comando también es muy similar al comando
condición. También note que esta versión del AT MA, salvo que sólo mostrará mensajes que fueron
ELM327 sólo muestra respuestas que satisfacen los enviados por el transmisor con la dirección hexadeci-
criterios, no los pedidos que solicitan la información. mal dada por hh. Estos son mensajes que tienen ese
valor en el 3º byte de un encabezamiento OBD tradi-
cional de 3 bytes, o en bits 0 a 7 para CAN IDs. Como
MP hhhhhh (Monitor for PGN hhhhhh)
en los modos de monitoreo MA y MR, cualquier acti-
Este comando es similar al anterior, pero extiende vidad RS232 (monocaracter) anula el monitoreo.
el número de bytes previstos en uno, de modo que hay
Note que si se usa este comando con protocolos
un control completo de la definición de PGN (no hace
CAN, y si el filtro CAN y/o máscara fueron estable-
la suposición que el bit de Página de Datos es 0, como
cidos previamente (con CF, CM o CRA), entonces el
lo hace el comando anterior). Esto permite una
comando MT sobrescribirá los valores anteriores para
expansión futura en caso de que se definan PG Ns
estos bits solamente; los otros permanecerán sin cam-
adicionales con el bit de Página de Datos en 1. Note
bio. Como ejemplo si la dirección de recepción ha
que sólo el bit de Página de Datos es relevante en el
sido establecida con CRA 4B0, y luego Ud. envía
byte extra. Los bits Reservados y de Prioridad se
MT 20, el 20 reemplazará el B0, y la s máscaras/fil-
ignoran.
tros CAN solo permitirán IDs que sean iguales a 420.
A menudo esto no es lo que se desea; Ud. puede que-
MR hh (Monitor for Receiver hh) rer primero reinicializar las máscaras y los filtros (con
AT AR). Como con el comando AT MA, este coman-
Este comando es muy similar al comando AT MA do comienza ejecutando un Cierre Interno de
salvo que sólo mostrará mensajes que fueron envia- Protocolo. Los pedidos OBD subsiguientes pueden
dos a la dirección hexadecimal dada por hh. Estos son mostrar los mensajes “SEARCHING” o “BUS INIT”,
mensajes que tienen el valor hh en el segundo byte de etc. cuando se reactiva el protocolo.
un encabezamiento OBD tradicional de 3 bytes, en
los bits 8 a 15 de un CAN ID de 29 bits, o en bits 8 a
10 de un CAN ID de 11 bits. Cualquier carácter RS NL (Normal Length messages)
232 anula el monitoreo, como con el comando MA.
Activando el modo NL hace que todos los envíos
Note que si se usa este comando con protocolos y recepciones se limiten a los 7 bytes de datos stan-
CAN, y si el filtro CAN y/o máscara fueron previa- dard en longitud, similar a los otros ELM32x OBD.
Para permitir mensajes más largos, use el comando ma con su conexión. Esta característica sólo está dis-
CIs AL. Comenzando con V1.2, el ELM 327 no ponible comenzando con v1.2, y no está en las ver-
requiere un cambio a AL para permitir la recepción siones anteriores del CI.
mensajes de longitudes más largas para los protocolos
KWP (como lo determinan los valores de longitud del
encabezamiento). Ud. simplemente puede dejar el CI PP hh ON (Turn Programmable Parameter hh ON)
en la posición por defecto de NL, y se mostrarán Este comando habilita el número hh de parámetro
todos los bytes recibidos. programable. Una vez habilitado, cualquier valor
asignado usando el comando PP hh SV se usará en
lugar del valor por defecto que estaba de fábrica.
PC (Protocol Close)
(Todos los valores de parámetros programables se
Hay ocasiones en que es deseable desactivar un establecen en sus valores por defecto en la fábrica, de
protocolo. Quizás no esté usando la búsqueda auto- modo que la habilitación de un parámetro programa-
mática de protocolos y desea activar y desactivar ble antes de asignarle un valor no ocasionará proble-
manualmente los protocolos. Quizás desee detener el mas). El momento real en que el valor de este pará-
envío de mensajes de reposo (despertar) o alguna otra metro se hace efectivo está determinado por su tipo.
razón. El comando PC se usa en estos casos para for-
Note que “PP FF ON” es un comando especial que
zar el cierre del protocolo.
habilita todos los Parámetros Programables al mismo
tiempo.
PP hh OFF (Turn Prog. Parameter hh OFF)
PP xx SV yy (Prog. Param. xx : Set the Value to yy)
Este comando inhabilita el número hh de
Parámetro Programable. Cualquier valor asignado Este comando asigna un valor a un Parámetro
usando el comando PP hh SV no se usará más, y nue- Programable. No obstante, el sistema no podrá usar
vamente estará en efecto la posición por defecto que este nuevo valor hasta que el Parámetro Programable
viene de fábrica. El momento real en que el nuevo haya sido habilitado.
valor de este parámetro se hace efectivo está determi-
nado por su tipo. Note que “PP FF OFF” es un
comando especial que inhabilita todos los Parámetros PPS (Programmable Parameter Summary)
Programables como si hubiera ingresado PP OFF Este comando muestra el rango completo de
para cada uno. Parámetros Programables corrientes (incluso aquellos
Es posible alterar alguno de los Parámetros que todavía no han sido implementados). Cada uno se
Programables de modo que puede ser difícil, o inclu- muestra como un número PP seguido de dos puntos y
so imposible comunicarse con el ELM 327. Si ocurre el valor que se le asigna . A esto le sigue un solo dígi-
esto, hay un medio por hardware de reinicializar to (“N” o “F”) para mostrar que está habilitado (ON)
todos los Parámetros Programables de inmediato. o no (OFF), respectivamente.
Conecte un Jumper desde tierra hasta la pata 28, man-
teniéndolo allí mientras se le aplica la alimentación al
R0 y R1 (Responses off (0) or on (1))
ELM327. Manténgalo en posición hasta que vea des-
tellar el LED de Recepción RS 232 (lo que indica que Estos comandos controlan la recepción automática
todos los PPs han sido desactivados). En este punto, del CI y la presentación de los mensajes devueltos por
quite el Jumper para permitir que el CI ejecute un el vehículo. Si las respuestas han sido desactivadas, el
arranque normal. Note que ocurre una reinicializa- CI no esperará una respuesta del vehículo después de
ción de los PPs bastante rápidamente; si está mante- enviar un pedido, y regresará inmediatamente para
niendo el Jumper durante más de unos pocos segun- esperar el próximo comando RS232 (el ELM 327 no
dos y no se ve destellar la luz de recepción, quite el imprime nada para decir que el envío fue exitoso,
Jumper y trate de nuevo, pues puede haber un proble- pero verá un mensaje si no lo fue).
R0 puede ser útil para enviar comandos ciegamen- RTRs, tendrá que desactivar el formateo o activar los
te cuando se usa el CI para una aplicación de una red encabezadores. El ELM327 trata a un RTR como
que no sea OBD, o cuando se simula un ECU en un cualquier envío de mensaje, y esperará una respues-
entorno de aprendizaje. Normalmente no se reco- ta del vehículo (a menos que se haya elegido AT R0).
mienda que se use esta opción ya que el vehículo
puede tener dificultad si está esperando un byte de
reconocimiento y nunca lo recibe. RV (Read the input Voltage)
Una posición de R0 anulará cualquier número de Este comando inicia la lectura de la tensión pre-
respuestas que se proveen en un pedido OBD. La sente en la pata 2 y la conversión de la misma a ten-
posición por defecto es R1, o respuestas activadas. sión decimal. Por defecto, se supone que la entrada
está conectada a la tensión a medir a través de un divi-
sor resistivo de 47kΩ y 10kΩ (con el de 10kΩ
RA hh (Set the Receive Address to hh) conectado entre la pata 2 y Vss) y que la alimentación
del CI son 5V nominales. Esto permitirá la medición
Según la aplicación, los usuarios pueden desear
de tensiones de entrada hasta 28V, con una exactitud
fijar manualmente la dirección a la cual responderá el
no calibrada del 2%.
ELM 327. La emisión de este comando desactivará el
modo AR y forzará al CI a aceptar respuestas sólo
dirigidas a hh. Hay que tener precaución ya que según
S0 y S1 (Printing of Spaces off (0 ) or on (1))
adónde lo puso, Ud. puede terminar aceptando (reco-
nocimiento con un IFR) un mensaje que realmente Estos comandos controlan si se insertan o no
fue destinado a otro módulo. Para desactivar el filtra- caracteres de espacio en la respuesta del ECU. El
do RA, simplemente envíe AT AR. Este comando no ELM 327 normalmente informa las respuestas del
es muy eficaz para usar con los protocolos CAN, ya ECU como una serie de caracteres hexadecimales
que sólo monitorea una parte de los bits ID. El separados por caracteres de espacio (para mejorar la
comando CRA puede ser una mejor elección. Este legibilidad), pero los mensajes se pueden transferir
comando no tiene ningún efecto sobre las direcciones mucho más rápidamente si se elimina cada tercer byte
usadas por los protocolos J1939, dado que las rutinas (el espacio). Mientras que esto hace que el mensaje
J1939 las derivan a partir de los valores de encabeza- sea menos legible para los humanos, puede propor-
miento, tal como lo requiere la norma SAE. Este cionar grandes mejoras para el procesamiento de los
comando RA es exactamente el mismo que el SR y datos. Por defecto, los espacios están activados (S1),
son intercambiables. y los caracteres de espacio se insertan en cada res-
puesta.
Si se asignan valores de encabezamiento para los * Ajuste por defecto (default settings, user adjustable)
protocolos KWP (4 y 5), se debe tener cuidado cuan-
El 1º protocolo (automatic) es un modo conve-
do se fija el valor del 1º byte de encabezamiento
niente de decirle al CI que el protocolo del vehículo
(XX). El ELM327 siempre insertará el número de
se desconoce y que debe realizar una búsqueda. Hace
bytes de datos para Ud, pero cómo se hace depende
que el CI intente todos los protocolos si es necesario,
de los valores que Ud. asigne a este byte. Si el 2º dígi-
buscando uno que se pueda iniciar correctamente.
to de este 1º byte de encabezamiento es distinto de 0,
el CI supone que Ud desea hacer que se inserte el Cuando se encuentra un protocolo válido y se
valor de longitud en ese 1º byte cuando se envía. habilita la función de memoria, entonces se recordará
ese protocolo y se convertirá en la nueva posición por esté desactivada (excepto para SP A0 y SP 0A que en
defecto. Cuando se almacena así, aún estará habilita- la v1.3 ya no produce una escritura; si lo necesita use
do el modo de búsqueda automática y la próxima vez SP 00). Note que la “A” puede venir antes o después
que el CI falle en conectarse al protocolo almacena- de h, de modo que AT SP A3 también puede ingresar-
do, nuevamente buscará un protocolo válido dentro se como AT SP 3A .
de todos los protocolos. Note que algunos vehículos
responden a más de un protocolo; durante una bús-
queda, Ud. puede ver más de un tipo de respuesta. SR hh (Set the Receive address to hh)
El ELM327 a menudo usa el comando AT SP 0 Según la aplicación, los usuarios pueden querer
para reinicializar el protocolo de búsqueda antes de establecer manualmente la dirección a la cual respon-
comenzar (o recomenzar) una conexión. Esto funcio- derá el ELM327.
na bien, pero como con cualquier comando de fija- La emisión de este comando desactivará el modo
ción del protocolo, implica una escritura en la AR, y hará que el CI sólo acepte respuestas dirigidas
EEPROM, y un retardo innecesario (de casi 30ms) a hh. Hay que tener precaución con esta posición,
mientras ocurre la escritura. dado que según cómo la ponga, puede terminar acep-
Comenzando con la v1.3 del ELM 327, no se rea- tando (reconocimiento con un IFR) un mensaje que
lizará más una escritura en la EEPROM para un realmente fue destinado a otro módulo. Para desacti-
comando SP0 (o un SP A0 o SP 0A), pero no obstan- var el filtro SR, simplemente envíe AT AR.
te reinicializará el protocolo en 0. Si realmente quie- Este comando no es muy eficaz para usar con los
re cambiar lo que se almacena en la EEPROM inter- protocolos CAN, dado que sólo monitorea una parte
na, ahora debe usar el nuevo comando AT SP 00. de los bits ID y no es adecuando para la mayoría de
Si se selecciona otro protocolo con este comando las aplicaciones CAN; el comando CRA puede ser
(por ejemplo AT SP 3), ese protocolo será por defec- una mejor elección. También, este comando no tiene
to, y será el único protocolo usado por el ELM327. La ningún efecto en las direcciones usadas por los proto-
falla para iniciar una conexión en esta situación oca- colos J1939, ya que las rutinas J1939 las derivan de
sionará las respuestas familiares tales como “BUS los valores de encabezamiento tal como lo requiere la
INIT:…ERROR” y no se intentará ningún otro proto- norma SAE. El comando SR es exactamente el
colo. Esta es una posición útil si sabe que su vehícu- mismo que el RA y son intercambiables.
lo sólo requiere un protocolo.
tiempo de aproximadamente 200ms), pero este valor cializar, el CI entonces realiza una secuencia automá-
se puede ajustar cambiando PP 03. Note que un valor tica a través de todos los protocolos, intentando
de 00 no resulta en un tiempo de 0ms sino que restau- conectarse a alguno de ellos.
ra el temporizador al valor por defecto.
Capítulo 4
Programación e Interpretación
de Mensajes OBD
Introducción gramas específicos, como los que hemos descripto en los
capítulos 2 y 3, pero para experimentar también puede
hacerlo a partir de “símbolo de sistema” de su computa-
Si los bytes que envía el CI no comienzan con las dora, si tiene sistema operativo Windows, es decir, debe-
letras A y T, se supone que son comandos OBD para el rá dirigirse al menú INICIO (figura 2), seleccionar la
vehículo. Cada par de bytes ASCII se probarán para ase- opción EJECUTAR, aparecerá la imagen de la figura 3,
gurar que son dígitos hexadecimales válidos, y luego se luego ingrese la palabra CMD (figura 4) y aparecerá la
combinarán en bytes de datos para transmitir al vehículo. imagen de la figura 5. Asegúrese que se muestre el prompt
Antes de proceder a los comandos OBD, mostraremos un (“>”), luego simplemente ingrese “AT” seguido de RV y
ejemplo de cómo usar un comando AT. oprima enter:
>AT RV
No importa si usa letra mayúscula o minúscula o una
Lectura de la Tensión de Batería combinación de ambas, ni la inserción de espacios, dado
que el CI ignora todo esto. Una respuesta típica en este
Supondremos que Ud. ha construido un circuito simi- comando mostrará una lectura de tensión (figura 6),
seguida de otro prompt:
lar al escaner de la figura 1. Este circuito provee una
conexión para leer la tensión de batería, lo cual muchos 12.6V
pueden considerarlo muy útil.
>
Si se mira en la lista de comandos AT del capítulo
Obviamente, si no tiene nada conectado en la PC e inten-
anterior, verá que hay un comando que se lista como RV
ta realizar esta secuencia, aparecerá un mensaje de error
(leer la tensión de entrada).
como el mostrado en la figura 7. La exactitud de esta lectura
Este es el comando que tiene que usar. Por si no tiene depende de varios factores. De fábrica, es del 2%. Para
experiencia, los comandos AT puede utilizarlos con pro- muchos, esto es suficiente, pero para cierta gente que quiere
Figura 2
Figura 3
Figura 1
lecturas más exactas hemos provisto un comando especial Ud. quisiera que mida lo mismo que el multímetro.
“CALIBRATE VOLTAGE”. Para cambiar las constantes de Simplemente, calibre el ELM327 para esa tensión usando el
calibración interna, necesita conocer la tensión real de la comando CV:
batería con mayor exactitud que la que muestra el ELM327.
Muchos multímetros digitales de calidad pueden hacer esto, >AT CV 1247
pero usted debe verificar la exactitud antes de hacer un cam- OK
bio. Para este ejemplo, supongamos que Ud. ha conectado su Note que Ud. no debe poner el punto decimal en el
multímetro y encuentra que lee 12.47V. El CI mide 12.6V y valor dado que el CI sabe que debe estar entre el 2º y el 3º
Figura 4
Figura 5
>AT RV
12.5 V
>
El ELM 327 siempre redondea la medi-
ción de modo que los 12.47V realmente
Figura 6 aparecen como 12.5V (pero el segundo
lugar decimal se mantiene internamente
por exactitud y se usa en los cálculos).
No hay modo de volver al CI a la posi-
ción original de fábrica una vez que ha
enviado un comando CV, de modo que
tenga cuidado cuando experimente con
él.
El ELM327 se puede calibrar con cual-
quier tensión de referencia de que dis-
ponga, pero note que el comando CV
siempre espera recibir 4 caracteres que
representan la tensión a la entrada. Si
había usado una batería de 9V para la
referencia, y es realmente de 9,32V,
entonces debe agregar un cero delantero
a la tensión real cuando calibre el CI:
> AT CV 0932
OK
>
Figura 7
Los otros comandos AT se usan de la
dígito. En este momento, los valores de calibración inter- misma manera.
na han sido cambiados (o sea, escritos en la EEPROM) y
Simplemente tipee A y T , entonces continúe con el
el CI ahora sabe que la tensión a la entrada realmente es
comando que quiere enviar, luego cualquier argumento
12.47V.
que requiera ese comando, y oprima ENTER. Siempre
Para verificar que los cambios han ocurrido, simple- puede insertar espacios donde desee si mejora la legibili-
mente lea la tensión de nuevo: dad, dado que son ignorados por el ELM327.
La mayoría de los comandos OBD son sólo de uno o Luego se agregarían los bytes de encabezamiento y un
dos bytes de longitud, pero algunos pueden ser más largos. byte de verificación de suma, y típicamente se enviaría un
El CI limitará el número de bytes que se pueden enviar al total 5 bytes al vehículo. Note que el carácter de retorno de
máximo permitido por las normas (7 bytes o 14 dígitos carro es sólo una señal para ELM327, y no se transmite al
hexadecimales). Los intentos por enviar más bytes ocasio- vehículo.
narán un error de sintaxis; entonces se ignora todo el Después de enviar el comando, el CI escucha si hay
comando y se imprime un solo signo de interrogación. respuestas en el bus OBD, buscando las que se dirigen a
Se usan dígitos hexadecimales para todos los inter- él. Si hay una coincidencia en la dirección del mensaje los
cambios de datos con el ELM327 porque es el formato de bytes recibidos se enviarán al puerto RS232 del usuario,
datos más frecuentemente usado en las normas OBD. Con mientras que los que no coincidan serán ignorados (pero a
un poco de práctica, no es difícil tratar con números hexa- menudo estarán disponibles para ver con el comando AT
decimales, pero algunas personas pueden querer usar una BD).
tabla como la mostrada a continuación, o tener cerca una El ELM327 continuará esperando mensajes dirigidos a
calculadora: él hasta que no se encuentre ninguno en el tiempo estable-
cido por el comando AT ST.
número máximo de respuestas a obtener. Como ejemplo, ción se permitió enviar el próximo pedido sin demora.
si sabe que hay sólo una respuesta que viene acerca del Además, un pedido sólo se puede enviar sin demora si se
pedido de temperatura del motor, ahora puede enviar: determina que se han recibido todas las respuestas. Si Ud.
está conectado a un vehículo más viejo, Ud. debe usar el
> 01 05 1
viejo método de hacer pedidos.
Y el CI volverá inmediatamente después de obtener
sólo una respuesta. Aún activa el temporizador interno
después de enviar el pedido, pero sólo espera una res- Nota: Esperamos que esto haya mostrado cómo se
puesta; no activa el temporizador y espera una 2º res- hacen los pedidos típicos con el ELM 327. No ha intenta -
puesta, lo cual puede ahorrar un tiempo considerable (el do ser una guía definitiva sobre los modos y los PIDs.
tiempo por defecto sin temporización adaptable es de Esta información se puede obtener del fabricante de su
200ms). vehículo, la SAE (www.sae.org/), de ISO (www.iso.org/) y
de varias otras fuentes en la red.
El número de respuestas que Ud. puede dar puede ser
cualquier dígito hexadecimal de valor 0 a F. Note que AT
R0 anulará cualquier número provisto con el pedido OBD.
Si trata de obtener más respuestas que las que el ECU
Interpretación de los Códigos de Fallas
puede dar, el CI hará como antes y no habrá ningún daño.
Un ejemplo final es el pedido del número de serie del
vehículo. El modo del número de serie es 09 mientras que Probablemente el uso más común que tendrá el ELM
el PID es 02. Si Ud. sabe que la respuesta tiene que ser de 327 es la obtención de códigos de diagnóstico de fallas
5 líneas, se puede ahorrar tiempo enviando. (DTCs). Mínimamente, esto requiere que se haga un pedi-
do de modo 03, pero primero uno debe determinar cuán-
> 09 02 5
tos códigos de fallas están actualmente almacenados. Esto
Antes de usar este nuevo método de recuperación de se hace con el pedido PID de modo 01:
datos, asegúrese de aprender cuántas respuestas son nor- > 01 01
malmente enviadas por su vehículo en respuesta a un
pedido. Si Ud. pide demasiado pocas, ignorando las otras, Al cual una respuesta típica podría ser:
Ud. puede ocasionar la congestión del bus de datos del 41 01 81 07 65 04
vehículo. Por ejemplo, el protocolo J1850 PWM requiere
El 41 01 significa una respuesta al pedido, y el próxi-
que cada respuesta se reconozca con lo que se llama “res-
mo byte de datos (81) es el número de códigos de fallas.
puesta en cuadro” (IFR). Si esta IFR no es recibida por el
Claramente no habría 81 (hex) o 129 (decimal) códigos de
vehículo, tratará de re-enviar los datos muchas veces,
fallas presentes si el vehículo está funcionando. En reali-
esperando eventualmente recibir un IFR. Si Ud. pide una
dad, este byte tiene una doble función: el bit más signifi-
sola respuesta, pero el vehículo está tratando de enviar 5,
cativo se usa para indicar que la lámpara indicadora de
Ud. puede ocasionar problemas. Claramente se necesita
mal funcionamiento (MIL, o Lámpara Verificadora del
que haya una forma de registrar cuántas respuestas se
Motor) ha sido encendida por uno de los códigos del
esperan y luego hacer los pedidos adecuados en base a
módulo (si hay más de uno), mientras que los otros 7 bits
esta información.
de este byte dan el número real de códigos de fallas alma-
Aquí debemos presentar otra advertencia para ser cau- cenados. Para calcular el número de códigos almacenados
tos acerca de cómo usar este método de interrogar al vehí- cuando MIL está encendida, simplemente reste 128 (a 80
culo. Un beneficio directo de volver más rápidamente des- en hex) del número. La respuesta anterior entonces indica
pués de hacer un pedido por parte del ELM327 es que el que hay un código almacenado y era el que encendió la
próximo pedido puede comenzar más rápidamente. Lámpara Verificadora del Motor. Los restantes bytes de la
Tenga en cuenta que las versiones anteriores de la respuesta proveen información sobre los tipos de pruebas
norma SAE J1979 prohibían enviar respuestas más fre- soportadas por ese módulo particular.
cuentes que cada 100ms; sin embargo, sólo con la actua- En este ejemplo, había una sola línea para la respues-
lización APR 2002 fue que con herramientas de explora- ta, pero si había códigos almacenados en otros módulos,
cada uno podría haber provisto una línea de respuesta. deben considerar las consecuencias antes de enviarlo dado
que reinicializará más que la MIL. Al emitir un modo 04
Para determinar qué módulo está informando sobre el
ocurrirá lo siguiente:
código de falla, uno tendría que activar los encabeza-
mientos (AT H1 ) y luego mirar al 3ª byte del encabeza- Reinicialización del número de códigos de fallas.
miento de 3 bytes de la dirección del módulo que envió la Borrado de cualquier código de diagnóstico de fallas.
información. Borrado de cualquier dato de cuadro congelado alma -
cenado.
Habiendo determinado el número de códigos almace-
Borrado del DTC que inició el cuadro congelado.
nados, el próximo paso es pedir los códigos reales de
Borrado de todos los datos de prueba de sensores de
fallas con un pedido de modo 03 (no se necesita ningún
oxígeno.
PID):
Borrado de la información de los modos 06 y 07.
> 03
La puesta a cero de todos estos datos no es peculiar del
Una respuesta a esto podría ser: ELM327, ocurre cada vez que se usa cualquier herra-
43 01 33 00 00 00 00 mienta de exploración para reinicializar los códigos. El
mayor problema con la pérdida de estos datos es que su
El 43 de la respuesta anterior simplemente indica que
vehículo puede funcionar pobremente durante un corto
esta es una respuesta a un pedido en modo 03. Los otros 6
tiempo mientras realiza una recalibración.
bytes de la respuesta tienen que leerse de a pares para
mostrar los códigos de fallas (lo anterior se interpretaría Para evitar el borrado de la información almacenada
como 0133, 000 y 0000). inadvertidamente, la SAE especifica que las herramientas
de exploración deben verificar que se intenta un modo 04
Note que la respuesta ha sido rellenada con 00´s como
(¿está seguro?) antes de enviarla al vehículo, dado que
lo requiere la norma SAE para ese modo; los 0000`s no
toda la información del código de fallas se pierde inme-
representan códigos reales de fallas.
diatamente cuando se envía el modo. Recuerde que el
Como era el caso cuando se pedía el número de códi- ELM327 no monitorea el contenido de los mensajes, de
gos almacenados, los bits más significativos de cada códi- modo que no sabrá pedir confirmación del pedido de
go de fallas también contienen información adicional. Lo modo. Esto tendría que ser el trabajo de una interfaz de
más fácil es usar la tabla 1 para interpretar los bits extra software. Como se dijo, para borrar realmente los códigos
del 1º dígito: de diagnóstico de falla, sólo se necesita emitir un coman-
do de modo 04. Una respuesta de 44 por parte del vehícu-
Tomando como ejemplo el código de fallas (0133), el
lo indica que se ha llevado a cabo un pedido de modo, se
1º dígito (0) entonces se reemplazaría por P0, y el 0133
ha borrado la información y se ha apagado la MIL.
sería P0133 (que es el código de una “respuesta lenta del
Algunos vehículos pueden requerir que ocurra una condi-
circuito sensor de oxígeno). Note que el protocolo ISO
ción especial (por ejemplo, la ignición está encendida
15765 - 4 (CAN) es muy similar, pero agrega un byte
pero el motor no funciona) antes de que respondan a un
extra de datos (en la 2º posición), mostrando cuántos
comando 04.
ítems de datos (DTCs) han de seguir. Para dar unos pocos
ejemplos adicionales, si el código recibido era D016, Esto es todo lo que hay que saber sobre puesta a cero
reemplazaría el D por U1, y el código resultante de fallas de los códigos de fallas. Nuevamente, ¡no envíe acciden -
sería U1016. Similarmente, 1131 recibido sería P1131. talmente el código 04!
Reinicialización de los Códigos de Falla Guía Rápida para Leer Códigos de Error
El ELM 327 es bastante capaz de reinicializar los Si no utiliza su ELM327 durante algún tiempo, esta
códigos de diagnóstico de fallas, dado que esto sólo hoja de datos completa puede parecer pobre cuando, por
requiere emitir un comando de modo 04. Siempre se ejemplo, la "luz del chequeo de motor" se enciende, y
Tabla 1 - Guía para interpretar los bits del primer dígito del mensaje
Si el 1º dígito Reemplazarlo
hexadecimal con estos dos
es éste caracteres
0 P0 Códigos del tren de Potencia definidos por SAE
1 P1 “ “ “ “ “ definidos por el fabricante
2 P2 “ “ “ “ “ definidos por SAE
3 P3 “ “ “ “ “ definidos conjuntamente
4 C0 Códigos de Chassis definidos por SAE
5 C1 “ “ “ definidos por el fabricante
6 C2 “ “ “ definidos por el fabricante
7 C3 “ “ “ reservados para el futuro
8 B0 Códigos del Cuerpo definidos por SAE
9 B1 “ “ “ definidos por el fabricante
A B2 “ “ “ definidos por el fabricante
B B3 “ “ “ reservados para el futuro
C U0 Códigos de red definidos por SAE
D U1 “ “ “ definidos por el fabricante
E U2 “ “ “ definidos por el fabricante
F U3 “ “ “ reservados para el futuro
usted sólo quiere saber por qué. Ofrecemos esta sección pedido necesite ser enviado. Si ocurre la incialización del
como una guía rápida de los conceptos básicos que usted bus durante una búsqueda automática, Ud. no verá ningún
necesita. Para empezar, conecta el circuito ELM327 a su informe de estado, pero si tiene desactivada la opción
PC o PDA y comuníquese con él mediante un programa Auto (y están activados los protocolos 3, 4 o 5), entonces
de terminal, como HyperTerminal, ZTerm, ptelnet, o un verá un mensaje similar a este:
programa similar. Normalmente se configura con el valor
BUS INIT: . . .
9600 o 38400 baudios, con 8 bits de datos, y sin bit pari-
dad. El gráfico de la figura 8 muestra este procedimiento. Los 3 puntos aparecen sólo cuando se lleva a cabo un
proceso de inicio lenta. Una inicialización rápida no
muestra los puntos.
A continuación sigue la expresión “OK” para decir que
Inicio del Bus fue exitoso, o de lo contrario, un mensaje de error para
indicar que había un problema. (El error más común que
Las normas ISO 9141-2 e ISO 14230-4 (KWP 2000) se encuentra es olvidar de encender la llave del vehículo
requieren que el bus OBD del vehículo se inicialice o “ini- antes de hablar al vehículo). Una vez que se ha iniciado el
cie” antes de que pueda ocurrir cualquier comunicación. bus, las comunicaciones deben ocurrir regularmente (típi-
La norma ISO 9141 sólo permite un proceso de iniciación camente al menos una vez cada 5 segundos), pues de lo
(2 a 3 segundos), mientras que la ISO 14230 permite un contrario el bus pasará al modo “dormir” de bajo consu-
método lento y una alternativa más rápida. El ELM327 mo de potencia.
realizará esta inicialización del bus pero no hasta que su Si no envía pedidos de datos frecuentemente, el ELM
generará pedidos para asegurar que el bus permanezca real de los mensajes, puede realizar un Buffer Dump
“despierto”. Nunca verá las respuestas a estos pedidos, (Vaciado del Buffer) para ver los bytes. Note que el ELM
pero puede ver al LED de transmisión destellar periódica- 327 nunca obtiene o imprime una respuesta a cualquiera
mente cuando éstas se envían. Por defecto, el CI asegura de los mensajes despertar.
que se envíen mensajes “despertar” cada 3 segundos, pero
Las normas dicen que si no hay ninguna actividad al
esto es ajustable con el comando AT SW. El contenido del
menos cada 5 segundos, la conexión de datos puede
mensaje despertar también es programable por el usuario
cerrarse. Para segurar que esto no suceda, y para dar algún
con el comando AT WM, si desea cambiarlo. Los usuarios
margen, el CI enviará un mensaje despertar después de 3
generalmente no tienen que cambiarlo, ya que las posicio-
segundos de inactividad. Este intervalo de tiempo es ple-
nes por defecto funcionan bien con casi todos los siste-
namente programable si prefiere una posición diferente
mas.
(ver el comando AT SW).
El ELM 327 permite a los usuarios cambiar el mensa-
je real de despertar que se envía.
Mensajes “Despertar” Para hacerlo, simplemente envíe al CI un comando de
Mensaje Despertar, diciéndole que desea que el mensaje
sea cambiado. Por ejemplo, si Ud. quiere enviar los bytes
Después que se ha establecido una conexión ISO 9141
de datos 44 55 con los bytes de encabezamiento fijados en
o ISO 14230, tiene que haber transferencias periódicas de
11 22 33, simplemente envíe el comando:
datos a fin de mantener esa conexión y evitar que se “vaya
a dormir”. Si se envían pedidos y respuestas normales, eso > AT WM 11 22 33 44 55
es suficiente usualmen- Y de ahí en más se mostrará cada mensaje Despertar
te, pero el ELM327 que el CI envíe. No debe proveer un byte de verificación
ocasionalmente tiene de suma dado que se agregará automáticamente.
que crear sus propios
mensajes para evitar la Puede cambiarlos tantas veces como quiera con la
exclusión de la cone- única restricción que cada vez que lo haga, debe suminis-
xión. A esos mensajes trar el mensaje completo, es decir, los bytes de encabeza-
periódicos les llamamos miento y los bytes de datos (la versión corriente del ELM
“Mensajes Despertar” 327 sólo permite mensajes de 1 a 6 bytes de longitud).
dado que mantienen
viva a la conexión y
evitan que el circuito
vuelva al modo dormir. La Elección del Protocolo
El CI automáticamente
crea y los envía si pare-
ce que no hay ninguna El ELM 327 soporta varios protocolos OBD diferen-
otra actividad; no hay tes, los cuales se detallan en la tabla 2. Como usuario,
nada que Ud. necesite nunca tiene que elegir cuál debe usar dado que los ajustes
hacer para que eso ocu- de fábrica hacen que se realice una búsqueda automática
rra. Para verlos, una vez pero mientras está experimentando, Ud. puede querer
que se hace una cone- especificar qué protocolo hay que usar.
xión, simplemente
Por ejemplo, si sabe que su vehículo usa el protocolo
monitoree el LED OBD
SAE J1850 VPW, Ud. puede querer que el ELM327 use
de transmisión y verá
sólo ese protocolo y ningún otro.
los destellos periódicos
creados cuando el CI Si eso es lo que quiere, simplemente determine el
envía uno. Si es curioso número de protocolo, luego use el comando AT “Set
Figura 8 acerca del contenido Protocol”:
frustrantes. Para usar sus propios valores (y datos) de el envío. Además, la importancia de los mensajes adquie-
encabezado cuando intenta conectar a un ECU, no le diga re relevancia también. Por ejemplo, la información sobre
al ELM 327 que use el protocolo 0. En cambio, dígale que la posición del cigüeñal en verdad es de mucha más
use sólo su protocolo blanco (o sea, AT SP n), o de lo con- importancia para un motor en funcionamiento que un
trario, dígale que use el suyo con búsquedas automáticas pedido del número de códigos de fallas almacenado, o el
permitidas en caso de falla (o sea, AT SP An). Luego envíe número de serie del vehículo. En consecuencia, para dar
su pedido, con los encabezados asignados como se requie- importancia según el mensaje, se les asigna una prioridad.
re. El CI intentará conectarse usando sus encabezados y
La información que describe la prioridad, el receptor y
sus datos, y sólo si falla (y Ud. ha elegido el protocolo con
el transmisor usualmente son necesarios para el receptor
el método AT SP An) buscará usando los valores OBD por
incluso antes de que conozca el tipo de pedido que con-
defecto. En general, el 99% de todos los usuarios encuen-
tiene el mensaje. Para asegurar que esta información se
tra que funciona muy bien la habilitación de la memoria
obtiene primero, los sistemas OBD la transmiten al
(poniendo la pata 5 en 5V) y la elección de la opción
comienzo (o encabezamiento) del mensaje.
“Auto” la primera vez (la forma más fácil es decir AT SP
0). Después de la búsqueda inicial, el protocolo usado por Dado que estos bytes están en el encabezado, se los
su vehículo se convierte en el nuevo por defecto (de modo conoce como bytes de encabezamiento. La figura 9 mues-
que se prueba primero cada vez), y si se usa la interfaz en tra la estructura típica del mensaje OBD que se usa en las
otro vehículo, sólo hay un demora menor mientras realiza normas JAE J1850, ISO 9141-2 e ISO 14230-4. Como se
una búsqueda automática. muestra, usa 3 bytes de encabezado para proporcionar
detalles acerca de la prioridad, el receptor y el transmisor.
Note que muchos textos llaman al receptor la “Dirección
Blanco”, y al transmisor la “Direccion Fuente”. Otra pre-
Formato de un Mensaje OBD ocupación cuando se envía cualquier mensaje es que pue-
den ocurrir errores en la transmisión y los datos pueden
ser interpretados falsamente. Para detectar errores, los dis-
Hasta ahora hemos tratado solamente los contenidos
(porción de datos) de un mensaje OBD, e hicimos una tintos protocolos suministran alguna forma de verifica-
ción de los datos recibidos. Esto puede ser tan simple
mención al pasar de otras partes tales como encabezados
y sumas verificadoras, que todos los mensajes usan en como un cálculo de suma de todos los valores de los bytes
y se envía al final de un mensaje. Si el receptor también
alguna medida.
calcula una suma a medida que se reciben los bytes,
Los sistemas OBD se diseñan para que sean muy fle- entonces se pueden comparar los dos valores y si no coin-
xibles, proporcionando un medio para que muchos dispo- ciden, el receptor sabrá que ha ocurrido un error. Dado
sitivos se comuniquen entre sí. A fin de que se envíen los que las simples sumas no podrían detectar múltiples erro-
mensajes entre dispositivos, es necesario agregar informa- res, a menudo se usa una suma más confiable (y más com-
ción que describa el tipo de información que se envía, el plicada) llamada Verificación de Redundancia Cíclica
dispositivo al cual se envía, y quizás qué dispositivo hace (“CRC”).
Figura 9
Figura 10
Todos los protocolos especifican cómo se tienen que a un solo pedido funcional). Además, cada procesador (o
detectar los errores y las diversas formas de tratarlos si ECU) también responderá a lo que se conoce como su
ocurren. Los bytes de datos OBD por eso se encapsulan dirección física. Es la dirección física que identifica uní-
dentro de un mensaje, con los bytes de encabezamiento al vocamente a cada módulo de un vehículo, y le permite
comienzo, y la suma de verificación al final. Los protoco- dirigir pedidos más específicos a un solo módulo en parti-
los J1850, ISO 9141-2, e ISO 14230-4 todos usan esen- cular.
cialmente la misma estructura, con 3 bytes de encabezado,
Para recuperar la información más allá de los requeri-
un máximo de 7 bytes de datos y un byte de suma verifi-
mientos, será necesario dirigir nuestros pedidos a una
cadora. El protocolo ISO 15765-4 (CAN) usa una estruc-
dirección funcional diferente o a una dirección física del
tura muy similar (vea la figura 10) con la principal dife-
ECU.
rencia solamente relacionada con la estructura del encabe-
zamiento. Los bytes de encabezamiento CAN no se lla- Esto se hace cambiando los bytes de datos del encabe-
man así sino “bits ID”. La norma CAN inicial definía los zamiento del mensaje. Como ejemplo de direccionamien-
bits ID como 11 en número, mientras que la norma CAN to funcional, supongamos que quiere pedir que el proce-
más reciente ahora permite 11 o 29. sador responsable del refrigerante del motor suministre la
temperatura corriente del fluido. Ud. no conoce su direc-
El ELM327 normalmente no muestra ninguno de estos
ción, de modo que consulta a la norma SAE J 2178 y
bytes extras a menos que active esa característica con el
determina que la dirección funcional del refrigerante del
comando Headers On (AT H1). Emitiéndolo, Ud. puede
motor es 48. La norma SAE J 2178 también le dice que
ver los bytes de encabezamiento y el byte de suma de veri-
para su vehículo J 1850 VPW es adecuado un byte de
ficación (para los protocolos J1850, ISO 9141 e ISO
prioridad de A8. Finalmente, sabiendo que una herra-
14230). Para los protocolos CAN. Ud. verá los bits ID, y
mienta de exploración es normalmente la dirección F1,
otros ítems que están normalmente ocultos tales como el
Ud. tiene suficiente información para especificar los 3
byte PCI para la ISO 15765, o los códigos de longitud de
bytes de encabezamiento (A8 48 y F1). Para decirle al
datos (si se habilitan con PP 29 o AT D1).
ELM327 que use estos nuevos bytes de encabezamiento,
Note que el CI no muestra la información de la suma lo único que necesita es el comando Set Header:
verificadora para los sistemas CAN, o los bytes IFR para
>AT SH A8 48 F1
los sistemas J 1850. No es necesario que alguna vez tenga
que fijar estos bytes de encabezamiento, o ejecutar un cál- OK
culo de suma verificadora, dado que el CI siempre lo hará Los 3 bytes de encabezamiento asignados de esta
para Ud. Los bytes de encabezamiento son ajustables, no manera permanecerán en efecto hasta que se cambien
obstante, en caso de que desee experimentar usando téc- mediante el siguiente comando AT SH, una reinicializa-
nicas avanzadas tales como direccionamiento físico. La ción, o un AT D.
sección siguiente trata sobre cómo hacerlo.
Habiendo establecido los bytes de encabezamiento,
ahora sólo necesita enviar el ID secundario de la tempera-
tura del fluido (10) ante el prompt. Si se desactiva la pre-
Establecimiento del Encabezado sentación de los encabezamientos, la conversación podría
ser así:
Capítulo 5
distinguir entre anomalías ocasionales y anomalías perma- Puede ocurrir un resultado inesperado si hace que se
nentes y pueden localizar fallos de estación. Esto se produ- habilite la característica de búsqueda automática de proto-
ce mediante una evaluación estadística de las situaciones de colo, y Ud. le dice al ELM 327 que comience a monitorear.
error. Si el bus está quieto, el CI comenzará a buscar un protoco-
lo activo que puede no ser lo que estaba esperando. Tenga
en cuenta también que los protocolos ISO 9141 e ISO
Estandarización 14230 aparentan ser idénticos cuando se monitorea, de
El sistema CAN fue estandarizado por la organización modo que el CI parará de buscar con el ISO 9141 aunque el
normativa internacional ISO, para el intercambio de datos protocolo real sea ISO 14230. Con la habilitación de la bús-
en vehículos motorizados: queda automática, debería autocorregirse cuando se haga
un pedido OBD más tarde.
Para aplicación hasta 125 kBit/s, como ISO 11 519-2.
Para aplicaciones superiores a 125 kBit/s como ISO 11 898. Si el comando “Monitor All” proporciona demasiada
información (realmente lo hace para la mayoría de los sis-
De más está decir que lo dado hasta aquí es una breve temas CAN), entonces Ud. puede restringir el rango de
introducción al tema como para que podamos encarar el datos que se ha de mostrar. Quizás sólo quiere ver mensa-
aprendizaje de programas mediante comando OBD. Para jes que están siendo transmitidos por el ECU con dirección
ampliar este tema puede recurrir a la web: www.mecanica- 10. Para hacer eso, simplemente tipee:
virtual.org.
> AT MT 10
y se mostrarán todos los mensajes que contengan 10 en
el 3º byte del encabezamiento.
Monitoreo del BUS con el ELM327 El uso de este comando con sistemas CAN de 11 bits
puede ser un poco confuso al principio. Recuerde la forma
en que se almacenan todos los bytes de encabezamiento
Para ver cómo usa el bus OBD su vehículo, puede ingre- dentro del ELM 327. Un CAN ID de 11 bits realmente se
sar al modo “Monitor All” del ELM327 enviando el coman- almacena como los 11 bits menos significativos en la posi-
do AT MA desde su programa de la terminal. Esto hará que ción “almacenamiento de encabezamiento” de 3 bytes. Se
el CI muestre cualquier información que ve en el bus OBD, almacenará con 3 bits en la ubicación de la dirección del
sin importar las direcciones del transmisor o receptor (mos- receptor y los 8 bits restantes en la ubicación de la dirección
trará todo). Note que el ELM327 permanece en silencio del transmisor. Para este ejemplo, hemos pedido que todos
mientras monitorea, de modo que no se envían mensajes los mensajes creados por el transmisor “10” sean impresos,
periódicos de “despertar” (si tiene un bus ISO 9141 o ISO de modo que todos los CAN IDs de 11 bits que terminen en
14230 que había sido inicializado anteriormente, puede “ir 10 serán mostrados (o sea, todos los que aparenten ser
a dormir”), no se envían IFRs, y el módulo CAN no reco- “x10”).
noce mensajes. El otro comando de monitoreo que es muy útil es el
El modo de monitoreo puede detenerse poniendo un 0 comando AT MR, que busca direcciones específicas en el
lógico en la pata RTS, o enviando un solo carácter RS 232 byte del medio del encabezamiento. Usando este comando
al ELM 327. Se puede usar cualquier carácter conveniente Ud. puede buscar todos los mensajes que se envían a una
para interrumpir al CI y no hay restricciones acerca de si es dirección particular. Por ejemplo, para usarlo para buscar
imprimible, etc. Note que el caracter que Ud. envía será mensajes que se envíen al ECU con dirección 10, simple-
descartado, y no tendrá ningún efecto en cualquier coman - mente envíe
do subsiguiente. El tiempo que le lleva responder a este > AT MR 10
carácter de interrupción dependerá de lo que esté haciendo
y se mostrarán todos los mensajes que contengan 10 en
el CI cuando se recibe el carácter. El CI siempre terminará
el 2º byte del encabezamiento.
una tarea que esté en progreso (por ejemplo, imprimir una
línea) antes de volver a esperar una entrada, de modo que El uso de este comando con sistemas CAN de 11 bits
siempre debe esperar el “prompt” (“>”) o que la línea Busy nuevamente necesitará mayor explicación. Puede ser útil
pase a bajo, antes de comenzar a enviar un comando. ver al número hexadecimal “10” del ejemplo anterior como
el número binario “0001 0000”. Recuerde de antes que los en la dirección F1, de modo que de la ISO 15765-4, Ud.
CAN IDs de 11 bits realmente se almacenan como los 11 sabe que la posición ID de la respuesta debe ser de la
bits menos significativos en la ubicaciones del “almacena- forma:
miento del encabezamiento” de 3 bytes, y sólo se almace-
DA F1 xx
nan 3 bits en el byte del medio (dirección del receptor).
Cuando se compara el CAN ID recibido con la dirección donde xx es la dirección del módulo que envía el men-
que Ud. suministra con el comando MR, sólo los 3 bits saje.
más a la derecha de su dirección MR son los que se consi- Para usar el filtro, ingrese lo que tenga, poniendo cual-
deran y los otros bits se ignoran. En este ejemplo, el AT quier cosa en la parte desconocida (Ud. verá por qué en un
MR 10 efectivamente se convierte en AT MR 0 para siste- momento). El comando para poner el filtro CAN es AT CF:
mas CAN de 11 bits y realmente se mostrarán todos los
mensajes que comiencen con “0” como primer dígito. > AT CF 18 DA F1 00
A fin de usar el comando AT MR con identificadores
CAN de 11 bits, siempre debe tratar de usar el formato “AT ¿Cómo le dice al ELM 327 que ignore esos últimos dos
MR 0x”, dónde “x” es el dígito con el que Ud. quiere que ceros?
comiencen los identificadores. Para buscar todos los 2xx's,
Ud. lo hace con la máscara. La máscara es un diagrama
use el comando “AT MR 02”, y para ver todos los 7xx's,
de bits que le dice al CI qué bits del filtro son relevantes. Si
debe usar “AT MR 07”. El ELM327 se puede poner para
el bit de la máscara es 1, ese bit de filtro es relevante, y se
que envíe automáticamente el comando Monitor All a sí
requiere que coincida. Todos los bits del mensaje anterior
mismo después del encendido, si PP 00 se pone en 0 y se
son relevantes, excepto los de los dos últimos dígitos. Para
habilita.
establecer esta máscara, necesita usar el comando CAN
Mask:
Mensajes CAN Y Filtrado > AT CM 1F FF FF 00
Los comandos de monitoreo del ELM327 permiten Los CAN IDs de 11 bits se tratan de la misma manera.
algún filtrado de la información (con AT MR y MT ) pero Recuerde que se almacenan internamente en los 11 bits
esos comandos sólo permiten que se defina un byte de más a la derecha de las posiciones usadas para CAN de 29
todos los bits del encabezamiento. En los sistemas CAN, el bits, las cuales deben considerarse cuando se crea un filtro
gran volumen de información presente significa que esto o máscara. Como ejemplo, suponga que queremos mostrar
no es suficientemente preciso, y tiene que haber un medio todos los mensajes que tienen un 6 como el primer dígito
mejor de más selectividad. del ID de 11 bits. Necesitamos establecer un filtro que bus-
El módulo CAN interno del ELM 327 tiene un “filtro” que 6:
que se puede usar para seleccionar todos los bits de ID, no > AT CF 00 00 06 00
sólo un byte. La forma más fácil de usar este filtro es con
el comando CRA. Por ejemplo, si sólo los mensajes que El ID de 11 bits se almacena en las últimas 3 ubicacio-
Ud. desea ver son los que tienen el CAN ID 7E9, entonces nes, de modo que el 6 aparece donde se muestra. Ahora
simplemente envíe: para hacer que ese dígito sea relevante, creamos la másca-
ra:
> AT CRA 7E9
y el CI ajustará los valores internos de modo que todo > AT CM 00 00 0F 00
lo que se muestre sean mensajes con ID 7E9. El sistema sólo usa los bits más a la derecha en este
caso, de modo que podemos ser perezosos e ingresar la F
Si no quiere definir todos los 11 o 29 bits, también se
como se muestra (el primer bit de la F será ignorado, y se
puede definir un rango de valores, pero eso requiere esta-
tratará como si hubiéramos ingresado un 7). Claramente,
blecer un “máscara”, además del filtro.
esto puede ser bastante complicado si se usan sistemas
Como ejemplo, considere una aplicación donde Ud. CAN de 11 bits en forma rutinaria. Para ayudar con eso, el
trata de monitorear mensajes de diagnóstico CAN de 29 ELM327 ofrece algunas versiones más cortas de los
bits, exactamente como hace el ELM 327. Por definición, comandos CF y CM. Para usarlos en el ejemplo anterior,
estos mensajes se enviarán a la herramienta de exploración sólo ingrese argumentos de 3 dígitos:
>09 04
Capítulo 6
Interfases OBD II
con ELM327
Introducción el ELM 327. La ali-
mentación del circuito
se obtiene del vehículo
En el capítulo 2 describimos la función de una inter- a través de las patas 16
fase que me permita comunicar al sistema OBD de un y 5 y después de un
automóvil con un programa de diagnóstico instalado en diodo protector y algún Figura 1
una computadora tipo PC. El estudio nos llevó a descri- filtrado capacitivo, se presenta a un
bir los comandos AT y la estructura de los mensajes regulador de 5V (Note que pocos vehículos han sido
OBD. En la página 48 dimos el circuito correspondien- informados que no poseen la pata 5; en ese caso, use la
te a una interfase con el circuito integrado que tratamos pata 4 en vez de la 5). El regulador alimenta varios pun-
en este libro y sobre él vamos a hablar para que Ud. lo tos del circuito así como un LED (para la confirmación
arme y pueda tener su propio equipo de diagnóstico. visual de que está presente la potencia). Hemos mostra-
del ELM 327. Los dos resistores simplemente dividen la de ellas, Ud. puede sacar todos los componentes discre-
tensión de batería a un nivel seguro para el ELM 327, y tos mostrados y usar aquélla. Los 4 leds mostrados (en
el capacitor filtra el ruido. Cuando se lo envía, el ELM las patas 25 a 28) han sido suministrados como medio
327 espera un divisor resistivo como el que se muestra, visual de confirmación de la actividad circuital. No son
y establece constantes nominales de calibración supo- esenciales, pero es lindo ver la realimentación visual
niendo eso. Si su aplicación necesita un rango diferente cuando se experimenta.
de valores, elija los valores resistivos para mantener la
Finalmente, el cristal mostrado conectado entre las
entrada dentro del límite especificado de 0-5 V, y luego
patas 9 y 10 es un cristal normal de 4MHz. Los capaci-
realice un AT CV para calibrar el ELM 327 para su
tores de carga del cristal (27pF) son típicos y se pueden
nueva relación del divisor resistivo. La máxima tensión
seleccionar otros valores según lo que esté especificado
que puede mostrar el CI es de 99,9V.
para el cristal que obtenga. La frecuencia del cristal es
Se muestra una interfaz RS 232 muy básica conecta- crítica para la operación del circuito y no debe alterarse.
da a las patas 17 y 18 del ELM 327. El circuito “roba”
A menudo recibimos pedidos de listas de partes que
potencia de la computadora anfitriona para proveer una
acompañen a nuestros circuitos de Aplicaciones de
variación de las tensiones RS 232 sin la necesidad de
Ejemplo. Dado que este circuito es más complejo que la
una fuente de alimentación negativa.
mayoría, hemos numerado y nombrado todos los com-
Las conexiones mostradas de las patas de la interfaz ponentes y provisto un resumen de la lista de partes. Son
RS 232 son para un conector normalizado de 9 patas. Si sólo sugerencias, ya que si prefiere otro color de Led o
usa una de 25 patas, necesitará compensar las diferen- tiene otro transistor de propósito general a mano, etc.,
cias. La polaridad de las patas RS 232 del ELM 327 es haga el cambio. Un consejo rápido para aquellos que
tal que son compatibles con los CIs de interfaces nor- tengan problemas para encontrar un zócalo amplio de
malizadas (MAX 232, etc.), de modo que si prefiere una 0,3” para el ELM 327: muchos zócalos de 14 patas se
pueden poner extremo con
extremo para formar un zóca-
lo de 28 patas de 0,3” de
ancho.
Figura 7 Figura 8
Figura 6
mente se ponga en el protocolo 0, el modo de “búsque- rá en el nuevo protocolo por defecto, sin que se requiera
da automática” por defecto (tal como se envía de fábri- una entrada de su parte. Esto funcionará bien para la
ca). Cuando lo conecta a un vehículo VPW J 1850, auto- mayoría de las aplicaciones, pero si el circuito se usa en
máticamente detectará el protocolo, y si la memoria está un vehículo con la llave desconectada, por ejemplo,
habilitada (como se muestra), J 1850 VPW se converti- entonces volverá a buscar un nuevo protocolo. En gene-
ral, Ud. no quiere que esto suce-
da cada vez. Sólo puede ser un
inconveniente menor tener que
esperar mientras el ELM 327
determina que es incapaz de
conectar (“UNABLE TO CON-
NECT).
Lectura de los Códigos Es imposible listar los códigos de todas las marcas y
modelos de automóviles, sin embargo, los que mostra-
mos en este listado pueden ser considerados genéricos y
Cunado se tiene un escaner, la función de Lectura de los puede emplear como referencia para realizar prácti-
los Códigos se usa para extraer los “Códigos de cas con la interfase propuesta.
De más está decir que el tema no termina aquí, que principales programas gratuitos sobre gestión de
hay mucho para “aprender” sobre los sistemas CAN, datos de vehículos. En unos meses editaremos el ter-
que deberíamos saber cómo se hace la comunicación cer tomo de la serie “Electrónica Automotor” dedica-
con una computadora, hablar de los mensajes de error do a la adquisición de datos desde la computadora de
y comentar las propiedades y características de los a bordo. ✪