• Nenhum resultado encontrado

Agenda. ! Visão Geral sobre Sistemas Embarcados. ! Proposta de um Currículo em Sistemas Embarcados! Estudos de Casos. ! Conclusão

N/A
N/A
Protected

Academic year: 2021

Share "Agenda. ! Visão Geral sobre Sistemas Embarcados. ! Proposta de um Currículo em Sistemas Embarcados! Estudos de Casos. ! Conclusão"

Copied!
73
0
0

Texto

(1)

Agenda

!   Visão Geral sobre Sistemas Embarcados

!  

Disciplinas da UFPE

!  

Disciplinas da UFSC

!   Proposta de um Currículo em Sistemas

Embarcados

!   Estudos de Casos

!  

Conversor de cores RGB para YCrCb

!  

Desenvolvimento de um testbench em SW para

testar um módulo de HW descrito em VHDL

!  

Novos Experimentos

!   Conclusão

(2)

Sistemas Embarcados

! Computadores invisíveis em dispositivos

usados diariamente, por exemplo, leitor de música, telefone celular, carros, trens,

equipamentos médicos, etc.

! Um sistema de computador para fins especiais de sistemas embarcados, que faz parte de um sistema maior

!   Em breve, o número de dispositivos será maior do que o de seres humanos no planeta

!   40 bilhões de dispositivos em 2020

!   99% de processadores são utilizados em sistemas embarcados

!   4 bilhões de processadores embarcados vendidos no ano passado

!   € 70 bilhões do mercado global em 2013, crescimento de 10 - 15% em 2014

(3)

o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o

Sistemas Embarcados Estão em Toda Parte

Nossa vida diária depende de sistemas

embarcados

(4)

Produto: Sonicare Plus toothbrush.

Microprocessador: 8-bit Zilog Z8.

(5)

Até Marte ...

!   Produto: NASA's

Mars Sojourner

Rover

!   Microprocessador:

8-bit Intel 80C85

5

(6)

Características dos Sistemas Embarcados

!   Uma função

!   Dedicado a executar uma única função

!   Funcionalidade complexa

!   Muitas vezes precisa executar um ou mais algoritmos sofisticados

!   Telefone celular, impressora laser !   Restrições

!   Baixo custo, baixo consumo de energia, pequeno, rápido, etc.

!   Tempo real e reativo

!   Continuamente reage a mudanças no ambiente do sistema

!   Deve calcular resultados em tempo real, sem atraso

!   Sistemas críticos

!   Não deve pôr em perigo vidas humanas e do meio ambiente

(7)

Agenda

!   Visão Geral sobre Sistemas Embarcados

!  

Disciplinas da UFPE

!  

Disciplinas da UFSC

!   Proposta de um Currículo em Sistemas

Embarcados

!   Estudos de Casos

!  

Conversor de cores RGB para YCrCb

!  

Desenvolvimento de um testbench em SW para

testar um módulo de HW descrito em VHDL

!  

Novos Experimentos

!   Conclusão

(8)

Universidade Federal de Pernambuco (UFPE)

! http://www.ufpe.br !   Fundada em 1962 !   3 Campi !   128 cursos de pós-graduação !   69 Mestrados Acadêmicos, !   10 Mestrados Profissionais !   49 Doutorados !   Cursos de excelência (6 ou 7) !   Física !   Ciência da Computação !   Química !   99 cursos de graduação !   Aproximadamente 22000 estudantes 8

(9)

Centro de Informática

!   http://cin.ufpe.br !   Fundado em 1971 !   85 professores

!   Curso de pós- graduação desde 1974 !   http://cin.ufpe.br !   Áreas de pesquisa !   Engenharia de Software !   Banco de Dados !   .... !   Sistemas Embarcados !   Sistemas de Comunicação !   Aprox. 1.334 dissertações de 9

(10)

10

Computação

• hardware • software

Controle

Comunicações

Engenharia da Computação

Engenharia da Computação

(11)

!   Curso de graduação de 5 anos, diurno.

!   Estrutura Semestral das Disciplinas.

!   Formação Profissional Básica:

!  

Disciplinas básicas e profissionais.

!   Formação Especializada:

!  

