´ IMPLEMENTACION DE SENSORES DE ULTRASONIDOS EN UN SISTEMA ´ AUTONOMO DE TIEMPO REAL.

Ma Esther Gilaberte Sanz 18 de marzo de 2003

´ Indice general
V

AGRADECIMIENTOS PROLOGO ´ INTRODUCCION

VI VII X

I

FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 1
. . . . . . . . . . . . . . . . . 2 3 3 4 5 6 7 7 8 8 9 10 12 13 15 15 16 17

1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 1.1. Introducci´n. . . . . . . . . . . . . . . . . . . . . . . . . . . o 1.2. Definici´n de sensor. . . . . . . . . . . . . . . . . . . . . . . o 1.3. Conceptos necesarios o terminolog´ necesaria . . . . . . . . ıa 1.3.1. Zona muerta. . . . . . . . . . . . . . . . . . . . . . . 1.3.2. M´ximo rango sensible. . . . . . . . . . . . . . . . . . a ´ 1.3.3. Angulo de emisi´n. . . . . . . . . . . . . . . . . . . . o 1.3.4. Di´metro del cono de emisi´n. . . . . . . . . . . . . . a o 1.3.5. Frecuencia de disparo. . . . . . . . . . . . . . . . . . 1.3.6. Inclinaci´n del haz de ultrasonidos. . . . . . . . . . . o 1.4. Caracter´ ısticas f´ ısicas de la onda ultras´nica. . . . . . . . . . o 1.5. Estudio de las restricciones de percepci´n: 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 ultras´nico. . . . . . . . . . . . . . . . . . . . . . o 1.6.1. Descripci´n general del sistema . . . . . . . . . . . . o 1.6.2. El transductor. . . . . . . . . . . . . . . . . . . . . . 1.6.3. El m´dulo electr´nico. . . . . . . . . . . . . . . . . . o o

i

´ INDICE GENERAL 1.6.4. Medida del eco. . . . . . . . . . . . . . . . . . . . . . 1.6.5. Resoluci´n. . . . . . . . . . . . . . . . . . . . . . . . o 1.7. Funcionamiento del sensor. . . . . . . . . . . . . . . . . . . . 1.8. Configuraciones. . . . . . . . . . . . . . . . . . . . . . . . . . 1.8.1. Configuraci´n de un solo sensor. . . . . . . . . . . . . o 1.8.2. Configuraci´n de varios sensores. . . . . . . . . . . . o 1.8.3. Configuraciones para extracci´n de caracter´ o ısticas. . . 1.9. Incidencias del medio ambiente. . . . . . . . . . . . . . . . . 1.10. Errores de medida con ultrasonidos. . . . . . . . . . . . . . . 1.11. Aplicaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11.1. Introducci´n. . . . . . . . . . . . . . . . . . . . . . . o 1.11.2. Ventajas. . . . . . . . . . . . . . . . . . . . . . . . . 1.11.3. Diferencia entre detecci´n de proximidad y medida del o rango. . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11.4. Campos de aplicaci´n. . . . . . . . . . . . . . . . . . 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. Introducci´n.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 a˜os. n

III

Fundamentos del procesador ajile80 y JStamp 47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 49 49 49 50 50 51 52 54 55 55

3. Java y el tiempo real. 3.1. Introducci´n. . . . . . . . . . . . . . . . . . . . o 3.2. La plataforma JAVA. . . . . . . . . . . . . . . . 3.2.1. El lenguaje de programaci´n Java. . . . o 3.2.2. La m´quina virtual Java. . . . . . . . . . a 3.2.3. Aplicaciones de Java en objetos m´biles. o 3.2.4. Conclusi´n. . . . . . . . . . . . . . . . . o 3.3. Tiempo Real. . . . . . . . . . . . . . . . . . . . 3.3.1. Origen de los sistemas de tiempo real. . 3.3.2. Definici´n de sistemas de tiempo real. . . o 3.3.3. Clasificaci´n. . . . . . . . . . . . . . . . o

. . . . . . . . . . . . . . . . . . . Varias m´quinas virtuales de Java concurrentes. . . . . . . . . . Introducci´n. . . . . . . . o 4. . . . . . . . . . . . . . . .4. o 3. . . . . . . . Soporte hardware para hilos de Java en tiempo real. . . . . . . . . . .4. . . . . . . . .8. . . . . . . . . . . . . . La debilidad de Java para las aplicaciones real. . .4. El procesador aJ-80. .1. . . . n o 3. . .4. . . .4. de tiempo . . . . . . . . . . . . La arquitectura Java para sistemas Java empotrados de tiempo real eficientes. . . . . . . .4. Descripci´n de la tecnolog´ usada. . . . 5.5. . . . . . . . . . 70 . . Un entorno de ejecuci´n Java escrito enteramente en o Java. a 4. . . . . . . . . . . . . . . . . . . . .4. . . . . Conexionado. . .7. . . . .4. . . . . . . . . . . . 3. . . . . . . . . . . . . . 4. . . . . . . . . . . . .2. . . . . .2. . . . . . 69 . n 5. . .11. . .3. . . . . . . . . . . . . . 4. . . Manejo de memoria. 4. . . . . . . . . . 80 IV Dise˜ o. . . . . . . . . .4. . 57 58 58 60 62 63 63 67 67 68 68 68 4. . .1.9. . . . Requisitos. . . . . Multiple JVM Manager (MJM). 3. . . . . . . ¿ Qu´ es JStamp ? . iii . . . . . . . . . Dise˜o e implementaci´n. . . . de tiempo . . . . .4. . . . . . . . . 75 . . . . . . . . Personalizaci´n del conjunto de instrucciones. 4.4.3. . . . Las limitaciones de tiempo en los sistemas real. . . . . . Introducci´n a Java. 4. . Timer/Counter (TC).10. . . 4. . . . . . . Real-Time Java. . 3. . . . 72 . . 56 . . . . . . . . . . . JEMBuilder . 4. . . . . . . Fundamentos del procesador ajile80 y JStamp 4. .2.4. . . o 4. . . . . Acerca de Systronix Inc. . . Introducci´n. . . . 80 . . 4. . . . . Manejo de interrupciones y bloqueo. . . . . .3.4. . . . . La ”Real Time Specification for Java”. e 4. . .1. .4. 4. . . 73 73 74 74 74 75 . . . . . . . . . . . . . .2. . . . . . . .3. . . . . . . .6. . . 4.3. . . . . . . . . . . . . o 4. . The JEM2 direct execution Java microprocesor core. . .5.4. . . . . . . . . .4. . 3.3. . . Software de desarrollo necesario para el JStamp.4. 57 . . . . . . . . . . . . . .4. . . .´ INDICE GENERAL 3.1. . . . . 4. . . . . Dise˜ o. . . . Principios a seguir. . . . aJ-80: Un microcontrolador de Java para sistemas empotrados de tiempo real. . . . . . . . . . . . . . . . . .1. . .4. . . .4. o ıa 5.4. . . . . n 87 88 89 89 90 5. . . . . . . . . . . . . . . . 4.2. . . . . . Charade . . . . . . . . .3. . . 4. . . . 57 . .12.5. . . . . .4. . . . .

. Planos del procesador aJ-80. . 5. . . . . .4. . . .2. . . . . . . Lectura del eco de respuesta.3. . . . o . Regulador de tensi´n MC7808C. . iv 91 91 92 94 94 95 96 97 97 97 V Ap´ndices e 99 100 104 107 113 120 125 A. . . . . . . . F. . . . . . . . . .4. . 5. . . Datos del procesador aJ-80.3. . . . . . E. o o 5. . . . o 5. 132 133 Bibliograf´ ıa. . . . . . .1. . . . . . . . .´ INDICE GENERAL 5. . . . o 5. .4. .4. . . . Abreviaturas de Java. . 5. C. . . . . Datos del JStamp. . . . . . Calculo de la distancia. .6. . . . . . . . . . . . . . . .1. Circuito auxiliar. . . D. . .2.5. Programaci´n. . . . . . . .3. . o 5. . . . . . . 5. . . . . 5. . . . Descripci´n de la configuraci´n adoptada. . Conexiones en el JStamp. . . . Comportamiento del robot. . . . Generaci´n del pulso de disparo. .4. . . .3. . . . Planos del JStamp. . . . . . . . . . . Programaci´n en JBuider8. . . . .4. . . . Alimentaci´n. . o VI Bibliograf´ ıa. . . . . . . . . . . . . . . . . . . . . B. .3. . . . . . .

v . Garc´ ıa.Al final todo acaba funcionando. Carlos A.

..AGRADECIMIENTOS Ante todo agradecer a mis padres todo su apoyo y paciencia porque sin ellos nada de todo esto habr´a sido posible.) e n que me han apoyado y ayudado durante todos estos a˜os.. ı Y GRACIAS tambi´n a todos aquellos (amigos. compa˜eros. n vi . profesores.

el´ctricos. Integran m´ltiples sensores y actuadores. La cuantifio n caci´n de estas medidas se realiza a trav´s de sensores mec´nicos.. o e a o t´rmicos. e e o Los robots m´viles son una de las tecnolog´ que m´s inter´s ha despero ıas a e tado en la industria por cuanto su posible aplicaci´n a una gran diversidad o de tareas de forma cooperante con el ser humano. currir a definiciones suministradas por el et´logo Smithers que dice: ”La idea o central del concepto de autonom´ se identifica en la etimolog´ del t´rmino: ıa ıa e autos (propio) y nomos (ley o regla).. fuerza. alterando sus proo gramas en funci´n de las condiciones de contorno. ultras´nicos. o La informaci´n que reciben les hace autoprogramables. Estos sistemas incluyen o ciertas t´cnicas de inteligencia artificial en sus comportamientos. tama˜os y formas de objetos y temperatura. 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. ´pticos. Es util contrastar el concepto de autonom´ con el de sistema autom´tico. Los robots aut´nomos son sistemas completos que operan dentro de eno tornos complejos sin la actuaci´n directa del ser humano.PROLOGO Los sistemas aut´nomos son sistemas complejos dif´ o ıciles de desarrollar. Para definir la autonom´ podemos reıa. Los ´ ıa a sistemas autom´ticos se autoregulan pero ellos no establecen las leyes que a sus reguladores intentan satisfacer. Conforme la tecnolog´ se ıa ha ido desarrollando ha crecido en importancia el concepto de ”Autonom´ ıa” el cual sobrepasa el concepto de sistema autom´tico.. La autonom´ es un a ıa requerimiento adicional importante.. tienen muchos grados de libertad y u deben reconciliar tareas de tiempo real con sistemas que no pueden cumplir con los tiempos de entrega. Ellos procesan o se˜ales. En la mae yor´ de los casos. el par. la informaci´n requerida es la posici´n. Estas leyes les son suministradas o est´n a vii .. velocidad. establecen relacciones. toman decisiones en tiempo de ejecuci´n y n o adaptan sus planes de actuaci´n a las diferentes circunstancias externas. ıa o o aceleraci´n.

a su vez. Por otro lado.PROLOGO viii inmersas en su construcci´n. el proceso a u de construcci´n y adaptaci´n es algo que tiene lugar mientras el agente opera o o en su entorno. Esto lleva a un bucle cerrado en el cual no hay un principio y un final. Los sistemas aut´nomos son capaces de generar por o ellos mismos las leyes y estrategias con las que regularan su comportamiento: se autogobiernan y se autoregulan. Se puede considerar que la inteligencia se centra en la ”habilidad de un sistema de mantenerse a s´ mismo mediante la creaci´n y uso de representaı o ciones”. M´s a´n. Tambi´n es n e necesario percibir situaciones err´neas o peligrosas. bien previo o aprendido. Para esto adem´s de la o a capacidad de sentir y percibir es necesaria una cierta inteligencia en forma de conocimiento. Es cada vez m´s admitido e a entre la comunidad investigadora que la capacidad de percepci´n de un robot o construye o modifica su inteligencia computacional. Determinan el camino a seguir y se conducen sobre ´l”. o o a Esta idea caer´ lejos de lo que en rob´tica aplicada a la industria podr´ ıa o ıamos definir como un control cl´sico de un robot. Parece claro que a mayor capacidad de autonom´ a ıa . pero tambi´n es cierto que los a e . e Pero la autonom´ va m´s all´ que el automatismo. para ser aut´nomo primero o o o tiene que ser autom´tico. Es decir. la inteligencia. la cual a su vez decide su actuaci´n o interacci´n con todo lo que le rodea cerr´ndose todo el ciclo. requiere de una capacidad de percepci´n para poder evolucionar y o adaptarse. Esta propiedad es la que permite al robot obtener datos sobre su entorno (sensaci´n) por medio de unos sensores y o elaborarlos para su utilizaci´n (percepci´n) por medio de procesos de fusi´n o o o m´s o menos elaborados. no hay un antes ni un despu´s. porque se supone que ıa a a la base de autoregulaci´n se genera desde la propia capacidad del agente de o componer y adaptar sus principios de comportamiento. con el objeto de o o medir el tiempo de vuelo de una se˜al o una cantidad de luz. el robot requiere una serie de capacidades que en gran medida se agrupan bajo el concepto de inteligencia. e Esta definici´n recoge la cuesti´n esencial. mayor es la capacidad de percepci´n y actuaci´n necesaria. Los sistemas autom´ticos son capaces de cono a ducirse a lo largo de un camino corrigiendo y compensando los efectos de las perturbaciones externas. En el proceo o so de percepci´n no s´lo se ven involucrados los sensores. Para conseguir esto. Muy estrechamente ligada a la autonom´ est´ la capacidad de percibir el ıa a entorno y actuar sobre el mismo. Esto implica sentir el entorno y ejercer acciones a sobre ´l de manera beneficiosa para el agente y las tareas que debe desarrollar.

Capcidad de comunicaci´n entre el robot y el hombre de forma natural.PROLOGO ix robots que hoy en d´ se utilizan en la industria. Los grandes retos hoy por hoy de la rob´tica m´vil se encuentran en : o o Capacidad de construcci´n de representaciones del entorno aut´nomas. por lo cual sus necesia dades de percepci´n y por tanto la inteligencia desarrollada es m´ o ınima. o Avances en percepci´n y su relaci´n con la inteligencia. o o . o o Capacidad de trabajo en entornos cambiantes y din´micos como los a entornos al aire libre (outdoor). o Capacidad de cooperar en grupos de robots. en el 90 % de las ocasiones ıa lo hacen en entornos estructurados y poco din´micos. Avances en los sistemas de visi´n artificial.

Este cerebro es un computador con procesamiento en paralelo y se comunica con el coche mediante una red inal´mbrica 802.´ INTRODUCCION Este proyecto se engloba dentro de uno mucho m´s ambicioso cuyo fin es a la investigaci´n de las t´cnicas de control de sistemas aut´nomos. Esta plataforma ha sufrido algunas modificaciones: Se le ha suprimido el control remoto. circuitos auxiliares. Se ha sustituido el servo de direcci´n por otro de par mayor. tipo ”Bigfoot”.. Se pretende o e o crear un robot que reaccione ante lo imprevisto. que aporta estabilidad. Se le han eliminado los amortiguadores originales. Este sistema aut´nomo tiene un cerebro principal situado en un armario o de control de la firma Honeywell.11b del IEEE. situado en el centro de c´lculo del Dea partamento de Ingenier´ de Sistemas y Autom´tica(DISAM) de la Escuela ıa a T´cnica Superior de Ingenieros Industriales de la Universidad Polit´cnica de e e Madrid. este cambio o es necesario debido al aumento de peso que va a experimentar el coche al dotarlo de sensores. a x .. capacidad de carga y potencia motriz. y es de peque˜o tama˜o lo que le dota de movilidad en n n interiores. bater´ procesadores. Adem´s en la fase de dise˜o se tuvo en cuenta la distribuci´n de todos a n o estos componentes para facilitar el cambio y mantenimiento de los mismos. Se han cambiado los engranajes met´licos por otros que proporcionan a una mayor durabilidad. ıas. Como plataforma de desarrollo se parte de un modelo de radio control de Tamiya..

El objetivo de este proyecto ser´ dotar de informaci´n al sistema mediana o te la implantaci´n de sensores de ultrasonidos de BOSCH y programar el o . con el consecuente ahorro en cuanto a problemas de dise˜o n se refiere. ethernet y todos los puertos necesarios ocupando un espacio m´ ınimo y con un consumo muy peque˜o. 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 peque˜o tama˜o (1 x 2 n n pulgadas). que ofrece un completo PC con procesador Pentium.´ INTRODUCCION xi Figura 1: Plataforma. La red inalambrica comunica esta placa Wafer con el cerebro principal. Dentro del coche se han incorporado dos procesadores: El procesador principal es una placa Wafer 5820. con factor de forma de 3. adem´s de la poca disipaci´n de calor n a o que produce. as´ como de conı trolar el servo instalado.5 pulgadas. Un procesador secundario que se encarga de gestionar la informaci´n o procedente de los sensores y actuar en consecuencia.

dotando u o o as´ de autonom´ al sistema. ı ıa .´ INTRODUCCION xii procesador para que act´e en funci´n de la informaci´n recibida.

Parte I FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 1 .

Cap´ ıtulo 1 FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 2 .

Es posin o ble. evitar obst´culos de forma a r´pida y sin interferencias entre los dispositivos. n o Sensor : estar´ compuesto de uno o m´s transductores y alg´n procea a u sador de se˜al. Procesador de se˜al : dispositivo que realiza una cierta operaci´n con n o una se˜al como un filtrado. Entorno a los sensores conviene antes de entrar en profundidad en los mismos definir una terminolog´ ıa: Transductor : aquel dispositivo que transforma una magnitud f´ ısica de entrada (por ejemplo luz) en otra de salida (normalmente voltaje). As´ un sensor viene caracterizado ı.1. la distancia a la que se encuentran los objetos se determina mediante el calculo del tiempo de vuelo de la se˜al (Time of Fligth ´ T. por su funci´n de transferencia. Definici´n de sensor. Introducci´n. mediante el uso de varios de estos sensores. amplificaci´n etc.o...2. Cualquier dispositivo que es alterado por las variaci´nes de una manitud f´ o ısica de una forma predecible y medible es un sensor para esa magnitud. a 1.F. En la mayor´ de las implementaıa ciones. o Los sensores de ultrasonido est´n siendo utilizados de forma creciente a en los ultimos 10 a˜os por parte de los dise˜adores de robots aut´nomos. a . FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 3 1. De forma funıa 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. n Esta ser´ una definici´n bajo un punto de vista de bloques. Es la zona del entorno f´ ısico en la que las variaciones de la magnitud ´ medir afectan al sensor.). ´ n n o Los principales motivos son la buena relaci´n precio-cantidad de informaci´n o o proporcionada. e Las caracter´ ısticas que definen un sensor son: Accesibilidad. que relaciona el valor de la magnitud f´ o ısica con el valor que ´ste suministra en su salida.). 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. que dichos sensores poseen.CAP´ ITULO 1.

