Departamento de Engenharia Electrotécnica



Documentos relacionados
Prof. Sandrina Correia

SISTEMAS INFORMÁTICOS

Sistemas Multimédia. Arquitectura Protocolar Simples Modelo OSI TCP/IP. Francisco Maia Redes e Comunicações

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

IW10. Rev.: 02. Especificações Técnicas

CPU Unidade Central de Processamento. História e progresso

1. CAPÍTULO COMPUTADORES

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

Componentes de um Sistema de Computador

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Introdução. à Estrutura e Funcionamento de um Sistema Informático

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Introdução aos Computadores

Escola Secundária de Emídio Navarro

Quadro de consulta (solicitação do mestre)

Introdução a Informática. Prof.: Roberto Franciscatto

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt

PROCESSAMENTO DE DADOS

Introdução às Tecnologias de Informação e Comunicação. Conceitos Introdutórios

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

PHC Serviços CS. A gestão de processos de prestação de serviços

Serial Paralela USB FireWire(IEEE1394)

Faculdade de Ciências e Tecnologia da Universidade de Coimbra

Técnicas de Manutenção de Computadores

A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores

Estrutura e funcionamento de um sistema informático

Curso Técnico de Nível Médio

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01. Prof. André Lucio

Introdução aos Sistemas Operativos

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Sistemas Operacionais

Aula 04 B. Interfaces. Prof. Ricardo Palma

Trabalho de: Alexandre / Paulo / Rui

Prof. Esp. Lucas Cruz

Hardware de Computadores

Automação Industrial Parte 2

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

Figura 1 - O computador

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Introdução. Em se tratando de computador, entendemos que memória são dispositivos que armazenam dados com os quais o processador trabalha.

Easy Lab. Manual do usuário Revisão /11/14. DMA Electronics 1

Disciplina: Introdução à Informática Profª Érica Barcelos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

INSTALAÇÃO e MANUTENÇÃO de MICRO COMPUTADORES

Suporte Técnico de Software HP

Copyright 2013 VW Soluções

AULA 1. Informática Básica. Gustavo Leitão. Disciplina: Professor:

Referencial do Módulo B

Aula 26: Arquiteturas RISC vs. CISC

Programação de Periféricos

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Arquitetura de Computadores Arquitetura de entrada e saída

Sistemas Operacionais

Alarme Automotivo com mensagem para móvel utilizando Arduino

1 Introdução Motivação

Mobile Business. Your sales on the move.

Escola Secundária de Emídio Navarro

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

Escola. Europeia de. Ensino. Profissional ARQUITETURA DE COMPUTADORES

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Sistemas de Informação e o Computador

Hardware & Software. SOS Digital: Tópico 2

Sistema de Computação

Programação de Sistemas

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

Sistemas Embarcados. Introdução aos sistemas embarcados

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

Curso de Instalação e Gestão de Redes Informáticas

José Novais (1997), Método sequencial para automatização electro-pneumática, 3ª Edição, Fundação

Parallel to Serial Shifting IN

Capítulo 8. Software de Sistema


Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Admistração de Redes de Computadores (ARC)

Autores Pedro Brochado Luís Oliveira

Introdução à Programação 2006/07. Computadores e Programação

FERRAMENTAS E SOLUÇÕES DE APOIO À GESTÃO E MANUTENÇÃO DE ATIVOS

AULA TEÓRICA 2 Tema 2. Conceitos básicos de informática, computadores e tecnologias de informação. Sistemas de numeração (continuação)

Família CJ2. Novos CLPs com alta qualidade comprovada. Controladores Programáveis

Cadeira de Tecnologias de Informação. Ano lectivo 2007/08. Conceitos fundamentais de Hardware

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

INTERFACE USB PARA PROFIBUS PA

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

Sistemas Computacionais

Curso EFA Técnico/a de Informática - Sistemas. Óbidos

Medidor da temperatura local

Figura 1 - Memória 1. OBJETIVO. Conhecer os principais tipos de memórias entendendo suas funcionalidades e características.

FUNCIONAMENTO, VANTAGENS E DESVANTAGENS DAS DIVERSAS TECNOLOGIAS

O quê um Processador e qual a sua função?

R S Q Tabela 17 - Tabela verdade NOR

Software PHC com MapPoint

Introdução à Computação

Transcrição:

Departamento de Engenharia Electrotécnica Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux Trabalho de Projecto apresentado para a obtenção do grau de Mestre em Automação e Comunicações em Sistemas de Energia Autor Adriano José Ribeiro Campos Orientadores Doutor Inácio Fonseca Doutor Fernando Lopes Instituto Superior de Engenharia de Coimbra Coimbra, Dezembro 2011

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux AGRADECIMENTOS AGRADECIMENTOS A realização deste trabalho de projecto não seria exequível apenas com o meu esforço individual. Os resultados obtidos foram possíveis com o apoio de diversas pessoas e instituições e por isso gostaria de deixar aqui os meus agradecimentos às mesmas. Aos meus pais e aos meus irmãos pela paciência, apoio, encorajamento e confiança depositada em mim. Agradeço ainda aos meus pais pelo esforço que fizeram para que eu me tornasse um Engenheiro de Electrónica. Aos meus orientadores, Doutor Inácio Fonseca e Doutor Fernando Lopes, pelo apoio dado durante a realização do projecto e especialmente na escrita deste documento. Agradeço ainda por me terem dado a oportunidade de realizar este projecto que faz uso de conceitos e tecnologias de extrema actualidade, interesse e aplicabilidade. Ao Instituto Superior de Engenharia de Coimbra e aos seus funcionários pela infra-estrutura oferecida, e pela oportunidade de estudar numa das melhores instituições de ensino superior de Portugal. A todas as comunidades de software livre, especialmente às comunidades associadas aos projectos referidos neste trabalho, por toda a documentação e apoio personalizado que disponibilizam gratuitamente. Por fim, aos meus colegas que me apoiaram e acompanharam durante todas as etapas da minha formação académica e que, com certeza, não chegaria até aqui sem eles. Como é óbvio, não me esqueço também dos meus amigos que estiveram ao meu lado durante este percurso. A todos MUITO OBRIGADO Adriano José Ribeiro Campos i

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux RESUMO RESUMO Os sistemas embebidos são equipamentos electrónicos que incluem processamento de informação, normalmente desenvolvidos para uma aplicação específica. Estes dispositivos encontram-se presentes em praticamente todas as áreas da electrónica, desde os smartphones até aos equipamentos de automação industrial. Os sistemas embebidos podem ser projectados sobre diversas plataformas de hardware e firmware. Relativamente ao hardware, os sistemas embebidos podem ser implementados com diversas arquitecturas. Neste projecto optou-se pela utilização da arquitectura de 32 bits mais popular, a arquitectura ARM. Esta escolha deve-se ao bom desempenho e baixo consumo. O software pode ser especifico para a aplicação ou ser um sistema operativo genérico. Este projecto demonstra que a solução GNU/Linux é uma alternativa viável e segura para um sistema embebido. A utilização é gratuita e oferece facilidade de personalização para diversas plataformas de hardware. A par do desenvolvimento dos sistemas embebidos, os sistemas operativos de tempo-real apresentam actualmente um desenvolvimento muito forte, sendo uma característica ímpar para os sistemas embebidos. A característica de tempo-real permite construir sistemas com garantias temporais bem definidas, requisito importante em muitas das aplicações industriais. O kernel Linux não permite por si só construir um sistema de tempo-real, no entanto, encontram-se disponíveis vários pacotes de software, que permitem transformar um sistema GNU/Linux de forma a incluir características de tempo-real. As extensões seleccionadas neste projecto para este efeito foram as desenvolvidas pelos projectos Xenomai e ADEOS. No desenvolvimento de sistemas embebidos a emulação de hardware é actualmente uma técnica muito útil e prática, permitindo desenvolver, validar e trabalhar com o sistema, antes de este ser fisicamente implementado. Este projecto tem por objectivo o estudo e implementação de tecnologias emergentes associadas ao desenvolvimento de sistemas embebidos. Pretende-se projectar e desenvolver uma solução integrada que inclua características de tempo-real para aplicações de automação industrial. O projecto elaborado inclui todas a as etapas necessárias, desde a pesquisa e especificação até à validação e simulação, passando pelo projecto dos circuitos electrónicos, desenho do hardware e desenvolvimento do software. Palavras-chave: Sistemas Industriais, Sistemas Embebidos, GNU, Linux, RTOS, ARM, Xenomai, ADEOS, QEMU. Adriano José Ribeiro Campos iii

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux ABSTRACT ABSTRACT Embedded Systems are electronic devices that include information processing and are usually developed for a specific application. These devices are present in all electronics areas, fromsmartphones to industrial automation equipment. Embedded systems can be developed on different hardware and firmware platforms. Regarding the hardware, embedded systems can be implemented with different architectures. In this project we chose to use the most popular 32-bit architecture, the ARM architecture. This is mainly due to its good performance and low power consumption. The software can be specific to the application or based on a general purpose operating system. This project demonstrates that the GNU/Linux solution is a viable and safe alternative for an embedded system. It is free and offers easy customization for different hardware platforms. Alongside the development of embedded systems, real-time operating systems are currently under strong development, representing a unique feature for embedded systems. The characteristic of realtime allows building systems with well defined temporal guarantees, an important requirement in many industrial applications. The Linux kernel does not allow by itself to build a real-time system, however, there are several software packages available that can be used to transform a GNU / Linux system in order to include real-time characteristics. Extensions selected for this purpose in this project were developed by the ADEOS and Xenomai projects. In the development of embedded systems, the hardware emulation is now a very useful technique and practice, allowing developing, validating and working with the system before it is physically implemented. This project aims at studying and implementing emerging technologies associated with the development of embedded systems. It is intended to design and develop an integrated solution that includes features for real-time industrial automation applications. The presented project includes all the necessary steps, from research and specification to the validation and simulation, passing through the design of electronic circuits, hardware design and software development. Keywords: Industrial Systems, Embedded Systems, GNU, Linux, RTOS, ARM, Xenomai, ADEOS, QEMU. Adriano José Ribeiro Campos v

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux ÍNDICE ÍNDICE AGRADECIMENTOS... i RESUMO... iii ABSTRACT... v LISTA DE FIGURAS... xi SIMBOLOGIA... xv ABREVIATURAS... xvii 1 INTRODUÇÃO... 1 1.1 Motivações... 1 1.2 Objectivos... 2 1.3 Organização do documento... 2 1.4 Considerações linguísticas... 3 2 ESTADO DA ARTE... 5 2.1 Arquitectura ARM... 5 2.1.1 Evolução histórica... 6 2.1.2 Diversas soluções da arquitectura ARM... 7 2.1.3 Mercado da tecnologia ARM... 8 2.1.4 Principais características técnicas... 9 2.1.5 Resumo das vantagens de usar ARM... 10 2.2 Sistemas embebidos... 10 2.2.1 Desenvolvimento de um sistema embebido... 12 2.3 Soluções GNU/Linux... 13 2.3.1 Vantagens e desvantagens das soluções baseadas em GNU/Linux... 13 Adriano José Ribeiro Campos vii

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux ÍNDICE 2.3.2 GNU/Linux em sistemas embebidos... 13 2.4 Sistemas operativos de tempo-real (RTOS)... 14 2.4.1 Sistemas operativos de tempo-real baseados em Linux... 15 2.5 Norma IEEE 1588... 16 2.6 Barramentos industriais... 17 2.6.1 Barramento CAN... 17 2.6.2 Norma RS485... 18 2.6.3 Barramento USB... 19 2.7 Conclusões... 20 3 DESENVOLVIMENTO DA PLATAFORMA DE HARDWARE... 21 3.1 Desenho de circuitos impressos... 21 3.1.1 Interferências electromagnéticas... 21 3.1.2 Descargas electrostáticas... 22 3.1.3 Desenho de placas de circuito impresso... 22 3.1.4 Debug de hardware... 23 3.2 Software de desenho de hardware (EDA)... 23 3.2.1 Software Altium Designer... 24 3.2.2 Software Altium Designer Viewer... 25 3.3 Levantamento de requisitos... 25 3.4 Pesquisa de mercado... 27 3.4.1 Soluções para integração... 27 3.4.2 Placas de desenvolvimento... 30 3.5 Especificação... 33 3.6 Arquitectura... 33 3.6.1 Processamento... 34 3.6.2 Memórias... 37 3.6.3 IEEE1588... 38 3.6.4 Caixa... 39 3.7 Desenvolvimento do módulo MAIN BOARD... 40 3.7.1 Fonte de alimentação... 40 3.7.2 Barramento... 44 3.7.3 Entradas e saídas digitais com isolamento óptico... 46 3.7.4 Cartão de memória... 47 3.7.5 Aspecto final da MAIN BOARD... 48 viii

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux ÍNDICE 3.8 Desenvolvimento do módulo CPU BOARD... 49 3.8.1 Microcontrolador AT91SAM9XE512... 49 3.8.2 Sensor de temperatura... 55 3.8.3 Memórias... 56 3.8.4 Ethernet segundo a norma IEEE1588... 58 3.8.5 USB Host e USB Device... 59 3.8.6 Aspecto final da CPU BOARD... 60 3.9 Produção das placas de circuito impresso... 60 3.10 Especificações técnicas do equipamento... 63 3.11 Configurações do equipamento... 64 3.12 Aspecto final do produto... 65 3.13 Conclusões... 65 4 DESENVOLVIMENTO DA PLATAFORMA DE SOFTWARE... 67 4.1 Conceitos de Virtualização... 67 4.2 Configuração do ambiente de trabalho... 68 4.2.1 Virtual Box: Virtualização Nativa... 68 4.2.2 QEMU: Emulador de hardware... 69 4.3 Soluções baseadas em Linux4SAM... 70 4.4 Desenvolvimento GNU/Linux para ARM... 71 4.4.1 Toolchain... 71 4.4.2 BuildRoot... 72 4.4.3 RTOS para a plataforma desenvolvida... 77 4.4.4 Sistema operativo para a Plataforma versatilepb... 78 4.4.5 Compilação cruzada de um programa... 79 4.5 Carga do sistema na plataforma desenvolvida... 80 4.5.1 Sequência de arranque do sistema... 80 4.5.2 Bootloader Universal Das U-Boot... 82 4.5.3 Ferramenta SAM-BA da ATMEL... 83 4.6 Emulação de hardware com QEMU... 85 4.6.1 Emular arquitectura x86... 85 4.6.2 Emular arquitectura ARM... 86 4.6.3 Testar uma aplicação ARM.... 89 4.7 Conclusões... 89 Adriano José Ribeiro Campos ix

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux ÍNDICE 5 CONCLUSÕES... 91 5.1 Desenvolvimento de hardware... 91 5.1.1 Análise de custos do desenvolvimento do hardware... 92 5.2 Desenvolvimento de firmware... 93 5.1 Conclusões gerais... 94 5.2 Trabalho futuro... 95 REFERÊNCIAS BIBLIOGRÁFICAS... 97 ANEXOS... 101 Anexo 1. Esquema eléctrico "MAIN BOARD"... 101 Anexo 2. Marcação dos componentes da placa "MAIN BOARD"... 108 Anexo 3. Camada Top e Bottom da placa MAIN BOARD... 109 Anexo 4. Lista detalhada de material da placa MAIN BOARD... 110 Anexo 5. Esquema eléctrico da placa "CPU BOARD"... 113 Anexo 6. Marcação dos componentes da placa "CPU BOARD"... 119 Anexo 7. Camada Top e Bottom da placa MAIN BOARD... 120 Anexo 8. Camada interna 1 e 2 da placa MAIN BOARD... 121 Anexo 9. Lista detalhada de material da placa CPU BOARD... 122 x

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux LISTA DE FIGURAS LISTA DE FIGURAS Figura 1 Diferentes famílias da arquitectura ARM (ARM, 2011a).... 8 Figura 2 - Evolução da utilização da arquitectura x86 e ARM (TECHSPOT, 2011).... 9 Figura 3 Tendência do uso de sistemas operativos em sistemas embebidos.... 14 Figura 4 - Arquitectura de tempo-real implementada pelo projecto ADEOS.... 16 Figura 5 - Mensagem CAN.... 18 Figura 6 - Tipos de conectores USB (Alecrim, E., 2011).... 19 Figura 7 - Ambiente integrado do software Altium Designer.... 25 Figura 8 Esquema de uma plataforma modular em calha DIN.... 26 Figura 9 - Módulo de integração "Micro2440".... 27 Figura 10 - Módulo de integração "Netus G20".... 28 Figura 11 - Módulo de integração " LPC-H3131".... 28 Figura 12 - Módulo de integração "LPCEB2000-B".... 29 Figura 13 - Placa de desenvolvimento "909-CS-E9302"... 30 Figura 14 - Placa de desenvolvimento " Mini2440".... 30 Figura 15 - Placa de desenvolvimento " EB-SAM9G45".... 31 Figura 16 - Placa de desenvolvimento "EK_LM3S8962"... 31 Figura 17 - Diagrama do equipamento.... 34 Figura 18 Módulos do microcontrolador SAM9XE da ATMEL.... 35 Figura 19 - Família AT91SAM da ATMEL (Embest Info, 2011c).... 35 Figura 20 Gama de microcontroladores da série SAM9260/9XE da ATMEL (MSC, 2011).... 36 Figura 21 - Diagrama de blocos da série AT91SAM9XE (MSC-GE, 2011).... 37 Figura 22 - Diagrama do driver físico para Ethernet DP83640.... 39 Figura 23 - Caixa seleccionada para o equipamento.... 40 Figura 24 - Entrada de alimentação e protecções.... 41 Figura 25 - Circuito da fonte comutada, saída 5 Volts.... 42 Figura 26 - Circuito do regulador linear, saída de 3.3Volts... 42 Figura 27 - Circuito do regulador linear, saída 1.8V e circuito da bateria de reserva (Backup)... 43 Figura 28 - Circuito do regulador bomba de carga, saída 1.8Volts.... 43 Figura 29 - Circuito de controlo dos módulos de alimentação.... 44 Figura 30 - Circuito do barramento.... 44 Figura 31 - Circuito para selecção do protocolo do barramento.... 44 Figura 32 - Circuito da comunicação RS485.... 45 Figura 33 - Circuito da comunicação RS232.... 45 Figura 34 - Circuito da comunicação CAN.... 46 Figura 35 - Circuito das entradas digitais com isolamento óptico.... 47 Adriano José Ribeiro Campos xi

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux LISTA DE FIGURAS Figura 36 - Circuito das saídas digitais com isolamento óptico.... 47 Figura 37 - Circuito do cartão de memória.... 48 Figura 38 - Aspecto Final da "MAIN BOARD".... 48 Figura 39 - Circuito de alimentação do módulo conversor analógico digital.... 50 Figura 40 - Circuito do oscilador principal.... 51 Figura 41 - Circuito do oscilador secundário.... 51 Figura 42 - Circuito para selecção do oscilador.... 51 Figura 43 - Circuito do filtro PLL.... 52 Figura 44 - Circuito de reinício do microcontrolador.... 53 Figura 45 - Circuito de encerramento.... 53 Figura 46 - Circuito de inicialização.... 53 Figura 47 - Circuito JTAG.... 54 Figura 48 - Circuito para apagar a memória FLASH.... 55 Figura 49 - Circuito do sensor de temperatura.... 56 Figura 50 - Circuito da memória SDR SDRAM.... 57 Figura 51 - Circuito da memória NAND FLASH.... 57 Figura 52 - Circuito da Ethernet segundo a norma IEEE1588.... 58 Figura 53 - Circuito do USB Host.... 59 Figura 54 - Circuito do USB Device.... 60 Figura 55 - Aspecto Final da "CPU BOARD".... 60 Figura 56 - Aspecto final do produto sem caixa.... 65 Figura 57 - Estrutura básica de virtualização de plataforma... 67 Figura 58 - Esquema do ambiente de trabalho... 68 Figura 59 - Compilação cruzada para ARM (Free Electrons, 2010).... 71 Figura 60 - Menu de configuração do Buildroot.... 74 Figura 61 - Sequência de arranque da família AT91SAM9XXX.... 82 Figura 62 - Software SAM-BA (ATMEL, 2010c).... 84 Figura 63 - Janela Principal do software SAM-BA (ATMEL, 2010c).... 84 Figura 64 -QEMU com ambiente gráfico... 88 xii

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux LISTA DE TABELAS LISTA DE TABELAS Tabela 1 - Correspondência entre arquitecturas e famílias ARM. 8 Tabela 2 - Características do módulo para integração "Micro2440 (FriendlyARM, 2011a)". 27 Tabela 3 - Características do módulo para integração " Netus G20 (AcmeSystems, 2011)". 28 Tabela 4 - Características do módulo para integração "LPC-H3131 (OLIMEX, 2011a)". 28 Tabela 5 - Características do módulo para integração "LPCEB2000-B (Embest Info, 2011a)". 29 Tabela 6 - Características da placa de desenvolvimento "909-CS-E9302 (OLIMEX, 2011b)". 30 Tabela 7 - Características da placa de desenvolvimento "Micro2440 (FriendlyARM, 2011b)". 30 Tabela 8 - Características da placa de desenvolvimento "EB-SAM9G45 (Embest Info, 2011a)". 31 Tabela 9 - Características da placa de desenvolvimento "EK_LM3S8962 (TI, 2011)". 31 Tabela 10 - Tabela de especificações do equipamento. 33 Tabela 11 - Configuração da porta série de debug RS232 e RS232. 45 Tabela 12 - Ligações do conector JTAG (Rath, D., 2005). 54 Tabela 13 - LEDs indicadores do estado da comunicação Ethernet. 59 Tabela 14 - Características técnicas da placa de circuito impresso MAIN BOARD. 61 Tabela 15 - Lista das camadas da placa de circuito impresso "MAIN BOARD". 61 Tabela 16 - Características técnicas da placa de circuito impresso CPU BOARD. 62 Tabela 17 - Lista das camadas da placa de circuito impresso "CPU BOARD". 62 Tabela 18 - Especificações técnicas do equipamento. 63 Tabela 19 - Configuração dos Jumpers placa MAIN BOARD. 64 Tabela 20 - ConFiguração dos Jumpers da placa CPU BOARD. 64 Tabela 21 - Custos de produção do equipamento para 1 unidade e 100 unidades. 93 Adriano José Ribeiro Campos xiii

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux SIMBOLOGIA SIMBOLOGIA hertz (símbolo: Hz) É a unidade de frequência derivada do Sistema Internacional de Unidades (SI), para frequência. É expressa em termos de ciclos por segundo, a frequência de um evento periódico. KHz Múltiplo do SI para Hz e representa 10 3 Hz. MHz Múltiplo do SI para Hz e representa 10 6 Hz. GHz Múltiplo do SI para Hz e representa 10 9 Hz. segundo (símbolo: s) É a unidade de frequência derivada do Sistema Internacional de Unidades (SI), para medir intervalos de tempo. milisegundos (símbolo: ms) Múltiplo do SI para segundos e representa 10-3 s. microsegundos (símbolo: µs) Múltiplo do SI para segundos e representa 10-6 s. nanosegundos (símbolo: ns) Múltiplo do SI para segundos e representa 10-9 Hz. Volt (símbolo: V) É a unidade de tensão eléctrica do SI, que representa a diferença de potencial eléctrico entre dois pontos. milivolts (símbolo: mv) Múltiplo do SI para volts e representa 10-3 V. amperes (símbolo: A) É uma unidade de medida do SI de intensidade de corrente eléctrica. miliampere (símbolo: ma) Múltiplo do SI para amperes e representa 10-3 A. microampere (símbolo: µa) Múltiplo do SI para amperes e representa 10-6 A. Ohm (símbolo: Ω) É a unidade de resistência eléctrica do SI. miliohm (símbolo: m Ω) Múltiplo do SI para resistência e representa 10-3 Ω. graus celsius (símbolo: C) É uma unidade de medida de temperatura. A escala oficial, indicada pelo Sistema Internacional de Unidades, é a Kelvin. A conversão é realizada pela seguinte equação: t ºC = (t + 273) K. metro (símbolo: m) É a unidade de medida de comprimento do SI. milimetro (símbolo: mm) Múltiplo do SI para metro e representa 10-3. byte (símbolo: B) É a codificação padronizada que foi definida como sendo de 8 bits. Pode ser representada por múltiplos, como KB (2 10 B), MB (2 20 B), GB (2 30 B), TB (2 40 B), etc. bit (símbolo: b) É a simplificação para um dígito binário. Pode ser representada por múltiplos, como Kb (10 3 ), Mb (10 6 ) Gb (10 9 ) Tb (10 12 ). byte por segundo (símbolo: Bps) É uma taxa de transferência de dados binários. bit por segundo (símbolo: bps) É uma taxa de transferência de dados binários Adriano José Ribeiro Campos xv

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux ABREVIATURAS ABREVIATURAS ADC do Inglês, Analog-to-Digital Converter ADEOS do Inglês, Adaptive Domain Environment for Operating Systems ARM do Inglês, Advanced RISC Machine API do Ingles, Application Programming Interface BOM do Inglês, Bill Of Materials CAN do Inglês, Controller area network CMOS do Inglês, Complementary Metal Oxide Semiconductor CPU do Inglês, Central Processing Unit CISC do Inglês, Complex Instruction Set Computer CDC do Inglês, Communication Device Class DMA do Inglês, Dynamic Memory Allocation DVD do Inglês, Digital Versatile Disc DC do Inglês, Direct Current DDR SDRAM do Inglês, Double Data Rate Sincronous Dynamic Random Access Memory EDA do Inglês, Electronic Design Automation E/S Entradas e saídas FPGA do Inglês, Field-Programmable Gate Array GPNVM do Inglês, General Porpouse Nom Volatile Memory Bits IEEE do Inglês, Institute of Electrical and Electronics Engineers IEC do Inglês, International Electrotechnical Commission I/O do Inglês, Inputs / Outputs JTAG do Inglês, Joint Test Action Group LQFP do Inglês Low-profile Quad Flat Package LDO do Inglês, Low Dropout MP3 do Inglês, MPEG-1/2 Audio Layer 3 MII do Inglês, Media Independent Interface NTRST do Inglês, Test Reset Signal NRST do Inglês, Microcontroller Reset Active a Low LED do Inglês, Light Emitting Diode PMC do Inglês, Power Management Controller PIO do Inglês, Parallel Input / Output Controller PLL do Inglês, Phase-Locked Loop or Phase Lock Loop PMC do Inglês, Power Management Controller PTP do Inglês, Precision Time Protocol PLD do Inglês, Programmable Logic devices PCB do Inglês, Printed Circuit Board GNU do Inglês, GNU's Not Unix! GDB do Inglês, GNU Project debugger GPS do Inglês, Global Positioning System Adriano José Ribeiro Campos xvii

