07-12-2023 06:18 AM
Hello All,
I am using ADCS Toolkit for UDS communication over CAN Bus.
while taking level1 security access, I am getting error while sending calculated KEY to ECU.
-8262 occurred in ISOTP Transmit.vi
Possible reason(s):
Automotive Diagnostic Command Set: ISO TP: timeout receiving a Flow Control Frame
The all Vi from this library are password protected.
Please find the attached images for better understanding.
Is anyone know how to solve this?
Thanks in advance.
07-12-2023 06:34 AM
It sounds like ADCS is waiting for a Flow Control Frame, which is part of the ISO Transport Protocol.
You could record the CAN trafic using the NI-XNET Bus Monitor and verify the protocol. Maybe your tested device is violating the standard, e.g. sending the frame to late?
07-12-2023 09:04 AM
I'd also be interested in a raw CAN log. A 4 byte Seed/Key will fit in a single 8 byte frame so you shouldn't need any flow control. It is possible this is a bug with how NI handles sending keys, and is artificially limited to 4 bytes. I'm curious to know if yours is larger. You can also see how the UDS communication works based on my CAN blog Part 8 here. That code isn't for NI-XNet hardware but gives you an idea of how the communication is supposed to work, including the flow control.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
07-13-2023 04:45 AM
I checked in Xnet Bus Monitor, I am sending 64 Byte key directly to ECU.
But ECU can handle 8 bytes of data a time so i need to send my KEY using Flow control and in consecutive frame format.
Don't know how.?
If anyone has idea, please let me know.
07-13-2023 07:40 AM
The toolkit should handle that for you. The API should handle writing the first N bytes, then the flow control, and sending the rest. I'd also be interested in seeing a raw CAN log just to see what is happening. If you can clearly show it is a bug NI should fix it.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
07-19-2023 12:23 AM
Here you can see, when we I request for seed by sending '27 01' from LabVIEW, ADCS automatically taken care of flow control frame and gives me 16 Byte seed. In image you can see16 bytes are segmented in 3 consecutive frames.
Then I calculate KEY from seed and I get 64 byte KEY as follow.
Now I want to send this 64byte KEY to ECU for taking security access so I send it by "27 02 KEY(64byte)" format from LabVIEW by using 'SendKey.vi'.
In above Xnet bus monitor we can observe in Tx 64byte are sent but didn't get any response.
In labview code i get Error code -8262 :"Automotive Diagnostic Command Set: ISO TP: timeout receiving a Flow Control Frame."
One more thing, frame is started from '10 42 27 02' which means 10= data contained flow control,42=Decimal of 42 is 66 means frame contain 66 byte, and then 27 02= Send key and then Remaining actual KEY data(64Byte).
Due to '10 42 27 02' this last 4 bytes are KEY data is removed I don't know how.?
If anyone has any idea about how can i send this 64bytes to ECU please Help.
07-19-2023 08:37 AM - edited 07-19-2023 08:38 AM
Okay so you are getting an 16 byte seed correctly. But the payload is always 8 bytes in each frame. Then you say I'm going to send a 64 byte seed, here are the first 60 bytes of it, and then you get nothing as a response. What I would expect is to see the flow control message from the device you are talking to, which states how many frames it can handle, and then the ADCS function should automatically send the second frame, which contains the last 4 bytes of the key. I'm wondering if the device you are talking to, only handles 8 byte payloads.
If it could handle 64 byte payloads, then I would expect it to send send the Seed in a single large frame. But it doesn't. I'm unsure of what options NI's toolkit has for forcing payload size in the frame. This might be a database editing thing, or some kind of setting in the toolkit. This also might not be your problem, it is just a guess.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord