UNIVERSIDADE DO ESTADO DE SANTA CATARINA – UDESC CENTRO DE CIÊNCIAS TECNOLÓGICAS – CCT DEPARTAMENTO DE ENGENHARIA ELÉTRICA – DEE PÓS-GRADUAÇÃO EM AUTOMAÇÃO INDUSTRIAL – PGAI Formação: Mestrado em Automação Industrial DISSERTAÇÃO DE MESTRADO OBTIDA POR Ste

207 

Full text

(1)

UNIVERSIDADE DO ESTADO DE SANTA CATARINA – UDESC CENTRO DE CIÊNCIAS TECNOLÓGICAS – CCT

DEPARTAMENTO DE ENGENHARIA ELÉTRICA – DEE PÓS-GRADUAÇÃO EM AUTOMAÇÃO INDUSTRIAL – PGAI

Formação: Mestrado em Automação Industrial

DISSERTAÇÃO DE MESTRADO OBTIDA POR

Stefano Romeu Zeplin

DESENVOLVIMENTO DE UMA REDE CAN UTILIZANDO

DSPS

Apresentada em 30/04/2004 perante a Banca Examinadora:

(2)

UNIVERSIDADE DO ESTADO DE SANTA CATARINA – UDESC CENTRO DE CIÊNCIAS TECNOLÓGICAS – CCT

DEPARTAMENTO DE ENGENHARIA ELÉTRICA – DEE PÓS-GRADUAÇÃO EM AUTOMAÇÃO INDUSTRIAL – PGAI

DISSERTAÇÃO DE MESTRADO

Mestrando: STEFANO ROMEU ZEPLIN – Engenheiro Eletricista Orientador: Prof. Dr. ANTONIO HERONALDO DE SOUSA – CCT/UDESC

DESENVOLVIMENTO DE UMA REDE CAN

UTILIZANDO DSPS

Dissertação submetida à Universidade do Estado de Santa Catarina como parte dos requisitos para a obtenção do grau de Mestre em Automação Industrial.

(3)

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC CENTRO DE CIÊNCIAS TECNOLÓGICAS – CCT

COORDENAÇÃO DE PÓS-GRADUAÇÃO - CPG

"Desenvolvimento de uma rede CAN utilizando DSPs"

por

Stefano Romeu Zeplin

Essa dissertação foi julgada adequada para a obtenção do título de

MESTRE EM AUTOMAÇÃO INDUSTRIAL

área de concentração em "Automação e Informática Industrial", e aprovada em sua forma final pelo

CURSO DE MESTRADO EM AUTOMAÇÃO INDUSTRIAL CENTRO DE CIÊNCIAS TECNOLÓGICAS DA UNIVERSIDADE DO ESTADO DE SANTA CATARINA

Dr. Antônio Heronaldo de Sousa (presidente)

Banca Examinadora:

Joinville, 30 de Abril de 2004

Dr. Cesar Albenes Zeferino (UNIVALI)

Dr. Alcindo do Prado Júnior

(4)

FICHACATALOGRÁFICA NOME: ZEPLIN, Stefano Romeu

DATA DA DEFESA: 30/04/2004 LOCAL: Joinville, CCT/UDESC

NÍVEL: Mestrado Número de ordem: 16 – CCT/UDESC FORMAÇÃO: Automação Industrial

ÁREA DE CONCENTRAÇÃO: Automação e Informática Industrial TÍTULO: Desenvolvimento de uma Rede CAN Utilizando DSPs PALAVRAS - CHAVE: Rede CAN; DSP.

NÚMERO DE PÁGINAS: xvii, 223 p.

CENTRO/UNIVERSIDADE: Centro de Ciências Tecnológicas da UDESC PROGRAMA: Pós-Graduação em Automação Industrial - PGAI

CADASTRO CAPES:

ORIENTADOR: Dr. Antônio Heronaldo de Sousa

PRESIDENTE DA BANCA: Dr. Antônio Heronaldo de Sousa MEMBROS DA BANCA: Dr. Cesar Albenes Zeferino

Dr. Alcindo do Prado Júnior

(5)

Resumo da Dissertação apresentada à UDESC como parte dos requisitos necessários para obtenção do grau de Mestre em Automação Industrial.

DESENVOLVIMENTO DE UMA REDE CAN UTILIZANDO DSPS Stefano Zeplin

Abril/2004

Orientador: Antônio Heronaldo de Sousa, Dr.

Área de Concentração: Automação e Informática Industrial. Palavras-chave: Rede CAN, DSP, AGV.

Número de Páginas: 223

Nos últimos anos, cresceu a adoção da tecnologia dos processadores digitais de sinais (DSPs) em uma variedade de aplicações de controle embarcado. Além do poder de processamento, a tecnologia de automação moderna é caracterizada também pelo crescimento da descentralização do processamento de dados. Mas, a necessidade de comunicação entre os diferentes sistemas tem levado também ao desenvolvimento de meios de comunicação mais eficientes, como a Rede CAN (Controller Área Network), que foi inicialmente criada pela empresa Bosch, no meado dos anos 80, como um sistema para propiciar uma comunicação serial robusta para aplicações automotivas.

(6)

Abstract of Dissertation presented to UDESC as a partial fulfillment of requirements for the degree of Master in Industrial Automation.

DEVELOPMENT OF A CAN NETWORK USING DSPS

Stefano Zeplin

April/2004

Advisor: Antônio Heronaldo de Sousa, Dr.

Area of Concentration: Industrial Informatics and Automation. Keywords: CAN Network; DSP, AGV.

Number of Pages: 223

In recent years, there has been a major adoption of digital signal processors (DSPs) technology in a variety of embedded control applications. Typical industrial applications include high-performance servo drivers in applications like machine tools and robotics. Beyond the processing power, modern automation technology is characterized by increasing decentralization of data processing. But, the necessity of communication between the different systems has also led to the development of medias more efficient as Controller Area Network (CAN Network), that was initially created by Robert Bosch in the mid-1980s for automotive applications as a method for enabling robust serial communication.

(7)

Toda grande caminhada começa com o primeiro passo.

(Gandhi)

O êxito começa no exato momento em que o homem decide o que quer e começa a trabalhar para conseguí-lo.

(8)
(9)

Agradecimentos

Agradeço a Deus por me guiar durante toda a minha trajetória e permitir a lucidez necessária para aprender com as dificuldades que enfrentamos todo o dia;

Agradeço, também, ao professor Antônio Heronaldo de Sousa, por sua orientação, paciência, e principalmente por sua confiança no trabalho desenvolvido;

Aos colegas da UDESC, em especial aos do Departamento de Engenharia Elétrica e do curso de Automação Industrial pela convivência e companheirismo;

À minha esposa, Marciléia Volkmann Zeplin, por sua compreensão, paciência e cujo companheirismo tornou esta jornada possível ;

Agradeço ao bolsista Rodrigo Gastaldi pelas contribuições durante a elaboração do projeto.

(10)

Sumário

1 Introdução ... 1

1.1 Evolução dos sistemas digitais ... 1

1.2 Necessidade de comunicação em sistemas embarcados ... 2

1.4 Desenvolvimento de protocolos baseados nas duas camadas da rede CAN ... 2

1.5 Formulação do Problema ... 3

1.5 Organização da Dissertação... 5

2 Rede CAN ... 6

2.1 Introdução ... 6

2.2 Histórico ... 6

2.3 Estrutura da rede CAN ... 7

2.3.1 Princípio de funcionamento da rede CAN ... 8

2.4 O padrão de comunicação ISO/OSI ... 11

2.5 Camada de Enlace ... 13

2.5.1 Tipos de Mensagens ... 13

2.5.2 Tratamento de erros na rede CAN ... 21

2.6 Camada Física ... 22

2.6.1 Configuração de um nó de um barramento CAN ... 23

2.6.2 Características do Meio Físico ... 24

2.6.3 Transceiver CAN ... 26

2.6.4 Controlador CAN ... 27

2.6.5 Representação do Bit ... 29

2.6.6 Temporização e Sincronização do Bit ... 29

3 Processador Digital de Sinal ... 31

3.1 Introdução ... 31

3.2 Evolução e Características dos DSPs ... 31

3.3 Aplicações para DSPs ... 32

(11)

3.5 Critérios para a Seleção de um DSP ... 33

3.6 Famílias de DSPs da Texas Instruments ... 35

