Você está na página 1de 72

Sistemas

Embarcados:
Microcontroladores
Prof. Protsio

Laboratrio de Microengenharia/DEE/CEAR/UFPB
Norma Tcnica (Standard)
De acordo com o INMETRO (Instituto Nacional de
Metrologia, Qualidade e Tecnologia), uma norma
tcnica :
um documento aprovado por uma instituio reconhecida,
que prev, para um uso comum e repetitivo, REGRAS,
DIRETRIZES ou CARACTERSTICAS para os produtos
ou processos e mtodos de produo conexos, e cuja
observncia no obrigatria.
Tambm pode incluir prescries em matria de
terminologia, smbolos, embalagem, marcao ou
etiquetagem aplicveis a um produto, processo ou mtodo
de produo, ou tratar exclusivamente delas.
Standard
Em cincia e tecnologia, a palavra inglesa
standard utilizada com pelo menos dois
significados diferentes:
Como um regulamento tcnico (RT) ou uma norma
tcnica (NT)
a grande diferena entre RT e NT reside na obrigatoriedade de
aplicao do primeiro.
Como um padro de medio.
Norma Tcnica (Standard)
Existem vrios tipos de standard. Exemplos:
Technical standard. A standard that describes the characteristics
of applying accumulated technical or management skills and
methods in the reation of a product or performing a service.
Component standard. A standard that describes the
characteristics of data or program components.
Description standard. A standard that describes the
characteristics of product information or procedures provided to
help understand, test, install, operate, or maintain the product.
Design standard. A standard that describes the characteristics of
a design or a design description of data or program components.
Measurement standard. A standard that describes the
characteristics of evaluating a process of product.
Method standard. A standard that describes the characteristics of
the orderly process or procedure used in the engineering of a
product or performing a service.
Standards em Sistemas Embarcados
Considere o modelo arquitetural abaixo.

Camada de Aplicativos

Camada de Software de Sistema

Camada de Hardware

Este geral para todos os SE.


Standards em Sistemas Embarcados
Standards podem definir as funcionalidades que so
especficas para cada camada do modelo de sistema
embarcado.

Os Standards podem ser classificados em:


Especficos de mercado
De propsito geral
Ou estarem em ambas as categorias.
Standards em Sistemas Embarcados
Standards especficos de mercado
Relativos a um particular grupo de sistema embarcados
relacionados e que compartilham caractersticas e
tcnicas similares ao usurio final.
Exemplos:
Bens eletrnicos de consumo (Consumer Electronics)
TVs, jogos, aparelhos domsticos (microondas, lavadoras de roupa,
etc.), etc.
Equipamentos mdicos
Equipamentos de controle e automao industrial
Equipamentos de rede e de comunicao
Indstria automotiva
Indstria aeroespacial e de defesa
Automao de escritrio
Standards em Sistemas Embarcados
Standards de propsito geral
Exemplos:
Padres de redes
HTTP (Hypertext Transfer Protocol)
TCP (Transmission Control Protocol)/IP (Internet Protocol)
IEEE (Institute of Electronics and Electrical Engineers) 802.3 Ethernet
Padro de Local Area Networks (LANs)
Bluetooth
J2ME (Java 2 Micro Edition)
.NET Compact Framework
HTML (Hyper Text Markup Language)
Standards e Linguagens de Programao
No h uma linguagem de programao que seja
perfeita para todos os sistemas embarcados.
De acordo com o padro da linguagem de
programao escolhida, pode-se introduzir mudana
na arquitetura do sistema embarcado.
Por exemplo: se for JAVA, deve coexistir um componente
adicional, o JVM (Java Virtual Machine).
Tambm possvel usar mais de uma linguagem de
programao
Por exemplo, assembly inline em um programa em C
Ademais, existem linguagem com vrios padres,
por exemplo, C, C++.
Standards e Linguagens de Programao
Evoluo das Linguagens de Programao
Standards e Linguagens de Programao
A linguagem de mquina a nica que o
hardware pode executar diretamente, assim:
So usados mecanismos para gerar cdigos de
mquina a partir de outras linguagem.
Esses mecanismos podem ser:
Pr-processamento
Etapa opcional realizada antes da traduo ou interpretao. uma
etapa de organizao de cdigos fontes.
Traduo
Mecanismo que traduz uma linguagem de um nvel maior em outra
de nvel menor. A compilao um tipo de traduo.
Interpretao
Mecanismo em que um programa em uma linguagem de baixo nvel
utilizado para interpretar instrues de uma outra linguagem em nvel
maior. Exemplo: BASIC.
Standards e Linguagens de Programao
Pr-processamento
uma etapa opcional e inicial dos processos de
traduo e de interpretao a fim de facilitar estes
processos.
Exemplo: em C ou C++, o pr-processamento que realiza o
processamento de macros (fragmentos de cdigos)
#define MAX(a,b) (a > b) ? a : b
Standards e Linguagens de Programao
Compilao
a etapa de gerao de cdigo, a partir de uma dada
linguagem, para uma linguagem alvo especfica de
mais baixo nvel.
Em geral, o resultado da compilao um cdigo objeto (*.o
em C ou C++, um cdigo padronizado em um formato anterior
ao cdigo de mquina) ou bytecode (.class em JAVA).
Standards e Linguagens de Programao
Linkagem
a etapa de gerao de cdigo de mquina a partir de
um cdigo objeto considerando outros cdigos ou
bibliotecas necessrias.
O resultado da linkagem o arquivo executvel a ser
transferido para o sistema embarcado.
Bibliotecas
Standards e Linguagens de Programao
Fluxo de compilao e linkagem em C
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Relembrando:
Compilao: traduz o cdigo fonte de uma vez s.
Interpretao: gera (interpreta) cdigo(s) de mquina
para cada linha de cdigo fonte por vez.
Target Code
for Source L1
Source L1