Disciplinas profissionais específicas.

!   Formação Complementar:

!  

Disciplinas de formação complementar ou outras

atividades.

Engenharia da Computação

Engenharia da Computação

(12)

Formação Profissional Básica:

disciplinas obrigatórias que compõem a formação comum a todos os alunos 65% do total

Formação Especializada:

disciplinas eletivas com formação específica em áreas de conhecimento 30% do total

Formação Complementar: disciplinas fora do programa do curso, de outros centros, e atividades credenciadas

5% do total

Graduação em Engenharia da Computação

no Centro de Informática da UFPE (CIn/

(13)

EC no CIn –Disciplinas Obrigatórias

Matemática Física

(14)

Matemática Discreta para Computação Álgebra Vetorial e Linear

para Computação Cálculo

1 Introdução à Programação(120h) Introdução à Computação(45h)

Algoritmos e

Estruturas de Dados

Física 1 Sistemas

Digitais Lógica para Computação

Trabalho de Graduação (150h) Estágio (300h) Infra-Estrutura de Software Infra-Estrutura de Hardware Cálculo 3 Infra-Estrutura de Comunicação Metodologia e Expressão Técnico-Científica

Circuitos Paradigmas de Linguagens Computacionais

Informática Teórica Teoria e Implementação de Linguagens Inglês para Computação Sinais e Sistemas Engenharia de Software e Sistemas Eletrônica Informática e Sociedade Projeto de Hardware-Software-Comunicação Métodos Numéricos

Computacionais Interface Hardware-Software Física 2 Gerenciamento de Dados e Informação Sistemas Inteligentes Princípios de Comunicação História e Futuro da Computação (45) Física 3 Física Experimental 1 Servomecanismo Dispositivos Semicondutores Eletromagnetismo Cálculo 2 Probabilidade e Estatística Disciplinas Eletivas (900h) Computação Controle Comunicações Física Matemática

(15)

Melhorando Ensino de Programação….

!   Implementação das

funcionalidades dos sistemas

embarcados

!   Implementação da

comunicação entre

equipamentos

Para Engenheiros da

Computação….

(16)

Aprendendo Programação de um

modo diferente….

!   Desenvolvimento de pequenos sistemas que

interagem ou controlam o ambiente

!   Comportamento do sistema implementado

através de um programa (software)

(17)

!   Formação Básica

• 

Exatas: !  Matemática !  Física

• 

Computação: !  Hardware !  Software !  Comunicações

• 

Engenharia: !  Eletrônica !  Telecomunicações

!   Formação Especializada

• 

Controle e Automação

• 

Processamento de Sinais

• 

Comunicações em Computadores

• 

Segurança de Sistemas

Sistemas Embarcados

• 

Sistemas Inteligentes

Engenharia da Computação

Engenharia da Computação

(18)

Sistemas Embarcados

18

!   Disciplina: Engenharia de Sistemas Embarcados

!   Aprox. 30 estudantes por semestre

!   Projeto de sistemas embarcados, Implementação em Software

!   Disciplina: Prototipação de Sistemas Digitais

!   Aprox. 30 alunos

!   Projeto de módulos de hardware com prototipação em FPGA

!   Disciplina: Projeto de Sistemas Embarcados

!   Aprox. 20 estudantes por semestre

!   Assembly, 8051, ARM7, desenvolvimento de hardware em FPGA

(19)

Agenda

!   Visão Geral sobre Sistemas Embarcados

!  

Disciplinas da UFPE

!  

Disciplinas da UFSC

!   Proposta de um Currículo em Sistemas

Embarcados

!   Estudos de Casos

!  

Conversor de cores RGB para YCrCb

!  

Desenvolvimento de um testbench em SW para

testar um módulo de HW descrito em VHDL

!  

Novos Experimentos

!   Conclusão

(20)

Universidade Federal de Santa Catarina (UFSC)

! http://www.ufsc.br !   Fundada em 1962

!   CAPES 6 ou 7 (Nível de Excelência)

!   Química !   Engenharia Mecânica !   Engenharia Elétrica !   Farmacologia !   Direito !   56 cursos de pós-graduação !   3882 nível de mestrado !   2360 nível de doutorado !   83 cursos de graduação !   Aproximadamente 25000 estudantes 20

(21)

Departamento de Engenharia Elétrica e Eletrônica

! http://deel.ufsc.br/ !   Fundado em 1966 !   52 professores

!   Curso de pós-graduação desde 1971

! http://ppgeel.ufsc.br !   Áreas de pesquisa

!   Circuitos e sistemas integrados

!   Comunicações e processamento de sinais !   Eletrônica de potência !   Engenharia biomédica !   Sistemas de energia !   Aprox. 1.127 dissertações de mestrado e 324 teses de doutorado 21

(22)

Atividades de Ensino

22

!   Disciplina: Sistemas Embarcados

!   Aprox. 30 estudantes por semestre

!   Projeto de sistemas embarcados, SystemC, Verificação

!   Disciplina: Microprocessadores

!   Aprox. 50 estudantes por semestre

(23)

Agenda

!   Visão Geral sobre Sistemas Embarcados

!  

Disciplinas da UFPE

!  

Disciplinas da UFSC

!   Proposta de um Currículo em Sistemas

Embarcados

!   Estudos de Casos

!  

Conversor de cores RGB para YCrCb

!  

Desenvolvimento de um testbench em SW para

testar um módulo de HW descrito em VHDL

!  

Novos Experimentos

!   Conclusão

(24)

Currículo em Sistemas Embarcados

24 Projeto Linguagem SystemC Electronic Design Automation 1 Verificação Simulação Formal Semiformal 2 Projeto baseado em plataforma Intel-Altera (DE2i-150) Barramento PCIe Co-projeto de HW e SW Estudos de casos 3 Desenvolvi mento de projetos 4

(25)

Labs. Utilizando a Plataforma Intel-Altera

25 Intel-Altera (DE2i-150) Barramento PCIe Qsys & SDK 1 e 2 Estudo de caso RGB -> YCrCb Gprof 3 Projeto do HW Ponto-fixo Somadores Multiplicado res 4 e 5 Integração HW e SW Análise dos resultados 6

(26)
(27)

Agenda

!   Visão Geral sobre Sistemas Embarcados

!  

Disciplinas da UFPE

!  

Disciplinas da UFSC

!   Proposta de um Currículo em Sistemas

Embarcados

!   Estudos de Casos

!  

Conversor de cores RGB para YCrCb

!  

Desenvolvido um testbench em SW para testar um

módulo de HW descrito em VHDL

!   Conclusão

(28)

Aulas 1 e 2

!   Conhecer a estrutura interna do kit DE2i-150

!   Conhecer o processador Atom da Intel e a

FPGA Cyclone IV

!   Conhecer o barramento PCIe

!   Executar demos

!  

“Control_Panel” para explorar o funcionamento dos

componentes da FPGA

!  

“PCIe_Fundamental” para estabelecer a

comunicação entre o processador Atom e a FPGA

(29)
(30)
(31)

Arquitetura do kit DE2i-150

31

(32)

! PCIe framework

Barramento PCIe

32

- PCI express system será implementado na FPGA utilizando o software Qsys

Builder da Altera.

- PCI express software

development kit (SDK) será

implementado no processador.

OS (Yocto) embarcado

(33)

Aula 3

!   Aula 3: Introdução do estudo de caso

!  

Apresentação do estudo de caso

!  

Explicar o funcionamento teórico da conversão

RGB -> YCrCb -> Limiarizado

!  

Executar o programa Gprof e analisar o custo

computacional de cada função do programa e determinar quais devem ser implementadas em hardware

(34)

YCrCb

!   Y’ é o componente de luminância e CB e CR são as componentes de croma.

!   A crominância refere-se ao valor das cores, enquanto a luminância refere-se às luzes, i.e., branco e preto

! Y'CbCr não é um espaço de cor absoluto, ao contrário, é uma forma de codificação de informações RGB

(35)

Apresentação do Estudo de Caso

35

Vídeo Cores RGB

(Red / Green / Blue)

Vídeo Limiarizado Cor Preto e Branco

Software da conversão de cor

(Linguagem C) !   Descrição geral

(36)

Apresentação do Estudo de Caso

36

Frames do vídeo Cores RGB

(Red / Green / Blue)

Vídeo (frames) Limiarizado Cor Preto e Branco

Software da conversão de cor

(Linguagem C)

Conversão de

RGB -> YCrCb Limiarizado

(37)

Conversão da Cor RGB -> YCrCb

37 Conversão de RGB -> YCrCb Limiarizado R G B Y Cr Cb Y = 0.299*R + 0.587*G + 0.114*B Cr = (R - Y)*0.713 + 128 Cb = (B - Y)*0.564 + 128 Black White

(38)

Limiarização

38 Conversão de RGB -> YCrCb Limiarizado R G B Y Cr Cb 50<Y 115<Cr<180 85<Cb<135 Y Cr Cb Black White Black White Yes No

(39)

Software para Conversão de Cor (Linguagem C)

39

Início

Fim Ler imagem

readPPM(const char *filename)

Converter: RGB -> YCrCb

converteYCRCB(PPMImage *img)

Limiarização

limiarizacaoYCRCB(PPMImage *img)

Todas as imagens foram

processadas?

Salvar a imagem resultante

writePPM(const char *filename,

PPMImage *img)

Não

(40)

Software Gprof

!   Resultados de desempenho do software,

executado em PC.

(41)

Função com Maior Custo Computacional

41

Inicio

Fim Ler imagem

readPPM(const char *filename)

Converter: RGB -> YCrCb

converteYCRCB(PPMImage *img)

Limiarização

limiarizacaoYCRCB(PPMImage *img)

Todas as imagens foram

processadas?

Salvar a imagem resultante

writePPM(const char *filename, PPMImage *img)

Não

Sim

Função a ser projetada

em Hardware

(42)

Aulas 4 e 5

!   Aula 4 e 5: Hardware “conversor YCrCb”

!  

Explicar a representação em ponto fixo e a

multiplicação

!  

Implementação do multiplicador em VHDL/

SystemVerilog

!  

Simular seu funcionamento no ModelSim

!  

Estrutura do somador – subtrator em ponto fixo

(43)

Arquitetura da Função

converteYCRCB

em Hardware

43

Y = 0.299*R + 0.587*G + 0.114*B

Cr = 0.713*R + 128 - 0.713*Y

(44)

Aula 6

!   Aula 6: Integração dos módulos de hardware e

software

!  

Criar projeto no Qsys com os componentes

necessários

!  

Modificar o código em C adicionando as funções de

acesso ao PCIe e substituindo a função em C pela versão implementada em hardware

!  

Execução do exemplo na placa

!  

Análise de resultados

(45)

Resumo do Estudo de Caso (1/4)

45

Frames do vídeo Cores RGB

(Red / Green / Blue)

Vídeo (frames) Limiarizado Cor Preto e Branco

SW / HW da conversão de cor (Linguagem C) Conversão de RGB -> YCrCb Limiarizado

!   Diagrama de blocos

(46)

Resumo do Estudo de Caso (2/4)

46

Início

Fim Ler imagem

readPPM(const char *filename)

Conversão: RGB -> YCrCb

Limiarização

limiarizacaoYCRCB(PPMImage *img)

Todas as imagens foram

processadas?

Salvar a imagem resultante

writePPM(const char *filename,

PPMImage *img) Não Sim SW executado no Atom HW executado Na FPGA

(47)

Resumo do Estudo de Caso (3/4)

47 FPGA Cyclone IV É implementado o hardware para executar a função RGB -> YCrCb Processador Atom Executa o “software conversor de cor” Barramento PCIe

PCI express software development kit (SDK)

PCI express system

(48)

Descrição da arquitetura (1/2)

48

!   Arquitetura do conversor ponto fixo em VHDL

m1: fpmul m2: fpmul m3: fpmul a1: fpadd a2: fpadd m4: fpmul m5: fpmul m6: fpmul m7: fpmul a3: fpadd a4: fpadd a5: fpadd a6: fpadd c3: FxP2FtP c2: FxP2FtP c1: FxP2FtP cte cte cte cte cte cte cte cte cte R G B Y Cr Cb converteYCRCB rgb

(49)

!   Topo do sistema

Descrição da Arquitetura (2/2)

49 rgb(23:0) de2i_150_qsys.qsys converteYCRCB y(31:0) cr(31:0) cb(31:0) rgb(23:0) y(31:0) cr(31:0) pcie_ip_pcie_rstn_export pcie_ip_refclk_export pcie_ip_rx_in_rx_datain_0 clk_clk PCIE_TX_P pcie_ip_tx_out_tx_dataout_0 PCIE_PERST_N PCIE_REFCLK_P PCIE_RX_P topConverteYCRCB CLOCK_50

(50)

Componente de2i_150_qsys.qsys no Qsys

50

(51)

Software Conversor de Cor (user application)

51 app.c Código da aplicação implementada. Aqui são utilizadas as funções, definidas no PCIE.c, para acessar ao barramento PCIE.

(52)

Funções para Acessar o Barramento PCIe (1/5) 52

Início

Fim Ler imagem

readPPM(const char *filename)

Conversão: RGB -> YCrCb

Limiarização

limiarizacaoYCRCB(PPMImage *img)

Todas as imagens foram

processadas?

Salvar a imagem resultante

writePPM(const char *filename,

PPMImage *img)

Não

(53)

Funções para Acessar o Barramento PCIe (2/5) 53

Início

Ler imagem

readPPM(const char *filename)

Todas as imagens foram

processadas?

Salvar a imagem resultante

writePPM(const char *filename,

PPMImage *img) Não Sim PCIE_Write32(pixelRGB) PCIE_Load( ) PCIE_Open(0,0,0) PCIE_Read32( Y ) PCIE_Read32(Cr) PCIE_Read32(Cb) Conversão RCB -> YCrCb Hardware (FPGA) PCIE_Close( ) PCIE_Unload( )

(54)

Funções para Acessar o Barramento PCIe (3/5) 54

#include<stdio.h> #include<stdlib.h> #include <string.h> #include "PCIE.h“

#define DEMO_PCIE_USER_BAR PCIE_BAR0

#define ESCRITA 0x00 #define YLER 0x20 #define CRLER 0x40 #define CBLER 0x60 int main(){ int j;

char nomearquivoin[] = "./videoInPPM/exemploCamera_0X.ppm";

char nomearquivoout[] = "./videoOutPPM/exemploCamera_0X.ppm";

char nomearquivoycbcr[] = "./videoYCBCR/exemploCamera_0X.ppm";

PPMImage *image;// PPMImage 'e uma estrutura

PPMImage *imageycrcb;

PPMImage *imagelimiar;

//--- Variaveis do PCIE ---

void *lib_handle; //ponteiro

PCIE_HANDLE hPCIE; //typedef int PCIE_HANDLE

//---Carregando o driver do PCIE ---

lib_handle = PCIE_Load();

if (!lib_handle){

printf("PCIE_Load failed!\r\n");

return 0;

}

//--- Abrindo o PCIE ---

hPCIE = PCIE_Open(0,0,0);

Esses endereços devem corresponder com os endereços atribuídos no Qsys

• ESCRITA = endereço do RGB • YLER = endereço do Y • CRLER = endereço do Cr • CBLER = endereço do Cb

(55)

Funções para Acessar o Barramento PCIe (4/5) 55 if (!hPCIE){

printf("PCIE_Open failed\r\n");

}else{

for(j=49;j<55;j++){//48=0, 49=1, 50=2, ... , 57=9

nomearquivoin[28] = j;

image = readPPM(nomearquivoin);

imageycrcb = converteYCRCB(image, hPCIE,j);

nomearquivoycbcr[28] = j;

writePPM(nomearquivoycbcr,imageycrcb);

imagelimiar = limiarizacaoYCRCB(imageycrcb);

nomearquivoout[29] = j;

writePPM(nomearquivoout,imagelimiar);

}

PCIE_Close(hPCIE);

}

printf("x = %d y=%d\n",image->x,image->y); printf("...Final\n"); //--- Unload PCIE --- PCIE_Unload(lib_handle); return 0; }

(56)

Funções para Acessar o Barramento PCIe (5/5) 56

static PPMImage *converteYCRCB(PPMImage *img , PCIE_HANDLE hPCIE, int j) {

...

for(i=0;i<img->x*img->y;i++)

{ ...

bPass = PCIE_Write32(hPCIE, DEMO_PCIE_USER_BAR, ESCRITA,(DWORD)Mask);

bPass = PCIE_Read32(hPCIE, DEMO_PCIE_USER_BAR, YLER,&reciever);

if(bPass){

Y = (unsigned char)(*(float*)&reciever);

} ... } fclose(fileout_hw_pfixo); } return img; }

