61

UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Embed Size (px)

Citation preview

Page 1: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados
Page 2: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados
Page 3: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

DEDICATORIA: A mi padre que me apoyo y me dio todas las herramientas para realizar mi proyecto de vida.

AGRADECIMIENTOS: A mi madre por haberme apoyado, así como impulsarme y estar ahí todos estos años. A mi amigo Julio García por haberme impulsado en la carrera cuando no tenía rumbo. A mis entrenadores y profesores por haber ayudado en mi formación como persona y haberme apoyado en las diferentes disciplinas que cada uno domina. A mis asesores por haber confiado en mi al aceptar este proyecto y ayudarme a realizarlo. Al laboratorio de electromecánica del Instituto Nacional de Cardiología por ayudarme a encontrar una solución a un problema esencial para el proyecto.

Page 4: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

RESUMEN El trabajo desarrollado reúne información de diferentes sistemas de adquisición de marcha (cámaras, goniómetros, acelerómetros y sensores de presión) y presenta de forma muy breve su evolución a lo largo de la historia. Así como ventajas y desventajas de estos sistemas. Posteriormente se presenta el desarrollo de la construcción de uno de estos sistemas. Siendo mas específicos un sistema de adquisición de marcha por acelerometría desde los sistemas de transducción de aceleración hasta el sistema de almacenamiento de datos. La forma de transducir las aceleraciones fue realizada con acelerómetros electrónicos tipo MEM, con el fin de afectar lo menos posible la forma de caminar de las personas. Posteriormente estos datos son convertidos digitalmente y son transmitidos a un microcontrolador maestro que realizara una interfaz con una memoria Compact Flash. Esto tiene como consecuencia que el sistema muestra capacidades de ser portatil, escalabilidad y gran capacidad de almacenamiento. También se presenta una descripción detallada de las diferentes etapas involucradas en dicho sistema. Presentando los criterios de diseño tomados, justificaciones de elección, diagramas eléctricos –electrónicos, muestras de señales de salida de cada una de las partes que conforman al sistema y por ultimo el código (comentado) usado para el funcionamiento del sistema en cada una de sus etapas. Con el fin de que el presente trabajo pueda ser reproducido en forma parcial o total por alguna persona interesada.

Page 5: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

1. INTRODUCCION 1 2. ANTECEDENTES 2 2.1. MARCHA HUMANA 3 2.2. SISTEMAS DE MEDICION 5 2.2.1. ADQUISICION POR CAMARAS 6 2.2.2. ADQUISICION POR SENSORES DE PRESION Y GONIOMETROS 10 2.2.3. ADQUISICION POR ACELEROMETRIA 13 3. OBJETIVO 15 3.1. OBJETIVOS ESPECIFICOS 15 4. DESARROLLO 15 4.1. SISTEMA DE MEDICION 16 4.2. SISTEMA DE ADQUISICION 18 4.3. SISTEMA DE ALMACENAMIENTO Y CONTROL 24 5. RESULTADOS 31 6. DISCUSION Y CONCLUSIONES 36 7. REFERENCIAS 38 8. ANEXO 1. CODIGO ENSAMBLADOR ESCLAVO COMENTADO 39 9. ANEXO 2. CODIGO ENSAMBLADOR MAESTRO COMENTADO 45

Page 6: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

1. INTRODUCCION A lo largo del tiempo que se ha estudiado la marcha humana, se han necesitado lugares especiales para poder observar los movimientos realizados por el paciente a estudiar. La mayoría de las veces los problemas de la marcha son visibles en un estudio de marcha prosiguiendo así una rehabilitación y/o corrección del problema en particular; pero algunas veces el problema solo se desarrolla a lo largo de las actividades diarias de la persona. Uno de los sistemas típicos para el estudio de marcha es el que emplea cámaras. Estos sistemas son sistemas bastante confiables pero no portátiles. Dada el área de estudio posible para este tipo de sistema se tienen colecciones de datos de corta duración; es decir periodos cortos de marcha. Por esto que se ve la necesidad de desarrollar un sistema que cumpla con requisitos de portabilidad, confiabilidad, adquisición por periodos mas largos, ligero y que no obstaculice la marcha natural.

1

Page 7: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

2. ANTECEDENTES

Las anormalidades durante la marcha son inusuales e incontrolables formas de caminar, usualmente causadas por enfermedades o lesiones en las piernas, pies, cerebro, columna u oído interno. Estas generan cambios en el patrón de la marcha, algunos de estos efectos son visibles a simple vista, pero algunos otros no lo son.

Al patrón de cómo una persona camina se le denomina marcha. Muchos de los diferentes tipos de forma de caminar son producidos inconscientemente. La mayoría; pero no todos. Son ocasionados por una condición física particular (estos van desde una simple uña enterrada hasta deformaciones óseas). Algunas anormalidades al caminar son muy características e incluso tienen nombres descriptivos:

• Marcha propulsiva – Un andar pausado, con postura rígida, con la cabeza y cuello inclinados hacia enfrente.

• Marcha de tijera – Un andar con las piernas flexionadas ligeramente en la cadera y las rodillas, dando apariencia de estar agachado, con las rodillas y muslos golpeándose o cruzándose en un movimiento similar al de unas tijeras.

• Marcha espasmódica – Una caminata tiesa causada por la mala contracción de un músculo.

• Marcha arrastrada – Un andar con el pie colgado con los dedos hacia abajo, causando que los dedos arrastren contra el suelo.

• Marcha tambaleante – Es similar al andar de los patos que puede aparecer en la niñez o mas tarde.

Una marcha anormal puede darse por enfermedades en diferentes partes del cuerpo. Por ejemplo

• Desordenes vestibulares. • Desordenes del sistema nervioso central. • Anormalidades de la espina vertebral. • Enfermedades de los nervios periféricos. • Enfermedades degenerativas musculares (distrofia, miositis). • Enfermedades neuro-degenerativas (mal de Parkinson). • Anormalidades u enfermedades óseas. • Artritis. • Problemas de los pies. • Reacciones toxicas.

Algunas de estas anormalidades pueden causar cambios de postura de la persona. Algunos pueden ser eliminados de forma sencilla con solo corregir la postura mediante ejercicios (terapia) y con fármacos. Pero algunos otros pueden ser causados por deformaciones óseas, atrofia muscular; que provocan a su vez alteraciones en otras partes del cuerpo; en estos casos podría necesitarse una cirugía para corregir el problema. En ocasiones con la cirugía se llega a una restauración total del movimiento pero en la gran mayoría de los casos se logra sólo una restauración parcial.

2

Page 8: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Entonces es de suma importancia el poder detectar las anormalidades con un método objetivo de medición en la marcha, para así poder prevenir lesiones que conlleven a una costosa cirugía y una larga recuperación. Además de poder brindar una terapia adecuada para la anormalidad presente. Es por esta razón que se han desarrollado diferentes sistemas para poder medir de manera precisa la marcha.

2.1. MARCHA HUMANA Todo movimiento es el producto de dos factores: tiempo y espacio; para conocer el movimiento de un cuerpo es conocer la serie de posiciones que este ha ocupado en el espacio en series sucesivas de momentos.[2]. Una persona físicamente sana sigue ciertos movimientos característicos, denominándose estos como el patrón de marcha. Este patrón de marcha ha sido estudiado desde los egipcios, comenzando así la descripción de la marcha humana. Actualmente se ha dividido la marcha humana en 3 fases por pie, apoyo bipodálico, apoyo monopodálico, y el balanceo (Figura 1 y 2).

Figura 1 Muestra las diferentes fases de la marcha humana, en donde se ven ambos pies

3

Page 9: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Figura 2 Se muestra de nuevo las fases de la marcha observando el movimiento de las

extremidades inferiores.

El centro de gravedad del cuerpo humano se encuentra cercano a la segunda vértebra sacra es decir casi en el centro de la pelvis. Al caminar el centro de gravedad es desplazado por la posición de las partes del cuerpo entonces las fuerzas se distribuyen y es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados en los puntos de mayor interés (crestas iliacas, 2da vértebra sacra, rodillas, pies), son similares a un movimiento sinusoidal.

Figura 3 Se observa el cambio de angulo y desplazamiento vertical en rodilla, marcador sacro

(centro de gravedad), pelvis todo esto con respecto al porcentaje del ciclo de marcha.

4

Page 10: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Para medir cada uno de los puntos de interés se han desarrollado diferentes sistemas de medición; a continuación se profundizara sobre algunos de ellos. 2.2. SISTEMAS DE MEDICION El interés en la captura del movimiento de diferentes animales no es un estudio reciente. Uno de los pioneros en la captura objetiva del movimiento fue el fotógrafo Edward Muybridge. El usaba un conjunto de cámaras fotográficas que capturaban el movimiento secuencialmente. Una de las más famosas capturas es la captura de un caballo a galope (Figura 4).

Figura 4 Caballo galopante. E. Muybridge

Ese quizás fue una de las aproximaciones más grandes para la captura de movimiento de forma exacta. Se continuaron haciendo avances en la óptica mejorando las cámaras, creándose las cámaras de filmación. Al crearse los sistemas electrónicos se buscaron métodos para capturar el movimiento del cuerpo con estas herramientas, surgiendo así los sistemas de acelerómetros electrónicos, goniómetros, giroscopios y switches. Estos sistemas se desarrollaron relativamente hace poco tiempo, comparado con el desarrollo que se tiene en la óptica. Además el surgimiento de la electrónica también afecto a la óptica mejorando los métodos de grabación. Obteniendo así una mejor calidad en la imagen (Figuras 5 y 6).