Source L2 Target Code


for Source L2
Source L3

Source L4 Target Code


for Source L3
Source L5

Source L6
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Linguagem de programao interpretadas
Um subclasse das linguagem de programao
Interpretadas so as linguagens de script:
Exemplos: PHP, Perl, Python, JavaScript, HTML,

Linguagens de script so de alto nvel e


com caractersticas avanadas, tais como:
Independncia de plataforma
Resoluo do tipo de dado realizada on-the-fly
Uma API um conjunto de
Gerao de cdigo em tempo de execuo e comandos ou padres de
programao (biblioteca) para
executado imediatamente acesso (em alto nvel, ou seja,
sem envolvimento com
Prototipao rpida detalhes de implementao)
s funcionalidades de uma
Em geral, usam APIs (Application Programming dado ambiente de software ou
aplicativo.
Interface)
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
SCRIPT
Um script uma listagem sequencial de eventos.

S e1e2 e3 en
Um evento pode ser:
Chamada de um comando
Chamada de uma funo
Uma configurao, etc.
O uso de script facilita a reexecuo de rotinas.
Exemplo: um arquivo bath (do DOS ou do Linux) um
script.
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
O uso de linguagem de scripts adiciona um
componente na arquitetura do Sistema
Embarcado: o INTERPRETADOR.
O interpretador um componente de software que
processa scripts (linhas de cdigo fonte) on-the-fly.

Camada de Aplicativos
Interpretador

Camada de Software de Sistema

Camada de Hardware
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Exemplo de interpretadores:
Arquitetura de um sistema embarcado com a camada
de aplicao contendo um browser e interpretadores
Interpretador JavaScript e HTTP
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Todas linguagens de script so interpretadas
Mas nem toda linguagem interpretada so de
script.
Exemplo:
Linguagem JAVA
Incorpora compilao e interpretao
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Linguagem JAVA
Esquema de compilao na mquina host

O bytecode java o cdigo alvo e independente de


plataforma.
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Linguagem JAVA
Na mquina-alvo (o sistema embarcado), o bytecode
java executado em uma JVM.
JVM pode estar em qualquer camada da arquitetura do sistema
embarcado
Camada de Aplicao Camada de Aplicao Camada de Aplicao

Camada de Software de Camada de Software de


