Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

REDES PARA IOT 
AULA 1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. Gian Carlo Brustolin 
 
 
CONVERSA INICIAL 
Nesta aula de Redes para IoT enfrentaremos alguns problemas bastante 
novos para a engenharia de redes. A própria definição de IoT, até o momento 
em que concluímos esta publicação, não está suficientemente sedimentada e 
normalmente é feita por exclusão. De qualquer forma, sabemos intuitivamente 
que redes para IoT atendem pequenos objetos autônomos que necessitam 
dessa conexão, normalmente com a internet, para cumprirem suas funções. 
A profusão de entidades ligadas à internet gerou alguns problemas 
clássicos, como a questão do endereçamento, a princípio resolvido pelo IPV6, 
mas também alguns problemas inusitados, como a necessidade de conexão sem 
fio de pequenos entes computacionais, sem alimentação externa, de forma 
segura, sem configurações e de operação simplificada. Essa combinação de 
requisitos e exigências torna a flexibilidade de projeto bastante baixa e a seleção 
de protocolos viáveis bastante estrita. 
Considerando que a segura definição do foco de nosso estudo está ainda 
aguardando a solução definitiva, podemos esperar uma série de certezas 
tênues, ou mesmo incertezas, no que se refere às redes de interconexão dessas 
entidades à internet ou às intranets. Por esse motivo, estudaremos alguns 
padrões de rede já consolidados para interconexão de sistemas de 
sensoriamento, por exemplo, e também protocolos ainda em fase de 
implementação em larga escala. Essas duas classes de padrões são atualmente 
as soluções utilizadas e as perspectivas de futuras soluções para as redes de 
atendimento aos objetos IoT. 
Nesta aula abordaremos os conceitos introdutórios de IoT: seus 
fundamentos, a arquitetura básica de hardware e software, sistemas 
operacionais, sensores, atuadores e objetos inteligentes, bem como 
mergulharemos com considerável profundidade em alguns protocolos de 
comunicação desses objetos. 
Será um estudo um tanto robusto e necessitaremos de todo apoio que a 
literatura de base puder nos fornecer. Neste sentido, convidamos você a 
acompanhar nossos estudos com um mergulho na literatura recomendada ao 
final de cada capítulo, sem a qual a compreensão dos temas apresentados será 
sobremodo árdua. O conhecimento prévio de conceitos introdutórios de 
 
 
radiopropagação, WiFi, WiMax, sistemas celulares, Zigbee e LoRa são 
pré-requisitos para o entendimento do exposto na presente publicação. 
Sugerimos fortemente que os leitores iniciem os estudos apenas após a revisão 
dos conceitos básicos destes temas. 
TEMA 1 – INTRODUÇÃO À IOT 
A evolução da eletrônica e a miniaturização dos componentes permitiu o 
acréscimo de determinada capacidade de processamento em objetos de uso 
cotidiano como máquinas de lavar, fechaduras e geladeiras. A popularização do 
acesso à internet, na grande maioria de lares e escritórios, por outro lado, 
associada a essa eletrônica reduzida e barata, hipoteticamente, permite a 
interconexão destes objetos autonomamente à internet, surge assim a ideia da 
conexão das “coisas” diretamente à internet, sem a intervenção humana. A 
internet das coisas (Internet of Things – IoT) tem assim uma origem singela, 
como forma de facilitar a operação de utensílios do cotidiano humano pela sua 
conexão à rede (Pacheco, 2018). 
Breve se percebeu o potencial da ideia. Sistemas embarcados, sensores 
e atuadores se incorporaram a lista de “coisas” conectáveis. A figura abaixo 
ilustra esta conexão autônoma com a internet. 
Figura 1 – IoT conectado diretamente a nuvem 
 
 
Fonte: Monk, 2018. 
A qualidade de vida humana está fortemente impactada pela presença de 
objetos autônomos conectados à internet na agricultura, pecuária, indústria, 
saúde, transporte, controle de trânsito, segurança… Nossa visão de futuro, hoje, 
inclui invariavelmente transportes autônomos, cidades inteligentes, 
reconhecimento de imagens, sensoriamento e outras facilidades providas pela 
IoT. 
Diante do que argumentamos, podemos tentar conceituar o tema. IoT 
refere-se a conexão de objetos à internet, e não aos objetos propriamente ditos. 
Os objetos conectáveis à internet são (não muito precisamente) chamados, em 
português, de objetos IoT. Pelo fato desses objetos terem certa capacidade de 
processamento, sensoreamento e atuação sobre o meio, como veremos em 
breve, muitas vezes são chamados de objetos inteligentes. Ainda como 
complemento a esta tentativa de definição de IoT podemos citar Santos e 
colegas (2016, p. 2): 
A Internet das Coisas, em poucas palavras, nada mais é que uma 
extensão da Internet atual, que proporciona aos objetos do dia-a-dia 
(quaisquer que sejam), mas com capacidade computacional e de 
comunicação, se conectarem à Internet. A conexão com a rede mundial 
de computadores viabilizará, primeiro, controlar remotamente os 
objetos e, segundo, permitirá que os próprios objetos sejam acessados 
como provedores de serviços. Estas novas habilidades, dos objetos 
comuns, geram um grande número de oportunidades tanto no âmbito 
acadêmico quanto no industrial. Todavia, estas possibilidades 
apresentam riscos e acarretam amplos desafios técnicos e sociais. 
O autor, além de nos presentear com uma boa definição, nos deixa uma 
admoestação quanto à questão de segurança, que embora não seja objeto 
desse estudo, deve ser tema de aprofundamento por cada um de nós, dada sua 
especial importância. 
TEMA 2 – ARQUITETURA DOS OBJETOS IOT 
Um objeto capaz de conexão à internet tem uma arquitetura de controle e 
atuação elementar. Dito de outra forma, qualquer objeto para ser controlado ou 
fornecer dados ou ambos precisam de uma estrutura eletrônica interna básica, 
que chamaremos de arquitetura interna, bem como demandará uma 
superarquitetura externa, de suporte à sua operação (doravante dita IoT-A), a 
 
 
exemplo de um middleware de nuvem e uma camada de aplicação. Vamos então 
detalhar essas arquiteturas. 
2.1 Arquitetura interna 
Basicamente, a arquitetura interna de um objeto IoT é uma eletrônica com 
capacidade de conexão e também de processamento local, mesmo que limitado. 
Além do processamento deve ser possível acrescentar as capacidades de 
sensoriamento e atuação. 
Imaginemos que enviamos um pacote de dados endereçado a um atuador 
IoT. Esse objeto deve possuir a habilidade de tratar o protocolo de comunicação 
e extrair os bits correspondentes ao comando a ser executado. Deve, 
igualmente, ser capaz de converter esse comando binário em um pulso de 
atuação para a máquina que é por ele controlada. 
De forma equivalente, um sensor IoT deve possuir a habilidade de 
converter a percepção externa em um código binário, empacotá-lo segundo o 
protocolo de comunicação utilizado e enviá-lo para a rede. Naturalmente, as 
funções de atuação e sensoriamento do meio não precisam ser independentes, 
ou seja, o mesmo equipamento IoT pode sensorear e atuar sobre o meio, 
compartilhando a capacidade de processamento. 
Genericamente podemos definir seis blocos funcionais para um objeto IoT 
(veja Figura 2, abaixo): comunicação, identificação, semântica, computação, 
sensores e atuadores (serviços). Por se tratarem de blocos funcionais, eles 
podem ser, do ponto de vista eletrônico, agregados em um único ou em vários 
componentes eletrônicos. 
A função de comunicação e de identificação dispensa, neste momento, 
explicações, assim como as funções de atuação, computação e sensoriamento, 
uma vez que a elas dispensamos seções específicas mais a frente em nosso 
estudo. 
A função semântica refere-se ao tratamento dos dados obtidos pelos 
sensores de forma a extrair conhecimento das informações colhidas segundo 
alguns algoritmos padronizados. 
 
 
 
