• Nenhum resultado encontrado

2011.1 Monografia IgoAmauri vf Impressa

N/A
N/A
Protected

Academic year: 2021

Share "2011.1 Monografia IgoAmauri vf Impressa"

Copied!
76
0
0

Texto

(1)

UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA – UEFS

IGO AMAURÍ DOS SANTOS LUZ

ESTUDO E IMPLEMENTAÇÃO DE UM BARRAMENTO CAN COM NÓS ACESSANDO COMPUTADORES ATRAVÉS DA INTERFACE USB

FEIRA DE SANTANA 2011

(2)

IGO AMAURÍ DOS SANTOS LUZ

ESTUDO E IMPLEMENTAÇÃO DE UM BARRAMENTO CAN COM NÓS ACESSANDO COMPUTADORES ATRAVÉS DA INTERFACE USB

Trabalho de Conclusão de Curso apresentado ao curso de Engenharia de Computação da Universidade Estadual de Feira de Santana como um dos requisitos para a obtenção do título de Bacharel em Engenharia de Computação.

Orientador: Prof. Anfranserai Morais Dias

Feira de Santana 2011

(3)

Dedico esse trabalho aos meus pais, Nilda Nascimento dos Santos Luz e Antonio Jose Luz, que me apoiaram em todos os momentos e não mediram esforços para me proporcionar uma educação de qualidade.

(4)

AGRADECIMENTOS

Agradeço aos meus pais, Nilda e Antonio. Muito obrigado por todo o apoio e compreensão. Ao meu irmão, Charles Maurício, que mesmo com a distância sempre pude contar.

Agradeço aos meus amigos, em especial Helmo Mira, Nildo Mascarenhas, Gabriela Cerqueira, Thianne Peixoto, Helder Mira, Eudes Benicio, Leilane Paixão, Thays Carvalho, Lauê Rami, Raphael Marques, Ligia Silva, Fernanda Castelo, Loreno Alvim, Tayalla Araujo. Obrigado por cada momento de apoio.

Aos meus amigos e colegas da UEFS, pelo acolhimento nessa fase da minha vida. Obrigado a galera do PET-EComp. Todos os momentos que passamos juntos, tanto os de alegria como os de tristezas, contribuíram fortemente para minha formação.

Muito Obrigado professores e funcionários da UEFS que foram essenciais durante meu processo de formação. Professor Delmar Broglio Carvalho, seus ensinamentos durante toda a minha graduação foram fundamentais para meu crescimento profissional e pessoal. Professores Paulo Cesar de Abreu Machado Farias e Anfranserai Morais Dias, a dedicação e o compromisso de vocês foram fundamentais para a construção desse projeto.

Agradeço, também, a Helenilda Mota, Manoel Mira, Vilma Mascarenhas e Nildo Regis , obrigado por sempre torcerem por mim e por me acolherem como membro da família.

Por fim, meus sinceros agradecimentos a todos aqueles que de alguma forma contribuíram para a realização desse sonho.

(5)

RESUMO

Essa monografia apresenta o projeto e desenvolvimento de um barramento CAN construído a partir de microcontroladores da família PIC 18F da Microchip tendo como foco viabilizar a comunicação dos nós com computadores através do protocolo USB. Além do CAN e o USB, foram utilizados outros protocolos que auxiliaram na construção do produto final, são eles: RS-232 e SPI. Dessa forma, como objetivos específicos desse trabalho pode-se destacar: o software embarcado, desenvolvido em C, para comunicação CAN, um conversor entre os protocolos CAN e USB, placas de circuito impresso para os nós e realização de testes para validação do funcionamento do barramento. Para alcançar o resultado final desejado, esse trabalho foi dividido em quatro fases, nas quais foram definidas as ferramentas e dispositivos utilizados, além do desenvolvimento do produto final e os testes. Como resultados são apresentados os protótipos e softwares desenvolvidos e também os testes realizados.

Palavras Chaves: Instrumentação. Sistemas Embarcados. Rede de sensores. Protocolo CAN. Protocolo USB. Protocolo RS232

(6)

ABSTRACT

This monograph presents the project and development of a CAN bus built from PIC 18F microcontroller family from Microchip, focusing allow communications with the computer through the USB protocol. In addition to CAN and USB, other protocols were used that helped in building the final product, they are: RS-232 and SPI. So, as specific objectives of this work can be highlight: embedded software, developed in C, for CAN communication; a converter between the CAN and USB protocols; printed circuit boards to the nodes and testing to validate the operation of bus. To achieve the desired result, this work was divided in four phases, in which were defined the tools and devices used, beyond the development of final product and testing. Results are presented as prototypes and software developed and also the tests performed.

Keywords: Instrumentation. Embedded Systems. Network of sensors. CAN protocol. USB protocol. RS232 protocol.

(7)

LISTA DE FIGURAS

Figura 1: Modelo de um computador digital. ... 13

Figura 2: Elementos de um microcontrolador. ... 15

Figura 3: Séries de microcontroladores da Microchip... 16

Figura 4: Estrutura das camadas do protocolo CAN ... 17

Figura 5: Camada CAN e OSI. ... 18

Figura 6: Nível do barramento CAN. ... 19

Figura 7: Topologia da rede CAN. ... 20

Figura 8: Datagrama de dados. ... 21

Figura 9: Campo de Arbitragem na versão 2.0 A. ... 22

Figura 10: Campo de Arbitragem na versão 2.0 B. ... 22

Figura 11: Datagrama de erros e sobrecarga ... 23

Figura 12: Diagrama de blocos do módulo CAN. ... 25

Figura 13: Segmentos e Time Quantum ... 27

Figura 14: Conexão SPI entre Mestre e Subordinado ... 29

Figura 15: Forma de onda do modo SPI – Modo Mestre ... 30

Figura 16: Forma de onda do modo SPI – Modo Subordinado com CKE = 0 ... 31

Figura 17: Forma de onda do modo SPI – Modo Subordinado com CKE = 1 ... 31

Figura 18: Configurações para conexão de periféricos USB com hosts. ... 34

Figura 19: Protótipos FTDI ... 36

Figura 20: Conectores DB9. a) Conector Fêmea b) Conector Macho ... 37

Figura 21: Representação esquemática da proposta. ... 40

Figura 22: PIC18F2680 ... 41

Figura 23: PIC18F4550 ... 41

Figura 24: Diagrama de blocos do MCP2515 ... 42

Figura 25: Diagrama de blocos do MCP2551 ... 43

Figura 26: Solução da segunda fase. ... 45

Figura 27: Diagrama de blocos do primeiro nó. ... 46

Figura 28: Diagrama de blocos do segundo nó. ... 47

Figura 29: Solução utilizando o MCP2515. ... 48

(8)

Figura 31: Solução que utiliza o PIC18F4550 associado ao PIC18F2680. ... 50

Figura 32: Diagrama de Blocos do PIC18F4550 associado ao PIC18F2680. ... 51