Projecto e Construção de um Sistema Embebido de Tempo-Real Baseado em Linux ABREVIATURAS SDRAM do Inglês, Synchronous Dynamic Random Access Memory SDR SDRAM do Inglês, Single Data Rate Sincronous Dynamic Random Access Memory SDR do Inglês, Single Data Rate SPI do Inglês, Serial Peripheral Interface SD CARD do Inglês, Secure Digital Card SSC do Inglês, Synchronous Serial Controller DIN do Alemão, Deutsche Industrie Norm RAM do Inglês, Random-Access Memory RMMI do Inglês, Reduced Media Independent Interface RTOS do Inglês, Real Time Operating System RTAI do Inglês, Real Time Application Interface RTCK do Inglês, Returned Test Clock RISC do Inglês, Reduced Instruction Set Computer RTC do Inglês, Real-Time clock RXD do Inglês, Receive Data TDI do Inglês, Test Data In TMS do Inglês, Test Mode Select TCK do Inglês, Test Clock TXD do Inglês, Transmit Data TWI do Inglês, Two Wire Interfaces TDO do Inglês, Test Data Out TAP do Inglês, Test Access Port USB do Inglês, Universal Serial Bus USART do Inglês, Universal Asynchronous Receiver / Transmitter OSI do Inglês, Open Systems Interconnection ISO do Inglês, International Organization for Standardization xviii

