06/08/2017

1. 2. 3. 4. 5. 6.

Parte 10 BÔNUS

06/08/2017

06/08/2017

1

I2C

1

I2 C USART OPERAÇÕES ARITMÉTICAS DSP APLICAÇÕES DE DSP INTEL® 8051

2

I2C

1

Diagrama

• A gigantesca complexidade do circuito empregado na implementação do protocolo I2C™ na PIC16F877 em relação ao protocolo SPI™ revela que a maior parte do circuito do módulo MSSP presta-se ao uso exclusivo do protocolo I2C™ e que a implementação do protocolo SPI™ não acarreta aumento de custo no sistema.

I2C

06/08/2017

3

I2C

1

06/08/2017

4

I2C

1

SPI™/I2C™ – Pinagem

Diagrama glitch filter

• Os dois pinos devem ser configurados como entrada. • 18 RC3/SCL • 23 RC4/SDA

glitch filter

• TRISC = 1 SCL Entrada • TRISC = 1 SDA Entrada SCL

SDA 06/08/2017

5

• O mesmo pino (SDA) é usado para entrada e para saída. • Para a entrada, existe um buffer ST para filtragem de altas frequências. • O deslocamento é feito a partir do bit mais significativo. • Esses dois pinos devem ser configurados como entrada. 06/08/2017

6

06/08/2017

I2C

1

I2C

1

Diagrama

SFR’s – MSSP SSPCON

SSPSTAT glitch filter SSPCON2

glitch filter

• O buffer register é o mesmo usado na função SPI™. • O shift register é o mesmo usado na função SPI™.

06/08/2017

7

I2C

1

06/08/2017

8

I2C

1

SSPCON SSP

0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

SSPCON

BSSP I2C™

MSSP

VEREMOS

Slave



I2C™

0110

Master

0111

Reservado

1000

I2C™

Master

1001

Reservado

Reservado I2C™

Slave I2C™

1010 1011

Master

Reservado

06/08/2017

9

I2C

VEREMOS

I2C™ Firmware Controlled Master mode, 7-bit address with START and STOP bit interrupts enabled I2C™ Firmware Controlled Master mode, 10-bit address with START and STOP bit interrupts enabled

11xx

06/08/2017

1

Modo I2C™ Slave mode, 7-bit address I2C™ Slave mode, 10-bit address I2C™ Master mode, clock = fOSC/(4(SSPADD+1)) I2C™ Firmware Controlled Master mode (slave idle)

10

I2C

1

Slave address

Diagrama

• No SPI™, se vários slaves estão presentes, então o master precisa usar bits de portas paralelas para executar a função slave select, uma para cada slave. • No I2C™, não existe a função slave select, economizando, assim, os bits de portas paralelas. • Cada slave possui um exclusivo slave address, enviado juntamente com as palavras de dados, em SDA. • Este endereço pode ser de 7 (128 slaves) ou de 10 bits (1024 slaves). • Este endereço é enviado antes das palavras de dados. 0110 06/08/2017

11

06/08/2017

0111

Modo I2C™ Slave mode, 7-bit address 2 I C™ Slave mode, 10-bit address

12

06/08/2017

I2C

1

I2C

1

Slave address 0110 0111

7-bit Slave address SSPSR

Modo I2C™ Slave mode, 7-bit address I2C™ Slave mode, 10-bit address

8 shifts

• Em 7-bit address, o endereço é fornecido por SSPADR. • Em 10-bit address, o endereço é fornecido por um GPR seguido por SSPADR. 7-bit address

10-bit address 06/08/2017

SCL

7-bit COMPARATOR

SSPADR

Acknowledge

X 6 5 4 3 2 1 0

GPR

SSPADR

1 1 1 1 0 9 8 0

7 6 5 4 3 2 1 0 13

I2C

1

06/08/2017

14

SSPADD

I2C

1

7-bit Slave address

7-bit Slave address

• Cada slave possui um endereço próprio. • O endereço é armazenado em SSPADD.

• O slave address precisa ser configurado em SSPADR antes do início da comunicação. • A primeira palavra enviada na comunicação é o slave address. • Se o slave address recebido na comunicação corresponde a SSPADR, então a palavra de dado recebia em seguida em SSPSR é copiada para SSPBUF.

• O slave verifica se o endereço enviado pelo master corresponde ao seu endereço. • Em caso afirmativo (reconhecimento), é gerado o pulso /ACK. • SSPCON2 ACKEN: Acknowledge Sequence Enable bit. • SSPCON2 ACKDT: Acknowledge Data bit. • SSPCON2 ACKSTAT: Acknowledge Status bit. 06/08/2017

15

I2C

1

• Se o slave address recebido na comunicação não corresponde a SSPADR, então a palavra de dado recebia em seguida em SSPSR não é copiada para SSPBUF. • Várias palavras de dados podem ser sequencialmente no mesmo slave address. 06/08/2017

recebidas 16

I2C

1

Comunicação

Comunicação Recepção do slave address

Nenhum dado Start bit Recepção do slave address

Recepção do slave address

Stop bit

Recepção/envio do dado

Um dado Start bit

Recepção do slave address

Recep/env do dado 1

Recep/env do dado 2

17

Recepção/envio do dado

Stop bit

Dois dado Start bit

06/08/2017

Recepção do slave address

Recepção do slave address

06/08/2017

Recepção/envio do dado 1

Recepção/envio do dado 2

Stop bit

18

06/08/2017

I2C

1

I2C

1

SSPCON

SSPCON

• SSPCON CKP: Clock Polarity Select bit. • 1: Relógio habilitado. • 0: Relógio em nível baixo (reset default). • Usado, apenas, no modo Master. • Em nível baixo, é usado no clock stretch, visto mais adiante.

06/08/2017

Synchronous Serial Port Enable bit. Receive Overflow Indicator bit. Write Collision Detect bit.

• Possuem a mesma função vista no SPI™.

19

I2C

1

• SSPCON SSPEN: • SSPCON SSPOV: • SSPCON WCOL:

06/08/2017

20

I2C

1

SSPSTAT

SSPSTAT

• SSPSTAT BF: Buffer full status bit. • 1: Recepção completada ou transmissão em progresso. • 0: Nada recebido ou transmissão completada (reset default). • SSPSTAT UA: Update address (10-bit address). • 1: Precisa atualizar o endereço em SSPADD. • 0: Não precisa atualizar o endereço (reset default). • SSPSTAT R_W: Read/Write bit information. • 1: Read. • 0: Write (reset default).

• SSPSTAT S: Start bit. • 1: Start bit has been detected last. • 0: Start bit was not detected last (reset default). • SSPSTAT P: Stop bit. • 1: Stop bit has been detected last. • 0: Stop bit was not detected last (reset default). • SSPSTAT D_NOT_A: Data/Address bit. • 1: A última palavra recebida é um dado. • 0: A última palavra recebida é um endereço (reset default).

06/08/2017

21

I2C

1

06/08/2017

22

I2C

1

SSPSTAT

SSPCON2

• SSPSTAT CKE: Edge select bit. • 1: Níveis de entrada conforme especificação SMBus™. • 0: Níveis de entr. conf. espec. I2C™ (reset default). • SSPSTAT SMP: Sample bit. • 1: Slew rate control disabled. • 0: Slew rate control enabled (reset default).

06/08/2017

23

• • • • • • • •

SSPCON2 SSPCON2 SSPCON2 SSPCON2 SSPCON2 SSPCON2 SSPCON2 SSPCON2 06/08/2017

SEN: START Condition Enable bit. RSEN: Repeated START Condition Enable bit. PEN: STOP Condition Enable bit. RCEN: Receive Enable bit. ACKEN: Acknowledge Sequence Enable bit. ACKDT: Acknowledge Data bit. ACKSTAT: Acknowledge Status bit. GCEN: General Call Enable bit.

• Bits 0 a 6: Somente no modo master. • Bits 7: Somente no modo master.

24

06/08/2017

I2C

1

I2C

1

General call address

Modo multi-master

• Após o início da comunicação, o primeiro byte recebido identifica qual slave precisa copiar o SSPSR para o SSPBUF. • O general call address é um modo especial de operação, no qual todos os slave´s fazem esta cópia. • SSPCON2 GCEN = 1 • SSPSTAT R_W = 0 • Slave address = 00h

• O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário procedimento para determinar se o barramento está ocupado por uma comunicação efetuada por outro master. • Arbitration logic: Lógica para determinação de prioridade. • O master que iniciou a comunicação antes tem preferência. • Quando dois master´s iniciam a comunicação ao mesmo tempo, algum critério de desempate precisa ser determinado. • Todos os master´s precisam estar operando no modo multimaster.

06/08/2017

2

25

USART

06/08/2017

2

26

USART Introdução • USART Universal Synchronous Asynchronous Receiver Transmitter. • Também conhecido como: • SCI Serial Communications Interface . • Dois modos de operação: • Assíncrono. • Síncrono.

USART

06/08/2017

2

27

2

USART Pinagem na

06/08/2017

28

USART

PIC

Modo assíncrono

Multiplexação

RX/DT TX/CK

06/08/2017

• • • •

TX RX CK DT

Asynchronous Transmit Asynchronous Receive Synchronous Clock Synchronous Data 29

• • • • • •

TXSTA SYNC=0 (reset default) Não é usado serial clock. Uma via é o envio (TX) e a outra via é o recebimento (RX). Os dados trafegam em duas vias, como no SPI™. Como há duas vias de dados, é permitido full-duplex. Como não existe serial clock, não existe master e slave.

06/08/2017

30

06/08/2017

2

2

USART

USART Modo síncrono

Modo assíncrono

RX TX

• • • •

TXSTA TXSTA TRISC TRISC

SCRC=X SYNC=0 = 1 RX = 0 TX

• • • • • • • •

• 0: • 1:

Entrada Saída

06/08/2017

USART

• TXSTA SCRC=1 • TXSTA SYNC=0 • TRISC = 0 CK

USART Modo síncrono slave

DT CK

Saída

06/08/2017

2

32

2

Modo síncrono master

DT CK

Síncrono Slave (reset default). Síncrono Master.

06/08/2017

31

2

TXSTA SYNC=1 É usado serial clock, tal como no SSP. Uma via é o relógio (CK) e a outra via é o dado (DT). Os dados trafegam em uma única via, como no I2C™. Como há uma única via de dados, não é permitido full-duplex. É permitida comunicação half-duplex e simplex. Como existe serial clock, existe master e slave. TXSTA SCRC: Clock Source Select bit.

33

USART

• TXSTA SCRC=0 • TXSTA SYNC=0 • TRISC = 1 CK

Entrada

06/08/2017

34

2

USART

BRG

BRGH

• Baud Rate Generator. • Baud: Bits transmitidos por segundo. • Usado nos modos: • Assíncrono • Síncrono Master. • Controlado pelo SFR SPBGR. • 8 bits. • SPBGR é um period register para um 8-bit timer. • O cálculo do Baud Rate em função de SPBGR é diferente nos modo síncrono e assíncrono.

• TXSTA BRGH: High Baud Rate Select bit. • 0: Baixa velocidade (reset default). • 1: Alta velocidade. • Somente para modo assíncrono. • A alta velocidade é o quádruplo da baixa.

06/08/2017

Low

35

06/08/2017

High

36

06/08/2017

2

USART

2

USART

SFR’s • • • • •

TXSTA RCSTA TXREG RCREG SPBRG

Transmit Status Receive Status Transmit Data Register Receive Data Register Baud Rate Generator Register

SFR’s 098h 018h 019h 01Ah 099h

TXSTA

RCSTA

06/08/2017

37

2

USART

06/08/2017

38

2

USART

Configurações

Configurações

• RCSTA SPEN: Serial Port Enable bit. • 0: Desabilitado (reset default). • 1: Habilitado. • TXSTA SYNC: USART Mode Select bit.