Figura 33: Diagrama de Blocos do PIC18F2680 associado ao PIC18F4550. ... 52

Figura 34: Solução com FTDI. ... 53

Figura 35: Diagrama de classe - Software comunicação USB. ... 54

Figura 36: Diagrama de classe - Software comunicação RS-232. ... 55

Figura 37: Tela principal do aplicativo de comunicação USB. Fonte: ... 57

Figura 38: Tela principal do aplicativo de comunicação com porta COM. ... 58

Figura 39: Montagem utilizando o MCP2515. ... 60

Figura 40: Montagem da solução com dois microcontroladores. ... 62

Figura 41: Cabo conversor utilizado. ... 63

Figura 42: Diagrama do primeiro nó. ... 64

Figura 43: Diagrama do segundo nó... 64

Figura 44: Protótipo do Primeiro nó. ... 65

Figura 45: Protótipo do Segundo nó. ... 65

Figura 46: Primeira situação de teste. ... 66

Figura 47: Segunda situação de teste. ... 67

Figura 48: Gráfico dos dois primeiros testes executados. ... 68

(9)

LISTA DE TABELAS

Tabela 1 - Versões do Protocolo CAN ... 16

Tabela 2 - Taxa de transferência versus Comprimento ... 20

Tabela 3 – Pinagem do conector DB9 no padrão CAN ... 21

Tabela 5 – Especificação dos cabos USB ... 34

Tabela 6 – Resultados do primeiro teste ... 67

Tabela 7 – Resultados do segundo teste ... 68

Tabela 8 – Resultados do terceiro teste ... 69

(10)

SUMÁRIO

1 INTRODUÇÃO ... 11

2 FUNDAMENTAÇÃO TEÓRICA ... 13

2.1. Sistemas Embarcados ... 13

2.1.1. Microcontroladores ... 14

2.2. Controller Area Network ... 16

2.2.1. Camada física da rede ... 18

2.2.2. Camada de enlace ... 21

2.2.3. Arbitragem das mensagens... 23

2.2.4. Funcionamento do Protocolo CAN em dispositivos da Microchip ... 24

2.2.4.1. Funcionalidades do módulo CAN ... 25

2.3. Serial Peripheral Interface... 28

2.3.1. Funcionamento do protocolo SPI ... 28

2.3.2. Modos de operação do barramento SPI... 30

2.4. Universal Serial Bus ... 32

2.4.1. Componentes do barramento ... 33

2.4.2. Human Interface Device... 34

2.4.3. O controlador USB ... 35 2.5. Protocolo RS-232 ... 36 2.5.1. Especificação Elétrica ... 37 2.5.2. Especificação Mecânica ... 37 3 METODOLOGIA ... 38 3.1 Etapas do Desenvolvimento ... 38 4 DESCRIÇÃO DA PROPOSTA ... 40 4.1 Recursos utilizados ... 40

(11)

4.2.1 Solução – Segunda fase ... 44

4.2.2 Solução – Terceira fase... 48

4.3 Soluções para o software do computador ... 53

5 RESULTADOS ... 56

5.1 Aplicativo para comunicação USB... 56

5.2 Aplicativo para comunicação RS-232 ... 57

5.3 Barramento CAN ... 58

5.3.1 Solução com dois microcontroladores ... 61

5.3.2 Solução utilizando FTDI ... 63

5.3.3 Testes com a Solução Final ... 65

6 CONCLUSÃO ... 71

(12)

1 INTRODUÇÃO

A sociedade moderna busca a melhoria da qualidade de vida em todos os âmbitos relacionados aos seres humanos e ao ambiente que vive. A qualidade de vida está cada vez mais associada ao desenvolvimento tecnológico, sendo que quanto mais tecnologias sejam disponibilizadas a sociedade, resulta em melhores condições de vida para a mesma. A evolução tecnológica afeta direta ou indiretamente a sociedade, provocando mudanças significativas nos diferentes setores que a envolve: saúde, educação, segurança, transporte, entre outros.

Uma das maneiras de se aumentar o conforto diário é alcançado com a inserção de “inteligência” nos equipamentos utilizados. Para isso, são embarcados circuitos eletrônicos cada vez mais sofisticados. A microeletrônica caracteriza-se por permitir a integração de componentes como resistores, capacitores, diodos e transistores, em uma única pastilha. Dessa forma, é possível integrar os componentes básicos que constituem um computador digital em um pequeno dispositivo de circuito integrado, chamados de microcontroladores (CADY, 1997).

Microcontroladores são dispositivos digitais versáteis, aplicáveis em diferentes contextos e com grandes funcionalidades. Esses componentes caracterizam-se por possuir processador, memória e unidades de entrada e saída (GERVINI et al, 2003). Além desses componentes, possui também periféricos que disponibilizam funcionalidades ao dispositivo, como por exemplo, periféricos para comunicação com outros dispositivos. Para isso, são implementados módulos de comunicação de determinados protocolos, por exemplo, RS232, Controller Area Network (CAN), Universal Serial Bus (USB), entre outros. Aplicações que envolvem eletrônica costumam utilizar dispositivos microcontrolados que resultam no uso de um menor número de componentes, representando economia de área do projeto.

Microcontroladores são utilizados para a construção de sistemas embarcados, onde são usados para executar tarefas de forma dedicada, diferente dos computadores de propósito geral, que realizam diversas tarefas. Deste modo, os microcontroladores tornaram-se um dos principais responsáveis pela automação do mundo atual.

Em algumas aplicações podem surgir a necessidade de realizar a comunicação entre dispositivos microcontrolados, ou seja, a troca de informações entre estes, possibilitando, por exemplo, o auxilio na automação de determinado sistema. Nesse caso torna-se necessário a construção de uma rede de microcontroladores, ou seja, uma determinada estrutura que possui

(13)

diversos equipamentos interconectados transmitindo informações de um para outro. Um exemplo de aplicação para esse tipo de sistema seria uma rede de sensores.

Rede de sensores é uma estrutura que possibilita a comunicação entre vários dispositivos, capazes de monitorar determinado fenômeno, como temperatura, umidade, deslocamento, entre outros. Deste modo, os dispositivos podem funcionar em paralelo e também realizar trabalho de forma colaborativa, ou seja, um contribuindo para o monitoramento do outro. Assim, em uma rede de sensores os dispositivos são responsáveis por detectar e transmitir as informações captadas (MALLADI, AGRAWAL, 2002).

Para a implementação de uma rede é necessário definir qual a forma de comunicação que os dispositivos irão utilizar, ou seja, o protocolo. Vários deles são utilizados para efetuar a comunicação entre dispositivos, a definição do uso é feita baseada nas restrições e exigências do projeto. Alguns fatores são fundamentais para a definição das redes além dos protocolos: tolerância a falha e erros, limitação de hardware, custos, ambiente de operação, topologia da rede, entre outros. Entre os protocolos que podem ser implementados para a construção de uma rede de microcontroladores, podem ser citados: o CAN, o USB, o SPI e o RS-232.

