apostila curso proramação de dispositivos
Transcript of apostila curso proramação de dispositivos
![Page 1: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/1.jpg)
![Page 2: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/2.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 2
!
" #
$
" %&'
![Page 3: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/3.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/4.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/5.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/6.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/7.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/8.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/9.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/10.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/11.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/12.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/13.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/14.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/15.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/16.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/17.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/18.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/19.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/20.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/21.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/22.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/23.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/24.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/25.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/26.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/27.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/28.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 28
8;%":
![Page 29: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/29.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/30.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/31.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/32.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 32
0 , (
!"
$
%
Acknowledge - ACK
![Page 33: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/33.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/34.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 34
0 , 0: 0%
$
%
![Page 35: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/35.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/36.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/37.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/38.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/39.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/40.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/41.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/42.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/43.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/44.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/45.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/46.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/47.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/48.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/49.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/50.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/51.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/52.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/53.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/54.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/55.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/56.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/57.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/58.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/59.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/60.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/61.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 61
8I
![Page 62: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/62.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/63.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/64.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/65.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/66.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/67.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/68.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/69.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/70.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/71.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/72.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/73.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/74.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/75.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/76.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/77.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/78.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/79.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/80.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/81.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/82.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/83.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/84.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/85.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/86.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/87.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/88.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/89.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/90.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/91.jpg)
3%"%)2EE
![Page 92: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/92.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/93.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/94.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/95.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/96.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/97.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/98.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/99.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/100.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/101.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/102.jpg)
2 $ 3%"%)2EE
![Page 103: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/103.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 103
Load-time Linking
![Page 104: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/104.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/105.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/106.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/107.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/108.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/109.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/110.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/111.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/112.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 112
-$
E3%&@"(2E + Aa -+ + "*
,
![Page 113: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/113.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/114.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/115.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/116.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 116
Run-time Linking
![Page 117: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/117.jpg)
T3]2 ?& &"(M
![Page 118: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/118.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/119.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/120.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/121.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/122.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/123.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/124.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/125.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/126.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/127.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/128.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/129.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/130.jpg)
3 *
![Page 131: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/131.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/132.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/133.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/134.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/135.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 135
K@&)A
![Page 136: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/136.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/137.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/138.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/139.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/140.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/141.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/142.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/143.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/144.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/145.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/146.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/147.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/148.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/149.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/150.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/151.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/152.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/153.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/154.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/155.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/156.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/157.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/158.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/159.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/160.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/161.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/162.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/163.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/164.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/165.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/166.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/167.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/168.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/169.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/170.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/171.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/172.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/173.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/174.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 174
% +
![Page 175: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/175.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/176.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/177.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/178.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/179.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/180.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/181.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/182.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 182
&& 2
T48 & )
![Page 183: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/183.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/184.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/185.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/186.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/187.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 187
32)&
![Page 188: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/188.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 188
2&"K2)&
![Page 189: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/189.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/190.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/191.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/192.jpg)
- / -
![Page 193: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/193.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/194.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/195.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/196.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/197.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 197
%
![Page 198: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/198.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/199.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 199
K1
&;* 3%"%)2EE +>>)) +>>)+) +>>)+) +>>))
![Page 200: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/200.jpg)
© 2006 Microchip Masters Brasil 2006 USB – Implementação de Hardware e Software 200
%* V
![Page 201: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/201.jpg)
"#3 * R
![Page 202: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/202.jpg)
"1"1
![Page 203: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/203.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/204.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/205.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/206.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/207.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/208.jpg)
"1222EE
![Page 209: apostila curso proramação de dispositivos](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/209.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/210.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/211.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/212.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/213.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/214.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/215.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/216.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/217.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/218.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/219.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/220.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/221.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/222.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/223.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/224.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/225.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/226.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/227.jpg)
© 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](https://reader031.fdocumentos.com/reader031/viewer/2022012405/543e1c15b1af9f332b8b46a2/html5/thumbnails/228.jpg)
© 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+ )