Вы находитесь на странице: 1из 7

\section{Sistemas Embarcados}

Os sistemas embarcados, tambm conhecidos como sistemas embutidos


ou sistemas dedicados, so a combinao de hardware e software com a
finalidade de controlar um ambiente ou um dispositivo fsico
\cite{ossada12010estudo}. Os sistemas embarcados so diferentes de
outros tipos de sistemas computacionais, como computadores pessoais
(PCs) ou supercomputadores. No entanto, complicado definir o que
realmente um sistema embarcado, pois o conceito est em constante
evoluo devido aos avanos tecnolgicos e a reduo de custos de
hardware \cite{noergaard2012embedded}.
Alguns autores como Anthony and Barr (2006) relatam que um sistema
embarcado projetado para executar uma funo especfica diferindo-se
de um PC, no qual realiza tarefas distintas, como um servidor de arquivos,
console para jogos ou para edio de textos e planilhas. No entanto,
atualmente existem telefones celulares que executam uma variedade de
funes primrias, como mensagem de texto, voz e vdeo, alm disso as
ltimas TVs digitais incluem aplicaes de interao como e-mail,
navegao web e jogos \cite{noergaard2012embedded}.
Outros autores classificam sistemas embarcados como mais limitados em
hardware e software quando comparados com um PC. Isso significa que os
sistemas embarcados tem limitaes de desempenho no processamento,
consumo de energia e quantidade de memria, alm de limitaes no
sistema operacional e suas aplicaes. Contudo, essa definio no
totalmente verdadeira, pois tanto hardwares quanto softwares de PCs do
passado esto sendo remodelados para projetos de sistemas embarcados
mais complexos \cite{noergaard2012embedded}.
De acordo com Tammy Noergaard (2012) h uma constante discusso do
que realmente um sistema embarcado:
\begin{quote}
Alguns dispositivos que so chamados de sistemas embarcados, tais como
PDAs, no so realmente sistemas embarcados. H uma discusso quanto
existncia ou no de sistemas computacionais que atendam algumas,
mas no todas, as definies de sistemas embarcados tradicionais. Alguns
acham que a designao de sistemas embarcados para projetos mais
complexos conduzida por profissionais no tcnicos, ao invs de
engenheiros. Na realidade, at mesmo os engenheiros de embarcados
esto divididos se estes projetos so ou no sistemas embarcados, mesmo
que atualmente estes sistemas so frequentemente discutidos, como tal.
Quer ou no as definies sobre embarcados tradicionais devem continuar
a evoluir, ou um novo campo de sistemas computacionais deve ser
determinado para incluir estes sistemas mais complexos. Por enquanto, j
que no h novo campo suportado pela indstria de sistemas
computacionais para projetos que se enquadram entre os sistemas
embarcados tradicionais e os sistemas de PC de uso geral.
\end{quote}
\subsection{Microcontroladores}

O principal componente dos sistemas embarcados denominado de


microcontrolador, que responsvel por gerenciar todos os componentes
fsicos de um barramento e manipular a interface com o usurio
\cite{tanenbaum2009organizaccao}. Os microcontroladores de sistemas
embarcados tem uma unidade de processamento denominada de
processador integrado diferente dos computadores, que fica em um
componente separado denominado de Unidade de Processamento Central
(\textit{Central Processing Unit} - CPU) \cite{ossada12010estudo}.
Os microcontroladores comearam a serem populares no incio da dcada
de 70. A \textit{Intel}, na poca uma empresa pequena, foi uma das
precursoras na fabricao de microcontroladores, pois havia a
necessidade de melhorar e integrar os seus microprocessadores, utilizados
at ento somente em computadores, com os demais componentes
\cite{intelcorporation2015}.
A
necessidade
de
integrao
dos
componentes ocorreu devido a empresa \textit{Nippon Calculating
Machine Corporation} solicitar o desenvolvimento de chips personalizados
para a sua nova calculadora de impresso \textit{Busicom}. No ano
seguinte a \textit{Intel} adquiriu os direitos da \textit{Nippon Calculating}
e lanou o seu primeiro microprocessador chamado de \textit{Intel
4004} \cite{intelcorporation2015}.
O \textit{Intel 4004} proporcionou aos engenheiros personalizao dos
softwares utilizados em equipamentos eletrnicos, o que ajudou na
disseminao dos sistemas embarcados. Alm disso, contavam com a
capacidade de 4 bits interno no chip, o que elevou o processamento
simultneo
de
dados
e
instrues
do
microprocessador
\cite{intelcorporation2015}. Os microcontroladores tornaram-se mais
tarde uma das melhores relaes custo/benefcio do mercado, quando se
demandava processamento, baixo custo de hardware e pequena
necessidade de espao em disco \cite{martins2005sistemas}.
Atualmente o mercado de sistemas embarcados o grande responsvel
pela
absoro
dos
chips
produzidos
pelos
fabricantes
de
microprocessadores \cite{ossada12010estudo}. Menos de 3\% (100
milhes por ano) dos microprocessadores fabricados no mundo so de alto
desempenho destinados aos computadores de propsito geral, os 98\%
restantes (6 bilhes por ano) so processadores e microcontroladores,
destinados
ao
mercado
de
sistemas
embarcados
\cite{massa2006programming}.
O aumento de desempenho dos processadores resultante do avano
tecnolgico dos ltimos 45 anos somado com a alta produo dos
microcontroladores, que impactou no baixo custo de hardware, fizeram
dos sistemas embarcados parte integral no cotidiano das pessoas. Hoje os
sistemas embarcados esto em telefones celulares, em carros
inteligentes, fornos microondas e at mesmo em maquinas de lavar
\cite{carro2003sistemas}.
\subsection{Arquitetura}
A arquitetura dos sistemas embarcados pode ser definida utilizando o
modelo de arquitetura de \textit{von Neumann}. Este modelo foi
publicado por John von Neumann em 1945, no qual definia os principais

