bloodstone wrote on Thu, 07 October 2004 03:55 |
Why do many of the most renowned makers of outboard A/D choose not to enter the A/D PCI card market? Many of us out here can't afford higher priced outboard A/D, and I'm sure there is a solid market for both out there. Thanks.
|
I'll give you my perspective, as a guy who has designed a handful of (non-audio) PCI cards. I'll say up front that all of the reasons already given, esp. those having to do with power and the fact that the PC is a noisy environment, are Real Good. I just think there are other issues, as well.
The PCI spec is rather complicated, especially if you're comparing it to the old ISA bus. Things are not as simple as assigning base addresses in the host memory space and doing outport() and inport() calls! The host must enumerate each PCI device and the operating system must load an appropriate driver. This brings up an obvious point: driver writing is not trivial, and it's probably the task that deters most would-be PCI designers, especially if the engineer's background is in analog electronics and a bit of poking around with microcontrollers or maybe BASIC.
A proper hardware implentation is not trivial. Various chip vendors (notably PLX) make PCI interface chips, which relieve the hardware engineer of the task of actually implementing the PCI stuff in favor of presenting a straightforward local bus. Of course, one must interface this local bus to the custom logic and that's usually done in a CPLD or FPGA. The only real problem with this approach is that it can be too expensive.
Another option is to include the PCI interface in the FPGA design. This has an obvious advantage in that you're using one chip instead of two. Then, the choice becomes: do you roll your own PCI interface, which can be expensive in terms of engineering time, or do you plunk down five large for Altera or Xilinx or Lattice's PCI core? In either case, you'll need a PCI bus analyzer (not an inexpensive piece of kit) -- you'd be amazed at the bizarre transactions the host bridge will throw at you.
To do the FPGA design, you'll need a real HDL simulator (I'm partial to ModelSim). You'll need to know Verilog or VHDL inside and out. Suffice it to say that your first bit of Verilog should NOT be a PCI design!
While they're coming down in price, FPGAs might still be too expensive (those Altera Cyclone parts are pretty darn cheap, tho'!), so if you think you're gonna sell boatloads of product, you can spin an ASIC that does everything except for the analog and the conversion. Natch, this requires yet another skill set.
Most competent board layout designers will be able to handle the PCB rules. A four-layer (if not more!) is mandatory. No, you can't wire-wrap it. Not if you want it to work.
Oh, yeah, the kicker. If you want to actually SELL your PCI device, you have to obtain a PCI Vendor ID. This is important because the OS selects the proper driver based on the Vendor ID and the Device ID, and you really don't want Windows loading a SCSI driver for your audio card. Find out how to get a PCI vendor ID by clicking
here. Yep, it says $3K a year.
Having said all of that, the actual digital design involved is otherwise reasonably straightforward. Your PCI device has to be a bus master and its DMA engine probably should work in chaining mode. An I2S interface is about six lines of Verilog. You can play with FIFO depths to get latency down to something reasonable, or if you like to live dangerously, you can ignore latency timers and your device can hog the PCI bus.
... and don't forget those pesky host device drivers!
-a