Tableau de bord rétro-ingénierie Nissan Murano Z50

Nous avons un Nissan Murano 2005. Américain. Ni bluetooth ni, encore plus, un tableau de bord numérique, mais j'en ai envie. Si le problème avec le bluetooth est résolu en vissant des appareils comme celui-ci :



... alors il sera plus difficile de numériser le tableau de bord. Cependant, les yeux ont peur, mais les mains ont peur.



Pour les expériences, j'ai acheté un bien rangé à un européen, mais fondamentalement, il ne diffère en rien d'un américain, à l'exception de l'emplacement des boutons du compteur kilométrique et des feux de freinage, et des réglages actuels de l'aiguille du compteur de vitesse graisse et n'essaie pas de trouver de l'huile chez moi). Le fait est qu'un Européen et un Américain ont une vitesse maximale différente sur le compteur de vitesse, respectivement, à 240 km/h sur un Américain, un Européen affichera environ 210. Ainsi, la superposition graphique n'est pas interchangeable :





De plus, selon la documentation du tableau de bord (le fichier Pidorka.pdf, je laisserai toutes les archives à la fin), branchez l'alimentation sur le ranger. Les contacts 22, 23, 24 sont des fils noirs, dans le schéma sont marqués de la lettre "B" nous nous connectons au moins (un ou tous ensemble peu importe), et les contacts 21 "Y / R" sont jaunes avec un rouge bande et 20 "O" sont orange (les deux à la fois) à + 12 volts. Le contact 15 "R/W" rouge avec une bande blanche correspond à l'éclairage du bien rangé, le même 12 volts, mais il n'est pas nécessaire de le brancher. Remarque importante : le numéro de contact réel peut différer de celui indiqué sur le schéma, car les ingénieurs de Nissan sont entièrement japonais et appellent le numéro de contact en japonais ! C'est-à-dire qu'il y a trois prises sur la carte - une principale pour la connexion à une brouette et deux pour la connexion des boutons de réinitialisation du feu stop et du compteur kilométrique. Ainsi, au lieu de désigner des contacts dans chaque prise de 1 à maximum,ils ont combiné les numéros des trois prises en un seul groupe, de sorte que le premier contact par numéro se trouve sur la première prise et le dernier sur la troisième. Bref, laissez-vous guider par les couleurs et mes photos. Voici une photo du dos :





Voici un schéma du fichier Pidorka.pdf (page 10) avec les numéros de contact et où il va :





Et maintenant, je vais décrire le fonctionnement du panneau selon la documentation Pribka.pdf.



  • Lampe de ceinture de sécurité voie 3
  • Lampe lave-glace - broche 6
  • Lampe de batterie broche 4
  • Lampe d'alarme broche 5
  • Fonctionnement du compteur de vitesse :


Contact 14 "V/W" Pourpre avec la rayure blanche. Le tableau de bord lui fournit du +5 volts. Le signal du capteur de vitesse ferme le contact à la terre, formant une unité logique dessus. Il y a 8 impulsions au sol par tour de roue.



Et ici commence le plus délicieux. Toutes les autres données affichées par le tableau de bord proviennent du bus UART, à savoir : tachymètre, niveau de carburant, température du liquide de refroidissement, erreur moteur, CVT, ABS, basse pression des pneus, AWD, AWD Lock, clignotants, feux de route, VDC OFF, SLIP, indicateurs de régulateur de vitesse - CRUISE et SET, CVT, indicateur de porte ouverte, niveau d'huile, dimensions, signal sonore et mode de boîte de vitesses (P, D, R, S et ainsi de suite, y compris le mode manuel et le numéro de vitesse). Le kilométrage du compteur kilométrique est calculé en fonction des lectures du signal du compteur de vitesse et est écrit dans la mémoire du tableau de bord (y compris). Lorsque je connecte le rangement de quelqu'un d'autre à ma voiture, les lectures du compteur kilométrique d'un rangement non natif ne sont pas réinitialisées. 



