Sistemas Embebidos

Sistemas Embebidos

Electrónica analógica y digital: El corazón de los sistemas autónomos.

Códigos Fuente

Códigos Fuente

C, C++, Java, Verilog, VHDL, Object Pascal, PHP, etc... Lenguajes que describen Hardware y Software inteligente.

Mecatrónica

Mecatrónica

Mecánica, Electrónica y Diseño de Software conjugados para crear nuevos dispositivos.

Mejoras: Electrónica de Potencia

Para el rediseño de los puentes H se utilizó como base el diseño existente, concentrando todos los componentes en una sola tarjeta con el mismo tamaño de las existentes, ya que los puentes H son los componentes electrónicos de mayor tamaño y se cuenta con el espacio justo para el montaje de ellos en el vehículo.

Electrónica de Disparo

El primer aspecto abordado en la modificación, fue el cambio en los drivers utilizados para encender los transistores. El diseño original utilizaba el integrado IR2117 [14], compuesto de un único driver capaz de generar una señal de disparo referenciada a un nodo flotante (distinto de la tierra del circuito). Con esto se resolvía el disparo de la parte superior de cada rama del puente H, ya que la tensión de compuerta está referenciada a una de las salidas del puente (ver Figura 2.4).

El IR2117, según su hoja de datos, posee una capacidad de corriente máxima de 200mA para el encendido y 420mA para el apagado, siendo estos valores los que limitan las velocidades de conmutación puesto que, a mayor corriente, más rápidamente se carga la capacidad de compuerta.

El nuevo diseño reemplaza este driver por el IR2110 [15], de la misma familia pero con mejores prestaciones. Este integrado implementa dos drivers diseñados específicamente para operar un medio puente, es decir, una de las ramas verticales del puente H. Posee un driver capaz de generar una señal de disparo referenciada a un nodo flotante (tal como el IR2117) y otro cuya referencia es la tierra del circuito. Cada driver puede entregar hasta 2A de corriente tanto al encendido como al apagado, posibilitando mejoras sustanciales en los tiempos de conmutación. Adicionalmente, la lógica del circuito integrado que incorpora ambos drivers, posee una interfaz de tensiones adaptables, desde 3,3V hasta los 20V, así como una entrada de disparo lógica capaz de deshabilitar completamente ambos drivers.

Para este diseño en particular, se utilizó lógica TTL con 5V para el nivel “alto”, facilitando así la implementación de la segunda mejora importante en el diseño del puente H: La protección contra disparo simultáneo.

Tal como se explicó en el Capítulo 2, de encenderse simultáneamente los transistores de una de las ramas verticales del puente H, se produce un cortocircuito de consecuencias destructivas. Para proteger al sistema de este peligro, se incorporó un sencillo circuito lógico compuesto de una compuerta AND cuyas entradas son las señales de disparo que entran al driver IR2110. Su salida se conecta directamente al pin de deshabilitación de éste como se muestra en la Figura 4.9. De esta manera, si por alguna razón se envían señales de disparo simultáneamente, la compuerta AND desactivará el driver, previniendo por hardware el riesgo de cortocircuito.

Figura 4.9: Protección contra disparo simultáneo.

Con el fin de asegurar la calidad de las señales de disparo entrantes al puente H, se utilizaron los aisladores digitales ADuM1400 [16], los cuales regeneran la señal proveniente de la tarjeta de control con mínimo ruido y alta velocidad además de proveer aislación eléctrica entre ambos circuitos, protegiendo a la tarjeta de control ante cualquier falla. El circuito integrado implementa cuatro canales de aislación digital ajustándose a los cuatro pulsos de encendido requeridos.

Una de las características de este puente H es la utilización de transistores en paralelo, con el fin de distribuir la corriente entre ellos y reducir la resistencia de conducción, mejorando así las características térmicas y la capacidad de corriente del mismo.

Debido a que uno de los objetivos de las modificaciones es obtener conmutaciones rápidas, se redujo considerablemente la resistencia de compuerta, generando las condiciones propicias para el fenómeno de oscilaciones parásitas descrito en el Capítulo 2. Es por esta razón que se agregó en cada compuerta un núcleo de ferrita, quedando en serie con una resistencia de 15Ω, aumentando la impedancia para las oscilaciones de alta frecuencia pero permitiendo conmutaciones rápidas.

Lectura de Corriente

Además de la funcionalidad propia del puente H, se incorporó en esta tarjeta un transductor de corriente de efecto Hall, capaz de medir con precisión corrientes continuas y variantes en el tiempo para obtener la corriente instantánea sobre cada motor, posibilitando la implementación de un lazo de control.

