• Nenhum resultado encontrado

UNIVERSIDADE FEDERAL DE OURO PRETO ESCOLA DE MINAS CECAU COLEGIADO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDADE FEDERAL DE OURO PRETO ESCOLA DE MINAS CECAU COLEGIADO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO"

Copied!
35
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DE OURO PRETO ESCOLA DE MINAS

CECAU – COLEGIADO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

UTILIZAÇÃO DE COMUNICAÇÃO USB EM SISTEMAS EMBUTIDOS

MONOGRAFIA DE GRADUAÇÃO EM ENGENHARIA DE CONTROLE E AUTOMAÇÃO

Diego Maciel Mota

(2)

Diego Maciel Mota

UTILIZAÇÃO DE COMUNICAÇÃO USB EM SISTEMAS EMBUTIDOS

Monografia apresentada à Universidade Federal de Ouro Preto – UFOP, como trabalho final de curso para obtenção do título de Engenheiro de Controle e Automação.

Orientador: Prof. Ricardo de Oliveira Duarte

Ouro Preto

Escola de Minas – UFOP Setembro de 2007

(3)
(4)

III

Dedico este trabalho aos meus pais, Cida e Luiz, por todo apoio e dedicação prestados durante todos estes anos.

(5)

LISTA DE FIGURAS...V LISTA DE TABELAS...VI LISTA DE SIGLAS...VII RESUMO...VIII ABSTRACT...IX I. INTRODUÇÃO...1 1.1 OBJETIVO...2 1.2 METODOLOGIA UTILIZADA...2 1.3 ESTRUTURA DO TRABALHO...2

II. COMUNICAÇÃO USB...4

2.1- HISTÓRICO...4 2.2- PROTOCOLO USB...4 2.3- HOST USB...7 2.4- FUNÇÕES USB...8 2.5- ESTRUTURA MECÂNICA...8 2.6- ESTRUTURA ELÉTRICA...10 2.7- TRANSFERÊNCIA DE DADOS...12

III. SISTEMAS EMBUTIDOS...14

3.1- DEFINIÇÃO...14

3.2- MICROCONTROLADORES...14

IV. ESTUDO DE VIABILIDADE DE COMUNICAÇÃO USB EM SISTEMAS EMBUTIDOS...17

4.1 - EXPERIÊNCIAS REALIZADAS...17

V. CONCLUSÃO...22

VI- TRABALHOS FUTUROS...23

(6)

V

LISTAS DE FIGURAS

FIGURA 2.1: ESTRUTURA DO TOKEN PACKAGE...5

FIGURA 2.2: ESTRUTURA DO DATA PACKAGE...5

FIGURA 2.3: ESTRUTURA DO HANDSHAKE PACKAGE...6

FIGURA 2.4: PILHA DE DRIVERS USB NO SISTEMA OPERACIONAL WINDOWS...7

FIGURA 2.5: CABO USB TIPO A (MACHO)...9

FIGURA 2.6: CABO USB TIPO A (FÊMEA)...9

FIGURA 2.7: CABO USB TIPO B (MACHO)...9

FIGURA 2.8: CABO USB TIPO B (FÊMEA)...10

FIGURA 2.9: ESTRUTURA DE UM CABO USB...10

FIGURA 3.1: ESTRUTURA ILUSTRADA DE UM MICROCONTROLADOR...14

FIGURA 3.2: DIAGRAMA DOS PINOS DO PIC18F4550...15

FIGURA 4.1: FIGURA ESQUEMÁTICA DO TECLADO...17

FIGURA 4.2: ESTRUTURA DO FUNCIONAMENTO DO SISTEMA...18

FIGURA 4.3: CONVERSOR USB-SERIAL...20

FIGURA 4.4: MICROCONTROLADOR EM UM CONVERSOR USB-SERIAL...20

(7)
(8)

VII

LISTA DE SIGLAS

USB – Universal Serial Bus GND – Ground

ROM – Read Only Memory RAM – Read Access Memory

EEPROM – Electrically Erasable Programmable Read Only Memory CPU – Central Programming Unit

(9)

RESUMO

Esta monografia tem por finalidade realizar um estudo sobre a viabilidade da utilização da comunicação USB em sistemas embutidos e, para tal, será visto o comportamento de alguns dispositivos que possuem o protocolo USB, bem como a estrutura deste barramento, de modo a conectar estes dispositivos via comunicação USB.

Inicialmente foi realizada uma revisão bibliográfica sobre alguns dispositivos utilizados em sistemas embutidos e averiguando se os mesmos são habilitados para se comunicarem via barramento USB. O mesmo foi feito sobre a estrutura deste barramento, com intuito de definir algumas possibilidades de desenvolver um sistema nos quais estes dispositivos se comunicassem através da porta USB.

