Physically-addressed CAN messages?
Hi guys,
I've got a small homebrew program an CAN-compatible interface box (B&B Electronics LDV6U) that I'm using to talk with my '04 CTS. I've successfully tested J1979 Services 01, 03, and 04. I can send and receive multi-packeted CAN messages and I can read basic PID's like engine RPM, speed, and ignition cylinder timing.
I've seen variations of this list that show how to get enhanced PID's for J1850 cards by requesting J2190 physically addressed data from the ECU. I've tried to do this for CAN, with no luck so far.
According to the document, the J1850 command to get a 2-byte PID is:
$6C,$10,$F1,$22,$PID-hsb,$PID-lsb,$01
I think the CAN variation of that (for talking directly to ECU #0 with 11-bit physical addressing) is something like the following:
[Edit -- forgot length in original post]
$07, $E0, $03, $22, $PID-hsb, $PID-lsb
(PCI bytes left out for clarity)
When I try this for random PIDs in that list, I get a CAN error saying that either the PID is unsupported, or the ECU is not ready to accept that command.
Am I on the right track? Am I using the wrong format, or do I need to do something like send a J2190 command to put the car into diagnostic mode? I haven't seen any examples of using CAN for physically-addressed messages (especially J2190) so I'm not sure what I'm missing.
Any hints?
Thanks! :D