I am controlling an ECU via LIN UDS, using XNET + Automotive Diagnostics Command Set. Everything is working fine, but there is a thing I just can't solve.
To set the ECU into sleep mode, I have to send a "rapid sleep command" to the ECU, it is a UDS routine. After receiving the response from the ECU, the LIN bus has to go to sleep (idle) mode, so the level has to be recessive and no further activity is allowed on the LIN bus - otherwise the ECU wakes up immediately.
I have read in the LIN specification: "When operating in the diagnostics only mode without any active transmission the master node shall execute diagnostic slave response schedule tables"
This is what my PCI-8516 does, it sends the slave ID 0x3D to the bus every 50ms, as it is defined in the ldf. But for this special routine, the bus has to "shut up" 🙂 I don't find any solution. There must be a possibility to do that. If I call the Close Diagnostics.vi right after the "Rapid Sleep Request", the card still sends the slave request frames!
I would recommend posting in the Automotive and Embedded Networks board. That board specializes in these products and is monitored by support. This board is for our Industrial Communication protocols (DeviceNet, CANopen, Fieldbus, EtherCAT, etc).
Matt S. Industrial Communications Product Support Engineer National Instruments