DESENVOLVIMENTO DE UMA REDE CAN UTILIZANDO DSPS

Tamanho: px
Começar a partir da página:

Download "DESENVOLVIMENTO DE UMA REDE CAN UTILIZANDO DSPS"

Transcrição

1 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: Prof. Dr. Antônio Heronaldo de Sousa Orientador CCT/UDESC Prof. Dr. Cesar Albenes Zeferino Prof. Dr. Alcindo do Prado Júnior Prof. Dr. Marcello Mezaroba CTTMar/ UNIVALI CCT/UDESC CCT/UDESC

2 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. Joinville 2004

3 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 Dr. Marcello Mezaroba (suplente)

4 4 NOME: ZEPLIN, Stefano Romeu DATA DA DEFESA: 30/04/2004 LOCAL: Joinville, CCT/UDESC FICHA CATALOGRÁFICA 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 Dr. Marcello Mezaroba

5 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. Neste trabalho discute-se o desenvolvimento da comunicação entre sistemas embarcados baseados nas duas camadas da rede CAN. Para tanto, foi desenvolvida uma rede CAN utilizando-se DSPs, onde o modelo utilizado já tem um controlador CAN incorporado, e, para validação do trabalho, foi desenvolvida uma aplicação da rede para utilização em um Veículo Guiado Automaticamente (Automatic Guidance Vehicles - AGV). Para essa aplicação foram selecionadas algumas funções mais elementares de um AGV, as quais foram emuladas na rede formada por DSPs através do desenvolvimento de bibliotecas específicas.

6 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. In this work, the development of the communication between embedded systems based in the two layers of CAN network is argued. For in such a way, a CAN network using DSPs was developed and, for validation of the work, an application of the network in Automatic Guidance Vehicles (AGVs) was developed. Where some of its more elementary functions, which had been emulated in the net formed for DSPs, through the development of specific libraries had been selected.

7 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. (Roberto Flávio C. Silva)

8 8 A Deus, à minha esposa Marciléia, aos meus pais, e a toda minha família.

9 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 10 Sumário 1 Introdução Evolução dos sistemas digitais Necessidade de comunicação em sistemas embarcados Desenvolvimento de protocolos baseados nas duas camadas da rede CAN Formulação do Problema Organização da Dissertação Rede CAN Introdução Histórico Estrutura da rede CAN Princípio de funcionamento da rede CAN O padrão de comunicação ISO/OSI Camada de Enlace Tipos de Mensagens Tratamento de erros na rede CAN Camada Física Configuração de um nó de um barramento CAN Características do Meio Físico Transceiver CAN Controlador CAN Representação do Bit Temporização e Sincronização do Bit Processador Digital de Sinal Introdução Evolução e Características dos DSPs Aplicações para DSPs Expectativas Econômicas e Fabricantes de DSPs... 32

11 Critérios para a Seleção de um DSP Famílias de DSPs da Texas Instruments O DSP TMS320LF Arquitetura do DSP TMS320F Interrupção Programação do TMS320LF Etapas de Desenvolvimento de um Programa Estrutura de um Programa em Assembly Modos de Endereçamento Controlador CAN do DSP TMS320LF Arquitetura do controlador CAN Mapa de Memória do Controlador CAN Registradores do Controlador CAN Mailbox Montagem e Testes Básicos cam a rede CAN Introdução Plataforma de Desenvolvimento Configuração do DSP Montagem de um Nó Processo de Configuração de Parâmetros da Rede CAN Processo de Transmissão de Dados Algoritmo para Carga de Dados em Mailbox Algoritmo para Transmissão de Dados em Mailbox Processo de Recepção de Dados Configura Mailbox para Recepção Recepção de Mensagens Testes para Validação Inicial da Rede CAN Desenvolvimento de Algoritmos Introdução... 99

12 Veículo Guiado Automaticamente Componentes de um AGV Definição das Características do Sistema Poroposto Geração de Mensagens Critérios para obtenção das mensagens Agrupamento de Mensagens Geração dos bits identificadores de cada Mensagem Detalhamento das Mensagens Recebidas e Enviadas por cada Nó Obtenção da máscara de cada nó Desenvolvimento do Algoritmo para cada nó Nó 1 Sensor de Segurança Nó 2 Nível de Bateria Nó 3 Acionamento Nó 4 Navegação Nó 5 Módulo de Gerenciamento Testes para Validação do Conjunto Final Conclusões e Trabalhos Futuros Propostas de Trabalhos Futuros A Detalhamento das Mensagens B Programas de Teste Padrão C Programas de cada nó Referências Bibliográficas

13 13 Lista de Figuras 2.1 Componentes da rede CAN Princípio de funcionamento da rede CAN Acesso de um nó a rede Modelo de camadas ISO/OSI Camadas da Rede CAN Campos da mensagem de dados Campo de identificação da parte A Campo de identificação da parte B Campo de controle para parte A Campo de controle para parte B Campo de dados Campo do CRC Campo de ACK Fim de mensagem Mensagem remota Mensagem de erro Mensagem de sobrecarga Estrutura típica de um nó da rede CAN Componentes da rede CAN Níveis de tensão da rede CAN Esquema de um transceiver Segmentos do BIT TIME Arquitetura do DSP TMS320F Barramento de Memória Mapa de memória Unidade Central de Processamento... 41

14 Registradores Auxiliares Registradores de Estado Conversor A/D Módulo SPI Formato de mensagem SPI Formato de mensagem SCI Módulo SCI Gerenciador de Eventos Interrupção Etapas para programação do DSP Divisão de seções do programa Paginação de memória Controlador CAN Mapa de memória do controlador CAN Placa de desenvolvimento de projetos Exemplo do ambiente de trabalho Esboço da placa PL Foto da placa PL Algoritmo da função de inicialização do DSP Função para inicialização do DSP Esquema de ligação para obtenção de um nó da rede Esquema de ligação entre dois nós Algoritmo para inicialização dos parâmetros Função de inicialização da rede CAN Algoritmo para carregar dados no mailbox Função de carga de dados no mailbox Algoritmo para transmissão de mensagem pelo mailbox Função para transmissão do mailbox Configuração do mailbox Função para inicialização do mailbox

15 Algoritmo para recepção da mensagem Recepção de dados pelo mailbox Montagem para teste inicial de algoritmos Sinal do barramento CAN Bits de comando no barramento CAN Função para transmissão com mailbox Função para transmissão com mailbox Função para transmissão com mailbox Função para recepção com mailbox Função para recepção com mailbox Função para recepção com mailbox Rotina para verificação da interrupção por mensagens Primeiro AGV Um AGV em uma aplicação típica na indústria Campo magnético gerado pelo cabo condutor Exemplo de aplicação do laser em um AGV Sensores de segurança típico Esboço da rede implementada Disposição dos bits identificadores Algoritmo principal do nó 1(parte 1) Algoritmo principal do nó 1 (parte 2) Algoritmo para tratamento da interrupção INT1 do nó Algoritmo principal para o nó 2 (parte 1) Algoritmo principal para o nó 2 (parte 2) Algoritmo para tratamento da interrupção INT 1 do nó Algoritmo principal para o nó 3 (parte 1) Algoritmo principal para o nó 3 (parte 2) Algoritmo para tratamento da interrupção INT 1 do nó Algoritmo principal para o nó 4 (parte 1) Algoritmo principal para o nó 4 (parte 2)

16 Princípio de funcionamento do sistema ótico Algoritmo para tratamento da interrupção INT 1 do nó Algoritmo principal para o nó 5 (parte 1) Algoritmo principal para o nó 5 (parte 2) Algoritmo da interrupção 1 do nó 5 (parte 1) Algoritmo da interrupção 1 do nó 5 (parte 2) Conjunto completo para testes

17 17 Lista de Tabelas 2.1 Codificação do número de bytes da mensagem Categorias de aplicação de DSP Estimativa de crescimento do mercado de DSPs Participação no mercado de DSPs Nomenclatura dos Registradores Registradores associados a cada mailbox Endereços da memória de cada mailbox Testes com variação do número de bytes enviados Teste de máscara de recepção Grupo de mensagens Bits identificadores para cada grupo de mensagens Definição dos bits identificadores para cada mensagem Máscara das mensagens recebidas Relação das ações programadas para o nó Relação das ações programadas para o nó Relação das ações programadas para o nó Relação entre velocidade dos motores e atuação dos sensores Relação das ações programadas para o nó Relação das ações programadas para o nó Teste dos bits identificadores Mensagem do nó 1 para eventos internos Eventos de resposta do nó Mensagem do nó 2 para eventos internos Eventos de resposta do nó Mensagem do nó 3 para eventos internos

18 Eventos de resposta do nó Mensagem do nó 4 para eventos internos Eventos de resposta do nó Mensagem do nó 5 para eventos internos Eventos de resposta do nó

19 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. Inicialmente estes avanços levaram a uma descentralização do comando. O que era feito por uma única unidade de controle passou a ser feita por unidades distribuídas pelo veículo, pois, caso contrário, haveria a necessidade utilização de um número elevado de conexões dos sensores para a unidade de controle centralizada. Além do custo envolvido, havia o problema de interferências que determinado sinal poderia sofrer. O controle distribuído passou então a ser uma alternativa atraente, pois permitia a aplicação local de módulos eletrônicos para a realização de uma atividade específica.

20 2 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 Apesar do surgimento de diversos protocolos mais elaborados, baseados na rede CAN, existem aplicações específicas em sistemas embarcados. Por exemplo, no controle em tempo real, onde a latência do sistema é crucial. A aplicação desses protocolos exigirá muito dos processadores envolvidos, ocupando tamanho em código e podendo ocasionar atrasos que devem ser considerados [Etschberger, 2001].

21 3 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. Esse sistema tem possibilitado o desenvolvimento, por parte dos acadêmicos do curso de tecnologia em Automação Industrial, de trabalhos de conclusão de curso em diversas

22 4 á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. Uma segunda etapa foi da escolha da plataforma de desenvolvimento que seria utilizada para o desenvolvimento da rede CAN. Nesta etapa, verificou-se que a utilização de Processadores Digitais de Sinais (DSPs) no controle de acionamentos elétricos, além dos sistemas de comunicação móvel, vem se difundindo cada vez mais. Neste aspecto optou-se pela escolha deste processadores para servir como plataforma para o desenvolvimento da

23 5 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 No capítulo 2 será apresentada em maiores detalhes a rede CAN, procurando-se apresentar os conceitos básicos para sua correta utilização. No capítulo 3 tem-se a apresentação do DSP utilizado, bem como do controlador CAN incorporado ao mesmo. No capítulo 4 são apresentados os primeiros resultados obtidos, bem como a estrutura básica de um nó da rede CAN desenvolvida. No capítulo 5 são apresentadas as etapas para o desenvolvimento de um protocolo de comunicação baseado nas duas camadas da rede CAN. Para isso apresenta-se uma plataforma mínima que emula o comportamento em alguns aspectos de um AGV. No capítulo 6 são apresentadas as conclusões e trabalhos futuros.

24 6 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 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. O primeiro chip controlador CAN foi fabricado em 1987 pela Intel. Atualmente existem diversos fabricantes de chip de CAN, sendo que os principais são:

25 7 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 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. Módulo Módulo Eletrônico Eletrônico Rt Rt Figura 2.1 Componentes da rede CAN

26 8 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 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! 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 Figura 2.2. Princípio de funcionamento da rede CAN

27 9 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. Os conflitos de acesso à rede são resolvidos através da arbitragem bit a bit dos identificadores das mensagens. Cada estação observa bit a bit a rede, em que o estado dominante (0 lógico) se sobrepõe ao estado recessivo (1 lógico). A competição pela alocação da rede é perdida por todas as estações que queiram enviar um bit recessivo, em favor das que queiram transmitir um bit dominante. Além disso, toda estação que perde o acesso a rede torna-se receptora e não faz mais nenhuma tentativa de envio até que a rede

28 10 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. A norma original deu origem à norma ISO parte 1, ou simplesmente, ISO Como essa norma não especifica o meio de comunicação, podem haver problemas para a conexão de dispositivos de diferentes sistemas. A ISO ( International Standardization Organization) em conjunto com a SAE (Society of Automotive Engineers) definiram alguns protocolos adicionais, onde além de outros parâmetros, incluem a definição do meio de transmissão, assim como também a velocidade de transmissão. Os fabricantes de veículos fazem a especificação das características, como, por exemplo [Ford Company,

29 ], 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] 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. Aplicação Apresentação Sessão Transporte Rede Enlace Física Figura 2.4 Modelo de camadas ISO/OSI

30 12 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. Camada de Enlace Controle Lógico do Enlace ( LLC ) - Filtragem de mensagens - Notificação de sobrecarga - Gerenciamento de restabelecimento 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 Supervisor Contenção de Erro Camada Física - Codificação/Decodificação de Bits - Sincronização/Temporização de Bits - Características do Driver de Recepção/Transmissão Gerenciamento de Falha do Barramento 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

31 13 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 CAMADA DE ENLACE 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 Mensagem de Dados Como já mencionado, a mensagem de dados possui dois tipos: Padrão, conhecido como 2.0 A; Estendido, conhecido como 2.0 B.

32 14 A mensagem de dados é composta por sete campos principais, conforme encontrase na figura 2.6 e descrita a seguir: Início da mensagem Campo de Identificação Campo de Controle Campo de Dados Campo do CRC Campo de ACK Fim da mensagem 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. 11 bits identificadores RTR 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 bits identificadores SRR IDE 18 bits identificadores RTR Figura 2.8 Campo de identificação da parte B

33 15 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 IDE r0 DLC3 DLC2 DLC1 DLC0 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. - r0 : É um bit de reserva, sendo que este bit deve ser dominante(=0).

34 16 - 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 DLC Para a parte B tem-se a alteração somente do primeiro bit, conforme a figura 2.10 r1 r0 DLC3 DLC2 DLC1 DLC0 Os mesmos 6 bits são divididos em: Figura 2.10 Campo de controle para parte B - 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. d) Campo de Dados: consiste dos dados que serão transmitidos, podendo variar entre zero e até oito bytes. A ordem de transmissão geralmente é crescente, como na figura 2.11, mas

35 17 através de alteração de parâmetros de determinados controladores é possível alterar essa seqüência; Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 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; Seqüência CRC Delimitador CRC 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: - ACK Slot : Este bit é enviado recessivo(=1) pelo transmissor. Qualquer receptor que confirmar o recebimento de uma mensagem irá alterar este bit para dominante(=0).

36 18 - 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. ACK Slot ACK Delimiter 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 Fim de Mensagem Figura 2.14 Fim de mensagem 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; - O bit RTR (Remote Transmission Request) é recessivo.

37 19 Na figura 2.15 tem-se a representação da mensagem remota. Início da mensagem Campo de Identificação Campo de Controle Campo do CRC Campo de ACK Fim da mensagem Figura 2.15 Mensagem remota 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 Superposição do flag de erro Flag de erro Delimitador de Erros 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 20 - Delimitador de Erro (Error Delimiter): utilizado para finalizar a mensagem de erro, sendo composto por oito bits recessivos 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 Superposição do flag de Sobrecarga Flag de Sobrecarga Delimitador de Sobrecarga 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 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 :

39 21 - 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. Se um, ou mais, erros forem descobertos por pelo menos uma estação usando os mecanismos acima descritos, a transmissão atual é abortada e é enviada uma mensagem de erro. Isso impede que outras estações aceitem uma mensagem errada e garante a consistência dos dados ao longo de toda a rede.

40 22 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] 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 Configuração de um nó de um barramento CAN Cada nó no barramento CAN é interpretado como uma estação, podendo apresentar diferentes possibilidades. A configuração de um sistema de rede CAN permite diferentes possibilidades, mas na figura 2.18 tem-se um exemplo da configuração típica seguida da explicação do funcionamento da mesma.

41 23 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; - Controlador CAN: O controlador CAN é que faz a filtragem das mensagens que circulam pelo barramento, verifica erros, formata a mensagem do processador de acordo com o padrão CAN. O tratamento das informações é feito neste módulo, ficando reservado para CPU somente o tratamento da informação;

42 24 - 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 Características do meio físico De acordo com a ISO 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 Nó 1 Nó 2 Nó 3 CAN_H 120 Ω 120 Ω d CAN_L Figura 2.19 Componentes da rede CAN

