I've just finished reading chapter one of Jan Axelson's USB Complete. I can already tell that it is going to be an excellent book. Her software examples are Windows-centric but the principles she presents apply to any USB-compliant OS. She specifically mentions Linux and Mac OS X as being in the latter category.
After just one chapter I feel like the USB spec is much less of a mystery. I still don't know just how I'm going to create my magic gizmo yet, but at least I have some great information on what technical challenges lay before me. Jan does a good job of defining all of the "who does what" in the USB specs: the USB devices, the USB controller, USB hubs, and where the software fits in - both firmware within the device and the device drivers within the OS. And it's only chapter one!
The first potential red flag for me was reading about the truly serial nature of USB. Only one device gets to communicate at a time on the bus. However, with bus speeds of 12Mbps and 480Mbps I think USB is up to the challenge. (There is also the slower 1.5Mbps speed.) Also, a device can request of the controller a maximum delay between communication exchanges. I'm hoping to find a happy medium in this regard so that my device will function properly and still coexist with other devices on the same bus.
I also got a good pointer from someone with experience in this area. (Anonymity preserved, just in case he wishes it so.) He mentioned that the USB bus can handle these kinds of speeds, in terms of number of interrupts per second, that is, but it can be tricky. He also mentioned that the Linux USB stacks in kernels 2.6.8 and 2.6.9 are sub-par, and that's putting it nicely. I plan to do much of my initial development in Windows since I seem to have more resources in that arena. However, I have no intention of neglecting Linux. In fact, I have no intention of neglecting Max OS X, except that I know zero about Macs and I don't have access to one. Any volunteers who'd like to help are more than welcome to contact me.
Now I'm off to dig up more about the T1/DS1 specs and my DS2155 chip...
-MC
Summary:
- USB Complete, 3e, is a great book, even after just one chapter
- The ability of the USB bus to handle the speed needs of a T1 is a big question
- The Linux USB stack is still maturing and is not the best place for initial development
1 comment:
This is great info to know.
Post a Comment