• Nenhum resultado encontrado

O controlador USB

No documento 2011.1 Monografia IgoAmauri vf Impressa (páginas 36-45)

2 FUNDAMENTAÇÃO TEÓRICA

2.4. Universal Serial Bus

2.4.3. O controlador USB

No mercado existem diversos tipos de controladores USB, possibilitando assim, aos desenvolvedores escolherem seus componentes a depender das necessidades e características do projeto. Os parâmetros para tal escolha podem abranger: desempenho, custo, facilidade de desenvolvimento, entre outros.

Um controlar USB geralmente possui como componentes básicos: transceptor USB; interface serial; buffers para armazenar os dados; registradores para armazenar as configurações, status e controle relativos à comunicação (AXELSON, 2005).

O transceptor USB disponibiliza a interface de hardware entre o conector USB e o circuito que controla a comunicação USB. A interface serial permit interface com o transceptor e responsabiliza-se por controlar o envio e o recebimento de dados. Os buffers são utilizados para armazenar os dados recebidos de uma comunicação e também os que estão prontos para serem enviados ao barramento. Os registradores são utilizados para guardar informações sobre: o número de bytes recebidos e os a serem transferidos; informações de checagem de erro, entre outras informações relevantes para o processo de transmissão dos dados. Além desses componentes, o controlador USB necessita também de uma fonte de temporização, esta é geralmente fornecida por um cristal oscilador (AXELSON, 2005).

Os controladores USB podem ser encontrados embutidos em microcontroladores, por exemplo o PIC18f4550, como também em chips dedicados, por exemplo, chip FTDI FT232BM e FT245BM.

Os chips FTDI possuem uma abordagem diferente em relação ao USB, estes geralmente são utilizados acoplados a outros dispositivos que não possuem controladores USB embutidos, por exemplo, o PIC18F2680. Esses componentes utilizam os drivers da FTDI e não exigem o desenvolvimento de um firmware específico para a comunicação USB, como é exigido no PIC18F4550, pois o gerenciamento do barramento de comunicação é feito no hardware. Dessa forma, o firmware precisa somente fornecer e receber os dados a esse controlador, para isso o FT245BM utiliza uma interface paralela e o FT232BM utiliza uma interface serial assíncrona (AXELSON, 2005).

O chip FTDI proporciona duas opções de driver, Virtual COM Port Driver e D2XX Direct Driver. No primeiro, o dispositivo aparece para o host como se o mesmo fosse conectado a uma porta COM, no segundo é disponibilizado uma série de funções específicas do fornecedor que a aplicação utiliza para realizar a comunicação com o dispositivo. A figura 19 ilustra um protótipo de chip FTDI (AXELSON, 2005).

Figura 19: Protótipos FTDI (AXELSON, 2005)

2.5. Protocolo RS-232

Em 1960, a Eletronic Industry Association (EIA) definiu o protocolo RS-232 como uma interface comum para os equipamentos de comunicação de dados. Na época de sua

criação, as trocas de dados eram realizadas entre uma central localizada em um mainframe e terminais remotos. Consequentemente, após modificação no seu padrão, a IBM implementou essa interface em computadores, possibilitando assim, a comunicação entre esses e diversos dispositivos, tornando essa interface bastante difundida (HUANG, 2005).

2.5.1. Especificação Elétrica

A transmissão dos dados usando o protocolo RS-232 ocorre através da representação por valores de tensão, ou seja, os níveis lógicos ‘0’ e ‘1’ são representados por faixas de valores de tensão. O nível lógico ‘0’ é representado pelo intervalo de tensão de +3V até +25V, enquanto que o nível ‘1’ é de -3V até -25V. Os valores na faixa de -3V até +3V são considerados região de transição (HUANG, 2005).

O RS-232 suporta variadas taxas de velocidade sendo que o valor usual utilizado é o de 19200 bits por segundo. A definição da taxa varia de projeto para projeto, dependendo de suas especificações. Entretanto, como exemplo de taxas mais comuns utilizadas temos: 300, 1200, 2400, 9600, 19200, 115000, entre outras. (HUANG, 2005).

Em relação à distância para a comunicação, o padrão define que esta deve estar no limite de 15 metros (HUANG, 2005).

2.5.2. Especificação Mecânica

A última versão do padrão RS-232 definiu o conector, e seus pinos, chamado de DB9, este é composto por 9 pinos e é utilizado para comunicação com os computadores (HUANG, 2005).