CAPITULO 1 1 INTRODUÇÃO Este capítulo apresenta uma introdução ao Trabalho de Projecto, descrevendo as motivações, os objectivos, a organização deste documento e ainda as considerações linguísticas usadas na escrita deste documento. Estes assuntos são abordados nos seguintes subcapítulos: Subcapítulo 1.1: Motivação para a realização deste projecto; Subcapítulo 1.2: Objectivos do projecto; Subcapítulo 1.3: Organização do documento; Subcapítulo 1.4: Considerações linguísticas. 1.1 Motivações Com a evolução da tecnologia, uma diversificada gama de equipamentos electrónicos são diariamente colocados no mercado. Este crescimento atinge especialmente os sistemas embebidos, estando estes cada vez mais presentes na nossa vida diária. Consequentemente, o desenvolvimento de sistemas embebidos é, nos dias de hoje, uma actividade muito importante na economia de um país industrializado e moderno, devido especialmente ao impacto que este tipo de sistemas tem no desenvolvimento de equipamentos electrónicos, em todas as áreas, desde a indústria até ao entretenimento. A arquitectura ARM não é exactamente uma novidade, pelo contrário, criada em 1983, ela está prestes a completar três décadas de existência e vê agora as suas possibilidades ampliadas. A arquitectura ARM passou a ser nos últimos anos uma referência para sistemas embebidos, principalmente pela sua simplicidade, baixo consumo e por ser vendida como um IP (do Inglês, Intellectual Property), o que faz com que qualquer empresa possa produzir processadores com arquitectura ARM desde que adquira os respectivos direitos com a empresa inglesa ARM Lda. (Advanced RISC Machines). Os processadores com arquitectura ARM, desde que foram criados, alcançaram uma fatia expressiva de mercado, em cerca de 90% de todos os sistemas embebidos. Actualmente, mais de 98% de todos os telemóveis vendidos no mundo usam algum processador baseado na arquitectura ARM. Estes números mostram como esta tecnologia é uma opção válida e segura para um sistema embebido (GEEK, 2011). No caso do sistema embebido ser implementado com um sistema operativo genérico, um ponto importante são as licenças de utilização. Umas são fornecidas sobre licenças de software livre, outras ainda admitem a utilização com o pagamento de royalties sobre as unidades vendidas e outras sobre licenças de utilização pagas. Neste projecto pretende-se desenvolver uma plataforma utilizando ferramentas com licenças de software livre, proporcionando uma solução competitiva. Consequentemente este projecto, ao nível do software, será implementado com as soluções GNU/Linux e outras soluções disponibilizadas por outros projectos de software livre, como o projecto Xenomai e ADEOS. Estes dois últimos fornecem pacotes de software que permitem adaptar o kernel Adriano José Ribeiro Campos 1