3.7 O DSP TMS320LF2407 ... 35

3.7.1 Arquitetura do DSP TMS320F2407 ... 36

3.7.2 Interrupção ... 55

3.8 Programação do TMS320LF2407 ... 58

3.8.1 Etapas de Desenvolvimento de um Programa ... 58

3.8.2 Estrutura de um Programa em Assembly ... 59

3.8.3 Modos de Endereçamento ... 60

3.9 Controlador CAN do DSP TMS320LF2407 ... 63

3.9.1 Arquitetura do controlador CAN ... 63

3.9.2 Mapa de Memória do Controlador CAN ... 64

3.9.3 Registradores do Controlador CAN ... 65

3.9.4 Mailbox ... 67

4 Montagem e Testes Básicos cam a rede CAN ... 70

4.1 Introdução ... 70

4.2 Plataforma de Desenvolvimento ... 70

4.3 Configuração do DSP ... 73

4.4 Montagem de um Nó ... 76

4.5 Processo de Configuração de Parâmetros da Rede CAN ... 77

4.6 Processo de Transmissão de Dados ... 80

4.6.1 Algoritmo para Carga de Dados em Mailbox ... 80

4.6.2 Algoritmo para Transmissão de Dados em Mailbox ... 83

4.7 Processo de Recepção de Dados ... 85

4.7.1 Configura Mailbox para Recepção ... 85

4.7.2 Recepção de Mensagens ... 88

4.8 Testes para Validação Inicial da Rede CAN ... 89

5 Desenvolvimento de Algoritmos ... 99

(12)

5.2 Veículo Guiado Automaticamente... ... 99

5.2.1 Componentes de um AGV ... 101

5.3 Definição das Características do Sistema Poroposto ... 105

5.4 Geração de Mensagens ... 109

5.4.1 Critérios para obtenção das mensagens ... 109

5.5 Agrupamento de Mensagens ... 110

5.6 Geração dos bits identificadores de cada Mensagem ... 112

5.7 Detalhamento das Mensagens Recebidas e Enviadas por cada Nó ... 116

5.8 Obtenção da máscara de cada nó ... 116

5.9 Desenvolvimento do Algoritmo para cada nó ... 117

5.9.1 Nó 1 – Sensor de Segurança ... 118

5.9.2 Nó 2 – Nível de Bateria ... 123

5.9.3 Nó 3 – Acionamento ... 129

5.9.4 Nó 4 – Navegação ... 133

5.9.5 Nó 5 – Módulo de Gerenciamento ... 139

5.10 Testes para Validação do Conjunto Final ... 145

6 Conclusões e Trabalhos Futuros ... 153

6.1 Propostas de Trabalhos Futuros ... 155

A Detalhamento das Mensagens ... 157

B Programas de Teste Padrão ... 164

C Programas de cada nó ... 173

(13)

Lista de Figuras

2.1 Componentes da rede CAN ... 7

2.2 Princípio de funcionamento da rede CAN ... 8

2.3 Acesso de um nó a rede ... 10

2.4 Modelo de camadas ISO/OSI ... 11

2.5 Camadas da Rede CAN ... 12

2.6 Campos da mensagem de dados ... 14

2.7 Campo de identificação da parte A ... 14

2.8 Campo de identificação da parte B ... 15

2.9 Campo de controle para parte A ... 15

2.10 Campo de controle para parte B ... 16

2.11 Campo de dados ... 17

2.12 Campo do CRC ... 17

2.13 Campo de ACK ... 18

2.14 Fim de mensagem ... 18

2.15 Mensagem remota ... 19

2.16 Mensagem de erro ... 19

2.17 Mensagem de sobrecarga ... 20

2.18 Estrutura típica de um nó da rede CAN ... 23

2.19 Componentes da rede CAN ... 25

2.20 Níveis de tensão da rede CAN ... 26

2.21 Esquema de um transceiver ... 27

2.22 Segmentos do “BIT TIME” ... 29

3.1 Arquitetura do DSP TMS320F2407 ... 37

3.2 Barramento de Memória ... 38

3.3 Mapa de memória . ... 39

(14)

3.5 Registradores Auxiliares ... 42

3.6 Registradores de Estado ... 43

3.7 Conversor A/D ... 46

3.8 Módulo SPI ... 47

3.9 Formato de mensagem SPI ... 48

3.10 Formato de mensagem SCI ... 50

3.11 Módulo SCI ... 51

3.12 Gerenciador de Eventos ... 54

3.13 Interrupção ... 57

3.14 Etapas para programação do DSP ... 58

3.15 Divisão de seções do programa ... 60

3.16 Paginação de memória ... 62

3.17 Controlador CAN ... 63

3.18 Mapa de memória do controlador CAN ... 65

4.1 Placa de desenvolvimento de projetos ... 70

4.2 Exemplo do ambiente de trabalho ... 71

4.3 Esboço da placa PL1 ... 72

4.4 Foto da placa PL1 ... 73

4.5 Algoritmo da função de inicialização do DSP ... 74

4.6 . Função para inicialização do DSP ... 74

4.7 Esquema de ligação para obtenção de um nó da rede ... 76

4.8 Esquema de ligação entre dois nós ... 77

4.9 Algoritmo para inicialização dos parâmetros ... 78

4.10 Função de inicialização da rede CAN ... 79

4.11 Algoritmo para carregar dados no mailbox 5 ... 81

4.12 Função de carga de dados no mailbox 5 ... 82

4.13 Algoritmo para transmissão de mensagem pelo mailbox 5 ... 84

4.14 Função para transmissão do mailbox 5 ... 85

4.15 Configuração do mailbox 0 ... 86

(15)

4.17 Algoritmo para recepção da mensagem ... 88

4.18 Recepção de dados pelo mailbox 0 ... 89

4.19 Montagem para teste inicial de algoritmos ... 89

4.20 Sinal do barramento CAN ... 90

4.21 Bits de comando no barramento CAN ... 92

4.22 Função para transmissão com mailbox 4 ... 94

4.23 Função para transmissão com mailbox 3 ... 94

4.24 Função para transmissão com mailbox 2 ... 94

4.25 Função para recepção com mailbox 3... 95

4.26 Função para recepção com mailbox 2... 95

4.27 Função para recepção com mailbox 1... 95

4.28 Rotina para verificação da interrupção por mensagens ... 98

5.1 Primeiro AGV ... 100

5.2 Um AGV em uma aplicação típica na indústria ... 100

5.3 Campo magnético gerado pelo cabo condutor ... 101

5.4 Exemplo de aplicação do laser em um AGV ... 102

5.5 Sensores de segurança típico ... 103

5.6 Esboço da rede implementada ... 105

5.7 Disposição dos bits identificadores ... 113

5.8 Algoritmo principal do nó 1(parte 1) ... 119

5.9 Algoritmo principal do nó 1 (parte 2) ... 120

5.10 Algoritmo para tratamento da interrupção INT1 do nó 1... 122

5.11 Algoritmo principal para o nó 2 (parte 1) ... 125

5.12 Algoritmo principal para o nó 2 (parte 2) ... 126

5.13 Algoritmo para tratamento da interrupção INT 1 do nó 2... 127

5.14 Algoritmo principal para o nó 3 (parte 1) ... 130

5.15 Algoritmo principal para o nó 3 (parte 2) ... 131

5.16 Algoritmo para tratamento da interrupção INT 1 do nó 3... 132

5.17 Algoritmo principal para o nó 4 (parte 1) ... 134

(16)

5.19 Princípio de funcionamento do sistema ótico ... 136

5.20 Algoritmo para tratamento da interrupção INT 1 do nó 4... 138

5.21 Algoritmo principal para o nó 5 (parte 1) ... 140

5.22 Algoritmo principal para o nó 5 (parte 2) ... 141

5.23 Algoritmo da interrupção 1 do nó 5 (parte 1) ... 142

5.24 Algoritmo da interrupção 1 do nó 5 (parte 2) ... 143

(17)

Lista de Tabelas

2.1 Codificação do número de bytes da mensagem ... 16

3.1 Categorias de aplicação de DSP ... 32

3.2 Estimativa de crescimento do mercado de DSPs ... 33

3.3 Participação no mercado de DSPs ... 33

3.4 Nomenclatura dos Registradores ... 44

3.5 Registradores associados a cada mailbox ... 68

3.6 Endereços da memória de cada mailbox ... 69