n-dimensional. vectorial. capacidades de compresi´n de la informaci´n.. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 4 Dimensi´n. Conceptos necesarios o terminolog´ neceıa saria Entorno a los sensores de ultrasonidos conviene antes de entrar en profundidad en ellos definir algunos conceptos: . o 1. o Localizaci´n. B´sicamente este problema se resuelve meo o a diante medidas relativas de posici´n o mediante sistemas absolutos de posio cionamiento. otros de los sensores utilizados para determinaci´n de distancias a objetos y o por tanto para la construcci´n de mapas de entorno. De todos ellos hay uno que destaca por ser utilizado en gran parte de las plataformas m´viles.. Local o remoto al lugar de procesamiento. Datos. o o Sensibilidad. Loa sensores operan s´lo en un determinado o o rango de valores de la magnitud a medir e incluso de otras magnitudes. procesamientolocal. Las cao o pacidades de procesamiento local pueden reducir las necesidades de ancho de banda para una red de sensores. Especificaciones sobre exactitud y precisi´n..CAP´ ITULO 1. me estoy refiriendo a los sensores de ulo trasonidos. Segun el valor sea escalar. con pocas o a variaciones en la tecnolog´ Junto con estos. En rob´tica m´vil se usan una gran variedad de sensores que miden distino o tas magnitudes.3. El uso de sensores inteligentes permite o establecer un compromiso entre computaci´n y comunicaci´n. Formato de los datos. ancho de banda. o Rango de operaci´n.. Estos han sido utilizados desde los primeros robots dedicados a la investigaci´n hasta las m´s recientes plataformas comerciales. De todos ellos aquellos que m´s se utilizan son los orientados a a resolver uno de los problemas fundamentales de todo sistema aut´nomo: o la determinaci´n de la posici´n. o Inteligencia. Se dice que un sensor es inteligente si tiene capacidades de procesamiento o decisi´n. Discretos o cont´ ınuos. los sensores basados en luz son ıa.

1. Si el objeto est´ demasiado a cercano. a Figura 1. por tanto. Los sensores de ultrasonidos tienen una zona muerta en la cual no pueden detectar exactamente el objeto u obst´culo.CAP´ ITULO 1.3.1: Zona muerta. la se˜al ultras´nica puede chocar contra el objeto antes de que dicha n o se˜al haya dejado el transductor. la informaci´n del eco devuelta n o al sensor es ignorada por el transductor. Estos ecos m´ltiples pueden dar lugar a errores u cuando el objeto est´ dentro de la zona muerta. Zona muerta. Si el objeto est´ demasiado cerca puede ocurrir a otro problema. . que el eco generado se refleje sobre la membrana sensora y viaje de nuevo hacia el objeto. Esta es la distancia entre la mema brana sensora y el m´ ınimo rango de sensibilidad. puesto que ´ste est´ todav´ transe a ıa mitiendo y no recibiendo. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 5 1.

CAP´ ITULO 1.3.1 y 1. M´ximo rango sensible.2. a El rango m´ximo en el que se puede detectar cada objeto y cada aplicaci´n a o se determina mediante experimentaci´n. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 6 1. o . Figura 1.3 se muestran o las caracter´ ısticas de sensibilidad y las distancias sensibles t´ ıpicas para el sensor de ultrasonidos.2: Cono de emisi´n. En las figuras 1.

1. para determinar . bajo condiciones ideales. Este cono debe n e determinarse experimentalmente y dentro de ´l pueden detectarse los objetos. la longitud de onda de la se˜al es de n 0. por lo que. Es importante el tama˜o del objeto respecto del o n tama˜o de la zona que abarca el haz.3. Di´metro del cono de emisi´n. ´ Angulo de emisi´n. Para 215KHz.3. e 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 7 Figura 1.032”. Fuera de este n cono la se˜al de ultrasonidos existe pero es bastante d´bil.CAP´ ITULO 1.3. a o El sensor de ultrasonidos emite un haz de sonido en forma de cono que elimina los l´bulos laterales.063”.3: Comparaciones.4. Te´ricamente. Normalmente los objetos son grandes. estos sensores son capaces de detectar objetos con un tama˜o m´ n ınimo de 0. por lo que son detectados a varias distancias. o El ´ngulo del cono de emisi´n est´ formado por los puntos del espacio a o a en los que la se˜al del sensor es atenuada por lo menos 3dB. el objeto m´s peque˜o n o a n detectable es aquel que mide la mitad de la longitud de onda de la se˜al del n sensor de ultrasonidos.

