apostila curso proramação de dispositivos

228

Upload: apagina

Post on 15-Oct-2014

2.274 views

Category:

Documents


51 download

TRANSCRIPT

Page 1: apostila curso proramação de dispositivos

Page 2: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 2

!

" #

$

" %&'

Page 3: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 3

( %&)))

Mas o PC estava só, entao criou-se a Serial e a Paralela

E ELE viu que era bom...

Page 4: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 4

Entao veioAQUELE homemcom suasjanelas…

A interface USB se tornou padrao… E um periodo de trevas se sucedeu.

Page 5: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 5

E vendo o sofrimentos dos programadores, a Microchip disse:

- Que haja o PIC USB!

E tudo se clareou!

Page 6: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 6

"* + ,- - , " .

& "# & / 0 1 0 $ - 2

3%&45-6778 %&2 39 -,:3+

-

Page 7: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 7

#+;)))

,* & # 3 ( &

4<<5, 4)4 =888, =)8

Page 8: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 8

+>>))* ?2@?2A

(B ) +>>))*>>> C4D788 % 0.:E* ;?2

%2@%2A

(

-@,-A

0 %

*) FC4D788

Page 9: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 9

"* + ,- - , 0+

& "# & / 0 1 0 $ - 2

3%&45-6778 %&2 39 -,:3+

-

Page 10: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 10

Computador é

ótimo:

Poder de processamento!

Análise de Dados,Log de dados,

Updates de firmware,

Diagnóstico

• Auto detecção & configuração (Plug&Play)• Fácil expansão usando hubs• Alimentação pelo barramento (100mA ou

500mA @ 5V

• Três velocidades :Low- 1.5, Full- 12, High- 480 Megabits/segundo

SerialParalela

PS/2

Aplicação embarcada

Page 11: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 11

& :?

1394-Fire Wire

1Gb1Gb480Mb/s480Mb/s100Mb/s100Mb/s12Mb/s12Mb/s1.5Mb/s1.5Mb/s1Mb/s1Mb/s500Kb/s500Kb/s

Ethernet

Porta Serial

LS-USB1.5 Mb/s

FS-USB12 Mb/s

HS-USB480 Mb/s

USB 1.1

USB 2.0

Porta Paralela

WiFi (b/g)

CAN

Não precisa suportar High Speed para ter

conformidade com USB 2.0

Page 12: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 12

3 3

3

-"0 !"# $

%"&

'"&

()*

+,-.

/012

Page 13: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 13

%;G3 3

30 34562

-"0 !"#),), 7

1 5,H 48

I588H>*

Page 14: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 14

%&+ ?

PIC18F4550

Full-Speed & Low-Speed

PIC16C7X5

Somente Low-Speed

Page 15: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 15

"* + ,- - , 0+

& "# & / 0 1 0 $ - 2

3%&45-6778 %&2 39 -,:3+

-

Page 16: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 16

"+Controlador USB Host

& Hub Raiz

HubHub

HubHub

HubHub

HubHub

HubHub

Falantes

Logger de dados

AnalisadorLógico

HubHubAté 126 periféricos...

Teclado

Hub: Máximo em cadeia= 5

As MCUs PICmicro® com USB são periféricos!

Page 17: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 17

& *J*%+

Joystick

Mouse Hard Drive Externo

ICD2

Drive DVD ExternoData Glove

Teclado

Modem

Adaptador Ethernet

Classe Human Interface Device (HID)

Classe Mass Storage Device (MSD)

Classe Communication Device (CDC)

Classe Custom(Vendor Class)

Muito mais classes….

Page 18: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 18

%+H

& (KL@(KLA "

6)68, 7)=7? M 488" (3 G788"3 G .

* )

~ 5.0 V

~ 3.3 V

Deve usar alimentação externa

se mais for necessário.

VBUS

D+

D-

GND

VBUS

D+

D-

GND

Page 19: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 19

% "

"BG .=)7"

( Cabo de

alimentaçãoda USB

VD D

Page 20: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 20

%% *

"BG .=)7"

- Cabo de

alimentaçãoda USB

VD D

Page 21: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 21

Conector “mini-B”FS, HS Peripheral

Conector “B”FS, HS Peripheral

&Conector “A”

USB Host

Periférico LS

Direto no caboou

conector “custom”

Page 22: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 22

"* + ,- - , 0+

& "# & / 0 1 0 $ - 2

3%&45-6778 %&2 39 -,:3+

-

Page 23: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 23

%)*%)*

8 &8 &9)*:9)*:

Page 24: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 24

""# 6B 1

& 2 & * G

00 1 2

Latencies Garantida Integridade dos Dados Garantida

InterruptInterruptInterrupt

BulkBulkBulk

IsochronousIsochronousIsochronous

Page 25: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 25

G0 1

Mouse FalantesImpressora

Control+

Interrupt

Control+

Bulk

Control+

Isochronous

Page 26: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 26

0 G 0 1 0; 3BG 0; %

24

832

0.864

1216

1023

0

200

400

600

800

1000

1200

1400

KByte/s

Control Interrupt Bulk Iso

Tipo de transferencia

LowFull

Page 27: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 27

%&+ 00 1

PIC18F4550 e familia

Control, Interrupt, Bulk, Isochronous

PIC16C7X5

Somente Control e Interrupt

Page 28: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 28

8;%":

Page 29: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 29

.

RAMEndpoint 1 OUT

RAMEndpoint 1 IN

3BG!/ 3BG!/ 4N0O4N(IP=4N0O4N(IP= %&45-6778 .P=%&45-6778 .P=

%8I& & % %8I& & %

“Reservatório” deDados

TransaçãoLED

Teclas

Page 30: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 30

0

Específica:• O endereço do dispositivo

alvo• O número Endpoint• A direção da transferência

!" #

Page 31: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 31

0 , (

!"

$

O dispositivo alvo retorna dados iguais ou menores que o tamanho do endpoint especificado no descriptor

Um signal especial indica o fim do pacote (EOP)

Page 32: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 32

0 , (

!"

$

%

Acknowledge - ACK

Page 33: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 33

G )))

1. Eu quero RECEBER dados. [IN]

2. Aqui estão os DADOS.[0x30,0x43,0x48,0x35]

3. Pequei! [ACK]

Page 34: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 34

0 , 0: 0%

$

%

Page 35: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 35

0 ,0 1 +

$

%

A transferência isocrona não garante a integridade dos dados. Então não há o pacote de handshake.

Page 36: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 36

%&+ 00Q

SETUP

OUT

IN

Page 37: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 37

- 4

<=7>$

<7 &? 7 @.A

87 .A#

B7 '9

SOF

1 ms 1 ms 1 ms

SOF SOFIntEP1

BulkEP2

BulkEP2

IntEP1

IntEP1

BulkEP2

Start Of Frame

Page 38: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 38

"* + ,- - , 0+

& "# & / 0 1 0 $ - 2

3%&45-6778 %&2 39 -,:3+

-

Page 39: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 39

%$$CD<$?<EF

G%),?

