
POLITECNICO DI TORINO III Facolt`adi Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Magistrale Clock Synchronization Error Measurement Techniques for RBIS Relatore: prof. Stefano Scanzio Blanca Aguirre Selgas Aprile 2015 II Summary Este Trabajo Fin de Master (TFM) se centra en la sincronizaci´onde relojes, un tema que ha ido ganando importancia en algunos campos del sector industrial como la automatizaci´on,la rob´oticay las redes de sensores. Este ´areaes especialmente importante en los sistemas de control automatizados, en los cuales el conocimiento de la hora exacta de un evento es crucial para el correcto funcionamiento del proceso de control. La idea general es que, mediante Protocolos de Sincronizaci´on(CSP), se obtiene una visi´oncom´undel tiempo, lo cual hace posible llevar a cabo acciones de forma sincronizada y correlacionar las muestras obtenidas en sensores remotos. Estos protocolos que lo hacen posible utilizan las fechas (timestamps) obtenidas en los eventos comunes (por ejemplo, un mensaje espec´ıficode la red) para corregir el reloj de los diferentes nodos. En los ´ultimosa~nos,varios protocolos han aparecido en la literatura cient´ıfica,los cuales se han desarrollado detaladamente en el Cap´ıtulo 2. El funcionamiento de un protocolo de sincronizaci´onse define por dos bloques principales: el propio protocolo y el algoritmo de control (CDA), que en la mayor´ıa de los casos son independientes. El CDA es el algoritmo matem´aticoque calcula la diferencia u offset entre los relojes de las m´aquinasa sincronizar. Esta tesis se centrar´aen el desarrollo y el an´alisisde varios CDAs. Desafortunadamente, los algoritmos de control que emplean los protocolos son normalmente evaluados s´oloen simuladores y con algunas suposiciones poco real- istas (por ejemplo, la independencia de la frecuencia de oscilaci´ondel oscilador de cuarzo respecto a la temperatura, el suministro de tensi´on,...). En este proyecto, sin embargo, se analiza el comportamiento del protocolo en una instalaci´onreal. En particular, el protocolo empleado en esta tesis es RBIS (Reference-Broadcast Infrastructure Synchronization, [5]), el cual se emplea en redes WiFi 802.11. Este protocolo ha sido dise~nadopara ser usado en redes industriales, en particular en aquellas que tienen conexi´oncon cable y conexi´onWiFi al mismo tiempo, y cada vez est´atomando mayor importancia en este campo. Adem´as,RBIS ha sido desarrollado para WLANs dotados de un Accesss Point (AP). De hecho, RBIS es capaz de sincronizar redes h´ıbridasporque combina car- acter´ısticasde RBS y PTP (protocolos de sincronizaci´onprevios explicados en el Cap´ıtulo 2). Por un lado, registra los timestamps s´olocu´andorecibe una se~nal III (como en RBS), lo cual supone la obtenci´onde mejores resultados que otras modal- idades, incluso teniendo en cuenta que no compensa los errores de propagaci´on. Merece la pena subrayar que estos retrasos no suponen un aumento relevante del error, puesto que las distancias entre los AP y los nodos a sincronizar no son especial- mente significativas. Este error de propagaci´onsignifica, como m´aximo,un retraso de algunos cientos de nanosegundos. Por otro lado, la topolog´ıat´ıpicade una red est´aformada por varios nodos esclavos que se sincronizan todos con el mismo reloj master, estructura que se da tambi´enen el protocolo IEEE 1588 PTP. Empleando el protocolo RBIS, algunos algoritmos de control propuestos y sim- ulados en[16] - espec´ıficamente aquellos basados en regresi´ony en redes neuronales - ser´anevaluados en una instalaci´onreal (expuesta en [6]). Esta instalaci´ones un escenario de aplicaci´onque permite asegurar que los resultados son v´alidospara la mayor´ıade protocolos de sincronizaci´on.El banco de pruebas empleado para el de- sarrollo de este proyecto fue cedido por el Consiglio Nazionale delle Ricerche (CNR), en el Polit´ecnicode Tur´ın,para que el alumno realizara los diferentes experimentos que le han permitido llegar a una conclusi´ons´olidacon mejoras tangibles en cuanto a los algoritmos de control a emplear en este protocolo. F´ısicamente, est´acompuesto por dos CPUs y un sistema de adquisici´onde datos (un tercer CPU). Uno de los dos procesadores de datos nombrado act´uacomo nodo master y el otro como nodo esclavo. Ambos ordenadores est´anequipados con un procesador Inter Core2Duo E7500, trabajando a 2.93GHz. Adem´as,un equipo WiFi IEEE 802.11n sirve de enlace entre las dos m´aquinasa la hora de realizar los experimentos. Por ´ultimo,un punto de acceso es el encargado de generar los mensajes de sincronizaci´on. Con esta configuraci´on,mostrada de manera esquem´aticaen la Figura 5.1, se lleva a cabo el proceso: una vez el punto de acceso ha enviado el mensaje de sin- cronizaci´ony ´esteha sido recibido por las CPUs, cada uno de ellos registra un timestamp, con un identificador ´unico.A continuaci´on,estos timestamps y sus iden- tificadores son colocados en un buffer local. Comienzan entonces los subprocesos de env´ıoy recepci´onde mensajes de seguimiento. Estos mensajes, enviados cada se- gundo por el nodo master, contienen los m´asrecientes nt timestamps registrados en el mismo. Cuando el esclavo recibe este mensaje, incluye la informaci´onen su buffer y elimina los posibles duplicados (el protocolo incluye un sistema de control para evitar la p´erdidade informaci´onque hace que cada dato se env´ıem´asde una vez). Siempre desde el procesador esclavo, el pr´oximopaso es el de hacer corresponder los registros del master con los del esclavo mediante los identificadores. Con estas parejas de datos, el nodo esclavo actualiza su reloj virtual en base al algoritmo de control empleado en ese momento. En este punto, cabe destacar que el objetivo de este trabajo es, de hecho, el de es- tudiar y comparar algunos CDAs desde el punto de vista del error de sincronizaci´on. As´ı,la parte principal del trabajo consiste en el estudio de las diferentes t´ecnicas, que son despu´esdesarrolladas, implementadas e integradas en el protocolo RBIS: IV Figure 1. Esquema del banco de experimentos empleado en el desarrollo del TFM. V 1. Regresi´onlineal: a grandes rasgos, es un procedimiento matem´aticopara encontrar la curva que mejor se adapta a una colecci´onde puntos, minimizando la suma de los cuadrados de las distancias del punto a la curva. Este es el m´etodo que estaba ya integrado en el protocolo. La mejora que se llev´oa cabo fue la traducci´onde esa parte del c´odigoa Python, con los cambios correspondientes en el software de base y la sustituci´onde variables y procesos para conectar ambos lenguajes. Esta integraci´onse llev´oa cabo llamando al int´erpretede Python desde el c´odigoescrito en C. La decisi´onde emplear Python como lenguaje fue impulsada por el hecho de que Python es un lenguaje de programaci´onmuy potente, intuitivo y sencillo de aprender. Adem´as, permite desarrollar y testar algoritmos de control con m´asfacilidad que otros lenguajes. 2. Regresi´onde segundo y tercer orden: en estad´ıstica,la regresi´onpolino- mial es una variante de la regresi´onlineal, en la cual la relaci´onentre la variable independiente x y la variable dependiente y se modela como un polinomio de en´esimogrado. Este algoritmo no hab´ıasido empleado en el campo de la sincronizaci´onde relojes hasta el momento. En cualquier caso, la implementaci´oncon Python fue muy sencilla, pues se emplea la misma funci´onque se necesita para calcular la regresi´onlineal. 3. Filtro de Kalman: es un algoritmo de estimaci´oncuadr´aticaque usa una serie de medidas recogidas en el tiempo, que contienen ruido y otras impreci- siones, y produce estimaciones de variables desconocidas que suelen ser m´as precisas que las que se basan en una sola medida. Este m´etodo, implementado en Python, fue integrado en RBIS y evaluado en la instalaci´onreal. 4. Redes Neuronales: las redes neuronales se componen de unidades b´asicas,en alg´unmodo parecidas a las neuronas reales, que se unen mediante conexiones cuyo peso es modificable, como un resultado de un proceso de aprendizaje. Por lo tanto, este m´etodo requiere un paso previo de training, durante el cual los datos obtenidos de la instalaci´onse emplean para calcular el peso mejorado de las conexiones y guardarlo en un archivo. Despu´esde eso, la parte del test del algoritmo consiste en el c´alculodel tiempo del nodo slave basado en el tiempo del nodo master. Todos estos programas han sido escritos en Python. El ´ultimopaso de este trabajo fue la implementaci´ondel c´odigode los nuevos algoritmos de control y el estudio de su funcionamiento una vez integrados en el software. Es interesante resaltar que es la primera vez que las redes neuronales son experimentadas en un contexto real (hasta ahora s´olose hab´ıan hecho simulaciones). VI Para analizar estos m´etodos, el banco de experimentos cuenta con el sistema de adquisici´onde datos. Al mismo tiempo que la CPU esclavo va ajustando su reloj virtual, ambas m´aquinasest´anprogramadas para generar pulsos peri´odicamente en sus puertos paralelos (cada 500ms). Estos pulsos son registrados y procesados por el sistema de adquisici´onde datos, que eval´uael error de sincronizaci´on.Este error est´aproducido por diferentes causas, tanto f´ısicasde la propia instalaci´on(ruido en la red, temperatura del cuarzo de los relojes de los ordenadores, etc.) como del protocolo y, en particular, del algoritmo de control con el cual se lleva a cabo el c´alculode la diferencia entre los timestamps. Tambi´enest´amuy influenciado por el n´umerode timestamps para los cuales se realiza este c´alculoen cada proceso (k). Por ello, se analizan los m´etodos de control en funci´ondel par´ametro k, siguiendo los siguientes pasos: 1.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages96 Page
-
File Size-