1 - Cenidet

Anuncio
S.E.P.
S.E.I.T.
.
D.G.I.T.
CENTRO NACIONAL DE INVESTIGACI~N
Y DESARROLLO TECNOL6GICQ
18
I
’,
i
cenidet
“SISTEMA DIGITAL DE PROCESAMIENTO CONCURRENTE
ORIENTADO A APLICACIONES EN TIEMPO REAL”
1
I
1
TESIS
PARA OBTENER EL GRADO DE
MAESTRO EN CIENCIAS EN
INGENIERIA
ELECTRONICA
P R E S E N T A:
I’
1/
SISTEMA NACIONAL DE INSTITUTOS TECNOLÓGICOS
Centro Nacional de Investigación y Desarrollo Tecnológico
Cuernavaca, Moreloc a 31 de julio de 1998
Ing. Javier Reyes Sánchez
Candidato al grado de Maestro en Ciencias
en Ingeniería Electronica
Presente
Despues de haber sometido a revision su trabajo final de tesis titulado: “SISTEMA DIGITAL
DE PROCESAMIENTO CONCURRENTE ORIENTADO A APLICACIONES EN TIEMPO
REAL”, y habiendo cumplido con todas las indicaciones que el jurado revisor de tesis le hizo,
le comunico que se le concede autorización para que proceda a la impresión de la misma.
como requisito para la obtención del grado.
Reciba un cordial saludo
/
C.C.P.: Ing. Jaime Rosas ÁIvaredJefe de Servicios Escolares
Expediente
dinwarism
Institutos Tecnológicos
50 años de educación superin: lecnc.
‘Ógica en México
_- .
APARTADO POSTAL 5-164. CP 62051. CUERNAVACA. MOR. MEXICO. TELS. (73’
EMAIL Cenidell @infosei.nei.mr
7 6 1 3 . Fr
I:
(73)i z 2434 -
li
I
S.E.1.T
S.E.P.
S.N.1 T
I
-
CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO TECNOLOGICO
1
cenidel
ACADEMIA DE LA MAESTRIA
8
EN E L E C T R ~ N I C A
1
FORMAR11
ACEPTACION DEL TRABAJO DE TESIS
I
I
Dr. Juan Manuel Ricaño Castillo
Director del cenidet
Presente
1
f
Cuernavaca. Mor. a 3 1 de julio de 1998
At’n. Dr. Jaime E. Arau Roffiel
Jefe del Depto. de Electrónica
I
1
i
I
Después de haber revisado el trabajo, de tesis titulado: “Sistema digital de procesamiento
concurrente orientado a aplicaciones.en
I tiempo real”, elaborado por el alumno Javier Reyes
Sánchez. bajo la dirección del M.C., José Martin Gómez López, el trabajo presentado se
ACEPTA para proceder a su impresión.;
ATENTAMENTE
,
C.C.P.:
I
I
Javier Meneses Ruíz
M.C. Javier Meneses Ruíz/ Pdte, de la Academia de Electrónica
I
Ing. Jaime Rosas Álvarez / Jefe,del
Depto. de Servicios Escolares
Expediente.
!
i
I
!
cenidet/
Interior Internado Palmira SR.I C.1’. 62490
Apanado Postal 5.164. C,P. 62050. Cuernavaca Mor.. Mexico
Tels. (73) 18-77-41 ! 12-76-13. Fav. 12-24-34
~
I
Dedico mi trabajo y mi esfuerzo
I;
~
I
A Dios y a Dios en el Hombre
A mipadre José Carmelo Reyes Franco
A mi madre Catalina Sánchez Muñiz
Graciaspor darme la oportunidad y creer en mi
~
1
I
¡I
1
Agradecimientos:
Agradezco a mi familia por todo el apoyo que me han brindado a lo largo de todos
estos años. A mis padres. A mis hermanos: Miguel, Arturo, Lucha, Daniel, Lety, Chayo,
Silvia y a los agregados y agregadas culturales. En especial a Lety por su apoyo al inicio de
m i s estudios.
Agradezco a la Secretaría de Educación Pública (SEP), al Consejo Nacional de
Ciencia y Tecnología (CONACYT) y al Centro Nacional de Investigación y Desarrollo
Tecnológico (CENIDET), por el apoyo recibido para la realización de mis estudios.
Ai M.C. José Martin Gómez López por su asesoría y por su esfuerzo para la
realización de este trabajo.
A los profesores: M.I. Hugo Calleja, M.C. Carlos Ramírez y M.C. Javier Meneses,
por sus aportaciones realizadas.
A mis compañeros del depa: Aido, Nacho y Rafa, gracias por saber ser los mejores
amigos.
A mis amigos y compañeros de generación: Adriana “ACTA’ A., Leobardo C.,
Jaime O., Enrique R., David A. y Liliana T.
A la señora Maria Elena, Mario Moreno, Alfred0 Gonzalez y Mayra Correa por su
apoyo y su amistad mostrada a lo largo de este tiempo.
Ai Dr. Sergio A. Horta Mejía por haber gestado la idea original de esta tesis
A mis amigos: Claudia Ibarra, Sandra Aguilar, Ricardo Carrillo, Javier h a , Julio C.
Sosa, Alberto Rueda, Andrea Magadán, Alfonso May, Edson Peralta, Boris, Angel, Alex e
Hilmara, Huante. A todos los que he olvidado mencionar les debo una disculpa, pero no
bastan unas cuantas líneas para manifestar todo el agradecimiento que siento en este
momento.
Y para cerrar con broche de oro quiero agradecer a una persona muy especial, que
con sus atenciones, cariño, dedicación, comprensión y apoyo, se ha convertido en una parte
muy importante de mi vida:
Ldí: Gracias.
Te amo.
,
1/
l.
1;
,,
li
Tabla de contenido.
Tabla de figuras.
VI
j
'i
I!
11
Introducción.
vm
Antecedentes.
Objetivo.
¡I
"
i:
',
M
X
Metas de diseño.
Contenido.
Capítulo 1. Sistemas de procesamiento concurrente.
1.1 Generalidades.
1.1
1.2 Software operativo.
1.1
1.2.1 Sistemas de tiempo real.
1.2
1.2.2 Sistemas concurrentes.
1.2
1.3
1.3 Núcleo del sistema operativo.
Ij
I
I
II
,I
I!
!
I\
I!
I1
I!
IjI
1.3.1 Elementos del sistema operativo.
1.3
1:
1.3.2 Procesos.
1.5
1!
1.4 Gestión de procesos.
1.5
I!
1.5 Comunicación y sincronización entre procesos.
1.6
1.6 Manejo de los elementos de hardware.
1.6
\
I!
I
1.7 Manejo de interrupciones.
1.8 Aplicaciones de control en tiempo real.
'I
Capítulo 2. Descripción del sistema.
2.1 Introducción.
I/
i
1:
2.2 Descripción del sistema.
2.1
2.1
2.3 Módulo de procesamiento concurrente.
2.2
/i
2.3.1 Descripción funcional del módulo de procesamiento.
2.3
I!
2.3.2 Consideraciones del módulo de procesamiento.
2.4
2.3.3 Descripción general del hardware.
2.4
2.3.4 Descripción general del software.
2.5
2.3.4.1 Software operativo.
2.6
2.3.4.2 Software de aplicación.
2.7
I
I
,/
ij
I1
,
!'
2.3.5 Características del módulo de procesamiento.
2.4 Descripción de los procesos físicos controlados.
2.4.1 Periodo de muestreo.
I
2.7
'I
2.8
I'
1,
2.8
1;
1'
2.9
2.4.2 Simulación de los procesos.
Capítulo 3. Desarrollo del hardware.
3.1 Introducción.
j
II
3.1
I!
II
3.2 Diseño del módulo de procesamiento.
3.1
3.2.1 Submódulo de procesamiento.
3.1
3.2.2 Submódulo de memoria.
3.2
3.2.3 Lnterfaz de entradashalidas analógicas.
3.3
3.2.4 Interfaz local.
3.4
,I
3.2.5 Interfaz serie.
3.5
I1
3.2.6 Interfaz E/S digitales.
3.5
3.2.7 Generadores de PWM.
3.6
3.2.8 Fuentes de alimentación.
3.1
'1
3.7
11
3.3 Mapa de memoria.
3.3.1 Direccionamiento de los submódulos.
1
lj
'I
I
li1
I,
I;
3.8
,
I!
3.9
3.4 Diagrama eléctrico del circuito.
!j
Capítulo 4. Desarrollo del software.
/I
4.1 Organización del software.
4.1
4.2 Desarrollo del software operativo.
4.1
.
,
'1
'/
4.2 'i
4.2.1 Núcleo del software operativo.
1,
4.2
4.3 Inicialización del sistema.
li
4.2 ,I
4.4 Gestión de procesos.
4.4.1 Elementos del software.
4.3
4.4.2 Elementos en la gestión de procesos.
4.3
4.4.3 Planificador.
4.3
4.4.4 Manejo de las colas de procesos.
4.6
4.4.5 Contexto de los procesos.
4.6
4.4.5.1 Salvar contexto.
4.6
4.4.5.2 Cargar contexto.
4.1
I1
11
lj
I
~
I
4.7
4.4.5.3 Restablece contexto.
4.7
4.4.6 Pila de los procesos.
4.5 Sincronización y comunicación entre procesos.
4.6 Gestión de interrupciones.
4.6.1 Descripción de las interrupciones usadas.
4.7 Manejo del hardware.
4.8
4.8
4.8
4.9
4.9
4.7.1 Memoria.
4.10
4.7.2. Manejo del procesador.
4.10
4.7.3 Manejo del timer.
4.10
4.7.4 Pantalla de cristal liquido.
4.11
4.7.5 Interfaces de EIS analógicas.
4.11
4.8 Software de aplicación.
4.8.1 Descripción de las tareas de aplicación.
4.11
4.8.2 Control de los procesos físicos.
4.12
4.8.2.1 Descripción de los módulos de control de los procesos físicos.
4.12
4.13
4.8.3 Interfaz al usuario.
4.8.3.1 Diagnóstico del hardware del controlador.
4.14
4.8.3.2 Opciones de los procesos.
4.15 I!
4.8.3.3 Despliegue de variables.
4.15
11
4.8.4 Interfaz de comunicación serial.
4.16
I!
4.8.5 Operaciones aritméticas de punto flotante.
4.16
11
'I
4.8.5.1 Adición y substracción.
4.17 I/
4.8.5.2 Multiplicación.
4.18 'i
4.9 Herramientas de generación de código.
4.9.1 Generación del código ejecutable.
4.10 Alta de los procesos de software de usuario.
I(
I
4.18
!I
4.18 j
II
4.19:I:
Capítulo 5. Pruebas y Resultados.
5.1 Introducción.
5.11
5.2 Pruebas de diseño del hardware.
5.2
5.3 Pruebas del software operativo.
5.3
5.3.1 Pruebas de gestión de procesos.
5.4
5.3.2 Pruebas de sincronización y comunicación.
5.5
1:
I
I11
I
!i
5.3.3 Pruebas de manejo de interrupciones.
5.4 Pruebas funcionales.
5.4.1 Pruebas a los procesos controlados.
5.4.2 Pruebas de los algoritmos de control PID.
5.4.3 Pruebas del sistema de control.
Capítulo 6. Desarrollo de procesos de usuario.
5.7
I!
/I
5.8
I/
5.8
,'
5.10
11
5.10
;i
I
I¡
I
I;
6.1
)I
6.2 Elementos requeridos en el sistema.
6.1
,;
6.3 Descripción del archivo TESIS.ASM.
6.1
6.2
1,
/i
6.1 Introducción
6.4 Procesos de software de usuario.
i
//
6.4.1 Limitantes en los procesos de usuario.
6.3
6.4.2 Manejo de buzones y semáforos y memoria disponible al usuario.
6.4
j
1
,/
'i
6.4
6.5 Rutinas de aplicación general.
6.5.1 Rutinas de manejo de la pantalla LCD.
I;
6.4
6.5.1.1 Rutina despliega cadena.
6.4 1;
6.5.1.2 Despliega carácter, ejecuta comando y limpia pantalla.
6.5 )
6.5.2 Rutinas de comunicación serie.
6.5
6.5.3 Retardos.
6.6 '1
6.5.4 Transferencias de bloques de memoria.
6.6
6.5.5 Rutinas de operaciones aritméticas.
6.7
'I
Ii
'
II
6.5.5.1 Conversión de entero a punto flotante.
6.1
6.5.5.2 Conversión de punto flotante a entero.
6.1
6.5.6 Otras rutinas.
;j
/
11
6.7
6.6 Ejemplos de procesos de software a nivel de usuario.
6.6.1 Algoritmos de control PID.
6.8 li
I!
6.8
6.6.2 Manejo de la interfaz local.
6.9 I
1;
6.7 Alta de un proceso de software de usuario.
!I
6.9!I
Capítulo 7. Conclusiones.
Hardware
7.1
Software
7.2
Problemática.
7.3
I!
N
I
1.3
Aspectos de operación
~
1.4
Aportación.
7.5
Trabajos futuros.
Apéndice A. Descripción de conectores.
A.l. Conector J1 Control del AEF4752
A.2. Conector 52 EntradaslSalidas digitales
A.3. Conector 53 Canal Serie
I,
I¡
A.l
1;
I
A.l
lj
A.l
I
A.4. Conector 54 Teclado
A.5. Conector J 5 Pantalla LCD
A.6. Conector JS Control de convertidores.
A.7 Conector J 9 Salidasmntradas Analógicas
A.2
I;
A.2
/j
11
Apéndice B. Descripción de componentes.
I!
B.l Lista de componentes utilizados.
B.1
B.2 Microcontrolador DSSOC310.
B.2 /j
B.3 Memoria RAM no volátil DS1225Y.
B.3
B.4 Convertidor AnalógicoíDigital MAX182.
B.4
B.5 Convertidor Digital/Analógico MAX527.
B.5
B.6 Generador PWM HEF4752.
B.6
:I
I
'1
I'
!
/j
I'
,I
B.7 Amplificador operacional OP490.
4
B.7 /j
B.8 Pantalla de cristal líquido AND491.
B.8 '1
I!
Apéndice C. Referencias.
I/
C.l Referencias bibliográficas.
c.1I!
C.2. Referencias técnicas.
c.3'!
c.3'j
C.3. Referencias en internet.
I,<
Apéndice D. Glosario.
D.l Definiciones y abreviaturas.
D.l
V
Tabla de figuras.
Figura 1.1 Estructura básica de un sistema operativo.
s roce so s.
1.5
i;
Figura 2.1 Diagrama a bloques del Sistema.
2.1
il
Figura 2.2 Conformación del módulo de control
2.2
1,
Figura 2.3 Diagrama a bloques del módulo de procesamiento.
2.4
Figura 2.4 Esquema general del software.
2.6
Figura 2.5 Respuesta al escalón de los procesos controlados.
2.9
Figura 1.2 Estados de 10s
'1
1;
,,
!I
,j
Figura 2.6 Diagrama de los procesos físicos controlados.
2.10
/j
Figura 2.7 Diagrama de flujo de los procesos físicos.
2.11
Ir
Figura 3.1 Hardware del módulo de procesamiento.
3.1
ii
Figura 3.2 Submódulo de procesamiento y control.
3.2
lj
Figura 3.3 Submódulo de memoria.
Figura 3.4 Interfaz de E/S analógicas.
3.3
3.3
Figura 3.5 Interfaz local.
3.4 1
Figura 3.6 Conexión de teclado.
3.5
Figura 3.7 Diagrama de la interfaz serie.
Figura 3.8 Interfaz de E/S digitales.
3.5 Ij
3.6 1
Figura 3.9 Diagrama a bloques de los generadores de PWM.
3.7 /j
Figura 3.10 Fuente de alimentación del módulo.
3.7 I¡
Figura 3.11 Espacio de memoria externa.
3.8'1
Figura 3.12 Direccionamiento de los submódulos.
3.9'!
Figura 4.1. Relación entre los niveles de software.
4.1
Figura 4.2. Inicialización del sistema.
4.2
Figura 4.3. Política de multinivel de colas.
Figura 4.4. Planificador de asignación cíclica.
Figura 4.5. Diagrama de flujo del planificador.
Figura 4.6. Algoritmo de control de procesos iísicos.
Figura 4.7. Menú principal del sistema.
Figura 4.8. Registro de diagnóstico del hardware.
Figura 4.9 Formato de punto flotante.
I¡
1;
I1
4.4
4.4
4.5
I
4.12
4.14
4.1'5
I
4.17
I
/I
!
'!
I
i
!j
I
11
I;
Ni
Figura 5.1 Esquema de pruebas del sistema.
Figura 5.2 Esquema de prueba de procesamiento Y controlFigura 5.3 Procesos de prueba de la concurrencia.
Figura 5.4 Esquema de prueba de concurrencia.
Figura 5.5 Prueba de sincronización entre procesos.
5.1
li
I'
5.2
I1
5.4
'I
5.5
li
Figura 5.6 Esquema de prueba de sincronización.
Figura 5.7 Prueba del manejo de interrupciones.
Figura 5.8 Esquema de prueba de interrupciones.
5.8
Figura 5.10 Respuesta ai escalón del simulador.
5.9
Figura 5.9 Esquema de prueba de los procesos simulados.
Figura 5.11 Validación de los algoritmos de control.
Figura 5.12 Control de un proceso.
Figura 5.13 Respuesta del proceso controlado.
Figura 5.14 Esquema de prueba del sistema completo.
Figura 5.15 Respuesta de tres procesos en operación simultánea.
Figura 6.1. Estructura de los procesos
'I
!j
11
5.9
li
5.10
I!
5.11
I/
5.11
,i
i
5.12
5.13 I1
6.3
I!
!
'i
6
I'
Introducción.
Antecedentes.
Las aplicaciones convencionales de los sistemas digitales basados en procesador han
sido tradicionalmente en el procesamiento de datos, como en computadoras, sistemas de
comunicación, procesamiento de información, etc., donde el tiempo de procesamiento no
siempre es un factor crítico. Las aplicaciones asociadas con el control de procesos fisicos,
demandan dispositivos de procesamiento que respondan de manera rápida ante la ocurrencia
de eventos, ejecutando en períodos de tiempo muy cortos algoritmos y programas de control
que permitan efectuar acciones en tiempo real.
!I
Ij
'j
11
ij
!j
;I
il
Los dispositivos de procesamiento más adecuados para estas funciones son los
procesadores especializados como los microcontroladores, los procesadores de señales y los
dispositivos ASIC. Estos dispositivos poseen en mayor o menor grado, la capacidad de
procesamiento y la velocidad de respuesta suficiente para ejecutar diversos algoritmos en
forma "simultánea", de manera tal que cada algoritmo puede ser concebido como una tarea
independiente que realiza una secuencia de actividades y que incluye puntos en los cuales el
procesador puede abandonar y regresar ai proceso para ejecutarlo. La velocidad de operación
de los procesadores les permite ejecutar programas en períodos de tiempo muy cortos Esta
alta velocidad, relativa a la baja velocidad de respuesta de los procesos fisicos da la
posibilidad de ejecutar los algoritmos de control de manera concurrente. Esta filosofia
operativa permite la aplicación de los sistemas monoprocesador, al control de diversos
eventos de manera concurrente.
Un sistema con esta filosofia de operación requiere de un sistema operativo que !Ij
administre los recursos de hardware y software, y que mediante ciertas políticas resuelva y
atienda los conflictos que se presenten durante el procesamiento, además de permitir la 11
concurrencia. El sistema o software operativo concurrente implica el paralelismo, !
simultaneidad y solapamiento de procesos de software activos, cuyo manejo debe permitir !i
que sus resultados sean obtenidos dentro de los limites de tiempo establecidos por las li;
características dinámicas de la aplicación que deben satisfacer.
li
En este trabajo se plantea el desarrollo de un sistema digital con capacidades de
procesamiento concurrente orientado al control de procesos fisicos en tiempo real, dentro del
cual se incluye el desarrollo en hardware de módulo de procesamiento bajo' un esquema
monoprocesador, un esquema de procesamiento concurrente en tiempo real y un software de
usuario orientado a aplicaciones de control de procesos. En la aplicación especifica de este
sistema se requiere controlar tres procesos fisicos y atender interfaces de usuario-sistemas.
Dentro de las tareas que debe realizar el sistema en el control de los procesos: los algoritmos
de control PiD son la principal actividad a realizar, la ejecución concurrente de algoritmos de
control o de cualquier tarea en general, se encuentra relacionada con la siguiente
problemática:
VI11
,I
ii
I!
8;
I
ij
I
I!
Un manejo eficiente de las tareas o procesos que debe ejecutar concurrentemente el
sistema, esto implica a que tarea se le asigna el procesador. LOS algoritmos PID
son la tarea principal y deben ser ejecutados en tiempo real, para poder mantener
condiciones estables en los procesos.
Manejo de cierta política para decidir en qué orden deben ejecutarse las tareas que
realiza el sistema para alcanzar un máximo desempeño en el funcionamiento.
Comunicación y sincronización entre las tareas de software para facilitar su
ejecución concurrente.
Manejo de interrupciones y cambios de contexto con tiempos mínimos.
Administración eficiente de los recursos de hardware del sistema.
Tiempo de respuesta mínimo a los procesos fisicos controlados.
ij
I.
!I
J!
!I
!I
En el trabajo de tesis se planteó la solución sobre un esquema monoprocesador con un
software operativo concurrente. El componente principal del hardware 10 constituye un
procesador especializado o microcontrolador que permite satisfacer los requerimientos
específicos de procesamiento mencionados. Por su parte el software operativo permite
atender a cada una de las tareas o procesos de software que debe realizar el sistema,
manteniendo independencia entre ellas y manteniendo la concurrencia.
jl
Ij
li
'j
I/
Objetivo.
El objetivo de este trabajo de tesis consiste en resolver una problemática asociada con
el control de múltiples procesos fisicos, mediante el desarrollo de un sistema digital basado en
un elemento procesador para ejecutar concurrentemente algoritmos de control y orientado a
procesamiento en tiempo real.
i
11
/I
I
Ij
El trabajo es probado aplicando el sistema como un controlador de múltiples procesos
que operan simultáneamente. En el desarrollo del trabajo se incluye el hardware del sistema 'I
digital, el software operativo, el software de aplicación como controlador y la implementación 1;
de un simulador de los procesos fisicos a controlar. El proyecto incluye el desarrollo del 1;
software de control (tipo PID).
1:
,
'I
!i
Metas de diseño.
Los aspectos más importantes del sistema completo desarrollado se presentan a
continuación:
Ii
I1
Sistema digital basado en microcontrolador, con E/S analógicas y digitales e
'1
interfaces de comunicación local y serie.
Arquitectura de procesamiento concurrente,
Controlar tres procesos fisicos por medio de algoritmos de control PID que se
encuentran en operación simultánea.
I!
Generación de las señales de control para los tres procesos controlados en un lapso ,i
de tiempo menor a 10 ms.
Simulación de los procesos fisicos en una computadora personal (PC) modelados I!i
'I
I/
IX
,'I
11
I!
por una ecuación lineal de primer orden. Las características analógicas. .de., cada
proceso físico simulado son obtenidas a través de un sistema de adquisicion de
datos.
Interfaces al sistema, local, y remota a través del canal serie, de fácil manejo que
permiten manipular al sistema y realizar cambios en línea de todos los parámetros
de control.
Contenido.
El desarrollo de la tesis se presenta en cinco capítulos, a continuación se presenta una
breve descripción de cada uno de ellos.
En el capítulo 1 se presenta un marco teórico sobre sistemas operativos y se enfoca
sobre todo a los sistemas de procesamiento concurrente orientados a tiempo real. En el
segundo capítulo, se realiza la descripción general del sistema implementado, el cual se
describe en cuanto a su integración y su funcionalidad. Se presentan las descripciones del
hardware del módulo de procesamiento concurrente, el software operativo y el software de
aplicación. En el capítulo 3 se describe el diseño y la implementación del hardware del
sistema, desglosado al nivel de bloques funcionales y del sistema integrado completo. En el
capítulo 4 se presentan los niveles de detalle del desarrollo e implementación del software.
Aquí mismo se divide el software operativo del software de aplicación, describiendo los
detalles importantes de cada uno de ellos. En el capítulo 5 se presenta las pruebas al sistema y
los resultados obtenidos. En el capítulo 6 se describen los procedimientos y las
consideraciones que se deben tomar para el desarrollo de aplicaciones en la plataforma
desarrollada. En el capítulo 7 se presentan conclusiones, aspectos importantes del sistema y
sugerencias de trabajos futuros.
Finalmente se presentan una serie de apéndices; en el apéndice A se presenta la
descripción de los conectores necesarios en el hardware del sistema y complementa a los
diagramas presentados en el capítulo 3 . En el apéndice B se presentan los principales
componentes de hardware utilizados en el módulo de procesamiento concurrente. El apéndice
C presenta las referencias utilizadas en el desarrollo del trabajo y finalmente se incluye un
glosario con los términos más importantes empleados en el sistema,
X
Capítulo 1. Sistemas de procesamiento concurrente.
1.1 Generalidades.
I,
Un sistema de procesamiento concurrente orientado a tiempo real encuentra Su nicho
en aplicaciones en las que un solo sistema requiere realizar de una diversidad de tareas, Y por
la importancia de cada tarea, deben ser atendidas con un mínimo de retraso y generar SUS
resultados en un intervalo de tiempo adecuado. En este trabajo se pretende resolver una
problemática asociada al control de múltiples procesos que operan simultáneamente, mediante
un solo módulo que funcione como controlador Como solución es posible plantear esquemas
de procesamiento en una arquitectura de multiprocesador o esquemas monoprocesador. En
un esquema multiprocesador se tiene un hardware sumamente complejo, que requiere de
políticas complejas para el manejo de la intercomunicación entre los procesadores y por lo
tanto se tiene un hardware de alto costo pero que no requiere de un esfuerzo notable en su
programación. Por otro lado en los esquemas monoprocesador se tiene una arquitectura de
hardware sencilla y de bajo costo, sin embargo cuando se requiere que el sistema realice
procesamiento concurrente es necesario un software complejo, cuya función sea coordinar la
ejecución en paralelo de un conjunto de tareas o procesos que se encuentran activos
simultáneamente; dicho software recibe el nombre de software operativo concurrente o de
multiproceso. El término software operativo o sistema operativo, es utilizado a lo largo de
este capítulo indistintamente, sin embargo se considera al software operativo como un
subconjunto de elementos y funciones básicas de un sistema operativo complejo.
1.2 Software operativo.
I,
Un software operativo es un conjunto de programas que administran la distribución de
los recursos de un sistema entre los diferentes procesos o tareas que deben ejecutarse. El
software operativo actúa directamente sobre el hardware del sistema de procesamiento y es
por lo tanto una interfaz entre los elementos de hardware y los programas de usuario o tareas
que se deben realizar. Cuando se genera un requerimiento o sucede algún evento en el
módulo de procesamiento, el sistema o software operativo coordina todas las acciones para
manejar de forma adecuada cada tipo de situación que se presente. El software operativo
debe resolver los conflictos que se presenten en el sistema mediante la implantación de
políticas adecuadas [Daza].
~
'1
li
'
'ij
!
Los sistemas operativos se pueden clasificar de acuerdo al número de tareas o
procesos activos que soportan en sistemas monotarea o multitarea:
Un ejemplo de monotarea se presenta en el procesamiento serie o por lotes y en
general un sistema monotarea se caracteriza por que sólo una tarea se encuentra
activa a la vez, la cual acapara el tiempo de procesador hasta que ella termine su
ejecución y sólo entonces una nueva tarea puede ser ejecutada [Milan].
1.1
1:
'3
1)
Conceptos básicos de sistemas operativos.
Capítulo 1
1
Un sistema multitarea permite realizar varias tareas distintas "al mismo tiempo", en
estos casos el sistema operativo soporta varios procesos que se encuentran activos al
mismo tiempo. Dentro de este tipo se tienen los sistemas multiprogramados y de
tiempo compartido [Hwang].
Los sistemas operativos por otra parte pueden estar orientados ai manejo de
aplicaciones, como manipulación de archivos o desarrollo de software, donde el tiempo no es
un parámetro importante, o pueden estar orientados a aplicaciones en tiempo real en las que
el sistema debe dar servicio a tareas cuya ejecución se sincroniza con eventos externos a ellas.
1.2.1 Sistemas de tiempo real.
En los sistemas de tiempo real las salidas no sólo dependen de las entradas y
secuencias en las que estas se presentan, sino también del instante en el que la salida debe
hacerse presente. La relación de un sistema de tiempo real con respecto al momento que se
deben presentar las salidas establece la constante de tiempo del sistema, cuyo valor determina
la velocidad con la que el sistema debe actuar ante las distintas entradas.
En sistemas de tiempo real, los eventos con los que se sincronizan las tareas pueden
ser programados o indeterminados con respecto al tiempo, estos eventos se relacionan
normalmente con señales eléctricas generadas por el mismo sistema digital o por los
elementos fisicos que conforman a la aplicación. El procesador por lo tanto debe incluir
características que permitan la operación en tiempo real, como interrupciones,
temporizadores, etc. [Daza].
Un software operativo en tiempo real, debe ser multitarea, con características de:
programación de eventos, priorización de tareas, sincronización y comunicación entre tareas,
temporizadores y manejo de interrupciones. Estas características permiten de algún modo
garantizar que las tareas sean realizadas en el intervalo de tiempo requerido por la aplicación
en tiempo real.
1.2.2 Sistemas concurrentes.
Un sistema multitarea o concurrente consiste de un grupo de programas que permiten
que múltiples procesos o tareas de software independientes coexistan activos y les permite a 1
todos los procesos operar simultáneamente. La alta velocidad de un procesador relativa a las :
operaciones fisicos que controla, permite compartir el procesador sobre varios procesos
lentos. El procesador salta de un proceso a otro y ejecuta una parte de cada uno en un
intervalo de tiempo dado [Porat]. El siguiente proceso que se ejecuta es seleccionado 'j
mediante una planeación a la que responde el sistema operativo. Entre cada conmutación de I j
tareas se realiza un cambio de contexto que incluye el almacenamiento del estado del proceso '
que sale de ejecución y la restauración del contexto del estado que entra.
':
11
1.2
1;
Conceptos básicos de sistemas Operativos.
Capítulo 1
i
i
En el procesamiento concurrente los procesos o tareas deben ser escritos como una secuencia
de actividades e incluir puntos en los cuales el procesador pueda dejar y regresar al proceso,
y/o incluir una política que permita la salida y entrada de los procesos en cualquier punto de
su estructura. Cada proceso o actividad inicia o reinicia su operación en un punto de entrada
determinado por el sistema operativo, y es disparado por un evento externo o por otra
actividad y puede a su vez iniciar a otras actividades o tareas.
I1
1
I,
í
I!
'I
1.3 Núcleo del sistema operativo.
I!
El sistema operativo tiene como principal función controlar la ejecución de cada uno
de las tareas o procesos que se desea realice el sistema. El primer nivel de software de un
sistema operativo está constituido por un conjunto de rutinas y herramientas que permiten el
manejo de todos los componentes de hardware y software del sistema.
/I
11
I!
i
'I
El núcleo de un sistema operativo es el primer nivel de software que trabaja sobre el
hardware del sistema, configura y maneja los componentes del hardware. El núcleo realiza las
funciones primarias del sistema operativo, como la gestión de procesos, el manejo básico de
entradasísalidas, el manejo de interrupciones, la configuración e inicialización del sistema, la
comunicación y sincronización entre procesos y el manejo de errores y excepciones.
/j
,I'
I
1;
1.3.1 Elementos del sistema operativo.
1;
I
Para trabajar en un sistema multitarea, un proceso o una tarea de software requieren
de rutinas especiales, estructuras de datos que controlen el flujo de ejecución y herramientas
para la sincronización e intercambio de datos.
''
,,
1;
Dentro de las rutinas básicas que se requieren para el funcionamiento del núcleo del
sistema se tienen las siguientes:
i:
Una rutina que maneje el procesador y decida su asignación sobre un conjunto de
11
tareas o procesos activos.
1
Una rutina que inicialice, configure y maneje al hardware y al software del sistema. 'j
Rutinas y/o políticas que permitan responder a eventos como interrupciones,
errores y excepciones.
Con este conjunto básico de rutinas es posible controlar las tareas que se ejecutan y
responder a los eventos que se presentan en el sistema. Para el funcionamiento del sistema se
requiere también de un conjunto básico de estructuras de datos auxiliares en el control de las
tareas de software, dentro de este conjunto básico se incluyen las siguientes tres:
Una tabla de tareas o procesos en RAM, que contenga punteros a los puntos de
entrada de las actividades esperando a ser ejecutadas.
1.3
,I
II
Conceptos básicos de sistemas operativos.
Capítulo 1
Una tabla de procesos, de la cual se designará la siguiente tarea poseedora del
procesador basado en cierta política que permita tomar la decisión.
* Una estructura en memoria RAM que permite almacenar el estado de los registros
del procesador para cada uno de los procesos que se encuentren activos.
Dentro de las herramientas para la sincronización e intercambio de datos, que
permiten la administración del sistema digital, están:
Los semáforos que se usan para sincronizar, excluir y/o distribuir recursos de
hardware y software. Pueden constituirse por una variable booleana o por un
contador.
Los buzones son bloques de memoria usados para la transferencia de información y
coordinación entre procesos.
En la Figura 1.1 se ilustran los elementos básicos que conforman un sistema
operativo. Las rutinas básicas se auxilian de los buzones, de los semáforos y de las tablas del
sistema, para poder decidir sobre la asignación de los recursos de hardware sobre cada uno de
los procesos de usuario
..........................................................................
Pmcesos de usuario
.....................................
....................
...............,
-
4
Núcleo del
sistema operativo.
.......................
Tablasdel
!
..................
I Rutinas bhsicas
y de procesos
Tablas
descriptivas
.......................
j
........................
j
Herramientas
Hardware
I
..................................
.....................................
4
.........................
....................................
Hardware
...........................................................................
Figura 1.1 Estructura básica de un sistema operativo.
1.4
I
Conceptos básicos de sistemas operativos.
Capítulo 1
1.3.2 Procesos.
Se define como proceso de software a un conjunto de líneas de código que se
encuentran en ejecución en cierto momento [Milan] y tiene como objetivo hacer que el
sistema desempeñe cierta función al nivel de usuario. Un proceso se puede considerar como
la unidad funcional del software de aplicación. En algunos casos el término proceso y el
término tarea son manejados como sinónimos, sin embargo una tarea puede estar constituida
por uno o varios procesos, o sea un proceso puede integrar a una tarea o una actividad que
debe realizar el sistema o simplemente ser una parte de ella. Dentro del desarrollo de este
documento se utiliza la palabra proceso para referirnos a los programas de software que
conforman las tareas de aplicación del sistema.
1.3.2.1 Estado de los procesos.
Los procesos por su estado se pueden clasificar en activos o inactivos. Un proceso
activo se diferencia de uno inactivo en que el primero se encuentra compitiendo por el USO del
CPU. Un proceso activo puede estar en cualquiera de los tres estados de la Figura 1.2:
En ejecución, procesos poseedor del CPU.
Listo, es el proceso en la cola para tomar posesión del CPU.
Bloqueado, es un proceso que tiene que esperar a que ocurra cierto evento para ser
ejecutado[Tanembauml].
Activos
...............
E : Ejecución
. .
.: :. I n a c t i v o s
. .
................................................
I
.
L : Listo
B : Bloqueado
I:
Inactivo.
!I
I/
Figura 1.2 Estados de los procesos.
En un momento dado pueden presentarse cambios de un estado a otro, de acuerdo a
la ocurrencia o no de determinados eventos a los que debe responder cada proceso particular.
':
','
1.4 Gestión de procesos.
La gestión de procesos es uno de los componentes básicos de todo núcleo de sistema
operativo y es la parte encargada de administrar y controlar el comportamiento de los ,;
procesos de software de un sistema, esto es manejar los procesos inactivos o activos en sus ,,
diferentes estados: listos, en ejecución o bloqueados. La gestión de proceso se encargal,
también de manejar los procesos residentes en el sistema o creados por el usuario.
'!
j
1.5
'I
Capítulo 1
Conceptos básicos de sistemas operativos.
,
I1
El manejo de los procesos se realiza en base a cierta política que determina el orden en
que el CPU es entregado a cada uno de los procesos. El elemento encargado de realizar esta
función se llama planificador y tiene como objetivo optimizar el rendimiento del sistema de
acuerdo a los puntos que se consideran importantes dentro de las particularidades del sistema.
Ij
I
1;
1:
'i
Algunos criterios que permiten definir al planificador son: la relación de tiempo de
ejecución entre el software de aplicación y el software operativo, el número de procesos
ejecutados por unidad de tiempo, el tiempo promedio que un proceso debe esperar para que
se le asignen los recursos de hardware [Milan]. En general el criterio de selección del
planificador debe ser de acuerdo a las características consideradas más importantes por el
diseñador.
1:
Ji
,I
1;
'I
1,
1.5 Comunicación y sincronización entre procesos.
La comunicación y sincronización entre procesos es la parte de un sistema operativo
que permite que dos o más procesos se relacionen entre ellos, con los elementos del
hardware, o con algunos eventos externos a los mismos procesos.
Dos elementos básicos para el manejo de la comunicación y sincronización son los
semáforos y buzones. Los semáforos son elementos principalmente usados para la
sincronización entre procesos, se utilizan para determinar el estado de cierto evento que
permite a los procesos determinar el siguiente paso dentro de su ejecución. Los semáforos
pueden ser conformados por una variable booleana o por un contador cuyo estado es
modificado por la sucesión del evento que se pretende indicar.
I/
I/
!i
Los buzones por su parte se utilizan para el intercambio de conjuntos de datos, ' y
!I
además de permitir la sincronización entre procesos. Cada buzón está integrado por un ,;
segmento de memoria, dicho segmento se divide principalmente en dos bloques, uno para el I;
almacenamiento de la información y otro que permite determinar tanto el estado de la '1
información que almacena como el estado del mismo buzón.
I1
1;
El manejo de semáforos y buzones permite la cooperación entre diversos procesos
sobre una misma tarea común a ellos. El manejo de la sincronización y comunicación
pretende resolver problemas de intercambio de información y sincronización de procesos, y
de manejo de recursos del sistema hardware/software a través de la exclusión mutua.
1.6 Manejo de los elementos de hardware.
i
El manejo de hardware de un sistema pretende gestionar la asignación de estosii
recursos a los procesos de usuario. Una gestión eficiente del hardware se relaciona con una:
identificación de las características sobre el uso de cada recurso y sobre las funciones qu6
debe realizar. Debe realizarse un análisis que permita identificar si el uso de cada recurso es'
apropiativo por parte de los procesos o si el recurso puede ser compartido por ellos
[Tanembauml]. En ambos casos se establecen técnicas y/o políticas que permitan el manejo
/i
1;
:
!I
I<
1;
Capítulo 1
Conceptos básicos de sistemas operativos.
j
I!
'!
exclusivo o compartido de los recursos
!i
En el caso del uso exclusivo de un recurso, a través de elementos de sincronía se
puede lograr la exclusión mutua entre los distintos procesos que le requieren. Cuando un
recurso es compartido entonces es necesario controlar su compartición mediante una
planeación estática (fuera de línea) o dinámica (durante la operación).
',
I!
',
11
'!
El manejo de cada componente del hardware requiere de un programa que permita
controlarlo, a través de este elemento llamado controlador, a cada recurso se le dan ordenes,
se le establecen parámetros y en general, se coordina la operación del recurso. Estas rutinas
se encuentran disponibles para ser llamadas por los procesos de aplicación y tienen como
objetivo facilitar al usuario el manejo del hardware.
11
II
I
11
1;
I/
Ij
1.7 Manejo de interrupciones.
Otro de los aspectos importantes que deben considerarse en los sistemas operativos
son las interrupciones. Las interrupciones son eventos de hardware o software que cambian el
flujo normal de un programa que se encuentra en ejecución y permiten sincronkar la
operación de los dispositivos de hardware con el procesador [Tanembauml]. Las
interrupciones, ya sean de hardware o de software se generan como respuesta a algún evento
que requiere de atención inmediata del procesador, como intermpciones de E/S,
temporizadores o timers, etc. (en el caso del hardware) y detección de errores y excepciones
(como interrupciones de software).
ii'I
I!
li
I!
j
(
\
I!
'I
!i
Dentro del manejo de las interrupciones deben definirse características como niveles
de prioridad de las interrupciones, detectar segmentos de código que no deben interrumpirse, ,I
el tiempo de atención a las solicitudes de interrupción, etc. Con el fin de determinar las I!
políticas adecuadas que permitan manejar las interrupciones garantizando que las solicitudes
de interrupción son atendidas, manteniendo una operación correcta tanto en las rutinas de ,,I!
atención como en los progranias interrumpidos y que posteriormente retoman el uso del
I!
procesador.
1;
ii
1.8 Aplicaciones de control en tiempo real.
I!
Los sistemas de tiempo real se usan en aplicaciones donde es necesario aceptar y dar I
respuesta a sucesos, en su mayoría externos al sistema, con el menor retardo posible. En ' j
control industrial, comunicaciones, aplicaciones militares, etc. se requieren de sistemas que li
81
brinden procesamiento en tiempo real.
)
Cada aplicación específica de tiempo real presenta características especiales que
permiten al sistema establecer estrategias y técnicas adecuadas para que realice atención en
tiempo real En aplicaciones industriales se requiere regular el comportamiento de los
procesos a través de alguna técnica de control La tarea que permite controlar los procesos se
presenta como un programa cuya ejecución se sincroniza con una interrupción que determina
1.7
Conceptos básicos de sistemas operativos.
Capítulo 1
el periodo de muestreo del proceso a controlar.
La frecuencia de ejecución de una tarea de control se relaciona directamente con la
constante de tiempo de la planta a controlar. Por el teorema del muestreo se determina una
frecuencia de dos veces el inverso de la constante de tiempo de la planta, pero para obtener
mejores resultados el periodo debe ser entre 5 y 50 veces el inverso de dicha constante
[Hoang].
En las aplicaciones de control el funcionamiento del sistema debe sincronizarse con el
periodo de muestreo establecido por las plantas que interesa controlar. Esto permite definir:
El tiempo máximo de ejecución de las tareas de tiempo real
Políticas para el manejo de las tareas y de los recursos del sistema.
Tareas criticas que requieren procesamiento en tiempo real.
Con la definición del periodo de muestreo y con la identificación de los puntos
anteriores es posible definir la base de un sistema operativo que realice procesamiento en
tiempo real, para aplicarlo al control de procesos industriales.
'!
!
1.8
I.
Capítulo 2. Descripción del sistema.
2.1 Introducción.
En este capítulo se realiza una descripción general del sistema desarrollado, el cual se
encuentra integrado por tres bloques principales: el módulo de procesamiento concurrente, la
interfaz de comunicación serie y los procesos fisicos controlados. El módulo de
procesamiento concurrente es la parte más importante de este trabajo. Los otros dos
elementos presentan su importancia en la aplicación del módulo de procesamiento como
controlador de los procesos físicos. Se presenta también la descripción funcional y de
configuración tanto general como de cada uno de los componentes del sistema.
Dentro de la descripción de cada uno de los bloques del sistema se destaca el módulo
de procesamiento concurrente y se presentan sus tres componentes: hardware, software
operativo y software de aplicación. El hardware y el software operativo establecen la
plataforma para el procesamiento concurrente, mientras que el software de aplicación o de
usuario permite configurar al sistema para su operación como controlador.
‘i
1
(i
;I
‘i
‘i
2.2 Descripción del sistema.
8!
El sistema se encuentra integrado por tres bloques: el módulo de procesamiento
concurrente, la interfaz de comunicación serie y los procesos físicos controlados que integran !:
un sistema de multicontrol sobre tres plantas que operan simultáneamente, Figura 2.1. El !:
I/
módulo de procesamiento concurrente realiza las funciones de un controlador y opera ;
directamente sobre las plantas o procesos fisicos. Cada proceso fisico responde en función a ‘i
las señales generadas por el módulo de procesamiento o control y la respuesta obtenida en las
plantas es retroalimentada al módulo de procesamiento para generar los valores de control y ,;!
lograr una regulación adecuada sobre ellas. La señal de control para cada proceso físico es !i
1
obtenida mediante la ejecución de algoritmos PID.
1;
procesos
controlados
4-p
lnterfaz de
acceso remoto
I’
Modulo de
procesamiento
concurrente
Figura 2.1 Diagrama a bloques del sistema.
I:
El módulo de procesamiento concurrente se encuentra basado en una arquitectura’
monoprocesador, que permite ejecutar varias tareas en forma “simultánea”. Se encuentra
constituido por un microcontrolador que realiza varias funciones en forma concurrente, y
realiza el control de los procesos fisicos en tiempo real.
2.1
I/
Capítulo 2
Descripción del sistema.
Las plantas o procesos fisicos se implantaron en un simulador, mediante una PC con
un sistema de adquisición de datos. Cada proceso corresponde a un sistema andógico
modelado por una ecuación de transferencia lineal de primer orden. Las entradas y salidas de
cada proceso simulado corresponden a una entrada y una salida analógica del sistema de
adquisición de datos. Los procesos son simulados uno tras de otro en forma cíclica y el
tiempo de ejecución de cada proceso se mantiene dentro de los limites definidos por las
funciones matemáticas usadas en la simulación.
Por otra parte, la PC es usada en la Interfaz Hombre Máquina y tiene como objetivo
proveer de acceso remoto al módulo de control, manteniendo comunicación serie mediante el
estándar RS-232. Provee de una interfaz amigable que permite, entre otras cosas, cambios en
los parámetros de los algoritmos PID, habilitar o inhabilitar procesos, etc
2.3 Módulo de procesamiento concurrente.
El módulo de procesamiento concurrente es un sistema digital basado en procesador,
constituido por tres bloques básicos de acuerdo a la Figura 2.2:
El hardware del sistema,
El software operativo que permite el procesamiento concurrente y
El software de aplicación.
operativo
,I
.I
Figura 2.2 Conformación del módulo de control
El núcleo del módulo de procesamiento concurrente se encuentra conformado por el 'j
hardware, sus elementos se agrupan en tres bloques principales y su descripción se presenta
!
en el apartado 2.3.3. Estos submódulos son:
Procesamiento y memoria.
E/S analógicas y digitaies.
Interfaz al usuario.
22
'1
Descripción del sistema.
Capítulo 2
1,
El siguiente nivel se encuentra constituido por el software operativo, su principal
objetivo es permitir el control concurrente de los procesos fisicos además de controlar y
administrar los recursos de hardware y software del módulo de procesamiento.
El software de aplicación consiste en un conjunto de programas enfocados a que el
módulo de procesamiento regule adecuadamente el comportamiento de los procesos fisicos a
controlar.
Los sistemas digitales basados en elementos de procesamiento basan su operación en
la interacción de estas tres partes básicas mencionadas. La relación entre ellas permite a los
sistemas digitales estar capacitados para realizar una gran diversidad de tareas, realizando
cambios sólo a nivel del software de aplicación.
'1
2.3.1 Descripción funcional del módulo de procesamiento.
El módulo de procesamiento se encuentra constituido por un conjunto de elementos
de hardware y software que establecen características generales, básicas y típicas de algunos
sistemas de procesamiento. Lo que establece la particularidad en el sistema es el software de
aplicación el cual se encarga de realizar el control de los procesos fisicos.
Este conjunto de tareas de aplicación se encuentra residente en la memoria ROM del
módulo de procesamiento, al igual que el software operativo. El microcontrolador inicia su
operación a través del software operativo cuya primera función consiste en inicializar los
componentes del hardware, del software operativo y del software de aplicación,
Posteriormente el software operativo ejecuta una rutina que decide que proceso de sofiware
es el primero al que se le asigna el procesador, esta rutina es conocida como planificador.
La ejecución del planificador se encuentra sincronizada con una serie de
interrupciones de timer utilizadas para evitar que un sólo proceso acapare al CPU; estas
interrupciones además se encuentran programadas para que se presenten de acuerdo al
periodo de muestreo establecido por las plantas a controlar; de esta forma se sincroniza
finalmente la ejecución de las tareas de control con el periodo de muestreo requerido.
'i
'I
Dentro de las tareas que se realizan a nivel del software de aplicación, la principal ,I
consiste en mantener a cada planta en cierta condición de operación deseada mediante la
adquisición de datos, la ejecución de algoritmos PiD y la salida de datos. Las tareas de
aplicación dentro de sus funciones se encargan también de la comunicación con el usuario ',
mediante una interfaz local y mediante una interfaz con la PC a través del canal serie, estas I!
interfaces permiten al usuario visualizar e introducir información al sistema mediante un ,'
conjunto de menúes. El módulo de procesamiento realiza también funciones de diagnostico
sobre algunos de sus componentes de hardware, lo que permite detectar algunas fallas en el '
!!
sistema.
I,
,:
,,
2.3
Capítulo 2
Descripción del sistema.
I,
1.
I
'!
2.3.2 Consideraciones del módulo de procesamientopara lograr un funcionamiento adecuado del módulo de procesamiento es necesario
tener en cuenta importantes consideraciones. Dentro de estas consideraciones se cenceuntran
las siguientes:
!I
1:
I
Ij
''1
El software operativo garantiza que los programas de aplicación se ejecutan de
acuerdo a sus características.
Il
Las tareas de control, que tienen mayor relevancia que las interfaces, se les otorga
un tiempo mayor de procesador, para que sean ejecutadas en un lapso de tiempo
menor al establecido por el periodo de muestreo.
lj
lj
Ii
En un lapso de tiempo igual al periodo de muestreo debe también ejecutarse al
menos uno de los procesos de interfaz al usuario para garantizar que no sólo los
algoritmos de control sean poseedores del procesador.
l.
li
I1
La última consideración es que el tiempo de ejecución de las tareas de control debe
ser menor a una cuarta parte del periodo de muestreo, para garantizar la ejecución
de las tres tareas de control, la ejecución de al menos una de las interfaces al
usuario, además del tiempo requerido por el software operativo.
li
Ii
'1
':
!i
2.3.3 Descripción general del hardware.
'I
El hardware del módulo de control se encuentra conformado de acuerdo al diagrama
de bloques presentado en la Figura 2.3.
I;
I:
I
Módulo de Procesamiento Concurrente.
Procesamiento
I
Analógicas
ydigitales
y control
v
........
Fuente de
alimentación
lnterfaz al
........
usuario
Figura 2.3 Diagrama a bloques del módulo de procesamiento.
Procesamiento Y control. Es el submódulo encargado de la coordinación general de las
funciones del sistema; provee de capacidad de cálculo y procesamiento para ejecutar i
los algoritmos de control, coordina las señales de control necesarias para todo el 11
i
2.4
!j
'I
Descripción del sistema.
Capítulo 2
sistema e interpreta y ejecuta las ordenes provenientes de la interfaz bcal 0 de la
comunicación serie, Se constituye por el microcontrolador y la lógica necesaria Para la
decodificación y control. Consiste también de una memoria ROM en la Cual residen
software operativo y de aplicación para el microcontrolador Y de una memoria RAM
que almacena 10s datos que se requieren durante la operación. Se incluye además el
cristal oscilador y el reset del microcontrolador.
E/S halógicas y digitales. Este submódulo está conformado por tres grupos: una interfaz de
E/S analógicas que consiste de dos conjuntos de tres señales, uno de entrada y otro de
salida, con rangos de O a 5 V y una resolución de 12 bits. Una interfaz digital
consistente de 7 líneas de salida digital y de 7 líneas de entrada digital, el puerto de
entrada puede ser atendido por una interrupción en el microcontrolador. El tercer
componente lo integra un generador PWM, este submódulo es capaz de generar tres
grupos de señales de PWM tnfásicos de niveles TTL.
Interfaz al usuario. La interfaz ai usuario se encuentra constituida por una interfa local que
consta de una pantalla de cristal líquido de 2 renglones por 16 columnas, y un teclado
matricial de 16 teclas. La interfaz funciona a través de menúes para facilitar su manejo
por parte del usuario. También se incluye en este submódulo una interfaz serie que
permite establecer comunicación serie con una PC y permite una fácil interacción con
el módulo de procesamiento concurrente.
Fuente de alimentación. Este submódulo provee de las tensiones de CD adecuadas para el
fu~CiOnamient0de cada uno de los componentes del módulo de procesamiento,
Provee tensiones de 2 5 y ? 15 VcD.
2.3.4 Descripción general del software.
El soRware básicamente consta de dos partes: el software operativo y el software de
aplicación. En la Figura 2.4 se presenta un aspecto general del software del sistema.
Figura 2.4 Esquema general del software.
2.5
Capitulo 2
Descripción del sistema.
!1
I
El software operativo da soporte a los procesos de usuario y permite que estos
residan activos de forma simultánea en el hardware del sistema. Mientras que el software de
aplicación tienen como finalidad efectuar las tareas de control de los procesos fisicos y de
interfaz de usuario.
;
I
!
;i
2.3.4.1 Software operativo.
li
EI software operativo tiene como función administrar los recursos de hardware Y 10s
procesos de software, permitiendo la concurrencia de 10s programas de aplicación Y la
ejecución de los algoritmos de control en tiempo real. Algunas características y funciones del
software operativo son las siguientes:
,I
!i
'i
N
i
!;
a)
b)
c)
d)
e)
Capacidad de procesamiento concurrente
Orientado a procesamiento en tiempo real
Inicialización del sistema
Gestión de procesos.
Sincronización y comunicación entre procesos.
t) Manejo de interrupciones.
g) Administración de los recursos de hardware.
El'software operativo basa su capacidad de concurrencia en dos aspectos importantes
de la arquitectura del software: uno es el manejo de multiniveles de colas de procesos activos,
donde cada cola se maneja con una política de round robin, y otro la asignación a cada cola
de cuantos de tiempo finitos de procesador de acuerdo a la prioridad de la cola.
II
'1
I/
11
Con la asignación de tiempos finitos en función de la prioridad de la cola, se garantiza
la ejecución de los algoritmos de control en un tiempo finito que es función de dichos cuantos
de tiempo; y mediante un conjunto de variables que permiten la coordinación y sincronización
de los procesos con respecto a otros procesos y al tiempo, es posible tener las señales de
control en tiempos discretos.
I:
I
,I
,I
1,
2.3.4.2 Software de aplicación.
El software de aplicación es un conjunto de rutinas realizadas en lenguaje ,I
ensamblador, que tienen como objetivo realizar las tareas del controlador. Los programas I,:
para el funcionamiento del controlador son los siguientes:
1;
Aiaoritmos P i D Son tres rutinas encargadas de calcular las acciones de control de las plantas
que se desean controlar. Estas tareas tienen prioridad alta y deben ejecutarse
constantemente.
!
~
'I
,
Salida de datos Es el proceso de software encargado de mandar por medio de la interfaz de
E/S analógicas, los resultados de la ejecución de los algoritmos PID a cada planta
correspondiente
I,
li
2.6
'I
Capítulo 2
Descripción del sistema.
Menú del sistema. Esta tarea utiliza la pantalla LCD y el teclado para dar al usuario algunas
opciones que permiten manipular al sistema, como mostrar y cambiar parámetros, dar
de alta o de baja el proceso correspondiente a una planta, etc. Dentro de las opciones
del menú destaca el diagnóstico del sistema el cual permite obtener información de
algunas condiciones del hardware y del estado de operación del sistema para
identificar errores o alguna mala operación del sistema.
Comunicación Serie. Es la encargada de atender las requisiciones de envío y recepción de
información a través del canal serie. Corresponde a un proceso de prioridad baja que
se encuentra siempre activo e incluye básicamente las mismas opciones que en el menú
del sistema. Este proceso interactúa directamente con la PC a través de la cual se
seleccionan las acciones que debe realizar el módulo de procesamiento comunicar el
resultado de las acciones a la PC.
2.3.5 Características del módulo de procesamiento.
El módulo de procesamiento concurrente incluye un conjunto de elementos de
hardware y software que le permiten ser utilizado en un variado campo de aplicaciones.
Dentro de estas características se tienen:
Hardware:
Sistema monoprocesador.
3 canales E/S Analógicos.
7 canales E/S Digitales.
Interfaz local (Pantalla y teclado).
Interfaz de comunicación serie.
Fuente de alimentación.
Facilidades de hardware para autodiagnóstico
Software:
Software operativo concurrente orientado a procesamiento en tiempo real.
Software de aplicación del módulo como controlador.
* Ejecución de algoritmos PID
Cambio de parámetros de los PID.
* Manejo de interfaz local.
Comunicación serial.
* Diagnostico del hardware.
Estas características permiten obtener un módulo de procesamiento concurrente
aplicado al control de procesos. El procesamiento concurrente permite atender varios
procesos fisicos independientes dentro de ciertas condiciones de operación deseada y el
tiempo de procesamiento se limita de acuerdo a las características de la aplicación. El
2.1
Capítulo 2
Descripción del sistema.
hardware debe poder realizar procesamiento en tiempo real para garantizar una regulación
adecuada sobre el funcionamiento de los procesos físicos.
2.4 Descripción de los procesos físicos controlados.
Las plantas utilizadas fueron implementadas en una computadora personal, mediante
un simulador. Cada planta fue representada por una función de transferencia lineal de primer
orden de acuerdo a la ecuación:
F( S) =
1
100 x 10-)s+ 1
Dicha función fue programada en la computadora en lenguaje C, obteniéndose un
sistema de tipo una entrada una salida, con sus niveles escalados donde la amplitud del 100%
iorresponde a un valor de voltaje de 5 V. La constante de ~ O O X ~ Ose. tomó
~
de una función
de transferencia correspondiente a la identificación práctica de un motor de inducción
trifásico [Solís].
2.4.1 Periodo de muestreo.
La respuesta a un escalón de la función anterior se presenta en la Figura 2.5; en ella
se identifica la constante de tiempo de los procesos a un valor de 1 O0 ms, la cual se relaciona
con el 63.2% de la amplitud total del sistema. Mediante el valor obtenido para la constante
de tiempo se determinó el periodo de muestreo del sistema considerando un periodo de un
décimo del valor de dicha constante, lo que determina un periodo de muestreo de 10 ms.
r
O
,,e
Pendiente
IO0
l/r
200
300
400
500
rns
Figura 2.5 Respuesta al escalón de los procesos controlados.
Este periodo de muestreo establece las restricciones de tiempo tanto en el módulo de
procesamiento como en la simulación de los procesos a controlar. Con el periodo de
2.8
Capítulo 2
Descripción del sistema.
muestre0 en 10 ms se determinó el límite de tiempo por debajo del cual se deben ubicar los
tiempos máximos de ejecución de los algoritmos de control PiD. Si se considera que se tienen
tres algoritmos PID además de las interfaces al sistema entonces se puede plantear una
repartición inicial del tiempo de procesador sobre cuatro tareas. Considerando una repartición
equitativa se obtiene un tiempo de ejecución máximo de 2.5 ms por cada tarea y tomando en
cuenta que el software operativo toma O. 15 ms en realizar su operación, se establece un límite
2.35 ms para la ejecución completa de cada tarea de contiol. Con esto es posible establecer
un criterio para determinar el límite máximo en la ejecución de los algoritmos de control, de
tal forma que sea posible que se ejecuten otras tareas como las interfaces al sistema dentro del
periodo base de 10 ms.
2.4.2 Simulación de los procesos.
La simulación de los procesos en PC se basó en el algoritmo de Runge-Kutta [Zill] de
segundo orden. Para la simulación de los procesos se requiere de un sistema de adquisición de
datos para mantener las características analógicas requeridas por cada planta e interaccionar
con el módulo controlador, Figura 2.6.
I
:I
Módulo de
procesamiento
concurrente
\
j
i
Tarjeta de adquisición
.........................................................................................................................
:
Figura 2.6 Diagrama de los procesos físicos controlados.
El módulo de procesamiento entrega a la PC las señales de control analógicas para
cada planta; cada señal se convierte de analógica a digital por el sistema de adquisición de
datos de la PC y esta calcula los valores de salida de cada planta. El sistema de adquisición de
datos incluye 3 canales analógicos de salida, por medio de los cuales se retroalimentan al
controlador las variables monitoreadas de las plantas controladas, haciéndose esto
cíclicamente para obtener el comportamiento de la planta. El diagrama de flujo
correspondiente a la operación de las plantas o procesos controlados se representa en la
Figura 2.7.
2.9
Descripción del sistema.
Capítulo 2
9
Iniciar
adquisición
-
Leer CAüi
Inicio
I
Inicio conv.
CADi
Simular
Proc (i-1)
CAü(i-I)
Figura 2.7 Algoritmo de simulación de los procesos.
A través de la simulación de los procesos fisicos controlados se probó el
funcionamiento del módulo de procesamiento como controlador; manteniendo una regulación
independiente sobre cada planta mediante la ejecución concurrente de cada tarea de control.
2.10
Capítulo 3. Desarrollo del hardware.
3.1 Introducción.
I
'i
En este capítulo se presenta el desarrollo del hardware del sistema como una
secuencia lógica con respecto al capítulo anterior. Se detalla el diseño de cada bloque
integrante del módulo de procesamiento concurrente así como su asignación de direcciones
en el mapa de memoria. En la Figura 3.1 se presenta el diagrama a bloques del módulo de
procesamiento concurrente para facilitar la descripción del capítulo.
'I
'j
'!
,
Módulo de Procesamiento
-*
Memoria
Interfaz
Serie
Procesamiento
y Control
PWM
Interfaz EIS
Analógicas
Interfaz EIS
I ...................................................................................................
- 1
Fuente de alimentación
..................................................................................................
Figura 3.1 Hardware del módulo de procesamiento.
3.2 Diseño del módulo de procesamiento.
El módulo de procesamiento fue diseñado, implementado y probada por etapas
partiendo del núcleo básico de procesamiento y control, sobre el cual se le adicionaron el
resto de los bloques funcionales presentados en la Figura 3 . 1 .
3.2.1 Submódulo de procesamiento.
El principal componente de este submódulo es un microcontrolador 80C3 10 fabricado
por Dallas Semiconductors, el cual es compatible 100% con los microcontroladores de Intel
de la familia 8051, pero este microcontrolador mantiene un desempeño mucho mayor. Un
mismo programa puede ser ejecutado hasta tres veces más rápido en el 80C310 para una
misma frecuencia de reloj, que en los microcontroladores de Intel de dicha familia.
3.1
j
I
Capítulo 3
Desarrollo del hardware.
I
En este submódulo se incluyen todos los elementos TTL utilizados para la
decodificación, sincronización y multiplexión de todas las líneas necesarias en la operación del
módulo de control, así como un cristal el cual es necesario para la generación de la señal de
reloj del sistema de control.
I
,j
Oscilador
I'
direcciones
Figura 3.2 Submódulo de procesamiento y control.
',
Funcionalmente este módulo se encarga de coordinar y sincronizar el funcionamknto !
de todos los componentes del sistema (hardware del módulo de control, comunicación con la I!
PC y control de los procesos fisicos). Para mantener un funcionamiento correcto en el j
sistema, el submódulo de procesamiento hace uso del software operativo y de los programas j
de aplicación. (Figura 3.2).
3.2.2 Submódulo de memoria.
'I
1;
El submódulo de memoria externa se encuentra integrado por una memoria ROM y I:
una memoria RAM,de acuerdo a la Figura 3.3. Todas las tareas y funciones que realiza el 'I
módulo controlador corresponden a programas de software alojados en memoria ROM y son
ejecutadas por el submódulo de procesamiento. Algunos de estos programas corresponden al
software operativo del módulo de control el cual permite coordinar y controlar las tareas que
debe realizar el módulo controlador. Los programas que realizan las tareas del usuarioli
corresponden al software de aplicación y su principal característica es que estas tareas se';
ejecutan en el ambiente que suministra el hardware y el software operativo. Tanto el software:
operativo como de usuario requieren de la memoria RAM para poder realizar sus funciones. '
1
3.2
Capítulo 3
Desarrollo del hardware.
c
Procesamiento
y control
Memoria
I
Memoria
de direcciones
Figura 3.3 Submódulo de memoria.
I
I'
3.2.3 lnterfaz de entradadsalidas analógicas.
Este submódulo da las capacidades al sistema de procesamiento para interconectarse
con sistemas analógicos, en concreto esta jnterfaz permite realizar el monitoreo del estado de
los procesos controlados y permiten que sean entregadas las señales de control analógicas
para cada proceso. Este bloque está integrado de acuerdo a la Figura 3.4. El canal D o 3 de
ambos convertidores es interconectado con fines de poder realizar el diagnóstico de esta
intetfaz.
1;
';
':
'I
,;
1;
;I
I,
Figura 3.4 Interfaz de E/S analógicas.
Este submódulo permite al módulo de control intercambiar información con los
procesos controlados a través de un par de convertidores fabricados por Maxim, cuyas
principales características se muestran en la Tabla 3 . 1 .
3.3
Capítulo 3
Desarrollo del hardware.
Resolución
12 bits
12 bits
No. parte Conversión
A/D
MAX 182
DIA
MAX 527
Canales
4
4
R.V.E.
0-5 Volts
0-5Volts
Tiempos
tconvcrjián
12011s
tsstablccimicnto.
611s
Tabla 3.1 Características de los convertidores usados.
Ambos convertidores se aislan de los procesos controlados mediante circuitos
operacionales. Las señales de entrada al convertidor analógico a digital (CAD) se filtran
previo a su adquisición. El buffer digital tiene como finalidad aislar al bus de datos del
módulo de procesamiento del CAD, para evitar la generación de errores en el resultado final
de la conversión, por efecto de la ocupación continua del bus. El submódulo de
procesamiento __
atiende al CAD como respuesta a una solicitud de atención realizada mediante
la intermpción INTO,Por su parte el convertidor digital a analógico es aislado de los procesos
fisicos mediante circuitos operacionales conectados en una configuración de seguidores.
Procesamiento
...........
'PuertoI PI
qJ
-
Exhibidor
4
Decodificador
deteclado
...........
Teclado
Figura 3.5 Interfaz local.
La pantalla de cristal líquido es mapeada en memoria y es conectado a los buses que
entrega el submódulo de procesamiento y control. La pantalla de cristal líquido corresponde
al módulo AND491
I
El teclado por su parte es conectado a un decodiñcador de teclado matricial 74C922,
este decodificador tiene como entradas ocho líneas que corresponden a las 4 líneas de
columnas y a las 4 líneas de renglones del teclado; cuando una tecla es pulsada el
decodificador entrega un valor hexadecimal correspondiente a dicha tecla y activa una señal
3.4
'I
Capítulo 3
Desarrollo del hardware.
decodificador entrega un valor hexadecimal correspondiente a dicha tecla y activa una señal
que indica que hay un valor disponible en el decodificador. El teclado es conectado
directamente al puerto P1 del microcontrolador y puede ser atendido por verificación
constante o por interrupción. Figura 3.6.
FControlador
4
PI
1
I
,Decoder 4
14C922
disponible
Figura 3.6 Conexión de teclado.
3.2.5 Interfaz serie.
El módulo de control tiene la capacidad de comunicarse con una PC mediante el
canal serie propio del microcontrolador a través de los terminales RXD y TXD. Estos
terminales son conectados a una interfaz serie MAX232 fabricado por Maxim, para adecuar
'I
los niveles entre l T L y el estándar RS-232. Figura 3.7.
...................................................................
.
Figura 3.7 Diagrama de la interfaz serie.
3.2.6 Interfaz E/S digitales.
El módulo controlador cuenta con 7 canales de entrada y 7 canales de salida digitales
(canales O a 6, opcionales) implementados por un buffer 74HC244 y un latch 74HC373,
respectivamente. El octavo canal de ambos circuitos, es interconectado igual que en el caso
de la interfaz analógica, para el diagnóstico del submódulo. La interfaz de entrada puede
activar la interrupción NT1 para solicitar atención del microcontrolador. Tanto los canales
de entrada como los de salida se encuentran mapeados en memoria, Figura 3.8.
~
3.5
4
,
Capítulo 3
r--- 1
L
Desarrollo del hardware.
Buffer d e
entrada
Procesamiento
n
y control
I
Figura 3.8 Interfaz de E/S digitales.
3.2.7 Generadores de PWM.
El módulo de control también cuenta con tres generadores de PWM trifásicos
opcionales que son incluidos para que el módulo pueda ser fácilmente aplicable al control de
sistemas con inversores como en el caso del control de motores eléctricos. El diagrama a
bloques de los generadores de PWM se presenta en la Figura 3.9. El submódulo generador de
PWM, consta principalmente de un circuito HEF4752 (fabricado por Philips) que genera una
señal PWM trifásica, este circuito utiliza principalmente como entradas dos señales
cuadradas que representan la frecuencia y el voltaje de la señal modulada generada. Los
valores de voltaje y frecuencia de la señal generada varían de acuerdo a las frecuencias de las
señales aplicadas al circuito.
Para la generación de las frecuencias de control se utilizaron dos circuitos 8254,
conocidos como temporizadores programables de intervalos; cada circuito integrado cuenta
con tres contadores/temporizadores programables de 16 bits. Cada 8254 utiliza una señal de
reloj como entrada y el valor de las frecuencias generadas por cada temporizador depende del
valor de la frecuencia de la señal de entrada, y del valor de la cuenta programada en su
registro correspondiente. Esta capacidad para generar diferentes patrones de PWM permite
que el sistema de control pueda ser fácilmente utilizado en el control de motores eléctricos.
3.6
Capítulo 3
r w
O
Desarrollo del hardware.
Temporizador
programable
~.lG;en~~
Procesamiento
U
y control
n
Temporizador
programable
Frecuencias
de control
Figura 3.9 Diagrama a bloques de los generadores de PWM.
3.2.8 Fuentes de alimentación.
Los diferentes componentes del módulo de procesamiento requieren de los siguientes
voltajes de alimentación: 2 5 y 2 15 Volts. La fuente de alimentación del módulo se
desarrolló de acuerdo ai siguiente diagrama.
Regulador
Transf. 1
_I
-
127 VA,
Transf. 2
u
Regulador
I -
Figura 3.10 Fuente de alimentación del módulo.
3.3 Mapa de memoria.
El microcontrolador maneja en forma separada la memoria de programas y la memoria
de datos El acceso a la memoria de programas sólo permite realizar lecturas y tiene una
capacidad máxima de 64KB que corresponden a 16 líneas de direcciones (OOOOH a FFFFH).
El acceso a la memoria de programas se realiza mediante
-la línea PSEN mientras que para el
acceso a la memoria de datos se usan las líneas R ü y WR del microcontrolador, Figura 3 1 1
Por lo tanto se pueden direccionar 128KFi de memoria y sólo en el espacio de memoria RAM
pueden ser asignados los diferentes componentes de hardware del sistema.
~
3.1
Capítulo 3
Desarrollo del hardware.
memoria
memoria
OOOOH
Figura 3.11 Espacio de memoria externa.
3.3.1 Direccionamiento de los submódulos.
Para la asignación de cada uno de los componentes del hardware al mapa de memoria
del módulo de procesamiento, se consideraron los siguientes elementos:
1. Pantalla de cristal líquido.
2. Teclado y decodificador de teclado.
3 . Dos temporizadores programables, correspondientes a los tres submódulos
generadores de PWM.
4. Convertidor de analógico a digital.
5. Convertidor de digital a analógico.
6. Buffer de entradas digitales.
7. Latch de salidas digitales.
8 . MemoriaRAM
9. Memoria ROM
3.8
Capítulo 3
Desarrollo del hardware.
La asignación de cada uno de los componentes de hardware a un espacio fisico dentro
del mapa de memoria, se realizó de acuerdo a la Figura 3 12 La interfaz serie y el
decodificador de teclado se conectan directamente a los puertos del microcontrolador y no
son presentados en el mapa de memoria
TFFH
SfA
FFFFH
OH
CAD
Sin
asigna1
CDA
77FFn
7000~
6FFFH
6800~
Entrada digital 67FFH
6000H
Salida dig~ial 5FFFH
5800~
Exhibidor LCD 57FW
5000H
Temponzador 2 4 F m
4800~
remponzador 1 47FFH
4000H
3FFFH
Memona RAM
MOOH
~
Memoria
de
programas
i3FFH
nonnH
i000H
Memoria ROM
Figura 3.12 Direccionamíento de los submódulos.
3.4 Diagrama eléctrico del circuito.
Con la elección de los componentes de hardware y su asignación al mapa de puertos y
de memoria se realizó el diseño de detalle del módulo controlador y finalmente se impiementó
conforme a los diagramas eléctricos de las siguientes hojas. La descripción de los conectores
se presenta en el apéndice A
39
I
u
74HC08
I
. . . . .. ..
U22A
A15
1
74HCO4
J I
CW Y D D
ISELO
ISEL1
í 11
I l l
>
I
Y
"7
r.1
Í
OY M 2
OBMi
OBM2
.J.Z.
- c
n
c
n
L
*
P
P
I
0
o
P
N-
<
<
_I-
-
I $1 I
4
w
.-m
JS
1 1 )
>
IAQ 1 1 1
>
A2
- 1
J7
I
I
7
26
-x
<
"2:
<INTO
- 1
1 1 1
k
741
4 . 7°F
OP490
ZL
-
22°F
27K
II
m
k
:(
r l c
m-
oo
<o
o
P N
I:
4
N
N
N
N
o
D
UI
<
l
0
c
Hoia 5 de :
Capítulo 4.
Desarrollo del software.
4.1 Organización del software.
El nivel de software de los sistemas basados en procesadores se divide generalmente
en dos grandes grupos: el software operativo y el software de aplicación. El software
operativo tiene como función manejar y administrar los recursos con los que cuenta el CPU,
sirve como interfaz entre el usuario y el hardware del sistema. El software operativo
constituye el primer estrato en el software por encima del núcleo del hardware. Mientras que
el software de aplicación o software de usuario permite al sistema realizar una tarea
especifica; el software de aplicación es controlado por el software operativo y hace uso de
las prestaciones de este último para realizar sus funciones.
Figura 4.1. Relación entre los niveles de software.
En este capítulo se presenta en primer lugar el desarrollo del software operativo y
después el desarrollo del software de aplicación. Ambos tipos de software se desarrollaron de
una forma estructurada en base a las tareas que realizan.
4.2 Desarrollo del software operativo.
El software operativo desarrollado consiste en un sistema de procesamiento
concurrente, capaz de realizar procesamiento en tiempo real. El desarrollo del software
operativo se encuentra estrechamente ligado con el software de aplicación, ya que es
necesario cumplir los requerimientos de procesamiento en tiempo real de la aplicación. Para
cumplir con los requisitos de tiempo el software operativo debe evitar sobre carga en el
procesamiento manteniendo una estructura simple que requiera de poco tiempo de
procesador.
4.1
Capítulo 4
Desarrollo del software.
4.2.1 Núcleo del software operativo.
El núcleo del software operativo es el estrato más bajo en el software del
sistema desarrollado y se encarga de realizar las funciones siguientes:
1.
2.
3.
4.
Inicialización del sistema.
Gestión de procesos.
Gestión de interrupciones.
Manejo del hardware.
Estas funciones se desarrollaron e implementaron en el software operativo ya sea
como rutinas encargadas de realizar alguna actividad, o como una política que define la
forma en que deben manejarse cada uno de los puntos anteriores.
4.3 Inicialización del sistema.
Este servicio se pone en marcha cada vez que se inicia o reinicia el módulo
controlador, tiene como finalidad inicializar los modos de operación del hardware del
sistema, tanto del CPU como de sus periféricos. Inicializa también las estructuras y tablas de
datos necesarios para el sistema hardware/software y establece una configuración inicial del
sistema y entrega el CPU a un proceso inicial. El diagrama de flujo de la Figura 4.2 muestra
la secuencia de pasos de la inicialización del sistema.
7
Inicializa
Generadores
de PWM
Pantalla LCD
Inicializa
Inicializa
Prccesos
Inicializa filas
de procesas
Inicializa
Convertidores
Figura 4.2. Inicialización del sistema.
4.4 Gestión de procesos.
La gestión de procesos tiene como objetivo distribuir y asignar los recursos de
hardware sobre cada uno de los procesos de software del sistema. Determina las políticas y la
forma de manejar los procesos, plantea también una estructura de los procesos y caracteriza
la forma de manejar el resto de los elementos de software.
4.2
Capítulo 4
Desarrollo del software.
4.4.1 Elementos del software.
A continuación se realiza una descripción de los tipos de elementos que componen el
software de aplicación. A la unidad funcional del software de aplicación se le denomina
proceso y dentro del desarrollo del sistema se define como un conjunto de líneas de código
que realizan alguna función, tiene asignada una pila de memoria interna del
microcontrolador, y un espacio de RAM externa que almacena el contexto del propio
proceso. Por lo tanto un proceso es una unidad de software, que estando en ejecución, puede
abandonar el CPU y retomarlo, en un momento dado, sin que aparentemente nunca hubiera
sucedido esto.
Algunos procesos de software requieren llamar a rutinas encargadas de realizar cierta
función; estas rutinas a su vez pueden llamar a otras subrutinas. Como la pila asignada a cada
proceso es limitada debe cuidarse la cantidad de llamadas anidadas existentes durante la
ejecución de un proceso, (ver apartado 4.4.6). Para tal efecto se distinguen entre dos tipos
de subrutinas:
Subrutina de nivel O. Es una subrutina que no hace ningún llamado a ninguna otra
subrutina.
Subrutina de nivel 1. Subrutina que incluye una llamada a una subrutina de nivel O.
Una subrutina de este nivel puede llamar a una rutina del mismo nivel, sólo si se
deshabilitan las interrupciones durante la ejecución de la subrutina llamada.
4.4.2 Elementos en la gestión de procesos.
La gestión de procesos tiene como finalidad administrar y controlar cada uno de los
procesos que son ejecutados por d procesador. Responde a un conjunto de herramientas que
permiten al sistema operar adecuadamente y que van desde la inicialización de los procesos
(tablas de procesos, pilas de procesos, etc.) hasta las políticas que rigen el manejo de los
procesos. La gestión de procesos se compone principalmente por los siguientes elementos:
Planificador.
Manejo del contexto.
Comunicación y sincronización.
4.4.3 Planificador.
El planificador es la parte del software operativo que se encarga mediante cierta
política de asignar el recurso del procesador, a los procesos de software del sistema. En este
trabajo se planteó una política de multinivel de colas con dos niveles de cola, prioridad alta
y prioridad baja.
4.3
Capítulo 4
Desarrollo del software.
En esta política los tipos de trabajos que se realizan son clasificados de acuerdo a su
prioridad dentro de la operación del sistema. Cada proceso es asignado en la cola
correspondiente conforme a sus atributos. Figura 4.3
.-
Cola de prioridad 1
Procesos activos .,
.Cola de prioridad O 7
Figura 4.3. Política de multinivel de colas.
Cada cola es a su vez arbitrada mediante una política de round robin o circuito cíclico
con asignación de “cuantos” de tiempo de procesador a cada cola de acuerdo su nivel de
prioridad, Figura 4.4. A la cola de prioridad alta se asignan 4 ms y 2 ms a la cola de
prioridad baja. En la cola de prioridad alta se concentran los procesos relacionados con el
control de las plantas. La mayor asignación de tiempo a los procesos de prioridad alta
garantiza la terminación de los algoritmos PID en un lapso de tiempo finito y menor a las
limitantes de tiempo determinadas por el periodo de muestreo.
1
2
3
4
5
Figura 4.4. Planificador de asignación cíclica.
El planificador implementado lleva a cabo su función de acuerdo a lo siguiente: al
inicializarse el sistema, se cargan en las colas de procesos el número de cada una de las
tareas que al inicio de la operación deban encontrarse activos. Después de que el sistema es
inicializado el planificador es el siguiente código que ejecuta el procesador. Las condiciones
iniciales establecidas en la inicialización, permiten que los procesos formados en la cola de
prioridad alta sean los poseedores del CPU durante los primeros 4 ms. Durante los siguientes
2 ms el CPU se asigna a la cola de prioridad O y nuevamente los procesos de prioridad 1 son
preferentes en los siguientes de 4 ms. Esto conforma un ciclo de 10 ms de acuerdo a lo
requerido por el periodo de muestreo del sistema.
El planificador es activado por la interrupción del timer TO del microcontrolador, el
cual está encargado de medir los tiempos de asignación del CPU. El planificador es también
activado por los procesos de software cuando estos caen en algunas de las siguientes
condiciones:
4.4
Capítulo 4
Desarrollo del software.
1. El proceso termina su ejecución.
2. El proceso detecta alguna condición de bloqueo.
En el primer caso el planificador verifica el estado del proceso activo o inactivo. Si el
proceso continua activo es nuevamente formado en la cola de procesos de acuerdo a su
prioridad y si está inactivo simplemente no se vuelve a formar en la cola de procesos. En el
segundo caso, cuando un proceso detecta una condición de bloqueo inmediatamente se
invoca al planificador para que asigne el CPU a un nuevo proceso.
A un proceso se le asigna el CPU cuando es el siguiente elemento en la FIFO de
procesos que tiene preferencia en el momento de la asignación, para lo cual se carga el
contexto de dicho proceso. En caso de no existir ningún proceso en las colas de procesos
entonces por excepción se carga un proceso correspondiente al menú del sistema.
En la Figura 4.5 se muestra las preferencias de asignación del procesador entre las
colas de procesos. Un ejemplo de la operación del planificador se muestra en la misma
figura, se tienen activos los procesos PI, P2 y P3 de prioridad uno y los procesos P4 y PS de
prioridad cero formados en sus respectivas colas. En los primeros 4 ms se ejecutan los
procesos de prioridad uno de acuerdo a la asignación de preferencias, P1, P2 y P3 son los
primeros procesos que se ejecutan, P1 y P2 terminan su operación y son desactivados.
Durante la ejecución de P3 se presenta el cambio de preferencias y sale de ejecución en
inconcluso. Durante los siguientes 2 ms la preferencia es para los procesos de prioridad O,
aquí se le asigna a P4 el CPU durante este lapso, pero lo abandona quedando también
inconcluso y se forma al final de la cola O. En la cola de prioridad 1 el único proceso que se
mantiene activo es P3 por lo que retoma el CPU para terminar su operación y desactivarse.
Si la cola preferente se encuentra vacía entonces se asigna el CPU a los procesos de la otra
cola (PS toma el CPU durante la preferencia de la cola 1).
Preferencias sobre el procesador
Cola I
Cola0
.......................................................
.......................................................
1.......................................................
O
.....................................................
10 ms
6
4
Ejemplo.
I
........................................
...........................
Figura 4.5. Diagrama de flujo del planificador.
4.5
Capítulo 4
Desarrollo del software.
4.4.4 Manejo de las colas de procesos.
Los procesos activos son manejados por dos filas de acuerdo a lo que se explicó en el
planificador. A cada proceso se le asigna una prioridad de acuerdo a su importancia dentro
de la operación del sistema y es formado en la fila de procesos que le corresponde. A cada
proceso se le asigna en cierto instante el uso del procesador, si al terminar el tiempo asignado
al proceso este no ha concluido, el proceso es formado nuevamente al final de la fila
correspondiente. Cada cola de procesos es manejada por software como una memoria FIFO
que almacena el número de los procesos, de está forma se garantiza que cada proceso podrá
tomar el CPU en algún momento dado.
4.4.5 Contexto de los procesos.
A cada proceso se le asigna un tiempo finito de procesador, si al cabo de dicho
tiempo el proceso no concluye con su cálculo, el sistema respalda toda la información
requerida por el proceso para su buen funcionamiento. Esta información que corresponde a
los registros internos del CPU es duplicada en memoria externa, en un lugar previamente
designado para cada proceso. Cuando el proceso tiene otra vez el turno con el CPU el
contexto es restablecido, es decir todos los registros invoiucrados en la ejecución del proceso
son nuevamente cargados y se devuelve el procesador a dicho proceso. La distribución de los
registros en cada contexto es de acuerdo a la siguiente tabla.
Tabla 4.1. Disposición de registros en el espacio de contexto en RAM externa.
Para el manejo del contexto se desarrollaron las siguientes funciones:
Salvar contexto.
Cargar contexto.
Restablecer contexto.
4.4.5.1 Salvar contexto.
Esta función es utilizada cuando un proceso que no ha terminado su ejecución debe
abandonar el CPU. Como el proceso se mantiene activo y no ha terminado de desarrollar su
4.6
Desarrollo del software.
Capítulo 4
función, debe almacenarse el estado en el que se encuentra el CPU al momento de que el
proceso lo abandona.
4.4.5.2 Cargar contexto.
Un proceso que abandonó el CPU manteniéndose activo está listo para que le sea
reasignado el CPU, una vez que su contexto ha sido restablecido en los registros internos del
procesador. Cuando el proceso retoma el CPU, continua su operación en el punto en que lo
dejo. Básicamente el manejo correcto del contexto es lo que permite la ejecución concurrente
de los procesos.
Las transferencias entre CPU y memoria realizadas en las operaciones de cargar y
salvar contexto, se realizan de acuerdo a la correspondencia mostrada en la Tabla 4.1.
4.4.5.3 Restablece contexto.
Cuando un proceso termina y se mantiene aun activo, el SP apunta a una dirección
que no corresponde a la dirección de inicio del mismo. Por lo tanto debe ejecutarse una
rutina al final del código del proceso que restablece la dirección de inicio de cada proceso de
la pila y el SP apuntando a dicha dirección; así en la siguiente ocasión que se requiera del
proceso este puede ser utilizado sin mayor problema.
4.4.6 Pila de los procesos.
Otra parte importante dentro del contexto corresponde a las pilas de RAM interna de
los procesos. Dentro de la memoria interna direccionable directamente son asignados
diferentes bloques a cada proceso. Cada bloque de memoria es utilizado como stack por cada
proceso.
Cada pila de stack consta de 8 bytes, que nos permiten almacenar 4 direcciones de 16
bits. Durante la inicialización del sistema la primera dirección de cada stack es cargada con
la dirección de inicio del núcleo del software operativo y la segunda dirección es cargada con
la dirección de inicio del proceso propietario del stack. De igual forma se carga en el
contexto de cada proceso (en la celda del SP), la dirección de memoria interna en la cual se
encuentra la dirección de inicio de cada proceso. Con esto se consigue otorgar el CPU a cada
proceso.
Como la pila de memoria de cada proceso se encuentra limitada a 4 direcciones de 16
bits y 2 bytes son ocupados por la dirección de inicio del proceso en forma permanente, sólo
se tiene espacio para otras tres direcciones. Esta característica obliga a que las rutinas
llamadas por los procesos se desarrollen evitando hacer uso de rutinas anidadas. Vea
apartado 4.4.1.
4.7
Capítulo 4
Desarrollo del software.
4.5 Sincronización y comunicación entre procesos.
Algunos procesos requieren como entradas, las salidas de otros procesos, o bien
requieren de cierto evento; por lo que su ejecución debe ser detenida hasta que se presenten
las condiciones necesarias para que sean ejecutados, Lo cual se logra mediante la
implementación de semáforos y buzones.
A cada proceso se le dan capacidades de verificación sobre sus elementos de
sincronía para que decidan su estado, es decir, si continua con su ejecución o entrega el CPU
por detectarse bloqueado. Cada proceso verifica al inicio de su ejecución sus buzones ylo
sus semáforos, si el proceso detecta alguna condición de bloqueo, el proceso abandona el
CPU y se restablecen el SP y su dirección de inicio en su stack, pero no salva el contexto. El
proceso se mantiene en la FIFO correspondiente hasta que se le asigna nuevamente el
procesador.
4.6 Gestión de interrupciones.
Las interrupciones son eventos de hardware que cambian el flujo normal de un
programa que se encuentra en ejecución y permiten sincronizar a los dispositivos de
hardware con el procesador.
En el control de las interrupciones del sistema se consideraron los siguientes
aspectos:
Ninguna interrupción en proceso puede ser interrumpida
Algunos segmentos de código no pueden ser interrumpidos.
Por lo que respecta al primero de los puntos anteriores, se definen en los registros
correspondientes del microcontrolador las interrupciones como prioridad alta, de esta forma
cuando se presente una interrupción definida por hardware con mayor prioridad no pueden
interrumpir ninguna interrupción que se encuentre en ejecución. En el segundo punto se
detecta dentro cada ente de código las operaciones críticas, cuya interrupción podría causar
errores en la ejecución del sistema. Antes de iniciar una operación crítica se deshabilitan las
interrupciones en forma global en el sistema, para habilitarlas una vez concluido el punto
crítico.
En cualquiera de los dos casos descritos debe tenerse en cuenta, que si el tiempo en
que no puede actuar ninguna otra interrupción no es adecuado, el sistema puede tener un
funcionamiento erróneo; por lo tanto la deshabilitación de las interrupciones y su atención
debe ser rápida.
4.6.1 Descripción de las interrupciones usadas.
En el sistema se utilizaron las siguientes interrupciones:
Interrupción timer TO.
4.8
Capítulo 4
Desarrollo del software.
-
Interrupción INTO
La interrupción del timer TO es utilizada por el software operativo para generar 1%
bases de tiempo que permiten al planificador reasignar el CPU entre los procesos que se
mantienen activos. La interrupción del timer TO es activada al vencerse cierta cuenta
programada. Estas interrupciones permiten controlar un semáforo contador que sincroniza
las tareas de control con el periodo de muestre0 marcado en el apartado iError!Vínculo no
válido.
__
La interrupción INTO corresponde al circuito de conversión analógico/digital, la
atención a esta interrupción consiste en leer el canal analógico que produce la interrupción e
iniciar la conversión del siguiente canal si corresponde. Los valores de conversión son
escritos en el buzón correspondiente a cada canal de entrada, para que de ahí sean leídos por
los procesos que los requieran.
4.7 Manejo del hardware.
Cada dispositivo de hardware utilizado en el sistema tiene una rutina de software
asociada; cada rutina constituye el controlador de un dispositivo. El controlador permite
accesar a cada uno de los registros de los dispositivos para establecer modos de operación y
ejecutar comandos. Estas rutinas de control sobre cada dispositivo pueden ser realizadas a
nivel de usuario y escritas como un programa de aplicación.
El manejo del hardware requiere de una planeación en cuanto al modo en que los
recursos son utilizados por cada aplicación de software. Básicamente esta planeación se
resume en identificar si los elementos de hardware son usados en forma exclusiva o son
elementos que son compartidos por varios procesos. En el caso de ser elementos de uso
compartido debe establecerse alguna técnica que permita el uso del recurso por todos los
elementos que lo requieren.
4.7.1 Memoria.
El manejo de memoria RAM del sistema se realizó de acuerdo a una asignación
estática de memoria particionada. Es decir, se hace una planeación fuera de línea que
consiste en dividir en bloques la memoria y asignar cada bloque de acuerdo a los
requerimientos de cada recurso de software. Por lo tanto debe identificarse la cantidad de
memoria que requiere cada proceso y cada subrutina, y asignárseles localidades de memoria
bien identificadas que sólo ellos pueden accesar.
En el caso de que una mismo espacio de memoria deba ser utilizado por dos o más
recursos de software, entonces se utilizan algunas técnicas que garanticen que dicho espacio
de memoria no puede ser accesado al “mismo tiempo” por dos programas que puedan
modificar el contenido de dicha memoria. Por ejemplo el uso de semáforos y buzones o
deshabilitación de interrupciones, permite la exclusión mutua entre procesos para evitar
errores.
4.9
Desarrollo del software.
Capitulo 4
4.7.2. Manejo del procesador.
El procesador ejecuta únicamente software operativo o software de aplicación. El
software de aplicación controla el acceso de los procesos al CPU de acuerdo a la política de
planificación descrita anteriormente. Dicho de otro modo el procesador es manejado por
unidades de tiempo, en cierto intervalo de tiempo es asignado a ejecutar los procesos que se
encuentran en la FIFO preferente durante ese intervalo si la FIFO se encuentra vacía,
entonces el CPU busca un proceso dentro de la FIFO no preferente. El manejo del
procesador corresponde al manejo que realiza el planificador sobre él, descrito en el
apartado 4.4.3.
4.7.3 Manejo del timer.
El control de la temporización del sistema es realizado por medio del timer TO del
microcontrolador. El timer TO se encuentra programado como temporizador de 16 bits, y
activa una interrupción cada vez que la cuenta ha sido terminada. En la inicialización el
timer se programa con cierta cuenta con la parte baja del timer con ceros. Cada vez que el
timer termina su cuenta sólo el registro alto del timer THL es programado, con esto se
garantiza que si un proceso por alguna circunstancia no cede el control del CPU al
presentarse la interrupción TO por haber desactivado las interrupciones, al activar
nuevamente las interrupciones y al atender TO, simplemente el tiempo asignado al siguiente
proceso se reduce, evitando así un desplazamiento de tiempo en la ejecución del sistema.
4.7.4 Pantalla de cristal liquido.
En el manejo de la pantalla se desarrollaron tres rutinas:
La principal rutina utilizada permite desplegar una cadena de 16 caracteres
arreglados en dos renglones de 8 caracteres cada renglón. Esta rutina se llama
DISP y recibe como entrada una dirección de memoria en ROM donde se
almacena dicha cadena. La cadena que se despliega debe estar estructurada de
acuerdo al siguiente formato:
“Cadena I”,RC,SL,
“Cadena 2”,CERO
La “Cadena 1” y “Cadena 2” deben ser de máximo 8 caracteres cada una, los
símbolos RC (regreso de c&o) y SL (salto de línea), corresponden a los códigos
ASCII de estos mismos caracteres y el valor CERO determina el final de la rutina
DISP. Se pueden desplegar mensajes dinámicos almacenando en RAM externa la
cadena a desplegar, de acuerdo al formato anterior, en la dirección OOOOh e
iniciando la rutina DISP en la etiqueta DISPl.
La rutina DESCAR permite presentar un caracter a la vez en la dirección actual de
la pantalla, el código a desplegar se coloca en el acumulador antes de ser llamada
4.10
Capítulo 4
Desarrollo del software.
la rutina. Una vez desplegado el caracter se incrementa la dirección donde se
presentará el cursor, como operación implícita del hardware de la pantalla.
0
DESCOM es una rutina que permite a la pantalla ejecutar comandos cuando lo
requiere; esta rutina recibe el número del comando en el acumulador. Otra rutina
desarrollada para el manejo de la pantalla es CLRDIS, esta rutina limpia la
pantalla y la memoria del módulo, colocando la dirección de despliegue del
siguiente caracter en el origen.
4.7.5 Interfaces de E/S analógicas.
En el manejo de las interfaces de entrada se desarrollaron por separado las rutinas que
manejan tanto el bloque de entrada (convertidor analógico/digital) como el bloque de salidas
(convertidor digital/analógico).
El manejo de la interfaz de entradas analógicas se presento en el apartado 4.6.1. En
la interfaz de salida se desarrolló una subrutina que recibe como entrada los valores digitales
a convertir en el buzón correspondiente a cada canal. La rutina lee el valor del buzón lo
marca como vacio e inicia la conversión en el siguiente canal.
4.8 Software de aplicación.
El software de aplicación configura al sistema de procesamiento como controlador de
procesos físicos, es manipulado por el software operativo y hace uso de este para accesar a
los recursos de hardware del sistema. Algunas de las tareas principales que debe realizar el
sistema son divididas en pequeños actividades individuales, las cuales pueden conformarse
como procesos de software o como subrutinas que son llamadas por los procesos. Un
proceso de software a su vez puede estar constituido por una o varias actividades, cada
actividad también puede estar conformada por otro grupo de subactividades. La forma en que
se dividen cada unidad de software, ya sea proceso o subrutina, tarea o actividad, se realiza
para obtener una estructura clara, cuyo primer objetivo es permitir al sistema global
mantener un funcionamiento adecuado y que facilite el desarrollo y mantenimiento del
código.
4.8.1 Descripción de las tareas de aplicación.
Las tareas de aplicación permiten al controlador desarrollar sus funciones, las tareas
implementadas como software de aplicación son las siguientes:
El control de los procesos fisicos.
La interfaz al usuario.
La comunicación serie.
4.1 1
Desarrollo del software.
Capítulo 4
4.8.2 Control de los procesos físicos.
El control de los procesos físicos se realiza de acuerdo a una secuencia lógica de
pasos. Esta secuencia de pasos se encuentra constituida de acuerdo al algoritmo de control de
control de la Figura 4.6.
En el primer paso se establecen los parámetros: proporcional, integral y derivativo
necesarios para el algoritmo de control PID, así como el punto de operación deseado o set
point. A partir de este punto la operación del algoritmo PID se hace cíclicamente, esto es: se
hace la adquisición de la variable controlada; se establece el error de operación y se ejecuta
el algoritmo de control; para que finalmente el resultado obtenido por el algoritmo PID sea
escrito como comando de control al proceso físico.
parhetrns de
de l a sena1
I
I l*l
Determinar
i
Ejecucion
Figura 4.6. Algoritmo de control de procesos físicos.
Con la ejecución cíclica, de los últimos 4 pasos, se logra mantener a cada proceso
físico dentro de las condiciones de operación deseadas. Cabe destacar que es posible realizar
cambios en línea a todos los parámetros del controlador a través de las interfaces al sistema,
lo que significa que es posible realizar cambios dinámicos en el punto de referencia y en
todos los demás parámetros para facilitar la sintonización del controlador.
4.8.2.1 Descripción de los módulos de control de los procesos físicos.
De acuerdo a la Figura 4.6 el ciclo representado por los últimos 4 bloques permiten
mantener una regulación constante. Los bloques de entrada y salida corresponden
4.12
Capítulo 4
Desarrollo del software.
básicamente al manejo de los convertidores A/D y DIA cuyo manejo corresponde al software
operativo. Vea apartado 4.6.1.
La tarea de control de los procesos físicos a nivel de proceso de usuario fue limitada a
las siguientes dos actividades: al cálculo. del error entre el punto de referencia y la variable
controlada y a la ejecución del algoritmo de control PID.
Un algoritmo PID se puede escribir de acuerdo a lo siguiente [Warwick]:
m(t) = K,e(t) + K,T, de(t) +
dt
T,
[e(t)dt
En el dominio del tiempo o en términos de Laplace en la siguiente ecuación.
-
Discretizando la función Y reagrupando términos entonces se puede reescribir el
algoritmo PID de la siguiente forma:
M,
= K,[A
e,, +B.e,., +C.!,.,]
T
De acuerdo a lo anterior se obtiene una simplificación en el número de operaciones
aritméticas al considerar los parámetros del algoritmo como constantes en el sistema.
4.8.3 lnterfaz al usuario.
La interfaz con el usuario permite la comunicación usuarioisistema. la interfaz tiene
el objetivo de permitir al usuario establecer. modificar y visualizar datos importantes para la
operación del sistema. La interfaz al usuario hace uso de la pantalla de cristal líquido y del
teclado del módulo controlador: el funcionamiento de la interfaz se basa en el uso de menúes
y submenúes los cuales guían al usuario a traves de las opciones válidas: las opciones
elegidas son introducidas a traves del teclado y se encuentran validadas de tal forma que
alguna selección incorrecta es detectada e ignorada. El menú principal se hace presente en el
sistema después de inicializar la operación del controlador y se presenta en la Figura 4.7.
4.13
Desarrollo del software.
Capitulo 4
Figura 4.7. Menú principal del sistema.
El menú principal del sistema da el acceso a cada una de las siguientes opciones:
Diagnóstico del controlador.
Opciones de los procesos físicos.
Despliegue de variables.
Información general del sistema.
A continuación se presenta una descripción de las tres primeras opciones.
4.8.3.1 Diagnóstico del hardware del controlador.
La opción marcada como O permite realizar un diagnóstico al módulo controlador
sobre su propio hardware. Dicha prueba se realiza sobre los siguientes elementos:
Memoria RAM,
Memoria ROM,
EíS analógicas y
EíS digitales.
La memoria RAM externa es probada mediante la escritura de cierto dato conocido
en un bloque de 256 bytes. Posteriormente el bloque es leído byte por byte y es comparado
con el dato escrito inicialmente, si una de estas comparaciones resulta una desigualdad
entonces se termina la prueba de RAM externa y se almacena el resultado de la prueba como
error de memoria RAM.
La prueba de memoria ROM se lleva de forma similar que la prueba de RAM, con la
diferencia de que el bloque sobre el que se realiza la comprobación ya contiene la
información a probar.
La interfaz analógica es probada mediante los dos convertidores, primero se escribe
un valor en el canal 3 del convertidor digitahnalógico, la salida de este canal se encuentra
conectado con el canal 3 del convertidor analógicoídigital. A continuación se inicia una
conversión en el canal 3 del convertidor y el valor obtenido de la conversión es comparado
con el valor escrito originalmente en el CDA. Si la comparación de los datos se encuentra
dentro de un margen de error de 2 bits se realiza el mismo proceso de comparación para un
nuevo valor. En caso de que el error exceda a dos bits la prueba de la interfaz analógica es
terminada y se registra la condición de error para la interfaz. En la comparación se lleva a
4.14
Capítulo 4
Desarrollo del software.
cabo un enmascaramiento de los 2 bits menos Significativos para garantizar que el
funcionamiento de ambos convertidores es correcto.
El último módulo probado corresponde a la interfaz digital y es probado de la misma
forma que la interfaz analógica. El canal 7 del módulo de salida es conectado con el canal 7
del módulo de entrada.
Los resultados de las pruebas individuales se anotan en un registro en memoria
interna del microcontrolador, que es direccionable bit a bit y corresponde a la dirección 24H,
cada uno de los bits del nible bajo de este byte es designado para almacenar el resultado de
cada prueba. Cuando es detectado un error en alguno de los módulos bajo prueba, se pone
entonces a uno el bit correspondiente al módulo bajo prueba. La asignación de los bits se
realiza de acuerdo al siguiente formato:
“Sinasignar”
iA ID RO RA
ID: Interfaz Digital
Figura 4.8. Registro de diagnóstico del hardware.
Una vez terminadas las pruebas, se presenta en pantalla el valor del registro 24H en
formato hexadecimal, salvo que no se hayan detectado errores, en cuyo caso se presenta el
mensaje “NO SE DETECTARON ERRORES”.
4.8.3.2 Opciones de los procesos.
Esta opción del menú principal permite al usuario actuar sobre los parámetros de los
procesos físicos. Las opciones disponibles sobre los procesos son las siguientes:
Visualizar parámetros. Esta prueba permite ver los parámetros de control de cada
proceso.
Modificar parámetros. Modifica los parámetros de control de cada proceso.
Alta de procesos. Inicia la operación de control sobre el proceso físico
seleccionado.
Baja de procesos. Desactiva el control en el proceso físico controlado.
4.8.3.3 Despliegue de variables.
Esta opción permite al usuario monitorear el valor que está siendo leído en cada uno
de los canales de entrada analógica, los cuales corresponden a los valores en que se
encuentra cada planta. Cuando esta opción es activada entonces son leídos los buzones de
entrada de cada canal analógico y el valor almacenado en cada buzón es desplegado en su
valor porcentual en la pantalla de cristal líquido.
4.15
Desarrollo del software.
Capítulo 4
4.8.4 Interfaz de comunicación serial.
La interfaz de comunicación serie provee el usuario de una interfaz con el sistema a
través de una computadora personal. La interfaz serie permite las mismas opciones que la
interfaz local usuario/sistema.
La comunicación serie se realiza mediante un protocolo elemental de parada Y espera,
este pro to^^^^ permite el intercambio de información a través de asentimientos. Al inicio de
la operación en e] módulo controlador se activa el proceso encargado de la Comunicación. El
proceso de comunicación serial inicialmente monitorea constantemente el canal sene
verificando si se ha recibido un dato de inicio de comunicación, por su parte la interfaz en la
PC inicia la comunicación con el controlador mediante la transmisión inicial de un carácter
que permite establecer la comunicación. AI inicio, cuando el proceso serial en el controlador
recibe un byte verifica si es el correspondiente al de inicio, si no es el caso, este proceso se
mantiene en estado de espera para establecer comunicación. Como se mencionó
anteriormente la parte de la interfaz serie residente en la PC se encarga de iniciar la
comunicación con el controlador, cuando la PC manda el byte de inicio de comunicación y
este es recibido, entonces el controlador manda un byte de asentimiento indicando que está
listo para seguir con la comunicación.
El módulo controlador actúa como esclavo durante la comunicación, la PC envía un
conjunto de comandos que son recibidos, interpretados y ejecutados por el controlador. El
protocolo de parada y espera permite sincronizar la comunicación entre ambos módulos, los
módulos de software en ambos elementos de hardware se diseñaron de tal forma que
trabajaran conjuntamente:
En general, cuando algún elemento envía información al otro módulo espera una
confirmación de la recepción antes de enviar más información. En la contraparte cuando
alguno de los módulos recibe información, primero la procesa y después envía un
asentimiento por la información recibida.
El protocolo de parada y espera y el diseño de ambos módulos para una operación
interactiva y coordinada permite una comunicación eficiente y coordinada entre ambos
módulos sin problemas de sincronía.
4.8.5 Operaciones aritméticas de punto flotante.
En el desarrollo de algunas de las funciones del controlador es necesario realizar
operaciones aritméticas, como multiplicaciones y sumas, de tipo de punto flotante.
Para el desarrollo de estas rutinas se consideró un número de 24 bits, 1 bit de signo, 7
bits de exponente y 16 bits de fracción, de acuerdo con el formato de la Figura 4.9. En el
manejo de las operaciones de punto flotante se consideran fracciones normalizadas y con un
bias o desplazamiento en el exponente.
4.16
Desarrollo del software.
Capítulo 4
(;
Dirección:
Base0
{T\
Exponente
siglo:
o
=+
1=_
Fracción
Base2
Figura 4.9 Formato de punto flotante.
4.8.5.1 Adición y substracción.
La rutina desarrollada para la adición y substracción se basa en una misma estructura.
La substracción usa el complemento a dos del substraendo. Para iniciar la operación se
asume que cada operando consiste de fracciones normalizadas y de exponentes con
desplazamiento [Cavanagh].
El algoritmo de adiciódsubstracción se divide de acuerdo a los siguientes pasos:
1. Verificar si hay operandos iguales a O.
2. Alinear la fracción. La fracción del exponente menor es corrida a la derecha y se
incrementa el exponente hasta que ambos exponentes sean iguales.
3. Sumar o restar fracciones.
4. El exponente del resultado es igual al exponente mayor.
5. Normalizar el resultado.
6 . Checar subflujo o sobreflujo.
Los operandos implicados se encuentran representados de acuerdo a los siguientes
registros:
R1
=
el . sl
R l = e2
'
s2
. fl
. fz
Primer operando.
Segundo operando.
Donde e es el exponente, s presenta el signo,frepresenta la fracción.
En el funcionamiento de esta rutina se requiere establecer el primer operando en los
registros internos del microcontrolador R2, R3 y R4,el segundo operando se establece en los
operandos R5, R6 y R7,se llama a la rutina SUMA y entrega el resultado en los registros R2,
R3 y R4.Cada operando de entrada debe estar normalizado para obtener el resultado correcto
el cual se entregará también normalizado. Todos estos pasos de variables se realizan de
acuerdo al formato de la Figura 4.9.
4.17
Capítulo 4
Desarrollo del software.
4.8.5.2 Multiplicación.
desarrollada para la multiplicación se basa en el mktodo de
L~
sma/corrimiento; es ejecutada sobre dos operandos de punto flotante normalizados, que
usan un exponente con desplazamiento [Cavanagh]. La multiplicación se basa en los
siguientes cinco pasos:
1. Verifica operandos iguales a cero.
2. Determina el signo del producto.
3. Suma los exponentes.
4. Multiplica las fracciones.
5 . Resta el bias y normaliza el producto.
6. Checar subflujo o sobreflujo.
Los registros implicados son los mismos que en el caso de la suma. En las llamadas a
la rutina los operandos deben encontrarse normalizados, el primer operando se pasa a través
de los registros R2,R3 y R4 y el segundo operando se pasa a través de R5, R6 y R7. El
resultado se entrega normalizado en los registros R2, R3 y R4. Tanto en la suma como en la
multiplicación se verifica que no existan errores de flujo en las operaciones, en caso de que
esto suceda entonces se llama a una rutina que maneja este error. Esta rutina io que hace es
desactivar al proceso que genera el error y despliega un mensaje en la interfaz local
indicando el error y el número del proceso que generó el error.
4.9 Herramientas de generación de código.
Las herramientas utilizadas para la generación del código ejecutable en el módulo de
procesamiento concurrente fueron desarrolladas por Avocet Systems, y son las siguientes:
Programa ensamblador para 8051 y compatibles: AVSIM5I.
Programa ligador: A VLINK.
Programa convertidor a formato binario: HEXFORM.
Con esta serie de programas se genera el código ejecutable para el módulo
desarrollado, la secuencia y la sintaxis de cada programa se presenta en el siguiente punto.
4.9.1 Generación del código ejecutable.
El programa que incluye todo el código con el software operativo y con los
programas de aplicación se llama TESIS.ASA4 el cual es sometido al siguiente tratamiento
para obtener el código ejecutable en el módulo de procesamiento.
1. Se compila el programa con la siguiente sintaxis:
A V M C51 TESIS.ASM
2. Si no hay errores en el paso anterior
A VLINK TESIS=TESIS
4.18
Capítulo 4
Desarrollo del software.
3. Finalmente:
HEXFOR M TESIS= TESIS
Con estas secuencia de instrucciones se obtiene el archivo TESIS.BIN, el cual
contiene el código ejecutable para el microcontrolador. Este archivo es grabado directamente
en la memoria de programas del módulo de procesamiento.
4.10 Alta de los procesos de software de usuario.
Para agregar un proceso de software de usuario al sistema una vez comprobado el
funcionamiento correcto de dicho proceso, debe llevarse a cabo una serie de pasos para darlo
de alta dentro del sistema.
Dentro del archivo TESIS.ASM se encuentra la subrutina INIPROC, la cual se encarga
de inicializar los procesos de usuario dentro del sistema. En esta subrutina en la leyenda:
“TABLAS DE DIRECCIONES DE PROCESOS, debe incluirse el nombre del proceso que
nos interesa dar de alta añadiendo las siguientes líneas de código:
MOV DPTR,#(Nombre-del -Proceso)
MOV (Base_Pila(n)+2),DPL
MOV (Base-Pila(n)+3),DPH
La base de pila se refiere a la pila de memoria RAM interna designada para cada
proceso, aquí se relaciona el número del proceso con el nombre del proceso y se describe en
la Tabla 4.2.
Tabla 4.2 Relación entre pilas y procesos.
En el archivo TESIS.ASA4 se encuentra también la rutina INIDAT, la cual establece
los parámetros de control de los procesos internos, entre ellos los parámetros de las colas de
procesos activos. Aquí deben formarse los procesos activos que se integran en el sistema, se
disponen de ocho espacios para los procesos de prioridad O y ocho para prioridad 1. Aquí se
integra el número del proceso en alguna de las filas, por ejemplo:
Si se quiere integrar el proceso número 3 en la fila de prioridad O, entonces se debe
realizar lo siguiente:
4.19
Desarrollo del software.
Capítulo 4
En la cola de procesos FIFO O, se integra la línea MOV 30H,#03, después el
apuntador FWRO debe hacerse corresponder con la localidad donde se carga el último
proceso en la fila mediante la siguiente línea MOV FWRO,#30H.
Finalmente en la rutina SCSP se deben integrar unas líneas de c d i g o a partir de la
etiqueta SSPI, de acuerdo al siguiente formato:
MOV DPTR,#CPRO(n)
MOV RO,#(Base-Pila(n) + 2)
MOV A,#(BasePila(n) + 3)
MOV DPTR,#(Nombre-del -Proceso)
Con estas líneas se integra finalmente un proceso de usuario al sistema de
procesamiento concurrente. Por lo que el siguiente paso a realizar es la generación de código
de acuerdo a lo descrito en el punto 4.9.1. Con lo que se obtiene el proceso de usuario
inmerso en el módulo de procesamiento y listo para ser ejecutado.
4.20
Capítulo 5. Pruebas y Resultados.
5.1 Introducción.
En este capítulo se describen las pruebas realizadas a cada uno de los componentes
del sistema. Dentro de esta descripción se incluyen las pruebas de diseño del hardware y las
del software operativo, en las cuales se enfatizan las pruebas de gestión de procesos, la
sincronización y comunicación entre procesos y manejo de interrupciones.
Se presentan también las pruebas funcionales del sistema, realizadas para comprobar
el módulo de procesamiento concurrente en su operación como controlador. También se
verificaron el funcionamiento de las plantas simuladas en la PC y las interfaces al usuario en
la PC a través del canal serie y en la interfaz local.
En la Figura 5.1 se presenta la configuración general sobre la cual se llevaron a cabo
las pruebas del sistema, la cual está comprendida por los instrumentos utilizados para las
pruebas del sistema y los elementos que fueron probados.
r--
....................................................................................................................
lnterfaz de
acceso remoto
Instrumentos
! Tarjeta de adquisición
Módulo de
.............................................................................................................
procesamiento
Figura 5.1 Esquema de pruebas del sistema.
5.1
Pruebas y resultados.
Capitulo 5.
5.2 Pruebas de diseño del hardware.
Las pruebas de diseño permitieron detectar y corregir errores en la etapa de desarrollo
del hardware. Se realizaron sobre cada bloque funcional que conforma al módulo de
procesamiento. Dentro de estos submódulos funcionales la etapa de procesamiento y control
es la parte básica por lo que requirió de una verificación exhaustiva. El esquema de pruebas
para este submódulo se constituyó de acuerdo a la Figura 5.2, mediante este esquema y con
un programa de prueba se comprobó el funcionamiento de cada uno de los elementos de este
bloque. Se comprobaron las funciones de acceso a memoria ROM y RAM, direccionamiento
y reset.
iy?
direcciones ROMIRAb
b
Líneas de
control
t
Lógica de
control
Decodificador
de direcciones
control
4
Figura 5.2 Esquema de prueba de procesamiento y control.
El submódulo de procesamiento y control, una vez depurado sirvió como platafoma
para continuar con la implantación y prueba del resto de los submódulos que conforman el
sistema de procesamiento. Las pruebas de diseño realizadas sobre cada submódulo del
sistema se describen en la Tabla 5.1.
5.2
Pruebas y resultados.
Capitulo 5.
Submódulo
Comentarios
Pruebas
Procesamiento y Oscilador y reset.
control.
Acceso a memoria RAM.
Acceso a memoria ROM.
Direccionamiento.
Verificación del hardware de la Figura 5.2
bajo una subnitina de prueba y despliegue
de resultados a través del led de indicación
Interfaz local.
Teclado y decodificador. Prueba a través de conmutación de
Pantalla de cristal líquido. mensajes desplegados en la pantalla y
Interrupción.
seleccionados mediante el teclado.
Atención del teclado por interrupción.
Interfaz serie.
Circuito de comunicación. Transmisión de mensajes a una terminal
TransmisiónRecepción.
(PC) y recepción de comandos para
conmutación de mensajes desde la
terminal.
Interfaz digital.
Buffer de entrada.
Latch de salida.
Lectura de buffer controlado por teclado,
presentación del dato en la pantalla y en
latch de salida, para verificación manual.
Interfaz
analógica.
Convertidor A/D.
Convertidor D/A
Lectura de señales de entrada fijas y
conocidas, presentación en la pantalla y
escritura al CDA. Prueba mediante
comparación entre conversiones.
Generadores de
Timers programables 8254 Variación de frecuencias de control y en
Generadores HEF4752
las señales PWM generadas.
Fuente de
alimentación
Voltajes: 2 5 V
215 V
Prueba bajo carga máxima, niveles de
tensión 2 1% de error. Nivel de ruido I
50
mV.
5.3 Pruebas del software operativo.
Las pruebas realizadas sobre el software operativo se enfocaron a verificar el
procesamiento concurrente de las tareas de usuario y se orientaron también a comprobar el
funcionamiento de los elementos básicos del núcleo del software operativo. Las pruebas se
realizaron sobre:
La gestión de procesos, (planificador, manejo de contexto, colas de procesos)
Sincronización y comunicación entre procesos, y
El manejo de hardware e interrupciones.
5.3
Pruebas y resultados.
Capitulo 5.
5.3.1 Pruebas de gestión de procesos.
LB pruebas de gestión de procesos se realizaron para comprobar el Procesamiento
concurrente de los procesos de usuario, para lo cual es necesario también comprobar el
funcionamiento de los elementos involucrados en la gestión de procesos, como son: el
planificador, el manejo de contexto y las colas de procesos activos. Cada uno de estos
módulos fueron desarrollados, probados y depurados individualmente mediante el simulador
del microcontrolador Avsim5 1.
La comprobación de la correcta gestión de procesos se hace a través de un conjunto
de procesos de usuario que permiten determinar si se lleva a cabo el procesamiento
"simultáneo" de los procesos; con lo cual también se comprueba que la implementación de la
gestión de procesos ha sido adecuada.
La prueba de concurrencia del sistema se realizó primero a nivel de simulación con
dos procesos (Figura 5.3). Un proceso presentaba dos mensajes distintos en memoria interna
y los conmutaba en intervalos de tiempo iguales y el segundo proceso simulaba una
transmisión del contenido del acumulador a través del canal serie. Los procesos fueron
activos con prioridad 1 y prioridad O respectivamente.
I
Proc 1
I
zri
Espera
Inc. Acc
Espera
Figura 5.3 Procesos de prueba de la concurrencia.
Esta misma prueba se realizó en el módulo real con los mensajes presentados en la
pantalla LCD y con un intervalo entre conmutaciones de 1 s, mientras que la transmisión
serie se realizaba hacia una PC que desplegaba el dato recibido, de acuerdo a la Figura 5.4.
5.4
Capitulo 5.
pruebas y resultados.
-*
Despliega
dato recibido
Módulo
Controlador
-Pantalla: Conmutación de
mensajes.
PC: Terminal
Figura 5.4 Esquema de prueba de concurrencia.
Con ambas pruebas se verificó en primer lugar: la ejecución concurrente de los
procesos de software dentro del sistema. Y por otra parte se verificó también que ei
funcionamiento de las rutinas de software de la gestión de procesos: el planificador, el
manejo del contexto y el manejo de las filas de procesos, se llevó a cabo en forma correcta.
De esta prueba se destaca como resultado el hecho de que la política elegida para la
administración de los procesos funcionó adecuadamente.
5.3.2 Pruebas de sincronización y comunicación.
El objetivo de esta prueba fue verificar ia filosofía de manejo de los elementos de
sincronización y comunicación entre los procesos, la cual se desarrolló a partir del manejo de
semáforos. Esta prueba se realizó en base a dos procesos de acuerdo a lo siguiente:
Un proceso manejando dos mensajes como el descrito en el inciso 5.3.1, pero que
espera por un semáforo para empezar su funcionamiento, con un nivel de prioridad
1, Y
Un segundo proceso que espera a que una tecla sea oprimida para activar el
semáforo que espera el primer proceso y continúa con la transmisión cíclica del
contenido del acumulador a través del canal serie y tiene un nivel de prioridad O.
Ambos procesos se presentan en la Figura 5.5, esta prueba también se desarrolló
primero a nivel de simulación en el Avsim51 y una vez depurado el manejo de semáforos
se realizó la prueba a nivel del módulo real.
5.5
Pruebas y resultados.
Capitulo 5.
semáforo
D
Espera
Figura 5.5 Prueba de sincronización entre procesos.
El ambiente planteado para la realización de esta prueba se presenta en la Figura 5.6,
en ella se observa el funcionamiento de los procesos de prueba. Se inicia la operación al
oprimirse una tecla en la interfaz local y comienza tanto el proceso de comunicación sene,
como el de conmutación de mensajes.
DesDliena
. - datos al
oprimir tecla en el
controlador
y--.
, ,
Pantalla: Conmutación de mensajes
al activar semáforo.
PC: Terminal
I
Teclado: Activa semáforo e inicia
transmisión serie.
Figura 5.6 Esquema de prueba de sincronización.
Esta prueba permitió verificar el funcionamiento correcto de procesos que involucran
semáforos en su sincronización con algún evento. Los buzones, como herramienta de
sincronización, fueron probados bajo un esquema muy similar, por lo que no se describe la
prueba realizada sobre ellos.
5.6
pruebas y resultados.
Capitulo 5.
5.3.3 Pruebas de manejo de interrupciones.
El propósito de esta prueba consistió en comprobar el funcionamiento correcto de 10s
procesos de usuario en presencia de interrupciones, y determinar, si con las políticas
establecidas para el manejo de interrupciones se obtienen resultados correctos en la ejecución
de los procesos.
Dentro del sistema sólo se utilizaron las interrupciones
- del timer O, usado para
asignar las “rebanadas” de tiempo, y la interrupciónINT0 utilizada para el manejo del
convertidor de analógico/digital. Para realizar la prueba de manejo de interrupciones se
implementaron dos procesos y dos rutinas de atención a interrupciones, de acuerdo a la
Figura 5.7. Un proceso encargado de leer tres buzones y desplegar el valor de cada buzón en
la pantalla; cada buzón se relaciona con cada canal del convertidor analógico/digital y el
6
+
b
Lee BUZO
b
P 6
Acc=O
Semáforo
23
Lee canaKj)
j=O
Inc. Acc
Des. valor1
9
Lee BU22
lnic canai(i)
Des. valor2
Figura 5.7 Prueba del manejo de interrupciones.
valor desplegado corresponde al valor de entrada en cada canal. Un segundo proceso se
encarga de transmitir el contenido del acumulador por el canal serie y tiene como objetivo en
la prueba mantener la concurrencia con el primer proceso.
En las rutinas de atención a las interrupciones el manejo del timer permite la
operación síncrona del sistema al controlar los tiempos de operación del planificador a través
de interrupciones en el timer O, las cuales son contabilizadas para lograr sincronizar el
funcionamiento del convertidor analógico/digital. Cada 10 ms la m i n a que atiende al timer
inicia una conversión en el canal O del CAD y habilita la interrupción __
INTO, la cual
corresponde al convertidor.
5.7
Pruebas y resultados.
Capitulo 5.
Al presentarse una interrupción del CAD la rutina de atención lee el canal actual y el
valor de la conversión es escrito en el buzón correspondiente, e inicia la conversión del
siguiente canal del convertidor. Si todos los canales han sido muestreados en este periodo de
muestre0 se termina la rutina sin iniciar más conversiones. Las conversiones son iniciadas
nuevamente por la rutina de atención del timer O.
El esquema para las pruebas de interrupciones se presenta en la Figura 5.8, en él se
presenta el módulo controlador. Este último se encarga de adquirir las señales analógicas y
de desplegar sus valores en la pantalla de la interfaz local. El módulo controlador se encarga
también de transmitir una secuencia de valores por el canal serie a una PC, que despliega los
valores recibidos en el monitor.
-T!
Despliega datos
recibidos
PC: Terminal
-n
Módulo Controlador
.. .
. .
....
i.i.
....
> :
t
Enlace
serie
Entradas analógicas
..: ...
/
... ..
..,.
5v
I P a n t a l l a : Presenta los valores de
la conversión
Figura 5.8 Esquema de prueba de interrupciones.
Con la realización de esta prueba se comprobó el funcionamiento concurrente de los
procesos de usuario en un ambiente en el que constantemente se presentan interrupciones de
hardware. Con esta prueba se corroboró que las políticas adoptadas para el manejo de las
interrupciones arrojó resultados adecuados que permitieron al sistema ser utilizado en un
ambiente real de control.
5.4 Pruebas funcionales.
Las pruebas funcionales se desarrollaron para comprobar el funcionamiento del
sistema en su aplicación como controlador, de acuerdo al esquema de pruebas de la Figura
5.1. Las pruebas realizadas en cuanto a funcionalidad incluyen al módulo de procesamiento
en su nivel de aplicación, las plantas simuladas y la interfaz serie.
5.4.1 Pruebas a los procesos controlados.
El objetivo de las pruebas realizadas sobre los procesos simulados en la PC fue el
verificar su funcionamiento de acuerdo a las características presentadas por el modelo usado
en la simulación de los procesos. Esta prueba consistió en aplicar un escalón a la entrada del
simulador y verificar la respuesta generada por el programa en la PC.
5.8
Capitulo 5.
Pruebas y resultados.
El esquema de pruebas utilizado se presenta en la Figura 5.9. El módulo controlador
se encarga de generar el escalón de prueba para los procesos simulados en la PC, el proceso
simulado en la PC responde conforme a los cambios que se presentan en la entrada de la
tarjeta de adquisición. La salida del simulador es monitoreada en un osciloscopio para poder
analizar la respuesta de los procesos simulados.
osciloscopio
_~-
...................................................................
Entorno de
............................
Módulo Controlador
..........................
Figura 5.9 Esquema de prueba de los procesos simulados.
En la Figura 5.10 se presenta la respuesta al escalón del simulador. Sobre esta figura
se realizó la medición del valor de la constante de tiempo de los procesos simulados, la cual
se identifica en el valor de 3.16 V o del 63.2% del valor máximo de los procesos. Este valor
es alcanzado por la respuesta aproximadamente a los 90 ms de ser aplicado el escalón.
Con esta prueba se caracterizaron los procesos simulados utilizados en el sistema de
5"
L
.........................................
O
o. 1
0.2
63.2 %
0.3 s
Figura 5.10 Respuesta al escalón del simulador.
control y se comprobó que la constante de tiempo de los procesos simulados correspondía
5.9
Capitulo 5.
Pruebas y resultados.
con el modelo matemático utilizado para la simulación. Obteniéndose los procesos
controlados de acuerdo a lo descrito en el punto 2.4 en la página 2.8.
5.4.2 Pruebas de los algoritmos de control PID.
Esta prueba se realizó para comprobar el funcionamiento de los algoritmos de control
PID desarrollados para ser implementados en el módulo de control. Esta prueba se realizó a
través de la comparación de los resultados generados en simulación entre el código para el
módulo de control y un programa de alto nivel para PC desarrollado para establecer un punto
de referencia.
Para el desarrollo de esta prueba se utilizó un ambiente de simulación de acuerdo a la
Figura 5.1 I . Por un lado se desarrolló el algoritmo PID en lenguaje ensamblador tal como
sería implantado en el módulo de procesamiento concurrente, y por otro lado el mismo
algoritmo de control PID se programó en lenguaje C en una PC, para establecer
comparaciones entre los resultados obtenidos por cada elemento de la prueba. En ambos
algoritmos se establecieron los mismos parámetros de control y como entrada se les
suministró el error actual desde teclado.
Simulación de
AvsimSI
algoritmos PID:
--h
! - J anc
a
y"'
":
.
'
7
--
v r
7
~
-.
=
' --'
='
Simulación de
Comparacián
de resultados
! s e
1.
r
I
Figura 5.11 Validación de los algoritmos de control.
Con esta prueba se comprobó que el funcionamiento de los procesos de software con
el algoritmo PID era adecuado y generaban resultados correctos. Una prueba más realizada
sobre los algoritmos de control fue la medición del tiempo de ejecución en el módulo real el
cual fue de 2.1 ms, con lo que se cumplió el limite establecido para la ejecución de los
algoritmos de control que tenía que ser menor a 2.5 ms.
5.4.3 Pruebas del sistema de control.
Las pruebas finales realizadas se efectuaron para comprobar el funcionamiento
adecuado y simultáneo de cada uno de los elementos que integran el sistema completo. Las
pruebas principales en esta parte, tuvieron como objetivo el verificar la operación del sistema
como controlador sobre los procesos que se encuentran operando simultáneamente.
La primera prueba de control se realizó sobre un único proceso físico, con el objeto
de comprobar las acciones de control en estado estable del proceso físico (Figura 5.12); para
5.10
Pruebas y resultados.
Ca itulo 5.
lo cual se activó un proceso de software en el módulo real encargado de regular el
comportamiento de dicho proceso fisico.
Entornode
.-..-
Módulo Controlador
Figura 5.12 Control de un proceso.
Se estableció un punto de operación al 50% para el proceso fisico a controlar y se
inicio la operación de control en el sistema. A través del osciloscopio conectado en la salida
del proceso correspondiente se observó la respuesta del sistema, la cual se presenta en la
Figura 5.13, observándose un error aproximado de 21% entre el Comportamiento del
proceso físico y el valor deseado establecido en el módulo ontrolador.
1
5
9
13
17
21
25 s
Figura 5.13 Respuesta del proceso controlado.
Con esta prueba se verificó que la operación del módulo como controlador permitía
mantener una regulación sobre los procesos aceptable en condiciones de operación estáticas.
5.1 1
Pruebas y resultados.
Capitulo 5.
La siguiente prueba se desarrolló con la intención de comprobar el funcionamiento del
sistema completo, es decir controlando los tres procesos fisicos en forma "simultánea",
además de ejecutar las tareas de interfaces al usuario, tanto local como sene (Figura 5.14).
PC: lnterfaz Serial
~.
....................................
-1
Módulo Controlador
Enlace serie
Figura 5.14 Esquema de prueba del sistema completo.
La prueba consistió en controlar tres procesos en forma simultánea en diferentes
puntos de operación y generar cambios en la carga a través de cambios en la referencia. En
esta prueba se establecieron los puntos de operación deseados de acuerdo a los siguientes
valores:
I
~0.proceso
Proceso 1
Proceso 2
Proceso 3
I
Referencia
80%
50%
30%
Con estos valores se inicio la operación de regulación en los procesos. En cierto instante de
tiempo se generaron cambios en la referencia de alguno de los procesos y se observó la
respuesta de cada uno de ellos. Con esta prueba se verificó la independencia entre los
procesos de software y el control simultáneo de las plantas.
En la Figura 5.1 5 se observa la respuesta obtenida para esta prueba y se presentan los
perfiles de carga en cada uno de los tres procesos. En los procesos 1 y 3 se establecen los
puntos de operación en un 80% y en un 30% respectivamente, y se mantienen en ese valor
durante toda la prueba. En el proceso 2 inicialmente se pone el punto de operación en un
50% y se inicia la operación del sistema con los tres procesos operandos simultáneamente y
se comprueba la operación simultánea y correcta de los tres procesos. En un instante dado se
realizan cambios en la referencia del proceso 2, de un 50 a un 25%; tanto en el proceso I
como en el 3, el perfil de carga se mantiene en 10s puntos de operación iniciales y se observa
que la operación de cada proceso no se ve afectada por los cambios en la operación de otro
proceso. Lo mismo sucede cuando el cambio se realiza del 20 al 80% en el punto de
operación; se observa también que el tiempo en que el proceso controlado alcanza la
5.12
Pruebas y resultados.
Capitulo 5.
respuesta el valor de referencia cuando se realiza un cambio en la referencia es de 70 ms
aproximadamente, además de que los cambios en un proceso se dan en forma independiente
entre los diferentes procesos.
90 Yo
80
70
.-
60
--
SO
.-
40
.-
30
.
20
IO
0
.--
"
Proceso 1
//
-
I
/
Proceso 3
Cambios en la carga
4
U 50ms
Figura 5.15 Respuesta de tres procesos en operación simultánea.
Con esta prueba se verificó que realmente el control simultáneo de los procesos se
realizaba, debido principalmente al esquema de software operativo que permite el
procesamiento concurrente y otorga total independencia entre cada uno de los procesos de
usuario que se encuentren activos. Con estas pruebas y con las de interfaces de usuario el
sistema quedo integrado y probado completamente, con lo cual se dio por terminado el
desarrollo del sistema.
5.13
Capítulo 6. Desarrollo de procesos de usuario.
6.1 Introducción
En este capítulo se describe la operación del software operativo de modo tal que
pueda ser aprendido por usuarios que requieran desarrollar aplicaciones en esta plataforma O
que desean realizar mejoras en el sistema desarrollado. Para tal efecto se recomienda el
estudio conjunto de esta sección y del software contenido en el disco anexo, para
familiarizarse con el código a través de esta guía.
Todo el software del sistema se encuentra desarrollado en ensamblador y se tiene
acceso a cada segmento de código, por io que se deben respetar las condiciones establecidas
para mantener el ambiente de concurrencia.
6.2 Elementos requeridos en el sistema.
Para el desarrollo de nuevas aplicaciones sobre esta plataforma es necesario contar
con los siguientes elementos:
Software anexo al documento en disco flexible.
Arquitectura de hardware compatible de acuerdo a lo descrito en el capítulo 3.
Ensamblador de código del 805 1.
Ligador de código para el 8051.
Herramienta para cambio de formato HEX a binario.
Grabador de memoria para la memoria de programas del sistema.
6.3 Descripción del archivo TESIS.ASM.
El software operativo se encuentra en el archivo TESIS.ASM en el disco anexo, este
documento incluye el software operativo completo y todos sus elementos auxiliares, también
se encuentran incluidos los procesos de aplicación del sistema. La estructura de este archivo
se describe a continuación:
1. Se definen constantes del sistema como direcciones de los espacios de contexto,
constantes de procesos de software, localidades para variables de procesos de
software, etc.
2. A continuación se realiza la inicialización de los elementos del sistema; las rutinas
de inicialización se puede escribir en este punto o en el espacio en el archivo
marcado como "Rutinas de inicialización" (ver punto 5). En este punto se realiza
la inicialización de los elementos del software operativo como son los registros
internos del microcontrolador y los estados de los elementos del software
operativo, así como de los procesos de usuario que requieran de condiciones
iniciales.
6.1
Desarrollo de procesos de usuario.
Capítulo 6.
3 . A continuación se presenta el planificador del sistema, el cual empieza SU
operación guardando los registros que son utilizados por 61, con el fin de evitar
corrupción en 10s registros del proceso que abandona el CPU. A Continuación
selecciona el siguiente proceso poseedor del CPU, salva y restablece contextos y
entrega el procesador al siguiente proceso de software.
4. El siguiente código consiste de rutinas auxiliares en el manejo de los procesos de
usuario, como salvar y cargar contexto, retira e inserta procesos en fila de procesos
activos de prioridad 1 y las mismas rutinas para prioridad O. La rutina que
restablece el contexto (RSTCTX), es usada por procesos que terminaron SU
funcionamiento pero que requieren mantenerse activos y reiniciar su operación. La
rutina que salva el contexto del Stack Pointer (SCSP) restablece las condiciones
iniciales de cada proceso de software que termina su operación y se desactiva.
5 . El siguiente espacio de código se utiliza para almacenar las rutinas de
inicialización del sistema tanto en hardware como en software. El usuario que
requiera de realizar la inicialización de algún elemento, debe agregar en este
espacio el código correspondiente y realizar la llamada al final de la inicialización
del sistema, de acuerdo a lo descrito en el punto 2, después de la instrucción
CALL INIPROC.
6. El punto siguiente corresponde a las rutinas de atención de interrupciones, en este
punto se presentan las rutinas de atención escritas para el sistema. La primera
corresponde al manejo del timer o reloj del sistema y la segunda para el manejo
del convertidor analógico/digital.
7. En la rutina de atención del timer es posible añadir breves secuencias de código
que permiten manipular semáforos binarios o contadores para lograr sincronía de
algunos eventos con respecto al tiempo, en múltiplos de tiempo de la base de 10
ms.
8. El siguiente punto corresponde a las rutinas de inicialización del hardware, entre
otros módulos se inicializa el canal de comunicación serie, la pantalla de cristal
líquido, los temporizadores programables, la memoria RAM interna y la memoria
RAM externa, etc.
9. Continúan las rutinas generales que pueden ser utilizadas por todos los procesos
de usuario, entre estas rutinas se encuentran las del manejo de la pantalla de cristal
líquido, las de comunicación serie, de retardos, de transferencias entre memorias,
de operaciones aritméticas, y de conversiones de formatos de variables, entre otras.
1O.El siguiente espacio almacena exclusivamente los procesos del usuario. Algunos
de los cuales son presentados como ejemplos al final del capítulo.
11.Finalmente se presenta el espacio para almacenar tablas de datos y algunas
constantes para el sistema y cadenas de caracteres,
I
6.4 Procesos de software de usuario.
Un proceso de software de usuario debe ser escrito de acuerdo a la estructura
propuesta para tareas de usuario mostrada en la Figura 6.1 :
6.2
Capítulo 6.
Desarrollo de procesos de usuario.
a
FunciOn del
.......... I .........
.Manipula buzones ;
: y semáforos i
L
,...... ..........
.Verifica buzones:
: y serniforos
........ I.......
.
:
.'."'"'.$.'.."...
Abandona
Figura 6.1. Estructura de los procesos
Cada tarea de software debe respetar esta estructura. Si se requiere sincronizar su
operación con elementos como semáforos o buzones, el proceso debe comenzar verificando
dichos elementos y determinar su propio estado para decidir si continua o entra en un estado
de bloqueo.
En la siguiente etapa de la estructura debe incluirse el código de los procesos. Un
proceso que entra en ejecución al terminar y sólo si se requiere, debe manipular los
elementos de sincronía involucrados en su operación.
La ejecución se termina restableciendo las condiciones iniciales de la pila del proceso
y abandonando el procesador. Estas operaciones se realizan de acuerdo a los siguientes
casos:
1. El proceso termina y debe ser desactivado. En este caso deben ejecutarse al final
de la operación del proceso las siguientes instrucciones.
CLR 21H.0
RET
Con estas instrucciones el proceso queda desactivado y no es vuelto a incluirse en la
fila de procesos activos. El bit 21H.0 indica al planificador que el proceso que
abandona el CPU deberá ser desactivado.
2. El proceso termina su operación pero debe reiniciarse o el proceso entra en un
estado de bloqueo. Cuando el proceso termina su operación con la instrucción
JMP RSTCTX,el proceso es nuevamente incluido en la fila de procesos activos y
en su siguiente ejecución comienza la operación en la etiqueta de inicio de dicha
tarea.
6.4.1 Limitantes en los procesos de usuario,
El desarrollo de las tareas de usuario debe respetar ciertas reglas necesarias para la
administración del proceso.
6.3
Desarrollo de procesos de usuario.
Capítulo 6.
Se recomienda no modificar ninguno de los elementos del software operativo, salvo
aquellos que se indican en el punto de alta de procesos de usuario.
Deshabilitación de interrupciones en un máximo de 760 instrucciones del
microcontrolador con un ciclo máquina de 4 ciclos de reloj o en otro caso por un lapso de
tiempo menor de 270 ,us
Cada proceso de usuario tiene asignada una pila de memoria que se utiliza para controlar
las llamadas y saltos realizados por interrupción. Esta pila solo almacena 4 direcciones de
16 bits por lo que las llamadas a rutinas anidadas deben limitarse a un máximo de tres
llamadas. 4.4.1. y 4.4.6
En el caso de que se requieran elementos de sincronía como semáforos y buzones, el
proceso debe verificar estos propios elementos. Para mayor detalle revisar los ejemplos
incluidos.
Terminación de los procesos de usuario de acuerdo al punto anterior.
6.4.2 Manejo de buzones y semáforos y memoria disponible al usuario.
El manejo de los semáforos y buzones se realiza a través de los propios proceso de
usuario por lo que es responsabilidad del programador el manejo de la sincronía y
comunicación entre tareas. En los ejemplos de los programas de aplicación se ilustra el
manejo de estos elementos.
6.5 Rutinas de aplicación general.
Se cuenta también con una serie de rutinas que pueden ser utilizadas por cualquier
usuario para facilitar el desarrollo de sus proceso de software, los que son descritos a
continuación.
6.5.1 Rutinas de manejo de la pantalla LCD.
Estas rutinas controlan la operación de la pantalla y son accesibles para todos los
procesos de software. Para controlar el acceso a este módulo se asignó un semáforo que es
activado por cada proceso que toma la pantalla, de esta forma se evitan que dos o más
procesos tomen al mismo tiempo dicho módulo. El semáforo debe ser desactivado por el
proceso de usuario antes de terminar su ejecución.
6.5.1.1 Rutina despliega cadena.
La rutina principal permite desplegar una cadena de 16 caracteres arreglados en dos
renglones de 8 caracteres cada renglón. Esta rutina se llama DISP y recibe como entrada una
6.4
Desarrollo de procesos de usuario.
Capítulo 6.
dirección de memoria en ROM donde se almacena dicha cadena. La cadena que se despliega
debe estar estructurada de acuerdo al siguiente formato:
“Cadena I”,RC,SL,
“Cadena 2.”,CERO
La “Cadena I ” y “Cadena 2” deben ser de máximo 8 caracteres cada una, el caracter
RC (regreso de carro) y SL (salto de línea), corresponden a los códigos ASCII de estos
mismos caracteres ODH y OAH respectivamente, mientras que el símbolo CERO (OOH)
determina el final de la rutina DISP. Se pueden desplegar mensajes dinámicos, almacenando
en RAM externa la cadena a desplegar, de acuerdo al formato anterior, en la dirección OOOOH
e iniciando la rutina DISP en la etiqueta DISP1.
6.5.1.2 Despliega carácter, ejecuta comando y limpia pantalla.
Estas rutinas permiten un manejo más específico de la pantalla de cristal líquido y se
describen a continuación.
La rutina de despliegue de caracter DESCAR permite presentar en la dirección
actual de la pantalla un simbolo cuyo código se coloca en el acumulador antes de ser
llamada la rutina. Un vez desplegado se incrementa la dirección donde se presentará
el siguiente caracter, como operación implícita del hardware de la pantalla LCD.
La rutina DESCOM permite controlar la ejecución de comandos en la pantalla, esta
rutina recibe el número del comando a ejecutar en el acumulador.
Otra rutina desarrollada para el manejo de la pantalla LCD es CLRDIS, esta rutina
limpia la pantalla y la memoria del módulo, y coloca la dirección de despliegue del
siguiente caracter en el origen. Esta rutina no recibe datos de entrada.
6.5.2 Rutinas de comunicación serie.
Las rutinas desarrolladas para el manejo de la comunicación en serie del sistema son
las siguientes:
TXDl. Esta rutina recibe un byte en el acumulador y lo envía por el canal serie,
termina su operación una vez que el dato ha sido transmitido.
La rutina RXDl recibe un dato en el canal serie en el formato ASCII para los
números hexadecimales y los convierte a formato hexadecimal. Devuelve el resultado
en el acumulador.
RXD2 recibe un dato en el canal serie y io deposita en el registro Acc del
microcontrolador.
6.5
Desarrollo de procesos de usuario.
Capítulo 6.
La rutina ENVIAR transmite por el canal serie una cadena de caracteres que se
encuentra alojada en memoria de programas. Recibe como en el DPTR la dirección
de inicio de la cadena y temina su transmisión en cuanto es detectado un código de
valor OOH.
6.5.3 Retardos.
Se desarrollaron una serie de rutinas que tienen como objetivo generar diferentes
valores de retardo en el sistema. Dichas rutinas no reciben ningún dato de entrada pero
requieren para su operación los registros internos del microcontrolador R2, R3 Y R4,
dependiendo del retardo llamado. Por lo tanto, al realizar alguna llamada a un retardo es
necesario duplicar la información existente en estos registros. Las rutinas realizadas son:
DELC: esta rutina genera un retardo corto de aproximadamente 70 ,LAS y utiliza para
su operación sólo al registro R2.
La rutina DELL genera un retardo medio de aproximadamente 500 ps y utiliza en su
operación los registros R2 y R3.
El retardo DELAY hace uso de los registros R2,R3 y R4 y tarda aproximadamente 1
segundo en realizar su operación.
DELAY2 es una rutina que genera un retardo largo de aproximadamente 8 segundos
y utiliza en su operación los registros R2,R3 y R4.
6.5.4 Transferencias de bloques de memoria.
Se cuenta también con un conjunto de rutinas que permiten realizar transferencias de
bloques de datos entre las diferentes memorias del sistema. Las siguientes son las rutinas
desarrolladas para las distintas transferencias de datos:
MOVIE: esta rutina realiza transferencias de bloques de memoria entre la memoria
RAM interna del microcontrolador y la memoria RAM externa. Utiliza como
variables de entrada los registros RO, Ri y DPTR. RO contiene la dirección inicio del
bloque fuente, R1 indica el número de bytes que se transferirán y el DPTR incluye la
dirección destino para el bloque a copiar.
La rutina MOVE1 realiza transferencias de bloques de datos de memoria externa a
memoria interna. Utiliza el registro R1 para indicar el número de bytes a transmitir,
RO indica la dirección destino de la memoria interna y el DPTR contiene la dirección
inicial del bloque a copiar.
La siguiente rutina se llama MOVEE y es utilizada para realizar transferencias de
código entre distintas localidades de la memoria RAM externa. Para realizar sus
funciones requiere los siguientes registros: R1 con el número de bytes a transferir, RO
con el byte bajo de la dirección fuente, el registro OAOH con el byte alto y el DPTR
con el registro destino.
La última rutina desarrollada corresponde a la transferencia de datos entre memorias
ROM y externa. MOVRE utiliza los mismos registros que la rutina anterior con la
6.6
Desarrollo de procesos de usuario.
Capítulo 6.
única diferencia de que el DPTR contiene la dirección inicial del bloque fuente y el
registro OAOH y RO contiene la dirección del bloque destino.
6.5.5 Rutinas de operaciones aritméticas.
Se cuenta con dos rutinas principales que realizan operaciones aritméticas de punto
flotante de acuerdo al formato presentado en el punto 4.8.5. Estas rutinas son las de suma y
multiplicación. Los operandos de entrada para ambas rutinas deben estar normalizados y ei
exponente debe incluir el bias o desplazamiento. Estas rutinas reciben los operandos de
entrada en los registros del microcontrolador; el primer operando es recibido en los registros
R2, R3 y R4, y el segundo operando en los registros R5, R6 y R7. El resultado se entrega
normalizado en los registros R2, R3 y R4.
La rutina llamada SUMA realiza la suma algebraica de dos números de punto flotante
y la rutina MUL realiza la multiplicación de dos números de punto flotante. Ambas rutinas
verifican que el sistema no presente errores de flujo, en cuyo caso se despliega un mensaje de
error junto con el número del proceso que lo genero. El proceso que genera el error es
desactivado y sale inmediatamente de ejecución.
En el software del disco anexo se incluye un programa que realiza conversiones entre
el formato de punto flotante realizado en el sistema y los números reales.
6.5.5.1 Conversión de entero a punto flotante.
INTFP convierte un número entero de 12 bits con formato magnitud signo a punto
flotante. Recibe el entero R4 (MSB) y R5 (LSB) y el resultado es entregado en los registros
R2, R3 y R4 de acuerdo al formato manejado en este trabaio.
6.5.5.2 Conversión de punto flotante a entero.
PFENT recibe un número de punto flotante normalizado en los registros R2, R3 y R4
y lo convierte a entero de 12 bits, entrega el resultado en R5 y R6.
6.5.6 Otras rutinas.
La rutina ASCII recibe un número hexadecimal y entrega el ASCII correspondiente
para dicho número. Recibe el número en el acumulador y regresa el valor en el acumulador.
La rutina PON1 lee un número del teclado y devuelve su valor en hexadecimal en el
acumulador.
6.7
Desarrollo de procesos de usuario.
Capítulo 6.
6.6 Ejemplos de procesos de software a nivel de usuario.
Para la aplicación del sistema desarrollado se implementaron una serie de procesos de
usuario; dentro de estos procesos se encuentran los algoritmos de control, interfaces, etc.
6.6.1 Algoritmos de control PID.
Los algoritmos de control son la tareas principales del sistema y sincronizan su
operación con la constante del sistema de tiempo real de 10 ms. A continuación se presentan
los segmentos más importantes del código de estos procesos, para ilustrar el funcionamiento
de los diferentes componentes del software operativo.
PID3: MOV DPTR,#BUZ30
MOVX A,@DPTR
CJNE A,#OOH,PID3A
JMP RSTCTX
PID3A: JB 25H.2,PID3C
MOV DPTR,#BUZ31
MOV A,#OFFH
MOVX @DPTR,A
CLR21H.0
RET
PID3C: CLR 25H.6
MOV A,#OOH
MOVX @DPTR,A
iNC DPTR
PID3 corresponde al nombre de este proceso y tiene asociado el
buzón 03. Se verifica el estado del buzón, si este se encuentra
vacío salta a la etiqueta RSTCTX y el proceso se bloquea. Si
por el contrario se encuentra lleno el proceso continua su
operación.
En este segmento el proceso verifica si aún permanece activo a
través del bit 25H.2. Si es así salta a PID3C si no pone el estado
el buzón de salida de este proceso (BUZ31) como lleno para
detener los segmentos de código relacionados y subsecuentes
con este proceso. Se limpia el bit 21H.0 con lo que se desactiva
por completo el proceso y se termina su ejecución con la
instrucción RET.
A partir de esta línea se inicia la ejecución del algoritmo PID y
se limpia el bit 25H.6 para indicar que el PID3 se encuentra en
ejecución.
...
Una vez obtenido el valor final del algoritmo se carga en el
buzón de salida. Se pone el valor destino en el DPTR, la
dirección inicio en RO, el número de bytes a transferir en RI y
se llama la rutina MOVIE para realizar la transferencia.
Finalmente se indica el estado de lleno del buzón.
...
Se salvan algunos valores necesarios para el calculo de la
siguiente iteración y se realizan algunas transferencias entre
memorias.
Se deshabilitan las interrupciones (CLR 1E.7) ya que el valor
del registro OAOH para el manejo debe encontrarse en el valor
de OOH. En este caso al ejecutarse MOVEE se restablece el
valor de OOH en el registro OAOH y se habilitan nuevamente las
interrupciones.
Finalmente se activa el bit 25H.6 para indicar que el proceso
PID3 se terminó de ejecutar y se ejecuta la instrucción JMP
RSTCTX, para que el proceso sea formado nuevamente en la
cola de procesos activos y restablezca su pila.
MOV DPTR,#BUZ3 I
iNC DPTR
MOV RO,#02H
MOV RI,#03H
CALL MOVIE
MOV DPTR,#BUZ3 1
MOV A,#OFFH
MOVX @DPTR,A
CALL MOVEE
MOV DPTR,#En3
CLR IE 7
MOV OAOH,DPH
MOV R0,DPL
MOV R I ,#03H
MOV DPTR,#Ean3
CALL MOVEE
SETB 25H.6
JMP RSTCTX
6.8
Desarrollo de procesos de usuario.
Capítulo 6.
6.6.2 Manejo de la interfaz local.
A continuación se presenta un segmento del código del manejo de la interfa local,
las dos primeras líneas ilustran la exclusión mutua entre procesos que requieren un mismo
recurso.
MENU: JNB 24H.0,MENU.A.
JMP RSTCTX
MENU es el nombre de este proceso. El bit 24H.0 indica el
estado de la pantalla: 1 indica ocupado y O libre. Como
primera operación se verifica si la pantalla está libre, si es así
se continua con la operación, si no, el proceso sale de
ejecución y se bloquea.
MENUA: MOV DPTR,#MMENU AI iniciar el proceso, se despliega el menú en la pantalla
MENUO:
MENUI:
MENU2:
MENU3:
CALL DISP
JB P1 .O,$
CALL PON1
JNB P1 .O,$
CJNE A,#OOH,MENUl
JMP MOP1
CJNE A,#OIH,MENU2
JMP MOP2
CJNE A,#O2H,MENU3
JMP MOP3
CJNE A,#03H,MENUO
y se espera a que el usuario haga una elección. La
elección es validada y la ejecución continua con la
selección hecha. En caso de una selección incorrecta
simplemente se ignora dicha selección.
6.7 Alta de un proceso de software de usuario.
Para dar de alta un proceso de software de usuario en el sistema, deben llevarse a
cabo una serie de pasos. Para ejemplificar este procedimiento utilizaremos el proceso PID3
descrito en el punto 6.6.1 de acuerdo a como se encuentra en el código real implementado en
el sistema:
I . Dentro del archivo TESIS.ASA4 se encuentra la subrutina INIPROC, la cual se encarga de
inicializar los procesos de usuario dentro del sistema. En esta subrutina se encuentra la
leyenda: “TABLAS DE DIRECCIONES DE PROCESOS”, aquí debe incluirse el nombre
del proceso que nos interesa dar de alta añadiendo las siguientes líneas de código:
MOV DPTR,#(Nombre del Proceso)
MOV (BasePPila(n)+2)$PLMOV (BasePPila(n)+3),DPH
La base de pila se refiere a la pila de memoria RAM interna designada para cada proceso,
aquí se relaciona el número del proceso con el nombre del proceso y se describe en la
Tabla 6.1.
6.9
Desarrollo de procesos de usuario.
Capítulo 6.
Tabla 6.1 Relación entre pilas y procesos.
Para nuestro ejemplo
se selecciona la pila correspondiente al proceso 2 y el código queda
"
de la siguiente forma.
MOV DPTR,#PIDI
MOV 3AH,DPL
MOV 3BH,DPH
MOV DPTR,#PID2
MOV 42H,DPL
MOV 43H,DPH
MOV DPTRJPID3
MOV4AH,DPL
MOV 4BH,DPH
MOV DPTR,#MENU
TABLA DE DIRECCIONES
DE PROCESOS
SIRVE COMO STACK
Almacena en memoria
interna las localidades
de inicio de cada posible
proceso
;PROC3
2. En el archivo TESIS.ASA4 se encuentra también la rutina INIDAT, la cual establece los
parámetros de control de los procesos internos, entre ellos los parámetros de las colas de
procesos activos. Aquí deben formarse los procesos activos que se integran en el sistema,
se dispone de ocho espacios para los procesos de prioridad O y ocho para los de prioridad
1. Para el PID3 se considera prioridad 1 y se realiza lo siguiente:
Las localidades 28H, 29H, 2AH contienen ya procesos que se encuentran formados, por lo
que el proceso número 2 (ver Tabla 6.1) se forma en la localidad 2BH. El apuntador
FWRl debe contener la dirección en la que se encuentra el último proceso formado.
INIDAT:
MOV FRD1,#27H ;Se inicializan
MOVFWRl,#ZBH ;apuntadores FIFO 1 y O
MOV FRDO,#2FH
MOV FWRO,#3 1H
MOV 28H,#06H
MOV 29H,#OIH
MOV 2AH,#OOH
MOVZBH,,#OZH
;Cola de procesos
;FIFO prioridad 1
<=== Aquí se forma proceso
6.10
Desarrollo de procesos de usuario.
Capítulo 6.
MOV 30H,#03H ;Cola de procesos
MOV 31H,#04H ;FIFO prioridad O
3. Finalmente en la rutina SCSP se deben integrar unas líneas de código a partir de la
etiqueta SSPl, de acuerdo al siguiente formato:
MOV DPTR,#CPRO(n)
MOV RO,#(Base-Pila(n) + 2)
MOV A,#(BasePila(n) + 3)
MOV DPTR,#(Nombre-del Proceso)
Para el proceso PID3 o número 2 serían los siguientes pasos:
MOV DPTR,#CPR02
MOV RO,#4AH
MOV A,#4BH
MOVX @DPTR,A
MOV DPTR,#PID3
SJMP SSP2
;Localidad de PILA interna
;Ubicación del SP en RAM externa
;Reinicializa el SP proc2
Con estas líneas se integra finalmente un proceso de usuario al sistema de
procesamiento concurrente. Por lo que el siguiente paso a realizar es la generación de código
de acuerdo al procedimiento descrito en el punto 4.9.1. Con lo que se obtiene el proceso de
usuario inmerso en el módulo de procesamiento y listo para ser ejecutado.
6.1 1
Capítulo 7. Conclusiones.
En este trabajo se desarrolló el hardware y el software de un sistema digital para
regular la operación de múltiples procesos físicos que operan simultáneamente. El hardware
y el software se diseñó para realizar el procesamiento concurrente y en tiempo real de las
tareas involucradas en un sistema de control. También se implement6 un simulador en
tiempo real de las plantas a controlar de acuerdo a un modelo matemático que las define. El
sistema completo consta de los siguientes elementos:
El módulo de procesamiento concurrente, que es utilizado como controlador.
Los procesos físicos controlados, implementados con un simulador en una PC
Una interfaz de acceso remoto con comunicación serie a una PC.
El trabajo desarrollado representa un sistema completo de control conformado, por
el módulo digital en su función como controlador, las plantas controladas e implementadas
en el simulador y la interfaz de acceso remoto. Con io que se cumplió con el objetivo inicial
del trabajo de tesis.
Hardware
El módulo de procesamiento concurrente presenta aspectos importantes a nivel de
hardware y a nivel de software, en cuanto al ámbito de hardware se obtuvieron las
siguientes conclusiones:
El proyecto concluyó en un prototipo de controlador construido en 3 módulos en
circuito impreso integrados en un gabinete.
El módulo de procesamiento concurrente desarrollado consta de un diseño de
hardware sencillo, modular, de fácil adquisición y bajo costo. Además de la
eficiencia presentada al momento de realizar las pruebas del sistema.
Las ventajas en la velocidad de ejecución de los algoritmos PID residen sobre
todo en el ciclo de máquina del microcontrolador DS80C310 de Dallas
Semiconductors, sin embargo se mantiene una compatibilidad al 100% con los
microcontroladores de Intel 80C3 1/80C32.
El desarrollo modular permite mantener aisladas las etapas analógica y digital en
el módulo de procesamiento
Se puede aplicar fácilmente al control de motores al incluirse salidas PWM y
aplicable a otros procesos controlados analógicamente o funcionar en un esquema
de controlador lógico programable (PLC) gracias a las salidas y entradas digitales
incluidas.
Las interfaces al sistema, local y remota permiten modificar parámetros de
control en línea en el funcionamiento del sistema.
7.1
Conclusiones.
Capitulo 7.
Software
En cuanto al software operativo desarrollado se presentan aspectos importantes que
pueden ser presentados como conclusiones:
La distribución garantizada del CPU sobre todos los procesos activos, en un
ambiente de concurrencia, asegura la ejecución de dichos procesos en un tiempo
determinado.
La concurrencia permite manejar con independencia cada proceso de software,
evitando que un error que se presente en algún proceso activo afecte a los demás
procesos.
El desempeño del software operativo se consideró desde tres puntos de vista
principales para la configuración de procesos específica del sistema. La
productividad o número de procesos realizados por unidad de tiempo, el tiempo
promedio de espera por proceso y la utilización del CPU, que es el porcentaje de
tiempo durante el que este se encuentra ocupado [Pinkert].
+
Productividad
+ Tiempo de espera
+ Utilización
=
=
=
4 procesos/ 10 ms
1O ms/proceso
89.5%
Estos valores fueron comparados contra otras configuraciones en la asignación de
tiempos, como asignación idéntica de tiempo para cada proceso por un lapso de 2
ms. Donde se obtuvieron los siguientes valores:
+ Productividad
+ Tiempo de espera
+ Utilización
=
=
=
3 procesos/ I O ms
1 1.66 ms/proceso
88%
Otro esquema probado consistió de una asignación de 6.66 ms para procesos de
prioridad 1 y 3.33 para prioridad O, el que arrojó los siguientes resultados.
+
+
+
Productividad
Tiempo de espera
Utilización
=
=
=
3 procesos/ 1O ms
I O msíproceso
89.5 %
En este último caso se obtuvieron resultados casi idénticos a los arrojados por el
planificador final, pero la diferencia en la productividad era un proceso de control
PID que no terminaba su ejecución en los 10 ms.
La medición del desempeño del sistema depende de una gran cantidad de factores
tan diversos que involucran, desde aspectos de hardware que sólo interesan al
diseñador, como la conveniencia y las prestaciones al usuario, pasando por el
número de procesos activos, las políticas usadas en el planificador, etc.
7.2
Capitulo 7.
Conclusiones.
Problemática.
La principal problemática enfrentada consistió en la ejecución concurrente de los
algoritmos de control PID. La ejecución de los algoritmos de control se relaciona con dos
aspectos que son:
La adquisición periódica y discreta de la variable controlada en el proceso físico y
La ejecución de los tres algoritmos de control en el intervalo del periodo de
muestreo.
Lo que deriva en establecer una base de tiempo para la adquisición de señales con
periodos constantes y en realizar un código eficiente de las tareas de control para poder
realizar procesamiento en tiempo real.
La base de tiempo permite al software operativo administrar los procesos de
software que compiten por los recursos del módulo de procesamiento, dicha base se
estableció a partir de las características dinámicas de la aplicación. Más específicamente, la
constante de tiempo de los procesos físicos determina el periodo de muestreo de cada planta
o proceso. Este periodo de muestreo representa el periodo con el que deben ejecutarse los
algoritmos de control de cada planta y se tomó como la base de tiempo en el diseño del
software operativo.
En aplicaciones de tiempo real es más importante generar rutinas que sean eficientes
en cuanto a tiempo de ejecución más que la reutilización de 1código. En ocasiones es
preferible repetir rutinas en cualquier parte que se requieran en lugar de hacer una llamada a
una rutina general, que además requiere de sus parámetros en un formato dado, lo cual
significa más retardos en el procesamiento. Dentro del procesamiento en tiempo real el
objetivo es lograr satisfacer los requerimientos de tiempo de la1 aplicación, más que dar
comodidades y prestaciones al usuario o programador del sistema.
Aspectos de operación
El procesamiento concurrente se debe al software oper/ivo, el cual maneja los
procesos de usuario en base a una serie de herramientas y políticas que permiten a cada
proceso realizar sus funciones, cumpliendo los requerimientos !en cuanto a tiempo y a
resultados de forma satisfactoria.
El empleo de políticas dentro del software operativo puede sustituir de cierto modo
la implementación de primitivas, y por lo tanto reducir el tiempo de ejecución. Tal es el
caso del manejo de buzones y semáforos y del manejo de procesos bloqueados. En ambos
casos, a cada proceso se le atribuyen capacidades para que el mismo proceso manipule y
verifique el estado de los buzones o semáforos que requiere, o en el otro caso para que el
mismo proceso verifique su estado y decida si su estado es de bloqueo o puede continuar
con su ejecución. De esta forma no es necesario utilizar primitivas para el manejo de estos
elementos y estados de los procesos, lo que simplifica el diseño del software operativo y
reduce los retardos extras que generarían estas rutinas.
7.3
Capitulo 7.
Conclusiones.
Otra política importante se estableció en la gestión de interrupciones, dicha política
se basó en dos puntos:
Ninguna rutina de atención a interrupción puede ser interrumpida y
Los segmentos de código crítico no deben ser interrumpidos.
En cualquiera de los dos casos descritos debe tenerse en cuenta, que si el tiempo en
que no puede actuar ninguna otra interrupción no es adecuado, el sistema puede tener un
funcionamiento erróneo; por lo tanto la deshabilitación de las iritempciones y su atención
debe ser en periodos de tiempo determinados por el manejo de la pase de tiempo.
Aportación.
Como aportaciones del trabajo se presentan los puntos m'as relevantes de este y se
lisian a continuación:
Equipo terminal completo, que resuelve problemáticas Fn aplicaciones de control
gracias a sus capacidades de procesamiento en tiempo real.
Esquema de procesamiento concurrente que permitei mantener independencia
entre los procesos y garantiza la ejecución de los procesos de software activos.
Esquema de hardware de procesamiento basado en un!microcontrolador 8051 y
compatibles con E/S digitales y analógicas, comunicación serie, interfaz local y
generación de PWM.
Herramienta de control de procesos, fácil aplicación al control de velocidad de
motores, temperatura, flujo, nivel, etc.
Las características más importantes del módulo de procesamiento concurrente
realizado son las siguientes:
Capacidad de ejecución concurrente de hasta 9 procesosi.de software.
Orientado a control de procesos físicos con procesamiento en tiempo real.
Relación eficiente (Software operativo)/(Software de aplicación):
tsJtsa = 0.150ms/1.85ms
En cuanto a la aplicación del sistema completo se establece lo sigu,Fte:
Ejecución concurrente de 3 algoritmos de control PID.
Tiempo de ejecución de los algoritmos PID de 2.1 ms aproximadamente.
Regulación eficiente de los procesos controlados.
Fácil modificación de parámetros de control.
Interfaz serie portable independiente de diferencias de velocidades entre PC y
módulo de procesamiento.
Simulador en tiempo real de los procesos fisicos controlados.
1.4
Capitulo 7.
Conclusiones.
Trabajos futuros.
Dentro de los trabajos futuros se presentan los siguientes:
Mejorar la interfaz sene desarrollada en la PC llevándola a un ambiente visual.
Mejorar las condiciones para la detección de errores en el diagnóstico del
hardware del sistema
Realizar pruebas exhaustivas en un ambiente de trabajq real.
Desarrollar primitivas para que el software operativo permita crear y cargar
procesos de software a través del canal serie.
Probar otros esquemas de control bajo la misma arquitectura de hardware y
software operativo.
Aplicación del sistema al control de motores
7.5
Apéndice A. Descripción de conectores.
A.l. Conector J1 Control del HEF4752
A.2. Conector 52 EntradasKalidas digitales
Notas: 1, El símbolo "/" indica complementada.
2. Pines 1-10 Entradas digitales
3. Pines 11-20 Salidas digitales.
4. Pines 21-40. Generador PWM.
A.3. Conector 53 Canal Serie
A.l
Y1, renglón I
X2,columna 2
Y2, renglón 2
Y4, renglón 4
i
3
5
I
2 Xl,coiumna 1
4 X4,columna4
6 Y3, renglón3
8 X3,coiumna4
A.5. Conector 55 Pantalla LCD
A.6. Conector J8 Control de convertidores.
A.7 Conector J9 SalidaslEntradas Anaiógicas
A.2
-
-
-
Apéndice B. Descripción de componentes.
B.1 Lista de componentes utilizados.
Cantidad No. de parte
1
1
1
3
2
1
1
1
2
2
2
1
1
1
1
2
1
1
I
1
1
1
1
1
2
1
1
1
1
2
Descripción
DS80C3 1 O
Microcontrolador. Dallas.
DS1225Y
Memoria NVRAM, Dallas.
6264
Memoria RAM.
HEF4752
Generador PWM, Philips.
8254
Temporizador programable.
Interfaz serie, Maxim.
MAX232
CDA, Maxim.
MAX527
CAD, Maxim .
MAXI 82
Amplificador
operacional, Analog Devices.
OP490
Latch.
74HC373
Buffer.
74HC244
Decodificador.
74HC I38
Decodificador de teclado 16 teclas.
74C922
Multivibrador astable/monoestable.
4047
Compuertas AND.
74HC08
Inversores.
74HC04
Compuertas OR.
74HC32
Regulador +5V.
LM7805
Regulador -5V.
LM7905
Regulador +15V.
LM7815
Regulador -15V.
LM7915
Pantalla de cristal líquido.
AND491
Teclado matricial de 16 teclas .
Cristal de 11.O59 MHz.
Puentes rectificadores.
Botón interruptor N.A.
1N4004
Diodo.
LED’s
varios.
Transformador 1SV, I A.
Transformador derivación central 15V, 1A.
Potenciómetros 5K.
Fusibles 0.75A.
Resistencias varios valores .
Capacitores varios valores y tipos.
B. 1
B.2 Microcontrolador DSSOC310.
DALLAS
~
DS80C310
Micro de alta velocidad
SENICONDUCTOR
Características
Compatible con el 80C32
Compatible con el 805 len pines y en el set
de instrucciones
-Puerto serie Full duplex
- Tres contadoreshemporizadores de I6 bits
- 256 bytes de RAM interna
-Bus direcciones/datos multiplexado
- 64KB de direcciones ROM y 64KB de RAM
Arquitectura de alta velocidad
- 4 ciclos reloj/ciclo máquina (805 1 = 12)
-Frecuencia de reloj hasta de 33 MHz
- Ciclo de instrucción en I2 i ns
-Puntero de datos dual
- Duración variable de MOVX opcional para
acceso rápido/lento a RAMíperiféricos
1 O fuentes de interrupciones, 6 externas
Circuito interno de “power on reset”
Compatible ascendentemente con
el
DS80C320
Disponible en PDIP 40-pin, PLCC 44-pin, y
TQFP 44-pin
-
Asignación.de pines
P1 YINT3
flSTd9.:
DALLAS
Dc80C310
4c-PIN DIP
Descripción
El DS80C3 1O es un microcontrolador rápido compatible con los microcontroladores
8OC31/8OC32. Este corresponde a un núcleo de procesador rediseñado sin desperdicios en
ciclos de reloj y de memoria. Como resultado ejecuta cada instrucción del 8051 entre 1.5 y
3 veces más rápido que la arquitectura original para la misma velocidad del cristal. En
aplicaciones típicas se ve una mejora de 2.5 veces usando el mismo código y el mismo
cristal. El DS80C310 ofrece una máxima velocidad del cristal d& 33 MHz, resultando en
una velocidad de ejecución aparente de 82.5 MHz (aproximadamente X2.5).
B.2
B.3 Memoria RAM no volátil DS1225Y.
II
DALLAS
~
DS81225Y
S W M de 64K No volatil
OEIIIICO(IDUCTOR
Asignación de pines
Características
IO Anos mínimo de retención en ausencia de
alimentación externa
Protección automática de datos durante la perdida
de alimentación
Reemplaza directamente memorias RAM estática o
EEPROM de 8 K X 8
Ciclos ilimitados de escritura
Empaque JEDEC estándar de 28 PDlP
Acceso de lectura y escritura de I50 ns
Descripción de pines
OE
-Direcciones
DQO-DQ7 -E/S de datos
CE
-Habilita chip
WE
-Habilita escritura
AO-A12
vcc
GND
NC
-Habilita lectura
-Alimentación (+5V)
-Tierra
-No conectar
Descripción
La memoria DS1225Y es una RAM estatica no volátil de 65536 bits, organizada
como 8192 palabras de 8 bits. Cada NV SRAM contiene una pila de litio y una circuitería
de control que monitorea constantemente VCC para detectar alguna condición errónea.
Cuando esta condición se presenta se conecta automáticamente la pila y se habilita una
protección de escritura para prevenir corrupción en los datos almacenados. Esta memoria
puede ser utilizada para reemplazar directamente cualquier memoria SRAM de 8KX 8 ya
que mantiene el empaque estándar de 28 pin-DIP. La memoria DS1225Y también
corresponde pin a pin con las memorias EPROM 2764 y EEPROM 2864. No hay limitación
en el número de lecturas que pueden realizarse y no se requiere circuitería especial para
conectarla con microprocesadores.
0.3
B.4 Convertidor Analógico/Digital MAX182.
ConvertidorN D 12 Bits, 4 canales
calibrados con T/H y referencia
Configuración de pines
VISTA
Características
SÜPERIOR
Calibración continua y transparente de
offset y ganancia.
CAZ
AlNO
AlNl
AIN2
AIN3
REFIN
AGND
DGND
Desempeño real de 12 bits sin ajustes
T/H y referencia interna
vcc
DB7
DB6
DB5
DB4
DB3
4 canales de entrada de alta impedancia
Interfaz estándar a microprocesador
Descripción general
VU0
vss
REFOUT
A0
AI
CLK
Bocp
BYSL
WR
es
m
DBO
DBI
DB2
El MAXI 82 es un convertidor Analógico/Digital de 4 canales, el cual incluye una
referencia de precisión de voltaje, track-and-hold y reloj de conversión. Una circuitería de
calibración interna mantiene un desempeño real de 12 bits sobre todo el rango de
temperatura de operación sin ajustes externos. Además, en las conversiones cada 60ps se
incluye un ciclo de autocero que reduce los errores de cero a valores menores de 100pV.
Se incluyen entradas de lectura, escritura y selección de chip (activas en bajo), para
un fácil interfaciamiento con microprocesadores sin lógica adicional. Datos de 2 bytes o 12
bits son proveídos a través de un bus de 8 bits con salida de tres estados. Cualquier byte
puede ser leído en cualquier orden. Dos líneas de direcciones controlan los 4 canales de
entrada del multiplexor. El rango de entrada analógico del MAXI 82 de OV a +5V cuando
se usa una referencia de +5V
Aplicaciones.
Procesamiento digital de señales.
Procesamiento de audio y telecomunicaciones.
Adquisición de datos con alta velocidad.
Control de procesos con alta precisión.
0.4
o
N
B.5 Convertidor DigitaiíAnalógico MAX527.
Convertidor DiA calibrado cuádruple
de 12 Bits, con Salida en Voltaje
Configuración de pines
Características
VISTA
SUPERIOR
Desempeño real de 12 hits sin ajustes
voms
VOUTA
vss
AGND
VREFAB
DGND
LDAC
D7
06
D5
D4
Salidas de voltaje aisladas
Rápido establecimiento de salida: 5ps
-
Compatible con microprocesadores y
TTLKMOS
Operación con alimentación de -+5V
Descripción general
vourc
VOUTO
Vno
CSMSB
CSLSE
-
m
VREFCD
A0
AI
DBIDO
DQIDI
DIOID2
011ID3
.
El MAX527 contiene cuatro convertidores Digital/AnalÓgico, de 12 bits con salida
en voltaje. Se incluyen buffers analógicos con salida de precisión en el chip para generar
salidas de voltaje. Opera con alimentaciones de I 5 V .
Destacan en este dispositivo la interfaz de doble aislamiento mediante un registro de
12 bits de entrada y un registro de 12 bits del CDA. Los datos en el registro del CDA
establecen el voltaje de salida del CDA. El MAX527 tiene un ancho de bus de 8 bits. LOS
datos son cargados en el registro de entrada usando dos operaciones de escritura con una
escritura carga los 8 bits menos significativos y con otra e s c r i h a carga los 4 bits más
significativos. Una carga asíncrona al CDA (LDAC) transfiere los datos del registro de
entrada al registro del CDA. Todas las entradas lógicas son compaiibles con TTL y CMOS.
Aplicaciones
Ajuste digital de ganancia y offset.
Generadores de funciones
Control de procesos industriales.
Equipos automáticos de pruebas
B.5
B.6 Generador PWM HEF4752.
Philip Semiconductors
*duct
epeciíiiion
H EF4752V
A.C. Motor control circuit
1 Ri
I/
El HEF4752 es un circuito para control de velocidad de motores de C.A. El circuito
sintetiza tres señales defasadas 120", cuyo valor de voltaje promedio vana senoidalmente
con el tiempo en un rango de frecuencias de O a 200 Hz. El método utilizado se basa en la
modulación por ancho de pulso (PWM), la cual es una onda puramente digital.
Todas las salidas son del tipo push-pull. Las entradas y salidas son protegidas contra efectos
electrostáticos en una amplia variedad de situaciones del manejo del dispositivo. Sin
embargo, para una total seguridad, es deseable tomar precauciones en su manejo.
a
4
OBC2
VAV
41
4 L
RSYN
4 OYMI
g
OYM2
4
4
4 csp
Entradas,
grupo I1
dato
dato
dato
5=CW dato
13=A
dato
15=B
dato
16=C dato
12=FCT reloj de frecuencia
17=VCT reloj de voltaje
4=RCT jl reloj de referencia
6=OCT reloj de retardo en la salida
24=L
25=1
7=K
OYCl
Salidas. grupo I
oyc2
23=RSYN
26=VAV
IS=CSP
4 VCT
J
Entradas,
grupo I
C
Diagrama de pines
Voltaje de alimentación
operación
Sincronización de fase R
voltaje promedio
Pulsos de muestre0 de corriente
Salidas, grupo I1
S=ORMl
9=ORM2
10=ORC1
11=ORC2
22=OYM1
21=OYM2
20=0YC1
IS=OYC2
3=0BM1
2=0BM2
I=OBCI
27=0üC2
4.5 al2.5V
8.6
principal. fase R
principal, fase R
conmutación, fase R
conmutacibn. fase R
principal, fase Y
principal, fase Y
conmutación. fase Y
conmutación. fase Y
principal. fase B
principal, fase B
conmutación. fase B
conrnutaci6n, fase B
B.7 Amplificador operacional OP490.
AMPLIFICADOR OPERACIONAL
CUADRUPLE DE BAJO VOLTAJE
I
II
Características
I
Configuración de pines
Alimentación sencillaldual +1.8V a
36V y 20.8V a ?18V
Baja corriente
80pA max
OP-490
de
OUT A
alimentación
-IN A
+IN A
Excitación de salida alta 5mA min
Alta ganancia de
700VlmV min
V+
lazo abierto
-IN D
+IN D
V-
+IN B
+IN C
-IN B
-IN C
OUT B
PSRR de 5.6pVN
OUT D
OUT C
amplificador es capaz de entregar más
de 5mA de salida de corriente a la carga.
El offset de voltaje de entrada está abajo
de 0.5mV con una deriva de offset de
5 p V K sobre el rango militar de
temperatura. La' ganancia es mayor de
700000 y el rechazo en modo común
(CMR) es
mejor que 1OOdB. Una
relación de rechazo de la fuente de
alimentación (PSRR) abajo de 5.6pVN
minimiza los cambios en el offset de
voltaje.
El OP-490 es un amplificador
operacional cuádruple que opera con
.6V
fuente de alimentación sencilla de +I
a +36V o con una fuente dual de 20.8V
a 218V. El rango de voltajes de entrada
incluye "la via negativa" permitiendo al
OP-490 acomodar señales de entrada
bajas a tierra en operación con
alimentación sencilla, La excursión de la
salida del OP-490 también incluye tierra
cuando opera con una alimentación
sencilla, habilitando la operación "zero-in,
zero-out".
Los requerimientos mínimos de
voltaje y corriente 10 hacen ideal para
aplicaciones de baterías y solares, como
en los instrumentos portátiles y censores
remotos.
El OP-490 consume menos de
20pA corriente de alimentación en
reposo por cada amplificador, pero cada
0.7
B.8 P a n t a l l a de cristal líquido AND491.
@ LCD de matriz de puntos
Configuración de pines
,
.,. ,<:
.
,
;;.
'
l::
,,:<<'i
'
-
Pantalla integrada compacta modular
* Alto contraste, limpia pantalla
14
,
AND491
Características:
I
_<,
16 caracteresx2 líneas
'
.
?!
I
Vista superior
AND491.
Bajo voltaje, alimentacibn sencilla +5V
* Amplio ramo de temperatura de o~eracibn
(0°C a + 5 6 ~ ) .
Caracter con formato de 57 ountos v
cursor de linea
Control LSI incorpo!ado, pantalla con RAM
y generador de caracteres ROM
* Interface directa de 4 u 8 bits al CPU
11 comandos de control
-in
Es una pantalla de cristal líquido de
matriz de puntos de bajo consumo de
potencia. El controlador tiene un generador
de caracteres RAMlROM y exposición de
caracteres RAM. Todas las funciones de la
pantalla son controladas por instrucciones.
I
3
7
8
9
10
II
12
13
B.8
Señal
CND
VDD
VO
RC
Fun ci ón
Tensión de
alimentación
+5v
Tensión excitadora
H. entrada de datas
L. entrada de comando
OV
R/w H.'ecturadedatos
L, escritura de datos
E
H, H-L. habilitación
DO
DI
D2
D3
D4
D5
D6
Bus de datos
'i
1
4 bits
1
II
8 bits
Apéndice C. Referencias.
C.1 Referencias bibliográficas.
[Astrom]
Astrom, Karl Johan and Wittenmark, BjOm, ‘‘Adaptative cOntrOI>’,
Addison Wesley, USA, 1 9 8 9 ~ .
[Auslander]
Auslander, David M. and Tham, H. Cheng, “Real-Time software
for control: program examples in C”, Prentice Hail, USA, 1990.
[Bimal]
Bose, Bimal K..(Edited by). “Microcomputer control of power
electronics and drives”, IEEE press 1987. Editorial Board.
[Breyl
Brey, Barry B. “Los microprocesadores’Inte1, 8086/8088, 80186,
80286, 80386 y 80486. Arquitectura, programación e
interfaces”. Editorial Prentice-Hall, 3a Edición, México, 1994c.
[Carbaliar]
Carbailar, José A. “El libro de las comunicaciones del PC.
Técnica, programación y aplicaciones”, Editorial AlfaOmega, 1”
Edición, México, 1 9 9 7 ~ .
//
[Cavanagh]
Cavanagh, Joseph J. F. “Digital computer arithmetic. Design and
implementation”, Editorial McGraw-Hill, USA, 1984c.
[Dual
Daza V. Ismael. “Sistema operativo para procesos concurrentes
(sopco-51), orientado a tiempo real”, Tesis de maestría,
CENIDET, Cuernavaca, México. 1990.
[Gonzáiez]
Gonzáiez V. José A. “Introducción a los microcontroladores.
Hardware, software, aplicaciones”, Editorial McGraw-Hill, 1”
Edición, España, 1992c.
[Hoangl
Le-Huy, Hoang, “Microprocessors and digital IC’s for motion
control”, Proceedings of the IEEE, VOL.,82, No.8, August 1994,
pp. 1140-1 163.
[Hwangl
Hwang, Kai, “Arquitectura de computadoras y procesamiento
paralelo”, Mc Graw-Hill, México, 1988.
.[Marcus]
Johnson, Marcus. “Assembly Language: For real programers
only”, SAMS publishing, USA, 1993.
[Milan]
Milenkovic, Milan. “Sistemas operativos: Conceptos y diseños”,
Editorial Mc. Graw Hill, España, 1 9 8 8 ~ .
”
c.1
[Molina et. ai.]
Molina, Pedro A.; González, Oscar J. y Mejía Pedro, “Desarrollo
de una computadora de multiprocesadores y herramienta de
software para equipos de adquisició& y control”, Instituto de
Investigaciones Eléctricas.
[Ogatal
Ogata, Katsuhiko, “Ingeniería de control moderna”, Editorial
Prentice Hail, México, D.F. c1980.
[Pinkert]
Pinkert, James R. and Wear, Larry L. “Operating systems.
Concepts, policies, and mechanisms”, Prentice Hail, USA, 1989.
[Porat]
Porat, Zvi. “Simple guidelines help you implement a
multitasking system”. EDN (Electronic Design), December 1O,
1992, pp. 96-103.
Ripps, David L. “Real-Time programming, message buffers and
mailboxes”, EDN Electronic Design, January 21, 1991, pp, 115124.
Ripps, David L. “Real-Time programming, semaphores and
controlled shared variables”, EDN Elktronic Design, February 4,
1991, pp, 85-90.
Ripps, David L. “Real-Time programming, task coordination
and communication via signals”, EDN Electronic Design,
February 18, 1991,pp, 157-162.
Ripps, David L. “Real-Time programming, task coordination:
specific methods, general principles ”, EDN Electronic Design,
March 1, 1991, pp, 97-110.
Echavarría S., Rodolfo A. “Diseño e implementación de un
accionador de motor operando en régimen permanente”, Tesis
de maestría. CENIDET, Cuemavaca, México.1995. .
[Tanenbaumi]
Tanenbaum, Andrew S. “Sistemas operativos modernos”,
Prentice-Hall, México, 1992.
[Tanenbaum2]
Tanenbaum, Andrew S. “Redes de ordenadores”, Editorial
Prentice Hall, 2” Edición, México, 1991c.
[Wanvick]
Wanvick, K. and Rees, D. “Industrial digital control systems”,
Peter Peregrinus Ltd. England, 1988c.
[Ziii]
Zill, Dennis G. “Ecuaciones diferenciales con aplicaciones”,
Grupo Editorial Iberoamérica, 2” edición. México, 1988.
c.2
C.2. Referencias técnicas.
[Analog1
“Amplifiers reference manual”, Analog Devices, USA, 1992.
[AND1
“Character LCD modules interface data, LCD dot matrix
modules”, AND.
[Intell]
“Microcontroller handbook”, Intel corporation, USA, 1983
[Intel21
“Peripherals handbook”, Intel corporation, USA, 1990.
[Philips]
“HE4000B Logic Family CMOS”, Philips Semiconductors,
January, USA, 1995.
[Texas]
“TTL Logic, data book”, Texas Instruments, USA, 1987.
C.3. Referencias en internet.
[Analog]
Dirección: “http://www.analog.corn/”.Analog Devices
[Dallas]
Dirección: “http://www.dalsemi.com/”. Dallas Semiconductors.
[Maxim]
Dirección:
Products.
“http://www.rnaxim-ic.com/”.
c.3
Maxim
Integrated
.-
Apéndice D.Glosario.
D.l Definiciones y abreviaturas.
ASCII. (American Standard Code for Information Interchange; eódigo americano estándar
para intercambio de información) Estándar que define ,;cómo representar dígitos,
letras, signos y signos de puntuación en computadoras. Aunque existen otros
esiándares, el ASCII es el más popular.
ASIC. (Application Specific Integrated Circuit, Circuito integrado de Aplicación
Especifica). Es un chip diseñado para desempeñar una hnción específica, como en
el caso de los generadores de PWM. Vea apéndice B.
14
Bps. (Bits per second; Bits por segundo) Unidad de medida que indica los bits por segundo
transmitidos por un equipo.
Buzón. Estructura de datos en memoria, compartida por distintos procesos de software para
la transferencia de información entre ellos.
Código. Un conjunto de símbolos de máquina que represen& datos o instrucciones.
También puede ser, cualquier representación de un conjunto de datos a través de
otros.
Contexto. Conjunto de registros del microcontrolador involucddos en la operación de
todos los procesos de usuario.
CPU. (Central Process Unit, Unidad Central de Procesamiento). Estas siglas se usan como
sinónimo para referirse al microcontrolador.
FIFO. (First In, First Out, primero en entrar, primero en salir). Técnica de manejo de filas
en la que el siguiente proceso extraído es el que tiene mayór tiempo en la fila.
Multitarea. Modo de operación que provee el ambiente para la ejecución concurrente de
tareas o procesos de software.
Núcleo del software. El núcleo de software es el corazón del sistema operativo, el cual
coordina los diferentes procesos de los otros subsistemas. "De una manera central,
en el diseño del kernel o núcleo del software están los códigos que optimizan ei
acceso a los servicios para la actividad del usuario.
Pila. Lista de objetos manejados por la política Last In, First Out (último en entrar, primero
en salir). Es utilizada para el control de los saltos realizados por las llamadas que
hacen los procesos y por las interrupciones presentadas.
1
I
1
I
la parte del software operativo que determina el orden en que se ejecuan
Planificador.
los procesos de usuario, de acuerdo a una cierta política utilizada.
Pointer. Registro apuntador que contiene el valor de cierta localidad de memoria.
Proceso. Es un segmento de código que en cierto momento se encuentra en ejecución,
Productividad. Número de procesos de usuario que realiza el sistema por unidad de
tiempo.
PWM. (Pulse Width Modulation, Modulación por Ancho de Pulso). Tecnica de
modulación en la que se varia la duración del pulso de salida.
Semáforo binario. Es un semáforo que toma sólo el valor de 1 Ó O.
Semáforo. Es una variable para la señalización entre procesos que generalmente se usa
como contador. El semáforo puede bloquear o desbloquear procesos.
Software operativo, sistema operativo. Conjunto de programas que controlan la ejecución
de los procesos de software y administran los recursos de hardware.
Stack. Igual que pila
Tarea. Igual que proceso
de espera. Tiempo que pasa un tarea de usuario para que ]e sea asignado el
procesador.
del cpu. ES el tiempo medio durante el cual el procesador se encuentra
ejecutando tareas de usuario.
D.2
Descargar