Dicho sensor de corriente está diseñado para entregar una tensión continua entre 0V y 5V, dependiendo linealmente de la medición con un nivel central de 2,5V que indica los 0A, por lo cual puede medir tanto corrientes positivas como negativas.

Debido a que este transductor se encuentra a distancia considerable de la tarjeta de control y expuesta a altos niveles de ruido eléctrico generados por los transistores del puente H, se incorporó junto al mismo un circuito generador de frecuencia controlada por voltaje o VCO LM331 [17], el cual genera una onda cuadrada cuya frecuencia depende linealmente del voltaje de entrada que, en este caso, es la salida del sensor de corriente. De esta manera, la lectura de corriente se convierte en un tren de pulsos con niveles lógicos mucho menos susceptibles a perturbaciones por ruido eléctrico, con posibilidad de aplicar filtrados más agresivos y otras técnicas de reducción de ruido sin alterar el valor de la lectura.

Desde el punto de vista del diseño de la tarjeta, además de cuidar el tamaño, se prestó atención en simplificar el conexionado, por lo que se incorporaron todas las líneas necesarias para alimentar la electrónica, recibir los pulsos y enviar la lectura de corriente en un único conector del tipo RJ-45, el cual posee ocho conexiones eléctricas.

Bus Laminado

El montaje sobre la tarjeta de los componentes de potencia (MOSFETs, condensadores, inductancia, supresores de transiente, etc.) se hizo sobre un bus laminado (ver Sección 2.4.3) diseñado y construido para minimizar las inductancias parásitas en este circuito. Su construcción se realizó en base al tamaño deseado de la tarjeta, utilizando láminas de cobre de 0,5mm de espesor intercaladas con láminas de un aislante del mismo espesor llamado presspan, utilizado ampliamente en la confección de transformadores por su alta aislación, resistencia a altas temperaturas y naturaleza auto-extinguible. En la Figura 4.10 se muestra el montaje final de los componentes en el puente H.

Figura 4.10: (Izquierda) Puente H con el bus plano ensamblado pero sin los componentes de potencia. (Derecha) Puente H completamente armado y funcional.

Mejoras: Unidad IMU

Para la Unidad de Medición Inercial (IMU) se diseñó una tarjeta electrónica independiente, separando esta parte crítica del sistema de la tarjeta de control e incorporando el nuevo giróscopo de mejor calidad.

Los instrumentos utilizados en esta tarjeta son: Inclinómetro ADIS16203 [18] y Giróscopo ADIS16250 [19], ambos fabricados por la empresa Analog Devices. Su comunicación es por medio de un bus SPI, el cual no implementa direccionamiento en su trama de datos, por lo que la selección del instrumento a leer debe hacerse por medio de señales de habilitación o deshabilitación.

Figura 4.11: Diagrama lógico de la tarjeta de instrumentos IMU.

En la Figura 4.11 se muestra la manera en que se resuelve el direccionamiento al utilizar un decodificador de 3 a 8 bits. La tarjeta fue diseñada para integrar dos acelerómetros (ADIS16203) y dos giróscopos (ADIS16250), así como dos conexiones SPI para una eventual futura expansión. El DSP es el encargado de seleccionar el instrumento o salida SPI adecuada de la tarjeta, por medio de tres bits de dirección. El diseño final de esta tarjeta se muestra en la Figura 4.12.

Figura 4.12: Tarjeta de instrumentos IMU previa al montaje de sus componentes.

Mejoras: Tarjeta de Control

La tarjeta de control fue rediseñada principalmente para adaptarse a la nueva configuración de componentes, utilizando un número mínimo de conectores y reemplazando completamente la etapa de envío de señales PWM a los puentes H.

La tarjeta de control original contenía parte de la electrónica de disparo, con una configuración de dos inversores en cascada, cuyo propósito era elevar la tensión de los pulsos enviados hasta los 15V, tensión utilizada para encender los transistores de los puentes H. Debido a que los nuevos puentes H incorporan toda la electrónica de disparo, la configuración de doble inversor se vuelve innecesaria. Adicionalmente, se buscó aprovechar la utilización de los aisladores digitales ADuM1400 [16] en los puentes H, instalando aisladores del mismo modelo en la tarjeta de control, aprovechando así las características de este dispositivo como interfaz para buses de datos industriales con excelente desempeño en ambientes ruidosos.

Se agregó al diseño un pequeño altavoz, capaz de emitir tonos de alerta, con el objetivo de informar al usuario sobre el estado del vehículo o fallas, sin necesidad de que éste deba mirar la pantalla instalada en la parte superior.

