In a world of serial and parallel, it would not be simple for a new device connection to make its mark. Follow the USB standards success story to witness how this meritorious technology carved a place for itself. USB provides many benefits to users and vendors, but also see where it missed the boat.
Is implementing IEEE1394 drivers comparable (in difficulty) to USB drivers? The article goes on about how easy it is to obtain USB spec docs so that free software USB drivers can be written. Is it the same way with 1394 devices?
Are patents involved in either spec?
In general, I think 1394 is a bit faster than USB 2 (I regularly use both for copying large numbers of files onto external drives). I like both USB and 1394 connectors (the actual plugs/jacks/sockets/whatever) because they last forever — PS/2 connectors wear out quickly if you’re plugging and unplugging mice/keyboards/ext-drives regularly.
The article is all well and good, but it doesn’t reflect the reality of the USB peripheral world. While the USB 1.0 – 2.0 specifications are well documented, a great many devices don’t follow them entirely, or break them completely. These hardwares are often not documented. When you try to write drivers for them according to the written USB standards, they still don’t work, or worse, the hardware can be damaged over long term use because of some undocumented idle function not being utilized, for an example. These issues don’t often show in commercial operating systems because the company is aware of the “brokeness” or “extended functionality” and code around or for it with the released drivers while average joe programmer doesn’t know and can’t get access to the documentation necessary.
Yes USB would be a really good thing if the corporation in charge of the standards actively policed those advertising “USB X.X compliance/compatibility” but that has so far failed to materialize adequately. Until then, USB devices for those using an alternative operating system are a risky proposition.
While most of us in the know are well familiar with how slow USB 1.1/2 really are ie 1MBytes/sec v a few (maybe only 3x) times faster, I am dismayed that the USB2 moniker at 480MBPs has worked so well to give the typical user the impression USB2 is faster than FW based on 480>400. Few people will own both and be able to figure out themselves that that is not the case.
Having to correct this information to users bothers me enormously as it shames Intel into the position of having led a massive deception campaign against FW.
Sometimes transmitting packet data at 480MBps is not the same thing as the 480MBps overall throughput implied on the packaging. I would sure like to see USB2 hauled into court about that deception. People should be told typical data rates not theoretical but absolutely impossible rates. Tytpical for me seems to be closer to 30-60MBps and 80MBps under rare circumstances copying huge files.
Ofcourse I use both stds but I always expect far less from technology than the marketing says, although FW is closer to the advertised mark. I suspect that has something to do with the origins of the 2 forms, ironic that Apple created FW and then ended up giving USB its 1st big shove.
Another peeve is VIA chip sets, endless frustration getting 1 mobo to get its onboard 2.0 ports at 2.0 speeds, turns out they have no driver for the chipset mobo pair, no more VIA for me if I can help it. Had to use a PCI 2.0 board, ofcourse it has VIA on it but it worked.
Still I am very glad USB,FW,SATA, and all the serial standards are kicking all the old clumsy interfaces in the dust.
The 480 MB/s is the theoretical peak USB transfer speed. While the Firewire peak speed is lower (400 MB/s) the average throughput is higher and it also consumes a far lower proportion of CPU cycles (on my particular laptop Firewire/IEEE 1394 uses 5% of CPU while USB 2 uses 15% of CPU when transfering data from an external drive). Please also note that Firewire 800 is starting to appear with a peak speed of 800 MB/s and a 1200 MB/s transfer rate is also planned. These faster Firewire types have backwards compatible connectors with the older types so Firewire gear is a reasonably safe investment (such as the ~$US 30,000 scientific grade cameras with Firewire my company purchases).
To me, USB is a “poor man’s Firewire”. When you read the history one of the primary motivations for the creation of USB is that Intel and Microsoft didn’t want to pay royalties to Apple for the ‘Firewire’ brand. Apart from the ubiquity of USB anyone who has tried both Firewire and USB usually comes to the conclusion that Firewire is superior in practice (hence prosumer level professional video is usally IEEE 1394 rather than USB).
In short, Firewire is clearly preferable to USB in my opnion.
I just had to unplug and re-plug in my firewire drive. The connector had come loose and linux kept marking it as dirty and remounting it read-only.
I was quickly reminded how quick the firewire bus is to report to the system about new devices. With firewire, it pops up in like 1 second. With USB2, it was more like 5 seconds.
I have a firewire drive and a USB2 drive. overall, the firewire drive has been much faster and has been running for around 3 years. I just got the USB drive a few months ago, but it’s also had no problems. Before I had the USB2 drive, i had a USB1 drive, and lemme tell ya, that was painful. USB1 was NOT meant for file transfers. Transferring a 30GB backup over USB1 is nothing less than painful. Over firewire or USB2, the difference is almost not noticable.
I think the biggest step will be the next generation. Who will bring out the new devices first, and cheapest? I’m shooting for firewire, since I like that the devices can be daisy chained, but I bet USB2 will end up taking over. Firewire chips are expensive or something and that keeps them out of normal consumer goods like mice and keyboards. It’s easy enough for motherboard vendors to just support both though, as both are still needed.
Whoops. Typo:
> PS/2 connectors wear out quickly if you’re plugging and
> unplugging mice/keyboards/ext-drives regularly.
Yeah, those PS/2 external drives are pretty rare.
Cheeze wrote:
> Firewire chips are expensive or something and that keeps
> them out of normal consumer goods like mice and keyboards.
Well, the price difference between 1394 PCI cards and USB2 cards isn’t too bad. Also, remember that 1394 can supply more power to peripherals than USB2 (much more than keyboard or mice require). Think Bluetooth for keyboards and mice.
USB high-speed devices’ peak transfer rate is 480 megabits per second, not 480 megabytes. Of course, there are eight bits in a byte, which means a transfer rate of 480 ÷ 8 = 60 MB/sec, which coincides with JJ’s comment about 30 – 60 MB/sec.
Nobody said, that from the point of view of hardware designers USB is much better than firewire. There are plenty of 8/16 bit MCUs nowadays with built-in USB1.1/2.0 ports for $3-5 a unit. So as an embedded designer if I need something for debugging my data acquisition board it wont be Ethernet or FW it will be USB most of the time. Value for money and simplicity of driver development.
Clarification, when I said 30-60Mb I meant Mbits so that only meant a couple of Mbytes per sec, but then most of the time I am doing that to a dumb FlashDrive which cannot possibly run much faster than USB1.1 already does since Flash is slow, its limited to about 5MByte per sec or whatever.
If I use my combined FW/USB2 external drive I still see only 10Mbytes/sec maybe more if its huge files. So I stick with FW if possible, about 1.5x faster, but in the end it seems to have far more to do with the Windows end of things and the state of the drive and sizes of files and drivers.
Having worked on a USB1.1 project with Intel helping to write the driver for us, I am pretty familiar with how ugly USB is on the inside. Intel basically told us USB1.1 can only get 1MByte maximum throughput after all the overhead and most devices don’t get that. I might yet have to get back into that at the HW level and get one of the Mindshare books.
BTW I believe that when you plug in a USB2 device to the port, the initial chitchat must take place at 1Mbit/sec ie it might be a mouse. It then moves up to the 12MBit/sec, it might be a floppy. Only later does the protocall move up to the 480MBit/sec and IIRC thats only during the data flight time, the protocall still switches between 1,12 MBit rates for the headers that must lead the data packets.
So the question is what is the maximum percentage of time the 480 data flight can be out of the total protocall that covers the whole chain?
This leads me to think that USB2 is pretty much stuck where it is, a poor mans FW. What little I know of FW internals is that the protocall would at worst have to switch between 400, 800 and higher, something for me to study one day.
USB2, still good enough to watch a DVD, but not good enough to copy a HD full of them. For that I’d break out an IDE ribbon and save some time.
>USB2, still good enough to watch a DVD, but not good enough >to copy a HD full of them …
Some USB external HD enclosures just do not let you do this anyway. Iomega portable with prolific PL-3507 IC stalls just after 700 MB of transfer. What a crap …
Think about it, HDs continue to increase density at a rate that is currently ahead of Moores law, way ahead, when I 1st installed W2K it was probably on a 2GByte HD 5000RPM thing. I even used 1G drives way past their lifetimes.
When Apple invented FW I bet the 1st HD they connected it to was probably a 250M HD, probably a scsi one too.
So what bloody good is a 250G drive with a serial interconnect thats maybe 2x faster than the 250M drive for which FW was originally invented, (ok it was meant for video B/W rather than HDs).
And how long will it take to backup a 1TB HD using FW or USB2? Even a 1Gbyte transfer takes way too long on IDE.
Nice to see the (well-deserved!) credit for NetBSD’s pioneer work to support USB in the free operatings systems world.
“Meritorious technology”
I don’t think that USB is meritorious in any way.
At first, its low speed was limited to KBD, Mices, etc but quickly it had shown its limits for more demanding peripherals and the complex protocol eats much CPU power ( no distributed master network ).
– It is inferior to firewire for devices like HDD, cameras, …
– It lacks a locking system for storage keys and quick removal medias.
– It has limited the adoption of “The Good Interface” for devices like printers & scanners : Ethernet forever.
That’s BASICALLY what hardware makers say. That’s why you don’t see too many Firewire flash drives, only USB ones.
In oversimplified terms, USB is “regulated” by the host CPU, thus freeing lesser devices on the chain from having to do much processing. This is why when transferring large files over USB, or having too many devices connected, your CPU usage WILL go up. Hardware makers save on chip costs, and often pass the savings on to consumers. It just needs to work well enough, and it will always be a slave device anyway, right?
This is also why, in the early days, no one could ever actually REACH the theoretical limit of 127 devices in the real world — buggy drivers, buggy chipsets and lack of full compliance. Ironically, I once heard Apple was actually first to daisy chain 127 real devices. The situation is much better, now.
With Firewire, each port is largely independent, and each device must have extra processing power to guarantee data integrity and minimal latency. There are no “hosts”, as I believe it is point-to-point. Thus, a more powerful (and expensive) chip is needed for EVERY device. It also uses more power and forces a minimum quality control on materials, ading even more to the cost. BUT it also means that hosts with relatively slow CPUs can use Firewire like a champ. Some devices, like audio equipment, just need lots of data to get where it needs to be while taxing the CPU as little as possible. This is where IEEE1394 shines.
–JM
A bit unfortunate that in an article that talks about some of the history of USB (that is, facts that are nontechnical in nature, trivia and the like) that Apple is not mentioned once in the article except in the context of adopting FireWire.
/biased