Tablero de ingeniería inversa Nissan Murano Z50

Tenemos un Nissan Murano 2005. Americano. Ni bluetooth ni, más aún, un tablero digital, pero quiero. Si el problema con bluetooth se resuelve atornillando dispositivos como este :



... entonces será más difícil digitalizar el tablero. Sin embargo, los ojos tienen miedo, pero las manos.



Para los experimentos, compré un tidy a un europeo, pero fundamentalmente no se diferencia de un estadounidense en nada, excepto en la ubicación de los botones del odómetro y la luz de freno, y la configuración actual de la aguja del velocímetro (y tampoco es así grasa y no trata de encontrarme aceite). El hecho es que un europeo y un estadounidense tienen una velocidad máxima diferente en el velocímetro, respectivamente, a 240 km / h en un estadounidense, un europeo mostrará aproximadamente 210. Por lo tanto, la superposición gráfica no es intercambiable:





Además, de acuerdo con la documentación del tablero (el archivo Pidorka.pdf, dejaré todos los archivos al final), conecte la alimentación al tidy. Los contactos 22, 23, 24 son cables negros, en el diagrama están marcados con la letra "B" que conectamos al menos (uno o todos juntos no importa), y los contactos 21 "Y / R" son amarillos con un rojo raya y 20 "O" son de color naranja (ambos a la vez) a + 12 voltios. Contacto 15 "R / W" rojo con una raya blanca es la iluminación del ordenado, los mismos 12 voltios, pero no es necesario conectarlo. Nota importante: el número de contacto real puede diferir del que se indica en el diagrama, ¡porque los ingenieros de Nisan son completamente japoneses y llaman al número de contacto en japonés! Es decir, hay tres enchufes en la placa: uno principal para conectar a una carretilla y dos para conectar la luz de freno y los botones de reinicio del odómetro. Entonces, en lugar de designar contactos en cada enchufe de 1 al máximo,combinaron los números de los tres enchufes en un grupo, por lo que el primer contacto por número está en el primer enchufe y el último en el tercero. En definitiva, déjate guiar por los colores y mis dibujos. Aquí hay una foto de la espalda:





Aquí hay un diagrama del archivo Pidorka.pdf (página 10) con los números de contacto y dónde va:





Y ahora describiré cómo funciona el panel de acuerdo con la documentación de Pribka.pdf.



  • Luz de cinturón de seguridad vía 3
  • Lámpara de arandela - pin 6
  • Clavija 4 de la lámpara de la batería
  • Pin 5 de la lámpara de alarma
  • Operación del velocímetro:


Contacto 14 "V / W" Púrpura con raya blanca. El tablero le emite +5 voltios. La señal del sensor de velocidad cierra el contacto a tierra, formando una unidad lógica sobre él. Hay 8 pulsos al suelo por revolución de rueda.



Y aquí comienza lo más delicioso. Todos los demás datos que muestra el tablero provienen del bus UART, a saber: tacómetro, nivel de combustible, temperatura del refrigerante, error del motor, CVT, ABS, baja presión de los neumáticos, AWD, bloqueo de AWD, señal de giro, luz alta, VDC APAGADO, SLIP, Indicadores de control de crucero: CRUCERO y AJUSTE, CVT, indicador de puerta abierta, nivel de aceite, dimensiones, señal acústica y modo de caja de cambios (P, D, R, S, etc., incluido el modo manual y el número de marcha). El kilometraje del odómetro se calcula de acuerdo con las lecturas de la señal del velocímetro y se escribe en la memoria del tablero (incluida). Cuando conecto el tidy de otra persona a mi automóvil, las lecturas del odómetro de un tidy no nativo no se restablecen. 



A continuación, daré las lecturas del tidy cuando la energía esté conectada, pero no hay señales de control (según el archivo Tidy.pdf página 32). El UART no está conectado y las líneas de los pines 3, 4, 5 y 6 cuelgan en el aire:



velocímetro, tacómetro, combustible, temperatura del refrigerante - lecturas en ceros. El panel en sí estará en modo nocturno, es decir, la iluminación del instrumento estará encendida. La pantalla del variador no muestra nada. El chillón está en silencio. 



ABS, VDC APAGADO, SLIP, Error de freno: todos estos indicadores deben estar encendidos cuando la energía está conectada y no hay comunicación. 



Luz de carretera, puerta no cerrada, baja presión de los neumáticos, CRUCERO, ESTABLECIDO, AWD, BLOQUEO DE AWD, aceite, señales de giro, error del motor, CVT: estas luces se apagarán.



Ahora necesitamos conectarnos a los pines UART y enviar datos a la computadora usando un puente USB-UART. Usé este:





Puede utilizar cualquier otro puente de USB a UART según se solicite. Los apedreados pueden obtener el porcentaje del arduino UNO o cortocircuitarlo para reiniciarlo y usar el UART incorporado. En resumen, el TX del dispositivo (pin 18 "R / L" rojo con una franja azul) está conectado al RX de nuestro convertidor UART y cualquiera de los cables negros (pines 22, 23, 24) al pin GND UART . A continuación, lanzamos cualquier monitor de puerto COM, seleccionamos nuestro UART en la lista, nos conectamos y observamos el flujo de conciencia. Esta es la version corta. Ahora con más detalle. Descargamos, por ejemplo, estey conecte el UART a USB. Debería aparecer un nuevo COM en la lista de puertos COM y conectarse a él. Ahora observamos el flujo de conciencia desde el tablero en la ventana principal del programa. Si no lo vemos, entonces hizo todo bien, porque aún necesita seleccionar la velocidad de recepción de datos: velocidad en baudios. Al elegir diferentes modos, descarté todo lo que sea superior a 115200, porque con tales configuraciones, el terminal produce ceros sólidos. Al menos algo de estructura comenzó a aparecer en los escenarios entre 9600 y 19200. Pero no quedó más claro. Desanimado, apoyé la barbilla con la mano y, de repente, ¡encontré un osciloscopio sobre la mesa! Guau - pensé. - ¡Tengo tal cosa! En resumen, decidí ver qué mostraría esta máquina-shaitan. Habiendo recogido de alguna manera la configuración, observé algo incomprensible con lo que no sé qué hacer con mi mente. Bien, busquemos lo que realmente significa Baud Rate. Si, wikipedia dice que es el número de bits de datos por segundo. Bueno, creo, déjame mirar el osciloscopio para ver la longitud del pulso más corto. Resultó ser algo así como 70 nanosegundos. Después de rascarme el nabo, decidí dividir este caso en 1.000.000 de nanosegundos, ¿y por qué no? El resultado resultó ser cercano a 14400. Existe tal velocidad - lo pensé de nuevo, y establecí los siguientes ajustes por si acaso: Velocidad en baudios 14400, Bits de datos - 8, Paridad - impar, Bits de parada - 1, Handshaking XON / XOFF. ¡Y maldita sea, de repente funcionó! Bueno, es decir, nada ha cambiado, la ventana todavía muestra el mismo conjunto extraño de caracteres, pero el chuyka me dijo que me estaba moviendo en la dirección correcta. En resumen, eliminé lo siguiente del velocímetro: 



esto es después de decodificar



A0 0F 00 0F 00 14 00 00 00 00 14 A1 0B 00 0B 00 6E 00 00 00 00 6E A2 0F 00 02 00 14 10 00 00 00 09 A3 07 00 00 00 6E 05 00 00 00 6C A4 0F 00 0C 40 34 3F 00 00 00 48 A5 02 00 0E 00 6E 01 08 00 00 6B A6 0C 00 01 00 14 1F 00 00 00 06 A7 00 00 0F 00 6E 00 00 00 00 61A8 00 00 00 00 14 00 00 00 00 14 A9 00 00 00 00 6E 00 00 00 00 6E 

      
      