Figura 2 – Blocos funcionais de objetos IoT 
Fonte: Santos et al., 2016. 
Para exemplificarmos, uma lâmpada conectada à internet deve ser capaz 
de processar os comandos de intensificar, reduzir ou desligara fonte luminosa. 
Não basta, entretanto, interpretar a sequência de bits recebidos; também é 
necessário que o trem de bits seja convertido em um nível de tensão sobre a 
lâmpada. Essas funções normalmente são realizadas por microcontroladores 
instalados em placas que contêm alguns acessórios eletrônicos, os quais 
facilitam a atuação e recepção de estímulos do meio externo. 
Uma distinção importante que precisamos fazer desde cedo quando 
tratamos de objetos inteligentes, se refere à integração do controlador em 
relação ao objeto. Para que possamos bem sedimentar esse conceito, devemos 
investigar o que é um sistema embarcado. 
Sistemas embarcados são uma eletrônica de controle que permite a 
operação de equipamentos de uso cotidiano. Vamos tomar o exemplo de um 
ar-condicionado de parede. A operação desse equipamento depende de um 
controle (local ou remoto) ou, dito de outra forma, de uma eletrônica embarcada 
de controle (Maschietto, 2021). 
 
 
Não necessariamente um sistema embarcado estará conectado à 
internet, mas havendo um sistema embarcado de controle, será possível 
embarcar também um sistema inteligente de IoT. 
Esse procedimento normalmente é feito pela associação de uma placa 
IoT ao sistema de controle presente no equipamento. Essa placa complementará 
as funções de gerenciamento, acrescentando conectividade e eventualmente 
capacidade semântica à supervisão do objeto. Na figura abaixo temos um 
exemplo de placa para IoT, a famosa Arduino Uno. 
Figura 3 – Placa para IoT Arduino Uno com microcontrolador AT mega 328 
Crédito: Arduino/CC. 
Existem, entretanto, sistemas embarcados que têm todas as 
características IoT nativas, exemplos são as smart TVs e fechaduras 
inteligentes. Nesses casos, naturalmente, não há necessidade de se agregar 
placas IoT aos controles embarcados. 
2.2 IoT-A 
 Como comentamos acima, certos objetos já embarcam em seu sistema 