5

Page 11: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Figura 5 Uso de marcadores en el cuerpo humando para análisis de marcha

Figura 6 Figura 5 tratada para resaltar los

marcadores, esto permite un mejor análisis de la imagen

Después con el desarrollo de la tecnología digital y los adelantos en las computadoras se crearon procesamientos para ver este tipo de imágenes en tercera dimensión. Actualmente la mayoría de los sistemas desarrollados terminan hasta este proceso obteniendo una secuencia de imágenes en 3D pudiendo manipular el ángulo de visión, velocidad de desplazamiento de las imágenes etc. Pero a pesar de que casi todos los sistemas obtienen una imagen de este tipo, el sistema de adquisición mas desarrollado es el que usa cámaras, debido a que este sistema no es inercial, no afecta en gran medida el movimiento y los lentes disponibles han sido desarrollados por mucho más tiempo que los demás métodos de medición. A continuación se mencionaran algunos de los sistemas mas desarrollados, mas usados, así como algunas de las ventajas y desventajas de cada uno de ellos. 2.2.1. ADQUISICION POR CAMARAS Este tipo de adquisición comenzó con el doctor Étienne-Jules Marey y el fotógrafo Edward Muybridge. Marey creo un laboratorio en 1882 (estación de fisiología) [5] cuyo objetivo era determinar las secuencias de acciones en el cuerpo humano creadas en la locomoción en sus diferentes variedades. Sus contribuciones ayudaron a las maniobras militares y ejercicios físicos para jóvenes. Una de las aportaciones mas significativas para crear una técnica adecuada fue el uso de un traje especial (Figura 7) para capturar el movimiento obteniéndose así imágenes del movimiento de gran calidad.

6

Page 12: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

a) b) c)

Figura 7 a) Sistema de marcadores creado por Marey. b) Imágenes tomadas por una sola camara Marey. c) Imágenes de b tratadas para identificación de marcadores.

Por otro lado Muybridge comenzó este tipo de adquisición a petición de que se capturara a un caballo galopando. El arreglo de cámaras que implemento para poder ver los movimientos después fue usado para ver los movimientos de las personas (Figura 8). Una característica esencial de Muybridge era el uso de un marco referencial en el que podía medir el desplazamiento de las partes del cuerpo en comparación con las imágenes de Marey. Además de que mejoró la calidad de la placa fotográfica para hacer un tiempo mínimo de exposición logrando una frecuencia de adquisición de 100 imágenes por segundo (100 Hz).

Figura 8 Hombre subiendo escaleras E. Muybridge. Se observa entramado detrás del

hombre que permite cuantificación del desplazamiento.

7

Page 13: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Existieron más contribuciones a lo largo del tiempo como las de Charles Robert Jenn y Pierre Ducroquet que crearon un método de cámaras desde diferentes ángulos para poder observar los movimientos desde todos los ángulos, “la cámara de cristal [5]”. Otra persona que contribuyo al análisis con fotografía estroboscópica fue Marcel Saussez el cual logro fotografía luminosa generando las curvas de la marcha [5]. Fue hasta que el Dr. Mary Pat Murria lograra desarrollar un método de cámaras eficiente para dejar las cámaras fijas y hace un estudio en múltiples planos y logra un análisis en 3D.

Figura 9 Sistema de camaras (camara de cristal)

Figura 10 Grafica de desplazamientos de diferentes partes del cuerpo en marcha (cabeza,

hombro, manos, codos, cadera, rodilla, talón y tobillo.

Actualmente se han podido observar todas las ventajas y desventajas del uso de cámaras en el análisis de marcha. Algunas de las ventajas de este sistema es que ha sido el sistema mas desarrollado, el mas estudiado, es el mas confiable hoy en día y los marcadores usados no estorban tanto al ejecutar el ejercicio; aunque actualmente se esta estudiando la posibilidad de dejar de usar estos marcadores [4]. Pero se tienen los problemas de los lentes, no portabilidad del sistema, y un marco de estudio pequeño.

8

Page 14: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Los lentes como todo transductor tienen un rango lineal; este generalmente se ubica al centro del lente pero a las orillas del lente y a las orillas de la captura de la imagen se obtienen imágenes distorsionadas. Este distorsionamiento comprime o expande la imagen causando que las distancias en esos puntos no correspondan a lo que se captura al centro de la imagen.

Figura 11 Ejemplos gráficos de los problemas comunes con el uso de cámaras 1. Expansión

de la imagen y 2. Compresión de la imagen.

Un factor importante en esté tipo de estudios es la necesidad de un estudio cerrado con un movimiento de la cámara nulo, debido a que a cada movimiento que se hace se cambia el ángulo y las distancias que se miden. Entonces las cámaras se ubican en una sola posición y solo pueden grabar en esa posición, ese ángulo y ese foco. Obligando a que las áreas de captura sean pequeñas, haciendo un estudio del movimiento pequeño y no portable.

Figura 12 Laboratorio clasico de adquisición y analisis de marcha por medio de camaras.

9

Page 15: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Actualmente el sistema más aceptado es el de cámaras; dependiendo la compañía que suministre el sistema se recomienda un número mínimo de cámaras. En particular el sistema VICON recomienda un mínimo de 5 cámaras para poder hacer un buen análisis entregando imágenes y análisis en 3D (Figura 13) [6].

Figura 13 Graficas y modelado entregado por el sistema de cámaras y software VICON.

2.2.2. ADQUISICION POR SENSORES DE PRESION Y GONIOMETROS Los goniómetros son dispositivos que indican el ángulo que se altera entre dos partes del cuerpo separadas por una articulación. Existen los goniómetros convencionales, potenciométricos y los flexibles. Los goniómetros tradicionales solo miden el ángulo máximo alcanzado al hacer algún movimiento, el centro de medición es ubicado en el centro de la articulación para efectuar la medición, pero debido a que el centro de rotación de la articulación se mueve al efectuar el movimiento este introduce un error. Además estos goniómetros son similares a reglas, y por tanto difíciles de ajustar a las partes curvas del cuerpo (figura 14).

10

Page 16: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Figura 14 Diferentes tipos de goniometros fijos.

También existen los electro-goniómetros. Estos en general han sido potenciométricos, aunque actualmente existen los electro-goniómetros flexibles. Los primeros cuentan con la desventaja de que no se ajustan completamente a la forma del cuerpo; y como los goniómetros convencionales, tienen el problema de que no siguen completamente el centro de rotación de la articulación a analizar. Además este tipo de electro goniómetros necesita una configuración robusta para poder adquirir ángulos en múltiples planos (figura 15 y 16).

Figura 15 Electro goniometro potenciometrico

a) b) c)

Figura 16 Electro-goniometro potenciometrico en aplicación.

11

Page 17: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Los electro-goniómetros flexibles se ajustan mejor a las partes curvas del cuerpo pero tampoco siguen completamente el centro de rotación de la articulación aunque lo siguen de una manera mas precisa. Además estos goniómetros brindan una forma menos robusta de adquirir ángulos en múltiples planos en comparación con los goniómetros potenciometricos antes presentados.

Figura 17 Electro goniómetros flexibles.

Los sensores de presión son usados en general de dos maneras: Una como switch para identificar plenamentente las etapas de la marcha y dos para observar como responde el suelo a la presión ejercida al caminar. Estos sensores de presión son usados en combinación con algún otro método de medición de marcha pero estos brindan información sobre la postura y la posición de los pies.

Figura 18 a)Plantillas de compresión. b) Plantillas y switches. c) Switch de presión.

12

Page 18: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Figura 19 Plataforma de presión.

2.2.3. ADQUISICION POR ACELEROMETRIA A este tipo de adquisición junto con la adquisición por giroscopios en general se les llama adquisición inercial, debido a que depende de una masa suspendida en el aire, que al menor movimiento tenderá a mantener su estado alterando alguna propiedad, resistiva, capacitiva ó inductiva. Este tipo de adquisición se comenzó a partir de que se lograran medir aceleraciones con medios electrónicos. En los comienzos de este tipo de adquisición se observaban los mismos problemas que se presentaban con las cámaras, y con los goniómetros. Se pensaba que posicionando los acelerómetros en los puntos de interés característicos (Ej. ubicación de los marcadores en adquisición por cámara) se podía obtener una medición mas precisa de la aceleración. Solo que en esos tiempos los acelerómetros con los cuales se contaban eran grandes, pesados y requerían un cableado grande para poderse manejar, lo cual hacia al sistema impráctico para utilizarse.

13

Page 19: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

a) b) Figura 20 a) Sistema de acelerómetros PCB usado para análisis de marcha b)Acelerómetro de sistema Xsens

Actualmente la electrónica ha progresado lo suficiente como para poder hacer acelerómetros muy pequeños gracias a la tecnología MEM (Micro Electronic Machines). Actualmente se producen acelerómetros usando este tipo de tecnología, siendo ahora los acelerómetros de dimensiones típicas de 4x4x2 mm (ADXL320 Analog Devices). Tienen una respuesta buena a los impactos y las frecuencias de estudio.

Figura 21 Acelerómetro biaxial ADXL320 de Analog Devices.

