Hello Daniel,
When you communicate with an ECU using the UDS protocol, your application is usually what is called the "TesterClient", the standard address value associated to it is 0xF1.
On the other hand, the ECU's address is defined during its design.. For instance with OBD-II (a protocol above UDS), the standard states that there can be only 8 ECUs and there address is a range from 0x01 to 0x08.
You should check the specifications of your ECU to see how it is communicating via ISO-TP (address and addressing format).
The address is important because if a message is sent on the CAN bus, the ECU will/should check that the target address of the message matches its defined address (if not the message is ignored).
Yet based on how is designed the ECU, this can be completely ignored: may be the specifications of your ECU may only state that it listens to a specific CAN ID and responds with another CAN ID. In that case you have to configure your mappings with some dummy values:
First you have to check what ISO-TP addressing format the ECU is using. If it is:
- * NORMAL FIXED or MIXED addressing then it is problematic because (with 29bit CAN IDs) the CAN ID is dynamically generated from the source address (TesterClient) and the target address (ECU),
* Extended addressing is also a problem because the Target address is set in the first byte of the CAN data frame so it should be required too,
* NORMAL addressing should be the only addressing available in your case..
With NORMAL addressing, you can define 2 mappings (one from Client to physically address ECU and another from ECU to physically address Client):
- can ID type is 29 bits
- canID is the CAN ID the ECU listens to (ex. 0xABC001)
- canIDResponse is the CAN ID the ECU responds with (ex. 0xABC002)
- format is NORMAL
- message type is diagnostic message
- source address is 0xF1 (client)
- target address is 0x01 (ECU)
- target type is physical addressing
- remote address is not used and is 0x00
the second mapping is almost the same you anly have to swap source and target address and canId/canIdresponse:
- canID is the CAN ID the ECU responds with (ex. 0xABC002)
- canIDResponse is CAN ID the ECU listens to (ex. 0xABC001)
- format is NORMAL
- message type is diagnostic message
- source address is 0x01 (ECU)
- target address is 0xF1 (CLIENT)
Let me know if this helps you.