O protocolo CAN surgiu em 1980 com o aumento do número de componentes elétricos que realizavam o monitoramento em veículos. Conseqüentemente houve um crescimento também no número e na espessura dos cabos que realizavam a comunicação. Logo, surgiu a necessidade da criação de um protocolo que aperfeiçoasse esse processo. Sendo assim, Robert Bosh, em 1980, propôs o modelo CAN. Com o passar dos anos esse protocolo difundiu-se para diversas áreas. Um exemplo é a utilização desse protocolo em aplicações marítimas e de aviação.

Esse projeto visa realizar o estudo e também a implementação de uma rede de microcontroladores utilizando o protocolo de comunicação CAN. Além da implementação do barramento CAN, propõe-se também a comunicação dos nós da rede com os computadores através dos protocolos RS-232 e USB. Por fim, foram realizados testes para verificar a eficiência do barramento desenvolvido.

(14)

2 FUNDAMENTAÇÃO TEÓRICA

Essa seção abordará os conceitos teóricos acerca dos temas que envolvem essa monografia. Tais conceitos estão relacionados aos principais componentes eletrônicos utilizados no projeto, assim como, os protocolos de comunicação implementados.

2.1. Sistemas Embarcados

Os sistemas embarcados estão presentes no cotidiano das pessoas, podem ser encontrados nos hospitais, escritórios, escolas, entre outros, presentes, por exemplo, em celulares, TVs, receptores. O conceito que define esses sistemas é muito simples, constitui-se de um sistema que possui uma funcionalidade específica controlado por um computador acoplado (WILMSHURST, 2001).

Um exemplo de sistema embarcado é a eletrônica incorporada nos automóveis. Esses veículos possuem eletrônica embarcada na forma de sensores, computadores de bordo, freios inteligentes, câmbio automático, entre outros elementos. Um exemplo de modelo automobilístico é a BMW série 7, a qual possuí 63 processadores embarcados (CORREIA, 2007).

Geralmente, nos sistemas embarcados, necessita-se de um dispositivo que exerça a função de um computador, para isso utilizam-se os microcontroladores. Para o entendimento do que consiste um microcontrolador torna-se necessário compreender a estrutura básica de um computador digital. A figura 1 ilustra os elementos essenciais de um computador de acordo com a estrutura de Von Neumann (TANENBAUM, 2006).

Figura 1: Modelo de um computador digital. Fonte: Próprio autor

Na figura 1 identificam-se os seguintes elementos: módulo de entrada e saída, este é responsável pela interação do computador com o meio externo, através do recebimento e o

(15)

envio de informações, dessa forma, o sistema pode comunicar-se com o mundo exterior e trocar informações com o mesmo; módulo da Unidade Central de Processamento (CPU), responsável pela interpretação das instruções do programa a ser executado e pelo processamento das informações; e por último os módulos de memória, a memória de programa, caracterizada por ser o dispositivo responsável por armazenar as instruções do programa a ser executado pela CPU e a memória de dados, responsável por armazenar os dados gerados a partir do processamento (WILMSHURST, 2007).

2.1.1. Microcontroladores

Com o passar do tempo, os computadores digitais evoluiram, ganhando mais poder de processamento e com estruturas de armazenamento cada vez maiores. Enquanto a população aproveitava desses recursos cada vez mais avançados, pesquisadores começaram a investir na utilização de computadores em ambientes cada vez menores e que não tinham como principal função a computação.

A partir de então, começaram os estudos acerca de como introduzir nesses ambientes dispositivos capaz de realizar processamento. Para essas aplicações não seriam necessária alta capacidade de processamento, grande disponibilidade de espaço em memória e nem alta velocidade. Esses tipos dispositivos têm como objetivo apenas o controle de um sistema específico que possui uma determinada função. Os sistemas embarcados tem como objetivo a redução do tamanho e do custo dos seus componentes, nesse contexto surgem os microcontroladores, sendo esses pequenos, versáteis e de baixo custo (WILMSHURST, 2007).

A estrutura de um microcontrolador é basicamente a mesma do computador digital apresentado na figura 1. Além dos componentes básicos são integrados funcionalidades a mais, dentre elas destacam-se: entrada e saída digital e analógica, conversores digital/analógico e analógico/digital; unidades para contagem de tempo; suporte a diversos protocolos de comunicação, entre outras. A figura 2 ilustra a estrutura básica de um microcontrolador.

(16)

Figura 2: Elementos de um microcontrolador (WILMSHURST, 2007).

Os microcontroladores são desenvolvidos por diferentes empresas, cada uma delas definem suas respectivas arquiteturas e funcionalidades. A Microchip produz de diferentes séries, podendo ser de 8, 16 ou 32 bits, chamados de Peripheral Interface Controller (PIC). Em relação aos dispositivos de 8 bits temos os identificados com os prefixos: 10, 12, 16 e 18. O núcleo desses dispositivos, ou seja, seus processadores, são basicamente os mesmos, modificando os periféricos, tamanhos de memória e tamanho da palavra de instrução (MICROCHIP, 2010a). A figura 3 ilustra relação entre as séries tendo como parâmetro a performance de processamento e as funcionalidades.

(17)

Figura 3: Séries de microcontroladores da Microchip. Fonte: Próprio autor

2.2. Controller Area Network

O Controller Area Network (CAN) é um protocolo de comunicação serial que provê controle em tempo real com um nível elevado de segurança (BOSH, 1991). Esse protocolo é padronizado mundialmente pela International Society of Organization, através do documento ISO11898. Os diferentes tipos de redes CAN e suas aplicabilidades são regulamentados pela

Society of Automotive Enginneers (SAE) (BARBOSA, 2003). A tabela 1 ilustra uma relação

entre as versões do protocolo CAN.

Tabela 1 - Versões do Protocolo CAN

Versão ISO Taxa de

transferência máxima CAN baixa-velocidade 11519 125Kbps Versão 2.0A 11898:1993 1 Mbps Versão 2.0B 11898:1995 1 Mbps Fonte: (BARBOSA, 2003)

Esse protocolo permite (BOSH, 1991):

 Prioridade de mensagens;

 Faixa de operação de até 1Mbps para curtas distâncias;

(18)

 Flexibilidade de configurações;

 Recepção multinodo com retransmissão;

 Detecção e sinalização de erros;

 Consistência dos dados.

Uma rede CAN tem como principais características a robustez e a confiabilidade. Ele se caracteriza como um protocolo de múltiplo acesso com detecção de portadora e colisão, além de arbitragem na prioridade de mensagens. Ou seja, todos os nós podem solicitar uso do barramento de transferência dos dados, mas a cada vez que um determinado equipamento desejar utilizar o barramento será necessário fazer a verificação se o mesmo encontra-se disponível. As colisões são tratadas no protocolo de forma a não destruir os pacotes. Com relação à prioridade das mensagens, esse sistema faz com que as mensagens sejam transmitidas de acordo com o grau de prioridade da mesma, sendo assim, mensagens com maiores prioridades serão transmitidas primeiro em relação as demais (IBRAHIM, 2008).

