SiBMA - Portal Software Livre

Propaganda
Instituto de Inovação com TIC
Dezembro/2013
Software Livre no contexto do
Sistema Brasileiro de
Medição Avançado (SiBMA)
Inovação é a gente!
Agenda

Smart Grids e Smart Meter.

O que é o SiBMA?.

SiBMA RI.

O Sistema Operacional Contiki.

Constrained Application Protocol – CoAP.

Efficient XML Interchange – EXI.

Dúvidas e Sugestões.
Smart Grids & Smart Meter
REDE DE ENERGIA ELETRICA: HOJE
REDE DE ENERGIA ELETRICA: AMANHÃ
SMART GRID: IMPACTO NAS RESIDENCIAS
SiBMA
O que é o SiBMA?





Sistema Brasileiro de “Medição” Avançada.
Camada de Aplicação desenvolvida nacionalmente para
atender requisitos regionais e especificidades
(MME, ANEEL, INMETRO, ABRADEE, ABINEE).
Flexibilidade (Evolução com Compatibilidade,
Extensibilidade Proprietária, Estrutura e Tipos de Dados,
Novas Funcionalidades).
Novos Dispositivos Smart Grid: Concentradores e
Controladores.
Modalidades de Operação: PULL & PUSH.
SIBMA: Aplicação em rede

Independência de Transporte

Conectividade Plena (Host-to-Host)

Assinatura Digital: Faturamento e Firmware

Descoberta de Dispositivos e Funcionalidades


Network Features: Broadcasting, Multicasting,
Bootstraping, Discovery e Autoconfig
Aspectos de Segurança: Autenticação, Autorização, Sigilo,
Auditoria
Arquitetura em camadas
Modelo Cliente-Servidor

Arquitetura como guia.

Deve ser flexível.
SiBMA RI
SiBMA RI

SiBMA Reference Implementation

Texas Instruments MSP-EXP430F5438

16 KB de RAM

256 KB de Flash

25 Mhz

Trade-off memória vs. Processamento
Pilha de protocolos do SiBMA RI
Pilha de protocolos
da solução
Visão lógica dos módulos do sistema
O Sistema Operacional
Características de SO para Smart Objects
Severas restrições de memória e processamento
Giga Bytes vs. Mega Bytes vs. Kilo Bytes
SOs de propósito geral não servem
(Windows, MAC, Linux, etc.)
Opções de SO
embarcado:
TinyOS
Contiki
FreeRTOS
Contiki OS
“Contiki is an open source operating system for the Internet of
Things.”
 Comunidade de desenvolvedores crescente a cada dia.
 Suporte a vários MCUs.
 Suporte a threads (versão light via ProtoThreads).
 Permite programação orientada a eventos.
 Carga dinâmica de aplicações.
 Stack IP (uIP).
Contiki OS
 Motivações do OS:
 Sem proteção de memória entre APPs.
 Kernel mínimo.
 Multiplexação da CPU.
 Pode ser extendido através de bibliotecas.
Contiki OS
 No Contiki não há threads:
 A Stack de cada thread precisa ser criada em tempo de
execução.
 A Stack não é acessivel por outras threads.
Contiki OS
 O Contiki é baseado em eventos:
 Apenas um rodando por vez.
 Apenas uma stack.
 Problemas
 Algumas coisas são difíceis de expressar através de uma
máquina de estado.
 Se alguém levar 2 segundos para terminar todo o resto
estará bloqueado.
Estatística de uso de memória

Memória ROM: SiBMA + Contiki ~ 83 Kbytes



68K (CODE memory) + 15K (CONST memory)
Memória RAM: Uso total = 12,3 Kbytes

STACK = 0x300 (768 Bytes)

HEAP = 0x900 (2,2 Kbytes)
Ainda há como enxugar esses dados
Visão geral
sobre o CoAP
Constrained Application Protocol (CoAP)


RESTful Protocol
For Constrained Devices
and Network


Easy to Proxy to/from
HTTP
Not an HTTP Compression
Constrained Application Protocol (CoAP)

Não há muitas bibliotecas disponíveis.

Mudança constante no protocolo.

Foi finalizado a pouco meses.

Algumas bibliotecas OpenSource:

Erbium

Libcoap
Constrained Application Protocol (CoAP)


Libcoap

Conseguiu acompanhar o desenvolvimento do protocolo.

Possui 100% dos recursos que o CoAP dispõem.

Pouca documentação.

Alguns bugs.
Erbium

Dependente do Contiki OS.

Baixa taxa de atualização.

Bibioteca de mais fácil utilização.
Constrained Application Protocol (CoAP)

Nossa escolha: Libcoap: C-Implementation of CoAP

Corrigimos alguns bugs.

Criamos uma interface para facilitar o uso da biblioteca.

Libcoap é mais fácil de portar!!
Visão geral
sobre o EXI
Efficient XML Interchange

Tipos de compactação de XML:
General Text
Compressor
gzip
bzip
lzma
XML
Compressor
XML Conscious
Compressor
Fast Infoset
EXI
XMill
EXI: Taxa de compressão
EXI: Velocidade de processamento
Outros pontos fortes do EXI

Permite codificação e decodificação via SAX.

Importante em ambiente com pouca memória.

Validação contra um esquema XML.

Padronizado pelo W3C (Mar/2011).

Manipulação direta do EXI sem necessidade de tradução
para XML.
Um obstáculo no caminho...
EXI: obstáculos





Há poucas opções de bibliotecas EXI (principalmente
open-source).
Necessidade de porting para a plataforma.
Por serem recentes, ainda não estão maduras o suficiente
(instáveis).
Soluções genéricas não são ideais para as restrições do
ambiente utilizado (xsd em RAM).
Solução...

Parser customizado (byte-aligned, strict schema)

Mas como fazê-lo??
A implementação customizada





Fontes de referência para a solução:
LibEXI: Analisi e implementazione del formato EXI su reti
di sensori wireless (Mattia Gheda)
Representação de gramáticas em código C como arrays
tri-dimensionais.
Melhoria para arrays unidimensionais (evitar desperdício
de memória)
A ferramenta EXIDizer da Siemens (utilizado pelo projeto
OpenV2G)
A implementação customizada

Vertentes para solução do problema:

Bibliotecas EXI embarcadas (EXIP, Agile Delta)

Necessidade muita memória RAM


Gerador de código (terceiros: EXIDizer da Siemens,
gerador próprio)
Fazer o gerador de código a partir de gramáticas prégeradas (nossa solução)

Fazer a máquina de estados “do zero na mão”

Maior susceptibilidade a erros
Obrigado!
Marlon Chalegre
Engenheiro de Sistemas
Sistemas Embarcados
[email protected]
Download