de controle a possibilidade de conexão com a internet. Essa implementação, 
normalmente, tem por objetivo reduzir o custo eletrônico, principalmente se 
 
 
considerarmos objetos simples como lâmpadas, ventiladores ou aquecedores 
por exemplo. Dessa forma, retira-se parte das exigências do dispositivo 
inteligente, permitindo a construção de eletrônicas embarcadas mais simples e 
mais baratas. 
Imagine agora uma macroarquitetura que permita repousar parte da 
solução em aplicações residentes na nuvem. Essa solução permitirá eletrônicas 
embarcadas ainda mais espartanas e econômicas sem perdas de 
funcionalidade. 
A macroarquitetura que envolve não só o objeto inteligente, mas os 
recursos necessários para sua operação em rede, é chamada IoT-A. 
Alguns são os modelos de referência de IoT-A. Conforme Maschietto e 
colegas (2021, p. 62), os modelos podem ser compostos por três a cinco 
camadas funcionais. O modelo mais elementar, IoT-A de três camadas, 
representado na figura abaixo, inclui um gateway na eletrônica embarcada dos 
objetos, mantendo a função de endereçamento e handshake do protocolo de 
comunicação no objeto. A gestão da comunicação entre o cliente e o objeto, 
entretanto, nesse modelo, será feita pela camada de middleware sob o controle 
da aplicação. 
Figura 4 – IoT-A de 3 camadas 
Camada detecção física 
 
G
a
te
w
a
y
 
 
C
o
is
a
 Sensores 
Atuadores 
Sistemas embutidos 
 
IoT Middleware 
 
S
e
g
u
ra
n
ç
a
 
Serviço de descoberta 
Gerenciamento de contexto 
Gerenciamento QoS 
Dispositivo de descoberta 
 
 
 
Camada de aplicação 
Consumidor/coisa 
Controle/comando 
 
Fonte: Maschietto et al., 2021, p. 62. 
Outro modelo possível é a IoT-A de quatro camadas, na qual os objetos 
necessitam de um adaptador, ou interface, para a conexão. As funções de coleta, 
armazenamento de informações e identificação seguem embarcadas no objeto, 
mas uma camada superior de comunicação adapta as informações bidirecionais 
e as conformam a um protocolo universal de comunicação. Acima dessa camada 
está a de internet, que extrai informações dos dados e gerencia a comunicação. 
Ainda temos uma quarta camada, de aplicação, que fornece a interface humana 
de operação. Essa IoT-A é ilustrada abaixo. 
 
Figura 5 – IoT-A de 4 camadas 
Camada de 
aplicação 
App 1 App 2 App 3 App 4 App N 
Camada de 
internet 
Internet 
Camada de 
adaptação Adaptador Adaptador Adaptador 
Camada 
das coisas 
 
 
 
 
Fonte: Maschietto et al., 2021, p. 63. 
 
 
O IoT-A de cinco camadas, ilustrada abaixo, tem por base a camada de 
percepção que pode incluir sensores e leitores simples conectados um gateway 
próximo. A camada de rede permite a múltipla conectividade dos objetos com as 
plataformas de comunicação, roteando e cuidando do endereçamento. A 
próxima camada, de gerenciamento, é responsável pela operação dos objetos, 
monitoramento seu status. A função semântica e de armazenamento fica a cargo 
da camada de processamento. A camada de aplicação fornece a interface de 
operação. 
Figura 6 – IoT-A de 5 camadas 
 
Fonte: Maschietto et al., 2021, p. 65. 
 Essas macroarquiteturas são, como comentamos desde o início da 
exposição, meras arquiteturas de referência, ou seja, cada implementação 
escolherá aquela que melhor se adapte aos requisitos de projeto. 
Para entender essas possibilidades de escolha, suponha uma instalação 
industrial com grande profusão de objetos, como leitores RFID, sensores de 
esteiras e de posicionamento e acionadores de equipamentos. Conectar cada 
objeto à rede em uma arquitetura de três ou quatro camadas não seria 
 
 
economicamente interessante, dada a grande quantidade de objetos, fato que 
exigiria recursos consideráveis de endereçamento e adaptação ao protocolo de 
rede para cada objeto. Nesse caso, uma arquitetura de cinco camadas é mais 
viável, permitindo economia de recursos. 
Tome, agora, uma outra instalação predial, na qual, em cada sala, temos 
um equipamento de climatização inteligente, por exemplo. Nesse caso, 
implementar uma arquitetura de cinco camadas pode ser inviável, dadas as 
distâncias entre objetos. A arquitetura de três camadas será, então, mais 
eficiente e econômica. 
TEMA 3 – MIDDLEWARE IOT 
 Comentamos anteriormente que, de forma independente da IoT-A 
