Pues me parece que lo que yo quiero no existe, pues el modbus al final tendría que funcionar con interrupciones periódicas, que es justo lo que quiero evitar.
Propongo un protocolo, consiste en una variación del can bus.
En cada micro hay 16 filtros y 16 words donde tanto el interfaz como el micro pueden acceder
Entonces en cada micro pone escribe cada filtro, por ejemplo en un coche, el filtro 0xAC00 es la dirección del acelerador, y cada vez que lea la dirección AC00 escribe ahí el dato.
El micro cuando necesite el dato del acelerador vá al registro y lo lee, sin importar cuando llegó el dato.
De este modo todos hablan y escuchan, aunque solo el micro conectado al acelerador escribirá el valor del mismo y todos los micros pueden recibir el dato: el circuito del control de tracción, el del inverter del motor eléctrico, el del kerst, etc.
En un momento dado puedo decirlo a un consorcio para proponer una cosa así.
saludos
Comunicacion entre Micropics
- fusion
- Mensajes: 4573
- Registrado: Lun Feb 20, 2006 1:12 pm
- País: Madrid
- Ciudad: Alcobendas
- Ubicación: Madrid
Re: Comunicacion entre Micropics
En una unidad de tiempo real si es interrumpida deja de serlo, mi idea es que la unidad lea del registro el último valor conocido sin tener que saber cuando llegó el datoheli escribió:Tampoco entender.El escribir en un registro permite leer en él cuando quieras sin tener que mirar si han habido interrupciones
No se mira si ha habido interrupciones sino todo lo contrario, las interrupciones interrumpen y se ejecuta el código correspondiente para la gestión del evento.
Lo contrario es el polling, donde sí es necesario estar mirando periódicamente los registros a ver si hay novedades..
Al final me he decantado por el I2C pues solo necesita 2 líneas y tierra mientras que spi necesita además una línea por dispositivo,
¿cual es la velocidad más comúnmente empleada en I2C? ¿se suele emplear 7 o 10 bits de dirección?
- heli
- Mensajes: 1946
- Registrado: Mié Sep 06, 2006 7:28 am
- País: España
- Ciudad: Alcalá de Henares
- Ubicación: Alcala de Henares (Madrid, España)
- Contactar:
Re: Comunicacion entre Micropics
No, una unidad en tiempo real siempre será interrumpida. Sin interrupciones no funciona nada.En una unidad de tiempo real si es interrumpida deja de serlo
El procesamiento en tiempo real estricto no existe, siempre hay una demora. Lo importante es que esa demora sea mínima y predecible. Si las interrupciones no perturban el bucle principal más de lo establecido son aceptables.
En determinados escenarios eso es una muy mala idea. Por ejemplo, si estas integrando datos o haciendo medias, en general si vas a procesarlos con una función que dependa del tiempo o del número de muestras, es imprescindible usar datos frescos. Si usas datos repetidos las salidas de esas funciones serán incorrectas. Lo más común es usar interrupciones o en su defecto usar un flag para marcar los datos nuevos que se borre tras usarlos, para no tratarlos dos veces.mi idea es que la unidad lea del registro el último valor conocido sin tener que saber cuando llegó el dato
En ausencia de datos nuevos a tiempo puede ser interesante parar el proceso... algo no esta funcionando como debiera.
El I2c funciona a 100Khz por defecto y a 400Khz en modo fast. Existen otros modos hasta 5Mhz, pero yo no los he usado nunca. 400Khz es razonable para la mayor parte de chips y backplanes. Es un bus lento pero más que suficiente para la mayoría de aplicaciones.
Si no vas a montar más de 112 esclavos I2c usa el estándar de 7 bits de dirección.
¡No es imposible, lo que pasa es que no sabes como hacerlo!
Aka: no es difícil si sabes como.
http://heli.xbot.es
Aka: no es difícil si sabes como.
http://heli.xbot.es
- fusion
- Mensajes: 4573
- Registrado: Lun Feb 20, 2006 1:12 pm
- País: Madrid
- Ciudad: Alcobendas
- Ubicación: Madrid
Re: Comunicacion entre Micropics
Una unidad de tiempo real es un sistema más rápido que el sistema a controlar o medir, si se le interrumpe deja de serlo, por eso windows no es un RTO, en mi caso aunque se caiga el mundo hay una interrupción cada milisegundo que toma todos los datos, programa las salidas del micro, que iena casi todas las 100 patas ocupadas y luego espera al siguiente milisegundo. Es el segundo sistema así que desarrollo y vá bien.
Anteriormente la unidad procesaba por separado 4 vídeos distintos de alta resolución en tiempo real, aunque se acabara el mundo cada 20 milisegundos procesaba la imagen y trasmitía el resultado, pero "hacía trampas" pues usaba la gráfica y sus 1900 procesadores paralelos
Los datos son analógicos tomados de forma independiente, ahora es una posición de un motor, dá igual si se ha usado 7 veces en el mismo ciclo del motor, solo calcula en función de la posición del rotor si hay que meterle a una fase 300 amperios o sacarlos o dejarla flotante.
Anteriormente la unidad procesaba por separado 4 vídeos distintos de alta resolución en tiempo real, aunque se acabara el mundo cada 20 milisegundos procesaba la imagen y trasmitía el resultado, pero "hacía trampas" pues usaba la gráfica y sus 1900 procesadores paralelos
Los datos son analógicos tomados de forma independiente, ahora es una posición de un motor, dá igual si se ha usado 7 veces en el mismo ciclo del motor, solo calcula en función de la posición del rotor si hay que meterle a una fase 300 amperios o sacarlos o dejarla flotante.
- heli
- Mensajes: 1946
- Registrado: Mié Sep 06, 2006 7:28 am
- País: España
- Ciudad: Alcalá de Henares
- Ubicación: Alcala de Henares (Madrid, España)
- Contactar:
Re: Comunicacion entre Micropics
Vale
¡No es imposible, lo que pasa es que no sabes como hacerlo!
Aka: no es difícil si sabes como.
http://heli.xbot.es
Aka: no es difícil si sabes como.
http://heli.xbot.es
- fusion
- Mensajes: 4573
- Registrado: Lun Feb 20, 2006 1:12 pm
- País: Madrid
- Ciudad: Alcobendas
- Ubicación: Madrid
Re: Comunicacion entre Micropics
¿Para que es la máscara?. He de programar un slave I2C y no sé si en la máscara se debe poner la dirección del Master a quien debe responder, pues ya tiene si dirección propia.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados