Mejoras: Software DSP – Módulo Principal

Este módulo corresponde a la función principal que ejecuta el programa del DSP. Administra el estado del vehículo y ordena la ejecución de los demás módulos como se indica en la sección 4.3.2. Puesto que las labores de inicialización y ejecución de los módulos están encapsuladas en cada uno de ellos, el código es sumamente sencillo y tiene la siguiente forma:

void main(void)
{
hal_inicializar_dsp();
mod_comando_inicializar();
mod_control_inicializar();
funcionamiento(); //Se pone en marcha el programa
}

La función hal_inicializar_dsp inicializa todos los módulos de abstracción de hardware y deja el sistema configurado para su uso. Luego se inicializan los módulos de alto nivel, para finalmente hacer un llamado a una función que contiene la operación en régimen permanente del programa.

Esta última función, al igual que muchas de las funciones críticas del sistema, posee una directiva de compilación justo encima de ella en el código, que las clasifica para luego ser cargadas en la memoria RAM del DSP, lo cual mejora su velocidad de ejecución, puesto que la memoria Flash (donde se aloja el programa), posee mayor latencia, reduciendo notoriamente el rendimiento en labores complicadas como el lazo de control de corriente o la lectura de los instrumentos IMU.

La orden de copia de estas funciones de la memoria Flash del DSP hacia la RAM se hace durante la inicialización del DSP, en la función hal_inicializar_dsp.

En régimen permanente, el vehículo puede estar en uno de cuatro estados denominados: Iniciando, Detenido, Operando y Falla. Al momento del encendido, el sistema se encuentra en el estado Iniciando, el cual espera dos segundos, permitiendo así que todas las lecturas entren en régimen permanente, para luego fijar los parámetros predeterminados del controlador, dando paso entonces al estado Detenido.

En el estado Detenido, el sistema espera la recepción de un comando de encendido desde el exterior. Al ocurrir este evento, enciende el módulo HAL PWM permitiendo que los motores reciban energía y pasa al estado Operando, del cual sólo saldrá ante una orden de apagado o la activación de alguna alarma.

En todo momento se monitorea el estado de las baterías, emitiendo un tono de alerta si la tensión baja de cierto umbral, para indicar al usuario que las baterías están prontas a agotarse y pasa a estado de falla si baja de un segundo umbral. Por otro lado, las características del circuito analógico utilizado para enviar la señal al DSP hacen que se envíen 3,3V cuando la tensión medida es cero, permitiendo pasar inmediatamente a estado de falla si se detecta la desconexión del circuito de potencia o falla del fusible.

Agregar comentario

Categorías

Enlaces

Estadísticas


eXTReMe Tracker