Vous êtes sur la page 1sur 11

04/05/2020

Bosch EDC15 MapSwitch – Tangente Motorsport


https://tangentmotorsport.com/index.php/2019/03/02/bosch-edc15-mapswitch/
1/9

Bosch EDC15 MapSwitch


Donc, pendant des années, les tuners ont essayé divers di érentes techniques de plusieurs airs
dans un ÉCU. Il y a plusieurs avantages à cela:
1. Plusieurs chansons avec di érents niveaux de puissance de sortie
2. Un seul morceau peut être réglé de manière que le moteur ne démarre pas: un peu comme un
niveau supplémentaire de
sécurité, le conducteur doit passer dans la mélodie qui va démarrer le moteur
3. Di érents combustibles besoin de di érents allumage des paramètres tels que le calage de
l'allumage et
de la durée de nommer un couple.
La présente méthode pour y parvenir a été avec des méthodes qui a impliqué l'ouverture de l'
ECU et l'évolution du matériel( mémoire ash avec le double de la taille pour avoir 2
airs comme un exemple). Dans ce post, je vais écrire à propos de mon voyage à parvenir à
une solution de logiciel basé sur le Bosch EDC15 Écus.
Voici une vidéo d'elle en action:
multi-carte bosch edc15 démontage
multi-carte bosch edc15 démontage
04/05/2020
Bosch EDC15 MapSwitch – Tangente Motorsport
https://tangentmotorsport.com/index.php/2019/03/02/bosch-edc15-mapswitch/
2/9

L'idée de base est d'avoir l'ECU basculer entre les di érents datablocks(ce qui est
unique pour les EDC15, ils ont 3 datablocks pour les di érents des variantes de type
Automatique, manuel et 4×4). La condition pour basculer entre les datablocks pourrait
être aussi simple que d'une pédale de frein et le régulateur de vitesse bouton enfoncé
simultanément. La carte sélectionnée peuvent être visualisés en utilisant les sorties disponibles,
tels que:
1. La lueur de la lampe
2. Moteur de dysfonctionnement de la lampe
3. Croisière de contrôle de la lampe
4. RPM indication dans le groupe
J'ai choisi la dernière que je l'ai trouvé à un indicateur clair(1000 pour le 1er bloc de données,
2000 pour la 2ème, etc) alors que si je devais utiliser les lampes, je dois compter
le nombre de clignotements(2) clignote pendant la 2e datablock, 3 pour la 3ème, etc)
Maintenant pour les détails ennuyeux sur le tour de magie:
La 1ère étape est de trouver comment le bus CAN est manipulé. Il y a un bu er dans la mémoire
RAM dans lequel
les messages sont stockés avant leur transmission.
Sur edc15, la découverte de la bu er est facile. Exemple: Recherche de la séquence d'octets: 0x280
ou 0x288 ou de tout autre PEUT-id utilisé par l'ecu. Cela vous indiquera le code
qui gère les comms:
ROM:00094156 mov r5, #280h
ROM:0009415A mov CAN_280, r5 ;CAN_280 - RAM
tampon de manutention id -0x280
ROM:0009415E movb rl4, #8
ROM:00094160 movb byte_C743, rl4
ROM:00094164 mov r4, #288h
ROM:00094168 mov CAN_288, r4
ROM:0009416C movb rl4, #8
ROM:0009416E movb byte_C74F, rl4
ROM:00094172 mov r4, #380h
ROM:00094176 mov CAN_380, r4
ROM:0009417A movb rl4, #8
ROM:0009417C movb byte_C75B, rl4
ROM:00094180 mov r4, #480 h
04/05/2020
Bosch EDC15 MapSwitch – Tangente Motorsport
https://tangentmotorsport.com/index.php/2019/03/02/bosch-edc15-mapswitch/
3/9