Este tipo de acelerómetros presentan un muy bajo consumo de energía, un bajo peso generando la idea de un sistema de adquisición portable. Los problemas que existen en este tipo de adquisición es que dado que es un tipo de adquisición inercial puede distorsionar la adquisición dependiendo de la masa con la que mida la aceleración. Otro problema es que debido a que están en la superficie de la piel no siguen completamente el movimiento de los tejidos de estudio y de las articulaciones de estudio. Por ultimo un problema más es causado por los métodos de integración existentes ya que al obtenerse la posición a partir de aceleraciones se obtiene un error que tiende a incrementarse con el tiempo.

14

Page 20: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

3. OBJETIVO Desarrollar un sistema de adquisición de marcha por medio del uso de acelerómetros tipo MEM.

3.1. OBJETIVOS ESPECIFICOS.

• Diseño del sistema de monitoreo de marcha con los acelerómetros ADXL320.

• Desarrollo del sistema de adquisición de señales de aceleración. • Desarrollo del sistema de almacenamiento en una memoria Compact Flash.

4. DESARROLLO Para este sistema de adquisición de marcha se requirió del desarrollo de tres etapas principales (Figura 22): Sistema de medición, sistema de adquisición y sistema de almacenamiento y control. El sistema de medición es la etapa encargada de transducir la aceleración en voltaje de tal forma que se pueda procesar y almacenar la información. El siguiente sistema es el sistema de adquisición este convierte los voltajes obtenidos de la etapa de medición en bytes y posteriormente los envía al sistema de almacenamiento y control. En este último se realiza el control de todo el sistema así como brindar la interfaz necesaria para el almacenamiento en un tarjeta compact flash.

Figura 22. En este diagrama se observan todas las etapas del sistema de adquisición de marcha

15

Page 21: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

4.1. SISTEMA DE MEDICION Se pretendió construir un sistema de medición que fuera ligero, esto porque el sistema no debe alterar demasiado la marcha natural de la persona. Además debe poder medir entre + 0.1 g y + 4 g, que son las aceleraciones mínima y máxima que se llegan a desarrollar puntualmente en algunos casos de marcha. También ser capaz de responder a una frecuencia de movimiento de 1 a 2 Hz. El consumo de corriente por el momento no es tan crítico debido a que se alimenta con una fuente pero se desea que el sistema sea de bajo consumo para desarrollos posteriores. Es por esto que se eligieron los acelerómetros ADXL320 de Analog Devices. Estos acelerómetros son de tecnología MEM. En la Tabla 1 se presentan sus características: Tabla 1.Características generales ADXL320 Tamaño 4X4X1.45 Mm Voltaje de alimentación 2.4 - 5.25 V Consumo de corriente 350 - 500 UA Rango de medición + - 5 G Sensibilidad 174 MV/gVoltaje en 0g 1.5 V Error de alineación entre ejes 0.1 ° Tolerancia a impacto 10000 G Numero de ejes de medición 2 Resolución mínima <60 Hz 2 Mg Dadas estas características se tendría una medida mínima de 17 mV al variar la señal en 0.1 g, y se tendrían 696 mV al variar 4 g. Por lo tanto el acelerómetro responde a las características requeridas para poder medir la marcha. Se diseñó una tarjeta en la cual se soldaría el acelerómetro y la cual embonaría con otra para poder hacer un sistema de medición triaxial, además cuenta con una parte de la adecuación de la señal es decir contiene los filtros pasa bajas a 20 Hz (la resistencia que se considera es la resistencia de salida del acelerómetro). Esta tarjeta se diseño con el software Eagle 4.1 de CadSoft obteniendo una tarjeta con las características antes mencionadas (figura 23 y 24).

16

Page 22: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Figura 23 Tarjeta esquematizada de acelerómetro ADXL320

Figura 24 a) y b) Tarjetas de circuito impreso de ADXL320

El problema encontrado al elegir este tipo de sensor acelerométrico fue la forma de soldar el tipo de encapsulado LFSCP (Lead Frame Scale Chip Package). Es por eso que se usó una estación de montaje superficial, soldando el chip con aire caliente y soldadura de micro esfera.

17

Page 23: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Una vez soldado el acelerómetro a la tarjeta se podía conformar el arreglo de ambas tarjetas para obtener el sistema triaxial. En este sistema triaxial debido a la disposición de ambas tarjetas se tiene un eje redundante; en la figura 25 se presentan los ejes de medición obtenidos en dicho sistema.

Figura 25 Sistema de ejes medido por el sistema

Debido al esfuerzo mecánico al que serán expuestos los extremos del cableado del sistema de medición se optó por soldar y fijar el cable al sistema de acelerómetros triaxial y en el otro extremo tener conector Molex. Esto nos permitiría tener resistencia mecánica en ambos extremos y hacer sistemas intercambiables (figura 26).

a) b) Figura 26 a) Sistema de acelerometria triaxial b)detalle de conector y sistema triaxial

4.2. SISTEMA DE ADQUISICION DE SEÑALES Para esta parte del desarrollo requerimos un sistema que fuera capaz de ser escalable sin necesidad de cambios en el protocolo y conexión de comunicación y/o modificación de las etapas previamente estructuradas. Donde el sistema una buena velocidad de conversión análogo digital y por último pero no menos importante un desfase entre señales mínimo incluso al ser escalado el sistema. Es por esto que se diseñó un sistema capaz de adquirir un gran número de señales analógicas y que a pesar de que el sistema se escalara el desfase entre señales se mantendría constante, pero muy pequeño. Todo esto sin complicar demasiado el sistema. Para lograr estos objetivos se eligieron los microcontroladores PIC18F2520; de Microchip, que tenían lo que se necesitaba para manejar el

18

Page 24: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

sistema desarrollado en este proyecto y que además eran fáciles de explotar. En la tabla 2 se presentan las características de dicho microcontrolador. Tabla 2. Características del PIC18F2520Arquitectura 16 Bits Tipo memoria Flash Memoria ROM 32 Kb Memoria RAM 1536 BytesCanales I/O 25 Canales CAD 10 Bits de conversión 10 Velocidad de muestreo 100 KPSSNúmero de comparadores 2 Número de timers 4 Interfaces EUSART I2C SPI Velocidad de reloj máxima 40 MHz Velocidad reloj interno 8 MHz Voltaje mínimo 2 V Voltaje máximo 5.5 V Número de pines 28 Se eligió este microcontrolador por el gran número de canales de conversión análogo digital, el número de bits de conversión , el número de pines, y por poseer un módulo que maneja el protocolo serial síncrono I2C. El sistema de adquisición es capaz de manejar 10 señales análogas, pero para esta aplicación solo se usaron 9 de las 10 disponibles. Es decir cada sistema de adquisición es capaz de recibir señales de 3 sistemas de acelerometria triaxial con un desfase temporal de 21.6 micro segundos entre el primer y el último dato. Y en caso de que se necesiten más datos de los diferentes puntos de estudio se agrega un microcontrolador más con sus sistemas de aceleración correspondientes. El caso de usar este sistema es que para desarrollos posteriores serán necesarios mas de 18 sistemas de medición; con sus respectivos sensores de aceletometría, Entonces existiría un desfase de 388.8 microsegundos y para evitar eso se optó por este enfoque. Las señales a adquirir por este sistema provienen de diferentes partes del cuerpo que tienen diferentes aceleraciones al llevarse a cabo la marcha. Unos de los casos mas extremos son el centro de masa (situado aproximadamente entre la 2da y 3ra vértebra sacra) y

Tabla 3. Variaciones de voltaje en centro de masa y rodilla

Centro de masa ( 2a y a vertebra sacra ) Rodilla

Variación máxima

Variación mínima

Variación máxima

Variación mínima

0.4 g 0.1 g 4 g 0 g Equivalente en voltaje

69 mV 17 mV 696 mV 0 mV

19

Page 25: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

la rodilla o el pie. En la tabla 3 se muestran las variaciones de voltaje equivalente en dos puntos de interés. Como se puede observar en la Tabla 3 los voltajes obtenidos en el centro de masa son muy pequeños es por esto que se decidió usar una etapa de amplificación para las señales provenientes del centro de gravedad y crestas iliacas. Posteriormente en el sistema de conversión análogo digital está configurado para que la frecuencia de muestreo de los datos sea de 50 Hz. Esto para cumplir el teorema de Nyquist debido a que la frecuencia de la señal a monitorear es de 20 Hz. La conversión de los nueve canales es iniciada por una señal de sincronía (una interrupción externa) proveniente del control maestro. Esta señal es dada cada 0.02 segundos teniendo una frecuencia de muestreo de 50 Hz. Los datos son almacenados en un buffer en cada esclavo, los cuales son enviados como paquete al maestro solo cuando éste lo solicita. Pero este proceso no afecta la adquisición de los datos. En las figuras 27 y 28 se presentan los diagramas esquemáticos realizados (tanto para centro de gravedad y crestas iliacas como para los demás sistemas) en Protel v 2.4 de esta parte del sistema.

Figura 27. Diagrama de conexiones de sistema de adquisición sin amplificadores

20

Page 26: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Figura 28. Diagrama de conexiones del sistema de adquisición con amplificadores.

La forma de transmitir los datos desde los distintos sistemas de adquisición a un control maestro es mediante el protocolo I2C que permite un gran número de esclavos interconectados, manejados por un solo maestro y que además usa solo dos líneas de comunicación; una como reloj (SCL reloj serial) y otra como transmisión recepción de datos (SDA datos seriales). Su usó el modulo MSSP del Pic 18F2520 que es capaz de manejar I2C mediante el uso de los registros SSPADDR, SSPBUFF, SSPCON1, SSPCON2 y SSPSTAT. El sistema de adquisición fue configurado para trabajar como un esclavo con direccionamiento de 7 bits y capaz de responder a la frecuencia de reloj de sincronía de 1 MHz; lo cual quiere decir que se transmite un dato cada 8 microsegundos ya sea dirección ó dato. Este protocolo necesita que ambos canales sean configurados como entradas para entrar en un estado de alta impedancia, siendo entonces necesarias resistencias de pull up que provean la corriente a los diferentes dispositivos conectados. Se usaron las siguientes ecuaciones para hacer los cálculos necesarios para obtener el buffer necesario en el esclavo (A) y el número de ciclos de llenado del buffer del esclavo (B).