• TXSTA TXEN: Transmit Enable bit. • 0: Transmissão desabilitada (reset default). • 1: Transmissão habilitada. • RCSTA SREN: Single Receive Enable bit*. • 0: Desabilitad0 (reset default). • 1: Habilitado. • RCSTA CREN: Continuous Receive Enable bit.

• 0: Assíncrono (reset default). • 1: Síncrono. • TXSTA SCRC: Clock Source Select bit. • 0: • 1:

Síncrono Slave (reset default). Síncrono Master.

• 0: • 1:

Desabilitad0 (reset default). Habilitado.

* Somente no modo síncrono master. 06/08/2017

2

39

USART

2

Data / Address • • • • • •

40

USART Address Detection • TXSTA TX9: 9-bit Transmit Enable bit. • 0: Transmissão de 8 bits (reset default). • 1: Transmissão de 9 bits. • CXSTA RX9: 9-bit Receive Enable bit.

Dois tipos de informação podem ser enviados: Dado 8 bits. Endereço 9 bits. O USART permite o envio de palavras de 8 ou 9 bits. O nono bit também pode ser usado como paridade. O controle de paridade não está implementado em hardware mas pode ser implementado em software.

06/08/2017

06/08/2017

• 0: Recepção de 8 bits (reset default). • 1: Recepção de 9 bits. • TXSTA TX9D: 9th bit of transmit data. • RCSTA RX9D: 9th bit of received data. • RCSTA ADDEN: Address Detect Enable bit.

41

• 0: Desabilitado. • 1: Habilitado. 06/08/2017 • O bit 9D é o mais significativo do endereço.

42

06/08/2017

2

2

USART

USART Modos

Data / Address

• No modo assíncrono, os pinos TX e RX garantem a comunicação full-duplex, tal como ocorre com o protocolo SPI™. • No modo síncrono, é necessária a comunicação do sinal de relógio (pino CK), a comunicação é feita por um único pino (DT), half-duplex, tal como ocorre com o protocolo I2C™. • O modo assíncrono é mais utilizado. • Um exemplo de aplicação assíncrona é a comunicação com PC por meio do protocolo RS-232 (requer adequação das tensões).

AN547

06/08/2017

2

06/08/2017

43

USART

2

44

USART Ethernet na PIC

MAX232 e RS-232 • Dual EIA-232 drivers/receivers. • O protocolo RS232 não emprega níveis TTL. • Interface entre níveis TTL e RS232.

http://www.ti.com/lit/ds/symlink/max232.pdf

06/08/2017

2

• • • • •

06/08/2017

45

USART

Presente na PIC18 ou superior. 10Base-T Ethernet transceiver. 8KB dedicated Ethernet buffer RAM. Up to 128KB of Flash, easily accommodating a TCP/IP stack. Advanced analog and communication peripherals.

2

46

USART

Modo Assíncrono – Desocupado

Modo Assíncrono – Transmissão

• Quando não há transmissão nem recepção, o pino permanece em nível lógico alto. • Ao iniciar uma transmissão ou recepção, o procedimento é identificado por meio do start bit. • O start bit é ativo em nível baixo. • Se o pino RX recebe o start bit, é iniciada uma recepção. • Se é iniciada uma transmissão, o pino TX recebe o start bit

• Ao escrever em TXREG, os oito bits do dado ou os nove bits do endereço são copiados para o transmit shift register. • Os bits são enviados ao pino TX. • Inicialmente, é enviado o start bit. • A palavra é enviada (8 ou nove bits). • O bit 0 é enviado primeiramente. • Para finalizar, é enviado o stop bit.

06/08/2017

47

06/08/2017

48

06/08/2017

2

USART

2

USART

Modo Assíncrono – Transmissão

Modo Assíncrono – Transmissão

• A existência do TXREG e do transmit shift register permite que a segunda palavra seja escrita antes do término do envio da primeira palavra.

Transmit Shift Register

06/08/2017

2

49

USART

06/08/2017

2

50

USART

Modo Assíncrono – Transmissão

Modo Assíncrono – Recepção

Dado = 00100101b

• • • • • •

Endereço = 100100101b

06/08/2017

2

06/08/2017

51

USART

O start bit é identificado no pino RX. Os bits são enviados ao receive shift register. O bit 0 é recebido primeiramente. O stop bit é identificado no pino RX. A palavra é copiada a um registrador provisório (buffer). O buffer é copiado para RXREG e RX9D.

2

52

USART

Modo Assíncrono – Recepção

Modo Assíncrono – Recepção

Receive Shift Register

06/08/2017

53

06/08/2017

54

06/08/2017

2

USART

3

OPERAÇÕES ARITMÉTICAS

EUSART • Enhanced USART. • Presente na PIC18 ou superior. • Possui recursos adicionais como: • Automatic baud rate detection. • Automatic baud rate calibration. • Automatic wake-up on Sync Break reception. • 12-bit Break character transmit.

06/08/2017

3

OPERAÇÕES ARITMÉTICAS

55

OPERAÇÕES ARITMÉTICAS

06/08/2017

3

56

OPERAÇÕES ARITMÉTICAS

Algoritmos

1 – Multiplicação por 2

Máximo: 127

Dois opcodes

• Em fundo rosa, são apresentados os algoritmos que aplicam as rotações. • Quando rotações são usadas (RRF e RLF), e se presume que o argumento seja um número inteiro de 8 bits, é preciso colocar o carry em zero previamente. • BCF STATUS, C

; 01 - Multiplicação por 2 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

• Quando várias rotações são realizadas, é preciso reiniciar o carry antes de cada rotação. • Em fundo verde, são apresentados os algoritmos que não aplicam as rotações, não requerendo limpeza do carry. • Em fundo branco, são apresentadas outras opções. • Todos esses programas usam, apenas, um GPR. 06/08/2017

3

57

OPERAÇÕES ARITMÉTICAS 2 – Multiplicação por 3

;multiplica por 2 BCF STATUS,C RLF ondecadê,F

;multiplica por 2 MOVF ondecadê,W ADDWF ondecadê,F

end

end

06/08/2017

3

58

OPERAÇÕES ARITMÉTICAS

Máximo: 85

3 – Multiplicação por 4

Três opcodes

; 02 - Multiplicação por 3 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 01 - Multiplicação por 2 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

Máximo: 63

Quatro opcodes

; 02 - Multiplicação por 3 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

;multiplica por 3 BCF STATUS,C RLF ondecadê,W ADDWF ondecadê,F

;multiplica por 3 MOVF ondecadê,W ADDWF ondecadê,F ADDWF ondecadê,F

end

end

; 03 - Multiplicação por 4 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 03 - Multiplicação por 4 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

;multiplica por 2 BCF STATUS,C RLF ondecadê,F

;multiplica por 2 MOVF ondecadê,W ADDWF ondecadê,F

;multiplica por 2 BCF STATUS,C RLF ondecadê,F

;multiplica por 2 MOVF ondecadê,W ADDWF ondecadê,F

end

end

Outras opções:

06/08/2017

59

06/08/2017

MOVF ADDWF ADDWF ADDWF

ondecadê,W ondecadê,F ondecadê,F ondecadê,F

BCF BCF RLF RLF

STATUS,C STATUS,0x7 ondecadê,F ondecadê,F

60

06/08/2017

3

OPERAÇÕES ARITMÉTICAS

3

OPERAÇÕES ARITMÉTICAS

Máximo: 55

4 – Multiplicação por 5

5 – Multiplicação por 6

Quatro opcodes ; 04 - Multiplicação por 5 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 04 - Multiplicação por 5 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

;multiplica por 2 BCF STATUS,C RLF ondecadê,W

;multiplica por 2 MOVF ondecadê,W ADDWF ondecadê,F

ADDWF ADDWF

ADDWF ADDWF

ondecadê,F ondecadê,F

end

; 05 - Multiplicação por 6 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

ondecadê,W ondecadê,F

end

; 05 - Multiplicação por 6 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

;multiplica por 2 BCF STATUS,C RLF ondecadê,F

;multiplica por 2 MOVF ondecadê,W ADDWF ondecadê,F

;multiplica BCF RLF ADDWF

;multiplica MOVF ADDWF ADDWF

por 3 STATUS,C ondecadê,W ondecadê,F

end

06/08/2017

3

61

OPERAÇÕES ARITMÉTICAS

06/08/2017

3

62

OPERAÇÕES ARITMÉTICAS 7 – Multiplicação por 8

Cinco opcodes

BCF RLF ADDWF ADDWF ADDWF

MOVF ADDWF ADDWF ADDWF ADDWF

end

Máximo: 31

Cinco opcodes

; 06 - Multiplicação por 7 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

STATUS,C ondecadê,W ondecadê,F ondecadê,F ondecadê,F

por 3 ondecadê,W ondecadê,F ondecadê,F

end

Máximo: 36

6 – Multiplicação por 7 ; 06 - Multiplicação por 7 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

Máximo: 42

Cinco opcodes

; 07 - Multiplicação por 8 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

ondecadê,W ondecadê,F ondecadê,W ondecadê,W ondecadê,F

BCF RLF ADDWF ADDWF ADDWF

end

; 07 - Multiplicação por 8 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

STATUS,C ondecadê,W ondecadê,F ondecadê,W ondecadê,F

MOVF ADDWF ADDWF ADDWF ADDWF

end

ondecadê,W ondecadê,F ondecadê,W ondecadê,F ondecadê,F

end

Outras opções:

06/08/2017

3

63

OPERAÇÕES ARITMÉTICAS

06/08/2017

3

; 08 - Multiplicação por 9 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20 ;multiplica por 3 MOVF ondecadê,W ADDWF ondecadê,F ADDWF ondecadê,F

;multiplica por 3 BCF STATUS,C RLF ondecadê,W ADDWF ondecadê,F

;multiplica por 3 MOVF ondecadê,W ADDWF ondecadê,F ADDWF ondecadê,F

end

end

ADDWF ADDWF 06/08/2017 ADDWF ADDWF

ondecadê,F ondecadê,F ondecadê,W ondecadê,F

;multiplica por 2 MOVF ondecadê,W ADDWF ondecadê,F ADDWF ADDWF ADDWF ADDWF

ondecadê,W ondecadê,W ondecadê,W ondecadê,F

STATUS,C STATUS,0x7 ondecadê,F ondecadê,F

64

Máximo: 25

Seis opcodes

;multiplica por 3 BCF STATUS,C RLF ondecadê,W ADDWF ondecadê,F

;multiplica por 2 MOVF ondecadê,W ADDWF ondecadê,F

BCF BCF RLF RLF

9 – Multiplicação por 10

Seis opcodes ; 08 - Multiplicação por 9 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

ondecadê,W ondecadê,F ondecadê,F ondecadê,F

OPERAÇÕES ARITMÉTICAS

Máximo: 28

8 – Multiplicação por 9

MOVF ADDWF ADDWF ADDWF

; 09 - Multiplicação por 10 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20 BCF RLF ADDWF ADDWF ADDWF ADDWF

STATUS,C ondecadê,W ondecadê,W ondecadê,F ondecadê,F ondecadê,F

MOVF ADDWF ADDWF ADDWF ADDWF ADDWF

end

ondecadê,F 65 ondecadê,F ondecadê,F

ondecadê,W ondecadê,F ondecadê,F ondecadê,W ondecadê,W ondecadê,F

end ;multiplica por 2 MOVF ondecadê,W ADDWF ondecadê,F

;multiplica por 3 BCF STATUS,C RLF ondecadê,W ADDWF ondecadê,F ADDWF ADDWF ADDWF

; 09 - Multiplicação por 10 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

06/08/2017

;multiplica por 5 (não isolado) MOVF ondecadê,W ADDWF ondecadê,F ADDWF ondecadê,W ADDWF ondecadê,F

66

06/08/2017