43 25 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: metros a 500 kbits/segundo metros a 250 kbits/segundo 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 ,5 Recessivo (lógica 1) 3,5 1,5 Dominante (lógica 0) CAN_H CAN_L Recessivo (lógica 1) Figura 2.20 Níveis de tensão da rede CAN

44 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 Baixo consumo de corrente em modo de repouso. Estas características são discutidas em maiores detalhes por [Corrigan, 2002].

45 Controlador CAN 27 Figura 2.21 Esquema de transceiver Controlador CAN Transceiver um A função CAN_H dos controladores de 120 Ω 120 Ω CAN é da CAN_L 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 Funções de um controlador CAN Indiferente ao tipo de controlador CAN utilizado, ele deve implementar as funções da primeira e segunda camada, dentre as quais pode-se destacar:

46 28 - 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 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 Temporização e sincronização do bit

47 29 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: Segmento de sincronização Segmento de propagação Segmento de fase1 Segmento de fase2 Figura 2.22 Segmentos do BIT TIME Amostragem do sinal 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.

48 30 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]. Como o processo de sincronização ocorre quando tem-se uma alteração do estado lógico, passando de nível 0 para 1, ou vice-versa, durante a mensagem, existe a possibilidade de que pode-se ter vários bits no mesmo nível lógico, o que poderia acarretar um erro de sincronismo. Para auxiliar no processo de sincronização foi implementado um solução conhecida com Bit Stuff. Nesse processo, quando tem-se 5 bits de mesmo estado lógico, insere-se um outro bit, de nível lógico contrário aos anteriores, fazendo assim que, no máximo por um período de 5 bits não se terá alteração no nível lógico. Nos nós receptores, a mensagem recebe o tratamento retirando os bits que foram incluídos na transmissão.

49 31 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 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). Em 1982 a Texas Instruments introduziu o primeiro DSP em um único chip, o TMS32010, que incorporava um hardware especializado que, entre outras coisas, permitia

50 32 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 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 Modems, voice mail, sintetizadores de música, compressão e descompressão de voz

51 33 Uma discussão mais detalhada sobre as aplicações e aspectos gerais sobre o DSP pode ser encontrada em [Lapsley, 1997] a [Marven, 1996] 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 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 Valor* US$ ( milhões ) ,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 Crescimento Anual Texas Instruments 40.0 % 43.2 % 23.2 % Motorola 12.0 % 14.1 % 33.6 % Agere 16.1 % 13.9 % %

52 34 Analog Devices 8.2 % 8.9 % 23.7 % Outros 23.7 % 19.9 % % Total ( US$ milhões ) % 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 ], [BDTImark200 TM, 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 4. Disponibilidade no mercado

53 35 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 FAMÍLIAS DE DSP DA TEXAS INSTRUMENTS A Texas Instruments trabalha com três grandes famílias de DSPs : C 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. C 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. Uma melhor visão das diferentes versões de DSP da Texas Instruments Inc é apresentada em [Texas Instruments, 1997]

54 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; Memória RAM interna com acesso duplo por ciclo de clock;

55 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. Barramento de Dados JTAG ROM ou flash EEPROM DARAM B0 DARAM B1/B2 Controle da Memória Interrupções Inicialização Controlado r do Programa Barramento de Programa Registrado r Instrução ARAU Registradores Controle/Status Registradores Auxiliares Registradores Mapeamento Memória Deslocador de Entrada ALU Acumulado r Deslocador de Saída Multiplicador TREG PREG C2xx CPU Deslocador de Produto(Shifter) Interface para memória externa Gerador de Estados de Espera p/ Memória Gerenciador de Eventos Temporizadores de uso geral Unidades de Comparação CLOCK Barramento dos Periféricos Módulo de Interface do Sistema QEP Conversor A/D SPI SCI Watchdog CAN

56 38 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 Memória Na figura 3.2 tem-se o bloco de memória em maiores detalhes. Barramento Externo de Endereços ROM ou Flash EEPROM PAB DARAM B0 DARAM B1/B2 Registradores de Memória DRAB DWAB Barramento Externo de Dados PRDB DRDB DWEB CPU Módulo do Sistema Figura 3.2 Barramento de Memória A memória é composta pela memória não volátil, ROM ou Flash, utilizada para armazenar o programa, uma memória volátil, RAM ( B1/B2) utilizada para armazenar variáveis, e um bloco de RAM (B0) que poderá ser utilizado para armazenar tabela de constantes ou de variáveis, de acordo com a configuração adotada. Estas memórias são

57 39 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). Na figura 3.3 com a representação do mapa de memória do DSP TMS320F2407. Programa Dados Entrada/Saída

58 40 Flash Flash Flash Vetores de Interrupção Código de segurança 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 dados, e o bloco B0 será utilizado como memória de dados se o bit CNF for nulo.

59 41 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 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. Unidade Central de Lógica e Aritmética ( CALU ) e Acumulador - Esta unidade recebe os dados de um multiplexador, que seleciona o dado que vem do registrador PREG ou da memória, e o envia para a CALU onde poderá realizar o cálculo desejado, após

60 42 isto o dado é enviado para o acumulador, aguardando novas instruções, ou mesmo o envio do dado para ser armazenado na memória. DWEB DRDB PRDB MUX Input Shifter (32 bits) Deslocament o Escalar TREG Multiplicador 16 X 16 PREG 3 Product Shifter 2 (32 bits) 1 6 MUX 1 6 Multiplicação 1 6 MUX 3 2 C CALU Acumulador Unidade Central de Lógica e Aritmética e Output Shifter (32 bits) 1 6 Figura 3.4 Unidade Central de Processamento Unidade Aritmética dos Registradores Auxiliares O DSP TMS320F2407 possui oito registradores auxiliares (AR0 AR7) que podem ser utilizados para armazenar endereços de memória, como contadores, armazenar valores e comparações para realizar saltos condicionais e,além disso, também podem ser realizados operações entre os registradores através da Unidade Aritmética dos Registradores Auxiliares, que podem ser visualizar na figura 3.5.

61 43 Dos oito registradores somente um será o registrador corrente, que será dado pelo Apontador dos Registradores Auxiliares (ARP), e que, para utilizar um registrador auxiliar deve-se sempre carregar o novo registrador, já o anterior será armazenado no Buffer do Registrador Auxiliar ( ARB ). DRDB 16 AR7 AR6 AR5 AR4 AR3 ARB 3 ARP 3 MUX AR2 AR1 AR0 3 Registrador Instrução MUX ARAU DWEB DRAB DWAB Figura 3.5 Registradores Auxiliares Registradores de Estado ST0 e ST1 Os registradores de estado contém os bits de controle e estado do DSP TMS320F2407, que podem ser carregados da memória de informação, permitindo que o estado da máquina possa ser salvo e restaurado por subrotinas. Na figura 3.6 encontram-se os registadores de estado.

62 ARP OV OV INT DP ST0 a) ARB CNF TC SX C XF PM ST1 b) Figura 3.6 Registradores de Estado ST0 e ST1. Na tabela 3.4 tem-se a designação de cada um dos bits dos registradores de estado Tabela 3.4 Nomenclatura dos Registradores Nome Descrição ARB Armazenador do apontador do registro auxiliar. ARP Apontador do registro auxiliar. C Bit de transporte ( Carry ). CNF Bit de configuração da memória interna DARAM.

63 45 DP INTM OV OVM PM SXM TC XF Apontador da página de dados Bit do modo de interrupção. Bit de indicação de excesso (overflow). Bit do modo de excesso (overflow). Modo do deslocador do produto. Bit do modo de sinal estendido. Bit de teste/controle. Bit do estado do pino XF Periféricos Os periféricos comunicam-se com a CPU através de um barramento específico, pois um grande número de periféricos poderia comprometer a performance do barramento de dados da CPU do DSP TMS320F2407. Para isso o barramento de periféricos é independente e opera a uma freqüência menor que a do barramento da CPU. Todos os periféricos, com exceção do gerenciador de eventos, são anexados a este barramento. Para incrementar a performance o gerenciador de eventos é conectado diretamente ao barramento de dados da CPU. A seguir tem-se os principais periféricos existentes no DSP TMS320F2407 [Texas Instruments,2001]. No caso do controlador CAN, serão apresentados maiores detalhes em uma seção a parte mais adiante no capítulo. Conversor A/D O DSP TMS320F2407 possui apenas um conversor Analógico/Digital de 10 bits, de aproximação sucessiva, sendo possível selecionar entre as 16 entradas multiplexadas qual será convertida e também possui mecanismos para determinar a seqüência de conversão das entradas.

64 46 O tempo de amostragem e conversão é de 375 ns. Além disso, o início de conversão pode ocorrer por software, ou então, iniciar uma conversão através de algum evento do gerenciador de eventos (EV) assim como de sinal externo. Existem ainda 16 registradores que são utilizados para armazenar o resultado da conversão da entrada equivalente Existem duas possibilidades de seqüenciamento para o conversor, em modo cascata, como mostrado no diagrama funcional da figura 3.7, e modo dual onde tem-se dois seqüenciadores com capacidade para selecionar 8 entradas cada um. Da figura 3. 7 destacam-se os seguintes componentes : Selecionador de seqüência de conversão : Este módulo controla a operação dos demais. Envia para o módulo de entrada a seqüência de seleção da entrada programada, além disso, envia o sinal para o início de conversão ( SOC ) para o conversor analógico/digital e recebe do mesmo o sinal de fim de conversão ( EOC ). Também é responsável pela seleção para qual dos 16 registradores o sinal convertido será enviado. O início do processo de conversão pode ocorrer através de software, de algum evento de qualquer um dos gerenciadores de eventos ( EVA ou EVB ) ou mesmo de um sinal externo ( pino ADCOC ). Multiplexador Analógico: Utilizado para fazer a multiplexação das 16 entradas analógicas de acordo com a seleção programada, enviando o sinal correspondente para o próximo estágio, de amostra e retenção; Unidade de Amostragem e retenção e conversão A/D : Unidade que faz a amostragem e retenção do sinal analógico e converte a informação para digital de 10 bits, em um tempo estimado de 375 ns. Este processo ocorre depois de receber o sinal de início de conversão ( SOC), quando finda, a mesma envia de fim de conversão ( EOC ) para o selecionador de seqüência de conversão.

65 47 Registradores do resultado de conversão: São registradores de 16 bits utilizados para armazenar o resultado da conversão da entrada correspondente. Sendo os registradores de 16 bits o resultado, de 10 bits, é armazenado nos 10 bits mais significativos, B15 até B06. ADCIN 0 ADCIN 1 ADCIN 2... ADCIN1 5 Multiplexador Analógico Software EVA EVB Pino Unidade S/H e Conversor A/D Autoseqüênciador MAX_CONV Chave Sel. 0 Chave Sel. 1 Chave Sel. 2 Chave Sel Chave Sel. 15 Multiplexador p/ Selecionar Destino RESULT RESULT RESULT... RESULT Módulo SPI Figura 3.7 Conversor A/D

66 48 O padrão de comunicação serial SPI ( Serial Peripheral Interface ) foi desenvolvido pela Motorola e atualmente se encontra presente em diversos processadores. Ele opera em modo full duplex, ou seja, a comunicação se processa em ambas as direções simultaneamente. Este tipo de protocolo é muito útil para comunicação com periféricos como EEPROM, conversor Digital/Analógico e Analógico/Digital, assim como mostradores digitais. O módulo SPI se comunica utilizando o modelo Mestre/Escravo, sendo que o Mestre inicia a mensagem selecionando um dispositivo, dados podem ser transferidos em ambas as direções. Na figura 3.8 encontra-se um diagrama funcional do módulo SPI do DSP TMS320F2407. SPI Mestre SPISISMO Buffer de Entrada SPISTE SPISISMO SPISTE SPI Escravo Buffer de Entrada Registrador de Deslocament SPISOMI SPICLK SPISOMI SPICLK Registrador de Deslocament Buffer de Buffer de Transmis Transmis Processador Processador Figura 3.8 Módulo SPI A comunicação dos módulos SPI ocorre através de 4 pinos:

67 49 SPISIMO : entrada SPI escrava, saída mestre; SPISOMI : saída SPI escrava, entrada mestre; SPICLK : pulso do CLOCK; SPISTE : transmissão da habilitação do escravo As etapas de funcionamento para a comunicação entre o mestre e o escravo são as seguintes: O mestre envia um sinal de habilitação através de SPISTE; Tem-se o surgimento, então do sinal de clock no pino SPICLK. Através do registrador CLOCK_POLARITY é possível selecionar se a transmissão ocorre na subida ou descida do sinal de clock; Assim de acordo com o sinal do clock a informação armazenada em SPIDAT inicia a transmissão através do pino SPISIMO, com o bit mais significativo primeiro. Ao mesmo tempo a informação chega ao escravo através do pino SPISOMI armazenando em SPIDAT do escravo. Quando o último bit for carregado a informação é armazenada no registrador SPIBUF, onde fica disponível para a CPU. Neste instante a interrupção, SPI INT FLAG, é ativa, indicando para a CPU que o dado já está disponível. Na figura 3.9 tem-se o formato do dado que é transmitido. Como é síncrono a mensagem não tem outros bits de verificação, simplesmente são os dados que serão enviados. Figura 3.9 Formato de mensagem SPI

68 50 Módulo SCI O módulo SCI ( Serial Communications Interface ) é o módulo de comunicação assíncrona entre o DSP TMS320F2407 e outros periféricos. Através do módulo de comunicação SCI possibilita a transmissão utilizando o transmissor/receptor universal assíncrono (UART), possibilitando sua comunicação com diversos periféricos, como o próprio computador, através da RS-232. O módulo de comunicação dos DSP TMS320F2407 possui algumas características: O Comprimento da palavra de dados é programável entre 1 e 8 bits; Bits de parada ( stop bit ) programável de 1 ou dois bits; Transmissão de dados em half ou full duplex; Velocidade de transmissão programável; O formato da mensagem varia dependendo do modo de operação, o IDLE ou ADRESS, sendo que segundo modo tem-se um bit a mais indicando se a mensagem é o endereço do receptor ou se é simplesmente um dado. Na figura 3.10 encontra-se o formato da mensagem, com os bits divididos em: Start bit: bit de partida, indicando o início da mensagem; Os 8 bits de mensagem, do menos significativo (LSB) até o mais significativo (MSB); O bit de paridade, sendo que este bit é opcional, podendo ser habilitado ou não;

69 51 O stop bit, que é bit que indica o final da mensagem. Figura 3.10 Formato de mensagem SCI A conexão entre os módulos é feita através de dois pontos, conforme pode-se observar na figura Os pinos de conexão são: SCITXD: É a pino para a saída de dados da SCI; SCIRXD: É o pino para a entrada de dados da SCI; Além disso, pode-se identificar os seguintes blocos na figura 3.11 : SCITXBUF : é o registrador para armazenamento dos dados a serem transmitidos. A CPU do DSP salva os dados neste registrador para que o mesmo possa ser enviado futuramente; TXSHF: é o registrador de deslocamento que faz a transmissão dos dados. Ele recebe os dados do registrador SCITXBUF enviando os mesmos através do pino SCITXD RXSHF: é o registrador de deslocamento que faz a recepção dos dados. Ele recebe os dados e os armazena no registrador SCIRXBUF;

70 52 SCIRXBUF: é o registrador para armazenamento do dado recebido, ficando Dispositivo SCI 1 Dispositivo SCI 2 Registrador para Transmissão de Dados (SCITXBUF) Registrador para Transmissão de Dados (SCITXBUF) Registrador de Deslocamento Transmissor (TXSHF) SCITXD SCITXD Registrador de Deslocamento Transmissor (TXSHF) Registrador de Deslocamento Receptor (RXSHF) SCIRXD SCIRXD Registrador de Deslocamento Receptor (RXSHF) Registrador para Recepção de Dados (SCIRXBUF) Registrador para Recepção de Dados (SCIRXBUF) disponível para a CPU do DSP fazer a leitura. Figura 3.11 Módulo SCI O tratamento de erros é feito através de quatro mecanismos: Erro de paridade: ocorre quando tem-se alguma falha na transmissão detectada pela diferença entre o número de bits em nível lógico 1 em relação ao seu bit de paridade transmitido;