escolhida, parte das funcionalidades de IoT podem ser delegadas a um 
middleware. V amos agora entender este processo. 
3.1 Middleware 
Inicialmente, é importante que entendamos a ideia de um middleware de 
forma genérica. De fato, a expressão middleware não foi cunhada para o IoT. 
Toda vez que distintos sistemas operacionais precisam se conectar a uma ou 
várias aplicações, é necessária a presença de um tradutor intermediário, ou 
middleware. Esse código computacional permitirá uma operação transparente 
entre usuários, dados e aplicações em sistemas distribuídos. A sedimentação de 
aplicações em nuvem tornou a criação destes softwares imprescindíveis. 
As organizações buscam o middleware como uma maneira de 
administrar essa complexidade e manter o desenvolvimento rápido e 
econômico de aplicações. O middleware é capaz de oferecer suporte 
a ambientes de aplicação que funcionam de maneira estável e 
consistente em uma plataforma altamente distribuída. 
Independentemente de você criar em um ambiente e implantar em 
outro, não haverá discrepâncias no funcionamento graças ao 
middleware subjacente às aplicações. (Red Hat, 2021) 
Desta forma, a utilização de camadas intermediárias de interconexão de 
arquiteturas distintas é uma solução que permite boa flexibilidade de projeto bem 
como de manutenção. 
 
 
3.2 Middleware para objetos IoT 
Os objetos inteligentes são equipamentos tipicamente heterogêneos, com 
capacidades e arquiteturas computacionais distintas. Incluir uma camada de 
middleware não só permite maior liberdade ao projetista de equipamentos para 
IoT como também facilita o interfaceamento entre estes objetos e o controle 
humano. 
Plataformas de middleware podem agregarprocessos de IA, tratando 
dados em grandes quantidades para produzir informações sintéticas. Por outro 
lado, a utilização desses códigos permite também flexibilidade nas redes de 
conexão com os objetos, mesmo para eletrônicas embarcadas simples, ou seja, 
alterações na rede de conexão ou alterações no posicionamento do objeto 
podem ser facilmente detectadas pelo middleware, o qual realizará as alterações 
de endereçamento necessárias em relação as aplicações que necessitem deste 
objeto. 
TEMA 4 – CONECTIVIDADE PARA IOT 
Quando estamos estudando o tema de IoT e tocamos no assunto de 
conectividade, nosso pensamento se volta às estruturas clássicas de redes 
locais e a conexão com a internet. De fato, conectividade é um tema mais amplo 
englobando todas as formas de interligação entre dispositivos. 
Segundo Ideali (2021), conectividade, em eletrônica, é a capacidade de 
interligação entre equipamentos de forma adequada para viabilizar as trocas de 
dados e informações entre eles. 
Atualmente, a conectividade das máquinas computacionais é tão 
importante quanto são as próprias máquinas. Máquinas isoladas perdem, 
paulatinamente, sua utilidade. Esse fato se vê particularmente maximizado com 
a sedimentação dos objetos inteligentes em todos os ambientes, tanto no âmbito 
industrial, de onde se originaram, como em aplicações comerciais e residenciais. 
Soluções de interligação entre microcontroladores e sensores/atuadores, 
além da própria conexão entre microcontroladores isolados, são hoje o maior 
desafio técnico da conectividade, dadas as exigências bastante distintas de 
protocolos e técnicas de interconexão (Ideali, 2021, p. 8). A este tema nos 
dedicaremos brevemente nas próximas linhas. 
 
 
4.1 Protocolo 
A conexão entre máquinas computacionais deve seguir um padrão de 
comunicação comum, conhecido por elas. A esse padrão de comunicação 
damos o nome de protocolo. Um protocolo divide os dados a serem trocados em 
segmentos predefinidos, ditos quadros (ou frames, em inglês). Os frames, de 
maneira geral, são compostos minimamente de um cabeçalho de controle, 
endereço de origem, endereço de destino, dados úteis e finalizador (Ideali, 2021, 
p. 26). 
Tomando o modelo de camadas OSI, cada camada terá um protocolo 
próprio e independente das demais camadas. Assim, ao conectar dois hosts em 
uma rede local por um cabo de RJ45, através de um switch camada 3, por 
exemplo, temos o protocolo da camada física, o protocolo da camada de enlace 
e o protocolo da camada de rede operando simultaneamente. O padrão Ethernet 
é um exemplo de protocolo de enlace, embora o padrão IEEE 802.3, do qual é 
originário, estabeleça parâmetros para a camada física também. 
4.2 Conectividade com fio 
O uso de cabos metálicos ou ópticos como solução para conectividade de 
objetos inteligentes tem aplicação a cada dia mais restrita. Cabeamentos 
clássicos baseados em RJ45 para essa aplicação estão em desuso, embora 
algumas placas para IoT ainda apresentem essa interface por constituir uma 
forma bastante econômica e segura de conexão. 
Há uma segunda interface fiada bastante comum em placas para IoT: 
trata-se da USB. Essa interface é preservada em placas para IoT, principalmente 
para viabilizar as primeiras configurações. É fato que existe uma franca 
tendência a migrar esse estágio de configuração também para a interface sem 
fio, cabendo ao fabricante a decisão em função dos custos associados. 
Dedicaremos, em breve, alguma atenção à interface USB dada sua popularidade 
na tecnologia que estamos estudando. 
Em usos industriais de objetos inteligentes predominam cabeamentos 
ópticos, imunes aos intensos ruídos eletromagnéticos presentes nas linhas de 
produção. Em alguns casos, quando limitações mecânicas impedem a utilização 
de cabos ópticos, cabos coaxiais são uma solução possível. 
 
 
Os protocolos de comunicação adaptados para camadas físicas ópticas 
ou metálicas coaxiais são variados e restritos a aplicações industriais. 
4.3 Conectividade sem fio 
Claramente, nas aplicações de objetos IoT de uso geral, há uma clara 
tendência à utilização de conectividade sem fio. As soluções sem fio incluem 
principalmente o uso de radiopropagação, mas também são possíveis soluções 
ópticas, como a interface IrDA (Infrared Data Association) que utiliza radiação 
infravermelha para transmitir dados entre duas fontes próximas. Naturalmente 
essa solução implica em certa visibilidade e proximidade, o que impede uma 
operação suficientemente flexível. Dessa forma, a opção por radiocomunicação 
é preponderante na conectividade de objetos IoT. 
TEMA 5 – PROTOCOLO USB 
O protocolo USB está presente em hipoteticamente todas as placas para 
IoT na atualidade, como forma de acesso primário, ao menos para as 
configurações iniciais. Algumas placas exigem que configuremos alguns 
parâmetros da USB; por esse motivo, será necessário conhecê-la ao menos 
basicamente. Para um detalhamento completo sobre a interface, a USB 
Organization fornece extensa documentação gratuita disponível em: 
www.usb.org/documents (acesso em: 16 fev. 2022), cujo acesso recomendamos 
para aprofundamento do tema. 
Segundo Ideali (2021), o Universal Serial Bus (USB), desenvolvido em 
1995, é um conjunto de padrões de interface fiada de alta velocidade entre 
periféricos de sistemas eletrônicos. Foi idealizado como uma expansão externa 
do barramento de um computador para permitir a conexão de periféricos em 
hotswapping, ou seja, sem a necessidade de alterar a operação do computador. 
5.1 Versões 
A primeira versão do protocolo foi comercializada em 1994, USB 1.0, com 
capacidade de até 12Mbps e número máximo de dispositivos 127. Em 1996, o 
USB foi integrado ao Windows e passou a fazer parte das interfaces 
computacionais padrão. 
 
 
A versão presente na maioria dos equipamentos atualmente é a USB 3.0, 
compatível com as versões anteriores e capaz de transferir até 4,8 Gbps. 
Versões mais rápidas como a 3.2 e a Thunderbolt 3, mais raras, podem atingir 
20 e 40 Gbps. 
O USB–C é um padrão mais robusto de conectorização e modifica vários 
aspectos do que afirmamos sobre as versões anteriores do USB. Padronizado 
pelo USB–IF (USB Implementers Forum) em 2014, usa 24 pinos, permitindo 
transferir diversos padrões de dados, além do tradicional USB, como HDMI e 
Thunderbolt. O recurso de entrega de energia é também uma novidade 
interessante que permite tensões de 20 Vcc em até 5ª, o que provavelmente o 
tornará um interessante padrão de alimentação de dispositivos inteligentes e 
acionadores de baixa potência. O power delivery protocol (protocolo de entrega 
de potência) da versão USB 3.0, de fato, é bastante flexível, permitindo 
inicialmente quatro níveis de tensão nominal (5 V, 9 V, 15 V e 20 V), embora com 
acréscimo de facilidades de software seja possível programar o nível de tensão 
em etapas de 20 mV ou mesmo fornecer carregamento de corrente constante. 
Recentemente, para permitir a interligação direta entre periféricos e 
smartphones, surgiu o padrão USB On-The-Go, que permite essa conexão 
desde que o aplicativo correspondente exista no telefone celular. Não se trata 
propriamente de um novo padrão de protocolo, mas apenas de uma aplicação 
que utiliza o protocolo já existente, controlando o periférico e permitindo a 
adaptação do cabo. 
 
 
 