G8$),

Page 40: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 40

!& ' ( ) * + + ,!& ' ( ) * + + ,!& ' ( ) * + + ,!& ' ( ) * + + ,

",2-,

- + .

$-

$/

0 " $

&

$ 1 $ 1 $ 1 $ 1

.... 2 32 .2 32 .2 32 .2 32 .Identificação Full Speed:

pull-up na linha D+' 3+ Ω4+ 5

Page 41: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 41

!& ' ( ) * + + ,!& ' ( ) * + + ,!& ' ( ) * + + ,!& ' ( ) * + + ,

",2E,

- + .

$-

$/

0 " $

Identificação Low Speed:pull-up na linha D-

' 3+ Ω4+ 5

$ 1 $ 1 $ 1 $ 1

.... 2 32 .2 32 .2 32 .2 32 .

&

Page 42: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 42

!& ' ( ) * + + ,!& ' ( ) * + + ,!& ' ( ) * + + ,!& ' ( ) * + + ,

(RK%,R

- + .

$-

$/

0 " $

Transceiver

VUSB 3.3 V

Resistores de Pull-up internos!

Controle pelo UCFG<UPUEN> & UCFG<FSEN>

$ 1 $ 1 $ 1 $ 1

&

Page 43: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 43

%&' 3&2* " +

Cabo deAlimentação

USB

VD D

I/O

Alimentaçãoseparada

Se o dispositivo tiver alimentação separada, DEVE-SE usar um pino de I/O para detectar a conexão do cabo.

Isso é necessário para habilitar/desabilitar o modulo USB e

não permitir que os resistores de pull-up de D+/D- fiquem ativos antes da

conexão do cabo, conforme requerido na especificação USB 2.0 - 7.1.5

Page 44: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 44

8

HI8@ .

OutrosEndpoints

Endpoint 0 IN(Control Data)

Endpoint 0 OUT(Control Data)

Dual-Port RamPIC18F4550

Descriptors

Control Transfer

Bus Reset Set Address Get Descriptor

Set Configuration

Device Ready

Page 45: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 45

2

Device

Configuration 1

Interface 0

Endpoint

Interface 1

Endpoint Endpoint Endpoint

P/ outras Configurations se houverem

P/ outras interface se houverem

String 0

String 1

String N

2 J ; B)(%&45-6778D J ; +)

Page 46: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 46

Vamos USB!

MCHP

G 2

Device

Configuration 1

Interface 0

Endpoint

String 0

String 1

USB 2.0, VID = 0x04D8,PID = 0x0007, 1 Configuration, String 0

Configuration #1, Bus-Powered,100mA, 1 Interface

Interface #0, String 1

Endpoint 1 IN, Interrupt Transfer Type, 64-byte buffer, Poll every 10 ms

Characteres Unicode

Page 47: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 47

"* + ,- - , 0+

& "# & / 0 1 0 $ - 2

3%&45-6778 %&2 39 -,:3+

-

Page 48: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 48

- / %&45-6778

K"3 =SH ( # .4SH

%K3 =7NH

653J, 4=3% % &2=2

@66A

28-Pin 40/44-Pin

32 KB PIC18F2550 PIC18F4550 24 KB PIC18F2455 PIC18F4455

16 KB PIC18F2450 PIC18F4450

=)8-, 0* T + - + =&9>%9D "K0 "2&48, 4G &&%O4G&&% - G 0

=)8, 7)7? UIP)P?#

Page 49: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 49

PIC18F4550

D+/D-

3;Placa do dispositivo tipo periférico

SIE

Program MemoryUSB RAM

Control Registers

Data RAMTransceiver

Regulador de3.3 V

Interface p/ Transceiver Externo

Streaming Parallel Port (DMA)

Bus Pull-Up Resistors

Page 50: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 50

PIC18F4550

D+/D-

*

SIE

Transceiver

SIE ... Serializa e deserializa os

dados USB Codifica e decodifica dados

em NRZI Controla o bit stuffing Verifica o CRC p/ validar os

pacotes de dados Detecta eventos o

barramento e notifica a CPU atraves de interrupções

Controla as transações USB Controla o protocolo de

handshaking

Program MemoryUSB RAM

Control Registers

Data RAM

Page 51: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 51

* J 3; 2

48=6H K"32 ,%

000h

Dados da USB ouDados do Usuário

Não usado

SFRs

3FFh

400h

7FFh

F60h

FFFh

Dados do Usuário

2048 bytes de RAM Total

Mecanismo de semáforo de 1-bit SIE v.s. CPU

48=6H K"3*

Page 52: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 52

&Q

Necessário p/ USB

SIEFS: 48 MHzLS: 6 MHz

CPU

Page 53: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 53

PIC18F4550

G &* &Q

SIE

20 MHz EC Divide p/ 5 96 MHz PLL

Divide by 2

Divide p/ 2

PIC®

MCU Core

Aceita SOMENTE 4 MHz de Entrada!

SIE Clock = 48 MHz : Full-Speed Mode

48 MHz : 12 MIPs

Placa do dispositivo tipo periférico

Page 54: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 54

%&45-6778K

&=)8

,@4)73>A,@4=3>A

1 DDQD+

.P=

4SK"32 ,%>

0 **

K,> + 2O 2,

G

*% %@%%A> 1 *@6866A

Page 55: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 55

"* + ,- - , 0+

& "# & / 0 1 0 $ - 2

3%&45-6778 %&2 39 -,:3+

-

Page 56: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 56

Hardware - Dual Port Ram, USB SFRs

3+- Q

Mass Storage HIDCommunication

(RS-232 Emulation)

User Application

SD Disk (SPI)

File System (FAT)

USB Driver & Chapter 9 Firmware

Secure Digital Card

2( T3+ 2( T3+

Page 57: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 57

& / 3+-

& /&45 2%3%E"' 2 # * 3,0 Q* @

# A 3; %*

2:& <, =S 2 4S &2&@ K,=P=A 4S 3 * 6S

Page 58: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 58

M -

_output autofiles

hid msd cdc

class usb9

usb

FAT

filesys

SD CF

disks

system user

Project Root Directory

Page 59: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 59

"

USB Firmware

Auto Generated

Fixed Firmware

Microchip USB Wizard Program

User Firmware

HEX

Compile & Link

PIC18F4550

Program

Page 60: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 60

3 Q*& Loop Principal

Task A

900 us Task A.3 - 300 us

Task B - 100 us

Task A.2 - 400 us

Task A.1 - 200 us

Max Loop Time1000 us vs. 500 us

Máquina de estados

Page 61: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 61

8I

Page 62: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 62

)& 2&

EP15

PIC18F4550

Control Transfer(SETUP,OUT, IN)

...

EP1

EP0

InterruptBulk

Isochronous(OUT, IN)

Chapter9

Device Class

UserApplication

Page 63: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 63

# V

2 &2& K,=P= M % 32

))V