71 53 Erro de overrun : este erro ocorre quando um novo dado é recebido e transferido para o registrador SCIRXBUF sem que a CPU tenho lido totalmente o dado do registrador. O novo dado sobrescreve o anterior, perdendo-se a informação anteriormente recebida; Erro de mensagem : ocorre quando o bit de parada esperado não é encontrado. Apenas o primeiro bit de parada é verificado; Erro de quebra: este erro ocorre quando o pino de entrada permanece em nível lógico baixo por pelo menos dez bits, após a falha do bit de parada. Módulo Watchdog O watchdog é um temporizador que monitora as operações de software e hardware e implementa as funções de reset do sistema. Principalmente em processos críticos onde a parada por falhas no programa possa acarretar conseqüências desagradáveis, a utilização do watchdog é essencial. Particularmente no caso do DSP TMS320F2407 sua utilização é importante pois poderá proteger em aplicações de controle de motores, tanto o motor quanto o módulo de potência, se a CPU entrar em loop infinito, pois fará com que o DSP entre reinicialize, e assim as saídas PWM entrarão em estado de alta impedância, cortando todos os sinais que vão para o módulo de potência. Sendo habilitado, o temporizador do watchdog irá começar a contar imediatamente após a inicialização. Com o clock do watchdog (WDCLK) de Hz, tem-se uma faixa selecionável entre 3,28 ms até 209,7 ms para monitorar o programa.

72 54 Gerenciador de Eventos O gerenciador de eventos (Event Manager - EV) é um módulo especialmente desenvolvido para controle digital de motores elétricos sendo que suas principais características são: Possui temporizadores que fornecem a base de tempo para os comparadores e para a unidade QEP além da possibilidade de serem utilizados para gerar um período de amostragem do sistema; Unidades Comparadoras são utilizadas para gerar sinal de PWM para disparo de chaves de potências que controlarão os motores; Geração de tempo morto para evitar que duas chaves de potências sejam acionadas ao mesmo tempo, gerando assim um curto-circuito entre fases; Unidades especiais para aplicação de controle vetorial; Unidades de captura que podem ser utilizadas para, por exemplo, iniciar o conversor A/D; Unidade QEP (Quadrature Encoder Pulse) são entradas especiais para adquirir o sinal proveniente de um encoder.

73 55 Estes recursos especialmente desenvolvidos para o DSP TMS320F2407 o tornam bastante flexível e ideal para aplicação no controle de motores. O DSP TMS320F2407 possui dois gerenciadores de eventos EVA e EVB que são idênticos. Na figura 3.10 tem-se um diagrama em blocos do gerenciador de eventos EVA. Reset INT 2,3,4 Registradores de Controle do TCLKINA/TDIRA ADC Comparador do Temporizador Temporizador GP 1 Lógica de T1CMP/TIPWM Unidade de Comparação 1 Unidade de Comparação 2 Unidade de Comparação 3 Circuitos Circuitos Circuitos Lógica de Lógica de Lógica de PWM1 PWM2 PWM3 PWM4 PWM5 PWM6 Comparador do Temporizador Temporizador GP 2 Lógica de T2CMP/T2PWM MUX CLK DIR Circuito QEP Unidades de CAP1/QEP1 CAP2/QEP2 CAP3 Figura 3.12 Gerenciador de Eventos Na figura 3.12 tem-se os seguintes componentes:

74 56 Bloco de Registradores de Controle e Lógica: Estes registradores controlam a operação do gerenciador de eventos, enviam as interrupções habilitadas para a CPU do DSP, envia o sinal de partida para o conversor analógico/digital; Temporizadores de Uso Geral (GP Timer) : existem temporizadores de uso geral (GP Timer 1 e 2) que servem de base de tempo para as unidades de comparação e associadas aos circuitos PWM geram as saídas PWM, além o GP Timer 2 fornece a base e tempo para o módulo de leitura de sinal de encoder, Unidade QEP, e as unidades de captura; Saída PWM Simples : Em cada Gerenciador de Eventos tem-se duas saídas de PWM simples, independentes, onde cada um fornece somente um sinal de PWM, T1PWM e T2PWM, onde a base de tempo para o primeiro é somente o GP Timer1, mas para o segundo é possível selecionar qualquer um dos dois temporizadores. Ainda fazendo parte deste conjunto tem-se um bloco lógico de saída onde, além de outras coisas, pode selecionar a saída ativa em alto ou em baixo e habilitar o sinal de saída; Saída PWM Completa : Este conjunto fornece seis saídas PWM para aplicações, por exemplo, de inversores trifásicos. Com o mesmo princípio de funcionamento do anterior, este módulo possui três módulos de comparação independentes, além do adicional de um módulo interno para geração do tempo morto entre os chaveamentos, um módulo para facilitar a aplicação em controle vetorial, um módulo para selecionar diferentes modos de operação de PWM, seja simétrica ou assimétrica, além do mesmo bloco lógico do anterior, mas agora para as seis saídas; Unidades de Captura : Cada Gerenciador de Eventos tem três entradas em seu módulo de captura. Este módulo serve para medir o intervalo de tempo entre dois eventos (mudança de nível lógico), pois a cada evento o valor do temporizador de referência é carregado em um registrador de dois níveis, assim, com dois eventos tem-se o registrador carregado com o registro de tempo de cada evento.

75 57 Unidade de Leitura de Encoder : Esta unidade serve para fazer a leitura do sinal de um encoder incremental, fornecendo a CPU o valor da freqüência e sentido de rotação, horário ou anti-horário, poupando assim tempo de processamento para interpretação do sinal Interrupção A interrupção é uma suspensão do ciclo de execução normal do software. Através da interrupção pode-se evitar a necessidade de constantemente ter que, por exemplo, monitorar um dos terminais de entrada do DSP. Habilitando a interrupção adequada, quando tem-se a alteração do nível lógico do terminal de entrada, ocorrerá uma interrupção para uma subrotina adequada. Além do mais, existem várias interrupções no DSP que estão associadas a eventos no funcionamento seja da CPU, como dos diferentes periféricos. O DSP TMS320F2407 possui dois sinais não mascaráveis ( RS e NMI ), que não podem ser desabilitadas, e seis mascaráveis (INT1 à INT6), que podem ser programadas. O sinal de RS ocorre quando um sinal externo solicita que o DSP seja reiniciado ou então pelo contagem do watchdog, indicando que o mesmo passou do tempo estipulado. A interrupção associada a NMI ocorre quando tem-se um endereçamento incorreto na programação. Os sinais de interrupção INT1 à INT6 são associados a diferentes fontes de sinas de interrupção, sejam elas internas ou externas. Na figura 3.11 tem-se um esquema básico das entradas associadas para cada interrupção. Devido ao número de interrupções existentes, há um controlador de interrupções, conhecido como Peripheral Interrupt Expansion (PIE - Expansão das Interrupções dos Periféricos), que centraliza as diferentes interrupções geradas pelos eventos nos periféricos e outros pinos externos e arbitra uma determinada interrupção da CPU.

76 58 Existem dois grupos básicos de interrupção: Interrupção associada ao Gerenciador de Eventos (EV): Neste grupo estão as diversas interrupções geradas pelo Gerenciador de Eventos, através de seus temporizadores, comparadores e unidades de captura. Além disso, para cada um dos Gerenciadores de Evento (EVA e EVB) um sinal externo (PDPINTA e PDPINTB) que pode ser utilizado, por exemplo, para o sinal de sobrecorrente do módulo de potência controlado pelo sinal de PWM de algum dos gerenciadores. Este sinal externo controla diretamente a habilitação da saída PWM, levando as mesmas ao estado de alta impedância quando o mesmo estiver presente, diminuindo o tempo de resposta do DSP. Interrupção não associada ao Gerenciador de Eventos (Não EV) : Estas interrupções são geralmente associadas aos periféricos do DSP, ou então a dois sinais externos (XINT1 e XINT2). Este sinal ainda é dividido em alta e baixa prioridade. Isto é feito para ampliar o leque de opções e possibilitará a níveis diferentes de interrupção. Figura 3.13 Interrupção