Hurgué con ceros, no encontré nada interesante, pero, de repente, nuevamente, encontré que el byte con el signo "A ..." se repite cada 10 veces. Conduje a esta estructura:



(pieza repetida)



A0 0F 00 0F 00 14 00 00 00 00 14 

A1 0B 00 0B 00 6E 00 00 00 00 6E 

A2 0F 00 02 00 14 10 00 00 00 09 

A3 07 00 00 00 6E 05 00 00 00 6C 

A4 0F 00 0C 40 34 3F 00 00 00 48 

A5 02 00 0E 00 6E 01 08 00 00 6B 

A6 0C 00 01 00 14 1F 00 00 00 06 

A7 00 00 0F 00 6E 00 00 00 00 61

A8 00 00 00 00 14 00 00 00 00 14 

A9 00 00 00 00 6E 00 00 00 00 6E
      
      





Los penúltimos dos bytes son siempre los primeros ceros, si traduces HEX a DECIMAL, crecen de 160 a 169. HEX: el conjunto de caracteres mencionado anteriormente no es más que números decimales en formato hexadecimal (casi me rompo los dedos mientras escribo) . 



Se puso caliente. Déjame pensar que enviaré los mismos datos al ordenado a través de Terminal. Enchufo el convertidor TX USB-UART al RX del dispositivo y comienza a sonar con todos los colores del arco iris. Aquí supongo que no es tan sencillo. Aparentemente, el UART de la capa física es algo diferente al que se usa en los mismos arduins. Quito la superposición del ordenado, la opaco en el tablero, vuelvo a dibujar el circuito y ¡sí! De hecho, este es un par diferencial. Sin entrar en detalles, solo diré que soldé directamente a las almohadillas que van directamente al controlador y luego todo funcionó bien. Aquí hay una foto de dónde soldar algo:





Y ahora, el más delicioso. Llevamos toda esta nanotecnología al coche, cortamos nuestro modificado ordenado, UART a la haya y ordenado. Y ahora cortamos no la salida al ordenado, sino la ENTRADA (Contacto 19 "R / B" rojo con una raya negra) para eliminar los datos que el coche envía al salpicadero. Luego encendemos el encendido, lanzamos Terminal en la haya y comienza a grabar todo lo que llega al ordenado. Y ahora empezamos a presionar todos los botones seguidos de nuestro coche. Abrimos y cerramos las puertas, encendemos los limpiaparabrisas, presionamos el acelerador-freno-marcha atrás-mira quién tiene eso, la luz distante, las señales de giro. Es recomendable apagar el motor y el variador para que podamos borrar los códigos de error del motor y del variador. Además, el motor debe apagarse en diferentes versiones y poses, y cada sensor por separado. En general, tomé los datos del auto y esto es lo que sucedió:



(   A0  A9)

A0 40 00 00 78 3F 00 00 00 00 07 

A1 00 00 00 10 00 00 00 00 00 10 

A2 40 00 00 78 3F 00 00 00 00 07 

A3 00 00 00 10 00 00 00 00 00 10 

A4 40 00 00 78 3F 00 00 00 00 07 

A5 00 00 00 10 00 00 00 00 00 10 

A6 40 00 00 78 3F 00 00 00 00 07 

A7 00 00 00 10 00 00 00 00 00 10 

A8 40 00 00 78 3F 00 00 00 00 07 

A9 00 00 00 10 00 00 00 00 00 10 
      
      





Guau - pensé. - ¡Es casi como un velocímetro! Permítanme, creo, poner en orden los registros que grabé desde el automóvil. Alimentados. El ordenado repitió todo lo que hice en un coche, de coche en coche. Eka soy inteligente, ¡no era tímido conmigo mismo! Decidí cambiar algunos letreros y volver a enviar el archivo modificado al ordenado. No pasó nada. Hmm - pensé. ¿Qué hacer entonces? Y estaba deprimido, descansando su barbilla en su mano nuevamente.



.... Números extraños al final de cada sección ...

