Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Indice general
V
VI VII X
1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 1.1. Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . o 1.2. Denicin de sensor. . . . . . . . . . . . . . . . . . . . . . . o 1.3. Conceptos necesarios o terminolog necesaria . . . . . . . . a 1.3.1. Zona muerta. . . . . . . . . . . . . . . . . . . . . . . 1.3.2. Mximo rango sensible. . . . . . . . . . . . . . . . . . a 1.3.3. Angulo de emisin. . . . . . . . . . . . . . . . . . . . o 1.3.4. Dimetro del cono de emisin. . . . . . . . . . . . . . a o 1.3.5. Frecuencia de disparo. . . . . . . . . . . . . . . . . . 1.3.6. Inclinacin del haz de ultrasonidos. . . . . . . . . . . o 1.4. Caracter sticas f sicas de la onda ultrasnica. . . . . . . . . . o 1.5. Estudio de las restricciones de percepcin: sensores de ultrao sonidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.1. Sensores basados en el tiempo de vuelo . . . . . . . . 1.5.2. Sensores basados en desplazamiento de fase. . . . . . 1.6. El sistema ultrasnico. . . . . . . . . . . . . . . . . . . . . . o 1.6.1. Descripcin general del sistema . . . . . . . . . . . . o 1.6.2. El transductor. . . . . . . . . . . . . . . . . . . . . . 1.6.3. El mdulo electrnico. . . . . . . . . . . . . . . . . . o o
INDICE GENERAL 1.6.4. Medida del eco. . . . . . . . . . . . . . . . . . . . . . 1.6.5. Resolucin. . . . . . . . . . . . . . . . . . . . . . . . o 1.7. Funcionamiento del sensor. . . . . . . . . . . . . . . . . . . . 1.8. Conguraciones. . . . . . . . . . . . . . . . . . . . . . . . . . 1.8.1. Conguracin de un solo sensor. . . . . . . . . . . . . o 1.8.2. Conguracin de varios sensores. . . . . . . . . . . . o 1.8.3. Conguraciones para extraccin de caracter o sticas. . . 1.9. Incidencias del medio ambiente. . . . . . . . . . . . . . . . . 1.10. Errores de medida con ultrasonidos. . . . . . . . . . . . . . . 1.11. Aplicaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11.1. Introduccin. . . . . . . . . . . . . . . . . . . . . . . o 1.11.2. Ventajas. . . . . . . . . . . . . . . . . . . . . . . . . 1.11.3. Diferencia entre deteccin de proximidad y medida del o rango. . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11.4. Campos de aplicacin. . . . . . . . . . . . . . . . . . o 1.11.5. Aplicaciones t picas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ii 17 18 19 20 20 22 27 28 29 31 31 31
. 32 . 33 . 34
II
Sistemas empotrados.
38
39 40 40 42 42 45
2. Sistemas empotrados. 2.1. Introduccin.La era Post-PC. . . . . . . . . . . . . . . . . . . o 2.2. Los cinco pilares del crecimiento de los sistemas empotrados. . 2.3. Para qu sirven? . . . . . . . . . . . . . . . . . . . . . . . . . e 2.4. Sistemas empotrados. . . . . . . . . . . . . . . . . . . . . . . . 2.5. Aplicaciones de los Sistemas de Tiempo Real dentro de 25 aos. n
III
3. Java y el tiempo real. 3.1. Introduccin. . . . . . . . . . . . . . . . . . . . o 3.2. La plataforma JAVA. . . . . . . . . . . . . . . . 3.2.1. El lenguaje de programacin Java. . . . o 3.2.2. La mquina virtual Java. . . . . . . . . . a 3.2.3. Aplicaciones de Java en objetos mbiles. o 3.2.4. Conclusin. . . . . . . . . . . . . . . . . o 3.3. Tiempo Real. . . . . . . . . . . . . . . . . . . . 3.3.1. Origen de los sistemas de tiempo real. . 3.3.2. Denicin de sistemas de tiempo real. . . o 3.3.3. Clasicacin. . . . . . . . . . . . . . . . o
INDICE GENERAL 3.3.4. Las limitaciones de tiempo en los sistemas real. . . . . . . . . . . . . . . . . . . . . . 3.4. Real-Time Java. . . . . . . . . . . . . . . . . . . . 3.4.1. Introduccin. . . . . . . . . . . . . . . . . o 3.4.2. La debilidad de Java para las aplicaciones real. . . . . . . . . . . . . . . . . . . . . . 3.4.3. Principios a seguir. . . . . . . . . . . . . . 3.4.4. Diseo e implementacin. . . . . . . . . . n o 3.4.5. La Real Time Specication for Java. . . de tiempo . . . . . . . . . . . . . . . . . . de tiempo . . . . . . . . . . . . . . . . . . . . . . . .
iii
. 56 . 57 . 57 . . . . 57 58 58 60 62 63 63 67 67 68 68 68
4. Fundamentos del procesador ajile80 y JStamp 4.1. Introduccin a Java. . . . . . . . . . . . . . . . . . . . . . . o 4.2. Qu es JStamp ? . . . . . . . . . . . . . . . . . . . . . . . e 4.3. Software de desarrollo necesario para el JStamp. . . . . . . . 4.3.1. JEMBuilder . . . . . . . . . . . . . . . . . . . . . . . 4.3.2. Charade . . . . . . . . . . . . . . . . . . . . . . . . . 4.4. El procesador aJ-80. . . . . . . . . . . . . . . . . . . . . . . 4.4.1. Introduccin. . . . . . . . . . . . . . . . . . . . . . . o 4.4.2. La arquitectura Java para sistemas Java empotrados de tiempo real ecientes. . . . . . . . . . . . . . . . . 4.4.3. The JEM2 direct execution Java microprocesor core. 4.4.4. Soporte hardware para hilos de Java en tiempo real. 4.4.5. Un entorno de ejecucin Java escrito enteramente en o Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.6. Manejo de memoria. . . . . . . . . . . . . . . . . . . 4.4.7. Manejo de interrupciones y bloqueo. . . . . . . . . . 4.4.8. Personalizacin del conjunto de instrucciones. . . . . o 4.4.9. Varias mquinas virtuales de Java concurrentes. . . . a 4.4.10. Multiple JVM Manager (MJM). . . . . . . . . . . . . 4.4.11. aJ-80: Un microcontrolador de Java para sistemas empotrados de tiempo real. . . . . . . . . . . . . . . . . 4.4.12. Timer/Counter (TC). . . . . . . . . . . . . . . . . . . 4.5. Acerca de Systronix Inc. . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. 69 . 70 . 72 . . . . . . 73 73 74 74 74 75
. 75 . 80 . 80
IV
Dise o. n
87
88 89 89 90
INDICE GENERAL 5.3.1. Conexiones en el JStamp. . . . . . 5.3.2. Circuito auxiliar. . . . . . . . . . . 5.3.3. Alimentacin. . . . . . . . . . . . . o 5.4. Programacin. . . . . . . . . . . . . . . . . o 5.4.1. Generacin del pulso de disparo. . . o 5.4.2. Lectura del eco de respuesta. . . . . 5.4.3. Calculo de la distancia. . . . . . . . 5.4.4. Comportamiento del robot. . . . . 5.5. Descripcin de la conguracin adoptada. o o 5.6. Programacin en JBuider8. . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv 91 91 92 94 94 95 96 97 97 97
Apndices e
99
100 104 107 113 120 125
A. Abreviaturas de Java. B. Datos del procesador aJ-80. C. Planos del procesador aJ-80. D. Datos del JStamp. E. Planos del JStamp. F. Regulador de tensin MC7808C. o
VI
Bibliograf a.
132
133
Bibliograf a.
AGRADECIMIENTOS
Ante todo agradecer a mis padres todo su apoyo y paciencia porque sin ellos nada de todo esto habra sido posible. Y GRACIAS tambin a todos aquellos (amigos, compaeros, profesores,...) e n que me han apoyado y ayudado durante todos estos aos. n
vi
PROLOGO
Los sistemas autnomos son sistemas complejos dif o ciles de desarrollar. Integran mltiples sensores y actuadores, tienen muchos grados de libertad y u deben reconciliar tareas de tiempo real con sistemas que no pueden cumplir con los tiempos de entrega. Los robots autnomos son sistemas completos que operan dentro de eno tornos complejos sin la actuacin directa del ser humano. Ellos procesan o seales, establecen relacciones, toman decisiones en tiempo de ejecucin y n o adaptan sus planes de actuacin a las diferentes circunstancias externas. o La informacin que reciben les hace autoprogramables, alterando sus proo gramas en funcin de las condiciones de contorno. Estos sistemas incluyen o ciertas tcnicas de inteligencia articial en sus comportamientos. En la mae yor de los casos, la informacin requerida es la posicin, velocidad, el par, a o o aceleracin, fuerza, tamaos y formas de objetos y temperatura. La cuantio n cacin de estas medidas se realiza a travs de sensores mecnicos, pticos, o e a o trmicos, elctricos, ultrasnicos,... e e o Los robots mviles son una de las tecnolog que ms inters ha despero as a e tado en la industria por cuanto su posible aplicacin a una gran diversidad o de tareas de forma cooperante con el ser humano. Conforme la tecnolog se a ha ido desarrollando ha crecido en importancia el concepto de Autonom a el cual sobrepasa el concepto de sistema automtico. La autonom es un a a requerimiento adicional importante. Para denir la autonom podemos rea, currir a deniciones suministradas por el etlogo Smithers que dice: La idea o central del concepto de autonom se identica en la etimolog del trmino: a a e autos (propio) y nomos (ley o regla). Se aplic por primera vez en la ano tigua Grecia para referirse a aquellas ciudades o estados que se reg por an leyes propias en lugar de vivir acorde al poder de un gobierno externo. Es util contrastar el concepto de autonom con el de sistema automtico... Los a a sistemas automticos se autoregulan pero ellos no establecen las leyes que a sus reguladores intentan satisfacer. Estas leyes les son suministradas o estn a vii
PROLOGO
viii
inmersas en su construccin. Los sistemas automticos son capaces de cono a ducirse a lo largo de un camino corrigiendo y compensando los efectos de las perturbaciones externas. Los sistemas autnomos son capaces de generar por o ellos mismos las leyes y estrategias con las que regularan su comportamiento: se autogobiernan y se autoregulan. Determinan el camino a seguir y se conducen sobre l. e Esta denicin recoge la cuestin esencial, para ser autnomo primero o o o tiene que ser automtico. Esto implica sentir el entorno y ejercer acciones a sobre l de manera beneciosa para el agente y las tareas que debe desarrollar. e Pero la autonom va ms all que el automatismo, porque se supone que a a a la base de autoregulacin se genera desde la propia capacidad del agente de o componer y adaptar sus principios de comportamiento. Ms an, el proceso a u de construccin y adaptacin es algo que tiene lugar mientras el agente opera o o en su entorno. Para conseguir esto, el robot requiere una serie de capacidades que en gran medida se agrupan bajo el concepto de inteligencia. Se puede considerar que la inteligencia se centra en la habilidad de un sistema de mantenerse a s mismo mediante la creacin y uso de representa o ciones. Muy estrechamente ligada a la autonom est la capacidad de percibir el a a entorno y actuar sobre el mismo. Esta propiedad es la que permite al robot obtener datos sobre su entorno (sensacin) por medio de unos sensores y o elaborarlos para su utilizacin (percepcin) por medio de procesos de fusin o o o ms o menos elaborados. Parece claro que a mayor capacidad de autonom a a , mayor es la capacidad de percepcin y actuacin necesaria. En el proceo o so de percepcin no slo se ven involucrados los sensores, con el objeto de o o medir el tiempo de vuelo de una seal o una cantidad de luz. Tambin es n e necesario percibir situaciones errneas o peligrosas. Para esto adems de la o a capacidad de sentir y percibir es necesaria una cierta inteligencia en forma de conocimiento, bien previo o aprendido. Por otro lado, la inteligencia, a su vez, requiere de una capacidad de percepcin para poder evolucionar y o adaptarse. Esto lleva a un bucle cerrado en el cual no hay un principio y un nal. Es decir, no hay un antes ni un despus. Es cada vez ms admitido e a entre la comunidad investigadora que la capacidad de percepcin de un robot o construye o modica su inteligencia computacional, la cual a su vez decide su actuacin o interaccin con todo lo que le rodea cerrndose todo el ciclo. o o a Esta idea caer lejos de lo que en robtica aplicada a la industria podr a o amos denir como un control clsico de un robot, pero tambin es cierto que los a e
PROLOGO
ix
robots que hoy en d se utilizan en la industria, en el 90 % de las ocasiones a lo hacen en entornos estructurados y poco dinmicos, por lo cual sus necesia dades de percepcin y por tanto la inteligencia desarrollada es m o nima. Los grandes retos hoy por hoy de la robtica mvil se encuentran en : o o Capacidad de construccin de representaciones del entorno autnomas. o o Capacidad de trabajo en entornos cambiantes y dinmicos como los a entornos al aire libre (outdoor). Avances en los sistemas de visin articial. o Capacidad de cooperar en grupos de robots. Capcidad de comunicacin entre el robot y el hombre de forma natural. o Avances en percepcin y su relacin con la inteligencia. o o
INTRODUCCION
Este proyecto se engloba dentro de uno mucho ms ambicioso cuyo n es a la investigacin de las tcnicas de control de sistemas autnomos. Se pretende o e o crear un robot que reaccione ante lo imprevisto. Como plataforma de desarrollo se parte de un modelo de radio control de Tamiya, tipo Bigfoot, que aporta estabilidad, capacidad de carga y potencia motriz, y es de pequeo tamao lo que le dota de movilidad en n n interiores. Esta plataforma ha sufrido algunas modicaciones: Se le ha suprimido el control remoto. Se ha sustituido el servo de direccin por otro de par mayor, este cambio o es necesario debido al aumento de peso que va a experimentar el coche al dotarlo de sensores, bater procesadores, circuitos auxiliares,... as, Se han cambiado los engranajes metlicos por otros que proporcionan a una mayor durabilidad. Se le han eliminado los amortiguadores originales. Adems en la fase de diseo se tuvo en cuenta la distribucin de todos a n o estos componentes para facilitar el cambio y mantenimiento de los mismos. Este sistema autnomo tiene un cerebro principal situado en un armario o de control de la rma Honeywell, situado en el centro de clculo del Dea partamento de Ingenier de Sistemas y Automtica(DISAM) de la Escuela a a Tcnica Superior de Ingenieros Industriales de la Universidad Politcnica de e e Madrid. Este cerebro es un computador con procesamiento en paralelo y se comunica con el coche mediante una red inalmbrica 802.11b del IEEE. a x
INTRODUCCION
xi
Figura 1: Plataforma. Dentro del coche se han incorporado dos procesadores: El procesador principal es una placa Wafer 5820, con factor de forma de 3,5 pulgadas, que ofrece un completo PC con procesador Pentium, ethernet y todos los puertos necesarios ocupando un espacio m nimo y con un consumo muy pequeo, adems de la poca disipacin de calor n a o que produce, con el consecuente ahorro en cuanto a problemas de diseo n se reere. La red inalambrica comunica esta placa Wafer con el cerebro principal. Un procesador secundario que se encarga de gestionar la informacin o procedente de los sensores y actuar en consecuencia, as como de con trolar el servo instalado. Como procesador secundario se usa el aJ-80 dentro del entorno de desarrollo JStamp que tiene como principal caracter stica su arquitectura nativa Java y su pequeo tamao (1 x 2 n n pulgadas). El objetivo de este proyecto ser dotar de informacin al sistema mediana o te la implantacin de sensores de ultrasonidos de BOSCH y programar el o
INTRODUCCION
xii
procesador para que acte en funcin de la informacin recibida, dotando u o o as de autonom al sistema. a
1.1.
Introduccin. o
Los sensores de ultrasonido estn siendo utilizados de forma creciente a en los ultimos 10 aos por parte de los diseadores de robots autnomos. n n o Los principales motivos son la buena relacin precio-cantidad de informacin o o proporcionada, que dichos sensores poseen. En la mayor de las implementaa ciones, la distancia a la que se encuentran los objetos se determina mediante el calculo del tiempo de vuelo de la seal (Time of Fligth T.o.F.). Es posin o ble, mediante el uso de varios de estos sensores, evitar obstculos de forma a rpida y sin interferencias entre los dispositivos. a
1.2.
Denicin de sensor. o
Los sensores van a ser en el robot la fuente de datos sobre los cambios tanto en el entorno (distancias a objetos, luz ambiental) como en s mismo (nivel de las bater as...). Entorno a los sensores conviene antes de entrar en profundidad en los mismos denir una terminolog a: Transductor : aquel dispositivo que transforma una magnitud f sica de entrada (por ejemplo luz) en otra de salida (normalmente voltaje). Procesador de seal : dispositivo que realiza una cierta operacin con n o una seal como un ltrado, amplicacin etc. n o Sensor : estar compuesto de uno o ms transductores y algn procea a u sador de seal. n Esta ser una denicin bajo un punto de vista de bloques. De forma funa o cional podemos decir que un sensor es un dispositivo que capta la magnitud de una variable f sica en un sistema f sico o entorno. Cualquier dispositivo que es alterado por las variacines de una manitud f o sica de una forma predecible y medible es un sensor para esa magnitud. As un sensor viene caracterizado , por su funcin de transferencia, que relaciona el valor de la magnitud f o sica con el valor que ste suministra en su salida. e Las caracter sticas que denen un sensor son: Accesibilidad. Es la zona del entorno f sico en la que las variaciones de la magnitud medir afectan al sensor. a
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 4 Dimensin. Segun el valor sea escalar, vectorial, n-dimensional... o Rango de operacin. Loa sensores operan slo en un determinado o o rango de valores de la magnitud a medir e incluso de otras magnitudes. Datos. Formato de los datos. Discretos o cont nuos, procesamientolocal, ancho de banda, capacidades de compresin de la informacin... o o Sensibilidad. Especicaciones sobre exactitud y precisin. o Localizacin. Local o remoto al lugar de procesamiento. o Inteligencia. Se dice que un sensor es inteligente si tiene capacidades de procesamiento o decisin. El uso de sensores inteligentes permite o establecer un compromiso entre computacin y comunicacin. Las cao o pacidades de procesamiento local pueden reducir las necesidades de ancho de banda para una red de sensores. En robtica mvil se usan una gran variedad de sensores que miden distino o tas magnitudes. De todos ellos aquellos que ms se utilizan son los orientados a a resolver uno de los problemas fundamentales de todo sistema autnomo: o la determinacin de la posicin. Bsicamente este problema se resuelve meo o a diante medidas relativas de posicin o mediante sistemas absolutos de posio cionamiento. De todos ellos hay uno que destaca por ser utilizado en gran parte de las plataformas mviles, me estoy reriendo a los sensores de ulo trasonidos. Estos han sido utilizados desde los primeros robots dedicados a la investigacin hasta las ms recientes plataformas comerciales, con pocas o a variaciones en la tecnolog Junto con estos, los sensores basados en luz son a. otros de los sensores utilizados para determinacin de distancias a objetos y o por tanto para la construccin de mapas de entorno. o
1.3.
Entorno a los sensores de ultrasonidos conviene antes de entrar en profundidad en ellos denir algunos conceptos:
1.3.1.
Zona muerta.
Los sensores de ultrasonidos tienen una zona muerta en la cual no pueden detectar exactamente el objeto u obstculo. Esta es la distancia entre la mema brana sensora y el m nimo rango de sensibilidad. Si el objeto est demasiado a cercano, la seal ultrasnica puede chocar contra el objeto antes de que dicha n o seal haya dejado el transductor, por tanto, la informacin del eco devuelta n o al sensor es ignorada por el transductor, puesto que ste est todav transe a a mitiendo y no recibiendo. Si el objeto est demasiado cerca puede ocurrir a otro problema, que el eco generado se reeje sobre la membrana sensora y viaje de nuevo hacia el objeto. Estos ecos mltiples pueden dar lugar a errores u cuando el objeto est dentro de la zona muerta. a
1.3.2.
El rango mximo en el que se puede detectar cada objeto y cada aplicacin a o se determina mediante experimentacin. En las guras 1.1 y 1.3 se muestran o las caracter sticas de sensibilidad y las distancias sensibles t picas para el sensor de ultrasonidos.
1.3.3.
Angulo de emisin. o
El ngulo del cono de emisin est formado por los puntos del espacio a o a en los que la seal del sensor es atenuada por lo menos 3dB. Fuera de este n cono la seal de ultrasonidos existe pero es bastante dbil. Este cono debe n e determinarse experimentalmente y dentro de l pueden detectarse los objetos. e
1.3.4.
El sensor de ultrasonidos emite un haz de sonido en forma de cono que elimina los lbulos laterales. Es importante el tamao del objeto respecto del o n tamao de la zona que abarca el haz. Tericamente, el objeto ms pequeo n o a n detectable es aquel que mide la mitad de la longitud de onda de la seal del n sensor de ultrasonidos. Para 215KHz, la longitud de onda de la seal es de n 0.063, por lo que, bajo condiciones ideales, estos sensores son capaces de detectar objetos con un tamao m n nimo de 0.032. Normalmente los objetos son grandes, por lo que son detectados a varias distancias. para determinar
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 8 el rea que abarca el sensor de ultrasonidos a una determinada distancia a (dimetro del cono de emisin), se usa la frmula: a o o
Box 2 X tan
(1.1)
Donde Box es el dimetro del cono de emisin a la distancia X. a o X es la distancia del objeto (obstculo) al sensor. a es el ngulo del cono de emisin. a o
1.3.5.
Frecuencia de disparo.
La mxima frecuencia a la que un sensor es capaz de dispararse o pararse a depende de varias variables, las ms signicativas son: a el tamao del objeto n el material del que est hecho a la distancia a la que se encuentra. De este modo la mxima frecuencia para un objeto pequeo ser menor a n a que para un objeto grande. Los materiales que absorben de sonido altas (algodn, esponja,...) son ms dif o a ciles de detectar que el acero, el cristal o el plstico. De este modo, ellos tienen tambin una menor mxima de frecuencia a e a cambiante. La distancia del objeto al sensor es muy importante para determinar el mximo de frecuencia de disparo. El sensor manda una seal ultrasnica por a n o el aire, la seal deja el sensor, viaja hasta el objeto, choca contra l y vuelve n e hasta el sensor como un eco.
1.3.6.
Si un objeto liso es inclinado ms de 3o con respecta a la normal al eje a del haz de emisin de la seal de ultrasonidos, parte de la seal es desviada o n n del sensor y la distancia de deteccin disminuye. Sin embargo, para objetos o pequeos situados cerca del sensor, la desviacin respecto a la normal puede n o
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 9 aumentar hasta 8o . Si el objeto est inclinado ms de 12o respecto a la a a normal, toda la seal es desviada fuera del sensor y el sensor no responder. n a La seal que choca contra un objeto de supercie rugosa (como un material n granulado) se difunde y reeja en todas las direcciones y parte de la energ a vuelve al sensor como un eco dbil. e
1.4.
Las ondas de ultrasonido se han utilizado para la determinacin de la o distancia desde hace muchos aos, as mismo se han empleado para la ubin cacin de un objeto en el espacio, en sistemas militares, de construccin, o o control industrial y robtica. o El funcionamiento bsico del sensor de ultrasonidos se basa en la medida a del tiempo transcurrido entre la emisin de un ultrasonido y la recepcin del o o eco correspondiente al mismo. Conocido el tiempo, y siguiendo la velocidad de propagacin del sonido en el aire la expresin o o v = 331,6 + 0,6 T (1.2)
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS10 (T en o C y v en m/s), la distancia a la que se encuentra el objeto que ha devuelto el eco se calcula segn la ecuacin : u o d = (331,6 + 0,6 T ) t 2 (1.3)
Donde t representa el tiempo transcurrido entre la emisin y la recepcin. o o Este tiempo es dividido por 2 para calcular slo el tiempo que tarda en o llegar la onda al objeto. El empleo de ondas de ultrasonidos en lugar de ondas electromagnticas se justica por los siguientes puntos: e Las ondas acsticas, al contrario que las electromagnticas, requieren u e de un medio para transmitirse; como puede ser el aire. La velocidad de transmisin de las ondas ultrasnicas es mucho menor o o que la de las electromagnticas (velocidad de la luz). Esta caracter e stica permite emplearlas para la medida de distancias pequeas. n La longitud de onda de un ultrasonido a 50KHz. es de 6.8mm:, medida que es mayor que la rugosidad de la mayor de las supercies, lo cual a permite que la reexin que se produce en la mayor de los objetos o a sea especular y no difusa. La apertura del cono de emisin constituye en realidad una aproximacin o o del lbulo central de emisin, pues la expresin de la onda emitida es en o o o realidad mas compleja, siguiendo un patrn como el mostrado en la gura o [1.5]
1.5.
Los sensores de ultrasonidos no son ideales, es decir producen lecturas bastante aproximadas a la realidad, pero su repetibilidad es casi nula, como se puede observar en la gura, que muestra los mapas que se reconstruyen en tiempo real de un mismo entorno de navegacin, en diferentes experimentos. o Los sensores de distancia por emisin de ultrasonidos permiten modelar o el entorno en el que se mueven los robots mviles basndose en la forma en o a la que emiten y recogen las ondas de sonido.
Figura 1.5: Energ emitida por la onda ultrasnica en todas las direcciones a o del entorno. Observar como el lbulo central abarca un ngulo de 30o . o a
Existen bsicamente tres posibles aproximaciones al problema de la mea dida de la distancia a un objeto: Los sensores basados en el tiempo de vuelo de un pulso de energ a que viaja hacia un objeto en el que se reeja, para volver de nuevo al receptor. Los sensores basados en la medida del desplazamiento de fase, que necesitan una transmisin de seal cont o n nua, en lugar de emitir pulsos. Los sensores basados en un radar de frecuencia modulada. Esta tcnica e est bastante relacionada con la anterior. a
1.5.1.
La mayor parte de los sensores usan esta tcnica. El pulso de energ con e a el que se lleva a cabo la medida, puede provenir tanto de un generador de ultrasonidos, como de uno de energ ptica, o uno de radiofrecuencia. a o Por lo tanto, debido a esto, los parmetros importantes para llevar a a cabo la medicin son la velocidad del sonido en el aire, y la velocidad de la o luz. El tiempo medido es un representacin de la distancia existente entre el o dispositivo medidor, y el objeto que ha reejado la onda. La ventaja de estos sistemas, viene de su naturaleza directa de la medicin, y del hecho de que un mismo dispositivo puede actuar tanto como o generador, como receptor. La distancia al objetivo, puede obtenerse directamente de la salida del sensor, y no es necesario realizar ninguna suposicin o sobre si las supercies son planas, ni sobre la orientacin existente entre estas o y el sensor. Sus desventajas, vienen del hecho de que no se puede llevar a cabo un esquema de triangulacin, debido a la nula distancia existente entre emisor o y receptor. en cualquier caso, estos sistemas mantienen una buena precisin, o siempre y cuando el obstculo que se analiza presente un eco able. a Las fuentes de errores en la medida, vienen fundamentalmente de la imprecisin de la medida del tiempo, de las variaciones en la velocidad de onda o transmitida, de las deciencias en el circuito temporizador, o por interaccin de la onda con la supercie en la que debe reejarse. A continuacin se o o incluye una breve descripcin de cada uno de estos problemas. o Velocidad de propagacin de la onda: Para las aplicaciones de robtica o o mvil, las variaciones en la velocidad de propagacin de las ondas electroo o magnticas, puede ser totalmente ignorada. Este no es el caso sin embargo de e los sistemas acsticos, donde la velocidad del sonido, est muy inuenciada u a por la temperatura y en menor medida por la humedad. Incertidumbre de la deteccin: Estas variaciones vienen motivadas o por la distinta reexin de las ondas en distintos tipos de objetos. Algunos o las reejan con una intensidad mayor que otros, lo que hace que los sistemas de deteccin respondan de forma ms rpida ante los primeros, y por lo o a a tanto hagan que esos objetos parezcan ms prximos. Por este motivo, es a o muy importante la seleccin del valor umbral, a partir del cual se inicia la o deteccin de la onda. o
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS13 Incertidumbre en la medida del tiempo: Debido a la relativamente lenta velocidad del sonido en el aire, en comparacin con la de la luz, los o sistemas acsticos, tienen unos requisitos de velocidad muy inferiores a los de u sus contrapartidas basadas en la luz. La velocidad a la que se transmiten las ondas electromagnticas, obliga a imponer en los circuitos electrnicos unos e o requisitos de velocidad muy fuerte, requiriendo circuiter que responda en a tiempos inferiores al nanosegundo. Para obtener precisiones de tan solo 1cm, se necesita una circuiter con temporizaciones de 3 nanosegundos. Conseguir a esto resulta muy caro, y aparta estos sistemas de medida de las aplicaciones normales. Interaccin con las supercies: Cuando la onda se reeja en un objeto, o solo una pequea fraccin de la seal vuelve al receptor. El resto de la energ n o n a se reeja en otras direcciones, o es obserbida por la propia supercie. La energ reejada en distintas direcciones puede, a su vez, volver a reejarse a en ms objetos, y llegar nalmente al receptor siguiendo una l a nea que no es recta, o volver reejada a un receptor que no corresponde con el lugar desde el que fue emitida. A esto se lo conoce como habla cruzada.
1.5.2.
En este caso no se emite un haz de onda ultrasnica, sino una seal de o n larga duraccin hacia el objeto en cuestin. Una pequea parte de la seal o o n n volver al detector, siendo comparada con una seal de referencia igual a la a n emitida, pudiendo as medir la diferencia de fase entre ambas. El desplaza miento de fase puede expresarse en funcin de la distancia como: o = 4d (1.4)
donde es el desplazamiento de fase. d es la distancia al objeto. es la longitud de onda de la seal emitida. n De esta expresin podemos obtener que : o d= v = 4 4f (1.5)
Donde f es la frecuencia de modulacin de la seal. Para altas frecuencias, el o n desplazamiento de fase se puede medir multiplicando las dos seales (entrante n y de referencia mediante un dispositivo electrnico y hallando la media sobre o
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS14 dichos ciclos). Este proceso de integracin puede ser costoso en tiempo, por o lo que se har dif con una frecuencia de muestreo alta. Este proceso se a cil expresa matemticamente como a 1 T T l m
T
(sin(
o
2v 4d 2v + ) sin( ))
esta formulacin para la obtencin de la distancia puede presentar un probo o lema de ambigedad de intervalo cuando la distancia medida excede la lonu gitud de onda de la seal modulada. Este problema reduce el atractivo de n los sistemas de desplazamiento de fase, ya que se hace necesario mecanismos adicionales para eliminarla o bien asumir su posible aparicin. Entre o las posibles soluciones se encuentra limitar la distancia mxima medible a lo a permitido por el intervalo de ambigedad, realizando dos medidas a distintas u frecuencias de modulacin. o
1.6.
El sistema ultrasnico. o
El sistema se compone fundamentalmente de un transductor electrosttico, a y de una pequea placa electrnica en la que est la circuiter encargada de n o a a emitir los pulsos, recibirlos, y procesarlos. Para determinar la distancia a un objeto, se mide de forma externa, el intervalo transcurrido entre la emisin o y la recepcin del pulso ultrasnico. o o Con el uso de un reloj apropiado, se pueden obtener precisiones elevadas. Si se necesita una precisin muy alta, es necesario llevar a cabo correcciones, o segn la temperatura del aire. u
1.6.1.
La determinacin de distancias por medio de un sistema de medicin de o o ecos es un proceso muy simple. Un pulso corto de energ ultrasnica se a o genera de forma electrnica, se amplica y se env a un transductor. La o a seal viaja a travs del medio 8 en general el aire), se reeja en un objeto, y n e vuelve al transductor. Esta seal se recibe, se amplica, y se procesa por el n sistema electrnico. El tiempo que ha tardado en viajar la seal se puede usar o n para determinar la distancia a la que est el objeto, al conocer la velocidad a a la que se transmite el sonido en el aire. El sistema de medida ms simple se compone tan solo de dos mdulos, el a o mdulo electrnico, y el transductor. El transductor, de tipo electrosttico o o a o piezoelctrico, se usa tanto para emitir el pulso, como para recibir el eco. e El segundo mdulo, contiene toda la circuiter necesaria para generar la o a seal que se transmitir, enviarla al transductor, recibir el eco, y procesar la n a informacin obtenida de ste. o e La distancia del transductor al objetivo, puede determinarse por un circuito adicional que conozca la velocidad del sonido en el aire, y el intervalo de tiempo transcurrido entre la emisin y la recepcin de la seal. o o n Esta amplicacin llevada a cabo en el receptor, es la parte ms como a plicada del sistema, ya que debe ser de caracter exponencial (al igual que lo es la atenuacin del sonido en el aire), y tiene que partir desde valores o de amplicacin pequeos hasta subir la intensidad de la seal recibida en o n n varios ordenes de magnitud.
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS16 Para minimizar el peligro de que pequeos ruidos confundan al sistema y n ste no crea recibir falsos ecos, el sistema dispone de un integrador, en el que e se recibe la seal entrante. Solo cuando a la salida del integrador se alcance n un nivel determinado se considera que se ha recibido un eco autntico. e Las seales de salida, indican los instantes en los que se envi el pulso, n o y el instante en el que se recibe el eco, por lo que resulta sencillo llevar a cabo funciones de control, as como medir el tiempo transcurrido entre ambos eventos.
1.6.2.
El transductor.
La parte ms importante del sistema es el transductor electrosttico. a a Est compuesto por una membrana muy na, una lmina recubierta de oro a a para formar el electrodo negativo de un diafragma de vac El electrodo posio. tivo, es una lmina recubierta de aluminio, que tambin sirve como estructura a e resonante para el diafragma.
Figura 1.7: Transductor del sensor de ultrasonidos La seal no se transmite de forma lineal en l n nea recta, a partir del transductor, sino que en lugar de esto se genera una seal que se extiende formando n un cono.
1.6.3.
El mdulo electrnico. o o
La electrnica del sistema de sonar est reunida en un unico mdulo, o a o usando circuitos integrados espec cos para realizar las funciones digitales y analgicas. Estos dos circuitos integrados, estn unidos junto con los compoo a nentes discretos necesarios, en una pequea placa de tan solo 2cm de ancho n y 4 de largo. Cuando se activa el sistema, estos circuitos generan una serie de pulsos a frecuencias discretas distintas. La seal se amplica en un transformador n incluido en la placa. La componente cont nua se mantiene en el transductor, por medio de un condensador de almacenamiento, mientras este acta como u micrfono para recibir el eco. El transductor se bloquea durante unos pocos o microsegundos, para evitar la recepcin del eco que se genera al salir la seal o n del propio transductor, y a partir de ese instante pasa a actuar como un micrfono. o Para compensar la prdida de energ de la seal al recorrer mayores e a n distancias, la ganancia del amplicador que trabaja en la recepcin de la o seal, se va incrementando en funcin del tiempo, adems de disminuir en n o a ancho de banda para disminuir los efectos del ruido. Cuando una seal es recibida por el sistema, y si esta seal supera un n n nivel umbral m nimo, se activa una fuente de corriente, que va cargando un condensador hasta que alcance ste los 1.2V. En este instante, se considera e que la seal recibida es el eco, y se genera una seal lgica. n n o Para medir el intervalo de tiempo transcurrido entre las dos seales hay n que recurrir a un circuito externo. Al multiplicar este valor por la velocidad del sonido, y teniendo en cuenta que la seal se ha recorrido dos veces, divin diendo entre dos, se obtiene la distancia a la que se encuentra el objeto del transductor.
1.6.4.
Mientras que el hecho de medir el eco recibido es relativamente simple, algunos de los procesos involucrados en l no lo son. La propagacin de la e o energ acstica a travs de un medio uido es muy compleja, pero afortua u e nadamente, a las frecuencias con las que se trabaja est bastante bien estua diada, y la mayor parte de los factores de atenuacin, reexin, refraccin, o o o etc. pueden ser simplicados de una forma bastante satisfactoria.
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS18 Los factores acsticos que ms afectan al rendimiento del sistema de meu a dida por sonar estn relacionados con el rendimiento del transductor, su a frecuencia de trabajo, y la distancia mxima a la que se desee llegar con las a medidas. Dejando a un lado los aspectos electrnicos, el aspecto que ms interesa o a es la relacin existente entre el alcance y la frecuencia de trabajo. Esta es o debida a la atenuacin que tiene cada frecuencia al viajar por el aire. El o mecanismo de esta perdida es bastante complejo, dependiendo de factores tales como la temperatura, humedad, etc. El efecto de atenuacin debido a o la humedad es mximo, al trabajar con valores intermedios de la misma. a
1.6.5.
Resolucin. o
En general, con un sistema de medida de ecos ultrasnicos, se puede llegar o a alcanzar una resolucin del orden de la longitud de onda de la seal que se o n transmite. Esto, por supuesto, depende del tipo de sistema de deteccin empleado. o En estos sensores se usa una sencilla tcnica de integracin. Cuando la seal e o n que se recibe, supera un umbral determinado, se activa una fuente de corriente que empieza la carga de un condensador. Existe un drenaje continuo de la carga de este condensador, para garantizar que pequeos picos de ruido n consecutivos no vayan cargando el condensador, y lo lleven al valor umbral en el que se identica la seal como positiva. n Usando una velocidad de carga de este condensador, diez veces superior a la velocidad de descarga, se consigue un esquema que puede alcanzar una resolucin de aproximadamente unos 6mm, siempre y cuando el objetivo o est jo respecto al sensor, y se cumplan algunas otras restricciones. e Si se necesita alcanzar realmente esta precisin mxima, es necesario conoo a cer de forma precisa la velocidad del sonido en el aire. La velocidad del sonido en el aire, puede ser determinada de acuerdo con la expresin: o v = 331,4 ( T 1 )2 273 (1.7)
donde T es la temperatura en grados Kelvin y se ve que existe una fuerte dependencia de la temperatura.
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS19 Si se trabaja dentro de un margen de temperaturas de entre -30o C y 30o C, entonces esta expresin puede aproximarse por: o v = 331, 4 + 0,607 t donde t es la temperatura en grados cent grados. Es fcil ver que la dependencia de la temperatura es muy fuerte, y por a lo tanto si se desea obtener una precisin alta, es necesario llevar a cabo la o compensacin. En un entorno en el que la temperatura pueda oscilar en un o rango de 60o C, la variacin de la velocidad del sonido llega a un 5 %. La o correcin de este valor puede llevarse a cabo bien por el sistema de medicin, o o o bien por el procesador que vaya a analizar los datos obtenidos. (1.8)
1.7.
El funcionamiento t pico de un sensor de ultrasonidos viene dado por un ciclo de operacin que sigue los siguientes pasos: o 1. El circuito de control dispara el transductor, quedando a la espera de una seal que conrme el comienzo de la transmisin. n o 2. El circuito de recepcin es blanqueado durante un tiempo, para evitar o que ondas residuales de la transmisin puedan ser interpretadas como o falsos ecos. 3. Las seales recibidas son amplicadas mediante un amplicador de n ganancia variable, el cual compense la atenuacin del medio en aquellas o seales que han recorrido una mayor distancia. n 4. Las seales recibidas que superen un determinado nivel son reconocidas n como ecos, calculndose la distancia a la que se encuentra el objeto que a lo ha provocado. De los puntos anteriores se deduce que la distancia m nima a la que un sensor responder, vendr dada por el tiempo de blanqueo. Para el caso a a del sensor usado es de 2.38 ms sustituyendo este valor en la ecuacin [1.2] se o obtiene una distancia m nima de 20cm. Por otro lado, la distancia mxima a vendr dada por la atenuacin de la onda ultrasnica en el medio en el que a o o se propague (aire) y por la ganancia del amplicador que recoge los ecos. En
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS20 los sensores usados esta distancia es de 10.5cm. La seal emitida por cada n sonar tiene una duracin de 300s., y consta de los siguientes pulsos: 8 a o 60KHz..8 a 57KHz.,16 a 53KHz. y 24 a 50KHz.. El hecho de transmitir pulsos a varias frecuencias tiene como objetivo reducir las perturbaciones que pueda inducir un objeto a una determinada frecuencia en una seal ultrasnica. n o Emitiendo a varias frecuencias se asegura que aunque una frecuencia se vea perturbada, las otras no lo sern. En la gura 1.10 se muestra un cronograma a del funcionamiento de este tipo de sonar. La apertura del cono de emisin de o la onda ultrasnica se calcula a partir de la expresin: o o = arcsin( 0,61 ) r (1.9)
Donde es la longitud de onda, y r el radio del anillo exterior del sensor. Los sensores de ultrasonidos tienen un transductor acstico que vibra a u frecuencias ultrasnicas . Los pulsos son emitidos en haz cnico y apuntan o o a un objeto. Los pulsos se reejan en el objeto y vuelven al sensor en forma de ecos. El instrumento de medida mide el tiempo de retraso entre cada emisin y el pulso de eco para determinar exactamente la distancia del seno sor al objeto. Los sensores de ultrasonidos detectan todos los objetos sean del material que sean e independientemente del color que tengan. Detectan objetos claros, transparentes y brillantes tan fcilmente como los oscuros y a opacos. Esta habilidad permite a los sensores de ultrasonidos detectar todo el rango de materiales, desde una botella de cristal transparente hasta neumticos de goma negra. Si un material se cubre, el sensor puede deteca tar de manera exacta y repetidamente el material cubriente a pesar de lo brillante o claro que sea (no como ocurre con los sensores infrarrojos). Los sensores de ultrasonidos funcionan bien en ambientes toscos (humos, polvo, ruido).
1.8.
1.8.1.
Conguraciones.
Conguracin de un solo sensor. o
Se puede usar para detecar la presencia de un objeto o calcular su distancia respecto al sistema autnomo un slo sensor de ultrasonidos rotatorio. o o El sensor se va girando pasos pequeos, tomando varias posiciones para la n o medicin completa del entorno(360 ). Como se mencion anteriormente, la o o
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS21 intensidad de la seal va variando para diferentes ngulos respecto del centro n a del sensor y no supone que la deteccin del objeto se lleve a cabo mediante o el lbulo ms sensible que es el central, puede producirse la medida por uno o a de los laterales. El problema en estas zonas es que la seal tiene la intenn sidad suciente para activar el disparo por anco y por tanto estimar una medida, pero no tiene la suciente potencia como para hacerlo pronto, con lo cual se produce un incremento del tiempo en la estimacin del vuelo. Como o consecuencia de esto la estimacin de la distancia es mayor. En resumen, el o sensor de ultrasonidos tiene un cono de recepcin ancho y puede sobrestimar o distancias si el eco es dbil. e Con el objeto de determinar las medidas que pertenezcan al lbulo ceno tral (ya que son ms ables) y desestimar en la medida de lo posible las de a los lbulos laterales, se propone un modelo de sensor. Este modelo de intero pretacin de las medidas est basado en el concepto de Regin of Constant o a o Depth (RCD), que permite eliminar las estimaciones de distancia originadas por ecos dbiles. El problema de este mtodo es el tiempo de medida, puesto e e que se requieren varios minutos para una prueba de 360o , lo cual es impracticable para un modo de operacin normal de un sistema autnomo. o o Por tanto se puede adoptar una variante al mtodo anterior. La base de e este modelo se encuentra en la siguiente idea: Con la cantidad de informacin o o generada por un barrido de todas las posiciones posibles para los 360 , es imposible eliminar los ecos dbiles. Si un objeto es detectado slo por un e o eco, no es posible discernir si se trata de eco fuerte o dbil. Pero si el mismo e objeto se detecta en ms de un eco, se puede incrementar la calidad de la a informacin que se genera. Se puede decrementar las medidas sobrestimadas o de ecos dbiles tomando todos los m e nimos de los ecos de la misma RCD. Por otro lado, la incertidumbre angular tambin puede ser decrementada e haciendo que el objeto sea detectado en una zona donde los ecos de las lecturas se solapen. Un conjunto de ecos se considera que pertenecen al mismo objeto si son adyacentes en la lectura y adems su estimacin de la distancia a o al objeto no diere ms de un valor umbral de valor 3 cm. De esta forma se a dene una lectura como el agrupamiento de uno o ms ecos adyacentes, y su a valor de medida de distancia es la m nima de todos los ecos que la componen. Cabe resaltar que los ecos dbiles se producen para ngulos mayores de 20o , e a siendo la diferencia entre dos ecos consecutivos de 18o , por tanto menor. Esto asegura que no suceda el que dos ecos consecutivos den una medida de distancia errnea. En la gura 1.8 se puede ver cual es el mtodo de o e agrupamiento empleado y el cono efectivo que produce.
1.8.2.
Cuando dos o ms sensores se montan cerca, es posible que existan intera ferencias acsticas. Si se evita la multiplexacin de los sensores, solamente u o transmitir uno cada vez. Pero si se sincronizan todos los sensores para que a transmitan al mismo tiempo, se pueden conectar todos juntos. Multiplexacin de sensores. o Se pueden conectar varios sensores de ultrasonidos a un slo amplicador. o Ellos se pueden conectar en paralelo o en serie segn se muestra en las guras. u Si se conectan en paralelo, todos los sensores se dispararn a la vez, a en el mismo instante. El sensor ms cercano al objeto proporcionar la a a distancia al amplicador. La informacin proveniente del resto de los o sensores es ignorada. Como mximo se pueden conectar seis sensores a en paralelo y se tienen que colocar diodos y una resistencia de pull-up como se muestra en la gura 1.9. Si se conectan en serie, solamente se dispara un sensor cada vez proporcionando la medida de la distancia. Este sensor se deshabilita y se habilita el siguiente. La multiplexacin en serie se hace con alimentao ciones externas al amplicador.Como puede verse en la gura 1.10.
Figura 1.9: Conexin de sensores de ultrasonido en paralelo. o Todas las seales entre el amplicador y los sensores pueden conectarse n en paralelo a excepcin de la seal de START y la de STOP. El pulso o n de disparo es generado por el amplicador e inicia el ciclo del sensor. El pulso de parada es generado por el sensor e indica que un eco ha sido recibido. Estos pulsos pueden ser multiplexados desde un sensor a otro mediante relevos o demultiplexando mediante circuitos integrados. Anillos de sensores. La conguracin en anillo es muy comn en los robots mviles hoy en o u o d Generalmente se trata de un nmero de sensores dispuestos alrededor a. u del robot formando un per metro, con el objeto de detectar todo el entorno circundante sea cual sea la posicin del robot. Las conguraciones pueden o variar desde unos pocos sensores a 24. En la mayor de ellos el transductor es a de tipo POLAROID, o bien su mismo sistema de determinacin del TOF. El o problema principal que tienen que resolver estas conguraciones se encuentra en la eliminacin de interferencias y ruidos entre los transductores que posee o el robot y que estn emitiendo seales peridicamente. Cuantos ms sensores a n o a se usen, se reducir la probabilidad de choque dada la alta capacidad de a
Figura 1.10: Conexin de sensores de ultrasonido en serie. o percibir informacin del entorno que posee el sistema autnomo, pero por o o otro lado, se incrementa la cantidad de ruido en el entorno de dos formas: Ruido por sensores de otro robot: Cuando en el mismo entorno tenemos varios robots operando, puede darse la circunstancia de que seales n de un transductor de un robot, lleguen en forma de eco a otro robot distinto. Estas interferencias suelen ser discretas en el tiempo y ocurren a distancias por encima de los 20 metros. Ruido por sensores del mismo robot (interferencias): Este tipo de ruido se da cuando un sensor de un robot recibe como eco la seal que ha n emitido otro transductor del mismo robot. Borestein deni cmino o a cr tico como aquel camino que lleva a cabo una seal de ultrasonidos n desde un sensor a otro u otros, diferente del que lo emiti. En la gura o 1.11 se pueden ver dos casos de camino cr tico. En el primer caso se produce camino cr tico directo ya que los sensores vecinos al que emite la seal recogen el eco. Pero el segundo caso es un n camino cr tico indirecto ya que el eco se recoge por sensores no vecinos a quien emite la seal debido a reexiones en el entorno. Este ultimo caso es n el ms complejo de resolver. a
Figura 1.11: Ejemplos de posibles caminos de la seal que provocan interfern encias en un anillo de ultrasonidos. La primera aproximacin para solucionar el problema de las interfereno cias consiste en la comparacin de dos medidas consecutivas. En principio o dos medidas consecutivas en ausencia de ruido deber ser idnticas (no an e totalmente idnticas por la naturaleza discreta de la medida). De esta fore ma podemos rechazar medidas errneas por causas externas mediante este o mecanismo, sin ms que limitar su diferencia a un factor T . a Pero este mtodo no es util para solucionar el problemas de las intere ferencias entre sensores. Como se puede ver en la gura 2.6 dos medidas consecutivas debidas a una interferencia tambin se diferenciaran en poco e en la mayor de los casos, ya que el camino seguido por la seal en ambas a n ocasiones ser el mismo. a Por eso se combina el mtodo de comparacin de medidas consecutivas e o con el de esperas alternadas. Estas esperas alternadas no son ms que tiempos a de espera introduccidos entre dos disparos consecutivos de un sensor con el objeto de desincronizar las interferencias en otros sensores y conseguir as que dos medidas consecutivas de sensor sean semejantes slo si son generadas por o el propio sensor y no por interferencias de otros. Por ello, se escogen para todo sensor dos tiempos de espera Ti,espera,a y Ti,espera,b . La condicin que deben o
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS26 cumplir los tiempos seleccionados para los K sensores del sistema autnomo o es que: |Tx,espera,a Ty,espera,a | |Tx,espera,b Ty,espera,a | > 2T Y tambin que: e |Tx,espera,a Ty,espera,b | |Tx,espera,a Ty,espera,a | > 2T (1.11) (1.10)
para permitir comenzar con cualquiera de los dos valores de espera. Esto debe cumplirse x, y 1..k, x = y. Por ultim, la estrategia descrita anteriormente se mejora con un mtodo o e alternado de disparo de los sensores. Esto tiene como objeto evitar las interferencias por camino directo. Del estudio del comportamiento de los sensores se dedujo que para este tipo de interferncia los sensores afectados son los tres vecinos prximos. Por este motivo los sensores se disparan en grupos de o cuatro emitiendo slo uno de ellos cada vez. o Finalmente el disparo de los sensores se produce de la siguiente forma: Los sensores 1 al 4 son disparados en los instantes 0,15,30 y 45 ms. Los siguientes grupos de cuatro sensores utilizan los mismos intervalos. A este periodo de disparo de cada sensor se le debe aadir un tiempo n de espera con valores a y b que se suman de forma alternativa a los tiempos de disparo. De esta forma un sensor se dispara cada 60 ms. La seleccin real de tiempos para la prueba se llev a cabo de acuerdo con o o los criterios matemticos que deb cumplir, las restricciones del hardware a an y el tiempo m nimo que deb transcurrir en el disparo de un sensor de un a grupo de cuatro (15 ms). Finalmente se simplica la prueba con doce sensores justicando esto en la no necesidad de llevar a cabo medidas detrs del robot, a sino solo en la parte delantera. Las pruebas realizadas demostraron que con la metodolog adoptada a se produc entre 1 % y 2 % de errores, frente al 30 % que se produc en an a plataformas donde no se ten en cuenta las interferencias. an
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS27 Esta soluccin fue aportada por Borestein, se llama, EERPUF (Error o Eliminating Rapid Ultrasonic Firing), y da una idea de la complejidad y problemas que puede acarrear el usar un conjunto grande de sensores en un sistema autnomo, siempre que se quieran usar todos de forma simultnea. o a Anillo de sensores para tratamiento geomtrico. e Una opcin alternativa a los anillos de sensores, son las conguraciones o de varios sensores a distancias conocidas, con el objeto de reconocer alguna caracter stica del entorno (planos, esquinas o vertices). La conguracin o hardware de este mtodo ser la siguiente. Un sistema sensorial de 32 sene a sores de ultrasonidos con frecuencias que van desde los 40 kHz a los 200 kHz (tambin se puede hacer con un solo tipo de sensores). Cada sensor dispone e de una targeta de electrnica propia. La seal de dichos sensores es manejada o n por un DSP TMS320C25, llevando a cabo una adquisicin y procesamiento o en paralelo de 5 medidas. Este mdulo de procesamiento de la seal puede o n trabajar como esclavo en un sistema VME o directamente conectado a un PC mediante un puerto RS-232. La aplicacin al reconocimiento geomtrico o e del entorno se lleva a cabo mediante la introduccin en una red neuronal o del tiempo de vuelo de la seal estimado de cada uno de los tres transducn tores que forman un plane array, devolviendo la red una estimacin de la o distancia y el ngulo que formaban con el sensor central. a
1.8.3.
El conjunto de arquitecturas sensoriales para ultrasonidos tienen en comn u su diseo orientado a deteccin de caracter n o sticas del entorno. Son sensores formados por varios transductores y que operan como un todo en conjunto. De esta forma el sensor en s ya no es un elemento aislado como se ha visto hasta ahora, sino un conjunto de dispositivos. El sensor ms bsico dentro de a a este grupo es un sensor para la localizacin y clasicacin de caracter o o sticas del entorno 2D (planos, esquinas y vrtices), que tiene una extensin para 3D e o (al medir en tres dimensiones se pueden cometer menos errores al fusionar con otros sensores). Estos sensores consiguen una exactitud alta por medio de un gran ancho de banda de la seal, una estimacin ptima del instante de tiempo en que n o o se detecta un eco y por ultimo por el uso de plantillas para modelar la forma
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS28 de la seal de eco y una tcnica de matched ltering 1 en su uso. n e
1.9.
Temperatura. La velocidad del sonido en el aire depende de la temperatura. Un sensor interno de temperatura puede adaptar la frecuencia del reloj del contador y la frecuencia de la portadora para ayudar a compensar las variaciones de la temperatura del aire. Sin embargo, las uctuaciones grandes de temperatura dentro del camino que recorre la onda ultrasnica pueden causar dispersin y o o refraccin de la seal de ultrasonidos, afectando negativamente a la exactitud o n y estabilidad de la medida. Si se quiere detectar un objeto caliente, habr que a experimentar posicionando el sensor y el objeto en un plano vertical y apuntar a la parte del objeto ms fr De esta manera, se pueden evitar las corrientes a a. de aire caliente y lograr la operacin satisfactoriamente. o Presin del aire. o Los cambios normales en la presin atmosfrica del aire no tienen efectos o e sustanciales en la exactitud de la medida. Pero se aconseja no usar sensores de ultrasonidos con presiones de aire bajas o demasiado elevadas. Humedad. El efecto de la humedad en la medida es virtualmente insignicante, slo o cambia un 0.07 % para un cambio en la humedad relativa de 20 %. Sin embargo, la absorcin del sonido aumenta con el aumento de la humedad. As o , la mxima distancia de medida es reducida muy poco. a Turbulencias en el aire. Las corrientes de aire, turbulencias, y capas de distinta densidad causan refraccin de la onda de sonido. Un eco puede ser producido y la seal debilo n itada o desviada y por tanto el eco no es recibido. El mximo rango sensible, a la precisin de medida y la estabilidad de medida pueden deteriorarse bajo o estas circunstancias.
Matched ltering es el proceso de estimacin del tiempo de vuelo que se lleva a cabo o buscando la mxima correlacin entre un eco recibido y un conjunto de plantillas previaa o mente almacenadas
1
1.10.
La medida de distancias con ultrasonidos est sometida a diferentes fuentes a de error, lo mas comunes son los detallados a continuacin. o 1. Errores de origen natural La velocidad de propagacin del sonido en el aire depende de la o temperatura. (Ver ecuacin [1.2]) o
Figura 1.12: Cronograma del proceso de emisin y recepcin de una onda o o ultrasnica mediante el sensor de ultrasonidos. Se aprecia como se emiten o varios pulsos y son recibidos de igual manera varios ecos. Segn sea la rugosidad de los objetos, estos sern reectantes o u a difractantes. Aunque este efecto se corrige en parte con la emisin o de un pulso de varias frecuencias, existen objetos que pueden atrapar la onda, devolviendo una distancia mayor de la que en realidad se encuentra.
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS30 El patrn de emisin de la onda no es completamente cnico (Ver o o o gura 1.5), si no que existen unos lbulos laterales de emisin que o o pueden provocar un eco. 2. Errores de origen electrnico o El amplicador de ganancia variable que contrarresta el efecto de la atenuacin en el aire es aproximado por 16 niveles de amplio cacin. Los puntos de discontinuidad en esta grca provocan un o a error en la correccin. o El nivel que determina si un eco es reconocido como tal se realiza mediante la carga de un condensador. Los ecos de objetos cercanos cargan este condensador en tres periodos, sin embargo los ecos de objetos mas lejanos necesitan mas periodos, por lo que aparentarn encontrarse a una distancia mayor. a 3. Errores debidos a la posicin relativa Sonar-Objeto Segn sea la posio u cin relativa de los snares frente a un objeto, se pueden producir o o diferentes efectos que pueden hacer que un objeto que est mas cere cano aparezca como mas lejano o viceversa, que sea inapreciable... Las secuencia de grcos de la gura 1.13 muestra alguno de los errores a ms comunes. a
1.11.
1.11.1.
Aplicaciones.
Introduccin. o
Los sensores de ultrasonidos proporcionan al mercado un mtodo de e deteccin ecaz a bajo coste con unas propiedades unicas que no poseen o otras tecnolog de deteccin. Usando un gran variedad de transductores ulas o trasnicos y varios rangos distintos de frecuencia, un sensor de ultrasonidos o puede ser diseado para resolver muchos problemas de aplicacin que no se n o pueden hacer por su coste elevado o simplemente porque no pueden resolverse mediante otros sensores. Gran rango de deteccin: En la deteccin industrial mediante sensores, o o much simas aplicaciones requieren deteccin a larga distancia. Los sensores o de ultrasonidos detectan a distancias superiores a los cuarenta pies, mientras que los sensores inductivos no lo pueden hacer. Area de deteccin ancha: Mientras que algunos sensores fotoelctrio e cos pueden detectar a largas distancias, carecen de la habilidad de detectar sobre reas grandes sin usar un nmero elevado de sensores. La ventaja de a u los sensores de ultrasonidos es que pueden cubrir tanto reas anchas como a estrechas. Permiten detectar todo tipo de materiales: Slamente los sensores o de ultrasonidos estn capacitados para detectar todo tipo de materiales, sea a cual sea su composicin. El material detectado puede ser claro, slido, l o o quido, poroso, blando, madera, y de cualquier color porque todos son detectados. Miden distancias sin necesidad de contacto: Se mide el tiempo que tarda el sonido desde que deja el transductor hasta que vuelve a l, por lo e que la medida de la distancia es sencilla y exacta con un margen de error de 0.05 %.
1.11.2.
Ventajas.
Las ventajas de estos sensores con respecto a otros son: Miden y detectan distancias a objetos en movimiento.
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS32 Es independiente del tipo de material, supercie y color del objeto a detectar. Detectan objetos pequeos a distancias grandes. n Son resistentes frente a perturbaciones externas tales como vibraciones, radiacciones infrarrojas, ruido ambiente y radiacin EMI. o No son afectados por el polvo, suciedad o ambientes humedos. No es necesario que haya contacto entre el objeto a detectar y el sensor.
1.11.3.
El sensor de ultrasonidos se puede usar para: La deteccin de proximidad: Un objeto pasando por algn sitio deno u tro del rango de alcance presente del sensor puede ser detectado y generar una seal de salida. El punto de deteccin es independiente del tamao del n o n objeto, de su material o del grado de reexin.Las aplicaciones de deteccin o o de proximidad incluyen la deteccin de la presencia o ausencia de personas y o objetos de inters. El sensor detectar el objeto que est dentro del cono de e a e emisin y reexin de la seal de ultrasonidos. La deteccin de objetos situo o n o ados a grandes distancias requiere que el objeto sea grande o est orientado e de modo que la seal que reeja llegue al ultrasonido. n La medida de la distancia: La distancia precisa a un objeto en movimiento del sensor se mide v el intervalo de tiempo entre la seal ultrasnica a n o transmitida y la recepcin de la reejada. El ejemplo muestra la deteccin de o o un objeto que est a seis pulgadas de distancia del sensor y al rato, al moverse, a est a 10 pulgadas. La distancia cambiante se calcula cont a nuamente.
1.11.4.
Campos de aplicacin. o
Mquinas constructoras: Los sensores de ultrasonidos son usados para a el control del movimiento, el control del nivel o para dimensionar o detectar proximidad en mquinas que se usan en construccin. Estas son comunes en a o aplicaciones dentro de la industria de transformacin, impresin, del caucho, o o de los metales, la textil y otras industrias de manufactura. Automatizacin: Los sensores de ultrasonidos reducen los costes de auo tomatizacin proporcionando mtodos de control de tamaos y deteccin de o e n o posicin o proximidad de objetos en los procesos de produccin. La informao o cin proporcionada por los sensores es usada para: o Aceptar o rechazar objetos basandose en el tamao, posicin o nivel de n o llenado. Para tomar decisiones sobre el camino que deben seguir los paquetes basandose en el tamao o posicin. n o Controlar el ujo de l quidos, slidos o materiales granulados. o Indicar cuando un objeto est cercano o en la posicin debida. a o Determinar tolerancias. Proporcionar una seal de alarma cuando los objetos no estn en la n a posicin debida, estn a punto de llenarse o vaciarse. o a
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS34 Para indicar la terminacin de un proceso. o Control de procesos: Las aplicaciones comunes incluyen medida del nivel de materiales en un tanque o lata, o controlar la cantidad de material dispersado desde un contenedor. Se puede dar cuenta de la medida del nivel de un tanque a una computadora mediante un red de datos. Las alarmas pueden dispararse debido a un nivel bajo, un determinado nivel establecido, un nivel elevado u otras condiciones. Informacin y diversin: se puede detecar a gente que se aproxima a o o una cabina, o se puede controlar su distancia para establecer una determinada respuesta.Tambin se puede usar la deteccin de personas y objetos en e o determinados juegos. Derroche de agua: Se pueden medir los niveles de depsitos de agua o para controlarlos. El ujo de agua de un canal abierto se mide para dar informes y establecer un control.
1.11.5.
Aplicaciones t picas.
Para medida del dimetro de un arrollamiento, para control de enrola lado o desenrrollado, o para medida de la tensin de una tela. Esto o es usado en: La fabricacin de papel o tela, la fabricacin de gomas o o o neumticos, el procesado del acero. a
Para el control de nivel de tanques (tanto de l quidos como de granulados), o para el control del nivel de llenado de botellas o latas. Usado en la industria alimenticia, qu mica o de plsticos. a
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS35 Para medida de distancia, para el posicionamiento de piezas de trabajo en robots, y para medida de tamao (dimensionamiento). Se usa en la n industria de la automatizacin, el trabajo con metales y en equipos de o ensamblaje.
Para medida de tamao o anchura o para el empaquetamiento. Se usa n para el manejo de materiales o para trabajar con metales.
Para la deteccin de presencia o ausencia, o para deteccin de partes o o claras o de cristal o vidrio. Se usa en la industria alimenticia, manejo de materiales o para equipos de ensamblaje.
CAP ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS36 Para control de movimiento, deteccin de personas, seguridad y para o muchas otras cosas.
Figura 1.13: Posibles errores debido a la disposicin relativa entre el sonar o y el objeto. La gura (a) muestra una medida de distancia correcta. En la gura (b) se muestra el problema de no poder determinar el ancho del objeto que reeja la onda, debido a la apertura del cono. En la gura (c) se obtiene una distancia mas corta de la que en realidad existe al objeto, debido a que el eco producido se debe al extremo del cono, no a la parte central. En la gura (d) se muestra un objeto inapreciable, ya que los ecos no regresan al punto de emisin. La gura (e) muestra el mismo problema para el caso de o una esquina. En la gura (f ) la medida obtenida es mayor de la real debido a los falsos ecos producidos por sucesivos rebotes.
38
39
40
2.1.
Desde ya hace un tiempo se han comenzado a oir noticias relativas al inminente inicio de una nueva era, la era Post-Pc. Tecnolgicamente hablano do, es posible que ya nos econtremos en esta nueva era, y posiblemente lo estemos desde hace bastante. La computerizacin de dispositivos se encuentra en un estado muy avano zado si tenemos en cuenta que segn la IDC (International Data Corporation) u se fabrican 2000 millones de microprocesadores cada ao y que el 95 % de los n mismos va destinado a equipos electrnicos en general y no a ordenadores o personales (PC), que se lleva el 5 % restante (Art culo de Rick Lehrbaum publicado en la revista Linux Jornal de agosto del 2000 sobre sistemas empotrados). Lamentablemente, estos dispositivos electrnicos generales, como o automviles, lavadoras, equipos de aire acondicionado, etc. No cuentan con o un sistema de interconexin capaz de producir una sinergia, tan drsticao a mente plasmada en el mundo del PC como lo es la red de redes: Internet. La era Post-Pc, demanda cinco claves, cinco pilares sobre los que se sustenta, por lo que un punto de estudio o discusin importante, se centra en o estimar si estos cinco pilares se encuentran es un estado de madurez ptimo o como para soportar el peso de una tecnolog global, una nueva era tecnolgia o ca.
2.2.
Internet Pocos comentarios que no se hayan dicho ya caben en estas l neas. La red de redes ha sido un revulsivo que ha puesto el concepto de conectividad por delante de muchos otros, demostrando las ventajas de un mundo global, donde el acceso, tanto a personas como sistemas (equipos) se ha transformado en un motor de crecimiento de la humanidad. Redes de rea local (LAN) inalmbricas a a El aumento inevitable de los equipos con acceso a red esta demandado no solamente una arquitectura y calidad de red cada vez ms potente y able a
41
sino adems, el crecimiento de soluciones inalmbricas con el n de evitar el a a problema f sico del cableado. GNU/Linux empotrado (sistemas abiertos empotrados) El sistema operativo GNU/Linux y su motor, la licencia GPL se han transformado en una plataforma ideal para el desarrollo de sistemas empotrados. Las versiones de GNU/Linux orientadas a ejecutarse en SOCs (System On Chip), no han tardado en aorar, siendo el avance en este campo uno de los mayores. El que GNU/Linux no sea dependiente de la arquitectura debido a la multitud de adaptaciones realizadas, su alto grado de escalabilidad, modularidad y exibilidad, as como su mayor ventaja, su arquitectura abierta, han sido los principales culpables de este avance. Tipos de interfaz La multitud de sistemas computarizados que poco a poco comienzan a convivir con nosotros, nos obliga al aprendizaje de multitud de interfaces siendo muchos de ellos una barrera en el uso y adaptacin a los equipos. o Poco a poco la tecnolog est logrando vencer estas barreras generando a a interfaces no solamente ms sencillas sino unicndolas bajo un mismo asa a pecto: Interfaces WEB. Pequeos servidores web comienzan a ser un clsico n a dentro de los sistemas empotrados actuales. Por otra parte, si bien estos interfaces han facilitado mucho las cosas, todav queda bastante por avanzar siendo uno de los objetivos a perseguir a el reconocimiento del habla como interfaz universal. Sistemas en un chip Las compan diseadoras y fabricantes de circuitos integrados desde as n siempre han participado en la carrera por obtener dispositivos ms potentes, a basando esta potencia en una aumento de la velocidad (que trajo consigo la consiguiente disminucin del tamao), as como en el aumento de los recursos o n internos del dispositivo. Respecto a esto ultimo, el avance ha sido vertiginoso. En los aos 80 un n simple controlador de disquetera conten ms del doble de los componentes a a que hoy en d tiene un ordenador. Todas las decisiones arquitecturales como a RISC vs CISC, Hardvard vs Princeton, Firmware vs Wired, etc, se fueron concentrando gracias al avance de la VLSI (Very Large Scale Integration), hasta llegar a ser decisiones internas a un solo chip, ya que en el mismo, es
42
posible encontrar recursos tales como CPU, memorias, perifricos de comue nicaciones, control, potencia, interfaz, etc. Es decir, los SOC, son una realidad de nuestros d y los llamados mias crocontroladores tienen gran culpa de ello. De todas maneras, el avance de los SOC, tiene ya una frontera, siendo esta no funcional, sino arquitectural. Muchos de los diseos que se realizan no se pueden resolver con un SOC, n ya que por motivos de optimizacin de recursos (redundantes o sobrantes) es o necesario disear en base a circuitos integrados aislados. n Los SOC, con el n de abordar el problema del diseo de sistemas empon trados se han caracterizado por ofrecer soluciones con una mayor capacidad de interfaz en detrimento de la capacidad de procesador o clculo. a
2.3.
Para qu sirven? e
Un sistema embebido est diseado para realizar funciones que pueden a n ser peligrosas, repetitivas o que requieran de tiempos de respuesta imposibles de alcanzar para los seres humanos. Existen sistemas embebidos para realizar los ms variados tipos de a aplicaciones usando una amplia gama de tecnolog diferentes. as
2.4.
Sistemas empotrados.
En primer lugar, resulta signicativo el hecho de que cada vez es mayor el nmero y variedad de sistemas de tiempo real que toman la forma de sisu temas empotrados en todo tipo de sistemas de ingenier y de consumo. El a abaratamiento del hardware ha hecho posible la extensin de los sistemas o de tiempo real empotrados, que hasta hace poco se limitaban a sistemas de alto coste y alta tecnolog a los productos de uso cotidiano. As los a, , sistemas de tiempo real ya no se encuentran unicamente en sistemas de con trol de aviones o cohetes, control de fbricas o sistemas de telecomunicacin a o complejos, sino que tambin forman parte, a menudo invisible, de productos e como telfonos mviles, reproductores de discos DVD, televisores e incluso e o afeitadoras o aspiradoras. Varios estudios de mercado estiman en unos 5000 millones de dlares el mercado de los sistemas empotrados en el 2001, con o
43
una tendencia creciente. Otros estudios cifran el mercado de sistemas empotrados conectados a Internet en el ao 2005 en unos 6500 millones de dlares. n o Los mercados con una tendencia al alza ms signicativa, segn estos mismos a u estudios son, los de consumo domstico y telecomunicaciones avanzadas. Es e de suponer que esta tendencia continuar durante los prximos 25 aos, y a o n que los sistemas empotrados de tiempo real sern cada vez ms comunes y a a permitirn construir sistemas cada vez ms autnomos. a a o Por otro lado, todo hace pensar que en los sistemas del futuro convergern a una serie de tecnolog cuya evolucin hay que tener en cuenta si queremos as, o tener al menos un atisbo de cuales sern sus caracter a sticas ms importantes. a Algunos de estos campos son: Comunicaciones. Los medios de comunicacin para sistemas de tiempo real tienen que o cumplir un requisito fundamental: es necesario poder predecir la duracin o mxima del tiempo de transmisin de los mensajes. Esta realidad slo se a o o ha manifestado recientemente y ha dado lugar a la aparicin en los ultimos o aos de protocolos de comunicacin con tiempo de transmisin determinista. n o o Aunque el motivo principal de estos desarrollos ha sido la necesidad de implementar sistemas de tiempo real distribuidos en la industria del automvil, o se ha extendido rpidamente a otros campos de aplicacin. Es de esperar a o que esta tendencia contine y que en un futuro prximo se generalicen los u o protocolos de comunicacin con comportamiento temporal previsible, junto o un mayor ancho de banda y tolerancia de fallos. El desarrollo de protocolos de comunicacin por radio, adems, facilitar previsiblemente el desarrollo o a a de sistemas empotrados porttiles. a Ingenier de software. a El abaratamiento del hardware y el incremento de la densidad de integracin facilita la realizacin de sistemas de tiempo real cada vez ms como o a plejos. Es de preveer que esta tendencia contine en un futuro prximo, lo u o que hace necesario disponer de mtodos y herramientas adecuados para dee sarrollar sistemas de tiempo real complejos, teniendo en cuenta adems que a la dicultad de desarrollar este tipo de sistemas es mayor que en el caso de sistemas convencionales. Esto se debe a que hay que considerar los requisitos temporales y de abilidad, ya que los fallos de estos sistemas pueden causar cuantiosos daos materiales, e incluso en ocasiones la prdida de vidas n e humanas. Por este motivo, resulta preocupante la visin, ingnua pero frecuente, o e
44
de que el desarrollo de sistemas empotrados se simplica utilizando sin ms a los mtodos de desarrollo de software que han dado buenos resultados en e otros campos de aplicacin, o que hacer sistemas de tiempo real consiste o unicamente en hacer sistemas ms rpidos o ms ecientes. a a a Para poder desarrollar este tipo de sistemas de forma que satisfagan los requisitos de determinismo temporal y abilidad que les son inherentes manteniendo unos costes razonables, es absolutamente necesario disponer de tcnicas de ingenier de software ms avanzadas. En este sentido, se dispone e a a de un buen bagaje de tcnicas de diseo y anlisis desarrolladas en su mayor e n a parte en los ultimos diez aos, que se puede utilizar de manera efectiva para n conseguir estos objetivos. No obstante resulta preocupante el hecho de que en algunos desarrollos recientes de lenguajes de programacin o de sistemas o operativos se hayan ignorado casi completamente los avances tecnolgicos o realizados en los ultimos aos en este campo. n Inteligencia articial. La complejidad de las aplicaciones de sistemas de tiempo real del futuro hace pensar que ser necesario emplear tcnicas de inteligencia articial para a e adaptar su comportamiento a los cambios del entorno, aprender y emplear tcnicas de toma de decisiones, y para aumentar su autonom y prestaciones. e a Estas tcnicas ya se utilizan en muchos tipos de sistemas informticos, pero e a la satisfaccin de requisitos temporales presenta dicultades adicionales que o no siempre se sabe resolver de manera adecuada. El desarrollo de tcnicas e que permitan compatibilizar los mtodos de la inteligencia articial con un e comportamiento temporal previsible dar todav trabajo a la prxima gena a o eracin de investigadores. o Sistemas distribuidos. Es previsible que la mayor de los sistemas de tiempo real del futuro sean a distribuidos. La necesidad de utilizar diversos computadores estar motivada a por la necesidad de disponer de una gran potencia de cmputo, por la diso tribucin f o sica de estos sistemas y por la necesidad de hacer que toleren una mayor cantidad y variedad de fallos. Problemas como la sincronizacin de los o relojes de los diversos procesadores, el determinismo temporal y la distribucin dinmica de la carga son algunos aspectos que debern ser solucionados o a a de forma adecuada. Tolerancia de fallos. La necesidad de disponer de sistemas ables y que puedan funcionar de
45
manera cont nua es cada vez ms frecuente, y es previsible que se acreciente a en el futuro prximo. Para tal n, las tcnicas de tolerancia de fallos, tanto o e de hardware como de software, debern tener en cuenta los requisitos tempoa rales, de forma que la recuperacin y el tratamiento de los fallos de hardware o y de software no impliquen una degradacin inadmisible del comportamiento o temporal del sistema.
2.5.
La previsin consiste en que los sistemas de tiempo real sern una teco a nolog de base para desarrollar sistemas de control empotrados con una serie a de caracter sticas comunes. Sern autnomos, en el sentido que tendrn prea o a jadas sus funciones y las realizarn sin intervencin humana directa. Para ser a o capaces de realizar esta funciones, ser imprescindible disponer de sistemas a sensoriales avanzados que les permitan conocer el estado de los elementos del entorno, segn sea necesario. Dispondrn de capacidades de comunicacin u a o inalmbricas, lo que les permitir comunicarse con los humanos, entre ellos y a a con centros avanzados de control. Tendrn capacidades de aprendizaje y de a adaptacin a entornos cambiantes. o Los dispositivos generales descritos tendrn una aplicacin espec a o ca en distintos campos, que se analizan a continuacin con algo ms de detalle. o a Transporte. Uno de los campos de aplicacin ms importantes de los sistemas de tiemo a po real ha sido tradicionalmente el control de los medios de transporte como aviones, trenes, etc. Una de las tendencias ms interesantes en relaccin con a o este tipo de sistemas es la de conseguir un funcionamiento autnomo de los o mismos. Esto ya se ha conseguido en algunos trenes con recorridos sencillos y velocidad limitada, como los que circulan en algunos aeropuertos o en algunas l neas de metro. Obviamente, la complejidad es mayor en el caso de otros medios de transporte como los aviones, trenes o automviles. Los avances o que se estn produciendo en sistemas de navegacin, sensores e inteligencia a o articial permiten esperar un progreso notable en aplicaciones como el desprgue, aterrizaje y navegacin de avione, o en el funcionamiento automtico de o a los sistemas de control y circulacin de trenes. En cuanto a los automviles, o en la actualidad se estn investigando mtodos de navegacin que permitan a e o
46
conseguir formas limitadas de conduccin automtica en autopistas. Para o a lograr este comportamiento, los sistemas empotrados en loscoches debern a de disponer de sensores inteligentes y muy ecaces para detectar cualquier desviacin del sistema, con objeto e corregirla a tiempo. Los veh o culos estarn interconectados entre s y con centros de control. Esto permitir avisar a a con tiempo de maniobras y adaptar el comportamiento de los veh culos a las circunstancias del trco. a Fabricacin automtica. o a La utilizacin de las tecnolog descritas en la industria permite esperar o as el desarrollo de fbricas automticas. Un conjunto de robots y mquinas esa a a peciales se encargarn de fabricar los productos con m a nima intervencin de o operadores. La capacidad de adaptacin y reconguracin de estos compoo o nentes podr permitir cambiar las caracter a sticas del producto fabricado en un tiempo muy reducido. De esta manera aumentar la exibilidad de esta a instalaciones y ser posible el desarrollo de productos a la carta. a Los componentes de una fbrica podr estar conectados a los centros de a an planicacin mundiales de la compa lo que permitir ajustar la cantidad o na, a y el tipo de productos a fabricar. Aplicaciones domsticas. e La conguracin de los hogares es previsible que cambie en este lapsdo o de tiempo. Actualmente se trabaja en redes de comunicacin para el hogar, o con el objetivo de interconectar los dispositivos. En algunos casos, esta meta se puese conseguir en un espacio de tiempo pequeo. No parece descabellado n pensar en la conexin de cmaras de seguridad o de vigilancia del cuarto de o a los nios que se conectan a una red de rea local y que permiten desde el n a televisor digital observar lo que captan. De la misma manera parece factible interconectar todos los elementos de la casa, de forma que se muestre un mensaje de aviso en la televisin cuando tremine la lvadora o cuando el frigor o co solicite la revisin de las 1000 horas. La aplicacin de robots autnomos en el o o o hogar podr resultar en obviar toda esa serie de labores tediosas y necesarias a que hay que realizar a diario en cualquier hogar. CONCLUSION. Teniendo en cuenta la velocidad con que los avances tecnolgicos han o cambiado nuestras vidas durante los ultimos aos, es dicil predecir cmo n o ser este cambio en los prximos 25 aos. a o n
47
48
49
3.1.
Introduccin. o
El mercado de los sistemas empotrados y de tiempo real ha estallado en la era POST-PC, especialmente gracias a internet. Los sistemas empotrados de tiempo real estn llegando a ser comunes en mercados como a el de las telecomunicaciones, la automatizacin industrial, control de hogao res, sistemas automviles e instrumentacin mdica. El contenido software o o e de estos aparatos est evolucionando y creciendo,poniendo especial inters y a e esfuerzo en el desarrollo de recursos puesto que son muy escasos. El desarrollador de sistemas de tiempo real empotrados se encuentra tambin con un e entorno de trabajo extremadamente heterogneo, con una gran cantidad de e procesadores, sistemas operativos y tipos de perifricos. De este modo, los e ingenieros estn cada vez ms interesados y estudian ms las tecnolog Jaa a a as va, para proporcionar un entorno de desarrollo para sistemas empotrados de tiempo real ms productivo y portable. Estas tecnolog incluyen el lenguaje a as de programacin orientado a objetos Java, las Java Virtual Machines, y la o gran cantidad de librer de clases de ejecucin. as o
3.2.
La plataforma JAVA.
La plataforma Java debut en 1995 como un entorno de trabajo y de o lenguaje server, aunque fue originalmente desarrollado como un lenguaje de programacin orientado a objetos para sistemas empotrados. La plataforma o neutral, el modelo de objetos simplicado, las fuertes nociones de seguridad y garant y el soporte multihilos de la plataforma Java proporcionan muchas a, ventajas para una nueva generacin de sistemas empotrados de tiempo real o que funcionan a travs de la red. e
3.2.1.
El lenguaje de programacin orientado a objetos Java, con su sintaxis o similar al lenguaje C y su modelo de objetos simplicado, es ms fcil de a a dominar que C++, y ha demostrado ser un 25 % - 40 % ms efectivo. La a inexistencia en Java de los punteros y el direccionamiento automtico de a memoria son puntos frecuentemente citados como factores clave en el progreso del software en cuanto a productividad y robusted se reere. El lenguaje
50
Java tambin soporta multihilos y la palabra sincronizacin proporciona un e o signicado particular y elegante de ejecucin mutua y exclusin. o o
3.2.2.
La ejecucin de un programa Java es soportada por una mquina virtual o a (JVM) estandar donde los programas son compilados. Este diseo permite n a Java ser portable puesto que los programas Java pueden ejecutarse en cualquier sistema que soporte una JVM. Adems, el aparato donde se tiene a implementado el sistema est aislado de la propia aplicacin por la JVM, se a o este modo se aumenta la seguridad y garant del cdigo. a o El conjunto de instrucciones de la JVM est basado en una arquitectura a de 32 bits con un nmero de instrucciones unicas, as como invocacin de u o mtodos virtuales con deteccin de bloqueo. En un entorno de ejecuccin e o o Java t pico, las aplicaciones portables o applets compilados en cdigo de JVM o son interpretadas por una implementacin software JVM, Just-In-Time (JIT) o compilando al cdigo mquina nativo o directamente son ejecutados por un o a microprocesador Java. Un microprocesador Java es ms eciente desde el punto de vista del a espacio y el tiempo para ejecutar el cdigo Java. Los interpretes de cdigo o o son lentos y requieren memoria para almacenar el cdigo del interprete. JITs o requiere reas de memoria que var de tamao para soportan la traduccin a en n o de cdigo y la ejecucin en un entorno de JIT sufre desde efectos de prdida o o e de memoria cach si se transere el control hasta bloqueos de cdigo no e o traducido. Sin embargo, generar cdigo como un procesador no es una tarea o fcil por eso el conjunto de instrucciones de la JVM es complejo, ms incluso a a que el conjunto de instrucciones de los computadores tradicionales como son la familia x86 de Intel y la familia 680x0 de Motorola.
3.2.3.
La J2ME Connected, limited Device Conguration (CLDC) especica un subconjunto de Java 2 para ocupar los recursos de memoria (menos de los 512 KB disponibles para el entorno Java) con baja velocidad y conectividad intermitente con la red, tales como telfonos mbiles y asistentes personae o les digitales. El Connected Device Conguration (CDC) es tomado como
51
punto de referencia para muchos aparatos, tales como set-top boxes o aplicaciones de red plug-in-the-wall. Junto con estas conguraciones estandar, un numeroso grupo de perles de mercado verticales se pueden denir a partir de J2ME. Un perl del J2ME particularmente importante es el Mobile Information Device Prole (MIDP), que entre otras caracter sticas importantes posee la de denir un conjunto m nimo de APIs grcas para aparatos de a informacin como por ejemplo los telfonos mbiles, los asistentes digitales o e o personales, etc. La arquitectura software de una aplicacin J2ME t o pica es la mostrada en la gura 3.1:
3.2.4.
Conclusin. o
El entorno Java, con su plataforma neutral, su modelo de objetos simplicado, sus fuertes nociones de seguridad as como su soporte de hilos mltiples, u
52
proporcionan muchas ventajas para una nueva generacin de sistemas emo potrados y de tiempo real. Sin embargo, el gran tamao, el comportamiento n no determinista y la pobre representacin de la primera generacin de imo o plementaciones Java en sistemas empotrados han inuido negativamente en la aceptacinde Java en el mundo de los sistemas empotrados y de tiempo o real. aJile Systems ha desarrollado una implementacin hardware de bajo o coste de una mquina virtual Java que hace una realidad el uso de Java en a sistemas empotrados y de tiempo real. El hardware de aJile proporciona un soporte directo para el conjunto de instrucciones de la JVM y el modelo de hilos (threads), eliminando la necesidad de un interprete de Java o compilador Just-In-Time, as como el tradicional sistema operativo de tiempo real (RTOS). Esta tecnolog hardware de aJile soporta mltiples JVM ejecutndose al a u a mismo tiempo en la CPU, aumentando la seguridad, garantizando el espacio en memoria y porcin de tiempo para las distintas aplicaciones Java. Esto o combinado con la segunda ediccin de Java (J2ME) y unas herramientas de o construccin, hacen de esta tecnolog una plataforma eciente para el deo a sarrollo de aplicaciones empotradas de tiempo real desarrolladas enteramente en Java.
3.3.
Tiempo Real.
Un sistema de tiempo real puede ser denido como aquel sistema informtico en el que la correccin del sistema no slo depende de los resultaa o o dos lgicos de los algoritmos, sino que tambin depende del momento en el o e que stos se producen. El tiempo necesario no tiene porqu ser el ms corto, e e a sino el adecuado: el sistema tiene que asegurar el tiempo de respuesta. No todos los sistema de tiempo real son iguales, no es lo mismo controlar el sistema de frenado ABS de un coche o la inyeccin de combustible en el motor o de un avin, que la descompresin y visualizacin de un chero mpeg. En el o o o primer caso, la perdida de algn plazo de ejecucin puede producir perdidas u o humanas o graves perdidas materiales; en el segundo caso, sencillamente se tiene una degradacin de la calidad del sistema (la imagen se queda congelada o o se pierde algn fotograma). A los primeros se les llama sistemas de tiempo u real duro o estricto (hard real-time) y a los segundo sistemas de tiempo real blando (soft real-time). Obsrvese que hemos denido un sistema de tiempo real y no un sise
53
tema en tiempo real. Un sistema en tiempo reales lo que normalmente se entiende por un sistema rpido, capaz de dar la impresin de realidad. T a o picamente todas las simulaciones y juegos interactivos pretenden dar sensacin o de continuidad en el tiempo de forma que cuantas ms imgenes generen en a a menos tiempo, mejor para sus intenciones. Con estas deniciones en mente, vamos a diferenciar entre dos tipos de sistemas de tiempo real: 1. Sistemas de tiempo real blando 2. Sistemas de tiempo real estricto 1.- Sistemas de tiempo real blando Este tipo de sistemas deben mantener casi siempre la temporizacin. Una o prdida de algn plazo de ejecucin solamente puede causar una degradacin e u o o en la calidad ofrecida por el sistema, pero no resulta excesivamente importante. De hecho este tipo de sistemas requieren un buen rendimiento en promedio. As que estos sistemas necesitan realizar sus plazos de ejecucin o con frecuencia. Un ejemplo t pico es la visualizacin de un chero de video : si el sistema o pierde un plazo no es grave, slo provocar algn salto de imagen que puede o a u ser indetectable o a lo sumo incmodo para el usuario. o 2.-Sistemas de tiempo real estricto Se trata de sistemas cuyos plazos de ejecucin no pueden perderse de o ningn modo. Los sistemas de tiempo real estricto no pueden utilizar la mejou ra del rendimiento medio para compensar un mal rendimiento en el peor caso. La prdida de un plazo de ejecucin puede causar un error irrecuperable. Este e o tipo de sistemas debe garantizar todos los tiempos de respuesta. Las aplicaciones que cubren van desde el control a la supervisin de motores, robots, o sistemas de adquisicin de datos, plantas de procesado, sistemas de telecoo municacin. . . entre otras mquinas e instrumentos donde la temporizacin o a o sea un factor decisivo. Como ejemplo pongamos una secuencia de lanzamiento de un cohete, donde los plazos l mite deben ser respetados o si no el cohete puede explotar. Otro ejemplo ser una cadena de montaje, que necesita trabajar a intervalos a
54
de tiempo precisos o en caso contrario el resultado pueden ser cientos de productos defectuosos. RT-Linux est especialmente diseado para trabajar como un sistema a n de tiempo real estricto. Trata de reducir la complejidad para as reducir la impredecibilidad del sistema, como hacen otros sistemas de tiempo real como VxWorks, Linx, OS/9 y tantos otros. Pero es diferente a todos ellos porque no es un sistema espec co. Por contra, est basado en Linux, lo que le aporta a una compatibilidad mucho ms variada con herramientas y programas ya a existentes. Por otro lado, desde el punto de vista de los sistemas de tiempo real blando, RT-Linux todav no est preparado para ello. Por qu? Porque los a a e sistemas de tiempo real blando seriosdeben dar soporte QOS (Quality Of Service: Calidad De Servicio), de forma que aporten algn sistema de control u que permita regular la posibilidad de perder algunas iteraciones en las tareas de tiempo real blando. La clave podr estar en establecer distintos niveles de a prioridad, como por ejemplo tratando separadamente las tareas de tiempo real estricto (de mayor prioridad) de las de tiempo real blando (de menor prioridad).
3.3.1.
La primera propuesta para que un computador trabajara en tiempo real, como un sistema de control, fue publicada en 1950. Esta propuesta mostr un o computador con bucles feeback y feed-forward. Fue supuesto que ser usaan dos elementos de computacin analgicos pero los digitales no fueron excluio o dos. El primer computador digital desarrollado espec camente para control en tiempo real fue para operaciones areas. Por 1954 un computador digital e Digitrac fue usado con xito para proporcionar un vuelo automtico y para e a sistemas de control de armas. En 1960 empezaron a emerger los sistemas operativos en tiempo real para aplicaciones industriales. Tambin aparecieron los compiladores de proceso e fortran. La llegada del microprocesador en los 70s y el aumento de la velocidad de la memoria empezaron a forzar el aumento de atencin en los o problemas de la escritura correcta y el control able por computador del software.
55
3.3.2.
La denicin de sistemas de tiempo real parece variar entre los distintos o grupos, tales como: vendedores, pranticantes, acadmicos, desarrolladores, e etc. Algunas deniciones son las siguientes: Segn el diccionario de computacin Oxford:Un sistema en el cual, el u o tiempo en el que se obtiene la respuesta es signicativo. Esto normalmente es, porque la entrada corresponde con algn movimiento de munu do fsico, y la salida tiene que estar relacionada con ese movimiento. El retraso entre la entrada y la salida debe ser sucientemente pequeo n para que sea aceptable. Esta denicin cubre diferentes tipos de siso temas, desde estaciones de trabajo que se ejecutan bajo sistemas operativos UNIX donde el usuario espera obtener una respuesta dentro de pocos segundos, hasta sistemas de control de aviones donde se debe obtener una respuesta en un tiempo determinado y cualquier fallo o retraso puede causar la prdida del control y la posibilidad de la muerte e de los pasajeros. La denicin del Journal of Systems and Control Engineering: Los o sistemas de tiempo real son aquellos que deben producir respuestas correctas dentro de un tiempo l mite denido. Si las respuestas sobrepasan este tiempo es posible que se den degradaciones y funcionamientos extraos en los resultados. n Otra denicin alternativa es: Los sistemas de tiempo real leen las eno tradas de una planta (sistema f sico a controlar, por ejemplo: un robot, un proceso automatizado de una empresa, una cmara digital, etc.) y a mandan seales de control a la planta en tiempos determinados para n las consideraciones operativas de la planta, no a los tiempos limitado por las capacidades del sistema computador.
3.3.3.
Clasicacin. o
Los sistemas de tiempo real y los computadores empotrados se interconectan con el entorno en el que trabajan mediante un amplio rango de interfaces de perifricos que reciben y env est e an mulos. Los procesos externos operan en sus propias escalas de tiempo y al computador se le exige que opere en tiempo real si las operaciones de los procesos externos se llevan al computador.
56
Se debe denir la sincronizacin entre los procesos externos y las acciones o internas del computador. Esto se puede hacer por: El periodo de tiempo en el que se le dice al sistemaque responda que se base en el reloj(clock based), y entonces las operaciones llevadas a realizar al computador se realizan de acuerdo a un tiempo planicado. Acciones, que tienen que realizarse no en un tiempo determinado o intervalo establecido, pero en respuesta de algn evento en cuyo caso es u llamado a ser event based. Por ejemplo, apagar un congelador cuando su temperatura baje de una m nima establecida y encenderlo cuando la temperatura supere el mximo establecido. Los sistemas basados a en eventos(event based) emplean normalmente interrupciones para informar al computador de la accin que es requerida. Algunos sistemas o usan el polling, que consiste en preguntar peridicamente a los sensores o si alguna accin es requerida. o Un mtodo interactivo (interactive based) que consiste en denir de e una manera menos fuerte el parentesco entre las acciones del computador y el sistema. El requisito es que se complete en el ordenador un conjunto de operaciones dentro un tiempo predeterminado. Un cajero automtico tiene una sincronizacin interactiva puesto que requiere la a o respuesta interactiva del usuario que debe introducir su clave y operaciones que desea realizar para obtener informacin sobre el estado de o su cuenta o realizar una transaccin, y esto debe de hacerlo dentro un o determinado tiempo l mite(si no se obtiene ninguna respuesta por parte del usuario en 20 segundos, se le devolver la tarjeta). a
3.3.4.
Los sistemas de tiempo real se pueden dividir en dos categor principales as segn sus limitaciones de tiempo. u Hard real-time: Soft real-time:
57
3.4.
Real-Time Java.
Los sistemas de tiempo real se encuentran en aplicaciones de sistemas empotrados y en otras aplicaciones que requieren un determinado comportamiento en el tiempo.
3.4.1.
Introduccin. o
Algunas de las caracter sticas de la especicacin del lenguaje Java, paro ticularmente el comportamiento no determinista del recolector de basura y el manejo de hilos, han impedido la adopcin de Java en la industria de los o sistemas de tiempo real y aplicaciones software. Esta limitacin fue entendio da tanto por la industria como por las instituciones acadmicas, por eso se e organiz un grupo de trabajo dentro del Instituto Nacional de Estandares y o Tecnolog (NIST) para discutir y proponer un proyecto: Real-Time Speca ication for Java (RTSJ). Este requerimiento llevo a la formacin de un o grupo experto dentro de Java Community Process(JCP) para realizar el proyecto de la especicacin de Java para tiempo real. o
3.4.2.
Hab algunos puntos en la especicacin del lenguaje Java que frenaron a o su adopcin dentro de la industria del control de tiempo real. Los principales o problemas fueron: El controlador de eliminacin de basura de la memoria dinmica pod o a a interrumpir la ejecucin de aplicaciones por intervalos de tiempo imo predecibles. Esto era debido al comportamiento no determinista del recolector de basura, que pod elegir donde borrar los objetos de la a memoria dinmica y en un orden arbitrario. a La planicacin de hilos. Como la JVM usa el planicador del servidor o del sistema operativo, el sistema operativo debe ser capaz de planicar en tiempo real, pero esto no lo cumplen todos los servidores donde est disponible la JVM. a
58
Es vital en las aplicaciones de tiempo real tener un planicador de eventos totalmente determinista, no que lo haga de manera indeterminada. El riesgo asociado a estos dos aspectos superaba las otras ventajas de Java.
3.4.3.
Principios a seguir.
El Real-Time Java Expert Group (RTJEG) estableci un conjunto de o principios a seguir por los diseadores de la RTSJ. Estos son: n RTSJ no debe incluir ningn requerimiento que limite su implementacin u o a una plataforma, versin o entorno Java en particular. o Cualquier modicacin, no debe, bajo ninguna circunstancia, impedir o la ejecucin del software que no est escrito correctamente en tiempo o e real, en cualquier implementacin de una JVM. o Incluso cuando la dicultad en la especicacin de los parmetros de o a tiempo real para una plataforma independiente sea reconocida, los principios de W.O.R.A(Write Once Run All) deben ser perseguidos en la mayor medida posible. La especicacin debe tambin incluir las caracter o e sticas actuales de los sistemas de tiempo real y permitir la inclusin de otras ms avanzadas o a en el futuro. La principal caracter stica que debe perseguirse es la previsin incluso o en el costo de una actuacin de propsito general. o o Cualquier modicacin no debe incluir una extensin del lenguaje que o o conduzca a un requerimiento de modicacin del compilador y de aqu a o un aumento de la probabilidad de descargas frecuentes.
3.4.4.
Dise o e implementacin. n o
Hay siete reas funcionales en las que Real-Time Java presenta intensicaa ciones: planicacin y despacho de hilos (thread Scheduling and dispatching), o manejo de memoria, sincronizacin y reparto de recursos, manejo de eventos o as ncronos, transferencia de control as ncrono, terminacin de hilos y acceso o a la memoria f sica.
59
La planicacin y despacho de hilos: Un esquema jo y previsor o con una prioridad de orden de entrada tipo FIFO(First Input, First Output) se dene como base de la politica de planicacin. Adems, o a un conjunto de de caracter sticas y una API son denidas para soportar una variedad de otras pol ticas y mecanismos de planicacin. o Manejo de memoria: Tanto las ventajas como los inconvenientes del sistema de recoleccin de basura son conocidos. Por lo tanto, dos o mtodos simultnmeos son usados para cubrir los inconvenientes : se e a introduce un nuevo rgimen de memoria sin recoleccin de basura y e o tambin se dispone de interfaces estandar para instalar recolectores de e basura de tiempo real. Sincronizacin y reparto de recursos: La emulacin de mxima prio o a oridad y los protocolos de herencia de prioridad son establecidos para obligar las inversiones de prioridad en los controles usados para implementar keywords sincronizadas. Por defecto se proporciona la herencia de prioridades con una prioridad mxima opcional. a Manejo de eventos as ncrono: Los objetos de sucesos as ncronos son aadidos para representar eventos as n ncronos que se espera que ocurran. Estos objetos son entonces mapeados por controladores de eventos as ncronos para que puedan ejecutarse siempre que ocurra un suceso. Estos controladores son ejecutados como hilos de tiempo real. Es fcil programar un sistema estructurado de conduccin de eventos, a o tanto que, cada suceso es atendido por un hilo creado por ese suceso particular y planica los atributos para cada suceso ayundando as al planicador. El tiempo desde que ocurre un suceso hasta que ste es e atendido es un overhead en la sensibilidad de tiempo real. La creacin o de hilos es lenta. Es un servicio de colocacin de recursos, y los prograo madores de tiempo real evitan la colocacin de recursos cuando estn o a interesados en el tiempo. Transferencia de control as ncrona: La semntica del mtodo de ina e terrupcin (interrupt()) se expande permitiendo que ocurra en cualquier o lugar del cdigo en vez de slamente en ciertos bloques de llamadas. o o Por tanto, se aade una excepcin de interrupcin as n o o ncrona para especicar donde puede un mtodo recibir esta excepcin. El control de e o transferencia as ncrono es un mecanismo que permite a un hilo lanzar una excepcin en otro hilo. o Terminacin de hilos: Se dene un medio para permitir la termio nacin ordenada de un hilo. Usa el mecanismo de sucesos as o ncronos
60
para ejecutar el mtodo interrupt() del hilo. La nueva denicin semntie o a ca del hilo permite la correcta terminacin del hilo. o Acceso a la memoria f sica: Se dene un nueva rea de memoria a que puede ser mapeada en una direccin f o sica ja. Esto permite la comunicacin directa entre hilos y perifricos en Java de tiempo real. o e The Real-Time Specication for Java (RTSJ) holds the distinction of being the rst Java Specication Request (JSR 1) of the 171 submitted to the Java Community Process (JCP) so far. But order of submission doesnt imply order of completion; although many other specications have passed through the JCP, the RTSJ was just nalized in November 2001. Sun is not providing a reference implementation of the specication that task was delegated to TimeSys. RTSJ includes such features as real-time threads, asynchronous events, interruptible nonblocking I/O (input/output), access to physical memory, scheduling, and timers. One of many Sun attempts to address embedded applications, RTSJ joins the ranks of aborted eorts such as EmbeddedJava, PersonalJava, and PicoJava as well as successful eorts such as J2ME (Java 2 Platform, Micro Edition). Whether RTSJ survives and where it will t in with other Sun oerings remains to be seen. Past experiences in this area suggest that Sun has a tough hill to climb to succeed with RTSJ. Although many companies oer real-time solutions for Java aJile Systems, esmertec, NewMonics, and Zucotto Wireless, for example none of these vendors support RTSJ in their products. In fact, most embedded VM and hardware vendors seem to focus most of their eorts on J2ME and have no plans to immediately jump on the real-time Java bandwagon. Since these companies already support some real-time capabilities, they see no compelling reason to immediately support the new RTSJ. Many are considering RTSJ support for the future (in the next 12-18 months), but most are waiting to see market demand before committing to this new API. The exception is aJile Systems aJile participated in the RTSJ expert group and is currently working on an RTSJ implementation for its aJ-80 and aJ-100 chips.
3.4.5.
La naturaleza dinmica del entorno de ejecucin Java es una de las ms a o a potentes dentro de los entornos de trabajo tradiccionales y el servidor mundial. Sin embargo el no determinismo introducido por la recoleccin y elimio nacin de basura, la resoluccin de las clases en tiempo de ejecuccin, etc, o o o
61
es un verdadero problema para los desarrolladores de tiempo real. Por eso, el grupo de expertos de Real-Time for Java (del que aJile es miembro) fue formado en Marzo de 1999 bajo el Java Community Process para crear la especicacin de Java para tiempo real (RTSJ). La RTSJ proporciona o intensicaciones para la especicacin del lenguaje Java y la especicacin o o de la JVM en siete reas clave: programacin y despacho de hilos (thread a o Scheduling and dispatching), manejo de memoria, sincronizacin y reparto o de recursos, manejo de eventos as ncronos, transferencia de control as ncrono, terminacin de hilos y acceso a la memoria f o sica. Como ejemplo de estas intensicaciones, la RTSJ dene nuevos tipos de rea de memoria separados a del rea de memoria dinmica de Java, incluyendo la InmortalMemory y a a la ScopedMemory. Los hilos de Real-Time pueden crear objetos en estas a reas de memoria de la misma manera que en otras (con el operador new), pero desde que estos objetos no residen en el rea de memoria dinmica de a a Java, el acceso a los objetos no sufre de las pausas debidas al no determinismo por recoleccin de basura. o
62
4.1.
Introduccin a Java. o
Java es un lenguaje que necesita ser interpretado por una mquina virtual a local para poder ser ejecutado en un computador. Esto es lo que hace a Java una mquina y plataforma independiente. Por eso, cuando se tiene la a mquina virtual espec a ca para la computadora que se est usando, el cdigo a o Java ser interpretado por esa mquina virtual y el programa se ejecutar sin a a a ningn tipo de problema. u Para cualquier programa dado, el compilador basicamente toma el programa escrito en lenguaje de alto nivel y lo traduce en cdigo ensamblador. o Este cdigo en lenguaje ensamblador es proporcionado al ensamblador que lo o transforma rpidamente en cdigo de bytes y ser ejecutado por el hardware. a o a El cdigo de bytes es bsicamente el lenguaje de 0s y 1s que constituye el o a unico nivel de comunicacin que entiende el hardware de una mquina. o a El hecho de que exista un paso intermedio como es la mquina virtual a tiene sus ventajas y sus inconvenientes. Las ventajas son que incluye una mquina y una plataforma independiente del computador en el que se use el a programa. La mayor desventaja es el factor velocidad. En programas grandes donde el cdigo Java es traducido v la mquina virtual, la ca de velocio a a da dad es signicativa. Este paso podr eliminarse si el procesador fuera capaz a de interpretar el cdigo Java directamente. Pero esto no es prctico porque o a entonces se necesitar distintas mquinas virtuales para distintas aplicaan a ciones. En el JStamp, el cdigo de bits usado por el procesador ajile, es el cdigo o o de bits producido por el compilador de Java en un archivo .class, que es traducido ms tarde en cdigo binario por el programa JemBuilder y cargado a o en la placa JStamp usando otro programa llamado Charade. Esto signica que el cdigo Java es directamente interpretado por el procesador... en este o caso, el microprocesador aj-80.
4.2.
Qu es JStamp ? e
JStamp es un nuevo producto de Systronix, en simples trminos, es un e computador. Como la mayor de los computadores, tiene una CPU, RAM, a ROM, alimentacin, y un bloque de entrada/salida. Aparte de esto, JStamp o es distinto que los dems computadores. La mayor diferencia es obviamente el a
CAP ITULO 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP64 tamao (1 pulgada por 2 pulgadas), pero quizas su diferencia ms signicativa n a es que se programa enteramente en Java. Este no debe ser confundido con los sistemas que obligan a programar en Java, aunque se ejecuta en el nivel nativo. En JStamp, Java es el nivel nativo. El hecho de que Java sea el nivel nativo hace que JStamp sea muy rpido, a no existe una capa interprete entre el cdigo Java escrito y el procesador. Esto o permite al JStamp ser muy pequeo. No es necesario la existencia de memoria n extra para almacenar el interprete de Java. Esto signica que en JStamp se ejecuta real Java (JStamp ejecuta el cdigo byte de Java). No existe o tiempo de compilacin, ni de generacin, ni de ejecucin o cualquier tiempo o o o de traduccin del cdigo Java en cdigo ensamblador de la mquina.Esto o o o a lleva al Slogan del JStamp, que dice: JStamp is real fast, real small,real Java.
Figura 4.1: El Mdulo del JStamp. o La CPU del JStamp es el procesador aJ-80 de aJile Systems. El aJ-80 se programa enteramente en Java. El cdigo de la mquina virtual de Java o a estandar es el conjunto de instrucciones nativo. El aJ-80 puede trabajar a una frecuencia mxima de operacin de 80MHz. Es posible congurar el JStamp a o para funcionar a distintas velocidades del reloj, tan lento como 7.3728MHz o tan rpido como la mxima frecuencia de operacin (80MHz). Debido a a a o que el material usado en el JStamp tiene una frecuencia de 7.372MHz, la mxima velocidad del reloj interno ser de 73.72MHz. La potencia de uso del a a JStamp es proporcional a esta velocidad y la m nima potencia que consuma depender de lo lento que se pueda programar los contadores, esto es una a caracter stica a tener en cuenta frente a la duracin de las bater usadas. o as El aJ-80 tiene un nmero de entradas/salidas congurables. Este incluye: u dos UARTs, un controlador de interfaces perifericas en serie (SPI), tres con-
Figura 4.2: La estacin de desarrollo JStamp. o tadores de 16 bits muy verstiles, y puertos de entrada/salida de propsito a o general. El aJ-80 tambin incluye una interfaz de texto estandar conocido como la e interfaz JTAG. Esta es usada para cargar y depurar programas en el JStamp. Es rpido y potente proporcionando la habilidad de depurar el programa a mientras se ejecuta en un circuito. El aJ-80 hace del JStamp su propio dueo n en un circuito emulador. El JStamp tiene 512 Kbytes de memoria RAM esttica. Esta RAM no a tiene bater propia y su contenido se pierde cada vez que se retira la alia mentacin. Debido a esto, los programas no tienen que ser cargados en la o RAM excepto durante los procesos de desarrollo. El JStamp tiene 512 Kbytes de memoria ROM ash. Otra versin del o JStamp, la variante llamada JStamp-Plus, contiene 2MB de memoria ROM ash. Esta memoria extra es la unica diferencia entre el JStamp y el JStamp Plus. Normalmente se carga el programa en la memoria ROM ash. Tambin e se usa para almacenar cheros del sistema local. La fuente de alimentacin y el JStamp son un regulador de tensin camo o
Figura 4.3: Esquema de la estacin de desarrollo JStamp. o biante. La alimentacin del JStamp puede variar entre 5 y 14 voltios de o cont nua. El regulador de tensin cambiante genera 3.3 voltios para el ciro cuito de la placa de desarrollo y proporciona 100 miliamperios de 3.3 voltios de tensin continua para ser usados por el circuito de salida. o Casi todos los 40 pines del JStamp pueden ser usados como entrada/salida. Estos pines de entrada/salida son conectados con las patillas de entrada/salida del aJ-80. El mdulo JStamp tiene tambin un LED. En la primera versin o e o del JStamp, este LED era solamente un indicador de alimentacin. En las o versiones posteriores, se puede controlar este LED via software, aunque por defecto se comporte como un indicador de alimentacin. o JStamp es un procesador con una caracter stica distintiva: Java es el nivel nativo. Esto signica que no existe un interprete entre el cdigo Java escrito o
CAP ITULO 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP67 para l y el silicio. e El aJ-80 soporta la ejecucin de mltiples aplicaciones a travs de mltio u e u ples JVMs. Cada aplicacin se ejecuta de manera determin o stica , en su propio hilo de ejecucin y con sus propios event handlers. o JStamp puede ejecutar ms de tres millones de bytes de cdigo Java por a o segundo a 74MHZ. Adems puede funcionar durante 24 horas con una bater a a de 9V.
4.3.
El desarrollo software para el JStamp implica escribir programas en Java. Al contrario que con la mayor de PCs y estaciones de desarrollo, el JStamp a no tiene teclado ni ningn otro perifrico. Esto implica la necesidad de otro u e computador para escribir los programas en Java y posteriormente cargarlos en l. e Para cargar los programas previamente escritos usando Java en otro computador o estacin de trabajo, en el JStamp hay que seguir un proceso que o consta de dos pasos. Puesto que el JStamp usa como microprocesador el aJ80, el proceso a seguir es el mismo que se sigue con cualquier computador que use un procesador aJile. Para ello se necesitan dos herramientas que son proporcionadas por aJile: JEMBuilder y Charade. Estas dos son unas herramientas muy sosticadas que estn en cont a nuo proceso de integracin y o mejora.
4.3.1.
JEMBuilder
Las librer de los procesadores aJile no soportan la carga y linkado as dinmicos. Los programas cargados en los procesadores aJile, y por tanto en a el JStamp, deben por lo tanto, tener todas sus clases linkadas previamente antes de ser ejecutados. Esto es lo que hace el JEMBuilder, es su principal tarea. Aunque el JEMBuilder se usa tambin para congurar varias opciones e del hardware dentro del aJ-80, como la de donde se carga el programa y cmo se va a reiniciar el sistema. El JStamp se puede congurar como se o desee mediante esta herramienta. Lo que se obtiene del JEMBuilder es un
CAP ITULO 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP68 chero binario apropiado para ser cargado en el JStamp, varios otros cheros utiles para la depuracin y el guin que debe seguir el Charade para cargar o o el chero en el JStamp.
4.3.2.
Charade
La herramienta Charade es usada para transferir el chero binario generado por el JEMBuilder al JStamp. Tambin es usada para una depuracin e o simblica y a muy bajo nivel del cdigo que se est ejecutando en el JStamp. o o a Charade se comunica con el sistema aJile mediante un cable especial conectado entre un puerto paralelo del sistema que se est usando para el desarrollo e del programa y el puerto JTAG del JStamp. A este cable se le llama, cable JTAG.
4.4.
4.4.1.
El procesador aJ-80.
Introduccin. o
El aJ-80 es un procesador de bajo consumo basado en tecnolog Java. a Ha sido diseado especialmente para portar cdigo Java para aplicaciones en n o el mercado de sistemas empotrados. Al contrario que los microprocesadores tradicionales que deben consumir potencia de computacin para convertir el cdigo de instrucciones Java en o o el lenguaje nativo del procesador, la l nea de procesadores aJile, basada en tecnolog Java, opera directamente desde el cdigo Java. Adems, las primia o a tivas de threads de Java (como: wait, yield, notify, monitorenter, monitorexit, etc.) son implementadas como extensin del cdigo del aJ-80, eliminando la o o necesidad de un sistema tradicional que opere en tiempo real (RTOS). Usando el cdigo Java como conjunto nativo de instrucciones, e incorporando las o primitivas de threads de Java, el aJ-80 requiere menos memoria y menos tiempo de ejecucin en computacin que un microprocesador convencional o o que ejecute una aplicacin en cdigo Java. o o Esto muestra la ilimitada extensin de la tecnolog Java en computacin, o a o desde el rea de trabajo a aparatos remotos y mbiles, ejecutndose en todos a o a ellos las mismas aplicaciones, lo que puede ser ecientemente actualizado y realizado su mantenimiento desde una unica fuente.
CAP ITULO 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP69 El aJ-80 hace posible una de las primeras metas del tiempo real 100 %, los procesadores basados en Java, es decir, sin necesidad de interprete. Esta solucin aumenta las oportunidades para los desarrolladores de software para o disfrutar de las ventajas del entorno Java y hace posible que las aplicaciones de tiempo real basadas en tecnolog Java se ejecuten en gran cantidad de a productos de bajo coste y bajo consumo como: telfonos mbiles, PDAs, e o juegos... El aj-80, al igual que su hermano el aJ-100, presentan como atractivo especial una mquina de procesamiento Java de 32 bits que implementa una Java a Virtual Machinede tiempo real. El procesador tambin integra 48 Kbytes e de memoria RAM on-chip, y un controlador de memoria, dual UARTs, tres timer/counters de 16 bits y veintidos entradas/salidas de propsito general. o Los procesadores aJile basados en tecnolog Java soportan la versin a o actual de Real -Time Specication for Java (JSR-001)desarrollada por la Java Community Process. El aJ-80 ha sido incorporado dentro de un mdulo de tecnolog Java o a en tiempo real, el JStamp. Ha sido desarrollado por Systronix e integra un procesador aJ-80 con 512 Kbytes de memoria SRAM externa y 512 Kbytes de memoria Flash externa en una placa m nima de 1 2 pulgadas. En resumen, el aJ-80 es un procesador revolucionario, proporciona a los diseadores de sistemas un procesador de 32 bits a un bajo coste, con un n bajo consumo y ejecuta Java como conjunto de instrucciones nativo. Esto, junto con la SRAM y memoria Flash , el suministro de alimentacin y otro o circuiter adiccional connado en un pequeo espacio (JStamp) y fcil de a n a usar, aumentan el rango de aplicacin de Java para diseos empotrados. o n
4.4.2.
aJile Systems fue formado para satisfacer la necesidad del desarrollo de aplicaciones orientadas a objetos para sistemas empotrados de tiempo real de bajo consumo. La arquitectura Java de aJile fue diseada con un enfoque n hacia sistemas empotrados y de este modo maximizar la cantidad de datos de ejecuccin que puedan estar en la memoria ROM y eliminar la modicacin o o de la corriente de instrucciones de ejecucin (quickizing). o
La CPU de aJile soporta directamente el modelo de hilos de Java en su hardware, producciendo el cambio extremadamente rpido entre hilos. a La arquitectura aJile tambin dene un conjunto de instrucciones extendido e por la intrefaz hardware f sica y otras tareas de programacin de sistemas. o Esta extensin de instrucciones no est disponible para el cdigo bajado o a o dinmicamente y que es poco able. a
4.4.3.
El aJile System JEM2 es un microprocesador de bajo consumo(1MW/MHz) de segunda generacin que se ejecuta directamente en Java. Su diseo como n pacto y su bajo consumo le hacen muy conveniente como microcontrolador en reas de aplicacin tales como las telecomunicaciones, automatismos y a o veh culos industriales. JEM2 soporta buses de datos externos de 8, 16 y 32 bits y proporciona una inerfaz de test estandar IEEE 1149.1 (JTAG). Con el JEM2, los desarrolladores de sistemas empotrados y de tiempo real pueden
Figura 4.5: Asignacin de pines en el aJ-80. o usar el lenguaje orientado a objetos Java, con sus probadas ventajas en productividad, para crear aplicaciones que sean tan ecientes en espacio y tiempo como si estuvieran escritas en lenguaje C para otras plataformas microcontroladoras. Adems, el JEM2 es 20 veces ms eciente desde el punto de a a vista del consumo por unidad de ejecucin Java que otras implementaciones o empotradas Java. La arquitectura del J2ME es la mostrada en la gura 4.6: El JEM2 core implementa todo el conjunto de instrucciones de la JVM en el silicio. Los unicos dos cdigos que atrapan inmediatamente al software o son multianewarray y athrow. Obviamente, operaciones como carga de clases son manejadas en software, pero se ha obtenido una solucin, la ejecucin o o de cdigo como invokevirtual es hecha como una unica instruccin JEM, o o incluyendo la deteccin de bloqueos. o
4.4.4.
Una de las caracter sticas especiales de la arquitectura aJile es el soporte hardware para hilos Java en tiempo real. El uso de control concurrente est profundamente arraigado en la especicacin de la mquina virtual Java a o a (JVM). Las operaciones elementales como la llamada a los mtodos de las e instrucciones requiere la adquisicin de un bloqueo si el mtodo del objeto es o e declarado como synchronized. De este modo, la CPU del ajile implementa las rutinas de sincronizacin y programacin bsicas de los hilos en el microcdio o a o go.Esto signica, por ejemplo, que la primitiva yield() de la java.lang.Thread es una sola instruccin. Con esto obtenemos varios benecios, el primero, o
CAP ITULO 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP73 que la CPU del aJile no requiere el kernel de un sistema operativo de tiempo real (RTOS), lo que implica un ahorro de memoria. Adems el uso de a hilos mltiples es extremadamente rpido en la CPU del aJile. Por ejemplo, u a el tiempo requerido para ejecutar un yield() y reanudar un hilo diferente es aproximadamente de 500 nanosegundos en una CPU de aJile de 100MHz. Adicionalmente, el hardware de aJile soporta la consulta peridica de hilos o y tambin implemente la inversin de prioridades para el control de estos. e o
4.4.5.
Una caracter stica especial unica del entorno de ejecuccin de aJile es o que este procesador es programado enteramente en lenguaje Java, incluye los sustitutos para la mayor de los mtodos nativos del sistema de ejecucin a e o Java. Esto se puede hacer gracias a la herramienta de generacin de aplio caciones JEMBuilder, que proporciona la sustitucin de ciertas llamadas a o mtodos con cdigo aJile. e o Con este adelanto, no es necesario el uso de un ensamblador, y los desarrolladores pueden crear implementaciones Java con las clases del aJile en un entorno de simulacin. El resultado es que todo el cdigo ejecutable est eso o a crito en Java, de este modo es ms sencillo el mantenimiento y comprobacin. a o
4.4.6.
Manejo de memoria.
La especicacin de la mquina virtual de Java incluye varias instruco a ciones para el manejo de memoria. Sin embargo, el entorno de desarrollo Java no tiene la primitiva free, adems el reclamo de memoria es automtico. Por a a tanto, el entorno aJile, implementa instrucciones de localizacin de memoria o e implementa un recolector de basura muy simple en su software. El recolector de basura es implementado como un hilo y usa la sincronizacin de Java para asegurarse que lo que recoge para eliminar no proo duce errores. El hilo del recolector de basura es muy rpido, dura menos de a un microsegundo para el aj-100 a 100MHz.
4.4.7.
La naturaleza virtual de la especicacin de la JVM implica que los o mecanismos de bajo nivel como son las interrupciones y el bloqueo de la ejecucin estn especicados. Por eso, los arquitectos del aJile han proporo a cionado una implementacin propia. En relaccin con el tema de escribir o o todo el cdigo software en Java, las interrupciones y bloqueos son manejados o por mtodos estticos, que se ejecutan en una pila ejecutora o supervisora. e a El modo ejecutor del procesador puede ser pensado como un solo hilo de mxima prioridad que tiene su propia pila y zona de memoria, y que estos a mtodos son los controladores de los distintos bloqueos e interrupciones. e Como se puede esperar, los controladores de mscara de las interrupciones a pueden ser apropiados de antemano por la ocurrencia de otra interrupcin de o prioridad mayor, si las interrupcines se habilitan en el cdigo puesto que por o o defecto estn deshabilitadas. Cuando un controlador de prioridad ms alta a a es invocado, una nueva pila se ejecuta. Cuando haya acabado, el controlador devuelve el control al programa.
4.4.8.
La CPU del aJile permite generalmente escribir el control de almacenamiento de datos, permitiendo as crear un conjunto de instrucciones per sonalizado para cada aplicacin particular. Las nuevas instrucciones pueden o aumentar la rapidez de actuacin de los algoritmos usados ms frecuenteo a mente en esa aplicacin. El poder de las instrucciones personalizadas se reeja o en el cambio de instrucciones de hilos del J2ME. Por ejemplo: el resultado de una instruccin yield() en el paso de un hilo a otro es de un microsegundo o mientras que en un RTOS tradicional escrito en lenguaje de alto nivel puede tomar varios milisegundos. Como con otros cdigos extendidos, el hecho de o que el usuario dena las instrucciones a seguir se puede hacer gracias al JEMBuilder llamando a la sustitucin de mtodos estticos. No se requieren o e a cambios en el compilador para esto.
4.4.9.
La arquitectura del aJile proporciona un soporte hardware para la ejecucin simultnea de varias mquinas virtuales independientes en una aplio a a
CAP ITULO 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP75 cacin programando el reparto de tiempo de la memoria determinista con o proteccin total de la memoria. Dentro de estos intervalos de ejecucin seo o guros y espacio de memoria, cada entorno de aplicacin puede desarrollar o sus propias reglas de atencin a hilos y manejo de memoria sin que esto pero judique al resto de las aplicaciones. Adicionalmente, cada mquina virtual a tiene su propio modo de ejecutarse, esto permite a la JVM asignar sus propias interrupciones que no se atenderan mientras que la JVM est suspendida. e
4.4.10.
Las caracter sticas especiales de las multiples JVM del aJ-80 permiten llevar a cabo dos aplicaciones Java independientes que se ejecutan de una programacin y reparto de tiempo totalmente determinado y con proteccin o o de la memoria. Dentro de su espacio de memoria limitado, cada entorno JVM puede emplear sus propia pol tica de manejo de hilos mltiples y utilizacin u o de memoria sin la intervencin erronea de otras aplicaciones o hilos. o El controlador de multiples JVM (MJM) proporciona recursos de tiempo e interrupciones lgicas para asegurar que otras JVM que se estn ejecutando o e en ese momento no intereran en las aplicaciones que est realizando una e JVM determinada. El controlador de JVM proporciona un contador para controlar la porcin de tiempo que le corresponde a cada JVM. Tambin o e se tiene un contador individual para cada JVM (en total hay cuatro) para controlar los hilos dentro de esa JVM. El MJM es el representado en la gura 4.7:
4.4.11.
El aJ-80 de aJile Systems es un microcontrolador de Java para sistemas empotrados de tiempo real basado en el JEM2 core que integra el cdigo de o ejecucin de la mquina virtual de Java, las primitivas de hilos para tiempo o a real de Java, y el soporte necesario para el uso de varias JVM, junto con perifricos comunes de los sistemas empotrados. e La arquitectura del chip aJ-80 es la mostrada en la gura 4.8: Esto permite a los desarrolladores disfrutar de las ventajas y benecios del entorno Java en un paquete muy compacto y de bajo consumo con el
cumplimiento del procesamiento necesario para los sistemas empotrados. Con un Java core de bajo consumo de 32 bits, memoria on-chip y un conjunto de perifricos, esta plataforma microcontroladora de Java en tiempo real, es e idnea para pequeos aparatos mbiles, aparatos de consumo, aplicaciones o n o automotrices y controladores industriales de red. Proporcionando un System on-chip, el aJ-80 permite a los desarrolladores proporcionar fcilmente la funcionalidad de los sistemas empotrados a Java a sus productos. Esto viene acompaado del paquete de ejecucin J2ME n o CLDC, incluyendo los drivers necesarios para todos los perifricos del aJ-80 e y los drivers externos ms comunes como por ejemplo: Ethernet, memoria a FLASH, y controladores de los displays LCD. La arquitectura del system-on chip(SOC) del aJ-80 es la mostrada en la gura 4.9. El aJ-80 usa una arquitectura de bus dual: el bus del procesador y el bus de los per fericos. Para minimizar la carga del bus y el consumo
asociado, el bus del procesador es limitado a aquellos perifricos que requieren e un ancho de banda elevado (CPU, memoria, interfaz externa). El bus de los perifricos proporciona acceso a los prifricos on-chip y es aislado del bus e e e del procesador gracias al puente de perifricos. La interfaz externa del bus e genera la direccin, datos, seales de control para conectar directamente con o n la mayor de perifricos. a e
Memoria interna. El aJ-80 proporciona 48 Kbytes de memoria interna que no tiene la necesidad de esperar, se carga directamente. Los 32 Kbytes de RAM son normalmente usados para almacenar la pila de procesamiento del JEM2. Los 16 Kbytes restantes son usados para implementar el kernel de Real-Time, extensiones de cdigo e instrucciones personalizadas. o
La interfaz externa de Bus (EBI). La interfaz externa de bus (EBI) genera las seales de control de acceso n a la memoria externa y los perifricos. La EBI puede acceder directamente a e 256 Mbytes de memoria externa. Adems se puede extender este espacio de a memoria mediante l neas de direcciones. La EBI proporciona 8 selectores de
chip. La EBI puede ser congurada para soportar perifricos de 8, 16 y hasta e 32 bits de memoria. Las seales de control de memoria son proporcionadas n para habilitar conexiones directas con la memoria externa y la memoria mapeada de los perifricos de entrada/salida. Las transacciones son controladas e con el generador de estados de espera con una seal externa de espera pron porcionada para facilitar el acceso a los perifricos lentos. La EBI se muestra e en la gura 4.10: Bus Interface Timeing. El aJ-80 proporciona una interfaz exible y segura para interactuar con la memoria externa y los perifricos. El aJ-80 proporciona las operae
ciones de tiempo necesarias para acceder a los perifricos externos. Cae da salida del selector de chip tiene asociada un registro de conguracin o para especicar el tiempo de establecimiento, el tiempo de trabajo, los estados de espera y el ancho de memoria. Los registros de conguracin son cargados como parte del proceso de inicializacin del reset. o o Una seal de espera externa se proporciona para extender la transfen rencia externa a perifricos lentos o buses globales. La transferencia de e datos fundamental es la mostrada en la gura 4.11 : Tiempos de transferencia extendidos. La interfaz de bus del aJ-80 permite que las transacciones puedan ser prolongadas gracias a la seal externa de espera de transaciones n (WAITn). Los ciclos prolongados son utiles para acceder a recursos que tienen tiempos de respuesta variables o perifricos lentos. En la e gura 4.12 se muestra la WAITn: Acceso a perifricos con interfaces ISA. e
CAP ITULO 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP80 Muchos perifricos tienen interfaces que soportan mediante un bus ISA. e Para soportar perifricos con este tipo de interfaz el aJ-80 habilita el e CS4n y CS5n para operar como seales MEMRN y MEMWN (o IORN n y IOWN). Un acceso a un perifrico mrdiante un Bus ISA se ilustra en e la gura 4.13:
4.4.12.
Timer/Counter (TC).
El aJ-80 incluye tres timer/counters 16 bits (TC) que pueden realizar un rango amplio de funciones. Las funciones de los timer/counters incluyen medida de frecuencia, contador de eventos, medida de intervalo, contabilizar retrasos, y modulacion de anchura de pulso. Las caracteristicas principales de los timer/counters de proposito general son: Tres contadores de 16 bits. Encadenamiento de los tres contadores para conseguir un rango ms a amplio de resoluciones. Reloj externo, control de disparo y de puerta. Dos moduladores de ancho de pulso y dos mdulos wave-form. o Un generador exible de interrupciones. Un preescalador de 16 bits. El timer/counter Programable (TC) comprende un prescaler de 16-bits y tres timer/counters muy verstiles de 16 bits como se puede ver en la gura a 4.15. Se pueden usar como fuentes para el TC dos fuentes de reloj , la entrada del reloj interno y el reloj externo (TCLK0). El prescaler divide el reloj de entrada seleccionado por PRL+1, donde 0 PRL 65535, y proporciona la habilitacin usada por los timers. Los timers pueden ser empleados como un o intervalo o como un contador c clico.
4.5.
Systronics es una empresa que lleva algo ms de 15 aos creando sistemas a n de control de tiempo real empotrados de pequeo tamao para mercados tan n n
CAP ITULO 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP81 distintos como reproductores DNA o equipos de test para vuelos militares. Durante los ultimos aos ha estado metida de lleno en la industria emergente n de los sistemas empotrados que usan tecnolog Java. Est desarrollando un a a numeroso grupo de productos sobre los controladores de tiempo real aJ-80 y aJ-100.
Parte IV Dise o. n
87
88
89
5.1.
Requisitos.
Implantacin de los sensores de ultrasonidos de BOSCH facilitados en o un sistema autnomo de tiempo real. o Usar como procesador para gestin de la informacin proporcionada o o por los ultrasonidos el aJ-80 de Systronix, y la estacin de desarrollo o JStamp.
5.2.
El ultrasonidos usado es de control manual, es decir, se debe generar externamente el pulso de transmisin y medir el tiempo que tarda en recibirse o la seal de eco. El pulso de disparo se genera mediante un programa escrito n en Java y ejecutado por el JStamp, dicho pulso debe tener una duraccin o m nima de 300s como puede verse en la gura 5.1. Una vez introduccido
Figura 5.1: Pulso de disparo el pulso de disparo en el sensor y tras unos microsegundos, se produce la rfaga ultrasnica, es decir, las seales ultrasnicas que emite el sensor para a o n o detectar si hay o no obstculos. a Tras unos microsegundos que tarda el sensor en estabilizar su membrana,
90
empieza a funcionar como receptor esperando el eco produccido al chocar la rfaga ultrasnica en un objeto. a o Se disparar el ultrasonido de nuevo despus de un tiempo de rearme a e necesario para que se estabilice de nuevo la membrana. Debido a que este sensor tiene un unico mdulo que funciona como emisor y receptor, el tiempo o de rearme es mayor.
5.3.
Conexionado.
El conector hembra de USS 3.X es el mostrado en la gura 5.3 El pin 1 es el pin de entrada y salida del ultrasonido, por lo que para conectarlo al JStamp, habra que hacer una construccin auxiliar con un diodo o en la entrada. El diodo empleado es el 1N4148. El pin 2 es el pin que se conecta a tierra. El pin 3 es la salida analgica. o El pin 4 es el pin que se conecta a la alimentacin, a una fuente de tensin o o de 8V de cont nua. De este modo la conexin queda como se puede ver en la gura 5.4. o
91
5.3.1.
Conexiones en el JStamp.
El puerto IOE3 se usa como salida del pulso de disparo que se genera mediante un programa Java. Por tanto se unir con en pin 1 del a conector hembra del ultrasonidos 3.X mediante un cable y usando un diodo 1N4148 como se mostr en la gura 5.4. Adems es necesario o a un pequeo circuito auxiliar puesto que el JStamp proporciona unas n salidas de 3,3V y para el disparo del sensor son necesarios 8V. El puerto IOE4 se usa como entrada de la seal de eco que recibe n el ultrasonidos. Por tanto se unir con el pin 1 del conector hembra a mediante un cable.
5.3.2.
Circuito auxiliar.
Para poder conectar la salida del JStamp que produce el pulso de disparo (El puerto IOE3 con la entrada del sensor de ultrasonidos, es necesario adaptar la tensin puesto que el JStamp produce salidas de 3,3V y el ultrasonidos o necesita 8V. Para ello, se dispone de un regulador de tensin MC7808C, que o proporciona una salida de 8V y 1A. Dicho regulador necesita dos condensadores para su conexin en el circuito o como se muestra en la gura 5.6.
92
5.3.3.
Alimentacin. o
La alimentacin usada para el JStamp y por tanto para los sensores o ser distinta de la usada para el servo puesto que ste introduce ruidos en la a e alimentacin y requiere grandes picos de corriente intermitentes que podr o an afectar a los componentes electrnicos. o Puesto que estamos hablando de un sistema autnomo, la eleccin se o o limita a bater recargables como fuente de potencia. Por tanto se van a usar as bater recargables de Ni-Cd de alta capacidad. Son unas pilas cil as ndricas con terminales de soldadura en la parte superior e inferior para su montaje en lotes.
93
Estas pilas proporcionan altas capacidades para tiempos de descarga ampliados y tienen la capacidad de realizar ms de 700 ciclos completos de a carga/descarga. Adems soportan altas corrientes de descarga continuas y a presentan baja resistencia interna.
94
Figura 5.6: Regulador de tensin MC7808C. o Se ha realizado un paquete compuesto de 12 pilas en serie lo que proporciona 15V de tensin. Para transformar la potencia de las bater en o as tensiones utilizables, se usa un convertidor de tensin CC/CC de 30W, con o salida triple de +12V /-12V /+5V. Estas tres salidas fueron llevadas a una placa de conexin con conectores para: ESC, Servo, Wafer, JStamp. o
5.4.
Programacin. o
Tanto para generar el pulso de disparo como para medir el eco de respuesta se usa un contador, el timer1, que se congura con una entrada (line A) y una salida (line B) para que corra libremente, se recargue automticamente. a La salida es la encargada de disparar el ultrasonidos y la entrada espera la seal de eco del ultrasonidos. n En este programa el timer1 realiza una accin cada 33ms (aproximadao mente), esto permite al JStamp guardar el resultado sin prisas ni problemas.
5.4.1.
Hay que establecer la granularidad del contador, como se precisa un pulso de disparo de 300s, tendremos que determinar el valor de la granularidad
95
Figura 5.7: Circuito del regulador de tensin. o en funcin de este valor. El prescaler del aJ-80 puede tomar cualquier valor o comprendido entre 2 y 65535, este valor divide la frecuencia del reloj tomado como fuente dandonos as la granularidad. Las fuentes posibles para el reloj del contador son dos: Una fuente externa. El reloj interno del procesador. He escogido el reloj interno, cuya frecuencia para el JStamp es de 73,728 MHz. Como el Internal peripheral Clock (este es el reloj escogido como fuente del prescaler) tiene una frecuencia igual a la mitad de la del reloj fuente, se tiene una frecuencia de 36,864 MHz, que proporciona un periodo de 27,127 ns, es decir, proporciona una granularidad de 27,127 ns. Como se quiere una granularidad de 300 s se deber introducir en el prescaler un valor de a 11059,2, por lo tanto, introducir un valor de 11060. e Establecida la granularidad se crea un pulso de diparo como el mostrado en la gura 5.1.
5.4.2.
Una vez se ha enviado el pulso de disparo y tras unos microsegundos, el sensor funciona como receptor esperando una seal de eco. Para que esto sea n
96
posible se habilitan las interrupciones para que el sensor est a la escucha y e en el momento que llegue una seal se interrumpa el timer. n En el momento que llega la seal de eco ocurren dos cosas: n Se almacena el valor que tiene el timer en ese momento en un registro del procesador (en el Sample Value Register ). Para que se realice esta accin no es necesario incluir ninguna l o nea de cdigo, se hace de manera o automtica, por lo que ocurre instantneamente, la unica limitacin de a a o tiempo es la granularidad del timer. Se dispara un evento programado para que se pueda leer ese valor almacenado en el registro. Como esto ocurre a partir de unas instrucciones de software programadas, no es instantneo, lleva un tiempo, pero esto a no es ningn problema siempre y cuando no se vuelva a disparar el u sensor hasta que se haya obtenido este valor. Por eso no se vuelve a disparar el ultrasonidos hasta que no ha pasado un tiempo suciente (33ms en este caso). La interrupcin que se habilita es la del puerto IOE4, de manera que o cuando se reciba por l un anco de bajada se ejecute la rutina de la intee rrupcin programada. Esta rutina recupera el valor almacenado en el Sample o Value Register y el nmero de veces que se ha recargado el contador para u as poder sacar el tiempo de vuelo con operaciones (de esto se encarga el programa principal).
5.4.3.
Calculo de la distancia.
La distancia a la que se encuentra el obstculo del robot se calcula a partir a de los datos obtenidos en la rutina de interrupcin (el valor del contador en o ese momento y el nmero de veces que se hab recargado) con un sencillo u a clculo consistente en restar el valor obtenido del contador al valor con el que a se hab recargado ste, el resultado de esta operracin se suma al resultante a e o de multiplicar el valor de recarga del contador por el nmero de veces que se u ha recargado, obteniendo as el tiempo de vuelo de la seal. n A partir de este valor de tiempo de vuelo, se calcula la distancia a la que se encuentra el objeto con la siguiente frmula: o distancia = (340 tiempodevuelo) siendo 340 la mitad de la velocidad del sonido en el aire en cm/sg . (5.1)
97
5.4.4.
Una vez calculado el valor de la distancia al objeto u obstculo, se opera a en consecuencia. Para ello se ha escrito otro programa Java que determine la velocidad a la que puede ir el robot y la desviacin de la trayectoria de ste, o e es decir, el giro del servo, para esquivar el obstculo. Todo esto es posible a gracias a la capacidad de Java de ejecutar hilos mltiples. u
5.5.
En el apartado 1.8 del presente proyecto se expusieron las distintas alternativas de conguracin posibles para implantar los sensores de ultrasonidos o de manera eciente en el robot de tiempo real objeto del proyecto. Se expusieron mostrando sus ventajas e inconvenientes de cada una de ellas, por lo que no me extender ms en este apartado. e a Teniendo en cuenta dichas ventajas e inconvenientes y teniendo en cuenta los objetivos del proyecto se lleg a la conclusin de adoptar la conguracin o o o en anillo de sensores usando el mtodo de medidas consecutivas combinado e con el de esperas alternadas (ambos expuestos en dicho apartado 1.8) para solucionar los problemas de ruidos e interferencias con otros sensores.
5.6.
Programacin en JBuider8. o
Para este proyecto he elegido como entorno de programacin Java el o JBuilder, cuando comenc su desarrollo us la versin JBuilder 5 y actuale e o mente estoy usando la JBuilder 8, aunque se puede usar cualquier otro paquete de programacin comercial. o Los pasos a seguir desde que se empieza a programar en Java hasta que se ejecuta en el JStamp son los siguientes: 1. Crear y compilar el programa con JBuilder Crear proyecto (.jpx o .jpr)
98
En Propiedades de proyecto -Vias de acceso -Bibliotecas necesaria aadir aJile CLDC y J2ME CLDC (necesarias puesto que n necesitamos la especicacin de tiempo real.) o Compilar As se obtiene un chero .class a partir del .java . 2. Usar JEMBuilder para tomar las clases compiladas y crear el byte-code para el JStamp. Crear proyecto. Elegir directorio donde se crear ste. ae Elegir conguracin ash de memoria en el siguiente paso (JSo tampFlashConguration) y como runtime :Runtime CLDL . (recordar poner o quitar el jumper JP1 en la placa de desarrollo) Crear una nueva JVM: por defecto JVM0 Nombre de la clase que contiene el mainde esa JVM: en este caso Ultrasonidos Indicar el Classpath a seguir para encontrar la clase anterior: por ejemplo .../blink/class Available drivers: elegir los necesarios, en este caso TIMER y PORT E. Con estos pasos se genera el chero .bin que entiende el aJ-80. 3. Usar Charade para bajar el programa al JStamp. Con este programa se baja el chero .class generado por el JEMBuilder al procesador para que pueda ser ejecutado. Hay que tener en cuenta el elegir como Device el aJ-80 port 378 (por defecto escoge el aJ-100) cuando el Jtag esta conectado en el puerto COM1 del PC. Eligiendo archivo y dentro de este load, se elige el archivo .bin y se carga el el JStamp. Para ejecutarlo, se elige archive-execute y se elige el archivo .soad. Posteriormente se selecciona Run y se ejecuta. Recordar que el jumper JP1 en la JStamp Development Station selecciona donde se almacenar el programa. Si el jumper esta instalado se cargar en la a a memoria RAM, y por tanto se perder cuando se desconecte la alimentacin. a o Si el jumper no esta instalado el programa se cargar en memoria FLASH. a
Parte V Apndices e
99
100
APENDICE A. ABREVIATURAS DE JAVA. AIE: Asynchronous Interrupt Exception. ATC: Asynchronous Transfer Control. CLDC: Connected Limited Device Conguration. DUART: Dual Universal Asynchronous Serial Port. EBI: External Bus Interface. GPIO: General Port Input/Output. IDE: Integrated Development Enviroment. JAM: Java Applications Manager. JCP: Java Community Process. JIT: Just-In-Time. JSR: Java Specication Request. JVM: Java Virtual Machine. J2ME: Java 2 Micro Edition. MIDP: Mobile Information Device Prole.
101
APENDICE A. ABREVIATURAS DE JAVA. MJM: Multiple Java Virtual Machine Manager. NIST: National Institude of Standards and Technology. PLL: Phase Locked Loop. PRL: Prescaler. PWM: Pulse Widw modulator. RMI: Remote Method Invocation. RTJEG: Real-Time Java Expert Group. RTJG: Real-Time for Java Expert Group. RTJVM: Real-Time Java Virtual Machines. RTOS: Real-Time Operating System. SDE: Software Development Enviroment. SOC: System-On-Chip. SPI: Serial Peripheral Interface. TC: Timer/Counter.
102
APENDICE A. ABREVIATURAS DE JAVA. UART: Universal Asynchronous Serial Port. WAITn: External transation wait signal.
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Indice de guras
1. Plataforma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi 5 6 7 9
1.1. Zona muerta. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Cono de emisin. . . . . . . . . . . . . . . . . . . . . . . . . . o 1.3. Comparaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4. Dependencia del rango de inclinacin. . . . . . . . . . . . . . . o
1.5. Energ emitida por la onda ultrasnica en todas las direca o ciones del entorno. . . . . . . . . . . . . . . . . . . . . . . . . 11 1.6. Efecto del desplazamiento de fase . . . . . . . . . . . . . . . . 14 1.7. Transductor del sensor de ultrasonidos . . . . . . . . . . . . . 16 1.8. Agrupacin de medidas. . . . . . . . . . . . . . . . . . . . . . 22 o 1.9. Conexin de sensores de ultrasonido en paralelo. . . . . . . . . 23 o 1.10. Conexin de sensores de ultrasonido en serie. . . . . . . . . . . 24 o 1.11. Ejemplos de posibles caminos de la seal que provocan intern ferencias en un anillo de ultrasonidos. . . . . . . . . . . . . . . 25 1.12. Cronograma del proceso de emisin y recepcin de una onda o o ultrasnica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 o 1.13. Posibles errores debido a la disposicin relativa entre el sonar o y el objeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
128
INDICE DE FIGURAS
129
3.1. Arquitectura Software del J2ME. . . . . . . . . . . . . . . . . 51 4.1. El Mdulo del JStamp. . . . . . . . . . . . . . . . . . . . . . . 64 o 4.2. La estacin de desarrollo JStamp. . . . . . . . . . . . . . . . . 65 o 4.3. Esquema de la estacin de desarrollo JStamp. . . . . . . . . . 66 o 4.4. aJ-80. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.5. Asignacin de pines en el aJ-80. . . . . . . . . . . . . . . . . . 71 o 4.6. La arquitectura del J2ME core. . . . . . . . . . . . . . . . . . 72 4.7. Multiple JVM Manager (MJM). . . . . . . . . . . . . . . . . . 76 4.8. Bloque de control del aJ-80. . . . . . . . . . . . . . . . . . . . 77 4.9. Arquitectura del aJ-80. . . . . . . . . . . . . . . . . . . . . . . 78 4.10. External Bus interface. . . . . . . . . . . . . . . . . . . . . . . 79 4.11. Transferencia de datos (lectura y escritura) . . . . . . . . . . . 82 4.12. Extended Bus Transaction (WAITn). . . . . . . . . . . . . . . 83 4.13. ISA-Oriented Peripheral Accesses. . . . . . . . . . . . . . . . . 84 4.14. ISA-Oriented Peripheral Accesses2. . . . . . . . . . . . . . . . 85 4.15. Diagrama de bloques del Timer / Counter. . . . . . . . . . . . 86 5.1. Pulso de disparo . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.2. Salida del sensor. . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.3. Conector Hembra de USS 3.X . . . . . . . . . . . . . . . . . . 91 5.4. Conexiones en el ultrasonidos. . . . . . . . . . . . . . . . . . . 92 5.5. Pines del JStamp. . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.6. Regulador de tensin MC7808C. . . . . . . . . . . . . . . . . . 94 o 5.7. Circuito del regulador de tensin. . . . . . . . . . . . . . . . . 95 o
INDICE DE FIGURAS
130
C.1. aJ-80 Test Board. . . . . . . . . . . . . . . . . . . . . . . . . . 108 C.2. I/O. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 C.3. Power and Reset. . . . . . . . . . . . . . . . . . . . . . . . . . 110 C.4. Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 C.5. Procesador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Indice alfabtico e
RT-Linux, 54
131
Parte VI Bibliograf a.
132
Bibliograf a.
[1] Error eliminating rapid ultrasonic ring for mobile robot obstacle avoidance Johan Borestein, Y.Koren. IEEE Transactions on robotics and automation, Vol11, No 1. [2] reections on modelling a sonar range sensor Gregory Dudek. McGill Research Centre for Intelligents Machines. McGill University of Montreal. [3] The Real-Time specication for Java. www.rtj.org [4] Direct sonar sensing for mobile robot navigation J.J Leonard, H.F. Durrant-Whyte. Kluwer Academic Publishers. [5] aJile Systems: Low Power Direct-Execution Java Microprocesro for Real-Time and Networked Embedded Applications David S. Hardin [6] The Java programing language Ken Arnold, James Gosgling, Dvid Holmes. Addison Wesley,2000. [7] Mobile information device prole Version 1.0. JSR-37 Expert Group, Java 2 Platform, ME. [8] The Java Community Process Sun Microsystems, Inc
133