Sie sind auf Seite 1von 5

AUTO ELÉCTRICO

LM327: Intérprete OBD a RS232


Descripción de una Interfase OBD II
Parte 4: Descripción de los Comandos AT
para Generar Programas en OBD II (Continuación)
En esta sección estamos explicando el
funcionamiento de uno de los circuitos
integrados más utilizados para la crea -
ción de interfases para OBD II, nos referi -
mos al LM327. Los comandos AT son
instrucciones codificadas que confor -
man un lenguaje de comunicación entre
el hombre y un terminal tipo modem.
Como hemos visto, para diagnóstico a
bordo de automóviles, también se emple -
an comandos AT y cada fabricante, en
función del protocolo elegido, utiliza un
sistema de escaneo para poder leer los códigos de error que permitan identificar las fallas.
Es por eso que comenzamos a explicar el funcionamiento del circuito integrado LM327,
fabricado exclusivamente para satisfacer las necesidades de la mayoría de los protocolos
empleados en diagnóstico automotor. En esta nota continuamos analizando más coman -
dos AT y cómo se los utiliza.

Por Luis Horacio Rodríguez

DP (Describe the de establecimiento de protocolos. RS232 son retransmitidos o no a la


Corrent Protocol) computadora anfitrión. El eco del
El LM327 puede determinar DPN (Describe the Protocol carácter se puede usar para confir-
automáticamente el protocolo OBD by Number) mar que los caracteres enviados al
adecuado para usar en cada vehícu- Este comando es similar al LM327 fueron recibidos correcta-
lo al cual se conecte. Cuando el CI comando DP, pero devuelve un mente. El comando por defecto es
se conecta a un vehículo, devuelve número que representa el protocolo E1 (o eco activo).
sólo los datos pedidos y no informa corriente. Si también se habilita la
el protocolo encontrado. El comando función de búsqueda automática, el FC JM h (Flow Control
DP se usa para mostrar el protocolo número será precedido por la letra Set Mode to h)
corriente que se seleccionó para el “A”. El número es el mismo que se Este comando establece cómo
LM 327 (aunque no esté conectado). usa con el protocolo establecido y responde el ELM 327 a mensajes de
Si también se selecciona la los comandos de protocolo de prue- Primer Cuadro cando se habilitan
opción automática, el protocolo mos- ba. las respuestas del Control de Flujo
trará la palabra “AUTO” delante de automático. El dígito suministrado
él, seguido del tipo. Se muestran los E0 y E1 (Echo off(0) or on (1) puede ser “0” (por defecto) para res-
nombres reales de protocolo, no los Estos comandos controlan si los puestas completamente automáti-
números usados por los comandos caracteres recibidos en el puesto cas, “1” para respuestas completa-

Saber Electrónica

75
Auto Eléctrico
mente definidas por el usuario, o “2” quea la búsqueda subsecuente a al valor por defecto de 10400.
para bytes de datos definidos por el través de protocolos CAN si el bit 5
usuario en la respuesta. del PP24 es “1”. Normalmente, un IB 96
evento tal como este afectará todas Varios usuarios han pedido este
FC SH hhh (Flow Control las búsquedas hasta el próximo apa- comando. Se usa para cambiar la
Set Header to….) gado y encendido, pero se puede velocidad usada para los protocolos
Los bytes de encabezamiento (o “olvidar” usando software con el ISO 9141-2 e ISO 14230-4 (números
más correctamente “CAN ID”) usa- comando AT FE. 3, 4 y 5) a 9600 Baud , mientras que
dos para los mensajes de respuesta Similarmente, un evento “LV se relajan algunos de los requeri-
del Control de Flujo CAN se pueden RESET” evitará búsquedas a través mientos para la iniciación de las
establecer usando este comando. de protocolos CAN si el bit 4 de transferencias de bytes. Puede ser
Sólo los 11 bits más a la derecha de PP24 es “1”, y también se puede útil para experimentar con algunos
los suministrados son los que usa- olvidar con el comando FE. FE es un vehículos. La operación normal de
rán, mientras que el bit más signifi- comando nuevo con L1.3ª del CI. 10400 baud se puede restaurar en
cativo siempre se elimina. Este cualquier momento emitiendo un
comando sólo afecta el modo 1 de H0 y H1 (Headers off (o) comando IB 10.
Control de Flujo. or on (1))
Estos comandos controlan si los IFR0, IFR1 e IFR2 (IFR control)
FC SH hhhhhhhh bytes adicionales (encabezamiento) El protocolo SAE J1850 permite
(Flow Control Set Header to …) de información se muestran o no en que un byte IFR (In-Frame
Este comando se usa para esta- las respuestas del vehículo. Response: respuesta dentro del
blecer los bits de encabezamiento (o Normalmente no se muestran por cuadro) sea enviado después de
“CAN ID”) pars las respuestas de parte del ELM327, pero se pueden cada mensaje, usualmente para
Control de Flujo en sistemas CAN ID activar emitiendo un comando AT reconocer la recepción correcta de
de 29 bits. Dado que 8 nibbles defi- H1. ese mensaje. El ELM 327 automáti-
nen 32 bits, sólo se usarán los 29 La activación de los encabeza- camente genera y envía este byte
bits más a la derecha de aquellos dores muestra más que tan solo los por defecto, pero se puede anular
suministrados. Los 3 bits más signi- bytes de encabezamiento, Ud. Verá este comportamiento con este
ficativos siempre se eliminan. Este el mensaje completo como se trans- comando.
comando sólo afecta el modo 1 del mite, incluyendo los dígitos de verifi- El comando AT IFRO inhabilitará
Control de Flujo. cación y los bytes PCI, y posible- el envío de todos los IFRs, sin
mente el código de la longitud de importar lo que requieren los bytes
FC SD (1-5 bytes) datos CAN (DLC) si ha sido habilita- de encabezamiento. AT IFR2 es lo
(Flow Control Set Data to..) do con PP 29. contrario: hará que siempre se envíe
Los bytes de datos que se enví- La versión corriente de este CI un byte IFR, sin importar lo que indi-
an en un mensaje de Control de no muestra el código CAN CRC ni can los bytes de encabezamiento.
Flujo CAN pueden establecerse con los bytes especiales J1850 IFR (que El comando AT IFR1 restaura la
este comando. algunos protocolos usan para reco- respuesta para suministrar el envío
La versión corriente del software nocer la recepción de un mensaje). automático de IFRs, como lo deter-
permite que se definan de 1 a 5 mina el bit “K” del byte de encabeza-
bytes de datos, y el resto de los I (Identify yourself) miento. IFR1 es la posición por
bytes de datos del mensaje se esta- Este comando hace que el chip defecto del LM327.
blecen en el byte de relleno CAN por se identifique imprimiendo la cadena
defecto. Los datos provistos con ID de producto (actualmente IFR H e IFR S
este comando sólo se usan cuando “ELM327 L1.3ª”). El software puede (IFR from Header or Source)
se han habilitado los modos 1 o 2 de usarlo para determinar exactamente El valor enviado en el byte IFR
Control de Flujo. a qué CI le está hablando, sin tener normalmente es el mismo que el
que reinicializar el CI. valor enviado como el byte de
FE (Forget Events) Dirección de la Fuente que estaba
Hay ciertos eventos que pueden IB 10 (set the IS0 Baud en el encabezamiento del pedido.
cambiar cómo responde el LM327 rate to 10400) Puede haber ocasiones cuando es
de ahí en más. Uno de ellos es que Este comando restaura las velo- deseable usar algún otro valor y este
ocurra la condición ERR94, que blo- cidades ISO 9141-2 e ISO 14230-4 conjunto de comandos lo permite.

Saber Electrónica

76
Resumen de Comandos OBD II
Si envía AT IFR s, el ELM327 envían en el orden inverso, o sea EE plemente envíe el comando AT KW.
usará el valor definido como FE OO, y el ELM 327 normalmente
Dirección de fuente (usualmente F1, esperaría recibir los datos en ese KW0 y KW 1 (key Word
pero se puede cambiar con PP 06), orden para pasarlos al vehículo. checks off (0) or on (1))
aunque se enviara otro valor en los Cuando se experimenta, esta El ELM 327 busca bytes especí-
bytes del Encabezador. Esto no es constante necesidad de inversiones ficos (llamados Palabras Clave) que
lo que se requiere normalmente, y de los bytes puede ser muy confusa, se le envían durante las secuencias
se debe tener precaución cuando se de modo que hemos definido un for- de iniciación ISO 9141-2 e ISO
usa AT IFR S. AT IFR H restaura el mato ELM que invierte los bytes 14230-4. si no se encuentran esos
envío de los bytes IFR a los provis- para Ud. bytes, se dice que la iniciación ha
tos en el Encabezamiento, y es la Cuando se habilita el formato fallado. Esto puede ser porque Ud.
posición por defecto. J1939 ELM (JE), y ha seleccionado Está tratando de conectarse a un
el protocolo J1939, y Ud. Suministra ECU no compatible con OBD, o qui-
IIA hh (set the ISO los 3 bytes de datos al ELM 327, zás con uno viejo.
Init Address to hh) invertirá el orden para Ud. Antes de Si desea experimentar pero no
Las normas ISO 9141 – 2 e ISO enviarlos al ECU. Para pedir la tem- quiere que el ELM327 verifique los
14230- 4 dicen que cuando comien- peratura del motor PGN, Ud. valores contenidos en las palabras
za una sesión con un ECU, la Enviaría OO FE EE (y no EE FE clave, puede desactivar la verifica-
secuencia de iniciación se tiene que OO). El tipo “JE” de formateo auto- ción con:
dirigir a una dirección específica mático se habilita por defecto.
($33). Si desea experimentar diri- >AT KWO
giendo la secuencia lenta de 5 Baud JS (enables the J1939
a otra dirección, se hace con este SAE data format) después de lo cual el CI buscará
comando. Por ejemplo, si prefiere El comando AT JS inhabilita el los bytes de la Palabra Clave en la
que la iniciación se realice con el reordenamiento automático de los respuesta, pero no los valores rea-
ECU en la dirección $7ª, entonces bytes que el comando JE ejecuta les de los bytes. Esto puede permitir
simplemente envíe: para Ud.. Si desea enviar bytes de una conexión en una situación que
datos al vehículo J1939 sin manipu- de otra manera sería “imposible”. El
>AT IIA 7ª lación del orden de los bytes, enton- comportamiento normal puede vol-
ces elija el formateo JS. ver con AT KW1, que es la posición
y el ELM327 usará esa dirección Usando el ejemplo anterior para por defecto.
cuando se le pida que haga así (pro- la temperatura del motor (PGN Se debe tener precaución con
tocolos 3 o 4). El valor completo de OOFEEE) con el formato de los este comando, dado que se está sal-
8 bits se usa exactamente como se datos puesto en JS, Ud. debe enviar teando las verificaciones que nor-
suministró (no se le hace ningún los bytes al ELM327 como EE FE malmente se ejecutan sobre los
cambio, o sea, no se agregan bits OO. bytes de la palabra clave. El CI
de paridad, etc). El tipo JS de formateo de datos envía un reconocimiento al ECU por
Note que el establecimiento de se anula por defecto, pero era el estos bytes, pero esto es sin consi-
este valor no afecta ningún valor de único tipo de formateo de datos pro- derar cuáles son realmente los
dirección usado en los bytes de visto por el ELM327 v 1.2. si cambia bytes. Ud. podría activar incorrecta-
encabezamiento. La dirección de la versión del CI, tenga en cuenta mente un ISO 9141 o un protocolo
inic. ISO se restaura a $33 cada vez esta diferencia. KWP 2000, así que sea cuidadoso.
que se reinicializa el ELM327 o las
posiciones por defecto. KW (display the key words) L0 y L1 (Linefeeds off (o)
Cuando se inicializan los proto- or on (1) )
JE (enables the J1939 colos ISO 9141-2 e ISO 14230 – 4, Esta opción controla el envío de
ELM data format) se transmiten 2 bytes especiales caracteres de alimentación de línea
La norma J1939 requiere que los (palabras clave) al ELM 327 (los después de cada carácter de retorno
pedidos PGN sean enviados con el valores se usan internamente para de carro. Para AT L1 se generarán
orden de los bytes invertido. Por determiner si una variación particu- alimentaciones de línea después de
ejemplo, para enviar un pedido de la lar de protocolo puede ser soportada cada carácter de retorno de carro, y
temperatura del motor (PGN OOFE- por el ELM 327). Si desea ver cuáles para AT L0, se desactivarán. Los
EE), los bytes de datos realmente se eran los valores de esos bytes, sim- usuarios generalmente desearán

Saber Electrónica

77
Auto Eléctrico
tener esta opción activada si se usa tiene un solo vehículo al cual se a medida que se encuentren, aun-
un programa de terminal, pero conecta regularmente, lo que tendría que esté activado el autoformateo
desactivada si se usa una interfase más sentido sería almacenar el pro- CAN (CA F1). La versión anterior de
especial de computadora (dado que tocolo del vehículo como el protoco- este CI (V1.2) no mostraba algunos
los caracteres extra transmitidos lo por defecto. mensajes CAN ilegales si estaba
sólo servirán para desacelerar las Como se mencionó, la posición activado el autoformateo, pero ahora
comunicaciones). La posición por por defecto de la función de memo- se muestran todos los mensajes
defecto está determinada por la ten- ria está determinada por la tensión recibidos, y si el formato de los datos
sión en la pata 7 durante el encendi- en la pata 5 en el arranque (o reini- no parece ser correcto, entonces se
do (o reinicialización). Si el nivel es cialización del sistema). Si se conec- mostrará “<DATA ERROR” al lado
alto, por defecto las alimentaciones ta a nivel alto (Vdd), entonces la fun- de los datos.
de línea estarán activadas; de lo ción de memoria se activa por defec- Si se usa este comando con los
contrario, estarán desactivados. to. Si la pata 5 se conecta a un nivel protocolos CAN, y si el filtro CAN y/o
bajo, el almacenamiento de la la máscara fueron establecidos pre-
M0 y M1 (Memory off (o) memoria se desactivará por defecto. viamente (con CF, CM o CRA),
or on (1)) entonces el comando MA será afec-
El ELM327 tiene una memoria MA (Monito All messages) tado por la posición. Por ejemplo, si
interna no volátil que puede recordar Este comando pone al CI en un la dirección de recepción había sido
el último protocolo usado, incluso modo de monitoreo del bus, en el establecida previamente con CRA
después de apagada la potencia cual continuamente monitorea (y 4B0, entonces el comando AT MA
aplicada. Esto puede ser convenien- muestra) todos los mensajes que ve sólo podría “ver” los mensajes con
te si el CI se usa a menudo con un en el bus OBD. Es un monitoreo un ID de 4B0. A menudo esto no es
protocolo particular, dado que será quieto, sin enviar IFR5 para siste- lo que se desea. Puede que primero
el primero que se intente cuando mas J1850, reconocimientos para quiera reinicializar las máscaras y
luego se aplique la potencia. Para sistemas CAN o mensajes los filtros (con AT AR).
habilitar esta función de memoria, es Despertar para los protocolos IS0 Todos los comandos de monito-
necesario usar un comando AT para 9141 e IS0 14230. El monitoreo con- reo (MA, MR y MT) funcionan
seleccionar la opción M1 o haber tinuará hasta que se detenga la acti- cerrando el protocolo corriente
elegido “memoria activada” como el vidad en la entrada RS232, o la pata (internamente se ejecuta un AT PC),
modo por defecto (conectando la RTS. luego se configura el CI para un
pata 5 del CI en un nivel lógico alto). Para detener el monitoreo, sim- monitoreo silencioso de los datos
Cuando se habilita la función de plemente envíe cualquier carácter al (sin mensajes “despertar”, IFRs o
memoria, cada vez que el CI ELM327, luego espere que respon- reconocimientos CAN enviados por
encuentra un protocolo OBD válido, da con un prompt (“>”), o una salida el ELM327). Cuando se transmita el
ese protocolo se memorizará (alma- de nivel bajo en la pata Buiy (ponien- siguiente comando OBD, el protoco-
cenará) y se convertirá en el nuevo do la entrada RTS en un nivel bajo lo nuevamente se inicializará y
por defecto. Si no se habilita la fun- interrumpirá al dispositivo también). puede ver mensajes que dicen eso.
ción de memoria, los protocolos Es necesario esperar el prompt dado También se puede ver “SEAR-
encontrados durante una sesión no que el tiempo de respuesta varía CHING…….”, según qué cambios
se memorizarán, y el CI siempre según lo que estaba haciendo el CI se hicieron durante el monitoreo.
arrancará usando el último protocolo cuando fue interrumpido. Si por
guardado. ejemplo está en el medio de la MP hhhh (Monitor for
Si el CI se usa en un entorno impresión de una línea, primero PGN hhhh)
donde el protocolo cambia constan- completará esa línea, luego vuelve Los comandos AT, MA, MR y MT
temente, es probable que lo mejor al estado del comando, emitiendo un son bastante útiles cuando desea
sea desactivar la función de memo- carácter “prompt”. Si simplemente monitorear un byte específico en el
ria y emitir un comando AT SP 0 una fuera esperar la entrada, volverá encabezamiento de un mensaje
vez. El comando SP 0 le dice al CI inmediatamente. Note que el carác- OBD típico. Para el protocolo SAE
que comience en un modo de bús- ter que detiene el monitoreo siempre J1939, no obstante, a menudo es
queda de protocolo “automático”, será descartado, y no afectará a los deseable monitorear los Números
que es el más útil en un entorno des- comandos subsiguientes. de Grupos de Parámetros multibyte
conocido. Los CI5 vienen de fábrica Comenzando con V1.3 de este (o PG Ns), que pueden aparecer en
con este modo. Sin embargo, si Ud. CI, todos los mensajes se imprimirán el encabezamiento o en los bytes de

Saber Electrónica

78
Resumen de Comandos OBD II
datos EP comando MP es un tradicional de 3 bytes, en los bits 8 a luego Ud. envía MT 20, el 20 reem-
comando único especial J1939 que 15 de un CAN ID de 29 bits, o en bits plazará el B0, y la s máscaras/filtros
se usa para buscar respuestas a un 8 a 10 de un CAN ID de 11 bits. CAN solo permitirán IDs que sean
pedido particular PGN, y seguir cual- Cualquier carácter RS 232 anula el iguales a 420. A menudo esto no es
quier aparición multisegmentada de monitoreo, como con el comando lo que se desea; Ud. puede querer
ellas. Note que este comando MP no MA. Note que si se usa este coman- primero reinicializar las máscaras y
provee ningún medio para estable- do con protocolos CAN, y si el filtro los filtros (con AT AR).
cer los 2 primeros dígitos del PGN CAN y/o máscara fueron previamen- Como con el comando AT MA,
pedido, y siempre se supone que te establecidos (con CF, CM o CRA), este comando comienza ejecutando
son 00. Por ejemplo, el DM2 PGN entonces el comando MR sobrescri- un Cierre Interno de Protocolo. Los
tiene un valor asignado de 00 FE CB birá los valores anteriores para pedidos OBD subsiguientes pueden
(ver SAE J1939-73). Para monitore- estos bits solamente; los otros per- mostrar los mensajes “SEAR-
ar los mensajes DM2, Ud. emitiría manecerán sin cambio. Como ejem- CHING” o “BUS INIT”, etc. cuando
AT MP FECB, eliminando 00 dado plo, si la dirección de recepción ha se reactiva el protocolo.
que el comando MP hhhh siempre sido establecida con CRA 4B0, y
supone que PGN está precedido por luego envía MR 02, el 02 reempla- NL (Normal Length messages)
2 ceros. Este comando sólo está dis- zará el 4, y la máscara/filtros CAN Activando el modo NL hace que
ponible cuando se ha seleccionado solo permitirán IDs que sean iguales todos los envíos y recepciones se
un Protocolo CAN (A, B o C) para el a 2B0. A menudo esto no es lo que limiten a los 7 bytes de datos stan-
formateo SAE J1939. Devuelve se desea; Ud. puede querer primero dard en longitud, similar a los otros
error si se intenta bajo cualquier otra reinicializar la máscaras y los filtros ELM32x OBD. Para permitir mensa-
condición. También note que esta (con AT AR). Como con el comando jes máslargos, use el comando CIs
versión del ELM327 sólo muestra AT MA, este comando comienza eje- AL. Comenzando con V1.2, el ELM
respuestas que satisfacen los crite- cutando un Cierre Interno de 327 no requiere un cambio a AL para
rios, no los pedidos que solicitan la Protocolo. Los pedidos OBD subsi- permitir la recepción mensajes de
información. guientes pueden mostrar los mensa- longitudes más largas para los pro-
jes “SEARCHING “ o BUS INIT”, etc. tocolos KWP (como lo determinan
MP hhhhhh (Monitor for Cuando se reactiva el protocolo. los valores de longitud del encabe-
PGN hhhhhh) zamiento). Ud. simplemente puede
Este comando es similar al ante- MT hh (Monitor for dejar el CI en la posición por defec-
rior, pero extiende el número de Transmitter hh) to de NL, y se mostrarán todos los
bytes previstos en uno, de modo que Este comando también es muy bytes recibidos.
hay un control completo de la defini- similar al comando AT MA, salvo que
ción de PGN (no hace la suposición sólo mostrará mensajes que fueron PC (Protocol Close)
que el bit de Página de Datos es 0, enviados por el transmisor con la Hay ocasiones en que es desea-
como lo hace el comando anterior). dirección hexadecimal dada por hh. ble desactivar un protocolo. Quizás
Esto permite una expansión futura Estos son mensajes que tienen ese no esté usando la búsqueda auto-
en caso de que se definan PG Ns valor en el 3º byte de un encabeza- mática de protocolos y desea activar
adicionales con el bit de Página de miento OBD tradicional de 3 bytes, o y desactivar manualmente los proto-
Datos en 1. Note que sólo el bit de en bits 0 a 7 para CAN IDs. Como en colos.
Página de Datos es relevante en el los modos de monitoreo MA y MR, Quizás desee detener el envío
byte extra. Los bits Reservados y de cualquier actividad RS232 (monoca- de mensajes de reposo (despertar)
Prioridad se ignoran. racter) anula el monitoreo. o alguna otra razón. El comando PC
Note que si se usa este coman- se usa en estos casos para forzar el
MR hh (Monitor for do con protocolos CAN, y si el filtro cierre del protocolo.
Receiver hh) CAN y/o máscara fueron estableci- En la próxima edición continua -
Este comando es muy similar al dos previamente (con CF, CM o remos desarrollando este tema,
comando AT MA salvo que sólo CRA), entonces el comando MT exponiendo el resto de los coman -
mostrará mensajes que fueron sobrescribirá los valores anteriores dos AT que maneja el LM327 para
enviados a la dirección hexadecimal para estos bits solamente; los otros luego realizar algunos ejemplos de
dada por hh. Estos son mensajes permanecerán sin cambio. Como programación que nos permitan
que tienen el valor hh en el segundo ejemplo si la dirección de recepción comprender la sintaxis de un progra -
byte de un encabezamiento OBD ha sido establecida con CRA 4B0, y ma. ✪

Saber Electrónica

79

Das könnte Ihnen auch gefallen