INTRODUÇÃO Linux para incluir com características de funcionamento em tempo-real. Um sistema embebido tornase ainda mais interessante se funcionar com características de tempo-real. 1.2 Objectivos Apesar de existir muita investigação na área dos sistemas embebidos e dos sistemas de tempo-real, não é muito comum encontrarmos projectos apresentando uma descrição da implementação de um equipamento personalizado para automação industrial, com essas características. O objectivo desde trabalho é projectar e construir um equipamento baseado num sistema embebido com um processador com arquitectura ARM, assente no kernel Linux, com alterações para funcionar com características de tempo-real e com as aplicações GNU, que seja funcionalmente compatível com os ambientes industriais. Para que este objectivo principal seja cumprido, foram criadas algumas metas no percurso deste projecto, sendo elas: Estudo das tecnologias envolvidas: Estudo do actual estado destas tecnologias emergentes e breve descrição das mesmas. Neste ponto serão utilizadas diversas referências e trabalhos de pesquisa e investigação na área, sendo sempre referenciados os seus autores; Desenvolvimento de uma plataforma de hardware: O desenvolvimento de uma plataforma de hardware adaptado a calha de automação, com uma caixa genérica e contendo um conjunto de interfaces de comunicação, como Ethernet, CAN, RS485, RS232 e USB. Os componentes escolhidos foram seleccionados tendo em conta os requisitos especificados e as várias condicionantes do projecto; Desenvolvimento de uma plataforma de software: Adaptação do kernel Linux para ter características de tempo-real, e para funcionar no hardware projectado. Após o firmware adaptado, pretende-se colocar na plataforma de hardware desenvolvida neste projecto, o kernel Linux e algumas aplicações GNU. Neste ponto merecem especial atenção, a correcta integração do sistema operativo com todos os componentes do mesmo, a arquitectura escolhida e o arranque inicial do sistema; Caso de estudo: Demonstração de uma aplicação exemplo, na área de automação industrial onde sejam evidenciadas as potencialidades do sistema desenvolvido, em particular as características de um sistema de tempo-real. 1.3 Organização do documento Este documento está organizado nos seguintes capítulos e anexos: Capítulo 1 Introdução; Capítulo 2 Estado da Arte; Capítulo 3 Desenvolvimento da plataforma de hardware; Capítulo 4 Desenvolvimento da plataforma de software; Capítulo 5 Conclusões; Referências bibliográficas Identificação das referências usadas neste projecto; Anexos Esquemas eléctricos e ficheiros de configuração. 2