77 CPU Comparadores 1,2,3 PIE Comparadores 4,5,6 59 Temporizador 2 Temporizador 4 Unidade de Captura 1,2,3 PDPINTA Unidade de Captura 4,5,6 EV XINT1 1,2 (Alta Prioridade) SPI,SCI,CAN, ADC (Alta Prioridade XINT1 1,2 (Baixa Prioridade) ADC (Baixa Prioridade ) Não EV SPI,SCI,CAN (Baixa Prioridade) Quanto a latência da interrupção deve-se considerar três fatores: A sincronização, que é o intervalo de tempo desde a solicitação de uma interrupção por algum periférico, devido a algum evento que a ocasionou, até que a solicitação é reconhecida pelo controlador PIE e convertida em uma solicitação à CPU; O tempo necessário para que a CPU reconheça a interrupção e inicie a captura da primeira instrução da tabela de interrupção da CPU; E ainda o tempo necessário para obter o código específico da interrupção desejada.

78 60 Uma discussão mais detalhada sobre o princípio de operação da interrupção, registradores envolvidos e fluxograma de operação encontra-se em [Texas Instruments, 2001] PROGRAMAÇÃO DO TMS240F24X Etapas para o desenvolvimento de um programa A programação dos DSPs introduziram um conceito chamado de COFF (Common Object File Format), onde o programa é dividido em seções, permitindo assim que diferentes times de desenvolvedores de software possam trabalhar em diferentes partes do programa, e no momento apropriado estes programas são ligados. A estrutura básica para elaboração de um programa para o DSP da Texas Instruments pode ser observada na figura Plataforma de Desenvolvimento.cmd.asm.obj.out Editor de Texto DSPA DSPLNK Debug.c.lst.map DSPCL Figura 3.14 Etapas para programação do DSP Os blocos que compõe as diferentes etapas de obtenção do arquivo executável para o DSP são descritos a seguir:

79 61 Editor de texto : o programa é digitado no editor de texto, cabendo ao usuário escolher a programação em assembly, salvando o arquivo com extensão.asm, ou então em linguagem C, salvando o programa com extensão.c ; DSPCL : Através deste aplicativo o programa em linguagem C é compilado passando para assembly; DSPA : Através deste bloco o programa em assembly é montado, verifica-se os erros como de sintaxe. Não havendo erros gera-se um arquivo objeto em linguagem de máquina, com extensão.obj; DSPLNK : Através deste bloco os diferentes arquivos objetos são ligados junto ao arquivo com extensão.cmd que identifica os recursos existentes no processador e onde as diferentes seções de cada módulo são alocadas. Como resultado obtém-se um único arquivo executável, com extensão.out, que é carregado no DSP pela ferramenta de desenvolvimento para assim poder executar o programa. Para programação do DSP TMS320F2407 pode-se optar por fazer sua programação em assembly ou em linguagem C. A facilidade de programação em linguagem de alto nível, com a linguagem C, tem tornado a escolha mais lógica pelos programadores, mas a programação em assembly é o ideal para aplicações em tempo real. O problema é que o desenvolvimento em assembly consome muito mais tempo de programação, além da necessidade de se conhecer profundamente a arquitetura do DSP, assim, muitas vezes optase por desenvolver o aplicativo em linguagem C e alguns pontos críticos utilizar rotinas em assembly Estrutura de um Programa em Assembly Um programa em assembly pode ser dividido em três seções principais: Código de programa : consiste de uma seqüência de instruções utilizadas para manipular dados. Mas estas instruções devem estar dentro de uma seção

80 62 apropriada. Para se definir uma seção deve-se utilizar uma diretiva, que é um comando em assembly, e para este caso deve-se utilizar a diretiva.text. A seção definida por esta diretiva é enviada para a memória do programa. Dados inicializados : são as constantes do programa mas que também podem ser utilizadas como valores iniciais para variáveis. Assim como no caso anterior também deve-se definir uma seção de constantes através de uma diretiva, no caso a diretiva.data, e depois, reservar-se uma área na memória utilizando outra diretiva, por exemplo, pode-se utilizar a diretiva.int. Esta seção também é armazenada na memória de programa. Dados não-inicializados: São as variáveis do programa, que poderão ser alteradas pela execução do programa. Para reservar uma área na memória também deve-se utilizar uma diretiva, neste caso, a diretiva.bss. O espaço é reservado na memória de dados do DSP. Na figura 3.15 pode-se observar a divisão das diferentes seções para suas respectivas áreas de memória Memória de Programa Flash Memória de Dados.bss.data.text RAM Figura 3.15 Divisão de seções do programa Modos de Endereçamento

81 63 Para o acesso a memória do DSP existem diferentes modos de acesso, cabe ao programador selecionar o modo adequado para as diferentes situações. Os três modos de endereçamento são: - Modo de Endereçamento Imediato - Modo de endereçamento Direto - Modo de Endereçamento Indireto Modo de Endereçamento Imediato No modo de Endereçamento Imediato utiliza-se diretamente as constantes, que podem ser endereçamento imediato curto ou longo. No caso endereçamento imediato curto a constante tem 8, 9 ou 13 bits, e a instrução requer apenas um registro de instrução, assim será realizada em apenas um ciclo de clock. No caso de endereçamento imediato longo a constante tem 16 bits sendo necessário dois registros de instrução que terão que ser enviados, assim serão necessários dois ciclos de clock. ADD #08h ADD #2543h Modo de Endereçamento Direto No modo de endereçamento direto a memória de dados é dividida em blocos de 128 palavras, chamada de página. Assim os 64 K destinados para a memória de dados serão

82 64 divididos em 512 páginas de 128 palavras, com índices de 0 até 511, como pode-se observar na figura A página que estiver sendo utilizada é determinada pelo apontador da página de dados (Data Page Pointer DP), de 9 bits que se encontra no registrador de status ST Words 512 Páginas Pag. 511 Pag. 2 Pag. 1 Pag. 0 Figura 3.16 Paginação de memória Assim, se houver a necessidade de acessar determinada página é necessário carregar inicialmente a página, para depois utilizar o offset na posição desejada. Para carregar a página utiliza-se a instrução LDP (Load Data Page Pointer) pelo menos uma vez, e deverá ser carregada toda vez que for necessário mudar de página. O offset para a posição desejada é dada pelos 7 bits menos significativos do registrador IR (Instruction Registrer). Endereçamento Indireto Para o endereçamento Indireto de memória são utilizado os oito Registradores Auxiliares AR0, AR1... AR7, e para o DSP saber qual dos registradores utilizar é utilizado o apontar de registrador auxiliar (Auxiliar Register Pointer - ARP) de três bits do registrador de estado ST0.

83 65 Para carregar o Registrador Auxiliar com determinado endereço da memória utiliza-se a instrução LAR (Load AR) CONTROLADOR CAN DO DSP TMS320F2407 O controlador CAN do DSP TMS320F2407 é o dispositivo que implementa as camadas 1 e 2 do protocolo de comunicação CAN. Dentro de suas características podese destacar as principais: Possibilidade de implementação do padrão 2.0 A ou 2.0 B Seis mailbox, registradores para armazenar os dados a serem enviados ou recebidos, com comprimento programável de 0 até 8 bytes. Dois registradores para transmissão, dois para recepção e dois programáveis tanto para transmissão ou recepção e mensagens; Filtros para recepção de mensagens individuais para cada mailbox de recepção; Retransmissão de mensagens automática ; Diagnóstico de erro, seja na mensagem ou no barramento CAN; Modo de auto-teste; Arquitetura do controlador CAN A arquitetura do controlador CAN dos DSP está representada na figura 3.17.

84 66 Figura 3.17 Controlador CAN O sistema é composto pelos seguintes componentes: - CPU Interface/ Memory Management Unit: responsável para a comunicação com a CPU do processador e gerenciamento da unidade de memória; - Control/status Registers Interrupt Logic: onde se localizam os registradores de status e controle do sistema, além da lógica que gera as devidas interrupções; - Transmit Buffer: Buffer de transmissão de dados, onde os dados são armazenados temporariamente aguardando serem transmitidos; - CAN Core: é o núcleo do modulo de comunicação da rede, que se comunica com o chip que faz a interface com a rede; - Temporary Receive Buffer: é o buffer de recebimento das mensagens, onde as mesmas são analisadas para verificar sua validade; - Acceptance Filter: é o filtro utilizado para verificar se as mensagens recebidas interessam ou não ao processador; - CAN Transceiver Chip: é o chip responsável para adequação do sinal do processador para as características elétricas do barramento CAN;

85 67 - Mailbox RAM: banco de memória de 16 bits onde ficam armazenadas as informações que serão enviadas ou recebidas; Mapa de memória do controlador CAN Os registradores para rede CAN estão mapeados na memória de dados do DSP TMS320F2407 entre os endereços 7100h e 7230h, com distribuição conforme a figura Registradores CAN Área Reservada Mailbox 0 Mailbox 1 Mailbox 2 Mailbox 3 Mailbox 4 Mailbox 5 CANMDER CANRCR CANBCR1 CANESR CANCEC CAN_IMR CANLAM0L CANLAM1L MSG_ID5L MSG_CTRL0 MBOX5A MBOX5C CANTCR CANMCR CANBCR2 CANGSR CAN_IFR CANLAM0H CANLAM1H Reservado MSG_ID5H Reservado MBOX5B MBOX5D Figura Mapa de memória do controlador CAN Além disso, cada mailbox tem associado um conjunto de registradores utilizados para armazenar os identificadores de cada mensagem além dos bytes de compõe a mensagem a ser transmitida.

86 Registradores do controlador CAN O modulo CAN contém 15 registradores de 16 bit, divididos em: Registradores de controle Registradores de status Registradores de interrupção Registradores de liberação local A seguir será apresentado um resumo da função de cada um, um maior detalhamento de cada um pode ser encontrado em [Texas Instruments, 2001]. Registradores de Controle MDER (Mailbox Direction/Enable Register): para habilitar ou desabilitar cada mailboxes e para configurar as mailboxes 2 e 3 quanto a sua utilização para transmissão ou recepção; TCR (Transmission Control Register): utilizada para controlar o processo de transmissão de mensagens. Para cada mailbox que pode transmitir tem-se um bit associado que indica se a mensagem foi enviada com sucesso ou se foi abortada. O início da solicitação de transmissão de um mailbox é feito através deste registrador. RCR (Receive Control Register): utilizada para controlar o processo de recepção de mensagens. A recepção ou perda de mensagem de cada mailbox é sinalizada por este registrador. Além disso a sinalização de sobrescrita de mensagem, e de sua proteção também é feito aqui. MCR (Master Control Register): para alterar o comportamento do núcleo do controlador CAN. Será possível controlar o acesso de escrita nos mailboxes,

87 69 possibilidade de controlar se o controlador desliga depois de enviar a mensagem, além da ordem de envio dos bytes de mensagem de um mailbox; BCR1 e BCR2 (Bit Configuration Register): utilizado para configurar a temporização do bit da rede CAN. Com este registrador controla-se a velocidade da rede, além dos ajustes para sincronização da mensagem; Registradores de status ESR (Error Status Register): Através deste registrador os diferentes tipos de erros como, de forma, de bit, CRC, stuff, entre outros, são sinalizados. Mas somente o primeiro erro é sinalizado, com a ocorrência dos outros não tem-se a alteração do registrador. GSR (Global Status Register): Com este registrador é possível por exemplo, se o módulo está recebendo ou transmitindo uma mensagem além disso se é possível alterar a configuração dos registradores BCR, além de outras funções. CEC (CAN Error Counter Register): Este registrador é o contador de erros seja de transmissão ou recepção, com o limite de 128 para cada um deles; Registradores de Interrupção IFR (Interrupt Flag Register): Este registrador sinaliza se qualquer uma das mailboxes enviou ou recebeu corretamente, além de servir como flag (sinalizador) para as interrupções de erros como erro de recepção de mensagem, erro de escrita no mailbox, além de outros; IMR (Interrupt Mask Register): É utilizado para selecionar se a interrupção gerada é de alta ou baixa prioridade;

88 70 Registrador de liberação local LAM0H e LAM0L (Local Acceptance Mask Register): Através destes registradores é possível mascarar os bits identificadores para recepção, permitindo a recepção de grupos de mensagens. Estes registradores controlam a recepção dos mailboxes 0 e 1; LAM1H e LAM1L (Local Acceptance Mask Register): Assim como o anterior, estes registradores são utilizados para mascarar os bits identificadores para recepção, permitindo a recepção de grupos de mensagens. Mas estes registradores controlam a recepção dos mailboxes 2 e 3; Mailbox O controlador CAN utiliza o mailbox como registradores temporários para transmissão e recepção de dados, tendo ao todo 6 mailboxes. Para transmissão utiliza os mailboxes 4 e 5, e para a recepção os mailboxes 0 e 1. Os mailboxes 2 e 3 são configuráveis, ou seja, estão disponíveis tanto para transmissão quanto para recepção. Cada mailbox tem a estrutura apresentada na tabela 3.5, onde n pode variar entre 0 e 5. Tabela. 3.5 Registradores associados a cada mailbox MSG_IDnL MSG_CTRLn MBOXnA MBOXnC MSG_IDnH Reservado MBOXnB MBOXnD Cada mailbox possui os seguintes registradores associados:

89 71 MSGIDnL e MSIDnH (Message Identifier for Low and High Word) : Estes registradores contém o identificador do mailbox, podendo ser o padrão, com 11 bits, ou o estendido, com 29 bits; MSGCTRLn (Message Control Filed) : Contém o número de bytes da mensagem, para transmitir ou receber, e a identificação se a mensagem é de dados ( Data Frame) ou é uma mensagem de resposta (Remote Frame); MBOXnA até MBOXnD contém os dados. Os dados são divididos em quatro palavras ou oito bytes. Na tabela 3.6 tem-se os endereços dos registradores associados a cada mailbox. Tabela 3.6 Endereços da memória de cada mailbox Mailboxes Registradores MBOX_0 MBOX_1 MBOX_2 MBOX_3 MBOX_4 MBOX_5 MSG_IDnL MSG_IDnH MSG_CTRLn A A A Reservada MBOXnA C C C MBOXnB D D D MBOXnC E E E MBOXnD F F F Cada registrador MBOXnA até MBOXnD tem 16 bits, armazenando a informação de dois bytes de mensagem, totalizando os oito bytes de comprimento máximo da mensagem a ser transmitida.

90 72 CAPÍTULO 4 MONTAGEM E TESTES BÁSICOS COM A REDE CAN 4.1 INTRODUÇÃO Neste capítulo serão abordados os primeiros passos para elaboração de uma rede CAN utilizando DSPs. Serão apresentados os algoritmos básicos que foram implementados para configuração do DSP e do controlador CAN do DSP, assim como as bibliotecas básicas criadas as com diferentes funções que permitiram trabalhar com os diferentes periféricos existentes no DSP. 4.2 PLATAFORMA DE DESENVOLVIMENTO Para permitir o desenvolvimento da aplicação foi utilizada a plataforma de desenvolvimento da Texas Instruments, que consiste em conjuntos conhecidos como starter kits DSK. Foi utilizado um kit denominado de ezdsptm LF2407, que consiste de uma placa, conforme a figura 4.1 e de um software, conhecido como Code Composer, que permite a programação e depuração de programas na placa de teste. Figura 4.1. Placa de desenvolvimento de projetos

91 73 As características básicas da placa são: - Processador DSP TMS320LF2407; - Velocidade 30 MIPS; - Memória RAM de 64 K words; - Memória Flash on-chip de 32 K words; - Oscilador 7,3728 MHz; - Controlador JTAG IEEE incorporado; Através da consulta da documentação da placa [Spectrum Digital, 2000] pode-se ter maiores informações para a utilização da mesma. Como comentado, o software utilizado para o desenvolvimento do projeto é o Code Composer, que é um ambiente de programação que trabalha cada programa como um projeto, como pode ser visto na figura 4.2. Figura 4.2 Exemplo do ambiente de trabalho

92 74 Através da filosofia de desenvolvimento de projeto é possível compor a programação que se utiliza com os diversos programas necessários além do arquivo fonte do programa, como, por exemplo, o arquivo dos vetores de interrupção, bem como, dos registradores do DSP. Além das placas de DSP, foram utilizadas placas adicionais que permitiram a conexão do DSP ao barramento CAN e também com chaves e leds, que foram utilizadas para simular diferentes funções no projeto. Tem-se na figura 4.3 um esboço da placa PL1. C1 LEDS Placa PL1 C2 Transceiv er CAN CHAVES Figura 4.3 Esboço da placa PL1 Do esboço da placa PL1 pode-se identificar alguns componentes: - Conector C1: Utilizado para fazer a conexão da placa com a placa do DSP; - Conector: Saída da placa PL1 para a conexão com a rede CAN; - Barramento de leds : É um conjunto de 8 leds que estão conectadas à PORT E do DSP, através do conector C1; - Chaves : É um conjunto de 8 chaves que estão conectadas a PORT A do DSP, através do conector C1;

93 75 - Transceiver CAN : É o circuito integrado responsável pela adaptação do sinal CAN TTL do DSP para as características elétricas do barramento CAN; Na figura 4.4 tem-se uma foto da placa PL1. Figura 4.4 Foto da placa PL CONFIGURAÇÃO DO DSP Para iniciar a operação do DSP é necessário informar ao compilador alguns requisitos para que o mesmo possa fazer as alterações de parâmetros necessárias no processador através do programa gerado. Para facilitar o uso na programação da rede CAN, foi criada uma função de inicialização genérica do DSP, chamada ini_dsp ( ). Assim, sendo necessária a alteração de algum parâmetro, seja habilitar algum periférico ou alterar o CLOCK de trabalho do processador, nesta função estão os parâmetros para fazer as alterações desejadas. Na figura 4.5 tem-se o algoritmo da função com os comentários sobre as diferentes etapas logo a seguir.

94 76 INICIALIZAÇÃO DO DSP ini_dsp ( ) INÍCIO INTM=1 WDCR=06h Configurar SCR1 WSGR=00h Inicializar MCRA, MCRB MCRC FIM Figura Algoritmo da função de inicialização do DSP Como principais etapas do processo de inicialização do DSP pode-se ressaltar: a) Desabilitar a interrupção do DSP fazendo que o bit INTM seja levado ao valor unitário. IsSo é muito importante para que as interrupções somente ocorram a partir do instante que, tanto o processador, quanto os periféricos, estejam programados, tento-se assim o tratamento da interrupção adequado; b) Desabilitar o watchdog ; c) Alterar o registrador SCR1, que é responsável pelo fator de multiplicação da freqüência interna a ser utilizada pelo DSP, e por ativar os periféricos. Assim, inicialmente é necessário habilitar o módulo do periférico da rede CAN. Depois disso, quando se for utilizar o conversor analógico/digital, ou então o

95 77 gerenciador de eventos, para trabalhar com os temporizadores, ou com sinal PWM, é necessário alterar novamente o registrador SCR1; d) Como não será utilizada nenhuma memória externa pode-se zerar o valor do registrador WSGR, que gera os atrasos para acesso ao barramento externo; e) Como opcional, foi incluída, ainda, nesta função, a parametrização das entradas e saídas digitais do sistema. E, como no caso anterior, se for utilizada alguma entrada analógica ou saída PWM, será necessário fazer as devidas alterações na configuração deste registrador. Na figura 4.6 tem-se a função de inicialização do DSP, já com os valores atribuídos para a configuração desejada. void ini_dsp(void) { asm (" setc INTM"); /*Desabilita todas as interrupções */ *WDCR= 06Fh; /* Desabilita o watchdog */ *SCSR1= ((CLKSRC<<14)+(LPM<<12)+(CLK_PS<<9)+(ADC_CLKEN<<7)+ (SCI_CLKEN<<6)+(SPI_CLKEN<<5)+(CAN_CLKEN<<4)+ (EVB_CLKEN<<3)+(EVA_CLKEN<<2)+ILLADR); /* Neste registrador faz-se a seleção do CLOCK utilizado, além da habilitação de cada um dos periféricos */ WSGR = 0000h; /* Ajusta waitstates Não utiliza memória externa */ /* Configuração das entradas/saídas digitais */ *MCRA = 0000h; /* Inicializa MCRA (Master Control Register A ) */ *MCRB = 00C3h; /* Inicializa MCRB (Master Control Register B ) */ Figura 4.6. Função para inicialização do DSP

96 78 Algumas observações podem ser feitas em relação a função de inicialização da figura 4.6. Para desabilitar a interrupção utilizou-se uma instrução em assembly do bit INTM do registrador ST0; Como não está prevista a utilização do watchdog, o mesmo foi desabilitado. Com uma consulta à [Texas Instruments, 1999] pode comprovar os valores atribuídos; No registrador SCR1 habilitam-se os diferentes periféricos. Como em alguns casos utiliza-se a entrada analógica convencionou-se que ficarão ligados, além do controlador CAN, o módulo de A/D e gerenciadores de eventos A e B; Como não será utilizada a memória externa, o tempo de espera, waitstate, foi zerado; Como padrão as saídas foram configuradas para o acesso as saídas, através de MCRA, MCRB e MCRC, para a rede CAN, a PORT A do DSP como entrada e a PORT E como saída MONTAGEM DE UM NÓ Para se obter um nó, foram ligados, através de um cabo, o conector P8 da placa de DSP e o conector C1 da placa PL1, conforme tem-se na figura 4.7. Placa de P8 C1 Placa PL1 C2 Figura 4.7 Esquema de ligação para obtenção de um nó da rede

97 79 Como o transceiver se encontra na placa PL1, a placa de DSP envia o sinal digital para a placa PL1, e está por sua vez conecta-se à rede através do conector C2. Na figura 4.8 tem-se o esquema de ligação entre dois nós, formando o esquema básico de uma rede CAN com dois nós, que será utilizado futuramente para o teste dos primeiros algoritmos. Placa de P8 Placa de P8 C1 Placa PL1 C2 C1 Placa PL1 C2 Figura 4.8 Esquema de ligação entre dois nós Após a montagem do esquema anterior a parte de montagem física da rede está completa. Pode-se passar para a próxima etapa, que é da elaboração do software para configuração do DSP e implementação de algoritmos de teste da rede CAN PROCESSO DE CONFIGURAÇÃO DE PARÂMETROS DA REDE CAN O processo de configuração da rede CAN consiste da alteração de parâmetros da rede CAN. Mas, para qualquer alteração desses parâmetros, faz-se necessário que o controlador CAN entre em modo de alteração de parâmetros, o que somente pode ser obtido através de uma seqüência de alteração do valor de determinados registradores. Para isso, tem-se na figura 4.9 o algoritmo para alteração desses parâmetros.

98 80 Pode-se observar que a etapa para alteração dos registradores BCR1 e BCR2, que altera a configuração de velocidade da rede CAN, pode ser dividida nos principais pontos: INICIALIZAÇÃO DA CAN ini_can ( ) INÍCIO INICIALIZA AS MATRIZES DOS MAILBOXES CCR = 1 CCE==1 N S Configurar BCR2, BCR1 CCR = 0 CCE==0 N S FIM Figura 4.9 Algoritmo para inicialização dos parâmetros a) Escreve-se 1 no registrador CCR. Através deste comando ocorre uma solicitação ao controlador CAN para entrar em modo de alteração de parâmetros; b) É necessário aguardar um intervalo de tempo para que o controlador CAN reconheça a solicitação e libere a alteração de parâmetros sinalizando através da alteração do registrador CCE para o valor unitário; c) Neste instante o controlador CAN está em modo de alteração dos parâmetros e é possível que os dados desejados sejam alterados;