.3. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 8 el ´rea que abarca el sensor de ultrasonidos a una determinada distancia a (di´metro del cono de emisi´n). viaja hasta el objeto. La distancia del objeto al sensor es muy importante para determinar el m´ximo de frecuencia de disparo. Inclinaci´n del haz de ultrasonidos. choca contra ´l y vuelve n e hasta el sensor como un eco.. o Si un objeto liso es inclinado m´s de ±3o con respecta a la normal al eje a del haz de emisi´n de la se˜al de ultrasonidos. las m´s significativas son: a el tama˜o del objeto n el material del que est´ hecho a la distancia a la que se encuentra. ellos tienen tambi´n una menor m´xima de frecuencia a e a cambiante. esponja. a o 1. la desviaci´n respecto a la normal puede n o . De este modo. Frecuencia de disparo.) son m´s dif´ o a ıciles de detectar que el acero. 1. parte de la se˜al es desviada o n n del sensor y la distancia de detecci´n disminuye.5. a α es el ´ngulo del cono de emisi´n. Sin embargo. De este modo la m´xima frecuencia para un objeto peque˜o ser´ menor a n a que para un objeto grande. el cristal o el pl´stico.CAP´ ITULO 1. a o X es la distancia del objeto (obst´culo) al sensor. Los materiales que absorben de sonido altas (algod´n. El sensor manda una se˜al ultras´nica por a n o el aire.6.1) Donde Box es el di´metro del cono de emisi´n a la distancia X. se usa la f´rmula: a o o Box − 2 ∗ X ∗ tan α 2 (1. para objetos o peque˜os situados cerca del sensor. la se˜al deja el sensor.3. La m´xima frecuencia a la que un sensor es capaz de dispararse o pararse a depende de varias variables..

Conocido el tiempo.4.6 ∗ T (1. toda la se˜al es desviada fuera del sensor y el sensor no responder´. de construcci´n. n a La se˜al que choca contra un objeto de superficie rugosa (como un material n granulado) se difunde y refleja en todas las direcciones y parte de la energ´ ıa vuelve al sensor como un eco d´bil.6 + 0. o 1. en sistemas militares. Si el objeto est´ inclinado m´s de ±12o respecto a la a a normal. Caracter´ ısticas f´ ısicas de la onda ultras´nica. o o control industrial y rob´tica. e Figura 1. o El funcionamiento b´sico del sensor de ultrasonidos se basa en la medida a del tiempo transcurrido entre la emisi´n de un ultrasonido y la recepci´n del o o eco correspondiente al mismo. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS 9 aumentar hasta ±8o .2) .4: Dependencia del rango de inclinaci´n.CAP´ ITULO 1. o Las ondas de ultrasonido se han utilizado para la determinaci´n de la o distancia desde hace muchos a˜os. as´ mismo se han empleado para la ubin ı caci´n de un objeto en el espacio. y siguiendo la velocidad de propagaci´n del sonido en el aire la expresi´n o o v = 331.

8mm:. El empleo de ondas de ultrasonidos en lugar de ondas electromagn´ticas se justifica por los siguientes puntos: e Las ondas ac´sticas. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS10 (T en o C y v en m/s). medida que es mayor que la rugosidad de la mayor´ de las superficies. . Esta caracter´ e ıstica permite emplearlas para la medida de distancias peque˜as.6 + 0. pero su repetibilidad es casi nula. pues la expresi´n de la onda emitida es en o o o realidad mas compleja. es decir producen lecturas bastante aproximadas a la realidad.5] 1.3) Donde t representa el tiempo transcurrido entre la emisi´n y la recepci´n. o Los sensores de distancia por emisi´n de ultrasonidos permiten modelar o el entorno en el que se mueven los robots m´viles bas´ndose en la forma en o a la que emiten y recogen las ondas de sonido. siguiendo un patr´n como el mostrado en la figura o [1. es de 6. La apertura del cono de emisi´n constituye en realidad una aproximaci´n o o del l´bulo central de emisi´n. requieren u e de un medio para transmitirse.CAP´ ITULO 1. al contrario que las electromagn´ticas. que muestra los mapas que se reconstruyen en tiempo real de un mismo entorno de navegaci´n. La velocidad de transmisi´n de las ondas ultras´nicas es mucho menor o o que la de las electromagn´ticas (velocidad de la luz). o o Este tiempo es dividido por 2 para calcular s´lo el tiempo que tarda en o llegar la onda al objeto. la distancia a la que se encuentra el objeto que ha devuelto el eco se calcula seg´n la ecuaci´n : u o d = (331. n La longitud de onda de un ultrasonido a 50KHz. Estudio de las restricciones de percepci´n: sensores de ultrasonidos o Los sensores de ultrasonidos no son ideales.6 ∗ T ) ∗ t 2 (1. en diferentes experimentos. como puede ser el aire. lo cual ıa permite que la reflexi´n que se produce en la mayor´ de los objetos o ıa sea especular y no difusa.5. como se puede observar en la figura.

que necesitan una transmisi´n de se˜al cont´ o n ınua. o a Existen b´sicamente 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 refleja. para volver de nuevo al receptor. a . Observar como el l´bulo central abarca un ´ngulo de ≈ 30o . FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS11 Figura 1. en lugar de emitir pulsos.5: Energ´ emitida por la onda ultras´nica en todas las direcciones ıa o del entorno. Los sensores basados en la medida del desplazamiento de fase.CAP´ ITULO 1. Esta t´cnica e est´ bastante relacionada con la anterior. Los sensores basados en un radar de frecuencia modulada.

los par´metros importantes para llevar a a cabo la medici´n son la velocidad del sonido en el aire. o por interacci´n de la onda con la superficie en la que debe reflejarse. o Velocidad de propagaci´n de la onda: Para las aplicaciones de rob´tica o o m´vil. Sensores basados en el tiempo de vuelo La mayor parte de los sensores usan esta t´cnica. de las deficiencias en el circuito temporizador. puede obtenerse directamente de la salida del sensor. estos sistemas mantienen una buena precisi´n. est´ muy influenciada u a por la temperatura y en menor medida por la humedad.5. puede ser totalmente ignorada. ıa o Por lo tanto. donde la velocidad del sonido. viene de su naturaleza directa de la medici´n. y el objeto que ha reflejado la onda. o . y por lo o a a tanto hagan que esos objetos parezcan m´s pr´ximos. las variaciones en la velocidad de propagaci´n de las ondas electroo o magn´ticas. El tiempo medido es un representaci´n de la distancia existente entre el o dispositivo medidor. debido a esto. o siempre y cuando el obst´culo que se analiza presente un eco fiable. a partir del cual se inicia la o detecci´n de la onda. El pulso de energ´ con e ıa el que se lleva a cabo la medida.1. Incertidumbre de la detecci´n: Estas variaciones vienen motivadas o por la distinta reflexi´n de las ondas en distintos tipos de objetos. y del hecho de que un mismo dispositivo puede actuar tanto como o generador. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS12 1. como de uno de energ´ ´ptica. debido a la nula distancia existente entre emisor o y receptor. A continuaci´n se o o incluye una breve descripci´n de cada uno de estos problemas. lo que hace que los sistemas de detecci´n respondan de forma m´s r´pida ante los primeros. en cualquier caso. Algunos o las reflejan con una intensidad mayor que otros. puede provenir tanto de un generador de ultrasonidos. es a o muy importante la selecci´n del valor umbral. La distancia al objetivo. de las variaciones en la velocidad de onda o transmitida. a Las fuentes de errores en la medida. Sus desventajas. y no es necesario realizar ninguna suposici´n o sobre si las superficies son planas. vienen fundamentalmente de la imprecisi´n de la medida del tiempo. ni sobre la orientaci´n existente entre estas o y el sensor. como receptor. vienen del hecho de que no se puede llevar a cabo un esquema de triangulaci´n. Por este motivo.CAP´ ITULO 1. La ventaja de estos sistemas. o uno de radiofrecuencia. Este no es el caso sin embargo de e los sistemas ac´sticos. y la velocidad de la o luz.

2. La energ´ reflejada en distintas direcciones puede. se necesita una circuiter´ con temporizaciones de 3 nanosegundos.5) Donde f es la frecuencia de modulaci´n de la se˜al. el o n desplazamiento de fase se puede medir multiplicando las dos se˜ales (entrante n y de referencia mediante un dispositivo electr´nico y hallando la media sobre o . A esto se lo conoce como habla cruzada. n De esta expresi´n podemos obtener que : o d= Φ∗λ Φ∗v = 4∗π 4∗π∗f (1. en comparaci´n con la de la luz. El resto de la energ´ n o n ıa se refleja en otras direcciones. los o sistemas ac´sticos.5.4) donde Φ es el desplazamiento de fase. Conseguir ıa esto resulta muy caro. a su vez. En este caso no se emite un haz de onda ultras´nica. Para altas frecuencias. o volver reflejada a un receptor que no corresponde con el lugar desde el que fue emitida. y aparta estos sistemas de medida de las aplicaciones normales. 1.CAP´ ITULO 1. o es obserbida por la propia superficie. Para obtener precisiones de tan solo 1cm. El desplazaı miento de fase puede expresarse en funci´n de la distancia como: o Φ= 4∗π∗d λ (1. Sensores basados en desplazamiento de fase. siendo comparada con una se˜al de referencia igual a la a n emitida. tienen unos requisitos de velocidad muy inferiores a los de u sus contrapartidas basadas en la luz. λ es la longitud de onda de la se˜al emitida. requiriendo circuiter´ que responda en ıa tiempos inferiores al nanosegundo. Interacci´n con las superficies: Cuando la onda se refleja en un objeto. pudiendo as´ medir la diferencia de fase entre ambas. sino una se˜al de o n larga duracci´n hacia el objeto en cuesti´n. La velocidad a la que se transmiten las ondas electromagn´ticas. obliga a imponer en los circuitos electr´nicos unos e o requisitos de velocidad muy fuerte. Una peque˜a parte de la se˜al o o n n volver´ al detector. volver a reflejarse ıa en m´s objetos. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS13 Incertidumbre en la medida del tiempo: Debido a la relativamente lenta velocidad del sonido en el aire. y llegar finalmente al receptor siguiendo una l´ a ınea que no es recta. o solo una peque˜a fracci´n de la se˜al vuelve al receptor. d es la distancia al objeto.

CAP´ ITULO 1.6: Efecto del desplazamiento de fase . Este proceso se a ıcil expresa matem´ticamente como a 1 ∗ T →∞ T l´ ım T (sin( o 2∗π∗v 4∗π∗d 2∗π∗v + ) ∗ sin( )) λ λ λ expresi´n que puede reducirse a: o Φ = A ∗ cos( 4∗π∗d ) λ (1. Este proceso de integraci´n puede ser costoso en tiempo. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS14 dichos ciclos). realizando dos medidas a distintas u frecuencias de modulaci´n. o Figura 1. Este problema reduce el atractivo de n los sistemas de desplazamiento de fase. por o lo que se har´ dif´ con una frecuencia de muestreo alta. ya que se hace necesario mecanismos adicionales para eliminarla o bien asumir su posible aparici´n. Entre o las posibles soluciones se encuentra limitar la distancia m´xima medible a lo a permitido por el intervalo de ambig¨edad.6) esta formulaci´n para la obtenci´n de la distancia puede presentar un probo o lema de ambig¨edad de intervalo cuando la distancia medida excede la lonu gitud de onda de la se˜al modulada.

contiene toda la circuiter´ necesaria para generar la o ıa se˜al que se transmitir´. Un pulso corto de energ´ ultras´nica se ıa o genera de forma electr´nica. El sistema de medida m´s simple se compone tan solo de dos m´dulos. el a o m´dulo electr´nico. como para recibir el eco. o seg´n la temperatura del aire. y procesarlos. Esta se˜al se recibe. y el intervalo de tiempo transcurrido entre la emisi´n y la recepci´n de la se˜al. se amplifica y se env´ a un transductor.6. o o n Esta amplificaci´n llevada a cabo en el receptor. y se procesa por el n sistema electr´nico. o e La distancia del transductor al objetivo. y el transductor. y procesar la n a informaci´n obtenida de ´ste. se amplifica. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS15 1. recibir el eco. y n e vuelve al transductor. El sistema ultras´nico. Para determinar la distancia a un objeto. o El sistema se compone fundamentalmente de un transductor electrost´tico. puede determinarse por un circuito adicional que conozca la velocidad del sonido en el aire. u 1. el intervalo transcurrido entre la emisi´n o y la recepci´n del pulso ultras´nico. Descripci´n general del sistema o La determinaci´n de distancias por medio de un sistema de medici´n de o o ecos es un proceso muy simple. de tipo electrost´tico o o a o piezoel´ctrico. e El segundo m´dulo. El transductor. es la parte m´s como a plicada del sistema. y tiene que partir desde valores o de amplificaci´n peque˜os hasta subir la intensidad de la se˜al recibida en o n n varios ordenes de magnitud. a y de una peque˜a placa electr´nica en la que est´ la circuiter´ encargada de n o a ıa emitir los pulsos. enviarla al transductor. se usa tanto para emitir el pulso. recibirlos. El tiempo que ha tardado en viajar la se˜al se puede usar o n para determinar la distancia a la que est´ el objeto.6. se pueden obtener precisiones elevadas. se refleja en un objeto.1. es necesario llevar a cabo correcciones. o o Con el uso de un reloj apropiado. Si se necesita una precisi´n muy alta. se mide de forma externa. al conocer la velocidad a a la que se transmite el sonido en el aire. . La o ıa se˜al viaja a trav´s del medio 8 en general el aire).CAP´ ITULO 1. ya que debe ser de caracter exponencial (al igual que lo es la atenuaci´n del sonido en el aire).

FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS16 Para minimizar el peligro de que peque˜os ruidos confundan al sistema y n ´ste no crea recibir falsos ecos. por lo que resulta sencillo llevar a cabo funciones de control. es una l´mina recubierta de aluminio. a a Est´ compuesto por una membrana muy fina. as´ como medir el tiempo transcurrido entre ambos ı eventos. indican los instantes en los que se envi´ el pulso. 1. el sistema dispone de un integrador. El transductor. en el que e se recibe la se˜al entrante. n o y el instante en el que se recibe el eco. e Las se˜ales de salida. una l´mina recubierta de oro a a para formar el electrodo negativo de un diafragma de vac´ El electrodo posiıo.7: Transductor del sensor de ultrasonidos La se˜al no se transmite de forma lineal en l´ n ınea recta.CAP´ ITULO 1. Solo cuando a la salida del integrador se alcance n un nivel determinado se considera que se ha recibido un eco aut´ntico. sino que en lugar de esto se genera una se˜al que se extiende formando n un cono. Figura 1.6.2. La parte m´s importante del sistema es el transductor electrost´tico. que tambi´n sirve como estructura a e resonante para el diafragma. . a partir del transductor. tivo.

Medida del eco. pueden ser simplificados de una forma bastante satisfactoria. est´n unidos junto con los compoo a nentes discretos necesarios. En este instante. Al multiplicar este valor por la velocidad del sonido. o a ´ o usando circuitos integrados espec´ ıficos para realizar las funciones digitales y anal´gicas.4. estos circuitos generan una serie de pulsos a frecuencias discretas distintas. se considera e que la se˜al recibida es el eco. y a partir de ese instante pasa a actuar como un micr´fono. Cuando una se˜al es recibida por el sistema. se va incrementando en funci´n del tiempo.CAP´ ITULO 1. se activa una fuente de corriente. y teniendo en cuenta que la se˜al se ha recorrido dos veces. que va cargando un condensador hasta que alcance ´ste los 1. mientras este act´a como u micr´fono para recibir el eco. refracci´n. la ganancia del amplificador que trabaja en la recepci´n de la o se˜al. La propagaci´n de la e o energ´ ac´stica a trav´s de un medio fluido es muy compleja. La se˜al se amplifica en un transformador n incluido en la placa. para evitar la recepci´n del eco que se genera al salir la se˜al o n del propio transductor. El m´dulo electr´nico. Estos dos circuitos integrados. La componente cont´ ınua se mantiene en el transductor. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS17 1. y se genera una se˜al l´gica. se obtiene la distancia a la que se encuentra el objeto del transductor.3. 1.2V. . y la mayor parte de los factores de atenuaci´n. Mientras que el hecho de medir el eco recibido es relativamente simple. pero afortuıa u e nadamente. o o o etc. en una peque˜a placa de tan solo 2cm de ancho n y 4 de largo. n n o Para medir el intervalo de tiempo transcurrido entre las dos se˜ales hay n que recurrir a un circuito externo. o o La electr´nica del sistema de sonar est´ reunida en un unico m´dulo. reflexi´n. por medio de un condensador de almacenamiento. Cuando se activa el sistema. o Para compensar la p´rdida de energ´ de la se˜al al recorrer mayores e ıa n distancias. y si esta se˜al supera un n n nivel umbral m´ ınimo.6. algunos de los procesos involucrados en ´l no lo son. a las frecuencias con las que se trabaja est´ bastante bien estua diada. divin diendo entre dos.6. El transductor se bloquea durante unos pocos o microsegundos. adem´s de disminuir en n o a ancho de banda para disminuir los efectos del ruido.

7) donde T es la temperatura en grados Kelvin y se ve que existe una fuerte dependencia de la temperatura.5. Dejando a un lado los aspectos electr´nicos. con un sistema de medida de ecos ultras´nicos. La velocidad del sonido en el aire.6. y la distancia m´xima a la que se desee llegar con las a medidas. al trabajar con valores intermedios de la misma. humedad. a 1. y se cumplan algunas otras restricciones. se activa una fuente de corriente que empieza la carga de un condensador. e Si se necesita alcanzar realmente esta precisi´n m´xima. o En general. diez veces superior a la velocidad de descarga. n Usando una velocidad de carga de este condensador.4 ∗ ( T 1 )2 273 (1. etc. El efecto de atenuaci´n debido a o la humedad es m´ximo. Resoluci´n.CAP´ ITULO 1. depende del tipo de sistema de detecci´n empleado. el aspecto que m´s interesa o a es la relaci´n existente entre el alcance y la frecuencia de trabajo. para garantizar que peque˜os picos de ruido n consecutivos no vayan cargando el condensador. dependiendo de factores tales como la temperatura. Cuando la se˜al e o n que se recibe. se puede llegar o a alcanzar una resoluci´n del orden de la longitud de onda de la se˜al que se o n transmite. siempre y cuando el objetivo o est´ fijo respecto al sensor. y lo lleven al valor umbral en el que se identifica la se˜al como positiva. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS18 Los factores ac´sticos que m´s afectan al rendimiento del sistema de meu a dida por sonar est´n relacionados con el rendimiento del transductor. se consigue un esquema que puede alcanzar una resoluci´n de aproximadamente unos 6mm. Existe un drenaje continuo de la carga de este condensador. por supuesto. su a frecuencia de trabajo. . El o mecanismo de esta perdida es bastante complejo. es necesario conoo a cer de forma precisa la velocidad del sonido en el aire. puede ser determinada de acuerdo con la expresi´n: o v = 331. supera un umbral determinado. o En estos sensores se usa una sencilla t´cnica de integraci´n. Esto. Esta es o debida a la atenuaci´n que tiene cada frecuencia al viajar por el aire.

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 expresi´n puede aproximarse por: o v = 331, 4 + 0,607 ∗ t donde t es la temperatura en grados cent´ ıgrados. Es f´cil ver que la dependencia de la temperatura es muy fuerte, y por a lo tanto si se desea obtener una precisi´n alta, es necesario llevar a cabo la o compensaci´n. En un entorno en el que la temperatura pueda oscilar en un o rango de 60o C, la variaci´n de la velocidad del sonido llega a un 5 %. La o correci´n de este valor puede llevarse a cabo bien por el sistema de medici´n, o o o bien por el procesador que vaya a analizar los datos obtenidos. (1.8)

1.7.

Funcionamiento del sensor.

El funcionamiento t´ ıpico de un sensor de ultrasonidos viene dado por un ciclo de operaci´n que sigue los siguientes pasos: o 1. El circuito de control dispara el transductor, quedando a la espera de una se˜al que confirme el comienzo de la transmisi´n. n o 2. El circuito de recepci´n es blanqueado durante un tiempo, para evitar o que ondas residuales de la transmisi´n puedan ser interpretadas como o falsos ecos. 3. Las se˜ales recibidas son amplificadas mediante un amplificador de n ganancia variable, el cual compense la atenuaci´n del medio en aquellas o se˜ales que han recorrido una mayor distancia. n 4. Las se˜ales recibidas que superen un determinado nivel son reconocidas n como ecos, calcul´ndose 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 ecuaci´n [1.2] se o obtiene una distancia m´ ınima de ≈ 20cm. Por otro lado, la distancia m´xima a vendr´ dada por la atenuaci´n de la onda ultras´nica en el medio en el que a o o se propague (aire) y por la ganancia del amplificador que recoge los ecos. En

CAP´ ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS20 los sensores usados esta distancia es de 10.5cm. La se˜al emitida por cada n sonar tiene una duraci´n de 300µs., 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 se˜al ultras´nica. n o Emitiendo a varias frecuencias se asegura que aunque una frecuencia se vea perturbada, las otras no lo ser´n. En la figura 1.10 se muestra un cronograma a del funcionamiento de este tipo de sonar. La apertura del cono de emisi´n de o la onda ultras´nica se calcula a partir de la expresi´n: 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 ac´stico que vibra a u frecuencias ultras´nicas . Los pulsos son emitidos en haz c´nico y apuntan o o a un objeto. Los pulsos se reflejan en el objeto y vuelven al sensor en forma de ecos. El instrumento de medida mide el tiempo de retraso entre cada emisi´n 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 f´cilmente 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 neum´ticos 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.

Configuraciones.
Configuraci´n de un solo sensor. o

Se puede usar para detecar la presencia de un objeto o calcular su distancia respecto al sistema aut´nomo un s´lo sensor de ultrasonidos rotatorio. o o El sensor se va girando pasos peque˜os, tomando varias posiciones para la n o medici´n completa del entorno(360 ). Como se mencion´ anteriormente, la o o

CAP´ ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS21 intensidad de la se˜al va variando para diferentes ´ngulos respecto del centro n a del sensor y no supone que la detecci´n del objeto se lleve a cabo mediante o el l´bulo m´s sensible que es el central, puede producirse la medida por uno o a de los laterales. El problema en estas zonas es que la se˜al tiene la intenn sidad suficiente para activar el disparo por flanco y por tanto estimar una medida, pero no tiene la suficiente potencia como para hacerlo pronto, con lo cual se produce un incremento del tiempo en la estimaci´n del vuelo. Como o consecuencia de esto la estimaci´n de la distancia es mayor. En resumen, el o sensor de ultrasonidos tiene un cono de recepci´n ancho y puede sobrestimar o distancias si el eco es d´bil. e Con el objeto de determinar las medidas que pertenezcan al l´bulo ceno tral (ya que son m´s fiables) y desestimar en la medida de lo posible las de a los l´bulos laterales, se propone un modelo de sensor. Este modelo de intero pretaci´n de las medidas est´ basado en el concepto de ”Regi´n of Constant o a o Depth” (RCD), que permite eliminar las estimaciones de distancia originadas por ecos d´biles. El problema de este m´todo 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 operaci´n normal de un sistema aut´nomo. o o Por tanto se puede adoptar una variante al m´todo anterior. La base de e este modelo se encuentra en la siguiente idea: Con la cantidad de informaci´n o o generada por un barrido de todas las posiciones posibles para los 360 , es imposible eliminar los ecos d´biles. Si un objeto es detectado s´lo por un e o eco, no es posible discernir si se trata de eco fuerte o d´bil. Pero si el mismo e objeto se detecta en m´s de un eco, se puede incrementar la calidad de la a informaci´n que se genera. Se puede decrementar las medidas sobrestimadas o de ecos d´biles tomando todos los m´ e ınimos de los ecos de la misma RCD. Por otro lado, la incertidumbre angular tambi´n 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 adem´s su estimaci´n de la distancia a o al objeto no difiere m´s de un valor umbral de valor 3 cm. De esta forma se a define una lectura como el agrupamiento de uno o m´s 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 d´biles 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 err´nea. En la figura 1.8 se puede ver cual es el m´todo de o e agrupamiento empleado y el cono efectivo que produce.

o 1.Como puede verse en la figura 1. solamente u o transmitir´ uno cada vez. Si se conectan en serie. La multiplexaci´n en serie se hace con alimentao ciones externas al amplificador. solamente se dispara un sensor cada vez proporcionando la medida de la distancia. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS22 Figura 1. El sensor m´s cercano al objeto proporcionar´ la a a distancia al amplificador.CAP´ ITULO 1. La informaci´n proveniente del resto de los o sensores es ignorada.8.10. .2. es posible que existan intera ferencias ac´sticas. o Se pueden conectar varios sensores de ultrasonidos a un s´lo amplificador. Si se evita la multiplexaci´n de los sensores. Como m´ximo 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 figura 1. u Si se conectan en paralelo. Este sensor se deshabilita y se habilita el siguiente. Multiplexaci´n de sensores. Configuraci´n de varios sensores. se pueden conectar todos juntos. o Cuando dos o m´s sensores se montan cerca. o Ellos se pueden conectar en paralelo o en serie seg´n se muestra en las figuras. Pero si se sincronizan todos los sensores para que a transmitan al mismo tiempo.8: Agrupaci´n de medidas. todos los sensores se disparar´n a la vez.9. a en el mismo instante.

u del robot formando un per´ ımetro.CAP´ ITULO 1. Estos pulsos pueden ser multiplexados desde un sensor a otro mediante relevos o demultiplexando mediante circuitos integrados. o bien su mismo sistema de determinaci´n del TOF. La configuraci´n en anillo es muy com´n en los robots m´viles hoy en o u o d´ Generalmente se trata de un n´mero de sensores dispuestos alrededor ıa. Anillos de sensores. El pulso o n de disparo es generado por el amplificador e inicia el ciclo del sensor. se reducir´ la probabilidad de choque dada la alta capacidad de a . Las configuraciones pueden o variar desde unos pocos sensores a 24. Cuantos m´s sensores a n o a se usen. En la mayor´ de ellos el transductor es ıa de tipo POLAROID. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS23 Figura 1. El pulso de parada es generado por el sensor e indica que un eco ha sido recibido. o Todas las se˜ales entre el amplificador y los sensores pueden conectarse n en paralelo a excepci´n de la se˜al de START y la de STOP. El o problema principal que tienen que resolver estas configuraciones se encuentra en la eliminaci´n de interferencias y ruidos entre los transductores que posee o el robot y que est´n emitiendo se˜ales peri´dicamente. con el objeto de detectar todo el entorno circundante sea cual sea la posici´n del robot.9: Conexi´n de sensores de ultrasonido en paralelo.

lleguen en forma de eco a otro robot distinto.11 se pueden ver dos casos de camino cr´ ıtico. Ruido por sensores del mismo robot (interferencias): Este tipo de ruido se da cuando un sensor de un robot recibe como eco la se˜al que ha n emitido otro transductor del mismo robot. En la figura o 1. o percibir informaci´n del entorno que posee el sistema aut´nomo. diferente del que lo emiti´. puede darse la circunstancia de que se˜ales n de un transductor de un robot. Estas interferencias suelen ser discretas en el tiempo y ocurren a distancias por encima de los 20 metros. En el primer caso se produce camino cr´ ıtico directo ya que los sensores vecinos al que emite la se˜al recogen el eco. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS24 Figura 1.10: Conexi´n de sensores de ultrasonido en serie. Este ultimo caso es n ´ el m´s complejo de resolver.CAP´ ITULO 1. Borestein defini´ ”c´mino o a cr´ ıtico” como aquel camino que lleva a cabo una se˜al de ultrasonidos n desde un sensor a otro u otros. a . 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. 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 se˜al debido a reflexiones en el entorno. pero por o o otro lado.

Como se puede ver en la figura 2. se escogen para todo sensor dos tiempos de espera Ti. Por ello. En principio o dos medidas consecutivas en ausencia de ruido deber´ ser id´nticas (no ıan e totalmente id´nticas por la naturaleza discreta de la medida). a Por eso se combina el m´todo de comparaci´n de medidas consecutivas e o con el de esperas alternadas.a y Ti.espera.espera. La primera aproximaci´n para solucionar el problema de las interfereno cias consiste en la comparaci´n de dos medidas consecutivas. De esta fore ma podemos rechazar medidas err´neas por causas externas mediante este o mecanismo. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS25 Figura 1. a Pero este m´todo no es util para solucionar el problemas de las intere ´ ferencias entre sensores. Estas esperas alternadas no son m´s 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 s´lo si son generadas por o el propio sensor y no por interferencias de otros. ya que el camino seguido por la se˜al en ambas ıa n ocasiones ser´ el mismo.b .CAP´ ITULO 1. sin m´s que limitar su diferencia a un factor Tδ . La condici´n que deben o .11: Ejemplos de posibles caminos de la se˜al que provocan interfern encias en un anillo de ultrasonidos.6 dos medidas consecutivas debidas a una interferencia tambi´n se diferenciaran en poco e en la mayor´ de los casos.

o Finalmente el disparo de los sensores se produce de la siguiente forma: Los sensores 1 al 4 son disparados en los instantes 0.espera.a − Ty. Las pruebas realizadas demostraron que con la metodolog´ adoptada ıa se produc´ entre 1 % y 2 % de errores.b | − |Tx.espera. frente al 30 % que se produc´ en ıan ıa plataformas donde no se ten´ en cuenta las interferencias. Del estudio del comportamiento de los sensores se dedujo que para este tipo de interferncia los sensores afectados son los tres vecinos pr´ximos. Esto tiene como objeto evitar las interferencias por camino directo.30 y 45 ms.CAP´ ITULO 1. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS26 cumplir los tiempos seleccionados para los K sensores del sistema aut´nomo o es que: |Tx. y ∈ 1. La selecci´n real de tiempos para la prueba se llev´ a cabo de acuerdo con o o los criterios matem´ticos que deb´ cumplir. A este periodo de disparo de cada sensor se le debe a˜adir un tiempo n de espera con valores a y b que se suman de forma alternativa a los tiempos de disparo. Los siguientes grupos de cuatro sensores utilizan los mismos intervalos.espera. Esto debe cumplirse ∀x. a sino solo en la parte delantera.a | > 2Tδ Y tambi´n que: e |Tx. Por este motivo los sensores se disparan en grupos de o cuatro emitiendo s´lo uno de ellos cada vez. x = y.a − Ty.espera.k.espera. 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 simplifica la prueba con doce sensores justificando esto en la no necesidad de llevar a cabo medidas detr´s del robot.15..a − Ty.a | > 2Tδ (1. De esta forma un sensor se dispara cada 60 ms.10) para permitir comenzar con cualquiera de los dos valores de espera. ıan .espera.espera. la estrategia descrita anteriormente se mejora con un m´todo ´ o e alternado de disparo de los sensores.espera.11) (1.b − Ty. Por ultim´.a | − |Tx.

a 1. La configuraci´n o hardware de este m´todo ser´ la siguiente. Este m´dulo de procesamiento de la se˜al puede o n trabajar como esclavo en un sistema VME o directamente conectado a un PC mediante un puerto RS-232. Cada sensor dispone e de una targeta de electr´nica propia. esquinas y v´rtices). El sensor m´s b´sico dentro de a a este grupo es un sensor para la localizaci´n y clasificaci´n de caracter´ o o ısticas del entorno 2D (planos. y da una idea de la complejidad y problemas que puede acarrear el usar un conjunto grande de sensores en un sistema aut´nomo. Configuraciones para extracci´n de caracter´ o ısticas. De esta forma el sensor en s´ ya no es un elemento aislado como se ha visto ı hasta ahora. con el objeto de reconocer alguna caracter´ ıstica del entorno (planos. sino un conjunto de dispositivos. siempre que se quieran usar todos de forma simult´nea. La se˜al de dichos sensores es manejada o n por un DSP TMS320C25.CAP´ ITULO 1. Un sistema sensorial de 32 sene ıa sores de ultrasonidos con frecuencias que van desde los 40 kHz a los 200 kHz (tambi´n se puede hacer con un solo tipo de sensores). Estos sensores consiguen una exactitud alta por medio de un gran ancho de banda de la se˜al. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS27 Esta solucci´n fue aportada por Borestein.8. o a Anillo de sensores para tratamiento geom´trico. esquinas o vertices). se llama. son las configuraciones o de varios sensores a distancias conocidas. La aplicaci´n al reconocimiento geom´trico o e del entorno se lleva a cabo mediante la introducci´n en una red neuronal o del tiempo de vuelo de la se˜al estimado de cada uno de los tres transducn tores que forman un ”plane array”. que tiene una extensi´n para 3D e o (al medir en tres dimensiones se pueden cometer menos errores al fusionar con otros sensores). Son sensores formados por varios transductores y que operan como un todo en conjunto. devolviendo la red una estimaci´n de la o distancia y el ´ngulo que formaban con el sensor central. El conjunto de arquitecturas sensoriales para ultrasonidos tienen en com´n u su dise˜o orientado a detecci´n de caracter´ n o ısticas del entorno. e Una opci´n alternativa a los anillos de sensores. llevando a cabo una adquisici´n y procesamiento o en paralelo de 5 medidas. EERPUF (Error o Eliminating Rapid Ultrasonic Firing). una estimaci´n ´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 ´ .3.

Las corrientes de aire. Sin embargo. o Presi´n del aire. s´lo o cambia un 0. Temperatura. afectando negativamente a la exactitud o n y estabilidad de la medida. Si se quiere detectar un objeto caliente. a Turbulencias en el aire. Incidencias del medio ambiente. Pero se aconseja no usar sensores de ultrasonidos con presiones de aire bajas o demasiado elevadas. de aire caliente y lograr la operaci´n satisfactoriamente. 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. Un eco puede ser producido y la se˜al debilo n itada o desviada y por tanto el eco no es recibido.9. As´ o ı.CAP´ ITULO 1. y capas de distinta densidad causan refracci´n de la onda de sonido. La velocidad del sonido en el aire depende de la temperatura. la absorci´n del sonido aumenta con el aumento de la humedad. se pueden evitar las corrientes a ıa. n e 1. o Los cambios normales en la presi´n atmosf´rica del aire no tienen efectos o e sustanciales en la exactitud de la medida. a la precisi´n de medida y la estabilidad de medida pueden deteriorarse bajo o estas circunstancias. El efecto de la humedad en la medida es virtualmente insignificante. Humedad. habr´ que a experimentar posicionando el sensor y el objeto en un plano vertical y apuntar a la parte del objeto m´s fr´ De esta manera. la m´xima distancia de medida es reducida muy poco. Sin embargo. El m´ximo rango sensible. turbulencias. Matched filtering es el proceso de estimaci´n del tiempo de vuelo que se lleva a cabo o buscando la m´xima correlaci´n entre un eco recibido y un conjunto de plantillas previaa o mente almacenadas 1 . las fluctuaciones grandes de temperatura dentro del camino que recorre la onda ultras´nica pueden causar dispersi´n y o o refracci´n de la se˜al de ultrasonidos. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS28 de la se˜al de eco y una t´cnica de ”matched filtering 1 ”en su uso.07 % para un cambio en la humedad relativa de 20 %.

lo mas comunes son los detallados a continuaci´n. Errores de origen natural La velocidad de propagaci´n del sonido en el aire depende de la o temperatura. Aunque este efecto se corrige en parte con la emisi´n o de un pulso de varias frecuencias. Se aprecia como se emiten o varios pulsos y son recibidos de igual manera varios ecos.2]) o Figura 1. devolviendo una distancia mayor de la que en realidad se encuentra.10. o 1.CAP´ ITULO 1. estos ser´n reflectantes o u a difractantes. .12: Cronograma del proceso de emisi´n y recepci´n de una onda o o ultras´nica mediante el sensor de ultrasonidos. Seg´n sea la rugosidad de los objetos. La medida de distancias con ultrasonidos est´ sometida a diferentes fuentes a de error. (Ver ecuaci´n [1. existen objetos que pueden atrapar la onda. Errores de medida con ultrasonidos. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS29 1.

Errores de origen electr´nico o El amplificador de ganancia variable que contrarresta el efecto de la atenuaci´n en el aire es aproximado por 16 niveles de amplifio caci´n. sin embargo los ecos de objetos mas lejanos necesitan mas periodos.. a . Errores debidos a la posici´n relativa Sonar-Objeto Seg´n sea la posio u ci´n relativa de los s´nares frente a un objeto. Las secuencia de gr´ficos de la figura 1. 2.13 muestra alguno de los errores a m´s comunes. si no que existen unos l´bulos laterales de emisi´n que o o pueden provocar un eco. por lo que aparentar´n encontrarse a una distancia mayor. Los ecos de objetos cercanos cargan este condensador en tres periodos.5). se pueden producir o o diferentes efectos que pueden hacer que un objeto que est´ mas cere cano aparezca como mas lejano o viceversa. o El nivel que determina si un eco es reconocido como tal se realiza mediante la carga de un condensador.CAP´ ITULO 1.. a 3. que sea inapreciable. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS30 El patr´n de emisi´n de la onda no es completamente c´nico (Ver o o o figura 1. Los puntos de discontinuidad en esta gr´fica provocan un o a error en la correcci´n.

11.11. carecen de la habilidad de detectar sobre ´reas grandes sin usar un n´mero elevado de sensores. mientras que los sensores inductivos no lo pueden hacer. o o much´ ısimas aplicaciones requieren detecci´n a larga distancia. o Los sensores de ultrasonidos proporcionan al mercado un m´todo de e detecci´n eficaz a bajo coste con unas propiedades unicas que no poseen o ´ otras tecnolog´ de detecci´n. Permiten detectar todo tipo de materiales: S´lamente los sensores o de ultrasonidos est´n capacitados para detectar todo tipo de materiales. Introducci´n. Las ventajas de estos sensores con respecto a otros son: Miden y detectan distancias a objetos en movimiento. madera.1. Usando un gran variedad de transductores ulıas o tras´nicos y varios rangos distintos de frecuencia. l´ o o ıquido. 1. y de cualquier color porque todos son detectados. .CAP´ ITULO 1. La ventaja de a u los sensores de ultrasonidos es que pueden cubrir tanto ´reas anchas como a estrechas. Aplicaciones. 1. Miden distancias sin necesidad de contacto: Se mide el tiempo que tarda el sonido desde que deja el transductor hasta que vuelve a ´l. El material detectado puede ser claro.05 %. sea a cual sea su composici´n. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS31 1.11. Gran rango de detecci´n: En la detecci´n industrial mediante sensores. Area de detecci´n ancha: Mientras que algunos sensores fotoel´ctrio e cos pueden detectar a largas distancias. Los sensores o de ultrasonidos detectan a distancias superiores a los cuarenta pies. un sensor de ultrasonidos o puede ser dise˜ado para resolver muchos problemas de aplicaci´n que no se n o pueden hacer por su coste elevado o simplemente porque no pueden resolverse mediante otros sensores. por lo e que la medida de la distancia es sencilla y exacta con un margen de error de 0. blando. Ventajas.2. s´lido. poroso.

Diferencia entre detecci´n de proximidad y meo dida del rango.CAP´ ITULO 1. El ejemplo muestra la detecci´n de o o un objeto que est´ a seis pulgadas de distancia del sensor y al rato. Detectan objetos peque˜os a distancias grandes. a est´ a 10 pulgadas. El sensor de ultrasonidos se puede usar para: La detecci´n de proximidad: Un objeto pasando por alg´n sitio deno u tro del rango de alcance presente del sensor puede ser detectado y generar una se˜al de salida.11.Las aplicaciones de detecci´n o o de proximidad incluyen la detecci´n de la presencia o ausencia de personas y o objetos de inter´s. de su material o del grado de reflexi´n. n Son resistentes frente a perturbaciones externas tales como vibraciones. 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 se˜al ultras´nica ıa n o transmitida y la recepci´n de la reflejada. al moverse. No es necesario que haya contacto entre el objeto a detectar y el sensor. El punto de detecci´n es independiente del tama˜o del n o n objeto. El sensor detectar´ el objeto que est´ dentro del cono de e a e emisi´n y reflexi´n de la se˜al de ultrasonidos. suciedad o ambientes humedos. . ruido ambiente y radiaci´n EMI. La distancia cambiante se calcula cont´ a ınuamente. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS32 Es independiente del tipo de material. o No son afectados por el polvo.3. radiacciones infrarrojas. La detecci´n de objetos situo o n o ados a grandes distancias requiere que el objeto sea grande o est´ orientado e de modo que la se˜al que refleja llegue al ultrasonido. superficie y color del objeto a detectar. 1.

a o Determinar tolerancias. Campos de aplicaci´n. La informao o ci´n proporcionada por los sensores es usada para: o Aceptar o rechazar objetos basandose en el tama˜o. n o Controlar el flujo de l´ ıquidos. o a . est´n a punto de llenarse o vaciarse. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS33 1. o M´quinas constructoras: Los sensores de ultrasonidos son usados para a el control del movimiento. la textil y otras industrias de manufactura. posici´n o nivel de n o llenado. Para tomar decisiones sobre el camino que deben seguir los paquetes basandose en el tama˜o o posici´n. Estas son comunes en a o aplicaciones dentro de la industria de transformaci´n. o Indicar cuando un objeto est´ cercano o en la posici´n debida.CAP´ ITULO 1. s´lidos o materiales granulados. Proporcionar una se˜al de alarma cuando los objetos no est´n en la n a posici´n debida. Automatizaci´n: Los sensores de ultrasonidos reducen los costes de auo tomatizaci´n proporcionando m´todos de control de tama˜os y detecci´n de o e n o posici´n o proximidad de objetos en los procesos de producci´n. o o de los metales. del caucho.4. impresi´n.11. el control del nivel o para dimensionar o detectar proximidad en m´quinas que se usan en construcci´n.

o para el control del nivel de llenado de botellas o latas. El flujo de agua de un canal abierto se mide para dar informes y establecer un control.5. o para medida de la tensi´n de una tela. un determinado nivel establecido. el procesado del acero. qu´ ımica o de pl´sticos. a Para el control de nivel de tanques (tanto de l´ ıquidos como de granulados). Informaci´n y diversi´n: se puede detecar a gente que se aproxima a o o una cabina. o se puede controlar su distancia para establecer una determinada respuesta. la fabricaci´n de gomas o o o neum´ticos. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS34 Para indicar la terminaci´n de un proceso. Derroche de agua: Se pueden medir los niveles de dep´sitos de agua o para controlarlos.11.CAP´ ITULO 1. Esto o es usado en: La fabricaci´n de papel o tela. un nivel elevado u otras condiciones. 1. Aplicaciones t´ ıpicas. o Control de procesos: Las aplicaciones comunes incluyen medida del nivel de materiales en un tanque o lata. Las alarmas pueden dispararse debido a un nivel bajo. Usado en la industria alimenticia. a .Tambi´n se puede usar la detecci´n de personas y objetos en e o determinados juegos. Se puede dar cuenta de la medida del nivel de un tanque a una computadora mediante un red de datos. o controlar la cantidad de material dispersado desde un contenedor. Para medida del di´metro de un arrollamiento. para control de enrola lado o desenrrollado.

y para medida de tama˜o (dimensionamiento). Se usa en la n industria de la automatizaci´n. o para detecci´n de partes o o claras o de cristal o vidrio. Para la detecci´n de presencia o ausencia. Para medida de tama˜o o anchura o para el empaquetamiento. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS35 Para medida de distancia. para el posicionamiento de piezas de trabajo en robots. Se usa n para el manejo de materiales o para trabajar con metales. el trabajo con metales y en equipos de o ensamblaje. . 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. seguridad y para o muchas otras cosas.CAP´ ITULO 1. detecci´n de personas.

debido a que el eco producido se debe al extremo del cono. FUNDAMENTOS DEL SENSOR DE ULTRASONIDOS37 Figura 1. La figura (e) muestra el mismo problema para el caso de o una esquina.CAP´ ITULO 1. . En la figura (f ) la medida obtenida es mayor de la real debido a los falsos ecos producidos por sucesivos rebotes. La figura (a) muestra una medida de distancia correcta. no a la parte central. En la figura (c) se obtiene una distancia mas corta de la que en realidad existe al objeto. En la figura (b) se muestra el problema de no poder determinar el ancho del objeto que refleja la onda. En la figura (d) se muestra un objeto inapreciable. ya que los ecos no regresan al punto de emisi´n. debido a la apertura del cono.13: Posibles errores debido a la disposici´n relativa entre el sonar o y el objeto.

Parte II Sistemas empotrados. 38 .

Cap´ ıtulo 2 Sistemas empotrados. 39 .

2.CAP´ ITULO 2. La red de redes ha sido un revulsivo que ha puesto el concepto de conectividad por delante de muchos otros. como o autom´viles. por lo que un punto de estudio o discusi´n importante. 40 2. Redes de ´rea local (LAN) inal´mbricas a a El aumento inevitable de los equipos con acceso a red esta demandado no solamente una arquitectura y calidad de red cada vez m´s potente y fiable a . No cuentan con o un sistema de interconexi´n capaz de producir una sinergia. lavadoras. demostrando las ventajas de un mundo global.La era Post-PC. es posible que ya nos econtremos en esta ”nueva era”. demanda cinco claves. Internet Pocos comentarios que no se hayan dicho ya caben en estas l´ ıneas. La computerizaci´n de dispositivos se encuentra en un estado muy avano zado si tenemos en cuenta que seg´n la IDC (International Data Corporation) u se fabrican 2000 millones de microprocesadores cada a˜o y que el 95 % de los n mismos va destinado a equipos electr´nicos en general y no a ordenadores o personales (PC). la era Post-Pc. Tecnol´gicamente hablano do. que se lleva el 5 % restante (Art´ ıculo de Rick Lehrbaum publicado en la revista Linux Jornal de agosto del 2000 sobre sistemas empotrados). Los cinco pilares del crecimiento de los sistemas empotrados. 2. estos dispositivos electr´nicos generales. tanto a personas como sistemas (equipos) se ha transformado en un motor de crecimiento de la humanidad. Lamentablemente. donde el acceso. SISTEMAS EMPOTRADOS. La era Post-Pc. equipos de aire acondicionado. cinco pilares sobre los que se sustenta. y posiblemente lo estemos desde hace bastante. etc. o Desde ya hace un tiempo se han comenzado a oir noticias relativas al inminente inicio de una nueva era. tan dr´sticao a mente plasmada en el mundo del PC como lo es la red de redes: Internet. 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 tecnol´giıa o ca. Introducci´n.1.

su alto grado de escalabilidad. 41 sino adem´s. etc. Todas las decisiones arquitecturales como ıa RISC vs CISC. El que GNU/Linux no sea dependiente de la arquitectura debido a la multitud de adaptaciones realizadas.CAP´ ITULO 2. su arquitectura ı abierta. Sistemas en un chip Las compan´ dise˜adoras y fabricantes de circuitos integrados desde ıas n siempre han participado en la carrera por obtener dispositivos m´s potentes. Las versiones de GNU/Linux orientadas a ejecutarse en SOCs (System On Chip). Respecto a esto ultimo. SISTEMAS EMPOTRADOS. o Poco a poco la tecnolog´ est´ logrando vencer estas barreras generando ıa a interfaces no solamente m´s sencillas sino unific´ndolas bajo un mismo asa a pecto: Interfaces WEB. as´ como en el aumento de los recursos o n ı internos del dispositivo. as´ como su mayor ventaja. es . hasta llegar a ser decisiones internas a un solo chip. En los a˜os 80 un ´ n simple controlador de disquetera conten´ m´s del doble de los componentes ıa a que hoy en d´ tiene un ordenador. modularidad y flexibilidad. GNU/Linux empotrado (sistemas abiertos empotrados) El sistema operativo GNU/Linux y su motor. a basando esta potencia en una aumento de la velocidad (que trajo consigo la consiguiente disminuci´n del tama˜o). se fueron concentrando gracias al avance de la VLSI (Very Large Scale Integration). Peque˜os servidores web comienzan a ser un cl´sico n a dentro de los sistemas empotrados actuales. siendo el avance en este campo uno de los mayores. Tipos de interfaz La multitud de sistemas computarizados que poco a poco comienzan a convivir con nosotros. todav´ queda bastante por avanzar siendo uno de los objetivos a perseguir ıa el reconocimiento del habla como interfaz universal. Firmware vs Wired. el crecimiento de soluciones inal´mbricas con el fin de evitar el a a problema f´ ısico del cableado. ya que en el mismo. Por otra parte. el avance ha sido vertiginoso. han sido los principales culpables de este avance. la licencia GPL se han transformado en una plataforma ideal para el desarrollo de sistemas empotrados. si bien estos interfaces han facilitado mucho las cosas. nos obliga al aprendizaje de multitud de interfaces siendo muchos de ellos una barrera en el uso y adaptaci´n a los equipos. Hardvard vs Princeton. no han tardado en aflorar.

Muchos de los dise˜os que se realizan no se pueden resolver con un SOC. siendo esta no funcional. televisores e incluso e o afeitadoras o aspiradoras. n Los SOC. son una realidad de nuestros d´ y los llamados miıas crocontroladores tienen gran culpa de ello. resulta significativo el hecho de que cada vez es mayor el n´mero 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. los SOC. sino que tambi´n forman parte. potencia. reproductores de discos DVD. 42 posible encontrar recursos tales como CPU. etc.4. De todas maneras. Existen sistemas embebidos para realizar los m´s variados tipos de a aplicaciones usando una amplia gama de tecnolog´ diferentes. memorias. sino arquitectural. Es decir. El ıa abaratamiento del hardware ha hecho posible la extensi´n de los sistemas o de tiempo real empotrados. En primer lugar. repetitivas o que requieran de tiempos de respuesta imposibles de alcanzar para los seres humanos. ı. con el fin de abordar el problema del dise˜o de sistemas empon trados se han caracterizado por ofrecer soluciones con una mayor capacidad de interfaz en detrimento de la capacidad de procesador o c´lculo. interfaz. el avance de los SOC. de productos e como tel´fonos m´viles. sistemas de tiempo real ya no se encuentran unicamente en sistemas de con´ trol de aviones o cohetes. ¿Para qu´ sirven? e Un sistema embebido est´ dise˜ado para realizar funciones que pueden a n ser peligrosas. control. As´ los ıa. n ya que por motivos de optimizaci´n de recursos (redundantes o sobrantes) es o necesario dise˜ar en base a circuitos integrados aislados. perif´ricos de comue nicaciones. tiene ya una frontera.CAP´ ITULO 2. Sistemas empotrados. con o . SISTEMAS EMPOTRADOS.3. control de f´bricas o sistemas de telecomunicaci´n a o complejos. a 2. a menudo invisible. Varios estudios de mercado estiman en unos 5000 millones de d´lares el mercado de los sistemas empotrados en el 2001. ıas 2. que hasta hace poco se limitaban a sistemas de alto coste y alta tecnolog´ a los productos de uso cotidiano.

Es de esperar a o que esta tendencia contin´e y que en un futuro pr´ximo se generalicen los u o protocolos de comunicaci´n con comportamiento temporal previsible. SISTEMAS EMPOTRADOS. facilitar´ previsiblemente el desarrollo o a a de sistemas empotrados port´tiles. n o Los mercados con una tendencia al alza m´s significativa. y a o n que los sistemas empotrados de tiempo real ser´n cada vez m´s comunes y a a permitir´n construir sistemas cada vez m´s aut´nomos. ya que los fallos de estos sistemas pueden causar cuantiosos da˜os materiales. e incluso en ocasiones la p´rdida de vidas n e humanas. ing´nua pero frecuente. o se ha extendido r´pidamente a otros campos de aplicaci´n. o tener al menos un atisbo de cuales ser´n sus caracter´ a ısticas m´s importantes. lo u o que hace necesario disponer de m´todos y herramientas adecuados para dee sarrollar sistemas de tiempo real complejos. seg´n estos mismos a u estudios son. Esto se debe a que hay que considerar los requisitos temporales y de fiabilidad. Otros estudios cifran el mercado de sistemas empotrados conectados a Internet en el a˜o 2005 en unos 6500 millones de d´lares. Es e de suponer que esta tendencia continuar´ durante los pr´ximos 25 a˜os. 43 una tendencia creciente. todo hace pensar que en los sistemas del futuro converger´n a una serie de tecnolog´ cuya evoluci´n hay que tener en cuenta si queremos ıas. junto o un mayor ancho de banda y tolerancia de fallos.CAP´ ITULO 2. El desarrollo de protocolos de comunicaci´n por radio. adem´s. Por este motivo. ıa El abaratamiento del hardware y el incremento de la densidad de integraci´n facilita la realizaci´n de sistemas de tiempo real cada vez m´s como o a plejos. o e . a Ingenier´ de software. Es de preveer que esta tendencia contin´e en un futuro pr´ximo. resulta preocupante la visi´n. 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 autom´vil. Los medios de comunicaci´n para sistemas de tiempo real tienen que o cumplir un requisito fundamental: es necesario poder predecir la duraci´n o m´xima del tiempo de transmisi´n de los mensajes. los de consumo dom´stico y telecomunicaciones avanzadas. a a o Por otro lado. a Algunos de estos campos son: Comunicaciones. teniendo en cuenta adem´s que a la dificultad de desarrollar este tipo de sistemas es mayor que en el caso de sistemas convencionales. Esta realidad s´lo se a o o ha manifestado recientemente y ha dado lugar a la aparici´n en los ultimos o ´ a˜os de protocolos de comunicaci´n con tiempo de transmisi´n determinista.

se dispone e ıa a de un buen bagaje de t´cnicas de dise˜o y an´lisis desarrolladas en su mayor e n a parte en los ultimos diez a˜os. Tolerancia de fallos. El desarrollo de t´cnicas e que permitan compatibilizar los m´todos de la inteligencia artificial con un e comportamiento temporal previsible dar´ todav´ trabajo a la pr´xima gena ıa o eraci´n de investigadores. La necesidad de disponer de sistemas fiables y que puedan funcionar de . ´ a a a Para poder desarrollar este tipo de sistemas de forma que satisfagan los requisitos de determinismo temporal y fiabilidad que les son inherentes manteniendo unos costes razonables. SISTEMAS EMPOTRADOS. Problemas como la sincronizaci´n de los o relojes de los diversos procesadores. pero e a la satisfacci´n de requisitos temporales presenta dificultades adicionales que o no siempre se sabe resolver de manera adecuada. aprender y emplear t´cnicas de toma de decisiones.CAP´ ITULO 2. o que hacer sistemas de tiempo real consiste o unicamente en hacer sistemas m´s r´pidos o m´s eficientes. por la diso tribuci´n f´ o ısica de estos sistemas y por la necesidad de hacer que toleren una mayor cantidad y variedad de fallos. es absolutamente necesario disponer de t´cnicas de ingenier´ de software m´s avanzadas. que se puede utilizar de manera efectiva para ´ n conseguir estos objetivos. y para aumentar su autonom´ y prestaciones. La complejidad de las aplicaciones de sistemas de tiempo real del futuro hace pensar que ser´ necesario emplear t´cnicas de inteligencia artificial para a e adaptar su comportamiento a los cambios del entorno. La necesidad de utilizar diversos computadores estar´ motivada a por la necesidad de disponer de una gran potencia de c´mputo. No obstante resulta preocupante el hecho de que en algunos desarrollos recientes de lenguajes de programaci´n o de sistemas o operativos se hayan ignorado casi completamente los avances tecnol´gicos o realizados en los ultimos a˜os en este campo. ´ n Inteligencia artificial. el determinismo temporal y la distribuci´n din´mica de la carga son algunos aspectos que deber´n ser solucionados o a a de forma adecuada. Es previsible que la mayor´ de los sistemas de tiempo real del futuro sean ıa distribuidos. En este sentido. o Sistemas distribuidos. e ıa Estas t´cnicas ya se utilizan en muchos tipos de sistemas inform´ticos. 44 de que el desarrollo de sistemas empotrados se simplifica utilizando sin m´s a los m´todos de desarrollo de software que han dado buenos resultados en e otros campos de aplicaci´n.

Para tal fin. n La previsi´n consiste en que los sistemas de tiempo real ser´n una teco a nolog´ de base para desarrollar sistemas de control empotrados con una serie ıa de caracter´ ısticas comunes. Aplicaciones de los Sistemas de Tiempo Real dentro de 25 a˜ os. Obviamente. Para ser a o capaces de realizar esta funciones. entre ellos y a a con centros avanzados de control. en el sentido que tendr´n prefia o a jadas sus funciones y las realizar´n sin intervenci´n humana directa. de forma que la recuperaci´n y el tratamiento de los fallos de hardware o y de software no impliquen una degradaci´n inadmisible del comportamiento o temporal del sistema. que se analizan a continuaci´n con algo m´s de detalle. Ser´n aut´nomos. Una de las tendencias m´s interesantes en relacci´n con a o este tipo de sistemas es la de conseguir un funcionamiento aut´nomo de los o mismos. Dispondr´n de capacidades de comunicaci´n u a o inal´mbricas.CAP´ ITULO 2. la complejidad es mayor en el caso de otros medios de transporte como los aviones. 45 manera cont´ ınua es cada vez m´s frecuente. Uno de los campos de aplicaci´n m´s importantes de los sistemas de tiemo a po real ha sido tradicionalmente el control de los medios de transporte como aviones. Los avances o que se est´n produciendo en sistemas de navegaci´n. 2. SISTEMAS EMPOTRADOS. trenes o autom´viles. En cuanto a los autom´viles. o en el funcionamiento autom´tico de o a los sistemas de control y circulaci´n de trenes. las t´cnicas de tolerancia de fallos. seg´n sea necesario. o a Transporte. aterrizaje y navegaci´n de avione. deber´n tener en cuenta los requisitos tempoa rales. o en la actualidad se est´n investigando m´todos de navegaci´n que permitan a e o . ser´ imprescindible disponer de sistemas a sensoriales avanzados que les permitan conocer el estado de los elementos del entorno. etc. lo que les permitir´ comunicarse con los humanos.5. tanto o e de hardware como de software. o Los dispositivos generales descritos tendr´n una aplicaci´n espec´ a o ıfica en distintos campos. trenes. como los que circulan en algunos aeropuertos o en algunas l´ ıneas de metro. sensores e inteligencia a o artificial permiten esperar un progreso notable en aplicaciones como el desprgue. y es previsible que se acreciente a en el futuro pr´ximo. Esto ya se ha conseguido en algunos trenes con recorridos sencillos y velocidad limitada. Tendr´n capacidades de aprendizaje y de a adaptaci´n a entornos cambiantes.

De la misma manera parece factible interconectar todos los elementos de la casa. los sistemas empotrados en loscoches deber´n a de disponer de sensores inteligentes y muy eficaces para detectar cualquier desviaci´n del sistema. No parece descabellado n pensar en la conexi´n de c´maras de seguridad o de vigilancia del cuarto de o a los ni˜os que se conectan a una red de ´rea local y que permiten desde el n a televisor digital observar lo que captan.CAP´ ITULO 2. Esto permitir´ avisar a ı a con tiempo de maniobras y adaptar el comportamiento de los veh´ ıculos a las circunstancias del tr´fico. Teniendo en cuenta la velocidad con que los avances tecnol´gicos han o cambiado nuestras vidas durante los ultimos a˜os. e La configuraci´n de los hogares es previsible que cambie en este lapsdo o de tiempo. SISTEMAS EMPOTRADOS. Actualmente se trabaja en redes de comunicaci´n para el hogar. con objeto e corregirla a tiempo. es dificil predecir c´mo ´ n o ser´ este cambio en los pr´ximos 25 a˜os. ıa y el tipo de productos a fabricar. o a La utilizaci´n de las tecnolog´ descritas en la industria permite esperar o ıas el desarrollo de f´bricas autom´ticas. La aplicaci´n de robots aut´nomos 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. Los veh´ o ıculos estar´n interconectados entre s´ y con centros de control. La capacidad de adaptaci´n y reconfiguraci´n de estos compoo o nentes podr´ permitir cambiar las caracter´ ıa ısticas del producto fabricado en un tiempo muy reducido. 46 conseguir formas limitadas de conducci´n autom´tica en autopistas. En algunos casos. Un conjunto de robots y m´quinas esa a a peciales se encargar´n de fabricar los productos con m´ a ınima intervenci´n de o operadores. o con el objetivo de interconectar los dispositivos. ´ CONCLUSION. a o n . Para o a lograr este comportamiento. esta meta se puese conseguir en un espacio de tiempo peque˜o. Aplicaciones dom´sticas. de forma que se muestre un mensaje de aviso en la televisi´n cuando tremine la lvadora o cuando el frigor´ o ıfico solicite la revisi´n de las 1000 horas. a Fabricaci´n autom´tica. De esta manera aumentar´ la flexibilidad de esta a instalaciones y ser´ posible el desarrollo de productos a la carta. a Los componentes de una f´brica podr´ estar conectados a los centros de a ıan planificaci´n mundiales de la compa˜´ lo que permitir´ ajustar la cantidad o nıa.

Parte III Fundamentos del procesador ajile80 y JStamp 47 .

Cap´ ıtulo 3 Java y el tiempo real. 48 .

El contenido software o o e de estos aparatos est´ evolucionando y creciendo. las Java Virtual Machines. ıas o 3. con una gran cantidad de e procesadores. o El mercado de los sistemas empotrados y de tiempo real ha estallado en la era ”POST-PC”. el modelo de objetos simplificado. La plataforma Java debut´ en 1995 como un entorno de trabajo y de o lenguaje server. Introducci´n. La a inexistencia en Java de los punteros y el direccionamiento autom´tico de a memoria son puntos frecuentemente citados como factores clave en el progreso del software en cuanto a productividad y robusted se refiere. control de hogao res. La plataforma o neutral. y la o gran cantidad de librer´ de clases de ejecuci´n.poniendo especial inter´s y a e esfuerzo en el desarrollo de recursos puesto que son muy escasos. es m´s f´cil de a a dominar que C++. aunque fue originalmente desarrollado como un lenguaje de programaci´n orientado a objetos para sistemas empotrados.1. los e ingenieros est´n cada vez m´s interesados y estudian m´s las tecnolog´ Jaa a a ıas va. especialmente gracias a internet. De este modo. La plataforma JAVA. Los sistemas empotrados de tiempo real est´n llegando a ser comunes en mercados como a el de las telecomunicaciones. las fuertes nociones de seguridad y garant´ y el soporte multihilos de la plataforma Java proporcionan muchas ıa. El desarrollador de sistemas de tiempo real empotrados se encuentra tambi´n con un e entorno de trabajo extremadamente heterog´neo.2. 49 3. El lenguaje de programaci´n Java. con su sintaxis o similar al lenguaje C y su modelo de objetos simplificado. y ha demostrado ser un 25 % . sistemas autom´viles e instrumentaci´n m´dica.CAP´ ITULO 3. o El lenguaje de programaci´n orientado a objetos Java. la automatizaci´n industrial. ventajas para una nueva generaci´n de sistemas empotrados de tiempo real o que funcionan a trav´s de la red. para proporcionar un entorno de desarrollo para sistemas empotrados de tiempo real m´s productivo y portable. Estas tecnolog´ incluyen el lenguaje a ıas de programaci´n orientado a objetos Java.2.1. e 3. JAVA Y EL TIEMPO REAL. El lenguaje . sistemas operativos y tipos de perif´ricos.40 % m´s efectivo.

o La ”J2ME Connected. JAVA Y EL TIEMPO REAL.3. Los interpretes de c´digo o o son lentos y requieren memoria para almacenar el c´digo del interprete. limited Device Configuration (CLDC)” especifica 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.2. La m´quina virtual Java. Este dise˜o permite n a Java ser portable puesto que los programas Java pueden ejecutarse en cualquier sistema que soporte una JVM. Un microprocesador Java es m´s eficiente desde el punto de vista del a espacio y el tiempo para ejecutar el c´digo Java. 3. JIT´s o requiere ´reas de memoria que var´ de tama˜o para soportan la traducci´n a ıen n o de c´digo y la ejecuci´n en un entorno de JIT sufre desde efectos de p´rdida o o e de memoria cach´ si se transfiere el control hasta bloqueos de c´digo no e o traducido. o o 3. se a o este modo se aumenta la seguridad y garant´ del c´digo.2. tales como tel´fonos m´biles y asistentes personae o les digitales. el aparato donde se tiene a implementado el sistema est´ aislado de la propia aplicaci´n por la JVM. las aplicaciones portables o applets compilados en c´digo de JVM o son interpretadas por una implementaci´n software JVM. Just-In-Time (JIT) o compilando al c´digo m´quina nativo o directamente son ejecutados por un o a microprocesador Java. generar c´digo como un procesador no es una tarea o f´cil por eso el conjunto de instrucciones de la JVM es complejo. as´ como invocaci´n de u ´ ı o m´todos virtuales con detecci´n de bloqueo. El ”Connected Device Configuration (CDC)” es tomado como . En un entorno de ejecucci´n e o o Java t´ ıpico.2. Adem´s. m´s 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. Sin embargo. Aplicaciones de Java en objetos m´biles. a La ejecuci´n de un programa Java es soportada por una m´quina virtual o a (JVM) estandar donde los programas son compilados. 50 Java tambi´n soporta multihilos y la palabra sincronizaci´n proporciona un e o significado particular y elegante de ejecuci´n mutua y exclusi´n.CAP´ ITULO 3. ıa o El conjunto de instrucciones de la JVM est´ basado en una arquitectura a de 32 bits con un n´mero de instrucciones unicas.

La arquitectura software de una aplicaci´n J2ME t´ o ıpica es la mostrada en la figura 3. sus fuertes nociones de seguridad as´ como su soporte de hilos m´ltiples.4. Un perfil del J2ME particularmente importante es el ”Mobile Information Device Profile (MIDP)”. Junto con estas configuraciones estandar.1: Arquitectura Software del J2ME. 3.2. 51 punto de referencia para muchos aparatos.CAP´ ITULO 3. un numeroso grupo de perfiles de mercado verticales se pueden definir a partir de J2ME. que entre otras caracter´ ısticas importantes posee la de definir un conjunto m´ ınimo de API´s gr´ficas para aparatos de a informaci´n como por ejemplo los tel´fonos m´biles. ı u . o El entorno Java. etc. tales como set-top boxes o aplicaciones de red ”plug-in-the-wall”. JAVA Y EL TIEMPO REAL. los asistentes digitales o e o personales. con su plataforma neutral. Conclusi´n.1: Figura 3. su modelo de objetos simplificado.

CAP´ ITULO 3. 3. as´ como el tradicional sistema operativo de tiempo ı real (RTOS). El tiempo necesario no tiene porqu´ ser el m´s corto. Tiempo Real. sencillamente se tiene una degradaci´n de la calidad del sistema (la imagen se queda congelada o o se pierde alg´n fotograma). Un sistema de tiempo real puede ser definido como aquel sistema inform´tico en el que la correcci´n del sistema no s´lo depende de los resultaa o o dos l´gicos de los algoritmos. eliminando la necesidad de un interprete de Java o compilador ”‘Just-In-Time”. e e a sino el adecuado: el sistema tiene que asegurar el tiempo de respuesta. Esto o combinado con la segunda edicci´n de Java (J2ME) y unas herramientas de o construcci´n. que la descompresi´n y visualizaci´n de un fichero mpeg. aumentando la seguridad. no es lo mismo controlar el sistema de frenado ABS de un coche o la inyecci´n de combustible en el motor o de un avi´n. Sin embargo. Esta tecnolog´ hardware de aJile soporta m´ltiples JVM ejecut´ndose al ıa u a mismo tiempo en la CPU. 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). JAVA Y EL TIEMPO REAL. sino que tambi´n depende del momento en el o e que ´stos se producen. hacen de esta tecnolog´ una plataforma eficiente para el deo ıa sarrollo de aplicaciones empotradas de tiempo real desarrolladas enteramente en Java. 52 proporcionan muchas ventajas para una nueva generaci´n de sistemas emo potrados y de tiempo real. Obs´rvese que hemos definido un sistema ”de tiempo real” y no un sise .3. el gran tama˜o. garantizando el espacio en memoria y porci´n de tiempo para las distintas aplicaciones Java. en el segundo caso. aJile Systems ha desarrollado una implementaci´n hardware de bajo o coste de una m´quina virtual Java que hace una realidad el uso de Java en a sistemas empotrados y de tiempo real. la perdida de alg´n plazo de ejecuci´n puede producir perdidas u o humanas o graves perdidas materiales. el comportamiento n no determinista y la pobre representaci´n de la primera generaci´n de imo o plementaciones Java en sistemas empotrados han influido negativamente en la aceptaci´nde Java en el mundo de los sistemas empotrados y de tiempo o real. No todos los sistema de tiempo real son iguales. En el o o o primer caso. El hardware de aJile proporciona un soporte directo para el conjunto de instrucciones de la JVM y el modelo de hilos (threads).

mejor para sus intenciones. . Como ejemplo pongamos una secuencia de lanzamiento de un cohete. plantas de procesado. s´lo provocar´ alg´n salto de imagen que puede o a u ser indetectable o a lo sumo inc´modo para el usuario.Sistemas de tiempo real blando Este tipo de sistemas deben mantener casi siempre la temporizaci´n. De hecho este tipo de sistemas requieren un buen rendimiento en promedio. La p´rdida de un plazo de ejecuci´n puede causar un error irrecuperable. vamos a diferenciar entre dos tipos de sistemas de tiempo real: 1. o sistemas de adquisici´n de datos.. . Las aplicaciones que cubren van desde el control a la supervisi´n de motores. Sistemas de tiempo real estricto 1. Sistemas de tiempo real blando 2. JAVA Y EL TIEMPO REAL.CAP´ ITULO 3. sistemas de telecoo municaci´n. entre otras m´quinas e instrumentos donde la temporizaci´n o a o sea un factor decisivo. Este e o tipo de sistemas debe garantizar todos los tiempos de respuesta. pero no resulta excesivamente importante. Un sistema ”en tiempo real”es lo que normalmente se entiende por un sistema r´pido. Con estas definiciones en mente. T´ a o ıpicamente todas las simulaciones y juegos interactivos pretenden dar sensaci´n o de continuidad en el tiempo de forma que cuantas m´s im´genes generen en a a menos tiempo. robots. Un ejemplo t´ ıpico es la visualizaci´n de un fichero de video : si el sistema o pierde un plazo no es grave. 53 tema ”en tiempo real”. Los sistemas de tiempo real estricto no pueden utilizar la mejou ra del rendimiento medio para compensar un mal rendimiento en el peor caso. donde los plazos l´ ımite deben ser respetados o si no el cohete puede explotar.-Sistemas de tiempo real estricto Se trata de sistemas cuyos plazos de ejecuci´n no pueden perderse de o ning´n modo. As´ que estos sistemas necesitan realizar sus plazos de ejecuci´n ı o con frecuencia. o 2. Otro ejemplo ser´ una cadena de montaje. que necesita trabajar a intervalos ıa . Una o p´rdida de alg´n plazo de ejecuci´n solamente puede causar una degradaci´n e u o o en la calidad ofrecida por el sistema. capaz de dar la impresi´n de realidad”.

Fue supuesto que ser´ usaıan dos elementos de computaci´n anal´gicos pero los digitales no fueron excluio o dos. Pero es diferente a todos ellos porque no es un sistema espec´ ıfico. Por contra. de forma que aporten alg´n sistema de control u que permita regular la posibilidad de perder algunas iteraciones en las tareas de tiempo real blando. desde el punto de vista de los sistemas de tiempo real blando. 3. 54 de tiempo precisos o en caso contrario el resultado pueden ser cientos de productos defectuosos. est´ basado en Linux. Esta propuesta mostr´ un o computador con bucles feeback y feed-forward. Linx. La primera propuesta para que un computador trabajara en tiempo real. fue publicada en 1950. RT-Linux est´ especialmente dise˜ado para trabajar como un sistema a n de tiempo real estricto. La llegada del microprocesador en los 70´s y el aumento de la velocidad de la memoria empezaron a forzar el aumento de atenci´n en los o problemas de la escritura correcta y el control fiable por computador del software. como un sistema de control. Origen de los sistemas de tiempo real. Por 1954 un computador digital e Digitrac fue usado con ´xito para proporcionar un vuelo autom´tico y para e a sistemas de control de armas.1. JAVA Y EL TIEMPO REAL. En 1960 empezaron a emerger los sistemas operativos en tiempo real para aplicaciones industriales. lo que le aporta a una compatibilidad mucho m´s variada con herramientas y programas ya a existentes. Por otro lado. Tambi´n aparecieron los compiladores de proceso e fortran. OS/9 y tantos otros.CAP´ ITULO 3. como por ejemplo tratando separadamente las tareas de tiempo real estricto (de mayor prioridad) de las de tiempo real blando (de menor prioridad). . El primer computador digital desarrollado espec´ ıficamente para control en tiempo real fue para operaciones a´reas. La clave podr´ estar en establecer distintos niveles de ıa prioridad. ¿Por qu´? Porque los ıa a e sistemas de tiempo real blando ”serios”deben dar soporte QOS (Quality Of Service: Calidad De Servicio). como hacen otros sistemas de tiempo real como VxWorks. Trata de reducir la complejidad para as´ reducir la ı impredecibilidad del sistema. RT-Linux todav´ no est´ preparado para ello.3.

CAP´ ITULO 3. La definici´n 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 definido.” n Otra definici´n alternativa es: ”Los sistemas de tiempo real leen las eno tradas de una planta (sistema f´ ısico a controlar. Esto normalmente es.” 3. 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 perif´ricos que reciben y env´ est´ e ıan ımulos. y la salida tiene que estar relacionada con ese movimiento.) y a mandan se˜ales de control a la planta en tiempos determinados para n las consideraciones operativas de la planta. por ejemplo: un robot.3. e etc. un proceso automatizado de una empresa.3. desde estaciones de trabajo que se ejecutan bajo sistemas operativos UNIX donde el usuario espera obtener una respuesta dentro de pocos segundos.2. ı El retraso entre la entrada y la salida debe ser suficientemente peque˜o n para que sea aceptable. pranticantes. Si las respuestas sobrepasan este tiempo es posible que se den degradaciones y funcionamientos extra˜os en los resultados. el u o tiempo en el que se obtiene la respuesta es significativo. Definici´n de sistemas de tiempo real. no a los tiempos limitado por las capacidades del sistema computador.” Esta definici´n cubre diferentes tipos de siso temas. desarrolladores.3. . 55 3. Clasificaci´n. tales como: vendedores. acad´micos. porque la entrada corresponde con alg´n movimiento de munu do f´sico. etc. Algunas definiciones son las siguientes: Seg´n el diccionario de computaci´n Oxford:”Un sistema en el cual. hasta sistemas de control de aviones donde se debe obtener una respuesta en un tiempo determinado y cualquier fallo o retraso puede causar la p´rdida del control y la posibilidad de la muerte e de los pasajeros. JAVA Y EL TIEMPO REAL. o La definici´n de sistemas de tiempo real parece variar entre los distintos o grupos. 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. una c´mara digital.

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”). u Hard real-time: Soft real-time: . 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. que tienen que realizarse no en un tiempo determinado o intervalo establecido. Acciones. se le devolver´ la tarjeta). y entonces las operaciones llevadas a realizar al computador se realizan de acuerdo a un tiempo planificado. Las limitaciones de tiempo en los sistemas de tiempo real. JAVA Y EL TIEMPO REAL. o Un m´todo interactivo (”interactive based”) que consiste en definir de e una manera menos fuerte el parentesco entre las acciones del computador y el sistema. Un cajero autom´tico tiene una sincronizaci´n interactiva puesto que requiere la a o respuesta interactiva del usuario que debe introducir su clave y operaciones que desea realizar para obtener informaci´n sobre el estado de o su cuenta o realizar una transacci´n. que consiste en preguntar peri´dicamente a los sensores o si alguna acci´n es requerida. Algunos sistemas o usan el polling.3. Los sistemas basados a en eventos(”event based”) emplean normalmente interrupciones para informar al computador de la acci´n que es requerida.CAP´ ITULO 3.4. 56 Se debe definir la sincronizaci´n entre los procesos externos y las acciones o internas del computador. apagar un congelador cuando su temperatura baje de una m´ ınima establecida y encenderlo cuando la temperatura supere el m´ximo establecido. pero en respuesta de alg´n evento en cuyo caso es u llamado a ser ”event based”. Los sistemas de tiempo real se pueden dividir en dos categor´ principales ıas seg´n sus limitaciones de tiempo. a 3. El requisito es que se complete en el ordenador un conjunto de operaciones dentro un tiempo predeterminado. Por ejemplo.

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 Specıa ification for Java (RTSJ)”.1.4. Real-Time Java. Los principales o problemas fueron: El controlador de eliminaci´n de basura de la memoria din´mica pod´ o a ıa interrumpir la ejecuci´n de aplicaciones por intervalos de tiempo imo predecibles.2. Los sistemas de tiempo real se encuentran en aplicaciones de sistemas empotrados y en otras aplicaciones que requieren un determinado comportamiento en el tiempo. a La planificaci´n de hilos. a .4. Este requerimiento llevo a la formaci´n de un o grupo experto dentro de ”Java Community Process(JCP)” para realizar el proyecto de la especificaci´n de Java para tiempo real. La debilidad de Java para las aplicaciones de tiempo real. o 3. JAVA Y EL TIEMPO REAL. 57 3. Hab´ algunos puntos en la especificaci´n del lenguaje Java que frenaron ıa o su adopci´n dentro de la industria del control de tiempo real. han impedido la adopci´n de Java en la industria de los o sistemas de tiempo real y aplicaciones software. Esta limitaci´n fue entendio da tanto por la industria como por las instituciones acad´micas. Esto era debido al comportamiento no determinista del recolector de basura. pero esto no lo cumplen todos los servidores donde est´ disponible la JVM. paro ticularmente el comportamiento no determinista del recolector de basura y el manejo de hilos. o Algunas de las caracter´ ısticas de la especificaci´n del lenguaje Java. el sistema operativo debe ser capaz de planificar en tiempo real. Introducci´n. 3. Como la JVM usa el planificador del servidor o del sistema operativo.CAP´ ITULO 3.4. que pod´ elegir donde borrar los objetos de la ıa memoria din´mica y en un orden arbitrario.

