lunes, 28 de diciembre de 2009

Interpretando - El CheckSum

¿Qué es el Check Sum?

El check sum es el código de comprobación que como vimos anteriormente la ecu del corsa utiliza para verificar la integridad de la memoria antes de comenzar a ejecutar el software.

según wikipedia:

"Una suma de verificación o checksum es una forma de control de redundancia, una medida muy simple para proteger la integridad de datos, verificando que no hayan sido corruptos. Es empleado para comunicaciones (internet, comunicación de dispositivos, etc.) tanto como para datos almacenados (archivos comprimidos, discos portátiles, etc.).

El proceso consiste en sumar cada uno de los componentes básicos de un sistema (generalmente cada byte) y almacenar el valor del resultado. Posteriormente se realiza el mismo procedimiento y se compara el resultado con el valor almacenado. Si ambas sumas concuerdan se asume que los datos probablemente no han sido corrompidos."

¿Todas las Ecus tiene este tipo de cheksum?

No. Depende íntegramente de cada fabricante.

Por suerte para nuestra ecu de Corsa, GM siguió con su larga trayectoria de uso de un Checksum Simple de 16bits.

¿Cómo lo calculo para mi BIN?

bien.

Es importante a partir de este momento definir que trabajaremos con archivos de 32kb es decir para memorias 27c256, luego duplicaremos el archivo a fin de grabarlo en una 27c512 de ser necesario, pero para evitar problemas iniciales, fijamos este contexto de trabajo.

Basados en que estamos tarbajando con un archivo de 32kb, esto quiere decir 32768 bytes o valores o números.

Generalmente para la identificacion de un valor dentro de una lista de valores se utiliza un índice, este índice se inicializa en "0" (cero), es decir si me refiero al valor ubicado en la posición "0" me estoy refiriendo al primer valor.

Como el índice mínimo es "0" el máximo será "32767"

De esta manera estamos en condiciones de ver como GM utiliza el ChkSum y donde lo almacena.

El checksum se calcula sumando los valores iniciando en la posición 8 y terminando en la posición 32767.

El valor obtenido se compara con el valor almacenado de 16bits en la posición 6 y 7.



En la imagen se puede ver, la sección azul es la que se usa para realizar la suma de valores, nótese que los valores intermedios no se pusieron a fines didácticos pero la suma va desde la posición 8 a la 32767.

En color amarillo se aprecia el valor tal cual nos tiene que dar.

Es importante aclarar que estos valores están representados en Base Hexadecimal es indispensable que el lector conozca y maneje dicho sistema con facilidad.

En color rojo, se puede apreciar la interpretación ASCII de cada valor Hexadecimal y en este caso nos muestra el tipo y el numero de serie del binario, el cual debe y corresponde con la etiqueta de la ECU.

Bien, ya sabemos donde está y cómo se calcula el checksum, estamos en condiciones de proseguir con la hubicacion de los mapas.

hice una herramienta simple para que puedan verificar rapidamente el cheksum de un archivo de 32kb correspondiente a un binario, como el CSUN original que adjunté con anterioridad.

Descargas

No hay comentarios:

Publicar un comentario