Trabalho de aula...

(57)

Resultados

57

(58)

Resultados

58

(59)

Resultados

59

(60)

Resultados

60

!   Erro quadrático dos resultados em SW e HW

eq = (result_SW – result_HW)^2

(61)

Resultados Gprof

61

!  

Hardware (ponto fixo)

(62)

Agenda

!   Visão geral sobre Sistemas Embarcados

!  

Disciplinas da UFPE

!  

Disciplinas da UFSC

!   Proposta de um Currículo em Sistemas

Embarcados

!   Estudos de Caso

!  

Conversor de cores RGB para YCrCb

!  

Desenvolvido um testbench em software para

testar um módulo somador descrito em VHDL

!  

Novos Experimentos

!   Conclusão

(63)

Projeto Final

!   Descrição funcional: Deve-se desenvolver um testbench em software para testar um módulo somador (sem sinal e sem detecção de overflow) descrito em VHDL.

!   Devem ser gerados 1000 vetores de teste. Cada par de argumentos (Arg1 e Arg2 em 32 bits) deve ser enviado para o modulo somador (em HW) via PCIe.

!   Os vetores devem somados e o resultado (Resp em 32 bits) deve ser retornado para o testbench via PCIe.

!   Os resultados devem ser exibidos no console e gravados em um arquivo texto.

