Cientificosaficionados.com

Los foros de los científicos aficionados de la red.
Fecha actual Mié Abr 08, 2020 1:00 am

Todos los horarios son UTC [ DST ]




Nuevo tema Responder al tema  [ 15 mensajes ]  Ir a página Anterior  1, 2
Autor Mensaje
NotaPublicado: Vie Oct 11, 2019 3:58 pm 
Desconectado
Avatar de Usuario

Registrado: Lun Feb 20, 2006 1:12 pm
Mensajes: 3031
Ubicación: Madrid
País: Madrid
Ciudad: Alcobendas
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

_________________
Pulsotron-3 el segundo reactor de fusion capaz de hacer reacciones en Europa, www.pulsotron.com


Arriba
 Perfil  
 
NotaPublicado: Jue Nov 14, 2019 8:50 am 
Desconectado
Avatar de Usuario

Registrado: Lun Feb 20, 2006 1:12 pm
Mensajes: 3031
Ubicación: Madrid
País: Madrid
Ciudad: Alcobendas
heli escribió:
Citar:
El escribir en un registro permite leer en él cuando quieras sin tener que mirar si han habido interrupciones

Tampoco entender.
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..

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 dato

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?

_________________
Pulsotron-3 el segundo reactor de fusion capaz de hacer reacciones en Europa, www.pulsotron.com


Arriba
 Perfil  
 
NotaPublicado: Jue Nov 14, 2019 9:25 am 
Desconectado
Avatar de Usuario

Registrado: Mié Sep 06, 2006 7:28 am
Mensajes: 1470
Ubicación: Alcala de Henares (Madrid, España)
País: España
Ciudad: Alcalá de Henares
Citar:
En una unidad de tiempo real si es interrumpida deja de serlo

No, una unidad en tiempo real siempre será interrumpida. Sin interrupciones no funciona nada.
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.

Citar:
mi idea es que la unidad lea del registro el último valor conocido sin tener que saber cuando llegó el dato

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.
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


Arriba
 Perfil  
 
NotaPublicado: Jue Nov 14, 2019 4:28 pm 
Desconectado
Avatar de Usuario

Registrado: Lun Feb 20, 2006 1:12 pm
Mensajes: 3031
Ubicación: Madrid
País: Madrid
Ciudad: Alcobendas
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.

_________________
Pulsotron-3 el segundo reactor de fusion capaz de hacer reacciones en Europa, www.pulsotron.com


Arriba
 Perfil  
 
NotaPublicado: Vie Dic 13, 2019 7:18 pm 
Desconectado
Avatar de Usuario

Registrado: Mié Sep 06, 2006 7:28 am
Mensajes: 1470
Ubicación: Alcala de Henares (Madrid, España)
País: España
Ciudad: Alcalá de Henares
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


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 15 mensajes ]  Ir a página Anterior  1, 2

Todos los horarios son UTC [ DST ]


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com