Page 64: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 64

2@2A

PC ComputerPIC®

Cabo USB

HID AppHID\Mouse Drivers Padrão do Windows

Considerações de projeto:Considerações de projeto: 64 KB/s max64 KB/s max Transferências Tipo Interrupt Transferências Tipo Interrupt Driver Padrão do WindowsDriver Padrão do Windows So aplicações PC “custom” podem acessar os So aplicações PC “custom” podem acessar os dados do HID através das APIs Win32dados do HID através das APIs Win32

Page 65: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 65

&2&, K,=P=

PC ComputerPIC®

Cabo USB

Hyper TerminalCDC

Precisa do Arquivo INF

Drivers Padrão do Windows

Considerações de projeto:Considerações de projeto: ~80 KB/s max~80 KB/s max Funciona bem no XP, desempenho limitado no Funciona bem no XP, desempenho limitado no 2000 e sem suporte para o 98 (no USB.org tem 2000 e sem suporte para o 98 (no USB.org tem algums drives)algums drives) Aplicativos PC podem acessar o dispositivo como Aplicativos PC podem acessar o dispositivo como se estivesse conectado a uma porta serial.se estivesse conectado a uma porta serial.

Page 66: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 66

& +*

HyperTerminal

Driver da UART

Hardware UART

Hardware UART

APIs da UART

Aplicação em Firmware

RS-232

HyperTerminal

Driver da UART

Hardware USB

Hardware USB

APIs USB UART

Aplicação em Firmware

USB

Driver CDC

PIC18F4550

Page 67: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 67

2 T=888T'W%

&2& #) ) D J T)

.B #) G)

G #);X&2&K,=P= K%Y J ;Z U[[&2&[

"B,D#, ?2%2 D # # $ )# )

Page 68: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 68

"% &2&

void putrsUSBUSART(const rom char *data);

void putsUSBUSART(char *data);

void mUSBUSARTTxRom(rom byte *pData, byte len);

void mUSBUSARTTxRam(byte *pData, byte len);

byte getsUSBUSART(char *buffer, byte len);

byte mCDCGetRxLength(void);

Page 69: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 69

2 $ "%

?1 + # V

J K3K"3V

"* . @ 8G88AV

Page 70: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 70

G-G%*

Reset main InitializeSystem

MainLoop

user.cExercise_01();Exercise_02();

USBTasks()

ProcessIO()

main.cUSBDriverService();

CDCTxService();…

Multitasking Cooperativo!!

SEM funções bloqueadoras.

Use máquinas de estado.

Page 71: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 71

"%> :K3

void putrsUSBUSART(const rom char *data);

void putsUSBUSART(char *data);

void mUSBUSARTTxRom(rom byte *pData, byte len);

void mUSBUSARTTxRam(byte *pData, byte len);

byte getsUSBUSART(char *buffer, byte len);

byte mCDCGetRxLength(void);

Use ‘putrs’ p/ literal e dados em ROM

Examplo de Uso :putrsUSBUSART(“Hello”);

ouputrsUSBUSART(welcome);

onderom char welcome[]=(“Bye”);

Page 72: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 72

G4 void Exercise_01(void)

if(Switch2IsPressed())

if(mUSBUSARTIsTxTrfReady())

putrsUSBUSART(“Hello World!\r\n”);

Page 73: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 73

G/=)= K3

/),Exercise_02()

/"=$),9"$+=$DJ.K$F<89&"L

)*M7

– BOOL Switch3IsPressed(void);

– BOOL mUSBUSARTIsTxTrfReady(void) 7putrsUSBUSART(…)

Page 74: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 74

G= K3rom const ex02_string “USB e Microchip”;...void Exercise_02(void)

if(Switch3IsPressed())

if(mUSBUSARTIsTxTrfReady())

putrsUSBUSART(ex02_string);

Page 75: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 75

"%>

void putrsUSBUSART(const rom char *data);

void putsUSBUSART(char *data);

void mUSBUSARTTxRom(rom byte *pData, byte len);

void mUSBUSARTTxRam(byte *pData, byte len);

byte getsUSBUSART(char *buffer, byte len);

byte mCDCGetRxLength(void);

len = número de dados esperados

buffer = ponteiro para o buffer de tamanho >= a len

getsUSBUSART retorna o número de bytes copiados para o buffer

Page 76: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 76

G/=)PK

/),Exercise_03()

/"=$),9N 3/%%19$G8 OP.JL

)*M?"C"7

– input_buffer[];

– mLED_4_Toggle();

7getsUSBUSART(…)

Page 77: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 77

GP void Exercise_03(void)

if(getsUSBUSART(input_buffer, 1))

if(input_buffer[0] == ‘1’)

mLED_4_Toggle();

Page 78: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 78

"% +

void putrsUSBUSART(const rom char *data);

void putsUSBUSART(char *data);

void mUSBUSARTTxRom(rom byte *pData, byte len);

void mUSBUSARTTxRam(byte *pData, byte len);

byte getsUSBUSART(char *buffer, byte len);

byte mCDCGetRxLength(void);

Use mUSBUSARTTxRom p/ dados armazendado na memória de

programa

Use mUSBUSARTTxRam p/ dados armazendado na memória de dados

255-bytes no máximo

Page 79: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 79

G=)6*,

G#&Exercise_01() ProcessIO()

/),Exercise_04() /"=$),9"$1E7.JL.#.JL#.JL#.JLL9&"

)*M?"C"7– Switch2IsPressed();– BOOL mUSBUSARTIsTxTrfReady(void)– output_buffer[]; .7mUSBUSARTTxRam(…)

Page 80: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 80

G6 @8G88A

void Exercise_04(void)

if(Switch2IsPressed())

if(mUSBUSARTIsTxTrfReady())

output_buffer[0]=0x30;output_buffer[1]=0x31;output_buffer[2]=0x32;output_buffer[3]=0x33;mUSBUSARTTxRam((byte*)output_buffer,4);

Page 81: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 81

"% K"3

void putrsUSBUSART(const rom char *data);

void putsUSBUSART(char *data);

void mUSBUSARTTxRom(rom byte *pData, byte len);