21

Page 27: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Grupo de ecuaciones 1. Ecuaciones para determinar # ciclos de llenado y # bytes buffer esclavo. Donde β1 es el número de bytes por pic con punto decimal, β2 es β1 redondeado al número entero mas cercano, δ1 es β2 dividido entre el número de bytes de conversión analogo digital y el número de canales de conversión obteniendo un número con puntos decimales, este es redondeado A para obtener un número cerrado que indica el tamaño del buffer. Y por ultimo se usa el numero de bytes y el numero de muestras para obtener el numero de ciclos para llenar el buffer.

[ ]

[ ]Β≡×Α

Α≡

muestrabytes

norredondeomemuestra

bytes

norredondeomepics

#1

1#2

21

1#512

δ

δβββ

β

Estos datos se necesitaron para la realización del programa del esclavo. Este es presentado en el diagrama 1 y en el diagrama 2 como diagramas de flujo.

Diagrama 1. Diagrama de estados general del sistema de adquisición (esclavo).

22

Page 28: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

a) b) Diagrama 2. Diagrama de estados a) Interrupción b) Transmisión de datos

Entonces con el uso de estos diagramas y teniendo en cuenta el tiempo de adquisición, la frecuencia de muestreo y la velocidad de transmisión del protocolo de I2C se obtuvo el diagrama de tiempos del esclavo presentado en el diagrama 3.

Diagrama 3. Diagrama de tiempos del sistema de adquisición (esclavo). Este

se divide en 2 partes el ciclo de adquisición que es ejecutado B -1 veces (B Ecuaciones 1) y el ciclo de transmisión. Sinc corresponde a la señal de sincronia que provee el maestro, CAD el tiempo que tarda el esclavo en adquirir 9 canales, Transmisión I2C el tiempo que tarda en enviar 508 datos de buffer, NOP no operación.

23

Page 29: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

El código ensamblador usado para programar este sistema viene adjunto en el Anexo 1. Código esclavo. En este se pueden observar los diferentes registros usados para configurar y operar los módulos de adquisición y MSSP, así como comentarios y particularidades del sistema. 4.3. SISTEMA DE ALMACENAMIENTO En esta parte del sistema se necesitó pensar en una forma de almacenar datos de forma práctica, pequeña e intercambiable y que además lograra controlar la comunicación de los datos y la frecuencia de muestreo necesaria; todo esto sin ser un sistema muy complejo en hardware. Es por esto que se optó por usar una memoria Compact Flash como sistema de almacenamiento y como sistema de control el Pic 18F2520 usado en la etapa anterior. Primero se abordara la comunicación entre este sistema y el sistema de adquisición de señales, así como el control de la frecuencia de muestreo de éstos. El protocolo de comunicación I2C es un protocolo síncrono que utiliza solo dos canales de comunicación SDA (datos y direcciones) y SCL (reloj de sincronía). Este protocolo es manejado por uno o más maestros con un número bastante grande de esclavos, el número de estos esta en función del número de bits de dirección (7 o 10 bits) en este caso se trabajo con 7 bits de dirección. El protocolo de comunicación I2C (figura 29) funciona de la siguiente manera: 1. El maestro manda una dirección de esclavo por el canal de datos y activa el

reloj de sincronía, ademas de mandar el codigo de escritura o lectura de esclavo (octavo bit de dirección).

2. En caso de que la dirección sea de algún esclavo conectado este parará el reloj informando al maestro que el esclavo respondió

3. El esclavo libera el reloj de nuevo y se inicia la transmisión de datos entre esclavo, maestro cualquiera sea el sentido de este flujo.

4. Al terminar la comunicación el esclavo y el maestro liberan los canales de datos y reloj para quedar en nivel alto como inicialmente.

Figura 29. Ejemplo de comunicación del protocolo I2C

En el caso de esta implementación el maestro quedó configurado con una frecuencia de reloj de 1MHz.

24

Page 30: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

El almacenamiento de datos se realizó en una memoria Compact Flash (CF). Este tipo de memoria fue originalmente pensado para diseñar productos ligeros, pequeños y de bajo consumo. El concepto detrás de la tecnología de la memoria CF es muy simple: capturar, retener y transportar datos de un lado a otro. Este tipo de memoria esta diseñada con un chip controlador conectado a un modulo de memorias Flash (figura 30). Esto quiere decir que el sistema anfitrión se comunica con el chip controlador para que éste escriba o lea a los diferentes módulos de memoria flash.

Figura 30. Diagrama a bloques de la tarjeta CF

Las 52 señales que posee la tarjeta CF pueden funcionar de 3 diferentes maneras 1) Tarjeta de memoria de una PC. 2) Tarjeta de entrada salida de una PC. 3) Como un dispositivo IDE. La tarjeta CF se puede comportar como un dispositivo IDE real; que es la forma en que la mayoría de los discos trabajan. El modo de tarjeta de entrada salida es el modo en que la mayoría de las cámaras digitales trabajan. Por último el modo de Tarjeta de memoria es el modo base de este tipo de memoria. En este modo la tarjeta se comporta como un buffer de memoria individual. En la tabla 4 se presentan las señales principales de la CF así como una breve explicación de su función.

Tabla 4. Descripción de señales de la memoria CF A10-A00 Estas líneas son usadas para seleccionar las direcciones de los registros

de entrada salida. Para así acceder a los diferentes atributos de la CF. -CE1,-CE2

Estas líneas son usadas para seleccionar la tarjeta y para indicarle a esta si se esta operando con un byte o una palabra

-CSEL Esta señal debe estar aterrizada en el modo de tarjeta de memoria. D15-D00 Estas líneas llevan comandos, estados y los datos que serán operados

entre el anfitrión y el controlador -OE Esta señal activa o permite la lectura de la tarjeta CF así como los

registros de configuración de esta.

25

Page 31: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

READY Esta señal es mandada a un nivel alto cuando la flash esta lista para hacer alguna otra operación. Y es mantenida en un nivel bajo en caso contrario.

-REG Esta señal es usada para distinguir entre memoria alta y memoria baja. -WE Esta señal es mandada por el anfitrión para ya sea escribir datos a los

registros de la CF ó a la memoria CF cuando esta ya está configurada como una interfase de memoria.

Para controlar el funcionamiento y los parámetros usados en la CF se uso el puerto B y parte del puerto C del control maestro. Por último el control de la frecuencia de muestreo y la sincronización del sistema de adquisición se hizo a través de un temporizador y una salida en el puerto A hacia la interrupción externa del Pic del sistema de adquisición. El temporizador y la rutina de interrupción activan este canal cada 0.02 s obteniendo así la sincronía de todos los sistemas. En las figuras 31, 32 y 33 se presentan los diagramas de conexiones del sistema de almacenamiento ó control maestro , así como su diagrama a bloques.

Figura 31. Diagrama a bloques de pic maestro y almacenamiento.

26

Page 32: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Figura 32. Diagrama de conexiones del pic que controla el sistema de almacenamiento.

Figura 33. Diagrama de conexiones de conector a tarjeta Compact Flash

27

Page 33: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Debido a que el modo que se esta empleando en la flash es el modo de mapeo en memoria, la forma de escritura no es byte a byte, sino que se escribe sector por sector. Por lo tanto debemos llenar o mandar 512 bytes para llenar el sector. Es por esto que el protocolo necesita tiempo para llenar un buffer de 512 bytes con el fin de llenar un sector de la memoria flash. Es por esta razón que se cuenta el número de ciclos de llenado para identificar el momento que se debe mandar el conjunto de datos hacia la flash. En los diagramas 4 y 5 se presentan los diagramas de flujo del programa maestro.

a) b) Diagrama 4 a) Diagrama de flujo general del programa principal del maestro. b) Diagrama de flujo del programa de atención a interrupción.

28

Page 34: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

a) b) Diagrama 5. a) Diagrama de flujo de recepción de datos por I2C. b) Diagrama de flujo del proceso de grabado en tarjeta CF.

Como se puede observar en el diagrama de flujo de escritura de la tarjeta CF se debe especificar en qué sector de la memoria CF se almacenarán los datos. Es decir se debe especificar el sector, cilindro y cabeza de almacenado. Esto se hace al comienzo de cada 512 datos debido a que se llena ese sector. Una vez enviado el lugar de almacenado se manda el comando; éste puede ser de escritura, lectura y algunos otros comandos; para mayores referencias consultar especificaciones de CF. El que se empleó fue el comando de escritura y una vez enviado este la CF se prepara a recibir los 512 datos. La CF avisa cuando puede recibir un dato por medio del canal RDY que se activa en alto cuando esta lista y en bajo cuando esta ocupada. Por último en la figura 34 se presenta el diagrama de tiempos usado para esta etapa. Cabe recordar que el número de ciclos de llenado depende solo del número de esclavos conectados al maestro. En el caso que se presenta solo esta considerado un esclavo.

29

