Autor Tema: Ideas para lógica de control  (Leído 1400 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jairotev

  • PIC10
  • *
  • Mensajes: 6
Ideas para lógica de control
« en: 21 de Abril de 2022, 21:40:03 »
Hola amigos del foro. Les cuento que estoy haciendo un diseño que está dividido en 3 bloques que se comunican con un bloque principal, y este envía las órdenes a un último bloque. Así que tenemos bloque 1, bloque 2,bloque 3 que se comunican con bloque Ppal (bloque 4) y este se comunica con bloque 5 que ejecuta las órdenes. Cada bloque tiene una tabla de verdad de 4 bits. O sea que bloque 1 envía 0001 para que bloque 5 ejecute x función, luego bloque 2 envía tmb 0001 para que bloque 5 ejecute una función diferente y lo mismo con bloque 3. Eh aquí el dilema. El bloque Ppal recibe por sus puertos digitales todas las órdenes pero no puede enviárselas así como así al bloque 5, xq como los 3 bloques envían los mismos códigos ¿cómo sabe el bloque 5 cual de las 3 diferentes órdenes debe ejecutar?. Así que entre la comunicación del bloque Ppal con el bloque 5 tengo que crear algún tipo de lógica que le diga al bloque 5 de quién está recibiendo esa orden, si del bloque 1,2 o 3 y por ende saber qué función deb ejecutar. Bueno la limitante que tengo es que solo tengo 4 pines para comunicarme entre el bloque Ppal y el bloque 5. Mí pedido de ayuda o de sugerencia es: ¿Que lógica aplicarían ustedes para que el bloque Ppal le diga al bloque 5 antes de enviarle los datos de dónde proviene esa orden? Espero sepan ayudarme a encontrar alguna lógica interesante que me ayude en el proyecto. Gracias a todos. Cómo dato importante, yo programo en C, no soy experto para nada, me defiendo por prueba y error y foros maravillosos así como foreros admirables como ustedes y este sitio, por eso recurro a ustedes. Bueno espero se entienda la propuesta y a ver quién se gana el premio a la mejor lógica de control....  :mrgreen:

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Ideas para lógica de control
« Respuesta #1 en: 21 de Abril de 2022, 23:12:50 »
Hola amigos del foro. Les cuento que estoy haciendo un diseño que está dividido en 3 bloques que se comunican con un bloque principal, y este envía las órdenes a un último bloque. Así que tenemos bloque 1, bloque 2,bloque 3 que se comunican con bloque Ppal (bloque 4) y este se comunica con bloque 5 que ejecuta las órdenes. Cada bloque tiene una tabla de verdad de 4 bits. O sea que bloque 1 envía 0001 para que bloque 5 ejecute x función, luego bloque 2 envía tmb 0001 para que bloque 5 ejecute una función diferente y lo mismo con bloque 3. Eh aquí el dilema. El bloque Ppal recibe por sus puertos digitales todas las órdenes pero no puede enviárselas así como así al bloque 5, xq como los 3 bloques envían los mismos códigos ¿cómo sabe el bloque 5 cual de las 3 diferentes órdenes debe ejecutar?. Así que entre la comunicación del bloque Ppal con el bloque 5 tengo que crear algún tipo de lógica que le diga al bloque 5 de quién está recibiendo esa orden, si del bloque 1,2 o 3 y por ende saber qué función deb ejecutar. Bueno la limitante que tengo es que solo tengo 4 pines para comunicarme entre el bloque Ppal y el bloque 5. Mí pedido de ayuda o de sugerencia es: ¿Que lógica aplicarían ustedes para que el bloque Ppal le diga al bloque 5 antes de enviarle los datos de dónde proviene esa orden? Espero sepan ayudarme a encontrar alguna lógica interesante que me ayude en el proyecto. Gracias a todos. Cómo dato importante, yo programo en C, no soy experto para nada, me defiendo por prueba y error y foros maravillosos así como foreros admirables como ustedes y este sitio, por eso recurro a ustedes. Bueno espero se entienda la propuesta y a ver quién se gana el premio a la mejor lógica de control....  :mrgreen:

Lo que tienes que implementar ahí es un protocolo.

Es decir que mandas una trama (una serie de varios bytes) donde indicas la longitud (número de bytes), dirección, comandos y datos,etc

Cuando el bloque principal necesita transmitir una orden y/o datos a un bloque, digamos al 3, envía una trama con la dirección 3. Esto implica que cada bloque esclavo posee su propia dirección.

Esta trama llega a todos, y todos comprenden que es una trama con datos u ordenes. Pero aquel que es dirección 3 procesa la información y responde al maestro (que puede ser dirección 0)

De esa manera logras que sólo el módulo deseado realice un proceso.

Podrías comprender o utilizar la comunicación RS485 que puede ser útil en lo que deseas implementar.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Re:Ideas para lógica de control
« Respuesta #2 en: 22 de Abril de 2022, 14:13:13 »
Lo que ya te ha dicho DominusDRR,

 Protocolo, no te queda otra.

 Entiendo que la comunicación entre los tres bloques con el 4 van en paralelo, es decir que además tienes que protocolar el orden y la detección de busy para que un bloque no transmita si otro está transmitiendo algo antes, y evitar colisión en el bus.