99
UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD IZTAPALAPA DIVISIÓN CBI MAYO DEL 2003, MÉXICO D.F. SISTEMA INTELIGENTE DE CONTROL VEHICULAR S.I.C.V. PRESENTAN: Germán Carlos Cavazos Echagaray Matricula: 85325411 Rubén Rivera Martínez Matricula: Carrera: Ingeniería en Electrónica Área de Concentración: Computación Para obtener el grado de Licenciatura ASESOR: M. en C. Agustín Suárez Fernández Departamento de Ingeniería Eléctrica U.A.M. Unidad Iztapalapa

SISTEMA INTELIGENTE DE CONTROL VEHICULAR

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD IZTAPALAPA

DIVISIÓN CBI

MAYO DEL 2003, MÉXICO D.F.

SISTEMA INTELIGENTE DE CONTROL VEHICULAR

S.I.C.V. PRESENTAN: Germán Carlos Cavazos Echagaray Matricula: 85325411 Rubén Rivera Martínez Matricula: Carrera: Ingeniería en Electrónica Área de Concentración: Computación Para obtener el grado de Licenciatura ASESOR: M. en C. Agustín Suárez Fernández Departamento de Ingeniería Eléctrica U.A.M. Unidad Iztapalapa

Page 2: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

2

Agradecemos profundamente al Dr. Alberto Soria López su entusiasmo y apoyo para la realización de este proyecto.

Page 3: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

3

ÍNDICE CAPITULO CONTENIDO PAGINA I INTRODUCCIÓN

• Objetivo 05 • Viabilidad de desarrollo 06 • Definición 06 • Funciones 07 • Unidades 07 • Fuentes de información 07 • Entrada y salida de datos 09 • Presentación de la información 09 • Análisis y diseño del sistema 11 • Diagrama de flujo de información 12

II HARDWARE DEL SISTEMA

• Micro controlador Intel 8031 13 • Alimentación 13 • Reloj del sistema 14 • Memoria 14 • Registros de funciones especiales (SFRs) 15 • Registros del programa (tabla) 16 • Configuración de los SFRs 17 • Los SFRs en los procesos 20

II.I INTERERFASES • distancia 26

• análisis odométrico 28 • velocidad 35 • combustible 39 • batería eléctrica 44 • alarma contra robo 46 • tacómetro 52

II.II UNIDAD CENTRAL DE PROCESAMIENTO • Diagramas de la UCP 55

III PROGRAMA SICV (versión prototipo) 63 IV CONCLUSIONES 85 V BIBLIOGRAFÍA 89 VI APENDICES 92

Page 4: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

4

CAPITULO I INTRODUCCIÓN

En la actualidad, es común que los automóviles de lujo cuenten con sistemas electrónicos incorporados, que representan una mayor comodidad, seguridad y eficiencia. Debido a los precios de los vehículos de lujo, los costos de operación, los de aseguramiento, el mantenimiento, las refacciones, etc., los automóviles económicos, tienen mayor demanda en el mercado y el diseño de SICV pretende satisfacer las necesidades de este tipo de vehículos.

No es fácil encontrar en el mercado, un sistema similar que se integre en autos compactos y que permita

al usuario optimizar los recursos de su automóvil. Se requiere que el sistema proteja la integridad física de los vehículos y que ayuden a mejorar el rendimiento.

Se puede ver la importancia, de contar con un sistema que este diseñado especialmente para vehículos

de bajo costo, y que cuente con las siguientes ventajas: 1. Económico y de instalación sencilla 2. Requiera de mantenimiento mínimo 3. ocupe poco espacio 4. Proteja la integridad física del automóvil mediante una alarma contra robo. 5. Alerte de niveles bajos de combustible, niveles críticos de voltaje en la batería y de un alto régimen

de trabajo del motor mediante un sistema tacométrico. 6. Tenga bajo consumo de energía y permita optimizar los recursos de gasolina y aceite. 7. Calcule información de distancia recorrida. 8. Calcule el rendimiento de combustible en km/l. 9. Informe la distancia que puede viajar con la cantidad de combustible remanente en el deposito.

SISTEMAS COMERCIALES

En agencias de venta y servicio CHRYSLER, CHEVROLET y FORD, se puede encontrar que muchos de los automóviles no cuentan con computadora de viaje, y que sólo algunos modelos cuentan con una computadora instalada de fábrica. Las computadoras de viaje existentes en las diferentes marcas de vehículos cuentan con las mismas funciones y se puede pensar que es el mismo sistema el que se encuentra instalado en estos.

Los precios de estos automóviles son superiores a los $100,000.00, dependiendo de la presentación y

las características de cada auto. Estas marcas de vehículos coincidieron en el hecho de que esta computadora de viaje no se tiene en existencia como refacción ni se conoce formalmente su precio, pues no se vende por separado. Esta computadora de viaje no es compatible con los automóviles en los que no este instalada de fabrica y por lo tanto no es posible instalarla en cualquier tipo de auto.

Presentamos las características de la computadora de viaje, las funciones que realiza el sistema son las

mismas para todos los autos mencionados y es conveniente notar que estos automóviles cuentan con un "Centro de mensajes" instalado en el tablero frontal y que ofrece al usuario las siguientes funciones: CENTRO DE MENSAJES

1. FALTA LIQUIDO LAVA PARABRISAS: Un símbolo se ilumina cuando la cantidad de liquido en el recipiente es menor de 1/4 de su capacidad.

2. PUERTA ABIERTA: Avisa al conductor que alguna puerta no esta completamente cerrada. 3. CAJUELA ABIERTA: Avisa al conductor que la cajuela no esta completamente cerrada. 4. LÁMPARA FUNDIDA: El centro de mensajes contiene tres mensajes que alertan al conductor si

alguna de las lámparas delanteras, traseras o "stop" se encuentra fundida, los mensajes que se iluminan son:

a. HEAD LAMP OUT: Lámpara delantera (Faro) fundida b. TAIL LAMP OUT: Lámpara trasera (Calavera) fundida c. BRAKE LAMP OUT: Lámpara de frenado "stop" fundida

Page 5: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

5

Ninguna de estas funciones requieren de un sistema inteligente y funcionan mediante sensores que

encienden o apagan el indicador respectivo en el centro de mensajes de acuerdo a la ocurrencia de cada uno de estos sucesos. Así mismo este vehículo tiene instalado un sistema denominado "Computadora de viaje" la cual ofrece las siguientes funciones:

INICIO: Cuando se pone en marcha el motor, la carátula de la computadora de viaje mostrara una de las cinco funciones disponibles. FUNCIÓN DESCRIPCIÓN

(información obtenida del manual de usuario) ODO El odómetro, mide la distancia recorrida desde la ultima vez que se realizo la operación de

reinicio "reset" y tiene un máximo de 999.9 km. Cuando alcanza el máximo automáticamente cambia a cero. Para cambiar a cero se debe realizar la operación de reset. Ejemplo: 180.6 Km. ODO

ECO 0.0 Esta función indica el promedio de litros consumidos por kilómetro recorrido desde la ultima vez que se realizo la operación de reset. Esta se actualiza y se muestra cada 16 segundos. Para volver a cero se realiza la operación de reset. Ejemplo: 16.5 AVG ECO l./km.

ECO 0 Esta función indica el rendimiento actual de litros por cada 100 km. El rendimiento esta basado en el consumo de combustible de los últimos segundos de manejo, este será actualizado y mostrado cada dos segundos. Esta operación no cuenta con operación de reset. Ejemplo: 15.4 l./100 Km. ECO

DTE Esta función indica un estimado de kilómetros o millas que se pueden recorrer con el combustible remanente en el vehículo. La distancia es calculada multiplicando la cantidad de combustible remanente por el rendimiento proyectado en la función anterior. Esta predicción cambiara a mayor o menor distancia dependiendo del cambio de los factores involucrados. Ejemplo: 34.5 Km. DTE

ET Esta función nos indica el tiempo de manejo. Este tiempo es acumulable es decir, cuando se apaga el motor el reloj se para y cuando se reinicia la marcha el reloj continúa. Esta función indica un máximo de 99 horas y 59 minutos. Para la primera hora el tiempo será dado en minutos y segundos. Para volver a cero se realizara la operación de reset. Ejemplo: 3:42 ET

Esta computadora de viaje cuenta con tres botones denominados:

1. Botón Paso (STEP): Selecciona una de las cinco funciones de viaje; si se requiere cambiar de función se debe oprimir otra vez el botón.

2. Botón "US/M": Selecciona el sistema de unidades entre el sistema ingles y el sistema métrico decimal.

3. Reset: Presionando los botones "STEP" y "US/M" simultáneamente, regresara a cero cualquiera de las tres funciones que se pueden reiniciar que este seleccionada.

No es fácil encontrar en el mercado, empresas que diseñen y fabriquen este tipo de sistemas, todos los

sistemas que se encuentran instalados en los automóviles de lujo, son importados y son instalados de fabrica. Estas consideraciones, abren la posibilidad de introducir en el mercado, un sistema electrónico que pueda venderse por separado y que abra mas alternativas de administración y control automotriz. OBJETIVO

El objetivo de este proyecto, consiste en diseñar, implementar y probar el correcto funcionamiento de un sistema electrónico que realice funciones de aplicación automotriz, compatible con automóviles económicos, de fácil operación, instalación económica, requiera de poco mantenimiento y sea confiable a pesar de que el medio en que trabaja es hostil.

Page 6: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

6

FUNCIONES DEL SISTEMA:

1. odómetro (distancia recorrida) 2. velocímetro (velocidad) 3. medidor de combustible 4. nivel de voltaje de batería 5. alarma contra robo 6. tacómetro 7. ECO - rendimiento de combustible. 8. DTE - distancia a recorrer con el combustible remanente.

VIABILIDAD DE DESARROLLO Actualmente se cuenta con dispositivos electrónicos de alta integración, como microprocesadores, micro controladores, sensores, etc. El micro controlador Intel 8031 de la familia 8051, tiene grandes ventajas como son: su arquitectura interna sencilla y eficiente, el amplio código ensamblador que maneja la versatilidad de los puertos internos y de su puerto de comunicación, su capacidad de direccionamiento de memoria interna y externa etc. y aunque tiene algunas limitaciones estas no son obstáculo para esta aplicación. Actualmente se cuenta con una gran cantidad de dispositivos, sensores, que generan señales eléctricas a partir de temperatura, movimiento, luz, etc. Estos son precisos, confiables y adicionalmente, se cuenta con la tecnología y las herramientas de desarrollo requeridos, como son: ensambladores, grabadores de memorias EPROM e instrumentos de medición.

El objetivo de este proyecto consiste en: Diseñar, implementar y probar el correcto funcionamiento del sistema en versión prototipo, alambrado con hilo metálico delgado en bases para circuitos integrados.

El diseño y ensamblado del sistema en placa de circuito impreso así como la presentación comercial

del sistema, no son el objetivo principal en esta etapa del proyecto. DEFINICIÓN:

SICV es un sistema electrónico de aplicación automotriz, que cuenta con un conjunto de interfases

que reciben información de las diferentes partes funcionales del automóvil, esta información es analizada y una vez que es procesada por la Unidad Central de Procesamiento, se presentan los resultados para que el usuario conozca las condiciones del automóvil. SICV se puede dividir en tres grandes etapas funcionales:

Alambrado del prototipo del sistema

Page 7: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

7

Primera etapa: Conjunto de interfases que reciben señales del chicote de rodamiento, del flotador de combustible, de la batería, de la carrocería y del distribuidor del automóvil. Como respuesta, generan señales eléctricas controladas que identifican la situación funcional de cada una de estas partes del automóvil. Segunda etapa: La Unidad Central de Procesamiento, (UCP) recibe las señales de respuesta generadas por la primer etapa, las procesa, realiza las operaciones necesarias para obtener la información requerida y entrega resultados a la tercer etapa. Tercera etapa: Presenta los resultados obtenidos en un arreglo de displays. Incluye las señales de alarma para los niveles críticos así como las señales (audio - visuales) de la alarma contra robo.

El sistema funciona mediante un programa grabado en memoria ROM, que ejecuta los procesos requeridos para cada función. FUNCIONES: FUNCIÓN DESCRIPCIÓN ODO Indica distancia recorrida y tiene una lectura máxima de 999.9 km.

Al llegar al máximo, cambiara a cero automáticamente. Cada vuelta completa del odómetro (999.9 Km.) se registra y se contabiliza. Se puede limpiar los registros de distancia y consultar el numero de vueltas completas del odómetro

VEL Indica velocidad del vehículo en kilómetros por hora [km/h]. No tiene función, reset, de reinicio.COM Indica volumen del deposito que es ocupado por combustible (%). 100% indica tanque lleno,

0% indica tanque vacío. No tiene función, reset, de reinicio. BAT Mide los niveles de voltaje suministrados por la batería eléctrica.

Alerta al usuario de niveles críticos. No tiene función, reset, de reinicio. ACR Controla el acceso y el uso del vehículo, mediante acciones preventivas y/o defensivas.

Se deshabilita por contraseña. DTE Calcula la distancia que se puede recorrer, con el combustible remanente en el deposito.

Presenta la información en kilómetros [km] ECO Calcula la distancia recorrida, por cada litro de combustible consumido. La lectura se expresa

en kilómetros por litro [km/l]. TAC Indica el régimen de giro del motor, (tacómetro) expresado en revoluciones por minuto

(R.P.M.). Se presenta mediante una barra de leds. Esta función no es controlada por micro controlador.

UNIDADES: El sistema maneja únicamente el sistema métrico decimal M.K.S. (metro, kilogramo y segundo) y unidades múltiplos y submúltiplos de estas:

• kilómetro • kilómetro / hora • litros • volts • kilómetros / litro • revoluciones por minuto.

FUENTES DE INFORMACIÓN:

Las fuentes de información, son elementos funcionales del vehículo en donde, mediante sensores, se generan las señales correspondientes a las condiciones operativas y son usadas por las interfases para generar las señales eléctricas con las que se analiza el estado del automóvil.

1. Chicote de rodamiento: odómetro y el velocímetro 2. Flotador del deposito de combustible: interfase de combustible 3. Batería eléctrica: interfase de batería 4. Distribuidor: tacómetro 5. Carrocería y puntos de acceso: A.C.R.

Page 8: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

8

CHICOTE ODOMETRICO: Es un cable metálico flexible y altamente resistente, esta conectado mecánicamente por un extremo al sistema de rodamiento del automóvil, se encuentra forrado por un material sintético de alta resistencia. El chicote gira a la misma frecuencia de la llanta y proporciona información que permite calcular la distancia recorrida, así como la velocidad del automóvil. Esto se logra por la relación 1:1 existente entre la rotación del chicote y de la llanta, con esto, se obtiene la información del numero de giros realizados por la llanta. El chicote se conecta mecánicamente al Impulsor del sistema y este, alimenta a las interfases correspondientes. FLOTADOR DE COMBUSTIBLE: Es un dispositivo que cambia de posición en función a la cantidad de combustible presente en el deposito, el cambio de posición genera cambios de resistencia eléctrica en la resistencia variable que forma parte del flotador. Es decir, ofrece una resistencia eléctrica, inversamente proporcional a la cantidad de combustible presente en el vehículo. BATERIA ELÉCTRICA: La batería suministra la energía eléctrica necesaria para el automóvil y es uno de los dispositivos mas importantes para el funcionamiento del automóvil, así como de la mayoría de los accesorios de este, como son: La radio, el aire acondicionado, las luces internas, los cuartos y faros. Aun mas, en el momento del encendido del automóvil, la batería es importantemente solicitada. Por esto, es importante que la batería se encuentre en buen estado.

La interfase de batería adquiere el voltaje que genera la batería, lo regula y lo entrega a la UCP para su procesamiento, análisis y presentación de resultados. DISTRIBUIDOR: Es la fuente de información que nos permite conocer el régimen de giro expresado en revoluciones por minuto (R.P.M.) a que esta sometido el motor. La señal generada por el distribuidor es básicamente un tren de pulsos eléctricos. La señal es filtrada y procesada por la interfase de tacómetro para presentar el régimen de giro del automóvil con rangos normales y críticos de frecuencia. CARROCERÍA Y PUNTOS DE ACCESO: La carrocería, puertas, cofre y cajuela son fuentes de información que permiten detectar accesos no autorizados y activar la ACR, mediante sensores electromagnéticos de apertura en los puntos de acceso, así como sensores de movimiento en la carrocería. Fuentes de información vs funciones SICV FUNCIÓN FUENTES DE INFORMACIÓN INFORMACIÓN GENERADA ODO Chicote y teclado Distancia recorrida [km]. Reset

VEL Chicote Velocidad [km/h]

COM Flotador de combustible Volumen ocupado (%)

BAT Batería eléctrica Condición eléctrica de la batería

ACR sensores de apertura, movimiento y teclado acciones preventivas y/o defensivas

ECO datos de ODO y de COM Rendimiento de combustible [km/l]

DTE datos de ECO y COM Distancia que puede alcanzar con el combustible remanente en el deposito. [km]

TAC Alternador régimen de giro del motor (R.P.M.)

Page 9: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

9

ENTRADA Y SALIDA DE DATOS:

La versión prototipo, cuenta con un teclado de 25 teclas: (0,1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, F1, F2, F3, F4, F5, F6, F7, ESC y reset) con este, el usuario selecciona la función deseada, obtiene información actualizada, controla la ACR, o reinicia los registros del sistema. En una versión posterior, podrá simplificarse el teclado con la finalidad de reducir hardware y con ello costos y espacio. El menú de funciones y la información, se presenta mediante caracteres alfanuméricos representados por 16 displays de 7 segmentos.

PRESENTACIÓN DE LA INFORMACIÓN

La información se presenta en un arreglo de dieciséis displays, y la información relativa a cada uno de los parámetros procesados cuenta con un espacio de presentación, al cual denominamos "área de lectura". Cada área de lectura cuenta con el numero de dígitos alfanuméricos necesario para el desplegado total de la información correspondiente, cada área de lectura se implemento en base a las características de la información que presentara al usuario. AREAS DE LECTURA DEL TABLERO DE DESPLIEGUE Distribución básica: DF DE DD DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 v 1 1 0 c 0 7 0 d 1 5 0

Velocidad [Km./h] Combustible [%] Odómetro [Km.] VELOCIDAD:

El área de lectura de velocidad consta de tres dígitos, los cuales permiten la representación de un rango numérico que va de 000 a 200 kilómetros por hora. COMBUSTIBLE:

La cantidad de combustible presente en el deposito, se presenta con tres dígitos, los cuales presentan numéricamente el porcentaje promedio del volumen ocupado por combustible en el tanque del automóvil. El rango de despliegue será de 000 a 100 %. Cuando el deposito este totalmente vacío, la lectura será "000" y cuando este se encuentre totalmente lleno la lectura será "100". ODOMETRO:

La distancia es presentada mediante tres dígitos que permiten la presentación de 000 a un máximo de 999 kilómetros. La lectura 000 será presentada al realizarse la operación de reset de ODO con la función F6 o cuando el sistema sobrepase los 999.9 kilómetros. Esta información se actualiza cada kilómetro recorrido por el automóvil. BATERIA ELÉCTRICA:

El despliegue de nivel de batería se dará por medio de tres niveles: • Nivel Aceptable : Sin presentación • Nivel critico bajo: LO • Nivel Excesivo: HI

Display de 7 segmentos

Page 10: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

10

Cuando el voltaje de la batería sea adecuado no se presentara señal alguna. Las señales de nivel critico

"LO" y "HI" se mostraran cuando el nivel de voltaje de la batería este por debajo del nivel mínimo requerido o al detectarse un nivel excesivo de voltaje.

FUNCIÓN ESPECIAL DTE

Calcula la distancia en kilómetros que se puede recorrer con la cantidad de combustible presente en el

deposito. Los datos presentados por esta función tendrán un rango de 000 a 999 km. En la implementación del área de lectura en tres dígitos para el desplegado de los valores relativos a esta función se tomaron en cuenta los siguientes criterios:

• Los automóviles para los que esta diseñado el sistema cuentan con depósitos de combustible de

volúmenes de 20, 40 o 60 litros. • La distancia que puede recorrer un vehículo depende directamente del volumen de combustible que

puede almacenar su deposito y del rendimiento de combustible en Kilómetros por litro. Es decir: Distancia [km.] = Cantidad de combustible [lt] x Rendimiento [km./lt]

• Considerando un deposito de combustible con capacidad de 20 litros, para que el automóvil pueda

recorrer 999 kilómetros, se requiere que este tenga un rendimiento de: 999/20 = 49.95 km./lt. Para depósitos de combustible de 40 y 60 litros se requiere un rendimiento de 24.97 y de 16.65 km./lt. respectivamente; Tomando en cuenta los rendimientos reales de combustible que presentan los automóviles actuales, estas cifras no son alcanzadas aun en las mejores condiciones del automóvil y en las mejores condiciones de manejo.

• Por ejemplo, para un automóvil con tanque de 60 litros y un consumo de 14 km/l se podrá recorrer

una distancia máxima de 840 km. FUNCIÓN ESPECIAL ECO

Define el rendimiento del automóvil con relación al numero de kilómetros recorridos por cada litro de combustible. Este valor aun en las mejores condiciones, difícilmente alcanzara un rendimiento real de 15 kilómetros/litro. Esta área de lectura consta de dos dígitos numéricos. Por ejemplo la lectura 12 Implica que las condiciones del vehículo en ese momento han permitido recorrer 12 kilómetros por cada litro de combustible.

Page 11: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

11

ANÁLISIS Y DISEÑO DEL SISTEMA:

Las señales que son recibidas y procesadas por la UCP son las siguientes: • código del perímetro de llanta • pulsos de giro de llanta • señal de voltaje de velocidad • señal de voltaje de combustible • señal de voltaje de batería • código del teclado • señales de la ACR (alarma contra robo)

Las respuestas generadas son:

• Información general: distancia recorrida, velocidad, régimen de giro del motor, cantidad remanente de combustible y estado de la batería eléctrica.

• Niveles críticos y funciones especiales: nivel critico de combustible, estado anormal de carga de la batería eléctrica, ECO y DTE)

• Respuestas preventivas y/o defensivas: Alarmas contra robo y bloqueo de arranque del automóvil. DIAGRAMA DE FLUJO:

Las señales que conforman la información administrada por el sistema son:

tacómetro microswitch codificador del perímetro de llanta interfases de

o velocidad o distancia o combustible o batería

teclado alarma contra robo.

El tacómetro no es procesado por la UCP y se presenta en una barra calibrada de leds. El microswitch

codificador, permite configurar el tamaño de los neumáticos del automóvil. Las interfases de velocidad, distancia, combustible y batería generan las señales correspondientes a cada uno de estos aspectos.

El teclado recibe las instrucciones y solicitudes del usuario y la alarma contra robo, monitorea el estado

del vehículo y realiza las acciones correspondientes en caso necesario.

Page 12: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

12

DIAGRAMA

Interfase de Tacómetro

micro switch/Perímetro llanta

Interfase de Velocidad

Interfase de Distancia

Interfase de combustible

Interfase de Batería

Teclado

Interfase de Alarma Contra robo

Información general

Información de niveles críticos

Respuestas contra robo

UCP

Información General: Tacómetro [r.p.m.] Velocidad [km/h] Odómetro [km] Nivel de combustible [%] Nivel de batería [ok] Funciones especiales:

o ECO [km/l] o DTE [km]

Información de niveles críticos:

Tacómetro (alto) Nivel de combustible (bajo) Nivel de batería (bajo, alto)

Respuestas contra robo:

Preventivas Defensivas

Page 13: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

13

CAPITULO II HARDWARE DEL SISTEMA EL MICROCONTROLADOR 8031

El microcontrolador 8031 es uno de los miembros de la familia MCS-51 de Intel. Esta familia fue diseñada para usarse en aplicaciones de tiempo real, control industrial y en periféricos de computadora.

El 8031 puede direccionar 64 kbytes de memoria de programa externa, además de 64 kbytes de

memoria de datos externa. Además, el 8031, cuenta con: 128 bytes de memoria de datos interna, y una parte de ella, se puede direccionar por bit. Una área de 128 bytes de memoria interna asignada para los, SFRs, registros de funciones especiales. Hasta el momento, solo se pueden usar 21 de ellos, pues los demás se han reservado para expansiones futuras.

Una unidad de procesamiento central, Cuatro puertos programables de entrada / salida (32 líneas en total). Algunos de ellos se usan para el manejo de la memoria externa.

2 timers/contadores de 16 bits cada uno. 1 puerto serial circuiteria interna para el oscilador del reloj 4 bancos de registros (cada banco de 8 registros) localizados en la memoria de datos interna. 5 líneas de interrupción (dos de fuentes externas y 3 de fuentes internas: dos de los timers 0 y 1 y otra

del puerto serial con dos niveles de prioridad). ALIMENTACIÓN:

El sistema cuenta con dos niveles de alimentación de corriente directa, un nivel esta dedicado a la alimentación de la UCP y de dispositivos que requieren niveles de alimentación TTL, (+ 5v), el otro nivel, es de +12v dedicado a la alimentación de detectores, medidores e interfases, así como a la alimentación de dispositivos de la ACR.