A especificação desse protocolo define a estrutura do mesmo em relação apenas a duas das camadas das redes de dados ISO/OSI, especifica a implementação do mesmo no nível físico e de enlace (TANENBAUM, 1997). Essas camadas são definidas diretamente nos microchips, deixando para os desenvolvedores a preocupação somente de definir a camada de aplicação. Essa especificação precisa contemplar a padronização de todas as versões, para isso é necessário uma especificação flexível. Sendo assim, esta foi dividida em três camadas: CAN

object layer, CAN transfer layer e a psysical layer (BOSH, 1991). A figura 4 ilustra a

especificação dessas camadas.

(19)

A camada Physical Layer define como o sinal é transmitido em termos físicos.

Transfer layer representa o núcleo do CAN, responsável pelo tempo de transmissão,

sincronização, arbitragem das mensagens, detecção e sinalização de erros. A Object Layer é responsável pela filtragem das mensagens e também o status e manipulação das mesmas (BOSH, 1991).

Analisando as camadas definidas do protocolo com as camadas do padrão das redes ISO/OSI, define-se que as camadas Object Layer e Transfer Layer estão relacionadas às todas as funções da camada de enlace do modelo OSI e a Physical Layer, as funções da camada física do modelo OSI. A figura 5 ilustra uma relação entre as camadas do modelo OSI com as camadas do CAN (BOSH, 1991).

Figura 5: Camada CAN e OSI. Fonte: Próprio autor

As sessões seguintes irão explicar mais profundamente as funcionalidades definidas em cada uma das camadas.

2.2.1. Camada física da rede

Como citado anteriormente, essa camada é responsável por tratar a forma como as mensagens são transmitidas pelo barramento. Nesse sentido, o CAN apresenta um conceito bastante importante, o da dominância de bit (BARBOSA, 2003).

Existem dois tipos de bits, um chamado de recessivo e outro de dominante, sendo que a presença do bit dominante inibe o efeito do bit recessivo. O recessivo representa o estado de repouso da rede, a situação onde nenhum pacote está sendo transmitido. E o dominante, a

(20)

situação oposta. A rede em repouso recebe constantes bits recessivos e para alterar esse estado é necessário que o estado lógico do bit seja alterado, para marcar o início de uma transmissão (HUANG, 2005).

O protocolo CAN define uma forma de transmissão ao qual esta relacionada com a diferença de tensão entre dois fios, estes chamados de CAN_H (high) e CAN_L(low). Por convenção o bit recessivo é considerado com nível lógico 1, enquanto o bit dominante é considerado com nível lógico 0. Logo, para que no barramento seja gerado um bit dominante é necessário que a tensão no fio CAN_H seja de aproximadamente 3,5V, enquanto que a tensão no fio CAN_L seja de aproximadamente 1,5V, dessa forma, gerando uma diferença de 2V (RICHARDS, 2002). A figura 6 ilustra o comportamento do barramento com relação a diferença de tensão.

Figura 6: Nível do barramento CAN. Fonte: Próprio autor

Essa forma de transferência dos bits através da diferença de tensão garante a robustez da rede. Os fios CAN_H e CAN_L são definidos como par trançados, sendo assim, a introdução de um sinal considerado como ruído que gere uma elevação no nível elétrico em um dos fios irá gerar a mesma elevação no outro fio. Com isso, a diferença de tensão entre os dois garante que o efeito ruído seja cancelado. A figura 7 ilustra a topologia da rede CAN.

(21)

Figura 7: Topologia da rede CAN (FERREIRA, 2009).

A velocidade da transmissão CAN pode variar de acordo com o ambiente ou situação em que o mesmo for utilizado, mas em um mesmo ambiente a taxa é uniforme (BOSH, 1991). Existe uma relação entre o comprimento do barramento e a taxa de transferência suportada para a transmissão dos pacotes: quanto maior for o comprimento do barramento, menor será a taxa de transferência (IBRAHIM, 2008). A tabela 2 ilustra essa relação.

Tabela 2 - Taxa de transferência versus Comprimento Comprimento (m) Taxa de Transferência (Kbps)

30 1000 100 500 250 250 500 125 1000 62.5 Fonte: Barbosa (2003)

A especificação do protocolo CAN definiu como seu conector padrão o DB9. A tabela 3 mostra a configuração dos pinos desse conector.

(22)

Tabela 3 – Pinagem do conector DB9 no padrão CAN

Pinos Nome do Sinal Descrição

1 Reservado A ser definido

2 CAN_L Dominante nível baixo

3 CAN_GND Terra

4 Reservado A ser definido

5 CAN_SHLD Blindagem (Opcional)

6 GND Terra

7 CAN_H Dominante alto nível

8 Reservado A ser definido

9 CAN_V+ Fonte

Fonte: Ferreira (2009)

2.2.2. Camada de enlace

Essa camada é responsável por tratar das mensagens, da detecção dos erros, da arbitragem, entre outras funcionalidades. Existem dois formatos de mensagem diferentes para o CAN: o padrão 2.0 A, chamado de standard, e a o padrão 2.0 B, chamando de extended. A diferença básica entre os dois está na quantidade de bits destinada à identificação da mensagem: na versão A são 11 bits, enquanto na versão B são 29 bits (HUANG, 2005).

Nesse protocolo são definidos 4 diferentes tipos de datagramas que encapsulam as mensagens: datagrama de dados, datagrama remoto, datagrama de erro e datagrama de sobrecarga. A figura 8 ilustra a definição do datagrama de dados.

Figura 8: Datagrama de dados (FERREIRA, 2009).

Na figura 8, o campo Start of frame (SOF) representa um bit dominante, que informa ao barramento que uma mensagem será transmitida. O Arbitration Field é responsável por definir a prioridade da mensagem, este é utilizado pelo mecanismo de arbitragem implementado pelo protocolo. Esse campo possui 11 bits, na versão A, e acoplado a este campo existe um bit de requisição de retransmissão de dados (RTR), o qual define, quando

(23)

dominante, que um quadro remoto deverá ser enviado após a conclusão do recebimento desse pacote. A figura 9 ilustra os detalhes do campo de arbitragem da versão 2.0 A.

Figura 9: Campo de Arbitragem na versão 2.0 A (FERREIRA, 2009).

Na versão B, esse campo de arbitragem é maior, possui 29 bits. Este é dividido em duas partes, uma contendo 11 bits e outra contendo 18 bits, sendo que são divididos em diferentes campos: RTR recessivo denominado SRR (Subistitute Remote Request) e outro

