Direct USB manipulation

This is a discussion on Direct USB manipulation within the C++ Programming forums, part of the General Programming Boards category; My problem is im trying to communicate with a device that does not follow the USB specification. Here is the ...

Direct USB manipulation

My problem is im trying to communicate with a device that does not follow the USB specification. Here is the protocol it uses (SAE J1850 Description, Electrical Interface Bus) I am interested in the 10.4Kbps Variable Pulse Width (VPW) single wire approach on the link's page. I was wondering how i would go about detecting the device, and then how i would communicate with it using a USB end connected to a computer, and the other end connected with the ground wire, one data wire, and the power wire. Reading data should be fairly straightforward but if there is something i am not aware of, please let me know.

EDIT:
I would prefer a operating system independent solution, but if i had to choose an OS, I would prefer a Windows solution.

EDIT:
And how would i implement the newer standard protocol ISO 15765 CAN which has a high and low wire coming from the device. I assume that it would be just like communicating with a USB device since there are two wires on each. I could probably figure this one out eventually but i would like to avoid any trouble i can.

I am a proficient C++ programmer, but not an expert by any means. I know some assembly but im also only proficient.

For what it's worth, I think you need something like thisblueroomelectronics Unicorn kit
There are 100's of kits like this which sit on the end of a USB cable, and allow you to do all sorts of interesting things. With a bit of digging on LVR (and google), you should be able to find something a lot closer to what you want.