58 Es vital en las aplicaciones de tiempo real tener un planificador de eventos totalmente determinista. no que lo haga de manera indeterminada. versi´n o entorno Java en particular.O. los principios de W.4.A(Write Once Run All) deben ser perseguidos en la mayor medida posible. o o Cualquier modificaci´n no debe incluir una extensi´n del lenguaje que o o conduzca a un requerimiento de modificaci´n del compilador y de aqu´ a o ı un aumento de la probabilidad de descargas frecuentes. El riesgo asociado a estos dos aspectos superaba las otras ventajas de Java. bajo ninguna circunstancia. impedir o la ejecuci´n del software que no est´ escrito correctamente en tiempo o e real. Principios a seguir.4. manejo de eventos o as´ ıncronos. sincronizaci´n y reparto de recursos. 3.CAP´ ITULO 3. La principal caracter´ ıstica que debe perseguirse es la previsi´n incluso o en el costo de una actuaci´n de prop´sito general. o manejo de memoria. en cualquier implementaci´n de una JVM. n o Hay siete ´reas funcionales en las que Real-Time Java presenta intensificaa ciones: planificaci´n y despacho de hilos (thread Scheduling and dispatching). El ”Real-Time Java Expert Group (RTJEG)” estableci´ un conjunto de o principios a seguir por los dise˜adores de la RTSJ.R. Dise˜ o e implementaci´n.3. terminaci´n de hilos y acceso o a la memoria f´ ısica. no debe. La especificaci´n debe tambi´n incluir las caracter´ o e ısticas actuales de los sistemas de tiempo real y permitir la inclusi´n de otras m´s avanzadas o a en el futuro. 3. JAVA Y EL TIEMPO REAL. . o Cualquier modificaci´n.4. Estos son: n RTSJ no debe incluir ning´n requerimiento que limite su implementaci´n u o a una plataforma. o Incluso cuando la dificultad en la especificaci´n de los par´metros de o a tiempo real para una plataforma independiente sea reconocida. transferencia de control as´ ıncrono.