Esse trabalho permite ao leitor captar a experiência mínima necessária para trabalhar com dispositivos USB em sistemas embutidos. Nas conclusões, encontram-se propostas de modo a direcionar uma possível continuidade deste trabalho.

(10)

IX

ABSTRACT

This work has the purpose to carry out a study on the feasibility of the use of USB communication in embedded systems. It was studied the behavior of some devices that communicate through the USB protocol, as well as the structure of USB bus, in order to provide connection of these devices through USB.

Initially a bibliographical revision on some devices used in embedded systems was carried out. Further, a study of those devices was devised qualified to communicate through USB slide bars. The same thing was done on the structure of this bus, with the intention to define some possibilities to develop a system in which these devices were able to communicate through USB door.

This work allows the reader to acquire the minimum experience necessary to work with USB protocol in embedded systems. Through some verification processes, some proposals are presented in order to guide a possible continuity of this work.

(11)

1. INTRODUÇÃO

A aplicação da automação em sistemas de controle de processos é cada vez mais encontrada, tanto em ambientes industriais quanto em ambientes prediais. Durante o início da expansão e socialização da automação no mercado, houve alguns itens que tornaram um pouco lento o crescimento da difusão destas tecnologias com seus consumidores, entre estes itens se encontram, os altos preços e a pouca divulgação das informações necessárias para se desenvolver sistemas autônomos.

Com o passar do tempo estas tecnologias tornaram-se mais acessíveis financeiramente e houve uma maior disseminação das informações contidas nas mesmas, em grande parte divulgadas por terceiros, que utilizaram de engenharia reversa para obtê-las, uma vez que se tornou lucrativo para os fabricantes de produtos autônomos manterem, só para si, o conhecimento para desenvolver estes sistemas.

Mesmo encontrando sistemas automatizados durante nosso cotidiano, ainda se vê um atraso na disseminação de novas tecnologias, percebendo uma melhora na velocidade na expansão da utilização de novos produtos, porém isso ocorre, na maioria das vezes, devido à rápida queda de preços e não por causa da socialização da informação.

Estes fatos puderam ser observados no desenvolvimento desta monografia, que utilizou como objeto de estudos, dispositivos que se comuniquem via barramento USB, uma tecnologia relativamente nova e cujos detentores mantém omissas informações valiosas no desenvolvimento de sistemas que se comunique através deste barramento.

Os dispositivos pesquisados neste trabalho também são utilizados em sistemas embutidos, os quais têm como característica ocuparem pequeno espaço físico, o que possibilita que os mesmos não fiquem à mostra no produto acabado, garantindo assim um melhor aspecto visual, além de serem confiáveis para realizar funções pouco complexas.

(12)

2

1.1 Objetivo

Estudar a estrutura do barramento USB de modo a verificar a viabilidade da utilização do mesmo em sistemas embutidos e, com isso, fornecer ao leitor informações que o permita trabalhar com este barramento nestes sistemas.

Os dispositivos utilizados em sistemas embutidos têm grande aplicabilidade em vários processos de controle, mas foram estudados visando à aplicação em produtos que gerem conforto e segurança.

A vantagem esperada na utilização da comunicação USB em sistemas embutidos é torná-los mais flexíveis, pois uma única porta poderá se comunicar com diversos periféricos, além de aumentar a confiabilidade do sistema, devido à robustez deste barramento.

1.2 Metodologia adotada

Para o desenvolvimento deste trabalho foi realizada uma revisão bibliográfica sobre o tema abordado, de modo a adquirir embasamento teórico necessário para se trabalhar com os sistemas utilizados.

Depois de realizadas as pesquisas, foi utilizada a engenharia reversa para verificar o comportamento dos dispositivos quando conectados à porta USB, devido ao fato das informações sobre o protocolo deste barramento, relevantes para o desenvolvimento do mesmo, ainda não serem fornecidas por seus desenvolvedores.

1.3 Estrutura do trabalho

Neste trabalho foi realizada inicialmente uma revisão bibliográfica, com o intuito de se coletar dados sobre dispositivos utilizados em sistemas embutidos, que fossem capazes de se comunicarem via barramento USB.

Depois de realizadas as pesquisas sobre estes dispositivos, como também, sobre o funcionamento do barramento USB, foram sugeridos trabalhos, os quais tiveram sua viabilidade testada através de experimentos e estudos.

(13)

Ao término das pesquisas e experimentos, utilizando dos resultados obtidos e das informações coletadas, foram sugeridas novas propostas visando outros trabalhos que venham a dar continuidade neste apresentado.

(14)

4

2. COMUNICAÇÃO USB

2.1 Histórico

O USB surgiu em 1995 com o consórcio de algumas companhias de alta tecnologia (Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, Nec e Philips), o USB

Implementers Forum. Este barramento foi criado para padronizar a conexão entre o

computador e seus periféricos, permitindo assim, que vários dispositivos que trabalhem com o protocolo USB possam ser conectados ao computador através de uma mesma porta.

2.2 Protocolo USB

Para que ocorra comunicação via barramento USB, é necessário que tanto o

host, que é o gerenciador do sistema, quanto o dispositivo possua o protocolo USB.

Devido a este fato podemos dizer que o protocolo é a parte mais importante de um sistema USB.

A diferença entre a pilha do protocolo do host para um periférico é que no primeiro, ela está disposta em forma de drivers de arquivos .sys, .dll, .drv, .exe, etc, enquanto no dispositivo o protocolo é escrito na norma USB, em linguagens como C ou

Assembler.

Toda comunicação via barramento USB é iniciada pelo host do sistema através do envio de um pacote de dados chamado de Token Packet ou “Pacote de Sinal”, este pacote é composto por:

• PID (Packet Identifier): composto de 8 bits, sendo que os quatros mais significativos identificam e descrevem o pacote e o restante é de verificação para prevenção de erros (Check bits).

• ADDR (Address): É o endereço do dispositivo envolvido.

• ENDP (Endpoint): Representa o número do endpoint (Ponto final) envolvido. O endpoint é a única parte endereçável do dispositivo, sendo o ponto de partida ou chegada de dados no mesmo.

(15)

• CRC5 (Cyclic Redundancy Checks): São bits destinados à detecção de erros na transmissão.

• DATA: Armazena os dados a serem transmitidos. A estrutura do Pacote de Sinal pode ser vista na figura 2.1.

Figura 2.1: Estrutura do Token Packet. (Fonte: Universal Serial Bus Specification)

Após o dispositivo USB decodificar o Pacote de Sinal, é iniciada a transferência de dados, podendo ser do host para o periférico ou vice-versa, lembrando que cada endpoint realiza transferência de dados em somente uma direção ou a fonte de dados indica que não há dados a transferir.

A transferência de dados ocorre através do envio do Data Packet (Pacote de dados), este é composto por um PID, um CRC5, e um DATA (são bits de dados). A estrutura do Pacote de Dados pode ser vista na figura 2.2.

Figura 2.2: Estrutura do Data Packet. (Fonte: Universal Serial Bus Specification)

Quando é finalizada a transmissão ou não há dados a transmitir, é enviado ao receptor da transmissão um Handshake Packet (Pacote de Confirmação). A estrutura deste pacote pode ser vista na figura 2.3.

(16)

6

Figura 2.3: Estrutura do Handshake Packet. (Fonte: Universal Serial Bus Specification)

Como pode ser visto nas figuras 2.1 a 2.3, o CRC5 são bits de dados designados para verificar se ocorreu algum erro na transmissão dos bits de Data, ADDR e ENDP, porém não verifica possíveis erros nos bits de PID, pois estes já possuem seus próprios bits de prevenção de erros.

O Handshake Packet pode significar que o receptor recebeu os dados transmitidos livre de erros, que o receptor não pode receber os dados, que o transmissor não pode transmitir os dados ou que o endpoint está em parado.

Para o host, o dispositivo USB se comporta como um grupo de endpoints, cada qual realizando transferência de dados em uma única direção. O caminho percorrido pelos dados entre um endpoint e o host é chamado de pipe. Os pipes podem ser do tipo correntes (stream) ou mensagens, sendo que os pipes do tipo corrente não possuem uma estrutura USB definida, enquanto as mensagens possuem.

Os pipes, em sua maioria, são gerados durante a configuração do dispositivo. Esta configuração, informações de controle e status do dispositivo são adquiridas pelo host enquanto o dispositivo está sendo alimentado, através de uma mensagem de default control pipe. O default control pipe é um pipe de controle ligado ao ponto final zero (zero endpoint). O endpoint zero é composto por um par de

endpoints, que transmitem dados em direções opostas, através dos quais são

requisitadas e obtidas todas as informações necessárias para descrever completamente o dispositivo USB.

As informações contidas no canal de controle são divididas em três categorias:

• Standard: Possui informações como a identificação do vendedor, classe do dispositivo e gerenciamento da alimentação.

• Class: As informações desta categoria variam de acordo com o dispositivo.

• Vendedores USB: São informações adicionadas pelo vendedor do dispositivo.

(17)

2.3 Host USB

O host é o gerenciador de um sistema USB, ele é o responsável por detectar a conexão e remoção de periféricos, gerenciar o fluxo de controle e de dados do sistema, além de coletar estatística de atividades e estado e gerenciar o fornecimento de energia aos dispositivos a ele conectado.

Um computador atuando como host tem seu sistema USB constituído, na área de software, por aplicativos, API´s (Application Programming Interface), drivers cliente, drivers USB e drivers do controlador host, já a área de hardware é composta pelo controlador host.

Os dispositivos USB são divididos em classes pelo Windows de acordo com suas semelhanças, e algumas destas classes de dispositivos possuem drivers fornecidos por este, no entanto para alguns dispositivos específicos é necessário a implementação de seus drivers no sistema operacional. Este fato faz com haja drivers clientes disponibilizados para uma classe de dispositivos e outros disponibilizados para dispositivos específicos.

O sistema operacional Windows divide diferentes partes de acesso ao

hardware em camadas de drivers, de forma que cada camada gerencia uma parte do

processo de comunicação com o hardware. A vantagem deste sistema está na possibilidade de que dispositivos que possuem tarefas semelhantes compartilhem

drivers. Na figura 2.4 apresenta-se a estrutura de camada de drivers, conhecida como

pilha de drivers, para a comunicação USB no Windows.

Figura 2.4: Pilha de drivers USB no sistema operacional Windows.

O aplicativo é a interface entre o sistema USB e o usuário, através do qual serão realizadas as tarefas práticas de processamento de dados.

(18)

8

O API ou Interface de Programação de Aplicativos é um conjunto de rotinas e padrões utilizados pelo programa aplicativo para acessar suas funcionalidades, ou seja, é ele que realiza o processamento dos dados requisitados no aplicativo.

O driver cliente realiza a interface entre as rotinas da API e as rotinas USB, este driver varia de acordo com o tipo de periférico.

O driver USB é a camada que torna o acesso ao controlador host mais amigável, definindo um grupo de rotinas a serem chamadas pelo driver cliente.

O driver do controlador host é o software que realiza os acessos de entrada e saída de dados à área de software do host. É ele que possui ligação direta com o

hardware do sistema. Este driver varia de acordo com o tipo de controlador host.

O controlador host é o único hardware deste sistema, ele é o circuito responsável por disponibilizar os dados que trafegam no barramento, executando eletronicamente os comandos programados pelo driver do controlador host.

2.4 Funções USB

Funções são dispositivos USB que quando conectados ao barramento são capazes de transmitir ou receber dados ou informações de controle. Toda função deve possuir informações capazes de descrever suas capacitações e recursos exigidos. Para que uma função possa realizar comunicação via USB é necessário que a mesma seja configurada pelo host à qual está conectada, esta configuração inclui a alocação da banda de transmissão e a seleção das opções específicas de configuração da função.

2.5 Estrutura mecânica

Existem dois tipos de conectores para o cabo USB (conectores A e B), sendo o mais utilizado o conector tipo “A”, que pode ser visto na figura 2.5 (macho) e figura 2.6 (fêmea).

(19)

Figura 2.5: Cabo USB tipo A (macho). (Fonte: Universal Serial Bus Specification)

Figura 2.6: Cabo USB tipo A (fêmea). (Fonte: Universal Serial Bus Specification)

Este conector é o principal meio de comunicação direta de um dispositivo USB com o host do sistema. Sendo que o conector tipo “A” (macho) é encontrado no dispositivo e o conector tipo “A” (fêmea) é encontrado no host.

O conector tipo “B” se diferencia do tipo “A” não somente na estrutura física, mas também na disposição dos conectores macho e fêmea, mostrados nas figuras 2.7 e 2.8 respectivamente, em relação ao dispositivo e host, uma vez que o conector tipo “B” (macho) se encontra no host e o tipo “B” (fêmea) se encontra no dispositivo.

Figura 2.7: Cabo USB tipo B (macho). (Fonte: Universal Serial Bus Specification)

(20)

10

Figura 2.8: Cabo USB tipo B (fêmea). (Fonte: Universal Serial Bus Specification)

A estrutura do cabo USB constitui-se de dois fios de alimentação e dois fios para transmissão de dados, os quais possuem cores padronizadas, além de encapamento plástico, blindagem e blindagens interna e externa, como pode ser visto na figura 2.9.

Figura 2.9: Estrutura de um cabo USB. (Fonte: Barramento USB)

2.6 Estrutura elétrica

A alimentação no barramento USB proporciona ao fio V bus uma tensão de 5 V e 500 mA de corrente elétrica e para o fio GND uma tensão de 0 V, enquanto os fios D+ e D- são os responsáveis pela transferência de dados.

Os dados são transferidos utilizando a codificação NRZI (No Return to Zero

(21)

transição dos estados lógicos do mesmo. Como se pode ver na tabela 2.1 existem 3 estados lógicos definidos pelo padrão USB:

Tabela 2.1: Estados lógicos do padrão USB

ESTADO D+ D-

J ALTO BAIXO

K BAIXO ALTO

SEO BAIXO BAIXO

O estado SEO indica que não há dispositivos conectados ao barramento e a transição entre os estados J e K definem os valores dos bits no mesmo, sendo que quando ocorre a transição de um estado para outro, no intervalo de 1 bit, é codificado o bit 0 e quando o barramento permanece no mesmo estado neste mesmo período é codificado o bit 1. O protocolo USB utiliza uma técnica conhecida como bit stuffing para evitar longos períodos sem transição, sendo que para cada seis bits 1 transmitidos é inserido um bit 0. O clock segue codificado junto aos dados transmitidos, o que elimina a necessidade de que a transmissão seja efetuada em pulsos.

O receptor sincroniza o bit de recuperação de clocks através de um campo

Synk que precede cada pacote de dados.

A transmissão de dados via USB pode ocorrer em três velocidades, sendo a menor a Low-speed (1,5 Mb/s), a intermediária a Full-speed (12 Mb/s) e a alta a High-speed (480 Mb/s). Estas velocidades variam de acordo com o dispositivo USB.

Em relação à alimentação, os dispositivos USB podem possuir alimentação própria (self-powered devices) ou podem ser alimentados via barramento (bus-powered

device). O que deve ser levado em consideração para se decidir entre utilizar um

dispositivo self-powered ou bus-powered é o fato de o primeiro ser resetado ou desligado caso o host deixe de ser alimentado, enquanto o segundo se manteria ligado devido ao fato de ser alimentado por uma fonte externa.

Todo gerenciamento de energia do barramento é realizado pelo software do sistema USB que interage com o gerenciador de alimentação do host.

A detecção ou remoção de um dispositivo USB ao barramento ocorre quando há uma variação da tensão nos fios D+ e D-, ou seja, quando um dispositivo é conectado ao barramento a tensão em um destes fios é elevada para além de uma tensão

(22)

12

de limiar e quando o mesmo é desconectado, as tensões nestes dois fios caem para abaixo desta tensão de limiar e ao passar 2,5 microssegundos é caracterizada a desconexão.

O processo de detecção de conexão ou remoção de dispositivos junto com a atividade de identificar e atribuir endereços únicos aos mesmos é chamada enumeração, a qual é uma atividade ininterrupta devido ao fato do barramento permitir a conexão ou remoção de dispositivos a qualquer instante de tempo.

2.7 Transferência de dados

Toda transferência de dados via USB ocorre entre o software do host e um

endpoint particular do dispositivo através de um pipe. Podem ocorrer transferências

entre o software e mais de um endpoint simultaneamente e em direções diferentes, no entanto cada endpoint comunica-se com o host em uma só direção.

Existem quatro tipos de transferência de dados via USB, são elas:

o Transferência de Controle: É utilizada na configuração de um dispositivo no momento de sua conexão, além de ser utilizada para outras implementações específicas, tais como controle de outros pipes. Nesta transferência a distribuição de dados é perdida.

o Transferência de Interrupção: Este tipo de transferência é uma notificação que pode ser gerada a qualquer instante. É uma transferência pequena e limitada relacionada a eventos, caracteres ou coordenadas compostas por um ou mais bytes. o Transferência do tipo Bulk: Este tipo de transferência garante

a integridade dos dados transmitidos, uma vez que ocorre a detecção de erros via hardware. É utilizada na transmissão de grandes quantidades de dados, porém não assegura a velocidade de transmissão dos mesmos.

o Transferência Isossíncrona: São transferências realizadas em tempo real, as quais necessitam de uma quantidade

(23)

pré-negociável da banda de transmissão, de modo a garantir que os dados sejam distribuídos na taxa desejada. Este tipo de transmissão é utilizado para dados isossíncronos como a voz e para evitar que haja atrasos nesta transmissão é preciso um sincronismo entre o hardware e o software do sistema. A transferência isossíncrona de dados não garante a integridade dos mesmos.

(24)

14

3 SISTEMAS EMBUTIDOS

3.1 Definição

Sistemas embutidos são sistemas de pequeno porte compostos de hardware e software capazes de realizar tarefas de menor complexidade, através da utilização de dispositivos programáveis.

Os sistemas embutidos possuem uma aplicabilidade muito grande atualmente, sendo muito utilizados em equipamentos eletroeletrônicos e dispositivos para automação.

Entre os componentes programáveis mais utilizados em sistemas embutidos, têm-se os microcontroladores PIC, que estarão no foco deste trabalho.

3.2 Microcontroladores

Microcontroladores são componentes eletrônicos constituídos de CPU, memórias ROM e RAM, conversores analógico – digitais, temporizadores, contadores e canais de comunicação inseridos em um único chip. Este dispositivo, apesar de possuir elementos similares aos encontrados em um microcomputador, é utilizado para realizar tarefas menos complexas, devido ao fato de possuírem CPU´s de menor capacidade de processamento, além de clock e memória endereçável menores.

A figura 3.1 ilustra a estrutura de um microcontrolador:

Figura 3.1: Estrutura ilustrada de um microcontrolador

(25)

Uma das vantagens na utilização de microcontroladores em sistemas embutidos é o fato de estes serem programáveis, o que aumenta a flexibilidade do sistema, pois evita que se tenha de substituir componentes caso necessite de alteração em suas funções, sendo necessárias apenas modificações via software, que é mais simples, pois estes são de fácil programação.

Outra vantagem de utilizar dispositivos programáveis é fato de estes realizarem funções, para as quais seriam necessários diversos outros componentes, o que diminui o espaço físico do sistema, além de se obter maior eficiência e praticidade.

Os microcontroladores podem ser divididos em famílias, que são um grupo de dispositivos que possuem as mesmas facilidades básicas, tais como software e ferramentas de desenvolvimento, no entanto possuem diferentes funcionalidades, como memória de entrada e saída de dados e número de temporizadores.

O microcontrolador utilizado neste trabalho foi o PIC18F4550, ele foi escolhido devido ao fato de possuir o protocolo USB, o que lhe permite realizar comunicação através deste barramento.

Na figura 3.2 pode ser visto o diagrama de pinos deste microcontrolador:

Figura 3.2.b: Diagrama dos pinos do PIC18F4550. (Fonte: PIC18F4550 Data Sheet)

(26)

16

Segue algumas das características deste dispositivo:

o 32 k bytes de memória flash;

o 2048 bytes de memória de dados RAM; o 256 bytes de memória de dados EEPROM; o 35 pontos de entrada e saída de dados.

Toda transmissão de dados realizadas em um microcontrolador ocorrem em três barramentos. O barramento de endereços é uma linha unidirecional pela qual são transmitidos dados a partir da CPU, enquanto o barramento de dados permite transferências bidirecionais com a mesma, já o barramento de controle também possui linhas bidirecionais, além de linhas que permitem somente a entrada de dados na CPU e linhas que permitem somente a saída de dados desta.

(27)

4 ESTUDO DE VIABILIDADE DE COMUNICAÇÃO USB EM UM SISTEMA EMBUTIDO

Neste capítulo será verificada a viabilidade de utilizar comunicação USB em sistemas embutidos. Esta verificação será demonstrada através da apresentação de projetos cuja viabilidade de funcionamento foi estudada.

Após apresentação dos projetos estudados, serão mostradas algumas propostas para futuros trabalhos nesta área.

4.1 Experiências realizadas

O primeiro projeto que levou ao desenvolvimento desta monografia foi a idéia de se utilizar comunicação USB na construção de um dispositivo de controle de acesso à ambientes restritos.

O dispositivo citado seria composto de um sistema embutido microcontrolado que se comunicaria com um teclado numérico via USB. O teclado em questão seria similar ao utilizado em laptops e encontrado em teclados utilizados em computadores, o esquema do teclado está demonstrado na figura 4.1.

Figura 4.1: Representação esquemática do teclado.

Num Lock Enter

1

2

3

4

5

6

7

8

9

0

Ins 000 BS

O teclado seria o dispositivo de entrada de dados do sistema, onde o usuário digitaria sua senha de acesso e a mesma seria enviada via barramento USB para o

(28)

18

microcontrolador PIC18f4550, onde seriam processados os dados para eventual liberação de uma fechadura acionada eletricamente.

O microcontrolador ao receber os dados digitados no teclado, realizaria a comparação dos mesmos com senhas pré-estabelecidas e em caso de compatibilidade, seria alimentado um contator, pelo qual passaria uma corrente elétrica que acionaria a fechadura.

A figura 4.2 ilustra a estrutura do sistema:

Figura 4.2: Estrutura do funcionamento do sistema.

Barramento USB

CONTATOR REDE

ELÉTRICA

Outra função do microcontrolador seria o registro da senha utilizada, uma vez que haveria uma senha por usuário, e do horário de acesso, possibilitando ao gestor do local saber quando o mesmo foi acessado por cada usuário.

As informações contidas no dispositivo seriam adquiridas automaticamente quando o gestor conectasse um Pen-drive ao local onde está conectado o teclado.

A justificativa de utilizar comunicação USB neste sistema é o fato de com isso aumentar a flexibilidade do mesmo, possibilitando que, em um mesmo barramento, ocorressem a comunicação do microcontrolador com o teclado e com o Pen-drive automaticamente, sem a necessidade de reiniciar o sistema quando um dispositivo fosse substituído pelo outro.

O que inviabilizou o projeto foi o fato dos dois dispositivos, tanto o microcontrolador PIC18F4550 quanto o teclado, serem caracterizados como funções de um sistema USB. Isto impossibilita a comunicação entre estes dois dispositivos, uma vez que toda transferência de dados via USB, é iniciada pelo host do sistema.

(29)

Como foi visto, o host é o responsável por detectar a conexão de um dispositivo USB ao sistema e realizar a identificação do mesmo, a qual se inicia com o envio do Token Package ao endpoint zero do dispositivo, onde estão todas as informações necessárias para configuração do mesmo e se localiza em um endereço padrão (default control pipe) e, a partir daí, é realizada a configuração dos outros

endpoints do dispositivo conectado ao sistema pelo host USB.

O que possibilita a detecção da conexão de um dispositivo USB pelo host do sistema, é o fato deste possuir arquivos auto-executáveis em seu protocolo, os quais são acionados pelo aumento da tensão em um dos fios de transmissão de dados (D+ e D-), ocasionado pela conexão mecânica de um dispositivo ao controlador host, que é a parte mecânica do host USB.

Dadas as informações acima, pode-se concluir que a conexão física de duas funções USB via barramento não geraria nenhum tipo de resposta elétrica nos fios de transmissão de dados, ou seja, não seria enviado o Token Package, o que impossibilita a comunicação entre as mesmas, pois o dispositivo não seria identificado e, por conseqüência, não haveria a configuração de seus endpoints.

Outro problema que impossibilitaria a identificação de uma função por outra é a não existência de uma “biblioteca” em seu protocolo, a qual é constituída de informações sobre todos os periféricos que utilizam comunicação USB, e é utilizada pelo host no momento de identificação do dispositivo a ele conectado, através da comparação dos dados contidos no endpoint zero deste com os existentes nesta “biblioteca”.

Com o intuito de solucionar a lacuna existente no primeiro projeto, surgiu a idéia de um novo trabalho, o qual seria composto do projeto anterior, porém com a inserção de um conversor USB-Serial, que funcionaria como uma ponte de comunicação entre o microcontrolador PIC18F4550 e os dispositivos USB, comunicando-se via porta serial com o primeiro e trabalhando como host na comunicação com as funções USB. Na utilização deste conversor pensou ser possível a identificação e configuração dos dispositivos USB via barramento, além de conseguir realizar a comunicação entre estes e o microcontrolador.

(30)

20

Figura 4.3: Conversor USB-Serial (Fonte: www.surom.com)

No entanto, depois de realizadas as pesquisas sobre este dispositivo, foi concluído que a utilização do mesmo não resolveria o problema encontrado no projeto anterior, pois o controlador que permite a este equipamento comunicar-se via USB, também se comporta como um periférico e não um host.

O controlador USB pode ser visualizado na figura 4.4.

Figura 4.4: Microcontrolador em um conversor USB-Serial (Fonte: www.surom.com)

Sendo assim pode-se concluir que a utilização deste dispositivo é restrita a realizar a conexão entre um dispositivo que se comunica via porta serial com um host USB.

(31)

O controlador utilizado em conversores USB-Serial variam de acordo com o fabricante do dispositivo, podendo ser utilizado no projeto deste, o microcontrolador PIC18F4550.

(32)

22

5 CONCLUSÃO

O estudo do tema abordado possibilitou a percepção de que tecnologias de fácil utilização e que estão presentes em nosso cotidiano, ainda não estão totalmente disseminadas em relação às informações necessárias para desenvolvimento das mesmas.

Pôde-se perceber através deste trabalho que ainda há muito empenho pelas empresas de desenvolvimento tecnológico, em não divulgar informações relevantes para criação de novos dispositivos capazes de aprimorar ou inovar os sistemas criados por elas.

O fato das empresas manterem sigilosos todo conhecimento por elas obtido é de fácil entendimento, pois a posse de conhecimento tem se tornado cada vez mais lucrativa em uma área tão competitiva e de rápida expansão como a tecnológica.

Os estudos realizados no desenvolvimento desta monografia evidenciaram algumas das limitações encontradas na utilização da comunicação USB em sistemas embutidos, por outro lado proporcionaram uma base de conhecimento, através da qual se pôde tendenciar novos rumos para pesquisas nesta área.

O presente trabalho gerou uma base de dados relevante no que diz respeito ao compartilhamento de informações e experiências realizadas sobre a utilização da comunicação USB, uma vez que a estrutura do protocolo USB ainda é mantida sigilosa por seus desenvolvedores. Espera-se que através deste estudo e das tendências geradas por ele, surjam novos trabalhos que desenvolvam um sistema embutido que se comunique via barramento USB.

(33)

6 TRABALHOS FUTUROS

Durante o desenvolvimento deste projeto de monografia foram encontrados alguns dispositivos, sobre os quais, um estudo mais aprofundado poderia possibilitar a utilização de comunicação USB em sistemas embutido, devido ao fato destes possivelmente realizarem funções similares a de um host USB.

O primeiro dispositivo encontrado foi o Cabo Host USB, produzido por empresas como a ASUS e a Cowon, o qual se assemelha a um cabo USB comum, no entanto realiza a comunicação entre duas funções USB sem a necessidade de interface com um host.

Um empecilho de fácil percepção é o fato deste cabo, em sua especificação, ser apresentado para realizar comunicação entre dois dispositivos de seu fabricante, o que a primeira vista nos faz pensar sobre a possibilidade do mesmo trabalhar com produtos de outras marcas.

O outro dispositivo é um adaptador de USB para PS/2 que utiliza o componente MAX3421E, que se comunica com o microcontrolador via protocolo SPI, configurado como master, que é um protocolo serial síncrono de alta velocidade desenvolvido pela Motorola, este protocolo se assemelha ao USB no modo de transmissão, pois todas as operações são precedidas por comandos de 8 bits, que descrevem a natureza da operação, assim como o PID das transmissões via barramento USB. O esquema da utilização do MAX3421E em um sistema embutido utilizando comunicação USB pode ser visto na figura 6.1.

Figura 6.1: Utilização do MAX3421E em um sistema embutido (Fonte: MAX3421E Data Sheet)

O dispositivo MAX3421E realiza a adaptação dos sinais de tensão e corrente necessárias para que haja comunicação, no entanto seria, também, necessária a

(34)

24

implementação de uma máquina de estados finitos no microcontrolador para manipular os dados transferidos entre este e a função USB.

A máquina de estados finitos seria responsável por gerenciar a distribuição das informações guardadas na memória do microcontrolador, além de administrar o modo através do qual estas informações seriam recuperadas quando necessário. Para utilizar este artifício seria necessário saber o formato dos dados transmitidos no barramento, para que seja possível configurar corretamente a máquina de estados finitos.

(35)

7 REFERÊNCIAS BIBLIOGRÁFICAS

PEREIRA, Fábio. Microcontroladores PIC, Programação em C. 6º ed. São Paulo: Editora Érica, 2007.

RODRIGUES CHAVES, Cristian; PEREIRA MENDES, Marcelo. Sistema de Controle de Acesso Microcontrolado – Teclado. 2003. Monografia de Graduação. Universidade Federal de Goiás. Goiânia: 2003.

OSÓRIO, Lauren; FREITAS, Gabriel Luiz; GIRARD, Alessandro. Barramento USB. Artigo. Universidade de Campinas. Campinas.

COMPAC; HEWLETT-PACKARD; INTEL; LUCENT; MICROSOFT; NEC PHILIPS. Universal serial bus specification. Revisão 2.0, 27 de abril de 2000. Disponível em: <http://www.usb.org/developers/docs/>. Acesso em: 05 de maio de 2007.

CORRADI. MICROCONTROLADOR 8051. Apostila de aula. Colégio Técnico de

Campinas - COTUCA. Disponível em:

<http://www.decom.ufop.br/prof/rduarte/CIC282/cic282.htm>. Acesso em: 25 de

agosto de 2007.

MICROCHIP. 18F4550 Datasheet. Microchip Technology Inc, 2006.

MAXIM. MAX3421E Data Sheet. MAXIM Integrated Products, 2007.

Referências

Documentos relacionados

O caso de gestão a ser estudado irá discutir sobre as possibilidades de atuação da Pró-Reitoria de Assistência Estudantil e Educação Inclusiva (PROAE) da

Em 2008 foram iniciadas na Faculdade de Educação Física e Desportos (FAEFID) as obras para a reestruturação de seu espaço físico. Foram investidos 16 milhões

Não obstante a reconhecida necessidade desses serviços, tem-se observado graves falhas na gestão dos contratos de fornecimento de mão de obra terceirizada, bem

intitulado “O Plano de Desenvolvimento da Educação: razões, princípios e programas” (BRASIL, 2007d), o PDE tem a intenção de “ser mais do que a tradução..

A presente dissertação é desenvolvida no âmbito do Mestrado Profissional em Gestão e Avaliação da Educação (PPGP) do Centro de Políticas Públicas e Avaliação

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

Dessa forma, diante das questões apontadas no segundo capítulo, com os entraves enfrentados pela Gerência de Pós-compra da UFJF, como a falta de aplicação de

Janaína Oliveira, que esteve presente em Ouagadougou nas últimas três edições do FESPACO (2011, 2013, 2015) e participou de todos os fóruns de debate promovidos