4.1 Testes com variação do número de bytes enviados ... 93

4.2 Teste de máscara de recepção ... 97

5.1 Grupo de mensagens ... 112

5.2 Bits identificadores para cada grupo de mensagens ... 114

5.3 Definição dos bits identificadores para cada mensagem ... 115

5.4 Máscara das mensagens recebidas ... 117

5.5 Relação das ações programadas para o nó 1 ... 123

5.6 Relação das ações programadas para o nó 2 ... 128

5.7 Relação das ações programadas para o nó 3 ... 133

5.8 Relação entre velocidade dos motores e atuação dos sensores ... 137

5.9 Relação das ações programadas para o nó 4 ... 137

5.10 Relação das ações programadas para o nó 5 ... 144

5.11 Teste dos bits identificadores ... 146

5.12 Mensagem do nó 1 para eventos internos ... 147

5.13 Eventos de resposta do nó 1 ... 147

5.14 Mensagem do nó 2 para eventos internos ... 148

5.15 Eventos de resposta do nó 2 ... 148

(18)

5.17 Eventos de resposta do nó 3 ... 149

5.18 Mensagem do nó 4 para eventos internos ... 150

5.19 Eventos de resposta do nó 4 ... 150

5.20 Mensagem do nó 5 para eventos internos ... 151

5.21 Eventos de resposta do nó 5 ... 152

(19)

CAPÍTULO 1

INTRODUÇÃO

1.1 EVOLUÇÃO DOS SISTEMAS DIGITAIS.

O desenvolvimento da eletrônica permitiu o surgimento de microcontroladores de baixo custo, ampliando as aplicações a que eram destinados. A aplicação de microcontroladores permitiu também o surgimento de sistemas mais complexos, ditos mais “inteligentes”, pela aplicação de algoritmos de controles mais sofisticados, cuja aplicação através de sistemas analógicos não era viável, seja por questões econômicas ou técnicas.

Como exemplo pode-se citar a evolução dos sistemas embarcados em automóvel. Sendo um mercado extremamente competitivo, o mercado automobilístico sempre impulsionou a tecnologia em seus diversos aspectos, seja nos meios de produção, pelo desenvolvimento da tecnologia com o intuito de garantir uma produção de automóveis de qualidade a baixo custo, seja pela aplicação de tecnologia aplicada diretamente no produto, pela incorporação de diversos sistemas eletrônicos, como por exemplo, para o controle de emissão de poluentes e de consumo, de sistemas de segurança, como contra colisões ou para manter a estabilidade do automóvel em situações adversas, ou mesmo para comodidade, para permitir um controle mais uniforme da temperatura no automóvel.

(20)

1.2 NECESSIDADE DE COMUNICAÇÃO EM SISTEMAS EMBARCADOS

Ao mesmo tempo que os novos sistemas trouxeram novas possibilidades de aplicação, trouxeram consigo um outro problema, pois os módulos distribuídos geralmente precisam algum tipo de comunicação, havendo a necessidade de troca de informações entre eles.

Isso levou ao surgimento de uma rede de comunicação serial desenvolvido pela empresa alemã Bosch no início dos anos 80. Essa rede foi chamada de rede CAN (Controller Area Network).

A rede CAN é uma rede multi-mestre, baseada em mensagens, e não em endereçamento, utilizando-se de bits identificadores para diferenciar uma mensagem de outra. Além do mais, possui um sistema de priorização de mensagens, utilizando para isso os próprios bits identificadores, bem como um mecanismo eficiente de detecção de erro [Bosch, 1991] também foi incorporado. Essa rede atende à especificação das duas camadas iniciais, física e de enlace, do modelo ISO/OSI de comunicação de redes.

Essas características levaram sua aplicação também para diversas áreas, como a industrial, médica, militar e náutica. A disseminação de seu uso levou o surgimento de diferentes protocolos de comunicação que utilizam a rede CAN como base [Etschberger, 2001], como por exemplo a rede DeviceNet e CANopen, tipicamente para aplicações industriais, ou mesmo a SAE J1939, para aplicações em veículos .

1.3 DESENVOLVIMENTO DE PROTOCOLOS BASEADOS NAS DUAS CAMADAS DA REDE CAN

(21)

Uma opção a ser considerada é o desenvolvimento de protocolos específicos para uma determinada aplicação, baseada nas duas camadas da rede CAN. Como vantagem pode-se citar ganhos com resposta do sistema, desenvolvimento do protocolo com as particularidades específicas para determinado sistema, além de não exigir tanto de cada processador, barateando o custo. Além do mais, atualmente diversos processadores já trazem controladores incorporados ao processador. Como desvantagem pode-se citar que a aplicação em si não terá um contato direto com os demais protocolos, sendo que, havendo a necessidade, pode ser desenvolvida uma interface específica para isso.

1.4 FORMULAÇÃO DO PROBLEMA

A Sociedade Educacional de Santa Catarina (SOCIESC) possui um Sistema Flexível de Manufatura (FMS) didático em seus laboratórios, utilizados na atividade de ensino e pesquisa. Este sistema é composto por:

• Um Sistema de Armazenamento: para armazenamento das peças brutas a serem usinadas, assim como, o armazenamento de peças já acabadas. Para isso, este sistema possui um software supervisório que permite a programação das peças que serão confeccionadas, conforme programação pré-estabelecida, onde toda a informação é armazenada em um banco de dados, controlando toda a movimentação de peças pela FMS. ;

• Duas máquinas operatrizes: Uma freza e um torno, ambas com controle feito por Comando Numérico Computadorizado (CNC). Cuja função é a fabricação de peças mecânicas conforme a programação no CNC. Atualmente esta programação ainda tem que ser manual, mas no futuro, com a integração completa do sistema o objetivo é que o programa possa ser transmitido remotamente, até mesmo pela Internet;

• Um robô: utilizado para manipulação de materiais, para abastecer e retirar peças das máquinas operatrizes.

(22)

áreas ligadas à automação da manufatura. Em parceria com a Universidade Federal de Santa Catarina (UFSC), em particular com o Grupo de Comando Numérico (GRUCON), do Departamento de Engenharia Mecânica teve um projeto de pesquisa aprovado pelo CNPQ, em 2002 , cujo objetivo é o estudo e desenvolvimento de uma estrutura que permita a fabricação remota de peças via Internet na FMS.

Por outro lado, um grupo de professores, ligados ao curso de tecnologia em automação industrial, no intuito de expandir os recursos existentes nesse sistema, iniciou estudos para o desenvolvimento de um veículo auto-guiado (AGV). O objetivo deste veículo é o transporte de peças, acabadas ou não, entre as unidades dentro da FMS. Nesse sentido, foram produzidos diversos trabalhos de conclusão de curso, principalmente nas áreas de acionamentos industriais, estudos sobre a escolha e carga de baterias, e projetos estruturais mecânicos. Como particular, podemos considerar que os diversos trabalhos são subsistemas de um sistema mais complexo, que é o AGV.

Como o objetivo da dissertação é contribuir para o desenvolvimento de um AGV e, ao mesmo tempo o estudo da comunicação em sistemas embarcados, optou-se por fazer um estudo na integração do sistema, visto que, não havia nenhum trabalho voltado na integração do sistema.

Em tratando-se da integração de subsistemas a primeira etapa é a necessidade da comunicação entre os mesmos. Para isso, pesquisou-se os diferentes sistemas, procurando encontrar uma solução já consolidada para avaliar a sua aplicação no AGV. Como exemplo, encontrou-se a utilização da rede CAN na indústria automobilística e em outras aplicações industriais, conforme já discutido nas seções anteriores.

(23)

aplicação. Como, em particular, tanto na SOCIESC como na UDESC, possuem plataformas de desenvolvimento doadas pela Texas Instruments, baseadas no processador TMS320F2407, resultou como escolha lógica a utilização destas plataformas para o desenvolvimento do trabalho. Assim, a escolha do processador não foi por motivação técnica mas sim, apenas pela utilização de recursos existentes nas duas instituições.

1.5 ORGANIZAÇÃO DA DISSERTAÇÃO

(24)

CAPÍTULO 2

REDE CAN

2.1. INTRODUÇÃO

Neste capítulo serão abordados os principais aspectos da rede CAN, como os tipos e formato de mensagens existentes, principais características elétricas e mecanismos de detecção de erro e definição de prioridade de mensagens.

2.2. HISTÓRICO

