Leer memoria, BDM vs. OBD
Moderadores: Carlillos, robertop
-
karuth2
- Usuario Nivel 1
- Mensajes: 8
- Registrado: 04 Dic 2012 08:55
- Lugar: Zaragoza
- Edad: 35
- Agradecido : 4 veces
Leer memoria, BDM vs. OBD
Hola a tod@s,
Después de presentarme, os hago mi primera pregunta.
¿Por qué, tal y cómo he leido en diferentes hilos, el archivo obtenido leyendo por BDM o OBD es diferente?
Todos sabemos que una memoria sea del tipo que sea, flash, eprom, e2prom, I2C,... tiene un contenido único.
Cuando leemos por OBD hacemos uso de una rutina de lectura que implementa el propio soft de la ECU, cuando leemos la memoria directamente en un programador, en función de la memoria se hace de una forma u otra pero básicamente consiste en acceder a la dirección física del dato y leerlo.
Todavía no tengo muy claro como trabaja un interface BDM, pero por lo que he podido leer parece un interface del tipo J-TAG.
Este interface lo incorporan ciertos micros para permitirnos programarlos y acceder a su memoria interna o externa gracias a un programa (bootloader) que se encuentra en una zona de memoria específica del micro.
En resumen, tenemos diferentes formas de leer una memoria pero el contenido siempre debería ser el mismo.
Cuando leemos una memoria el archivo tiene dos formatos principalmente, .bin si es binario o .hex si es hexadecimal.
Y suele estar estructurado de la siguiente manera:
:dirección física dato dato dato ... ...
:dirección física dato dato dato ... ...
La única explicación que encuentro para que obtengáis archivos diferentes es que estéis leyendo zonas de memoria diferentes o estéis leyendo la memoria solo parcialmente, a veces en la rutina de lectura que se implementa en el soft se limita el acceso a determinadas zonas de memoria por temas de seguridad.
Puede alguien aclararme este tema.
Gracias y un saludo
Después de presentarme, os hago mi primera pregunta.
¿Por qué, tal y cómo he leido en diferentes hilos, el archivo obtenido leyendo por BDM o OBD es diferente?
Todos sabemos que una memoria sea del tipo que sea, flash, eprom, e2prom, I2C,... tiene un contenido único.
Cuando leemos por OBD hacemos uso de una rutina de lectura que implementa el propio soft de la ECU, cuando leemos la memoria directamente en un programador, en función de la memoria se hace de una forma u otra pero básicamente consiste en acceder a la dirección física del dato y leerlo.
Todavía no tengo muy claro como trabaja un interface BDM, pero por lo que he podido leer parece un interface del tipo J-TAG.
Este interface lo incorporan ciertos micros para permitirnos programarlos y acceder a su memoria interna o externa gracias a un programa (bootloader) que se encuentra en una zona de memoria específica del micro.
En resumen, tenemos diferentes formas de leer una memoria pero el contenido siempre debería ser el mismo.
Cuando leemos una memoria el archivo tiene dos formatos principalmente, .bin si es binario o .hex si es hexadecimal.
Y suele estar estructurado de la siguiente manera:
:dirección física dato dato dato ... ...
:dirección física dato dato dato ... ...
La única explicación que encuentro para que obtengáis archivos diferentes es que estéis leyendo zonas de memoria diferentes o estéis leyendo la memoria solo parcialmente, a veces en la rutina de lectura que se implementa en el soft se limita el acceso a determinadas zonas de memoria por temas de seguridad.
Puede alguien aclararme este tema.
Gracias y un saludo
-
gdl
- Suscrito Nivel 3
- Mensajes: 1618
- Registrado: 02 Dic 2008 02:05
- Lugar: Asturias, Alicante
- Ocupación: automocion
- Edad: 0
- Agradecido : 1 vez
- Agradecimiento recibido: 65 veces
Re: Leer memoria, BDM vs. OBD
Hola
Exactamente, con el bdm haces una lectura completa, y por obd, en algunas la mayoria de las veces, la lectura es parcial, lo que pasa que el software, rellena a FFFFFFF las direcciones que no lee, para que el archivo tenga la misma longitud que si haces la lectura por obd.
Exactamente, con el bdm haces una lectura completa, y por obd, en algunas la mayoria de las veces, la lectura es parcial, lo que pasa que el software, rellena a FFFFFFF las direcciones que no lee, para que el archivo tenga la misma longitud que si haces la lectura por obd.
-
Soplillo
- Suscrito Nivel 2
- Mensajes: 579
- Registrado: 23 Dic 2010 15:46
- Lugar: bcn
- Ocupación: Autonomo
- Edad: 32
- Agradecido : 1 vez
- Agradecimiento recibido: 49 veces
Re: Leer memoria, BDM vs. OBD
Hola tú mismo te acabas de contestar a tu pregunta, se nota que sabes lo que dices, BDM es un interface de programación de tipo J-tag , además de leer las flash completamente, lee la e2prom y el micro.
Esta interface "solo" nos sirve para programar unidades de mando de motor con micros motorolla de la serie MPC5XX, no sirve para las uces con micro infieneon, renesa, siemens, etc.
Tampoco sirve para programar las ecus edc15 que son muchísimas sus aplicaciones en el mercado en el mercado europeo, estas centralitas en caso de bloqueo la mayoría de las veces solo las podremos recuperar desoldando su memoria flash y escribiéndola con un programador externo.
En las ecus tipo edc16 y demás basadas en el micro motorolla MPC cuando leamos a través del puerto obd la mayoría de las veces obtenemos lecturas parciales salvo en algunos modelos de ecus que se obtiene lectura completa, por ejemplo en bosch edc16-U1.
Sin embargo y para terminar, en las antiguas edc15, la lectura obtenida siempre es es total en todos los modelos.
Yo la duda que tengo es, ¿¿¿Porque se obtiene solamente una lectura parcial en edc16 por obd????? Para evitar el tunning o por motivos tecnicos????
Saludos a todos.
Esta interface "solo" nos sirve para programar unidades de mando de motor con micros motorolla de la serie MPC5XX, no sirve para las uces con micro infieneon, renesa, siemens, etc.
Tampoco sirve para programar las ecus edc15 que son muchísimas sus aplicaciones en el mercado en el mercado europeo, estas centralitas en caso de bloqueo la mayoría de las veces solo las podremos recuperar desoldando su memoria flash y escribiéndola con un programador externo.
En las ecus tipo edc16 y demás basadas en el micro motorolla MPC cuando leamos a través del puerto obd la mayoría de las veces obtenemos lecturas parciales salvo en algunos modelos de ecus que se obtiene lectura completa, por ejemplo en bosch edc16-U1.
Sin embargo y para terminar, en las antiguas edc15, la lectura obtenida siempre es es total en todos los modelos.
Yo la duda que tengo es, ¿¿¿Porque se obtiene solamente una lectura parcial en edc16 por obd????? Para evitar el tunning o por motivos tecnicos????
Saludos a todos.
-
karuth2
- Usuario Nivel 1
- Mensajes: 8
- Registrado: 04 Dic 2012 08:55
- Lugar: Zaragoza
- Edad: 35
- Agradecido : 4 veces
Re: Leer memoria, BDM vs. OBD
Lo primero agradeceros vuestras respuestas. Por otro lado después de confirmar mis sospechas, me surgen nuevas dudas, si me equivoco en alguna de las siguientes afirmaciones corregidme por favor.
1. Si hemos leido por OBD, nunca debemos usar ese archivo para programar por BDM tal y cómo se ha dicho muchas veces en el foro porque "machacaremos" aquella zona de memoria que la lectura OBD a dejado vacía (FF FF) en el archivo, ¿no?
2. Si hemos leido por BDM tenemos el archivo completo, con lo cuál, no habría problema en programar por OBD (asumiendo siempre que verificamos versión de hardware y soft), ¿es así?.
3. Sabe alguien donde se encuentra implementada la limitación de leer ciertas áreas de memoria. Es decir, esta limitación puede estar en el software que realiza la lectura (OBD) o en la rutina implementada en el micro.
Si alguien tiene un archivo original de estas ECU´s, donde la lectura es parcial por OBD, podría tratar de desensamblarlo y localizar la rutina de lectura para entender qué está pasando. Además sería interesante conocer el hardware correspondiente a ese archivo para saber de que memorias dispone, micro y mapeado de las diferentes memorias.
Incluso se podría intentar modificar esa rutina para eliminar esa limitación y a partir de ese momento leer y escribir por obd (si el hard y OBD lo permiten).
4. Cuando llega a nuestras manos un archivo original que ha leido otra persona sólo tenemos dos formas de saber como ha sido leido, o nos lo dice o tenemos siempre un archivo completo para comparar. ¿Es así?
Por otro lado me alegra ver que hay ECUs que utilizan micros de Renesas, trabajé mucho tiempo con estos micros hace algunos años. Si puedo aportar algo ya sabéis...
Soplillo, veo que controlas del hardware de las distintas ECUs, ¿puedes decirme que micro utilizan las ECUs Bosch EDC15M (Opel Astra G 2.0 DTI año 2000)?
En cuanto a tu pregunta no creo que la razón sea un tema técnico o de hardware, de hecho, el micro está accediendo a esas zonas de memoria para "trabajar" con ellas. Más bien me huele a argumento de "seguridad".
Pero tal vez alguien lo sepa con certeza. Yo tendría que conocer el hardware y volver a revisar el protocolo de lectura OBD para garantizartelo al 100%.
Puede ser que el protocolo no contemple la posibilidad de direccionar ciertas partes de memoria o que lo contemple pero la ECU devuelva FFFF cuando intentas acceder a ellas.
Muchas gracias una vez más y perdón por el tocho.
1. Si hemos leido por OBD, nunca debemos usar ese archivo para programar por BDM tal y cómo se ha dicho muchas veces en el foro porque "machacaremos" aquella zona de memoria que la lectura OBD a dejado vacía (FF FF) en el archivo, ¿no?
2. Si hemos leido por BDM tenemos el archivo completo, con lo cuál, no habría problema en programar por OBD (asumiendo siempre que verificamos versión de hardware y soft), ¿es así?.
3. Sabe alguien donde se encuentra implementada la limitación de leer ciertas áreas de memoria. Es decir, esta limitación puede estar en el software que realiza la lectura (OBD) o en la rutina implementada en el micro.
Si alguien tiene un archivo original de estas ECU´s, donde la lectura es parcial por OBD, podría tratar de desensamblarlo y localizar la rutina de lectura para entender qué está pasando. Además sería interesante conocer el hardware correspondiente a ese archivo para saber de que memorias dispone, micro y mapeado de las diferentes memorias.
Incluso se podría intentar modificar esa rutina para eliminar esa limitación y a partir de ese momento leer y escribir por obd (si el hard y OBD lo permiten).
4. Cuando llega a nuestras manos un archivo original que ha leido otra persona sólo tenemos dos formas de saber como ha sido leido, o nos lo dice o tenemos siempre un archivo completo para comparar. ¿Es así?
Por otro lado me alegra ver que hay ECUs que utilizan micros de Renesas, trabajé mucho tiempo con estos micros hace algunos años. Si puedo aportar algo ya sabéis...
Soplillo, veo que controlas del hardware de las distintas ECUs, ¿puedes decirme que micro utilizan las ECUs Bosch EDC15M (Opel Astra G 2.0 DTI año 2000)?
En cuanto a tu pregunta no creo que la razón sea un tema técnico o de hardware, de hecho, el micro está accediendo a esas zonas de memoria para "trabajar" con ellas. Más bien me huele a argumento de "seguridad".
Pero tal vez alguien lo sepa con certeza. Yo tendría que conocer el hardware y volver a revisar el protocolo de lectura OBD para garantizartelo al 100%.
Puede ser que el protocolo no contemple la posibilidad de direccionar ciertas partes de memoria o que lo contemple pero la ECU devuelva FFFF cuando intentas acceder a ellas.
Muchas gracias una vez más y perdón por el tocho.
-
Soplillo
- Suscrito Nivel 2
- Mensajes: 579
- Registrado: 23 Dic 2010 15:46
- Lugar: bcn
- Ocupación: Autonomo
- Edad: 32
- Agradecido : 1 vez
- Agradecimiento recibido: 49 veces
Re: Leer memoria, BDM vs. OBD
Hola no es ningún tocho, la gente tendría que ser mas interesada en aprender como funcionan las cosas y no solo pedir ayuda por la vía fácil.
Las lecturas bdm siempre que no sean encriptadas, se pueden cargar por obd, la interface se encargará de escribir en las direcciones de memoria que le correspondan.
Yo no tengo idea de donde se encuentran esas implementaciones.
La forma de averiguar si la lectura de un archivo original de un vehículo es bueno o no es a través de dos formas es a traves de su checksum (hasta donde yo sé)
-Una es comparandolo con el checksum de otro archivo que ya tenemos y sabemos que es bueno han de tener el mismo chk.
-Y la otra es comprobándolo con algún programa que tenga corrección automática de checksum tipo winols o ecm.
La bosch edc15M creo casi con seguridad que monta micro infineon o a las malas micro siemens. Las que montan el micro siemens no se pueden escribir por obd, las que montan infineon, se puede escribir por obd pero no leer.
Un saludo.
Las lecturas bdm siempre que no sean encriptadas, se pueden cargar por obd, la interface se encargará de escribir en las direcciones de memoria que le correspondan.
Yo no tengo idea de donde se encuentran esas implementaciones.
La forma de averiguar si la lectura de un archivo original de un vehículo es bueno o no es a través de dos formas es a traves de su checksum (hasta donde yo sé)
-Una es comparandolo con el checksum de otro archivo que ya tenemos y sabemos que es bueno han de tener el mismo chk.
-Y la otra es comprobándolo con algún programa que tenga corrección automática de checksum tipo winols o ecm.
La bosch edc15M creo casi con seguridad que monta micro infineon o a las malas micro siemens. Las que montan el micro siemens no se pueden escribir por obd, las que montan infineon, se puede escribir por obd pero no leer.
Un saludo.
-
karuth2
- Usuario Nivel 1
- Mensajes: 8
- Registrado: 04 Dic 2012 08:55
- Lugar: Zaragoza
- Edad: 35
- Agradecido : 4 veces
Re: Leer memoria, BDM vs. OBD
Muchas gracias una vez más.
Parece que ya lo tengo un poco más claro. Seguiré leyendo...
Un saludo.
Parece que ya lo tengo un poco más claro. Seguiré leyendo...
Un saludo.
- Carlillos
- Fundador - Admin
- Mensajes: 6891
- Registrado: 21 Jul 2008 20:51
- Lugar: Granada
- Ocupación: Tecnico aparatoligia estetica
- Edad: 46
- Ubicación: Granada
- Agradecido : 77 veces
- Agradecimiento recibido: 244 veces
- Contactar:
Re: Leer memoria, BDM vs. OBD
Hola
Yo diria que por obd no se lee al completo porque el software para leer esta en la flash y con bdm el micro por si solo actua como programador.
Casi diria que todo lo relacionado con la lectura y escritura por OBD esta escrito en la flash. También puede que no se lea al completo por obd por seguridad y que no se modifiquen X parametros.
Una buena manera de comprobar una lectura es comprobar el chks
Saludos
Yo diria que por obd no se lee al completo porque el software para leer esta en la flash y con bdm el micro por si solo actua como programador.
Casi diria que todo lo relacionado con la lectura y escritura por OBD esta escrito en la flash. También puede que no se lea al completo por obd por seguridad y que no se modifiquen X parametros.
Una buena manera de comprobar una lectura es comprobar el chks
Saludos
Ibiza TDI 100 cv Sport, Motor ATD, 2002, Repro HPItecnology X-MOD 350nm@145cv
------------------------- High Performance Intelligent Inside by Carlillos ----------------------
------------------------------------- www.chiptuners.es ------------------------------
NORMAS DEL FORO Click aqui (No leer las normas puede provocar la expulsión)
------------------------------------------------------
Colaborar con la comunidad click aqui
Distribuidor autorizado MCUmall.com ->Contactar
------------------------- High Performance Intelligent Inside by Carlillos ----------------------
------------------------------------- www.chiptuners.es ------------------------------
NORMAS DEL FORO Click aqui (No leer las normas puede provocar la expulsión)
------------------------------------------------------
Colaborar con la comunidad click aqui
Distribuidor autorizado MCUmall.com ->Contactar
-
mteran
- Usuario Nivel 2
- Mensajes: 58
- Registrado: 22 Ene 2014 16:56
- Lugar: la victoria-aragua
- Ocupación: estudiante
- Edad: 25
- Agradecido : 7 veces
Re: Leer memoria, BDM vs. OBD
O SEA PARA EL ASTRA G 2.2 16V EDC15M NO SIRVE EL GALLETTO Y DEBO DESOLDAR LA EPROM DE LA ECU Y LEER CON WILLLEM? EL KPW PLUS 2000 NO SIRVE TAMPOCO PARA LEER LA INFO DE LA ECU?
NO TENGO MUCHO CONOCIMIENTO EN ESTO DE LAS REPRO Y ME GUASTRIA IR APRENDIDENDO
NO TENGO MUCHO CONOCIMIENTO EN ESTO DE LAS REPRO Y ME GUASTRIA IR APRENDIDENDO