chamando de extensão de identificação (IDE), caso recessivo, informa que o próximo campo é extensão do identificador ou apenas o campo de controle (IBRAHIM, 2008). Detalhes desse campo esta ilustrado na figura 10.

Figura 10: Campo de Arbitragem na versão 2.0 B (FERREIRA, 2009).

Após o Arbitration Field, o próximo campo é o de controle, Control Field. Esse campo é formando por um bit, na versão 2.0 A. Na versão 2.0B é formado por dois bits reservados, e mais 4 bits que definem o tamanho da mensagem. Em seguida, tem-se o campo responsável por armazenar a mensagem Data Field, que pode ter de 0 até 8 bytes. O campo seguinte é o de verificação de integridade, CRC Field. Este possui 2 bytes e é usado para garantir que a mensagem foi enviada integralmente (IBRAHIM, 2008).

O campo seguinte é o ACK Field, responsável por informar se a mensagem foi recebida pelo destinatário. Por fim, o campo EOF, End of frame, é responsável por informar que o pacote foi finalizado e caso ocorra erros, informa-os também.

O datagrama remoto possui os mesmo campos do datagrama de dados, a diferença entre eles é que o remoto não possui o campo de dados. Este datagrama é utilizando quando

(24)

algum nó solicita dados de um componente ou quando apenas deseja informar o recebimento de uma mensagem (IBRAHIM, 2008).

O datagrama de erros e sobrecarga é enviado quando um determinado nó da rede identifica algum erro ou quando se necessita um atraso na transmissão. A figura 11 ilustra esse pacote.

Figura 11: Datagrama de erros e sobrecarga (FERREIRA, 2009).

As mensagens transmitidas de um nó para o outro através do barramento CAN são identificadas pelos dispositivos receptores através de um código de identificação. Como ilustrado no datagrama de dados, as mensagens possuem um campo de identificação, através desse campo os dispositivos conectados ao barramento CAN verificam se a mensagem é válida para o mesmo ou não. Quando um determinado nó envia uma mensagem para o barramento, todos os nós recebem essa mensagem e então verificam se esta foi enviada para o mesmo ou não. Com isso, percebe-se que a transferência das mensagens no protocolo CAN baseia-se na técnica da identificação e não do endereçamento.

2.2.3. Arbitragem das mensagens

A técnica de arbitragem implementada pelo CAN baseia-se na utilização da dominância de bit. Esse conceito, que já foi descrito anteriormente, garante que não haja sobreposição de pacotes no barramento. Isso garante que uma mensagem com menor prioridade não sobreponha uma mensagem com maior prioridade e também que essas não sejam destruídas (HUANG, 2005).

O protocolo CAN também utiliza o método de detecção de portadora, com isso, os nós fazem a verificação da disponibilidade do barramento, verificando, assim, se o mesmo está sendo utilizado por outro nó antes de enviar suas mensagens. Por exemplo, o barramento encontra-se livre e dois nós iniciam a transmissão de uma mensagem. Como o inicio do pacote são iguais, a sobreposição não é percebida, dessa forma, apenas no momento de escrita

(25)

do identificador, quando um escreve um bit dominante e outro um bit recessivo, a sobreposição é detectada, então o nó com a mensagem de menor prioridade entra em modo de escuta, esperando que o barramento seja liberado novamente (HUANG, 2005).

Esse protocolo implementa também técnicas de identificação de erros. Existem 4 métodos diferentes de identificação do erro: através da verificação do CRC; através da verificação do ACK; verificação do quadro, verificando a existência de bits recessivos no lugar de bits dominantes; a consistência do bit, é verificado se o bit transmitido é igual ao bit lido após a escrita (HUANG, 2005).

2.2.4. Funcionamento do Protocolo CAN em dispositivos da Microchip

A Microchip é uma das empresas que disponibiliza componentes com suporte ao protocolo CAN. Tais componentes variam desde seus microcontroladores até controladores específicos para a comunicação CAN, por exemplo: PIC18F2680 e o MCP2515. Esses componentes seguem as especificações da BOSH (1991).

Algumas das características do módulo CAN implementado pela Microchip: implementação das três versões do protocolo, 1.2, 2.0A e 2.0B; disponibilidade para transmissão dos frames de dados nas duas versões, standard e extended; máxima taxa de transferência de 1Mbit/seg; três modos de operação; sinal de clock programável; dois buffers para recepção e três buffers para transmissão; sinal de interrupção para controle da transmissão dos dados, assim como estados de erro; configuração de filtros e máscaras para controle da recepção dos dados, entre outras (MICROCHIP, 2007a).

Esse módulo CAN consiste no mecanismo de funcionamento do protocolo assim como nos registradores de controle e de buffer das mensagens. O mecanismo de funcionamento é responsável por garantir o envio e o recebimento das mensagens através do barramento CAN. Para a transmissão das mesmas é necessário, inicialmente, carregar os registradores de dados apropriados. O status da transmissão e a detecção dos possíveis erros também podem ser identificados através da verificação de registradores específicos para tal função (MICROCHIP, 2007a).

Todas as mensagens recebidas pelo módulo CAN sofrem verificação da ocorrência de erro na sua recepção. Caso a mensagem não possua nenhum erro, é feita a comparação com os filtros previamente definidos e então esta é aceita e carregada em um dos dois registradores de recebimento (MICROCHIP, 2007a).

(26)

A figura 12 ilustra o diagrama de blocos da estrutura do módulo CAN da Microchip.

Figura 12: Diagrama de blocos do módulo CAN (MICROCHIP, 2007a).

2.2.4.1. Funcionalidades do módulo CAN

Inicialmente, para o correto funcionamento do módulo CAN, é necessário realizar a configuração do mesmo, para isso devem ser defindosr os valores em determinados registradores. Sendo assim, antes de iniciar o processo de transmissão de mensagens, deve-se (MICROCHIP, 2007a):

1. Garantir que o módulo esteja no modo de configuração; 2. Selecionar o modo de funcionamento;

3. Definir a taxa de transferência; 4. Definir o modo de operação.

(27)

O módulo CAN possui seis principais modos de operação, são eles (MICROCHIP, 2007a) (MICROCHIP, 2007b):

 Modo de configuração: nesse modo nenhuma transmissão é realizada no barramento, apenas é realizada a configuração dos registradores responsáveis por configurar o módulo;

 Modo desabilitado: neste modo nenhuma transmissão é realizada, o módulo fica desabilitado;

 Modo normal: neste modo as transmissões de dados ocorrem normalmente, ou seja, o módulo encontra-se apto para enviar e receber mensagens; apenas leitura, o módulo somente recebe mensagens;

Loopback: o módulo transfere as mensagens apenas internamente, utilizando seus registradores de envio e recebimento, não utiliza o barramento CAN;

 Reconhecimento de erro, nesse modo o módulo pode ignorar qualquer ocorrência de erro e receber qualquer mensagem.

