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.
- Select the addressing format as part of the CAN/ISO-TP network design, considering the endpoints' supported CAN identifier format and addressing requirements.
- Set both endpoints to the same CAN frame format; resolve the current extended-versus-standard mismatch.
- For the PC-to-ECU request, use source
0xF1and target0x01. - For the ECU-to-PC response, use source
0x01and target0xF1.
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.