A aplicação crescente de sistemas eletrônicos na indústria automobilística proporcionou o surgimento de sistemas especialistas divididos em módulos, em diferentes partes do automóvel. Mas, em virtude disso, geralmente havia uma necessidade comum, a da comunicação de informações obtidas nos diferentes módulos, como por exemplo de sensores de velocidade e temperatura para outros módulos, não necessariamente próximos aos anteriores. A primeira solução adotada foi a do acréscimo de um número cada vez maior de cabos interligando os diferentes módulos. Uma segunda alternativa foi o do desenvolvimento de uma rede que possibilita-se a comunicação entre os módulos, de forma rápida e segura.

Neste contexto surgiu a rede CAN. Ela foi desenvolvida pela empresa Robert Bosch GmbH, na Alemanha, em 1986, quando se necessitava desenvolver um sistema de comunicação entre três unidades de controle eletrônico para um veículo da Mercedes Benz.

(25)

• Fujitsu

• Hitachi

• Intel

• Mitsubishi

• National semicondutros

• NEC

• Philips Semiconductors

• SGS Thomson

• Infineon

• Texas Instruments

Em 1991 a Bosch publicou uma alteração da norma [Bosch, 1991] onde foi incluída uma segunda parte, conhecida como parte B. Em 1993, a rede CAN tornou-se padrão ISO 11898 , com a primeira modificação ocorrendo em 1995.

2.3. ESTRUTURA DA REDE CAN

A rede CAN é um barramento serial multi-mestre que usa transmissores para enviar para todos os nós da CAN, podendo alcançar a velocidade de transmissão de dados de até 1Mbit/s. Além do mais, possui um sistema de detecção de erros muito sofisticado e robusto [Bosch, 1991]. Os componentes básicos de uma rede CAN encontram-se na figura 2.1.

Figura 2.1 Componentes da rede CAN

Módulo

Eletrônico

Módulo

Eletrônico

(26)

Sensor de Velocidade

( RPM )

Sensor de Temperatura

( o C )

Controlador do Motor

Nó A Mensagem:

RPM

Nó B Mensagem:

o C

Nó C Mensagem:

o C, RPM

Estes componentes básicos são:

Módulo eletrônico: Consiste de um sub-sistema responsável pela aquisição do sinal local desejado, como leitura de sensores, e enviar o dado através da rede. Este módulo pode ou não ser microprocessado, contendo ainda um controlador CAN, que é um chip que implementa efetivamente a norma para condicionamento do dado e um transceiver, que é um chip transmissor/receptor para adequar o sinal digital para os níveis elétricos adequados à rede. Este conjunto de componentes, ou módulo, é conhecido como um NÓ da rede CAN; Cabo: este cabo é o meio físico para o transporte de dados, sendo geralmente utilizado um cabo entrelaçado, apesar da norma não especificar o meio físico, pois pode ser utilizado qualquer outro meio, como por exemplo, um cabo de fibra ótica;

Resistores terminais: estes são resistores colocados no final na rede para satisfazer a adequação da rede quanto a sua especificação elétrica.

2.3.1. Princípio de funcionamento da rede CAN

Para tornar mais fácil o entendimento do funcionamento da rede CAN será abordado um exemplo simples de sua utilização no automóvel, que se encontra na figura 2.2.

Erro!

(27)

No exemplo de utilização da rede CAN em um automóvel serão considerados três sub-sistemas independentes: o medidor de velocidade do automóvel (Nó A), da temperatura do motor (Nó B) e o controlador do motor (Nó C). O medidor de velocidade informa a rede constantemente a velocidade atual do motor, sendo que esta mensagem ocupa o barramento e está disponível para todos os sub-sistemas conectados ao barramento. Através da filtragem, a mensagem somente é aceita pelo sub-sistema que utiliza a informação, neste caso o controlador do motor. Ainda acoplado a esta rede está o medidor de temperatura do motor, que envia para o barramento a informação da temperatura, e como essa informação somente interessa ao controlador do motor, a mesma somente é aceita por este dispositivo.

Quando são transmitidos dados na CAN, nenhum nó é endereçado diretamente, sendo o conteúdo da mensagem definido por um identificador único em toda a rede que estabelece a prioridade da mensagem.

Se um nó decide enviar uma mensagem, tudo o que tem que fazer é fazer a coleta dos dados e enviá-los para o controlador CAN, do próprio nó, onde então a mensagem é construída e enviada ao barramento, logo que lhe for autorizado o acesso ao mesmo.

Quando este nó tiver o controle da rede, todos os outros nós tornam-se receptores da mensagem. Cada nó da rede, depois de ter recebido a mensagem, faz um teste de validação para verificar se o conteúdo da mensagem lhe interessa, nesse caso processando-os, caso contrário serão descartados. Existe a possibilidade de que cada nó aplique filtros de mensagens, onde um ou mais bits dos identificadores de mensagens são mascarados, ou seja, são desconsiderados no teste de validação, possibilitando que determinado nó receba um grupo de mensagens.

(28)

esteja livre novamente. Mesmo não obtendo o acesso à rede, a mensagem não é destruída, permanecendo armazenada até a possibilidade de envio. Na figura 2.3 encontra-se um exemplo do instante em que três nós tentam o acesso à rede. A medida que um dos nós envia um bit recessivo ele deixa de enviar para se tornar um ouvinte.

Figura 2.3 . Acesso de um nó a rede

Existem dois formatos de mensagem da Rede CAN, um é conhecido como parte A, que é a versão 2.0 A , e a outra, conhecida como parte B, que é a versão 2.0 B. A principal diferença é que a versão 2.0 A utiliza 11 bits identificadores de mensagem, enquanto a versão 2.0 B utiliza 29 bits identificadores, permitindo um número muito maior de tipos de mensagens que podem ser transmitidas. Cabe ao projetista analisar a necessidade de utilização de uma ou outra.

(29)

Aplicação Apresentação

Sessão Transporte

Rede Enlace

Física

2001], para aqueles que desejam fornecer equipamentos para serem incorporados aos seus próprios veículos.

Por tratar apenas das duas camadas inferiores a rede CAN possibilitou o surgimento de outras plataformas que foram desenvolvidas com diferentes finalidades, utilizando geralmente a camada de aplicação. Dentre as mais conhecidas pode-se ressaltar:

- CAL ( CAN Application Layer) - CANOpen

- DeviceNet - SAE J1939

Uma abordagem mais detalhada sobre as características desses protocolos é apresentada em [Etschberger, 2001].

2.4. O PADRÃO DE COMUNICAÇÃO ISO/OSI

A comunicação de sistemas em rede utiliza uma arquitetura dividida em camadas. Essa arquitetura levou a criação pela ISO de um modelo de referência conhecido como Modelo de Referência ISO/OSI para Comunicação de Dados, onde a sigla OSI vem de Open Systems Interconnection. Na figura 2.4 tem-se a representação do modelo.

(30)

Nesse modelo cada camada fornece serviço à camada superior. A vantagem disso é que a camada superior não precisa se preocupar em conhecer os detalhes da camada anterior.

O protocolo de comunicação CAN trabalha nas duas camadas inferiores, a de Enlace e a Física. Na especificação inicial, a mídia de transmissão foi deixada de fora para permitir uma maior flexibilidade para os usuários escolherem entre as diferentes tecnologias disponíveis, seja par trançado, coaxial, fibra ótica ou rádio freqüência.

Cada camada possui uma série de serviços que são responsáveis pela adequação da mensagem para os níveis posteriores. Na figura 2.5, tem-se um maior detalhamento das funções de cada camada.

Figura 2.5 Camadas da Rede CAN

A camada de Enlace é o núcleo do protocolo CAN, onde ocorre o encapsulamento /desencapsulamento da mensagem, a detecção e sinalização de erros de mensagens e encontram-se os filtros de aceitação de mensagens, entre outras funções. Essa camada

Controle Lógico do Enlace ( LLC ) - Filtragem de mensagens - Notificação de sobrecarga

- Gerenciamento de restabelecimento

- Codificação/Decodificação de Bits - Sincronização/Temporização de Bits - Características do Driver de

Recepção/Transmissão

Camada Física

Camada de Enlace

Controle de Acesso ao Meio ( MAC )

- Encapsulamento/Desencapsulamento de dados

- Codificação da mensagem - Detecção e sinalização de erros - Reconhecimento de mensagens - Serialização/Deserialização

