t picos especiais em sistemas digitais i
Download
Skip this Video
Download Presentation
Tópicos Especiais em Sistemas Digitais I

Loading in 2 Seconds...

play fullscreen
1 / 44

Tópicos Especiais em Sistemas Digitais I - PowerPoint PPT Presentation


  • 80 Views
  • Uploaded on

Tópicos Especiais em Sistemas Digitais I. Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato. Sumário. Visão geral do projeto Interface com a Porta Paralela Dados do joystick; Bloco VHDL; Interface com a Porta Serial Especificação do Braço Mecânico;

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Tópicos Especiais em Sistemas Digitais I' - nariko


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
t picos especiais em sistemas digitais i

Tópicos Especiais em Sistemas Digitais I

Projeto Braço Mecânico

Lucas Eduardo Waechter

Lucas Rosa Cruz Reginato

sum rio
Sumário
  • Visão geral do projeto
  • Interface com a Porta Paralela
    • Dados do joystick;
    • Bloco VHDL;
  • Interface com a Porta Serial
    • Especificação do Braço Mecânico;
    • Protocolo de Comunicação;
    • Limitações;
  • Interface com o Sensor Térmico
    • Especificação do Sensor Térmico;
    • Protocolo I2C;
vis o geral do projeto
Visão Geral do Projeto

Braço Mecânico

Porta Serial

(CPLD)

Sensor

Térmico

FPGA

Gerência das

Interfaces

Interface com

a serial

Interface c/

sensor

térmico

Porta

Paralela

Interface com

a paralela

Joystick

Display

interface com a porta paralela
Interface com a Porta Paralela
  • Joystick usado : MegaDrive da Sega
  • Por que usar a porta paralela :
  • Conector do joystick é do tipo DB9 usado em interfaces seriais.
  • Usamos um conector DB25 para adaptar o joystick para o porta paralela.
  • Assim é possivel prototipar os dois módulos na mesma plataforma de prototipação visto que esta possui apenas uma interface serial e uma interface paralela.
interface com a porta paralela1
Interface com a Porta Paralela
  • Conector tipo DB25

Para conexão

com a porta

pararela

Para conexão

com o joystick

interface com a porta paralela2
Interface com a Porta Paralela
  • Pinos do Joystick do MegaDrive
  • Motivação do uso deste Joystick:
  • Cada pino do joystick representa um botão.
  • Quando um botão é pressionado é lido o nível lógico ‘1’.
  • Caso o botão não é acionado é lido o nivel lógico ‘0’.
  • Pino ‘Select’ seleciona se será apertado os botões ‘A’ e ‘B‘ ou ‘C‘ e ‘Start’.

Select 1

Power

Up

Down

Ground

Select 2

Rigth

Left

Power

5

1

6

9

Conector Fêmea do joystick

interface com a porta paralela3
Interface com a Porta Paralela
  • Mapeamento dos pinos DB9 para DB25

5

1

13

1

14

6

9

25

Porta serial do Joystick

Porta paralela da FPGA

interface com a porta paralela4
Interface com a Porta Paralela
  • Pinos do Joystick do MegaDrive usados

Tabela de Mapeamento da porta serial do joystick para a porta paralela do FPGA

interface com a porta paralela5
Interface com a Porta Paralela
  • Caracteristicas da Porta Paralela
  • Quando um pino se encontra no nível lógico ‘1’, este possui 5V de tensão, e um pino em nível lógico ‘0’ possui tensão inferior a 0,5V.
  • Caracteristicas do Joystick
  • Para alimentar o pino ‘Power do Joystick’ com os 5V necessários conectamos os pinos 3 a 9 da porta paralela com diodos, para certificar que não ocorresse uma inversão acidental da corrente elétrica.
  • Código C para leitura da da porta paralela
  • Aplicação desenvolvida em ambiente Linux, compilado com o GNU Compiler, certifica se os pinos foram corretamente conectados.
interface com a porta paralela6
Interface com a Porta Paralela
  • Código C para leitura do Joystick (1)

# includes <…>

#define LPT1_DATA 0x378+0

#define LPT1_CTRL 0x378+1

void *monitor();

pthread_t monitor_id;