3

OPERAÇÕES ARITMÉTICAS

3

OPERAÇÕES ARITMÉTICAS

Máximo: 23

10 – Multiplicação por 11

11 – Multiplicação por 12

Seis opcodes ; 10 - Multiplicação por 11 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20 BCF RLF ADDWF ADDWF ADDWF ADDWF

; 10 - Multiplicação por 11 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

STATUS,C ondecadê,W ondecadê,F ondecadê,W ondecadê,W ondecadê,F

MOVF ADDWF ADDWF ADDWF ADDWF ADDWF

end

; 11 - Multiplicação por 12 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

ondecadê,W ondecadê,F ondecadê,W ondecadê,F ondecadê,F ondecadê,F

BCF RLF ADDWF ADDWF ADDWF ADDWF

end

67

OPERAÇÕES ARITMÉTICAS

STATUS,C ondecadê,W ondecadê,F ondecadê,F ondecadê,W ondecadê,F

3

68

OPERAÇÕES ARITMÉTICAS 13 – Multiplicação por 14

; 12 - Multiplicação por 13 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

STATUS,C ondecadê,W ondecadê,F ondecadê,W ondecadê,F ondecadê,F

MOVF ADDWF ADDWF ADDWF ADDWF ADDWF

; 13 - Multiplicação por 14 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

ondecadê,W ondecadê,F ondecadê,W ondecadê,F ondecadê,W ondecadê,F

end

; 13 - Multiplicação por 14 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

;multiplica por 7 BCF STATUS,C RLF ondecadê,W ADDWF ondecadê,F ADDWF ondecadê,F ADDWF ondecadê,F

;multiplica por 7 MOVF ondecadê,W ADDWF ondecadê,F ADDWF ondecadê,W ADDWF ondecadê,W ADDWF ondecadê,F

;multiplica por 2 BCF STATUS,C RLF ondecadê,F

;multiplica por 2 MOVF ondecadê,W ADDWF ondecadê,F

end

06/08/2017

69

OPERAÇÕES ARITMÉTICAS 14 – Multiplicação por 15

end MOVF ADDWF ADDWF ADDWF ADDWF ADDWF ADDWF

06/08/2017

3

; 14 - Multiplicação por 15 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

por 5 STATUS,C ondecadê,W ondecadê,F ondecadê,F

;multiplica MOVF ADDWF ADDWF ADDWF

por 5 ondecadê,W ondecadê,F ondecadê,W ondecadê,F

;multiplica BCF RLF ADDWF

por 3 STATUS,C ondecadê,W ondecadê,F

;multiplica MOVF ADDWF ADDWF

por 3 ondecadê,W ondecadê,F ondecadê,F

end

end ondecadê,W ondecadê,F ondecadê,W ondecadê,F ondecadê,F ondecadê,F ondecadê,F

MOVF ADDWF ADDWF ADDWF ADDWF ADDWF ADDWF

ondecadê,W ondecadê,W ondecadê,W ondecadê,F ondecadê,W ondecadê,W ondecadê,F

MOVF ADDWF ADDWF ADDWF ADDWF ADDWF ADDWF

ondecadê,W ondecadê,F ondecadê,F ondecadê,F ondecadê,W ondecadê,F ondecadê,F

70

15 – Multiplicação por 16

Máximo: 15

Um opcode

;multiplica BCF RLF ADDWF ADDWF

MOVF ADDWF ADDWF ADDWF ADDWF 06/08/2017 ADDWF ADDWF

ondecadê,W ondecadê,F ondecadê,W ondecadê,F ondecadê,F ondecadê,F ondecadê,F

OPERAÇÕES ARITMÉTICAS

Máximo: 17

Sete opcodes ; 14 - Multiplicação por 15 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

Máximo: 18

Sete opcodes

end

3

ondecadê,W ondecadê,F ondecadê,W ondecadê,W ondecadê,F ondecadê,F

06/08/2017

Seis opcodes

BCF RLF ADDWF ADDWF ADDWF ADDWF

MOVF ADDWF ADDWF ADDWF ADDWF ADDWF end

Máximo: 19

12 – Multiplicação por 13 ; 12 - Multiplicação por 13 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 11 - Multiplicação por 12 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

end

06/08/2017

3

Máximo: 21

Seis opcodes

; 15 - Multiplicação por 16 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20 SWAPF

ondecadê,F

end

; 14 - Multiplicação por 15 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20 MOVLW ANDWF SWAPF SWAPF SUBWF end

0x0f ondecadê,F ondecadê,F ondecadê,W ondecadê,F

71

06/08/2017

72

06/08/2017

3

OPERAÇÕES ARITMÉTICAS 16 – Multiplicação por 17

3

OPERAÇÕES ARITMÉTICAS

Máximo: 15

17 – Multiplicação por 18

Máximo: 13

Três opcodes

Quatro opcodes

; 16 - Multiplicação por 17 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 17 - Multiplicação por 18 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

SWAPF SWAPF ADDWF

ondecadê,F ondecadê,W ondecadê,F

SWAPF SWAPF ADDWF ADDWF

ondecadê,F ondecadê,W ondecadê,F ondecadê,F

end end 06/08/2017

3

73

OPERAÇÕES ARITMÉTICAS 18 – Multiplicação por 19

3

74

OPERAÇÕES ARITMÉTICAS

Máximo: 13

19 – Multiplicação por 20

Máximo: 12

Cinco opcodes

Cinco opcodes

; 18 - Multiplicação por 19 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 19 - Multiplicação por 20 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

SWAPF SWAPF ADDWF ADDWF ADDWF

ondecadê,F ondecadê,W ondecadê,F ondecadê,F ondecadê,F

MOVF ADDWF SWAPF ADDWF ADDWF MOVF ADDWF ADDWF SWAPF ADDWF

end 06/08/2017

3

06/08/2017

ondecadê,W ondecadê,W ondecadê,W ondecadê,F ondecadê,F 75

OPERAÇÕES ARITMÉTICAS 20 – Multiplicação por 21

ondecadê,W ondecadê,W ondecadê,F ondecadê,F ondecadê,F

end 06/08/2017

3

76

OPERAÇÕES ARITMÉTICAS

Máximo: 12

21 – Multiplicação por 22

Máximo: 11

Sete opcodes

Seis opcodes

; 20 - Multiplicação por 21 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 21 - Multiplicação por 22 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

MOVF ADDWF ADDWF ADDWF ADDWF ADDWF ADDWF end

ondecadê,W ondecadê,F ondecadê,W ondecadê,F ondecadê,W ondecadê,F ondecadê,F

MOVF ADDWF ADDWF ADDWF ADDWF ADDWF ADDWF

MOVF ADDWF ADDWF SWAPF ADDWF ADDWF

ondecadê,W ondecadê,W ondecadê,F ondecadê,W ondecadê,F ondecadê,W ondecadê,F

ondecadê,W ondecadê,W ondecadê,W ondecadê,F ondecadê,F ondecadê,F

end 06/08/2017

77

06/08/2017

78

06/08/2017

3

OPERAÇÕES ARITMÉTICAS 22 – Multiplicação por 24

3

OPERAÇÕES ARITMÉTICAS

Máximo: 10

23 – Multiplicação por 25

Quatro opcodes

Máximo: 10

Oito opcodes ; 23 - Multiplicação por 25 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 22 - Multiplicação por 24 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20 ;multiplicação por 16 SWAPF ondecadê,F ;multiplicação por 1,5 BCF STATUS,C RRF ondecadê,W ADDWF ondecadê,F

; 23 - Multiplicação por 25 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

;multiplica BCF RLF ADDWF ADDWF

por 5 STATUS,C ondecadê,W ondecadê,F ondecadê,F

;multiplica MOVF ADDWF ADDWF ADDWF

por 5 ondecadê,W ondecadê,F ondecadê,W ondecadê,F

;multiplica BCF RLF ADDWF ADDWF

por 5 STATUS,C ondecadê,W ondecadê,F ondecadê,F

;multiplica MOVF ADDWF ADDWF ADDWF

por 5 ondecadê,W ondecadê,F ondecadê,W ondecadê,F

end

end

end 06/08/2017

3

79

OPERAÇÕES ARITMÉTICAS 24 – Multiplicação por 32

06/08/2017

3

80

OPERAÇÕES ARITMÉTICAS

Máximo: 7

25 – Multiplicação por 33

Três opcodes

Seis opcodes

; 25 - Multiplicação por 33 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 24 - Multiplicação por 32 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20 SWAPF BCF RLF

MOVLW ANDWF SWAPF SWAPF ADDWF ADDWF

ondecadê,F STATUS,C ondecadê,F

end

06/08/2017

3

81

OPERAÇÕES ARITMÉTICAS

06/08/2017

3

0x0f ondecadê,F ondecadê,F ondecadê,W ondecadê,W ondecadê,F

end

82

OPERAÇÕES ARITMÉTICAS

26 – Multiplicação por 34

27 – Multiplicação por 35

Sete opcodes

Sete opcodes

; 26 - Multiplicação por 34 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 27 - Multiplicação por 35 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

MOVLW ANDWF SWAPF SWAPF ADDWF MOVF ADDWF 06/08/2017

end

0x0f ondecadê,F ondecadê,F ondecadê,W ondecadê,F ondecadê,W ondecadê,F

MOVLW ANDWF SWAPF SWAPF ADDWF ADDWF ADDWF 83

06/08/2017

end

0x0f ondecadê,F ondecadê,F ondecadê,W ondecadê,F ondecadê,W ondecadê,F 84

06/08/2017

3

OPERAÇÕES ARITMÉTICAS

3

OPERAÇÕES ARITMÉTICAS

28 – Multiplicação por 49

Sete opcodes

; 28 - Multiplicação por 49 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 29 - Multiplicação por 50 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

MOVLW ANDWF SWAPF SWAPF ADDWF ADDWF ADDWF 06/08/2017

3

29 – Multiplicação por 50

Sete opcodes

0x0f ondecadê,F ondecadê,F ondecadê,W ondecadê,W ondecadê,W ondecadê,F

MOVLW ANDWF SWAPF SWAPF ADDWF ADDWF ADDWF 85

end

OPERAÇÕES ARITMÉTICAS

06/08/2017

3

0x0f ondecadê,F ondecadê,F ondecadê,W ondecadê,W ondecadê,F ondecadê,F 86

end

OPERAÇÕES ARITMÉTICAS

30 – Multiplicação por 64

31 – Multiplicação por 128

Quatro opcodes

Quatro opcodes

; 30 - Multiplicação por 64 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

; 31 - Multiplicação por 128 ; Argumento inteiro, desprezar overflow #include constant ondecadê = 0x20

RLF RLF MOVLW ANDWF SWAPF

RLF RLF RLF MOVLW ANDWF SWAPF

ondecadê,F ondecadê,F 0x0c ondecadê,F ondecadê,F

ondecadê,F ondecadê,F ondecadê,F 0x08 ondecadê,F ondecadê,F

end

end 06/08/2017

3

87

OPERAÇÕES ARITMÉTICAS

06/08/2017

3

88

OPERAÇÕES ARITMÉTICAS

32 – Multiplicação por 0,5

33 – Multiplicação por 1,5

Dois opcodes

Três opcodes

; 32 - Multiplicação por 0,5 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20

; 33 - Multiplicação por 1,5 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20

06/08/2017

;divide por 2 BCF STATUS,C RRF ondecadê,F

BCF RRF ADDWF

end

end

89

06/08/2017

STATUS,C ondecadê,W ondecadê,F

90

06/08/2017

3

OPERAÇÕES ARITMÉTICAS

3

OPERAÇÕES ARITMÉTICAS

34 – Multiplicação por 2,5

35 – Multiplicação por 3,5

Quatro opcodes

Cinco opcodes

; 35 - Multiplicação por 3,5 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20