Figura 7 – Cabo USB On-The-Go 
Crédito: Taweephoto/Shutterstock. 
5.2 Topologia e fluxo de dados 
A topologia típica do sistema USB é estrela em camadas, ou seja, 
podemos expandir o número de portas USB acrescentando um hub, até cinco 
camadas de hubs são aceitas pelo protocolo, como ilustrado abaixo. 
 
 
 
Figura 8 – Níveis possíveis para USB 
Fonte: USB, 2000, p. 16. 
O endereçamento possui 7 bits (o que justifica o número máximo de 
dispositivos suportados), mas um equipamento conectado a um hub pode, em 
outra porta, conectar-se a outro hub sem a necessidade de compartilharo 
endereçamento entre os hubs. 
As portas USB disponíveis em máquinas computacionais são ditas portas 
de upstream, ao passo que as portas de periféricos são chamadas de 
downstream. Uma porta upstream USB pode suportar periféricos compostos 
(microfone e fone de ouvido, por exemplo) ou singulares. Nesse sentido, a 
interface deve ser capaz de tratar múltiplas conexões entre um host e um mesmo 
periférico, ditas funções (functions, em inglês). Logicamente, as conexões se 
comportam como seções, conforme ilustrado abaixo. 
 
 
 
Figura 9 – Conexão física x lógica USB 
Fonte: USB, 2000, p. 32. 
Na figura, pode-se observar que a camada física controla basicamente a 
conexão fiada, ao passo que há uma conexão lógica entre o host e o periférico 
(equivalente a camada de enlace no modelo OSI). Nessa conexão, o host 
controla o periférico como um equipamento único composto de várias 
terminações (endpoints). A próxima camada de conexão lógica trata as 
interfaces de cada função e seria equivalente, por aproximação, a camada de 
rede do modelo OSI. 
Os dados são decodificados do padrão de linha (descrito nas próximas 
seções) e então direcionados para as terminações lógicas as quais se 
conectarão com a interface lógica de cada função do periférico. Cada terminação 
 
 
lógica do periférico recebe uma numeração definida em fábrica. Uma terminação 
lógica, entretanto, é um ente de comunicação simplex, ou seja, é necessário criar 
para cada interface lógica um endpoint de leitura e outro de escrita. O tamanho 
dos pacotes de dados também pode ser distinto entre os diversos endpoints de 
um mesmo periférico. 
Todo periférico deve possuir uma operação default no endpoint “0”, ou 
seja, o host fará o handshake com essa terminação lógica default, chamada 
default control pipe. 
Do lado host são criados buffers. Cada buffer estará relacionado a uma 
única interface de função. Dessa forma, o host poderá ter SWs distintos (SWs 
Clientes) para controlar cada função do periférico sem que essas aplicações 
sofram interferências mútuas. A esse canal virtual entre os SWs Clientes e as 
interfaces lógicas designou-se pipe. Dessa forma, um pipe representa a 
possibilidade de comunicação entre um software cliente no host, via buffer de 
memória, e uma terminação lógica (endpoint) no periférico. O SW de controle da 
interface USB (dito SW de Sistema) terá o controle do Default Control Pipe. 
5.3 Camada física 
Na camada física, vários são os conectores possíveis, como se vê na 
figura abaixo. Originalmente foram criados os conectores A e B. Nestes, os 
soquetes do tipo A podem ser usados em portas upstream ou downstream; já no 
tipo B, apenas em downstream. Com a proliferação e redução física dos 
equipamentos celulares, padrões de menores dimensões foram disponibilizados. 
O tipo C foi desenvolvido para maior compactação, velocidades maiores e boa 
capacidade de transmissão de energia, para alimentação. 
 
 
Figura 10 – Portas USB 
Fonte: Kinast, 2019. 
Os formatos dos conectores, como se observa na Figura 10, são bastante 
variados. A função de cada pino foi inicialmente padronizada para os tipos A e B 
com apenas quatro pinos, conforme abaixo: 
• Pino 1 – Vcc (alimentação de 5 V corrente contínua) – fio vermelho 
• Pino 2 – Dados (pino de retorno para dados) – fio branco 
• Pino 3 – Dados – fio verde 
• Pino 4 – Terra (retorno da alimentação de 5 V corrente contínua) – fio 
preto 
Os novos formatos miniaturizados, como podem atender 
simultaneamente a host e periféricos, ganharam um quinto pino (ver Figura 11), 
que permite identificar esta diferença. A nova função de cada pino está descrita 
 
 
abaixo; conectores USB do tipo C são, entretanto, um padrão bastante diverso 
do apresentado nesta seção. 
• Pino 1 – Vcc (alimentação de 5V corrente contínua) – fio vermelho 
• Pino 2 – Dados (pino de retorno para dados) – fio branco 
• Pino 3 – Dados – fio verde 
• Pino 4 – Tipo de equipamento – Tipo A se conectado a Terra, Tipo B se 
aberto. 
• Pino 5 – Terra (retorno da alimentação de 5V corrente contínua) – fio preto 
Figura 11– Pinagem das portas USB 
Fonte: Marques, 2013. 
5.4 Protocolo da camada física 
O protocolo da camada física do padrão USB utiliza formato NRTZI (Non-
Return to Zero Inverted), obtido pelo uso dos pinos D- e D+ em push-pull, ou 
seja, quando sinal em D+ for +Vcc o sinal em D- será -Vcc. Essa técnica, além 
de garantir maior excursão do sinal, também reduz ruídos sistemáticos. As 
tensões aceitáveis para reconhecer D- serão aquelas abaixo de 0,3 V (ViL), ao 
passo que D+ será aceito se a tensão ultrapassar 2,8 V (ViH), como ilustrado 
abaixo. 
Figura 12 – Níveis de D- e D+ 
Fonte: USB, 2000, p.128. 
 
 
O protocolo utiliza todas as combinações de estados D+ D- com 
significados próprios antes do início da transmissão de informações entre host e 
periférico. 
Os símbolos básicos para interfaces de baixa velocidade são: 
• “J” D+ baixo e D- Alto 
• “K” D+ Alto e D- baixo 
Já em interfaces de velocidade padrão estes símbolos serão invertidos. 
Para ambas as velocidades temos: 
• SE0 (Single-ended zero) ambos baixos e 
• SE1 (Single-ended “1”) ambos altos 
O nível lógico 0 é obtido pela transição entre os níveis J e K, já o nível 
lógico 1 é interpretado pela não transição de níveis. 
A presença de resistores de pull-down (conectados a -Vcc) no host faz 
com que a interface fique em SE 0 enquanto livre. Um periférico terá resistores 
de pull-up; assim, ao se conectar, levará a linha de dados ao estado J. O host 
perceberá a variação de tensão na interface, e poderá então dar início a 
comunicação. 
A interface USB é síncrona, ou seja, a cadência de transmissão deve 
seguir determinado relógio com velocidade definida, o qual será sincronizado no 
 
 
periférico a partir da recepção do sinal SYNC do host. Para que esse processo 
ocorra corretamente é necessário que o host conheça a velocidade de operação 
do periférico previamente. O posicionamento do resistor de pull-up do periférico 
informará ao host se o dispositivo é de baixa velocidade ou de velocidade padrão 
da interface, como ilustrado abaixo. 
Figura 13 – Identificação de velocidade do USB 
Fonte: USB, 2000, p. 141. 
Assim há uma conexão inicial de controle de baixa velocidade ou em 
velocidade padrão, selecionada em função da posição do resistor de pull-up. 
Dispositivos de alta velocidade serão inicialmente identificados como padrão, 
mas o host enviará sequências de setup e aguarda a resposta do periférico 
informando sua eventual capacidade de conexão em alta velocidade. 
Quando um periférico é conectado a um hub ou host, haverá um período 
de deboucing ou de quarentena de 100 ms, no qual o host aguardará a 
 
 
estabilização elétrica do periférico. Logo após a quarentena de conexão, o host 
enviará um sinal de reset, que será composto de D+ e D-como a 
estandardização das trocas de pacotes. A primeira característica interessante do 
USB é a ordem dos bits a serem transmitidos. A leitura se dá da esquerda para 
a direita. Os bits são colocados então no barramento a partir do menos 
significativo. 
Quando um dispositivo novo é conectado à rede USB, ocorrerá 
inicialmente o reset do dispositivo, como descrevemos acima. Após o reset, o 
host enviará um pacote de token constituído de um byte de sincronismo para 
USB de baixa velocidade e 32 bits para alta, dito SYNC. O objetivo desse quadro 
é apenas sincronizar o novo dispositivo com a rede. Os últimos 2 bits desse 
pacote identificarão o fim do sincronismo e o início do pacote de dados 
propriamente dito. Por tal motivo, esses bits recebem o nome de Start-of-Packet 
(SOP). 
Concluído o sincronismo, há um byte de identificação de tipo de pacote 
(PID – Package Identification Data) composto de um nible e de seu 
complemento. 
O PID identifica se o pacote é de token, dados, handshake ou especial, 
conforme a figura abaixo. 
Figura 15 – Tipos de PID 
PID Type PID Name PID* Description 
Token OUT 
IN 
SOF 
SETUP 
0001B 
1001B 
0101B 
1101B 
Address + endpoint 
number in host-to-
function transaction 
Address + endpoint 
number in function-to-
host transaction 
Start-of-Frama marker 
and frame number 
Address + endpoint 
number in host-to-
 
 
function transaction for 
SETUP to a control pipe 
Data DATA0 
DATA1 
DATA2 
MDATA 
0011B 
1011B 
0111B 
1111B 
Data packet PID even 
Data packet PID odd 
Data packet PID high-
speed, high bandwidth 
isochronous transaction 
in a microframe 
Data packet PID high-
speed for split and high 
bandwidth isochronous 
transactions 
Handshake ACK 
NAK 
STALL 
NYET 
0011B 
1011B 
0111B 
1111B 
0010B 
Receiver accepts error-
free data packet 
Receiving device cannot 
accept data or 
transmitting device 
cannot send data 
Endpoint is halted or a 
control pipe request is 
not supported 
No response yet from 
receiver 
Special PRE 
ERR 
SPLIT 
PING 
Reserved 
1100B 
1100B 
0100B 
0000B 
(Token) Host-issued 
preamble. Enables 
downstream bus traffic 
to low-speed devices. 
(Handshake) Split 
Transaction Error 
Handshake (reuses 
PRE value) 
(Token) High-speed 
Split Transaction Token 
(Token) High-speed flow 
control probe for a 
bulk/control endpoint 
Reserved PID 
 