void mUSBUSARTTxRam(byte *pData, byte len);

byte getsUSBUSART(char *buffer, byte len);

byte mCDCGetRxLength(void);

Use ‘puts’ para dados na RAM

Exemplo de Uso : putsUSBUSART(output_buffer);

ondechar output_buffer[]=(“Microchip”);

Page 82: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 82

G/=)72 0

/),Exercise_05()

'$"G(Q!9$""

$)*Exercise_05()

• Use mUSBUSARTIsTxTrfReady()

• Use putsUSBUSART(...)

Page 83: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 83

#B ;*V

Ele não verifica:if(mUSBUSARTIsTxTrfReady())

void Exercise_XX(void)

putrsUSBUSART(“Hello World!”);

Page 84: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 84

#B ;*V

Resposta:Função

bloqueadora! Não é boa para

multitasking cooperativo.

CDCTxService() em USBTasks() nunca será chamada, e

cdc_trf_state nunca será atualizado.

O Programa irá travar em um loop.

Lembre-se, use uma máquina de

estados!

void Exercise_XX(void)

while(!mUSBUSARTIsTxTrfReady());

putrsUSBUSART(“Hello World!”);

Page 85: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 85

G7void Exercise_05(void)

static word ex05_count;

if(ex05_count == 0)

AcquireTemperature();

UpdateCelsiusASCII();

if(mUSBUSARTIsTxTrfReady())

putsUSBUSART(tempString);

ex05_count = 10000;

else

ex05_count--;

//end Exercise_05

Page 86: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 86

\

]] &2&]0W]K "2 &2&]0W]^ &2&]0W] ]LE% &2&]0W]&3%E 0(M

_ + "%# +D, #]] II&2&]0W]K "2

– BOOL mUSBUSARTIsTxTrfReady(void);

Returna ‘1’ quando o estado é CDC_TX_READY

Page 87: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 87

" G/

H

01.2R5.2E

C9(LG(Q

/),,!" 49,B

&&B&4

=<$7-L2

GS GS@07$$G (LG(Q4& <84

Page 88: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 88

3 *2@32A

PC ComputerPIC®

Cabo USB

Windows ExplorerMSD Drivers Padrão do Windows

Considerações de projeto :Considerações de projeto : Funciona como um disk driveFunciona como um disk drive Rápida transferência de dados através da USBRápida transferência de dados através da USB Velocidade é limitada dependendo do tipo de Velocidade é limitada dependendo do tipo de

midia físicamidia física Para se utilizável, O sistema de arquivos deve se Para se utilizável, O sistema de arquivos deve se implementado em firmwareimplementado em firmware

Page 89: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 89

0/ " 32

Seu Aplicativo

Abrir, Salvar, Ler, Escrever, Deletar

File System

Driver USB Mass Storage

Driver USB Bus

Hardware USB Host

PIC18F4550USB Physical

Interface

USB Chapter 9 Firmware

Mass Storage Driver Firmware

Physical Disk Driver Firmware (Shared)

Seu Aplicativo

Secure Digital, Compact Flash,

etc.

File System Firmware

PC USB Peripheral

Page 90: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 90

2M %

PC ComputerPIC®

Cabo USB

MCHPUSB.sys

Somente Binário

MPUSBAPI.dll

Fonte e binário

Boot

DemoPDFSUSB.exe

Binary OnlyOther C++ Examples

Source and Binary

Considerações de projeto:Considerações de projeto: ~1,088 KB/s max~1,088 KB/s max Muito flexivelMuito flexivel Não é um driver padrão do WindowsNão é um driver padrão do Windows Programação no PC é necessáriaProgramação no PC é necessária

Page 91: apostila curso proramação de dispositivos

3%"%)2EE

Page 92: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 92

Host

Client Software

USB Host Controller/Hub

(Hardware)

Cabo USB

Dispositivousando

PIC18F4550

Host

3%"%)2EE

USB System Software

(USB Driver, Host Controller Driver)

Aplicações de usuários

Win32 Subsystem & DLLs de usuários

Software Cliente

Page 93: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 93

Host

Software Cliente

USB Host Controller/Hub

(Hardware)

Cabo USB

Dispositivo usando

PIC18F4550

Host

3%"%)2EE

USB System Software

(USB Driver, Host Controller Driver)

Aplicações de usuários

Win32 Subsystem & User DLLsMPUSBAPI.DLL

Page 94: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 94

, 3%"%)2EE

2EE, 2H EQE H &;* +)H

$ +)H %$ %

QD+ "$+

?&OOD&D?)( 0 )

Page 95: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 95

2EE

#. V XEQ *Y B XEQ *Y2\

XEQ *YE , XEQ *YK,

2EE

Page 96: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 96

2EE 2EE

2EE =

XEQ *YE ,0

XEQ *YK,0

Page 97: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 97

2EE 2EE

XEQ *YE ,0@ #)EA

_ 2EE. 2EE #)E.* )

_ # 2EE " - 2EE@"#)A

# " #)E #

%

Page 98: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 98

2EE 2EE

XEQ *YK,0 & + GD.# 2EE

* G TP="%

(0"(& E E H@E%&00K Aa & * 2EE ;

-"K%K&M%"@32E DE%&T0K Aa K

E-E H@32E Aa K ;

Page 99: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 99

3%"%)2EE

<< %H %S/),"

Q$"7

<$ TK%/H 8/8;GS>/

<+)* ' =$!

<""%M. @K DTDD&A

%!"$=7 [3&%-[%[3 [2[ ]&