Ensuite, je donnerai les relevés du tidy lorsque l'alimentation est branchée, mais il n'y a pas de signaux de contrôle (d'après le fichier Tidy.pdf page 32). L'UART n'est pas connecté et les lignes des broches 3, 4, 5 et 6 sont suspendues dans l'air :



Compteur de vitesse, tachymètre, carburant, température du liquide de refroidissement - lectures sur zéros. Le panneau lui-même sera en mode nuit, c'est-à-dire que l'éclairage des instruments est allumé. L'affichage du variateur n'affiche rien. Le couineur est silencieux. 



ABS, VDC OFF, SLIP, Brake Error - Tous ces indicateurs doivent être allumés lorsque l'alimentation est connectée et qu'il n'y a pas de communication. 



Feux de route, porte non fermée, basse pression des pneus, CRUISE, SET, AWD, AWD LOCK, huile, clignotants, erreur moteur, CVT - ces lampes seront éteintes.



Nous devons maintenant nous connecter aux broches UART et transmettre les données à l'ordinateur à l'aide d'un pont USB-UART. J'ai utilisé celui-ci :





Vous pouvez utiliser n'importe quel autre pont USB vers UART comme demandé. Les défoncés peuvent obtenir le pourcentage de l'arduino UNO ou le court-circuiter pour une réinitialisation et utiliser l'UART intégré. En bref, le TX de l'appareil (broche 18 "R/L" rouge avec une bande bleue) est connecté au RX de notre convertisseur UART et l'un des fils noirs (broches 22, 23, 24) à la broche GND UART . Ensuite, nous lançons n'importe quel moniteur de port COM, sélectionnons notre UART dans la liste, connectons et observons le flux de conscience. C'est la version courte. Maintenant plus en détail. Nous téléchargeons, par exemple, ceet branchez l'UART sur USB. Un nouveau COM devrait apparaître dans la liste des ports COM et s'y connecter. Maintenant, nous observons le flux de conscience depuis le tableau de bord dans la fenêtre principale du programme. Si nous ne le voyons pas, alors vous avez tout fait correctement, car vous devez toujours sélectionner la vitesse de réception des données - Baud Rate. En choisissant différents modes, j'ai écarté tout ce qui est supérieur à 115200, car avec de tels paramètres, le terminal produisait des zéros solides. Au moins une certaine structure a commencé à apparaître dans les paramètres entre 9600 et 19200. Mais ce n'est pas devenu plus clair. Découragé, j'ai appuyé mon menton avec ma main et, d'un coup, j'ai trouvé un oscilloscope sur la table ! Wow - J'ai pensé. - J'ai une telle chose ! Bref, j'ai décidé de voir ce que montrera cette shaitan-machine. Ayant en quelque sorte repris les réglages, j'ai observé un quelque chose d'incompréhensible avec lequel, je ne sais pas quoi faire de mon esprit. D'accord, cherchons ce que représente réellement le débit en bauds. Oui, Wikipédia dit que c'est le nombre de bits de données par seconde. Eh bien, je pense, laissez-moi regarder l'oscilloscope pour la durée de l'impulsion la plus courte. Il s'est avéré que c'était quelque chose comme 70 nanosecondes. Après avoir gratté mon navet, j'ai décidé de diviser cette affaire en 1 000 000 nanosecondes, et pourquoi pas ? Le résultat s'est avéré être proche de 14400. Il existe une telle vitesse - j'ai repensé et j'ai défini les paramètres suivants au cas où : Baud Rate 14400, Data bits - 8, Parity - impair, Stop bits - 1, Handshaking XON / XOFF. Et merde tout d'un coup ça a marché ! Eh bien, c'est-à-dire que rien n'a changé, la fenêtre affichait toujours le même ensemble étrange de caractères, mais le chuyka m'a dit que j'allais dans la bonne direction. Bref, j'ai retiré la chose suivante du compteur de vitesse : 



C'est après décodage



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 

      
      





J'ai fouillé avec des zéros, je n'ai rien trouvé d'intéressant, mais, tout à coup, à nouveau, j'ai constaté que l'octet avec le signe "A ..." est répété toutes les 10 fois. J'ai conduit à cette structure :



(Pièce répétée)



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
      
      





Les avant-derniers octets sont toujours les premiers zéros, si vous traduisez HEX en DECIMAL, ils passent de 160 à 169. HEX - l'ensemble de caractères mentionné ci-dessus n'est rien de plus que des nombres décimaux au format hexadécimal (je me suis presque cassé les doigts en écrivant) . 



Il a fait chaud. Permettez-moi de penser que je vais transmettre les mêmes données au bien rangé via Terminal. Je branche le convertisseur TX USB-UART dans le RX de l'appareil, et il commence à biper avec toutes les couleurs de l'arc-en-ciel. Ici, je suppose que ce n'est pas si simple. Apparemment, l'UART de la couche physique est quelque peu différent de celui utilisé dans les mêmes arduins. J'enlève la superposition du rangement, l'émousse sur la planche, redessine le circuit et ouais ! En effet, il s'agit d'une paire différentielle. Sans entrer dans les détails, je dirai seulement que j'ai soudé directement aux pastilles qui vont directement au contrôleur et ensuite tout a bien fonctionné. Voici une photo de l'endroit où souder quelque chose :





Et maintenant, le plus délicieux. Nous transportons toute cette nanotechnologie dans la voiture, nous coupons notre rangement modifié, UART au hêtre et rangé. Et maintenant on coupe non pas la sortie pour le ranger, mais plutôt l'ENTREE (Contact 19 "R/B" rouge avec une bande noire) pour supprimer les données que la voiture envoie au tableau de bord. Puis on met le contact, lance Terminal sur le hêtre et il se met à enregistrer tout ce qui vient au rangement. Et maintenant, nous commençons à enfoncer tous les boutons d'affilée dans notre voiture. On ouvre et ferme les portières, on met les essuie-glaces, on appuie sur le gaz-frein-marche arrière-voir qui a ça, la lumière lointaine, les clignotants. Il est conseillé de tuer le moteur et le variateur afin que nous puissions effacer les codes d'erreur du moteur et du variateur. De plus, le moteur doit être tué dans différentes versions et poses, et chaque capteur séparément. En général, j'ai pris les données de la voiture, et voici ce qui s'est passé :



(   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 
      
      





Wow - J'ai pensé. - C'est presque comme un compteur de vitesse ! Laissez-moi, je pense, ranger les journaux que j'ai enregistrés depuis la voiture. Nourris. Le ranger a répété tout ce que je faisais dans une voiture de voiture en voiture. Eka, je suis intelligent - je n'étais pas timide pour moi-même ! J'ai décidé de changer certains signes et de remettre à nouveau le fichier modifié dans le rangement. Rien ne s'est passé. Hmm - J'ai pensé. Que faire alors ? Et il était déprimé, posant à nouveau son menton sur sa main.



.... Chiffres étranges à la fin de chaque section ...

... Quatre paires de zéros puis quelques chiffres ...

J'ai ouvert la calculatrice Windows. Pour une raison quelconque, je suis passé en mode HEX. Pour une raison quelconque, j'ai décidé de prendre tous les nombres au format HEX, à l'exclusion du numéro de section et du dernier nombre, et de les multiplier ensemble en utilisant la méthode XOR. Tout à coup! La somme des nombres XOR était égale au dernier nombre de la section. Intéressant - je pensais. Apparemment, l'octet de somme de contrôle m'a traversé l'esprit. J'ai changé plusieurs nombres, les XOR ensemble, entré le montant à la fin de la section et les ai donnés au ranger. Le ranger a changé les lectures du tachymètre. Tout est clair. La structure est devenue claire :



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



Numéro de section - A0



Données - 40 00 00 78 3F 00  Octets



de fin de ligne - 00 00 00 



Octet de somme de contrôle - 07



Bref, afin de déchiffrer quoi où quel bit change en @ovnokodil, j'ai ce logiciel :





La gestion est extrêmement primitive - cliquez sur "Sélectionner le port". Nous attendons... Nous attendons toujours... Nous attendons encore... En tout cas, c'est ainsi avec moi. Une fenêtre avec une liste de ports apparaîtra. En cliquant sur le nom du port, il se connecte au port. L - Logique ! Pour démarrer le transfert, nous appuyons sur le bouton "Démarrer le transfert". L - Logique ! Le côté gauche contient 10 sections de A0 à A9. Pendant la transmission, ces sections sont chargées séquentiellement dans le port sélectionné. Déplacez le pointeur de la souris sur n'importe quelle cellule et tournez la roue. Les valeurs changent et les lectures à la volée changent à la volée. Sur le côté droit, la réponse du bien rangé aurait dû être affichée, mais je suis @ l'encodeur, tout était stupide pour moi, car maintenant il n'y a qu'une sortie formatée. Vous pouvez enregistrer les paramètres HEX actuels dans un fichier, puis le charger. Pour cela, appuyez sur les boutons du même nom. Le logiciel calcule automatiquement le montant et recalcule l'octet d'honnêteté. Alors on ne le touche pas,et tu n'auras pas de nifiga. L'octet dans le carré bleu peut être modifié, mais il s'agit très probablement du séparateur. Cela ne semble pas affecter les données de quelque façon que ce soit. Pour un ouvrage pleinement fonctionnel, il suffit d'alimenter les deux premiers tronçons A0 et A1. La première section contient les données du tachymètre et autre chose, la seconde contient toutes les ampoules d'erreur et la position de la poignée de transmission automatique. Bref, vous comprendrez. Au milieu, les points bleus sont les commutateurs d'envoi de section. S'il est bleu, alors cette section est envoyée au port COM. Au démarrage, le composant logiciel enfichable par défaut s'ouvre, qui fonctionne à 100%. Softina courbe, vole avec une régularité enviable, et s'en moque. DANSLa première section contient les données du tachymètre et autre chose, la seconde contient toutes les ampoules d'erreur et la position de la poignée de transmission automatique. Bref, vous comprendrez. Au milieu, les points bleus sont les commutateurs d'envoi de section. S'il est bleu, alors cette section est envoyée au port COM. Au démarrage, le composant logiciel enfichable par défaut s'ouvre, qui fonctionne à 100%. courbe Softina, vole avec une régularité enviable, et ne s'en soucie pas. DANSLa première section contient les données du tachymètre et autre chose, la seconde contient toutes les ampoules d'erreur et la position de la poignée de transmission automatique. Bref, vous comprendrez. Au milieu, les points bleus sont les commutateurs d'envoi de section. S'il est bleu, alors cette section est envoyée au port COM. Au démarrage, le composant logiciel enfichable par défaut s'ouvre, qui fonctionne à 100%. courbe Softina, vole avec une régularité enviable, et s'en moque. DANS L'archiviste contient tout ce dont vous avez besoin pour des danses indépendantes à partir de tambourins, y compris des manuels pour une voiture et ma courbe de logiciel.






Les serveurs cloud de Macleod sont rapides et sécurisés.



Inscrivez-vous en utilisant le lien ci-dessus ou en cliquant sur la bannière et bénéficiez d'une remise de 10 % pour le premier mois de location d'un serveur de n'importe quelle configuration !






All Articles