o Terminaci´n de hilos: Se define un medio para permitir la termio naci´n ordenada de un hilo. o Manejo de memoria: Tanto las ventajas como los inconvenientes del sistema de recolecci´n de basura son conocidos. dos o m´todos simult´nmeos son usados para cubrir los inconvenientes : se e a introduce un nuevo r´gimen de memoria sin recolecci´n de basura y e o tambi´n se dispone de interfaces estandar para instalar recolectores de e basura de tiempo real. Estos controladores son ejecutados como hilos de tiempo real. Es f´cil programar un sistema estructurado de conducci´n de eventos. Adem´s. a Manejo de eventos as´ ıncrono: Los objetos de sucesos as´ ıncronos son a˜adidos para representar eventos as´ n ıncronos que se espera que ocurran. First Output) se define como base de la politica de planificaci´n. La creaci´n o de hilos es lenta. o o Por tanto. cada suceso es atendido por un hilo creado por ese suceso particular y planifica los atributos para cada suceso ayundando as´ al ı planificador. Sincronizaci´n y reparto de recursos: La emulaci´n de m´xima 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. Estos objetos son entonces mapeados por controladores de eventos as´ ıncronos para que puedan ejecutarse siempre que ocurra un suceso. Usa el mecanismo de sucesos as´ o ıncronos . Es un servicio de colocaci´n de recursos. Por defecto se proporciona la herencia de prioridades con una prioridad m´xima opcional.CAP´ ITULO 3. Por lo tanto. El tiempo desde que ocurre un suceso hasta que ´ste es e atendido es un overhead en la sensibilidad de tiempo real. o a un conjunto de de caracter´ ısticas y una API son definidas para soportar una variedad de otras pol´ ıticas y mecanismos de planificaci´n. El control de e o transferencia as´ ıncrono es un mecanismo que permite a un hilo lanzar una excepci´n en otro hilo. a o tanto que. y los prograo madores de tiempo real evitan la colocaci´n de recursos cuando est´n o a interesados en el tiempo. JAVA Y EL TIEMPO REAL. 59 La planificaci´n y despacho de hilos: Un esquema fijo y previsor o con una prioridad de orden de entrada tipo FIFO(First Input. se a˜ade una excepci´n de interrupci´n as´ n o o ıncrona para especificar donde puede un m´todo recibir esta excepci´n. Transferencia de control as´ ıncrona: La sem´ntica del m´todo de ina e terrupci´n (interrupt()) se expande permitiendo que ocurra en cualquier o lugar del c´digo en vez de s´lamente en ciertos bloques de llamadas.

the RTSJ was just finalized in November 2001. esmertec. Many are considering RTSJ support for the future (in the next 12-18 months). In fact. Since these companies already support some real-time capabilities. for example – none of these vendors support RTSJ in their products. most embedded VM and hardware vendors seem to focus most of their efforts on J2ME and have no plans to immediately jump on the real-time Java bandwagon. La ”Real Time Specification for Java”. NewMonics. Although many companies offer real-time solutions for Java – aJile Systems. Esto permite la comunicaci´n directa entre hilos y perif´ricos en Java de tiempo real.CAP´ ITULO 3. asynchronous events. interruptible nonblocking I/O (input/output). o o o . RTSJ includes such features as real-time threads. PersonalJava. 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. 60 para ejecutar el m´todo interrupt() del hilo. La naturaleza din´mica del entorno de ejecuci´n Java es una de las m´s a o a potentes dentro de los entornos de trabajo tradiccionales y el servidor mundial.4. and timers. Whether RTSJ survives and where it will fit in with other Sun offerings remains to be seen. Past experiences in this area suggest that Sun has a tough hill to climb to succeed with RTSJ. scheduling. and Zucotto Wireless. But order of submission doesn’t imply order of completion. but most are waiting to see market demand before committing to this new API. RTSJ joins the ranks of aborted efforts such as EmbeddedJava. and PicoJava as well as successful efforts such as J2ME (Java 2 Platform. Sun is not providing a reference implementation of the specification – that task was delegated to TimeSys. Micro Edition). 3.5. One of many Sun attempts to address embedded applications. Sin embargo el no determinismo introducido por la recolecci´n y elimio naci´n de basura. la resolucci´n de las clases en tiempo de ejecucci´n. o e The Real-Time Specification for Java (RTSJ) holds the distinction of being the first Java Specification Request (JSR 1) of the 171 submitted to the Java Community Process (JCP) so far. they see no compelling reason to immediately support the new RTSJ. La nueva definici´n sem´ntie o a ca del hilo permite la correcta terminaci´n del hilo. JAVA Y EL TIEMPO REAL. o Acceso a la memoria f´ ısica: Se define un nueva ´rea de memoria a que puede ser mapeada en una direcci´n f´ o ısica fija. although many other specifications have passed through the JCP. access to physical memory. etc.

sincronizaci´n y reparto o de recursos. 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 especificaci´n de Java para tiempo real (RTSJ).CAP´ ITULO 3. 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”). la RTSJ define nuevos tipos de ´rea de memoria separados a del ´rea de memoria din´mica de Java. pero desde que estos objetos no residen en el ´rea de memoria din´mica de a a Java. transferencia de control as´ ıncrono. el acceso a los objetos no sufre de las pausas debidas al no determinismo por recolecci´n de basura. La RTSJ proporciona o intensificaciones para la especificaci´n del lenguaje Java y la especificaci´n o o de la JVM en siete ´reas clave: programaci´n y despacho de hilos (thread a o Scheduling and dispatching). terminaci´n de hilos y acceso a la memoria f´ o ısica. Por eso. 61 es un verdadero problema para los desarrolladores de tiempo real. o . JAVA Y EL TIEMPO REAL. manejo de eventos as´ ıncronos. Como ejemplo de estas intensificaciones. manejo de memoria. incluyendo la ”InmortalMemory” y a a la ”ScopedMemory”.