requisitos para um computador eletrnico de uso geral. Como os sistemas


embarcados so um tipo de sistema computacional, este modelo pode ser
aplicado de forma natural na arquitetura dos sistemas embarcados
\cite{noergaard2012embedded}.
O modelo de \textit{von Neumann} uma representao da arquitetura
de sistemas embarcados em camadas, onde todos compartilham uma
similaridade na sua estrutura, ou seja, todos tem pelo menos a camada de
hardware ou todas as camadas (hardware, software e aplicao) em que
os componentes da arquitetura se enquadram. A camada de hardware
contm todos os componentes fsicos de uma placa embarcada, enquanto
que nas camadas de software e aplicao contm todo o software
processado pelo sistema embarcado \cite{noergaard2012embedded}. A
Figura 1 demonstra como a representao do modelo de \textit{von
Neumann}.
\begin{figure}[!htb]
\caption{Modelo em Camadas de \textit{Von Neumann}.}
\label{fig:model_von_neumann}
\centering%
\begin{minipage}{.3\textwidth}
\includegraphics[width=\textwidth]
{Imagens/model_von_Neumann.jpg}
\fonte{\cite{noergaard2012embedded}}
\end{minipage}
\end{figure}
\subsubsection{Hardware Layer}
O modelo de \textit{von Neumann} denota que a camada de hardware
(\textit{hardware layer}) composta por cinco categorias de
componentes, no qual existem em qualquer arquitetura de hardware de
dispositivos eletrnicos \cite{noergaard2012embedded}.
\begin{itemize}
\item \textbf{Processador}.
O processador o principal componente da camada de hardware. Um
sistema embarcado tem pelo menos um processador definido como
\textit{master} e processadores opcionais definidos como \textit{slaves},
que ficam sob controle do \textit{master}. Os processadores tm como
responsabilidade gerenciar as memrias, o barramento e os dispositivos
de entrada e sada (E/S). A complexidade do processador \textit{master}
determina se ele classificado como um microprocessador ou um
microcontrolador
(processador
integrado).
Normalmente
os
microprocessadores tem um conjunto mnimo de memria integrada ao
processador (registradores) enquanto os microcontroladores tm a maior
parte da memria e componentes de I/O integrados no chip
\cite{noergaard2012embedded}.
A vantagem de um processador integrado que a maioria dos
componentes ganha um aumento no seu desempenho de transmisso de
dados, pois no tem que lidar com latncias envolvendo o barramento do

processador. Alm disso, tem seu design simples e com menos