8=$7 [3&%-[%[3 [2[ ]&[

Page 100: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 100

3%"%)2EE

%XQ Y ,, % XQ *Y ,

:K& % XQ *Y,

33E?><G &

Page 101: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 101

-$ 3%"%)2EE

Sete Funções simples

MPUSBOpen( .. )MPUSBClose( .. )

MPUSBReadInt( .. )MPUSBRead( .. )MPUSBWrite( .. )

VID & PID

MPUSBGetDeviceCount(..)

MPUSBGetDLLVersion( .. )

VID & PID

Page 102: apostila curso proramação de dispositivos

2 $ 3%"%)2EE

Page 103: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 103

Load-time Linking

Page 104: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 104

XEQ *YE , 3%"%)2EE

XQ Y3%"%)2EE ,+ 2EE

& 3%"%)2EE XQ *Y & &+ 2EEXQ Y@3%M2&A

Page 105: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 105

-$

2TK23%M2EE?@A 2EE ?

TK2@? A 3 ? ETK2@? A 3?

Page 106: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 106

-$

2TK23%M2&@%&"K?2]%2Aa

%2?2 "*

?2]%2 ?2:%2* ?

( %2:?2

Page 107: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 107

-$ "(2E 3%@2TK2 D>>

%&"K?2]%2D>>%&"K %D>>2TK22D>>2TK2KAa>>Z-U

+ H %K< % /< )

+ .,+ 2 ,

3%]K "2 3%]TK0

? (?"E2]"(2E ]?"E

Page 108: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 108

-$

3% ?2]%2

0 * - b]GGGG:]HHHHX GGGG. ?2 W" HHHH. %2 W"

% 0 * - b[[3&%] %Jb

(0" % 3%K @AD %

b[[3&%] %J]" (&b

Page 109: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 109

-$ 2TK23%K @ "(2E + D>>

%?22 D>>2TK2ED>>%2TK2E*+D>>2TK23Aa>>

E,(+ "*

,( 2 E*+ (!H E*+ (!H 3 %/ @HA

Page 110: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 110

-$

2TK23%T@"(2E + D>>%?22 D>>2TK2ED>>%2TK2E*+D>>2TK23Aa>>

,0 2 "*

,0 2 E (!H E*+ (!H 3 %/ @HA

Page 111: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 111

-$

2TK23%K @"(2E + D>>%?22 D>>2TK2ED>>%2TK2E*+D>>2TK23Aa>>

E,(+ " B+ 3%K @A#

"*

,( 2 @ HA E*+ (!H E*+ (!H 3 %/ @HA

Page 112: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 112

-$

E3%&@"(2E + Aa -+ + "*

,

Page 113: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 113

"* &

.%& % 0 2

" &+ 0 &+ 3%T

% K2 " &+ 3%K

-+ #

Page 114: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 114

0

# *

?# ? B

3%]&& D3%]-"E (?"E2]"(2E ]?"E ME @A

Page 115: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 115

ME "*;*

KKK](?"E2]"(2E KKK]"(2E ] - KKK]]% (2(M KKK]&& KKK]-E ](0]-(2 KKK]"&& ]2 ( 2 EQ

+>>))> H> ) VI> H>,>*> >H]])

Page 116: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 116

Run-time Linking

Page 117: apostila curso proramação de dispositivos

T3]2 ?& &"(M

Page 118: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 118

T

T.* (

#

M G

T3]&33"(2DT3]%"(0 T3]2 ?& &"(M

% $M

Page 119: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 119

2 $ TP="%

TP="%

H%, T3

K* c % "%K*& T(2&E"

& c % "%& T

3 *E

WinMainWinMain

Chama RegisterClassChama RegisterClass(Registra a (Registra a

Main Window Class ,Main Window Class ,Event Handler)Event Handler)

Chama CreateWindowChama CreateWindow(Cria a Main Window)(Cria a Main Window)

Recebe Messagem (OS Event)Recebe Messagem (OS Event)

Invoca o Event HandlerInvoca o Event Handler

Exit ApplicationExit Application

Page 120: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 120

, T%

2 * T3 * - XT%@AY. 3 T

%;EK E0&"EE"&ST%@T(2+TD**DTK2% DE(M% A

! 3 * "# /

3 *

Page 121: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 121

T3]2 ?& &"(M ( * >T T * . T<;TS%&T#$$#T'(%4<#3'S>< $ T ! T3]2 ?& &"(M " #

20]2 ?& "KK?"E 20]2 ?(2 ]&"(M 2 20]&(-M&"(M &"(& E 2 20]&(-M&"(M 2)))

% & #.

& &

Page 122: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 122

T3]2 ?& &"(M ( $

20]&(-M&"(M &"(& E 2 8G884< # * @Q

QA 20]&(-M&"(M 2

8G8845"* D QQ

20]&03 ? (0 8G588N J @A) T(06)8T<7 .

20]2 ?& "KK?"E 8G5888 /

/ *

Page 123: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 123

T3]2 ?& &"(M ( $

20]2 ?& _ K K 3? 8G5884d#

/ a# # * #

20]2 ?& _ K K 3? -"E 2 8G588= #

/ ) 20]2 ?& K 3? &3%E 0

8G5886 / ) 20]2 ?& K 3? % (2(M

8G588P / a#*

Page 124: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 124

T3]2 ?& &"(M (

20]2 ?& 0 % % &-& 8G5887

20]2 ?(2 ]&"(M 2 8G888e

T(06)8 T3><5><7 .

20]_ K &"(M &(-M

8G884eK#, * @QQA

20] K2 -( 2 8G----* *.

B

Page 125: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 125

G &

;* G &T3]2 ?& &"(M &OO%*

Page 126: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 126

G6, 2

WM_DEVICECHANGE

Page 127: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 127

3 $ #(-

$B3&%)(- f2Eg

h2 &K%0(hI2 D[?2]8625:%2]888D[?2]8625:%2]888&

f*g( -0IbT H b3-M("3 Ib3+0+*HD)b(02SIb3+0+*HD) 2b2 &K%0(Ib%&45-6778- H2b

Page 128: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 128

H

T

& &2 ?22

"#3&%) ?22J

"#(- ""% 3%"%)2EE. *

3&%) " $T

3%"%)2EE "3%"%)2EE

Page 129: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 129

3%"%)2EE K "%

(3%T+ 0

(3%K + (

3%TQ,0

3%K Q, (

3%T 0

3%K D3%K

,(

0,. BV

-$0 1

Page 130: apostila curso proramação de dispositivos

3 *

Page 131: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 131

"*

"& 3 * Q,H,0 @0A% 2* @2A& 048&& @%&,PD&,=A "0 +

Page 132: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 132

"*

"& 3 * Q,H,0 @0A% 2* @2A& 048&& @%&,PD&,=A "0 +

Page 133: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 133

"& 3 *

K3 * G;*

G;* & 3 *

Page 134: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 134

K 3 *

320 1 "#

Q,H0 & 1 )@& 2 A

&& E )

Page 135: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 135

K@&)A

Page 136: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 136

&% H& @%&A &Q& @&A

Page 137: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 137

&;*%

2, %

X 1 J Y

% & Q88+&+84+&+78+3&0

8=+, 6-+K74+, --+K

Page 138: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 138

&

2, &

X J & 3 *Y

& & Q84+K&8=+"0"%D33&,=8P+"0"%,0"% 86+-87+--,58e8-228N+&

8e+, --+K

Page 139: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 139

&;* G22

>i22i> ]2 ?]2&]I j J@]2 ?]2&AD>>0 +2

H 2&]2 ?D>>0@2A 8G8=88D>>( )

&2 8G88D>>& & 8G88D>> 8G88D>>% %8]--]L D>>0 + G

%8D *)+ 8G8625D>>?2 8G888<D>>%2 *