Cap´ ıtulo 4 Fundamentos del procesador ajile80 y JStamp 62 .

la ca´ de velocio ıa a ıda dad es significativa..class. el microprocesador aj-80. Las ventajas son que incluye una m´quina y una plataforma independiente del computador en el que se use el a programa. o Java es un lenguaje que necesita ser interpretado por una m´quina virtual a local para poder ser ejecutado en un computador. Esto significa que el c´digo Java es directamente interpretado por el procesador. 4. el c´digo de bits usado por el procesador ajile. en este o caso. ´ o a El hecho de que exista un paso intermedio como es la m´quina virtual a tiene sus ventajas y sus inconvenientes.1. cuando se tiene la a m´quina virtual espec´ a ıfica para la computadora que se est´ usando. y un bloque de entrada/salida. RAM. JStamp o es distinto que los dem´s computadores. ¿ Qu´ es JStamp ? e JStamp es un nuevo producto de Systronix. En el JStamp. Esto es lo que hace a Java una m´quina y plataforma independiente. Pero esto no es pr´ctico porque o a entonces se necesitar´ distintas m´quinas virtuales para distintas aplicaıan a ciones. que es traducido m´s tarde en c´digo binario por el programa JemBuilder y cargado a o en la placa JStamp usando otro programa llamado Charade. Como la mayor´ de los computadores.. La mayor desventaja es el factor velocidad. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP63 4. La mayor diferencia es obviamente el a . Por eso.2. u Para cualquier programa dado. alimentaci´n. a o a El c´digo de bytes es b´sicamente el lenguaje de 0´s y 1´s que constituye el o a unico nivel de comunicaci´n que entiende el hardware de una m´quina. ıa ROM.CAP´ ITULO 4. es un e computador. es el c´digo o o de bits producido por el compilador de Java en un archivo . Este paso podr´ eliminarse si el procesador fuera capaz ıa de interpretar el c´digo Java directamente. el c´digo a o Java ser´ interpretado por esa m´quina virtual y el programa se ejecutar´ sin a a a ning´n tipo de problema. el compilador basicamente toma el programa escrito en lenguaje de alto nivel y lo traduce en c´digo ensamblador. o Este c´digo en lenguaje ensamblador es proporcionado al ensamblador que lo o transforma r´pidamente en c´digo de bytes y ser´ ejecutado por el hardware. tiene una CPU. Introducci´n a Java. Aparte de esto. en simples t´rminos. En programas grandes donde el c´digo Java es traducido v´ la m´quina virtual.

o La CPU del JStamp es el procesador aJ-80 de aJile Systems. Este no debe ser confundido con los sistemas que obligan a programar en Java.372MHz. 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. No existe o tiempo de compilaci´n. En JStamp. El hecho de que Java sea el nivel nativo hace que JStamp sea muy r´pido.3728MHz o tan r´pido como la m´xima frecuencia de operaci´n (80MHz). Figura 4. o ıas El aJ-80 tiene un n´mero de entradas/salidas configurables. El c´digo de la m´quina virtual de Java o a estandar es el conjunto de instrucciones nativo. El aJ-80 se programa enteramente en Java. No es necesario la existencia de memoria n extra para almacenar el interprete de Java. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP64 tama˜o (1 pulgada por 2 pulgadas).1: El M´dulo del JStamp. la m´xima velocidad del reloj interno ser´ de 73. ni de ejecuci´n o cualquier tiempo o o o de traducci´n del c´digo Java en c´digo ensamblador de la m´quina.Esto o o o a lleva al Slogan del JStamp. Esto o permite al JStamp ser muy peque˜o. que dice: JStamp is real fast. ni de generaci´n. aunque se ejecuta en el nivel nativo. El aJ-80 puede trabajar a una frecuencia m´xima de operaci´n de 80MHz.72MHz.CAP´ ITULO 4.real Java. Esto significa que en JStamp se ejecuta real Java (JStamp ejecuta el c´digo byte de Java). pero quizas su diferencia m´s significativa n a es que se programa enteramente en Java. Es posible configurar el JStamp a o para funcionar a distintas velocidades del reloj. a no existe una capa interprete entre el c´digo Java escrito y el procesador. real small. tan lento como 7. un controlador de interfaces perifericas en serie (SPI). tres con- . Java es el nivel nativo. esto es una a caracter´ ıstica a tener en cuenta frente a la duraci´n de las bater´ usadas. Debido a a a o que el material usado en el JStamp tiene una frecuencia de 7. Este incluye: u dos UARTs.

El aJ-80 hace del JStamp su propio due˜o n en un circuito emulador. Otra versi´n del o JStamp. contiene 2MB de memoria ROM flash. Debido a esto. Esta RAM no a tiene bater´ propia y su contenido se pierde cada vez que se retira la aliıa mentaci´n. La fuente de alimentaci´n y el JStamp son un regulador de tensi´n camo o . El JStamp tiene 512 Kbytes de memoria ROM flash. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP65 Figura 4. o tadores de 16 bits muy vers´tiles. El JStamp tiene 512 Kbytes de memoria RAM est´tica. Normalmente se carga el programa en la memoria ROM flash. los programas no tienen que ser cargados en la o RAM excepto durante los procesos de desarrollo. Tambi´n e se usa para almacenar ficheros del sistema local. Es r´pido y potente proporcionando la habilidad de depurar el programa a mientras se ejecuta en un circuito.CAP´ ITULO 4. y puertos de entrada/salida de prop´sito a o general. la variante llamada JStamp-Plus. Esta es usada para cargar y depurar programas en el JStamp. El aJ-80 tambi´n incluye una interfaz de texto estandar conocido como la e interfaz JTAG.2: La estaci´n de desarrollo JStamp. Esta memoria extra es la unica diferencia entre el JStamp y el JStamp´ Plus.

CAP´ ITULO 4. El m´dulo JStamp tiene tambi´n un LED. o JStamp es un procesador con una caracter´ ıstica distintiva: Java es el nivel nativo. En las o versiones posteriores. En la primera versi´n o e o del JStamp. aunque por defecto se comporte como un indicador de alimentaci´n. Estos pines de entrada/salida son conectados con las patillas de entrada/salida del aJ-80.3 voltios para el ciro cuito de la placa de desarrollo y proporciona 100 miliamperios de 3. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP66 Figura 4. este LED era solamente un indicador de alimentaci´n. Esto significa que no existe un interprete entre el c´digo Java escrito o . El regulador de tensi´n cambiante genera 3.3 voltios de tensi´n continua para ser usados por el circuito de salida. La alimentaci´n del JStamp puede variar entre 5 y 14 voltios de o cont´ ınua. se puede controlar este LED via software. o biante.3: Esquema de la estaci´n de desarrollo JStamp. o Casi todos los 40 pines del JStamp pueden ser usados como entrada/salida.

3. deben por lo tanto. 4. Esto implica la necesidad de otro u e computador para escribir los programas en Java y posteriormente cargarlos en ´l. JEMBuilder Las librer´ de los procesadores aJile no soportan la carga y linkado ıas din´micos. el JStamp ıa no tiene teclado ni ning´n otro perif´rico. Puesto que el JStamp usa como microprocesador el aJ80. El desarrollo software para el JStamp implica escribir programas en Java. 4. Al contrario que con la mayor´ de PC´s y estaciones de desarrollo. como la de donde se carga el programa y c´mo se va a reiniciar el sistema. Software de desarrollo necesario para el JStamp. en su propio hilo de ejecuci´n y con sus propios ”event handlers”. o JStamp puede ejecutar m´s de tres millones de bytes de c´digo Java por a o segundo a 74MHZ. es su principal tarea.3. el proceso a seguir es el mismo que se sigue con cualquier computador que use un procesador aJile. El JStamp se puede configurar como se o desee mediante esta herramienta. Adem´s puede funcionar durante 24 horas con una bater´ a ıa de 9V. e El aJ-80 soporta la ejecuci´n de m´ltiples aplicaciones a trav´s de ”m´ltio u e u ples JVM´s”. Los programas cargados en los procesadores aJile. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP67 para ´l y el silicio. Aunque el JEMBuilder se usa tambi´n para configurar varias opciones e del hardware dentro del aJ-80. en el JStamp hay que seguir un proceso que o consta de dos pasos. Esto es lo que hace el JEMBuilder.CAP´ ITULO 4. e Para cargar los programas previamente escritos usando Java en otro computador o estaci´n de trabajo. Para ello se necesitan dos herramientas que son proporcionadas por aJile: JEMBuilder y Charade. tener todas sus clases linkadas previamente antes de ser ejecutados. Cada aplicaci´n se ejecuta de manera determin´ o ıstica .1. Lo que se obtiene del JEMBuilder es un . y por tanto en a el JStamp. Estas dos son unas herramientas muy sofisticadas que est´n en cont´ a ınuo proceso de integraci´n y o mejora.