- Gerenciamento de Acesso ao Meio

Camada de Enlace

Camada Física

Contenção de Erro

Gerenciamento de Falha do Barramento

(31)

disponibiliza à camada superior a mensagem recebida e os erros encontrados. Por sua vez recebe da camada superior a mensagem a ser transmitida, o identificador da mensagem e o número de bytes da mensagem.

A camada Física é responsável pela recepção/transmissão da mensagem através do meio físico utilizado, assim como a sincronização de bit, entre outras funções.

O Supervisor faz o tratamento dos erros gerados nas duas camadas e no barramento.

2.5. CAMADA DE ENLACE

2.5.1 Tipos de Mensagens

Para comunicação entre os diferentes nós da rede tem-se quatro tipos de mensagens:

- Mensagem de Dados: são as mensagens que enviam as informações sobre o processo monitorado;

- Mensagem Remota: é uma solicitação de informação que um nó faz à rede. O nó que tiver a informação irá devolver a mensagem com os dados solicitados;

- Mensagem de Erro: é um tipo de mensagem que indica que algum tipo de erro que ocorreu;

- Mensagem de Sobrecarga: esta mensagem indica que determinado nó está sobrecarregado de informações e não conseguiu processá-las ainda, solicitando um atraso maior entre as transmissões.

2.5.1.1 Mensagem de Dados

Como já mencionado, a mensagem de dados possui dois tipos:

• Padrão, conhecido como 2.0 A;

(32)

Início da

mensagem Campo de Identificação

Campo de Controle

Campo de Dados

Campo do CRC

Campo de ACK

Fim da mensagem

11 bits identificadores RTR

11 bits identificadores SRR IDE 18 bits identificadores RTR A mensagem de dados é composta por sete campos principais, conforme encontra-se na figura 2.6 e descrita a encontra-seguir:

Figura 2.6 Campos da mensagem de dados

a) Início da mensagem: utilizado para indicar o início da mensagem, composta por um único bit dominante ;

b) Campo de Identificação: este campo é composto pelos bits de identificação da mensagem. A largura desse campo pode ser igual a 11 bits ( 2.0 A) ou 29 bits (2.0 B); Na figura 2.7 encontram-se os bits que compõe o campo de identificação para a parte A.

Figura 2.7 Campo de identificação da parte A

Além dos 11 bits identificadores tem-se ainda o bit RTR:

- RTR (Remote Transmission Request): este bit serve para identificar se a mensagem é uma mensagem de dados ou uma mensagem remota, que é uma solicitação para receber uma determinada informação enviada à rede por um nó. Se o bit estiver em 0 a mensagem é de dados, se estiver em 1 a mensagem é uma mensagem remota.

Para a mensagem de dados da parte B o campo de identificação encontra-se na figura 2.8.

(33)

IDE r0 DLC3 DLC2 DLC1 DLC0

Neste padrão tem-se ao todo 29 bits identificadores, separados em dois blocos, o primeiro, idêntico ao anterior, de 11 bits, e o segundo bloco, de 18 bits. Além dos bits identificadores tem-se os bits:

- SRR (Substitute Remot Request): Este bit é recessivo (=1), substituindo o bit RTR do padrão 2.0 A;

- IDE (Identifier Extension): Este bit é recessivo na parte B e serve para identificar que a mensagem é de formato estendido.

- RTR (Remote Transmission Request): tem a mesma função que na parte A.

c) Campo de Controle: é composto por seis bits, utilizado para informar o número de bytes da mensagem.

Para a parte A tem-se a representação do bytes de controle na figura 2.9

Figura 2.9 Campo de controle para parte A

Os 6 bits são divididos em:

- IDE (Identifier Extension): apesar da localização em campos diferentes o objetivo é o mesmo, de informar a existência de formato estendido ou não. Unicamente que neste caso ele é dominante.

(34)

r1 r0 DLC3 DLC2 DLC1 DLC0

- DLC3...0 ( Data Lenght Code ): é um conjunto de bits utilizado para informar o número de bytes da mensagem, válido tanto para o formato padrão como o estendido, conforme a tabela 2.1;

Tabela 2.1. Codificação do número de bytes da mensagem Nr Bytes DLC3 DLC2 DLC1 DLC0

0 0 0 0 0

1 0 0 0 1

2 0 0 1 0

3 0 0 1 1

4 0 1 0 0

5 0 1 0 1

6 0 1 1 0

7 0 1 1 1

8 1 0 0 0

Para a parte B tem-se a alteração somente do primeiro bit, conforme a figura 2.10

Figura 2.10 Campo de controle para parte B Os mesmos 6 bits são divididos em:

- r0 e r1 : São bits de reserva, sendo que estes bit devem ser dominantes(=0). - DLC3...0 (Data Lenght Code): é o conjunto de bits utilizado para informar o

número de bytes da mensagem, e a tabela 1 também é válida para esse formato.

(35)

Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7

Delimitador CRC Seqüência CRC

através de alteração de parâmetros de determinados controladores é possível alterar essa seqüência;

Figura 2.11 Campo de dados

e) Campo do CRC: utilizado para verificar a integridade da mensagem. É dividido em dois campos, a seqüência CRC e o delimitador CRC, conforme demonstra a figura 2.12;

Figura 2.12 Campo do CRC

A seqüência CRC é formada por 15 bits e armazena o valor segundo o código de redundância cíclica (CRC – Cyclic Redundancy Ciclic ) onde torna possível verificar a integridade da mensagem, sendo que esse valor é comparado por cada receptor e havendo qualquer diferença é gerada uma mensagem de erro.

O delimitador CRC é somente um bit recessivo utilizado para indicar o fim deste campo.

f) Campo ACK (Acknowledge) : Este campo é utilizado pelas unidades receptoras para indicar que uma mensagem foi recebida. Ele é composto por dois bits:

(36)

ACK

Slot Delimiter ACK

- ACK Delimiter (Delimitador ACK): Este bit é recessivo é utilizado para indicar o fim do campo de ACK.

Na figura 2.13 tem-se a representação do campo de ACK.

Figura 2.13 Campo de ACK

g) Fim da mensagem: utilizado para indicar o final da mensagem, composta por sete bits recessivos, conforme demonstra a figura 2.14.

Figura 2.14 Fim de mensagem

2.5.1.2 Mensagem Remota

Utilizada para solicitar alguma informação, ou seja, quando algum módulo necessita determinada informação, ele faz uma solicitação ao barramento e assim o sistema que tiver a informação envia para o barramento.

O formato da mensagem é idêntico ao de dados, tanto para o formato padrão como o estendido, havendo apenas dois pontos que não são comuns:

- Não existe o campo de dados;

(37)

Início da

mensagem Campo de Identificação Campo de Controle Campo do CRC Campo de ACK

Fim da mensagem Na figura 2.15 tem-se a representação da mensagem remota.

Figura 2.15 Mensagem remota

2.5.1.3 Mensagem Erros

Sempre que for detectada alguma falha na integridade da mensagem, é gerada uma mensagem de erro. Essa mensagem consiste de dois campos, um denominado de Superposição do Flag de Erro e o outro campo denominado de Delimitador de Erro (Error Delimiter) , conforme pode ser observado na figura 2.16.

Figura 2.16 Mensagem de erro

Essa mensagem é formada pelos campos:

- Flag de Erro (Error Flag): que é composto por seis bits consecutivos dominantes, neste caso chamado como Flag de Erro Ativo, ou de seis bits recessivos , neste caso chamado de Flag de Erro passivo. Depois dos primeiros seis bits enviados pelo nó que identificou o erro, os demais nós identificam um erro de “ bit stuff” , pois seis bits consecutivos de mesmo nível lógico acabam por provocar este erro nos demais nós. No segundo intervalo os outros nós escrevem a mensagem de erro, podendo assim esta mensagem completar os doze bits.

(38)

- Delimitador de Erro (Error Delimiter): utilizado para finalizar a mensagem de erro, sendo composto por oito bits recessivos .

2.5.1.4 Mensagem de Sobrecarga

A mensagem de sobrecarga gera um atraso para possibilitar o processamento da informação pelos nós. O formato da mensagem é idêntico ao da mensagem de erro, sendo formado também por dois campos, como pode ser observado na figura 2.17

Figura 2.17 Mensagem de sobrecarga

Os dois campos são:

- Superposição do Flag de Sobrecarga: Nesta região tem-se os seis bits dominantes do flag de sobrecarga (Overload Flags), seguidos de bits dominantes dos outros nós, chegando até a seis bits dominantes.

- Delimitador de Sobrecarga (Overload Delimiter): são oito bits recessivos que marcam o final da mensagem.

2.5.2. Tratamento de erros na rede CAN

Qualquer controlador que detectar algum erro na mensagem começa a transmitir uma mensagem de erro, destruindo o tráfego da rede. Os outros nós detectam o erro e ignoram a mensagem que vinha sendo transmitida.

A rede CAN possui cinco mecanismos de detecção de erros : Superposição do flag de

Sobrecarga Delimitador de Sobrecarga Flag de

(39)

- Teste de Redundância Cíclica (CRC) : Utilizada para testar a mensagem, verificando sua integridade;

- Teste da Mensagem: Através de alguns bits que tem que assumir determinados estados, recessivos ou dominantes, assim podendo-se verificar se a estrutura da mensagem esta correta. Este tipo de erro é denominado de erro de formato.

- Erro de Confirmação: O protocolo CAN não utiliza mensagens de confirmação. Em vez disso, assinala os erros que ocorrem. Assim, as mensagens recebidas corretamente são confirmadas por todos os nós que as receberam através de uma confirmação positiva. Nenhuma estação modifica o valor recessivo do bit de ACK. No caso de o transmissor não receber nenhuma confirmação, é gerado um erro que pode ser devido a: os nós receptores terem identificado um erro, ao campo ACK ter sido corrompido, ou ao fato de não existirem quaisquer outras estações na rede.

- Erros de Monitoramento: Cada transmissor monitora a própria mensagem comparando com aquilo que transmite com o conteúdo atual da rede.

- Erro de bit: A codificação individual dos bits é testada ao nível do bit. A representação escolhida pelo CAN garante a máxima eficiência na codificação dos bits, sendo as transições de sincronização geradas através da introdução de um bit suplementar, a seguir a 5 bits consecutivos (todos do mesmo valor) com o valor complementar ao do conjunto dos bits.

(40)

Depois da transmissão de uma mensagem errada ter sido abortada, o emissor tenta re-transmitir automaticamente a mensagem. No entanto, pode haver competição pela alocação da rede. Como regra geral, a emissão começa 23 períodos de bit depois da detecção.

Os mecanismos descritos, apesar de eficientes e corretos podem, no entanto, no caso de uma estação estar com problemas, levar à degradação do sistema, abortando mensagens corretas e bloqueando o funcionamento da rede. Assim, foram implementados novos mecanismos que permitem distinguir entre erros esporádicos e erros permanentes, e a localização da estação avariada. Isso é conseguido com base em avaliações estatísticas da situação das várias estações.

Tratando-se de uma questão importante, uma avaliação mais criteriosa sobre os mecanismos de detecção de erro, sua performance e respostas no tempo são abordados em alguns artigos, onde pode-se destacar [Charzinski , 1997] e [Punnekkat , 2000].

2.6. CAMADA FÍSICA

A camada física é responsável pela transferência de bits entre os diferentes nós da rede. Ela define os níveis elétricos, o esquema de sincronização a impedância do cabo e a codificação.

O barramento é composto por dois cabos, habitualmente utilizando par entrelaçado, mas também podendo ser utilizado o par liso (fio de telefone), apesar de gerar mais ruído e ser mais susceptível a fontes externas de ruído.

2.6.1 Configuração de um nó de um barramento CAN

Cada nó no barramento CAN é interpretado como uma estação, podendo apresentar diferentes possibilidades.

(41)

Processador

Controlador CAN

Transceiver

Figura 2.18 Estrutura típica de um nó da rede CAN

Pode-se identificar os seguintes componentes:

- Processador : é o processador que utiliza a mensagem que circula no barramento. É ele que utiliza ou gera informações passando as mesmas para o controlador. Existe a possibilidade de se eliminar os processadores utilizando-se controladores CAN conhecidos como SLIO (Serial Linked I/O), onde a configuração e o controle é feita por um nó mestre que obtém o acesso aos sinais de entrada/saída do nó que possui um SLIO. Mas com o aumento de processadores que possuem controladores CAN incorporados, esta tem-se tornado uma solução mais adequada para muitos casos;

(42)

- Transceiver da CAN: Sua principal função é a adaptação do sinal digital para os padrões da rede;

- Meio físico: Composto, neste caso, por dois fios trançados com resistores terminais no final de cada ponta do cabo. O meio físico não é especificado pela norma pois depende da tecnologia existente.

2.6.2 Características do meio físico

De acordo com a ISO 11898-2 estabelece algumas características da rede física, onde os aspectos principais são:

- Taxa de transmissão acima de 1 Mbit/s - Impedância de linha de 120 ohms

- Comprimento máximo de 40 metros com taxa de transmissão de 1 Mbit/s - Atraso de propagação de sinal de 5 ns/m

Os dois cabos são identificados pelos nomes de CAN_H e CAN_L, conforme pode-se observar na figura 2.19.

Figura 2.19 Componentes da rede CAN

120 Ω 120

Nó 1 Nó 2 Nó 3

CAN_H

(43)

Todos os nós devem ser ligados ao barramento obedecendo especificação de saída de seus transceivers nos terminais CAN_L e CAN_H. Cada nó é separado de outro por uma distância d, que pode variar de poucos milímetros até dezenas de metros. Essa distância influi diretamente como um dos aspectos limitadores da seleção de velocidade do barramento, pois existe um tempo de propagação do sinal no barramento.

A velocidade máxima de uma rede CAN é de 1Mbit/segundo, com um cabo com comprimento máximo de 40 metros, porque o esquema de arbitragem necessita que a onda se propague até ao nó mais remoto e volte antes de ser amostrada.

Outros valores máximos para o comprimento dos cabos são:

- 100 metros a 500 kbits/segundo - 200 metros a 250 kbits/segundo - 500 metros a 125 kbits/segundo - 6 quilômetros a 10 kbits/segundo

A faixa de variação da tensão nos nós é de 1,5 até 3,5 volts. Para que ocorra o nível lógico 1 (recessivo) os dois nós estarão com a tensão igual a aproximadamente 2,5 volts, e no caso do nível lógico 0 (dominante) o terminal CAN_H estará com 3,5 volts e o terminal CAN_L estará com 1,5 volts, conforme tem-se na figura 2.20

Figura 2.20 Níveis de tensão da rede CAN 2,5

3,5 1,5

4 - 3 - 2 - 1 -

Recessivo

(lógica 1) Recessivo (lógica 1) Dominante

(lógica 0)

CAN_H

(44)

2.6.3 Transceiver CAN

O transceiver CAN tem a função de acoplar o controlador CAN ao barramento. É composto por um transmissor e receptor. Serve para proteger o controlador de eventuais curtos ou sobre-tensões da rede, além de adaptar a tensão do controlador, ao padrão da rede. Na figura 2.21, tem-se o esquema básico de um transceiver CAN.

Além disso esses transceivers devem apresentar algumas características próprias:

- Taxa de transmissão acima de 1 Mbit/s; - Proteção contra sobrecarga;

- Proteção contra curto-circuito para terra como para a fonte; - Total compatibilidade com a norma ISO 11898-2

- Baixo consumo de corrente em modo de repouso.

(45)

27

Transceiver

120 Ω 120

CAN_H

CAN_L

CAN

Figura 2.21 Esquema de um

transceiver

2.6.4 Controlador CAN

A função dos

controladores de

CAN é da

implementação das características da rede, procurando atender, tanto a 1ª como a 2ª camada do padrão ISO/OSI. Assim, como resultado, resta apenas o corpo da mensagem a ser transferida que pode ser obtida do controlador, ou então, fornecer ao controlador a mensagem que será enviada, pois o mesmo incorpora todas as características necessárias. Para isso existem diferentes controladores oferecidos no mercado, que podem ser adaptados a diferentes configurações. As principais configurações utilizadas são:

- Controladores isolados: onde os controladores são componentes isolados fisicamente de um processador;

- Processadores com controladores integrados: Neste caso, os próprios processadores já trazem incorporados o controlador CAN;

- Circuitos integrados para aplicações específicas: estes são circuitos integrados para aplicações específicas que já vem com as funções de controlador CAN incorporadas.

2.6.4.2 Funções de um controlador CAN

(46)

- Encapsulamento da mensagem que será transmitida;