En la Figura 4.13 se muestra la tarjeta de control en su diseño final, con los componentes instalados. Adicionalmente, se indican en la Tabla 4.1 sus especificaciones.

Ítem Cantidad y/o comentarios
DSP Texas Instruments TMS320F2808 Unidad principal de procesamiento, controla el funcionamiento general del vehículo e implementa el algoritmo de control.
Salidas a puentes H 2 conectores RJ-45 que incorporan 4 pulsos PWM, alimentación de 5V y 15V además de una línea para recibir la lectura de corriente.
Conector SPI para IMU 1 conector de 8 pines para la tarjeta de instrumentos IMU, incluye alimentación (5V), bus SPI y 3 bits de dirección.
Puerto serie 1 conector con alimentación para el circuito de operación del visor LCD y las conexiones seriales con niveles lógicos de 3,3V. El puerto RS-232 está compartido con el USB
Conector USB 1 conector asociado al puerto serie del DSP a través del conversor USB a RS-232 modelo FT232R.
Altavoz de alerta Dispositivo integrado a la tarjeta, capaz de emitir sonidos de alerta al usuario.
Conexión JTAG Puerto de programación y depuración para el DSP mediante un dispositivo JTAG.
Encoders 2 conectores de recepción de pulsos desde los encoders instalados en los motores, cuyo objetivo es determinar la velocidad de las ruedas.
Entradas analógicas 8 canales analógicos de entrada, para tensiones entre 0V y 3,3V proveniente de circuitos activos. (posee baja impedancia ~1kΩ)
Conexión SPI-B Conexión SPI auxiliar.
GPIO 2 entradas y salidas de propósito general, se pueden configurar para encender LEDs integrados en la tarjeta o para conectarlos al exterior.

Tabla 4.1: Especificaciones de la Tarjeta de Control.


Figura 4.13: Tarjeta de Control

Mejoras: Electrónica Auxiliar

Además de las tarjetas electrónicas ya mencionadas, se diseñó una nueva, cuya función principal es obtener mediciones analógicas del sistema.

Esta tarjeta surge de la necesidad de capturar la posición del mando de dirección, que es medida por medio de un potenciómetro instalado en la articulación asociada, al interior de la base del vehículo. Esto es diferente de la implementación anterior que capturaba este dato desde la parte superior del manillar, que fue reemplazado. En su diseño se incorporaron lecturas adicionales como el estado de las baterías y un sensor de presión ubicado en la plataforma para los pies, cuyo objetivo es informar al controlador sobre la presencia del usuario.

Al momento del diseño de esta tarjeta, se consideró la posibilidad de incluir un contactor para conectar y desconectar la alimentación de los puentes H de forma automática, para así resguardar la seguridad del sistema. Para ello, la tarjeta posee un relé capaz de operar un contactor, con un circuito de accionamiento que utiliza un amplificador operacional para generar un retardo en la orden de encendido, de modo de evitar el encendido del contactor por efecto de algún pulso no deseado o ruido electrónico. En el diseño final no fue necesario instalar dicho contactor, pero se construyó el circuito de accionamiento, quedando disponible para su futura utilización.

Todas las mediciones analógicas implementan un filtro pasa bajos pasivo en la entrada, para reducir el ruido. Adicionalmente, cada señal pasa por un circuito conversor de tensión a corriente, para aumentar la robustez de la señal. Un esquema simplificado de este circuito se muestra en la Figura 4.14.

Figura 4.14: Esquema del circuito utilizado para las lecturas analógicas.

De esta manera, se fuerza la circulación de una corriente desde la fuente analógica hasta el pin del DSP con la entrada correspondiente a través del cable de conexión, minimizando el impacto de las pequeñas corrientes inducidas por un eventual ruido.

Mejoras: Software DSP

En esta sección se presenta el desarrollo realizado para el firmware del vehículo, encargado del control general del mismo. La necesidad de replantear el software que ejecuta el DSP es consecuencia de los cambios en el hardware descritos anteriormente y nuevos requisitos que se plantearon como objetivos de este desarrollo.

A diferencia de lo sucedido con los demás aspectos intervenidos del vehículo, el software fue diseñado e implementado completamente desde cero. Esto se realizó a través de un planteamiento sistemático y riguroso del problema, un proceso de desarrollo en el cual las necesidades del sistema fueron traducidas en requisitos de software, éstos transformados en un diseño y el diseño implementado en código.

Con este planteamiento se buscó generar un código funcional y lógicamente comprensible, facilitando su manipulación durante el proceso iterativo de desarrollo y permitiendo la utilización del vehículo como plataforma para aplicar diversas estrategias de control en trabajos futuros.

Mejoras: Software DSP – Requisitos

