Estoy trabajando en un proyecto que requiere la lectura de cuatro sensores simultáneamente con marcas de tiempo hasta milisegundos.
Ahora mismo, lo mejor que puedo hacer es usar cuatro PIC para leer de cada sensor y enviarlos a través de cuatro RS232 a una computadora portátil. Así que esos sensores no interfieren entre sí. Para las marcas de tiempo, uso un interruptor mecánico para activar una interrupción de cambio de voltaje de pin externo para iniciar temporizadores en todos los PIC al mismo tiempo. Los temporizadores aumentan cada milisegundo y simplemente agrego el valor de los temporizadores al final de cada medida y los emito a través de los puertos serie.
Funciona, pero solo quiero saber si hay una solución mejor, ya que este proyecto es de tipo crítico de tiempo (se requieren 1000 mediciones por segundo). Y también el temporizador interno para cada PIC varía, lo que anula el propósito de sincronizar los temporizadores.
También pensé en leer el temporizador de un chip adicional utilizando SPI, por lo que todas las marcas de tiempo provienen de una fuente . Sin embargo, no sé cuándo esos PIC leerán la hora de ese chip fuente. Podrían haber cuatro PIC que se leen al mismo tiempo, lo que desordenará las marcas de tiempo.
Sensor 1: codificador de cuadratura (canal A B e índice)
Sensor 2: Láser (envío de mediciones a través de la interfaz Rs232)
Sensor 3: acelerómetro (analógico)
Sensor 4: inclinómetro (interfaz RS232)
Estoy usando cuatro DSPIC30f4011 . Tienen suficientes UARTs de QIE y también admiten ADC de cuatro canales simultáneos.
Para Codificador de cuadratura , utilizo un QIE en chip para leerlo y enviar mediciones a una computadora portátil a través de UART.
Para Lazer e inclinometer , leo de ellos a través de UART1 y envío medidas a una computadora portátil a través de UART2 (un chip para cada uno de ellos)
Para acelerómetro , la información de x y y z se está recopilando mediante el modo simultáneo de cuatro canales. Las mediciones se envían a una computadora portátil a través de UART.