63

The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.

(64)

Novos Experimentos: Interface Hardware-Software

!   Desenvolvimento de sistemas controlados pelo

FPGA

!   Desenvolvimento de módulo para FPGA

!   Desenvolvimento de driver para comunicação

com módulo via PCI

!   Integração Hardware e Software

(65)
(66)
(67)
(68)

Interface Hardware-Software– Snake Game

68

(69)

Agenda

!   Visão geral sobre Sistemas Embarcados

!  

Disciplinas da UFPE

!  

Disciplinas da UFSC

!   Proposta de um Currículo em Sistemas

Embarcados

!   Estudos de Caso

!  

Conversor de cores RGB para YCrCb

!  

Desenvolvimento de um testbench em software para

testar um módulo somador descrito em VHDL

!   Conclusão

(70)

Conclusão

!   Viabilidade de desenvolver projetos complexos

de Sistemas Embarcados (HW-SW) com o kit

Intel-Altera DE2i-150

!   Disciplinas estão sendo atualizadas

!   Material desenvolvido estará disponível em

breve

!   Desenvolvimento de novos experimentos

introdutórios para a placa DE2i-150

(71)
(72)
(73)

Referências

Documentos relacionados

O principal objetivo deste trabalho ´e propor uma arquitetura para o de- senvolvimento de componentes para sistemas embarcados, cuja implementac¸˜ao possa mi- grar livremente entre

Flores brancas, amarelas ou roxas; tépalas desiguais, as externas maiores, obovais a oboval-elípticas, patentes, deflexas ou eretas, com estrias transversais na região

Marx denominou a essa constituição do proletariado, conforme Mészáros, de &#34;contra- dição entre o ser e a existência do trabalho&#34;, sendo o fator crucial para sua resolução

O objetivo deste trabalho foi validar a aplicação do Female Sexual Function Index (FSFI) em uma amostra de mulheres de casais inférteis que desejam engravidar e de mulheres

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

Este estudo, que tem como objetivo a investigação do imaginário de estudantes de Psicologia sobre o primeiro atendimento clínico, insere-se num

De acordo com os resultados obtidos, os quais são concordantes com as informações encontradas na literatura, a interação da radiação micro-ondas com a fase

A tabela 25 apresenta os resultados brutos desta avaliação em relação à característica busca e a tabela 26 exibe o resultado ponderado para esta característica.. A tabela 27