Es importante que los datos cargados en memoria RAM se conserven y que la ACR se mantenga alimentada, por esto, la alimentación de la RAM y de la ACR es constante. La alimentación eléctrica de las interfases y de la UCP esta regulada por circuitos electrónicos basados en transistores de potencia y reguladores integrados de la familia LM78XX tal y como se muestra en los diagramas eléctricos del sistema. SWITCH DE CODIFICACIÓN DE LLANTAS

La información que define la dimensión de la llanta, se genera mediante un microswitch de 8

interruptores (8 bits), con el, se define el código binario correspondiente al diámetro externo de las llantas. El microswitch se conecta mediante un buffer con estado de alta impedancia al puerto P1 del

microcontrolador 8031, se habilita con el vector de direcciones 2800H-2FFFH y se deshabilita con cualquier otra dirección. La palabra dispuesta en el microswitch con rango 00000000B (0D) a 11111111B (255D) corresponde al código correspondiente del diámetro externo de la llanta. Por disposición de Hardware el código implementado será en orden inverso, es decir: 11110101 en los interruptores 1 al 8 respectivamente.

El sistema fue diseñado para poder soportar llantas de diferentes perímetros, sin que se requiera de

ajustes costosos. Se pueden configurar hasta 255 (11111111B) llantas de diferentes dimensiones, lo cual implicara ajustes de software en el sistema. Sin embargo, lo importante es que exista la posibilidad de ampliar el numero de opciones para el sistema.

Page 14: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

14

RELOJ DEL SISTEMA

La señal del reloj interno se genera mediante un cristal de 12 MHz (f =12 MHz), y como el periodo "T" es el inverso de la frecuencia: T= 1/f= 1/(12 MHz) T = 8.33x10-8 s Un ciclo de maquina (CM) es igual a 12 periodos de oscilador y por lo tanto: 1 CM = 12T = 12 * (8.33x10-8): 1 CM = 1 µs Un ciclo de maquina es de 1 µs y por lo tanto la frecuencia en ciclos de maquina es: f = 1/1x10-6 = 1 MHz. Ejemplo: El sistema usa un, C.A.D, convertido analógico/digital. que tiene como tiempo máximo de conversión 116 µs y si se tienen las siguientes instrucciones:

MNEMÓNICO CICLOS DE MAQUINA NOP 1 NOP 1 INC R0 1 CJNE 2 TOTAL 5

(5 CICLOS DE MAQUINA) * (23 ITERACIONES) = 115 µs Este tiempo sumado a dos instrucciones NOP es tiempo suficiente para que el CAD termine de convertir. MEMORIA

SICV cuenta con una estructura bien definida de memoria y de registros de almacenamiento de información: Memoria ROM: en donde se almacena el programa del sistema, las constantes y valores de registro. Memoria RAM: Almacena las variables, datos y resultados obtenidos en los procesos. Registros propios del microcontrolador que permiten almacenar y controlar la información requerida durante la ejecución del programa y la configuración de sus diferentes modos de operación. MEMORIA RAM INTERNA:

El CI 8031 cuenta con memoria RAM interna de 128 localidades de 8 bits cada una es decir, cuenta con 128 bytes (128x8) bits, con direcciones: 00d a 127d, 00H a 07FH MEMORIA RAM EXTERNA: El sistema utiliza una memoria RAM estática (CI 6116) de 2,048 localidades de 8 bits, es decir tenemos 2 kilo Bytes (2k x 8 bits), con direcciones de memoria que van de la dirección 00d, (00H) a 2047d, (07FFH). En la memoria RAM se almacena la información que requiere ser accesada y actualizada de manera constante, así como los datos introducidos por el usuario. Físicamente la memoria RAM externa de SICV esta mapeada entre las direcciones: 2000H a 27FFH.

Page 15: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

15

MEMORIA ROM EXTERNA:

El microprocesador 8031 no cuenta con memoria ROM interna por lo cual se implemento una memoria ROM externa lo suficientemente grande para almacenar el programa SICV.

Esta implementada mediante un EPROM CI 2764 de 8,192 localidades de memoria de 8 bits cada

una de ellas es decir tiene una memoria de 8 kilobytes. La memoria esta mapeada físicamente en las direcciones: 0000d a 8191d, (0000H a 1FFFH). La memoria ROM almacena el programa, los datos, vectores de interrupciones y las constantes que requiere el sistema durante su proceso. REGISTROS DE FUNCIONES ESPECIALES:

Adicionalmente a la memoria interna y externa, el 8031 cuenta con 21 registros de funciones especiales (SFRs). Una diferencia importante entre la memoria interna y los SFRs es que los 128 bytes internos se pueden accesar de manera directa (MOV data addr) o indirecta (MOV @Ri), mientras que los SFR`s solo pueden ser direccionados en forma directa. Los 128 bytes de RAM interna están divididos en tres áreas que son:

1. Banco de registros 0-3: Direcciones 00H a 1FH (32 bytes). Después del reset el banco que se usa por default es el 0, aun que se puede seleccionar otro banco por software. Cada uno de los bancos contiene 8 registros, los cuales están numerados del 0 al 7. La ejecución del reset inicializa el stack pointer en la localidad 07H y el stack coincidirá con el segundo banco de registros por lo tanto, si se desea usar mas de un banco de registros hay que inicializar el stack pointer en una localidad superior.

2. Área direccionable por bit, esta se encuentra de la dirección 20H a la 2FH con un total de 16 bytes. Cada uno de los 128 bits de esta área puede ser direccionado directamente (0-7FH), en ensamblador se puede hacer referencia a estos bits de dos maneras: Mediante sus direcciones directas (0 - 7FH) y la otra es con referencia a sus bytes (20H-2FH). De esta manera los bits 0 - 7 pueden referirse como los bits 20.0-20.7 o el bit 8 como el 21.0 y así sucesivamente. Cada uno de los 16 bytes de esta área también puede ser direccionado como byte.

3. Área multiusos: Se encuentra entre los bytes 30H-7FH y puede usarse como área de datos del usuario o cualquier otro uso.

Los SFRs (special function registers) conque cuenta el 8031 son: REGISTRO DIRECCIÓN DESCRIPCIÓN

ACC 0E0H Es el registro acumulador. Es el registro mas usado en el juego de instrucciones. B 0F0H El registro B se usa durante las operaciones de manipulación y división. Para

otras instrucciones puede ser usado como un registro mas PSW 0D0H (Program Status Word) Contiene información del status del programa SP 81H (stack pointer) Es un registro de ocho bits. Se incrementa antes de meter datos

en la pila, ya sea por instrucciones PUSH o CALL. El stack o pila, puede residir en cualquier lugar de la memoria de datos interna. Después de un reset, el SP se inicializa con un valor 07H, lo que hace que el stack comience en la localidad 08H

DPTR 83H y 82H (data pointer) El registro DPTR esta formado de un byte alto (DPH) y uno bajo (DPL). Su función es guardar una dirección de 16 bytes

P0-P3 80H, 90H, 0A0H, 0B0H

(puertos 0 a 3) Latches de los puertos de “entrada / salida” 0 a 3

SBUF 99H (búfer de transmisión y recepción) Búfer de transmisión y de recepción (TH0, TL0), (TH1,TL1)

8CH, 8AH, 8DH, 8BH

(timer/counter 0 y 1). Registros de los timer/counter 0 y 1 respectivamente. TH corresponde al byte alto y TL al byte bajo

IP 0B8H (interrupt priority) Registro de control para configurar la prioridad de las interrupciones

IE 0A8H (interrupt enable) Registro de control para habilitar las interrupciones TMOD 89H (timer/counter mode control) Registro de control para configurar el modo de

operación de los timer/counter TCON 88H (timer/counter control) Registro de control para arrancar o parar los timer/counter SCON 98H (serial control) Registro de control y estatus del puerto serial

Page 16: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

16

REGISTROS DE PROGRAMA Mapa de registros:

MAPA DE DIRECCIONES DE MEMORIA SICV

78 ODODECEN 79 ODOUNIDA 7A DECEUNID 7B PERIMETR 7C ODOVUELT 7D ODOALTO 7E ODOMEDIO 7F ODOBAJO 70 VVELOCID 71 VCOMBUST 72 73 74 75 76 77 ODOCENTE68 RGTRCVE0 69 RGTRCVE1 6A RGTRCVE2 6B RGTRCVE3 6C DATO 6D TECLA 6E CONTCLAV 6F FALLOCVE 60 DF 61 DFV 62 63 64 65 66 67 FALLOTEC 58 D7 59 D8 5A D9 5B DA 5C DB 5D DC 5E DD 5F DE 50 D0V 51 D0 52 D1 53 D2 54 D3 55 D4 56 D5 57 D6 48 VELOCIDA 49 VD1 4A VR1 4B VD2 4C VR2 4D TPV1 4E TPV2 4F TPV3 40 41 42 43 44 45 46 47 38 39 3A 3B 3C 3D 3E 3F 30 31 32 33 34 35 36 37 28 29 2A 2B 2C 2D 2E 2F SP 20 ACRFLAG 21 REGVISIT 22 ODOFLAG 23 24 25 26 27 18 19 1A 1B INTTIM1 1C 1D 1E 1F 10 11 12 INTTEC 13 INTTECLA 14 15 16 17

8 9 0A INTODO 0B INTODOPU 0C 0D 0E 0F 0 1 2 3 INTEXT0 4 5 6 7

Localidades de memoria que almacenan variables, constantes, direcciones de registros de control, interrupciones, y resultados que

se presentan en displays alfanuméricos

Page 17: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

17

CONFIGURACIÓN DE LOS SFRs: Los SFRs, son configurados para satisfacer cada una de las funciones que ejecutara el sistema, por lo cual, se presenta en primer lugar la descripción general de los SFRs, y la configuración correspondiente para la ejecución del sistema. TCON: 00000000= 00H Registro de control Timer/Counter. Direccionable por bit

ODOMETRO TECLADO ALARMA CONTRA ROBO TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 0 0 0 0 0 0 0 0

Timer 1 bandera de sobre flujo

Timer/counter 1: 1 inicia, 0 se

detiene

Timer/cntr 0, bandera de sobre flujo

Timer/counter 0: 1 inicia, 0 se detiene

Int.Ext.1 controlada

por hardware

Int.Ext.1, 1 define disparo por flanco de bajada, 0 define disparo por nivel bajo

Int.Ext.0 controlada

por Hardware

Int.Ext.0, 1 define disparo por flanco de

bajada, 0 define disparo por nivel bajo

TMOD: 00110110= 36H Registro de control de modo de Timer/Counter. No direccionable por bit

ODOMETRO TIMER 1 TIMER 0

TMOD.7 (MSB) TMOD.6 TMOD.5 TMOD.4 TMOD.3 TMOD.2 TMOD.1 TMOD.0 (LSB)

GATE C/T M1 M0 GATE C/T M1 M0 0 0 1 1 0 1 1 0

Cuando TRx (en TCON) esta en 1 y GATE=1 el Timer/Counter 1 correrá solo mientras la terminal INT1 este en 1 (Control por hardware). Cuando GATE = 0, el TIMER/COUNTER correrá solo mientras TR1 = 1 (control por software)

Selector de Timer/Counter, 0=Timer toma como entrada el reloj del sistema, 1=Counter, toma como entrada la terminal de entrada T1

bit selector de modo

bit selector de modo

Cuando TRx (en TCON) esta en 1 y GATE =1 el Timer/Counter 0 correrá solo mientras la terminal INT0 este en 1 (Control por hardware). Cuando GATE = 0, el TIMER/COUNTER correrá solo mientras TR0 = 1 (control por software)

Selector de Timer/Counter, 0=Timer toma como entrada el reloj del sistema, 1=Counter, toma como entrada la terminal de entrada T0

Bit selector de modo

bit selector de modo

M1 M0 MODO DE OPERACIÓN DESCRIPCIÓN 0 0 0 Timer de 13 bits 0 1 1 Timer/counter de 16 bits 1 0 2 Timer/counter con auto recarga de 8 bits 1 1 3 (Timer0):

TL0 funciona como Timer/counter de 8 bits controlado por los bits de control del Timer 0. TH0 funciona como Timer de 8 bits y es controlado por los bits de control del Timer1

1 1 3 (Timer 1) Timer/Counter 1 detenido

Page 18: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

18

SCON: 00000000= 00H Registro de control del puerto serial (No usado)

SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0 SM0 SM1 SM2 REN TB8 RB8 T1 R1

0 0 0 0 0 0 0 0 Especifica modo de

puerto serial Ver nota 1

Especifica modo de

puerto serial Ver nota 1

Habilita la característica

de comunicación

en multiproceso en modos 2 y

3. En modo 2 o 3, si SM2 esta en 1, entonces

R1 no será activado si el noveno bit del dato (RB8) es 0. En modo 1,

si SM2=1 entonces, R1

no será activado si no es recibido un bit de parada

valido. En modo 0,

SM2 debe ser 0.

Habilita la recepción

serial. Se pone en uno por

software para habilitar la

recepción y se pone en cero por software

para deshabilitarla

Es el 9º bit de dato que será transmitido en modos 2 y 3.

Puesto en uno o en cero por

software como se desee.

En modos 2 y 3 es el 9º bit de datos, que fue recibido. En modo 1, si

SM2=0, RB8 es el bit de

parada que fue recibido.

En modo 0 RB8 no es

usado.

Es la bandera de interrupción de transmisión. Puesta en uno por hardware

al final del tiempo del 8º bit en modo 0, o al principio

del bit de parada en los otros modos, en cualquier transmisión

serial. Debe ser

puesto en cero por software.

Es la bandera de interrupción de recepción. Puesta en uno por hardware

al final de tiempo del 8º

bit en modo 0 o a la mitad del tiempo del bit de parada en

los otros modos, en cualquier recepción serial (ver

excepción en SM2).

Debe ser puesta en cero por software.

Nota 1: SM0 SM1 MODO DESCRIPCIÓN RANGO DE FRECUENCIA

0 0 0 Registro de corrimiento f.osc/12 0 1 1 UART de 8 bits Variable 1 0 2 UART de 9 bits f.osc/64 o f.osc/32 1 1 3 UART de 9 bits Variable

PCON: 00000000= 00H Registro de control de potencia (No usado)

PCON.7 PCON.6 PCON.5 PCON.4 PCON.3 PCON.2 PCON.1 PCON.0 SMOD - - - GF1 GF0 PD IDL

0 0 0 0 0 0 0 0 Bit de doble velocidad en

baudios. Cuando esta en 1, y el Timer 1 es usado para

generar el rango de baudios, y el puerto serial es

usado en modos 1, 2 o 3.

Reservado Reservado Reservado Bit bandera de propósito general

Bit bandera de propósito general

Bit de apagado de potencia.

Poniendo este bit en uno, se

activa la operación de apagado de

potencia.

Bit de modo de espera inactiva. Poniendo este bit en

uno, se activa el modo de

espera inactiva.

Page 19: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

19

PSW: 00000000= 00H Program status Word. Direccionable por bit

PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 CY AC F0 RS1 RS0 OV - P 0 0 0 0 0 0 0 0

Bandera de acarreo

Bandera auxiliar de acarreo

Bandera 0 disponible al usuario para uso general

Bit selector de banco de registros bit 1

Bit selector de banco de registros bit 0

Bandera de sobre flujo

No implementado

Bandera de paridad, puesto en 1 o 0 por Hardware cada ciclo de instrucción para indicar si el numero de bits 1 es par o impar en el acumulador

IE: 10000110= 86H Registro de habilitación de interrupciones. Direccionable por bit

TECLADO ODOMETRO ALARMA CONTRA

ROBO IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 EA - ET2 ES ET1 EX1 ET0 EX0 1 0 0 0 0 1 1 0

Deshabilita todas las interrupciones, si EA=0 ninguna interrupción será atendida, sí EA=1 cada Interrupción se controlara por separado limpiando o poniendo en 1 su bit habilitador.

No implementado

Habilita- deshabilita sobre flujo del Timer 2 (solo para el 8052)

Habilita- deshabilita la interrupción del puerto serial

Habilita- deshabilita la interrupción de sobre flujo del Timer 1

Habilita- deshabilita la interrupción Externa 1

Habilita–deshabilita la interrupción de sobre flujo del Timer 0

Habilita–deshabilita la interrupción Externa 0

Si el bit es 0, la interrupción correspondiente es deshabilitada, si es 1 se habilita. IP: 00000100= 06H Registro de prioridad de interrupción. Direccionable por bit.

TECLADO ODOMETRO ALARMA CONTRA ROBO

IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 - - PT2 PS PT1 PX1 PT0 PX0 0 0 0 0 0 1 1 0

No implementado

No implementado

Define nivel de prioridad Timer 2 (solo 8052)

Define nivel de prioridad de puerto serial

Define nivel de prioridad de int. de Timer 1

Define nivel de prioridad de int. Externa 1

Define nivel de prioridad de int. De Timer 0

Define nivel de prioridad de int. externa 0

SP = #07H

Page 20: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

20

LOS SFR`S EN LOS PROCESOS CONFIGURACIÓN DE INICIACIÓN TCON: 00000000 = 00H Registro de control Timer/Counter. Direccionable por bit

ODOMETRO TECLADO ALARMA CONTRA ROBO TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 0 0 0 0 0 0 0 0

Timer 1 bandera de sobre flujo

Timer/counter 1 se detiene

Timer 0 bandera de sobre flujo

Timer/counter 0 se detiene

Int.Ext.1 controlada

por hardware

Int.Ext.1, define disparo por nivel bajo

Int.Ext.0 controlada

por Hardware

Int.Ext.0, define disparo por nivel

bajo TMOD: 00110110= 36H Registro de control de modo de Timer/Counter. No direccionable por bit

ODOMETRO TIMER 1 TIMER 0

TMOD.7 (MSB)

TMOD.6 TMOD.5 TMOD.4 TMOD.3 TMOD.2 TMOD.1 TMOD.0 (LSB)

GATE C/T M1 M0 GATE C/T M1 M0 0 0 1 1 0 1 1 0

GATE = 0, el TIMER/COUNTER correrá solo mientras TR1 = 1 (control por software)

Selector de Timer/Counter, 0=Timer toma como entrada el reloj del sistema.

Modo 3 Timer 1

timer/counter 1 detenido

GATE = 0, el Timer/Counter correrá solo mientras TR0=1 (control por software)

Selector de Timer/Counter, 1=Counter, toma como entrada el pin de entrada T0

Modo 2. TL0 es un contador de 8 bits con auto recarga, al presentarse sobre flujo en TL0, se pone en uno la bandera TF0 y también TL0 se recarga con el valor contenido en TH0.

SCON: 00000000= 00H Registro de control del puerto serial (No usado)

SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0 SM0 SM1 SM2 REN TB8 RB8 T1 R1

0 0 0 0 0 0 0 0 Registro de corrimiento

f.osc/12 En modo 0,

SM2 debe ser 0.

Se pone en cero por

software para deshabilitar la

recepción serial.

Es el 9º bit de dato que será transmitido en modos 2 y 3.

Puesto en uno o en cero por

software como se desee.

En modo 0 RB8 no es

usado.

Bandera de interrupción de

transmisión. Debe ser

puesto en cero por software.

Es la bandera de interrupción de recepción.

Debe ser puesta en cero por software.

PCON: 00000000= 00H Registro de control de potencia (No usado)

PCON.7 PCON.6 PCON.5 PCON.4 PCON.3 PCON.2 PCON.1 PCON.0 SMOD - - - GF1 GF0 PD IDL

0 0 0 0 0 0 0 0 Bit de doble velocidad de

baudios.

Reservado Reservado Reservado Bit bandera de

propósito general

Bit bandera de

propósito general

Bit de apagado de potencia.

Se inactiva la operación de apagado

de potencia.

Bit de modo de espera inactiva.Se inactiva el

modo de espera inactiva.

Page 21: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

21

PSW: 00000000= 00H Program status Word. Direccionable por bit

PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 CY AC F0 RS1 RS0 OV - P 0 0 0 0 0 0 0 0

Bandera de acarreo

Bandera auxiliar de acarreo

Bandera 0 disponible al usuario para uso general

Bit selector de banco de registros bit 1

Bit selector de banco de registros bit 0

Bandera de sobre flujo

No implementado

Bandera de paridad, puesto en 1 o 0 por Hardware cada ciclo de instrucción para indicar si el numero de bits 1 es par o impar en el acumulador

IE: 00000000= 00H Registro de habilitación de interrupciones. Direccionable por bit

IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 EA - ET2 ES ET1 EX1 ET0 EX0 0 0 0 0 0 0 0 0

Deshabilita todas las interrupciones, si EA=0 ninguna interrupción será atendida.

No implementado Deshabilita sobre flujo del Timer 2 (solo para el 8052)

Deshabilita la interrupción del puerto serial

Deshabilita la interrupción de sobre flujo del Timer 1

Deshabilita la interrupción Externa 1

Deshabilita la interrupción de sobre flujo del Timer 0

Deshabilita la interrupción Externa 0

IP: 00000110= 06H Registro de prioridad de interrupción. Direccionable por bit.

TECLADO ODOMETRO ALARMA CONTRA ROBO

IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 0 0 0 0 0 1 1 0

No implementado

No implementado

PT2 Define nivel de prioridad Timer 2 (solo 8052)

PS Define nivel de prioridad. puerto serial.

PT1 Define nivel de prioridad de int. Timer 1

PX1 Define nivel de prioridad de int. Externa 1. (Teclado)

PT0 Define nivel de prioridad de int. Timer 0. (odómetro)

PX0 Define nivel de prioridad de int. externa 0

SP = #07H RESUMEN DE CONFIGURACIÓN DE INICIACIÓN

TCON 00H Timer/Counter 1 off; Timer/Counter 0 off; Disparos por nivel bajo TMOD 36H Timer 1 detenido; Timer 0 Controlado por software; Modo contador; modo operativo 2 SCON 00H Puerto serial no habilitado PCON 00H Control de potencia no habilitado PSW 00H Se inicializa IE 00H Deshabilita toda interrupción IP 06H Alta prioridad en la interrupción de teclado (int. Ext. 1) y de odómetro(Timer 0) SP 07H Inicializa con valor predeterminado

Page 22: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

22