Page 35: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Figura 34 Diagrama de tiempos del pic maestro donde el ciclo de transmisión y almacenamiento solo se da al llenar el buffer de 512 datos.

30

Page 36: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

5. RESULTADOS

Se adquirieron las señales de acelerometría de los puntos de interés mencionados (centro de gravedad, crestas iliacas, rodillas y pies). Se presentan las gráficas correspondientes siendo adquiridas realizándose una marcha con una frecuencia de 1 Hz en las figuras 35 - 38. En la adquisición de los datos los acelerómetros fueron adheridos a un traje licra - nylon en las posiciones antes mencionadas.

Figura 35 Señal acelerométrica del centro de gravedad donde esta señal es amplificada para

tener una mayor sensibilidad.

31

Page 37: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Figura 36. Señal acelerométrica de una cresta iliaca que de igual forma al centro de

gravedad es amplificada para obtener una mayor sensibilidad.

Figura 37 Señal acelerométrica de la rodilla esta no necesita amplificadores para podes ser

detectada en el sistema de adquisición.

32

Page 38: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Figura 38 Señal acelerométrica del pie, esta no necesita amplificación debido a la magnitud

Una vez que los acelerómetros se pusieron a funcionar y que las señales eran preprocesadas (filtrado y amplificación solo en algunos casos), se adquirieron y posteriormente se enviaron desde los esclavos hacia el maestro usando el protocolo I2C en las figura 39 se presenta una parte de la transmisión de esclavo a maestro con una frecuencia de reloj de 1MHz.

Figura 39 Señal de I2C

SCK

con una frecuen

SCL

cia de reloj de 1 MHz.

33

Page 39: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Teóricamente el envío de 512 bytes por medio del protocolo I2C usando una frecuencia de reloj de 1 MHz tardaría 4 ms, pero como puede apreciarse en la figura 40 se observan ciertos retrasos estos son ocasionados al parecer por el retraso en proceso que tiene el Pic para responder. Por tanto la suma de estos retrasos hace que el tiempo se vuelva de 12 ms en una transmisión de 512 datos. A continuación se presenta la imagen de una transmisión de 512 bytes.

Figura 40 Señales de I2C transmitiendo el buffer de 512 bytes.

Una vez transmitidos los 512 datos hacia el maestro, éste transmite los datos hacia el dispositivo de almacenamiento (tarjeta CF). En la figura 41 se presenta la señal RDY del la tarjeta CF interactuando con el maestro en una escritura de 512 datos del maestro hacia la tarjeta CF.

34

Page 40: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Figura 41 Señal de RDY en tarjeta CF iniciando protocolo y transmitiendo los 512 datos a un

sector de la CF.

Se presenta en la figura 42 la una señal del protocolo I2C y la señal RDY de la tarjeta CF. Con estas señales se midió el tiempo de escritura y traslado de los datos que son correspondientes al ciclo de transmisión y almacenamiento (compárese con la figura 34 diagrama de tiempos del pic maestro).

RCL protocolo I2C

Figura 42 Señales I2C y señal RDY

Por último se presentan los bytemencionó anteriormente el almacenamiento pero en este cade escritura es a partir del sectotabla FAT. Esto tiene como consprogramas que puedan accede

RDY

de la tarjeta CF tiempo total aproximadamente 20 ms.

s hexadecimales almacenados por la CF, como se método de escritura es como tarjeta de so no se está definiendo un archivo y el comienzo r 0, cilindro 0 del cabezal 0 escribiendo incluso la ecuencia que nuestro datos deben ser leídos por

r a este tipo de datos sin necesitar la tabla FAT.

35

Page 41: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

Para adquirir estos datos nosotros decidimos usar el programa Winhex v7.0. En la figura 43 se observan los datos escritos en la tarjeta CF usando todos los módulos interconectados, es decir los datos grabados en la tarjeta CF son datos de acelerometría.

Figura 43 Escritura de los datos de acelerometría en la tarjeta CF.

36

Page 42: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

6. DISCUSION Y CONCLUSIONES Dados los tiempos de respuesta de cada una de las secciones del se puede apreciar que el sistema es efectivamente escalable. El número de ciclos de llenado de buffer y el tamaño de buffer por esclavo sin verse alterado el tiempo de transmisión de I2C ni el de escritura de la tarjeta CF. Aunque el tiempo de transmisión del I2C es el que mas abarca en el ciclo de transmisión y almacenado, éste quizás pueda verse reducido al usar un reloj externo de mayor velocidad ya que por el momento se esta trabajando con el reloj interno cuyo máxima frecuencia es de 2 MHz. El sistema hasta donde está desarrollado muestra capacidad de llegar a ser portátil aunque por el momento se haya usado una fuente regulada a 8V (muy similar fuente de alimentación de laptop) que permite movilidad en un área pequeña. En la figura 44 se presenta el diagrama de conexiones de la fuente del sistema que es conectada a la fuente de 8V.

Figura 44. Diagrama esquemático de conexiones de fuente de alimentación

Para poder hacer este sistema portátil se deberá estudiar el uso de una fuente de alimentación con baterías. El consumo de corriente que se midió en el sistema fue de aproximadamente 500 mA, pero no fue reportado en los resultados porque no fueron medidas exactas ni era prioridad para el desarrollo del proyecto. Pero si es que se desea realizar un equipo portátil se deberá medir este valor con la herramienta adecuada así como usarse montaje superficial en la mayoría de los componentes si no es que en todos (incluyendo los microcontroladores). Al comienzo del proyecto se encontró que existían acelerómetros triaxiales, y se intentó trabajar con ellos pero hubo problemas con estos debido a que tenían problemas de fábrica. Se eligió trabajar con los acelerómetros biaxiales y

37

Page 43: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

desarrollar el sistema triaxial. Quizás en un futuro convenga cambiar este sistema por un solo acelerómetro triaxial ya que esto simplificaría el sistema, haría más pequeño el sistema y sería un poco más práctico. Cabe mencionar que la transducción de los acelerómetros no ha sido caracterizada, es decir se trabajo con la especificaciones reportadas por el fabricante. Hay que mencionar que el sistema como tal esta incompleto debido a que solo con los datos de acelerometria que se obtendrían de colocar los acelerómetros en los puntos de interés no se puede obtener el movimiento real debido a que al estar midiendo los ejes de referencia de los acelerómetros son rotados debido al movimiento natural del punto de interés.

Figura 45 Rotación de ejes Z y Y en un acelerómetro colocado en la rodilla.

Es por esto que será necesario agregar giroscopios a los acelerómetros actuales. Gracias a que el sistema es escalable el sistema puede soportar la incorporación de estas señales sin alterar el principio de maestro esclavo así como las señales de sincronía.

38

Page 44: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

7. REFERENCIAS [1] R. Moe-Nilssen, A new method for evaluating motor control in gait under real-life environmental conditions. Part 1: The instrument, Universitv of Bergen,1996 [2] Introduccion La Methode Graphique dans les Sciences Experimentales 1878 [3] http://www.nlm.nih.gov/medlineplus/ency/article/003199.htm (2/15/2005) [4] Holmberg Björn, Towards Markerless Analisys of human motion , 2005, Uppsala University. [5] History of the study of locomotion http://www.univie.ac.at/cga/history[6] Sistemas VICON www.vicon.com [7] Regalado García Karina, Diseño de una interfaz para una tarjeta de almacenamiento compact flash, Universidad Autónoma Metropolitana, 2004. [8]http://www.oandp.org/jpo/library/2001_03_064.asp [9]Resaul Begg, Russell Best, Overview of Movement Analysis and Gait Features, Victoria University, Australia, 2006 [10]http://www.cadsoft.de [11]Pic28F2420/2520/4420/4520 Datasheet; Microchip Technology inc, 2004 [12]CF+ and Compact Flash Specification Revision 4.0; Compact Flash Asociation; 5/54/2006.

39

Page 45: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

ANEXO 1 Programa ensamblador del pic esclavo comentado. ;****************************************************************************************************************** ; PROGRAMA ESCLAVO ; ESTE PROGRAMA HACE LA CONVERSION DE 9 CANALES ANALOGICOS HASTA LLENAR UN BUFFER DE 508 BYTES UNA VEZ LLENO EL BUFFER SE ENVIAN LOS DATOS POR MEDIO DEL PROTOCOLO I2C HACIA EL PIC MAESTRO EL PIC ESTA CONFIGURADO PARA QUE USE EL OSCILADOR INTERNO CON UNA FRECUENCIA DE 2 MHZ Y UNA FRECUENCIA DE I2C DE 1 MHZ. ;****************************************************************************************************************** LIST P=PIC18F2520 #INCLUDE <P18F2520.INC> PROCESSOR 18F2520 D0 EQU 81H ;EN ESTAS DIRECCIONES SE ALMACENAN LAS DIRECCIONES A

ENVIAR PARA EL ADCON1 D1 EQU 82H D2 EQU 83H D3 EQU 84H D4 EQU 85H D5 EQU 86H D6 EQU 87H D7 EQU 88H D8 EQU 89H GOTO PRINCIPAL ; SALTA A LA ETIQUETA ESPECIFICADA. ORG 0X08 ; ORIGEN 0X04 DEBIDO A QUE EN 0X03 ESTAN LAS INTERRUPCIONES. GOTO INTERRUPCION ;****************************************************************************************************************** ; CONFIGURACION DE LOS RECURSOS DEL PIC A UTILIZAR ;****************************************************************************************************************** INICIALIZA_PIC CLRF PORTA CLRF LATA MOVLW 0X2F ;SE CONFIGURAN LOS CANALES ANALOGICOS COMO ENTRADAS

