ASAM e.V. makes no representations or warranties with respect to the contents or .. experiences with the CAN Calibration Protocol (CCP) version as defines the interfaces from an XCP master to an ASAM MCD 2MC. XCP (or) "Universal Measurement and Calibration Protocol" is a network protocol originating In , the protocol was standardized as "ASAM MCD-1 XCP". XCP is a successor to CAN Calibration Protocol (CCP) that was developed back in the mids. At that time Vector. "V 12/ - XCP_Basics_EN" (PDF). parameters. ▷. XCP is the successor of CCP. MCD Tool. RAM. ODT 0. ODT 1. ODT 2. DAQ 0. ODT 0. ODT 1. DAQ 1. Flash and Measuring Systems (ASAM e.V.) . Available for free download at ronaldweinland.info with documents on how to.
|Language:||English, Spanish, German|
|ePub File Size:||24.70 MB|
|PDF File Size:||16.10 MB|
|Distribution:||Free* [*Register to download]|
ASAM MCD-1 CCP defines a CAN-specific calibration protocol between a calibration tool and an ECU. The standard describes Issues (LOKI). PDF ( KB). Disclaimer. This document is the copyrighted property of ASAM e.V.. Any use is limited to the scope described in the license terms. The license. The Move from ASAM CCP to XCP Communication Protocol The first version of the ASAM MCD-1 CCP standard, CAN Calibration Protocol.
CCP includes several additional monitor commands, and provides several new features including automatic data acquisition processing based on events or periodic updating, flash programming and data security. Since there is no requirement to use all its features, CCP is a scalable protocol. CCP users have access to online measurement data and can calibrate modules, so software development can occur not only in a lab environment but also during an in-vehicle test. What are the functions of CCP? The Protocol is a top layer layer 7 according to the OSI model, which means that the protocol does not describe how bits and bytes are created but uses the CAN 2. Synchronous cyclic data acquisition from a ECU.
If the parameter is uninitialised after reset, the XCP on FlexRay master has to assign a value to this parameter. A buffer can have a fixed assignment to always transport a specific type of XCP packet.
A buffer also can have an initial assignment to transport a specific type of XCP packet. A buffer for a specific XCP packet type initially can be unassigned. Finally a buffer can not allow to have an assignment for transporting a specific XCP packet type. All other buffers are completely freely configurable. In the direction from slave to master, the NAX is used for distinguishing responses.
As an alternative, a cluster-wide unique node address can be taken for NAX. In the direction from master to slave the NAX is a target address and contains the address of the slave. In the direction from slave to master the NAX is a source address and thus also contains the address of the slave. On the other hand XCP needs a high bandwidth to perform sufficiently. The same re-assigning also can be used if the different XCP packet types of a slave internally are competing for the limited number of XCP-dedicated buffers.
Not every type of memory permits this process. The following is a brief summary of the differences between individual memory technologies: knowledge of them is very important to understanding over the further course of this book.
Memory Fundamentals Today, flash memories are usually integrated in the microcontroller chips for ECUs and are used for long-term storage of code and data, even without power supply. The special aspect of a flash memory is that read and write access to individual bytes is indeed possible at any time, but writing of new contents can only be done blockwise, usually in rather large blocks.
Flash memories have a limited life, which is specified in terms of a maximum number of erasure cycles depending on the specific technology the maximum may be up to one million cycles. This is also the maximum number of write cycles, because the memory must always be erased as a block before it can be written again. The reason for this lies in the memory structure: electrons are pumped via tunnel diodes. A bit is stored at a memory location as follows: electrons must be transported into the memory location over an electrically insulating layer.
Once the electrons are then behind the insulating layer, they form an electric field with their charge, which is interpreted as a 1 when reading the memory location. If there are no electrons behind the layer, the cell information is interpreted as a 0. A 1 can indeed be set in this way, but not a 0. However, for architectural reasons, such an erasing routine does not just act on single bytes, rather only on the group or block level.
Depending on the architecture, blocks of or bytes are usually used. If one wishes to overwrite a byte within such a block, the entire block must first be erased. Then the entire contents of the block can be written back. When this erasing routine is repeated multiple times, the insulating layer Tunnel Oxide Film can be damaged. This means that the electrons could slowly leak away, changing some of the information from 1 to 0 over the course of time.
Therefore, the number of allowable flash cycles is severely limited in an ECU. In the production ECU, it is often only on the order of single digit numbers. This restriction is monitored by the Flash Boot Loader, which uses a counter to keep track of how many flash operations have already been executed. When the specified number is exceeded, the Flash Boot Loader rejects another flash request. While flash memory serves the purpose of long-term storage of the application, the RAM is used to buffer computed data and other temporary information.
Shutting off the power supply causes the RAM contents to be lost. In contrast to flash memory, it is easy to read and write to RAM. It is really very important to understand this circumstance. That is why we will look at the execution of an application in the ECU based on the following example: In the application, the y parameters are computed from the sensor values x.
At some time point, the application must therefore poll the sensor value and the value is then stored in a memory location assigned to the x parameters. Since this value always needs to be rewritten at runtime, the memory location can only lie in RAM. The parameter y is computed.
The values a and b, as factor and offset, are included as information in flash memory.
They are stored as constants there. The value of y must also be stored in RAM, because once again that is the only place where write access is possible. This is where objects are allocated to unique addresses.
The relationship between object name, data type and address is documented in the linker-map file. The linkermap file is generated by the Linker run and can exist in different formats. Common to all formats, however, is that they contain the object name and address at a minimum.
In the example, if the offset b and factor a depend on the specific vehicle, the values of a and b must be individually adapted to the specific conditions of the vehicle.
This means that the algorithm remains as it is, but the parameter values change from vehicle to vehicle. In the normal operating mode of an ECU, the application runs from the flash memory. It does not permit any write accesses to individual objects. This means that parameter values which are located in the flash area cannot be modified at runtime.
If a change to parameter values should be possible during runtime, the parameters to be modified must lie in RAM and not in flash. Now, how do the parameters and their initial values make their way into RAM? How does one solve the problem of needing to modify more parameters than can be simultaneously stored in RAM?
These issues lead us to the topic of calibration concepts see chapter 3. The accesses are made in an address-oriented way. Read access enables measurement of parameters from RAM, and write access enables calibration of the parameters in RAM.
This ensures that the measured values correlate with one another. With every restart of a measurement, the signals to be measured can be freely selected.
For write access, the parameters to be calibrated must be stored in RAM. This requires a calibration concept.
The topic of the calibration concept is addressed in chapter 3. In the following figure, part of a message is shown in red.
It is used to send the current XCP frame. The Master initiates contact in this way, for example. The other CTO messages are sent asynchronously.
This is accomplished in the identification field. The Slave uses the time stamp to supply time information with measured values. That is, the Master not only has the measured value, but also the time point at which the measured value was acquired. The amount of time it takes for the measured value to arrive at the Master is no longer important, because the relationship between the measured value and the time point comes directly from the Slave.
Transmission of a time stamp from the Slave is optional.
In the case of CTO packets, the data field consists of specific parameters for the different commands. In addition, other specific parameters may be sent with the command.
One example is when the connection is made between Master and Slave. At the start of a communication between Master and Slave, the Master sends a connect request to the Slave, which in turn must respond positively to produce a continuous point-to-point connection.
Simultaneously, it informs the Slave that it should switch to a specific user-defined mode. The Slave already sends communication-specific information to the Master when making the connection. Therefore, each XCP message can always be traced back to a unique Slave.
This mode is the standard case in communication. The block transfer mode is optional and saves time in large data transfers e. Nonetheless, performance issues must be considered in this mode in the direction of the Slave. The aforementioned limitations do not need to be observed in block transfer mode in the direction of the Master, because performance of the PC nearly always suffices to accept the data from a microcontroller.
The interleaved mode is also provided for performance reasons. But this method is also optional and in contrast to block transfer mode it has no relevance in practice. The additional specific parameters are transported in the data field. XCP is also very scalable in its implementation, so it is not necessary to implement every command. If there is a discrepancy between the definition in the A2L file and the implementation in the Slave, the Master can determine, based on the Slave s reaction, that the Slave does not even support the command.
This lets the Master know quickly that an optional command has not been implemented in the Slave. Some other parameters are included in the commands as well. This is necessary as a wide set of existing ASAP2 tools is in the market and a switch to a different language format e. XML leads to high efforts to modify these tools. As shown in figure 1 the ASAM defined interfaces are used only for measurement and calibration tasks. All market relevant calibration tools support this protocol as a base feature.
This flashing access will normally be eliminated when the ECU is given to production and therefore is not available during service phase. Here the corresponding diagnostics services are applied. The seamless data exchange between different partners along the process chain suppliers, OEMs or service partners is a very important process improvement. Diagnostic tools like service testers or more development oriented tools can be parameterized via this format.
Inheritance and associations help to avoid data redundancies.
It is capable to describe the entire vehicle communication network. Partial information can be completed step by step along the development progress.