; 34 - Multiplicação por 2,5 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20 BCF RRF ADDWF ADDWF

BCF RRF ADDWF ADDWF ADDWF

STATUS,C ondecadê,W ondecadê,W ondecadê,F

end

end

06/08/2017

3

91

OPERAÇÕES ARITMÉTICAS

06/08/2017

3

92

OPERAÇÕES ARITMÉTICAS

36 – Multiplicação por 4,5

38 – Multiplicação por 0,25

Seis opcodes

Quatro opcodes

; 38 - Multiplicação por 0,25 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20

; 36 - Multiplicação por 4,5 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20 BCF RRF ADDWF ADDWF ADDWF ADDWF

STATUS,C ondecadê,W ondecadê,W ondecadê,W ondecadê,W ondecadê,F

end

06/08/2017

3

;divide por 2 BCF STATUS,C RRF ondecadê,F ;divide por 2 BCF STATUS,C RRF ondecadê,F

Outra opção:

BCF RRF BCF RLF ADDWF ADDWF

STATUS,C ondecadê,W STATUS,C ondecadê,F ondecadê,W 93 ondecadê,F

OPERAÇÕES ARITMÉTICAS

end 06/08/2017

3

94

OPERAÇÕES ARITMÉTICAS

39 – Multiplicação por 0,75

40 – Multiplicação por 1,25

Cinco opcodes

Seis opcodes

; 40 - Multiplicação por 1,25 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20

; 39 - Multiplicação por 0,75 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20 BCF RRF BCF RRF ADDWF

BCF RRF BCF RRF ADDWF ADDWF

STATUS,C ondecadê,F STATUS,C ondecadê,W ondecadê,F

end

06/08/2017

STATUS,C ondecadê,W ondecadê,W ondecadê,W ondecadê,F

STATUS,C ondecadê,F STATUS,C ondecadê,W ondecadê,W ondecadê,F

end

95

06/08/2017 *Contribuição de Diego Fernandes Almeida Silva e João Paulo Vieira Cordeiro

Outra opção*:

MOVF BCF RRF BCF RRF ADDWF

ondecadê,W STATUS,C ondecadê,F STATUS,C ondecadê,F 96 ondecadê,F

06/08/2017

3

OPERAÇÕES ARITMÉTICAS

3

OPERAÇÕES ARITMÉTICAS

41 – Multiplicação por 1,75

42 – Multiplicação por 40

Sete opcodes

Sete opcodes

; 41 - Multiplicação por 1,75 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20

; 42 - Multiplicação por 40 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20

BCF RRF BCF RRF ADDWF ADDWF ADDWF

;multiplicação por 16 MOVLW 0x0f ANDWF ondecadê,F SWAPF ondecadê,F

STATUS,C ondecadê,F STATUS,C ondecadê,W ondecadê,W ondecadê,W ondecadê,F

;multiplicação por 2,5 BCF STATUS,C RRF ondecadê,W ADDWF ondecadê,W ADDWF ondecadê,F

end 06/08/2017

3

97

OPERAÇÕES ARITMÉTICAS

06/08/2017

3

OPERAÇÕES ARITMÉTICAS 44 – Multiplicação por 56

Seis opcodes

Sete opcodes ; 44 - Multiplicação por 56 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20 ;multiplicação por 16 MOVLW 0x0f ANDWF ondecadê,F SWAPF ondecadê,F

;multiplicação por 16

MOVLW ANDWF SWAPF

0x0f ondecadê,F ondecadê,F

;multiplicação por 3 BCF STATUS,C RLF ondecadê,W ADDWF ondecadê,F

3

end

;multiplicação por 3,5 BCF STATUS,C RRF ondecadê,W ADDWF ondecadê,W ADDWF ondecadê,W ADDWF ondecadê,F

Outra opção:

MOVLW ANDWF SWAPF SWAPF ADDWF ADDWF

0x0f ondecadê,F ondecadê,W ondecadê,F ondecadê,F 99 ondecadê,F

OPERAÇÕES ARITMÉTICAS

06/08/2017

3

end

xx – Multiplicação por 96

Sete opcodes

Sete opcodes ; xx - Multiplicação por 96 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20

; 45 - Multiplicação por 56 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20 MOVLW ANDWF SWAPF SWAPF ADDWF ADDWF ADDWF

100

OPERAÇÕES ARITMÉTICAS

45 – Multiplicação por 80

;multiplicação por 32 RLF ondecadê,F MOVLW 0x0e ANDWF ondecadê,F SWAPF ondecadê,F

0x0f ondecadê,F ondecadê,W ondecadê,F ondecadê,W ondecadê,F ondecadê,F

;multiplicação por 3 BCF STATUS,C RLF ondecadê,W ADDWF ondecadê,F

end 06/08/2017

98

43 – Multiplicação por 48 ; 43 - Multiplicação por 48 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20

06/08/2017

end

101

06/08/2017

end

102

06/08/2017

3

OPERAÇÕES ARITMÉTICAS

4

DSP

xx – Multiplicação por 192 Oito opcodes ; xx - Multiplicação por 96 ; Argumento inteiro, desprezar parte fracionária #include constant ondecadê = 0x20 ;multiplicação por 64 RLF ondecadê,F RLF ondecadê,F MOVLW 0x0c ANDWF ondecadê,F SWAPF ondecadê,F

DSP

;multiplicação por 3 BCF STATUS,C RLF ondecadê,W ADDWF ondecadê,F 06/08/2017

4

end

103

DSP

06/08/2017

4

DSP

Significado • • • • •

Significado

DSP – Digital Signal Processor. Processador digital para sinais. Sinal: Grandeza física que retrata uma informação. Processador específico para tratamento digital de sinais. Neste tipo de aplicação, é muito mais rápido do que a MCU.

• O processamento digital de sinais também pode ser realizado por um P, MCU ou, até mesmo, um computador, porém de forma mais lenta. • A vantagem do uso de computador é a facilidade na alteração de parâmetros e da programação. • A resposta de um DSP é sempre mais lenta do que a proveniente de um processamento analógico. • A vantagem do processamento digital é a menor sensibilidade a interferências externas ao processo.

• O ponto forte da DSP é a alta capacidade de realização de operações matemáticas complexas que permitam a transformação de um sinal original em um sinal desejado.

06/08/2017

4

105

DSP

106

DSP Exemplos de DSP’s

Analógico DSP MCU P Computador • Comparação entre DSP, MCU e P com igual capacidade de processamento (MIPS).

06/08/2017

4

Performance em aplicação específica

06/08/2017

104

107

32-BIT FLOATING POINT (5% do mercado): – TI TMS320C3X, TMS320C67xx – AT&T DSP32C – ANALOG DEVICES ADSP21xxx – Hitachi SH-4 16-BIT FIXED POINT (95% do mercado): – TI TMS320C2X, TMS320C62xx – Infineon TC1xxx (TriCore1) – MOTOROLA DSP568xx, MSC810x – ANALOG DEVICES ADSP21xx – Agere Systems DSP16xxx, Starpro2000 – LSI Logic LSI140x (ZPS400) – Hitachi SH3-DSP 06/08/2017– StarCore SC110, SC140 http://meseec.ce.rit.edu/eecc722-fall2003/722-10-8-2003.pdf, página 13, 2003

108

06/08/2017

4

DSP

4

DSP

Exemplos de aplicações

06/08/2017

• • • • • • • • • • • •

Real/Non-real time procesing Simulação Radares militares Controle Computadores Processamento de imagem/som Internet/redes de computadores Comunicação digital Telefonia (móvel, VOIP) Modem’s (dial-up, 2G/3G, cable) Televisão digital Instrumentos musicais

Tipos de aquisição de dados • • • • • •

Non-real time procesing Um arquivo é gerado com o sinal adquirido. A aquisição do sinal é feita por um certo tempo. O processamento é feito sobre o arquivo. O processamento do arquivo pode ser lento. A exigência de performance é menor.

• Real time procesing • Não há geração de arquivo. • A aquisição do sinal é feita por um tempo indefinido. • O processamento é feito sobre o sinal continuamente. 06/08/2017 110 • A exigência de performance é maior.

109

http://meseec.ce.rit.edu/eecc722-fall2003/722-10-8-2003.pdf, página 15, 2003

4

4

DSP

DSP Exemplos

Dados para o processamento

• Arquivo de amostragem – Sample • Non-real time procesing • Sinal contínuo infinito – Stream • Real time procesing

06/08/2017

111

06/08/2017

112 http://meseec.ce.rit.edu/eecc722-fall2003/722-10-8-2003.pdf, página 18, 2003

4

DSP

4

DSP

Programação mais comum

Sinal analógico intensidade

• P: Linguagens de alto nível – Exemplo: Java • MCU: Linguagens de baixo nível – Exemplo: C • DSP: Linguagens de baixo nível – Exemplo: C • P: Multitarefa • MCU: Monotarefa • DSP: Monotarefa

t

• Exemplos de sistemas P multitarefa: smartphone, smartTV. • Exemplos de sistemas MCU ou DSP monotarefa: telefone e TV convencionais. 06/08/2017

113

06/08/2017

• • • •

Pode mudar em qualquer instante. Pode assumir qualquer valor. Não possui descontinuidade. A função é derivável em todos os pontos.

114

06/08/2017

4

DSP

4

DSP

Sinal analógico amostrado

Sinal analógico amostrado http://www.spectrum-soft.com/news/winter97/sample2.gif

intensidade

http://www.eecs.tufts.edu/~dsculley/tutorial/opamps/sampleAndHold.JPG

t

• • • •

Pode mudar, apenas, em instantes determinados. Pode assumir qualquer valor analógico. É descontínuo no tempo. Proveniente de circuito de amostra e retenção (sample/hold) 06/08/2017 115

4

DSP

06/08/2017

116

4

Sinal analógico quantizado

DSP Sinal analógico amostrado e quantizado

intensidade

intensidade

t

t

• Pode mudar em qualquer instante. • Pode assumir, apenas, valores pré-determinados. • É descontínuo em intensidade. 06/08/2017

4

• Pode mudar, apenas, em instantes determinados. • Pode assumir, apenas, valores pré-determinados. • É descontínuo no tempo e na intensidade. • Proveniente de um conversor D/A. 06/08/2017

117

DSP

4

118

DSP

Parâmetros do sinal analógico processado

Exemplo 1 • • • •

• Sampling rate. • Taxa de amostragem. • Frequência de amostragem.

Tempo de 16 horas diárias. Conversor A/D com resolução de 4 bits. Período de amostra de 8ms. Determine o tamanho do arquivo diário.

• Bit rate. • Taxa de bits. • Bits usados na quantização. • Exemplo: CD-DA. • 44,1 kHz • 16 bits 06/08/2017

119

06/08/2017

120

06/08/2017

4

DSP

4

DSP

Quantização não linear • • • •

Quantização não linear

O intervalo entre os valores quantizados não é constante. Valores baixos recebem intervalos baixos. A resolução é proporcional ao valor instantâneo sinal. Isto melhora a relação sinal/ruído em sinais alternados.

• Escala logarítmica. • Usado em som e imagem.

nível 7

intensidade nível 6 nível 5

t

06/08/2017

121

4

DSP

nível 4 nível 3 nível 2 nível 1122

06/08/2017

4

DSP

Exemplo 2 • • • •

Controle Linear • • • • • • •

Quantização logarítmica. O nível 3 vale 6mV. O nível 4 vale 8mV. Determine n1, n2, n5 e n6. 14,22mV

ASP – Analog Signal Processor Emprega dispositivos analógicos. Pode ser elétrico, mecânico, ótico, etc. Pode ser proporcional, integral, derivativo, etc. Proporciona o controle mais rápido. O projeto envolve transformada de Laplace. Operações matemáticas podem ser feitas or AMP-OP.

10,67mV

• • • •