CONFIGURACIÓN DE LOS SFR`S PARA EL ODOMETRO TCON: 00010000= 10H Registro de control Timer/Counter. Direccionable por bit

ODOMETRO TECLADO ALARMA CONTRA ROBO TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 0 0 0 1 0 0 0 0

Timer 1 bandera de sobre flujo

Timer/counter 1 se detiene

Timer 0 bandera de sobre flujo

Timer/counter 0 se inicia.

Int.Ext.1 controlada

por hardware

Int.Ext.1, define disparo por nivel

bajo.

Int.Ext.0 controlada

por Hardware

Int.Ext.0, define disparo por nivel

bajo

TMOD: 00110110= 36H Registro de control de modo de Timer/Counter. No direccionable por bit

ODOMETRO TIMER 1 TIMER 0

TMOD.7 (MSB) TMOD.6 TMOD.5 TMOD.4 TMOD.3 TMOD.2 TMOD.1 TMOD.0 (LSB)

GATE C/T M1 M0 GATE C/T M1 M0 0 0 1 1 0 1 1 0

GATE = 0, el TIMER/COUNTER correrá solo mientras TR1 = 1 (control por software)

Selector de Timer/Counter, Timer toma como entrada el reloj del sistema.

Modo 3: Timer 1 detenido.

El TIMER/COUNTER correrá solo mientras TR0 = 1 (control por software)

Selector de Timer/Counter: Counter, toma como entrada el pin de entrada T0

Modo 2. TL0 es un contador de 8 bits con auto recarga, al presentarse sobre flujo en TL0, se pone en uno la bandera TF0 y también TL0 se recarga con el valor contenido en TH0.

SCON: 00000000= 00H Registro de control del puerto serial (No usado) SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0

SM0 SM1 SM2 REN TB8 RB8 T1 R1 0 0 0 0 0 0 0 0

f.osc/12 En modo 0, SM2 debe

ser 0.

Habilita la recepción

serial. se pone en cero por

software para deshabilitarla

Es el 9º bit de dato que será transmitido

en modos 2 y 3. Puesto en uno o en

cero por software como se desee.

En modo 0 RB8 no es

usado.

Es la bandera de interrupción de transmisión.

Debe ser puesto en cero por software.

Es la bandera de interrupción de recepción.

Debe ser puesta en cero por software.

PCON: 00000000= 00H Registro de control de potencia (No usado)

PCON.7 PCON.6 PCON.5 PCON.4 PCON.3 PCON.2 PCON.1 PCON.0 SMOD - - - GF1 GF0 PD IDL

0 0 0 0 0 0 0 0 Bit de doble velocidad de baudios. Cuando

esta en 1, y el Timer 1 es usado para generar

el rango de baudios, y el puerto serial es usado

en modos 1, 2 o 3.

Reservado Reservado Reservado Bit bandera de propósito

general

Bit bandera de

propósito general

Bit de apagado de potencia.

Poniendo este bit en uno, se activa la

operación de apagado de

potencia.

Bit de modo de espera inactiva.

Poniendo este bit en uno, se activa

el modo de espera inactiva.

Page 23: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

23

PSW: 00000000= 00H Program status Word. Direccionable por bit

PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 CY AC F0 RS1 RS0 OV - P 0 0 0 0 0 0 0 0

Bandera de acarreo

Bandera auxiliar de

acarreo

Bandera 0 disponible al usuario para uso general

Banco de registros 0 Bandera de sobre flujo

No implementado

Bandera de paridad, puesto en 1 o 0 por Hardware cada ciclo de

instrucción para indicar si el numero de bits 1 es par o impar en el

acumulador IE: 10000110= 86H Registro de habilitación de interrupciones. Direccionable por bit

TECLADO ODOMETRO ALARMA CONTRA

ROBO IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 EA - ET2 ES ET1 EX1 ET0 EX0 1 0 0 0 0 1 1 0

Cada Interrupción se controlara por separado limpiando o poniendo en 1 su bit habilitador.

No implementado

solo para el 8052

Deshabilita la interrupción del puerto serial.

Deshabilita la interrupción de sobre flujo del Timer 1.

Habilita la interrupción Externa 1 (teclado)

Habilita la interrupción de sobre flujo del Timer 0 (odómetro)

Deshabilita la interrupción Externa 0

IP: 00000110= 06H Registro de prioridad de interrupción. Direccionable por bit.

TECLADO ODOMETRO ALARMA CONTRA ROBO

IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 - - PT2 PS PT1 PX1 PT0 PX0 0 0 0 0 0 1 1 0

No implementado

No implementado

Define nivel de prioridad Timer 2 (solo 8052).

Define nivel de prioridad de puerto serial.

Define nivel de prioridad de int. de Timer 1.

Define nivel de prioridad de int. externa 1.

Define nivel de prioridad de int. De Timer 0.

Define nivel de prioridad de int. externa 0.

SP = #07H RESUMEN DE CONFIGURACIÓN PARA ODOMETRO

TCON 10H Se inicia Timer/Counter 0 TMOD 36H Se detiene Timer 1; Control del Timer 0 por software, entrada por T0, Modo 2: 8 bits con auto recarga SCON 00H No se usa PCON 00H No se usa PSW 00H No se usa IE 86H Se habilitan interrupciones, se habilita la int. Ext. 1 (Teclado), habilita int. De sobre flujo del Timer 0 (odómetro) IP 06H Prioridad de int. Ext. 1 (teclado) y Timer 0 (odómetro) SP 07H Inicializa con valor predeterminado

Page 24: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

24

CONFIGURACIÓN DE LOS SFR´S PARA LA ALARMA CONTRA ROBO TCON: 00010000= 10H Registro de control Timer/Counter. Direccionable por bit

ODOMETRO TECLADO ALARMA CONTRA ROBO TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 0 0 0 1 0 0 0 0

Timer 1 bandera de sobre flujo

Timer/counter 1 se detiene

Timer 0 bandera de sobre flujo

Timer/counter 0 se inicia.

Int.Ext.1 controlada

por hardware

Int.Ext.1, define disparo por nivel

bajo.

Int.Ext.0 controlada

por Hardware

Int.Ext.0, define disparo por nivel

bajo

TMOD: 00110110= 36H Registro de control de modo de Timer/Counter. No direccionable por bit

ODOMETRO TIMER 1 TIMER 0

TMOD.7 (MSB) TMOD.6 TMOD.5 TMOD.4 TMOD.3 TMOD.2 TMOD.1 TMOD.0 (LSB)

GATE C/T M1 M0 GATE C/T M1 M0 0 0 1 1 0 1 1 0

GATE = 0, el TIMER/COUNTER correrá solo mientras TR1 = 1 (control por software)

Selector de Timer/Counter, Timer toma como entrada el reloj del sistema.

Modo 3: Timer 1 detenido.

El TIMER/COUNTER correrá solo mientras TR0 = 1 (control por software)

Selector de Timer/Counter: Counter, toma como entrada el pin de entrada T0

Modo 2. TL0 es un contador de 8 bits con auto recarga, al presentarse sobre flujo en TL0, se pone en uno la bandera TF0 y también TL0 se recarga con el valor contenido en TH0.

SCON: 00000000= 00H Registro de control del puerto serial (No usado) SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0

SM0 SM1 SM2 REN TB8 RB8 T1 R1 0 0 0 0 0 0 0 0

f.osc/12 En modo 0, SM2 debe

ser 0.

Habilita la recepción

serial. se pone en cero por

software para deshabilitarla

Es el 9º bit de dato que será transmitido

en modos 2 y 3. Puesto en uno o en

cero por software como se desee.

En modo 0 RB8 no es

usado.

Es la bandera de interrupción de transmisión.

Debe ser puesto en cero por software.

Es la bandera de interrupción de recepción.

Debe ser puesta en cero por software.

PCON: 00000000= 00H Registro de control de potencia (No usado)

PCON.7 PCON.6 PCON.5 PCON.4 PCON.3 PCON.2 PCON.1 PCON.0 SMOD - - - GF1 GF0 PD IDL

0 0 0 0 0 0 0 0 Bit de doble velocidad de baudios. Cuando

esta en 1, y el Timer 1 es usado para generar

el rango de baudios, y el puerto serial es usado

en modos 1, 2 o 3.

Reservado Reservado Reservado Bit bandera de propósito

general

Bit bandera de

propósito general

Bit de apagado de potencia.

Poniendo este bit en uno, se activa la

operación de apagado de

potencia.

Bit de modo de espera inactiva.

Poniendo este bit en uno, se activa

el modo de espera inactiva.

Page 25: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

25

PSW: 00000000= 00H Program status Word. Direccionable por bit

PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 CY AC F0 RS1 RS0 OV - P 0 0 0 0 0 0 0 0

Bandera de acarreo

Bandera auxiliar de

acarreo

Bandera 0 disponible al usuario para uso general

Banco de registros 0 Bandera de sobre flujo

No implementado

Bandera de paridad, puesto en 1 o 0 por Hardware cada ciclo de

instrucción para indicar si el numero de bits 1 es par o impar en el

acumulador IE: 10000111= 87H Registro de habilitación de interrupciones. Direccionable por bit

TECLADO ODOMETRO ALARMA CONTRA

ROBO IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 EA - ET2 ES ET1 EX1 ET0 EX0 1 0 0 0 0 1 1 1

Cada Interrupción se controlara por separado limpiando o poniendo en 1 su bit habilitador.

No implementado

solo para el 8052

Deshabilita la interrupción del puerto serial.

Deshabilita la interrupción de sobre flujo del Timer 1.

Habilita la interrupción Externa 1 (teclado)

Habilita la interrupción de sobre flujo del Timer 0 (odómetro)

Habilita la interrupción Externa 0

IP: 00000111= 07H Registro de prioridad de interrupción. Direccionable por bit.

TECLADO ODOMETRO ALARMA CONTRA ROBO

IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 - - PT2 PS PT1 PX1 PT0 PX0 0 0 0 0 0 1 1 1

No implementado

No implementado

Define nivel de prioridad Timer 2 (solo 8052).

Define nivel de prioridad de puerto serial.

Define nivel de prioridad de int. de Timer 1.

Define nivel de prioridad de int. externa 1.

Define nivel de prioridad de int. De Timer 0.

Define nivel de prioridad de int. externa 0.

SP = #07H RESUMEN DE CONFIGURACIÓN PARA LA ALARMA CONTRA ROBO

TCON 10H Se inicia Timer/Counter 0 TMOD 36H Se detiene Timer 1; Control del Timer 0 por software, entrada por T0, Modo 2: 8 bits con auto recarga SCON 00H No se usa PCON 00H No se usa PSW 00H No se usa IE 87H Se habilitan interrupciones, se habilita la int. Ext. 1 (Teclado), habilita int. De sobre flujo del Timer 0 (odómetro) y

de int. Ext. 0 (ACR) IP 07H Prioridad de int. Ext. 1 (teclado), Timer 0 (odómetro) e int. Ext 0 (A.C.R. ) SP 07H Inicializa con valor predeterminado

Page 26: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

26

II.I INTERFASES Las interfases del sistema, son circuitos electrónicos especializados que adquieren las señales de cada una de las fuentes de información, una vez que las señales son procesadas, alimentan a la U.C.P. mediante un Convertidor Analógico Digital (C.A.D.). La información es analizada por el sistema, para presentar los resultados obtenidos.

Por la naturaleza hostil del medio y la alta sensibilidad de la UCP a descargas eléctricas no controladas, las señales generadas en las fuentes de información, se filtran, se regulan y se ajustan para eliminar picos, ruido y sobrecargas de voltaje que pudieran dañar al sistema o alterar su funcionamiento normal. INTERFASE DE DISTANCIA (odómetro) CONSIDERACIONES INICIALES PARÁMETROS DE LAS LLANTAS:

R1: Distancia entre el eje y cualquier punto periférico (radio) R2: Distancia entre el eje y la periferia del RIN metálico R3 : Ancho de la cara lateral del neumático

Con estos parámetros tenemos las siguientes relaciones: R1= R2+ R3 El perímetro P de la llanta se define por las siguientes relaciones: P = 2 * pi * R1 P = 2 * pi * (R2+R3)

R2 se mantiene constante, sin embargo hay que mencionar que R3 varia debido a que el neumático es deformado por factores externos como son el peso del automóvil, la irregularidad del terreno, el desgaste normal por uso de los neumáticos, un inflado a diferentes presiones en las llantas, desbalanceo o una mala alineación. Todos estos factores, provocan que el perímetro de medición P, sea una función dependiente de "n" variables, es decir:

P= 2* pi*(R2+ f(n)).

Algunas de estas variables son impredecibles e incontrolables, ¿que es mas impredecible o

incontrolable que la temperatura del asfalto, la irregularidad de caminos de terracería, empedrados o la presencia de un bache que cause una desalineación?. Podemos decir que un sistema de medición de distancia perfecto, tendrá que considerar y contrarrestar las incertidumbres causadas por estos factores.

Consideramos que las características del material, los parámetros de resistencia, el diseño y las

técnicas usadas en la fabricación de los neumáticos modernos, permiten considerar que el neumático es mínimamente deformable. Para este análisis, f(n) se considera una constante. La función f(n) por su complejidad se reserva como objeto de un análisis formal que no será tratado en este proyecto.

INTERFASES 1.- Interfase de distancia 2.- Interfase de velocidad 3.- Interfase de combustible 4.- Interfase de batería 5.- A.C.R. 6.- Tacómetro

Page 27: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

27

Considerando la función: f(n)=R2+ R3 como una constante y definiendo como perímetro de medición

a la función: P = 2 * pi * R1 Un giro completo de llanta equivale al perímetro p que al multiplicarse por el numero de giros

completos n da como resultado la distancia recorrida D. D = p * n PRINCIPIO OPERATIVO

El sistema utiliza un dispositivo mecánico conocido como "impulsor" el cual, es fabricado y vendido en México. Este cuenta con una conexión para el chicote como fuente de información y con dos cables de salida.

Por cada giro completo del chicote, el impulsor cierra dos veces un interruptor interno, generando dos pulsos lógicos bajos por cada giro completo de la llanta, estos pulsos excitan al bloque conformado por dos multivibradores monoestables de la familia TTL encapsulados en un circuito integrado 74123, que apoyados en circuiteria externa generan dos pulsos controlados de 1.4 ms de duración por cada pulso lógico generado por el impulsor. Así, se generan cuatro pulsos lógicos bajos por cada giro completo de los neumáticos.

Al rodar las llantas con una frecuencia f, el impulsor genera pulsos con frecuencia 2f, estos pulsos

excitan al arreglo lógico, el cual genera una señal con frecuencia 4f. Estos pulsos excitan al contador del microcontrolador. Cuatro pulsos generados por la interfase de distancia, representan un giro completo y esto significa que la frecuencia de giro de la llanta es multiplicada por cuatro en la interfase de distancia.

Hay que considerar que la distancia que recorre un vehículo con neumáticos deportivos de radio

pequeño es menor que la distancia que recorre un automóvil con neumáticos de radio mayor, al completar ambos autos el mismo numero de giros completos de los neumáticos. La frecuencia angular dependerá del radio de la llanta, pues a menor radio se tendrá una mayor frecuencia para una velocidad dada.

impulsor

chicote

Llanta

Interfase de distancia

UCP f

2f 4f

Page 28: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

28

ANÁLISIS ODOMETRICO La distancia que recorre el vehículo, se obtiene bajo las siguientes consideraciones:

El producto del número de giros realizados por una llanta, y su longitud perimetral, es una aproximación razonable a la distancia recorrida por el vehículo.

El odómetro, maneja dos niveles de información: o Primero, registra las distancias entre 0 y 999 km, [00H a 3E7H km] o Segundo, cuenta con un registro distancias entre 1000 y 100,000 km.

El sistema cuenta con un microswitch que permite la codificación del perímetro de las llantas. El diámetro externo de las llantas, puede medir entre 0.57658 m (576.58 mm) y 0.75006 m (750.06 mm)

y con ello, el perímetro puede medir entre: 1.81 m y 2.35 m Distancia = numero de giros * perímetro Numero de giros = pulsos/4 perímetro = 2π * radio perímetro = π * diámetro Sustituyendo: D = distancia p = pulsos d = diámetro

Conociendo el diámetro de las llantas, se requiere conocer el numero de giros (y de pulsos) que se deberán completar para que el automóvil recorra un kilómetro. Despejando la variable pulsos de la función (Ec: odo_ 01) tenemos: Así: Ejercicio Nº 1:

Considerando llantas de diámetro externo igual a 632.46 mm, (perímetro de 1.986931 m). Para que se cumpla un kilómetro de recorrido se deben cumplir: pulsos = 4 * D / π * diámetro pulsos = (4 * 1000) / (π * 0.63246m) = 2,013.1542 pulsos Giros = (pulsos / 4) = (2,013.1542 pulsos / 4) = 503.28 giros

Así, el recorrido de un kilómetro, consiste en el conteo de 2013 pulsos o 503 giros completos de las llantas del automóvil.

pulsos = (4 * Distancia)/(π * diámetro) (Ec: odo_ 02)

p = 4 * D/π * d

Distancia = (pulsos/4) * (π * diámetro) (Ec: odo_ 01) D = (π/4) * (p * d) Así:

Page 29: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

29

PULSOS VS DIÁMETRO EXTERNO DE LLANTAS

La siguiente tabla, presenta los valores de diferentes llantas marca Goodyear™, y el numero de pulsos y de giros requeridos para que se recorra un kilómetro. Para mayor referencia consultar el apéndice de Análisis de llantas.

Se marca el registro de llanta que tiene un diámetro externo de 632.46 mm, debido a que este es el

valor promedio de los diferentes neumáticos y será usado como valor de referencia para nuestro análisis.

Para un mejor manejo de la información de los diferentes modelos, valores y dimensiones de llantas, consultar la base de datos adjunta llantas.mdb.

LLANTA 1000 m DIMENSIÓN DIÁMETRO EXTERNO

(mm) PULSOS GIROS

P195/50R15 576.58 2,208.26 552.07 P185/60R14 578.00 2,202.84 550.71 P255/60R15 585.80 2,173.51 543.38 P185/70R13 590.00 2,158.03 539.51 P185/65R14 596.00 2,136.31 534.08 P195/50R16 601.98 2,115.09 528.77 P185/60R15 602.99 2,111.54 527.89 P185/60R15 603.00 2,111.51 527.88 P195/65R14 607.06 2,097.39 524.35 205/50R16 612.14 2,079.98 520.00 P195/60R15 614.68 2,071.39 517.85 195/60R15 615.00 2,070.31 517.58 P185/70R14 615.90 2,067.28 516.82 P205/60R15 624.84 2,037.70 509.43 205/60R15 627.00 2,030.69 507.67 P205/55R16 629.92 2,021.27 505.32 205/55R16 632.00 2,014.62 503.65 205/55R16 632.46 2,013.15 503.29 195/65R15 635.00 2,005.10 501.28 P235/60R14 637.54 1,997.11 499.28 205/65R15 645.16 1,973.53 493.38 P215/50R17 647.95 1,965.03 491.26 P225/55R16 654.00 1,946.85 486.71 225/60R16 676.00 1,883.49 470.87 225/55R17 680.00 1,872.41 468.10 P235/60R16 685.80 1,856.58 464.14 P225/70R15 697.00 1,826.74 456.69 215/65R16 697.99 1,824.15 456.04 P235/70R16 736.09 1,729.73 432.43 255/65R16 737.90 1,725.49 431.37 245/70R16 750.06 1,697.52 424.38

Page 30: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

30

CODIFICACIÓN DE LLANTAS

El sistema cuenta con un micro switch integrado, cuya función consiste en suministrar el código correspondiente a las llantas que tiene instaladas el vehículo. Cada llanta cuenta con un código que varia de acuerdo a su diámetro externo. Para mayor referencia consultar el apéndice de Análisis de llantas, o la base de datos adjunta llantas.mdb.

Dimensión Diámetro Código Código binarioP195/50R15 576.58 1 00000001P185/60R14 578.00 2 00000010P255/60R15 585.80 3 00000011P195/60R14 590.00 4 00000100P185/65R14 596.00 5 00000101P195/50R16 601.98 6 00000110P185/60R15 602.99 7 00000111P185/60R15 603.00 8 00001000P205/55R15 607.06 9 00001001205/50R16 612.14 10 00001010P195/60R15 614.68 11 00001011P195/60R15 615.00 12 00001100P185/70R14 615.90 13 00001101P205/60R15 624.84 14 00001110205/60R15 627.00 15 00001111P205/55R16 629.92 16 00010000205/55R16 632.00 17 00010001P195/65R15 632.46 18 00010010195/65R15 635.00 19 00010011P235/60R14 637.54 20 00010100P205/65R15 645.16 21 00010101P215/50R17 647.95 22 00010110P225/55R16 654.00 23 00010111P225/60R16 676.00 24 00011000225/55R17 680.00 25 00011001P235/60R16 685.80 26 00011010P225/70R15 697.00 27 00011011215/65R16 697.99 28 00011100P235/70R16 736.09 29 00011101255/65R16 737.90 30 00011110245/70R16 750.06 31 00011111

TABLA DE CODIFICACIÓN DE LLANTAS

Page 31: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

31

CONTEO DE PULSOS

Para calcular la distancia recorrida por el vehículo, consideramos que un kilómetro es la distancia básica para el sistema, es decir, el sistema mide la distancia recorrida por el automóvil, cada mil metros.

Como ya se comento, cada giro de la llanta y del chicote de rodamiento, se refleja cuatro pulsos

generados por la interfase de distancia. Estos pulsos son registrados por la UCP y son contabilizados por el registro contador del microcontrolador.

El contador utilizado para este proceso, es el registro Timer Counter 0 del 8031 y el pin utilizado es

el T0 (pin 14). TL0 se configura como contador de 8 bits (0 a FFH), con auto recarga y al presentarse sobre flujo en TL0, se pone en uno la bandera TF0 y TL0 se recarga con el valor contenido en TH0.

El numero de pulsos que se deben completar por cada kilómetro recorrido, dependerá del diámetro

externo de llanta. Así, para medir un kilómetro de distancia recorrida, solo se requiere contar el numero de pulsos

correspondientes a esta distancia, para un diámetro de llantas especifico. Ejemplo: Para un automóvil con llantas de diámetro externo de 632.46 mm, un kilómetro de distancia lo recorrerá al cumplirse: diámetro externo = 0.63246 m

diametroPerimetro *π=

mPerimetro 986931.1= Dividiendo 1000 m entre el perímetro de la llanta, tenemos:

Perimetrogiros ÷= 1000

2887403.503=giros

1549.2013=pulsos El conteo de pulsos se realizara de la siguiente manera:

Sabemos que se deben realizar 503.28 giros completos de las llantas, y por lo tanto, 2013.15 pulsos para alcanzar un kilómetro.

El conteo se realizara mediante la multiplicación del numero de atenciones a interrupción por sobre flujo del registro y el numero adecuado de iteraciones. El resultado será una aproximación, debido a que en esta versión, no se realizara ningún proceso que maneje decimales.

Por ejemplo: Para un diámetro externo de 632.46 mm, se requieren 503.28 giros, 2013.15 pulsos.

Considerando que no se manejaran valores decimales, se redondea al valor inmediato superior: 2014 pulsos.

Se requiere encontrar dos números enteros, menores de 255, (FFH) cuyo producto sea igual o el mas próximo, al numero de pulsos. En este caso podemos ver en la siguiente serie de resultados, que el valor que mas se aproxima a un resultado entero, es el de dividir el numero de pulsos requeridos 2,014 entre 252.

Con esto, podemos tomar como una aproximación, el multiplicar:

20168252 =×

Page 32: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

32

Es decir, realizando esta operación sin manejo de números con punto flotante, llegamos a una

aproximación del numero de pulsos requeridos para poder medir una distancia recorrida de un kilómetro. Ejemplo:

056.82502014023.82512014992.7252201496.7253201492.7254201489.72552014

=÷=÷=÷=÷=÷=÷

Calculando la distancia de un kilómetro mediante la multiplicación de: 252 * 8 = 2016 pulsos y con esta aproximación, en realidad de estará midiendo una distancia:

dpulsosD ××

= π

4

( ) ( ) kmmmD 141.100163246.04

2016≈=××

= π

La siguiente tabla presenta los valores correspondientes a utilizar por el sistema para cada diámetro

externo de las llantas mas comunes:

Presenta el número de identificación del fabricante (Dimensión), su diámetro exterior en milímetros y en metros, la distancia base de medición odométrica, el perímetro correspondiente de la llanta, el número de giros requeridos para completar la distancia base, el número de pulsos requeridos y su valor redondeado (VR), el factor multiplicativo 1, su valor redondeado (VR) y el factor multiplicativo 2, y finalmente los pulsos por contabilizar para definir la distancia base recorrida de un kilómetro.

Page 33: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

33

SICV ANÁLISIS DE PULSOS PARA DIFERENTES DIÁMETROS EXTERNOS DIÁMETRO EXT. DIÁMETRO DISTANCIA PERÍMETRO GIROS PULSOS PULSOS FM1 FM1 FM2 PPC DIMENSIÓN

[mm] [m] [m] [m] /[km] /[km] VR VR pulsos P195/50R15 576.58 0.57658 1000 1.8114 552.07 2,208.26 2209 9.016 9.00 245 2,205 P185/60R14 578.00 0.57800 1000 1.8158 550.71 2,202.84 2203 9.029 9.00 244 2,196 P255/60R15 585.80 0.58580 1000 1.8403 543.38 2,173.51 2174 9.021 9.00 241 2,169 P185/70R13 590.00 0.59000 1000 1.8535 539.51 2,158.03 2159 9.033 9.00 239 2,151 P185/65R14 596.00 0.59600 1000 1.8724 534.08 2,136.31 2137 9.017 9.00 237 2,133 P195/50R16 601.98 0.60198 1000 1.8912 528.77 2,115.09 2116 9.004 9.00 235 2,115 P185/60R15 602.99 0.60299 1000 1.8943 527.89 2,111.54 2112 9.026 9.00 234 2,106 P185/60R15 603.00 0.60300 1000 1.8944 527.88 2,111.51 2112 9.026 9.00 234 2,106 P195/65R14 607.06 0.60706 1000 1.9071 524.35 2,097.39 2098 9.004 9.00 233 2,097 205/50R16 612.14 0.61214 1000 1.9231 520.00 2,079.98 2080 9.004 9.00 231 2,079 P195/60R15 614.68 0.61468 1000 1.9311 517.85 2,071.39 2072 9.009 9.00 230 2,070 195/60R15 615.00 0.61500 1000 1.9321 517.58 2,070.31 2071 9.004 9.00 230 2,070 P185/70R14 615.90 0.61590 1000 1.9349 516.82 2,067.28 2068 8.991 9.00 230 2,070 P205/60R15 624.84 0.62484 1000 1.9630 509.43 2,037.70 2038 7.992 8.00 255 2,040 205/60R15 627.00 0.62700 1000 1.9698 507.67 2,030.69 2031 7.996 8.00 254 2,032 P205/55R16 629.92 0.62992 1000 1.9790 505.32 2,021.27 2022 7.992 8.00 253 2,024 205/55R16 632.00 0.63200 1000 1.9855 503.65 2,014.62 2015 7.996 8.00 252 2,016 205/55R16 632.46 0.63246 1000 1.9869 503.29 2,013.15 2014 7.992 8.00 252 2,016 195/65R15 635.00 0.63500 1000 1.9949 501.28 2,005.10 2006 7.992 8.00 251 2,008 P235/60R14 637.54 0.63754 1000 2.0029 499.28 1,997.11 1998 7.992 8.00 250 2,000 205/65R15 645.16 0.64516 1000 2.0268 493.38 1,973.53 1974 7.992 8.00 247 1,976 P215/50R17 647.95 0.64795 1000 2.0356 491.26 1,965.03 1966 7.992 8.00 246 1,968 P225/55R16 654.00 0.65400 1000 2.0546 486.71 1,946.85 1947 8.012 8.00 243 1,944 225/60R16 676.00 0.67600 1000 2.1237 470.87 1,883.49 1884 8.017 8.00 235 1,880 225/55R17 680.00 0.68000 1000 2.1363 468.10 1,872.41 1873 8.004 8.00 234 1,872 P235/60R16 685.80 0.68580 1000 2.1545 464.14 1,856.58 1857 8.004 8.00 232 1,856 P225/70R15 697.00 0.69700 1000 2.1897 456.69 1,826.74 1827 8.013 8.00 228 1,824 215/65R16 697.99 0.69799 1000 2.1928 456.04 1,824.15 1825 8.004 8.00 228 1,824 P235/70R16 736.09 0.73609 1000 2.3125 432.43 1,729.73 1730 7.004 7.00 247 1,729 255/65R16 737.90 0.73790 1000 2.3182 431.37 1,725.49 1726 7.016 7.00 246 1,722 245/70R16 750.06 0.75006 1000 2.3564 424.38 1,697.52 1698 7.017 7.00 242 1,694

Page 34: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

34

Page 35: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

35

INTERFASE DE VELOCIDAD

La interfase de velocidad, tiene como fuente de información el chicote de las llantas, el cual esta conectado mecánicamente al impulsor, en donde se generan dos pulsos lógicos bajos por cada giro completo de la llanta. El tren de pulsos generado por el impulsor, tiene una frecuencia que duplica la frecuencia de giro de la llanta.

La operación de la interfase, se basa en un convertidor de frecuencia a voltaje, CFV: CI LM2907, el

cual genera una señal analógica, cuya magnitud instantánea es directamente proporcional a la frecuencia del tren de pulsos proveniente del impulsor y por lo tanto, a la velocidad instantánea del automóvil.

La responsabilidad de la UCP, consiste en digitalizar esta señal analógica, procesarla y desplegar la

información relativa a la velocidad del automóvil en un formato adecuado. ANÁLISIS DE VELOCIDAD

tvdod ×+=

0=do

tdv =

( )girosdenúmeroperímetrod __×=

La velocidad del vehículo se define por:

×

=t

girosdenúmeroperímetrov __

[ ]smfnnpv ××=

Para convertir las unidades de [ ]sm a [ ]hkm tenemos:

v [ ]hkm =

×

×

hs

mkmv s

m

13600

10001

v [ ]hkm = v [ ]sm * 1036

Se requiere multiplicar por un factor de 3.6, es decir, considerando la frecuencia de giro del

neumático, tenemos: v[km/h] = fn[Hz] * pn[m] * (3.6) Ecuación 1 Considerando la frecuencia del impulsor: v[km/h] = (frecuencia del impulsor/2)[Hz] * pn * (3.6) v[km/h] = fimp[Hz] * pn [m] * (1.8) Ecuación 2

Page 36: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

36

Considerando el intervalo de frecuencia que debe manejar la interfase y tomando en cuenta que el

voltaje esta comprendido entre 0.0 y 5.0 volts, consideramos el caso extremo en que tenga una llanta con un perímetro de 1.0 m y una velocidad de 200 [km/h]. Despejando la frecuencia del impulsor fimp. de la ecuación 2 tenemos:

fimp.[Hz]= v[km/h] / (pn[m] * (1.8)) fimp.[Hz]= 200[km/h]/(1.8114m * 1.8) =61.33 Hz

A una velocidad de 200 km/h y usando neumáticos con perímetro de 1.8114 m, la interfase de

distancia generara una señal de frecuencia igual a 61.33 Hz que es la frecuencia máxima a considerar. El manual técnico, del C.I. 2907 indica que se tiene la siguiente relación de calculo: Vo = Vcc * Fin* C1* R1 en donde: Vo: voltaje de respuesta Vcc: voltaje de alimentación Fin: frecuencia de excitación C1: capacitor 1 R1: resistencia 1 Los valores teóricos utilizados fueron: Vo = 5.0 volts Vcc = 8.0 volts Fin = 61.33 Hz C1= 0.1 µF R1= a calcular Calculando R1: R1 = Vo/(Vcc * Fin * C1) R1 = 101.9 kohms (Es importante verificar este valor experimentalmente) Elementos de conversión de frecuencia a voltaje de la interfase de velocidad: Vo = 5.0 volts Vcc = 8.0 volts C1 = 0.1 µF R1 = 101.9 kohms

El valor de R1 que permitió que se cumpliera la respuesta fue de 60.16 k ohms. (Se debe verificar el comportamiento con R1 = 101.9 k ohms)

A la salida del C.F.V. CI2907 se implemento un seguidor de voltaje mediante un amplificador operacional LM324 y se ajusto el voltaje mediante un divisor de voltaje. (ver el diagrama eléctrico de la interfase de distancia y velocidad)

La señal generada es leída por el C.A.D. de la U.C.P. esta es interpretada, procesada y se presenta

la magnitud de la velocidad.

Velocidad = Vo + d/t, tal que: d =(perímetro) * (No. de giros) = P * N V = Vo + P[cm]* fn[Hz]

llanta impulsor CFV Voltaje de velocidad (Vv)

Page 37: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

37

tal que: fn: frecuencia de giro del neumático P: perímetro del neumático Vo: velocidad inicial Para convertir las unidades de cm/s a km./h se requiere la conversión: (cm/s) * (1 km/100,000cm) * (3,600 s/1 h) = 36/1000 [km./h] Para obtener la información en km/h, la velocidad esta dada por la función: V[km/h] = (P[cm] * fn[1/s] * (36/1000))[km/h] V = Vo + (P*N/t) tal que N/t = f; y f es la frecuencia de giro. V = fn[Hz] * P[cm] * 36/1000 Para cuando el perímetro de neumático es de 181.14 cm, tenemos: V = fn[Hz] * (6.5214)

El Vv (voltaje de velocidad) en función a la frecuencia del neumático, y con un perímetro de 181.14

cm, sigue la relación: fn: frecuencia de giro del neumático fi: frecuencia de giro del impulsor

Tabla de velocidad:

Ti[ms] fi [Hz] fn[Hz] Vv [volts] Velocidad (teo.) Velocidad (exp.) 54.00 18.5 09.25 0.80 058.27 059.0050.00 20.0 10.00 0.87 063.00 064.2333.33 30.0 15.00 1.30 094.00 095.9725.00 40.0 20.00 1.72 126.00 126.9820.00 50.00 25.00 2.19 157.00 161.6816.66 60.00 30.00 2.67 189.00 197.1214.28 70.00 35.00 3.08 220.50 227.3912.50 80.00 40.00 3.43 252.00 253.2311.11 90.00 45.00 3.47 283.50 256.18

Valores obtenidos con un perímetro de P = 181 cm, calculamos la función que describe el

comportamiento de la señal de velocidad como función de la frecuencia de giro del neumático:

Fn [Hz] (x)

Vv [volts] (y)

09.25 0.80 10.00 0.87 15.00 1.30 20.00 1.72 25.00 2.19 30.00 2.67 35.00 3.08 40.00 3.43 45.00 3.47

Page 38: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

38

Para encontrar la función que define esta relación, consideramos una recta definida por: y = b + mx,

tal que: b = 0; m = (y2-y1)/(x2-x1)

calculando m para cada muestra: m1 = (3.43-3.08)/(40-35) = 70E-3 m2 = (3.08-2.67)/(35-30) = 82E-3 m3 = (2.67-2.19)/(30-25) = 96E-3 m4 = (2.19-1.72)/(25-20) = 94E-3 m5 = (1.72-1.30)/(20-15) = 84E-3 m6 = (1.30-0.87)/(15-10) = 86E-3 m = m1+ m2..+ m6/6 = 85.333E-3

La función que relaciona al Voltaje de velocidad Vv (voltaje generado por la interfase de velocidad) con la frecuencia de giro de los neumáticos esta dada por: Vv = m* fn[Hz] Vv = (0.085333)*fn[Hz]

Despejando la frecuencia de los neumáticos fn como función del Voltaje de velocidad Vv, tenemos:

fn[Hz] = Vv/ (0.085333) Con lo que encontramos la Velocidad como función del voltaje de velocidad: V[km./h] = (P[cm]* (36/1000) * (Vv / 0.085333)) V[km./h] = (P[cm] * Vv * 36 / 85.333) V[km./h] = (P[cm]* Vv/2.37) V[km./h] = (P[cm]* Vv*0.4218) Como ejemplo, si se tienen neumáticos de 181.14 cm de perímetro, y un voltaje de velocidad de 1.3 v, tenemos: V[km./h] = (181.14 cm * 1.3 *0.4218)= 99.32 km./h V[km./h] = (181.14 cm * 1.3 * 0.4218) 100 km./h

Page 39: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

39

INTERFASE DE COMBUSTIBLE

La fuente de información para esta interfase es la resistencia variable que esta integrada en el flotador de combustible que varía en función de la posición que ocupa el flotador en el tanque de combustible y es inversamente proporcional a la cantidad de combustible que se tiene presente en el depósito, es decir cuando el tanque se encuentra lleno, la resistencia es mínima (20 Ω aprox.) y cuando se encuentra vacío la resistencia alcanza su valor máximo (350 Ω aprox.). La interfase genera una señal analógica proporcional al valor de la resistencia eléctrica y define con ella la cantidad de combustible que hay en el deposito. El C.A.D. digitaliza esta señal, la U.C.P. la procesa y presenta la cantidad de combustible.

Las funciones especiales ECO y DTE utilizan la información relativa a la cantidad y el consumo de

combustible. La interfase de combustible, se diseño de la siguiente manera:

El medidor de combustible de un automóvil VW sedan, se basa en un medidor analógico, consistente en un indicador electromagnético de aguja controlado por corriente, debido a la variación de la resistencia del flotador y en donde el sistema es alimentado con un nivel de CD de 12 volts. (ver diagrama C1 de interfase de combustible). La resistencia del flotador de combustible Rf, tiene un rango resistivo entre 20 y 350 Ω y al estar alimentado por un voltaje de 12 volts, las corrientes involucradas varían entre 30 mA y 0.6 A. Rf =[20, 350] ohms f = V/Rf If = 0.6 A (Tanque lleno) If = 34.28 mA (Tanque vacío) Para implementar un medidor digital, fue necesario cambiar este esquema. Se diseño un circuito basado en un puente de Wheatstone que utiliza la misma resistencia del flotador de combustible, se elimino de esta etapa el indicador electromagnético de aguja y el puente de Wheatstone genera un voltaje variable controlado por la resistencia del flotador. Este voltaje excita a un opto acoplador y este alimenta a un seguidor de voltaje. La señal resultante es filtrada y ajustada en magnitud por un divisor de voltaje.

La señal de respuesta varia de 0.0 a 5.0 volts C.D. en relación directa con la cantidad de combustible que esta presente en el deposito. Análisis del "Puente de Wheatstone": Vo1 = Vi (R3/R3+ R3) = Vi (R3/2R3) = Vi/2 Vo1 = Vi/2 Por otro lado, Vo2 = Vi(R1/R2+ R1) El voltaje de medición, esta dado por: Vm = Vo1 - Vo2 = Vi(1/2) - Vi(R1/R1+ R2) Vm = Vi((1/2) - R1/(R1+ R2)) >= 0 Por lo tanto: (1/2) - (R1/(R1+R2)) > 0 (1/2) > (R1/(R1+ R2)) tal que R1 esta entre [20, 350] ohms R1 + R2 > 2R1 R2 > 2R1 - R1

Page 40: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

40

por lo tanto: R2 > R1 tal que R1 = 350 Ω R2 > 350 Ω Así: R2 = 352 Ω y con esto se cumple que Vm > 0.

Como la resistencia máxima de R1 = 350 Ω, esto implica que R2 = 352 tal que R1 esta entre [20, 350] ohms. Para Vo2: Vo2 = Vi*(R1/(R1+ R2)) Tal que Vi = 12 v; R2= 352 Ω; R1 esta entre [20 , 350] ohms Vo2= 12 * R1/(R1+ R2) = 12 * (20/(20+352))= 0.645 v para R1 = 20 Ω Vo2= 12 * R1/(R1+ R2) = 12 * (350/(350+352))=5.982 v para R1 = 350 Ω Así: Vm = 6 - 0.645 = 5.350v tal que R1 = 20 Ω (Tanque lleno) Vm = 6 - 5.982 = 0.018v tal que R1 = 350 Ω (Tanque vacío) Para ajustar el voltaje de salida a partir del nodo C01 se implementó un divisor de voltaje. Vo = Vi*(R6/(R5+ R6)) Vo/Vi = R6/(R5+ R6) desarrollando: R5 = R6 * ( (Vi/Vo) -1) tal que Vi = 10.3 v; Vo = 5.0 v R5 = R6 * (1.06) R6 = 2.20 kΩ R5 = 2.35 kΩ Con estos valores, tenemos la siguiente tabla comparativa:

R1 [Ω] Vo [volts] P [%] Litros 353.00 0.050 01.0 00.40331.00 0.050 01.0 00.40199.00 0.270 05.4 02.16166.50 0.640 12.8 05.12149.00 0.880 17.6 07.04125.50 1.345 26.8 10.72

98.70 2.050 41.0 16.4075.80 2.820 56.4 22.5647.20 3.980 79.6 31.8422.00 4.970 99.4 39.7617.70 5.010 100.2 40.08

Page 41: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

41

Un VW sedan tiene un tanque con capacidad de 40 litros aprox., consideramos una función lineal (a

reserva de un análisis posterior mas exacto), entre el voltaje máximo de 5.0 volts el porcentaje de llenado 100%, y un total aproximado de 40 litros. Por regla de tres: P[%]= (V[volts]*100[%])/5[volts] P[%]= (V * 20)[%] En donde P[%] es el porcentaje de llenado del tanque y V es el voltaje generado por la interfase. Para el calculo en litros, tenemos: l [litros] = (V[volts]*40[litros])/5[volts] l [litros] = (V * 8) en donde V es el voltaje generado por la interfase. INDICADOR ANALÓGICO

Para mantener la medición analógica de combustible, se implemento un circuito que permite la lectura de la cantidad de combustible con el dispositivo de medición original. Este circuito consume mucha potencia, por lo cual es recomendable no utilizarlo. (Ver diagrama C2 de interfase de combustible). Este circuito consiste en un seguidor de voltaje conectado al nodo C01 de la interfase de combustible, el cual alimenta a un transistor de potencia que funciona como controlador de la corriente que circula por el medidor analógico de combustible. Como se muestra en el diagrama C2 del diagrama de la interfase de combustible.

Al aumentar el voltaje de excitación del seguidor de voltaje, aumenta la corriente de colector del

transistor, esta corriente tiene un máximo de 0.6 amperes, cantidad equivalente de corriente que alcanza el indicador electromagnético bajo el esquema original cuando la resistencia variable del flotador presenta su valor resistivo mínimo de 20 Ω. Se utilizo un transistor NPN TIP 31A que tiene un factor hfe medido experimentalmente de hfe =17, Soporta una corriente de colector máxima de 7 amperes y una potencia máxima de: PD = 50 Watts. 12v/20 Ω = 0.6 amperes Análisis teórico: ib = (Vb-Vbe)/Rb y como ic = β * ib ic = β *ib ic= β * (Vb-Vbe)/Rb ic= β * (Vb-Vbe)/Rb La relación ic = β * ib es valida para antes de llegar a la saturación del transistor, en donde: Vce = Vce sat = 0.2v ic = (Vcc - Vce sat)/Rc = (12 - 0.2)/19.5 Ω = 0.6 amperes ic = 0.6 amperes La corriente de base mínima requerida para que exista saturación es: ib sat min = ic sat/β = (0.6 amperes)/17 =35.294 mili amperes Para Vb = 10.3 --> ib = 35.294 mili amperes

Page 42: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

42

ib = (10.3 - 0.7)/Rb ib sat = (10.3 - 0.7)/Rb = 35.294 mili amperes De donde: Rb = 272 Ω Para Rb = 272 Ω, implica que para Vb = 10.3 v, ic = (beta) * ib tal que ib = (10.3 - 0.7)/272 Ω = 35.294 mili amperes ic = (beta) ib = 17* 35.29 = 0.6 amperes Para Rb = 292 Ω, para Vb = 10.3 v tenemos ic = (beta)* ib tal que ib = (10.3 - 0.7)/Rb

R1 [Ω] I [mA] 353.0 00.01331.0 00.01198.0 00.15167.0 95.00150.1 204.0126.5 376.0099.7 581.0077.3 631.0047.2 632.0022.0 638.0

Page 43: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

43

Page 44: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

44

INTERFASE DE BATERIA Es excitada por la batería del automóvil y genera una señal analógica controlada y filtrada que excita al C.A.D. de la U.C.P. para el análisis de la información, la presentación del resultado obtenido y la activación de la señal de alarma cuando el nivel de voltaje sea critico. La interfase consiste en un divisor de voltaje con relación 20:5 en donde el voltaje de salida es filtrado y regulado por un diodo Zener IN 4733 que cuenta con un voltaje de ruptura de 5v con esto, el voltaje introducido en el C.A.D. no excederá el voltaje máximo permitido.

La regulación del voltaje de la batería fue necesaria por seguridad del sistema y por confiabilidad de la información. Esta señal alimenta a uno de los canales del C.A.D. permitiendo con ello la digitalización de los niveles de voltaje leídos, para presentar la información relativa a la condición eléctrica de la batería del automóvil. Para un automóvil de tipo estándar la batería no mantiene un voltaje constante, por el contrario el voltaje que se produce en esta, varia con relación al estado del automóvil y de los aditamentos de este que requieren de alimentación eléctrica. El rango de medición de la carga se encuentra comprendido entre los 10 y los 20 volts C.D. los rangos se interpretan de acuerdo a la condición de apagado o en marcha del motor del vehículo.

NIVEL DE VOLTAJE ESTADO DEL MOTOR

INTERPRETACIÓN

5 - 11.9 volts Apagado Tensión de batería baja, se requiere verificar inmediatamente la batería 12 - 13 volts Apagado Correcto, aun con luces encendidas, debe tener un voltaje en este rango 13 - 14 volts en marcha Batería baja, existe un consumo elevado debido al alumbrado, radio, etc. 14 - 15 volts en marcha Correcto, rango normal aun con luces encendidas 15 - 20 volts en marcha Excesiva. Si esta situación se mantiene por mas de 10 minutos, revisar sistema de

regulación Tabla comparativa de valores experimentales de la Interfase de Batería:

Estado operativo de la batería Vin [volts] Vout teórico [volts] Vout exp. [volts] Motor apagado Motor encendido 02.00 0.50 0.49 02.50 0.62 0.60 03.00 0.75 0.73 04.00 1.00 0.99 05.08 1.27 1.25 06.06 1.51 1.49 07.03 1.75 1.73 08.02 2.00 1.98 09.02 2.25 2.22 10.08 2.52 2.48 11.00 2.75 2.71

Bajo

12.00 3.00 2.95 13.03 3.25 3.19 Correcto

14.00 3.50 3.41

Bajo

15.05 3.76 3.64 Correcto 16.00 4.00 3.82

Alto Alto

Se puede ver que como Vout = Vin/4, la función de transferencia es: A = ¼

BATERIA INTERFASE DE BATERIA UCP Vin Vout

Page 45: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

45

Page 46: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

46

INTERFASE DE ALARMA CONTRA ROBO

Las fuentes de información son sensores de movimiento y de apertura instalados en la carrocería y los puntos de acceso del automóvil. Al activarse cualquiera de estos, la interfase recibe la señal correspondiente y realiza las acciones necesarias para activar los dispositivos de alarma o defensa.

Para detectar movimientos del vehículo que pudieran ser provocados por un intruso o por accesos no

autorizados al interior del automóvil, se diseño e implemento un circuito lógico que cumple con este fin. Para detectar un acceso no autorizado, se utilizan interruptores magnéticos como sensores de apertura y para vigilar el movimiento del automóvil, se utilizan sensores de movimiento comerciales.

La interfase genera dos tipos de señales:

SEÑAL PREVENTIVA

Al detectar el movimiento del chasis, se genera un pulso que dura unos cuantos segundos, este pulso

activa una sirena cuya función es desanimar al intruso. SEÑAL DEFENSIVA

Al detectar un acceso no autorizado, se genera un nivel de voltaje TTL que permanece en un nivel lógico alto, hasta que es desactivado mediante una señal generada por la U.C.P. La señal de activación y desactivación de la alarma, es controlada mediante una contraseña introducida por medio de teclado.

Los mecanismos de defensa que se realizaran en forma automática son: la activación intermitente del claxon y la desconexión del encendido del vehículo. Sobre la base de estas condiciones, tenemos un sistema lógico combinacional, con el siguiente análisis: TABLA DE VERDAD: G = GEN1 . GEN2 P = PAR1 . PAR2 .. . PARN SD = SEÑAL DEFENSIVA SP = SEÑAL PREVENTIVA G P SD SP ESTADO 0 0 0 1 Estado 1 0 1 1 0 Estado 2 1 0 0 1 Estado 3 1 1 1 1 Estado 4

Sensor de alarma general, es cada sensor de movimiento y sensor de alarma particular a cada sensor de apertura. Sobre la base de estas definiciones, tenemos los siguientes casos: CONDICIÓN CASO G = 0 sensor de alarma general activo G = 1 sensor de alarma general inactivo P = 0 sensor de alarma particular activo P = 1 sensor de alarma particular inactivo SD = 0 Señal de disparo de sistema defensivo activa SD = 1 Señal de disparo de sistema defensivo inactiva SP = 0 Señal de disparo de sistema preventivo activa SP = 1 Señal de disparo de sistema preventivo inactiva

Page 47: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

47

De la tabla de verdad podemos definir las siguientes situaciones: Estado 1: En esta situación se activan los sensores generales y particulares, es decir se mueve el automóvil y se abre uno o mas de los puntos de acceso. En respuesta a esta situación, se dispara inmediatamente el sistema defensivo del vehículo. Estado 2: En esta situación se activan únicamente los sensores generales, lo cual dispara el sistema de alarma preventivo. Estado 3: Esta situación no será común pues se activan los sensores particulares pero no se activan los sensores generales, es decir se viola uno o mas puntos de acceso sin que se detecte un movimiento del vehículo, esta situación puede ocurrir si el sensor de movimiento esta mal calibrado y/o el vehículo es abierto sin que se detecte movimiento alguno. De cualquier manera, en este caso se dispara el sistema de alarma defensivo. Estado 4: Este estado se mantiene mientras no se active sensor alguno, la alarma contra robo permanece inactiva. Obtenemos las expresiones booleanas de estos circuitos combinatorios que son: SD = P = (p1 * p2 * p3 * p4) SP = G + P' = (g1 * g2) + (p1 * p2 * p3 * p4)' Aplicando leyes de Morgan tenemos: SP = (G'* P)'

Sobre la base de este análisis se implemento el circuito electrónico de la interfase de alarma contra robo, el cual cuenta con dos multivibradores monoestables encapsulados en un C.I.74123, cada uno genera un pulso cuando se presentan las condiciones de alarma.

El monoestable de la etapa defensiva excita a un flip flop SR que genera un nivel de voltaje, que se

mantendrá hasta que el usuario desactive la acción defensiva del sistema. El pulso generado por el monoestable tiene una duración aproximada de 1 ms el cual es suficiente para disparar el S.R. El monoestable de la etapa preventiva genera un pulso de aproximadamente 2 segundos de duración, este activa una sirena que ahuyentará al intruso. Esta alarma se activara con cualquier movimiento del vehículo y la sensibilidad del detector, sensor, es regulable. Además del circuito que genera la información de alarma a partir de los sensores de movimiento y de acceso, se requirió de un circuito lógico cuya función es controlar los estados de alarma Activa e Inactiva.

Esta etapa cuenta con una entrada de control que al mantenerse en un nivel lógico 1, la alarma se encuentra en estado activo lo cual implica que se realizarán las respuestas preventivas o defensivas que sean necesarias. Con la entrada de control en un nivel lógico 0, la alarma se mantendrá en estado inactivo y se inhabilita cualquier respuesta preventiva o correctiva. El análisis de esta etapa se realiza por separado para los circuitos preventivo y defensivo. SISTEMA DE ACTIVACION DE A.C.R. Etapa defensiva: Parámetros: X: Señal de violación de acceso al vehículo. Y: Control de etapa Aon/Aoff (Y=1: Alarma activa; Y=0: Alarma inactiva) Z: Respuesta X Y Z ESTADO 0 0 1 Off 0 1 0 On 1 0 1 Off 1 1 1 Off

Page 48: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

48

De donde obtenemos la expresión lógica: Z = Y'+ X = (YX')' Etapa preventiva:

Respuesta defensiva:

No se podrá encender el vehículo, se abre el circuito de encendido mediante un relevador conectado en serie. Se activa el claxon en forma intermitente con un relevador conectado en paralelo con el switch del claxon. Respuesta preventiva:

Advierte al intruso que el automóvil esta protegido mediante un sistema electrónico, al detectarse un movimiento se activara una sirena durante de un par de segundos. Si el movimiento del vehículo continua, la sirena continuara sonando. Se utiliza un sensor de movimiento marca CLIFFORD, el cual se alimenta con un voltaje de +12 volts C.D. y genera una respuesta con un voltaje de +10 volts CD.

Para utilizar este sensor en la interfase de A.C.R. se requirió ajustar el voltaje de respuesta del sensor

(10 v) a los circuitos TTL (5 v) de la Interfase, por ello se utilizo un diodo zener de 5 volts como regulador de voltaje. (ver el diagrama de la alarma contra robo) ANALISIS DE POTENCIA Para R = 390 Ω; i = (10 v - 5 v)/R = 5/R = 5/390 = 12.82 mA P = (i)2 * R = (12.82 mA)2 * (390 Ω) = 64.10 mili Watts En el circuito prototipo de la A.C.R. se implemento un conector DB 25 con la siguiente configuración de conexiones:

PIN CONEXION 01 NC 02 sensor de apertura puerta 1 03 sensor de apertura puerta 2 04 sensor de apertura cajuela 05 sensor de apertura cofre 06 salida sensor de movimiento 1 07 salida sensor de movimiento 2 08 reset de A.C.R. 09 NC 10 Tierra 11 Tierra 12 NC 13 Vcc +12 v (alimentación de sensores de movimiento) 14 NC . NC . NC

25 NC

X Y Z 0 0 0 0 1 0 1 0 0 1 1 1

La expresión lógica en este caso, es: Z = XY

Page 49: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

49

ETAPA LOGICA

Page 50: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

50

ETAPA PREVENTIVA

Page 51: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

51

ETAPA DEFENSIVA

Page 52: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

52

INTERFASE DE TACOMETRO En todo vehículo motorizado hay que considerar que la máquina es sometida a regímenes de giro que pueden variar entre frecuencias muy bajas hasta frecuencias sumamente elevadas que en un extremo pudieran provocar un esfuerzo mecánico del motor, mayor al recomendado y existe la posibilidad de que el motor del automóvil sufra graves consecuencias. Por ello es necesario contar con instrumentos de medición que permitan conocer el régimen de rotación al que se esta sometiendo al motor del vehículo. Estos instrumentos conocidos como tacómetros, fueron requeridos, concebidos e implementados antes de que existiera una tecnología electrónica avanzada por lo que en sus inicios se implementaron tacómetros mecánicos altamente confiables y precisos, se implementaron con mecanismos de relojería y engranajes muy complejos y costosos. En los vehículos modernos la potencia se logra en base a los altos regímenes de rotación y actualmente se pueden encontrar vehículos comerciales con regímenes de giro de 6000 o 7000 R.P.M.; Se pueden encontrar motores que trabajan hasta con regímenes de giro de 12000 a 15000 R.P.M. en automóviles deportivos de competencia. Un automóvil Volkswagen modelo sedan cuenta con una velocidad máxima de crucero de aproximadamente 127 Km./h. Es conveniente contar con información relativa al régimen de giro a que esta sometido el motor y con ello poder optimizar el uso de combustible y aceite, así como prolongar la vida útil del motor. La fuente de información es el distribuidor y la función de la interfase es traducir el régimen de giro del motor en niveles analógicos de voltaje.

La interfase recibe un tren de pulsos eléctricos provenientes del distribuidor, esta señal se procesa por una primer etapa consistente en un divisor de voltaje que controla la magnitud de los pulsos y un filtro pasa bajas que controla el paso de señales de alta frecuencia. Estos pulsos excitan a un circuito de conmutación implementado con transistores que funcionan de la siguiente manera: Al llegar el primer pulso, el transistor T1 se satura, por lo tanto conduce y el voltaje en el colector es un cero lógico, esto provoca que mediante el capacitor de acoplamiento C2 el transistor T2 entre en corte y el voltaje en su colector es un uno lógico. Esta etapa esta regulada por un diodo zener de 8 volts. La señal obtenida del colector del transistor T2 es un pulso controlado que define un pulso generado por el distribuidor.

El circuito RC-T1, T2 realiza la función de generador de pulsos controlados cuya frecuencia es igual a la frecuencia de giro del motor. Con esta señal se excita al convertidor de frecuencia a voltaje (C.F.V.) C.I. LM2907, que lee la frecuencia con que se presenta el tren de pulsos y genera una señal analógica de amplitud proporcional a la frecuencia que lo excita. Esta señal se introduce en un divisor de voltaje que ajusta el nivel de respuesta y a un seguidor de voltaje cuya función es suministrar el voltaje necesario para excitar la etapa de desplegado, la cual consiste en dos C.I. LM3914 y un arreglo calibrado de leds dispuestos linealmente. El encendido de la barra de leds indica la escala de frecuencias normales y criticas en R.P.M. Al excitar el arreglo de controladores de la barra de desplegado tacométrico LM 3914, el acoplamiento generó un error de voltaje del orden de 0.24 volts por encima de el voltaje requerido para el calibrado del sistema, por ello se implemento un divisor de voltaje cuya función es regular el voltaje necesario para el encendido calibrado de la barra de leds. Para acoplar de manera mas adecuada al C.I. LM2907 con el arreglo de los C.I.s LM3914 se implemento un seguidor de voltaje para aislar la señal y evitar cualquier problema de acoplamiento. En un motor de cuatro tiempos como es el caso del VW Sedan, se produce una chispa por cada dos vueltas del cigüeñal lo cual, implica que por una chispa generada se realizaron dos giros completos del cigüeñal. Ejemplo: Si se tiene una frecuencia de 20Hz (20 chispas/segundo)= 40 giros del cigüeñal cada segundo, con lo que podemos calcular el numero de revoluciones por minuto;

40 * 60 segundos = 2400 revoluciones por minuto. R.P.M. = 2* f[Hz] * 60 s El numero de revoluciones Nr es igual a la frecuencia [Hz] por el factor 120. Nr[R.P.M.] = 120 * f[Hz]

Page 53: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

53

El sistema tacométrico presenta información calibrada mediante un arreglo de despliegue conformado

por 20 leds y cuenta con un control de selección de rangos. Puede operar de manera alternativa con tres diferentes rangos de frecuencias:

210 R.P.M. a 4200 R.P.M. 420 R.P.M. a 8400 R.P.M. 600 R.P.M. a 12000 R.P.M.

De acuerdo al manual del C.I. LM2907, la ecuación de diseño es:

Vo = Vcc * fin * C1 * R1 Se tienen los siguientes parámetros fijos: Voltaje de alimentación = 8v C1 = 0.1 µF

Se requiere un voltaje de salida de 2.6 volts para el control de la etapa de despliegue. Despejando R1 para las diferentes frecuencias máximas deseadas tenemos: Para fin = 100 Hz; 12000 R.P.M. R1 = Vo/(Vcc * fin * C1) = 2.6/(8 * 0.1 µF * 100)= 32.50 kΩ Para fin = 70 Hz; 8400 R.P.M. R2 = Vo/(Vcc * fin * C1) = 2.6/(8 * 0.1 µF * 70)= 46.42 kΩ Para fin = 35 Hz; 4200 R.P.M. R3 = Vo/(Vcc * fin * C1) = 2.6/(8 * 0.1 µF * 35)= 92.85 kΩ Se encontró de manera experimental que la resistencia requerida difiere en un factor de 0.6776. Las resistencias requeridas son: Para fin = 100 Hz; 12000 R.P.M.: R1= 22.02 kΩ Para fin = 70 Hz; 8400 R.P.M.: R2= 31.45 kΩ Para fin = 35 Hz; 4200 R.P.M.: R3= 62.91 kΩ Nota: debido a la sensibilidad del convertidor de frecuencia a voltaje fue importante ser riguroso en la implementación de estos valores resistivos. Calibrado teórico de la barra tacométrica

R.P.M. LED N° RANGO 1 RANGO 2 RANGO 3

20 4,200 8,400 12,00019 3,990 7,980 11,40018 3,780 7,560 10,80017 3,570 7,140 10,20016 3,360 6,720 9,60015 3,150 6,300 9,00014 2,940 5,880 8,40013 2,730 5,460 7,80012 2,520 5,040 7,20011 2,310 4,620 6,60010 2,100 4,200 6,00009 1,890 3,780 5,40008 1,680 3,360 4,80007 1,470 2,940 4,20006 1,260 2,520 3,60005 1,050 2,100 3,00004 840 1,680 2,40003 630 1,260 1,80002 420 840 1,20001 210 420 600

El tacómetro cuenta con tres modalidades de operación y en cada una de ellas con veinte diferentes valores de medición. La primera cuenta con intervalos de 210 R.P.M., la segunda con intervalos de 420 R.P.M. y la tercera con intervalos 600 R.P.M. En cada una se tienen intervalos controlados de voltaje que van de 0.0 a 2.6 volts de respuesta en el primer bloque circuital de la interfase.

Los valores teórico -experimentales de la interfase se presentan en la tabla comparativa,en donde se puede apreciar la característica lineal así como la correlación entre las distintas modalidades operativas del sistema. (Ver diagrama de interfase de tacómetro).

Page 54: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

54

Page 55: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

55

II.II UNIDAD CENTRAL DE PROCESAMIENTO

Bloque del reloj del sistema Microcontrolador 8031 Buffer Tri-State para el micro switch del código de llanta Dispositivo de direccionamiento Memoria EPROM

Page 56: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

56

Memoria RAM Convertidor Analógico Digital (CAD) Seguidores de voltaje para las interfases

Page 57: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

57

Teclado

Page 58: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

58

Interfases

Page 59: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

59

Disposición del hardware para la conexión de las interfases

Page 60: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

60

Controlador de teclado y displays

Page 61: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

61

Disposición del hardware de los displays

Page 62: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

62

Alimentación de displays

Page 63: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

63

CAPITULO III PROGRAMA SICV. (versión prototipo) DIAGRAMA DE FLUJO SICV

Declara variables y direciones de programa

Define llamadas de atención a interrupción

Declaración de constantes

Declaración de codigos de teclas

Inicio de programa

Atención a interrupción de teclado

Atención a interrupción de odometro

Inicializa SFRs y Timers

Programa al manejador de I/O

Inicio de procesos

Odometro

Velocimetro

Combustible

Bateria

Alarma Contra Robo

Funciones Especiales

Errores

no

si

Alerta y registra

Page 64: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

64

ODÓMETRO VELOCÍMETRO

Micro switch Código del perímetro de la

llanta

Codificación del perímetro de la llanta

Elección del código de perímetro y definición del numero de pulsos relativos a un kilómetro.

¿Se cumple 1 km?

Conteo de pulsos

siActualiza registros

de distancia

Presentación de

información odometrica

no

Adquiere señal de velocidad

Analiza velocidad

Analisis correcto

Actualiza registros de velocidad

Desplega velocidad

Regresa

si

no Maneja error de

velocidad

Page 65: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

65

COMBUSTIBLE BATERÍA ELÉCTRICA

Adquiere señal de combustible

Analiza información de combustible

Analisis correcto

Actualiza registros de combustible

Desplega combustible

Regresa

si

no Maneja error de

combustible

Adquiere señal de la batería eléctrica

Analiza información de la batería eléctrica

Analisis correcto

Actualiza registros de la batería eléctrica

Desplega información de la batería eléctrica

Regresa

si

no Maneja error de la batería eléctrica

Page 66: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

66

;************************************************************************** ;* PROGRAMA SICVE.ASM * ;************************************************************************* ;* Sistema inteligente de control vehicular SICVE * ;* Universidad Autonoma Metropolitana Iztapalapa * ;* Ing. Agustin Suarez Fernandez * ;* German C.Cavazos Echagaray matricula 5325411 * ;* Ruben Martinez Revera matricula * ;************************************************************************* ;* Descripcion : * ;* Programa que ejecuta el conjunto de funciones del Sistema inteligente * ;* de control vehicular SICVE. Cuenta con despliegue alfanumerico de 16 * ;* Displays. Desplega valores correspondientes de distancia, velocidad * ;* porcentaje de combustible, niveles de voltaje de bateria,asi como los * ;* valores calculados para las funciones especiales DTE,ECO y DIS. * ;* Los voltajes que recibe de cada interfase,los procesa mediante un CAD.* ;* SICVE se basa en el microcontrolador intel 8031 y usa el CI I/O 8279.* ;* Asi mismo,usa el CAD ADC0808 de 8 Canales como punto de acceso de las * ;* interfases. * ;************************************************************************* ;* VARIABLES Y DIRECCIONES DEL Sistema * ;************************************************************************* PCON EQU 87H ;* Direccion de registro * RES1 EQU 6DH ;* Direccion de parte baja de la multipli- * ;* cacion de 168 por digito6 * RES2 EQU 6EH ;* Direccion de la parte alta de la multi- * ;* plicacion de 168 por digito6 * RES3 EQU 6FH ;* Direccion de la parte baja de la multi- * ;* plicacion de 0.5 por digito5 * RES4 EQU 70H ;* Direccion de parte baja de la multipli- * ;* cacion de 10 por digito5 * RES5 EQU 71H ;* Direccion de parte alta * RES6 EQU 72H ;* Direccion de la multiplicacion de 0.5 * ;* por digito 4 * PULSOSR EQU 73H ;* Pulsos residuales calculados * PULSOS EQU 74H ;* Pulsos leeidos del contador a tiempo t * DATO EQU 75H ;* Loc/memoria modificable por el usuario * TECLA EQU 76H ;* Contiene la tecla oprimida * CODIPER EQU 77H ;* Contiene codigo de puerto de perimetro * COPECUA EQU 78H ;* Contiene el perimetro entre cuatro. * COPECUR EQU 79H ;* Contiene residuo de division PERIM/4 * DISTH EQU 7AH ;* Contiene dato de distancia alta * DIST EQU 7BH ;* Contiene dato de distancia viajada * DISTR EQU 7CH ;* Contiene dato de distancia residual * CENTSD EQU 7DH ;* Variable de centenas de distancia despl.* DECESD EQU 7EH ;* Variable de decenas de distancia despl. * UNIDSD EQU 7FH ;* Variable de unidades de distancia despl.* ;************************************************************************* ;* DIRECCIONES EXTERNAS (EN RAM) DE DATOS DE DISTANCIA * ;************************************************************************* DISTRAM EQU 1000H ;* Direccion de datos de distancia en RAM * DISTHRAM EQU 1001H ;* Direccion de distancia alta en RAM * ULDISRAM EQU 1003H ;* Ultima direccion de distancia en RAM * CODICIH EQU 1004H ;* Direccion de dato alto de comparacion * CODICIL EQU 1005H ;* Direccion de dato bajo de comparacion * ;* CODICIH comp.c.27H. CODICIL comp.c.10H * ;* Pues ( 100 m = 10000 cm = 2710H cm ) * ;*************************************************************************

Page 67: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

67

;************************************************************************ ;* DIRECCIONES DE LOS DISPLAYS EN QUE SE DESPLEGARAN LOS DATOS * ;************************************************************************ D0V EQU 50H ;* Solo se usa como direccion D0-1 * D0 EQU 51H ;* Direccion de Display 0 Distancia (unid)* D1 EQU 52H ;* Direccion de Display 1 Distancia (dece)* D2 EQU 53H ;* Direccion de Display 2 Distancia (cent)* D3 EQU 54H ;* Direccion de Display 3 ECO (unid)* D4 EQU 55H ;* Direccion de Display 4 ECO (dece)* D5 EQU 56H ;* Direccion de Display 5 DTE (unid)* D6 EQU 57H ;* Direccion de Display 6 DTE (dece)* D7 EQU 58H ;* Direccion de Display 7 DTE (cent)* D8 EQU 59H ;* Direccion de Display 8 Bateria (G/C )* D9 EQU 5AH ;* Direccion de Display 9 Bateria (D/R )* DA EQU 5BH ;* Direccion de Display A Combustible(uni)* DB EQU 5CH ;* Direccion de Display B Combustible(dec)* DC EQU 5DH ;* Direccion de Display C Combustible(cen)* DD EQU 5EH ;* Direccion de Display D Velocidad (unid)* DE EQU 5FH ;* Direccion de Display E Velocidad (dece)* DF EQU 60H ;* Direccion de Display F Velocidad (cent)* DFV EQU 61H ;* Solo se usa como direccion DF + 1 * ;************************************************************************* ;* BITS * ;************************************************************************* INTTEC EQU 02H ;* Indica que se ha pulsado una tecla * ;************************************************************************* ;* DIRECCIONES DE ATENCION DE INTERRUPCION NO MODIFICABLES POR SOFTWARE * ;************************************************************************* INTEXT0 EQU 03H ;* * INTEXT1 EQU 13H ;* Interrupcion de teclado. * INTTIM0 EQU 0BH ;* * INTTIM1 EQU 1BH ;* * ;************************************************************************* ; ATENCION DE INTERRUPCION DEL TIMER 0 EN RAM * ;************************************************************************* ATTIM0 EQU 17DBH ;************************************************************************* ;* CONSTANTES PARA EL 8279 * ;************************************************************************* DAT8279 EQU 3800H ;* Direccion de datos del 8279 * CTRL8279 EQU 3801H ;* Direccion de control del 8279 * MODO EQU 00001000B ;* 000DDKKK 16 8BIT carac display entrada * ;* Izq.Encoded scan keyb 2 keylockout * DIVCLK EQU 00100100B ;* 001 Div Div Div Div Div ( 4 ) * RDFIFO EQU 01000000B ;* 010 INC X DIR DIR DIR (irrelevante ) * ;* para scan kb mode * WR0INC EQU 10010000B ;* 100 INC DIR DIR DIR (ESC/AUTOINC) * CLEAR EQU 11001101B ;* 110 CD CD CD CF CA * ;************************************************************************* ;* CONSTANTES DE PROGRAMA * ;************************************************************************* NIVCRBAT EQU 0A0H ;* Nivel critico de bateria 200*0.8= A0H *

Page 68: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

68

;************************************************************************* ;* CODIGOS PARA LAS TECLAS DE FUNCIONES DE SICVE * ;************************************************************************* ;* 0 RENGLON COLUMNA H * ;************************************************************************* ESC EQU 010H ;* Termina atencion de interrupcion. -ESC- * F1 EQU 011H ;* Distancia Recorrida (km) -DIS- * F2 EQU 012H ;* Rendimiento de combustible (km/lt)-ECO- * F3 EQU 013H ;* Dist.a rec.con rem.de comb.(km) -DTE- * F4 EQU 014H ;* Tiempo neto de manejo. (hrs) -ET - * F5 EQU 015H ;* RESET DE DISTANCIA * F6 EQU 016H ;* RESET DE RELOJ * F7 EQU 017H ;* Menu principal de SICVE * ;************************************************************************* ;* DIRECCION HABILITADORA DE SWITCH DE RADIO DE LLANTA * ;************************************************************************* DIRPER EQU 2800H ;* Direccion habilitadora de perimetro. * ;************************************************************************* ;* INICIO DE PROGRAMA * ;************************************************************************* ORG 0000H ;* Inicio de programa en 0000H * AJMP INICIO ;* * ;************************************************************************* ;* VECTORES DE INTERRUPCION * ;************************************************************************* ORG INTEXT1 ;* Interrupcion externa 1 -teclado- * LJMP ATEXT1 ;* Interrupcion atendida por el programa. * ;************************************************************************* ;* SE INICIALIZAN TIMERS Y REGISTROS ESPECIALES * ;************************************************************************* ORG 002BH ;* * INICIO : ;* INICIO DE PROGRAMA * MOV TCON,#05H ;* Inicializa.TCON.IT 1,0xflanco de bajada * MOV TMOD,#36H ;* T1 timer T0 cont,Modo 3 para T1,T0 * MOV SCON,#00H ;* Modo 0,shift register Frecncia de osc/12* MOV PCON,#00H ;* Se inicializa PCON. (smod=0) * MOV PSW, #00H ;* Inicializa PSW * ;************************************************************************* MOV IE, #00H ;* Deshabilita toda interrupcion * ;************************************************************************* MOV IP, #06H ;* Alta Prioridad: EXT1,TIMER0. * MOV SP, #2FH ;* Inicio del Stack Pointer en 30H * MOV R0, #PULSOS ;* Apunta a la variable * MOV @R0, #00H ;* Inicializa la variable. * MOV R0, #PULSOSR ;* Apunta a variable de pulsos residuales * MOV @R0, #00H ;* Inicializa variable residual * ;************************************************************************* ;* HABILITA INTERRUPCIONES, PROGRAMA AL 8279, LEE RADIO DE LA LLANTA * ;* CALCULA EL PERIMETRO DE LLANTA, LO DIVIDE ENTRE CUATRO Y CALCULA * ;* LA DISTANCIA RRECORRIDA AL MUTIPLICAR EL NUMERO DE PULSOS POR EL * ;* PERIMETRO/4. *

Page 69: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

69

;************************************************************************* ;* PROGRAMA AL PERIFERICO MANEJADOR DE ENTRADA SALIDA 8279 * ;************************************************************************* ACALL PI8279 ;* Programa al 8279 * CLR EX1 ;* Deshabilita interrupcion de teclado * LCALL LEEPUEPE ;* CODIPER <-perimetro llanta (cm). * LCALL DESPPER ;* Desplega dato leeido de perimetro. * LCALL CALCUART ;* Calcula perimetro entre cuatro (en cm) * LOOP: MOV IE,#84H ;* Habilita interrupcion.ext1, int.timer0 * LCALL LEECONTA ;* Lee el numero de pulsos relativos a la * ;* distancia recorrida en el contador 0 * LCALL CALCDIST ;* Calcula la distancia recorrida * ;* DIST = (Perim/4) * numero de pulsos * LCALL DESPDIST ;* Se desplega la distancia recorrida. * LCALL CALVELOC ;* Calcula y desplega velocidad del auto. * LCALL NIVCOMBU ;* Calcula y desplega porcentaje de combust* LCALL BATERIA ;* Sensa bateria y compara con niv.critico * LCALL ALARMARO ;* Sensa se¤al de alarma antirrobo. * LCALL ECO ;* Calcula Func.Esp.ECO actualiza registro * LCALL DTE ;* Calcula Func.Esp.DTE actualiza registro * LCALL ET ;* Calcula Func.Esp. ET actualiza registro * SJMP LOOP ;* Reinicia rutina del sistema inteligente * ;************************************************************************* ATEXT1: ;* Atencion a interrupcion 1 * MOV DPTR,#SERIE ;* Apunta DPTR a letrero de Displays * LCALL DESPLEGA ;* Desplega en Displays el Letrero. * CLR EX1 ;* Deshabilita interrupcion 1 * ACALL CAPTEC ;* Mueve el valor a TECLA * MOV A,TECLA ;* Carga en ACC el valor leeido del 8279. * CJNE A,#ESC,INTDIS ;* Si no es ESC prueva con distancia * SJMP ENDATINT ;* Si ESC termina atencion a interrupcion. * INTDIS: CJNE A,#F1,INTECO ;* Si no es F1 (distancia) prueva con F2 * ;* Desplega dato actualizado de distancia * SJMP ENDATINT ;* Termina atencion a interrupcion. * INTECO: CJNE A,#F2,INTDTE ;* Si no es F2 (ECO) prueva con F3. * ;* Desplega dato actualizado de funcion ECO* SJMP ENDATINT ;* Termina atencion a interrupcion. * INTDTE: CJNE A,#F3,INTET ;* Si no es F3 (DTE) prueva con F4. * ;* Desplega dato actualizado de funcion DTE* SJMP ENDATINT ;* Termina atencion a interrupcion. * INTET: CJNE A,#F4,RSTDIS ;* Si no es F4 (ET) prueva con F5. * ;* Desplega dato actualizado de funcion ET.* SJMP ENDATINT ;* Termina atencion a interrupcion. * RSTDIS: CJNE A,#F5,RSTCLK ;* Si no es F5 (RESET DE DIST) prueva F6. * ;* Limpia registros de distancia en RAM. * SJMP ENDATINT ;* Termina atencion a interrupcion. * RSTCLK: CJNE A,#F6,DESPMENU ;* Si no se oprimio tecla de func.termina. * ;* Limpia registros de reloj de viaje RAM. * SJMP ENDATINT ;* Termina atencion a interrupcion. * DESPMENU: CJNE A,#F7,ENDATINT;* Si no se oprimio tecla de menu termina * ACALL MENUSIC ;* Llama procedimiento de menu de sistema. * LCALL RETARDO ;* Llama retardo de aprox. 4 segundos. * ENDATINT: CLR A ;* Limpia el accumulador. * MOV INTTEC,A ;* Termino la atencion a interrupcion * MOV IE,#84H ;* Habilita interrupcion del teclado. * SETB TR1 ;* Se pone a funcionar el TIMER1 * RETI ;* Regresa de la interrupcion *

Page 70: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

70

;************************************************************************* ;* PROCEDIMIENTO MENUSICVE * ;************************************************************************* MENUSIC:PUSH ACC ;* Preserva el Status del Sistema * PUSH DPH ;* Preserva DPTR * PUSH DPL ;* * PUSH PSW ;* Preserva PSW * PUSH 00H ;* Guerda R0 del banco de registros 0 * MOV DPTR,#LETRERO ;* Apunta a letrero de menu principal * LCALL DESPLEGA ;* De mem.a buf.y de buf. a disp. * POP 00H ;******************************************** POP PSW ;* * POP DPL ;* * POP DPH ;* Reestablese el status del Sistema * POP ACC ;******************************************** RET ;* Regresa de llamada * ;************************************************************************* ;* CAPTEC Responde a la interrupcion del 8279,leyendo de su direccion de * ;* datos el codigo de la tecla oprimida, con la cual se reestablese la* ;* logica de interrupcion del teclado. * ;************************************************************************* CAPTEC: ;* * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * MOV DPTR,#CTRL8279;* Apta.a direccn.de control del 8279 * MOV A,#RDFIFO ;* Prepara a leer el FIFO. * MOVX @DPTR,A ;* Carga instrucciones en el 8279. * MOV DPTR,#DAT8279 ;* Apta.a direccion de datos del 8279 * MOVX A,@DPTR ;* Lee cod.del FIFO (SHFT CTRL SSS RRR) * XRL A,#11000000B ;* Complemta.SHFTyCTRL (activas negativas) * MOV TECLA,A ;* Carga codigo leido a variable TECLA * SETB INTTEC ;* Indica que hubo interrupcion de teclado * POP DPH ;* Reestablese el staus del Sistema. * POP DPL ;* * POP ACC ;* * ;************************************************************************* ;* MENSAJES DE DESPLIEGUE * ;************************************************************************* SERIE: ;* Letrero a Displays. * DB 084H,087H,0FFH,0FFH ;* E ,T , , , * DB 0FFH,0FFH,0FFH,0FFH ;* , , , , * DB 0FFH,0FFH,0FFH,0FFH ;* , , , , * DB 0FFH,0FFH,0FFH,0FFH ;* , , , , * ;************************************************************************* PI8279: ;* Programa al 8279 * PUSH ACC ;* Preserva status de registros * PUSH DPH ;* * PUSH DPL ;* * MOV DPTR,#CTRL8279 ;* Apunta a dir. de control del 8279 * MOV A,#MODO ;* Modo 16 displays,entrada por D0 * MOVX @DPTR,A ;* 000DDKKK 16 8BIT carac display entrada * ;* Izquierda Encoded scan keyb 2keylockout * MOV A,#DIVCLK ;* Divisor de frecuencia 5 * MOVX @DPTR,A ;* Carga dato * MOV A,#CLEAR ;* Inicializa memoria de displays, status * ;* de FIFO y logica de interrupciones * MOVX @DPTR,A ;* Carga dato *

Page 71: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

71

PI8279A: MOVX A,@DPTR ;* Lee status del FIFO * JB ACC.7,PI8279A ;* Espera que el display este disponible * POP DPL ;* Reestablese status de registros * POP DPH ;* * POP ACC ;* * RET ;* Regresa de la llamada * ;************************************************************************* LEEPUEPE: ;* Lee puerto de perimetro de la llanta * MOV DPTR,#DIRPER ;* Apunta a direccn.de perimetro de llanta * MOVX A,@DPTR ;* Carga en ACC el dato leeido de perimetro* MOV CODIPER,A ;* Carga en CODIPER el dato de perimetro * RET ;* REGRESA * ;************************************************************************* DESPPER: ;* Desplega dato de perimetro leeido * ACALL MENUPERI ;* Desplega mensaje de perimetro. * MOV A,CODIPER ;* Carga dato de perimetro en ACC. * MOV R0,#D5 ;* Apunta a dysplay mas significativo * MOV DATO,A ;* Carga dato de perimetro en DATO * LCALL DESPSED ;* Desplega dato en dysplays (decimal) * LCALL RETARDO ;* Espera 4 segundos para leectura. * RET ;*** Termina procedimiento de despliegue *** ;************************************************************************* MENUPERI: ;* Desplega menu de perimetro * PUSH ACC ;* Preserva el status del sistema. * PUSH DPH ;* * PUSH DPL ;* * PUSH PSW ;* * PUSH 00H ;* * MOV DPTR,#LETREPER ;* Apunta a letrero de perimetro de llanta * LCALL DESPLEGA ;* Desplega letrero de perimetro de llanta * POP 00H ;* Reestablese el status del sistema. * POP PSW ;* * POP DPL ;* * POP DPH ;* * POP ACC ;* * RET ;* * ;************************************************************************* CALCUART: ;* Calcula perimetro entre cuatro * MOV A,CODIPER ;* Carga codigo de perimetro en ACC en cm * MOV B,#04H ;* Dividira el perimetro entre cuatro * DIV AB ;* Divide perimetro entre cuatro * MOV COPECUA,A ;* Carga en COPECUA el resultado perim/4 * MOV COPECUR,B ;* Carga residuo de division como entero * RET ;* Regresa * ;************************************************************************* LEECONTA: ;* Lee el numero de pulsos en cont.0 * MOV R1,TL0 ;* Guarda en R1 numero de pulsos de Distan * MOV PULSOS,R1 ;* Guarda el numero de pulsos leidos * RET ;* * ;************************************************************************* CALCDIST: ;* DIST = (Perim/4) * num/pulsos * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * ACALL CALDISR ;* Calc.distancia residual(parte decimal) * ACALL CALDISE ;* Calc.distancia entera ( parte entera) * ACALL ACTREGD ;* Actualiza registros de distancia en RAM *

Page 72: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

72

POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************* CALDISR: ;* Calc.distancia residual(parte decimal) * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * MOV A,PULSOS ;* Carga el numero de pulsos leeidos * MOV B,PULSOSR ;* Carga el numero de pulsos residuales * ADD A,B ;* Suma pulsos mas pulsos residuales * MOV PULSOS,A ;* Actualiza numero de pulsos. * MOV R0,#PULSOSR ;* Apunta a direccion de memoria de var. * MOV @R0,#00H ;* Reinicializa Pulsos residuales con 0. * MOV R7,COPECUR ;* Carga en R7 codigo de perimetro/4 * CJNE R7,#03H,COPER2 ;* Si no es tres intenta con 2 * ACALL COPECUR3 ;* Calcula distancia res.con codigperi=3 * SJMP FINCDR ;* Termina * COPER2: CJNE R7,#02H,COPER1 ;* Si no es dos intenta con 1 * ACALL COPECUR2 ;* Calcula distancia res.con codigperi=2 * SJMP FINCDR ;* Termina * COPER1: CJNE R7,#01H,COPER0 ;* Si no es uno intenta con 0 * ACALL COPECUR1 ;* Calcula distancia res.con codigperi=1 * SJMP FINCDR ;* Termina * COPER0: SJMP FINCDR ;* Si Ccodigo de perim.residual =0 termina * FINCDR: POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************* CALDISE: ;* Calc.distancia entera (parte entera) * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * MOV A,PULSOS ;* Carga el numero de pulsos leeidos * MOV B,PULSOSR ;* Carga el numero de pulsos residuales * ADD A,B ;* Suma pulsos mas pulsos residuales * JC NOACTU ;* Si numero de pulsos > FF no actualiza * MOV PULSOS,A ;* Actualiza numero de pulsos. * MOV R0,#PULSOSR ;* Apunta a direccion de memoria de varble * MOV @R0,#00H ;* Reinicializa Pulsos residuales con 0. * NOACTU: MOV A,COPECUA ;* Carga en ACC el codigo de perimetro/4 * MOV B,PULSOS ;* Carga el numero de pulsos en B. * MUL AB ;* Calcula la distancia recorrida. * ADD A,DIST ;* Suma distancia entera con la residual * MOV DIST,A ;* Actualiza dato de distancia * MOV A,#00H ;* Prepara acc. para suma total de dist. * ADDC A,B ;* Suma,encuentra parte alta de distancia * MOV DISTH,A ;* Carga en variable parte alta de dist. * MOV R0,#PULSOS ;* Apunta a direccion de memoria de varble * MOV @R0,#00H ;* Reinicializa Pulsos con 0. * POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* *

Page 73: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

73

;************************************************************************ COPECUR3: ;* Calcula la distancia residual con el * PUSH ACC ;* codigo de perimetro residual igual a 3 * PUSH DPL ;* Preserva el status del sistema * PUSH DPH ;* * MOV R7,PULSOS ;* * CJNE R7,#00H,CASOP1 ;* Si hay mas de 0 pulsos prueva con 1 * SJMP FINCPEC3 ;* Si numero de pulsos =0 entonces termina * CASOP1: CJNE R7,#01H,CASOP2 ;* Si el numero de pulsos no es 1 ve 2 * MOV R0,PULSOSR ;* Apunta a la variable PULSOSR. * INC @R0 ;* PULSOSR++ * MOV DIST,#00H ;* No ha recorrido distancia significativa * MOV DISTR,#00H ;* No ha recorrido distancia significativa * SJMP FINCPEC3 ;* Termina. * CASOP2: CJNE R7,#02H,CASOP3 ;* Si el numero de pulsos no es 2 ve si 3 * MOV DIST,#01H ;* Carga distancia =1 en la variable * MOV DISTR,#02H ;* Carga diatancia residual = 2 (6/4=1+2/4)* SJMP FINCPEC3 ;* Termina. * CASOP3: CJNE R7,#03H,MAYIG4 ;* Si existen mas de tres pulsos. * MOV DIST,#02H ;* Carga la distancia en la variable * MOV DISTR,#01H ;* Carga diatancia residual (9/4=2+1/4)* SJMP FINCPEC3 ;* Termina. * MAYIG4: MOV A,PULSOS ;* Carga el numero de pulsos >= 4 * MOV B,#04H ;* Se prepara a dividir entre cuatro. * DIV AB ;* Divide codigo residual entre 4 * ACALL ACTUZAPR ;* Actualiza variable de pulsos residuales * MOV B,#03H ;* Se prepara a multiplicar por 3 * MUL AB ;* Multiplica por tres * MOV DIST,A ;* Carga codigo en variable de distancia * FINCPEC3: ;* *

POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************* ACTUZAPR: ;* Actualiza variable de pulsos residuales * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * MOV A,PULSOSR ;* Carga numero residual de pulsos * ADD A,B ;* Suma pulsos residuales con numero nvo. * MOV PULSOSR,A ;* Actualiza pulsos residuales. * POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************* COPECUR2: ;* Calcula distancia res.con codigperi=2 * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * MOV R7,PULSOS ;* * CJNE R7,#00H,CASOP21;* Si hay mas de 0 pulsos prueva con 1 * MOV DIST,#00H ;* No ha recorrido distancia significativa * MOV DISTR,#00H ;* No ha recorrido distancia significativa * SJMP FINCPEC2 ;* Como hay 0 pulsos no se ha avanzado * CASOP21: CJNE R7,#01H,CASOP22;* Si el numero de pulsos no es 1 ve 2 * MOV DIST,#00H ;* No ha recorrido distancia significativa * MOV DISTR,#00H ;* No ha recorrido distancia significativa *

Page 74: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

74

MOV R0,PULSOSR ;* Apunta a la variable PULSOSR. * INC @R0 ;* PULSOSR++ * MOV DIST,#00H ;* No ha recorrido distancia sgnificativa * MOV DISTR,#02H ;* 2/4 = 0 + 1/2 La distancia residual= 2 * SJMP FINCPEC2 ;* Termina. * CASOP22: CJNE R7,#02H,CASOP23;* Si numero de pulsos != 2 ve si es 3 * MOV DIST,#01H ;* Carga distancia =1 en variable 2*2/4 * MOV DISTR,#00H ;* Carga diatancia residual = 0 * SJMP FINCPEC2 ;* Termina. * CASOP23: CJNE R7,#03H,MAYIG24;* Si existen mas de tres pulsos. * MOV DIST,#01H ;* Carga la distancia en la variable * MOV DISTR,#02H ;* Carga diatancia residual * SJMP FINCPEC2 ;* Termina. * MAYIG24: MOV A,PULSOS ;* Carga el numero de pulsos >= 4 * MOV B,#04H ;* Se prepara a dividir entre cuatro. * DIV AB ;* Divide codigo residual entre 4 * ACALL ACTUZAPR ;* Actualiza variable de pulsos residuales* MOV B,#02H ;* Se prepara a multiplicar por 2 * MUL AB ;* Multiplica por 2 * MOV DIST,A ;* Carga codigo en variable de distancia * FINCPEC2: POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************ COPECUR1: ;* Calcula distancia res.con codigperi= 1 * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * MOV R7,PULSOS ;* * CJNE R7,#00H,CASOP11;* Si hay mas de 0 pulsos prueva con 1 * MOV DIST,#00H ;* No recorrio distancia significativa * MOV DISTR,#00H ;* No recorrio distancia significativa * SJMP FINCPEC1 ;* Como hay 0 pulsos no se ha avanzado * CASOP11: CJNE R7,#01H,CASOP12;* Si el numero de pulsos != 1 ve si es 2* MOV DIST,#00H ;* Carga distancia = 0 en la variable * MOV DISTR,#01H ;* Carga diatancia residual = 0 * MOV R0,PULSOSR ;* Apunta a la variable PULSOSR. * INC @R0 ;* PULSOSR++ * SJMP FINCPEC1 ;* Termina. * CASOP12: CJNE R7,#02H,CASOP13;* Si numero de pulsos != 2 ve si es 3 * MOV DIST,#00H ;* Carga distancia = 0 en la variable * MOV DISTR,#02H ;* Carga diatancia residual = 0 * MOV R0,PULSOSR ;* Apunta a la variable PULSOSR. * INC @R0 ;* PULSOSR++ * INC @R0 ;* PULSOSR++ * SJMP FINCPEC1 ;* Termina. * CASOP13: CJNE R7,#03H,MAYIG14;* Si existen mas de tres pulsos. * MOV DIST,#00H ;* Carga la distancia en la variable * MOV DISTR,#03H ;* Carga diatancia residual * MOV R0,PULSOSR ;* Apunta a la variable PULSOSR. * INC @R0 ;* PULSOSR++ * INC @R0 ;* PULSOSR++ * INC @R0 ;* PULSOSR++ * SJMP FINCPEC1 ;* Termina. *

Page 75: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

75

MAYIG14: MOV A,PULSOS ;* Carga el numero de pulsos >= 4 * MOV B,#04H ;* Se prepara a dividir entre cuatro. * DIV AB ;* Divide codigo residual entre 4 *

ACALL ACTUZAPR ;* Actualiza variable de pulsos residuales* MOV DIST,A ;* Carga codigo en variable de distancia *

FINCPEC1: POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************ ACTREGD: ;* Actualiza registros de distancia en RAM * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * ACALL COMPCIEN ;* Compara distancia reccorrida con 100 m * MOV DPTR,#DISTRAM ;* Apunta a primera loc.de mem.de distancia* MOVX A,@DPTR ;* Carga en ACC.la distancia act.registrada* MOV B,DIST ;* Carga en B el contenido de dist.calculad* ADD A,B ;* Suma distancias registrada y calculada * MOVX @DPTR,A ;* Actualiza en RAM la distancia recorrida * MOV B,DISTH ;* Carga el contenido de distancia alta. * MOV DPTR,#DISTHRAM ;* Apta.a segda.loc.de mem en RAM de dist. * MOVX A,@DPTR ;* Carga en ACC.el dato alto de distancia. * ADDC A,B ;* Suma distancia registrada con dist.calc.* MOVX @DPTR,A ;* Actualiza loc.de distancia alta en RAM * INC DPTR ;* Apunta a sig.loc de RAM de distancia * MOVX A,@DPTR ;* Carga el dato registrado de distancia * MOV B,#00H ;* Limpia el contenido de B * ADDC A,B ;* Suma el carri con sig. loc de mem.en RAM* MOVX @DPTR,A ;* Actualiza en RAM dato de distancia. * INC DPTR ;* Apunta a la 4a localidad en RAM de dist.* MOVX A,@DPTR ;* Carga dato de distancia en ACC. * MOV B,#00H ;* Pone en cero B. * ADDC A,B ;* Suma distancia registrada y dist.calcda.* MOVX @DPTR,A ;* Actualiza en RAM con dato calculado. * ;************************************************************************* ;* COMPARA NUMERO DE DISTANCIA REGISTRADO CON NUMERO MAXIMO DE DISTANCIA * ;************************************************************************* ACALL COMPADIS ;* Compara la distancia rrecorrida con 100 * POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************ ;* COMPARA DATO ACTUALIZADO CON 100 m = 10,000 cm = 2710H * ;* Cuando se encuentra que la distancia recorrida es mayor o igual que * ;* 100 m, se inicializan el contador (TL0) y las localidades de externas* ;* de comparacion de distancia (CODICIH,CODICIL). * ;************************************************************************ COMPCIEN: ;* Compara distancia reccorrida con 100 m * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * MOV B,DIST ;* Carga en B el dato de distancia. * MOV DPTR,#CODICIL ;* Apunta a direccion baja de comparacion * MOVX A,@DPTR ;* Carga en ACC el dato registrado CODICIL * ADD A,B ;* Suma * MOVX @DPTR,A ;* Carga en CODICIL el dato actualizado. * MOV DPTR,#CODICIH ;* Apunta a direccion alta de comparacion *

Page 76: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

76

MOVX A,@DPTR ;* Carga en ACC.el dato registrado CODICIH * MOV B,DISTH ;* Carga dato alto de distancia. * ADDC A,B ;* Suma con carry. * MOVX @DPTR,A ;* Carga en CODICIH el dato actualizado * MOV R4,A ;* Almacen aux.de dato alto de comparacion * MOV B,#27H ;* Prepara a comparar CODICIH con 27H * DIV AB ;* Divide CODICIH/27 * JZ ENDCOMCI ;* Salta a fin de comparacien si < 27 * CJNE R4,#27H,MAY ;* Si no es igual a 27 debe ser mayor * MOV DPTR,#CODICIL ;* Apunta a direccion baja de comparacion * MOVX A,@DPTR ;* Carga en ACC el dato CODICIL * MOV B,#10H ;* Prepara division entre 10 * DIV AB ;* divide CODICIL/10 * JZ ENDCOMCI ;* Si es menor que diez termina * MAY: MOV TL0,#00H ;* Limpia contador * CLR A ;* Pone en ceros ACC para limpiar locs/comp* MOV DPTR,#CODICIH ;* Apunta a direccion alta de dato de comp.* MOVX @DPTR,A ;* Limpia CODICIH * INC DPL ;* Apunta a CODICIL * MOVX @DPTR,A ;* Limpia CODICIL * ENDCOMCI: POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* Fin de comparacion de distancia con cien* ;************************************************************************* COMPADIS: ;* Compara distancia rrecorrida con 100 * CJNE A,#05H,FINACRED;* Compara MSB de dist.y distancia maxima * DEC DPL ;* Apunta a loc. 1002 de distancia en RAM * MOVX A,@DPTR ;* Carga en ACC dato de loc.1002 de distcia * CJNE A,#0F5H,FINACRED;* Compara dato de loc.1002 con F5H * DEC DPL ;* Apunta a loc. 1001 de distancia en RAM * MOVX A,@DPTR ;* Carga en ACC dato de loc.1001 de distcia * CJNE A,#0B9H,FINACRED;* Compara dato de loc.1001 con B9H * DEC DPL ;* Apunta a loc. 1000 de distancia en RAM * MOVX A,@DPTR ;* Carga en ACC dato de loc.1000 de distcia* CJNE A,#0F0H,FINACRED;* Compara dato de loc.1000 con F0H * CLR A ;* Carga ACC con 00H * CLRDIS: MOVX @DPTR,A ;* Registros de dist<-0 en distancia maxima* INC DPL ;* Apunta a sigte.loc. de distancia en RAM * MOV R3,DPL ;* Carga en R3 el valor de DPL * CJNE R3,#04H,CLRDIS ;* Limpia localidades de distancia en RAM * FINACRED: RET ;* * ;************************************************************************ ; PROCEDIMIENTO DESPDIST * ;************************************************************************ DESPDIST : ;* DESPLEGA DATO DE DISTANCIA * MOV DPTR,#ULDISRAM ;* Apunta a localidad 1003H de RAM. * MOVX A,@DPTR ;* Carga en Acc el contenido * ANL A,#0FH ;* Limpia parte alta del dato * CJNE A,#00H,DI6NZ ;* Compara si es cero salta a DI6NZ * MOV RES1,#00H ;* Limpia RES1. * MOV RES2,#00H ;* Limpia RES2. * SJMP ESDI5 ;* Salta a ESDI5. * DI6NZ : MOV B,#0A8H ;* Carga en B 168 prepara multiplicacion. * MUL AB ;* Se multiplica DI6 por 168 = A8H * MOV RES2,B ;* Carga en RES2 la parte alta de resultado* MOV RES1,A ;* Carga en RES1 la parte baja de resultado*

Page 77: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

77

ESDI5 : DEC DPL ;* Apunta a la localidad 1002 en RAM. * MOVX A,@DPTR ;* Carga en Acc el dato. * MOV R3,A ;* Guarda D5 y D4 en R3. * ANL A,#0F0H ;* Prepara D5 en el acumulador. * SWAP A ;* Intercambia contenido de ACC. * CJNE A,#00H,DI5NZ ;* Si dato no es cero salta a DI5NZ * MOV RES3,#00H ;* Limpia variables de resultado. * MOV RES4,#00H ;* Limpia variables de resultado. * MOV RES5,#00H ;* Limpia variables de resultado. * SJMP ESDI4 ;* Salta a ESDI4. * DI5NZ : MOV R2,A ;* Respalda dato leeido. * CLR C ;* Limpia la bandera de carry. * RRC A ;* Rotacion a la derecha divide entre 2. * MOV RES3,A ;* Se guarda DI5/2 en RES3. * MOV B,#0AH ;* Carga en B prepara a multiplicar por 10 * MOV A,R2 ;* Restablese dato de DI5 en ACC. * MUL AB ;* Multiplica DI5 por 10 * MOV RES4,A ;* Guarda parte baja de multiplicon.DI5*10 * MOV RES5,B ;* Se guarda parte alta en RES5. * ESDI4 : MOV A,R3 ;* Carga en Acc DI5 y DI4 * ANL A,#0FH ;* Prepara DI4. * CJNE A,#00H,DI4NZ ;* Si no es cero salta a DI4NZ. * MOV RES6,#00H ;* Limpia variable RES6 * SJMP SUMA ;* Salta para realizar la suma. * DI4NZ : CLR C ;* Limpia bandera de carry * RRC A ;* Divide valor leeido de DI4 entre dos. * MOV RES6,A ;* Guarda en RES6, DI4/2 * ;************************************************************************ SUMA : ;* * CLR C ;* Limpia bandera de carry. * MOV A,RES1 ;* Carga parte baja de 168 * DI6 en ACC. * ADD A,RES3 ;* ACC <- RES1 + RES3 * JNC SUMAR4 ;* Si no hay carry salta a sumar con RES4 * MOV R0,#RES5 ;* Si hay carry incrementa contenido de la * INC @R0 ;* variable RES5. * SUMAR4: ADD A,RES4 ;* ACC <- (RES1+RES3) + RES4 * JNC SUMAR6 ;* Si no hay carry salta a sumar con RES6 * INC @R0 ;* Si carry incrementa el contenido de RES5* SUMAR6: ADD A,RES6 ;* ACC <- (RES1+RES3+RES4) + RES6 * JNC GDANL ;* Si no carry guarda el nible bajo en R1 * INC @R0 ;* Si carry incrementa contenido de RES5 * GDANL: MOV R1,A ;* Guarda el dato final parte baja en R1 * MOV A,RES2 ;* Prepara a sumar RES2 + RES5 (parte alta)* ADD A,RES5 ;* ACC <- RES2 + RES5 * MOV R2,A ;* Guarda dato final en R2 parte alta. * CJNE R2,#03H,DDH2 ;* 300H= 768 si dist.alta !=3 ve si es 2 * MOV R2,#07H ;* Carga numero alto correspndiente a 300H * MOV R3,#68H ;* Carga numero bajo correspndiente a 300H * SJMP CONDD1 ;* Salta a conversion decimal de dato. * DDH2: CJNE R2,#02H,DDH1 ;* Si dato de distancia alto no es dos.. * MOV R2,#05H ;* Carga numero alto correspndiente a 200H * MOV R3,#12H ;* Carga numero bajo correspndiente a 200H * SJMP CONDD1 ;* Salta a conversion decimal de dato. *

Page 78: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

78

DDH1: CJNE R2,#01H,DDH0 ;* Si dato de distancia alto no es uno... * MOV R2,#02H ;* Carga numero alto correspndiente a 100H * MOV R3,#56H ;* Carga numero bajo correspndiente a 100H * SJMP CONDD1 ;* Salta a conversion decimal de dato. * DDH0: MOV R2,#00H ;* Carga numero alto correspondiente a 00H * MOV R3,#00H ;* Carga numero bajo correspondiente a 00H * CONDD1: MOV A,R1 ;* ACC <- Parte baja de dato leeido. * MOV B,#100 ;* Prepara division entre cien. * DIV AB ;* Divide entre cien, calcula centenas. * MOV CENTSD,A ;* Carga resultado de centenas. * MOV A,#10 ;* Prepara division entre diez. * XCH A,B ;* Intercambia datos ACC.,B * DIV AB ;* Divide entre diez, calcula decenas. * MOV DECESD,A ;* Guarda resultado de decenas. * MOV A,#01 ;* Prepara calculo de unidades. * XCH A,B ;* Intercambia datos ACC.,B * DIV AB ;* Divide para calcular unidades. * MOV UNIDSD,A ;* Guarda resultado de unidades. * MOV A,DECESD ;* ACC <- decenas * SWAP A ;* Intercambia nibles del ACC. <- decenas * MOV R0,#UNIDSD ;* R0 Apunta a unidades de distancia. * XCHD A,@R0 ;* ACC<-decenas(nible H),unidades(nible L) * ADD A,R3 ;* Suma decenas,unidades + 68, 12 o 56 * DA A ;* Ajuste decimal para suma BCD * MOV R1,A ;* Carga resultado final parte baja en R1 * MOV A,R2 ;* Carga en ACC. parte alta de result.dist.* ADDC A,CENTSD ;* Suma parte alta de distancia + num.cents* DA A ;* Ajuste decimal para suma BCD parte alta * LCALL PREPARA ;* Limpia nible alto y convierte a 7 segs. * MOV D2,A ;* Carga centenas decimal en buf.display D2* MOV A,R1 ;* Carga decenas y unidades decimal en ACC.* SWAP A ;* Decenas en nible bajo de ACC. * LCALL PREPARA ;* Prepara dato para despliegue. * MOV D1,A ;* Carga decenas decimal en buf.display D1 * MOV A,R1 ;* Carga decenas y unidades en ACC. * LCALL PREPARA ;* Prepara dato para despliegue. * MOV D0,A ;* Carga unidades en display D0 * LCALL BUFADSP ;* Transfiere datos de buffers a displays * RET ;* Fin de procedimiento DESPDIST * ;************************************************************************ CALVELOC: ;* Calcula Velocidad y desplega el dato. * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * MOV A,#00H ;* A TOMA el CANAL de CAD de VELOCIDAD * ACALL LEEPTO ;* Lee puerto de velocidad (pto 0) de CAD * POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************ NIVCOMBU: ;* Calc.Nivel de combustible actualiza reg.* PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * MOV A,#01H ;* A TOMA el CANAL de CAD de COMBUSTIBLE * ACALL LEEPTO ;* Lee puerto de combustible(pto 1) de CAD * ;* *

Page 79: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

79

POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************ BATERIA: ;* Sensa nivel voltaje de bateria act.reg. * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * MOV A,#02H ;* A TOMA el CANAL de CAD de BATERIA. * ACALL LEEPTO ;* Lee puerto de bateria (pto 2) de CAD * ;* * POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************ ALARMARO: ;* Sensa se¤al de alarma antirrobo. * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * MOV A,#03H ;* A TOMA el CANAL de CAD de ALARMA. * ACALL LEEPTO ;* Lee puerto de alarma/robo(pto 3) de CAD * POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************ LEEPTO: ;* Lee puerto de velocidad (pto 0) del CAD * MOV DPTR,#3000H ;* Carga DPTR con direccion del CAD * MOVX @DPTR,A ;* Se selecciona el canal de el CAD * MOV R0,#00H ;* Se inicializa el contador. * MOV R1,A ;* Carga en R1 el canal del CAD sensado. * ESPECO: NOP ;* Espera fin de conversion del CAD * NOP ;* Espera fin de conversion del CAD * INC R0 ;* Incrementa contador. * CJNE R0,#17H,ESPECO ;* Compara contador con 23 y espera conver.* JB P1.0,LEE ;* Si EOC se presenta brinca a LEE * NOP ;* Espera * NOP ;* Espera * NOP ;* Espera * LEE: ;* Le dato convertido por el CAD * MOV DPTR,#3000H ;* Apunta a direccion de CAD. * MOVX A,@DPTR ;* Se carga A con el dato digital leeido. * ;************************************************************************ ;* Convierte voltaje leeido de CAD en valor equivalente,DATO<- resultado* ;* Para el caso del calculo de velocidad, solo se calcula hasta 255 km/h* ;************************************************************************ MOV R2,A ;* Guarda el dato leeido del CAD en R2 * CJNE R1,#00H,CALCOMB;*Si no es calc.de velocidad,ve si combust * MOV B,#04H ;* Prepara comparacion con 4 * DIV AB ;* Divide y determina si dato leeido >= 4 * JZ VELOCERO ;* La velocidad es cero. * MOV A,R2 ;* Recupera el dato leeido del CAD. * SUBB A,#03H ;* ACC <- dato digital leeido - 3 * MOV R1,A ;* R1 <- Dato de CAD - 3 * MOV A,CODIPER ;* Prepara multiplicacion por el perimetro * MOV B,#0AEH ;* Prepara division entre 174 = AEH *

Page 80: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

80

DIV AB ;* Divide codigo de perimetro/174 * JZ SCERO ;* Si S == 0 salta a SCERO * XCH A,B ;* ACC <- R y B <- S * JZ RCERO ;* si S != 0 y R == 0 salta a RCERO * ;* S != 0 y R != 0 * XCH A,B ;* A <- S y B <- R * MOV R3,B ;* R3 <- R * MOV B,R1 ;* B <- ( f-3 ) prepara a multip. por S * MUL AB ;* ACC <- S * ( f-3 ) * MOV R2,A ;* R2 <- S * ( f-3 ) * SCCON: MOV A,#0AEH ;* ACC <- 174 = AEH * MOV B,R3 ;* B <- R Prepara division 174/R * DIV AB ;* Divide AEH/R * XCH A,B ;* B <- AEH/R * MOV A,R1 ;* ACC <- f-3 * DIV AB ;* A <- (f-3) / (174/R) * ADD A,R2 ;* A <- (( f-3 ) / (174/R)) + (S * ( f-3 ))* MOV R0,#DF ;* Apunta a buffer de display mas signific.* SJMP CARGADAT ;* Salta incondicionalmente a cargar dato * SCERO: MOV R2,#00H ;* R2 <- 0 pues S == 0 * MOV R3,B ;* R3 <- R * SJMP SCCON ;* Continua calculo de R*(f-3)/K * RCERO: XCH A,B ;* ACC <- S * MOV B,R1 ;* B <- (f-3) * MUL AB ;* A <- S*(f-3) * MOV R0,#DF ;* Apunta a bufer de display mas signific. * SJMP CARGADAT ;* Salta incondicionalmente a cargar dato. * VELOCERO: CLR A ;* Carga ACC. con cero pues velocidad = 0 * MOV R0,#DF ;* Apunta a buffer de display mas signific.* SJMP CARGADAT ;* Salta incondicionalmente a cargar dato * CALCOMB: CJNE R1,#01H,CALCBAT;*Si no es calculo de cobustible ve si bat* MOV A,R2 ;* Prepara a dividir FF/Dato digital leeido* MOV B,#02H ;* Prepara division entre dos. * DIV AB ;* Divide Dato digital leeido del CAD / 2 * MOV R0,#DC ;* Apunta a buffer de display de combustib.* SJMP CARGADAT ;* Salta a cargar el dato. * CALCBAT: CJNE R1,#02H,CALCAL;* Si no es calculo de bateria ve si alarma* MOV A,R2 ;* Se calcula nivel de voltaje en bateria. * MOV B,#NIVCRBAT ;* Carga B con 200*(0.8) = 160 = A0H * DIV AB ;* Divide Dato leeido entre CCH * JZ NIVCRT ;* Si ACC = 0 existe nivel critico de bate.* MOV R0,#D9 ;* Apunta a display mas signif.de bateria * MOV @R0,#82H ;* Carga en buf.de Disp.alto de bat.car. G * MOV R0,#D8 ;* Apunta a buffer display bajo de bateria * MOV @R0,#0A1H ;* Carga en buf.de disp.bajo de bat.car. D * ACALL BUFADSP ;* Desplega dato actualizado de bateria. * SJMP ENDLEPTO ;* Salta a fin de procedimiento. * NIVCRT: MOV R0,#D9 ;* Apunta a buffer display alto de bateria * MOV @R0,#0C6H ;* Carga en buf.de Disp.alto de bat.car. C * MOV R0,#D8 ;* Apunta a buffer display bajo de bateria * MOV @R0,#8FH ;* Carga en buf.de disp.bajo de bat.car. R * ACALL BUFADSP ;* Desplega dato actualizado de bateria. * SJMP ENDLEPTO ;* Salta a fin de procedimiento. * CALCAL: CJNE R1,#03H,ENDLEPTO;* Si no es calculo de alarma termina. * ;* Detecta si existe se¤al de alarma. * SJMP ENDLEPTO ;* Termina procedimiento. * CARGADAT: MOV DATO,A ;* Se carga en DATO el dato digital. * ACALL DESPSED ;* Desplega dato en Displays (Dec) * ENDLEPTO: RET ;* Termina LEE PUERTO. *

Page 81: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

81

;************************************************************************ DESPSED: ;* Desplega se¤al en codigo decimal * PUSH ACC ;* Preserva el contexto del ACC * MOV A,DATO ;* Carga en ACC el dato digitalizado * MOV B,#100 ;* Divide entre cien para determinar * DIV AB ;* el numero de centenas. * ACALL PREPARA ;* Se prepara para salvar el dato * MOV @R0,A ;* Carga centenas en Display correspondte. * MOV A,#10 ;* A <- 10 para contar decenas. * XCH A,B ;* A <- residuo ,B <- 10 p/cont/dec. * DIV AB ;* Divide entre diez el residuo para * ACALL PREPARA ;* contar decenas. * DEC R0 ;* Apunta a buffer de display inferior. * MOV @R0,A ;* Carga decenas en Display correspondiente* MOV A,#01H ;* A <- 1 para contar unidades * XCH A,B ;* A <- residuo ,B <- 1 p/cont/unid. * DIV AB ;* Divide entre uno el residuo para * ACALL PREPARA ;* contar decenas. * DEC R0 ;* Apunta a buffer de display inferior * MOV @R0,A ;* Carga unidades en Display correspondite.* ACALL BUFADSP ;* Saca a Displays datos en cod. Dec. * POP ACC ;* Reestablese estado del acumulador * RET ;* Regresa de invocacion * PREPARA: ;* Prepara codificacion * ANL A,#0FH ;* Toma la parte baja del ACC. * ACALL A7SEG ;* Codifica a siete segmentos. * RET ;******************************************* ;************************************************************************* ECO: ;* Calcula Func.Esp.ECO actualiza registro * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * ;* * POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************* DTE: ;* Calcula Func.Esp.DTE actualiza registro * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * ;* * POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* * ;************************************************************************* ET: ;* Calcula Func.Esp. ET actualiza registro * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPL ;* * PUSH DPH ;* * ;* * POP DPH ;* Reestablese el Status del Sistema * POP DPL ;* * POP ACC ;* * RET ;* *

Page 82: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

82

;************************************************************************* ;* A7SEG recibe en ACC un numero y devuelve en ACC su codigo en 7 segmnts* ;************************************************************************* A7SEG: PUSH DPH ;* Preserva el DPTR * PUSH DPL ;* * MOV DPTR,#TABL7SEG ;* Apunta a tabla de 7 segmentos * MOVC A,@A+DPTR ;* Usa ACC como offset para leer codigo * POP DPL ;* * POP DPH ;* Reestablese el status del Sistema * RET ;* Regresa * ;************************************************************************* ;* TABL7SEG (Los segmentos .gfedcba estan en activo negativo) * ;************************************************************************* TABL7SEG: ;* TABLA A DISPLAYS DE SIETE SEGMENTOS * ; .gfedcba ;* DISTRIBUCION DE BITS PARA CADA SEGMENTO * DB 11000000B ;* Caracter 0 * DB 11111001B ;* Caracter 1 * DB 10100100B ;* Caracter 2 a * DB 10110000B ;* Caracter 3 -- * DB 10011001B ;* Caracter 4 f| g | b * DB 10010010B ;* Caracter 5 -- * DB 10000010B ;* Caracter 6 e| | c * DB 10111000B ;* Caracter 7 -- .p * DB 10000000B ;* Caracter 8 d * DB 10011000B ;* Caracter 9 * DB 10001000B ;* Caracter A * DB 10000011B ;* Caracter b * DB 11000110B ;* Caracter C * DB 10100001B ;* Caracter d * DB 10000100B ;* Caracter e *

DB 10001110B ;* Caracter F * ;************************************************************************ LETRERO: ;* Letrero de menu principal del sistema. * DB 079H,0A1H,0FBH,092H ;* 1.,d ,i ,S * DB 024H,084H,0C6H,0A3H ;* 2.,e ,C ,o * DB 030H,0A1H,087H,084H ;* 3.,d ,t ,e * DB 019H,084H,087H,0FFH ;* 4.,e ,t , * RET ;**** Regresa ***** ;************************************************************************ LETREPER: ;* Letrero de dato leeido de perimetro. * DB 08CH,084H,08FH,0FBH ;* P ,E ,R ,I * DB 089H,084H,087H,08FH ;* M ,E ,T ,R * DB 0A3H,0FFH,0FFH,0FFH ;* O , , , * DB 0FFH,0FFH,0C6H,089H ;* , ,C ,M * RET ;**** Regresa ***** ;************************************************************************ ;* DESPLEGA Recive en DPTR la direccion de un letrero, para escribirlo * ;* en el buffer y enviarlo a los displays. * ;************************************************************************ DESPLEGA: ;* * ACALL MEMABUF ;* Escribe letrero en el buffer * ACALL BUFADSP ;* Envia el buffer al 8279 * RET ;* Regresa *

Page 83: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

83

;************************************************************************ ;* MEMABUFF recive en DPTR la direccion del letrero para escribirlo * ;* en el buffer de RAM interna. * ;************************************************************************ MEMABUF: ;* * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPH ;* Preserva DPTR * PUSH DPL ;* * PUSH PSW ;* Preserva PSW * PUSH 00H ;* Guerda R0 del banco de registros 0 * MOV PSW,#00H ;* Selecciona baco de registros 0 * MOV R0,#DF ;* Apunta R0 a buffer mas significativo * ;************************************************************************ MEMABUF1: ;* * MOVX A,@DPTR ;* Lee el caracter de memoria externa * MOV @R0,A ;* Esc.carctr.en el buffer correspondiente * INC DPTR ;* Apunta al siguiente caracter del letrero* DEC R0 ;* Apunta al buffer inferior corespondiente* CJNE R0,#D0V,MEMABUF1;* Mientras buffer sea mayor que D0-1 * POP 00H ;******************************************* POP PSW ;* * POP DPL ;* * POP DPH ;* Reestablese el status del Sistema * POP ACC ;******************************************* RET ;* Regresa * ;************************************************************************ ;* BUFADSP envia el buffer en RAM interna a los displays 8279 * ;************************************************************************ BUFADSP: ;* * PUSH ACC ;* Preserva el Status del Sistema * PUSH DPH ;* Preserva DPTR * PUSH DPL ;* * PUSH PSW ;* Preserva PSW * PUSH 00H ;* Guerda R0 del banco de registros 0 * MOV DPTR,#CTRL8279 ;* Apunta a direcn.de contrl.del 8279 * MOV A,#WR0INC ;* Prepara para esc.en RAM de displays * MOVX @DPTR,A ;* a partir de disp0 con autoincrement * MOV PSW,#00H ;* Selecciona banco 0 de registros * MOV DPTR,#DAT8279 ;* Apunta a direcn. de datos del 8279 * MOV R0,#D0 ;* Apunta R0 a buffer menos signifivo * :************************************************************************ BUFADSP1: ;* * MOV A,@R0 ;* Toma caracter del buffer en curso * MOVX @DPTR,A ;* Lo manda al 8279 * INC R0 ;* Apunta al buffer siguiente * CJNE R0,#DFV,BUFADSP1;* Mientras buffer sea menor que DF+1 * POP 00H ;******************************************* POP PSW ;* * POP DPL ;* * POP DPH ;* Reestablese el status del Sistema * POP ACC ;******************************************* RET ;* Regresa * :************************************************************************ RETARDO: ;* Retardo de aproximadamente 4 segundos. * MOV R0,#00H ;* Inicializa registros para despliegue de * MOV R1,#00H ;* menu principal del sistema. * MOV R2,#00H ;* *

Page 84: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

84

ESPMEN : NOP ;* No operacion * NOP ;* * NOP ;* * NOP ;* No operacion * NOP ;* * NOP ;* * NOP ;* No operacion * NOP ;* * NOP ;* No operacion * NOP ;* * INC R0 ;* Incrementa registro contador. * CJNE R0,#0FFH,ESPMEN;* Compara con 255 ciclos * MOV R0,#00H ;* Limpia R0 para reiniciar ciclo de conteo* INC R1 ;* Incrementa registro contador. * CJNE R1,#0FFH,ESPMEN;* Repite hasta 255 * 255 ciclos * MOV R0,#00H ;* Inicializa registro contador * MOV R1,#00H ;* Inicializa registro contador * INC R2 ;* Incrementa registro contador * CJNE R2,#04H,ESPMEN ;* Repite hasta 255*255*4ciclos*13ciclsmaq * MOV R0,#00H ;* El mensaje permanece mas de 3 segundos * MOV R1,#00H ;* Limpia registros contadores * MOV R2,#00H ;* * RET ;********* Termina procedimiento RETARDO *** ;************************************************************************ END ;****** FIN DE PROGRAMA *****

Page 85: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

85

CAPITULO IV CONCLUSIONES RESUMEN DEL OBJETIVO ORIGINAL Para llegar a una conclusión adecuada, es importante hablar sobre el objetivo del proyecto, los planteamientos propuestos en cada etapa del desarrollo y las consecuencias que se presentaron como resultado de cada decisión. El proyecto consistió en el diseño, implementación y prueba de un sistema electrónico basado en un microcontrolador, el cual tiene la función de analizar la condición operativa de cada uno de los procesos operativos de un automóvil, procesar la información y presentar al usuario los resultados como apoyo en la administración de los recursos automotrices.

En el desarrollo, fue importante considerar que en las señales eléctricas que definen la situación operativa del vehículo, se pueden presentar ruido, picos o sobrecargas de voltaje y por esto, requirieron ser filtradas, reguladas y en algunos casos regeneradas con dos objetivos:

1. Proteger eléctricamente al sistema, basado en un micro controlador, un CAD, memorias RAM y EPROM, registros de direccionamiento, circuitos de apoyo y un sistema de entrada y salida de datos.

2. Generar señales controladas de la mejor calidad posible, para reducir la probabilidad de errores en la medición y el análisis de cada señal y con ello, obtener resultados confiables en cada proceso.

PRIMER PLANTEAMIENTO ODÓMETRO

El parámetro principal, a partir del cual, se obtiene la información del odómetro y de la velocidad del automóvil, es el radio de las llantas. En la primer propuesta de diseño, se planteo introducir el valor del diámetro externo de las llantas al sistema, mediante el micro switch de 8 bits y en código binario. Se planteo que con este dato, el programa calculara de manera automática el perímetro de las llantas, el numero de giros y de pulsos requeridos para completar un kilómetro y una vez hecho esto, contara el numero de pulsos requeridos, contabilizara y registrara, el numero de kilómetros recorridos por el automóvil así como el numero de giros completos del odómetro, es decir, el numero de giros completos de 10,000 km.

no

Micro switch Diámetro externo de llanta

[código binario]

Codificación de Diámetro externo Código binario

Calculo por programa, del perímetro, de giros y pulsos requeridos para recorrer un kilómetro.

¿Se cumple 1 km?

Conteo de pulsos relativos a un km

siActualiza registros

de distancia

Presentación de

información odometrica

Page 86: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

86

El diagrama presenta la primer propuesta de diseño, en la cual el sistema realizaba un análisis completo

de la información. Este proceso podía parecer conveniente sin embargo, la implementación de este programa resulto en serios inconvenientes.

Introducir mediante hardware el valor relativo al diámetro de las llantas, fue una decisión adecuada, pues se logro mediante este diseño, la configuración de diferentes diámetros de llanta sin tener que realizar trabajos adicionales de software, para llantas de tamaño comercial.

Sin embargo el proceso que calcula el perímetro de las llantas y el numero de pulsos requeridos para definir el recorrido de un kilómetro, tiene como objetivo calcular la distancia recorrida. De este calculo depende la confiabilidad del sistema. El microcontrolador, cuenta con registros que permiten la manipulación numérica de datos, así como la ejecución de operaciones lógicas y aritméticas, sin embargo, en este caso, la exactitud en los resultados obtenidos en las operaciones, es de primordial importancia. La ejecución de operaciones con valores numéricos con punto flotante fue la diferencia entre obtener un valor real o un valor aproximado. Esta diferencia resulto determinante en esta aplicación. El calculo del perímetro de la llanta a partir del diámetro externo, así como del numero de pulsos requeridos para completar un kilómetro, mediante operaciones de números con punto flotante, daba como resultados, valores aproximados que se disparaban considerablemente de los valores reales. Además de generar resultados pobremente aproximados, estos cálculos consumían una gran cantidad de tiempo de procesamiento para el 8031. SEGUNDO PLANTEAMIENTO ODÓMETRO El planteamiento final considero la introducción del valor relativo al perímetro de las llantas mediante hardware, sin embargo se cambio el diseño para el calculo de la información odometrica. En este diseño, la información relativa al perímetro de las llantas del vehículo, al numero de giros y de pulsos que implica recorrer un kilómetro de distancia, se introducen directamente al sistema, por lo que el microcontrolador solo se ocupa en seleccionar el caso del código asociado a las llantas que están instaladas, y a contabilizar el numero de pulsos asociados al recorrido de un kilómetro.

Micro switch Código del perímetro de la

llanta

Codificación del perímetro de la llanta

Elección del código de perímetro y definición del numero de pulsos relativos a un kilómetro.

¿Se cumple 1 km?

Conteo de pulsos

siActualiza registros

de distancia

Presentación de

información odometrica

no

Page 87: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

87

Esto implica un trabajo previo de clasificación y de codificación de las diferentes llantas que se

encuentran en el mercado, sin embargo ahorra considerablemente el tiempo de procesamiento, y permite obtener un calculo odometrico bastante exacto. El precio que se pago antes de poder entender esta aparente “sencilla diferencia” fue alto y el recurso mas usado fue el tiempo de desarrollo.

En este caso, la moraleja consiste en entender que el diseño del sistema debe ser el adecuado en relación al equipo que se utiliza y a sus características técnicas en el desarrollo del sistema, y que no se debe sobre estimar la capacidad de procesamiento del equipo, por el contrario, es mas conveniente asignarle tareas sencillas que pueda ejecutar de manera rápida y eficiente. Un algoritmo siempre podrá mejorarse en versiones posteriores siempre y cuando este basado en una versión que puede ser sencilla y poco sofisticada, pero siempre y cuando funcione de manera confiable.

VELOCÍMETRO

En el sistema de medición de velocidad, los resultados obtenidos experimentalmente en el prototipo

final de esta primera versión de SICV, fueron correctos y con incertidumbres que se pueden considerar dentro de limites razonables. Seria ideal el uso de CI.s especialmente diseñados para esta aplicación, sin embargo, el diseño de circuitos mediante el uso de CI.s de aplicación general, resulta en sistemas de funcionamiento razonablemente adecuado.

El sistema prototipo, y bajo condiciones controladas, presento una incertidumbre menor al 10% para

velocidades que se encuentran entre los 20 y los 160 km/h. En velocidades mayores a 200 km/h, se obtuvieron mediciones cuyo factor de error aumento considerablemente con el aumento de la velocidad.

Es importante considerar que el sistema tiene como objetivo principal, dar al usuario la información que

permita administrar correctamente los recursos del automóvil, sin embargo puede ser conveniente alertar al usuario de situaciones peligrosas, incluso, en versiones posteriores, se puede considerar que como criterio de control, el sistema indicara al usuario que esta excediendo la velocidad permitida, e incluso almacenara registros históricos con información de uso inadecuado del vehículo. ANÁLISIS MEDIANTE EL CAD

Las señales analizadas mediante el CAD del sistema como son: la interfase de velocidad, de batería, de

combustible, etc. son sensadas en forma periódica y permanente, y los resultados adquiridos, permiten realizar el análisis lógico de cada señal sin problemas, ya que el comportamiento del CAD fue bastante confiable y exacto. Esto es posible gracias a que la amplitud máxima de cada señal es conocida y controlada por la interfase correspondiente.

TACÓMETRO Y ACR

En una versión posterior del sistema, se puede añadir el control por micro procesador, del sistema de

tacómetro, así como de la ACR. Para el primer caso, se puede alimentar uno de los canales del CAD, con la señal que defina un nivel critico de régimen de giro del motor, esto es, mediante la señal generada por el tacómetro SICV, que se defina como frontera máxima recomendada para el automóvil. Para el caso de la ACR, se puede alimentar la interrupción libre del 8031 con una señal proveniente de la etapa defensiva de la ACR SICV y con ello realizar las acciones que se puedan considerar convenientes para este tipo de situaciones. COMENTARIOS FINALES

Se puede considerar a SICV como un proyecto ambicioso, el cual puede llegar a realizar las funciones que den solución y respuesta a los requerimientos que se puedan presentar en el ámbito automotriz. Este trabajo pretende ser la primera versión del desarrollo y presentar una base teórica, analítica y experimental del sistema y de cada una de las funciones que puede realizar, así como presentar un análisis formal de cada uno de sus componentes. Esto significa que el proyecto puede y debe tener continuidad en versiones posteriores, las cuales generen un sistema mas sofisticado, mas probado, mas eficiente y versátil.

Page 88: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

88

Como ultimo comentario, se puede concluir que este desarrollo resulto caro en varios aspectos, sin embargo el mas costoso y determinante, fue el recurso tiempo, y esto muestra una inadecuada planeación del proyecto y una omisión en la evaluación de los recursos necesarios para su realización.

No se deben evaluar en forma intuitiva los recursos mínimos que permitirán la terminación de un

proyecto sus expectativas, el animo y las buenas intenciones podrían no ser suficientes para lograrlo. Es muy importante realizar el análisis formal del proyecto, sus alcances y de los recursos técnicos, económicos y humanos minimamente requeridos para que el proyecto sea viable y para que las expectativas mas costosas puedan ser alcanzadas. Realizar un análisis formal de planeación de proyecto y evaluar recursos, disposición, vs. objetivos y expectativas y no realizarlo, puede ser la diferencia entre la conclusión de un proyecto viable o la no conclusión de un proyecto ambicioso.

Page 89: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

89

CAPITULO V BIBLIOGRAFÍA MECÁNICA AUTOMOTRIZ

TITULO: FUNDAMENTOS DE MECÁNICA AUTOMOTRIZ AUTOR: FREDERICK C. NASH EDICIÓN: Primera EDITORIAL: DIANA S.A. CIUDAD/AÑO: México, 1970

ELECTRÓNICA AUTOMOTRIZ

TITULO: ELECTRÓNICA APLICADA AL AUTOMÓVIL AUTOR: H. Hinlopen EDICIÓN: Tercera EDITORIAL: PARANINFO S.A. COLECCIÓN: “TEMÁTICA AUTOMOTRIZ” CIUDAD/AÑO: Madrid, 1986 TITULO: 20 SOLID STATE PROJECTS FOR THE CAR AND GARAGE AUTOR: R.M. Marston EDICIÓN: Primera EDITORIAL: Newnes Technical Books CIUDAD/AÑO: USA., 1970

ELECTRICIDAD Y CIRCUITOS ELÉCTRICOS

TITULO: fundamentos de electricidad AUTOR: Howard H. Gerrish EDICIÓN: Primera EDITORIAL: LIMUSA CIUDAD/AÑO: México, 1982 TITULO: ANÁLISIS DE REDES AUTOR: M.E. Van Valkenburg EDICIÓN: Primera EDITORIAL: LIMUSA S.A. DE C.V. CIUDAD/AÑO: México, 1990

COMPUTADORES

TITULO: Arquitectura de Computadores AUTOR: M. Morris Mano EDICIÓN: Primera EDITORIAL: PRENTICE-HALL HISPANOAMERICANA, S.A. CIUDAD/AÑO: México, 1983 TITULO: Lógica Digital y Diseño de Computadores AUTOR: M. MORRIS MANO EDICIÓN: Primera EDITORIAL: PRENTICE-HALL HISPANOAMERICANA, S.A. CIUDAD/AÑO: México, 1982 TITULO: TEORÍA DE CONMUTACIÓN Y DISEÑO LÓGICO AUTOR: Frederick J. Hill, Gerald R. Peterson EDICIÓN: Segunda edición EDITORIAL: EDITORIAL LIMUSA, S.A. de C.V. CIUDAD/AÑO: México, 1989

Page 90: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

90

BIBLIOGRAFÍA (continuación)

TITULO: MICROPROCESSORS AND INTERFACING AUTOR: Douglas V. Hall EDICIÓN: International Edition EDITORIAL: McGraw-Hill, Inc. CIUDAD/AÑO: Singapore, 1986

ELECTRÓNICA TITULO: Electrónica Teoría de Circuitos AUTOR: Boylestad, Nashelsky EDICIÓN: Primera EDITORIAL: PRENTICE-HALL HISPANOAMERICANA, S.A. CIUDAD/AÑO: México 1983 TITULO: ELECTRÓNICA INDUSTRIAL MODERNA AUTOR: TIMOTHY J. MALONEY EDICIÓN: Tercera EDITORIAL: PRENTICE-HALL HISPANOAMERICANA, S.A. CIUDAD/AÑO: México, 1997 TITULO: Electrónica integrada AUTOR: Jacob Millman y Chirstos c. Halkias EDICIÓN: Cuarta EDITORIAL: Hispano Europea S.A. COLECCIÓN: Politécnica CIUDAD/AÑO: España, 1981 TITULO: MICROELECTRONICS AUTOR: Jacob Millman EDICIÓN: International Student Edition EDITORIAL: McGraw-Hill, Inc. CIUDAD/AÑO: JAPÓN, 1984 TITULO: MANUAL PARA INGENIEROS Y TÉCNICOS EN ELECTRÓNICA AUTOR: Milton Kaufman, Arthur H. Seidman EDICIÓN: Segunda EDITORIAL: McGraw-Hill, Inc. CIUDAD/AÑO: México, 1992

MANUALES

TITULO: MICROCONTROLLERS AUTOR: intel EDICIÓN: Primera EDITORIAL: intel CIUDAD/AÑO: USA.

TITULO: LS/S/TTL Logic Databook AUTOR: National Semiconductor Corporation EDICIÓN: ND EDITORIAL: National Semiconductor Corporation CIUDAD/AÑO: USA, 1987

TITULO: Memory AUTOR: intel EDICIÓN: 1990 EDITORIAL: intel CIUDAD/AÑO: USA., 1990

Page 91: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

91

BIBLIOGRAFÍA (continuación) TITULO: Engineer´s Notebook AUTOR: Radio Shack EDICIÓN: 1980 EDITORIAL: Tandy Corporation CIUDAD/AÑO: USA, 1980 TITULO: NTE KEEPS YOU UP AND RUNNING AUTOR: NTE EDICIÓN: Quinta EDITORIAL: NTE Electronics, Inc. CIUDAD/AÑO: 1990 – 1991 TITULO: Optoelectronics and Image – Sensor Data Book AUTOR: Texas Instruments EDICIÓN: 1987 EDITORIAL: Texas Instruments CIUDAD/AÑO: 1987

TITULO: ADC0808 / ADC0809 – 8-BIT µP Compatible, A/D Converters AUTOR: National Semiconductor EDICIÓN: ND EDITORIAL: National Semiconductor CIUDAD/AÑO: ND TITULO: LM2907, LM2917 Frequency to Voltage Converter AUTOR: National Semiconductor EDICIÓN: ND EDITORIAL: National Semiconductor CIUDAD/AÑO: ND

TITULO: CD4040BM / CD4040BC; 12-Stage Ripple Carry Binary Counters AUTOR: National Semiconductor EDICIÓN: ND EDITORIAL: National Semiconductor CIUDAD/AÑO: ND TITULO: 8279/8279-5 PROGRAMMABLE KEYBOARD/ DISPLAY INTERFACE AUTOR: intel EDICIÓN: ND EDITORIAL: intel CIUDAD/AÑO: ND TITULO: LM3914 Dot/Bar Display Driver AUTOR: National Semiconductor Corporation EDICIÓN: ND EDITORIAL: National Semiconductor CIUDAD/AÑO: ND

FÍSICA

TITULO: Fundamentos de Física AUTOR: Halliday, Resnick EDICIÓN: Segunda EDITORIAL: Compañía Editorial Continental, S.A. de C.V. CIUDAD/AÑO: México, 1986

Page 92: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

92

CAPITULO VI

Page 93: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

MARCA MODELO LLANTA AUTO MODELO DIMENSIÓN LLANTA

DIÁMETRO EXTERNO (mm)

195/60R15 615.00195/65R15 635.00205/50R16 612.14205/55R16 632.00205/55R16 632.46205/60R15 627.00205/65R15 645.16P185/60R14 578.00P185/65R14 596.00P185/70R13 590.00P185/70R14 615.90P195/50R15 576.58P195/60R14 590.00P195/60R15 615.00P195/65R14 607.06P195/65R15 632.46P205/55R15 607.06P205/55R16 629.92P205/60R15 627.00P185/60R15 602.99195/65R15 632.46P195/65R15 632.46P205/55R16 629.92P205/65R15 645.16215/65R16 697.99225/55R17 680.00P225/55R17 680.00225/60R16 676.00P225/60R16 676.00P225/70R16 676.00P235/60R14 637.54P255/60R15 585.80255/65R16 737.90245/70R16 750.06205/50R16 612.14P205/55R16 632.46P235/60R16 685.80P185/60R14 578.00P185/65R14 596.00P185/70R13 590.00P185/70R14 615.90P195/50R15 576.58P195/60R14 590.00P195/60R15 615.00P195/65R14 607.06P195/65R15 632.46P205/55R15 607.06P205/55R16 629.92P205/60R15 627.00P185/60R15 603.00P195/50R16 601.98P195/60R15 614.68205/50R16 612.14P205/55R16 632.00P205/60R15 624.84P205/65R15 645.16P215/50R17 647.95P215/55R16 645.16P225/50R16 629.92P225/55R16 654.00P225/60R16 676.00P225/60R16 676.00P225/70R15 697.00P235/70R16 736.09

http://www.goodyear.com/Fuente de información:

Goo

dyea

r

INFORMACIÓN TÉCNICA DE LLANTAS

EAGLE NCT5 VW Golf 2.8

EAGLE VENTURA

EAGLE NCT3 TOURING

EAGLE VENTURA

EAGLE RSA

2001

NISSAN Altima GLE

VW Golf 1.8 T

EAGLE LS

Page 94: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

Diámetro promedio: 632.46 mm

Diámetros externos de llantas

500.00

520.00

540.00

560.00

580.00

600.00

620.00

640.00

660.00

680.00

700.00

720.00

740.00

760.00

780.00

195/6

0R15

205/5

0R16

205/5

5R16

205/6

5R15

P185/6

5R14

P185/7

0R14

P195/6

0R14

P195/6

5R14

P205/5

5R15

P205/6

0R15

195/6

5R15

P205/5

5R16

215/6

5R16

P225/5

5R17

P225/6

0R16

P235/6

0R14

255/6

5R16

205/5

0R16

P235/6

0R16

P185/6

5R14

P185/7

0R14

P195/6

0R14

P195/6

5R14

P205/5

5R15

P205/6

0R15

P195/5

0R16

205/5

0R16

P205/6

0R15

P215/5

0R17

P225/5

0R16

P225/6

0R16

P225/7

0R15

Dimensión

Diá

met

ro [m

m]

Page 95: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

MARCA MODELO AUTO AÑO DIMENSIÓN DIÁMETRO CÓDIGO CÓDIGO BINARIOGoodyear EAGLE VENTURA NISSAN Altima GLE 2001 P195/50R15 576.58 1 00000001Goodyear EAGLE VENTURA NISSAN Altima GLE 2001 P185/60R14 578.00 2 00000010Goodyear EAGLE LS VW Golf 1.8 T 2001 P255/60R15 585.80 3 00000011Goodyear EAGLE VENTURA VW Golf 1.8 T 2001 P195/60R14 590.00 4 00000100Goodyear EAGLE VENTURA NISSAN Altima GLE 2001 P185/65R14 596.00 5 00000101Goodyear EAGLE RSA NISSAN Altima GLE 2001 P195/50R16 601.98 6 00000110Goodyear EAGLE LS VW Golf 1.8 T 2001 P185/60R15 602.99 7 00000111Goodyear EAGLE RSA NISSAN Altima GLE 2001 P185/60R15 603.00 8 00001000Goodyear EAGLE VENTURA VW Golf 1.8 T 2001 P205/55R15 607.06 9 00001001Goodyear EAGLE NCT3 TOURING NISSAN Altima GLE 2001 205/50R16 612.14 10 00001010Goodyear EAGLE RSA NISSAN Altima GLE 2001 P195/60R15 614.68 11 00001011Goodyear EAGLE VENTURA NISSAN Altima GLE 2001 P195/60R15 615.00 12 00001100Goodyear EAGLE VENTURA NISSAN Altima GLE 2001 P185/70R14 615.90 13 00001101Goodyear EAGLE RSA NISSAN Altima GLE 2001 P205/60R15 624.84 14 00001110Goodyear EAGLE NCT5 VW Golf 2.8 2001 205/60R15 627.00 15 00001111Goodyear EAGLE VENTURA VW Golf 1.8 T 2001 P205/55R16 629.92 16 00010000Goodyear EAGLE NCT5 VW Golf 2.8 2001 205/55R16 632.00 17 00010001Goodyear EAGLE VENTURA VW Golf 1.8 T 2001 P195/65R15 632.46 18 00010010Goodyear EAGLE NCT5 VW Golf 2.8 2001 195/65R15 635.00 19 00010011Goodyear EAGLE LS VW Golf 1.8 T 2001 P235/60R14 637.54 20 00010100Goodyear EAGLE RSA NISSAN Altima GLE 2001 P205/65R15 645.16 21 00010101Goodyear EAGLE RSA NISSAN Altima GLE 2001 P215/50R17 647.95 22 00010110Goodyear EAGLE RSA NISSAN Altima GLE 2001 P225/55R16 654.00 23 00010111Goodyear EAGLE RSA NISSAN Altima GLE 2001 P225/60R16 676.00 24 00011000Goodyear EAGLE LS VW Golf 1.8 T 2001 225/55R17 680.00 25 00011001Goodyear EAGLE NCT3 TOURING NISSAN Altima GLE 2001 P235/60R16 685.80 26 00011010Goodyear EAGLE RSA NISSAN Altima GLE 2001 P225/70R15 697.00 27 00011011Goodyear EAGLE LS VW Golf 1.8 T 2001 215/65R16 697.99 28 00011100Goodyear EAGLE RSA NISSAN Altima GLE 2001 P235/70R16 736.09 29 00011101Goodyear EAGLE LS VW Golf 1.8 T 2001 255/65R16 737.90 30 00011110Goodyear EAGLE LS VW Golf 1.8 T 2001 245/70R16 750.06 31 00011111

CODIFICACIÓN DE LLANTAS

Page 96: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

MARCA MODELO AUTO AÑO DIMENSION DIAMETRO EXTERNO (mm)EAGLE NCT5 VW Golf 2.8 195/60R15 615.00EAGLE NCT5 VW Golf 2.8 195/65R15 635.00EAGLE NCT5 VW Golf 2.8 205/50R16 612.14EAGLE NCT5 VW Golf 2.8 205/55R16 632.00EAGLE NCT5 VW Golf 2.8 205/55R16 632.46EAGLE NCT5 VW Golf 2.8 205/60R15 627.00EAGLE NCT5 VW Golf 2.8 205/65R15 645.16

EAGLE VENTURA VW Golf 1.8 T P185/60R14 578.00EAGLE VENTURA VW Golf 1.8 T P185/65R14 596.00EAGLE VENTURA VW Golf 1.8 T P185/70R13 590.00EAGLE VENTURA VW Golf 1.8 T P185/70R14 615.90EAGLE VENTURA VW Golf 1.8 T P195/50R15 576.58EAGLE VENTURA VW Golf 1.8 T P195/60R14 590.00EAGLE VENTURA VW Golf 1.8 T P195/60R15 615.00EAGLE VENTURA VW Golf 1.8 T P195/65R14 607.06EAGLE VENTURA VW Golf 1.8 T P195/65R15 632.46EAGLE VENTURA VW Golf 1.8 T P205/55R15 607.06EAGLE VENTURA VW Golf 1.8 T P205/55R16 629.92EAGLE VENTURA VW Golf 1.8 T P205/60R15 627.00

EAGLE LS VW Golf 1.8 T P185/60R15 602.99EAGLE LS VW Golf 1.8 T 195/65R15 632.46EAGLE LS VW Golf 1.8 T P195/65R15 632.46EAGLE LS VW Golf 1.8 T P205/55R16 629.92EAGLE LS VW Golf 1.8 T P205/65R15 645.16EAGLE LS VW Golf 1.8 T 215/65R16 697.99EAGLE LS VW Golf 1.8 T 225/55R17 680.00EAGLE LS VW Golf 1.8 T P225/55R17 680.00EAGLE LS VW Golf 1.8 T 225/60R16 676.00EAGLE LS VW Golf 1.8 T P225/60R16 676.00EAGLE LS VW Golf 1.8 T P225/70R16 676.00EAGLE LS VW Golf 1.8 T P235/60R14 637.54EAGLE LS VW Golf 1.8 T P255/60R15 585.80EAGLE LS VW Golf 1.8 T 255/65R16 737.90EAGLE LS VW Golf 1.8 T 245/70R16 750.06

EAGLE NCT3 TOURING NISSAN Altima GLE 205/50R16 612.14EAGLE NCT3 TOURING NISSAN Altima GLE P205/55R16 632.46EAGLE NCT3 TOURING NISSAN Altima GLE P235/60R16 685.80

EAGLE VENTURA NISSAN Altima GLE P185/60R14 578.00EAGLE VENTURA NISSAN Altima GLE P185/65R14 596.00EAGLE VENTURA NISSAN Altima GLE P185/70R13 590.00EAGLE VENTURA NISSAN Altima GLE P185/70R14 615.90EAGLE VENTURA NISSAN Altima GLE P195/50R15 576.58EAGLE VENTURA NISSAN Altima GLE P195/60R14 590.00EAGLE VENTURA NISSAN Altima GLE P195/60R15 615.00EAGLE VENTURA NISSAN Altima GLE P195/65R14 607.06EAGLE VENTURA NISSAN Altima GLE P195/65R15 632.46EAGLE VENTURA NISSAN Altima GLE P205/55R15 607.06EAGLE VENTURA NISSAN Altima GLE P205/55R16 629.92EAGLE VENTURA NISSAN Altima GLE P205/60R15 627.00

EAGLE RSA NISSAN Altima GLE P185/60R15 603.00EAGLE RSA NISSAN Altima GLE P195/50R16 601.98EAGLE RSA NISSAN Altima GLE P195/60R15 614.68EAGLE RSA NISSAN Altima GLE 205/50R16 612.14EAGLE RSA NISSAN Altima GLE P205/55R16 632.00EAGLE RSA NISSAN Altima GLE P205/60R15 624.84EAGLE RSA NISSAN Altima GLE P205/65R15 645.16EAGLE RSA NISSAN Altima GLE P215/50R17 647.95EAGLE RSA NISSAN Altima GLE P215/55R16 645.16EAGLE RSA NISSAN Altima GLE P225/50R16 629.92EAGLE RSA NISSAN Altima GLE P225/55R16 654.00EAGLE RSA NISSAN Altima GLE P225/60R16 676.00EAGLE RSA NISSAN Altima GLE P225/60R16 676.00EAGLE RSA NISSAN Altima GLE P225/70R15 697.00EAGLE RSA NISSAN Altima GLE P235/70R16 736.09

RESUMEN

Goodyear

2001

Page 97: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

MARCA MODELO AUTO AÑO DIMENSION

Goodyear EAGLE VENTURA VW Golf 1.8 T 2001 P195/50R15Goodyear EAGLE VENTURA VW Golf 1.8 T 2001 P185/60R14Goodyear EAGLE LS VW Golf 1.8 T 2001 P255/60R15Goodyear EAGLE VENTURA VW Golf 1.8 T 2001 P185/70R13Goodyear EAGLE VENTURA VW Golf 1.8 T 2001 P185/65R14Goodyear EAGLE RSA NISSAN Altima GLE 2001 P195/50R16Goodyear EAGLE LS VW Golf 1.8 T 2001 P185/60R15Goodyear EAGLE RSA NISSAN Altima GLE 2001 P185/60R15Goodyear EAGLE VENTURA VW Golf 1.8 T 2001 P195/65R14Goodyear EAGLE NCT5 VW Golf 2.8 2001 205/50R16Goodyear EAGLE RSA NISSAN Altima GLE 2001 P195/60R15Goodyear EAGLE NCT5 VW Golf 2.8 2001 195/60R15Goodyear EAGLE VENTURA VW Golf 1.8 T 2001 P185/70R14Goodyear EAGLE RSA NISSAN Altima GLE 2001 P205/60R15Goodyear EAGLE NCT5 VW Golf 2.8 2001 205/60R15Goodyear EAGLE VENTURA VW Golf 1.8 T 2001 P205/55R16Goodyear EAGLE NCT5 VW Golf 2.8 2001 205/55R16Goodyear EAGLE NCT5 VW Golf 2.8 2001 205/55R16Goodyear EAGLE NCT5 VW Golf 2.8 2001 195/65R15Goodyear EAGLE LS VW Golf 1.8 T 2001 P235/60R14Goodyear EAGLE NCT5 VW Golf 2.8 2001 205/65R15Goodyear EAGLE RSA NISSAN Altima GLE 2001 P215/50R17Goodyear EAGLE RSA NISSAN Altima GLE 2001 P225/55R16Goodyear EAGLE LS VW Golf 1.8 T 2001 225/60R16Goodyear EAGLE LS VW Golf 1.8 T 2001 225/55R17Goodyear EAGLE NCT3 TOURING NISSAN Altima GLE 2001 P235/60R16Goodyear EAGLE RSA NISSAN Altima GLE 2001 P225/70R15Goodyear EAGLE LS VW Golf 1.8 T 2001 215/65R16Goodyear EAGLE RSA NISSAN Altima GLE 2001 P235/70R16Goodyear EAGLE LS VW Golf 1.8 T 2001 255/65R16Goodyear EAGLE LS VW Golf 1.8 T 2001 245/70R16

PULSOS

Page 98: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

DIAMETRO EXT.(mm)

576.58578.00585.80590.00596.00601.98602.99603.00607.06612.14614.68615.00615.90624.84627.00629.92632.00632.46635.00637.54645.16647.95654.00676.00680.00685.80697.00697.99736.09737.90750.06

Page 99: SISTEMA INTELIGENTE DE CONTROL VEHICULAR

SICV ANALISIS DE PULSOS PARA DIFERENTES DIAMETROS EXTERNOS

DIAMETRO EXT. DIAMETRO DISTANCIA PERIMETRO GIROS PULSOS PULSOS FM1 FM1 FM2 PPC DIFERENCIA[mm] [m] [m] [m] /[km] /[km] VR VR pulsos pulsos

P195/50R15 576.58 0.57658 1000 1.8114 552.07 2,208.26 2209 9.016 9.00 245 2205 3.26P185/60R14 578.00 0.57800 1000 1.8158 550.71 2,202.84 2203 9.029 9.00 244 2196 6.84P255/60R15 585.80 0.58580 1000 1.8403 543.38 2,173.51 2174 9.021 9.00 241 2169 4.51P185/70R13 590.00 0.59000 1000 1.8535 539.51 2,158.03 2159 9.033 9.00 239 2151 7.03P185/65R14 596.00 0.59600 1000 1.8724 534.08 2,136.31 2137 9.017 9.00 237 2133 3.31P195/50R16 601.98 0.60198 1000 1.8912 528.77 2,115.09 2116 9.004 9.00 235 2115 0.09P185/60R15 602.99 0.60299 1000 1.8943 527.89 2,111.54 2112 9.026 9.00 234 2106 5.54P185/60R15 603.00 0.60300 1000 1.8944 527.88 2,111.51 2112 9.026 9.00 234 2106 5.51P195/65R14 607.06 0.60706 1000 1.9071 524.35 2,097.39 2098 9.004 9.00 233 2097 0.39205/50R16 612.14 0.61214 1000 1.9231 520.00 2,079.98 2080 9.004 9.00 231 2079 0.98P195/60R15 614.68 0.61468 1000 1.9311 517.85 2,071.39 2072 9.009 9.00 230 2070 1.39195/60R15 615.00 0.61500 1000 1.9321 517.58 2,070.31 2071 9.004 9.00 230 2070 0.31P185/70R14 615.90 0.61590 1000 1.9349 516.82 2,067.28 2068 8.991 9.00 230 2070 -2.72P205/60R15 624.84 0.62484 1000 1.9630 509.43 2,037.70 2038 7.992 8.00 255 2040 -2.30205/60R15 627.00 0.62700 1000 1.9698 507.67 2,030.69 2031 7.996 8.00 254 2032 -1.31P205/55R16 629.92 0.62992 1000 1.9790 505.32 2,021.27 2022 7.992 8.00 253 2024 -2.73205/55R16 632.00 0.63200 1000 1.9855 503.65 2,014.62 2015 7.996 8.00 252 2016 -1.38205/55R16 632.46 0.63246 1000 1.9869 503.29 2,013.15 2014 7.992 8.00 252 2016 -2.85195/65R15 635.00 0.63500 1000 1.9949 501.28 2,005.10 2006 7.992 8.00 251 2008 -2.90P235/60R14 637.54 0.63754 1000 2.0029 499.28 1,997.11 1998 7.992 8.00 250 2000 -2.89205/65R15 645.16 0.64516 1000 2.0268 493.38 1,973.53 1974 7.992 8.00 247 1976 -2.47P215/50R17 647.95 0.64795 1000 2.0356 491.26 1,965.03 1966 7.992 8.00 246 1968 -2.97P225/55R16 654.00 0.65400 1000 2.0546 486.71 1,946.85 1947 8.012 8.00 243 1944 2.85225/60R16 676.00 0.67600 1000 2.1237 470.87 1,883.49 1884 8.017 8.00 235 1880 3.49225/55R17 680.00 0.68000 1000 2.1363 468.10 1,872.41 1873 8.004 8.00 234 1872 0.41P235/60R16 685.80 0.68580 1000 2.1545 464.14 1,856.58 1857 8.004 8.00 232 1856 0.58P225/70R15 697.00 0.69700 1000 2.1897 456.69 1,826.74 1827 8.013 8.00 228 1824 2.74215/65R16 697.99 0.69799 1000 2.1928 456.04 1,824.15 1825 8.004 8.00 228 1824 0.15P235/70R16 736.09 0.73609 1000 2.3125 432.43 1,729.73 1730 7.004 7.00 247 1729 0.73255/65R16 737.90 0.73790 1000 2.3182 431.37 1,725.49 1726 7.016 7.00 246 1722 3.49245/70R16 750.06 0.75006 1000 2.3564 424.38 1,697.52 1698 7.017 7.00 242 1694 3.52

DIMENSION