- Disponibilizar a mensagem que foi recebida, se a mesma for do interesse do referido nó;

- Fazer o cálculo de CRC;

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

- Inserir e apagar os “bit stuff”;

- Gerar e detectar o bit de reconhecimento da mensagem;

- Sincronização do “bit time”.

Além disso, uma outra característica relevante no controlador CAN é a filtragem das mensagens, visto que todas as mensagens do barramento estão acessíveis a todos os nós, mas não necessariamente interessa aos mesmos. Assim, um processo de filtragem das mensagens é muito importante.

2.6.5. Representação do bit

As mensagens da rede CAN são enviadas por uma seqüência de bits. Assim, a menor unidade da rede é o bit. E para representá-lo utiliza-se um método conhecido como NRZ (Non-Return-to-Zero ), onde o nível lógico do bit permanece o mesmo, seja nível lógico 0 ou 1, durante todo o tempo de um bit. Ou seja, durante o intervalo de tempo destinado para um bit não tem-se a variação do nível lógico.

(47)

O protocolo CAN utiliza a comunicação síncrona em vez da assíncrona, o que, por um lado permite a utilização, na transmissão de dados, de maneira mais eficiente, mas em contrapartida leva a necessidade de utilização de métodos de sincronização do bit mais sofisticados.

Como já visto, a característica da mensagem do protocolo CAN é a de possuir apenas um start bit no início do mensagem, o que, geralmente não é suficiente para manter o sincronismo do ponto de amostragem do receptor como do emissor durante toda a mensagem. Para amenizar esse problema, utiliza-se um artifício de resincronização durante as alterações dos pulsos de borda do frame de mensagem.

Na figura 2.22 tem-se a representação de um “BIT TIME” , com os diferentes segmentos que o compõe:

Figura 2.22 Segmentos do “BIT TIME”

Os componentes de um bit são:

- Segmento de sincronização: Durante este segmento espera-se que a sincronização da rede ocorra através da borda de descida ou subida do bit.

- Segmento de atraso de propagação: Este segmento é responsável por fazer a compensação do atraso que a rede proporciona no envio e recepção do sinal.

- Segmento de fase 1 e 2: Estes segmento estão localizados antes e depois, respectivamente, do ponto de amostragem do sinal sendo responsáveis pelo deslocamento do ponto de amostragem durante o processo de resincronização

- Amostragem do sinal: Este é o ponto em que o sinal é amostrado. Segmento de

sincronização Segmento de propagação Segmento de fase1 Segmento de fase2

(48)

O dimensionamento dos segmentos é determinado pelas necessidades do sistema de comunicação. Fatores como o comprimento da rede, taxa de transmissão e tempo de atraso devem ser levados em conta no cálculo dos segmentos da rede. Uma abordagem mais detalhada sobre a configuração da temporização do bit da rede CAN é apresentada por [Hartwich, 1999].

(49)

CAPÍTULO 3

PROCESSADOR DIGITAL DE SINAL

3.1. INTRODUÇÃO

Neste capítulo será apresentado o processador digital de sinais (DSP) que é o processador utilizado no desenvolvimento experimental. Serão discutidos aspectos relativos a arquitetura do processador, periféricos presentes e características funcionais. Será dada ênfase a discussão a um periférico em particular, que é o controlador CAN, pois o mesmo implementa as camadas 1 e 2 do protocolo de comunicação CAN.

3.2. EVOLUÇÃO E CARACTERÍSTICAS DOS DSPS

Aplicações envolvendo tratamento de sinal, como filtros digitais, envolvem operações de multiplicação e soma de valores, exigindo uma maior performance de processamento para implementar muitos destes algoritmos. Esta necessidade levou aos fabricantes de chip ao desenvolvimento de um novo processador, com uma arquitetura mais adequada para as necessidades das aplicações envolvidas, conhecido como DSP (Digital Signal Processor – Processador Digital de Sinal).

(50)

realizar uma multiplicação em apenas um ciclo de clock, o que melhorou consideravelmente a performance dos algoritmos para processamento digital de sinais.

Nos microprocessadores, o programa e os dados compartilham o mesmo barramento do processador, utilizando-se de uma configuração conhecida como Von Neumann. Para permitir a realização de instruções de multiplicação e soma em um único ciclo, uma arquitetura de memória diferente foi utilizada. Conhecida como Harvard, nesta arquitetura o programa e os dados ocupam barramentos distintos, com um barramento para acessar os dados e outro para acessar o programa, levando uma melhoria na performance do processador.

3. 3. APLICAÇÕES PARA DSPS

Os processadores DSPs são utilizados em uma gama muito grande de aplicações, de sistemas de radar até aparelhos eletrônicos domésticos, apesar de que, considerando-se o volume financeiro por aplicação, a maior aplicação atualmente são os telefones celulares, controladores de disco rígido e áudio players. Mas para poder identificar que tipo de DSP é o mais adequado para determinada aplicação é necessário levar em consideração vários fatores, como performance, custo, integração, facilidade de desenvolvimento, consumo de potência.

Na tabela 3.1 tem-se algumas das aplicações para um DSP divididos em categorias. Tabela 3.1. Categorias de aplicação de DSP

Categoria

Exemplos de aplicações

Sistemas embarcados de baixo custo Modems, detetor de radar, pagers, telefones celulares, telefones sem fio, acionamentos de disco rígido, controle em tempo real em automóveis, controle de motores

Aplicações de alta performance Radar, sonar, processamento de imagem Aplicações multimídia para

computadores

(51)

Uma discussão mais detalhada sobre as aplicações e aspectos gerais sobre o DSP pode ser encontrada em [Lapsley , 1997] a [Marven , 1996].

3. 4. EXPECTATIVAS ECONÔMICAS E FABRICANTES DE DSPS

Conforme o último relatório da Forward Concepts [Forward Concepts , 2003] no mundo todo a venda dos chips de DSP alcançou no ano de 2002 a cifra de US$ 4,86 bilhões. O que representa um crescimento de 14,1% sobre os US$ 4,26 bilhões em 2001. Para o ano de 2003, apesar do cenário mundial conturbado pode-se observar que existe uma estimativa de crescimento em torno 15%. Na tabela 3.2 tem-se a projeção para os próximos anos do comportamento de mercado para o DSP.

Tabela 3.2 Estimativa de crescimento do mercado de DSPs

Ano 02 03 04 05 06 07 02 – 07

Valor* US$

( milhões )

4.855 5.826 7.749 9.918 12.398 14.877 23,8 %

* Forward Concepts – Electronic Market research

Os maiores fabricantes

No mercado de DSP, apesar de haver atualmente inúmeros fabricantes, o fornecimento de chip está concentrado em um número reduzido de fabricantes, com o domínio da Texas Instruments. Também baseado no relatório da Forward Concepts [Forward Concepts ,2003] tem-se a seguir a tabela 3.3 com os maiores fabricantes de DSP e do percentual de sua participação no mercado.

Tabela 3.3. Participação no mercado de DSPs

Empresa 2001 2002

Crescimento

Anual

Texas Instruments 40.0 % 43.2 % 23.2 %

Motorola 12.0 % 14.1 % 33.6 %

(52)

Analog Devices 8.2 % 8.9 % 23.7 %

Outros 23.7 % 19.9 % - 4.1 %

Total ( US$ milhões ) 4.256 4.855 + 14.1 %

3. 5. CRITÉRIOS PARA A SELEÇÃO DE UM DSP

A escolha de um processador é sempre uma tarefa difícil para o engenheiro projetista, mas alguns itens que devem ser observados na sua escolha. Para auxiliar na comparação de diferentes processadores existem trabalhos que apresentam comparativos entre processadores de diferentes famílias. Neste comparativo geralmente utiliza-se algoritmos próprios, como filtros FIR e FFT, além de outros. Um detalhamento da metodologia utilizada nestes testes pode-se encontrar no trabalho de Lennartsson e Nordlander [Lennartsson - Nordlander , 2002], onde vários algoritmos são apresentados e discutidos. Além disso existem institutos que apresentam relatórios, como é o caso da Berkeley Design Technology, Inc , que disponibiliza vários artigos sobre o assunto que discutem a questão da seleção de processadores e apresenta os resultados dos testes realizados por eles [Eyre, 2000 ], [BDTImark200TM, 2002] e [Berkeley, 2000].

Alguns dos critérios que devem ser levados em conta são: 1. Capacidade do Processador

