Appendix 6. CCP compliance

The OpenECU implementation of CCP is against a sub-set of version 2.1 of the standard and supports the following commands:

Table 6.1. Supported CCP commands

CCP commandCommand valueOptionalNotes
CONNECT1 Reprogramming code prior to version 5.0.6 and 105.0.11 assumes a station address of zero or one.
SET_MTA2 Supports one MTA. Addresses must not be extended.
DNLOAD3  
UPLOAD4  
START_STOP6  
DISCONNECT7 Reprogramming code prior to version 5.0.6 and 105.0.11 assumes a station address of zero or one.
START_STOP_ALL8yes 
SET_S_STATUS12yes 
GET_S_STATUS13yes 
BUILD_CKHSUM14yesImplements the 16 bit CCITT CRC (shift register initially set to 0xFFFF, non-reflected form).
SHORT_UP15yesExpects no address extension. Does not change MTA.
CLEAR_MEMORY16yes 
GET_SEED18yesNot supported before platform version 1.8.6.
UNLOCK19yesNot supported before platform version 1.8.6.
GET_DAQ_SIZE20 Ignores any attempt to set the DAQ CAN message identifier to anything other than the DTO CAN message identifier.
SET_DAQ_PTR21  
WRITE_DAQ22  
EXCHANGE_ID23  Access to the ECU's type, manufacturing data, and if available, the application defined name. See Section 6.1, “EXCHANGE_ID message handling” for details.
PROGRAM24yesIf the length to program is specified as zero, reprogramming code will treat this as a special signal to indicate that programming has finished.
GET_CCP_VERSION27 Returns 2.1.
PROGRAM_634yes 
DNLOAD_635yes 

Some older versions of software (prior to platform version 1.6.0, or prior to RPRG version x.6.0) support a larger number of CCP commands. In addition to the commands above, these older versions also supported the following commands:

Table 6.2. Supported CCP commands (in older versions of ECUs)

CCP commandCommand valueOptionalNotes
TEST5yesReprogramming code prior to version 5.0.6 and 105.0.11 assumes a station address of zero or one.
GET_ACTV_CAL_PG9yesOnly one page of calibration is supported.
SELECT_CAL_PAGE17yesOnly one calibration page is supported at a fixed address.
MOVE25yes 
DIAG_SERVICE32 Replied to as "unavailable".
ACTION_SERVICE33 Replied to as "unavailable".

All other commands are replied to as "unknown command".