Articolo tecnico IEEE 1588 Quando la tempistica conta Sincronizzazione di alta precisione dei diversi clocks in sistemi distribuiti con l impiego di IEEE 1588 PTP Cos è lo standard IEEE 1588 PTP? Lo standard IEEE 1588 definisce una procedura per la sincronizzazione dei clock di dispositivi connessi in reti distribuite. La versione attuale si basa sulla specifica IEEE 1588-2008, chiamata anche IEEE 1588 V2. A seconda dell hardware e della topologia utilizzati, mediante IEEE 1588 PTP (Precision Time Protocol) è possibile ottenere una sincronizzazione fin nell ordine dei nanosecondi a due cifre. Con l aumentare dell offerta di dispositivi con supporto hardware IEEE 1588 integrato, cresce sempre di più anche il numero di applicazioni in cui viene utilizzato l IEEE 1588. La sincronizzazione di clock di dispositivi connessi in reti distribuite veniva finora ottenuta solitamente in due modi. Il primo ed il più semplice modo, era mettere a disposizione un segnale di trigger comune, che veniva inviato da un master clock ai clients attraverso una linea separata. In questo caso, però, la precisione era limitata dal ritardo del segnale e, quindi, dalla lunghezza della linea, nonché della qualità del master clock. Per molte applicazioni, inoltre, l impiego di un ulteriore linea trigger non era praticabile per motivi tecnici e/o per l elevato costo.
Pagina 2: IEEE 1588 Implementation La seconda soluzione era dotare i singoli clients di temporizzatori ad alta precisione, ad es. ricevitori GPS. Ma a seconda delle condizioni ambientali, la ricezione di segnali GPS o altri segnali radio non era, tuttavia, sempre possibile. È il caso, ad esempio, di clients utilizzati in locali chiusi, sottoterra o in aree schermate. Inoltre, l impiego di ricevitori GPS in semplici ed economici dispositivi, come ad esempio piccoli sensori, risulterebbe troppo costoso. I grandi vantaggi offerti dall utilizzo del protocollo IEEE 1588 PTP, è che non sono richieste linee trigger supplementari, né temporizzatori esterni, ed è possibile ottenere una precisione di gran lunga superiore rispetto ai metodi utilizzati finora. L IEEE 1588 viene solitamente utilizzato in reti basate su Ethernet, ma non si limita a questo livello fisico od al protocollo di trasporto, dal momento che nel determinare la compensazione del ritardo, occorre tenere in considerazione le caratteristiche tipiche della rete e del protocollo utilizzato. Dove viene utilizzato IEEE 1588? Le soluzioni IEEE 1588 di IXXAT sono utilizzate nei settori di applicazione più diversi. Ad esempio, nell ambito delle Misurazioni Geologiche, in cui vengono sincronizzati i dati di diverse centinaia di sensori distribuiti su vaste aree di territorio per consentire, in questo modo, una registrazione dei dati estremamente precisa. Oltre alla precisione temporale, questo settore di applicazione richiede anche un affidabilità, una robustezza e una fault tolerance molto elevate, dato che la sostituzione di singoli sensori è, a seconda della loro collocazione, molto dispendiosa in termini di tempo e quindi di costi. Uno dei mercati principali del IEEE1588 è quello delle Transazioni Finanziarie. Con il numero di transazioni elettroniche sul mercato finanziario globale in continuo aumento, assume sempre maggiore importanza l esatta determinazione temporale di esecuzione di ogni singola transazione. Guardando alle febbrili variazioni dei prezzi sul mercato azionario, diventa subito chiaro che, in questo settore, frazioni di secondo possono influire notevolmente sull ammontare delle perdite o dei guadagni ottenuti. È per questo motivo che qui si utilizzano le soluzioni 1588 di IXXAT per la sincronizzazione continua dei clocks di servers e clients impiegati nelle transazioni finanziarie. IXXAT fornisce inoltre da anni soluzioni IEEE1588 nel campo delle Telecomunicazioni, ad esempio per poter trasferire, quasi al volo, i telefoni
Pagina 3: IEEE 1588 Implementation cellulari da un nodo base al successivo. Nel settore delle telefonia mobile tutti i componenti dell infrastruttura devono essere sincronizzati, dal punto di vista temporale, in modo estremamente esatto. Altri settori di applicazione si trovano nel campo della produzione di Energia Elettrica, permettendo la sincronizzazione dei vari dispositivi sulle caratteristiche di fase della corrente presente in linea. Figura 1: Esempi di implementazioni Integrazione di IEEE 1588 in applicazioni del cliente Per implementare la funzionalità dell IEEE 1588 occorrono due componenti principali. Il primo componente è un meccanismo con cui sia possibile marcare i messaggi in entrata o eventi trigger esterni con un preciso timestamp. Ciò può essere realizzato tramite software, nel qual caso, a seconda del sistema operativo e di altri effetti non deterministici, la precisione ottenibile rientra solamente nell intervallo dei millisecondi o superiore. Applicazioni professionali ad alta precisione richiedono l uso di un unità timestamp (TSU) su base hardware. Più questa TSU si trova in prossimità della porta di comunicazione del bus, migliori sono le precisioni di sincronizzazione ottenibili. Attualmente già diversi produttori offrono interfacce PHY e microcontrollori con TSU integrata. I sistemi senza TSU integrata oppure i sistemi basati su FPGA possono essere integrati in un secondo tempo con un IP Core IEEE 1588. L IP Core offerto da IXXAT mette a disposizione una TSU, un realtime clock ed un unità di trigger, che marca gli eventi trigger in entrata con un preciso timestamp, ed è anche in grado di inviare segnali trigger con altissima precisione. Il secondo componente rappresenta il software di protocollo che poggia sulla TSU ed elabora il timestamp dei messaggi in entrata, calcola la varianza
Pagina 4: IEEE 1588 Implementation rispetto al master clock e adatta poi la velocità del realtime clock interno. Dato che queste funzioni non sono critiche dal punto di vista temporale, il software di protocollo può essere facilmente implementato in molte CPU d uso comune. Versioni adattate del software sono pressoché disponibili off-the-shelf per molte CPU con TSU integrata. Nel realizzare nuove reti, i designer di sistema dovrebbero avere un occhio di riguardo particolare all utilizzo di switch compatibili con IEEE 1588. Tempi di ritardo sconosciuti dei pacchetti in switch standard influiscono significativamente sulla qualità della sincronizzazione e devono quindi, per quanto possibile, essere evitati. Nel caso dei sistemi esistenti, ad es. nel settore delle applicazioni nelle telecomunicazioni, le oscillazioni nei tempi di ritardo del pacchetto possono essere minimizzati con l impiego di filtri. Test di sistemi IEEE 1588 Per assicurare un elevata qualità di un sistema di sincronizzazione temporale, sono disponibili vari livelli di test. Un primo test del livello di astrazione hardware (Hardware Abstraction Layer, HAL) consente di testare la corretta implementazione dei driver della TSU. Quindi, occorre esaminare sistematicamente il corretto funzionamento del protocollo IEEE 1588 implementato. Infine, si verifica la precisione, l interoperabilità e l affidabilità nei test di durata, negli stress test ed, ovviamente, nei Plugfest IEEE 1888 ufficiali. Per testare i sistemi di misura secondo la specifica del LXI Consortium, è stato sviluppato un test di conformità per PC. Esso si basa sul software di protocollo IEEE 1588 di IXXAT ed un clock hardware esterno. La marcatura, critica dal punto di vista temporale, con timestamp dei pacchetti Ethernet avviene nel clock hardware esterno. In questo modo, è possibile utilizzare un PC standard con Windows come sistema operativo senza dovere subire perdite di precisione causate dall inoltro dei pacchetti dalla rete all applicazione per il test di conformità. Piattaforme di riferimento e risultati dei test Qui di seguito vengono presentati i risultati di misura di due tra le molte piattaforme supportate per dare un idea della precisione di sincronizzazione ottenibile. Tutte le misurazioni sono state eseguite su Evaluation Boards standard di mercato (solitamente dotate di quarzi oscillatori di bassa qualità). L impiego di quarzi oscillatori di qualità superiore con compensazione della temperatura migliora notevolmente la precisione del clock di sistema.
Pagina 5: IEEE 1588 Implementation Figura 2: Start-up della sincronizzazione dei sistemi presi ad esempio Il Freescale MPC8313 è un processore di comunicazione con supporto timestamp IEEE 1588 su base hardware integrato a livello del MAC Ethernet. La marcatura con timestamp su base hardware e un realtime clock tarabile integrato consentono una sincronizzazione nell ordine dei nanosecondi. Una Evaluation Board MPC8313E-RDB sincronizzata back-to-back con una Reference Board MPC8360E-MDS raggiunge, con un intervallo di sincronizzazione di 125 millisecondi, una precisione di sincronizzazione di +/- 50 nanosecondi (varianza massima) e una varianza standard di 10 nanosecondi. In tal caso, la sincronizzazione è estremamente rapida ed è già conclusa dopo solo 10 cicli di sincronizzazione. Figura 3: Offset master dei sistemi presi ad esempio
Pagina 6: IEEE 1588 Implementation In collaborazione con STMicroelectronics, IXXAT offre un adattamento del suo software di protocollo IEEE 1588-2008 per la Evaluation Board STM3220F- EVAL. Il software è disponibile per il download come codice binario e consente, quindi, una dimostrazione facile e veloce della tecnologia IEEE 1588. Anche l STM32F207 di STMicroelectronics dispone di una marcatura timestamp IEEE 1588 su base hardware integrata a livello di MAC-Ethernet. Sia il timestamp, che l implementazione di un realtime clock tarabile nell hardware consentono una precisione di sincronizzazione nell ordine dei nanosecondi. Nel test di durata, la piattaforma sincronizzata back-to-back con un master preciso (2 ppm quarzo) ha raggiunto, con un intervallo di sincronizzazione di 0,125 secondi, una precisione di sincronizzazione di circa +/- 50 nanosecondi (varianza massima) ed una varianza standard di circa 12 nanosecondi. Lo stack IEEE1588 di IXXAT si sincronizza in media dopo circa 20 intervalli di sincronizzazione. L autore Norbert Binder lavora in IXXAT come Sales Engineer responsabile per il settore IEEE 1588 Pictures: Title_[Copyright].jpg Picture1_Sample-Integrations.jpg Picture2_Startup.jpg Picture3_Offset.jpg Norbert_Binder.jpg Characters: 9965 File name: 120628_IEEE1588_Integration_IT.doc Date: 28.6.2012 L azienda IXXAT Automation GmbH è un offerente leader di prodotti e servizi relativi a sistemi di comunicazione dati e soluzioni di sistema embedded per l automazione e l automotive. I prodotti tecnologici chiave nel settore dei sistemi di comunicazione industriali sono soluzioni su base CAN (CANopen, DeviceNet), Ethernet (POWERLINK, EtherNet/IP, PROFINET, EtherCAT, Modbus TCP) e TCP/IP con i relativi protocolli Internet. Per le applicazioni nell automotive, i prodotti chiave sono soluzioni su base CAN (protocolli diagnostici, SAE J1939), FlexRay e LIN. IXXAT dispone, inoltre, dell esperienza necessaria per sviluppare hardware e software rilevanti per la sicurezza conformi alla norma IEC61508. Oltre alla progettazione di soluzioni di sistema e allo sviluppo di hardware e software, la gamma di servizi offerti da IXXAT comprende l accompagnamento completo
Pagina 7: IEEE 1588 Implementation nell introduzione e l uso di sistemi di comunicazione su base CAN e TCP/IP, nonché un servizio di formazione e consulenza. Un ampia offerta da schede di interfaccia, sistemi di test, strumenti di analisi e software di protocollo completa il portfolio di prodotti. Attualmente l azienda occupa 80 collaboratori, prevalentemente ingegneri elettronici e informatici. IXXAT è un azienda con sistema di gestione della qualità certificato ISO 9001. Contatto: IXXAT Automation GmbH Frank Pastors Leibnizstraße 15 88250 Weingarten Tel.: 07 51 / 561 46-0 Fax: 07 51 / 561 46-29 E-Mail: info@ixxat.de Internet: www.ixxat.de