sistema sistema Java Virtual Machine

Java Device Drivers Java Virtual Machine


Camada de Software de sistema

Camada de Hardware Camada de Hardware

Processador Java

Camada de Hardware
JVM part of System layer, i.e., JVM complied in application, i.e.,
Skelmirs Cee-J, Esmertec/Insignias Esmertecs Jbed, Kava KavaVM,
Jeode and Jbed, Taos Intent, IBMs J9
JVM in Hardware, i.e, ARMs Kavas KavaVM
Gazelle, Ajiles aj100
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Linguagem JAVA
Uma JVM tem impacto o projeto de sistemas
embarcados em:
Tamanho
Velocidade, e
Funcionalidade.
Uma JVM contm primariamente:
As classes integradas ao JVM
Mquina de execuo (execution engine) que executa o cdigo
java
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Componentes de uma JVM
Classes integradas ao JVM
Mquina de execuo
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Componentes de uma JVM
Classes integradas ao JVM
So bibliotecas compiladas de byte code e so comumente
denominadas de JAVA APIs
Java APIs permitem ao programador executar funes do
sistema e reuso de cdigo
Aplicativos em Java requerem o uso de Java API classes
juntamente com seu prprio cdigo.
As APIs diferem de acordo com a aplicao e podem incluir:
Gerenciamento de memria,
Suporte de rede
Suporte grfico, etc.
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Componentes de uma JVM
Classes integradas ao JVM
Exemplos de APIs para dois padres de java embarcado
pJava JVM APIs (Personal Java)
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Componentes de uma JVM
Classes integradas ao JVM
Exemplos de APIs para dois padres de java embarcado
J2ME (Java 2 Micro Edition)
J2ME JVM

