El sistema de control local esta
orientado al manejo de los puertos de entrada y salida del microcontrolador
y por ende de todos los módulos conectados a ellos; al manejo
de los módulos internos del microcontrolador como son: el ADC
(Análogo to Digital Converter), el KBI (Keyboard Interrupt
Module), el SCI (Serial Comunications Module), el TIM (Timer Interface
Modulo) y todas las posibilidades que nos ofrece este microcontrolador;
y al manejo del protocolo de comunicaciones.
El software implementado, esta
hecho de tal forma que sea fácilmente modificado por cualquier
persona que desea trabajar en el robot y hacer experimentación.
El software esta implementado de una forma estructural, donde se tienen
una separación en subrutinas, de tal manera que el programador
que desee experimentar con TÓTEM pueda decidir cuales de estas
subrutinas desea activar según sus necesidades, se tienen entonces
las siguientes subrutinas:
Subrutina para la inicialización del ADC (Analogo to digital
converter)
Subrutina para la inicialización del KBI (Keyboard Interrupt
Module)
Subrutina para la inicialización del SCI (Serial Comunication
Module)
Subrutina para la inicialización del TIM (Timer Interface
Module)
Subrutina para la atención a una interrupción debida
a que se ha recibido un byte (SCI).
Subrutina para la atención a una interrupción del
KIB
Subrutina para la atención a una interrupción del
ADC
Subrutina para la atención a una interrupción debida
al TIM
Subrutina para la transmisión de una trama de datos
Subrutina para la recepción de una trama de datos
Subrutina para el monitoreo de los sensores
Subrutina para el monitoreo de los encoders
Subrutina para el control de los motores
Las subrutinas de recepción y transmisión
de datos juegan un papel muy importante en el software. La rutina
de recepción de dados, toma los datos recibidos y los almacena
en registros internos, estos registros se asignan según el
contenido de cada byte de la trama, como a sido especificado en el
protocolo de comunicaciones. Estos registros son leídos utilizados
en las demas rutinas para tomar decisiones de control. La subrutina
de transmisión de datos, transmite los datos que están
almacenados en los registros de monitoreo, donde están almacenados
los datos entregados por los sensores.
Vemos entonces que este software maneja dos
tipos de registros, los registros de monitoreo, donde se almacena
la información recopilada por los sensores, y los registros
de control, donde se almacena la información proveniente del
modulo de comunicaciones (que puede provenir de la estación
base, o de otro robot) y que serán utilizados para tomar decisiones
de control.
El software fue desarrollado en el lenguaje
de programación ASSEMBLER utilizando las herramientas que ofrece
Motorola, como es el programa WinIDE, por medio del cual se programo
el microcontrolador.