8G8884D>>% 8G84D>>3 *G 8G8=D>>%*G 8G88D>>2 *G 8G84>>(* ka

Device Descriptor

Page 140: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 140

&;* G&* 42

>i&* 42i> &-M84Ij >i&* 2i> J@]&-M]2&AD>>0 +

2&]&-MD>>0

@&*)A J@*84AD>>(

) 4D>>(

]2 -"E0l] E-D>>"D

]])+ 78D>>%

@=W"A

Device Descriptor

Configuration 1 Descriptor

Page 141: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 141

&;* G 2

>i 2i> J@](0-]2&AD>>0 +

2) 2&](0-D>>0

@ A 8D>>

=D >>(

32](0-D >>&

32](0-]&E"D>>

32]%K0&ED >>

% 8D>>G

*)

Device Descriptor

Configuration 1 Descriptor

Interface Descriptor

Page 142: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 142

&;* G 2

>i 2i>J@] %]2&AD2&] %D] %84](D]ESD32](] %]L D8G88D

J@] %]2&AD2&] %D] %84]0D]ESD32]0] %]L D8G88

ka

Device Descriptor

Configuration 1 Descriptor

Interface Descriptor

Endpoint Descriptor

Page 143: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 143

&;* G*2

jHE*+aH20Ha*f4gak888IjJ@888AD2&]0KD8G868<ka

jHE*+aH20Ha*f=7gak884IjJ@884AD2&]0KD

m3mDmmDmmDmmDmmDmmDm+mDmmDmmDmmDm0mDmmDmmDm+mDmmDmmDmmDmmDm*mDmHmDmmDmmDmmDmmDm)mka

jHE*+aH20Ha*f=5gak88=IjJ@88=AD2&]0KD

m3mDmmDmmDmmDmmDmmDm+mDmmDmmDmmDm3mDm mDmmDmmDmmDmmDmmDmmDmmDm mDm*mDmmDmmDm2mDmmDmmDmmDmmka

Page 144: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 144

"*

"& 3 * Q,H,0 @0A% 2* @2A& 048&& @%&,PD&,=A "0 +

Page 145: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 145

%QH0 @0A

K & / - %& D 0 1 , -G* %0 &;* G

Page 146: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 146

%QH0 @0A

K & / - %& D 0 1 , -G* %0 &;* G

Page 147: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 147

K

0* 0 1 0Q

& D %0Q@&A

D +

Page 148: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 148

K @&)A

& QT @&TA/)*

& T @&TA/<8 T

2 , N";

2 , N;<"

Page 149: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 149

%QH0 @0A

K & / - %& D 0 1 , -G* % %0 &;* G

Page 150: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 150

& / - @& ,#A

< +),%$C9;""#J7

S....& ....&&&

2 E*+G? K#K#0H

Page 151: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 151

& / - @& ,#A

M3 GE( '"SH

E...& ....&/&G&

2 E*+G? K#K#0H

Page 152: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 152

& / - @& ,#A

M3 GE'"03=$#3S.3S&

';+<),

Page 153: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 153

&;*G& K#

&+Q32K#@Aj

+@%Q)K#Aj

32]K 0]]]I32]32a2 %447@Aa>>)+@ %4) %0"EEII4Aj

%4) %0"EEI8a32 %@Aa

kK)0"EE-I8a

Qa M 0]3"W]E(

]]]I32]32a&02 )]Hf8gI3"W]E(a&)I4a)K I@*+ iA:&02 a] )]]I]K"3a Qa

k >>+@%Q)K#Ak

Page 154: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 154

%QH0 @0A

K & / - %& D 0 1 , -G* %0 &;* G

Page 155: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 155

%& D

Pronto

Transporte de comando(CBW)

Transporte de Status(CSW)

Dado para o Device

Dado ParaO Host

Page 156: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 156

%& D

Command Block Wrapper (CBW)

dCBWSignature

dCBWTag

dCBWDataTransferLength

bmCBWFlags

bCBWLUN

bCBWCBLength

CBWCB

Dir.

Page 157: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 157

%& D

'<8 TC),#;"""!Q BUQ&8 TJL E

'%"#$),G82&

8<8 T,IH#"$),3&

;),3& #("

Page 158: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 158

%& D2

'&JE ),

'=99N&$

'"99#$),

Dir.Dir.

Page 159: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 159

%& D2

Command Status Wrapper (CSW)

bCSWSignature

dCSWTag

dCSWDataResidue

bCSWStatus

Page 160: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 160

& ,2 , %

Q, % #G 4PH

G& &T

&T2 K

Status

Page 161: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 161

%QH0 @0A

K & / - %& D 0 1 , -G* %0 &;* G

Page 162: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 162

0 1 ,

&T?B*

&T?B*

Page 163: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 163

&;*G &T?

H? &T@Aj@@*&TE*+RI32]&T]L All

@*&T)&T* RI8G6P6=7P77AA

-"E a0K a

k

Page 164: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 164

&;*G&T*

H3 *&T@Aj

>iP&T&E*+ 8Di6&TE( 8i &T&E*+4 4Ni&T- *H 8i>@@*&T)&TE(ZI8G8A::

@*&T)&T&E*+ZI8G48A::@*&T)&T&E*+UI8G84A::@*&T)&T- *II8G88l*&T)&T- *II8G58AA0K a

-"E a

k

Page 165: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 165

%QH0 @0A

K & / - %& D 0 1 , -G* %0 &;* G

Page 166: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 166

-G* %0Comando

Cópia CBW paragblCBW

CBWé Valido?

CBWSignificativo?

Prepara CSWdCSWTag,

dCSWSignature

Dir. Bit=1?

Set MSD_State = MSD_DATA_IN

Decodifica e Processa “CBWCB”

MSDCommandHandler()

USBBufferReady(MSD_BD_OUT)

USBDriverService()

Return

Set MSD_State= MSD_DATA_OUT

A

A

Não

NãoNão

Sim

SimSim

Sim

Não

A

Page 167: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 167

"*

"& 3 * Q,H,0 @0A% 2* @2A& 048&& @%&,PD&,=A "0 +

Page 168: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 168

(2

0+* H+ + @b bAH+2& " +2M)0+ +2 ++H+2& " +2M)0+ , + )"H + H# +2& " D2MD2,P&EE&++ )

2 0+ + H 2& 2>" H b",b+ H HQ)(H H+2MD2,P&EE&+2& " H *D H* +*++2MD2,P&EE&D+2& " H+ D++ H)(* H D+ H +*++2MD2,P&EE&D+2& " H+ H)(+*++ * H+2MD+2,P&EE&+2& " H+ DQ,++ H+ H)

" 2

