37
Webinar Freescale Desenvolvimento de sistemas embarcados em Linux com a Thunderboard 11/12/2013

Webminar Freescale Desenvolvimento de sistemas embarcados ... · Vantagens de projetos com SoM ... –Apropriado para aproveitamento em caixas dedicadas • Conectores de expansão

  • Upload
    dohuong

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Webinar Freescale

Desenvolvimento de sistemas embarcados em

Linux com a Thunderboard

11/12/2013

Índice

• Sobre a Thunderboard – Descrição do produto

– System on Module (SoM) – MDP i.MX28

– Aplicações

– Vantagens

• BSP – Linux

– Yocto Project

– Xenomai

• Dúvidas

SOBRE A THUNDERBOARD

O que é a Thunderboard?

Hardware para aplicações embarcados

• Contém recursos básicos de um microcomputador embarcado

• De fácil integração em soluções personalizadas

• Baixo custo

Reference design para projeto de equipamentos

dedicados

• Placa base do System on Module MDP i.MX28

• Projeto base para projeto de novo hardware dedicado

Uma solução flexível e de baixo custo para aplicação em sistemas embarcados

Thunderboard

Sobre a Thunderboard

• Projeto em parceria Phi Innovations – iTech

• Motivação inicial: CPU base para aplicação em uma linha de

produtos da área de soluções do Grupo iTech

• Resultado final: uma CPU de custo baixo para uso geral, em

diversos segmentos de mercado

Características

Um projeto de hardware em duas camadas

Placa Base

SoM (System on

Module)

System on Module: Placa independente contendo todos os recursos computacionais necessários para projeto de hardwares dedicados com diferentes periféricos.

Placa Base: Placa contendo todos os periféricos dedicados de um sistema embarcado específico

A comunicação entre as duas placas se dá através de conector ou soldagem

Vantagens de projetos com SoM

Utilizar um SoM reduz risco de projeto de um sistema embarcado

• Projeto de hardware – Maior risco está no projeto dos componentes de CPU de um sistema

embarcado

• Riscos – Gerenciamento de componentes em fim de linha

– Projeto de PCB de altas velocidades

– Aumento na quantidade de camadas de placa

Vantagens de projetos com SoM

Tempo de desenvolvimento

• Time to market reduzido ao usar um SoM

Placa base de complexidade reduzida

• Baixo custo

• Poucas camadas

Flexibilidade do projeto

• É possível melhorar o desempenho e recursos do projeto através da substituição da unidade computacional do projeto

Especificações da Thunderboard

Recursos

• System on Module MDP i.MX28

• Ethernet

• USB Host duplo

• USB On The Go (OTG)

• Conector UART (FTDI)

• Cartão Micro SD

• Acelerômetro

• Alimentação através de conector P4 – 5 V

• 4 Leds auxiliares

• Barra de expansão

Expansão

• 3 seriais UARTs

• 2 interfaces CAN

• GPIO

• LCD

• ADC – 7 canais 12 bits e um canal 2 MSPS

• SPI

• I2C

• I2S

SoM MDP i.MX28

• Microprocessador Freescale i.MX28

• ARM926EJ-S de 454 MHz

• Cache 16 KB/32 KB

• 128 MB de memória RAM DDR2

• 512 MB de memória NAND Flash

• PHY Ethernet – Suporte a IEEE 1588

• Dimensão: 35 x 44 mm

• Encapsulamento castellation de 146 pinos

• Alimentação 5 V

Vantagens do MDP i.MX28

• Baixo custo

• Produção nacional

• Fácil produção e manutenção

– Encapsulamento castellation facilita montagem e reparo de

placa

• Versátil

– Permite o emprego em diferentes aplicações

APLICAÇÃO

Cenários de uso

• Utilização da Thunderboard em projetos específicos

• Utilização do MDP i.MX28 em projetos específicos

Uma placa para ser usada em equipamentos

• Leds de um lado e conectores de outro – Apropriado para aproveitamento em

caixas dedicadas

• Conectores de expansão – Para inclusão de novas

funcionalidades

• Conectividade essencial – USB Host

– USB Device

– Ethernet

• Armazenamento externo – Suporte a pendrive

– Cartão SD

Aplicações com Thunderboard

• Automação comercial – Leitores de dados

– Teclados

– Microterminais

• Sensoreamento – Aquisição e transmissão de

dados

• Interface Homem Máquina (IHM)

• Telemetria

• Expansão através de hardware adicional – Modems 3G e GPRS

– Sensores (GPIO/I2C/SPI)

– Display LCD Touchscreen

– Wi-Fi

– Bluetooth

– Ethernet Adicional

Aplicações com MDP i.MX28

• Networking

– Roteadores personalizados

• Automação industrial

– CPU para CLPs e IHMs

• Automação comercial

– Microterminais

– Coletores de dados

– IHMs

• Telemetria

– Modems

– Unidades remotas de

monitoramento

– Rastreadores de veículos

• Computadores de bordo

• Segurança

– Sistemas de vigilância

– Proxy

BSP

Definição de BSP

• BSP – Board Support Package

Conjunto de software necessário para execução de um determinado conjunto de software para um hardware específico