El objetivo principal del software implementado, es controlar un sistema dinámico naturalmente inestable, tomando como entradas las mediciones de los instrumentos y actuando sobre los motores a través de los convertidores de potencia construidos para tal fin.

Además del objetivo principal, debe cumplir una serie de tareas secundarias tales como:

  • Realizar control de dirección del vehículo a través de la lectura de los sistemas auxiliares que proporcionan la referencia de dirección.
  • Mantener al usuario informado del estado del vehículo, a través de un sistema de interfaz humana, provisto de un visor LCD. Emitir además, alertas sonoras en caso de falla, o falla inminente.
  • Recibir diversos datos relativos al estado del vehículo como la carga de las baterías, presencia de usuario, etc.

Debido a la posible necesidad de reemplazar el hardware de control (DSP), durante el proceso de desarrollo, el software se diseñó para cumplir además con un nivel de modularidad tal que sus bloques puedan ser adaptados fácilmente a otro hardware, para lo cual fue necesaria la implementación de una capa de abstracción de hardware.

Teniendo en cuenta lo anterior, se definen los requisitos generales del software:

  • Separar las funciones de control de las relacionadas con los periféricos, implementando una capa de abstracción de hardware para ello.
  • Capacidad de controlar el vehículo, implementando una estrategia adecuada.
  • Lectura en tiempo real la corriente consumida por cada motor para cerrar el lazo de control de corriente.
  • Lectura de los instrumentos de la unidad IMU en tiempo real, mediante una conexión SPI.
  • Debe implementar un sistema de comunicación por medio de comandos, que permita mantener actualizada la información del visor LCD, recibir órdenes del usuario y la conexión a un sistema de supervisión en un computador.
  • Control de los sistemas auxiliares, mediante la lectura de los conversores ADC y salidas de propósito general.
  • Generación de alertas sonoras al usuario mediante un altavoz incorporado en la tarjeta de control.
  • Control de los convertidores de potencia mediante el uso de PWM.

Para satisfacer estos requisitos, se implementó un diseño modular que consta de dos niveles: los módulos de alto nivel y módulos de abstracción de hardware.

Los primeros ejecutan tareas lógicas para la administración y el control de los sistemas del vehículo, mientras que los módulos de abstracción de hardware se comunican directamente con los dispositivos periféricos para llevar a cabo las tareas ordenadas por los módulos de alto nivel.

La comunicación entre los módulos se realiza mediante funciones dispuestas para tal fin, estableciendo una interfaz de uso para cada uno en términos de lectura/escritura de valores y ejecución de órdenes, asegurando además la consistencia de los datos en tiempo de ejecución al evitar la intervención directa sobre las variables internas.

Mejoras: Software DSP – Administración de Tareas

El software implementado se ejecuta directamente en la CPU del DSP, sin la intervención de un sistema operativo, por lo que se desarrolló una estrategia que permitiera la ejecución de todos los módulos en forma concurrente, administrando el tiempo que la CPU dedica a cada uno.

Dicha estrategia se basa en el uso de un ciclo principal que itera de forma indefinida cuando el sistema está en régimen permanente, realizando secuencialmente la ejecución de cada módulo para luego actualizar una máquina de estados general en cada iteración.

Figura 4.15: Diagrama de flujo general del programa.

En la Figura 4.15 se muestra el diagrama de flujo general del software implementado. Al iniciarse el sistema, comienza la inicialización de cada uno de los módulos a través del llamado a una función de inicialización presente en ellos. Allí se establecen los valores iniciales de las variables y las configuraciones de los periféricos que se utilizarán. Una vez inicializados los módulos, se inicializan las variables del módulo principal, que ejecuta una máquina de estados encargada de administrar los sistemas en su conjunto. Posteriormente se ingresa al ciclo principal que actualiza los módulos llamando la función de ejecución implementada en ellos, la cual realiza sus propios procesos.

Este enfoque posee la ventaja de ser sencillo de comprender e implementar, además de evitar los problemas de sincronización propios de la concurrencia en sistemas operativos ya que, si bien se ejecutan varias tareas de forma concurrente, cada una se realiza mediante actualizaciones secuenciales en las que cada módulo hace uso exclusivo de la CPU sin interrupciones.

Sin embargo, para el éxito de esta estrategia es fundamental cuidar la fluidez de las funciones de ejecución de cada módulo, ya que cualquier ciclo que espere algún evento o pueda caer en ejecución indefinida, detendrá el sistema completo sin posibilidad de recuperación.

Es por este motivo que se prestó especial atención en anular cualquier posibilidad de bloqueo del sistema, debiendo elaborar algoritmos más sofisticados en tareas que involucran la espera de alguna señal, desde algún periférico, como los puertos de comunicación.

