Page 168
GM WORLDWIDE ENGINEERING STANDARDS
GMW3110
© Copyright 2010 General Motors All Rights Reserved
February 2010
Page 168 of 336
/* The psuedo code from this point until the ENDSELECT statement is only needed if $level $80 is
supported by the ECU */
WHEN ($Level = $DLEXOE) /* $80 Download and Execute or just Execute */
IF (the node cannot process the request within P2
C
) THEN
send Negative Response ($7F $36 $78) /* RequestCorrectlyReceived-ResponsePending */
ENDIF
/* Execute the code (typically a programming routine)at the downloaded address. */
CALL (function at $startingAddress)
IF (errors are detected) THEN
send the appropriate negative response ($7F $36 $83) or ($7F $36 $85) or ($7F $36 $89)
ELSE
send ($76) /* download complete */
ENDIF
ENDSELECT
ENDIF
ENDFUNCTION
8.13.7 Node Verification Procedure.
Procedure 1: (Enable Programming Session).
1. Perform the steps necessary to activate ProgrammingMode (reference service $A5 for proper procedure).
Begin sending periodic TesterPresent ($3E) messages to satisfy the P3
C
timing requirements. Perform the
necessary steps to unlock ECU security (reference service $27) if applicable. Next, send a valid mode $34
message and verify the positive response.
Procedure 2:
1. Perform Procedure 1 and then send a block of data using mode 36 and verify the $76 positive response.
2. If it takes more than P2
C
ms to write the block of data sent in step 1 of this procedure, verify that the node
sends a $7F $36 $78 within the P2
C
ms required time, followed by a $76 positive response.
3. Repeat step 1 (and 2) as necessary to transfer all data necessary to complete the download of the module
or programming of the node and verify the $76 positive response after each subsequent block transfer and
the final mode $36 message.
4. If it takes more than P2
C
ms to write any data block, the node shall send a $7F $36 $78 within the P2
C
ms
required time after each transfer of a block of data, followed by a $76 response when the node has
completed writing the block of data.
Procedure 3:
1. Perform Procedure 1 and then send a mode $36 with an invalid $Level value; verify the $7F $36 $12
response.
2. Perform Procedure 1 and then send a mode $36 request with ONLY the $Level data byte (starting address
bytes missing), verify the node responds with $7F $36 $12.
3. Perform Procedure 1 and then send a mode $36 request with $Level $00, a valid starting address and no
additional data. Verify the node responds with $7F $36 $12.
4. Perform Procedure 1 and then send a mode $36 request $Level $00 with valid data and an invalid starting
address, verify the node responds with $7F $36 $31.
5. Perform Procedure 1 and then send a mode $36 request with $Level $00, a valid starting address, and a
data block size that results in an invalid address. Verify that the node responds with $7F $36 $31.
6. Perform Procedure 1 without sending the valid mode $34 request. Then send a valid mode $36 and verify
the $7F $36 $22 response.
7. Create a condition that will cause the programming algorithm to detect an error (e.g., put incorrect
checksum or CRC in a calibration file if the programming algorithm includes a module based checksum or
CRC verification) and verify the $7F $36 $85 response.
--``,,``````,``,,``,,,`,`,`,,-`-`,,`,,`,`,,`---
Do'stlaringiz bilan baham: |