Sunday, October 08, 2006

Adquisición remota de datos controlada con DS80C400

Que es el título de mi PFC (Proyecto fin del carrera). Las cinco o seis primeras veces que la gente te pregunta de que va el proyecto fin de carrera lo cuentas, y te medio hace ilusión, cuando te lo preguntan ochenta veces empieza a cansar, y cuando la gente lo pregunta como quien dice “¿qué tal estás?” pues te dan ganas de soltar una bordería. A esto le tenemos que sumar que a cada persona le cuento la milonga que me da la gana, así que no creo que nadie en el mundo sepa muy bien que leches es lo que estoy haciendo, ni mi tutor del proyecto xDD. Así que voy a contar un poco de que va esa cosa que me toca las narices más que nadie últimamente.

El proyecto, ya está aceptado por el departamento, y como título tiene el mismo que este post, así que ya me las puedo apañar para que lo que finalmente haga tenga un poco que ver con lo que el título dice, jejeje. La idea original (mía, ya que yo propuse le proyecto, no un profe, como suele ser lo normal) viene por la supramotivación que sufrí al saber que había microcontroladores con más potencia que tres PCs actuales juntos, y que tienen el tamaño de una moneda de un céntimo (no, no tienen más potencia, pero como técnica comercial es buena la afirmación), me fascinó entre todas, la característica de los NWuC (NetWorked Microcontrollers), cuando supe que muchos microcontroladores actuales podían ser servidores mi mente empezó a maquinar mucho más rápido de lo que mi mano podía anotar, sumado a que llevaba un tiempo pensando en buscar PCF, dio el resultado que dio.

Al principio pensé en aplicaciones interesantes (no una mierda de adquisición de datos xDD); un robot wireless manejado desde una web, un plotter remoto, una cadena de montaje autoSAPeada y la joya de la corona, que es el que más ilu me hacía, una máquina expendedora que monitorizase su estado a la sede central de reponedores (yo tampoco se porqué me hacía ilusión, la verdad, pero me la sigue haciendo xD). Finalmente tiré por la adquisición de datos, por una cuestión meramente académica: es la más didáctica. Implica mucha más variedad en el diseño tanto hard como soft, y además haciendo balance es más barato el prototipo.

Prototipo… si, mi proyecto consiste en realizar un prototipo, que cuando se lo dices a alguien piensa “ah! Vale, el primero” pero no, en este caso me he cubierto bien las espaldas con lo de prototipo, puesto que voy a usar un tarjeta de entrenamiento del DS80C400 en lugar de integrarlo en la placa (uh!! Cobarde, meapilas!!), La razón es muy simple, el chip en cuestión es un chip que solo funciona con su escolta personal, otros 3 chip que son: Una máquina virtual de java, firmware, y una ram dinámica de 4 megas, lo cual no me excusa para nada, pero estos chips tienen doscientas patillas cada uno, con una separación entre patillas de 0.9 milímetros, con lo cual o lo suelda un robot muy caro o no lo suelda ni dios (bueno, tal vez Mont).

Bien, voy a empezar a contar de que va el proyecto, que si no, no termino, y aunque dudo que nadie lo lea, quiero hacerlo. Yo parto de una placa que tiene el microcontrolador, la JVM, ram, módulo de alimentación, cristal, y to la pesca, con lo cual yo trabajo con él, pero para mí son un montón de puertos (2 serie, 1 paralelo, 1 ethernet, 1 can, 1 ppp, y un 1-wire, y algo más, además algunos de estos van por el mismo conector) Total, que yo tengo la plaquita esta, y aparte tengo que diseñar otra plaquita, que cuando estén las dos juntas la mía va a dar pena, puesto que la del micro es una placa de 18 capas con pistas invisibles, y mi placa va a ser como las de los años 60, y no creo que tenga ni siquiera la SSP y la SSB que son unas capas que hacen que la placa sea verde, así que quedará amarilla, que es el color del sustrato original.