CAPITULO 1 1.4 Considerações linguísticas Num documento sobre um projecto essencialmente técnico e especialmente na área que este se insere, é inevitável o recurso a alguns termos em língua estrangeira. Sempre que possível é usado o termo na língua portuguesa, quando não é possível o termo aparecerá no formato de texto Itálico, por exemplo, hardware ou firmware. Assim, os termos que serão utilizados em Inglês, são apresentados nos seguintes pontos, juntamente com uma pequena descrição: hardware: Dispositivo electrónico, desde circuitos integrados a componentes passivos, que disponibilizam a capacidade de processamento, de memória, de interface ao utilizador e a interacção com o mundo exterior, quer seja por accionamentos de dispositivos electromecânicos quer por interfaces com o utilizador. firmware: Programas e estruturas de dados que permitem a execução da tarefa para o qual o sistema foi construído. Em sistemas embebidos, usa-se o termo firmware em vez de software, visto que nestes sistemas o firmware é desenvolvido para aceder directamente ao hardware; jumpers: Em Português "ligação em ponte" é um pequeno conector que possibilita abrir ou unir uma determinada linha de uma placa de circuito impresso. São normalmente utilizados para configurações ou para técnicas de debug; debug: Em Português "depuração" é o processo de encontrar e reduzir ou eliminar defeitos em software e/ou hardware; interface: Dispositivo ou meio que controla a interligação entre dois dispositivos de hardware e/ou software e os ajuda a trocar dados de forma confiável e segura; upgrade: Normalmente designa o acto de troca de um hardware e/ou software por uma versão melhorada ou mais recente, com o objectivo de agregar novas funcionalidades, ou melhorar as existentes. Adriano José Ribeiro Campos 3

