Autor Tema: Placa de Control  (Leído 1547 veces)

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

Desconectado TheBlooD

  • PIC12
  • **
  • Mensajes: 66
Placa de Control
« en: 20 de Mayo de 2007, 13:39:05 »
Hola a todos.

Bueno, os comento el proyecto que tengo en mente, y el cual estoy realizando. Se trata de una placa de control de uso generico, a  la cual se le insertan tarjetas diversas que realizan unas funciones u otras dependiendo de como se programen y se desarrollen.

Aqui os dejo un diagrama algo cutre que pasaré a explicar a continuación:




Como se ve, la placa va conectada a un pc mediante USB (en principio). El controlador principal de la placa he pensado que sea un 18F4550, pues posee USB y varios puertos. De todos esos, necesitamos uno de salida, otro de entrada y otro de Control. Este ultimo sirve tanto para mandar las señales de activacion y acuse de recibo a las tarjetas, como para recibir estas mismas señales de las tarjetas.

La memoria sirve para guardar informacion a cerca de las tarjetas, como nombre, version, fabricante, etc etc... Esta informacion sirve para determinar que software utilizar en el pc y no utilizar un software incompatible con las tarjetas pinchadas.

Por lo tanto, las Tarjetas deben tener igualmente un puerto de entrada, uno de salida y otro de control (minimo)


FUNCIONAMIENTO:

Al arrancar la placa, todas las tarjetas arrancan, y cargan su direccion fisica en memoria, y se mantienen a la espera de una orden del controlador principal.

La direccion fisica viene marcada con el slot de la placa, y es una simple puerta AND, en una de sus entradas hay un 1 logico, y la otra entrada es activada desde la tarjeta (1 bit de control), a la salida obtenemos un 1, que irá conectado a unos pines determinados y asi obtenemos la direccion fisica.

El controlador principal manda una trama que se corresponde con: DDDDDDDD FFFFFFFF VVVVVVVV

Correspondientes con DIRECCION, FUNCION Y VALOR (este ultimo opcional)

El controlador principal manda una señal de activacion, lo cual quiere decir que va a mandar algun dato y las tarjetas deben prepararse para su recepcion. A continuacion manda otro bit que corresponde con que la direccion esta lista.
A continuacion la tarjeta la coje, la procesa, y si no es su direccion continua con lo que estaba haciendo.
Si se refiere a ella, manda un bit de acuse de recibo.
Tras esto, el controlador manda la funcion y baja a 0 la señal que envio antes, lo cual indica que el dato esta listo.
La placa la recibe, y vuelve a bajar a 0 el acuse de antes, que indica que ha recibido correctamente la funcion
El controlador manda por ultimo el valor, que es algun valor / valores necesarios para la funcion y sube a 1 la señal.
Tras esto, la placa lo recibe, sube a 1 la señal y si la señal de activacion del controlador baja, la plaba baja todas las señales de control y procede a comprovar si la funcion mandada esta en su lista y si es asi, a procesarla.


No se podrá mandar funciones inexistentes o a direcciones vacias (slot sin tarjeta) ya que eso lo controlaria el software a partir de la informacion que le mandaria el controlador principal proveniente de la memoria que almacenaria todos estos datos.

Bueno, creo que ya esta... no se si me he explicado muy bien o no.


¿porque lo pongo aqui? pues para ideas o problemas que podais ver sobre esto, y tambien saber si el 18F4550 es el mas adecuado para ello.

Las tarjetas van en paralelo a los buses de datos y control, y si la direccion son 8 bits, se podrian conectar 256 dispositivos, aunque lo realizaré solo para 8. ¿como lo veis?


¿que memoria me recomendais?


Un saludo y gracias por todo.


 

anything