99 81 d) Após a alteração de dados deve-se retornar ao modo de operação normal e para isto escreve-se o valor nulo no registrador CCR, solicitando ao controlador para sair do modo de alteração de parâmetro; e) Novamente é necessário aguardar que a solicitação seja atendida pelo controlador, que acontecerá quando este alterar o valor do registrador CCE para um valor nulo. void ini_can(void) { unsigned int i; for (i=0;i<6;i++){ /* programacão dos ponteiros para as mailboxes */ CANMSGIDL[i] = (unsigned int *)(0x7200 +i*8); CANMSGIDH[i] = (unsigned int *)(0x7201 +i*8); CANMSGCTRL[i] = (unsigned int *)(0x7202 +i*8); CANDATA0[i] = (unsigned int *)(0x7204 +i*8); CANDATA1[i] = (unsigned int *)(0x7205 +i*8); CANDATA2[i] = (unsigned int *)(0x7206 +i*8); CANDATA3[i] = (unsigned int *)(0x7207 +i*8); } /* Inicialização do registrador MCR ( Master Control Registers ) */ *CAN_MCR = ((CAN_SUSP<<13)+(CAN_CCR<<12)+(CAN_PDR<<11)+ (CAN_DBO<<10)+(CAN_WUBA<<9)+(CAN_CDR<<8)+ (CAN_ABO<<7)+(CAN_STM<<6)+CAN_MBNR ); while((*can_gsr & 0x0010) == 0 ); */ /* Espera para confirmação da habilitação de CCR para alteração de parâmetros *CAN_BCR2 = CAN_BRP; *CAN_BCR1 = ((CAN_SBG<<10)+(CAN_SJW<<8)+(CAN_SAM<<7)+ (CAN_TSEG1<<3)+(CAN_TSEG2)); /* Inicialização de BCR2 e BCR1 */

100 82 Figura Função de inicialização da rede CAN Da figura 4.10, pode-se observar que na função de inicialização da rede CAN foram criadas matrizes que mapeiam todos os mailboxes existentes, tornando a função mais flexível, pois na eventualidade de se utilizar todos os mailboxes e havendo a necessidade de enviar 8 bytes, a função já está adaptada. Além disso, foi utilizada uma função while para monitorar a alteração de determinado bit, para somente depois disso passar para o estágio seguinte PROCESSO DE TRANSMISSÃO DE DADOS O processo de transmissão de um dado através da rede CAN ocorre em duas etapas: Carga do dado no mailbox. Nesta etapa o dado é carregado no mailbox, definese o número de bytes da mensagem e o valor do identificador da mensagem. Transmissão. Nesta etapa é feita uma solicitação de transmissão do mailbox desejado. O controlador CAN confirma a solicitação da transmissão e aguarda até que o barramento esteja livre e obtenha o controle do mesmo. Quando terminar a transmissão sinaliza o término do processo. Para os testes iniciais para transmissão de uma mensagem utilizou-se o mesmo esquema de ligação proposto na figura 4.8, elaborando-se os dois algoritmos para carga e transmissão da mensagem Algoritmo para Carga de Dados em Mailbox. Para facilitar a utilização durante as diferentes etapas do programa, foi desenvolvido o algoritmo da figura 4.11, de carga de dados no mailbox 5. Havendo a necessidade de se utilizar mais de um mailbox para transmitir, a mesma função pode ser utilizada, bastando-se para isso adequar os endereçamentos dos registradores. As etapas envolvidas no processo são:

101 83 a) Solicitação de entrada em modo de alteração de parâmetros. Como na inicialização do controlador, para qualquer alteração do conteúdo dos registradores, é necessário entrar neste modo de operação, caso contrário um erro irá ser gerado no instante em que se for tentar escrever na mailbox; b) Aguardar confirmação de liberação de escrita na mailbox. Se não houver um retorno da liberação, corre-se o risco de, como no caso anterior, gerar um erro por tentativa de escrita; CARREGA MAILBOX 5 can_mailbox5 ( ) INÍCIO CCR = 1 CCE==1 N S Configurar identificador e CTRL Escrever dado no MAILBOX CCR = 0 CCE==0 N S MDER IMR FIM Figura 11. Algoritmo para carregar dados no mailbox 5

102 84 c) Nesta etapa tem-se a alteração de parâmetros propriamente dita. Alteram-se os valores dos bits identificadores, dos registradores de controle do mailbox e dos dados a serem transmitidos; d) Após a alteração dos parâmetros tem-se a solicitação para entrar em modo de operação, para possibilitar o envio de mensagens; e) Finalizando, faz-se a habilitação do mailbox e da interrupção equivalente; O algoritmo gerou uma função intitulada can_mailbox5( ), da figura void can_mailbox5(void) { *CAN_MCR = 0x0100; /* habilita o acesso ao campo de dados (CAN_MCR-bit 8 = 1) */ /********************************************************/ /* carrega parâmetros do mailbox 5 */ *CANMSGIDH[5]=((MB5_IDE<<15)+(MB5_AME<<14)+(MB5_AAM)+ (MB5_ID_STD<<2)); *CANMSGIDL[5]= MB5_ID_EXTL; /**** bits de identificação da mensagem *****/ *CANMSGCTRL[5]=0x0001; /* Bit 4 : RTR = 0 : define que é um data frame */ /* Bits 3-0 : DLC = 0001 = 1 Byte a ser transmitido */ *CANDATA0[5] = 0x00aa; /* DADO A SER TRANSMITIDO */ /********************************************************/ /* desabilitar o acesso ao campo de dados(can_mcr bit 8 = 0) */ *CAN_MCR &= 0xFEFF ; Figura Função de carga de dados no mailbox 5 Algumas considerações devem ser feitas em relação a função desenvolvida:

103 85 Na habilitação do registrador MCR deve-se utilizar uma função OU com o próprio registrador, preservando, com isso, dados presentes, pois pode-se ter um outro bit ativo anteriormente em outra situação; Pode-se observar o reflexo da flexibilização durante a configuração dos registradores CAN, pois agora para salvar algum valor em um dos mailbox basta salvar na matriz, com o índice adequado; Um fato que deve ser observado é na definição do número de bytes a ser transmitido, feita no registrador CANMSGCTRL; Também nos bytes a serem transmitidos, deve-se fazer a alteração no registrador CANDATA0, e até adicionando ou outros registradores, se for necessário enviar mais dados; Também na habilitação do mailbox e de sua respectiva interrupção, faz-se necessário utilizar uma função lógica OU com o próprio registrador, preservando alterações passadas Algoritmo para Transmissão de Dados do Mailbox 5. O processo de transmissão de uma mensagem pelo mailbox, após os dados terem sido carregados, é feito uma solicitação ao controlador CAN para que determinado nó tenha acesso ao barramento. Quando este atende a solicitação, inicia-se a disputa do controle do barramento pelo nó em questão, que vai depender do identificador da mensagem a ser transmitida. Após o término da transmissão, o nó é informado se a transmissão foi feita com sucesso. Na figura 4.13 tem-se o algoritmo para transmissão do mailbox 5. Através do algoritmo pode-se identificar as seguintes etapas:

104 86 a) Inicialmente tem-se a solicitação para a transmissão de um dado, colocando o bit equivalente no registrador TRS em 1; b) Como segunda etapa é necessário aguardar a liberação para transmissão por parte do controlador; c) Após o reconhecimento da solicitação de transmissão inicia-se o processo de negociação da mensagem com a rede CAN, onde irá prevalecer as mensagens de maior prioridade. Quando esta etapa for finalizada, o flag equivalente do mailbox no registrador IFR será ativado; d) Finalizando, deve-se zerar a interrupção associada ao mailbox; TRANSMITE MAILBOX 5 can_transmit5 ( ) INÍCIO TRSn = 1 TCR==1 N S IFR==0 S N TA = 1 FIM Figura 4.13 Algoritmo para transmissão de mensagem pelo mailbox 5 Do algoritmo resulta em uma função de transmissão do mailbox 5, can_transmit ( ), na figura 4.14, que, havendo a necessidade da utilização de uma outra mailbox, pode-se

105 87 utilizar a mesma seqüência, bastando apenas ajustar os bits para a mailbox desejada [Texas Instruments, 2000]. Na função de transmissão, na figura 4.14, pode-se observar a utilização de dois laços while onde tem-se, inicialmente aguardando a resposta do processador, a solicitação de transmissão de uma mensagem, e a outra, aguardando a confirmação que a mensagem foi enviada. Deve-se observar ainda que, quando for feito o reset, um outro flag do registrador pode estar ativo, por isso, novamente foi utilizado uma função OU, preservando o restante dos dados. Se for utilizado o processo de polling para a transmissão de dados não se utiliza o flag de transmissão [Texas Instruments, 2000]. void can_transmit5(void) { *CAN_TCR = 0x0080; /* Solicitação de transmissão(trs)mailbox#5 */ while((*can_tcr & 0x8000) ==0); /* espera ACK de transmissão */ /* mailbox #5 : Bit 15 = 1 */ while((*can_ifr &= 0x2000)==0); /* espera por Flag do mailbox5 --> MIF5= 1 */ *CAN_TCR = 0x8000; /* Reset TA e flag de interrupção associado */ Figura 4.14 Função para transmissão do mailbox PROCESSO DE RECEPÇÃO DE DADOS Assim como no processo de transmissão, tem-se duas etapas a cumprir. Inicialmente é necessário que seja feita a configuração do mailbox com os parâmetros adequados para a recepção da mensagem, para, posteriormente, quando a interrupção por mensagem recebida for ativada, fazer a transferência do conteúdo dos registradores de dados do mailbox para variáveis utilizadas para tal fim Configura Mailbox para Recepção

106 88 Nesta etapa de configuração da mailbox de recepção, faz-se a atualização dos bits identificadores de recepção de mensagens, além da definição se será ou não utilizada uma máscara de recepção, e também a definição se a interrupção associada ao mailbox será de baixa ou alta prioridade. Na figura 4.15 tem-se o algoritmo com as etapas para configuração do mailbox 0. CONFIGURA MAILBOX 0 - RECEPÇÃO ini_mailbox0 ( ) INÍCIO Configurar LAM0_H, LAM0_L Desabilitar mailbox CCR=1 Configurar Identificador CCR = 0 Habilitar mailbox Habilitar Interrupção FIM Figura Configuração do mailbox 0 As principais etapas do algoritmo de configuração são: a) Atualização dos valores para a máscara a ser utilizada, quando for, para o respectivo mailbox;

107 89 b) Desabilitar o mailbox. Esta etapa é necessária para evitar que eventualmente uma mensagem possa ser recebida indevidamente no processo de configuração, e depois isto é necessário para permitir o acesso aos parâmetros de configuração do mailbox; c) Entrar com o bits identificadores da mensagem de recepção e também a quantidade de bytes a ser recebido; d) Finalizada a fase de configuração pode-se desabilitar o acesso aos parâmetros de configuração e habilitar o respectivo mailbox; e) Habilitar a interrupção do respectivo mailbox. Na figura 4.16 tem-se a função de configuração do mailbox 0 para recepção. void ini_mailbox0( ) { /* prepara máscara de aceitação local para mailbox 0 */ *CAN_LAM0_H = 0xFFFF; *CAN_LAM0_L = MB0_LAML; /* desabilita todas as mailboxes */ *CAN_MDER = ((CAN_MD<<6)+CAN_ME); /* habilita o aceso ao campo de dados (MCR-bit 8 = 1) */ *CAN_MCR = 0x0100; /* prepara mailbox 0 para receber os bits identificadores da mensagem */ *CANMSGIDH[0]=((MB0_IDE<<15)+(MB0_AME<<14)+(MB0_AAM<<13)+ (MB0_ID_STD<<2)); *CANMSGIDL[0]= MB0_ID_EXTL; /* desabilita o acesso ao frame de dados (MCR bit 8 = 0) */ *CAN_MCR &= 0xFEFF ; /* habilita o mailbox #0 como receptor */ *CAN_MDER =0x0001; *CAN_IMR = 0xA100;

108 90 Figura 4.16 Função para inicialização do mailbox 0 Pode-se observar pela função de inicialização da figura 4.16, que os parâmetros de configuração necessários são os bits identificadores, assim como a definição de que tipo de mensagem ele poderá receber, somente o formato padrão, ou mesmo o estendido. Além disso a habilitação dos mailboxes desejados também é feita por esta função Recepção de Mensagens Após uma mensagem válida ter sido recebida por determinado mailbox, existe a necessidade desta mensagem ser transferida para uma variável destinada a este fim, antes que uma nova mensagem sobrescreva a anterior, ocasionando a perda da mesma. Assim, foi desenvolvida uma função utilizada somente para este fim, o de transferir a informação contida na mailbox para uma variável, cujo algoritmo se encontra na figura CARREGA DADOS DO MAILBOX can_receive ( ) INÍCIO RMPn==1 N S MIF0==0 N S RMPn=1 CARREGA OS DADOS FIM Figura 4.17 Algoritmo para recepção da mensagem

109 91 Para a transferência dos dados contidos no mailbox muita vezes utilizam-se matrizes, pois facilitam a manipulação dos diferentes bytes de mensagens. Com isso obteve-se uma função utilizada para carregar os dados que se encontram nos registradores de recepção de mensagem, que se encontra na figura 4.18, no caso particular da função ela utiliza o mailbox 0 para a recepção de dados. void can_receive0(void) { while((can_rcr & 0x0010) ==0); /* espera por recepção de mensagens pendentes */ /* mailbox #0 : Bit 4 = 1 */ while((can_ifr &= 0x0100)==0); /* espera por MIF0= 1 */ CAN_RCR = 0x0010; /* Reseta RA e o flag de interrupcão */ id= *CANMSGIDH[0]>>2; dado0= *CANDATA0[0]; } Figura 4.18 Recepção de dados pela mailbox TESTES PARA VALIDAÇÃO INICIAL DA REDE DESENVOLVIDA Nesta primeira etapa procurou-se fazer a validação dos algoritmos iniciais elaborados, seja de configuração, recepção e transmissão, e, além disso, as diferentes características da rede CAN. Para isso, foi montado o conjunto formado por dois nós, conforme a figura Placa de P8 Placa de P8 C1 Placa PL1 C2 C1 Placa PL1 C2

110 92 Figura 4.19 Montagem para teste inicial de algoritmos Cada nó é composto por uma placa da Texas Instruments, modelo ezdsptmlf2407, e cada placa foi carregada com um programa padrão que se encontra no apêndice B. Este programa é um programa genérico para comunicação utilizando a rede CAN, incorporando as funções de inicialização, transmissão e recepção através da rede CAN. Algumas outras funções como leitura da entrada analógica e tratamento de interrupções também foram incluídas. Para cada um dos testes descritos a seguir o programa de determinado nó pode sofrer alterações, que são comentadas em cada teste quando tal fato ocorre. Deve-se ressaltar que a seguir tem-se a descrição dos testes mais relevantes aplicados, visto que, diversos outros foram aplicados mas por sua própria simplicidade não são mencionados aqui. 1) Teste dos bits identificadores da mensagem de dados: Objetivo: Avaliar os bits identificadores que fazem parte da mensagem de dados conforme a seção ; Inicialmente o nó transmissor foi programado para o padrão 2.0 A, com 11 bits identificadores. Para facilitar a identificação e algumas outras características, como provocar a inserção do bit stuff, todos os bits identificadores foram programados com nível lógico 1, ou seja, o valor de 07ff foi armazenado no respectivo registrador. Para o teste inicial não foi enviado nenhum dado, ou seja, os bits DLC estão todos em 0, e com isso obteve-se a curva da figura a b c d e f

111 93 Os pontos identificados nesta figura são: Figura Sinal do barramento CAN a) SOF (Start of Frame) : Início da mensagem, sempre em nível zero; b) São cinco bits ( D10 D6) dos bits identificadores, todos em nível lógico 1; c) É um stuff bit, pois após cinco bits seguidos terem o mesmo nível lógico é inserido um bit com nível lógico oposto aos antecessores. Lembrando que para o padrão de mensagem 2.0 A podemos ter até 23 stuff bit ; d) Mais cinco bits ( D5 D1) dos bits identificadores, também em nível lógico 1; e) Mais um stuff bit ; f) O último bit identificador ( D0 ), também em nível lógico 1. Pode-se observar, pela figura 4.19, que com todos os bits identificadores com nível lógico 1, no envio da mensagem o controlador CAN insere alguns bit stuff na mensagem, o que vem comprovar uma das características da rede CAN, conforme apresentado na seção ) Verificação dos bits de controle da mensagem de dados Objetivo: Comprovar o comportamento dos bits de controle, conforme seção , no envio de um byte de mensagem. Após os bits identificadores temos os seguintes bits: RTR (1 bit ): em 0 caracteriza uma mensagem de dados, em 1 uma solicitação de mensagem;