0,1,2,3,4 MOVWF TRISA CLRF PORTB CLRF LATB MOVLW 0X1F ; SE CONFIGURAN COMO ENTRADA LAS ENTRADAS ANALOGICAS MOVWF TRISB ; 8,9,10,11 Y LA INTERRUPCION EXTERNA CLRF PORTC CLRF LATC MOVLW 0X18 MOVWF TRISC ;CONFIGURACION DE PUERTO C 0001 1000 ENTRADA Y RELOJ DE

I2C LFSR FSR0,100H ;SE DIRECCIONA EL APUNTADOR A LA DIRECCION 100H MOVLW 0X01 ;SE ALMACENAN LOS DATOS QUE SERAN ENVIADOS AL ADCON1

PARA RECIBIR DE LOS MOVWF D0 ;DIFERENTES CANALES MOVLW 0X05

40

Page 46: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

MOVWF D1 MOVLW 0X09 MOVWF D2 MOVLW 0X0C MOVWF D3 MOVLW 0X11 MOVWF D4 MOVLW 0X21 MOVWF D5 MOVLW 0X25 MOVWF D6 MOVLW 0X29 MOVWF D7 MOVLW 0X2C MOVWF D8 BSF INTCON,INT0IE ;SE ACTIVAN LAS INTERRUPCIONES NO ENMASCARADAS

(INT0) BSF INTCON,PEIE BSF INTCON,GIE RETURN ;REGRESO A RUTINA PRINCIPAL ;***************** ;RUTINA DE CONFIGURACION DE RELOJ INTERNO A 8 MHZ CON SALIDA A 2 MHZ ;***************** CONFIG_OSC: MOVF OSCCON,0 IORLW 0X70 MOVWF OSCCON ;SE CONFIGURA PARA QUE EL RELOJ INTERNO SE TOME

COMO 8 MHZ RETURN ;**************** ;ESTA RUTINA CONFIGURA EL MODULO DE I2C COMO ESCLAVO A1 MHZ DE BAUD RATE ;**************** CONFIG_I2C: MOVLW 0X80 ;SLEW RATE STANDARD MOVWF SSPSTAT MOVLW 0X36 ;ACTIVA EL PUERTO SERIAL ADA Y SCL COMO PINES DE

PUERTO MODO ESCLAVO 7 BITS DE DIRECCION MOVWF SSPCON1 CLRF SSPCON2 ;ACTIVA LA LLAMADA GENERAL Y CONTROL DEL RELOJ

(STRETCH DEL RELOJ ACTIVADO) MOVLW 0XAA ;DIRECCION DEL ESCLAVO MOVWF SSPADD BCF PIR1,SSPIF ;LIMPIADO DE BANDERA DE INTERRUPCION (POLLING) BCF PIE1,SSPIE ;ENMASCARADO DE BANDERA DE MODO SSP RETURN ;************ ;EN ESTA PARTE SE CONFIGURA EL CONVERTIDOR ANALOGICO DIGITAL ;************ CONFIG_AD CLRF ADCON0 MOVLW 03H ; SE CONFIGURA EL CONVERTIDOR ANALOGICO DIGITAL

41

Page 47: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

PARA QUE LAS ENTRADAS MOVWF ADCON1 ; ANALOGICAS 0,1,2,3,4,8,9,10,11 ESTEN ACTIVADAS Y LA INT

EXTERNA COMO DIGITAL CLRF ADCON2 RETURN ;************* ;INTERRUPCION ;SE IDENTIFICA SI ES LA INTERRUPCION EXTERNA Y SE ADQUIEREN LOS DATOS Y SE ALMACENAN UN EL BUFFER HACIENDO USO DEL APUNTADOR. ;************* INTERRUPCION BTFSC INTCON,INT0IF ;SE IDENTIFICA SI LA FUENTE DE INTERRUPCION ES LA INT0 GOTO INTEXT RETFIE INTEXT: BCF INTCON,INT0IF ;SE LIMPIA LA BANDERA DE INTERRUPCION MOVFF D0,ADCON0 ;SE ADQUIERE EL PRIMER DATO BSF ADCON0,1 LAZOINT0 BTFSC ADCON0,1 GOTO LAZOINT0 MOVFF ADRESH,POSTINC0 ;SE GUARDA EL DATO EN EL BUFFER MOVFF D1,ADCON0 BSF ADCON0,1 LAZOINT1 BTFSC ADCON0,1 GOTO LAZOINT1 MOVFF ADRESH,POSTINC0 MOVFF D2,ADCON0 BSF ADCON0,1 LAZOINT2 BTFSC ADCON0,1 GOTO LAZOINT2 MOVFF ADRESH,POSTINC0 MOVFF D3,ADCON0 BSF ADCON0,1 LAZOINT3 BTFSC ADCON0,1 GOTO LAZOINT3 MOVFF ADRESH,POSTINC0 MOVFF D4,ADCON0 BSF ADCON0,1 LAZOINT4 BTFSC ADCON0,1 GOTO LAZOINT4 MOVFF ADRESH,POSTINC0 MOVFF D5,ADCON0 BSF ADCON0,1 LAZOINT5 BTFSC ADCON0,1 GOTO LAZOINT5

42

Page 48: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

MOVFF ADRESH,POSTINC0 MOVFF D6,ADCON0 BSF ADCON0,1 LAZOINT6 BTFSC ADCON0,1 GOTO LAZOINT6 MOVFF ADRESH,POSTINC0 MOVFF D7,ADCON0 BSF ADCON0,1 LAZOINT7 BTFSC ADCON0,1 GOTO LAZOINT7 MOVFF ADRESH,POSTINC0 MOVFF D8,ADCON0 BSF ADCON0,1 LAZOINT8 BTFSC ADCON0,1 GOTO LAZOINT8 MOVFF ADRESH,POSTINC0 RETFIE ;************* ;ENVIA 1 DATO POR I2C ;************* ENVIARDATO: BCF SSPCON1,CKP ;LIBERA EL RELOJ MOVFF POSTINC0,SSPBUF ;ENVIA EL DATO BCF PIR1,SSPIF ;LIMPIA LA BANDERA DE I2C BSF SSPCON1,CKP ;DETIENE AL RELOJ ENVIA: BTFSS PIR1,SSPIF ;POLLING DE BANDERA I2C, ESPERO A QUE RECIBA

LA DIRECCION GOTO ENVIA RETURN ;************ ;ENVIA 9 DATOS ;************ ENV9: CALL ENVIARDATO CALL ENVIARDATO CALL ENVIARDATO CALL ENVIARDATO CALL ENVIARDATO CALL ENVIARDATO CALL ENVIARDATO CALL ENVIARDATO CALL ENVIARDATO RETURN ;*********** ;I2C

43

Page 49: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

;PROTOCOLO DE I2C PARA ENVIAR 508 DATOS ;*********** I2C: INICIOI2C: BTFSS PIR1,SSPIF ;POLLING DE BANDERA I2C, ESPERO A QUE RECIBA LA

DIRECCION GOTO INICIOI2C MOVF SSPBUF,0 ;EVITO COLISION DE DATOS EN EL BUFFER DE ENTRADA LFSR FSR0,100H CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9

44

Page 50: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 CALL ENV9 BCF PIR1,SSPIF BSF SSPCON1,CKP ;SE LIMPIA LA INTERRUPCION Y SE DETIENE EL RELOJ RETURN ;****************************************************************************************************************** ; SURUTINA PINCINPAL ;****************************************************************************************************************** PRINCIPAL CALL CONFIG_OSC ; SE CONFIGURA EL OSCILADOR INTERNO A 8 MHZ CALL CONFIG_I2C ; SE CONFIGURA EL MODULO I2C COMO ESCLAVO

RECEPTOR DE DATOS CALL CONFIG_AD ; SE CONFIGURA LA CONVERSION ANALOGO DIGITAL CALL INICIALIZA_PIC ; CONFIGURAMOS LA FORMA EN QUE VA A TRABAJAR EL

PIC LAZO CALL I2C LFSR FSR0,100H GOTO LAZO END ; FIN DEL PROGRAMA

45

Page 51: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

ANEXO 2 Programa ensamblador del pic maestro comentado. ;*************************************************************************************************************** ; PROGRAMA PIC MAESTRO ; PROGRAMA DE PIC MAESTRO QUE RECIBE LOS DATOS DE I2C Y LOS GRABA EN LA MEMORIA COMPACT FLASH ;*************************************************************************************************************** LIST P=PIC18F2520 #INCLUDE <P18F2520.INC> BANDERA2 EQU 0X01 HEAD EQU 0X02 CYLH EQU 0X03 CYLL EQU 0X04 SECTOR EQU 0X05 SECTOR_CNT EQU 0X06 DIRECCION EQU 0X07 ;RESERVADO PARA LA DIRECCION DEL ESCLAVO DATO EQU 0X08 ;USADO PARA TERMINAR DE LLENAR EL BUFFER CICLOS EQU 0X09 ;USADO PARA CONTAR EL NUMERO DE CICLOS DE

LLENADO AUX EQU 0X0A ;USADO PARA HACER EL TIEMPO PARA TERMINAR LA

