On Jun 21, 2013, at 2:37 PM, Geoffrey Oltmans <oltmansg at gmail.com> wrote:
On Wed, Jun 19, 2013 at 2:25 PM, Tony Duell <ard at
p850ug1.demon.co.uk> wrote:
hard to do, starting with the fact that there are
no "normal" serial
converters for USB; there are standard classes for things like mass
storage, audio converters and human interface devices, but absolutely
none for serial converters. So it's all custom, which means you either
And I suppose there isn't a standard class for a simple chracter I/O
device....
My understanding is, the HID device class is somewhat standardized for
keyboards, joysticks, mice and the like, where no specific driver is
necessary apart from what's built-in typically to the OS, but other things
like an RS-232 passthrough for example there are more or less "standard"
drivers for, or at least generic ones that you can leverage, provided you
can give enough detail about the device during enumeration and which driver
to use. I did a little class through Freescale to do a serial device and
both Windows and Ubuntu had driver capability that you could interface
with, but you still needed to equate the vendor id/device id to the proper
driver through an .inf file in the case of Windows, and I can't recall what
you had to do through Ubuntu, but a driver was available there to be used
as well.
Correct, there's no "standard" for an RS-232. You can spit characters
out over an endpoint with no problem, but you obviously need some out-
of-band stuff for controlling and monitoring modem control lines and
break conditions. That's where things start to get a little hairy. My
assumption is that since USB was intended to "replace" RS232, they
weren't exactly keen to define a standard for adaptors (which is,
honestly, a little shortsighted if it's the case).
I've been wanting to stick my toe in and develop
something for USB for a
while (a USB->Coleco ADAMNet adapter to allow use of actual devices with an
emulator), but ultimately I think I'd like to be able to offer it up to the
community easily. One stumbling block in there has already been mentioned:
vendor IDs are controlled by the USB-IF, and if you want one of your very
own, it'll cost you $2000 to get it (last I checked), more if you want to
use the USB logo (who cares?), but the $2k is a significant hurdle for the
tinkerer. I suppose you could pick VIDs that don't clash with whatever
devices you have installed on the machine, but then that takes away from
the universal nature of the USB...
That's $2k PERIODICALLY so that they maintain your number. Last I
checked, anyway. Not a one-time fee. It's a big hurdle towards
developing your own hardware on a pretty common bus (similar problems
exist for PCI). And with only 16 bits of address space, there's no
reliable way to generate your own universally unique ID (one of the
few times you'll see me advocating for the use of UUIDs).
- Dave