Fonte: USB, 2000, p. 196. 
 
 
Seguindo um PID estarão 11 bits, 7 de endereço do destino (DA – Device 
Adress) e um nible de fim de endereçamento (ENDP). O ENDP permite a 
identificação do endereçamento de funções em um mesmo periférico. 
Concluído o endereçamento, 5 bits de redundância cíclica (CRC5) são 
acrescentados se o pacote for de token. A CRC5 é calculada para os bits após 
o PID e antes do bit stuffing. 
Para pacotes não token a CRC será de 16 bits. Transmitida a CRC, 3 bits 
de fim de pacote “001” (EOP – End of Package) são incluídos para informar o 
fim da transmissão. 
Concluído o reset e recebido o pacote de token, o novo dispositivo 
assumirá o endereço enviado e responderá com um pacote de handshake de 
aceitação (ACK – acknoledge). Um pacote de handshake é constituído apenas 
pelo SYNC, PID e EOP. Segundo Ideali (2021), o segmento PID desse tipo de 
pacote pode conter os códigos de ACK, NAK (não aceito), STALL (indicando erro 
no dispositivo), NYET (dispositivo ocupado, aguardando fim de transmissão) e 
ERR (transmissão recebida com erro). 
O próximo pacote do host também será de token, e poderá indicar se o 
host está pronto para receber dados (Token IN), se enviará dados para o 
dispositivo (Token OUT) ou se o host precisa configurar algo no dispositivo 
A partir desse ponto o periférico estará pronto para trocar dados com o 
host participando da rede USB existente. 
FINALIZANDO 
Nesta aula buscamos construir o conceito de IoT e dos objetos 
inteligentes, descrevendo algumas das arquiteturas possíveis para essas 
eletrônicas e inteligência. Introduzimos o conceito de conectividade dos objetos 
IoT e finalmente nos debruçamos sobre o estudo de uma interface bastante 
tradicional, mas onipresente nestes objetos, a interface USB. 
 
 
 
