Hello,
The company I work for is used to making its own custom boards (mainly FPGA-centric) but this is time consuming and expensive, so we're looking at moving more and more to COTS.
Ideally, we would like to use a standard interconnect bus so that we can mix and match cards from different manufacturers to assemble a complete system, and possibly build our own expansion cards if necessary. There seems to be lots of competing standards: PC104, PC104+, Compact PCI, VME, PMC, PXI, etc. The problem I see with this approach is that it seems that all these systems are CPU-centric, requiring a central CPU running some OS. Since we are embedded guys, this may be a problem, as we are more used to program microcontrollers, DSP and FPGAs than Linux drivers.
The other option is to go with a single signal processing company and their propriatary bus (i.e. Nallatech and DIME modules, Sundance Local Bus, Traquair micro-line family, Hunt Engineering HERON, etc). This option seems more natural to us but unfortunately we couldn't mix boards from different vendors, so the choice would be much more limited.
Just to give a little more information, I'll list our current requirements for one particular project (although we would like the chosen architecture/bus to be as flexible as possible for future projects):
- 1x DSP processor (speed is not too important right now, but the higher the better to be future-proof)
- 2x =B110V ADC input (very low frequency, 150 Hz)
- 2x =B110V DAC output (very low frequency, 150 Hz)
- Several GPIOs, say 16
- 8x RS-232 ports
- 16 analog inputs multiplexed to one ADC (could also be one ADC with
4 GPIO to control an external mux).- 1x Ethernet port (nice-to-have but not absolutely necessary)
These requirements are quite low-end in terms of throughput but we also have a project where we do data processing at 320 Mbytes/s. I'm not hoping for an architecture that can do both but I just wanted to point out that we're not only doing 150 Hz data processing ;)
One last thing is that we would like the whole system to be as plug- and-play as possible (software-wise). We would like to focus on our application instead of wasting time making all the boards talk to each other.
Can anyone share their experience or give any advice about which way we should go?
Sorry for the long post and thanks in advance!
Patrick