112 94 IDE (1 bit): em 0 a mensagem é padrão 2.0 A, com 11 bits de identificação, em 1 a mensagem é padrão 2.0 B, padrão estendido com 29 bits de identificação; R0 (1 bit): reservado, sempre em 0; DLC (4 bits): indica quantos bytes ( 0 até 8 ) serão transmitidos, podendo variar entre 0000 até Fazendo o envio de apenas um byte, com todos em nível alto, DLC=0001, obtém-se o sinal no barramento conforme a figura com isso tem-se Bits Identificadores Stuff Bit SO Bits de Controle Bits de Dados Figura Bits de controle no barramento CAN Da mesma forma, pode-se observar na figura 4.21 a inclusão de um stuff bit entre os bits de controle, visto que os bits de controle RTR,IDE e R0 estão todos em 0, e o DLC está com 0001 ( ), o que levaria a termos 6 bits seguidos em nível lógico 0, assim após os cinco bits em 0, foi introduzido um bit em nível lógico 1, para depois termos o sexto bit nulo e o último bit do DLC. Depois disso, tem-se na seqüência os bits da mensagem enviada, todos em nível lógico alto.

113 95 3) Envio de mais bytes de mensagem Nesta etapa implementou-se o envio de um número maior de bytes na mesma mensagem. Para chegar a enviar até 8 bytes basta alterar a informação armazenada nos bits do DLC e conseqüentemente armazenar os dados nos registradores equivalentes. Para isso foi utilizado o mesmo programa e para cada situação foi acrescentado o número de bytes enviados, conforme a tabela 4.1. Tabela 4.1 Testes com variação de nr de bytes enviados Nr DLC3 DLC2 DLC1 DLC0 MBOX5A MBOX5B MBOX5C MBOX5D Bytes h 00h 00h 00h Fh 00h 00h 00h FFh 00h 00h 00h FFh 0Fh 00h 00h FFh FFh 00h 00h FFh FFh 0Fh 00h FFh FFh FFh 00h FFh FFh FFh 0Fh FFh FFh FFh FFh Deve-se observar que não basta trocar o programa de transmissão, mas na recepção é necessário prover as alterações necessárias para que as informações enviadas sejam processadas. A pesar que estas alterações podem ser simplesmente aumentar o número de variáveis destinadas para o armazenamento da informação, conforme foi efetuado. Este teste foi realizado sem maiores problemas.

114 96 4) Teste de transmissão de mensagens com diferentes mailboxes Como apresentou-se na seção 3.9.5, os mailboxes 4 e 5 são unicamente para a transmissão, mas os mailboxes 3 e 2 podem ser programados para servirem como transmissores ou receptores, para isto basta alterar o registrador MDER, através dos bits 7 e 6, respectivamente, deste registrador. Além disso é necessário que, para sua utilização, determinado mailbox deva ser habilitado, o que, neste caso, é feito no mesmo registrador MDER. Para carregar os dados em uma das novas mailboxes desejadas, pode-se utilizar a função da figura 4.14, alterando basicamente os valores relativos aos valores para o mailbox desejado, conforme o mapa de memória da tabela 3.6.Para a função de transmissão, obteve-se três novas funções, conforme as figuras 4.22 à void can_transmit4(void) { *CAN_TCR = 0x0040; /* Solicitação de transmissão(trs)mailbox#4 */ while((*can_tcr & 0x4000) ==0); /* espera ACK de transmissão */ /* mailbox #4 : Bit 14 = 1 */ while((*can_ifr &= 0x1000)==0); /* espera por Flag do mailbox4 --> MIF4= 1 */ *CAN_TCR = 0x4000; /* Reset TA e flag de interrupção associado */ 4.22 Função para transmissão com mailbox 4 void can_transmit3(void) { *CAN_TCR = 0x0020; /* Solicitação de transmissão(trs)mailbox#3 */ while((*can_tcr & 0x2000) ==0); /* espera ACK de transmissão */ /* mailbox #3 : Bit 13 = 1 */ while((*can_ifr &= 0x0800)==0); /* espera por Flag do mailbox3 --> MIF3= 1 */ *CAN_TCR = 0x2000; /* Reset TA e flag de interrupção associado */ 4.23 Função para transmissão com mailbox 3

115 97 void can_transmit2(void) { *CAN_TCR = 0x0010; /* Solicitação de transmissão(trs)mailbox#2 */ while((*can_tcr & 0x1000) ==0); /* espera ACK de transmissão */ /* mailbox # : Bit 12 = 1 */ while((*can_ifr &= 0x0400)==0); /* espera por Flag do mailbox2 --> MIF2= 1 */ *CAN_TCR = 0x1000; /* Reset TA e flag de interrupção associado */ 4.24 Função para transmissão com mailbox 2 5) Teste de recepção de mensagens com diferentes mailboxes Da mesma forma como o teste anterior, os mailboxes 3 e 2 podem ser programados para servirem como receptores, enquanto os mailboxes 0 e 1 são unicamente receptores, sendo necessário, como da vez anterior alterar o registrador MDER, através dos bits 7 e 6, bem como é necessário a habilitação do mailbox em que deseja fazer a recepção, também neste registrador. Para a configuração dos mailboxes receptores pode-se utilizar a função da figura 4.16, bastando alterar a informação relativa a identificação da mensagem, conforme a tabela 3.6. Assim como no caso da transmissão, o teste para recepção de mensagens por outros mailboxes gerou três novas funções, que são apresentadas nas figuras 4.25 à 4.27, a seguir. void can_receive3(void) { while((can_rcr & 0x0080) ==0); /* espera por recepção de mensagens pendentes */ /* mailbox #3 : Bit 7 = 1 */ while((can_ifr &= 0x0800)==0); /* espera por MIF3= 1 */ CAN_RCR = 0x0010; /* Reseta RA e o flag de interrupcão */ id= *CANMSGIDH[3]>>2; dado3= *CANDATA0[3]; } 4.25 Função para recepção com mailbox 3

116 98 void can_receive2(void) { while((can_rcr & 0x0040) ==0); /* espera por recepção de mensagens pendentes */ /* mailbox #0 : Bit 6 = 1 */ while((can_ifr &= 0x0400)==0); /* espera por MIF4= 1 */ CAN_RCR = 0x0040; /* Reseta RA e o flag de interrupcão */ id= *CANMSGIDH[2]>>2; dado2= *CANDATA0[2]; } 4.26 Função para recepção com mailbox 2 void can_receive1(void) { while((can_rcr & 0x0020) ==0); /* espera por recepção de mensagens pendentes */ /* mailbox #0 : Bit 5 = 1 */ while((can_ifr &= 0x0200)==0); /* espera por MIF1= 1 */ CAN_RCR = 0x0020; /* Reseta RA e o flag de interrupcão */ id= *CANMSGIDH[1]>>2; dado0= *CANDATA0[1]; } 4.27 Função para recepção com mailbox 1 6) Teste de filtragem de mensagens Para este teste não foi enviado nenhum dado, mas simplesmente foram atribuídos diferentes valores para os identificadores do transmissor e alterou-se a máscara dos receptor para comprovar o funcionamento da utilização do artifício do uso de máscara para limitar o número de mensagens que são processadas por determinado nó.

117 99 No transmissor a alteração necessária é somente a alteração dos registradores MSG_ID5L e MSG_ID5H,que são responsáveis pelo armazenamento dos bits identificadores do mailbox 5. Para o nó receptor os testes foram realizados utilizando os diferentes mailboxes receptores, isto é, os mailboxes de 0 até 3. Assim, para os mailboxes 0 e 1 é necessário alterar o valor dos registradores CANLAM0H e CANLAM0L, e para os mailboxes 2 e 3 é necessário alterar o valor dos registradores CANLAM1H e CANLAM1L. Além disso, para ambos os casos é necessário habilitar a utilização das máscaras, o que é feito atribuindo o valor 1 para o bit AME, no registrador MSGIDnH, onde o n refere-se ao mailbox utilizado. O teste ocorreu com sucesso, onde os valor utilizados tanto no mailbox transmissor quanto no mailbox receptor estão na tabela 4.2. Lembrando que, quando um determinado bit da máscara estiver em nível lógico nulo (=0) o bit correspondente, tanto do transmissor quanto do receptor, devem ser os mesmos, se determinado bit da máscara estiver em nível lógico alto (=1) não existe uma verificação daquele bit. Tabela 4.2 Teste da máscara de recepção ID do mailbox 5 ID do mailbox Máscara utilizada Status (transmissor) receptor Mensagem não aceita Mensagem aceita Mensagem aceita Mensagem não aceita Mensagem aceita Mensagem aceita Mensagem aceita Mensagem não aceita Mensagem não aceita Mensagem aceita

118 100 Os valores apresentados na tabela foram aplicados para cada um dos mailboxes de recepção, e os resultados apresentados sempre foram positivos, não havendo nenhum instante em alguma mensagem, onde os bits identificadores do nó transmissor e do receptor não coincidiram, tivesse sido aceita e não houvesse um bit da máscara para permitir que tal fato viesse a acontecer. 7) Teste de utilização de interrupção para leitura da mensagem Para os testes realizados até o momento no processo de recepção sempre se utilizou a técnica de polling, ou seja, periodicamente fazia-se a verificação se alguma mensagem havia chegado. Este método muitas vezes não é recomendado pois existe a necessidade de constantemente ter que interromper o programa e fazer esta verificação, o que, se tivermos uma seqüência de mensagens sendo recebidas pode até ocasionar a perda de alguma das mensagens. Assim, na maioria dos casos recomenda-se a utilização da interrupção para fazer a recepção de mensagens, isto é, quando uma determinada mensagem é recebida por uma determinada mailbox, o controlador CAN do DSP dispara a interrupção equivalente. Após o tratamento da interrupção o DSP poderá voltar a execução normal do programa. Para a teste utilizou-se a INT 1, cuja habilitação deve ser feita através do registrador IMR, e, além disso é necessário habilitar a interrupção equivalente do próprio controlador CAN, feita no registrador CAN_IFR. Além disso, é preciso que se faça a verificação, dentro do tratamento da interrupção se esta foi ocasionada pela rede CAN, e não por algum outro evento associado a essa interrupção. Isto pode ser feito fazendo-se a verificação do código da interrupção gerada, feito no registrador PIVR. Assim, obteve-se a função para o tratamento da rede CAN da figura 4.28.

119 101 interrupt void c_recep(void) { if((pivr == 0x0040) && { can_receive(); (CAN_RCR & 0x0010)) } } IFR=0x00ff; CAN_RCR = 0x0010; Figura 4.28 Rotina para verificação da interrupção por mensagens Deve-se observar que, depois do tratamento da interrupção, é necessário habilitar novamente a interrupção da rede CAN, preparando para receber uma nova mensagem, feito através do registrador CAN_RCR.

120 102 CAPÍTULO 5 DESENVOLVIMENTO DE ALGORITMOS 5.1. INTRODUÇÃO Neste capítulo será apresentada a filosofia abordada por [Etschberger, 2001] para o desenvolvimento de uma aplicação baseada nas duas camadas da rede CAN. Os conceitos da rede CAN serão aplicados em um AGV (Automatic Guidance Vehicle) emulado. Para tanto, a rede CAN, desenvolvida no capítulo anterior, foi ampliada e atribui-se diferentes funções para cada nó, permitindo-se simular o comportamento do AGV, de forma limitada. Inicialmente será vista uma breve abordagem sobre o AGV, em particular aos modelos industriais, procurando apresentar seus principais blocos, para em seguida formular a proposta de um sistema que simule algumas de suas funções básicas. Em seguida, será apresentada em detalhes a metodologia proposta por [Etschberger, 2001] para o desenvolvimento de aplicações para a rede CAN aplicadas ao AGV. Finalizando, serão apresentados e discutidos os algoritmos implementados para cada nó VEÍCULO GUIADO AUTOMATICAMENTE (Automatic Guidance Vehicle-AGV) Um AGV é um veículo utilizado em sistemas de manufatura para fazer a movimentação automatizada de materiais. Ele opera fazendo a carga e descarga de material, geralmente através de esteiras. [Kondlatsch, 2002] O primeiro AGV foi produzido pela empresa norte-americana Barrett Electronics, em 1953, tendo como base um trator industrial que puxava uma carreta que continha o material a ser transportado, que pode ser observado na figura 5.1

121 2 Figura 5.1 Primeiro AGV Apesar de sua aplicação estar muito voltada para a indústria, existem aplicações também na área hospitalar, em aeroportos, na agricultura, em entretenimento, na área militar e espacial e em portos marítimos. Na figura 5.2 tem-se um AGV em sua aplicação típica, na indústria automobilística para o transporte de matéria-prima para a produção. Figura 5.2 Um AGV em uma aplicação típica na indústria

122 5.2.1 Componentes de um AGV Apos estudo realizado em AGVs [Kondlatsch, 2002] utilizados em uma indústria local, pode-se dividir o AGV em algumas estruturas básicas: Sistema de navegação O sistema de navegação é utilizado para orientação do caminho a seguir pelo AGV. Atualmente existem algumas opções utilizadas para os sistemas de navegação, sendo que, na indústria, as principais são: a) Sistema indutivo O sistema indutivo é baseado na leitura de um campo magnético gerado pela corrente que passa por um cabo condutor, em uma determinada freqüência, embutido sob o piso. No AGV, uma antena capta o sinal gerado, que varia de acordo com o deslocamento do veículo, necessitando fazer uma correção da trajetória seguida pelo AGV, conforme pode ser observado na figura 5.3. Figura 5.3 Campo magnético gerado pelo cabo condutor

123 Geralmente o problema deste sistema é a falta de flexibilidade, pois existe a necessidade de se definir toda a trajetória e a construção da canaleta para acomodar o cabo. b) Sistema a laser Neste sistema, um laser é colocado em um dispositivo rotativo na parte superior do AGV. Nas paredes por onde o AGV deve percorrer sua trajetória são dispostos espelhos refletores do sinal, que por sua vez são captados novamente pelo AGV. Na figura 5.4 tem-se um exemplo da triangulação do sinal feito em uma aplicação típica para determinação da trajetória, entre os pontos A e B Figura 5.4 Exemplo de aplicação do laser em um AGV A vantagem deste sistema é a flexibilidade da mudança de trajetória dentro do ambiente fabril Sistema de segurança Sendo um veículo móvel dentro de um ambiente industrial, aplican-se normas de segurança específicas. No Brasil o nível de segurança é IV, assim os AGVs devem ser adotados com sistemas de segurança que protejam as pessoas e os próprios veículos contra

124 colisões. Normalmente utilizam-se sensores de diferentes tipos, sejam indutivos, ultrasônicos ou infravermelho para monitoramento de segurança no AGV. Na figura 5.5 tem-se a indicação dos diversos sensores de segurança encontrados em um AGV típico. Figura 5.5 Sensores de segurança típico Sistema de comunicação Em virtude da necessidade da informação de onde o AGV tem que coletar o material e para onde o mesmo deve ser transportado existe a necessidade do AGV possuir um sistema de comunicação. Os sistemas mais usuais são via ondas de rádio ou infravermelho Sistema de energia Sendo um veículo móvel, existe a necessidade do AGV incorporar um conjunto de baterias para fornecer a energia para todo o sistema, tanto para o sistema eletrônico como também, para os motores elétricos, responsáveis pelo deslocamento do AGV. Além disso, existe a necessidade de recarregar essas baterias, podendo o sistema eletrônico de potência estar incorporado ao próprio AGV, ou então, em um painel externo. Através de um sistema de gerenciamento de energia, pode-se acompanhar o ritmo de descarga e determinar o instante em que existe a necessidade de recarregar novamente as baterias Sistema de acionamento

Controller Area Network CAN bus. Introdução

Controller Area Network CAN bus. Introdução Controller Area Network CAN bus Introdução Desenvolvido pela Bosch para automóveis Padronizado pela ISO 11898 Camada física Camada de enlace Comunicação serial até 1Mbps e até 1km. Sinalização diferencial

Leia mais

Redes CAN (Controller Area Network)

Redes CAN (Controller Area Network) 1 de 5 Redes CAN (Controller Area Network) Myagyh A. P. Miranda, Vitória R. L. Lacerda myagyh_map@hotmail.com, vitoria.regina.lacerda@hotmail.com Escola de Engenharia da Pontifícia Universidade Católica