REFERÊNCIAS 
IDEALI, W. Conectividade em automação e IoT. Rio de Janeiro: Alta Books, 
2021. 
KNAST, P. O que é USB e quais os tipos? Oficina da Net. 2019. Disponível em: 
https://www.oficinadanet.com.br/hardware/24810-quais-os-tipos-de-cabos-usb-
e-qual-deles-usar. Acesso em: 17 fev. 2022. 
MASCHIETTO, L. Arquitetura e infraestrutura de IoT. Grupo A, 2021. 
MARQUES, E. Futuro conector USB será menor e poderá ser encaixado 
independentemente de orientação. MacMagazine. 2013. Disponível em: 
https://macmagazine.com.br/post/2013/12/05/futuro-conector-usb-sera-menor-
e-podera-ser-encaixado-independentemente-de-orientacao/. Acesso em: 17 fev. 
2022. 
MONK, S. Internet das coisas: uma introdução com o photon. Grupo A, 2018. 
PACHECO, L. A. B. Arquitetura para privacidade na integração de internet 
das coisas e computação em nuvem. Dissertação de mestrado. Brasília: UnB, 
2018. 
RED HAT. O que é middleware e para que serve. 2021. Disponível em: 
https://www.redhat.com/pt-br/topics/middleware/what-is-middleware. Acesso 
em: 16 fev. 2022. 
SANTOS, B. P. et al. Internet das coisas: da teoria à prática. Belo Horizonte: 
UFMG, 2016. 
USB. USB 2.0 full documentation. Universal Serial Bus specification. Revision 
2.0. 2000. Disponível em: https://www.usb.org. Acesso em: 16 fev. 2022.

Mais conteúdos dessa disciplina