8mV 6mV 4,5mV 3,375mV 06/08/2017

4

123

DSP

06/08/2017

4

• • • • •

Radiciação Logaritmação Exponencial Derivação Integração

124

DSP

Controle discreto

Controle

Discreto. • Emprega eletrônica digital. • O projeto envolve transformada Z. • A resposta é mais lenta do que no controle analógico. • Problemas: Histereses, propagação de atraso, harmônicos. • Operações matemáticas executadas por uma ULA.

06/08/2017

Adição Subtração Multiplicação Divisão

125

Processado. • Para que a resposta seja rápida, usa-se DSP. • Para resposta lenta, pode-se usar P ou MCU. • O controle envolve tomadas de decisão. • Limiares são definidos para a decisão. Processado por faixas. • O controle envolve tomadas de decisão. • Limiares são definidos para a decisão. • Faixas de valores para a entrada analógica são definidas. • Para cada faixa, é determinado o valor da saída analógica. 06/08/2017

126

06/08/2017

4

DSP

4

DSP

Exemplo de controle processado por faixas • • • • • •

Vantagens do controle processado

Sistema de refrigeração por ventilador. Abaixo de 20C, o motor é desligado. Entre 20C e 25C, o motor recebe 1/4 da potência máxima. Entre 25C e 30C, o motor recebe 2/4 da potência máxima. Entre 30C e 35C, o motor recebe 3/4 da potência máxima. Entre 35C e 40C, o motor recebe a potência máxima.

• • • • • • •

• O controle processado por faixas pode gerar oscilações na seleção da faixa por tempo indeterminado. 06/08/2017

4

127

DSP

Facilidade na alteração de parâmetros. Facilidade de projeto. Facilidade no acréscimo de novas variáveis. Pequena variação nos requisitos de hardware. Facilidade na deteção de defeitos. Possibilidade de monitoramento computacional. Grande repetibilidade.

06/08/2017

128

4

DSP

Desvantagens do controle processado

Controle digital

• Lentidão – Inviável para processos que requerem monitoramento de muita informação em pouco tempo. • Limitada faixa de temperatura de operação. • Para projetos pequenos, a versão analógica pode ser mais barata. • Menor liberdade de escolha dos conceitos envolvidos no projeto.

06/08/2017

4

Input

Sensores

129

DSP

Processamento Digital

06/08/2017

4

Output

Atuadores

130

DSP

Controle

ULA

• O controle é feito por meio da aplicação de funções determinadas. • No controle analógico, estas funções são obtidas, de forma aproximada, por meio de circuitos analógicos. • No controle processado, estas funções são obtidas a partir das funções básicas contidas na ULA. • Nas DSP’s, a ULA pode conter funções mais sofisticadas, a fim de facilitar a programação e a rapidez de execução do programa.

MCU ou P: • ULA com poucas funções. • Funções sofisticadas requerem vários ciclos de instrução.

06/08/2017

131

DSP: • ULA com muitas funções. • ULA com as funções específicas (DSP específica). • Um ou poucos ciclos para realizar operações sofisticadas.

06/08/2017

132

06/08/2017

4

DSP

4

DSP

Realimentação

Controle digital

• Se nenhum sensor é afetado pelos atuadores, o controle é de malha aberta. • Se, pelo menos, um sensor é afetado por, pelo menos, um atuador, o controle é de malha fechada. • Um controle de malha aberta é transformado em controle de malha fechada por meio da realimentação (feedback).

06/08/2017

Input

DSP

06/08/2017

DSP Conversão analógico-digital

Atuadores • Motor • Válvula solenóide • Aquecedor/Forno • Lâmpada • Alto-falante

06/08/2017

Barramento Analógico

DSP

4

Sensores

06/08/2017

Conversores A/D

Conversor paralelo / serial

1 bit

Digital

136

DSP Sensoriamento de longa distância

• Para pequenas distâncias ou para sensores espalhados, a transmissão pode ser feita de forma paralela. • Para longas distâncias ou para sensores concentrados, a transmissão pode ser feita de forma serial. Barramento Digital

Processamento

Opções: • Conversor A/D separado. • Conversor A/D embutido no sensor. 06/08/2017 • Conversor A/D embutido na DSP ou MCU.

Sensoriamento de longa distância

Barramento Analógico

Barramento Digital

Conversores A/D

Sensores

135

4

134

4

Exemplos Sensores • De posição • De temperatura • De pressão • De umidade • De luz • De força • De Ph • De som • De concentração • De viscosidade

Atuadores

Digital Feedback

133

4

Output

Processamento

Sensores

Processamento Digital Inlcui entrada serial

137

Barramento Analógico Sensores

Barramento Digital

Conversores A/D

Conversor paralelo / serial

1 bit

Processamento Digital Inlcui entrada serial

Opções: • Conversores A/D e serial separados. • Conversor A/D embutido no sensor e serial separado. • Conversores A/D e serial embutidos no sensor. • Como o conversor serial é simplex, há, apenas, uma via de saída de dados, mesmo se o protocolo for Microwire, SPI, etc. 06/08/2017

138

06/08/2017

4

DSP

4

DSP

Derivadas • Muitas vezes, o valor médio ou instantâneo de uma grandeza não é interessante. • Há casos em que a variação desta grandeza é mais importante. • Como exemplo, tem-se o gradiente térmico, que pode ser mais prejudicial a um sistema elétrico/mecânico do que uma temperatura alta. • Sensores especiais conseguem aplicar a derivada primeira no valor instantâneo da grandeza medida. • A forma mais fácil de obter a derivada é por meio do uso de amplificadores derivadores a AMP-OP. • Outras funções, como logarítmo ou derivada segunda, também podem ser obtidos. 06/08/2017

4

Derivadas – Exemplo

• Em elevadores, a sacudida é o que determina o conforto para os usuários. • Em robótica, a sacudida é o que determina o estresse mecânico das partes móveis e do objeto manipulado. 139

DSP

06/08/2017

4

DSP

Adequação do sensoriamento

Adequação do sensoriamento

• A adequação do valor medido ao processamento através da aplicação de alguma função de transformação (derivação, integração, logaritmação, etc) geralmente é feita de forma analógica diretamente no sinal fornecido pelo sensor. • Esta operação pode ser feita por meio de um AMP-OP. • Caso esta manipulação precise receber parâmetros configuráveis ou precise ser alterada livremente, pode ser mais interessante aplicar a alteração nos valores digitais. 06/08/2017

5

140

Opção 1 Sensores

Derivação Integração Logaritmação Potenciação etc

Conversores A/D

Processamento Digital

Opção 2 Sensores

141

APLICAÇÕES DE DSP

Conversores A/D

Processamento Digital Inlcui derivação, integração logaritmação, potenciação, etc

06/08/2017

5

142

APLICAÇÕES DE DSP Exemplo: Som em computação

