Pero como se corrige realmente cheksum?

Nivel 1: Importante antes de empezar, aqui teneis la introducción y conceptos básicos sobre chiptuning, para introducirte en este apasionante mundo. Imprescindible leer!!.

Moderadores: Carlillos, robertop

Responder
rmonje2
Suscrito Nivel 2
Mensajes: 6
Registrado: 12 Nov 2019 13:27
Lugar: Madrid
Ocupación: Mecánica
Edad: 45

Pero como se corrige realmente cheksum?

Mensaje por rmonje2 »

Me gustaria saber como realizar el calculo del cheksum sin programa alguno, se lo siguiente:


EJEMPLO:
PROCEDIMIENTO CORREGIR EL ARCHIVO DE 65KB leído de ECU siemens MS43, paso el archivo a formato hexadecimal con WINHEX, como se que la LA VELOCIDAD MAXIMA, esta en las direcciones DD7,DDD,DE0, como maxima QUIERO QUE SEA 160KM/H pues cambio los tres valores adecuados por valor A0, OSEA 160. vosotros podeis poner la que querais...
Es decir:

Se y he concluido que los valorodes de velocidad maximo estan el máximo del cambio automatico automatico en la dirección 0xDD7

El de velocidad maximo load deteccion en el 0xDDD

El maximo secuencial en la 0xDE0

Como he dicho edito el archivo ORIGINAL de la lectura de la ECU en Hexadecimal.

Caluculas que 0x DD7 PASAMOS A DECIMAL CON LA CALCULADORA WINDOWS NOS DA 3543, 0x DDD 3543 , y OxDE0 NO DA 3552

Abrimos el fichero con el WINHEX, o tunerpro ver en HEX, Nos vamos a fijar en el margen izquierdo y obsevamos pone al principio línea 00000000:, pues con esto de referecia buscamos la línea, 3536 y contamos de izquierda a derecha cada bit de los 16 de en uno en uno empezando por el 3536, y observamos que justamente el 3543 es EE, SEGIMOS CONTANDO y el 3549 es FF y seguimos contando y vemos que justo el 3552 es la linea y el primer bit es FF P:
ESTO SIGNIFICA:

3543 EE 0XDD7 VALOR ORIGINA = EE OSEA EE es igual en decimal a 238 que es la SPPED MAX AUTOMATIC.

3549 FF 0XDDD VALOR ORIGINAL = FF OSEA FF es igual en decimal 255 que es la SPPED MAX FULL LOAD DETECCION.

3552 FF 0XDE0 VALOR ORIGINAL 0 FF OSEA es igual en decimal a 255 que es la SPEED MAX MANUAL.


Pues ya sabemos que si cambiamos los tres valoreas valos por ejemplo A0 (que es lo que he hecho yo), pues A0 es igual a 16O

Como lo hacemos manualmente con programas como el WINHEX.

Ojo pero ahora pasa que la suma al calcular el cheksun sera distinta pues hemos variado tres valores del fichero , seguro que ya no es 7C35 y es 7BE7 (lo he visto con ECM).

Pues el problema que el fichero todabia NO VALE PUES EL ORIGINAL en su suma es ES 7CXX y estoy seguro que si esta dentro del rango de 7C si vale pero 7B no .(Lo se por que he metido fichero en la Ecu en rango 7CXX y el coche arranca).

He visto que en binario valen la modificaciones si se esta dentro del rango:

TIENE QUE SER IGUAL LOS PRIMEROS
01111100 EMPEZANDO DE IZQUIERDA A DERECHA



Después de la parrafada, pero como se varia y se realiza el cambio del cheksum para uno adecuado?

Creo que es la suma desde `pr ejemplo 010000 de inicio hasta 00FFFF, pero lo que no entiendo es como el EMC, EL WINOLD, etc varian el resultado ,esque añaden cambios campos que no tienen valor para cambiar el valor de 3F0 y 3F1?.


Un saludo

Responder