Geralmente é composto pelo sistema operacional embarcado executado no equipamento eletrônico, juntamente com seus drivers de dispositivos e suas ferramentas de desenvolvimento de software aplicativo

Linux

• Suporte ao sistema operacional Linux

• Linux implementado na ferramenta Yocto

– Geração de todo o ambiente de desenvolvimento de software

aplicativo para a Thunderboard/SoM

Yocto Project

• Projeto da Linux Foundation com o objetivo de uniformizar o desenvolvimento de BSPs Linux para diferentes microprocessadores e placas Fornece templates, ferramentas e métodos para auxiliar na criação de sistemas personalizados baseados em Linux para produtos embarcados independentemente da arquitetura de hardware

Yocto Project

Principais componentes

• Openembedded

– http://www.openembedded.org

– Framework para criar distribuições Linux para sistemas embarcados

– Pode incluir bootloader, kernel Linux e aplicações

– É um conjunto de metadados usado para cross-compilar, empacotar

e instalar pacotes de software

• A partir de seu código fonte

Yocto Project

Principais componentes

• Poky Platform Builder – http://www.pokylinux.org

– É a ferramenta de construção de distribuição Linux (Linux build system) do Projeto Yocto

– É derivado do OpenEmbedded

– É um subconjunto do OpenEmbedded, com recursos compartilhados com o intuito de integração direta

Yocto Project

Principais componentes

• Bitbake – http://bitbake.berlios.de/

– Ferramenta utilizada para execução de tarefas

– Derivada do projeto de código aberto Portage • Sistema de gerenciamento de pacotes da distribuição Gentoo

– Utilizado principalmente para compilação de pacotes

– É base dos projetos Poky/OpenEmbedded

Construção de uma imagem

QEMU ou placa final

Arquitetura

Áreas funcionais

• Configuração de usuário: metadados usados para controlar o processo de compilação

• Camadas de metadados: várias camadas de metadados com configurações de software, de hardware e de distribuição

• Arquivos fonte: versões oficiais, projetos locais ou repositórios remotos

• Package feeds: diretórios contendo pacotes de saída que são usados para construção de uma imagem ou SDK (Software Development Kit)

• Imagens: imagens produzidas pelo processo de desenvolvimento

• SDK de desenvolvimento de aplicações: ferramentas de cross compilação

Ambiente de trabalho

Procedimento básico

• Baixar o projeto poky

• Executar configurações de variáveis de ambiente – source oe-init-build-env

• Alterar os arquivos de configuração – bblayers.conf

– local.conf

• Executar a compilação desejada – bitbake <target>

Exemplos de targets

• core-image-minimal

• meta-toolchain

• openssh

Cada imagem possui um arquivo .bb com a receita responsável pela execução das tarefas correspondentes a este procedimento

MDP i.MX28 – Código fonte

• Projeto hospedado no Github – https://github.com/PhiInnovations/mdp28-linux-bsp

• Criada uma camada específica para a placa – meta-phi

• Criada uma imagem específica para a placa – image-phi-mdp28

• Criada uma configuração específica de hardware – mdp28

Xenomai

• Framework para desenvolvimento de sistemas de tempo

real em Linux

– Objetivo é permitir com que software criado em outros

ambientes possam executar em Linux, mediante recompilação

• Projeto criado em 2001

• Se fundiu com o RTAI em 2003

– RTAI/Fusion

• Se separou do RTAI em 2005

Xenomai

Hardware

Adeos/I-pipe

Interrupções de hardware

Xenomai RTOS (nucleus) Linux Kernel

Aplicativo tempo real

Aplicativo convencional

Interrupções de hardware

Interrupções de hardware

Chamadas de API

Chamadas de I/O

Chamadas de I/O

Chamadas de sistema

USER SPACE

KERNEL SPACE

Xenomai

• Utiliza o ADEOS como tecnologia de separação de domínios

– Tempo Real

– Não tempo real

• Possui um RTOS próprio (nucleus)

– Skins para utilização de código de outros sistemas operacionais

• Comunidade relativamente grande

– Em comparação com outras iniciativas similares

– Suporte a diversas plataformas

Principais componentes

• Xenomai Nucleus – Sistema operacional de tempo real. Implementa todas as funcionalidades necessárias para execução

de aplicativo de tempo real

• Real Time Driver Model (RTDM) – Infraestrutura para desenvolvimento de drivers e tasks para execução em kernel-space com Xenomai

• Native API – Conjunto de funções que controlam o funcionamento do Xenomai Nucleus. Trata-se de uma biblioteca

nativa e específica para um projeto de software escrito para Xenomai

• POSIX Skin – Implementação de funcionalidades de tempo real para execução no Xenomai Nucleos conforme as

especificações de API de tempo real definidas no padrão POSIX • Padrão POSIX é a principal referência de API dos principais vendors de RTOS do mercado

• HAL – Hardware Abstraction Layer. Utilizada para comunicação com ADEOS

• SCHED – Funcionalidades para controle de escalonadores

Roadmap BSP

• Fase 1 – suporte inicial

– Configuração básica

– Ambiente de desenvolvimento

• Fase 2 – Qt

– Suporte ao desenvolvimento de interface gráfica com o usuário

• Fase 3 – Xenomai

– Suporte ao desenvolvimento de software em tempo real

PERGUNTAS ?