(User Interface)
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Componentes de uma JVM
Padres de java embarcado
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
Componentes de uma JVM
Mquina de execuo (Execution Machine)
Em geral, composta de:
Colletor de Lixo (garbage collector, GC)
Desalocar memria no necessria
Unidade de processamento de byte code
Interpreta o byte code em cdigo de mquina.
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
.NET Compact Framework
uma proposta de Microsoft que permite aplicativos
escritos em C#, Visual Basic e JavaScript serem
executados em dispositivos embarcados.
O cdigo fonte nessas linguagens so convertidos em
uma linguagem intermediria independente de
plataforma:
MSIL (Microsoft Intermediate Language)
Exemplos de linguagem de programao que
afetam a arquitetura do Sistema Embarcado
.NET Compact Framework
Standards e Redes
Rede
Uma rede um conjunto de mquinas autnomas e
interconectadas.
Sistema embarcado em rede
Em certas aplicaes, um sistema embarcado precisa
se comunicar com um outro sistema (mquina host, um
servidor, outro sistema embarcado, etc.)
Para isso, ento preciso ter um esquema de rede.
Para a comunicao preciso:
Sistema de interconexo comum entre os dispositivos
Padres so
Protocolo de rede para interoperabilidade. extremamente
importante.
Por que?
Standards e Redes
A princpio, o projetista de sistemas embarcados
deve conhecer:
A distncia entre os dispositivos
O meio fsico a ser utilizado
Arquitetura geral da rede
Standards e Redes
As redes podem ser:
Homognea se todos as mquinas por ela
interconectadas so idnticas.
Caso contrrio, heterognea.
Redes heterogneas demandam padronizao:
Em nvel de hardware (tenses, frequncias, etc.)
Em nvel de software (por exemplo, representao de
dados e formatao de mensagens).
Standards e Redes
Distncia entre os dispositivos
Em geral, as redes podem ser:
Redes Locais (LAN: Local Area Network) (< 100 m)
Interconectam mquinas que esto nas proximidades uma das outras.
Por exemplo: no mesmo prdio, na mesma sala, etc.
Tipicamente, par tranado metlico empregado como meio fsico.
Redes de Campus (CAN: Campus Area Network) (<10 km)
Interconectam mquinas em nvel de campus (fbrica, universidade, etc.).
Tipicamente so compostas de vrias LANs interligadas por uma rede de
alto desempenho (backbone) baseada em fibra ptica.
Redes Metropolitanas (MAN: Metropolitan Area Network) (5 - 100 km)
Interconectam mquinas e LANs em nvel regional
Redes de Longa Distncia (WAN: Wide Area Network)
Interconectam mquinas e/ou LANs que esto distribudos em uma
grande rea geogrfica (em nvel nacional, continental, ou at mundial
(como a Internet).
Standards e Redes
Meio fsico
Em geral, os meios fsicos podem ser classificados como:
Guiados

O sinal guiado atravs de um caminho fsico com fronteiras bem


definidas.

Exemplos: fios ou cabos condutores

No-Guiados

O sinal no guiado atravs de um caminho fsico com fronteiras


bem definidas, mas sim em meios como o vcuo, ar ou gua.
Standards e Redes
Meio fsico
Uma outra forma de classificar os meios fsicos, pode ser em:
Wired

Baseado no uso de fios ou cabos condutores

Wireless

Baseado em comunicao sem uso de fios ou cabos condutores.


Standards e Redes
Parmetros importantes que diferenciam os meios de
comunicao
Tipo de dado: analgico ou digital
Capacidade de dados o meio pode transportar
Largura de banda: taxa de dados em bits por segundo.
Latncia: quantidade de tempo gasto para que um dado v da
origem ao destino.
Velocidade em que o meio transporta dados da origem ao destino
Standards e Redes
Parmetros importantes que diferenciam os meios de
comunicao
Distncia mxima
Exemplos:

Meios sem perda: no h perda de energia por unidade de distncia

Meios com perda: no h perda de energia por unidade de distncia


Exemplo: em sistema wireless, existe a perda de propagao em que a potncia do
sinal cai com o quadrado da distncia percorrida.

Suscetibilidade a interferncias externas


Eletromagnetic Interference (EMI), Radio Frequency Interference (RFI),
condies climticas, etc.
Standards e Redes
Tipos padres de meio fsico
Par tranado
Cabo coaxial
Fibra ptica
Microondas
Rdiodifuso
Infravermelho
Standards e Redes
Arquitetura geral de rede
Fornece a relao entre os dispositivos conectados
pela rede.
As arquitetura mais comuns so:
Ponto-a-ponto
Cliente-Servidor
Hbrida
Standards e Redes
Arquitetura ponto-a-ponto
No h controle centralizado na rede.
Cada dispositivo na rede gerencia seus prprios
recursos e requisitos.
Usualmente so implementadas em LAN
So mais simples de serem
implementadas
Standards e Redes
Arquitetura cliente-servidor
H um dispositivo centralizado de controle na rede,
denominado de servidor.
Os outros dispositivos so denominados de clientes.
Em geral, clientes contm poucos recursos e utilizam recursos
do servidor.
So utilizadas tanto para
LAN quanto para WAN
Standards e Redes
Arquitetura de redes de difuso (broadcast)
Todas as mquinas compartilham uma mesma linha de
transmisso.
Mensagens/pacotes enviados por uma mquina so recebidas
por todas as demais.
Se o endereo de destino contido na mensagem for diferente do
endereo da mquina que a recebeu, a mensagem descartada

Barramento Radiodifuso via satlite Anel


Standards e Redes
Arquitetura de rede X topologia de rede
A topologia de rede se refere ao arranjo fsico entre os
dispositivos conectados no qual determinado pela:
Arquitetura da rede
Meio de comunicao (wired X wireless)
Distncia entre os dispositivos
Standards e Redes
Exemplos de topologias de rede
rvore Malha

Barramento

Estrela

Anel Malha Completa


Interconexo de sistemas
necessrio ter um padro para que mquinas
diferentes se comuniquem em uma rede heterognea.
Questes:
Como um aplicativo envia uma mensagem a uma outra mquina?
Como um aplicativo comunica essa mensagem at o meio fsico atravs de sua arquitetura?
Essa comunicao deve atender a algum procedimento (protocolo, codificao, aspectos fsicos: tenso,
frequncia,...) em todas as mquinas?

Mquina1 Mquina2 Mquina3 MquinaN


Camadadeaplicativos

Camadadesistema

CamadadeHardware

...
MeioFsico
Standards e Redes
Modelo OSI (Open Systems Interconnection)
um modelo aberto de interconexo de dispositivos
em rede.
Foi criado em 1980 pelo ISO (International Organization
for Standardization)
Normaliza a interconexo em sete camadas de rede:
Camada fsica
Camada de enlace de dados
Camada de rede
Camada de transporte
Camada de seo
Camada de apresentao
Camada de aplicao
Standards e Redes
Modelo OSI (Open Systems Interconnection)
Mquina1 Mquina2
Protocolo da camada de aplicao
Aplicao Aplicao
Protocolo da camada de apresentao
Apresentao Apresentao
Protocolo da camada de seo

Seo Seo
Interface entre
camadas Protocolo da camada de transporte
Transporte Transporte
Protocolo da camada de rede

Rede Rede
Protocolo da camada de enlace

Enlace Enlace
Protocolo da camada fsica
Fsica Fsica

MeioFsico
Standards e Redes
Modelo OSI (Open Systems Interconnection)
Distribuio das camadas
na arquitetura da mquina
Application Layer
Application Software Layer
Presentation Layer

Session Layer

Transport Layer
System Software Layer
Network Layer

Data-Link Layer

Physical Layer Hardware Layer


Standards e Redes
Modelo OSI (Open Systems Interconnection)
O modelo OSI contempla a transferncia de dados
entre camadas e entre mquinas.
Exemplo
Suponha que um dado na camada de
aplicativo ser enviado camada de
aplicativo de um outro dispositivo
Na descida, cada camada acrescenta um
nova informao de controle (header)
Na subida, o contrrio.
Standards e Redes
Modelo OSI (Open Systems Interconnection)
Camada fsica
Responsvel pela gerao dos sinais eltricos, pticos ou
eletromagnticos que sero propagados pelo meio fsico.
Os protocolos nesta camada especificam: nveis de tenso,
durao, tcnicas de multiplexao, pinagem, etc.
Standards e Redes
Modelo OSI (Open Systems Interconnection)
Exemplos de protocolos de camada fsica
Standards e Redes
Modelo OSI (Open Systems Interconnection)
Camada de enlace de dados
A camada de enlace utiliza a camada fsica para a transmisso de
quadros de dados (DataLink Frames).
Quadros de dados: conjunto de bytes delimitados por sequncias pr-
estabelecidas de bits.
A camada de enlace:
Envia/recebe quadros de dados e aguarda/envia o respectivo quadro
de reconhecimento de recepo.
Verifica se todos os quadros de dados foram recebidos.
Verifica a ocorrncia de erros. Se sim, envia novamente o quadro.
Verifica o endereo de origem do quadro.
Verifica se o quadro recebido para o dispositivo.
Controla o fluxo de dados: ordem de chegada, taxa de recepo, etc.
Standards e Redes
Modelo OSI (Open Systems Interconnection)
Camada de enlace de dados
Se o quadro recebido para o dispositivo, retira o cabealho
correspondente camada de enlace de dados.
Os bits ou frames restantes so denominados de datagram que
enviado para a camada superior seguinte.
Standards e Redes
Modelo OSI (Open Systems Interconnection)
Camada de enlace de dados
Standards e Redes
Modelo OSI (Open Systems Interconnection)
Camada de rede
Nesta camada, as redes podem ser subdivididas em subredes.
A camada de rede controla a operao dessas subredes.
Uma de suas funes o roteamento de pacotes da mquina de origem
mquina de destino.
O roteamento pode apresentar caractersticas dinmicas (mudana de rotas de
acordo com o trafego em certos roteadores) ou estticas (usando sempre a
mesma rota entre duas mquinas).
Mquinas em uma mesma subrede se comunicar atravs de seus
endereos fsicos.
Mquinas em subredes diferentes se comunicar atravs de um
endereo adicional, denominado de endereo de rede.
Standards e Redes
Modelo OSI
Camada de rede
Se o dado for para o dispositivo:
retirado o cabealho da camada de rede
Os campos de dados restantes denominado de pacote (packet).
O pacote passado para a camada de transporte.
Standards e Redes
Modelo OSI
Exemplos de protocolos de camada de rede
Standards e Redes
Modelo OSI
Camada de transporte
a primeira a estabelecem especificamente a comunicao
mquina-a-mquina.
As camadas anteriores (fsica, de enlace e de rede) so empregadas
na comunicao roteador-roteador, roteador-mquina, mquina-
mquina.
Os protocolos da camada de transporte so responsveis por:
Particionar os dados da camada superior (camada de seo) em
unidades menores
Assegurar confiabilidade garantindo que:
Os pacotes sejam recebidos e transmitidos na ordem correta.
Sejam transmitidos em taxa razovel
Standards e Redes
Modelo OSI
Camada de transporte
Ao receber um pacote, a camada de transporte retira o
cabealho da camada de transporte.
Os dados restantes so denominados de messagem e so
passados para a camada superior.
Standards e Redes
Modelo OSI
Camada de transporte
Exemplos de protocolos
Standards e Redes
Modelo OSI
Camada de seo
Uma seo a conexo entre dois aplicativos executados em
mquinas diferentes a fim de organizar e sincronizar a troca de
informao.
Os protocolos da camada de seo:
Estabelecem sees definindo regras de dilogo entre os dois
aplicativos.
Separam e gerenciam os dados de cada seo
Regulam o fluxo de dados de cada seo
Assegura que os aplicativos envolvidos nas sees so os corretos.
Standards e Redes
Modelo OSI
Camada de seo
Ao receber uma mensagem, a camada de seo retira o
cabealho da camada de seo.
Os dados restantes so passados para a camada superior.
Standards e Redes
Modelo OSI
Camada de seo
Exemplos de protocolos
Standards e Redes
Modelo OSI
Camada de apresentao
Protocolos nesta camada so responsveis por:
Converter dados em formato genricos para que possam ser
transmitidos.
Compresso/descompresso de dados
Criptografia/descriptografia de dados
Converso de caracteres
Exemplo:
Quando um float transmitido, o mesmo convertido para uma
representao padronizada, enviado atravs da rede, e reconvertido
na representao adotada pela mquina de destino.
Standards e Redes
Modelo OSI
Camada de apresentao
A camada de apresentao retira o cabealho da camada de
apresentao.
Os dados restantes (mensagem) so passados para a camada
superior.
Standards e Redes
Modelo OSI
Camada de apresentao
Exemplos de protocolos
Standards e Redes
Modelo OSI
Camada de aplicao
Nesta camada iniciada a conexo de rede por um dispositivo
para um outro dispositivo.
Protocolos na camada de aplicao so usados diretamente
como aplicativos de rede.
Esses aplicativos de rede que virtualmente conectam a outros
aplicativos executados em outros dispositivos.
Standards e Redes
Modelo OSI
Camada de aplicao
Exemplos de protocolos
Tarefa
Como podem ser classificados os padres utilizados em sistemas embarcados?
Nomeie e defina 4 grupos de padres de mercados especficos.
D 3 exemplos de padres de cada grupo.
Nomeie e defina 4 grupos de padres de propsito geral.
D 3 exemplos de padres de cada grupo.
Qual a diferena entre uma linguagem de alto nvel de uma de baixo nvel?
D exemplo de cada uma.
Um compilador pode ser localizado em:
a) Na mquina alvo.
b) Na mquina host.
c) Na mquina alvo e/ou na mquina host.
d) Nenhuma acima
Qual a diferena entre compilador cruzada de um compilador?
Qual a diferena entre compilador e de um montador (assembler)?
O que um interpretador?
D dois exemplos de linguagem interpretada
Qual a diferena entre LAN, CAN, MAN e WAN?
Quais os tipos de meios de transmisso que podem conectar dispositivos?
O que o modelo OSI?
Quais so as camadas do modelo OSI?
D exemplo de dois protocolos em cada camada do modelo OSI.

Você também pode gostar