Electronic – PC shares memory with external microcontroller

memorymicrocontrollerpcie

I'm looking for a PC hardware interface that matches these needs-

The PC will constantly be busy performing calculations. Each time there is a calculation result (every ~1ms) I want it to share it with an external micro-controller that is attached to another (closed) unit via RS232, the unit will use a predefined protocol to request the result when it wishes to do so (undetermined timings).

so-

PC <-> micro-controller <-> unit

Theoretically I could connect the PC directly to the unit via RS232 (mux, cause I need around 6 units), but I did not want to interrupt the PC with too much I/O, I want it to be focused on the calculations.

On the PC<->micro interface I want something fast, so PCI seemed like a good idea – I can have the micro-controller sit on a pci card and 'share' memory (mapped) with the PC to transfer calculations result, and also communicate with the unit.

  1. There are many FPGA cards on PCI out there, but I'm looking for something like ARM or even something more simple on the card, does anyone know some good product for that?
  2. Is the PCI a good idea for my setup? Do you suggest something else? I really want this interface to act like a shared memory.

Thanks

Elad

Best Answer

I think your understanding of what the cost of I/O is might be misguided. I'd put the MCU on the USB bus, and use a USB bus packet to send the updated data to the microcontroller. You can buy a USB bus microcontroller board all ready-made for < $15. The overhead of the USB bus transfer is unlikely to ever show up on a profile of the system performance.