CONVERSION ANALOGO DIGITAL GOTO PRINCIPAL ; SALTA A LA RUTINA PRINCIPAL ORG 0x08 GOTO INTERRUPCION ; SALTA A RUTINA DE ATENCION A INTERRUPCION ;****************************************************************************************************************** ; CONFIGURACION DE LOS RECURSOS DEL PIC A UTILIZAR ;****************************************************************************************************************** INICIALIZA_PIC CLRF PORTA CLRF LATA CLRF TRISA CLRF PORTB ; SE LIMPIA EL PUERTO B CLRF LATB ; SE LIMPIA LOS LATCH'S DEL PUERTO B CLRF TRISB ; SE CONFIGURA EL PUERTO B COMO SALIDA DIGITAL MOVLW 0FH ; SE CONFIGURA EL CONVERTIDOR ANALOGICO DIGITAL PARA

QUE TODOS LOS BITS DEL MOVWF ADCON1 ; PUERTO B SEAN SALIDAS O ENTRADAS DIGITALES CLRF PORTC CLRF LATC MOVLW B'10011000' ;SE CONFIGURAN LOS PINES SCL Y SDA COMO ENTRADA PARA

FUNCIONAR EN I2C MOVWF TRISC ;ASI COMO EL PIN 7 PARA LEER EL RDY DE LA TARJETA CF MOVLW 0X00

46

Page 52: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

MOVWF SSPADD ;SE CONFIGURA PARA UN RELOJ DE I2C DE 1 MHZ MOVLW 0XAA ;DIRECCION DEL ESCLAVO MOVWF DIRECCION MOVLW 0X38 ;SE CONFIGURAN LOS 56 CICLOS DE CAD MOVWF CICLOS CLRF DATO BCF INTCON2,RBPU ;SE LIMPIA PARA NO NECESITAR DE PULL UP EXTERNO BSF INTCON,PEIE ;SE ACTIVAN LAS INTERRUPCIONES NO ENMASCARADAS BSF INTCON,GIE RETURN ;***************** ;RUTINA DE CONFIGURACION DE RELOJ INTERNO A 8 MHZ CON SALIDA A 2 MHZ ;***************** CONFIG_OSC: MOVF OSCCON,0 IORLW 0X70 MOVWF OSCCON ;SE CONFIGURA PARA QUE EL RELOJ INTERNO SE TOME COMO 8 MHZ RETURN ;***************** ;CONFIGURACION DEL TIMER PARA FRECUENCIA DE 50 HZ ;***************** CONFIG_TIMER: MOVLW B'01000111' MOVWF T0CON MOVLW 0X63 MOVWF TMR0L BSF INTCON,TMR0IE RETURN ;***************** ;RUTINA DE CONFIGURACION DEL MODULO MSSP PARA I2C MAESTRO ;***************** CONFIG_I2C: MOVLW B'10000000' ;SMBUS DESHABILITADO Y RELOJ ENTRE 1KHZ Y 1 MHZ MOVWF SSPSTAT ;SE CONFIGURA EL SLEW RATE A 1 MHZ CON ENTRADAS FIJAS MOVLW B'00101000' MOVWF SSPCON1 ;SE ENCIENDE EL MODULO MSSP Y CONFIGURADO COMO MAESTRO CON CLK=FOSC/(4*(SSPADD+1)) CLRF SSPCON2 ;EN ESTE REGISTRO SE INICIA EL PROTOCOLO PERO EN ESTE MOMENTO SE APAGA TODO BSF DIRECCION,0 ;SE LIMPIA EL ULTIMO BIT PARA IDENTIFICAR QUE SE TRATA DE UNA RECEPCION POR PARTE DEL MAESTRO (ES VITAL PARA EL FUNCIONAMIENTO DEL PROTOCOLO) RETURN ;************* ;INICIALIZA FLASH

47

Page 53: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

;************* INICIALIZA_FLASH: CLRF BANDERA2 CLRF HEAD CLRF CYLH CLRF CYLL MOVLW 0X01 MOVWF SECTOR ;EL GRABADO COMENZARA EN EL SECTOR 1 MOVWF SECTOR_CNT BSF PORTC,5 ;PONER LINEA OE=1 BSF PORTC,6 ;PONER LINEA WE=1 LFSR FSR0,100H ;FSR0 DE 256-767 (100H A 2FFH) RETURN ;************ ;INTERRUPCION ;RUTINA DE ATENCION A INTERRUPCION MANDA LA INTERRUPCION EXTERNA POR BIT 0 DEL PUERTO A ;Y DECREMENTA EL NUMERO DE CICLOS ;************ INTERRUPCION: BTFSC INTCON,TMR0IF GOTO INTTIMER ;SE IDENTIFICA SI EL TIMER0 ES EL ORIGEN DE LA INTERRUPCION RETFIE INTTIMER: BCF INTCON,TMR0IF ;SE LIMPIA AL BANDERA DE INTERRUPCION DECF CICLOS BSF PORTA,0 ;SE MANDA LA INTERRUPCION EXTERNA PARA LOS ESCLAVOS NOP NOP NOP NOP BCF PORTA,0 MOVLW 0X63 ;SE RECONFIGURA EL TIMER MOVWF TMR0L RETFIE ;************** ;RETRASO ;SE RETRASA UN POCO PARA QUE LOS ESCLAVOS TERMINEN DE ADQUIRIR LOS DATOS Y PEDIR LOS DATOS ;POR I2C ;************** RETARDO: MOVLW 0X56 MOVWF AUX RETCICLO DECF AUX CLRF WREG CPFSEQ AUX

48

Page 54: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

GOTO RETCICLO RETURN ;***************** ;RECEPCION DE UN SOLO DATO POR I2C ;***************** RECEPCION: BTFSS PIR1,SSPIF GOTO RECEPCION BCF PIR1,SSPIF BSF SSPCON2,RCEN ;SE PREPARA LA LINEA PARA RECIBIR DATOS ACK: BTFSS PIR1,SSPIF ;ESPERA RECEPCION DE DATO GOTO ACK BCF PIR1,SSPIF MOVFF SSPBUF,POSTINC0 ;SE ALMACENA EL DATO EN EL BUFFER BCF SSPCON2,ACKDT ;PROTOCOLO DE ACK BSF SSPCON2,ACKEN RETURN ;****************** ;RUTINA DE RECEPCION I2C FINAL INCLUYE ACK ;****************** ULTIMARECEPCION: BTFSS PIR1,SSPIF GOTO ULTIMARECEPCION BCF PIR1,SSPIF BSF SSPCON2,RCEN ;SE PREPARA LA LINEA PARA RECIBIR DATO ULTIMOACK: BTFSS PIR1,SSPIF ;ESPERA RECEPCION DE DATO GOTO ULTIMOACK BCF PIR1,SSPIF MOVFF SSPBUF,POSTINC0 ;SE ALMACENA EL ULTIMO DATO BSF SSPCON2,ACKDT ;PROTOCOLO DE ULTIMO ACK ES DIFERENTE A LOS DEMAS BSF SSPCON2,ACKEN RETURN ;************** ;RECIBE 9 DATOS ;************** R9: CALL RECEPCION CALL RECEPCION CALL RECEPCION CALL RECEPCION CALL RECEPCION CALL RECEPCION CALL RECEPCION CALL RECEPCION

49

Page 55: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

CALL RECEPCION RETURN ;************** ;RECIBE LOS ULTIMOS 9 ;************** R9ULT: CALL RECEPCION CALL RECEPCION CALL RECEPCION CALL RECEPCION CALL RECEPCION CALL RECEPCION CALL RECEPCION CALL ULTIMARECEPCION RETURN ;************** ;I2C ;************** I2C: INICIOI2C: BSF DIRECCION,0 BSF SSPCON2,SEN ;SE PROCEDE A INICIAR EL PROTOCOLO I2C ENVIADIR: BTFSS PIR1,SSPIF GOTO ENVIADIR ;ESPERO AL INICIO DEL PROTOCOLO MOVFF DIRECCION,SSPBUF ;MUEVO LA DIRECCION DEL ESCLAVO AL BUFFER PARA TRANSMITIRLA BCF PIR1,SSPIF ;LIMPIO LA BANDERA DE INTERRUPCION CALL R9 ;SE RECIBEN LOS DATOS EN GRUPOS DE 9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9

50

Page 56: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9 CALL R9ULT FINPROTOCOLO: BTFSS PIR1,SSPIF GOTO FINPROTOCOLO BCF PIR1,SSPIF BSF SSPCON2,PEN ;SE ACTIVA EL FIN DE PROTOCOLO PARA LIBERAR LAS LINEAS LAZO5: BTFSS PIR1,SSPIF GOTO LAZO5 BCF PIR1,SSPIF ;PROTOCOLO I2C TERMINADO RETURN ;***************************** ;PROTOCOLO DE GREBADO DE LA TARJETA COMPACT FLASH ;***************************** PROTOCOLO_FLASH

51

Page 57: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

