LH Kwp2000 Flashen v1.1 en
LH Kwp2000 Flashen v1.1 en
LH Kwp2000 Flashen v1.1 en
Specification
with
Date: 2003-01-27
Version: 1.1
Authors: Gerhard Bauersachs, EESN/1, Tel: 05361 – 9 – 44003
Michael Zweck, I/EE-92, Tel: 0841 – 89 – 42851
1
1 General Information........................................................................................................... 4
1.1 General requirements................................................................................................. 4
1.2 Further applicable documents .......................................................................................... 5
1.3 Changing history............................................................................................................ 5
1.4 Version administration .................................................................................................... 6
1.5. Abbreviations ............................................................................................................... 7
2 Data and Software.......................................................................................................... 8
2.1 Data delivery ............................................................................................................ 8
2.2 Data coding .............................................................................................................. 8
2.3 Data compression .......................................................................................................... 8
2.3 Flash-Container-Definition........................................................................................... 8
3 Programming ..................................................................................................................... 9
3.1 Pre-conditions ............................................................................................................... 9
3.2 Conditions within the BLF ................................................................................................ 9
3.3 KWP-services............................................................................................................... 10
3.3.1 ECU-Ident ............................................................................................................. 10
3.3.2 Status Flash .......................................................................................................... 11
3.3.3 General negative responses ..................................................................................... 12
No Program ...................................................................................................................... 12
3.3.3.1 Negative responses within the FP........................................................................... 12
3.4 Time requirements ....................................................................................................... 13
3.4.1 KWP-Parameter ..................................................................................................... 13
3.5 Termination of the programming .................................................................................... 13
3.6 Reconnection............................................................................................................... 14
3.6.1 Control unit ........................................................................................................... 14
3.6.2 Programming device ............................................................................................... 15
4 Access safety ................................................................................................................... 16
4.1 Rules.......................................................................................................................... 16
4.2 Mini-instruction set....................................................................................................... 16
4.3. Arithmetic instruction .................................................................................................. 16
4.4 Flow commands ........................................................................................................... 17
4.5 Coding the set of instructions......................................................................................... 18
4.6 Example ..................................................................................................................... 18
A. Services .......................................................................................................................... 20
A.1 ReadECUIdentification .................................................................................................. 20
A.3 Security Access............................................................................................................ 21
A.3.1 RequestedSeed...................................................................................................... 21
A.3.2 SendKey ............................................................................................................... 21
A.4 RequestDownload .................................................................................................... 22
A.4.1 TransferResponseparameter .................................................................................... 22
A.4.2 DataFormatIdentifier .............................................................................................. 23
A. 5 StartRoutineByLocalIdentifier EraseFlash ........................................................................ 24
A.6 RequestRoutineResultsByLocalIdentifier EraseFlash........................................................... 25
A.7 TrasferData................................................................................................................. 25
A.8 RequestTransferExit ..................................................................................................... 26
A. 9 StartRoutineByLocalIdentifier CalculateFlashChecksum.................................................. 26
Data .................................................................................................................................... 26
Parameter name.................................................................................................................. 26
Value................................................................................................................................... 26
Positive Response ............................................................................................................... 26
Negative Response ......................................................................................................... 26
A.10 RequestRoutineResultsByLocalIdentifier CalculateFlashChecksum ...................................... 27
A.11 StopCommunication.................................................................................................... 27
B. FlashSequence ................................................................................................................ 28
B1. Positive Flash process at ECU with application .................................................................. 28
B2. Entrance Flash process at ECU within the boot loader ........................................................ 31
C. Problems for programming device .................................................................................. 32
2
C1. With regard to Chapter 3.4.1.1 ...................................................................................... 32
C2. With regard to Chapter 3.4.1.2 ...................................................................................... 32
C.3 with regard to Chapter 3.6.1 ......................................................................................... 32
C.4 Appendix A ................................................................................................................. 32
C.5 StopDiagnosticSession .................................................................................................. 32
C.6 with regard to Chapter A.2 ............................................................................................ 32
C.7 with regard to Chapters A.6 and A.10 ............................................................................. 32
D. Broadcast commands ...................................................................................................... 33
D.1 Mute .......................................................................................................................... 33
D.1.1 Preconditions ........................................................................................................ 33
D.1.2 Operation ............................................................................................................. 33
D.2 Delete central FSP ....................................................................................................... 33
E. SCA Insertion .................................................................................................................. 34
E.1 WriteDataByLocalIdentifier SCA...................................................................................... 34
E.2 Sequence Chart with initializing of the SCA ...................................................................... 35
F. Programming of multiple-processor control units ........................................................... 36
F.1 Multiple processor systems with single diagnostic addresses ............................................... 36
F.2 Multiple processor system with multiple diagnostic addressing ............................................ 36
F.3 Combinations............................................................................................................... 36
3
1 General Information
The raising complexity and the increasing cross linking of functions in our devices make it necessary to
exchange the Software in the control units for a short time in the future. For a short time means here,
in the context of the stipulated operations of the product manufacturing, but without a long dispatch of
the control units to the suppliers. The possibility of reprogramming the software is achieved on the
currently existing diagnosis interfaces. The requirement specification describes the total operation for
the update programming. The requested infrastructure for the data management and version
management, which are eventually in each individual device, are not the object of this specification.
4
• The behavior regarding the coding of a control unit is not generally established. The responsible
for the system has to take care of the functional efficiency, and has to describe the behavior
regarding the different coding at flashing in the diagnostic-LH.
• The system coordinator must, in accordance with the quality assurance and purchase, negotiate
and document guarantee conditions.
The present version serves for all documents. The existing versions are to be included in the control
unit requirement specification.
/1/ Corporate group-description-control table for update-programming
/2/ Workshop-identifying
/3/ Minimal container for control units that can be coded/programmed
/4/ VW 801 15 – control units-identifying with KWP2000 services
/5/ VW 801 01 – electric and electronic assembly groups in motor vehicles
/6/ Corporate group requirement specification CAN-transport protocol 2.0
/7/ KWP2000 on TP2.0 (full duplex)
/8/ Corporate group requirement specification KWP2000 light plus
/9/ VAG-Code-List
/10/ VW 801 14 – standard on-board diagnosis system of electronic device systems
Only versions with <H.N> are given for implementation. Preliminary versions serve only as
information, respectively for discussion.
6
1.5 Abbreviations
Abbreviation Meaning
ASCII American Standard Code for Information Interchange
BLF BootLoaderFlasher
Bzgl. Regarding
C Conditional
CAN Controller Area Network
CD Conditional Default Responses
FDC Flash Data Container
FP Driving Program
FSP Error memory
FTC Flash Tool Code
IKA Individual Components Authentifying
Kl.15 Pin 15 (ignition pin)
Kl.30 Pin 30 (continuous voltage supply)
KWP Keyword Protocol
LH RequirementsSpecification
LSB Least Significant Bit / Byte
NM NetworkManagement
NRC NegativeResponseCode
PG Programming device (Tester)
SCA Software Container Autentifying
ECU Control Unit
SVM Software Versions Management
SW Software
TE Technical Development
TP Transport Protocol
U User optional
WFS Immobilizer System
WSC Work Shop Code
z.B for example
7
2 Data and Software
2.1 Data delivery
The supplier has to transfer the data to the stipulated data container-formats.
The data is transferred to the production in an SGML-format according to /3/. The processes quality
assurance and production start are taken into account. At the same time, the data is transferred to the
spare part nature.
The customer service has access to all necessary data container. A control table according /1/ enables
the customer-service-tester, in connection with the item number and software index, respectively
number version, to find a possible updated data record. A re-programming to aged software is not
allowed. Additionally, the TE delivers the compatibility information for the control table regarding the
control unit concerned.
In order to avoid damages to the control unit, certain safety measures for the serial control units are
necessary. Since they can be hindering in the test operation, there may be an exception here. Attempt
data records are never allowed to abandon the development departments.
Data records, which are meant for control, must be available in the container in a coded form. The
procedure is to be secretly maintained, and must be made known only to the circle of the directly
concerned persons.
The data container for the customer service is converted to an illegible format (SGO-format). The
system coordinator may obtain the conversion program.
An additional necessary compression of a data record is to be adjusted between the supplier and the
control unit developer. The ECU-developer decides in accordance with the production and customer
service, starting with which programming time, respectively with which data size this is necessary.
2.4 Flash-Container-Definition
…
<BAUDRATEN-2000><BAUDRATEN-2000>
KWP-2000-TGT></KWP-2000-TGT>
The following Tag has no significance, but must be updated (possible values are 0xFF):
<KWP-2000-ACP>
<KWP-2000-P2MIN>0xFF</KWP-2000-P2MIN>
…
< KWP-2000-ACP>
</KWP-2000>
8
3 Programming
The details for the programming operation are described in this chapter. The total operation of the
flash programming is described in the Appendix B.
If the ECU is built with more than one processor, then Appendix F is to be taken into account.
If it goes about a functional dependent system (e.g. Master-Slave), then the possible specific features
within the flash operation (e.g. sequence of the programming, parallel programming and so on)
between the ECU-responsible and the suppliers are to be established.
3.1 Pre-conditions
The following pre-conditions must be fulfilled by, respectively within an ECU, so that the programming
may follow:
• The programming pre-conditions must be read out according to chapters /4/ and /9/. If the
pre-conditions do not correspond, then the request 0x1085 “StartDiagnosticSession Flash” is to
be answered by the ECU with the NRC 0x22 ”conditionsNotCorrect”
• If the ECU is a component of a WFS-mechanism, then the authentication has taken place in the
WFS. The exceptions in this case are the development-control units (not series).
• The PG has to make available the complete data according to chapter /3/.
In general, the following conditions are given during the programming session:
• The programming mode may be quitted only with a Power up, respectively PinKl. 15-Reset (at
ECU with PinKl.15) or with an implicit ECU-Reset (at ECU without PinKl.15).
• The control units Kl.15 must, if they are found within the BLF, reset themselves (software
reset), if they have recognized an internal timeout (no communication visible any more on a
TP-level).
• The cyclic data transfer that takes place in the FP and is consulted there for the error
management of the ECU is switched off during the ECU.
• No NM is supported within the BLF.
• There are no FSP-routines available in the BLF. The error memory is not updated during the
session. The error status bits in 0x1A9C (Chapter 3.3.2) serve as a rudimentary FSP. These
must be served by the BFL during the programming process.
• So that the band width of the present bus system can be completely used for the data transfer
at flash, the control units within the network in the FP must support the Broadcast-service
“Mute” according to chapter /6/. A PG must transmit the “Mute” command after the Appendix D
of this LH, during a complete flash session.
• The ECU must, during the first flow of the flash sequence (after the service 0x31C4
“StartRoutineByLocalIdentifierEraseFlash” has been positively answered), update the following
EEPROM-data (0x1A9C) (the sequence is to be followed):
1. Set the inconsistency bit on “1”
2. Increase the counter for the programming attempts
3. Delete the flash-date, i.e. write ‘-‘(ASCII:0x2D) instead of the data; Format “dd.mm.yy”
4. Examine and insert the FTC in the EEPROM
• If the flash sequence runs more than once in the same session, then the values may not be
described by 0x1A9C (Status Flash).
• The memory areas for the WSC and the FTC are different. If, after a positive answer to the
service 0x31C4 “StartRoutineByLocalIdentifier EraseFlash”, the valid FTC (FTC ≠0) is described
in the corresponding cells, then the WSC must also be described with the same value. If the
transferred FTC = 0, then the ECU transmits the negative response 0x22
“conditionsNotCorrect”. The description of the storage cells is to follow only the first time in the
case of programming several blocks.
9
3.3 KWP-services
The following services are requested in the case of the control units that can be programmed. It is
identified in which status the particular service is requested.
3.3.1 ECU-Ident
The service 0x1A9B “ReadECUIdentification ECU-Ident” may be displayed reduced, as long as the
version management allows this (Indication: SW-version number in the ECU-description):
ECU-IDP 9B Content Format
1 VW / Audi-Part number 7 Bit-ASCII
...
11
12 Space (0x20) 7 Bit-ASCII
Configuration Program status 7 Bit-ASCII +MSB
13
and programmability3 7 Bit-ASCII
14
15 Data status 7 Bit-ASCII
16
10
3.3.2 Status Flash
The service 0x1A9C “ReadECUIdentification Status Flash” is partly updated within the BLF and/ or
FP. The sequence of the update is currently described in chapter 3.2 for the BFL and in chapter 3.6.1
for the FP and is to be absolutely complied with.
Table 3: Extract from chapter /4/ - Status Flash 0x9C with explanations for updating
4
May be reset after a successful reconnection
5
it leads in such a way, so that the service0x33C4“RequestRoutineResultsByLocalIdentifierEraseFlash” is negatively answered.
6
it leads in such a way, so that the service 0x33C5 “RequestRoutineResultsByLocalIdentifier CalculateFlashChecksumme” is
negatively answered.
11
3.3.3 General negative responses
The negative responses, which are applied for all services, are presented here. The
NegativeDefaultResponses CD (see Appendix A) are not explicitly presented, since they must be
served independently from FP or BLF according to chapter /8/. If negative additional responses are
necessary, then they must be agreed upon by the system responsible.
Supported In Active
Access Requested
Correct/Request
Diagnostic Mode
Denied/security
Security Access
Sequence Error
Conditions Not
Service Not
No Program
Negative Response Code 0x90 0x80 0x22 0x33
ECU within the BLF + - 0 +
ECU within the FP - + 0 -
Request unknown, respectively supported + + - -
Program preconditions not accomplished 0 0 + -
Authentication is not given 0 0 0 +
Error in the flash run 0 0 + 0
Legend: + Requested
0 don’t care
- Forbidden
All services, which can be carried out only in the BLF (see Table 1), are responded with the NRC 0x80
“service-NotSupportedInActiveDiagnosticMode” within the FP.
All services that are not presented in Table 1 are rejected with the NRC 0x90 “noProgramm” within the
BLF. This negative response facilitates the recognition of the control units for development and
production, and may be currently found within the BFL and do not support certain services.
All services that are not presented in Table 1 are rejected with the NRC 0x90 “noProgramm” within the
BLF.
The NRC 0x11 “serviceNotSupported’ is not allowed for these services within the BLF.
The negative Default Responses must be correctly handled on each position within the flash sequence.
If the access authorization through the “SecurityAccess” is not given, then all the requested services
except from 0x1A “ReadECUIdentification”, 0x1085 “StartDiagnosticSession” and 0x82
“SopCommunication” are answered with the NRC 0x33 “securityAccessRequested”.
12
3.4 Time requirements
The following time requirements are set for control units and programming devices.
3.4.1 KWP-Parameter
3.4.1.1 F_Boot
With the help of F_Boot, the ECU must transmit to the PG a factor for calculating the waiting time
T_Boot, which the ECU requires, in order to enter the BLF mode. The PG must wait the T_Boot time,
until the ECU can communicate again after entering the BLF mode. The parameter is transferred to
the positive response on 0x1085 “StartDiagnosticSessionFlash” (see Appendix A.2).
3.4.1.2 F_Routine
F_Routine is a factor for calculating the waiting time T_Routine. The PG uses this waiting time only for
the following service 0x33C4 “RequestRoutineResultEraseFlash”. After the response from the ECU to
this service, the PG uses again the pre-set value for P2 (/7/). The parameter is transferred in the
positive response on 0x31C4 “StartRoutineByLocalIdentifierEraseFlash” (see Appendix A.5).
Parameter PG / ECU
CAN-Bus7 High speed Low speed
Block size (BS) 15 15
Acknowledgement-timeout (T1) 8 100 ms 100 ms
Minimum reception distance (T3)
9 ≤ 1 ms 1,5 ms10
7
The physical facts are to be taken into account when inserting other bus systems.
8
The coding of the bytes is to be taken from Chapter /6/.
9
T2 and T4 are not to be used (=set 0xFF).
10
Conditioned through lower Baudrate on Lowspeedbus.
13
3.6 Reconnection
11
Only when the date is available.
14
3.6.2 Programming device
The following procedure applies for a PG, after the flash session has been ended:
• Immediately after dismantling the TP-channel, the PG arranges for PinKl.15 to switch off.
• The PG arranges for PinKl.15 to reset
• The PG initiates the diagnostic communication and retrieves the new internal documentation to
the mentioned sequence:
1. ECU-identification (0x1A9B)
2. HW-part number (0x1A91)
3. Status Flash (0x1A9C)
4. EECU-Identification (0x1A86).
After the inquiry for the new internal documentation, the PG has the opportunity of the consistency
examination of the data (old/new description). If the programming procedure went wrong, then the
ECU is generally not capable to run. The PG can establish this, in case of a correct implementation by
means of the inconsistency bit (‘1’).
15
4 Access safety
The Seed-and-Key-Algorithm serves for the access safety to the control unit through the diagnostic
interface. It should guarantee, that only a valid device has access to certain functions within the
control units through the diagnostic communication.
In order to prevent the unjustified programming of the control units, the control unit transmits an
unexpected Seed. The programming device estimates a Key, which it transmits back to the control
unit. The release follows only when the received Key and the estimation result are the same within the
control unit.
4.1 Rules
A control unit may quit the control unit manufacturer only with an edged Seed-and-Key-algorithm. The
supplier is supposed to program the control units within its work with another method, however he
must guarantee that the devices are irreversibly adjusted in the area to this access safety.
It is left to the system developer to implement a dead time, in which the ECU, after an unsuccessful
attempt of a SecurityAccess, to react to a renewed one with an NRC0x37
“requiredTimeDelayNotExpired”.
16
C. Ad the value [ADD “Value”]
Operand
+
Value
Overflow Operand
-
Value
Overflow Operand
The overflow is set, when the value is larger than the operand.
Operand
XOR
Value
Overflow = Operand
The operand and value are connected bit by bit through logic EXKLUSIV ODER and stored as new
Operand. The overflow is always reset.
D. Finish
Indicates that the Operand may be sent as Key.
The following table establishes the hex numbers for the commands. It is in such a way
coded, so that the arithmetic instructions should contain an even number of bits, while the
flow commands should contain an uneven number.
4.6 Example
A possible operation should be presented as an example.
Script: 0x68, 0x05, 0x81, 0x4A, 0x05, 0x87, 0x0A, 0x22, 0x12, 0x89, 0x49, 0x4C
The services carried out below, are valid only with the corresponding responses only for the ECU
developed according to this LH.
Legend:
M Byte is to be made available with the indicated value.
U It is not necessary to update the Byte.
CD Place holder for Negative DefaultResponses – {busyRepeatRequest”, 0x23
“routineNotComplete”, 0x78 “requestCorrectlyReceived ResponsePending”}; these are to implemented
according to Chapter /8/.
C0 place holder for the general valid negative responses; defined in Chapter 3.3.3
Cn n-1,2,3,…; optional negative responses; are described in detail in the current services.
XX Place holder for values.
A.1 ReadECUIdentification
These services are to be completely transferred according to Chapter /4/. See the exception in Chapter
3.3.1.
Data Parameter name Value
StartDiagnosticSession
#1 M 10
ReqSId
#2 DiagnosticMode M 85
Observation: The negative response 0x33 “securityAccessRequested” (C0) is a problem for the PG;
see Appendix C.
`12
Values for XX and meaning for the operation of the flash sequence see Chapter 3.4.1.1.
20
A.3 Security Access
A.3.1 RequestedSeed
#4 Seed 2 M XX
#5 Seed 3 M XX
#6 Seed 4 {LSB} M XX
A.3.2 SendKey
A.4.1 TransferResponseparameter
For the ECU that can be received with more than 255 Byte per piece, the parameter is to be extended
to an additional length byte (Byte #3).
The control units, which can receive maximum 255 Bytes, must assign the length to Byte#2. The
additional length byte must not be transmitted.
The number transmitted is a maximum value, which cannot be exceeded by the PG. Thus, the PG is
compelled to clearly set this value.
The PG must evaluate, according to the response length, which format the ECU has transmitted.
Maximum 4095 Byte can be downloaded to a KWP-frame with an additional Byte (/7/).
22
A.4.2 DataFormatIdentifier
The parameter “DataFormatIdentifier” is divided into two nibbles. The high nibble indicates the
compression method, and the low one indicates the encryption method.
The format is to be agreed upon by the control units’ responsible.
Hex
high low
nibble nibble
23
A. 5 StartRoutineByLocalIdentifier EraseFlash
13
Values for XX and meanings for the flow of the flash sequence see Chapter 3.4.1.2
24
A.6 RequestRoutineResultsByLocalIdentifier EraseFlash
A.7 TrasferData
The programming data is transmitted in blocks of maximum 4095 Byte. This boundary results from the
appointed parameters of the service “RequestDownload” (Chapter A.4.1) and from the maximum
possible length information about KWP2000 (/7/).
Values for N: N≤ TransferResponseParameter
25
C2 The N size of the transmitted blocks exceeds the one allowed in 0x34 “RequestDownload”
“TransferResponseParameter”.
A.8 RequestTransferExit
A. 9 StartRoutineByLocalIdentifier CalculateFlashChecksum
Negative
Positive Response
Response
Start Routine By Local Identifier M 7F
#1 M 71 Negative response SId
PRSId
Start Routine By Local M 31
#2 Routine Local Identifier M C5
Identifier ReqSId
#3 default Responses CD XX
[according to Table 4] C0 XX
26
A.10 RequestRoutineResultsByLocalIdentifier CalculateFlashChecksum
Observation: In this case, the control unit is not allowed to use the received data, and must be
reprogrammed.
A.11 StopCommunication
27
B. FlashSequence
The sequence in the following sequence chart is described with positive responses. The reaction of the
programming device and of the control unit with negative responses is different within the individual
services and independent of the negative response.
During the operation, protocols KWP or TP are dealt with in a smooth manner. The correct protocol
handling is to be taken from the current valid requirement specification.
The ECU is prepared for the descending the Boot loader. If not
all preconditions are fulfilled, then the ECU responses with
“conditionsNotCorrect”
The following cases are differentiated:
F Boot = 0: When descending the BLF, the ECU may
Starting from here, the PG must send the communicate further on, or it is already found within the BLF
command Mute F Boot > 0: the ECU needs a channel structure for descending
the BLF
Request Seed
(level 1)
The ECU is not allowed at this point to be disconnected
28
Delete memory area and FTC transmit
The control unit must, during the first cycle of the flash sequence, update
the following EEPROM-data (1A 9C) (the sequence is important!):
1. Set the inconsistence bit on ‘1’
2. Increase the counter for programming attempts
3. Delete flash-date
4. Examine and insert the FTC in the EEPROM
Confirm after positive examination.
The value of F_Routine applies as a maximum value for the flash deletion
time. An ECU must always be able to reestablish the communication after
the elapse of this time.
If the ECU still has not reacted after the termination of the
Time P2CAN_Flash, then the PG interrupts the flash sequence.
Timings according
Timings according to Chapter 3.4.2 to Chapter 3.4.2
Quitting
Quitting
Quit termination
check sum .
Begin with the calculation of the check sum.
Quit request.
During the check sum calculation, the ECU must be able to
Request the result of the calculation communicate. The calculation usually takes longer, independent of
the data size.
Confirming of the programming correctness.
If further blocks are defined within the data container, then the
PG repeats the programming procedure beginning with
“RequestDownload”
Quit termination
29
Reconnection
In order to guarantee the complete efficiency of the ECUs, the PG must examine the internal documentation of the ECU
ECUs without discrete PinKl.15 perform implicit software reset
Immediately after the TP-channel is dismantled, the PG initiates the ECUs with discrete PinKl.15 perform an implicit software reset
switching off of PinKL.15 independent of “PinKl. 15 on”.
Quit termination
30
B2. Entrance Flash process at ECU within the boot loader
31
C. Problems for programming device
Generally, the current LH valid for the conversion time applies for old ECUs. In detail, this means the
following for the PGs:
C.4 Appendix A
At some points, negative responses, which are not mentioned here any longer, and which in older LH-
versions are displayed as “to be described by the control unit responsible” may be sent back by the
ECU. Thus, the PG does not generally evaluate these responses.
C.5 StopDiagnosticSession
The service 0x20 “StopDiagnisticSession” is no longer available at new control units. According to this
LH, the control units respond to these requirements with 0x90 “noProgram” (within the BLF). This
negative response must not lead to a termination of the flash sequence; instead it has as consequence
the fact that, the PG must send a 0x82 “StopCommunication” according to Appendix B. A PG must take
into account that the old control units must close the TP-channel after a 0x82 “StopCommunication”
0x20 per “Disconnect” 0xA8.
32
D. Broadcast commands
D.1 Mute
The PG cyclically transmits the Broadcast-service 0x28 “Mute” during the programming session, as
described in the sequence chart.
For the FP, command “Mute” is to be implemented mainly according to Chapter /6/.
For the BLF, the implementation of command “Mute” is not requested.
D.1.1 Preconditions
The PG examines, at the beginning of the flash sequence, the internal documentation 0x1A9C “Status
Flash”, and thus obtains information about the preconditions to be maintained. These must be
accomplished, further examinations of the preconditions are not requested, since, in general, no data
contents ask for cyclic messages.
PGs, which have knowledge about the contents of the cyclic data transfer to the CAN (e.g. bad final
examination), may carry out further examinations. The type of these examinations has to be agreed
upon by the current system responsible.
D.1.2 Operation
The PG begins with the transmit of the “Mute” command as soon as it has received the positive answer
to 0x1085 “StartDiagnosticSessionFlash”. Thus, it is guaranteed, that the programming preconditions
were valid with 0x1A9C at the time of the request. These are no longer to be examined within the BLF
from the point of view of the consistency.
The PG sets the cyclic transmit of the “Mute” command with the completion of the flash operation. The
end is reached, when the ECU positively answers request 0x82 “StopCommunication”.
Besides this, the PG sets the transmit, when the communication is interrupted because of an error
within the flash sequence.
The broadcast-service 0x14 “Delete central FSP” is addressed to the entire network at the
reconnection, after the request of the internal documentation of the programmed ECU. Thus, it is
established that the vehicle is again transferred in a consistent and running order condition.
33
E. SCA Insertion
To be taken into account in the case of control units, at which an additional encryption of the data
blocks of the data container is requested.
The key encryption follows after the Seed&Key-authentication, by means of the service 0x3BC0
“WriteDataByLocalIdentifier SCA” (Chapter E.1).
The attendance and the precise requests for the concerned control units, are to be agreed upon with
the system responsible. It is not part of the LH.
In order to abut the extended flash operation against the key insertion, the tester evaluates the first
FormatIdentifierByte in the data container. If this Byte is registered with 0xX8 (according to A.4.2/),
then the service 0x3BC0 “WriteDataByLocalIdentifier key insertion SCA” carried out; otherwise, the
flash operation is carried on without this service.
The PG obtains, from a database, a valid SCA for the flash software, on the basis of
The control unit serial number from 0x1A86 and Software part number/ control unit identification from
0x1A9B.
After inserting the SCA in the ECU, the PG is able to program encrypted data container appropriate to
the SCA discarded within the ECU. Therefore, the ECU must decrypt the programming data with the
help of the available SCA.
The key encryption is presented in a sequence chart in Chapter E.2.
During the development phase, a special development-SCA is to be used, with which the
corresponding software status can be flashed.
C1 Data is false encrypted, false data, data frame not complete (e.g. K2 is not transferred).
C2 EE-Prom impossible to write
34
E.2 Sequence Chart with initializing of the SCA
ECU within
the BLF
Request Seed
(level 1)
35
F. Programming of multiple-processor control units
The following two cases are to be distinguished for the programming of multiple processor systems.
The PG handles the systems identically with the single processor systems. The system works within an
interconnection (e.g. Master-Slave). The programming of this control unit follows with a single data
container. During the programming, the main processor (Master) sorts out through an Address-Offset,
which data is to be programmed in which processor. There is no difference for the PG while handling
the multiple-processor systems from this category; these are identified as single ECU.
F.3 Combinations
In the case of control units starting with 3 processors, it is conceivably to integrate both cases
mentioned above.
36