Page 169: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 169

& 3; 2& - V

2& % 2& & % + 23H& J

Page 170: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 170

2%

2& @ AK 2"2@ A

&32

2"0

Do Device para o Cartão

Do cartão para o Host

Operação (No Response) Operação(No Data)

Inicializado pelo start bit

Page 171: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 171

%%

% *2& 8&+ 832Q % %' /

DataOut

Clock

DataIn Chip Select (Logic Low)

Page 172: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 172

%%

%2 >& 5

& ,K ,2

Page 173: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 173

23H& &

23H& &

,,8G888G78QE*+

5& D8W- ,8G888G75TQ

,8G- 8G888G74K Q

,,8G888G64*

,,8G848G68 J &

2 0Q0G)

2 0QK)

KHH&&

Page 174: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 174

% +

Page 175: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 175

J 2&

& &+8 J "* Q @E A&Q@ A

0 >H K&K& & &+4 5& G

Page 176: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 176

2& -"0

3KD-"04D-"0=DK2HD n

Page 177: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 177

"*

"& 3 * Q,H,0 @0A% 2* @2A& 048&& @%&,PD&,=A "0 +

Page 178: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 178

%&,P &,=&

& %&,P&,=K 48T48K & H?H480K H#H

Page 179: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 179

&& 2

K 48 & K# )

Page 180: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 180

K 48

32& @Ajo+@*&T)&T&f8gAj K "2]48

32K @Aa Qa

ok>>+

Page 181: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 181

32K @A32K @Ajo

+@0 E*+)]U8Aj

0 E*+)],,a >>+ 4E" IK @E")]D@HiA:]f8gAaE")]OOa>> +GE"@ II? Aj])&T I8G88a >>])&T2 KIE&SE (]74=a>>+74=H

(G2 I@HiA:]f8ga+@])&T2 KU8A322 @Aa>>+ ])&T2 KI8G8a >>Gkj

])&T I8G84a >> 8G84K *p45>>0 >i2m H i>])&T2 KI8G8a

Qa >> Q+ok

Page 182: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 182

&& 2

T48 & )

Page 183: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 183

T48

32& @Ajo+@*&T)&T&f8gAj TK0 ]48

32T @Aa Qa

o k>>+

Page 184: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 184

32T @A

32T @Ajo)

+@0 E*+)]U8Aj])&T2 KIE&SE (]74=a>iK 74=]i>+@])&T2 KU8A

322 @Aa@T%@AAj

*2 )SHI](0]K "2 a*2 )"&I"&]TK0 ]%K0 &0 2a*2 )"&_I"&_]TK0 ]%K0 &0 2a])&T I8G84a

kj IT@@E")]AD

@HiA:]f8gAak

ok

Page 185: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 185

"*

"& 3 * Q,H,0 @0A% 2* @2A& 048&& @%&,PD&,=A "0 +

Page 186: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 186

"0 +

32)&2&"K2)& * J 3; 32 32- Q

Page 187: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 187

32)&

Page 188: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 188

2&"K2)&

Page 189: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 189

* J 3;

ACCESSBANK NAME=accessram START=0x0 END=0x5FDATABANK NAME=gpr0 START=0x60 END=0xFFDATABANK NAME=gpr1 START=0x100 END=0x1FFDATABANK NAME=gpr2 START=0x200 END=0x2FFDATABANK NAME=gpr3 START=0x300 END=0x3FF

DATABANK NAME=usb4 START=0x400 END=0x4FF PROTECTEDDATABANK NAME=usb5 START=0x500 END=0x5FF PROTECTED// Combine usb6 and usb7 banks to define a 512 byte msd bank ...............................//DATABANK NAME=usb6 START=0x600 END=0x6FF PROTECTED//DATABANK NAME=usb7 START=0x700 END=0x7FF PROTECTEDDATABANK NAME=msd START=0x600 END=0x7FF PROTECTED

3 EQ

Page 190: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 190

32

#if defined(USB_USE_MSD)volatile far USB_MSD_CBW msd_cbw;volatile far USB_MSD_CSW msd_csw;#pragma udata myMSD=0x600volatile far char msd_buffer[512];#endif

))[32[H[[ )

Page 191: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 191

""#

InitializeSystem()while(1)

main.c

USBDriverService()

usbdrv.c

USBCtrlEPService()

usbctrltrf.c

usbdsc.c

USBCheckStdRequest()

USBStdSetCfgHandler()

usb9.c

MSDInitEP()USBCheckMSDRequest()

SDCardInit()ProcessIO()

MSDCommandHandler()

MSDReadHandler()

MSDWriteHandler()

MSDReadCapacityHandler()

msd.c

SocketInitialize()MediaInitialize()

SECTORread()

SECTORwrite()

CSDread()

sdcard.c

Page 192: apostila curso proramação de dispositivos

- / -

Page 193: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 193

%&45-6778:%&4N&eW7K /

Features 18F4550 16C7X5 On-chip USB XCVR & Voltage

Regulator Yes Yes

USB Dual-Port RAM 1-Kbyte 64-byte

USB Speed Low & Full Low

On-chip Pull-up Resistors Yes No

External XCVR Interface Yes No

Streaming Parallel Port Yes No

System Clock Flexible Fixed

Endpoints 32 6

Flash Yes No

USB Transfer Types Control,

Interrupt, Bulk, Isochronous

Control, Interrupt

Pins Compatible? Yes

Page 194: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 194

PIC16C765PIC16C765LS 1.1LS 1.1

%&' 3&K

PIC16C745PIC16C745LS 1.1LS 1.1

2828 40/4440/44 6464 8080

PIC18F4550PIC18F4550FS 2.0FS 2.0

PIC18F66J50PIC18F66J50FS 2.0FS 2.0

PIC18F67J50PIC18F67J50FS 2.0FS 2.0

32K32K

16K16K

128K128K

In productionIn production

In developmentIn development

PIC18F87J50PIC18F87J50FS 2.0FS 2.0

64K64K

24K24K

PIC18F2550PIC18F2550FS 2.0FS 2.0

PIC18F2455PIC18F2455FS 2.0FS 2.0

PIC18F4455PIC18F4455FS 2.0FS 2.0

PIC18F86J50PIC18F86J50FS 2.0FS 2.0

pinpin

PIC18F2450PIC18F2450FS 2.0FS 2.0

PIC18F4450PIC18F4450FS 2.0FS 2.0

ConceptConcept ConceptConcept

ConceptConcept

Page 195: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 195

%&2 3032 -,

%&45-6778D=83J- % % %& 92 *+

&

%&45-6778D=83J- % % %& 92 *+

&

%E 2 % 0

%E 2 % 0

Page 196: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 196

%& 92 *+ 233&

Interface para cartão Secure Digital - usa SPI AC164122 AN1003: USB Mass Storage

Page 197: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 197

%

Page 198: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 198

K

22- +>>))*>+> +>>)+)>) VI48=