Maintenant que vous avez trouvé le POUVEZ bu er, j'ai évoqué le POUVEZ dans la section
publiquement disponibles Bosch documents pour cet ECU. Ci-dessous, j'ai montré le CANBUS
bu er manipulation ID 0x280 dans mon ECU.
MEM_EXT:0000C744 CAN_280: ds 2 ; DONNÉES XREF:
ROM:0009415Aw
MEM_EXT:0000C746 byte_C746: ds 1 ; DONNÉES XREF:
ROM:000945DCw
MEM_EXT:0000C746 ; ROM:0009463Ew ...
MEM_EXT:0000C747 byte_C747: ds 1 ; DONNÉES XREF:
ROM:0009468Aw
MEM_EXT:0000C747 ; ROM:0009475Ew
MEM_EXT:0000C748 can_nmot_low: ds 1 ; DONNÉES XREF:
ROM:0009468Ew
MEM_EXT:0000C748 ; ROM:00094788w
MEM_EXT:0000C749 can_nmot_high: ds 1 ; DONNÉES XREF:
ROM:00094692w
MEM_EXT:0000C749 ; ROM:00094790w
MEM_EXT:0000C74A byte_C74A: ds 1 ; DONNÉES XREF:
ROM:00094696w
MEM_EXT:0000C74A ; ROM:00094814w ...
MEM_EXT:0000C74B byte_C74B: ds 1 ; DONNÉES XREF:
ROM:loc_948A0w
MEM_EXT:0000C74B ; ROM:000948CAw
MEM_EXT:0000C74C byte_C74C: ds 1 ; DONNÉES XREF:
ROM:00094D2Ew
MEM_EXT:0000C74C ; ROM:loc_94DB6w
MEM_EXT:0000C74D byte_C74D: ds 1 ; DONNÉES XREF:
ROM:0009469Ew
MEM_EXT:0000C74D ; ROM:000947E6w
MEM_EXT:0000C74E byte_C74E: ds 1 ; DONNÉES XREF:
ROM:000945C0w
MEM_EXT:0000C74F byte_C74F: ds 1 ; DONNÉES XREF:
ROM:0009416Ew
Utilisation de la jauge rpm pour l'affichage de la carte actuelle(ou de tout autre paramètre comme
boost, SOI,etc), vous devrez modifier la sous-routine d'écriture d'octets 3 et 4 de
04/05/2020
Bosch EDC15 MapSwitch – Tangente Motorsport
https://tangentmotorsport.com/index.php/2019/03/02/bosch-edc15-mapswitch/
4/9