• Exemplo do computador pessoal. • A CPU poderia lidar com o tratamento de som. • Isso tornaria a performance do computador muito baixa para outras tarefas durante o tratamento do áudio. • Uma placa de som (off-borad ou on-board) faz o tratamento do som, liberando a CPU para outras tarefas. • A placa de som possui um DSP (se for on-board, esta DSP está incorporada ao chipset. • O tratamento do som pode incluir desde a conversão D/A, como a decodificação de algoritmos de compactação e a colocação de efeitos de áudio.

APLICAÇÕES DE DSP

06/08/2017

143

06/08/2017

144

06/08/2017

Audio Processor:

5

APLICAÇÕES DE DSP

5

Exemplo: Som em computação

Sound Core3D

APLICAÇÕES DE DSP

Exemplo: Som em computação

Audio Resolution:

24-Bit

Digital Audio Conv ertor (DAC):

Cirrus Logic

Signal to Noise Ratio (SNR) (20kHz Low-pass f ilter, A-Wgt):

116dB

Maximum Play back Quality :

5.1 : Up to 96kHz Stereo Direct: Up to 192kHz

Frequency Response @96kHz:

Front Channel Out : 10Hz to 45kHz Rear Channel Out : 15Hz to 45kHz Center Out : 10Hz to 45kHz Headphone (33 ohms): 10Hz to 45kHz

Frequency Response @192kHz (Stereo Direct Only ):

Front Channel Out : 10Hz to 88kHz

16-bit to 24-bit Recording Sample 8,11.025,16, 22.05, 24, 32, 44.1, Rates: 48, 96 (kHz)

16-bit to 24-bit Play back Sample Rates:

8,11.025,16, 22.05, 24, 32, 44.1, 48, 96, 192 (kHz)

Maximum Recording Quality :

Up to 24-bit/96kHz

I/O Ports (Main Card):

Headphone : 1 x Amplif ied 3.5mm jack Speaker Out : 3 x 3.5mm jacks(F/R/C-Sub) Line / Mic In : 1x shared 3.5mm jack Optical Out : 1x TOSLINK Optical In : 1x TOSLINK

Audio Control Module / Front Panel Connectiv ity:

Volume Control Knob Built-in Beam-Forming Microphone Headphone-Out : 1x 3.5mm jack, 1x 1/4” jack Microphone-In : 1x 3.5mm jack, 1x 1/4” jack

600 Ohm Amplif ied Headphone Output:

Maxim MAX97220A

http://www.soundblaster.com/images/desktop/products/zx_pdtimg1.png

06/08/2017

5

145

06/08/2017

5

APLICAÇÕES DE DSP

APLICAÇÕES DE DSP Exemplo: Imagem em computação

Exemplo: Imagem em computação • Exemplo do computador pessoal. • A CPU poderia lidar com o tratamento de imagem. • O tratamento de imagem é muito mais crítico do que o tratamento de som. • Jogos 3D têm impulsionado a indústria de placas de processamento de imagem (on-board e, principalmente, off-board). • O processamento é tão grande que essas placas utilizam GPU (CPU para gráficos), que consomem muita energia, aquecem bastante e podem, até mesmo, ser mais caras do que a placa-mãe ou a CPU. • O processamento de imagem é tão intenso que as placas-mãe possuem barramento para uso específico 06/08/2017 147 do tratamento de imagem.

5

146

APLICAÇÕES DE DSP

http://www.nvidia.com/content/titan/us/img/titan_angle-view.png

http://www.geforce.com/Active/en_US/shared/images/products/geforce-gt-610/geforce-gt-610-3qtr_gallery_preview.png http://images.productwiki.com/upload/images/nvidia_geforce_gt_520m.png

06/08/2017

5

148

APLICAÇÕES DE DSP

Exemplo: IMGLIB

Classes de operações com imagem – IMGLIB

• C6000 Image Processing Library (IMGLIB) is an optimized image/video processing function library for C programmers. • It includes C-callable general-purpose image/video processing routines that are typically used in computationally intensive real-time applications. • With these routines, you can achieve higher performance than equivalent code written in standard ANSI C language. • By providing ready-to-use DSP functions with source code, IMGLIB can significantly shorten your application development time.

• Análise de imagem. • Filtragem. • Compressão/descompressão.

06/08/2017

http://www.ti.com/tool/sprc264

149

06/08/2017

http://www.ti.com/lit/ug/spruf30a/spruf30a.pdf

150

06/08/2017

5

APLICAÇÕES DE DSP

5

APLICAÇÕES DE DSP

Exemplos de operações de análise de imagem

Arquitetura de câmera DSP

http://www.electronicproducts.com/images2/z32texad0202.gif

06/08/2017

5

http://www.ti.com/lit/ug/spruf30a/spruf30a.pdf

151

APLICAÇÕES DE DSP

06/08/2017

5

APLICAÇÕES DE DSP

Exemplos de funções de câmera DSP • • • • • • • • • •

Exemplo: SGTL5000

Ajuste à luminosidade. Ajuste da temperatura de cor. Ajuste de posicionamento. Foco automático. Flash automático. Zoom máximo automático em função da macro. Identificação de padrões (ex: sorriso). Disparo automático por movimento ou som. Compressão (JPG, LZH, MPEG, outros). Redução de ruído (som e imagem).

06/08/2017

152

• The SGTL5000 is a Low Power Stereo Codec with Headphone Amp from Freescale, and is designed to provide a complete audio solution for portable products needing line-in, mic-in, line-out, headphone-out, and digital I/O. • Target markets include portable media players, GPS units, and smart phones.

153

06/08/2017

154 http://cache.freescale.com/files/analog/doc/data_sheet/SGTL5000.pdf?pspll=1

5

APLICAÇÕES DE DSP

5

APLICAÇÕES DE DSP

Exemplo: SGTL5000

Exemplo: SGTL5000

Analog Inputs Stereo Line In Support for external analog input Codec bypass for low power MIC MIC bias provided Programmable MIC gain Auto volume control ADC 85 dB SNR and -70 dB THD+N (VDDA=1.8 V) 93 dB SNR and -73 dB THD+N (VDDA = 3.3 V) Analog Outputs DAC/Line Out 100 dB SNR and -85 dB THD+N (VDDA=3.3 V) DAP/HP Output 98 dB SNR and -80 dB THD+N(VDDA=1.8 V 16 Ohm load, DAC to headphone) 45 mW max into 16 Ohm load @ 3.3 V Capless design Best in class PSRR without Lin Reg. Only two external components needed for digital playback Ramped digital volumes Popless volume 0.5 db analog volume steps (0 db to – 64 db) Integrated Digital Audio Processing Surround, bass, tone control/parametric equalizer/graphic equalizer Digital I/O I2S port to allow routing to applications processor

06/08/2017

155 http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=SGTL5000&nodeId=01435959C059C3

06/08/2017

156 http://cache.freescale.com/files/graphic/block_diagram/SGTL5000_BD.gif

06/08/2017

5

APLICAÇÕES DE DSP

5

Exemplo: SGTL5000

APLICAÇÕES DE DSP Exemplo de sistema programável com DSP

http://line6.com/tcddk/images/devbackground.jpg

06/08/2017

157

06/08/2017

158

http://cache.freescale.com/files/analog/doc/data_sheet/SGTL5000.pdf?pspll=1

5

APLICAÇÕES DE DSP

5

APLICAÇÕES DE DSP

Exemplo de sistema programável com DSP

06/08/2017

dsPIC30F

159

06/08/2017

160

http://www.cuk-audio.com/uploads/images/8x8DSPFront_MF.jpg http://www.cuk-audio.com/uploads/images/SymNet_Designer_Glamour3o.png

5

http://www.microchip.com/_images/dsPIC30FArchblkdgrm.jpg

APLICAÇÕES DE DSP

5

dsPIC33F/E

APLICAÇÕES DE DSP ADSP-21367/ADSP-21368/ADSP-21369

SUMMARY • High performance 32-bit/40-bit floating-point processor optimized for high performance audio processing • Single-instruction, multiple-data (SIMD) computational architecture • On-chip memory—2M bits of on-chip SRAM and 6M bits of on-chip mask programmable ROM • Code compatible with all other members of the SHARC family • The ADSP-21367/ADSP-21368/ADSP-21369 are available with a 400 MHz core instruction rate with unique audiocentric peripherals such as the digital applications interface, S/PDIF transceiver, serial ports, 8-channel asynchronous sample rate converter, precision clock generators, and more.

06/08/2017

161 http://www.microchip.com/_images/dsPIC33FArchblkdgrm.jpg

DEDICATED AUDIO COMPONENTS • S/PDIF-compatible digital audio receiver/transmitter • 4 independent asynchronous sample rate converters (SRC) • 16 PWM outputs configured as four groups of four outputs • ROM-based security features include • JTAG access to memory permitted with a 64-bit key • Protected memory regions that can be assigned to limit access under program control to sensitive code • 06/08/2017 PLL has a wide variety of software and hardware multiplier/divider ratios

162

06/08/2017

5

163

APLICAÇÕES DE DSP

http://media.digikey.com/photos/Analog%20Devices%20Photos/ADZS-21369-EZLITE.JPG

http://media.digikey.com/photos/Analog%20Devices%20Photos/ADZS-21369-EZLITE.JPG

06/08/2017

5

APLICAÇÕES DE DSP

ADZS-21369-EZLITE-ND

APLICAÇÕES DE DSP ADZS-21369-EZLITE-ND

5

06/08/2017

5

164

APLICAÇÕES DE DSP

VisualDSP++

VisualDSP++

http://www.automation-drive.com/EX/05-13-10/visualdsp_01_b.gif

06/08/2017

5

165

06/08/2017

5

APLICAÇÕES DE DSP

166

APLICAÇÕES DE DSP Sistema embarcado

Exemplo de aplicação • • • • • • •

Embedded system. Permite o uso de apenas alguns aplicativos. Possui aplicação específica. Tem baixo custo. Performance facilmente medida. Ideal para DSP. Exemplo: Windows Embedded.

http://www.ferrofish.de/gfx/b4000.jpg

06/08/2017

Processadores: • Sharc DSP • Cortex 3 ARM

167

06/08/2017

168 http://www.microchip.com/_images/dsPIC33FArchblkdgrm.jpg

06/08/2017

5

APLICAÇÕES DE DSP

5

APLICAÇÕES DE DSP

Exemplo de sistema embarcado com P

Exemplo de sistema embarcado com P

Placa-mãe de PC rodando Windows™

Placa-mãe dedicada 06/08/2017

Sistema operacional dedicado

169

INTEL® 8051

6

06/08/2017

170

INTEL® 8051

6

Siglas

• • • • • •

INTEL® 8051

06/08/2017

171

INTEL® 8051

6

R0, R1, R2, R3,R4, R5, R6, R7: GPR´s (8 bits). A: Acumulador (work register) (8 bits). IRAM: Internal RAM address (8 bits). #data: Palavra fornecida na instrução (8 bits). PC: Program Counter (16 bits). DPTR: Data Pointer: GPR (16 bits).

06/08/2017

172

INTEL® 8051

6

Instruction Set

Arquitetura File registers

Program & Data

data bus

data bus

data bus

06/08/2017

173

00

01

02

00 10 20 30

NOP

AJMP

LJMP

JBC

ACALL

LCALL

JB

AJMP

JNB

ACALL

40 50 60 70 80 90 a0

JC

04

05

06

07

08

09

0a

0b

0c

0d

0e

0f

RR

INC

INC

INC

INC

INC

INC

INC

INC

INC

INC

INC

INC

RRC

DEC

DEC

DEC

DEC

DEC

DEC

DEC

DEC

DEC

DEC

DEC

DEC

RET

RL

ADD

ADD

ADD

ADD

ADD

ADD

ADD

ADD

ADD

ADD

ADD

ADD

RETI

RLC

ADDC

ADDC

ADDC

ADDC

ADDC

ADDC

ADDC

ADDC

ADDC

ADDC

ADDC

ADDC

AJMP

ORL

ORL

ORL

ORL

ORL

ORL

ORL

ORL

ORL

ORL

ORL

ORL

ORL

ORL

JNC

ACALL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

JZ

AJMP

XRL

XRL

XRL

XRL

XRL

XRL

XRL

XRL

XRL

XRL

XRL

XRL

XRL

XRL

JNZ

ACALL

ORL

JMP

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

SJMP

AJMP

ANL

MOVC

DIV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

ACALL

MOV

MOVC

SUBB

SUBB

SUBB

SUBB

SUBB

SUBB

SUBB

SUBB

SUBB

SUBB

SUBB

SUBB

ORL

AJMP

MOV

INC

MUL

?

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

CPL

CPL

CJNE

CJNE

CJNE

CJNE

CJNE

CJNE

CJNE

CJNE

CJNE

CJNE

CJNE

CJNE

CLR

CLR

SWAP

XCH

XCH

XCH

XCH

XCH

XCH

XCH

XCH

XCH

XCH

XCH

SETB

SETB

DA

DJNZ

XCHD

XCHD

DJNZ

DJNZ

DJNZ

DJNZ

DJNZ

DJNZ

DJNZ

DJNZ

MOVX

MOVX

CLR

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOVX

MOVX

CPL

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV 174 MOV

b0 ANL ACALL c0 PUSH AJMP ACALL d0 POP e0 MOVX AJMP MOVX ACALL f0 06/08/2017

03

06/08/2017

INTEL® 8051

6

INTEL® 8051

6

Instruction Set – Parte 1 Mnem ACALL ADD ADDC AJMP ANL CJNE CLR CPL DA DEC DIV DJNZ INC

Mnem JB JBC JC JMP JNB JNC JNZ JZ LCALL LJMP MOV MOVC MOVX MUL NOP ORL

Significado Absolute Call Add Accumulator (With Carry) Add Accumulator (With Carry) Absolute Jump Bitwise AND Compare and Jump if Not Equal Clear Register Complement Register Decimal Adjust Decrement Register Divide Accumulator by B Decrement Register and Jump if Not Zero Increment Register

Instruction Set – Parte 2

Significado Jump if Bit Set Jump if Bit Set and Clear Bit Jump if Carry Set Jump to Address Jump if Bit Not Set Jump if Carry Not Set Jump if Accumulator Not Zero Jump if Accumulator Zero Long Call Long Jump Move Memory Move Code Memory Move Extended Memory Multiply Accumulator by B No Operation Bitwise OR

06/08/2017

Mnem POP PUSH RET RETI RL RLC RR RRC SETB SJMP SUBB SWAP XCH XCHD XRL

175

INTEL® 8051

6

06/08/2017

06/08/2017

INTEL® 8051 Operações entre o acumulador e o GPR

R0 08

R1 09

R2 0a

R3 0b

R4 0c

R5 0d

R6 0e

R7 0f

00 10 20 30 40 50

INC

INC

INC

INC

INC

INC

INC

INC

DEC

DEC

DEC

DEC

DEC

DEC

DEC

DEC

ADD

ADD

ADD

ADD

ADD

ADD

ADD

ADD

ADDC

ADDC

ADDC

ADDC

ADDC

ADDC

ADDC

ADDC

ORL

ORL

ORL

ORL

ORL

ORL

ORL

ORL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

60 70 80 90 a0 b0 c0

XRL

XRL

XRL

XRL

XRL

XRL

XRL

XRL

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

R0 08

R1 09

R2 0a

R3 0b

R4 0c

R5 0d

R6 0e

R7 0f

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

20

ADD

ADD

ADD

ADD

ADD

ADD

ADD

ADD

SUBB

SUBB

SUBB

SUBB

SUBB

SUBB

SUBB

SUBB

ADDC

MOV

MOV

MOV

MOV

MOV

MOV

MOV

ORL

ORL

ORL

ORL

ORL

ORL

ORL

ORL

ORL

CJNE

CJNE

CJNE

CJNE

CJNE

CJNE

CJNE

CJNE

ANL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

ANL

XCH

XCH

XCH

XCH

XCH

XCH

XCH

XCH

XRL

XRL

XRL

XRL

XRL

XRL

XRL

XRL

XRL

d0 e0 f0

DJNZ

DJNZ

DJNZ

DJNZ

DJNZ

DJNZ

DJNZ

DJNZ

30 40 50 60 90

ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

• • • • •

177

SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB

00 10

R1 09

R2 0a

R3 0b

R4 0c

R5 0d

R6 0e

R7 0f

INC

INC

INC

INC

INC

INC

INC

INC

INC

DEC

DEC

DEC

DEC

DEC

DEC

DEC

DEC

DEC

INTEL® 8051 Operações de gravação de GPR • • • •

Incremento Decremento 70

06/08/2017

SUBB

Adição Adição com carry OR AND XOR Subtração com borrow 178

6

A resposta vai para o GPR. Um operando. R = op (R) 1 byte (sem argumentos).

R0 08

ADD

06/08/2017

Operações com o GPR • • • •

A resposta vai para o acumulador. O acumulador é o primeiro operando. O GPR é o segundo operando. A = R op A 1 byte (sem argumentos).

MOV

INTEL® 8051

6

176

6

General Purpose Registers

• Oito registradores. • R0, R1, R2, R3, R4, R5, R6, R7. • Selecionados através do opcode.

Significado Pop Value From Stack Push Value Onto Stack Return From Subroutine Return From Interrupt Rotate Accumulator Left Rotate Accumulator Left Through Carry Rotate Accumulator Right Rotate Accumulator Right Through Carry Set Bit Short Jump Subtract From Accumulator With Borrow Swap Accumulator Nibbles Exchange Bytes Exchange Digits Bitwise Exclusive OR

179

06/08/2017

O 8-bit data é copiado no GPR. O dado é o operando. R  byte 2 bytes (um argumento). R0 08

R1 09

R2 0a

R3 0b

R4 0c

R5 0d

R6 0e

R7 0f

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

180

06/08/2017

INTEL® 8051

6

Operações de movimentação entre GPR e A

Operações de movimentação com GPR e IRAM • • • •

• O segundo operando é copiado no primeiro operando. • 1 byte (sem argumentos).

e0 f0

R0 08

R1 09

R2 0a

R3 0b

R4 0c

R5 0d

R6 0e

R7 0f

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

181

INTEL® 8051

c0

R0 08

R1 09

R2 0a

R3 0b

R4 0c

R5 0d

R6 0e

R7 0f

XCH

XCH

XCH

XCH

XCH

XCH

XCH

XCH

b0

06/08/2017

R4 0c

R5 0d

R6 0e

R6 0e

R7 0f

MOV

MOV

MOV

MOV

a0

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

IRAM  R R  IRAM

182

INTEL® 8051

R2 0a

R3 0b

R4 0c

R5 0d

R6 0e

R7 0f

DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ

184

INTEL® 8051 Resumo das operações sobre GPR R0-7

08-0f

• 128 instruções. • Metade das instruções.

R7 0f

CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE

185

R1 09

06/08/2017

6

Compare and Jump If Not Equal. O segundo operando é comparado com primeiro operando. O primeiro operando é o GPR. O segundo operando é o 8-bit data. O primeiro argumento é o 8-bit data. O segundo argumento é o 8-bit relative address. 3 bytes (dois argumentos). R3 0b

R5 0d

MOV

d0

Operação de comparação com GPR – CJNE

R2 0a

R4 0c

MOV

R0 08

INTEL® 8051

R1 09

R3 0b

MOV

Operações de decremento de GPR – DJNZ

183

R0 08

R2 0a

MOV

• Decrement and Jump if Not Zero. • O argumento é o 8-bit relative address da program memory. • 2 bytes (um argumento).

06/08/2017

• • • • • • •

R1 09

MOV

6

Exchange bytes. A  R. R  A. 1 byte (sem argumentos).

6

R0 08 80

06/08/2017

Operações de permutação entre GPR e A – XCH • • • •

O segundo operando é copiado no primeiro operando. Somente a memória interna pode ser acessada. O argumento é o 8-bit IRAM address. 2 bytes (um argumento).

AR RA

06/08/2017

6

INTEL® 8051

6

06/08/2017

Endereçamento direto

Bytes

00 10

INC

R  inc

R

1

DEC

R  dec

R

1

20 30 40 50 60 70

ADD

AA+

R

1

ADDC

AA+

R

1

ORL

A  A or

R

1

ANL

A  A and R

1

XRL

A  A xor R

1

MOV

R

#data

2

80 90 a0 b0 c0 d0

MOV

IRAM 

R

2

SUBB

AA-

R

1

MOV

R

IRAM

2

CJNE

Compara R e #data

3

XCH

A  R, R  A

1

DJZN

R  R-1

e0 f0

MOV

A

R

MOV

R

A

2 1 186 1

06/08/2017

INTEL® 8051

6

INTEL® 8051

6

Endereçamento indireto

Endereçamento indireto R0-7

08-0f

• • • •

Um GPR contém o 8-bit IRAM address. O endereçamento indireto é sinalizado por @. O GPR pode ser R0 ou R1. O argumento é @R0 ou @R1.

06/08/2017

187

INTEL® 8051

6 Operação

43 53 63 75

Bytes

ORL

IRAM = IRAM or

data

3

ANL

IRAM = IRAM and

data

3

XRL

IRAM = IRAM xor

data

3

MOV

IRAM  data

3

Operação ADD

A=A +

data

2

ADDC

A=A +

data

2

44 54 64 74 94 b4

ORL

A = A or

data

2

ANL

A = A and data

2

XRL

A = A xor

data

2

MOV

A

data

2

SUBB

A=A-

data

2

CJNE

Compara A e data

Nibble menos signific.

ORL

IRAM = IRAM or

A

2

ANL

IRAM = IRAM and

A

2

XRL

IRAM = IRAM xor

A

2

MOV

IRAM 

A

3 Bytes 2 2

Operação no bit(address)

Bytes

CPL

bit(address)  /bit(address)

2

CLR

bit(address)  0

2

SETB

bit(address)  1

2

Operação no carry

DEC

@R  dec @R

ADD

ADD

AA+

@R

ADDC

ADDC

AA+

@R

ORL

ORL

A  A or

@R

ANL

ANL

A  A and @R

XRL

XRL

A  A xor @R

MOV

MOV

@R 

byte

MOV

MOV

IRAM 

@R

SUBB

SUBB

AA-

@R

MOV

MOV

@R 

IRAM

Compara R e data

60 70 80 90 a0 b0

CJNE

CJNE

Compara @R e data

XCH

A  R, R  A

c0

XCH

XCH

A  @R, @R  A

DJZN

R  R-1

MOV

A

R

MOV

A

@R

R

A

e0 f0

MOV

MOV

MOV

MOV

@R 

A

DEC

R  dec

R

ADD

AA+

R

ADDC

AA+

R

ORL

A  A or

R

ANL

A  A and R

60 70 80 90 a0 b0

XRL

A  A xor R

MOV

R

data

MOV

IRAM 

R

SUBB

AA-

R

MOV

R

RAM

CJNE

c0 d0 e0 06/08/2017 f0

Operação

04

Bytes

25 35 45 55 65 e5

ADD

A=A +

IRAM

2

ADDC

A=A +

IRAM

2

ORL

A = A or

IRAM

2

ANL

A = A and IRAM

2

XRL

A = A xor

IRAM

2

MOV

A

IRAM

2

95 c5 b5 85

SUBB

A=A-

IRAM

2

XCH

A  IRAM, IRAM  A

2

CJNE

Compara A e IRAM

MOV

IRAM  IRAM

3 189 3

Bytes

b3

CPL

C  /C

1

c3 d3

CLR

C0

1

SETB

C1

1

Operação no C e no b

72 82 a0 b0 92 A2

Bytes

INC

A  inc

A

1

DEC

A  dec

A

1

CLR

A 0

1

f4

CPL

AA+ 1

1

05

Operação

Bytes

00 10 d0

INC

IRAM  inc IRAM

2

DEC

IRAM  dec IRAM

2

DJZN IRAM  IRAM-1

3

190

INTEL® 8051 Outras operações lógicas/aritméticas

Bytes

C  C or bit address

2

ANL

C  C and bit address

2

ORL

C  C or /bit address

2

C  C and /bit address

Operação

00 10 e4

06/08/2017

6

ORL

ANL

188

INTEL® 8051

2

Operações sobre bits b2 c2 d2

DEC

00 10 20 30 40 50

Bytes

INTEL® 8051

6

00 10 20 30 40 50

@R  inc @R

Bytes

24 34

d6 XCHD A  @R, @R  A 06/08/2017 d7 XCHD A  @R, @R  A

07 INC

R

Operações sobre A ou sobre IRAM

Operação

42 52 62 f5

Endereçamento indireto

06 INC

R  inc

6

Operações entre A, IRAM e data

@R0 @R1

Endereçamento direto

INC

Operação

00 84 a4 c4 d4

2

MOV

bit address  C

2

MOV

C  bit address

2

Bytes

NOP

None

1

DIV

Divide Accumulator by B

1

MUL

Multiply Accumulator by B

1

SWAP Swap Accumulator Nibbles DA

Decimal Adjust Accumulator

1 1

Operação com acumulador Bytes

06/08/2017

03

RR

13

RRC

23

RL

33

RLC

Rotate Accumulator Right Rotate Accumulator Right Through Carry Rotate Accumulator Left Rotate Accumulator Left Through Carry

1 1 1 1

191

06/08/2017

192

06/08/2017

INTEL® 8051

6

INTEL® 8051

6

DPTR • • • • •

External Memory

Data pointer. 16-bit GPR @DPTR: Endereçamento indireto. @DPTR indica o 16-bit address da memória externa. @(A+DPTR) indica o 16-bit address da memória de programa. Operação

Bytes

73 A3 90 93

JMP

Jump to DPTR + A

1

INC

Increment DPTR

1

MOV

DPTR  data16

3

MOVC A  @(A + DPTR)

1

E0 F0

MOVX A  @DPTR

1

MOVX @DPTR  A

1

• • • •

Operação

06/08/2017

193

INTEL® 8051

6

XRAM 16-bit program counter A program memory também é chamada de code memory. Parte da program memory pode ser externa.

Operação

1

MOVC A  @(A + DPTR)

1

A  @R1

MOVX

@DPTR

A

1

f2 f3

MOVX

@R0

A

1

MOVX

@R1

A

1

1

194

Long call – Long jump. Três bytes de instrução. A program memory possui 16 bits de endereço. São 64k bytes de memória. O low byte é escrito pelo terceiro byte da instrução. • O high byte é escrito pelo segundo byte da instrução. • Na instrução ACALL, a pilha sofre um push de dois bytes com o endereço da instrução seguinte a ACALL.

195

INTEL® 8051

06/08/2017

6

Jump / Call

196

INTEL® 8051 AJMP / ACALL

Operação no carry

Bytes

02 12 80 C0 D0 22

LJMP

Long jump within 2K block

3

LCALL

Long call within 2K block

3

SJMP

Short Jump

2

PUSH

Push Value Onto Stack

2

POP

Pop Value From Stack

2

RET

Return From Subroutine

1

32

RETI

Return From Interrupt

1

• • • • • • • •

06/08/2017

1

MOVX

LJMP / LCALL

06/08/2017

6

1

A  @R0

• • • • •

Bytes

MOVC A  @(A + PC)

A  @DPTR

MOVX

INTEL® 8051

6

8-bit program memory 16-bit program counter A program memory também é chamada de code memory. Parte da program memory pode ser externa.

83 93

MOVX

06/08/2017

Program Memory • • • •

Bytes

e0 e2 e3 f0

197

• •

Absolute call – Absolute jump. Dois bytes de instrução. A program memory possui 16 bits de endereço. São 64k bytes de memória. O low byte provém do segundo byte da instrução. Os três bits menos significativos do high byte são escritos pelo primeiro byte da instrução. Os cinco bits mais significativos do high byte não são alterados. São alterados os 11 bits menos significativos totalizando 2k bytes. O salto está restrito a 1/32 da program memory. 06/08/2017 198 Na instrução ACALL, a pilha sofre um push de dois bytes.

06/08/2017

INTEL® 8051

6

INTEL® 8051

6

AJMP / ACALL

AJMP / ACALL

Absolute call – Absolute jump. A program memory é dividida em oito páginas. Cada página possui 256 endereços. Cada página utiliza oito bits de endereço. A seleção da página é feita por três bits. Os três bits de seleção de página estão contidos no opcode. As instruções ACALL e AJMP consomem dois bytes.

• • • • •

O primeiro byte identifica a instrução e a página. O segundo byte identifica o endereço dentro da página. A palavra “absolute” indica que é permitido mudar de página. São usados 11 (3+8) bits de endereço. 06/08/2017 199 O tamanho máximo de programa acessável é de 2k bytes.

INTEL® 8051

6

Mnem

Absolute call within 2K block Absolute jump within 2K block

• • • • • • •

06/08/2017

01 11 21 31

AJMP ACALL AJMP ACALL

41 51 61 71 81 91 a1

AJMP ACALL AJMP ACALL AJMP ACALL

b1 c1 d1 e1 f1

AJMP ACALL AJMP ACALL AJMP ACALL

Page A10:A09 0

000

1

001

2

010

3

011

4

100

5

101

6

110

7

111 200

INTEL® 8051

6

Outros jumps

Sintaxe Operações aritméticas entre A e GPR

Jump if not equal

b4 b5

Bytes

CJNE Compara A e data

3

CJNE Compara A e IRAM

3

b6-b7 CJNE Compara @R e data b8-bf CJNE Compara R e data

Jump if not zero

d5

DJZN Decrementa IRAM

28

Bytes 3

3

d6-d7 DJZN Decrementa @R

3

3

d8-df DJZN Decrementa R

3

29 2a 2b

Jump

Bytes

2c

10 20 30

JBC

Jump if Bit Set and Clear Bit

3

JB

Jump if Bit Set

3

2d

JNB

Jump if Bit Not Set

3

2e

40 50 60 70 73

JC

Jump if Carry Set

2

JNC

Jump if Carry Not Set

2

JZ

Jump if Accumulator Zero

2

JNZ

Jump if Accumulator Not Zero

2

JMP

Jump to Data Pointer + Accumulator

1

2f

06/08/2017

201

INTEL® 8051

6 48 49 4a 4b 4c 4d 4e 4f

06/08/2017

ORL A,R0 A  A orl R0 ORL A,R1 A  A orl R1 ORL A,R2 A  A orl R2 ORL A,R3 A  A orl R3 ORL A,R4 A  A orl R4 ORL A,R5 A  A orl R5 ORL A,R6 A  A orl R6 ORL A,R7 A  A orl R7

ADD A,R0 A  A add R0 ADD A,R1 A  A add R1 ADD A,R2 A  A add R2 ADD A,R3 A  A add R3 ADD A,R4 A  A add R4 ADD A,R5 A  A add R5 ADD A,R6 A  A add R6 ADD A,R7 A  A add R7

1

38

1

39

1

3a

1

3b

1

3c

1

3d

1

3e

1

3f

ADDC A,R0 A  A addc R0 ADDC A,R1 A  A addc R1 ADDC A,R2 A  A addc R2 ADDC A,R3 A  A addc R3 ADDC A,R4 A  A addc R4 ADDC A,R5 A  A addc R5 ADDC A,R6 A  A addc R6 ADDC A,R7 A  A addc R7

1

98

1

99

1

9a

1

9b

1

9c

1

9d

1

9e

1

9f

SUBB A,R0 A  A addc R0 SUBB A,R1 A  A addc R1 SUBB A,R2 A  A addc R2 SUBB A,R3 A  A addc R3 SUBB A,R4 A  A addc R4 SUBB A,R5 A  A addc R5 SUBB A,R6 A  A addc R6 SUBB A,R7 A  A addc R7

Sintaxe

1

59

1

5a

1

5b

1

5c

1

5d

1

5e

1

5f

1

68

1

69

1

6a

1

6b

1

6c

1

6d

1

6e

1

6f

XRL A,R0 A  A xrl R0 XRL A,R1 A  A xrl R1 XRL A,R2 A  A xrl R2 AXRLDD A,R3 A  A xrl R3 XRL A,R4 A  A xrl R4 XRL A,R5 A  A xrl R5 XRL A,R6 A  A xrl R6 XRL A,R7 A  A xrl R7

1

c8

1

c9

1

ca

1

cb

1

cc

1

cd

1

ce

1

cf

203

1 1 1 1 1

INTEL® 8051

6

Operações de movimentação entre A e GPR

ANL A,R0 A  A anl R0 ANL A,R1 A  A anl R1 ANL A,R2 A  A anl R2 ANL A,R3 A  A anl R3 ANL A,R4 A  A anl R4 ANL A,R5 A  A anl R5 ANL A,R6 A  A anl R6 ANL A,R7 A  A anl R7

1

202

Sintaxe 58

1

06/08/2017

Operações lógicas entre A e GPR 1

1

06/08/2017

XCH A,R0 AR0, R0A XCH A,R1 AR1, R1A XCH A,R2 AR2, R2A XCH A,R3 AR3, R3A XCH A,R4 AR4, R4A XCH A,R5 AR5, R5A XCH A,R6 AR6, R6A XCH A,R7 AR7, R7A

1

e8

1

e9

1

ea

1

eb

1

ec

1

ed

1

ee

1

ef

MOV A,R0 A  R0 MOV A,R1 A  R1 MOV A,R2 A  R2 MOV A,R3 A  R3 MOV A,R4 A  R4 MOV A,R5 A  R5 MOV A,R6 A  R6 MOV A,R7 A  R7

1

f8

1

f9

1

fa

1

fb

1

fc

1

fd

1

fe

1

ff

MOV R0,A R0  A MOV R1,A R1  A MOV R2,A R2  A MOV R3,A R3  A MOV R4,A R4  A MOV R5,A R5  A MOV R6,A R6  A MOV R7,A R7  A

1 1 1 1 1 1 1 1

204

06/08/2017

INTEL® 8051

6

Sintaxe

Sintaxe

Operações com GPR´s

Operações com a IRAM – endereçamento indireto

INC R0 R0  R0 + 1 INC R1 R1  R1 + 1 INC R2 R2  R2 + 1 INC R3 R3  R3 + 1 INC R4 R4  R4 + 1 INC R5 R5  R5 + 1 INC R6 R6  R6 + 1 INC R7 R7  R7 + 1

08 09 0a 0b 0c 0d 0e 0f

1

18

1

19

1

1a

1

1b

1

1c

1

1d

1

1e

1

1f

DEC R0 R0  R0 – 1 DEC R1 R1  R1 – 1 DEC R2 R2  R2 – 1 DEC R3 R3  R3 – 1 DEC R4 R4  R4 – 1 DEC R5 R5  R5 – 1 DEC R6 R6  R6 – 1 DEC R7 R7  R7 – 1

26

1

27

1

ADDC A,@R0 36 A  A addc @R0 ADDC A,@R1 37 A  A addc @R1

1 1 1 1

55 52 65 62

7c 7d 7e 7f

DEC @R0 16 @R0  @R0 – 1 DEC @R1 17 @R1  @R1 – 1

1 1

XCH A,@R0 c6 A@R0, @R0A XCH A,@R1 c7 A  A add @R1

INC @R0 @R0  @R0 + 1 INC @R1 @R1  @R1 + 1

MOV A,@R0 e6 A  @R0 MOV A,@R1 e7 A  @R1

1 1

MOV @R0,A f6 @R0  A MOV @R1,A f7 @R1  A

1

ADD A,iram A  A add iram ADDC A,iram 35 A  A addc iram SUBB A,iram 95 A  A subb iram XCH A,iram c5 A  iram, iram  A

25

2 2 2 2

2 2 2 2

INC iram iram  iram + 1 DEC iram 15 iram  iram – 1 MOV A,iram e5 A  iram MOV iram,A f5 iram  A

2

05

2 2 2

2 2

• • • • •

Internal data RAM. 256 bytes. 2-bit instruction. O segundo byte é o 8-bit address. O endereço é fornecido no opcode. 207

88 89 8a 8b 8c 8d 8e 8f

MOV iram,R0 iram  R0 MOV iram,R1 iram  R1 MOV iram,R2 iram  R2 MOV iram,R3 iram  R3 MOV iram,R4 iram  R4 MOV iram,R5 iram  R5 MOV iram,R6 iram  R6 MOV iram,R7 iram  R7

MOV iram,@R0 86 iram  @R0 MOV iram,@R1 87 iram  @R1

06/08/2017

2

a8

2

a9

2

aa

2

ab

2

ac

2

ad

2

ae

2

af 2 2

MOV R0,iram R0  iram MOV R1,iram R1  iram MOV R2,iram R2  iram MOV R3,iram R3  iram MOV R4,iram R4  iram MOV R5,iram R5  iram MOV R6,iram R6  iram MOV R7,iram R7  iram

MOV @R0,iram a6 @R0  iram MOV @R1,iram a7 @R1  iram

Sintaxe Operações com dados de 8 bits e a IRAM

2

34

2

44

2

54

2

64

2

74

2

94

2

• • • •

ADD A,#data A  A add #data ADDC A,#data A  A addc #data ORL A,#data A  A orl #data ANL A,#data A  A anl #data XRL A,#data A  A xrl #data MOV A,#data A  #data SUBB A,#data A  A subb #data

2 2

MOV @R0,#data @R0  @R0 add #data MOV @R1,#data 77 @R1  @R0 add #data

76

1 1 1 1 1 1

2 2 2 2 2 2 2 2 2 2

208

INTEL® 8051

6

Sintaxe 24

1

INTEL® 8051

Operações com dados de 8 bits 2

1

06/08/2017

Sintaxe

MOV R0,#data R0  #data MOV R1, #data R1  #data MOV R2, #data R2  #data MOV R3, #data R3  #data MOV R4, #data R4  #data MOV R5, #data R5  #data MOV R6, #data R6  #data MOV R7, #data R7  #data

06/08/2017

07

1

6

INTEL® 8051

7b

06

1

Operações de movimentação na IRAM – endereçamento direto e indireto

6

7a

1

SUBB A,@R0 96 A  A subb @R0 SUBB A,@R1 97 A  A subb @R1

1

Sintaxe

06/08/2017

79

1

XLR @R0,A A  A xlr @R0 XLR @R1,A A  A xlr @R1

Operações com a IRAM – endereçamento direto ORL A,iram A  A orl iram ORL iram,A iram  iram orl A ANL A,iram A  A anl iram ANL iram,A iram  iram anl A XLR A,iram A  A xlr iram XLR iram,A iram  iram xlr A

78

67

• O endereço da Internal data RAM é fornecido por @R.206

205

• O segundo byte é o 8-bit address. • O endereço é fornecido no opcode.

42

66

1

1

ANL A,@R0 56 A  A anl @R0 ANL A,@R1 57 A  A anl @R1

1

1

1

ORL A,@R0 46 A  A orl @R0 ORL A,@R1 47 A  A orl @R1

INTEL® 8051

45

ADD A,@R0 A  A add @R0 ADD A,@R1 A  A add @R1

1

06/08/2017

6

INTEL® 8051

6

ORL iram,#data iram  iram orl #data ANL iram,#data iram  iram anl #data XRL iram,#data 63 iram  iram xrl #data MOV iram,#data 75 iram  #data

2

43

3

2

53

3

2 2

3 3

2 2 2

8-bit #data. 2-bit instruction. O segundo byte é o 8-bit #data. O valor é fornecido no opcode.

209

06/08/2017

• • • •

8-bit #data. 3-bit instruction. O segundo byte é o 8-bit address. O terceiro byte é o 8-bit #data.

210

06/08/2017

INTEL® 8051

6

Sintaxe Operações com dados de 8 bits e a IRAM 01 AJMP page0

2

11 ACALL page0

2

AJMP page1

2

ACALL page1

2

AJMP page2

2

ACALL page2

2

AJMP page3

2

ACALL page3

2

AJMP page4

2

ACALL page4

2

AJMP page5

2

ACALL page5

2

AJMP page6

2

ACALL page6

2

AJMP page7

2

31 51 71 91 b1 d1 f1

ACALL page7

2

21 41 61 81 a1 b1 c1

06/08/2017

211