int main(int argc, char* argv[]) {

/* Chama alguns métodos de inicialização */

/* Verifica permissao para trabalhar com a porta desejada */

if (ioperm(LPT1_DATA, 3, 1)) {

perror("Cannot obtain access to write on port LPT1");

exit(1);

}

pthread_create(&monitor_id, NULL, (void *)monitor, NULL);

pthread_join(monitor_id, NULL);

exit(0);

}

interface com a porta paralela7
Interface com a Porta Paralela
  • Código C para leitura do Joystick (2)

void *monitor() {

/*Porta que estamos trabalhando */

unsigned char data;

while(1) {

/*Seta em \'1\' o sinal select */

write_data(0xFF);

data = inb(LPT1_CTRL);

/* Se o pino 10 (esquerda) */

if((data & 0x40) == 0) draw_arrow(\'L\');

else clear_arrow(\'L\');

/* Se o pino 11 (direita) */

if((data & 0x80) == 0) draw_arrow(\'R\');

else clear_arrow(\'R\');

...

refresh();

usleep(1);

}

}

interface com a porta paralela8
Interface com a Porta Paralela
  • Bloco VHDL criado para esta tarefa

Interface com

a paralela

ACK

Send

Arm

Hand

Base

LR

.

.

.

.

Dados recebidos da porta paralela

interface com a porta paralela9
Interface com a Porta Paralela
  • Máquina de estados do Bloco VHDL

Polling

Read

Recebendo

sinais

Decodificação

dos sinais

Enviando sinais

para o bloco serial

Write

interface com a porta serial
Interface com a Porta Serial
  • Especificação do Braço Mecânico
  • Criado pela Fischer Technik ( http://www.fischertechnik.de/ ), empresa
  • alemã, na década de 90.
  • Basicamente, é um lego.
  • Possui 3 motores para comandar o braço mecânico
  • Possui sensores que indicam que um determinado comando não pode
  • mais executar, caso contrário o braço mecânico pode se desmontar.
  • Possui uma interface ( placa ) que interpreta os movimentos do braço.
  • Esta placa possui um processador 8051 a ser detalhado mais adiante.
interface com a porta serial1
Interface com a Porta Serial
  • Figura do Braco Mecânico

Motor que gira

a mão

Motor que gira

o braço

Motor que gira

a base

interface com a porta serial2
Interface com a Porta Serial
  • Protocolo de comunicação do Braço Mec.
interface com a porta serial3
Interface com a Porta Serial
  • Código C++ para controlar o Braço Mec. (1)

#includes <...>

class Robo{

char Motorword; /* Palavra a ser enviada p/ o robo */

char serial[4]; /* O Nome da porta serial aberta */

/* Abre a serial COM"ser" para o envio e recepção de Comandos do Robo*/

int abreSerial(int ser) {

const char *com1="COM1",*com2="COM2",*com3="COM3",*com4="COM4";

switch(ser){

case 1:

strcpy(serial,com1);

break;

case 2:

strcpy(serial,com2);

break;

case ....

break;

}

Fischer_install();

return 1;

}

interface com a porta serial4
Interface com a Porta Serial
  • Código C++ para controlar o Braço Mec. (2)

/* Seta parametros para a porta serial e abre a conexão com a mesma */

void Fischer_install(){

....

int hCom = CreateFile(

serial, /* nome da COM */

GENERIC_READ | GENERIC_WRITE, /* acesso de RW */

0, /* não usado */

NULL, /* não usado */

OPEN_EXISTING, /* requerido */

0, /* não usado */

NULL); /* não usado */

....

fSuccess = GetCommState(hCom, &dcb);

....

dcb.BaudRate = 9600; // 9600 Baud

dcb.ByteSize = 8; // 8 Bits

dcb.Parity = NOPARITY; // no parity

dcb.StopBits = ONESTOPBIT; // 1 stopbit

fSuccess = SetCommState(hCom, &dcb);

....

motors_off();

}

interface com a porta serial5
Interface com a Porta Serial
  • Código C++ para controlar o Braço Mec. (3)

/* Define o comando a ser executado */

void motor(int num, char dir){

char Result;

switch (dir){

case \'L\':

Motorword = clearBit(Motorword, (num * 2)); // seta bit em 1

Motorword = setBit(Motorword, (num * 2 - 1)); // seta bit em 0

break;

case \'R\':

....

break;

case ‘....’:

....

break;

}

Result = input_word(); // escreve o comando para a interface

Motorword = \'0x00\'; // zera-se o comando para o próximo comando

}

// Demais métodos..........

interface com a porta serial6
Interface com a Porta Serial
  • Bloco VHDL para decodificação dos comandos

Braço

Mecânico

(Serial)

ACK

Send

Arm

Hand

Base

LR

word

interface com a porta serial7
Interface com a Porta Serial
  • Máquina de estados do Blobo VHDL

Wait

Read

Recebendo

sinais

Decodificação

dos sinais

Enviando sinais

para a porta serial

Write

interface com a porta serial8
Interface com a Porta Serial
  • Bloco VHDL para comunicação com a serial

Interface

Serial

tx_data (8 bits)

word (8 bits)

tx_av (1 bit)

  • Onde :
  • tx_data representa os dados a serem enviados para a serial
  • tx_av indica que existe dado disponível em tx_data
interface com a porta serial9
Interface com a Porta Serial
  • Máquina de estados do Bloco VHDL

Recebendo

sinais

Read

Write

Enviando

sinais

interface com a porta serial10
Interface com a Porta Serial
  • Bloco VHDL completo

Braço

Mecânico

(Serial)

ACK

Send

Arm

Hand

Base

LR

Interface

Serial

tx_data (8 bits)

word (8 bits)

tx_av (1 bit)

interface com o sensor t rmico
Interface com o Sensor Térmico
  • Digital Temperature Sensorwith I2C Interface
  • Modelo TMP101 – 2 fios, saída serial
  • Não requer nenhum componente externo para funcionamento
  • Resolução máxima de 0.0625°C.
  • Comunicação pelas interfaces SMBus e I2C™
  • Comporta até 8 sensores no mesmo barramento. O TMP101 oferece função
  • SMBus de alerta com até 3 sensores por barramento
interface com o sensor t rmico1
Interface com o Sensor Térmico
  • Características:
  • Opera entre –55°C a +125°C.
  • Saída digital: I2C Serial 2-vias.
  • Resolução: 9 a 12-Bits, selecionável.
  • Margem de Erro: ±2.0°C em –25°C a +85°C (max) e
  • ±3.0°C de -55°C a +125°C (max)
  • Fornecimento: 2.7V a 5.5V.
  • TINY SOT23-6 PACKAGE.
interface com o sensor t rmico2
Interface com o Sensor Térmico
  • Aplicações:
  • Monitoração de fontes de energia
  • Proteção contra superaquecimento de periféricos em computadores
  • Notebooks
  • Telefones Celulares
  • Controle de baterias
  • Máquinas de escritório
  • Controles termostáticos
  • Monitoramento de ambientes
  • Controle de temperatura de componentes
  • eletro-mecânicos
interface com o sensor t rmico3
Interface com o Sensor Térmico
  • Esquemático do Sensor Térmico
interface com o sensor t rmico4
Interface com o Sensor Térmico
  • Características Elétricas
interface com o sensor t rmico5
Interface com o Sensor Térmico
  • Características Típicas (1)
interface com o sensor t rmico6
Interface com o Sensor Térmico
  • Características Típicas (2)
interface com o sensor t rmico7
Interface com o Sensor Térmico
  • Estrutura de registros

PointerRegister

TemperatureRegister

I/O ControlInterface

SCL

ConfigurationRegister

TlowRegister

SDA

ThighRegister

interface com o sensor t rmico8

P1

P0

Register

0011

0101

Temperature Register (r)Configuration Register (rw)Tlow (rw)

Thigh (rw)

P7

P6

P5

P4

P3

P2

P1

P0

0

0

0

0

0

0

Register Bits

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

T11

T10

T9

T8

T7

T6

T5

T4

T3

T2

T1

T0

0

0

0

0

Interface com o Sensor Térmico
  • Registradores (1):
  • Pointer Register
  • Temperature Register
interface com o sensor t rmico9

D7

D7

D6

D6

D5

D5

D4

D4

D3

D3

D2

D2

D1

D1

D0

D0

D7

D7

D6

D6

D5

D5

D4

D4

D3

D3

D2

D2

D1

D1

D0

D0

L11

H11

H10

L10

L9

H9

L8

H8

L7

H7

H6

L6

H5

L5

H4

L4

L3

H3

L2

H2

H1

L1

H0

L0

0

0

0

0

0

0

0

0

D7

D6

D5

D4

D3

D2

D1

D0

Alert

R1

R0

F1

F0

POL

TM

SD

Interface com o Sensor Térmico
  • Registradores (2):
  • Configuration Register
  • Tlow e Thigh Registers
interface com o sensor t rmico10

D7

D6

D5

D4

D3

D2

D1

D0

Alert

R1

R0

F1

F0

POL

TM

SD

R1

R0

Resolution

ConversionTime

T1

T0

ConsecutiveFaults

0011

0101

9 bits (0.5)10 bits (0.25)11 bits (0.125)12 bits (0.0625)

40 ns80 ns160 ns320 ns

0011

0101

124

6

Interface com o Sensor Térmico
  • Registrador de Configurações (1)

Shutdown mode

Thermostat mode

Polarity

Fault Queue

Resolution

SD

ConsecutiveFaults

0011

124

6

interface com o sensor t rmico11
Interface com o Sensor Térmico
  • Registrador de Configurações (2)
  • Controle de Alertas
interface com o sensor t rmico12
Interface com o Sensor Térmico
  • Protocolo I2C (1)
  • Introdução:
  • O custo de comunicação entre componentes tem que ser sempre o mínimo possível
  • A eficiência geral depende dos componentes e da estrutura de interconexão
  • Para satisfazer essa necessidade, uma conexão serial é a melhor escolha
  • Por que? Menos fios e menos pinos de conexão
interface com o sensor t rmico13
Interface com o Sensor Térmico
  • Protocolo I2C (2)
  • O I2C comporta ICs NMOS, CMOS, I2L, entre outros
  • 2 fios (2 wires concept), Serial Data (SDA) e Clock Serial (SCL), Carry Information entre os ICs conectados ao mesmo barramento
  • Cada IC tem um endereço único no barramento
interface com o sensor t rmico14
Interface com o Sensor Térmico
  • Protocolo I2C (3)
  • Cada IC pode operar como transmissor ou receptor, não importando se é um keyboard, um LCD, Sensor, Memória ou qualquer outra coisa
  • Conceito de Master/Slave
  • Multi-Masters em um barramento
interface com o sensor t rmico15
Interface com o Sensor Térmico
  • Protocolo I2C (4)

Micro computador A

SDA

Micro computador B

SCL

LCD Driver

I2C BUS

Sensor Térmico

RAM Estática ou EEPROM

interface com o sensor t rmico16
Interface com o Sensor Térmico
  • Protocolo I2C (5)
  • Transmissor: o I2C que manda dados para o barramento
  • Receptor: o I2C que recebe dados do barramento
  • Master: inicia a transmissão, gera o clock e acaba a transmissão
  • Slave: IC endereçado pelo Master
  • Multi-Master: mais que um Master pode tentar controlar o barramento sem corromper as mensagens
  • Arbritration: Procedimento que garante que se mais de um Master tentar simultaneamente ganhar o controle do barramento, somente um é permitido o fazer e não corromper as mensagens de ambos
  • Sincronização: sincroniza clocks de 2 ou mais Ics
interface com o sensor t rmico17
Interface com o Sensor Térmico

Transferência de dados no barramento I2C

  • Protocolo I2C (6)

Ack signal from receiver

Ack from Receiver

SDA

MSB

SCL

3-8

9

1

2

7

8

9

1

2

Ack

Ack

Byte complete. Interrupt within receiver

Start

Clock line held low while interrupts are serviced

End

interface com o sensor t rmico18
Interface com o Sensor Térmico
  • Acoplagem do Sensor a um FPGA

Braço

Mecânico

ST

FPGA

Pinos

conclus o
Conclusão
  • Limitações e Futuras implementações
  • O braço mecânico é incapaz de efetuar uma rotação de 360 graus na base e na mão.
  • Possui pouco mobilidade em seu braço, ou seja, não podemos levantar ou baixar demais o braço mecânico.
  • Esperamos que este trabalho sirva de incentivo para trabalhos futuros.
  • Esperamos ter uma maior mobilidade do braço mecânico.
  • Código portável para qualquer placa FPGA.
ad