? )+)> 2*&U&HU "(<78@A"(<7N@&2&A"(488P@32A

&P Hc "G

+>>)H*)*>+> +>>))>)+

Page 199: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 199

K1

&;* 3%"%)2EE +>>)) +>>)+) +>>)+) +>>))

Page 200: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 200

%* V

Page 201: apostila curso proramação de dispositivos

"#3 * R

Page 202: apostila curso proramação de dispositivos

"1"1

Page 203: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 203

& (KL

Idle 0 1 1 0 1 0 1

NRZI

DFRS8&$"

D.FR8&$"

DFRS8&$"

D.FR8&$"

0 1 1 1 1 1 1 0

Bit Stuffing: Every six consecutive “1”, a “0” is inserted - This ensure adequate signal

transitions

Page 204: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 204

E +

'&N"4

Q&RQ&J

Low Speed

Full Speed

Control 8Interrupt <= 8Control 8, 16, 32, 64Interrupt <= 64Bulk 8, 16, 32, 64Isochronous <= 1023

Tipo de Transfer. Max tam. Bytes

Page 205: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 205

0 1 &

0 1 &! $)G. G)

Transação USB

SETUP Token Packet Data Packet Handshake Packet

Transação USB

IN Token Packet Data Packet Handshake Packet

Transação USB

OUT Token Packet Handshake PacketZero Data Packet

Setup

Data(Read)

Status

EtapasControl Transfer

Page 206: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 206

&0

SETUP Token Packet Data Packet Handshake Packet

IN Token Packet Data Packet Handshake Packet

OUT Token Packet Handshake Packet

O dado nesta etapa é uma mensagem USB de formato requisitando que o device faça uma certa tarefa USB como Set Device Address, Get Descriptor, etc.

USB Transaction

USB Transaction

USB Transaction

Zero Data Packet

Setup

Data(Read)

Status

Control TransferStages

Page 207: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 207

&0

SETUP Token Packet Data Packet Handshake Packet

IN Token Packet Data Packet Handshake Packet

OUT Token Packet Handshake Packet

Se for requisitado um Get Descriptor, os dados nesta etapa devem ser o descriptors do device.

USB Transaction

USB Transaction

USB Transaction

Zero Data Packet

Setup

Data(Read)

Status

Control TransferStages

Page 208: apostila curso proramação de dispositivos

"1222EE

Page 209: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 209

22**

&+ 22QH+T

3&0

* - K&0 K "*3qE

2

Page 210: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 210

%(, % +

% +0+3%"%)2EE+ +H ++H

Page 211: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 211

%( 3%"%)E

0+3%"%)E H &OO

0+?&OO Q* & 2EE3%"%)2EE

?&OO "+3%"%)2EE+

3 Q *H + )E )2EE

Page 212: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 212

" %3%"%)E

3%"%)2EE. ] ?N)8?)( 0

% ?N)8 XKY 2EE +

]

Page 213: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 213

& 2

& .* D

"& 2 2&

G, 2D&2&D32)) &&

3+M2

2& @& 2A # # ## .+ & 2

Page 214: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 214

TK*H

2 J $/ #(-K*T

$ J *

"* +K* $ S ]E&"E]3"&( [ [ S ]E&"E]3"&( [H[&&[

[&

? J .! %& !'(%&

Page 215: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 215

?$

( & 2

"* J 2&

,- $ 2&

B #- & 2 Q $

Page 216: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 216

3+M %22

& #. $

&E #.B3+22

& &.;*&0E "%TP=2&@A

"G 3&%-]) W # * + &[3&%-[%[3&%2[K

Page 217: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 217

3&%)(-

3&%)(- & +

T #(- 23 * #(-

#(-

% $

% J $ #

"#(-G @3&%)(-A

Page 218: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 218

& "

% " &@3 ,U%* ,U &OO

,U&OONA 0-,U(,U+ &TJ &#Q H &OOK &+Q Q

H% &#SD #&OO. "@XTRYA @A

Page 219: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 219

& " T

% " &@3 ,U%* ,U &OO

,U&OONA 0-,U( . " D1#

"3 *G@8DYYD8D8Aa G &# #

Page 220: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 220

&OO

?&OO? &. ?&OOD?

3 0P

2EE . "%TP= ? 1 2 &E"K

$2EE

Page 221: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 221

2H EQE

#1. E H@V XEQ *Y B XEQ *Y2\

XEQ *YE , XEQ *YK,

Page 222: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 222

XEQ *Y B

#.XEQ *Y B & V

E XQ Y XQ *Y*

LinkerLinker

LibraryLibrary

LibraryLibrary

Arquivos Arquivos ObjetoObjeto

Arquivo Arquivo EXEEXE

Page 223: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 223

XEQ *Y B

2 * + " $# 2 2 ;* ;

_ G ! \ , .

Page 224: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 224

XEQ *Y2\

XQ *YB

E XQ YG

LinkerLinker(Copies only (Copies only the reference the reference information information into the EXE)into the EXE)

EXE FileEXE File

LibraryLibrary

LibraryLibrary

Object Object FilesFiles

Page 225: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 225

XEQ *Y2\

/ " J D

+J XQ *YB

" ; ;

&J +J ; /

3 J /

Page 226: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 226

XEQ *Y2\ :2EE

2EE, E #XQ Y G+ 2H EQE

"G 2H EQE T.2EE

Page 227: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 227

2EE

%33,""""T4 8 #H8VV

%33 /J!"E 9"%/J),!J

WI%33,H8VV# 8 9"%/,

Page 228: apostila curso proramação de dispositivos

© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 228

0 Q

0+3+ *D +3+*D "D %&D SE#D 2D3%E"D%&D %&D%&0"K0D%K3"0 D % D %& + * Q 3+0+*H + ))") +)

"E D -E D 3* 3HD3W2 ?D3WE"D ?"ED 0+ && H * Q 3+0+*H + ))")

" *,,+,2* "*D " 3 D %&2 3D %&2 3)D %&QD &"(D &(3(0KD - D -GK3D JJHE"D,& %* *D&%D& %&DE "0+D 3D 3TD3%"3D3%ED3%E(SD3%3D %&QD%&2 3D%&2 3)D%&E"D %& D %& D%D %3 D %0DK "E& D E"D %&2 3D 3D D 0D0 D(>D TEQ L (" Q 3+0+*H + ))") +)

_0% Q3+0+*H + ))")

"+ Q+ H+ )