MeterLinq srl Nota Tecnica 06-14 Aggiornamento software via radio dei gruppi di misura del gas classe A2 (G4) Rev. 1.0 Aggiornamento software via radio dei gruppi di misura del gas classe A2 (G4) Introduzione Una delle principali differenze tra un contatore ed uno smart meter è la presenza di software (firmware) a bordo dell'apparato. Nel caso dello smart meter il software svolge una serie di funzioni che vanno dalla gestione della componente metrologia a quella delle diverse interfacce di comunicazione possibili. In Italia, nei contatori di classe A2 (G4) è prevista la presenza di una porta locale per l'installazione e manutenzione, ma l'interfaccia probabilmente più utilizzata per la comunicazione dei dati di lettura e per il colloquio con il sistema di gestione è quella radio. La normativa UNI TS 11291 [1] stabilisce per la classe A2 di contatori una interfaccia radio a 169 MHz, denominata PM1, in cui il livello di trasporto delle informazioni impiega il protocollo wireless MBUS in modalità N (Narrowband) descritto nella [2], per realizzare una infrastruttura radio con architettura punto-multi punto [3]. Da un punto di vista applicativo, nella architettura proposta dalla normativa il gruppo di misura dialoga direttamente con il sistema di gestione (SAC), utilizzando in questo caso un protocollo applicativo standard quale il DLMS/COSEM. Questo protocollo è già in uso in diverse applicazioni di metering, ma nel caso particolare del gas il suo impiego è previsto prevalentemente via radio. In pratica il DLMS/COSEM viene “imbustato” all'interno del payload di una trama wireless MBUS come rappresentato in figura 1. DLMS/COSEM DLMS/COSEM SAC (client) Application Payload Header DLMS/COSEM DLMS/COSEM w-MBUS w-MBUS Meter (server) Payload Infrastructure Header Figura 1: Architettura applicativa DLMS/COSEM Il DLMS/COSEM è stato originariamente previsto per un impiego su un mezzo trasmissivo filare (come per esempio Power Line Communication o PLC) non ha paticolari facilitazioni per l'utilizzo Pagina 1 con un trasporto radio e su apparati alimentati unicamente a batteria come i contatori del gas. Per questo motivo la normativa italiana ha introdotto una serie di ottimizzazioni nel DLMS/COSEM [4] volte a migliorare il rendimento del protocollo in presenza dei limiti imposti dalla infrastruttura di smart metering del gas. Tra le aggiunte apportate nella normativa al DLMS/COSEM, la novità più rilevante ed importante sono sicuramente le trame compatte (compact frames). Si tratta di un meccanismo basato su un dizionario convenzionale, basato sul numero di trama per l'identificazione del contenuto della stessa, e che descrive il formato dei dati in modo sintetico rispetto allo stesso messaggio spedito con una trama convenzionale. In pratica il contenuto del messaggio in termini di tipologia dei dati e del loro valore è predeterminato indicando il numero della trama compatta, evitando di includere nel messaggio, come avviene normalmente, tutte le informazioni necessarie ad interpretarne il contenuto. Questa “compressione” consente una riduzione sensibile del numero di bytes (ottetti) trasmessi e di conseguenza un tempo di trasmissione e ricezione inferiore e una riduzione del consumo energetico. Il risparmio complessivo ottenuto con l'introduzione dei compact frames può arrivare a percentuali notevoli; mediamente il risparmio può variare complessivamente tra il 20% ed il 30% rispetto ai frames standard DLMS/COSEM, e pertanto l'uso dei compact frames consente l'utilizzo del DLMS/COSEM anche con una infrastruttura radio alimentata a batterie. La normativa UNI TS 11291 è di recentissima introduzione (2013-2014) e contiene numerose innovazioni studiate per il roll-out dello smart metering su una popolazione di milioni di contatori residenziali. A causa della sua complessità e ed in mancanza di riferimenti “de facto”, l'implementazione della normativa richiede un elevato grado di flessibilità da parte di tutti i componenti della infrastruttura di smart metering, ed in particolar modo dei gruppi di misura. Tale flessibilità è normata e descritta in [3][4][5], introduce la funzionalità obbligatoria per il gruppo di misura dell'aggiornamento del software “over the air” sfruttando l'infrastruttura radio esistente e prevedendo quindi la possibilità da parte del sistema di gestione di inviare al gruppo di misura uno o più aggiornamenti nel corso della vita utile del contatore. L'upgrade firmware previsto dalla norma [8] rende possibile aggiornare il software di bordo e apportare modifiche di tipo funzionale (estendendo per esempio le funzioni dello smart meter), o per la correzione di eventuali problemi legati anche alla normativa sulla intercambiabilità dei gruppi di misura. Il meccanismo di aggiornamento L'attività di aggiornamento del firmware di uno o più gruppi di misura è descritto come caso d'uso nella normativa [4][8]1. Questa attività è molto particolare e dovrebbe essere eseguita raramente a causa delle ripercussioni nella funzionalità del misuratore, e in misura minore a causa dell'elevato costo energetico rispetto alla normale operatività. La complessità dell'aggiornamento del firmware è legata anche all'utilizzo di tutta l'infrastruttura di rete in modalità punto-multi punto, ed in particolare con la necessità di organizzare il lavoro 1 Nella normativa il processo viene indicato come download, anche se tecnicamente si dovrebbe parlare di upload, dal momento che il nuovo firmware viene trasmesso dal client DLMS/COSEM al server e non scaricato attivamente dal server. Pagina 2 coinvolgendo, oltre al contatore, anche il gateway/concentratore, e il sistema di gestione (SAC). Il processo di aggiornamento di un contatore di classe A2 può essere riassunto in alcuni passi principali: 1) Per prima cosa il sistema di gestione deve ottenere una immagine aggiornata del software del gruppo di misura da parte del produttore. Le modalità di consegna dal produttore al gestore sono definite attraverso una serie di messaggi definiti dalla normativa. Dal momento che la dimensione di una trama inviata via radio al gruppo di misura ha dei limiti di dimensione (pari a 229 bytes per il frame B del wireless MBUS), il sistema di gestione dovrà suddividere il firmware ricevuto in una serie di elementi, detti blocchi, che verranno trasferiti singolarmente al gruppo di misura. Firmware Image Raw Blocks Messages Block 1 DLMS/COSEM 1 Block 2 DLMS/COSEM 2 Block 3 DLMS/COSEM 3 Block 4 DLMS/COSEM 4 Block N DLMS/COSEM N Figura 2: Suddivisione firmware in blocchi 2) Il sistema di gestione definisce una finestra temporale periodica durante la quale il gruppo di misura entra in una modalità di ricezione (ascolto) dei messaggi di manutenzione. In questa fase il SAC può inviare attraverso i gateways uno o più messaggi al gruppo di misura senza attendere il risveglio di quest'ultimo per la normale attività di trasmissione (push) delle misure [5]. 3) Le chiavi di cifratura del contatore interessato all'aggiornamento firmware vengono cambiate. In questa fase le quattro chiavi di cifratura (dimensione 16 bytes) richiesta dalla gestione della sicurezza [6] possono essere inserite dal client (SAC) in un solo messaggio DLMS/COSEM di tipo unicast. 4) I gateway/concentratori ai quali i gruppi di misura sono affiliati ricevono i blocchi di firmware da aggiornare, e si predispongono per la trasmissione in broadcast dei dati ricevuti verso i contatori. 5) Il client (SAC) invia al server (contatore) un messaggio DLMS/COSEM per l'impostazione Pagina 3 relativa al trasferimento dell'immagine firmware al gruppo di misura; vengono impostate le informazioni sulla finestra di manutenzione e di abilitazione al trasferimento dell'immagine firmware. Questo messaggio è inviato sotto forma di trama compatta (Compact Frame 12 – FW Update Setup) di tipo SET unicast. 6) Il client invia al server un messaggio DLMS/COSEM che segnala l'inizio della attività di trasferimento dell'immagine firmware (ACTION image_transfer_initiate) di tipo unicast. 7) Il client invia al server una serie di messaggi DLMS/COSEM contenenti i singoli blocchi dell'immagine firmware (ACTION image_block_transfer_data) di tipo broadcast. La modalità di trasmissione effettiva è legata ad una serie di fattori esterni normalmente gestiti dal gateway/concentratore. Di questi, il più importante probabilmente è legato alla sincronizzazione degli orologi dei contatori con quelli del gateway che si occupa della consegna dei dati. Pur essendo prevista dalla normativa una tolleranza di alcuni secondi, la sincronizzazione evita l'impegno della frequenza di trasmissione oltre il necessario. 8) Per controllare lo stato dell'aggiornamento del firmware, il client può inviare al server un messaggio specifico che richiede lo stato del trasferimento, Questo messaggio DLMS/COSEM può essere un GET del compact frame 13 (FW Transfer Status), oppure del compact frame 22 (FW DLMS Transfer Status), i quali ritornano lo stato dell'aggiornamento dal punto di vista del contatore. Questa attività può essere svolta ad ogni finestra di manutenzione da parte del SAC per creare una mappa dei blocchi da trasferire, evitando quindi ripetizioni costose dal punto di vista energetico. 9) Una volta terminato il trasferimento del firmware, il client può opzionalmente inviare un ulteriore messaggio DLMS/COSEM al server di tipo GET image_to_activate_info, unicast, che consente di verificare se la versione corrente del firmware del contatore è quella trasferita, oppure se ci sono stati errori nel trasferimento e la versione è rimasta quella precedente 2. Tramite questo messaggio, il SAC può verificare la versione e la firma digitale del firmware e quindi segnalare eventuali anomalie al gestore del sistema. 2 Ovviamente esiste un terzo caso nel quale lo smart meter, in seguito ad errori nel trasferimento del firmware e alla valutazione della congruenza della nuova immagine, perda le funzioni di comunicazione e si trasformi in un costoso contatore tradizionale (brick). Pagina 4 Valutazione dell'efficienza del processo Il trasferimento di un nuovo firmware al gruppo di misura via radio è un processo che può avere aspetti rilevanti dal punto di vista energetico, ma soprattutto dal punto di vista logistico organizzativo. Per apprezzare il problema, è necessario fare alcune considerazioni. Nota: per seguire meglio quanto descritto nei prossimi paragrafi, può risultare utile consultare il codice sorgente della libreria libUNICosem di MeterLinq che implementa il protocollo DLMS/COSEM per lo smart metering del gas. Per ulteriori informazioni: http://www.meterlinq.com Come segnalato in precedenza, pur essendo la dimensione massima di una trama completa di tipo B wireless MBUS di dimensioni pari a 256 bytes [5], la dimensione complessiva disponibile nel payload è di 229 bytes una volta sottratta la porzione invariante di header del protocollo. Dalla figura 1 possiamo vedere che il DLMS/COSEM è incapsulato all'interno dei 229 bytes disponibili nel payload del w-MBUS. I messaggi DLMS/COSEM possiedono una porzione fissa descrittiva del messaggio stesso (header); nel caso di messaggi di tipo ACTION, come quelli usati nel trasferimento del firmware, la parte fissa è costituita da • un wrapper della dimensione di 2 bytes e utilizzato per descrivere il tipo di trasporto DLMS (in questo caso specifica il w-MBUS), • un descrittore di sicurezza COSEM della dimensione di 8 bytes, • un header del blocco dati del protocollo (APDU) della dimensione di 3 bytes, • un oggetto COSEM con il descrittore del metodo della dimensione di 9 bytes. La somma delle componenti fisse del messaggio COSEM sottrae 2+8+3+9, ovvero 22 bytes, lasciando disponibili quindi 229 - 8 = 207 bytes. A questi devono essere ulteriormente sottratti 8 bytes del tag di autenticazione COSEM, portando il bilancio a 207 – 8 = 199 bytes disponibili al trasferimento di un blocco. Il blocco non viene però trasferito semplicemente come gruppo di bytes all'interno del messaggio COSEM, ma viene trasmesso come struttura dati[9], che possiede una propria descrizione (SEQUENCE OF DATA) consistente in un identificativo del tipo della struttura della dimensione di 1 byte, • un contatore del numero di elementi della struttura della dimensione di 1 byte, • un tag di identificazione del tipo di dato della struttura (data type tag) della dimensione di 1 byte, • un campo che definisce la dimensione del blocco (image size) della dimensione di 4 bytes, • un campo che definisce il tipo di dati contenuto nella struttura (octet stream tag) della dimensione di 1 byte, • un campo che definisce la lunghezza del blocco di dati contenuto nella struttura (length) della dimensione di 2 bytes. In pratica il descrittore della struttura sottrae altri 10 bytes alla dimensione utile del blocco di immagine firmware trasferibile, portandolo alla dimensione finale di 189 bytes. Nel caso (peggiorativo) di trasmissione e ricezione nel canale 2a o 2b dello standard w-MBUS, la Pagina 5 velocità di trasferimento e di 2.4 kbps, ovvero circa 2458 bit per secondo. Quindi un frame w-MBUS di tipo B completo (256 bytes, ovvero 2048 bit) richiede circa 804 millisecondi di tempo di trasmissione. Il tempo si dimezza nel caso di utilizzo dei canali 1a, 1b, 3a e 3b che supportano una velocità di trasferimento di 4915 bit per secondo, ma per mantenere un margine di sicurezza è utile modellare il processo sui canali più lenti. Supponendo quindi di avere un firmware del contatore della dimensione di 50 KB, ovvero 51.200 bytes, per il trasferimento di tutta l'immagine saranno necessari circa 271 blocchi. Nel caso di trasmissione sui canali 2a o 2b questo implica, solo per il trasferimento dei blocchi componenti l'immagine, un tempo complessivo di circa 220 secondi di ricezione, ai quali vanno sommati i tempi di attività per l'effettiva elaborazione dell'immagine da parte del micro-controllore utilizzato dall'elettronica dello smart meter. Considerato che la normativa prevede un livello di servizio (SLA) per questa attività pari a 2 volte nella vita utile del contatore [3], l'aggiornamento comporterebbe, considerando anche i consumi relativi alle operazioni collaterali sulla scheda del contatore, complessivamente circa 440 secondi di ricezione e conseguente budget energetico. Nella pratica, il calcolo dell'impegno energetico ha come fattore principale la durata e la frequenza della finestra di manutenzione ed il rispetto della normativa vigente per quanto concerne l'utilizzo della radio frequenza. Il duty cycle per i dispositivi "Meter Reading" operanti nella banda 169.4-169.475 Mhz è del 10%, come definito nella norma [10], al paragrafo 7.2.3. Il duty cycle è calcolato su base oraria. Sono quindi disponibili, per ogni ora di funzionamento, 360 secondi in cui un dispositivo può essere in stato di trasmissione. La raccomandazione [11] REC 70-03 fornisce inoltre indicazioni sull'opportuna distribuzione del tempo di trasmissione, in modo da facilitare la coesistenza di diversi dispositivi trasmittenti. La raccomandazione richiede una spaziatura tra gli intervalli di trasmissione pari al 10% del tempo complessivo di trasmissione, per cui, nella situazione della tele-gestione e telelettura del gas a 169 MHz, la trasmissione dovrebbe avvenire per 10 blocchi di durata massima pari a 36 secondi intervallati, da un periodo di “silenzio” pari a un minimo di 3,6 secondi. Tendo conto quindi dei limiti e delle raccomandazioni ETSI e delle raccomandazioni ECC, il calcolo della dimensione ottimale della finestra di manutenzione comporta valori più elevati di quelli teorici. Da un punto di vista dell'impatto energetico sul contatore, l'aggiornamento tramite l'interfaccia PM1 non presenta però caratteristiche tali da renderlo problematico. Pagina 6 Assumendo un modulo di comunicazione dello smart meter sviluppato in modo simile allo schema in figura 3, possiamo calcolare approssimativamente il fabbisogno energetico della trasmissione e ricezione. Power On/Off 3.6v DC/DC 3.3v Metrology μC + - Super cap Radio Figura 3: Schema modulo di comunicazione smart meter Lo schema descrive a grandi linee il reference design MeterLinq usato anche per il gateway/concentratore, con opportuni adattamenti per l'implementazione in un contatore; la sorgente di alimentazione è una tipica batteria al cloruro di tionile (Li-SOCl 2) associata ad un super capacitore ed un regolatore DC-DC che alimenta un micro-controllore ed un transceiver radio a 169 MHz3. Il modulo è collegato alla componente metrologica per mezzo di una interfaccia seriale e può essere acceso e spento o messo in stand-by in modo da conservare energia. Per quanto riguarda la condizione di esercizio del contatore, possiamo ipotizzare un consumo in trasmissione di circa 365 mA da parte del transceiver radio completo di amplificatore di potenza e del micro controllore, ed un consumo in ricezione pari a 15 mA. Nella gestione ordinaria, il lavoro principale dal punto di vista della comunicazione è la trasmissione in “push” delle misure al SAC. Dato che il messaggio DLMS/COSEM in push ha una dimensione media di 128 bytes, utilizzando i canali “lenti” del w-MBUS la trasmissione richiede circa 400 ms. Eseguendo 3 push al giorno verso il SAC, il tempo di trasmissione totale è di circa 1,2 s al giorno, equivalenti a meno di 3600 s (un'ora) in 8 anni, che corrispondono, secondo i dati di consumo ipotizzati, a 0,365 Ah. In fase di aggiornamento del firmware, supponiamo di configurare finestre di manutenzione di 3,5 minuti per 4 volte al giorno e per un periodo di 7 giorni. In questo modo è possibile soddisfare anche requisiti e raccomandazioni per il duty cycle. 3 Nel design MeterLinq si tratta di una combinazione del micro controllore ST Microelectronics STM32L0 e del transceiver ST Micro Spirit1. Nello schema non è incluso l'amplificatore (PA) che in una implementazione reale è invece presente, ma i consumi sono stati calcolati considerando anche il PA. Pagina 7 Arrotondando quindi la somma dei tempi della finestra di manutenzione a 15 minuti, si ha che un aggiornamento potrebbe richiedere complessivamente (e nel peggiore dei casi) 105 minuti di tempo di ricezione da parte del contatore. Con un consumo in ricezione pari a 15 mA, la sola attività di ricezione durante il periodo della finestra di manutenzione (una settimana), si ottiene un valore di 0,03 Ah per aggiornamento. Nel calcolo dei consumi devono essere considerati anche altri messaggi in downlink dal gateway al contatore, come quelli relativi alla sincronizzazione dell'orologio. Inoltre, nella procedura di aggiornamento firmware il contatore deve anche trasmettere al SAC dei messaggi che richiedono una conferma, assumendo nel peggiore dei casi la necessità da parte del contatore di ri-trasmettere fino a 6 volte i propri messaggi [5] a causa di problemi di comunicazione con il gateway/concentratore. Un ruolo importante nella gestione energetica è giocato anche dall'efficienza del convertitore DC-DC, che nella nostra ipotesi4 assumiamo pari al 75%. E' possibile quindi stimare questi ulteriore consumi e sommarli a quelli precedenti portando il totale a circa 1.8 mAh al mese, per cui si ottiene un totale di poco superiore ad 1 Ah in un periodo di 8 anni. Considerando l'utilizzo di una batteria per applicazioni di smart metering con una capacità nominale di 17 Ah5, è facilmente sostenibile che la riserva di energia sia più che sufficiente per tutta l'aspettativa di vita del contatore, consentendo un numero anche più elevato di aggiornamenti firmware rispetto a quelli previsti dalla normativa. 4 5 Come Analog Devices ADP2504 Per esempio Saft LS 33600 Pagina 8 Possibili ottimizzazioni e libPatch L'impatto di un aggiornamento firmware sulla carica della batteria è non trascurabile, considerando le aspettative di vita dello smart meter, ma non è il solo problema che si pone il gestore della rete radio. Le considerazioni precedenti non tengono conto di eventuali problemi di ricezione da parte dello smart meter, che richiederebbero quindi ri-trasmissioni di uno o più blocchi, o in alcuni casi la ripetizione completa della procedura. Se dal punto di vista dei consumi di energia l'aggiornamento potrebbe non essere un vero problema, il mantenimento dello SLA previsto dalla normativa e soprattutto la garanzia della funzionalità dei contatori in seguito ad aggiornamento firmware rappresentano un problema molto più insidioso. In una situazione reale di utilizzo della rete in architettura punto-multi punto devono essere presi in considerazione, oltre all'effettiva dimensione del firmware da aggiornare e dell'overhead imposto dai protocolli applicativi e di trasporto, anche possibili fluttuazioni nella disponibilità e copertura radio, per cui il processo di aggiornamento dovrà essere dotato dei meccanismi di controllo previsti dalla normativa e di un certo livello di ridondanza per poter garantire un completo rilascio a tutto il parco di misuratori coinvolti. Inoltre, in una fase iniziale di roll-out dei contatori G4 con interfaccia radio può essere complicato stabilire a priori il numero massimo di aggiornamenti firmware possibili, dato che la presenza di eventuali problematiche software e eventuali diverse condizioni operative dello smart meter possono richiedere un aggiornamento del firmware. Per queste ragioni, ovvero per minimizzare i problemi logistici nella fase di roll-out e aggiornamento firmware dei contatori, può essere utile un approccio tendente a minimizzare i tempi di trasmissione e di conseguenza i blocchi trasferiti. La proposta MeterLinq per l'aggiornamento firmware, consiste in una libreria open source chiamata libPatch, che ha come obiettivo quello di ridurre il volume delle informazioni trasmesse via radio per due motivi principali: 1) la riduzione dei blocchi trasmessi aumenta la probabilità che l'aggiornamento sia ricevuto con successo dal contatore riducendo la possibilità di errori di comunicazione, e 2) di conseguenza ottenere un sensibile risparmio energetico complessivo nella fase di aggiornamento. Il concetto di base del sistema di aggiornamento firmware MeterLinq è quello di inviare unicamente le differenze tra le versioni, quella in esercizio e la successiva. Per raggiungere questo obiettivo, per prima cosa vengono analizzate le due versioni di firmware dello smart meter, ovvero viene effettuato un confronto binario tra il firmware esistente e la nuova versione da distribuire. Pagina 9 Firmware Image Compare New Image Binary Δ Diff Comp Δ Raw Blocks Messages Block 1 DLMS/COSEM 1 Block 2 DLMS/COSEM 2 Block 3 DLMS/COSEM 3 Block 4 DLMS/COSEM 4 Block N DLMS/COSEM N Shrink Figura 4: Architettura libPatch Questa attività viene eseguita automaticamente dal NOC di MeterLinq (sistema di gestione MeterNet) una volta ricevuta l'immagine firmware da distribuire da parte del SAC del cliente per mezzo di una applicazione di comparazione binaria. L'interfacciamento tra il SAC del cliente ed il sistema di gestione MeterNet avviene utilizzando l'interfaccia PP3 su TCP/IP, [7] oppure in modo semplificato attraverso una interfaccia REST messa a disposizione dall'application server MeterNet. Dal risultato del confronto dei file binari presenti sul server MeterNet, vengono determinate le differenze tra le due versioni del firmware e viene creata una prima struttura di patch chiamata “binary delta” o bΔ. Il bΔ contiene non solo l'insieme delle differenze tra le due versioni, ma anche una serie di istruzioni ad alto livello da utilizzare nell'applicare il bΔ all'immagine firmware originale del contatore per ottenere come risultato il firmware aggiornato. Il bΔ viene poi compresso per diminuire ulteriormente il numero totale complessivo di bytes da trasferire, e quindi suddiviso in blocchi per la trasmissione da parte del gateway. Il processo di diffusione in rete degli aggiornamenti è completamente automatizzato da parte del NOC di MeterLinq, che utilizza anche una serie di informazioni aggiuntive per ottimizzare la fase di delivery degli aggiornamenti anche sulla base delle condizioni della rete radio. Sul contatore il processo è molto più semplice; la ricezione del bΔ avviene esattamente secondo le specifiche della UNI TS 11291-11-2, ovvero utilizzando le finestra di manutenzione in modo convenzionale, ma raccogliendo i blocchi che compongono il bΔ invece che i blocchi di dati “raw” normalmente inviati. Una volta raccolti in tutto o in parte i blocchi del bΔ , il firmware di bordo deve implementare la funzioni della libreria open source libPatch, che ripristina il bΔ compresso al suo stato originale e poi inizia ad eseguire le istruzioni contenute. L'interfaccia a bordo del contatore consiste essenzialmente nella chiamata ad una funzione Pagina 10 patch(received_block) → write offset, length, buffer che per ogni blocco compresso ricevuto ne ritorna la versione espansa, l'offset di scrittura dall'inizio dell'immagine firmware attuale e la lunghezza effettiva di scrittura. In pratica, la funzione patch agisce anche come interprete dei comandi definiti dal sistema di generazione del bΔ. Il codice sorgente della funzione patch, fornito da MeterLinq e da implementare sul contatore è scritto nel linguaggio ANSI C e non presenta alcun tipo di dipendenza esterna da sistemi operativi, real time executives o altre librerie. Received blocks Binary Δ Inflate Current Image Patch New Image Result Figura 5: Ricostruzione immagine firmware La funzione patch è compatta, con una dimensione inferiore ad 1 KB, e durante l'esecuzione richiede solamente l'accesso ad un buffer statico in memoria RAM, che viene poi restituito al sistema una volta terminata la procedura di ricostruzione e aggiornamento dell'immagine. La dimensione del buffer statico è configurabile sul server MeterNet in sede di generazione del bΔ, in modo tale da poter essere adattata a tipologie diverse di smart meter, anche se per motivi di praticità è consigliabile una predisposizione temporanea di 1 KB. Applicando in modo iterativo la funzione patch, come rappresentato in figura 5, si ottiene una serie di blocchi dati da sovrascrivere al codice (realisticamente a una sua copia). Il risultato è una versione modificata del firmware esistente che corrisponde all'aggiornamento desiderato, verificata per congruenza ed integrità con l'originale inviato dal SAC. Il codice della funzione è compilabile con qualsiasi compilatore e su diverse architetture di micro-controllore; dal momento che libPatch è utilizzata anche nel gateway/concentratore MeterLinq, la libreria è già validata per l'utilizzo con i micro controllori a 32 bit della famiglia STM32 prodotta da ST Microelectronics. Il server MeterNet in accoppiata con libPatch opera una serie di altre ottimizzazioni della procedura di aggiornamento che vanno dalla mappatura dinamica dello stato dei trasferimenti, alla Pagina 11 riconfigurazione delle finestre di manutenzione sulla base dell'effettivo stato della copertura radio. Vengono gestite con efficacia dalla lbreria anche situazioni anomale di ricezione dei blocchi di aggiornamento fuori sequenza, mitigando quindi l'impatto di eventuali derive degli orologi dei contatori, oppure in caso di copertura radio fluttuante. Conclusione L'aggiornamento del firmware dei gruppi di misura può non essere particolarmente oneroso per i gruppi di misura, ma rappresenta sicuramente una grossa sfida logistica ed organizzativa, dal momento che mette in gioco tutti i componenti della infrastruttura di rete: SAC, autorità di garanzia per la sicurezza, gateway/concentratori e contatori. Il vero problema da risolvere è riuscire ad effettuare una operazione di aggiornamento così articolata in modo efficiente ed evitando problemi di operatività della rete. Per questo motivo può risultare estremamente efficace un processo di ottimizzazione delle trasmissioni con l'obiettivo di sfoltire e semplificare il traffico tra contatori e SAC. Nell'uso comune, libPatch consente di ridurre dal 30% fino ad oltre il 50% il volume delle informazioni trasferite via radio. Il vantaggio della compressione non è quindi relativo solamente al risparmio energetico, ma al fatto che consente di aumentare le probabilità di eseguire aggiornamenti con successo nel minor tempo possibile. Il sistema di aggiornamenti basato su libPatch è attualmente utilizzato anche nei gateway/concentratori MeterLinq per ottimizzare l'impiego della rete MeterNet, ma la sua efficacia potrebbe risultare un valore aggiunto nella gestione di un ampio parco di smart meters. La disponibilità della libreria in open source, e i vantaggi provenienti dal delegare la gestione di una attività complessa come l'aggiornamento firmware dei contatori al sistema MeterNet permettono di semplificare le attività del SAC rispetto all'attività di gestione della rete radio e dell'architettura di comunicazione punto multi-punto dei contatori di classe A2. La libreria libPatch è disponibile gratuitamente e distribuita con la licenza EUPL (European Union Public Licence) sul sito MeterLinq. Pagina 12 Riferimenti [1] UNI/TS 11291-6:2013 Sistemi di misurazione del gas - Dispositivi di misurazione del gas su base oraria - Parte 6: Requisiti per gruppi di misura con portata minore di 10 m3/h (contatore minore di G10) [2] UNI CEI EN 13757-4:2013 - Parte 4: Lettura wireless del contatore (lettura via radio per il funzionamento nelle bande SRD) [3] UNI/TS 11291-11-1:2014 Sistemi di misurazione del gas - Dispositivi di misurazione del gas su base oraria - Parte 11-1: Generalità [4] UNI/TS 11291-11-2:2014 Sistemi di misurazione del gas - Dispositivi di misurazione del gas su base oraria - Parte 11-2: Modello dati [5] UNI/TS 11291-11-4:2014 Sistemi di misurazione del gas - Dispositivi di misurazione del gas su base oraria - Parte 11-4: Profili di comunicazione PM1 [6] UNI/TS 11291-10:2013 Sistemi di misurazione del gas - Dispositivi di misurazione del gas su base oraria - Parte 10: Sicurezza [7] UNI/TS 11291-11-5:2014 Sistemi di misurazione del gas - Dispositivi di misurazione del gas su base oraria - Parte 11-5: Profili di comunicazione PP3 [8] UNI/TS 11291-9:2013 Sistemi di misurazione del gas - Dispositivi di misurazione del gas su base oraria - Parte 9: Prove funzionali e di interoperabilità [9] DLMS UA 1000-2 Ed. 7.0:2009 – DLMS/COSEM Architecture and Protocols, “Green Book” [10] ETSI EN 300 220-1 V2.4.1 (2012-01) Electromagnetic compatibility and Radio spectrum Matters (ERM); Short Range Devices (SRD); Radio equipment to be used in the 25 MHz to 1 000 MHz frequency range with power levels ranging up to 500 mW; Part 1: Technical characteristics and test methods [11] CEPT REC Recommendation 70-03 CEPT Relating to the Use of Short Range Devices (SRD) - Subsequent amendments - 07 February 2014 Pagina 13
© Copyright 2024 Paperzz