componentes, o que gera consequentemente requisitos de potncia bem
menores do que um microprocessador. Com menos componentes e
requisitos de potncia mais baixos, um processador integrado resulta em
uma placa menor e mais barata \cite{noergaard2012embedded}.
Atualmente existem diversos processadores integrados para cada soluo
de sistema embarcado. Os processadores integrados so divididos em
categorias denominadas de arquiteturas. O que difere uma arquitetura
para outra o conjunto de instrues de cdigo de mquina que ela pode
executar. Processadores integrados da mesma arquitetura podem executar
o mesmo conjunto de instrues \cite{noergaard2012embedded}. A
Tabela 1 traz uma lista de processadores e suas arquiteturas.
\begin{table}[!htb]
\caption{Processadores e arquiteturas.}
\label{fig:model_von_neumann}
\centering%
\begin{minipage}{.7\textwidth}
\includegraphics[width=\textwidth]
{Imagens/processors_int.jpg}
\fonte{\cite{noergaard2012embedded}}
\end{minipage}
\end{table}
\item \textbf{Memria}.
Na camada de hardware a memria definida em uma hierarquia assim
como em qualquer outra arquitetura de sistemas computacionais
\cite{noergaard2012embedded}. No topo desta arquitetura est a
memria com maior velocidade de acesso denominada de registradores
de CPU, que acessada conforme a velocidade do processador. Os
registradores armazenam instrues com a localizao de um
determinado programa na memria principal a ser processado pelo
processador \cite{tanenbaum2009organizaccao}.
Abaixo dos registradores est a memria cache, que fica entre o
processador e a memria principal, com objetivo de armazenar as
informaes mais acessadas pelo processador. A memria cache tem
velocidade de leitura e escrita muita mais rpida que a memria principal,
o que aumenta o desempenho do processador no acesso a informao
\cite{tanenbaum2009organizaccao}.
A principal memria da hierarquia dividida em dois tipos. O primeiro a
Memria Somente Leitura (\textit{Read-only Memory} - ROM), que
utilizada para armazenar dados de forma permanente, normalmente
onde
fica
o
\textit{firmware}
do
sistema
embarcado
\cite{noergaard2012embedded}. O segundo a Memria de Acesso
Randmica (\textit{Random Access Memory} - RAM), que tem como
objetivo armazenar os programas que esto em execuo, onde
acessada de forma direta e aleatria. Alm disso, ela pode ser alterada
vrias
vezes,
dependendo
do
hardware
\cite{tanenbaum2009organizaccao}.

Na base da hierarquia est a memria secundria e terciria, tambm


conhecida como memria auxiliar ou de armazenamento. Esse tipo tem
como objetivo armazenar grande quantidade de dados ou fazer backup de
informaes \cite{noergaard2012embedded}. Um exemplo a fita de
backup ou um disco rgido externo. A Figura 2 ilustra o nvel hierrquico
para memria.
\begin{figure}[!htb]
\caption{Hierarquia de Memria}
\label{fig:memory_hierarchy}
\centering%
\begin{minipage}{.8\textwidth}
\includegraphics[width=\textwidth]
{Imagens/memory_hierarchy.jpg}
\fonte{Elaborado pelo autor}
\end{minipage}
\end{figure}
\item \textbf{Dispositivo de Entrada e Sada}.
Os dispositivos de entrada e sada (E/S) tem como responsabilidade
transportar as informaes entre os componentes de uma placa
embarcada. Os dispositivos de entrada trazem as informaes para o
processador integrado, estes podem ser teclados, mouses e controles
remoto. Os dispositivos de sada levam as informaes para fora do
processador integrado, estes podem ser monitores, LEDs e impressoras.
Alguns dispositivos fazem as duas coisas, tal como um dispositivo de rede
que transmite e recebe dados \cite{noergaard2012embedded}.
Os E/S podem estar conectados diretamente no processador integrado
atravs dos pinos do processador, quando os mesmos esto na mesma
placa embarcada. Ainda podem estar conectados indiretamente atravs
de uma interface de comunicao (i.e, RJ-45), que utilizam o barramento
de dados para chegar at o processador \cite{noergaard2012embedded}.
Os processadores integrados tem uma maior taxa de transferncia para
comunicao com outros componentes, pois h pouca ou nenhuma
utilizao do barramento de dados. Contudo, os E/S no ganham este
beneficio, pois h a dependncia de outros dispositivos externos, que
podem ter uma taxa de transferncia maior ou menor que o
processador \cite{noergaard2012embedded}. Por exemplo, quando se
tem um trafego elevado em uma interface e o processador descarta
pacotes fazendo informaes serem perdidas.
\item \textbf{Barramento de Dados}.
Todos os componentes da camada de hardware so interligados por um ou
mais barramento de dados. Um barramento nada mais que um conjunto
de "fios" que transportam sinais de dados e controles (i.e, sinal de clock)
entre todos os componentes da placa embarcada ou para outros
barramentos \cite{noergaard2012embedded}.