CAPITULO 2 2 ESTADO DA ARTE Este capítulo apresenta as diversas tecnologias abordadas neste projecto, segundo as suas características básicas, a evolução histórica, a aceitação do mercado, entre outros pontos que se considerem importante referir. Assim, este capítulo descreve as tecnologias abordadas pela seguinte ordem de subcapítulos: Subcapítulo 2.1: Arquitectura ARM; Subcapítulo 2.2: Sistemas embebidos; Subcapítulo 2.3: Soluções GNU/Linux; Subcapítulo 2.4: Sistemas operativos de tempo-real (RTOS); Subcapítulo 2.5: Protocolo de rede Ethernet e a norma associada IEEE1588; Subcapítulo 2.6: Resumo sobre barramentos industriais, nomeadamente os que serão integrados neste projecto; Subcapítulo 2.7: Conclusões. 2.1 Arquitectura ARM O primeiro ponto importante no que se refere à arquitectura ARM é que não se trata de um microcontrolador ou processador produzido por uma empresa. Na verdade, esta arquitectura define o núcleo funcional de um processador, ou seja, a sua arquitectura, os seus registos internos, o conjunto de instruções, algumas unidades funcionais, entre outras características. A empresa inglesa ARM Lda. (Advanced RISC Machines), responsável pelo desenvolvimento e licenciamento da arquitectura ARM, licencia este núcleo (do Inglês, core) para fabricantes que produzem microcontroladores, com processadores baseados nesta arquitectura ao nível do processador e com os periféricos que consideram mais importantes para atender ao seu mercado e a determinadas aplicações. Estes microcontroladores combinam uma vasta gama de periféricos com uma excelente relação custo/beneficio e processamento/consumo. Alguns exemplos de empresas multinacionais que obtiveram a licença ARM e fabricam produtos com esta tecnologia são: Alcatel-Lucent, Apple Inc., ATMEL, Broadcom, Cirrus Logic, Digital Equipment Corporation, Freescale, Intel, LG, Marvell Technology Group, Microsoft, NEC, Nintendo, Nuvoton, Nvidia, Sony, NXP, Oki, ON Semiconductor, Qualcomm, Samsung, Sharp, STMicroelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamaha and ZiiLABS. É neste contexto que a tecnologia ARM aparece como o principal expoente em processadores para sistemas embebidos baseados em arquitecturas de 32 bits. Actualmente, processadores com a arquitectura ARM são usados em incontáveis projectos e a tecnologia ARM é encontrada facilmente em telemóveis, leitores de MP3, câmaras fotográficas e Adriano José Ribeiro Campos 5