Além dos seis modos de operação, esse módulo possui ainda três modos de funcionamento, são eles: Modo 0 – Legacy Mode; Modo 1 – Enhanced Legacy Mode; Modo 2 - Enhanced Fifo Mode. Dentre esses modos, pode-se destacar o Modo 0. Este é um modo padrão de funcionamento do CAN nos dispositivos, tendo como recursos disponíveis: três buffers de transmissão, dois buffers de recepção, duas mascaras para a recepção da mensagem além de seis possíveis filtros (MICROCHIP, 2007a).

Todos os dispositivos de um barramento CAN precisam ter a mesma taxa de transferência. O oscilador de cada um dos nós pode ser diferente, mas a configuração precisa garantir que os mesmos tenham a mesma taxa de transferência. A equação 1 apresenta o calculo necessário para definir essa taxa (MICROCHIP, 2007a) (MICROCHIP, 2007b).

(Eq. 1)

O Nominal Bit Time é obtido através da equação 2:

( ) (Eq. 2)

(28)

Na equação 2 o Time Quantum (TQ) é derivado do período do oscilador. A equação 3 e 4 mostram como obter esse valor.

( ) ( ) ( ) (Eq. 3)

( ) ( ( )) ( ) (Eq. 4)

A equação 2 apresenta os segmentos (figura 13) envolvidos na definição da taxa de transferência de dados, são eles: Sync_Seg, Synchronization Segment, usado para sincronizar os nós do barramento CAN; Prop_Seg (PROPSEG), Propagation Segment, usado para compensar os tempos de atraso físico da rede; Phase_Seg1(PHSEG2) e o

Phase_Seg2(PHSEG1), Phase Buffer Segments, utilizado para otimizar a localização do ponto

de amostragem do bit recebido. Na equação 3 e 4 o BRP é o Baud Rate Prescaler (MICROCHIP, 2007a) (MICROCHIP, 2007b).

Figura 13: Segmentos e Time Quantum (MICROCHIP, 2007a)

Existem algumas restrições para a configuração do valor dos segmentos, estas estão representadas nas equações 5, 6 e 7 (MICROCHIP, 2007a).

(Eq. 5)

(Eq. 6)

(29)

2.3. Serial Peripheral Interface

Serial Peripheral Interface (SPI) é um protocolo de comunicação serial e síncrono,

além de ser full-duplex. Esse protocolo foi desenvolvido pela Motorola e surgiu com o intuito de simplificar a comunicação entre os dispositivos periféricos e os microcontroladores da Motorola. Sendo assim, devido à simplicidade com a qual o método funciona, o SPI tornou-se um padrão industrial. Diversas companhias disponibilizam em seus microcontroladores módulos de comunicação SPI, dessa forma, incentiva que cada vez mais as indústrias produzam seus dispositivos com essa interface, para que assim, possibilite a comunicação destes com os microcontroladores (HUANG, 2005).

A comunicação SPI funciona baseada na arquitetura Mestre/Subordinado (Master/Slave). Exigindo que exista um componente chamado de Mestre, considerado o dispositivo inteligente, que fará o controle da comunicação, e um ou mais Subordinados, dispositivos controlados pelo Mestre. O mestre é responsável por gerar os pulsos de clock para sincronizar a transferência do dado, enquanto que o subordinado fica a espera dos pulsos de clock do mestre para que possa enviar e/ou receber os dados (HUANG, 2005).

O barramento é composto de quatro linhas: Serial Clock (SCK), responsável pela transmissão do clock do Mestre para o Subordinado; Serial Data Out (SDO), responsável pela transmissão do dado; Serial Data In (SDI), responsável pela recepção do dado; Slave Select (SS), responsável por ativar o subordinado para efetuar a comunicação (HUANG, 2005).

2.3.1. Funcionamento do protocolo SPI

A figura 14 mostra um diagrama de blocos simplificado da conexão entre um mestre e um subordinado na comunicação SPI.

(30)

Figura 14: Conexão SPI entre Mestre e Subordinado (MICROCHIP, 2007a)

Como ilustrado na figura 14, o SDO precisa estar conectado ao SDI. Consequentemente, o SDI do primeiro conecta-se ao SDO do segundo. Dessa forma, viabiliza que ambos os dispositivos troquem os dados por linhas de comunicação diferentes, possibilitando assim, que o SPI opere no modo full-duplex (HUANG, 2005).

O SCK é responsável por transmitir os sinais de clock da comunicação do mestre para os seus respectivos subordinados. Sendo assim, no mestre configura-se como sinal de saída e nos subordinados como sinal de entrada. O /SS é o sinal que ativa o subordinado para que seja realizada a comunicação com o mestre, o mestre envia esse sinal para um determinado subordinado e então a comunicação é estabelecida. Esse sinal torna-se necessário quando se tem mais de um subordinado no barramento, pois nesse caso será necessário determinar quem deve se comunicar com o mestre a cada momento (HUANG, 2005).

O módulo SPI utiliza basicamente dois registradores, o SSPBUF e o SSPSR, como ilustrado na figura 14. O SSPSR transmite os dados para dentro e para fora do dispositivo enquanto que o SSPBUF retém o dado que foi escrito para o SSPSR até que o mesmo esteja pronto (MICROCHIP, 2007a).

Para enviar um dado, um byte, do mestre para um subordinado, o primeiro irá escrever o byte no SSPBUF, que também será escrito no SSPSR. Quando o dado é escrito no registrador SSPBUF, oito pulsos de clock serão gerados e consequentemente serão trocados os dados entre o registrador SSPSR do mestre com o registrador SSPSR do subordinado. Para fazer a leitura de um dado, o mestre executa a mesma operação da escrita, porém o dado escrito no SSPBUF não importa (HUANG, 2005).

(31)

2.3.2. Modos de operação do barramento SPI

O barramento SPI pode ter seu sinal de clock configurado de quatro diferentes formas. Essas configurações são resultantes da combinação entre a polaridade (CKP) e a fase (CKE) (HUANG, 2005).

A polaridade define se o estado ocioso do clock será quando o mesmo estiver em nível ‘0’ ou ‘1’. A fase define se o dado será transmitido na transição do sinal de clock do nível ‘0’ para ‘1’ ou de ‘1’ para ‘0’. As figuras 15, 16 e 17 ilustram o funcionamento da transferência do dado nas quatro combinações de configuração possíveis, sendo que a figura 15 ilustra o funcionamento do mestre e as demais do subordinado (HUANG, 2005).

(32)

Figura 16: Forma de onda do modo SPI – Modo Subordinado com CKE = 0 (MICROCHIP, 2007a)

(33)

2.4. Universal Serial Bus