El software implementado cuenta con 11 módulos en total, los cuales son:

Sus funciones específicas y el detalle de su implementación se describen en las siguientes secciones.

Mejoras: Software DSP – HAL Timer

Este módulo tiene por objetivo administrar el temporizador del sistema. Permite controlar además el momento de ejecución de los demás módulos.

Para ello maneja la única interrupción de todo el sistema, cuya función es incrementar un contador de 32 bits. Durante su proceso de inicialización configura uno de los temporizadores del sistema para generar una interrupción cada 100µS.

En este módulo, se mantiene un registro interno con el valor del temporizador al momento de la última ejecución de cada uno de los demás módulos. De esta manera, cuando llega el momento de ejecutar nuevamente un módulo, se activa una señal que es leída externamente para concretar su ejecución. Posteriormente, se notifica esta acción para registrar el nuevo valor del temporizador y repetir el proceso. No todos los módulos requieren la misma resolución temporal. Por ejemplo, el módulo que realiza el control de corriente se ejecuta cada 500µS, mientras que el módulo de comando, menos crítico para el sistema, se ejecuta cada 10mS.

La interfaz de este módulo permite leer el valor del temporizador y acceder a la función que realiza diferencias entre dos marcas de tiempo, la cual maneja adecuadamente el caso de un desbordamiento en el contador de 32 bits. Con esto es posible medir intervalos de tiempo fuera de este módulo de manera sencilla.

Mejoras: Software DSP – HAL Main

La función de este módulo es agrupar dentro de sí los módulos de abstracción de hardware, organizando su ejecución y simplificando el código del flujo principal del programa.

En su proceso de inicialización se configuran los aspectos esenciales del hardware del DSP y se llama a las funciones de inicialización de todos los módulos de abstracción de hardware.

En régimen permanente, se ejecuta una función que ordena la actualización de los módulos de abstracción de hardware, verificando (en los casos que corresponda) si ha llegado el momento de su ejecución consultando al módulo HAL Timer y notificándolo de la manera descrita anteriormente.

Mejoras: Software DSP – HAL Instrumentos

El objetivo de este módulo es leer la información desde los instrumentos de la IMU a través de una de las interfaces SPI del DSP, aplicar los procesos de filtrado adecuados y poner a disposición del módulo de control, el ángulo de inclinación y su derivada en unidades adecuadas.

Para cumplir con estos requerimientos, es necesario ejecutar una rutina de manejo de la interfaz SPI en conjunto con los algoritmos de filtrado y la máquina de estados que lee secuencialmente cada instrumento, ya que se requiere acceder a cuatro dispositivos diferentes a través de un mismo bus, mediante un sistema de direccionamiento incorporado en el diseño electrónico.

Esto se logró aplicando el mismo enfoque de administración de tareas del sistema completo, de manera anidada en este módulo. En consecuencia, se creó un sub módulo encargado de manejar la interfaz SPI; otro sub módulo encargado de recibir las lecturas de los instrumentos y aplicar los filtrados correspondientes; y finalmente un sub-módulo encargado de ejecutar la máquina de estados, solicitando la lectura de un instrumento diferente de manera secuencial, cada cierto intervalo de tiempo determinado por la configuración del módulo HAL Timer.

En el cálculo de los valores que son puestos a disposición del módulo de control se aplican dos clases de filtrado:

  • Promedio móvil: Para minimizar el efecto que puedan tener eventuales datos incorrectos, producto del ruido electromagnético en el bus de comunicación u otro motivo. Se realiza un promedio de las últimas lecturas obtenidas en una ventana de tiempo determinada. Este tipo de filtrado suaviza la señal de salida pero genera retardos en la respuesta del sistema, por lo que se escogieron tamaños de ventana relativamente pequeños.
  • Limitación de derivada: Puesto que las lecturas provienen de un sistema dinámico que posee una cierta inercia, se toma como hipótesis que las variables físicas no pueden variar arbitrariamente entre una muestra y otra. De esta manera, si se aplica un limitador adecuado a la diferencia entre la lectura que se recibe y la anterior, se pueden filtrar valores inválidos sin sacrificar mayormente el tiempo de respuesta del controlador.

Además de los procesos de filtrado, el módulo de lectura de instrumentos implementa una alarma que detiene el vehículo si la lectura del giróscopo es excesivamente alta. Esto sucede habitualmente con movimientos violentos propios de un controlador inestable o producto de un choque del vehículo.

Páginas:«12345»

Categorías

Enlaces

Estadísticas


eXTReMe Tracker