monitorexit. El procesador aJ-80. 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. varios otros ficheros utiles para la depuraci´n y el gui´n que debe seguir el Charade para cargar ´ o o el fichero en el JStamp. eliminando la o o necesidad de un sistema tradicional que opere en tiempo real (RTOS). las primiıa o a tivas de threads de Java (como: wait. e incorporando las o primitivas de threads de Java. yield. opera directamente desde el c´digo Java. 4.3. el aJ-80 requiere menos memoria y menos tiempo de ejecuci´n en computaci´n que un microprocesador convencional o o que ejecute una aplicaci´n en c´digo Java. Al contrario que los microprocesadores tradicionales que deben consumir potencia de computaci´n para convertir el c´digo de instrucciones Java en o o el lenguaje nativo del procesador. Charade La herramienta Charade es usada para transferir el fichero binario generado por el JEMBuilder al JStamp. o El aJ-80 es un procesador de bajo consumo basado en tecnolog´ Java. Usando el c´digo Java como conjunto nativo de instrucciones. ıa Ha sido dise˜ado especialmente para portar c´digo Java para aplicaciones en n o el mercado de sistemas empotrados. Introducci´n. o ıa o desde el ´rea de trabajo a aparatos remotos y m´biles. 4. notify. Adem´s.4.4. A este cable se le llama.CAP´ ITULO 4. etc. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP68 fichero binario apropiado para ser cargado en el JStamp. la l´ ınea de procesadores aJile.2. ´ . 4. o o Esto muestra la ilimitada extensi´n de la tecnolog´ Java en computaci´n. Tambi´n es usada para una depuraci´n e o simb´lica y a muy bajo nivel del c´digo que se est´ ejecutando en el JStamp. ejecut´ndose en todos a o a ellos las mismas aplicaciones. lo que puede ser eficientemente actualizado y realizado su mantenimiento desde una unica fuente. monitorenter. cable JTAG.) son implementadas como extensi´n del c´digo del aJ-80.1. basada en tecnolog´ Java.

El aj-80. e o juegos. o n 4.4. 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 procesador tambi´n integra 48 Kbytes e de memoria RAM on-chip.. La arquitectura Java de aJile fue dise˜ada con un enfoque n hacia sistemas empotrados y de este modo maximizar la cantidad de datos de ejecucci´n que puedan estar en la memoria ROM y eliminar la modificaci´n o o de la corriente de instrucciones de ejecuci´n (quickizing). FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP69 El aJ-80 hace posible una de las primeras metas del tiempo real 100 %. aJile Systems fue formado para satisfacer la necesidad del desarrollo de aplicaciones orientadas a objetos para sistemas empotrados de tiempo real de bajo consumo. o . sin necesidad de interprete. junto con la SRAM y memoria Flash . tres timer/counters de 16 bits y veintidos entradas/salidas de prop´sito general. el JStamp. proporciona a los dise˜adores de sistemas un procesador de 32 bits a un bajo coste. El aJ-80 ha sido incorporado dentro de un m´dulo de tecnolog´ Java o ıa en tiempo real. aumentan el rango de aplicaci´n de Java para dise˜os empotrados. La arquitectura Java para sistemas Java empotrados de tiempo real eficientes. el suministro de alimentaci´n y otro o circuiter´ adiccional confinado en un peque˜o espacio (JStamp) y f´cil de ıa n a usar. es decir. al igual que su hermano el aJ-100. PDA´s. o Los procesadores aJile basados en tecnolog´ Java soportan la versi´n ıa o actual de ”‘Real -Time Specification for Java (JSR-001)”desarrollada por la ”Java Community Process”. los procesadores basados en Java. el aJ-80 es un procesador revolucionario. Esto. dual UARTs. y un controlador de memoria.2. presentan como atractivo especial una m´quina de procesamiento Java de 32 bits que implementa una ”Java a Virtual Machine”de tiempo real. Esta soluci´n 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: tel´fonos m´biles.CAP´ ITULO 4.. con un n bajo consumo y ejecuta Java como conjunto de instrucciones nativo.

a 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP70 Figura 4.3. JEM2 soporta buses de datos externos de 8.1 (JTAG). Su dise˜o como n pacto y su bajo consumo le hacen muy conveniente como microcontrolador en ´reas de aplicaci´n tales como las telecomunicaciones. El aJile System JEM2 es un microprocesador de bajo consumo(1MW/MHz) de segunda generaci´n que se ejecuta directamente en Java. o Esta extensi´n de instrucciones no est´ disponible para el c´digo bajado o a o din´micamente y que es poco fiable.CAP´ ITULO 4. 16 y 32 bits y proporciona una inerfaz de test estandar IEEE 1149. a La arquitectura aJile tambi´n define un conjunto de instrucciones extendido e por la intrefaz hardware f´ ısica y otras tareas de programaci´n de sistemas. Con el JEM2. los desarrolladores de sistemas empotrados y de tiempo real pueden . producciendo el cambio extremadamente r´pido entre hilos.4. The JEM2 direct execution Java microprocesor core. La CPU de aJile soporta directamente el modelo de hilos de Java en su hardware.4: aJ-80. automatismos y a o veh´ ıculos industriales.

Adem´s. o ´ o incluyendo la detecci´n de bloqueos. operaciones como carga de clases son manejadas en software.5: Asignaci´n de pines en el aJ-80. o . con sus probadas ventajas en productividad. pero se ha obtenido una soluci´n. el JEM2 es 20 veces m´s eficiente desde el punto de a a vista del consumo por unidad de ejecuci´n Java que otras implementaciones o empotradas Java. o usar el lenguaje orientado a objetos Java. Los unicos dos c´digos que atrapan inmediatamente al software ´ o son multianewarray y athrow. La arquitectura del J2ME es la mostrada en la figura 4.CAP´ ITULO 4. para crear aplicaciones que sean tan eficientes en espacio y tiempo como si estuvieran escritas en lenguaje C para otras plataformas microcontroladoras. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP71 Figura 4. Obviamente.6: El JEM2 core implementa todo el conjunto de instrucciones de la JVM en el silicio. la ejecuci´n o o de c´digo como invokevirtual es hecha como una unica instrucci´n JEM.

4.Esto significa.CAP´ ITULO 4. o .4. la CPU del ajile implementa las rutinas de sincronizaci´n y programaci´n b´sicas de los hilos en el microc´dio o a o go. Una de las caracter´ ısticas especiales de la arquitectura aJile es el soporte hardware para hilos Java en tiempo real. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP72 Figura 4. el primero. Las operaciones elementales como la llamada a los m´todos de las e instrucciones requiere la adquisici´n de un bloqueo si el m´todo del objeto es o e declarado como synchronized.lang. que la primitiva yield() de la java.Thread es una sola instrucci´n. por ejemplo. 4. Soporte hardware para hilos de Java en tiempo real. Con esto obtenemos varios beneficios. De este modo.6: La arquitectura del J2ME core. El uso de control concurrente est´ profundamente arraigado en la especificaci´n de la m´quina virtual Java a o a (JVM).

El hilo del recolector de basura es muy r´pido. dura menos de a un microsegundo para el aj-100 a 100MHz. no es necesario el uso de un ensamblador. el entorno de desarrollo Java no tiene la primitiva free. el entorno aJile. y los desarrolladores pueden crear implementaciones Java con las clases del aJile en un entorno de simulaci´n. Manejo de memoria. Adem´s el uso de a hilos m´ltiples es extremadamente r´pido en la CPU del aJile. el hardware de aJile soporta la consulta peri´dica de hilos o y tambi´n implemente la inversi´n de prioridades para el control de estos. lo que implica un ahorro de memoria. adem´s el reclamo de memoria es autom´tico. de este modo es m´s sencillo el mantenimiento y comprobaci´n. e o 4. Adicionalmente. . e o Con este adelanto. 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.4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP73 que la CPU del aJile no requiere el kernel de un sistema operativo de tiempo real (RTOS). implementa instrucciones de localizaci´n de memoria o e implementa un recolector de basura muy simple en su software.4.6. Esto se puede hacer gracias a la herramienta de generaci´n de aplio caciones JEMBuilder. incluye los sustitutos para la mayor´ de los m´todos nativos del sistema de ejecuci´n ıa e o Java. Sin embargo. Un entorno de ejecuci´n Java escrito enterao mente en Java. El resultado es que todo el c´digo ejecutable est´ eso o a crito en Java. La especificaci´n de la m´quina virtual de Java incluye varias instruco a ciones para el manejo de memoria. que proporciona la sustituci´n de ciertas llamadas a o m´todos con c´digo aJile. Una caracter´ ıstica especial unica del entorno de ejecucci´n de aJile es ´ o que este procesador es programado enteramente en lenguaje Java.5. Por a a tanto.CAP´ ITULO 4. El recolector de basura es implementado como un hilo y usa la sincronizaci´n de Java para asegurarse que lo que recoge para eliminar no proo duce errores. Por ejemplo. a o 4.

El poder de las instrucciones personalizadas se refleja o en el cambio de instrucciones de hilos del J2ME. Manejo de interrupciones y bloqueo. La naturaleza virtual de la especificaci´n de la JVM implica que los o mecanismos de bajo nivel como son las interrupciones y el bloqueo de la ejecuci´n est´n especificados.9. Las nuevas instrucciones pueden o aumentar la rapidez de actuaci´n de los algoritmos usados m´s frecuenteo a mente en esa aplicaci´n. y que estos a m´todos son los controladores de los distintos bloqueos e interrupciones. 4. el controlador devuelve el control al programa. e Como se puede esperar. las interrupciones y bloqueos son manejados o por m´todos est´ticos. a La arquitectura del aJile proporciona un soporte hardware para la ejecuci´n simult´nea de varias m´quinas virtuales independientes en una aplio a a . los controladores de m´scara de las interrupciones a pueden ser apropiados de antemano por la ocurrencia de otra interrupci´n de o prioridad mayor.CAP´ ITULO 4. Cuando haya acabado. el hecho de o que el usuario defina las instrucciones a seguir se puede hacer gracias al JEMBuilder llamando a la sustituci´n de m´todos est´ticos. Personalizaci´n del conjunto de instrucciones. permitiendo as´ crear un conjunto de instrucciones perı sonalizado para cada aplicaci´n particular.4.4. Como con otros c´digos extendidos. Varias m´quinas virtuales de Java concurrentes.4. 4. No se requieren o e a cambios en el compilador para esto. Por ejemplo: el resultado de una instrucci´n 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. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP74 4. e a El modo ejecutor del procesador puede ser pensado como un solo hilo de m´xima prioridad que tiene su propia pila y zona de memoria.7. si las interrupci´nes se habilitan en el c´digo puesto que por o o defecto est´n deshabilitadas. una nueva pila se ejecuta. Por eso. Cuando un controlador de prioridad m´s alta a a es invocado.8. o La CPU del aJile permite generalmente escribir el control de almacenamiento de datos. los arquitectos del aJile han proporo a cionado una implementaci´n propia. que se ejecutan en una pila ejecutora o supervisora. En relacci´n con el tema de escribir o o todo el c´digo software en Java.

Dentro de su espacio de memoria limitado.4. cada entorno de aplicaci´n puede desarrollar o sus propias reglas de atenci´n a hilos y manejo de memoria sin que esto pero judique al resto de las aplicaciones.7: 4. Multiple JVM Manager (MJM).10. El MJM es el representado en la figura 4. Dentro de estos intervalos de ejecuci´n seo o guros y espacio de memoria.8: Esto permite a los desarrolladores disfrutar de las ventajas y beneficios del entorno Java en un paquete muy compacto y de bajo consumo con el . e 4. o El controlador de multiples JVM (MJM) proporciona recursos de tiempo e interrupciones l´gicas para asegurar que otras JVM que se est´n ejecutando o e en ese momento no interfieran en las aplicaciones que est´ realizando una e JVM determinada.4.CAP´ ITULO 4. Tambi´n o e se tiene un contador individual para cada JVM (en total hay cuatro) para controlar los hilos dentro de esa JVM. El controlador de JVM proporciona un contador para controlar la porci´n de tiempo que le corresponde a cada JVM. y el soporte necesario para el uso de varias JVM. 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 c´digo de o ejecuci´n de la m´quina virtual de Java. cada entorno JVM puede emplear sus propia pol´ ıtica de manejo de hilos m´ltiples y utilizaci´n u o de memoria sin la intervenci´n erronea de otras aplicaciones o hilos. junto con perif´ricos comunes de los sistemas empotrados.11. esto permite a la JVM asignar sus propias interrupciones que no se atenderan mientras que la JVM est´ suspendida. Adicionalmente. las primitivas de hilos para tiempo o a real de Java. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP75 caci´n programando el reparto de tiempo de la memoria determinista con o protecci´n total de la memoria. Las caracter´ ısticas especiales de las multiples JVM del aJ-80 permiten llevar a cabo dos aplicaciones Java independientes que se ejecutan de una programaci´n y reparto de tiempo totalmente determinado y con protecci´n o o de la memoria. aJ-80: Un microcontrolador de Java para sistemas empotrados de tiempo real. e La arquitectura del chip aJ-80 es la mostrada en la figura 4. cada m´quina virtual a tiene su propio modo de ejecutarse.

7: Multiple JVM Manager (MJM). aparatos de consumo. memoria on-chip y un conjunto de perif´ricos. esta plataforma microcontroladora de Java en tiempo real. Esto viene acompa˜ado del paquete de ejecuci´n J2ME n o CLDC. La arquitectura del system-on chip(SOC) del aJ-80 es la mostrada en la figura 4. incluyendo los drivers necesarios para todos los perif´ricos del aJ-80 e y los drivers externos m´s comunes como por ejemplo: Ethernet. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP76 Figura 4. Con un ”Java core” de bajo consumo de 32 bits. El aJ-80 usa una arquitectura de bus dual: el bus del procesador y el bus de los per´ ıfericos. aplicaciones o n o automotrices y controladores industriales de red.9. Proporcionando un ”System on-chip”. el aJ-80 permite a los desarrolladores proporcionar f´cilmente la funcionalidad de los sistemas empotrados a Java a sus productos. es e id´nea para peque˜os aparatos m´biles.CAP´ ITULO 4. memoria a FLASH. Para minimizar la carga del bus y el consumo . y controladores de los displays LCD. cumplimiento del procesamiento necesario para los sistemas empotrados.

se˜ales de control para conectar directamente con o n la mayor´ de perif´ricos. La interfaz externa del bus e genera la direcci´n. asociado. El aJ-80 proporciona 48 Kbytes de memoria interna que no tiene la necesidad de esperar. La EBI puede acceder directamente a e 256 Mbytes de memoria externa. el bus del procesador es limitado a aquellos perif´ricos que requieren e un ancho de banda elevado (CPU. datos. El bus de los perif´ricos proporciona acceso a los p´rif´ricos on-chip y es aislado del bus e e e del procesador gracias al puente de perif´ricos. se carga directamente.8: Bloque de control del aJ-80. ıa e Memoria interna. interfaz externa). o La interfaz externa de Bus (EBI). memoria. Adem´s se puede extender este espacio de a memoria mediante l´ ıneas de direcciones. extensiones de c´digo e instrucciones personalizadas. La interfaz externa de bus (EBI) genera las se˜ales de control de acceso n a la memoria externa y los perif´ricos. Los 32 Kbytes de RAM son normalmente usados para almacenar la pila de procesamiento del JEM2.CAP´ ITULO 4. Los 16 Kbytes restantes son usados para implementar el kernel de Real-Time. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP77 Figura 4. La EBI proporciona 8 selectores de .

9: Arquitectura del aJ-80. La EBI se muestra e en la figura 4. Las transacciones son controladas e con el generador de estados de espera con una se˜al externa de espera pron porcionada para facilitar el acceso a los perif´ricos lentos.CAP´ ITULO 4. Las se˜ales de control de memoria son proporcionadas n para habilitar conexiones directas con la memoria externa y la memoria mapeada de los perif´ricos de entrada/salida. 16 y hasta e 32 bits de memoria. chip. El aJ-80 proporciona una interfaz flexible y segura para interactuar con la memoria externa y los perif´ricos.10: Bus Interface Timeing. La EBI puede ser configurada para soportar perif´ricos de 8. El aJ-80 proporciona las operae . FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP78 Figura 4.

los estados de espera y el ancho de memoria. o o Una se˜al de espera externa se proporciona para extender la transfen rencia externa a perif´ricos lentos o buses globales.10: External Bus interface. Los ciclos prolongados son utiles para acceder a recursos ´ que tienen tiempos de respuesta variables o perif´ricos lentos.CAP´ ITULO 4. Los registros de configuraci´n son cargados como parte del proceso de inicializaci´n del reset. La interfaz de bus del aJ-80 permite que las transacciones puedan ser prolongadas gracias a la se˜al externa de espera de transaciones n (WAITn). FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP79 Figura 4. La transferencia de e datos fundamental es la mostrada en la figura 4. Cae da salida del selector de chip tiene asociada un registro de configuraci´n o para especificar el tiempo de establecimiento. ciones de tiempo necesarias para acceder a los perif´ricos externos. En la e figura 4.12 se muestra la WAITn: Acceso a perif´ricos con interfaces ISA. e .11 : Tiempos de transferencia extendidos. el tiempo de trabajo.

e Para soportar perif´ricos con este tipo de interfaz el aJ-80 habilita el e CS4n y CS5n para operar como se˜ales MEMRN y MEMWN (o IORN n y IOWN). control de disparo y de puerta. la entrada del reloj interno y el reloj externo (TCLK0). Dos moduladores de ancho de pulso y dos m´dulos wave-form. El timer/counter Programable (TC) comprende un prescaler de 16-bits y tres timer/counters muy vers´tiles de 16 bits como se puede ver en la figura a 4.4. contabilizar retrasos. y proporciona la habilitaci´n usada por los timers.CAP´ ITULO 4. Un preescalador de 16 bits. Timer/Counter (TC). donde 0≤ PRL≤ 65535. o Un generador flexible de interrupciones. Se pueden usar como fuentes para el TC dos fuentes de reloj .15. medida de intervalo. Systronics es una empresa que lleva algo m´s de 15 a˜os creando sistemas a n de control de tiempo real empotrados de peque˜o tama˜o para mercados tan n n . Los timers pueden ser empleados como un o intervalo o como un contador c´ ıclico.13: 4. Acerca de Systronix Inc. Un acceso a un perif´rico mrdiante un Bus ISA se ilustra en e la figura 4.5. y modulacion de anchura de pulso. Las funciones de los timer/counters incluyen medida de frecuencia. Reloj externo.12. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP80 Muchos perif´ricos tienen interfaces que soportan mediante un bus ISA. Encadenamiento de los tres contadores para conseguir un rango m´s a amplio de resoluciones. Las caracteristicas principales de los timer/counters de proposito general son: Tres contadores de 16 bits. contador de eventos. 4. El prescaler divide el reloj de entrada seleccionado por PRL+1. El aJ-80 incluye tres timer/counters 16 bits (TC) que pueden realizar un rango amplio de funciones.

.CAP´ ITULO 4. Durante los ultimos a˜os 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. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP81 distintos como reproductores DNA o equipos de test para vuelos militares.

11: Transferencia de datos (lectura y escritura) .CAP´ ITULO 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP82 Figura 4.

12: Extended Bus Transaction (WAITn).CAP´ ITULO 4. . FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP83 Figura 4.

. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP84 Figura 4.13: ISA-Oriented Peripheral Accesses.CAP´ ITULO 4.