O Universal Serial Bus, mais conhecido como Protocolo USB, foi desenvolvido tendo como um dos seus objetivos sanar as dificuldades e limitações de interfaces de comunicação com computadores existentes. Esse protocolo é utilizado como interface de comunicação para diferentes tipos de dispositivos, por exemplo: mouse, câmeras digitais, dispositivos microcontrolados, impressoras, etc (AXELSON, 2005). Desde a sua criação, o USB foi cada vez mais difundido e utilizado para comunicações entre periféricos e computadores, fazendo com que outros protocolos de comunicações já existentes tornassem-se obsoletos. Nesse contexto pode-se citar a relação entre o USB e o RS-232, na qual o segundo vem perdendo cada vez mais espaço na comunicação entre periféricos e computadores, sendo assim substituído pelo USB. Pode-se perceber que nos últimos anos os computadores não disponibilizam como opção de fábrica a comunicação serial RS-232, sendo necessária a utilização de adaptadores.

O USB surgiu em um momento no qual os computadores estavam ficando cada vez mais potentes e o número e os tipos de periféricos vinham aumentando de forma considerável, dessa forma as interfaces existentes passaram a ser consideras como gargalos devido as suas baixas taxas de comunicação além das restritas opções de expansão. Com isso, a necessidade por melhores interfaces sobrepôs o tradicionalismo presente na utilização dos protocolos já existentes. Sendo assim, esse cenário, levou ao desenvolvimento do USB (AXELSON, 2005).

A facilidade de uso é o ponto forte da interface USB, resultando assim em uma interface útil por diversos motivos, dos quais pode-se destacar (AXELSON, 2005):

 Versátil o suficiente para ser utilizada em diversos tipos de periféricos;

 Configuração automática, quando o usuário conecta o periférico USB no PC este detecta o dispositivo e então carrega o driver apropriado para o correto funcionamento do mesmo;

 Facilidade em conectar ao computador, devido às portas USB que já vem acopladas; possibilidade de conectar e desconectar o periférico a qualquer momento, sem danificar ambos;

 Desnecessária a alimentação externa, o próprio esquema do cabo USB disponibiliza linhas para alimentação do dispositivo; baixo custo de seus componentes; baixo consumo de energia.

(34)

Além das características citadas, pode-se adicionar, ainda, a confiabilidade da comunicação dessa interface. As especificações dos elementos de hardware envolvidos nesse tipo de comunicação garantem a eliminação da maioria dos ruídos que causam erros nos dados. Aliado a isso, esse protocolo notifica o transmissor caso o dado tenha chegado com algum erro no receptor, nesse caso, o dado é retransmitido (AXELSON, 2005).

Em relação ao desenvolvimento, essa interface também disponibiliza características que proporcionam benefícios aos desenvolvedores. As diferentes formas de transferência aliada às velocidades suportadas por esse protocolo fazem com que este seja versátil o suficiente para serem utilizados em diversos tipos de periféricos. As formas de transferência estão associadas as situações nas quais serão transferidos blocos grandes e pequenos de dados e também a existência ou não de restrições de tempos. Além disso, destaca-se também o suporte aos diferentes sistemas operacionais existentes, por exemplo: Windows, Linux e Macintosh, entre outros. Nos periféricos, os dispositivos de hardware USB possuem um chip de controle, geralmente um microcontrolador, que permite aos desenvolvedores o controle das ações do mesmo (AXELSON, 2005).

2.4.1. Componentes do barramento

O barramento USB é composto dos seguintes componentes: circuitos, conectores e cabo que conecta o host aos periféricos. O host é um computador que contem um controlador USB e um hub raiz. Esses componentes são responsáveis por possibilitar que o sistema operacional efetue a comunicação com dispositivos presentes no barramento. O controlador trata das mensagens que serão transmitidas ao barramento e traduz os dados recebidos do barramento de forma que o sistema operacional entenda. Além disso, esse controlador também efetua outras funções relativas ao gerenciamento do barramento. O hub disponibiliza portas USB para que os dispositivos possam se conectar ao computador. Neste caso, associado ao controlador, este detecta e remove dispositivos e envia e recebe informações entre os periféricos e o computador (AXELSON, 2005).

Os dispositivos que podem ser conectados aos hosts podem ser classificados em dois tipos: periféricos e hubs adicionais. Os hubs adicionais têm por função disponibilizar mais portas para conexão de outros periféricos. Cada dispositivo precisa saber como se comunicar com o host, isso é possibilitado através de seu circuito interno e também pelos códigos pré-definidos (AXELSON, 2005).

(35)

A especificação do USB envolve a definição dos pinos e cores dos fios e suas funções que compõem os conectores. A tabela 5 mostra essa especificação.

Tabela 5 – Especificação dos cabos USB

Pinos: Série A e B Pinos: Mini-B Função Cor do fio

1 1 VDD (+5) Vermelho 2 2 D- Branco 3 3 D+ Verde 4 5 GND Preto - 4 ID Não conectado Fonte: Axelson (2005)

A topologia da conexão de um barramento USB pode ser definido na forma de estrela em camadas. Essa topologia torna-se viável devido à utilização de hubs, que aumentam a quantidade de dispositivos que podem ser conectados a um host (AXELSON, 2005). A figura 18 mostra possíveis configurações de conexão entre periféricos e computadores através da utilização ou não de hubs.

Figura 18: Configurações para conexão de periféricos USB com hosts. Fonte: Próprio autor

2.4.2. Human Interface Device

Dispositivos USB podem ser agrupados de acordo com determinadas funcionalidades que possuem em comum, com isso, formam-se grupos que compartilham atributos ou provem e solicitam serviços semelhantes. Por exemplo: dispositivos que recebem dados para serem

(36)

impressos e retornam o status para o host; mouses que retornam informações sobre seu movimento para o host, entre outros. Nesse contexto, dispositivos que compartilham funcionalidades foram agrupados em classes. O Human Interface Device, Dispositivo de Interface Humana, (HID) representa uma dessas classes (IBRAHIM, 2008) (AXELSON, 2005).

A classe HID abrange componentes como: teclado, controles de jogos, entre outros. A principal característica dessa classe consiste no rápido tempo de resposta na comunicação entre o host e aos dispositivos, com isso, o usuário não percebe o atraso existente entre a ação e a resposta esperada (IBRAHIM, 2008).

A estrutura da transferência de dados na classe HID segue um formato definido. Dessa forma, as ações do host ou dispositivo USB são mapeadas através de tags em um relatório o qual define o que deve ser feito a depender do dado que foi recebido. Por exemplo, o valor da

tag Usage Page como 09h, indica um botão, enquanto que o valor da tag Usage ID indica

qual botão foi pressionado (IBRAHIM, 2008) (AXELSON, 2005).

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).

(37)

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

(38)

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.

(39)

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.

(40)

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.

(41)

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.

(42)

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.

(43)

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.

(44)

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.

(45)

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.

4.2 Soluções para o desenvolvimento do barramento CAN

Nesta seção serão abordadas as soluções encontradas e desenvolvidas durante as fases desse projeto.

4.2.1 Solução – Segunda fase

