Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

ADCS Frame Error when restbus simulation exist

Hello

I'm trying implement UDS protocol with ADCS.

Also, I need to implement restbus simulation for staying ECU alive such as vehicle speed, checksum etc.

I use USB-8502 which port1 for UDS(ADCS) and port 2 for restbus simulation(xnet) like below.

Iniesta_Luján_0-1606955973366.png

 

If I run only UDS, every services (security, DTC, get Data) works properly.

However, If restbus simulation exit, it return frame error and timing error randomly.

[error code]

-8256 (transport layer invalid frame)

-8257(transport layer incorrect frame order)

-8260 (timeout error)

 

it seems port2(restbus simulation) interfere CAN bus, since UDS communication is mutual communication with ECU.

 

I thought port 2 acknowledgement intercept UDS communication (transmit & receive).

Then I tried to enable listen only property of XNET but this property disable transmission as well, so it does not works for me.

 

Are there any way to implement inactive (stealth) port for restbus simulation.

or any best practice for implement Diag CAN and restbus simulation in same bus.

 

any help would be greatly appreciated.

 

thanks regard

0 Kudos
Message 1 of 5
(2,112 Views)

I've not used restbus but the two just might not be compatible at the same time because of the ECU.  I know that in some cases you can ask the ECU to do something through UDS, and it will then only perform UDS operations until it is told to leave the session, or some timeout.  And since UDS is request and response driven, any time the ECU decides "Oh I need to dedicate myself to do this one thing" it will then all the sudden not respond to any requests for another action on another transport protocol.

 

I'd suggest putting a another device on the bus who's purpose is just to log all data and see what is going on.  What I'm guessing you'll see is that when it is just UDS it works just fine sending a request and getting a response quickly.  Then when you add the restbus I'm guessing you'll see a UDS request for some action, and then the ECU either won't respond, or it will take a long time to respond.  If you must use restbus and UDS at the same time, I think you're just going to have to switch back and forth from one to another.  That is unless the log shows you something else that is happening causing an issue.

0 Kudos
Message 2 of 5
(2,079 Views)

Hello Hooovahh

 

thanks very much for advice from your experience.

 

If ECU response time is cause of issue, do you think setting proper Timeout property value work for this?

 

Wait property.png

 

But I doubt that default timeout value for "Timeout Diag Command" and "Timeout RspPending" is 1000msec, and it seems sufficient amount of time respecting ECU process time.

Also in real ECU circumstance, ECU must receive more of signals from surrounding other controllers, so diagnostic protocol should co-operate with other CAN bus traffic.

 

what do you think?

 

From your advice, I will try to dive into CAN log.

 

anyway, thanks again for your kindly help.

 

best regard

0 Kudos
Message 3 of 5
(2,071 Views)

Regarding timeout: The solution might be to increase the timeout, but again the ECU might not be responding at all.  Lets say you are getting ready to reprogram the ECU through some protocol.  You'll tell the ECU "Hey get ready to be reprogrammed here is all the stuff you need" and at that point he ECU might now only be ready to receive the program.  If at that point you requested some memory address through XCP the ECU might never respond.  In this case it isn't a matter if needing to increase the timeout.  If you waited an hour the ECU would never respond.

 

I suspect that something about restbus means the ECU will now not communicate over UDS.  Again the log should show what is going on and if the ECU does reply.

 


@Iniesta_Luján wrote:

 

Also in real ECU circumstance, ECU must receive more of signals from surrounding other controllers, so diagnostic protocol should co-operate with other CAN bus traffic.


This is a bit different.  In the real world, the ECU there won't have random UDS communication going on.  That is only during a diagnostic that a technical will do to troubleshoot.  The overwhelming majority of ECUs in cars today will never see UDS communication at all for the life of the car.  Again my experience with restbus is zero, but I suspect that is a communication that also isn't going on all the time.

0 Kudos
Message 4 of 5
(2,055 Views)

Hello Hooovahh

 

thanks very much for your advice.

I agree with your thought.

 

I will try to dive into CAN log in more detail.

 

thanks regard

 

0 Kudos
Message 5 of 5
(2,047 Views)