A figura 20 ilustra os conectores DB9.

3 METODOLOGIA

Este projeto visa o estudo e a implementação de uma rede de dispositivos microcontrolados. Foi desenvolvido um protótipo desta rede utilizando-se microcontroladores da família PIC18F da Microchip, cujos seus nós consistem em microcontroladores capazes de enviar e receber dados aos demais. Além da comunicação entre esses dispositivos, foi viabilizada a comunicação destes com computadores.

O processo de desenvolvimento desse trabalho foi realizado em quatro fases, as quais serão abordadas na sessão a seguir.

3.1 Etapas do Desenvolvimento

O desenvolvimento desse trabalho foi realizado em quatro etapas. A primeira teve como foco o processo de revisão bibliográfica, sendo que tal atividade ocorreu durante todo o processo de desenvolvimento. Durante essa etapa foram realizados os estudos sobre protocolos de comunicação e o levantamento dos recursos necessários para o desenvolvimento do protótipo.

Após a realização desses levantamentos foram definidos os protocolos que seriam utilizados, sendo esses: o CAN, o USB, o SPI e o RS-232. Além disso, definiram-se também os dispositivos que seriam utilizados no desenvolvimento do projeto, são eles: PIC18F4550, PIC18F2680, MCP2515, MCP2551. A partir de então, foram definidas as arquiteturas que seriam desenvolvidas.

A segunda etapa teve como objetivo a montagem de uma rede CAN, em protoboard, na qual tivesse como nós microcontroladores PIC18F2680, os quais possuem o módulo CAN incorporado. Nesse primeiro modelo de barramento, os nós comunicavam-se com o computador através do protocolo RS232, já que os dispositivos possuem o módulo para essa comunicação. O objetivo dessa segunda etapa foi de compreender o funcionamento do barramento CAN.

A terceira etapa do projeto consistiu no desenvolvimento do conversor CAN/USB, também em protoboard, a fim de permitir que os nós da rede pudessem realizar a comunicação com o computador através da interface USB. Durante essa fase foram avaliadas as possíveis soluções até que foi definida solução final do projeto.

A quarta e última etapa consistiu no desenvolvimento da placa de circuito impresso da solução final desenvolvida. Após a confecção da mesma foram realizados os testes de funcionamento do barramento CAN implementado.

O procedimento de realização dos testes concentrou-se na identificação das taxas de erro da transmissão dos dados no barramento, para isso foram definidas diferentes situações a serem testadas. Como metodologia dos testes, foi definido um formato de mensagem que foi enviada de um nó para outro e assim analisado a quantidade de pacotes que sofreram modificação durante a transmissão no barramento. As analises de integridade foram realizadas no computador através de uma solução computacional própria.

4 DESCRIÇÃO DA PROPOSTA

A proposta desse trabalho, que propõe o desenvolvimento de um barramento CAN, pode ser observada a partir da figura 21. Nesta pode-se observar a existências dos nós, sendo a comunicação entre eles realizada através do barramento CAN, e a possibilidade de comunicação destes com os computadores.

Para comunicação com os computadores, poderia ser utilizada qualquer comunicação que fosse suportada entre ambos, por exemplo: USB, RS232, entre outras.

Figura 21: Representação esquemática da proposta. Fonte: Próprio autor

4.1 Recursos utilizados

Para o desenvolvimento desse trabalho foram utilizados os seguintes dispositivos: PIC18F2680; PIC18F4550; MCP2515; MCP2551; MAX232. Alem desses, utilizou-se também os componentes como resistores e capacitores que auxiliaram o funcionamento dos componentes acima citados.

O PIC18F2680 faz parte dos dispositivos da Microchip que funcionam com registradores de 8 bits. Este também está entre os dispositivos com baixo custo e com bom desempenho computacional, diferenciando-se basicamente do PIC18F4550 somente em termos dos seus periféricos.

Esse microcontrolador possui como funcionalidades: suporte a comunicação utilizando o protocolo CAN e também o RS232; módulo de conversão analógico digital com precisão de 10 bits; memória de programa EEPROM; memória de dados Flash, entre outras (Microchip, 2007a). A figura 22 ilustra o diagrama de pinos desse PIC.

Figura 22: PIC18F2680 (MICROCHIP, 2007a)