Bien, mis dos desarrollos principales son hacer la placa, que tendrá E/S digital y analógica, será configurable en rangos y estándares, y tendrá un par de VIAs para comunicaciones serie asíncronas. Seguramente tendré que multiplexar los canales analógicos, lo cual es más barato y pequeño, pero el diseño se complica ¬¬. Tendé unos módulos PWM, no sea que me llamen teleco, y también, para amargarme más la vida tendré que hacer una doble alimentación para control y potencia. Todo esto lo controlaré con el puerto paralelo, ya que no puedo usar más microcontroladores, sino lo haría con el 1-wire, y mi vida sería más bonita. Esta es la parte puramente hardware.

La parte software es toda la programación del micro y la web. No lo he dicho aun, pero como buen micro de última generación que es, tiene su propio sistema operativo, y su propia máquina virtual de java, así que, como no, lo programaré en java. En el microntrolador tendré dos procesos principales, tal vez tres, necesito un genio java asesor para esto xDDD. Un proceso será el servidor web, otro proceso (también conocido como el proceso gigante) será el que controle la tarjeta, y un último proceso (o tal vez me hago un mini driver para tener acceso a un trocín de memoria real sin pasar por el SO, lo sé esto va contra toda ingeniería xD) es el contenedor de datos, los datos se intercambian entre la web y la tarjeta, aquí es donde dios vencide el GC de java y sus hilos autosincronizados, si no me iba a cagar xD.

Todo este mondongo debe dar como resultado una trajeta, que se conecta a un router, y que pongamos estará en Parla, esta tarjeta tendrá sensores y actuadores conectados a sus entradas. Y por otro lado tendremos a Perry, que se conectará mediante el Firefox (si consigo que no funcione en el Explorer sería genial xDD) a una página web que el propio microcontrolador servirá. Esta web mostrará los datos de los sensores, y los actuadores, y todas las chuladas y applets que mis ganas de vivir me permitan hacer xDD y desde ella se podrán accionar los actuadores. Pense en hacer algunas cosas de procesamiento paralelo entre el PC del usuario y el micro, como un PID de ultralazo, o algo similar, pero Internet jode todos los paradigmas de la informática industrial, así que al final no creo que los haga.

Posiblemente la principal gracia de todo esto es que no hay PC de por medio (el del usuario, pero ese no cuenta), y la solución puede ser muy barata.

Ya que llevo mucho tiempo mareando la perdiz con este proyecto, no lo voy a dejar, además se que es un verdadero reto. Pero me he metido donde no me llaman. La información es muy escasa, toda en inglés, no hay proyectos similares. Y se usan tantas capas de tecnologías distintas que a veces encontrar fallos es demencial. Tendría que haber echo algo con un PIC, lo hacía en un fin de semana, me ponían un cinco y tirando xDD.

Y eso es todo, lo he escrito muy confuso, pero espero que a quien realmente le interese se entere de que va la cosa, y si no te has enterado, te dejo que me preguntes xD.

Y el resto convolucionar más. ¬¬

4 Comments:

Blogger Naranek said...

Para que haya comunicación entre el PC del usuario y el mostrenco que vas a hacer, *creo* que un applet puede abrir un socket tcp contra el servidor, así que por ahí podrías tener un canal más o menos fiable y con sesiones.

Eso sí: ¡yo aborrezco java! así que témome que en esa parte no te puedo ser de ninguna ayuda.

8:01 AM  
Anonymous Anonymous said...

Me pareces un buen profesional, pero te felicito mas por tu escrito, ya que muestra una veta de escritor.
Suerte en lo que emprendiste
Gerardo

5:50 AM  
Blogger maduxi said...

Yo buscaba una pagina k menseñara a hacer convoluciones, pero oye, grandioso el proyecto. A ver si hay suerte!

2:33 AM  
Blogger bLaCkStAr said...

Hola saludos soy un ingeniero en telematica (bueno en vias) y queria saber como te esta funcionando la tarjeta que usas oye yo me encotnro en empezar un camino similar solo que mi aplicacion usara video basando en uan aplicacion en java quiero hacer una java aplication usando netbeans pero bueno ando apenas viendo y un profesor me recomendo esa tarjeta que usas bueno cuidate y espero todo vaya bien o almenos en tiempo!

Edwin

10:32 PM  

Post a Comment

<< Home