Beruflich Dokumente
Kultur Dokumente
un microcontrolador de 8 bits
28 de mayo de 2002
Resumen
1. Introducción 2
2. Descripción de la Arquitectura 4
2.1. RTUs de comunicación vı́a trunking . . . . . . . . . . . . . . . . . . 5
2.2. RTUs de comunicación por red Ethernet . . . . . . . . . . . . . . . . 5
2.3. Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.1. Microcontrolador en RTUs de tipo trunking (PIC16F876) . . . 6
2.3.2. Microcontrolador en RTUs de tipo Ethernet (PIC16F877) . . . 7
4. Canales de Comunicación 13
4.1. Trunking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1.1. Sistema MPT 1327 . . . . . . . . . . . . . . . . . . . . . . . 15
4.2. Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5. Protocolo de Comunicaciones 18
5.1. Protocolo TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1.1. Simplificaciones Protocolo IP . . . . . . . . . . . . . . . . . 19
5.1.2. Simplificaciones Protocolo TCP . . . . . . . . . . . . . . . . 21
5.2. Esquemas de comunicaciones tipo . . . . . . . . . . . . . . . . . . . 22
5.2.1. Comunicaciones de datos . . . . . . . . . . . . . . . . . . . . 23
5.2.2. Comunicaciones de alarmas . . . . . . . . . . . . . . . . . . 24
5.2.3. Comunicaciones de configuración . . . . . . . . . . . . . . . 25
7. Conclusiones 31
1
Capı́tulo 1
Introducción
Coste mı́nimo posible debido a lo numeroso de los centros en los que se ten-
ga que implementar esta tecnologı́a ( unos 1500 centros en el área central de
Asturias ).
2
La solución propuesta se basa en una arquitectura tipo microcontrolador a la cual llegan
las diversas señales del sistema y el cual es capaz de enviar la información al centro de
control.
Los canales de comunicación sobre los que se debe implementar la transmisión de
datos son muy diferentes entre si, y el sistema debe de ser capaz de utilizar los dos con
los mı́nimos cambios posibles en su diseño. Los medios utilizados son la comunicación
a través de la red de radio de la compañı́a y la utilización de la red de cable disponible
para su transmisión a través de Internet.
3
Capı́tulo 2
Descripción de la Arquitectura
4
(a) Esquema de las entradas analógicas (b) Esquema de las entradas digitales
5
Cuando el controlador Ethernet CS8900A reciba una trama de la red, calculará su
CRC, y si este es válido, desencapsulará el contenido de la trama, filtrando la cabece-
ra Ethernet, e indicando al microcontrolador por medio de una lı́nea de interrupción
que se ha recibido un paquete. De este modo, el microcontrolador podrá leer de la
memoria del controlador el paquete ya desencapsulado y operar con él. A la inversa,
cuando el microcontrolador quiera enviar un paquete a través de la red Ethernet, lo
escribirá en el buffer del controlador y le dará una orden de envı́o, con lo que este últi-
mo lo encapsulará en tramas Ethernet y se encargará de enviarlo de modo transparente
al microcontrolador. La adaptación hacia el exterior del controlador se compone de un
transformador aislador 10BASET conexionado al conector RJ45 de interface con la red
Ethernet.
El número de entradas disponibles en las versiones Ethernet es 8 (se podrı́an cablear
dos transformadores al mismo equipo remoto), mientras que incorporan 6 entradas
digitales.
La alimentación de estos equipos se realizará siempre a 12 Vcc.
2.3. Microcontrolador
El microcontrolador es el circuito electrónico más importante de la RTU. Se en-
carga de ejecutar el programa que gestiona la recogida de las muestras de corrientes y
la detección de alarmas urgentes. Todos los periféricos conectados a él se comportan
como esclavos, siendo el microcontrolador quien gobierna todas las acciones, señales
y/o eventos que se pudieran producir en el equipo remoto en su instalación definitiva
en campo.
Dependiendo del tipo de RTU considerada (trunking o Ethernet), el microcontro-
lador incorporado a ella es distinto, básicamente en cuanto al número de pines totales
que presenta. De este modo, el microcontrolador usado en las RTUs trunking es un
PIC16F876 de la compañı́a Microchip, mientras que en las RTUs Ethernet se utiliza un
PIC16F877 del mismo fabricante.
La elección de estos microcontroladores para su integración en las RTUs se ha
basado en su fácil programación y bajo coste, que los hacen ideales para implementar
todo tipo de trabajos en aplicaciones industriales.
6
3 puertos de entrada/salida de propósito general.
3 temporizadores. 2 puertos serie.
Conversor analógico/digital de 10 bits con capacidad para 5 entradas analógicas.
Se distribuye en diversos encapsulados de 28 pines.
7
Capı́tulo 3
Descripción de la aplicación
particular
8
(a) Sensor de intrusismo colocado en la (b) Aspecto del Transformador con los
portilla de acceso al recinto. sensores de corriente.
21 paquetes de datos de 296 bytes cada uno, conteniendo las muestras de corrien-
9
tes de fase recogidas durante una semana.
1 paquete extra o auxiliar de datos (296 bytes), para enviar cualquier otro tipo de
información que no sean datos de corrientes o códigos de alarmas generadas.
1 paquete de alarmas (44 bytes), conteniendo el código de la alarma generada.
1 paquete de sincronismo (44 bytes), paquete especial para el inicio de una co-
municación.
1 paquete de flags (40 bytes), para enviar como paquete de reconocimiento o de
final de una comunicación.
10
Tabla 3.1: Direcciones de los paquetes
PAQUETE Dirección de comienzo Dirección de final
o
Paquete n 1 de datos 0000h 0127h
Paquete no 2 de datos 0128h 024F h
Paquete no 3 de datos 0250h 0377h
Paquete no 4 de datos 0378h 049F h
Paquete no 5 de datos 04A0h 05C7h
Paquete no 6 de datos 05C8h 06EF h
Paquete no 7 de datos 06F 0h 0817h
Paquete no 8 de datos 0818h 093F h
Paquete no 9 de datos 0940h 0A67h
Paquete no 10 de datos 0A68hS 0B8F h
Paquete no 11 de datos 0B90h 0CB7h
Paquete no 12 de datos 0CB8h 0DDF h
Paquete no 13 de datos 0DE0h 0F 07h
Paquete no 14 de datos 0F 08h 102F h
Paquete no 15 de datos 1030h 1157h
Paquete no 16 de datos 1158h 127F h
Paquete no 17 de datos 1280h 13A7h
Paquete no 18 de datos 13A8h 14CF h
Paquete no 19 de datos 14D0h 15F 7h
Paquete no 20 de datos 15F 8h 171F h
Paquete no 21 de datos 1720h 1847h
Paquete extra (auxiliar de datos) 1848h 196F h
Paquete de alarmas 1970h 199Bh
Paquete de sincronismo 199Ch 19C7h
Paquete de flags 19C8h 19EF h
11
Tabla 3.2: Distribución en memoria de los paquetes.
0x04A0
Paquetes de Datos 5 . . . 20
0x1720 0x1720
Paquete de Datos 21
0x1848
Paquete Extra ( Auxiliar de Datos )
0x1970
Paquete Extra ( Auxiliar de Alarmas ) 0x199C
Paquete de Sincronismo
0x19C8 Paquete de Flags
0x19F 0
0x1A00 Paquete de Alarmas
12
Capı́tulo 4
Canales de Comunicación
4.1. Trunking
El canal de comunicación Trunking es un medio de transmisión mediante enlace
de radio, cuyo mecanismo de control hace referencia al reparto automático de canales
en un sistema de múltiples repetidores. Las ventajas de este sistema son un menor
tiempo de acceso al medio y una capacidad por canal mas alta para una determinada
calidad de servicio. Se trata de un canal de comunicación basado en la idea de circuitos
conmutados de los canales telefónicos tradicionales.
Las presunciones realizadas por el sistema para realizar este tipo de control son las
siguientes:
Cada usuario usa el sistema un tiempo reducido.
No existen un gran número de usuarios usando el sistema al mismo tiempo.
La figura 4.3 muestra el tráfico existente en un sistema de 5 canales y la probabili-
dad de que los cinco canales estén ocupados simultáneamente.
Como se puede ver, si un canal es reservado para un único usuario, la probabilidad
de ques esté ocupado es mucho mayor que si se emplea de modo truncado
Los sistemas de radio trunking cuentan con dos tipos de canales
13
(a) Sistema trunking de 5 canales y probabilidad de ocu-
pación de todos ellos de manera simultánea.
14
4.1.1. Sistema MPT 1327
En el caso de la red trunking de Hidroeléctrica del Cantábrico, el sistema utilizado
es el sistema estándar público MPT 1327[1], desarrollado por el Departamento de
Comercio e Industria del Reino Unido. Las principales caracterı́sticas del canal de
control, son las descritas en la tabla 4.1
El canal de control se encuentra dividido en ranuras de 128 bits cada uno, dado que
la velocidad de transmisión es de 1200bps, la duración de cada ranura es de 107ms.
Las instrucciones que se envı́an en cada uno de los paquetes incluyen las siguientes:
ALOHA. La estación base se encuentra preparada para recibir una petición de
llamada.
ALOHY. La estación base está llamando a un dispositivo de la red.
ACKNOWLEDGE. El mensaje ha sido recibido.
CLEAR. Fin de la llamada.
GO TO CHANNEL. Indica a un dispositivo que cambie su canal
REQUEST. Petición de un dispositivo a la estación base para comenzar una
llamada.
El mecanismo de acceso al medio, para el canal de control, es un pseudo Aloha
ranurado. Mediante este mecanismo se remite a los dispositivos del sistema las dife-
rentes ranuras de tiempo disponibles para acceder al canal de control. En el caso en que
exista mas de una disponible, es el propio dispositivo el que elige, de manera aleatoria,
la ranura en la que envı́a el mensaje.
La secuencia tı́pica de inicio de transmisión es la siguiente:
Un dispositivo desea contactar con otro o un grupo de ellos.
El dispositivo que desea realizar la llamada escucha por el canal de control el
mensaje de ALOHA, seleccionando la ranura para transmitir.
En el momento apropiado, se transmite un mensaje de REQUEST con la identi-
ficación del otro dispositivo o del grupo de ellos.
La estación base retransmite un mensaje de AHOY con la identidad de el/los
dispositivo/s requeridos.
El dispositivo que realiza la llamada sabe que su petición ha sido atendida me-
diante la escucha del mensaje AHOY.
El dispositivo receptor escucha el mensaje AHOY y transmite un mensaje ACK-
NOWLEDGE hacia la estación base.
15
La estación base transmite un mensaje GO TO CHANNEL a todos los dispositi-
vos involucrados en la transferencia.
El canal de control en este tipo de sistemas puede estar configurado de dos maneras
Canal dedicado. El canal de control solo transmite información relativa al estado
del sistema
Canal no dedicado. El canal se puede usar también para tráfico, ya sea de voz o
de datos.
En el caso de la aplicación desarrollada, todas las comunicaciones se realizaron a
través del canal de control, al estar configurado como un canal no dedicado. La solución
comercial usada fue el equipo Actionetr[2] de Nokiar, y en concreto se utilizó el
modelo R40 de la misma compañı́a para acceder a la red Trunking ( ver foto 4.2 ),
usando un modem estándar de modulación FFSK como interface entre el puerto serie
y el equipo de radio. Las caracterı́sticas básicas del conjunto modem - radio empleados
son las siguientes
Comunicación half duplex.
Contro de flujo hardware. Para conseguir activar el contacto PTT del equipo de
radio, el modem debe de mantener activada la lı́nea RTS hasta que reciba un CLS
por parte de la radio. El tiempo muerto necesario entre la recepción del CLS y el
envı́o del primer caracter fue ajustado experimentalmente a un valor de 100ms.
4.2. Ethernet
Con la intención de aprovechar la red de cable de la compañı́a como medio para
realizar la comunicación entre los diferentes C.T. y el ordenador de control, se puso
como requerimiento al prototipo desarrollado el que fuera capaz de intercambiar datos
a través de una red Ethernet. Como alternativas al interface entre el microcontrolador
y la red, se barajaron dos opciones:
Empleo de dispositivo comercial que hiciera el interface entre el puerto serie y la
red Ethernet, encontrándose dentro de él todo la pila TCP/IP y el el encapsulado
en tramas Ethernet.
16
(a) Se solicita el inicio de una trans- (b) Se asigna un canal libre para la co-
ferencia de datos, mediante el pulsado municación a todos los integrantes del
del PTT grupo.
17
Capı́tulo 5
Protocolo de Comunicaciones
18
(a) Aspecto de interface puerto serie - (b) Esquema de la solución de Lantro-
Ethernet de la casa Lantronix.Solución nix
de alto coste
1526 bytes, por lo que el suprimir el mecanismo de fragmentación es una simplificación aceptable.
19
(a) Tarjeta para la interconexión del (b) Tarjeta para la interconexión del
Chip de Crystal al Microcontrolador. Chip de Crystal al Microcontrolador.
FLAGS. Campo con tres bits relativos a la fragmentación del datagrama. Con
el valor uno en el segundo de los bits se indica que el paquete no debe de ser
fragmentado.
20
DIRECCIÓN IP DESTINO. Destinatario del datagrama. El valor de este campo
es comprobado por los nodos situados en los CT como medio para reconocer a
quien se dirige la trama. En el caso de emplear como medio de comunicación
el canal trunking, y al estar configurados todos los nodos dentro de un mismo
grupo, el microcontrolador solo debe de responder en el caso en el que la trama
tenga su dirección IP.
OPCIONES. El valor de este campo no se ha usado en la implementación del
protocolo.
Los valores de los diferentes campos de la cabecera son los enumerados a conti-
nuación
PUERTO FUENTE. Número de puerto del origen de datos. Su uso es debido a
la posibilidad de multiplexar varias comunicaciones de datos. En nuestra apli-
cación, se asignaron números de puerto configurables para la comunicación de
21
datos y para los diferentes tipos de alarma, siendo estos puertos configurables
por el usuario.
PUERTO DESTINO. Número de puerto del destino de datos.
NÚMERO DE SECUENCIA. Número de secuencia del primer octeto del data-
grama. Existen indicaciones de como elegir el valor inicial del número de se-
cuencia, de manera que no se puedan repetir a lo largo de una comunicación. En
nuestro caso, y dado que las comunicaciones de datos son cortas, simplemente se
hace corresponder el número inicial con el de puerto de la comunicación actual.
NÚMERO DE ACK. Número de secuencia del siguiente paquete que se espera
recibir.
DESP. Desplazamiento en unidades de 4 bytes hasta el comienzo de los datos.
RES. Espacio reservado para usos futuros, debe de tener el valor cero.
CÓDIGO. Bits de control. El único uso especial en nuestra implementación es el
bit de EOL (End of Letter ), el cual indica que se ha llegado al final del segmento
actual, obligando al protocolo TCP a pasar los datos a la capa superior. De esta
manera se evita que el protocolo acumule varios paquetes antes de enviarlos a
la capa de aplicación, obligando de esta manera a que cada paquete enviado
por el microcontrolador sea respondido de manera individual. Con este flag, se
simplifica la implementación del protocolo en el micro, evitando el tener que
mantener una cola con los paquetes enviados hasta la recepción de un ACK
WINDOW. Número de octetos de datos, a partir del número indicado en el ACK,
que el cliente puede aceptar. Este número se utiliza para la implementación del
algoritmo de ventana deslizante del protocolo, que en nuestro caso no ha sido im-
plementado, ya que el número de paquetes aceptado es uno ( tamaño del buffer
de entrada del microcontrolador ). Para evitar que la implementación del proto-
colo realizada por el ordenador inunde la del micro, se ha utilizado el flag EOL
en todos los paquetes de datos.
CHECKSUM. Checksum de cabecera y datos.
PUNTERO URGENTE. No implementado.
OPCIONES. No implementadas.
22
5.2.1. Comunicaciones de datos
El esquema tipo de una comunicación de datos es el mostrado en las siguientes
figuras. Una conversación para el intercambio de datos comienza cuando el ordenador
de control requiere a cualquiera de las unidades remotas los valores de la curva de carga
del transformador. Es por tanto, una comunicación que se inicia por parte del ordenador
de control, y que se vera finalizada cuando se reciba el ultimo paquete de datos, si no
se produce ningun error en la misma. El inicio tı́pico, en ausencia de errores, es el
mostrado en la figura 5.3. A continuación el ordenador envı́a un mensaje de saludo,
que en caso de ser reconocido como un patrón correcto por la unidad remota, permite
el inicio de la transacción. Finalmente, y como ultimo de los procesos de inicio de la
comunicación, se procede a realizar las configuraciones que sean necesarias. En caso de
que no se desee realizar ninguna, se envı́a el paquete que contiene como datos la cadena
”FINCONF”, pudiendo comenzar el intercambio de información; segun el esquema de
la figura 5.6. Como se ve en el esquema anterior, el final de la comunicación se produce
cuando la unidad remota envı́a un último paquete de datos, el cual contiene el bit de
FIN activado.
23
Figura 5.5: Esquema de una comunicación de configuración.
24
Figura 5.7: Inicio de la conexión de alarmas.
25
Capı́tulo 6
Como último punto del estudio del protocolo desarrollado, se muestra la estructura
de los paquetes intercambiados entre el equipo remoto y el PC de control. Todos los
paquetes que enviará la RTU estarán almacenados en la memoria EEPROM externa
24LC64 en la forma que se ha citado en el apartado Memoria de almacenamiento de
datos.
Se han representado los datos las corrientes por las fases R, S, T y neutro respecti-
vamente. Los ı́ndices h y l hacen referencia al byte alto y bajo del valor de la corriente
correspondiente. Como la capacidad de un paquete de datos es de 256 bytes, en él irán
contenidos, manteniendo siempre la secuencia antes representada, los valores corres-
pondientes a 32 muestras recogidas a intervalos de 15 minutos, es decir, a las muestras
de corrientes almacenadas en un intervalo de 8 dı́as. En los 3 primeros paquetes de da-
tos irán contenidos los valores relativos a un dı́a completo, mientras que en la totalidad
de los 21 paquetes se almacenarán los datos recogidos durante una semana.
26
6.2. Mensajes de alarma
Son los mensajes enviados por el equipo remoto cuando se produce una alarma. Los
mensajes tendrán una longitud de 48 bytes, correspondiendo 40 de ellos a cabecera y 8
a datos.
Los datos enviados serán el código de alarma (en el primer byte), más la fecha y
hora en que se ha generado la alarma (7 bytes restantes). Los códigos de las diferentes
alarmas se muestran en la siguiente tabla:
La estructura del campo datos de cada paquete será la siguiente: Los bytes corres-
27
Tabla 6.4: ESTRUCTURA MENSAJES DE SINCRONIZACIÓN
Los distintos bytes del campo datos de cada paquete tienen el siguiente significado:
28
IP3 : Tercer octeto de la dirección IP.
IP4 : Octeto menos significativo de la dirección IP a configurar.
N D : Byte sin ningún significado dentro del mensaje. Puede ser cualquier valor.
Los distintos bytes del campo datos de cada paquete de configuración de puertos
tienen el siguiente significado:
29
vez finalice dicha comunicación. Por lo tanto, si el equipo remoto detecta que
está recibiendo un mensaje de este tipo, almacenará estos parámetros en las di-
recciones temporales de su EEPROM interna, y continuará la comunicación por
el mismo número de puerto que lo estaba haciendo. Una vez que vuelva al estado
CLOSED, entonces copiará los parámetros escritos en las direcciones tempora-
les en las direcciones correspondientes (fijas) de la misma memoria EEPROM.
La próxima comunicación que se establezca ya será realizada a través de los
números de puerto que se le hayan pasado previamente.
N umerodebytes : Número de bytes a escribir en la EEPROM interna del mi-
crocontrolador. Este campo se usa como parámetro en la función de escritura en
dicha EEPROM. Su valor habrá de ser en este caso 2, que es el número de bytes
que se configurarán (serán los 2 bytes que vendrán a continuación en el mensaje,
que compondrán el número de puerto a configurar).
P uertoH : Octeto más significativo del número de puerto a configurar.
P uertoL : Byte menos significativo del número de puerto.
N D : Byte sin ningún significado dentro del mensaje. Puede ser cualquier valor.
Mensaje de bienvenida
En todas las comunicaciones establecidas entre E.R.A.C.C. y cualquier RTU, y en
el sentido descrito (PC de control -¿Equipo remoto), se enviará un mensaje especial de
bienvenida que habrá de ser reconocido por la RTU antes de proseguir en la comuni-
cación. El mensaje de bienvenida contendrá 47 bytes, de los cuales 7 son datos. Estos
serán la cadena de caracteres HELLOHC, que se interpretará como dicho mensaje de
bienvenida. Si este no es enviado por el PC, o la recepción no es correcta, la RTU no
contestará a petición del puesto de mando. La razón de ser de este mensaje es que sirve
para establecer un pequeño filtro de acceso a cada equipo remoto, con el fin de que las
RTUs Ethernet no puedan ser accedidas fácilmente a través de la red por equipos no
autorizados. Aunque para los equipos remotos trunking esta especificación no es im-
portante, se sigue manteniendo por compatibilidad en el código fuente empleado para
ambas versiones.
30
Capı́tulo 7
Conclusiones
31
Bibliografı́a
32