O PIC18F4550, também da Microchip, pertence a série de dispositivos que funcionam com a estrutura interna dos seus registradores de 8 bits. Este tem como diferencial, dentre os dispositivos da série PIC18 sua boa relação custo/beneficio. Esse dispositivo possui um alto desempenho computacional aliado a um baixo custo, tendo como funcionalidades: suporte a comunicação USB, com taxa de transmissão variada de 1,5 Mb/s até 12Mb/s; memória de programa Flash; memória de dados EEPROM; 4 módulos de Timers; de 10 a 13 bits de precisão na conversão analógico digital, entre outras (MICROCHIP, 2004). A figura 23 ilustra o diagrama dos pinos desse PIC.

O MAX232 apresenta-se como um conversor de sinal utilizado na comunicação RS232, sua função é converter o sinal de nível 5V, proveniente do microcontrolador, para o nível de 12V interpretado pelo computador e vice-versa.

O MCP2515 é um dispositivo utilizado para simplificar as aplicações que necessitam acessar um barramento CAN. Este dispositivo é um controlador CAN externo, ou seja, são acoplados a outros dispositivos microcontroladores permitindo com que esses acessem um barramento CAN, transmitindo e recebendo mensagens (Microchip, 2007b).

O módulo CAN presente neste dispositivo, possui as mesmas funções presentes nos módulos CANs implementados nos microcontroladores da Microchip, por exemplo, o PIC18F2680 (Microchip, 2007a). Para que as mensagens sejam transmitidas, é necessário, primeiro, realizar a configuração do módulo através do acesso à específicos registradores, e logo após acessar os registradores responsáveis por controlar o envio e o recebimento dos dados (Microchip, 2007b).

O acesso ao MCP2515 é realizado através do protocolo de comunicação SPI, sendo assim, torna-se necessário conectar o mesmo a uma Unidade de Controle Multiponto (MCU) que possua interface SPI e que possa realizar a configuração do mesmo, por exemplo, algum microcontrolador PIC.

A figura 24 ilustra o diagrama de blocos do MCP2515.

O MCP2551 é um dispositivo responsável por converter os sinais digitais gerados por um controlador CAN em sinais apropriados para a transmissão através do barramento CAN, ou seja, colocando-os na faixa de voltagem definida pelo protocolo CAN. Por isso, cada controlador CAN precisa estar conectado a um MCP2551. Além disso, esse conversor é tolerante a falhas e também tem 1Mb/s como a máxima velocidade de operação (MICROCHIP, 2003).

O MCP2551 pode operar em três diferentes modos: High-Speed, que suporta a velocidade máxima do barramento; Slope-Control, que reduz os ruídos; e o Standby Mode, que faz o dispositivo entrar em modo de espera (MICROCHIP, 2003). A figura 25 ilustra o diagrama de blocos do MCP2551.

Figura 25: Diagrama de blocos do MCP2551 (MICROCHIP, 2003)

Para o desenvolvimento dos firmwares, ou seja, dos programas embarcados nos microcontroladores, necessitou-se definir qual ambiente de desenvolvimento seria utilizado, logo, optou-se pelo MPLAB (MICROCHIP, 2010b). A fim de permitir a programação utilizando a linguagem C, foi utilizado o compilador C18 (MICROCHIP, 2010c), que é destinado ao desenvolvimento de códigos para a família PIC18. Este compilador é desenvolvido pela Microchip e pode ser integrado ao MPLAB.

Foi utilizado também o software CAD/PCB Eagle para o desenvolvimento do esquemático do produto final desse projeto. Com esse esquemático possibilitou o desenvolvimento da placa de circuito impresso.

Para realizar a comunicação com os computadores, necessitou-se desenvolver aplicativos que controlassem as operações nas portas de comunicação do computador. A linguagem de programação escolhida para o desenvolvimento desses aplicativos foi JAVA e o ambiente de desenvolvimento o NetBeans (ORACLE, 2011a).

A fim de facilitar a comunicação entre computadores e outros dispositivos, a linguagem JAVA possui Applications Programming Interfaces (APIs) específicas para comunicação tanto através da porta COM como da USB. Para a comunicação com a porta COM utilizou-se a JavaCOM (ORACLE, 2011b) e para comunicação com o USB, utilizou-se a API AtUsbHidJni, a qual é utilizada para fazer a comunicação com dispositivos pertencente a classe HID.

Vale ressaltar, ainda, que as licenças de utilização de todas as ferramentas utilizadas foram gratuitas.

No documento 2011.1 Monografia IgoAmauri vf Impressa (páginas 36-45)

Documentos relacionados