la can id 0x280
ROM:00094780 appels 9, sub_94002
ROM:00094784 add r0, #4
ROM:00094786 mov r9, r4
ROM:00094788 movb can_nmot_low, rl4
ROM:0009478C mov r4, r9
ROM:0009478E ashr r4, #8
ROM:00094790 movb can_nmot_high, rl4
ROM:00094794 mov r1, word_C420
ROM:00094798 add r1, word_C426
ROM:0009479C cmp r1, word_F962
ROM:000947A0 jmpr cc_SGE, loc_947A6
ROM:000947A2 mov r9, r1
ROM:000947A4 jmpr cc_UC, loc_947AA
r4 contient les TR / min. Nous allons modifier cette valeur à ce que nous voulons; pour
afficher la carte sélectionnée dans notre cas.
J'ai inséré mon appel à 94784, à ma routine. Son jusqu'à vous à décider où insérer
cet appel, mais assurez-vous de ne pas changer de logique.
La prochaine étape est de prendre les entrées d'embrayage, de frein ou le régulateur de vitesse.
Cela peut aussi être inferenced le bu er.
exemple: id 0x280, byte 0, le bit 4 est B_kuppl(pédale d'embrayage).
Trouver le code qui écrit sur ce morceau, et vous trouverez B_kuppl
ROM:00094EBC movb rl4, word_C49A+1
ROM:00094EC0 jmpr cc_NZ, loc_94ED0
ROM:00094EC2 mov r4, word_14D6
ROM:00094EC6 movb rl5, [r4]
ROM:00094EC8 jmpr cc_NZ, loc_94ED0
ROM:00094ECA movb rl4, #8
ROM:00094ECC orbe byte_C746, rl4
Comme on le voit dans le code ci-dessus, 0xC94B contient l'état de la pédale d'embrayage. Mais ce
n'est
pas la variable globale. Je suppose que ce n'est que temporaire RAM adresse à laquelle le
commutateur d'embrayage statut est copié lors de cette sous-routine commence(de sorte que, tant
que l'
04/05/2020
Bosch EDC15 MapSwitch – Tangente Motorsport
https://tangentmotorsport.com/index.php/2019/03/02/bosch-edc15-mapswitch/
5/9

sous-programme est encore en cours d'exécution, tout changement de l'embrayage ne seront pas
mis à jour. Sinon, il est possible qu'au début de la sous-routine de l'état de
l'embrayage est di érent de celui quand le sous-programme se termine, entraînant
un comportement imprévisible)
de Trouver la variable globale par la recherche de références croisées pour 0xC94
ROM:0009433E movb rl2, byte_C370
ROM:00094342 movb word_C49B, rl2
0xC370 est la variable globale pour B_kuppl.
Répétez cette opération pour d'autres variables que vous souhaitez utiliser(cruise control état est l'id
0x388/0x38A les pédales de frein et sur 0x288)
Maintenant, pour mapswitching sur EDC15, vous avez besoin de changer la DPP de
Chaque bloc de données est appelée à l'aide de DPP0, DPP1 et DPP2. DPP3 est utilisé pour PEUT.
bloc de données 1:
DPP0 - 0x34
DPP1 - 0x35
DPP2 - 0x36
bloc de données 2:
DPP0 - 0x38
DPP1 - 0x39
DPP2 - 0x3A
datablock 3:
DPP0 - 0x3C
DPP1 - 0x3D
DPP2 - 0x3E
C'est le code que j'ai écrit pour la commutation entre les cartes et l'affichage de boost sur les RPM
de la jauge.
$MOD167 ; Définir C167 mode
$SEGMENTÉ
; Segemented mode mémoire
$CAS
; Les symboles sensibles à la casse
include $(reg167.inc)
04/05/2020
Bosch EDC15 MapSwitch – Tangente Motorsport
https://tangentmotorsport.com/index.php/2019/03/02/bosch-edc15-mapswitch/
6/9

NOM
MINIMON
SUPPOSONS DPP3:système
StackData0
DONNÉES DE LA SECTION DE SYSSTACK
; Les données de la Section de réserve
; La Pile De La Mémoire
ORD
20H
; De 32 Octets
StackData0
Se TERMINE
; Fin de Mannequin-Section
DriverCode0
CODE DE LA SECTION PUBLIC "CDRIVER'
DriverProc
PROC LOIN
mov r4, 0xc036 ;stimuler
shl r4,#2
movb rl1,0xc370 ;b_kuppl
jnb r1.0, aiguille
movb rl1,0xc379 ;cc_cancel bouton à bascule
jnb r1.0, xyz
movb rl1,#1
movb 0xc76e,rl1 ;cc_off anti-rebond
la jmpr cc_uc, aiguille
xyz:
movb rl1,0xc76e
la jmpr cc_z, aiguille
movb rl1,#0
movb 0xc76e,rl1
movb rl1,0xc76f ;retard contre
la jmpr cc_nz, dpp
movb rl1,#0x7f ; initialiser retard compteur de sorte que le r4 n'est pas mis à jour par l'ECU
pour atleast ~ 40ms * 0x7F= 5080ms ~ 5sec
movb 0xc76f,rl1
la jmpr cc_uc, aiguille
dpp:
cmp dpp0,#0x3c
la jmpr cc_eq, lppd
mov dpp0,#0x3c
mov dpp1,#0x3d
mov dpp2,#0x3e
la jmpr cc_uc,aiguille
04/05/2020
Bosch EDC15 MapSwitch – Tangente Motorsport
https://tangentmotorsport.com/index.php/2019/03/02/bosch-edc15-mapswitch/
7/9