Leia mais

Introdução ao CAN Vitor Amadeu Souza Cerne Tecnologia

Introdução ao CAN Vitor Amadeu Souza Cerne Tecnologia 1. Introdução Introdução ao CAN Vitor Amadeu Souza Cerne Tecnologia www.cerne-tec.com.br vitor@cerne-tec.com.br O barramento CAN foi desenvolvido pela BOSCH para ser uma interface multimestre. Este barramento

Leia mais

Sistemas Automotivos Embarcados

Sistemas Automotivos Embarcados 1 - Introdução (enfoque) 2-3 - LIN 4 - MOST 5 - FlexRay Enfoque Comunicação entre dispositivos conectados ao automóvel; Grande variedade de dispositivos; Pouca informação disponível sobre a área; Em geral

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Entrada e Saída Slide 1 Entrada e Saída Dispositivos Externos E/S Programada Organização e Arquitetura de Computadores I Sumário E/S Dirigida por Interrupção

Leia mais

Técnicas de acesso múltiplo Aloha. O Nível de Enlace nas Redes Locais. Aloha. Aloha. Aloha. Multiple. Sense. Access) CSMA (Carrier(

Técnicas de acesso múltiplo Aloha. O Nível de Enlace nas Redes Locais. Aloha. Aloha. Aloha. Multiple. Sense. Access) CSMA (Carrier( O Nível de Enlace nas Redes Locais Como já foi visto, o nível de enlace deve fornecer uma interface de serviço bem definida para o nível de rede. deve determinar como os bits do nível físico serão agrupados

Leia mais

ÍNDICE CAPÍTULO 1 INTRODUÇÃO... 6 O QUE É UMA REDE E PARA QUE SERVE?... 7 O PORQUE DE UMA REDE... 9

ÍNDICE CAPÍTULO 1 INTRODUÇÃO... 6 O QUE É UMA REDE E PARA QUE SERVE?... 7 O PORQUE DE UMA REDE... 9 Redes -1- ÍNDICE CAPÍTULO 1 INTRODUÇÃO... 6 O QUE É UMA REDE E PARA QUE SERVE?... 7 O PORQUE DE UMA REDE... 9 CAPÍTULO 2 ARQUITETURAS... 12 MEIOS DE TRANSMISSÃO... 12 TIPOS DE TRANSMISSÃO... 14 CAPÍTULO

Leia mais

IMPLEMENTAÇÃO DE UMA REDE CAN APLICADA A ROBÔS MÓVEIS

IMPLEMENTAÇÃO DE UMA REDE CAN APLICADA A ROBÔS MÓVEIS IMPLEMENTAÇÃO DE UMA REDE CAN APLICADA A ROBÔS MÓVEIS José Victor Cavalcante AZEVEDO (1); Ítalo Jader Loiola BATISTA (2); Antônio Themoteo VARELA (3) (1) Instituto Federal de Educação, Ciência e Tecnologia

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar - Aula 1-1. A CAMADA DE ENLACE DE DADOS (Parte 1) Relembrando as aulas do semestre passado quando estudamos os modelos de referência, lembramos que a Camada de Enlace de Dados é a camada responsável pela

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Aula 19 Barramentos: Estruturas de Interconexão Rodrigo Hausen 14 de outubro de 2011 http://cuco.pro.br/ach2034 1/40 Apresentação 1. Bases Teóricas 2. Organização de computadores

Leia mais

Transmissores e Receptores

Transmissores e Receptores www.iesa.com.br 1 Os transmissores são instrumentos que convertem um sinal qualquer, de um sensor ou transdutor, em um sinal padrão para ser enviado a distância. Outras funções de tratamento e condicionamento

Leia mais

Modelo de Camadas. Redes de Computadores

Modelo de Camadas. Redes de Computadores Modelo de Camadas Redes de Computadores Sumário Visão Geral de uma Rede de Computadores Protocolos Modelo de Camadas Porque utilizar Tipos de Modelos de Referência Modelo de Referência ISO/OSI Histórico

Leia mais

O Nível de Enlace nas Redes Locais. Técnicas de acesso múltiplo Aloha. Aloha

O Nível de Enlace nas Redes Locais. Técnicas de acesso múltiplo Aloha. Aloha O Nível de Enlace nas Redes Locais Como já foi visto, o nível de enlace deve fornecer uma interface de serviço bem definida para o nível de rede. deve determinar como os bits do nível físico serão agrupados

Leia mais

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede Nível de Enlace Enlace: caminho lógico entre estações. Permite comunicação eficiente e confiável entre dois computadores. Funções: fornecer uma interface de serviço à camada de rede; determinar como os

Leia mais

PLANEJAMENTO DE UMA REDE DEVICENET 1. Rafael Ruppenthal 2.

PLANEJAMENTO DE UMA REDE DEVICENET 1. Rafael Ruppenthal 2. PLANEJAMENTO DE UMA REDE DEVICENET 1 Rafael Ruppenthal 2. 1 Projeto de pesquisa realizado no curso de Engenharia Elétrica da Unijui 2 Aluno do curso de Engenharia Elétrica da Unijui Com o desenvolvimento

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

Entrada e Saída e Dispositivos

Entrada e Saída e Dispositivos Entrada e Saída e Dispositivos Uma das funções do Sistema Operacional é: - Gerência de dispositivos de E/S. Operações: - Tratamento de interrupções - Tratamento erros - Interfaceamento entre os dispositivos

Leia mais

Capítulo6-7 Redes de Computadores Camada 2 Conceitos

Capítulo6-7 Redes de Computadores Camada 2 Conceitos Há três formas de se calcular o frame check sum: cyclic redundancy check (CRC) - executa cálculos polinomiais sobre os dados paridade bidimensional - adiciona um 8 th oitavo bit que faz uma seqüência de

Leia mais

ü Na década de 1920 os dispositivos mecânicos foram substituídos pelos relés; ü O uso da lógica de relés dificultava modificações do processo;

ü Na década de 1920 os dispositivos mecânicos foram substituídos pelos relés; ü O uso da lógica de relés dificultava modificações do processo; O que são? CLP - CONTROLADOR LÓGICO PROGRAMÁVEL ü O CLP é um computador industrial, capaz de implementar funções de controle (sequência lógica, contagem e temporização), operações lógicas e aritméticas,

Leia mais

Proposta de uma plataforma de monitoramento e acionamento remoto voltada para sistemas de hardware industriais utilizando LabVIEW

Proposta de uma plataforma de monitoramento e acionamento remoto voltada para sistemas de hardware industriais utilizando LabVIEW Proposta de uma plataforma de monitoramento e acionamento remoto voltada para sistemas de hardware industriais utilizando LabVIEW "Este artigo tem como proposta apresentar uma plataforma para monitoramento

Leia mais

Open Systems Interconnection

Open Systems Interconnection Introdução 0 A tecnologia LAN FDDI (Fiber Distributed Data Interface) é uma tecnologia de acesso à rede em linhas de tipo fibra óptica. 0 Trata-se, com efeito, de um par de anéis (um é primário, o outro,

Leia mais

Modbus, Profibus, Devicenet. Prof. Regis Isael

Modbus, Profibus, Devicenet. Prof. Regis Isael Modbus, Profibus, Devicenet Prof. Regis Isael Redes Modbus Redes Modbus A princípio era um protocolo proprietário criado pela MODICON em 1978 visando o uso em seus próprios dispositivos. Atualmente a MODICON

Leia mais

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S Explicitar aos alunos os modelos de entrada e saída em um computador e quais barramentos se aplicam a cada componente: memória,

Leia mais

A camada de enlace de dados executa diversas funções específicas. Dentre elas

A camada de enlace de dados executa diversas funções específicas. Dentre elas A camada de enlace de dados executa diversas funções específicas. Dentre elas estão as seguintes: Fornecer uma interface de serviço bem definida à camada de rede. Lidar com erros de transmissão. Regular

Leia mais

Capítulo 6 - Conceitos Básicos de Ethernet. Associação dos Instrutores NetAcademy - Fevereiro Página

Capítulo 6 - Conceitos Básicos de Ethernet. Associação dos Instrutores NetAcademy - Fevereiro Página Capítulo 6 - Conceitos Básicos de Ethernet 1 Introdução à Ethernet A maior parte do tráfego na Internet origina-se e termina com conexões Ethernet. A idéia original para Ethernet surgiu de problemas de

Leia mais

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede Nível de Enlace Enlace: caminho lógico entre estações. Permite comunicação eficiente e confiável entre dois computadores. Funções: fornecer uma interface de serviço à camada de rede; determinar como os

Leia mais

CLP ESTRUTURA E FUNCIONAMENTO ROGER NABEYAMA MICHELS

CLP ESTRUTURA E FUNCIONAMENTO ROGER NABEYAMA MICHELS CLP ESTRUTURA E FUNCIONAMENTO ROGER NABEYAMA MICHELS DISPOSITIVO CAPAZ DE Permitir fácil diagnóstico de funcionamento ainda na fase de projeto do sistema e/ou reparos em falhas que venham a ocorrer durante

Leia mais

Ethernet. IEEE padronizou várias redes locais e metropolitanas com o nome IEEE 802 Os mais importantes são:

Ethernet. IEEE padronizou várias redes locais e metropolitanas com o nome IEEE 802 Os mais importantes são: Ethernet IEEE padronizou várias redes locais e metropolitanas com o nome IEEE 802 Os mais importantes são: 802.3 (Ethernet) 802.11 (LAN sem fio) 802.15 (Bluetooth) 802.16 (MAN sem fio) Ethernet Os tipos

Leia mais

Barramento CoreConnect

Barramento CoreConnect Barramento CoreConnect MO801 1º semestre de 2006 Prof. Rodolfo Jardim de Azevedo Fabiana Bellette Gil - RA 028671 CoreConnect Agenda Conceitos básicos Introdução ao CoreConnect Arquitetura Referências

Leia mais

Comparação entre Redes Industriais: Fieldbus Foundation H1 e Allen-Bradley DH+

Comparação entre Redes Industriais: Fieldbus Foundation H1 e Allen-Bradley DH+ Comparação entre Redes Industriais: Fieldbus Foundation H1 e Allen-Bradley DH+ Salvador Fernandes de Jesus Júnior * Sérgio José Gonçalves e Silva ** salvadorjr@petrobras.com.br sergiojose@petrobras.com.br

Leia mais

INTRODUÇÃO AOS CONTROLADORES LÓGICOS PROGRAMÁVEIS

INTRODUÇÃO AOS CONTROLADORES LÓGICOS PROGRAMÁVEIS Automação (AUT) Universidade do Estado de Santa Catarina (UDESC) Centro de Ciências Tecnológicas (CCT) Departamento de Engenharia Elétrica (DEE) INTRODUÇÃO AOS CONTROLADORES LÓGICOS PROGRAMÁVEIS 2018-2

Leia mais

Nível de Enlace. Laboratório MídiaCom - UFF Profa. Débora Christina Muchaluat Saade

Nível de Enlace. Laboratório MídiaCom - UFF Profa. Débora Christina Muchaluat Saade Departamento de Ciência da Computação - UFF Nível de Enlace Profa. Débora Christina Muchaluat Saade Laboratório MídiaCom - UFF debora@midiacom.uff.br http://www.midiacom.uff.br/debora 1 Nível de Enlace

Leia mais

Conceitos básicos de comunicação. Prof. Marciano dos Santos Dionizio

Conceitos básicos de comunicação. Prof. Marciano dos Santos Dionizio Conceitos básicos de comunicação Prof. Marciano dos Santos Dionizio Conceitos básicos de comunicação A comunicação é um processo de transferência e processamento de informações entre dois pontos por meio

Leia mais

Redes de Computadores. Redes de Computadores. Redes de Computadores. ü Contador de caracteres. ü Stuffing de caracteres.

Redes de Computadores. Redes de Computadores. Redes de Computadores. ü Contador de caracteres. ü Stuffing de caracteres. Departamento de Ciência da Computação - UFF Nível de Enlace Profa. Débora Christina Muchaluat Saade Laboratório MídiaCom - UFF debora@midiacom.uff.br Nível de Enlace Funcionalidades principais: Oferecer

Leia mais

Profª Danielle Casillo

Profª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Automação e Controle Aula 05 Introdução ao CLP Profª Danielle Casillo CONTROLADOR LÓGICO PROGRAMÁVEL -CLP 2 CONTROLADOR LÓGICO PROGRAMÁVEL

Leia mais

Foundation Fieldbus. Curso: Téc. Automação Professor: Regis Isael

Foundation Fieldbus. Curso: Téc. Automação Professor: Regis Isael Foundation Fieldbus Curso: Téc. Automação Professor: Regis Isael Foundation Fieldbus O Foundation Fieldbus é um sistema da comunicação totalmente digital, em série e bidirecional que conecta equipamentos

Leia mais

PMR3507 Fábrica digital

PMR3507 Fábrica digital LSA Laboratório de Sistemas de Automação www.pmrlsa.poli.usp.br PMR3507 Fábrica digital Cyber Physical System Escola Politécnica da Universidade de São Paulo Departamento de Engenharia Mecatrônica e de

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução

Leia mais

Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação CLPs: Interfaces de E/S

Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação CLPs: Interfaces de E/S Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação CLPs: Interfaces de E/S Heitor Medeiros Florencio Interfaces de Entrada e Saída Interfaces de E/S A seção

Leia mais

ARQUITETURA FDDI P E D R O M O N T E I R O N º 14 G P S I

ARQUITETURA FDDI P E D R O M O N T E I R O N º 14 G P S I ARQUITETURA FDDI P E D R O M O N T E I R O N º 14 G P S I O QUE É A ARQUITETURA FDDI? FDDI é um padrão designado pela ANSI (National Standards Institute) comité X3T9.5 com a participação de várias empresas

Leia mais

Curso Técnico em Informática Redes TCP/IP 2 o Módulo. Prof. Cristiano da Silveira Colombo

Curso Técnico em Informática Redes TCP/IP 2 o Módulo. Prof. Cristiano da Silveira Colombo Curso Técnico em Informática Redes TCP/IP 2 o Módulo Prof. Cristiano da Silveira Colombo Objetivos da Aula Apresentar os conceitos de tecnologias e padrões de redes de computadores. Agenda da Aula Padronização

Leia mais

Interfaces Seriais. Disciplina de Microcontroladores. Prof. Rubão

Interfaces Seriais. Disciplina de Microcontroladores. Prof. Rubão Interfaces Seriais Disciplina de Microcontroladores Prof. Rubão Interfaces Seriais de Aplicação Industrial I 2 C (Inter Integrated Circuit) Microwire SPI (Serial Peripheral Interface) 1-Wire I 2 C Primeira

Leia mais

Delimitação de Quadros. Exemplos de Protocolos de Nível de Enlace. Nível de Enlace. Nível de de Enlace. Disciplina: Comunicação de Dados IV

Delimitação de Quadros. Exemplos de Protocolos de Nível de Enlace. Nível de Enlace. Nível de de Enlace. Disciplina: Comunicação de Dados IV Departamento de Engenharia de Telecomunicações - UFF Disciplina: Nível de de Enlace Profa. Débora Christina Muchaluat Saade deborams@telecom.uff.br br Aplicação Apresentação Sessão Transporte Rede Enlace

Leia mais

Sumário. 1. Introdução 2. Características. 3. Funcionamento físico. 4. Aplicações. 5. Referências

Sumário. 1. Introdução 2. Características. 3. Funcionamento físico. 4. Aplicações. 5. Referências Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciências da Computação Disciplina de Transmissão de Dados Professor Jacir L Bordim RS-485 Grupo 10 Eduardo de Morais V Silva 02/81859

Leia mais

REDES CAN: Uma abordagem no uso veicular

REDES CAN: Uma abordagem no uso veicular REDES CAN: Uma abordagem no uso veicular Romer Rios Campos de Souza 1, Luís Augusto Mattos Mendes 1. 1 Departamento de Ciência da Computação Universidade Presidente Antônio Carlos (UNIPAC) Campus Magnus

Leia mais

Arduino Lab 05 Leitura e

Arduino Lab 05 Leitura e Arduino Lab 05 Leitura e transmissão remota de corrente utilizando o nrf24l01 Imagem geral Aplicação Neste Lab iremos descrever a integração entre 5 dispositivos em uma aplicação de transmissão de dados

Leia mais

CAPÍTULO 5. Interfaces I 2 C e SPI. Interface I 2 C. Interfaces e Periféricos 37

CAPÍTULO 5. Interfaces I 2 C e SPI. Interface I 2 C. Interfaces e Periféricos 37 Interfaces e Periféricos 37 CAPÍTULO 5 Interfaces I 2 C e SPI Interface I 2 C Nos anos 80 a Philips desenvolveu um novo padrão de barramento chamado I²C, cujo objetivo era facilitar a comunicação entre

Leia mais

Atividade de Participação de Aula 02 (Individual) Aluno: Data: 17/08/2017

Atividade de Participação de Aula 02 (Individual) Aluno: Data: 17/08/2017 Atividade de Participação de Aula 02 (Individual) Aluno: Data: 17/08/2017 Curso: Engenharia Elétrica Período: 1. O que é uma rede Industrial? Sistema de Comunicação bidirecional em tempo real que permite

Leia mais

INSTRUMENTAÇÃO MECATRÔNICA

INSTRUMENTAÇÃO MECATRÔNICA CONCEITOS DE INSTRUMENTAÇÃO Instrumentação é a ciência que aplica e desenvolve técnicas para adequação de instrumentos de medição, transmissão, indicação, registro e controle de variáveis físicas em equipamentos

Leia mais

Noções de Ethernet (enlace) Endereçamento Físico Dispositivos de Rede. Introdução às Redes de Computadores

Noções de Ethernet (enlace) Endereçamento Físico Dispositivos de Rede. Introdução às Redes de Computadores Noções de Ethernet (enlace) Endereçamento Físico Dispositivos de Rede Nível de enlace Enlace Físico Delimitação da informação Detecção de erros de transmissão Controle de acesso ao Meio Físico Endereçamento

Leia mais

Redes Industriais. Carlos Roberto da Silva Filho, M. Eng.

Redes Industriais. Carlos Roberto da Silva Filho, M. Eng. Redes Industriais Carlos Roberto da Silva Filho, M. Eng. Criado na década de 1970 pela Modicon. É um dos mais antigos protocolos utilizados em redes de CLPs para aquisição de sinais de instrumentos e comandar

Leia mais

Arduino Lab 16 Leitura de dados de um servo driver SEW via rede CAN e interface com LabVIEW

Arduino Lab 16 Leitura de dados de um servo driver SEW via rede CAN e interface com LabVIEW Arduino Lab 16 Leitura de dados de um servo driver SEW via rede CAN e interface com LabVIEW Neste Lab explicaremos como funciona a rede de comunicação CAN (Controller Area Network) bem como a comunicação

Leia mais

Modelo de Referência OSI. Prof. Alberto Felipe

Modelo de Referência OSI. Prof. Alberto Felipe Modelo de Referência OSI Prof. Alberto Felipe Modelo em camadas Redes de computadores são sistemas complexos; Decomposição dos sistemas em elementos realizáveis; Organizadas como uma série de camadas Permite

Leia mais

Parte I Multiprocessamento

Parte I Multiprocessamento Sistemas Operacionais I Estrutura dos SO Prof. Gregorio Perez gregorio@uninove.br 2004 Parte I Multiprocessamento Roteiro 1 Multiprocessadores em Sistemas Fortemente Acoplados 1.1 1.2 1.3 Processamento

Leia mais

FDDI. Marcelo Assunção 10º13. Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos. Disciplina: Redes de Comunicação

FDDI. Marcelo Assunção 10º13. Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos. Disciplina: Redes de Comunicação FDDI Marcelo Assunção 10º13 Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos Disciplina: Redes de Comunicação 2013/2014 Introdução O padrão FDDI (Fiber Distributed Data Interface)

Leia mais

Seminário de Redes - Profibus

Seminário de Redes - Profibus UNIVERSIDADE FEDERAL DE SÃO JOÃO DEL REI Campus Alto Paraopeba Engenharia Mecatrônica Seminário de Redes - Profibus Samuel Aladim Amorim - 154400063 Anne Caroline Gonçalves Coelho - 124450039 Thiago Lucas

Leia mais

Tecnologias de rede. Diversas tecnologias com características diferentes Exemplos. Ethernet FDDI ATM

Tecnologias de rede. Diversas tecnologias com características diferentes Exemplos. Ethernet FDDI ATM Tecnologias de rede Diversas tecnologias com características diferentes Exemplos Ethernet FDDI ATM Ethernet Vários tipos se diferenciam na camada física em função do tipo de cabo, da codificação e do uso

Leia mais

Redes Industriais. Curso: Téc. Automação Professor: Regis Isael

Redes Industriais. Curso: Téc. Automação Professor: Regis Isael Redes Industriais Curso: Téc. Automação Professor: Regis Isael Histórico Década de 20 Henry Ford criou a primeira linha de produção para a fabricação de automóveis. Década de 60 Criação dos transistores.

Leia mais

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Redução de Potência de Operação As versões CHMOS (89C51, 89S52, etc ) da família MCS-51 possuem dois modos de controle de redução de potência de operação do chip.

Leia mais

Sistemas Embarcados/ Redes Industriais/ Comunicação Serial

Sistemas Embarcados/ Redes Industriais/ Comunicação Serial 1 Sistemas Embarcados/ Redes Industriais/ Comunicação Serial César Yutaka Ofuchi ofuchi@utfpr.edu.br 2 Pirâmide da Automação ERP (Entreprise Resource Planning) MES (Manufacturing Execution Systems) 3 Pirâmide

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Prof. Adilson Gonzaga Outras características importantes em Microprocessadores/Microcontroladores Redução de Potência de Operação As versões CHMOS (89C51, 89S52, etc ) da família MCS-51 possuem dois modos

Leia mais

Gerência de Dispositivos. Adão de Melo Neto

Gerência de Dispositivos. Adão de Melo Neto Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Introdução Acesso ao Subsistema de E/S Subsistema de E/S Device Drivers Controladores Dispositivos de E/S Discos Magnéticos Desempenho,

Leia mais

Rede de computadores Protocolos UDP. Professor Carlos Muniz

Rede de computadores Protocolos UDP. Professor Carlos Muniz Rede de computadores Professor Carlos Muniz User Datagram Protocol O User Datagram Protocol (UDP) é um protocolo simples da camada de transporte. Ele é descrito na RFC 768 [1] e permite que a aplicação

Leia mais

INTRODUÇÃO: MICROCONTROLADORES

INTRODUÇÃO: MICROCONTROLADORES INTRODUÇÃO: MICROCONTROLADORES MICROCONTROLADOR X MICROPROCESSADOR Baixa capacidade de processamento Freq. Operação em MHz Custo de R$ 7,00 a 30,00 Aplicações mais restrita Alta capacidade de processamento

Leia mais

FUNDAMENTOS DE REDES DE COMPUTADORES TP1

FUNDAMENTOS DE REDES DE COMPUTADORES TP1 LEIA COM ATENÇÃO AS INSTRUÇÕES ABAIXO Em sala de aula foram distribuídos pontos em exercícios e atividades extraclasse Número de Questões Total da Avaliação 5 Pontos 10 5 Pontos Cada questão tem peso 0,5

Leia mais

Disciplina: Redes de Computadores

Disciplina: Redes de Computadores Disciplina: Redes de Computadores Prof. Leonardo Meirelles Alves Modelo de comunicação Aula 03-1 / 47 Modelo de Comunicação Com aumento na quantidade e no tamanho das redes e de implementações diferentes

Leia mais

Robô Móvel Colaborativo

Robô Móvel Colaborativo Lançamento Modernize seu processo produtivo Robô Móvel Colaborativo O Robô Móvel Colaborativo da Omron é um Veículo Autônomo Inteligente (AIV) projetado para aumentar a produtividade em processos industriais

Leia mais

BARRAMENTO DO SISTEMA. Adão de Melo Neto

BARRAMENTO DO SISTEMA. Adão de Melo Neto BARRAMENTO DO SISTEMA Adão de Melo Neto 1 BARRAMENTOS DO SISTEMA O mecanismo mais comum de interconexão dos componentes de um computador (processador, memória principal e módulos de E/S) usa um barramento

Leia mais

FUNDAMENTOS DE REDES DE COMPUTADORES TP2

FUNDAMENTOS DE REDES DE COMPUTADORES TP2 LEIA COM ATENÇÃO AS INSTRUÇÕES ABAIXO Em sala de aula foram distribuídos pontos em exercícios e atividades extraclasse Número de Questões Total da Avaliação 5 Pontos 10 5 Pontos Cada questão tem peso 0,5

Leia mais

Camada de Enlace de Dados

Camada de Enlace de Dados Camada de Enlace de Dados Camada de Enlace de Dados aborda algoritmos que permitem uma comunicação eficiente e confiável entre dois computadores adjacentes em nível da camada de enlace de dados (adjacentes

Leia mais

Sistemas Operacionais. Entrada/Saída

Sistemas Operacionais. Entrada/Saída Sistemas Operacionais Entrada/Saída Atualizado em 28/02/2014 Como ocorre a comunicação de E/S Aplicação Operações de E/S Chamadas de Sistema S.O. Subsistema de E/S Núcleo (Kernel) Drivers HARDWARE Controladoras

Leia mais

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace Redes de Computadores II Módulo 1 Introdução e a camada de enlace 1 Comunicação de Dados e Redes de Computadores O problema fundamental da comunicação é reproduzir em um ponto exatamente ou aproximadamente

Leia mais

Lista de Exercícios. Camada de Enlace de Dados

Lista de Exercícios. Camada de Enlace de Dados Lista de Exercícios Camada de Enlace de Dados 1. Um pacote de uma camada superior de redes é dividido em 10 quadros, e cada quadro tem 80% de chances de chegar sem danos. Se o protocolo de enlace de dados

Leia mais

Definição das 7 Camadas do Modelo OSI e Explicação das Funções

Definição das 7 Camadas do Modelo OSI e Explicação das Funções O modelo OSI (Open Systems Interconnect) tem sete camadas. Este artigo as descreve e explica, começando pela camada "inferior" na hierarquia (a camada física) e avançando até a "superior" (a camada de

Leia mais

IO-Link. O papel dos sensores na Indústria 4.0

IO-Link. O papel dos sensores na Indústria 4.0 IO-Link O papel dos sensores na Indústria 4.0 Conectar ao invés de ligar 2 IIot Escassez de endereços IPv4 (2^32 = 4 bi) 3 Dispositivos inteligentes Conexão Endereçamento único Inteligência nos sentidos

Leia mais

Prof. Marcelo Cunha Parte 6

Prof. Marcelo Cunha Parte 6 Prof. Marcelo Cunha Parte 6 www.marcelomachado.com ARP (Address Resolution Protocol) Protocolo responsável por fazer a conversão entre os endereços IPs e os endereços MAC da rede; Exemplo: Em uma rede

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar - Aula 4 - INTERFACES E SERVIÇOS Definições: Serviços: Cada camada fornece serviços para camada superior. O modelo especifica o que cada camada faz, não como o serviço é implementado ou acessado. Interfaces:

Leia mais

CST em Redes de Computadores

CST em Redes de Computadores CST em Redes de Computadores Comunicação de Dados II Aula 10 Camada de Enlace de Dados Prof: Jéferson Mendonça de Limas Introdução Função das Camadas Anteriores: Aplicação: fornece a interface com o usuário;

Leia mais

BARRAMENTOS. Adão de Melo Neto

BARRAMENTOS. Adão de Melo Neto BARRAMENTOS Adão de Melo Neto 1 SUMÁRIO COMPUTADOR EXEMPLO DE UMA INSTRUÇÃO NA MEMÓRIA CICLO DE BUSCA/EXECUÇÃO DE UM INSTRUÇÃO INTERRUPÇÃO ACESSO DIRETO A MEMÓRIA (DMA DIRECT MEMORY ACESS) BARRAMENTO BARRAMENTO

Leia mais

Arduino Lab 02 Sensor de luminosidade e display de LCD 16 2

Arduino Lab 02 Sensor de luminosidade e display de LCD 16 2 Arduino Lab 02 Sensor de luminosidade e display de LCD 16 2 Display de LCD 16 2 Neste Lab, iremos descrever como conectar o sensor BH1750FVI, já citado no Lab 01, ao Arduino Micro e à um display. A indicação

Leia mais

I2C PROTOCOLO DE COMUNICAÇÃO

I2C PROTOCOLO DE COMUNICAÇÃO Esse barramento foi criado pela empresa Holandesa (Philips) como Inter IC ou I2C que possibilita a utilização de grande quantidade de componentes padronizados, os quais podem realizar diversas funções,

Leia mais

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída Departamento de Ciência da Computação - UFF Dispositivos de Entrada e Saída Prof. Marcos A. Guerine mguerine@ic.uff.br 1 Dipositivos periféricos ou simplesmente periféricos permitem a comunicação da máquina

Leia mais

Transmissores e Receptores

Transmissores e Receptores www.iesa.com.br 1 Os transmissores são instrumentos que convertem um sinal qualquer, de um sensor ou elemento primário, em um sinal padrão para ser enviado a distância. Outras funções de tratamento dos

Leia mais

Parte I Introdução. professorferlin.blogspot.com. professorferlin.blogspot.com. Sociedade Paranaense de Ensino e Informática

Parte I Introdução.  professorferlin.blogspot.com. professorferlin.blogspot.com. Sociedade Paranaense de Ensino e Informática www.spei.br Sociedade Paranaense de Ensino e Informática Parte I Introdução 2 1 Uma máquina pode fazer o trabalho de cinquenta pessoas comuns. Máquina alguma pode fazer o trabalho de um homem incomum.

Leia mais

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 33 Sumário 1 Dispositivos de E/S 2 Interrupções 3 Software de E/S 2

Leia mais

Arquiteturas de Redes de Computadores

Arquiteturas de Redes de Computadores Arquiteturas de Redes de Computadores Material de apoio Conceitos Básicos de Rede Cap.1 19/01/2012 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia

Leia mais

Adriano Francisco Branco. Um modelo de programação para RSSF com. Dissertação de Mestrado

Adriano Francisco Branco. Um modelo de programação para RSSF com. Dissertação de Mestrado Adriano Francisco Branco Um modelo de programação para RSSF com suporte à reconfiguração dinâmica de aplicações Dissertação de Mestrado Dissertação apresentada ao Programa de Pós graduação em Informática

Leia mais

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

CCNA 2 Conceitos Básicos de Roteadores e Roteamento CCNA 2 Conceitos Básicos de Roteadores e Roteamento Capítulo 9 - Princípios Básicos de Solução de ProblemasP com Roteadores 1 Objetivos do Capítulo Aplicar e compreender os comandos: ping, telnet, show

Leia mais

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior - Capítulo 5 Afirmações Entrada/Saída Introdução Processos se comunicam com o mundo externo através de dispositivos de E/S. Processos não querem ou não precisam entender como funciona o hardware. Função

Leia mais

Prof. Mizael Cortez Modelo em camadas Arquitetura TCP/IP Modelo ISO/OSI

Prof. Mizael Cortez Modelo em camadas Arquitetura TCP/IP Modelo ISO/OSI Prof. Mizael Cortez everson.cortez@ifrn.edu.br Modelo em camadas Arquitetura TCP/IP Modelo ISO/OSI A Internet é um sistema extremamente complicado e que possui muitos componentes: inúmeras aplicações e

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de

Leia mais

Transmissão e comunicação de dados. Renato Machado

Transmissão e comunicação de dados. Renato Machado Renato Machado UFSM - Universidade Federal de Santa Maria DELC - Departamento de Eletrônica e Computação renatomachado@ieee.org renatomachado@ufsm.br 07 de novembro de 2011 Sumário 1 2 3 4 Durante as últimas

Leia mais

CURSO TÉCNICO EM INFORMÁTICA

CURSO TÉCNICO EM INFORMÁTICA 1. O modelo de referência OSI (Open Systems Interconnection) baseia-se no conceito de camadas sobrepostas, onde cada camada executa um conjunto bem definido de funções. Relacione cada uma das camadas do

Leia mais