... Cuatro pares de ceros y luego algunos números ...

Abrí la calculadora de Windows. Por alguna razón cambié al modo HEX. Por alguna razón, decidí tomar todos los números en formato HEX, excluyendo el número de sección y el último número, y multiplicarlos usando el método XOR. ¡Repentinamente! La suma de los números XOR fue igual al último número de la sección. Interesante - pensé. Aparentemente, el byte de la suma de comprobación cruzó por mi mente. Cambié varios números, los XOR juntos, ingresé la cantidad al final de la sección y los di al ordenado. El ordenado cambió las lecturas del tacómetro. Todo claro. La estructura quedó clara:



A0 40 00 00 78 3F 00 00 00 00 07 



Número de sección - A0



Datos - 40 00 00 78 3F 00 



Bytes de fin de línea - 00 00 00 



Byte de suma de comprobación - 07



En resumen, para descifrar qué, dónde, qué bit cambia a @ ovnokodil, tengo este software:





La administración es extremadamente primitiva: haga clic en "Seleccionar puerto". Estamos esperando ... Seguimos esperando ... Estamos esperando de nuevo ... En cualquier caso, así es conmigo. Aparecerá una ventana con una lista de puertos. Al hacer clic en el nombre del puerto, se conecta al puerto. L - ¡Lógica! Para iniciar la transferencia, pulsamos el botón "Iniciar transferencia". L - ¡Lógica! El lado izquierdo contiene 10 secciones de A0 a A9. Durante la transmisión, estas secciones se cargan secuencialmente en el puerto seleccionado. Mueva el puntero del mouse a cualquier celda y gire la rueda. Los valores cambian y las lecturas sobre la marcha cambian sobre la marcha. En el lado derecho, debería haberse mostrado la respuesta del tidy, pero yo soy @ el codificador, todo fue estúpido para mí, porque ahora solo hay una salida formateada. Puede guardar la configuración HEX actual en un archivo y luego cargarlo. Para hacer esto, presione los botones del mismo nombre. El software calcula automáticamente la cantidad y recalcula el byte de honestidad. Entonces no lo tocamosy no obtendrás nifiga. El byte en el cuadrado azul se puede cambiar, pero lo más probable es que este sea el separador. No parece afectar los datos de ninguna manera. Para un trabajo completamente funcional, basta con alimentar las dos primeras secciones A0 y A1. La primera sección contiene datos del tacómetro y algo más, la segunda contiene todas las bombillas de error y la posición de la palanca de la transmisión automática. En resumen, lo entenderás. En el medio, los puntos azules son los interruptores de envío de la sección. Si es azul, esta sección se envía al puerto COM. Al inicio, se abre el complemento predeterminado, que funciona al 100%. Softina curva, vuela con envidiable regularidad, y no le importa. ENLa primera sección contiene datos del tacómetro y algo más, la segunda contiene todas las bombillas de error y la posición de la palanca de la transmisión automática. En resumen, lo entenderás. En el medio, los puntos azules son los interruptores de envío de la sección. Si es azul, esta sección se envía al puerto COM. Al inicio, se abre el complemento predeterminado, que funciona al 100%. Softina curva, vuela con envidiable regularidad, y no le importa. ENLa primera sección contiene datos del tacómetro y algo más, la segunda contiene todas las bombillas de error y la posición de la manija de la transmisión automática. En resumen, lo entenderás. En el medio, los puntos azules son los interruptores de envío de la sección. Si es azul, esta sección se envía al puerto COM. Al inicio, se abre el complemento predeterminado, que funciona al 100%. Softina curva, vuela con envidiable regularidad, y no le importa. EN El archivero contiene todo lo que necesita para bailes independientes de panderetas, incluidos manuales para un automóvil y mi curva de software.






Los servidores en la nube de Macleod son rápidos y seguros.



Regístrese usando el enlace de arriba o haciendo clic en el banner y obtenga un 10% de descuento durante el primer mes de alquiler de un servidor de cualquier configuración.






All Articles