lppd:
mov dpp0,#0x34
mov dpp1,#0x35
mov dpp2,#0x36
aiguille:
mov rl1,0xc76f
la jmpr cc_z,end1
subb rl1,#1
mov 0xc76f,rl1
cmp dpp0,#0x3c
la jmpr cc_ne, n1
mov r4,#0x2ee0
la jmpr cc_uc, end1
n1:
mov r4,#0x3e80
end1:
add r0,#4
mov r9,r4
les technologies des énergies renouvelables
DriverProc
ENDP
DriverCode0
Se TERMINE
FIN
Je suggère d'écrire votre propre code, comme la mienne peut-être un peu di cile à suivre
Fondamentalement, mon code est-ce à:
– vérifier si l'embrayage est enfoncée, si oui, alors continuez.
– vérifier si cruice de contrôle de la pression du bouton annuler. Si oui, de stocker 1 dans un octet
de la ram libre
( beaucoup de ram libre dans cet ECU, 0xC820-0xC82F est gratuit sur tous les edc15, j'ai
travaillé sur la, assez pour notre petite routine) et à la sortie de la sous-routine
C'est fait pour “anti-rebond” appuyez sur le bouton (aussi longtemps que le bouton est pressé, pas
de
changement)
– vérifier si les “anti-rebond” de la ram de l'octet 1 si oui, 0 et le commutateur de cartes( par
04/05/2020
Bosch EDC15 MapSwitch – Tangente Motorsport
https://tangentmotorsport.com/index.php/2019/03/02/bosch-edc15-mapswitch/
8/9

4 réflexions sur “Bosch EDC15 MapSwitch”


Yusuf
Le 7 mars 2019 à 08:06

Salut, nihalot
Grandes œuvres, merci pour le partage
la modification de la DPP s)
– Pour afficher la carte sélectionnée à comprendre comment le rpm est affiché sur le
combiné d'instruments.
Permet de dire que vous voulez le rpm aiguille pour montrer à 2000 tr / min. Il y a un facteur de 4.
Si la transmission PEUT message pour est de 2000 tr / min*4= 8000 qui correspond à
0x1F40 en hexadécimal,
Tout ce que nous devons faire est de remplacer la valeur de r4 avec la valeur que vous souhaitez
afficher.
– L'installation d'un compteur d'affichage de la carte sélectionnée. Cela est nécessaire parce que
le remplacement de r4 avec la valeur souhaitée, une fois n'est pas suffisant. La boucle principale
prend
environ 40ms à exécuter. Ainsi, après 40ms r4 sera remplacé par le RPM et l'
aiguille ne sera pas montrer la valeur que l'on voulait montrer. Regarde mon code pour une
meilleure
compréhension...
Compiler à l'aide de Uvision ou un compilateur de votre choix. Charger la sortie hex le dans un
hexeditor, de recherche où votre code commence, et le copier sur un espace libre de vos cendres.
Ensuite, insérer un appel à votre nouvelle fonction. J'ai choisi d'insérer mon appel à
0x94784(0x14784 dans Hexeditor) d'espace Libre dans mon le – 0x1A000 qui se traduit par
de 0x9A000
par conséquent, l'opcode de l'appel: DA 09 00 A0
PS: Oui, les messages sur
nefmoto
et
ecuconnections
sont par moi. Je suis @nihalot ������
nihalot
Le 2 mars 2019
L'Ingénierie Inverse
audi, régulateur de vitesse, de démontage, de l'ECU, edc15,
edc16, du moteur, de l'ingénierie, mapswitch, multimap, de l'ingénierie inverse, skoda, vw
/
/
/
04/05/2020
Bosch EDC15 MapSwitch – Tangente Motorsport
https://tangentmotorsport.com/index.php/2019/03/02/bosch-edc15-mapswitch/
9/9

Pouvez-vous m'expliquer comment charger EDC15 bin le corrertly à l'IDA Pro ?


Merci
nihalot
Le 7 mars 2019 à 09:45
Vous avez besoin de la version complète(payé) de l'IDA Pro
Yusuf
Le 7 mars 2019 à 13:28
Je l'ai, pas de problème mais je ne sais pas de RAM ve adresse ROM pour EDC15 bin le
nihalot
Le 9 mars 2019 à 06:27

Ouvrir l'ECU et d'analyser l'adresse/bus de données et CS pins. C'est tous les


conseils que je peux vous donner ������
Tangente Motorsport Fièrement propulsé par WordPress


/

Vous aimerez peut-être aussi