Devendo-se considerar o conjunto de instruções do processador, arquitetura de memória, velocidade de execução das instruções, ponto fixo X ponto flutuante, capacidade de endereçamento, consumo de potência, tamanho, presença de periféricos no próprio chip;

2. Ferramentas de desenvolvimento e suporte técnico

Compiladores, plataformas para desenvolvimento, linguagens de alto nível e bibliotecas adicionais;

3. Custo

(53)

5. Maturidade do processador

Especificamente para o desenvolvimento desta dissertação, a escolha do processador se deve somente pelo mesmo já possuir incorporado a sua arquitetura um controlador CAN, assim não foi feito nenhuma avaliação técnica que resultasse na escolha do mesmo em detrimento de qualquer outro. Como o DSP utilizado foi o TMS320F2407, da Texas Instruments Inc , a discussão até o final deste capítulo será baseada nas características do mesmo.

3.6

. FAMÍLIAS DE DSP DA TEXAS INSTRUMENTS

A Texas Instruments trabalha com três grandes famílias de DSPs :

• C6000 - para alta performance

Tem como aplicação principal a infra-estrutura para comunicação de terceira geração, DSL e a cabo, além de aplicações que necessitem intensivo poder de processamento como digitalização de imagem, aplicações profissionais na automação industrial e de áudio.

• C5000 - baixo consumo de potência

Otimizada para aplicações portáteis como CD players, telefones celulares de terceira geração, câmeras digitais assim como sistemas portáteis para manipulação de dados e voz.

• C2000 – controle digital

Sua principal aplicação é o controle digital, sendo que para isso foram incorporados ao seu hardware periféricos como conversor A/D, temporizadores e comparadores para geração de PWM, rede CAN e outros.

(54)

3.7

. O DSP TMS320F2407

O DSP TMS320F2407 é uma evolução da família otimizada para controle de motores ‘C24X, com melhorias em performance e com algumas alterações em determinados periféricos.

Os DSPs TMS320F2407 incluem as mesmas vantagens que os microcontroladores, mas também oferecem alta velocidade, alta resolução, e capacidade de implementar algoritmos matemáticos complicados com baixo custo. A alta velocidade é obtida principalmente devido ao duplo barramento da arquitetura Harvard assim como a realização das instruções de multiplicação e adição em um ciclo de máquina. Um barramento é usado para dados e o outro é usado para instruções do programa. Isto economiza tempo porque pode-se utilizá-los simultaneamente.

As principais características do DSP TMS320F2407 são:

• Ponto Fixo de 16 bits;

• Multiplicador de 16 X 16 bits;

• Acumulador de 32 bits

• Conjunto de instruções otimizadas, incluindo multiplicação/soma em um único ciclo;

• Oito registradores auxiliares de 16 bits com unidade aritmética dedicada;

• Conjunto de periféricos incorporados ao próprio chip;

(55)

3.7.1.

Arquitetura do DSP TMS320F2407

A seguir será apresentado uma visão da arquitetura do DSP, sendo maiores detalhes podem ser encontrados no manual do fabricante [Texas Instruments , 1999]. Na figura 3.1 tem-se uma visão da arquitetura do DSP TMS320F2407.

A arquitetura interna do DSP é baseada no modelo de Harvard, com barramentos separados para o programa e dados, permitindo que haja acesso simultâneo dos dados e às instruções de programa, além disso, tem-se um terceiro barramento para acesso da CPU aos periféricos.

ROM ou flash

EEPROM DARAM B0 DARAM B1/B2

Registrado r Instrução ARAU Registradores Controle/Status Registradores Auxiliares Registradores Mapeamento Memória

Barramento de Dados

Barramento de Programa

Deslocador de Entrada ALU Acumulado r Multiplicador TREG PREG Deslocador de Saída JTAG Interface para memória externa Gerador de Estados de Espera p/ Memória Controlado r do Programa Controle da Memória Interrupções Inicialização C2xx CPU

CLOCK Módulo de Interface

do Sistema Barramento dos Periféricos

Deslocador de Produto(Shifter)

Conversor A/D

SPI SCI CAN Watchdog

Temporizadores de uso geral

Unidades de Comparação

QEP Gerenciador de

(56)

Módulo do Sistema CPU

DARAM

B0 Registradores de Memória

Barramento Externo de Endereços

Barramento Externo de

Dados PRDB

DRDB

DWEB PAB

DRAB

DWAB ROM ou Flash EEPROM

DARAM B1/B2

Figura 3.1 Arquitetura do DSP TMS320F2407

A figura 3.1 pode ser dividida em três blocos básicos: Memória, Núcleo da CPU e Periféricos.

3.7.1.1

Memória

Na figura 3.2 tem-se o bloco de memória em maiores detalhes.

Figura 3.2 Barramento de Memória

(57)

memórias de duplo acesso, onde é possível executar duas operações, por exemplo escrita e leitura, em um ciclo do clock da CPU.

Além disso, cada um dos barramentos, o de endereço e o de dados, é dividido em três barramentos, perfazendo um total de seis barramentos, isto ocasionará a melhora da performance do DSP pois permitirá a troca de informação dos bancos de memória para os diferentes módulos no mesmo instante.

Os seis barramentos são:

PAB - o barramento de endereçamento do programa provê o endereço tanto para escrita como para a leitura na memória do programa.

DWAB – o barramento de endereçamento provê o endereço para a escrita da informação na memória de dados .

PRDB – o barramento de leitura do programa transporta o código da instrução e operadores imediatos, assim como dados para tabelas, da memória do programa para a CPU.

DRDB – o barramento de leitura dos dados, que transporta dados da memória para a unidade de lógica e aritmética central (CALU) e para a unidade registradora auxiliar aritmética (ARAU).

(58)

Vetores de Interrupção Código de segurança Flash Flash Flash SARAM (PON=1) Interno (PON=0)Externo Externa Reservada(CNF=1) Externa(CNF=0) On-Chip DARAM Registradores Mapeados na Memória DARAM B2 DARAM B0 DARAM B1 SARAM 2k (DON=1) Interno (DON=0)Reservado Ilegal Externa Externa Registrador de Controle da Flash

Registrador de Controle da

Geração de

a) b) c)

Figura 3.3 Mapa de memória

Cada bloco de memória possui 64 Kwords endereçáveis que estão dividindo da seguinte forma:

Memória do programa - o espaço inicial da memória (0000h – 003Fh) tem-se a tabela

de interrupções e logo após o espaço reservado para o programa (0040h – 7FFFh), depois tem-se o espaço reservado para memória externa ( 8000h – FDFFh ), se for necessário utilizar uma EPROM, e depois tem-se o bloco B0 que será utilizado para a memória de programa se o bit CNF for igual a 1.

Memória de Dados - Os blocos B1 e B2 são disponíveis somente para a memória de

(59)

Existem outros espaços reservados para os registradores dos periféricos e memória externa.

Memória de Entrada/Saída - Este espaço é utilizado para mapear periféricos externos

e registradores para controlar a memória Flash. Além do mais será necessário a utilização do gerador de estados de espera para trabalhar com a memória externa, cujos registradores também se encontram neste bloco de memória.

3.7.1.2.

Unidade Central de Processamento

A Unidade Central de Processamento (CPU) é o cérebro do sistema, onde todo processamento matemático e lógico acontece. Ela é composta de três blocos principais : a seção de Deslocamento Escalar, a seção de Multiplicação e a seção da Unidade Central de Lógica e Aritmética e Acumulador. Na figura 3.4 encontra-se uma representação da mesma.

Deslocamento Escalar – Serve para enviar o dado para o acumulador. Além disso, esta unidade converte o dado de 16 bits para os 32 bits do acumulador, possibilitando ainda fazer o deslocamento de bits, utilizando o shifter, diretamente com o dado antes mesmo dele ser armazenado pelo acumulador.

Multiplicação – é composta pelos registradores TREG e PREG, e ainda do multiplicador de 16 X 16 bits. O dado armazenado no registrador TREG é multiplicado por um dado vindo do barramento de memória, podendo ser uma constante ou variável, e o resultado, agora com 32 bits, é armazenado no registrador PREG. O conteúdo de PREG é enviado para o acumulador passando por um Shifter (deslocamento) que poderá ser utilizado para fazer o deslocamento de bits.

Figure

Updating...

References

Updating...

Download now (207 página)