PCAN-ISO-TP: Troubleshooting Source and Target Addresses

Daniel Price2 min read
Industrial NetworkingOther ManufacturerTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Identify the Configuration Mismatch

The PC configuration declares PCANTP_CAN_MSGTYPE_EXTENDED, while the ECU declares CBUS_FR_FRM_STD. These frame-format settings do not match. Before diagnosing polling behavior, configure both endpoints for the same CAN frame format selected by the network architect.

Field PC configuration ECU configuration Decision
Source address 0xF1 0xF1 Valid for a request sent by the PC if the ECU structure describes that incoming request
Target address 0x01 0x01 Valid for a request addressed to the ECU
Address extension 0x00 0x00 Aligned
Target type Physical N_TA_T_PHY Aligned
CAN frame format PCANTP_CAN_MSGTYPE_EXTENDED CBUS_FR_FRM_STD Mismatch requiring correction

Apply Source and Target Addresses by Message Direction

For the PC request, 0xF1 identifies the source and 0x01 identifies the target. The ECU may therefore use the same pair when describing or filtering that incoming request. Do not swap the addresses merely because the configuration is located on the ECU.

Swap them when constructing the ECU response: the ECU becomes source 0x01, and the PC becomes target 0xF1. Whether one ECU structure represents incoming requests, outgoing responses, or both is not established by the evidence; confirm that API semantic before changing its fields.

Configure Fixed Normal Addressing Consistently

The PC uses PCANTP_ISOTP_FORMAT_FIXED_NORMAL. For this format, the PCAN-ISO-TP guidance states that explicit mappings are not required. Use the library's fixed-normal addressing mechanism instead of adding a mapping unless the application architecture requires one.

  1. Select the addressing format as part of the CAN/ISO-TP network design, considering the endpoints' supported CAN identifier format and addressing requirements.
  2. Set both endpoints to the same CAN frame format; resolve the current extended-versus-standard mismatch.
  3. For the PC-to-ECU request, use source 0xF1 and target 0x01.
  4. For the ECU-to-PC response, use source 0x01 and target 0xF1.

Verify Reception and Polling

Capture one request and one response and verify the frame format, direction, physical target type, source address, target address, and address extension against the active fixed-normal configuration. A callback proving that a frame arrived does not by itself prove that the polling path will return the same frame.

If the corrected addressing and frame format produce callback reception but polling still returns no data, determine whether the callback and polling method share a receive queue and whether callback handling removes the message before polling. Treat queue consumption as a diagnostic hypothesis until confirmed by the API documentation or a controlled test with callback processing disabled.

FAQ

Should the ECU swap ISO-TP source and target addresses?

Not for an incoming PC request: it may describe that request as source 0xF1 and target 0x01. Swap them for the ECU response, making 0x01 the source and 0xF1 the target.

Why does the callback receive CAN data but polling does not?

First correct the frame-format mismatch between PCANTP_CAN_MSGTYPE_EXTENDED and CBUS_FR_FRM_STD. If reception still differs, test whether callback handling consumes the shared receive message before polling reads it.

Does PCAN-ISO-TP fixed normal addressing require a mapping?

No explicit mapping is required when using PCANTP_ISOTP_FORMAT_FIXED_NORMAL, according to the supplied PCAN-ISO-TP guidance. Both endpoints must still use compatible frame-format and address-direction settings.

Back to blog