USB Development Tools for Embedded Devices?
engywook asks: "I am thinking about putting a USB interface onto a real-time (home-brew kernel) embedded device, (naturally) with the intent that it talk to another device. I am thinking that it would be very useful to be able to monitor the USB traffic between my device and the other device, and between that other device and (say) a PC that already knows how to talk to it. Looking around, it seems that this capability is available, but at prices in the US$10K and up realm, which is a lot more than I can afford. I am looking for pointers to tools that would accomplish this for much less money. Any ideas would be appreciated! Thanks!"
Last month's Linux Journal has an article titled "Snooping the USB Data Stream", where the author talks about exactly what you want. He talks about using Linux to monitor the data, but you can still use this method to monitor Windows talking to your device by running Windows in VMware.
I bought a Cypress USB kit a few years ago, it's quite cool. Is that company still in business? Their website seems to be gone.
True warriors use the Klingon Google
there are tons out there, cheap. ARM, even
that, and the linux kernel, is all you need to debug USB.
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
your using a custom kernel so
s id=7582
look at netbsd USB stack and see howto put that into your src
you can dump out the usb traffic under netbsd look at the src
if you want to reverse engineer a windows driver you can use VMware on linux and dump the traffic
http://www.linuxjournal.com/article.php?
or
insert a windows driver (that dumps usb traffic) and look at the dumps but this could taint the results see http://usbsnoop.sourceforge.net/
or
buy a hardware that sits inbetween the cables for $1000 see http://www.usbdeveloper.com/USBViewer/usbview.htm
really I would look at http://www.fsmlabs.com/ as you can run real time tasks and use the linux drivers for usb because that part sure as hell is not going to be real time...
it you have failed to do ANY RESEARCH at all
Terrible. F
regards
john jones
Assuming that you're happy with USB1.1 and below, one approach is to use a low-cost FPGA (Altera Cyclones are great for this, and a suitable one is $20).
Zip over to opencores.org, grab the USB 1.x MAC and PHY as a starting point....and you can start to build your own hardware USB sniffer.
The beauty of this approach is that you can do *proper* sniffing type activities such as microsecond time stamping of samples, which gets (*ahem*) tricky doing things in the software domain under Linux or Windows.
If you just want to see a vague picture of the wire, you can stick to operating system level sniffing as others have pointed out.
-psy
Seek out USB Snoop. You can monitor the goings-on between Windows and the USB device's driver. This probably won't replace a hardware USB debugger, but it's a good start.
Your usage description seems to advocate a more node-to-node based relationship between devices on the bus. An interface like firewire seems much better suited to your application than USB (master/slave). Though I suppose it could be considerably more complex to implement?
If you still need a hardware analyzer, this one looks more affordable.
And the worms ate into his brain.