\end{itemize}
A Figura 3 ilustra os componentes descritos em uma placa embarcada.
\begin{figure}[!htb]
\caption{Placa de um Sistema Embarcado.}
\label{fig:embedded_system_board}
\centering%
\begin{minipage}{.9\textwidth}
\includegraphics[width=\textwidth]
{Imagens/embedded_system_board.jpg}
\fonte{\cite{noergaard2012embedded}}
\end{minipage}
\end{figure}
\subsubsection{System Software Layer}
O modelo de \textit{von Neumann} determina que na camada de software
(\textit{system software layer}) necessrio um software denominado
de \textit{driver} de dispositivo. Este software tem como objetivo
inicializar ou parar componentes da camada de hardware ou ainda
permitir que outro \textit{driver} habilite, desabilite, instale, desinstale,
leia dados e escreva dados de um componente. Alm disso, o
\textit{driver} gerencia o acesso ao hardware pelos componentes das
camadas de alto nvel e faz o elo de comunicao entre hardware, sistema
operacional (SO) e camada de aplicao \cite{noergaard2012embedded}.
O SO da camada de software um componente opcional, ou seja, nem
todos os sistemas embarcados tem um \cite{noergaard2012embedded}.
Segundo Tanenbaum (2009), SOs tem como objetivo fornecer aos
programas do usurio um modelo de computador melhor, mais simples e
mais limpo, alm de lidar com gerenciamento de todos os recursos de
hardware. Essa definio exatamente a mesma quando se fala em SOs
embarcados, pois tambm h a necessidade de torn-los mais eficientes e
confiveis \cite{noergaard2012embedded}.
Os SOs variam na sua arquitetura conforme os componentes que
possuem, ou seja, um SO pode estar diretamente sobre a camada de
hardware, sobre o \textit{driver} de dispositivo ou sobre uma camada
adicional denominada de \textit{Board Support Package} (BSP).
Normalmente o BSP utilizado, pois ele uma camada de abstrao entre
o SO e o \textit{driver} de dispositivo, o que permite que um SO seja
portado para um novo hardware sem a alterao do cdigo fonte
\cite{noergaard2012embedded}.
O nico componente obrigatrio em um SO embarcado denominado
de \textit{Kernel}, no qual tem objetivo de gerenciar os processos do SO,
gerenciar a memria alocada para cada processo e o gerenciamento de
sistema para E/S tanto do sistema de arquivo quanto dos dispositivos
conectados \cite{noergaard2012embedded}.
A Figura 4 ilustra as possveis arquiteturas da camada de software.
\begin{figure}[!htb]

\caption{Arquiteturas da camada de software.}


\label{fig:so_models}
\centering%
\begin{minipage}{.8\textwidth}
\includegraphics[width=\textwidth]{Imagens/os_models.jpg}
\fonte{\cite{noergaard2012embedded}}
\end{minipage}
\end{figure}
\subsubsection{System Application Layer}
A ultima camada do modelo de \textit{von Neumann} denomina-se
camada de aplicao (\textit{system application layer}). Como o prprio
nome diz nesta camada encontrado os aplicativos de um sistema
embarcado, no qual so controlados pela camada de software
\cite{noergaard2012embedded}.
Os aplicativos definem de fato o objetivo de um sistema embarcado
\cite{noergaard2012embedded}. Por exemplo, se um sistema embarcado
for projetado com o objetivo de transferir arquivos, bem possvel que seja
utilizado o Protocolo de Transferncia de Arquivo (\textit{File Transfer
Protocol} - FTP). Se tiver o objetivo de enviar e receber e-mail utilizara o
Protocolo de Transferncia de Correio Simples (\textit{Simple Mail Transfer
Protocol} - SMTP).
A camada de aplicao comunica-se com as outros softwares, como
\textit{driver} de dispositivo e o prprio \textit{Kernel}. Para isso ser
concretizado utilizado um software denominado de \textit{Middleware}.
Este software cria uma camada de abstrao em sistemas embarcados
com dois ou mais aplicativos \cite{noergaard2012embedded}.
A Figura 5 ilustra os aplicativos da camada de aplicao.
\begin{figure}[!htb]
\caption{Aplicativos cmada de aplicao..}
\label{fig:app_models}
\centering%
\begin{minipage}{.5\textwidth}
\includegraphics[width=\textwidth]{Imagens/app_model.jpg}
\fonte{\cite{noergaard2012embedded}}
\end{minipage}
\end{figure}

Вам также может понравиться