REVISECTOR BTFSC BANDERA2,0 ;REVISA SI ES LA PRIMERA VES QUE SE ESCRIBE EN LA CF GOTO REVSECTOR ;NO REVISA SECTOR INCF BANDERA2 ;SI INCREMENTA EL VALOR DE LA BANDERA GOTO WRITER ;Y SALTA A SUBRUTINA WRITER REVSECTOR MOVLW 0XFF ;REVISA SI EL VALOR DEL SECTOR HA LLEGADO A FF CPFSEQ SECTOR GOTO INCSEC ;NO BRINCA A INCREMENTA SECTOR GOTO REVCYLL ;SI REVISA CILINDRO BAJO REVCYLL MOVLW 0XFF CPFSEQ CYLL ;REVISA SI EL VALOR DEL CYLINDRO BAJO HA LLEGADOR A FF GOTO INCCYLL ;NO BRINCA A INCREMENTAR CILINDRO BAJO GOTO REVCYLH ;SI REVISA CILINDRO ALTO REVCYLH MOVLW 0XFF CPFSEQ CYLH ;REVISA SI EL VALOR DEL CILINDRO ALTO HA LLEGADO A FF GOTO INCCYLH ;NO BRINCA A INCREMENTAR EL VALOR DEL CILINDRO ALTO GOTO REVHEAD ;SI REVISA HEAD (CABEZA) REVHEAD MOVLW 0X08 ;ESTO PARA 128 MB CPFSEQ HEAD ;REVISA SI EL VALOR DE HEAD (CABEZA) HA LLEGADO A 0F GOTO INCHEAD ;NO BRINCA A INCREMENTAR CABEZA GOTO FINALIZA ;SI (LA CF ESTA LLENA) BRINCA AL FINAL DEL PROGRAMA INCSEC INCF SECTOR ;INCREMENTA EL VALOR DEL SECTOR GOTO WRITER ;Y SALTA A LA SUBRUTINA WRITER INCCYLL MOVLW 00H MOVWF SECTOR ;INICIALIZA EL VALOR DE SECTOR EN 00 INCF CYLL ;INCREMENTA EL VALOR DEL CILINDRO BAJO GOTO WRITER ;Y SALTA A LA SUBRUTINA WRITER INCCYLH MOVLW 00H MOVWF SECTOR ;INICIALIZA EL VALOR DE SECTOR EN 00 MOVWF CYLL ;INICIALIZA EL VALOR DEL CILINDRO BAJO EN 00 INCF CYLH ;INCREMENTA EL VALOR DEL CILINDRO ALTO GOTO WRITER ;SALTA A LA SUBRUTINA WRITER INCHEAD MOVLW 00H

52

Page 58: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

MOVWF SECTOR ;INICIALIZA EL VALOR DEL SECTOR EN 00 MOVWF CYLL ;INICIALIZA EL VALOR DEL CILINDRO BAJO EN 00 MOVWF CYLH ;INICIALIZA EL VALOR DEL CILINDRO ALTO EN 00 INCF HEAD ;INCREMENTA EL VALOR DEL HEAD GOTO WRITER ;SALTA A LA SUBRUTINA WRITER ;-----------COMANDOS REQUERIDOS PARA LA ESCRITURA EN LA CF---------- WRITER MOVLW 0XE0 ;C/D/H = XXX0XXXX ADDWF HEAD,0 MOVWF PORTB ;ENVIAR EL VALOR DE HEAD AL PUERTO DE DATOS ;ESCRIBIR DATOS DE C/D/H EN EL REGISTRO SELECT CARD/HEAD BCF PORTC,0 ;RC5:OE=1,RC2-RC0:A2-A0=110 BSF PORTC,1 BSF PORTC,2 CHECA_READY0 BTFSS PORTC,7,0 GOTO CHECA_READY0 NOP BCF PORTC,6 ;RC6:WE=0 NOP NOP BSF PORTC,6 ;WE=1 NOP MOVFF CYLH,PORTB ;ENVIAR EL VALOR DEL CILINDRO ALTO AL PUERTO DE DATOS ;ESCRIBIR EL VALOR DEL CILINDRO ALTO AL REGISTO CILINDRO ALTO BSF PORTC,0 ;RC5:OE=1,RC2-RC0:A2-A0=101 BCF PORTC,1 BSF PORTC,2 CHECA_READY1 BTFSS PORTC,7,0 GOTO CHECA_READY1 NOP BCF PORTC,6 ;RC6:WE=0 NOP NOP BSF PORTC,6 ;WE=1 NOP MOVFF CYLL,PORTB ;ENVIAR EL VALOR DEL CILINDOR BAJO A PUERTO DE DATOS ;ESCRIBIR EL VALOR DEL CILINDRO BAJO AL REGISTRO

53

Page 59: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

CILINDRO ALTO BCF PORTC,0 ;RC5:OE=1,RC2-RC0:A2-A0=100 BCF PORTC,1 BSF PORTC,2 CHECA_READY2 BTFSS PORTC,7,0 GOTO CHECA_READY2 NOP BCF PORTC,6 ;RC6:WE=0 NOP NOP BSF PORTC,6 ;WE=1 NOP MOVFF SECTOR,PORTB ;ENVIAR EL VALOR DEL SECTOR AL PUERTO DE DATOS ;ESCRIBIR EL VALOR DE SECTOR AL REGISTRO NO BSF PORTC,0 ;RC5:OE=1,RC2-RC0:A2-A0=011 BSF PORTC,1 BCF PORTC,2 CHECA_READY3 BTFSS PORTC,7,0 GOTO CHECA_READY3 NOP BCF PORTC,6 ;RC6:WE=0 NOP NOP BSF PORTC,6 ;WE=1 NOP MOVFF SECTOR_CNT,PORTB ;ENVIAR EL VALOR DE SECTOR AL PUERTO DE DATOS ;ESCRIBIR EL VALOR DE SECTOR CUENTA AL REGISTRO SECTOR COUNT BCF PORTC,0 ;RC5:OE=1,RC2-RC0:A2-A0=011 BSF PORTC,1 BCF PORTC,2 CHECA_READY4 BTFSS PORTC,7,0 GOTO CHECA_READY4 NOP BCF PORTC,6 ;RC6:WE=0 NOP NOP BSF PORTC,6 ;WE=1 NOP MOVLW 0X30 ;SEGUNDO COMANDO WRITE SECTORS COMAND= 30H MOVWF PORTB BSF PORTC,0 ;RC5:OE=1,RC2-RC0:A2-A0=111 BSF PORTC,1

54

Page 60: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

BSF PORTC,2 CHECA_READY5 BTFSS PORTC,7,0 GOTO CHECA_READY5 NOP BCF PORTC,6 ;RC6:WE=0 NOP NOP BSF PORTC,6 ;WE=1 NOP ;PREPARA AL PUERTO DE DIRECCIONES PARA LA ESCRITURA DE DATOS CON EL REGISTRO EVEN WR DATA BCF PORTC,0 ;RC3:OE=1,RC2-RC0:A2-A0=000 BCF PORTC,1 BCF PORTC,2 CLRF LATB ;LIMPIAR PUERTO B GOTO ENVIADATS_1 ENVIADATS_1 ENVIA1 MOVFF POSTINC1,PORTB ;MANDA EL DATO APUNTADO POR FSR1 ;AL PUERTO B E INCREMENTA FSR0 CHECA_READY6 BTFSS PORTC,7,0 GOTO CHECA_READY6 NOP BCF PORTC,6 ;RC4:WE=0 NOP NOP BSF PORTC,6 ;WE=1 NOP MOVLW 0X03 CPFSEQ FSR1H GOTO ENVIA1 ;ENVIA OTRO DATO LFSR FSR1,100H ;SE REGRESA FSR0 AL INICIO DE RAM (256 A 767) RETURN ;****************************************************************************************************************** ; SURUTINITA PINCINPAL ;****************************************************************************************************************** PRINCIPAL CALL CONFIG_OSC ;SE CONFIGURA EL OSCILADOR INTERNO CALL CONFIG_I2C ;SE CONFIGURA EL FUNCIONAMIENTO DEL MODULO MSSP DEL PIC Y SE ENCIENDE CALL CONFIG_TIMER ;SE CONFIGURA EL TIMER PARA LA FRECUENCIA DE 50 HZ CALL INICIALIZA_PIC ;SE CONFIGURA LA FORMA EN QUE VA A TRABAJAR EL PIC

55

Page 61: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAMI14469.pdf · es desplazado el cuerpo para mantener el equilibrio. Como la marcha es un ciclo, los desplazamientos observados

CALL INICIALIZA_FLASH ;SE ENCIENDE LA INTERFAZ CON LA TARJETA COMPACT FLASH BSF T0CON,TMR0ON ;SE ENCIENDE EL TIMER LAZO CLRF WREG CPFSEQ CICLOS ;SE CHECA SI YA SE CUMPLIERON LOS CICLOS DE LLENADO DEL BUFFER GOTO LAZO LFSR FSR1,100H ;SE UBICA EL APUNTADOR PARA HACER EL LLENADO DE 512 DATOS CALL RETARDO ;SE HACE UN RETRASO PARA QUE SE TERMINEND E ADQUIRIR LOS ULTIMOS DATOS CALL I2C ;SE MANDA LLAMAR AL PROTOCOLO I2C PARA LLENAR EL BUFFER MOVLW 0X38 ;SE REINICIA EL NUMERO DE CICLOS MOVWF CICLOS LLENBUFF: MOVFF DATO,POSTINC0 ;COMO NO SIEMPRE ES EXACTO SE LLENAN LOS ESPACIOS SOBRANTES DEL BUFFER MOVLW 0X03 CPFSEQ FSR0H GOTO LLENBUFF LFSR FSR0,100H ;REINICIA EL BUFFER DE ADQUISICION CALL PROTOCOLO_FLASH ;SE REALIZA EL GRABADO DE LOS 512 DATOS EN LA COMPACT FLASH GOTO LAZO FINALIZA CLRF PORTB BCF T0CON,TMR0ON ;SE APAGA EL TIMER BCF SSPCON1,SSPEN ;SE APAGA EL MODULO MSSP CICLO_FIN NOP GOTO CICLO_FIN ;LA MEMORIA ESTA LLENA NO SE HACE MAS END ; FIN DEL PROGRAMA

56