I'm working on a project that needs to have a pretty hefty amount of digital signal processing done in more or less real time ("soft" real time, if you must split hairs).
For a variety of reasons I think this algorithm would work best on a small single-board computer (my customer disagrees -- but getting it shoe- horned into the chips I was considering is going to take WORK, and I think it'll be cheaper for them to go with more expensive hardware).
So I'm looking for suggestions. I mostly build custom boards or I make algorithms for other people's hardware -- I've never specified a single- board computer that's gone into production.
I was thinking PC-104, but I've never actually used a PC-104 computer, and I have no idea, beyond trade-show displays, how the market has evolved.
So, here's what I think I need. Anyone who wants to look through this and point me to the current crop of solutions for all this is welcome to do so -- I'll be grateful.
Small: PC-104 form factor, or some other solution that's less than about
20 square inches of board and less than an inch tall.Fast: Something that supports native dual-precision floating point, and has a clock rate of 500MHz or better. This algorithm runs about 5x faster than real time as a Linux application on a Dell Dimension 8300. That's a 2.8GHz Pentium 4, so if it's running alone it should do more with less.
Resource-rich: The algorithm runs, albeit way slow, on a STM32F407, using less than 128kB of memory. So at least that much memory plus whatever is necessary for any OS (see below).
Ports: Comes with serial ports. I don't need Ethernet or that stuff. Depending on the processor (see below), having a JTAG debug port would be nice.
Extensible: I need something onto which I can easily slap an ADC board, or something that talks USB, and suggestions for matching ADC modules that talk USB. My preference is something that has an easy parallel I/O implementation, an SPI controller that I can hook to an ADC, and/or some generic general-purpose I/O pins that I can bit-bang.
Long legs: I need something that'll be on the market for at least five years, preferably a decade. Better yet would be something that comes from some sort of a standard (that's not on it's last legs) so that if today's choice goes out of production tomorrow, we can choose another that's form-fit-function compatible.
Processor: My preference is for ARM or Intel, but I'm open to anything for which there's a good port of the gnu tools.
OS: Depends somewhat on how the "extensible" happens. If I have to talk to an ADC using USB, then I want the board to be running Linux (or Windows in a pinch). Otherwise, I'm happy with putting my own little RTOS on there.
Thanks in advance.