CAP´ ITULO 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP85 Figura 4. .14: ISA-Oriented Peripheral Accesses2.

CAP´ ITULO 4. FUNDAMENTOS DEL PROCESADOR AJILE80 Y JSTAMP86 Figura 4. .15: Diagrama de bloques del Timer / Counter.

Parte IV Dise˜ o. n

87

Cap´ ıtulo 5 Dise˜ o. n

88

˜ CAP´ ITULO 5. DISENO.

89

5.1.

Requisitos.

Implantaci´n de los sensores de ultrasonidos de BOSCH facilitados en o un sistema aut´nomo de tiempo real. o Usar como procesador para gesti´n de la informaci´n proporcionada o o por los ultrasonidos el aJ-80 de Systronix, y la estaci´n de desarrollo o JStamp.

5.2.

Descripci´n de la tecnolog´ usada. o ıa

El ultrasonidos usado es de control manual, es decir, se debe generar externamente el pulso de transmisi´n y medir el tiempo que tarda en recibirse o la se˜al 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 duracci´n o m´ ınima de 300µs como puede verse en la figura 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 r´faga ultras´nica, es decir, las se˜ales ultras´nicas que emite el sensor para a o n o detectar si hay o no obst´culos. a Tras unos microsegundos que tarda el sensor en estabilizar su membrana,

˜ CAP´ ITULO 5. DISENO.

90

empieza a funcionar como receptor esperando el eco produccido al chocar la r´faga ultras´nica en un objeto. a o Se disparar´ el ultrasonido de nuevo despu´s de un tiempo de rearme a e necesario para que se estabilice de nuevo la membrana. Debido a que este sensor tiene un unico m´dulo que funciona como emisor y receptor, el tiempo ´ o de rearme es mayor.

Figura 5.2: Salida del sensor.

5.3.

Conexionado.

El conector hembra de USS 3.X es el mostrado en la figura 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 construcci´n 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 anal´gica. o El pin 4 es el pin que se conecta a la alimentaci´n, a una fuente de tensi´n o o de 8V de cont´ ınua. De este modo la conexi´n queda como se puede ver en la figura 5.4. o

˜ CAP´ ITULO 5. DISENO.

91

Figura 5.3: Conector Hembra de USS 3.X

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 figura 5.4. Adem´s es necesario o a un peque˜o 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 se˜al 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 tensi´n puesto que el JStamp produce salidas de 3,3V y el ultrasonidos o necesita 8V. Para ello, se dispone de un regulador de tensi´n MC7808C, que o proporciona una salida de 8V y 1A. Dicho regulador necesita dos condensadores para su conexi´n en el circuito o como se muestra en la figura 5.6.

DISENO. la elecci´n se o o limita a bater´ recargables como fuente de potencia. Son unas pilas cil´ ıas ındricas con terminales de soldadura en la parte superior e inferior para su montaje en lotes.4: Conexiones en el ultrasonidos. Alimentaci´n.3.3. .˜ CAP´ ITULO 5. 5. 92 Figura 5. o La alimentaci´n 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 alimentaci´n y requiere grandes picos de corriente intermitentes que podr´ o ıan afectar a los componentes electr´nicos. o Puesto que estamos hablando de un sistema aut´nomo. Por tanto se van a usar ıas bater´ recargables de Ni-Cd de alta capacidad.

93 Figura 5. Adem´s soportan altas corrientes de descarga continuas y a presentan baja resistencia interna.˜ CAP´ ITULO 5. DISENO. Estas pilas proporcionan altas capacidades para tiempos de descarga ampliados y tienen la capacidad de realizar m´s de 700 ciclos completos de a carga/descarga.5: Pines del JStamp. .

DISENO.4. o Hay que establecer la granularidad del contador. Wafer. Estas tres salidas fueron llevadas a una placa de conexi´n con conectores para: ESC.4. JStamp. o Se ha realizado un paquete compuesto de 12 pilas en serie lo que proporciona 15V de tensi´n. Programaci´n. Para transformar la potencia de las bater´ en o ıas tensiones utilizables. se recargue autom´ticamente. 5. Generaci´n del pulso de disparo. 94 Figura 5. tendremos que determinar el valor de la granularidad . Servo. n En este programa el timer1 realiza una acci´n cada 33ms (aproximadao mente). el timer1. a La salida es la encargada de disparar el ultrasonidos y la entrada espera la se˜al de eco del ultrasonidos. con o salida triple de +12V /-12V /+5V. esto permite al JStamp guardar el resultado sin prisas ni problemas. o 5.6: Regulador de tensi´n MC7808C. o Tanto para generar el pulso de disparo como para medir el eco de respuesta se usa un contador. que se configura con una entrada (line A) y una salida (line B) para que corra libremente.1. como se precisa un pulso de disparo de 300µs.˜ CAP´ ITULO 5. se usa un convertidor de tensi´n CC/CC de 30W.

o en funci´n de este valor. El reloj interno del procesador. Lectura del eco de respuesta.4. Para que esto sea n .7: Circuito del regulador de tensi´n. 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. 5. el sensor funciona como receptor esperando una se˜al de eco. es decir. Las fuentes posibles para el reloj ı del contador son dos: Una fuente externa.864 MHz.1. proporciona una granularidad de 27. Una vez se ha enviado el pulso de disparo y tras unos microsegundos.˜ CAP´ ITULO 5.2. e Establecida la granularidad se crea un pulso de diparo como el mostrado en la figura 5. cuya frecuencia para el JStamp es de 73. este valor divide la frecuencia del reloj tomado como fuente dandonos as´ la granularidad.728 MHz. El prescaler del aJ-80 puede tomar cualquier valor o comprendido entre 2 y 65535. DISENO. He escogido el reloj interno. que proporciona un periodo de 27. Como se quiere una granularidad de 300 µs se deber´ introducir en el prescaler un valor de a 11059. se tiene una frecuencia de 36. por lo tanto. introducir´ un valor de 11060.127 ns.2. 95 Figura 5.127 ns.

por lo que ocurre instant´neamente. pero esto a no es ning´n problema siempre y cuando no se vuelva a disparar el u sensor hasta que se haya obtenido este valor. 96 posible se habilitan las interrupciones para que el sensor est´ a la escucha y e en el momento que llegue una se˜al se interrumpa el timer. obteniendo as´ el tiempo de vuelo de la se˜al.˜ CAP´ ITULO 5. de manera que o cuando se reciba por ´l un flanco de bajada se ejecute la rutina de la intee rrupci´n programada.1) . La interrupci´n que se habilita es la del puerto IOE4.3. la unica limitaci´n de a a ´ o tiempo es la granularidad del timer. (5. ı n A partir de este valor de tiempo de vuelo. n En el momento que llega la se˜al 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 ). no es instant´neo. Para que se realice esta acci´n no es necesario incluir ninguna l´ o ınea de c´digo. Se dispara un evento programado para que se pueda leer ese valor almacenado en el registro. DISENO. el resultado de esta operraci´n se suma al resultante ıa e o de multiplicar el valor de recarga del contador por el n´mero de veces que se u ha recargado. se calcula la distancia a la que se encuentra el objeto con la siguiente f´rmula: o distancia = (340 ∗ tiempodevuelo) siendo 340 la mitad de la velocidad del sonido en el aire en cm/sg . lleva un tiempo. La distancia a la que se encuentra el obst´culo del robot se calcula a partir a de los datos obtenidos en la rutina de interrupci´n (el valor del contador en o ese momento y el n´mero de veces que se hab´ recargado) con un sencillo u ıa c´lculo consistente en restar el valor obtenido del contador al valor con el que a se hab´ recargado ´ste. se hace de manera o autom´tica.4. Como esto ocurre a partir de unas instrucciones de software programadas. Por eso no se vuelve a disparar el ultrasonidos hasta que no ha pasado un tiempo suficiente (33ms en este caso). Esta rutina recupera el valor almacenado en el Sample o Value Register y el n´mero 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). Calculo de la distancia. 5.

˜ CAP´ ITULO 5. Para ello se ha escrito otro programa Java que determine la velocidad a la que puede ir el robot y la desviaci´n de la trayectoria de ´ste. para esquivar el obst´culo.jpx o . Descripci´n de la configuraci´n adoptao o da. 97 5. o e es decir.5. Crear y compilar el programa con JBuilder Crear proyecto (. e a Teniendo en cuenta dichas ventajas e inconvenientes y teniendo en cuenta los objetivos del proyecto se lleg´ a la conclusi´n de adoptar la configuraci´n o o o en anillo de sensores usando el m´todo de medidas consecutivas combinado e con el de esperas alternadas (ambos expuestos en dicho apartado 1.6. aunque se puede usar cualquier otro paquete de programaci´n comercial. Programaci´n en JBuider8. Comportamiento del robot. cuando comenc´ su desarrollo us´ la versi´n JBuilder 5 y actuale e o mente estoy usando la JBuilder 8.jpr) . o Los pasos a seguir desde que se empieza a programar en Java hasta que se ejecuta en el JStamp son los siguientes: 1. o Para este proyecto he elegido como entorno de programaci´n Java el o JBuilder.8) para solucionar los problemas de ruidos e interferencias con otros sensores.4. por lo que no me extender´ m´s en este apartado. Se expusieron mostrando sus ventajas e inconvenientes de cada una de ellas. En el apartado 1.8 del presente proyecto se expusieron las distintas alternativas de configuraci´n posibles para implantar los sensores de ultrasonidos o de manera eficiente en el robot de tiempo real objeto del proyecto. se opera a en consecuencia. el giro del servo. u 5. Una vez calculado el valor de la distancia al objeto u obst´culo. 5. Todo esto es posible a gracias a la capacidad de Java de ejecutar hilos m´ltiples. DISENO.4.

ae Elegir configuraci´n flash de memoria en el siguiente paso (JSo tampFlashConfiguration) y como runtime :Runtime CLDL .) o Compilar As´ se obtiene un fichero . 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.class a partir del .bin que entiende el aJ-80..˜ CAP´ ITULO 5. Elegir directorio donde se crear´ ´ste. Crear proyecto. Recordar que el jumper JP1 en la JStamp Development Station selecciona donde se almacenar´ el programa. a o Si el jumper no esta instalado el programa se cargar´ en memoria FLASH. y por tanto se perder´ cuando se desconecte la alimentaci´n. se elige archive-¿execute y se elige el archivo . Para ejecutarlo. ı 2..class generado por el JEMBuilder al procesador para que pueda ser ejecutado. se elige el archivo . en este caso TIMER y PORT E. Eligiendo archivo y dentro de este load. Posteriormente se selecciona Run y se ejecuta.java . Usar Charade para bajar el programa al JStamp./blink/class Available drivers: elegir los necesarios. 98 En ”Propiedades de proyecto -¿Vias de acceso -¿Bibliotecas necesaria” a˜adir aJile CLDC y J2ME CLDC (necesarias puesto que n necesitamos la especificaci´n de tiempo real.bin y se carga el el JStamp. 3. Si el jumper esta instalado se cargar´ en la a a memoria RAM. DISENO. Usar JEMBuilder para tomar las clases compiladas y crear el byte-code para el JStamp. (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 ”main”de esa JVM: en este caso ”Ultrasonidos” Indicar el Classpath a seguir para encontrar la clase anterior: por ejemplo . Con este programa se baja el fichero .soad. Con estos pasos se genera el fichero . a .

Parte V Ap´ndices e 99 .

100 .Ap´ndice A e Abreviaturas de Java.

EBI: External Bus Interface. JSR: Java Specification Request. IDE: Integrated Development Enviroment. MIDP: Mobile Information Device Profile. J2ME: Java 2 Micro Edition. ATC: Asynchronous Transfer Control. DUART: Dual Universal Asynchronous Serial Port. CLDC: Connected Limited Device Configuration. JAM: Java Applications Manager. AIE: Asynchronous Interrupt Exception. GPIO: General Port Input/Output. JVM: Java Virtual Machine.´ APENDICE A. JIT: Just-In-Time. ABREVIATURAS DE JAVA. JCP: Java Community Process. 101 .

PWM: Pulse Widw modulator. NIST: National Institude of Standards and Technology. RTOS: Real-Time Operating System. RTJVM: Real-Time Java Virtual Machines. SPI: Serial Peripheral Interface. PRL: Prescaler. SDE: Software Development Enviroment. ABREVIATURAS DE JAVA. PLL: Phase Locked Loop. RTJEG: Real-Time Java Expert Group. TC: Timer/Counter. RTJG: Real-Time for Java Expert Group. SOC: System-On-Chip. RMI: Remote Method Invocation. 102 . MJM: Multiple Java Virtual Machine Manager.´ APENDICE A.

ABREVIATURAS DE JAVA. UART: Universal Asynchronous Serial Port. 103 .´ APENDICE A. WAITn: External transation wait signal.

104 .Ap´ndice B e Datos del procesador aJ-80.

DATOS DEL PROCESADOR AJ-80. 105 .´ APENDICE B.

´ APENDICE B. 106 . DATOS DEL PROCESADOR AJ-80.

107 .Ap´ndice C e Planos del procesador aJ-80.

PLANOS DEL PROCESADOR AJ-80. 108 .´ APENDICE C.

´ APENDICE C. . PLANOS DEL PROCESADOR AJ-80.2: I/O. 109 Figura C.

110 . PLANOS DEL PROCESADOR AJ-80.´ APENDICE C.

4: Memory . PLANOS DEL PROCESADOR AJ-80. 111 Figura C.´ APENDICE C.

112 . PLANOS DEL PROCESADOR AJ-80.´ APENDICE C.

113 .Ap´ndice D e Datos del JStamp.

114 .´ APENDICE D. DATOS DEL JSTAMP.

´ APENDICE D. DATOS DEL JSTAMP. 115 .

´ APENDICE D. 116 . DATOS DEL JSTAMP.

´ APENDICE D. DATOS DEL JSTAMP. 117 .

´ APENDICE D. 118 . DATOS DEL JSTAMP.

´ APENDICE D. 119 . DATOS DEL JSTAMP.

120 .Ap´ndice E e Planos del JStamp.

PLANOS DEL JSTAMP.´ APENDICE E. 121 .

122 .´ APENDICE E. PLANOS DEL JSTAMP.

´ APENDICE E. PLANOS DEL JSTAMP. 123 .

124 . PLANOS DEL JSTAMP.´ APENDICE E.

125 .Ap´ndice F e Regulador de tensi´n o MC7808C.

126 . REGULADOR DE TENSION MC7808C.´ ´ APENDICE F.

´ ´ APENDICE F. 127 . REGULADOR DE TENSION MC7808C.

4. . .11. . . Conexi´n de sensores de ultrasonido en paralelo. . . . . xi 5 6 7 9 1. . 29 o 1. . . . . . . . . . . . . . . . . . . . . . . . . . Cono de emisi´n. . . . .6. . . . . 24 o 1. . . . . . . . . . . . . . . . Posibles errores debido a la disposici´n relativa entre el sonar o y el objeto. . . . . . . . . Transductor del sensor de ultrasonidos . . . . . . . .10. . Ejemplos de posibles caminos de la se˜al que provocan intern ferencias en un anillo de ultrasonidos. .13. 11 1. 16 1. . Dependencia del rango de inclinaci´n. . Comparaciones.5. . . . . . . . . . . . . . . . . . . . . Plataforma.2. . . . . . . . . . . . 25 1. . . . . . . . . 22 o 1. . . . . Cronograma del proceso de emisi´n y recepci´n de una onda o o ultras´nica. . . .´ Indice de figuras 1. . . . . . . . . . . . . . . . . . . . . . . . 23 o 1. Conexi´n de sensores de ultrasonido en serie. . . . . . . . .12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 1. . .8. . . . . . .3. . . . .1. . . . . . .7. . o 1. . Agrupaci´n de medidas. . . . . . . . . . . 14 1. . . . . . . . . 1. . . . . . . Zona muerta. . . . . . Efecto del desplazamiento de fase . . Energ´ emitida por la onda ultras´nica en todas las direcıa o ciones del entorno. . .9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 128 . . . . . . . . . 1. . . .

. . . 84 4. . . . . .´ INDICE DE FIGURAS 129 3. 89 5.9. . ISA-Oriented Peripheral Accesses. . La arquitectura del J2ME core. . . . . . . . . . . . Salida del sensor. . . . . . . . 85 4. . . . . . . . . .X . . . . . . . . . 65 o 4. . . . 51 4. . . . . 71 o 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. 90 5. . . . .13. . . . . 94 o 5. Circuito del regulador de tensi´n. . . . . . . . .6. . . . . . . . . Regulador de tensi´n MC7808C. . Conexiones en el ultrasonidos. . . . . . .1. . . . . . . . . . . . . 72 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 o 4. . . . . 82 4. . . . . . . Asignaci´n de pines en el aJ-80. . . . . . . . . . . 93 5. . . . . . . . .5. External Bus interface. . . . .6. . . . . . . . . . . . . .14. . . . 79 4. . . . 95 o . . . . . . . . . . . . . . . 78 4. . . Pulso de disparo . . . . . 92 5. . . . . . . . . .7. . . . . .3. . 64 o 4. . 77 4. 70 4. . . . . . . . .8. . . . . . . . Bloque de control del aJ-80.4.1. . . . . . . . . . .12. . . . . . . Esquema de la estaci´n de desarrollo JStamp. . . . La estaci´n de desarrollo JStamp. . . . . . . . . . . . . . . . .3. . . .15. . . . . . . . . . aJ-80. . . . 91 5. . . 76 4. . . . Arquitectura Software del J2ME. . . . . . . .7. .1. . . . . . . . . . . . . Diagrama de bloques del Timer / Counter. . . . . . .10. . . . . . . . Multiple JVM Manager (MJM). El M´dulo del JStamp. . . . Pines del JStamp. 83 4. . . . ISA-Oriented Peripheral Accesses2. . . . . . . 86 5. . . . . . . . . . .2.4. . . .11. . .2. . . . . . . . . . . . . Transferencia de datos (lectura y escritura) . Arquitectura del aJ-80. . . . . . . . . . . . . Extended Bus Transaction (WAITn). . . . Conector Hembra de USS 3. . . . . . . . . . . . . . . . . . .

.4. . . . . Procesador . . . 108 C. . . . 109 C. . . . . . . . . . . . I/O. . . . . . . . . . . . . . 110 C. . . . . . . . . 112 . . . .5. . . . . . . . . . . aJ-80 Test Board. . Power and Reset. . . Memory . . . . . . .1. . . . . . . . . . . . 111 C. . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . .´ INDICE DE FIGURAS 130 C. . . . . . . .

´ Indice alfab´tico e RT-Linux. 54 131 .

Parte VI Bibliograf´ ıa. 132 .

Koren. ME. IEEE Transactions on robotics and automation.rtj. McGill Research Centre for Intelligents Machines. JSR-37 Expert Group. Durrant-Whyte.Bibliograf´ ıa. Vol11.J Leonard. Inc 133 . H.F. [3] ”The Real-Time specification for Java”. [2] ”reflections on modelling a sonar range sensor” Gregory Dudek. [7] ”Mobile information device profile” Version 1. [5] ”aJile Systems: Low Power Direct-Execution Java Microprocesro for Real-Time and Networked Embedded Applications” David S. www.org [4] ”Direct sonar sensing for mobile robot navigation” J. Java 2 Platform. Y. [8] ”The Java Community Process” Sun Microsystems.0. Addison Wesley. [1] ”Error eliminating rapid ultrasonic firing for mobile robot obstacle avoidance” Johan Borestein. Dvid Holmes. Hardin [6] ”The Java programing language” Ken Arnold. James Gosgling. McGill University of Montreal. Kluwer Academic Publishers.2000. No 1.

Sign up to vote on this title
UsefulNot useful