Estoy buscando una interfaz de hardware de PC que coincida con estas necesidades.
La PC estará constantemente ocupada realizando cálculos. Cada vez que hay un resultado de cálculo (cada ~1 ms) quiero que lo comparta con un microcontrolador externo que está conectado a otra unidad (cerrada) a través de RS232, la unidad utilizará un protocolo predefinido para solicitar el resultado cuando lo desee para hacerlo (tiempos indeterminados).
entonces-
PC <-> microcontrolador <-> unidad
En teoría, podría conectar la PC directamente a la unidad a través de RS232 (mux, porque necesito alrededor de 6 unidades), pero no quería interrumpir la PC con demasiadas E/S, quiero que se concentre en los cálculos.
En la PC <-> micro interfaz, quiero algo rápido, por lo que PCI parecía una buena idea: puedo hacer que el microcontrolador se asiente en una tarjeta pci y 'compartir' memoria (asignada) con la PC para transferir el resultado de los cálculos, y también comunicarse con la unidad.
Gracias
Elad
Creo que su comprensión de cuál es el costo de E/S podría ser errónea. Pondría la MCU en el bus USB y usaría un paquete de bus USB para enviar los datos actualizados al microcontrolador. Puede comprar una placa de microcontrolador de bus USB lista para usar por menos de $15. Es poco probable que la sobrecarga de la transferencia del bus USB aparezca en un perfil del rendimiento del sistema.
Si estuviera abordando un gran proyecto en esta dirección, consideraría PXI, http://en.wikipedia.org/wiki/PCI_eXtensions_for_Instrumentation
Esencialmente, este es un bus PCI compartido con algunas extensiones, y cada dispositivo que conecte puede acceder al bus. http://www.stmopen.net/intellective-pxi-bus-extended-card-design-based-on-arm-microcontroller/ habla sobre una plataforma ARM que usa ese bus,
Por supuesto, si no necesita esta funcionalidad extendida, debería considerar la opción USB. Para un protocolo que no es en tiempo real, la gente seguramente hace algunas cosas interesantes que no puedo diferenciar del tiempo real.
chris stratton
Igor Skochinsky