Na segunda fase do desenvolvimento desse projeto foi implementado o barramento CAN utilizando microcontroladores PIC18F2680. A figura 26 ilustra a arquitetura da rede montada.

(46)

Figura 26: Solução da segunda fase. Fonte: Próprio autor

Como ilustrado na figura 26, o barramento implementado foi constituído por apenas dois nós. O componente MCP2551 (MICROCHIP, 2003) presente na figura é um conversor de sinal, este funciona como uma interface entre o controlador CAN presente no microcontrolador e o barramento CAN.

Nessa etapa foi desenvolvida a montagem do barramento em uma protoboard. Nesse cenário cada nó da rede esteve conectado a um computador e trocavam informações entre si. Em cada microcontrolador foi feita a comunicação com o PC através do protocolo RS-232 com o intuito de poder visualizar o dado que estava sendo enviado e recebido por cada nó. A figura 27 mostra o diagrama de blocos do funcionamento do firmware do primeiro nó transmissor.

(47)

Figura 27: Diagrama de blocos do primeiro nó. Fonte: Próprio autor

Como visto na figura 27, primeiramente é realizada a configuração do microcontrolador, a partir de então o dispositivo encontra-se preparado para realizar as comunicações desejadas. O passo seguinte consiste na configuração dos módulos responsáveis pelas comunicações, o módulo CAN e o Universal Synchronous Asynchronous

Receiver Transmitter (USART), este responsável pela comunicação RS-232. Depois de

finalizada todas as configurações, os módulos estavam prontos para realizar a transferências dos dados.

Após o primeiro passo, o firmware inicia um loop infinito, no qual o dispositivo fica executando todo o tempo o mesmo código repetidamente. A execução da instrução de while

true efetua a comunicação desse nó com o computador e com o segundo nó do barramento

CAN. A primeira execução verifica se o módulo CAN está pronto para enviar uma mensagem para o barramento, caso esteja, este nó escreve uma mensagem no barramento que deverá ser recebida pelo segundo nó e também envia o mesmo dado para o PC.

(48)

Na próxima instrução o dispositivo se prepara para fazer a leitura de uma mensagem do barramento CAN que foi enviado pelo segundo nó. Para fazer a leitura, o dispositivo fica a espera até que a mensagem esteja disponível em seu buffer, assim que estiver o microcontrolador faz a leitura da mensagem no barramento e então a envia para o computador.

A figura 28 ilustra o diagrama de blocos do firmware do segundo nó da rede.

Figura 28: Diagrama de blocos do segundo nó. Fonte: Próprio autor

Como pode ser observado pela figura 28, o funcionamento do segundo nó é semelhante ao do primeiro. A diferença entre ambos está na ordem do recebimento e envio das mensagens. Esse segundo nó, inicialmente fica a espera do dado enviado pelo primeiro nó. Ele tem como função receber este dado e então o enviar de volta. Para verificar a integridade dos dados que estavam sendo recebidos e enviados, também foi adicionada a comunicação com o computador.

(49)

4.2.2 Solução – Terceira fase

Na terceira fase o objetivo do projeto consistia na construção do conversor USB/CAN. Durante essa fase foram levantadas algumas soluções a fim de viabilizar que os nós da rede se comunicassem com os computadores através da interface USB.

A primeira solução encontrada para essa fase foi a utilização do MCP2515 juntamente com o microcontrolador PIC18F4550. O MCP2515 é o responsável por realizar a transferência de dados no barramento CAN, caracterizando-se como um módulo CAN externo. Sendo assim, este é conectado ao PIC18F4550, que através do protocolo SPI controla o acesso aos registradores do MCP2515. A figura 29 ilustra essa solução.

Figura 29: Solução utilizando o MCP2515. Fonte: Próprio autor

A arquitetura ilustrada na figura 29 foi montada em uma protoboard para que fosse analisado o funcionamento do MCP2515 associado ao PIC18F4550. Da mesma forma como na arquitetura da solução da segunda fase, cada nó da rede foi conectado a um computador para que este pudesse controlar o envio e o recebimento dos dados. Além disso foi implementado a troca de mensagens entre si, na qual um nó envia um dado e o segundo nó retransmite o dado para quem o enviou.

(50)

A figura 30 ilustra o diagrama de blocos do funcionamento do firmware do PIC18F4550.

Figura 30: Diagrama de blocos do firmware do PIC18F4550. Fonte: Próprio autor

Para que o PIC18F4550 pudesse efetuar a comunicação USB com o computador, foi utilizado um bootloader da Microchip que implementa a comunicação USB através da classe HID. Dessa forma, o primeiro passo desse nó é carregar o firmware do USB, logo após é realizada a configuração do MCP2515. Realizadas todas as configurações, o programa entra em um loop infinito o qual executa repetidamente o código referente à comunicação do PIC18F4550 com os demais dispositivos.

Na primeira instrução do laço o dispositivo aguarda até que um dado seja enviado do computador para o mesmo através da porta USB. Feito isso, o dispositivo então envia esse dado para o MCP2515 para que o mesmo escreva-o no barramento CAN.

Na próxima instrução o nó fica a espera até que outro nó do barramento envie uma mensagem. Feito isso, o MCP2515 faz a leitura do dado no barramento e então o envia para o PIC18F4550. Deste microcontrolador, o dado é enviado para o computador através do USB.

Referências

Documentos relacionados

Cada módulo de acionamento é composto por microcontroladores PIC da Empresa Microchip que são responsáveis pelo controle, codificação e decodificação dos

O mapeamento da curva de carga é fundamental para o planejamento estratégico de distribuição de energia, pois a partir deste é possível conhecer o perfil da demanda

2.1 ANÁLISE MERCADOLÓGICA 2.2 MISSÃO DA EMPRESA 03 CONCORRÊNCIA 04 FORNECEDORES 05 PLANO DE MARKETING 5.1 PLANO DE VENDAS 06 CUSTOS 07 INVESTIMENTO 08 ANÁLISE FINANCEIRA 09

• Capacitação e Transferência da metodologia do Sistema ISOR ® para atividades de Coaching e/ou Mentoring utilizando o método das 8 sessões;.. • Capacitação e Transferência

Foi desenvolvido pelo Centro de Telessaúde do Hospital das Clínicas da UFMG um aplicativo intitulado “Cuidados Paliativos”, que tem como objetivo auxiliar os

3.7.3 O candidato que não solicitar as correções dos dados será o único responsável pelas consequências advindas de sua omissão. 3.8 O candidato que necessitar de

Este trabalho tem como objetivo a implementação de estratégias metodológicas para o estudo de comportamentos sociais em animais modelo de autismo, bem como, caracterizar, por meio

“O Renegade diesel é um oceano azul para nós, onde navegamos so- zinhos, sem concorrência no Brasil nesse tamanho de veículo”, diz Sérgio Ferreira, diretor-geral da Jeep