You are on page 1of 37

SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 1



CHNG 1: GII THIU USB V PIC 18F4550
I. Gii thiu chung v chun USB:
1. Khi nim USB:
USB (Universal Serial Bus) l mt chun kt ni tun t a dng trong my
tnh. USB s dng kt ni cc thit b ngoi vi vi my tnh, chng thng
c thit k di dng cc u cm cho cc thit b tun theo chun cm-l-
chy m vi tnh nng cm nng thit b (ni v ngt cc thit b khng cn
phi khi ng li h thng).
2. Cc mc tiu hng ti khi s dng USB:

- D dng m rng cc thit b u cui ca my tnh.
- Cung cp gii php chi ph thp song vn h tr truyn dn tc cao ln n
480 Mb/s.
- H tr ng dng thi gian thc nh: voice, audio, video,
- Giao thc linh hot cho cc ch hn hp.
- Tch hp cng ngh thit b tin nghi.
- c Windows v cc h iu hnh khc h tr do c th khng cn driver
mc thp cho cc thit b USB.
- a nng, do nhiu thit b c th ghp ni vi PC thng qua chun USB.
- tin cy cao.
3. M t h thng USB:
Mt h thng USB c m t bi 3 nh ngha:
- Kt ni USB.
- Cc thit b USB.
- USB host.
Kt ni USB c hiu l kiu kt ni m trong cc thit b USB
c kt ni v giao tip vi my tnh ch. Kt ni USB bao gm cc vn
sau:
Kin trc BUS: m hnh kt ni gia cc thit b USB v Host.
Nhng mi quan h Inter- Layer: di dng mt tp kh nng, cc tc v USB c
thc hin ti mi lp trong h thng.
Cc m hnh lung d liu l: l hnh thc m trong d liu di chuyn trong h
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 2

thng USB.
Lp trnh USB: USB cung cp mt s kt ni dng chung. Vic truy cp ti kt ni
c lp trnh theo th t h tr truyn d liu ng thi kh x phn x ban u.
4. Kin trc BUS:
Bus tun t a nng ni cc thit b USB vi Host USB. V mt kt ni
vt l USB l mt kin trc tng sao. Mt Hub ti trung tm ca mi sao.
mi on dy l mt kt ni t im ti im gia Host v mt Hub hoc mt
chc nng no , hoc mt Hub ni ti Hub khc hoc chc nng khc. Vi 7
bit a ch, ngoi my ch USB ra n c th qun l ti a 127 thit b ngoi vi.
Hnh sau s minh ho kin trc ca USB.




My ch USB:
Ch c duy nht mt Host trong mt h thng USB bt k. Giao din
USB ti h thng my ch c xem nh b iu khin Host. B iu khin
Host c th c thc hin trong mt kt hp gm phn cng, vi chng trnh
(firmware) hoc phn mm. Mt Hub gc (root hub) c tch hp ch trong h
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 3

thng Host cung cp mt hoc nhiu im lp thm.
Cc thit b USB:
Thit b USB c th l 1 trong cc thit b sau:
- Hub: cung cp im lp thm vo USB.
- Cc chc nng: cung cp kh nng cho h thng nh mt kt ni ISDN, Digital
Joystick hoc Speaker.
- Thit b hiu c giao thc USB.
5. Cp USB:
USB truyn tn hiu qua 1 cp 4 si nh hnh di.
C 3 tc truyn d liu:
- USB tc cao (USB high-speed): 480Mb/s.
- USB ton tc (USB full-speed): 12Mb/s.
- USB tc thp (USB low-speed): 1.2Mb/s.




Cp USB bao gm 4 dy, D+ v D- c dng truyn tn hiu, Vbus
v GND cp ngun cho thit b ( Thng th Vbus =5V cn GND=0V ti
ngun). USB cho php chiu di cc on cp c th thay i ln ti vi mt.
pha my ch Host th D+ v D- c ni t qua cc in tr Rpd cn
v pha thit b ngoi vi, cc u dy D+, D- c bo v bi in tr cui (
chnh l cc in tr Rpu. Thit b tc cao hoc ton tc cn c in tr ni
+3.3 V cho u D+, thit b tc thp cn c in tr ni ln 3.3 V cho u
D-. Nhng in tr ny to nn cc mc in th khc nhau gia D+ v D-
gip cho my ch pht hin c vic cm vo hay rt ra ca thit b cng nh
tc truyn d liu ca thit b.
II. M hnh lung d liu USB:
1. Cc thnh phn trong vic thc hin kt ni USB:
Vic thc hin kt ni USB gm cc thnh phn:
- Thit b USB vt l: mt phn cng u cui ca cp USB thi hnh mt vi
chc nng hu dng vi ngi s dng.
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 4

- Client Software: phn mm thi hnh trn my ch, p ng cho thit b USB.
Phn mm ny c th c cung cp bi h iu hnh hoc c cung cp cng
vi thit b USB.
- USB System Software: l phn mm h tr USB trong mt h iu hnh c th.
Phn mm h thng USB thng c cung cp km vi h iu hnh, n
khng ph thuc vo mt thit b USB c th no.
- USB Host Controller: bao gm phn cng v phn mm cho php cc thit b
USB kt ni ti Host.
Hnh sau s ch ra s tng tc gia mt s lp v thc th trong
mt kt ni n gin gia host v thit b.

- USB Bus interface Layer cung cp kt ni vt l, gi tin, bo hiu gia
Host v mt thit b.
- USB Decive Layer cho thy h iu hnh h tr thit b USB cn c
mt phn mm h thng thc hin vic qun l thit b USB logic.
- Function Layer cung cp kh nng c thm vo cho Host qua phn
mm khch (client software). Chnh client software s gip th hin chc nng
ca thit b USB trn Host.
2. Bus Topology:
Bus topology c 4 thnh phn chnh:
- Host v cc thit b: y l cc thnh phn s cp ca mt h thng
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 5

USB.
- Cu trc vt l: cho thy cc thnh phn USB c ni vi nhau nh
th no.
- Cu trc logic: cho thy vai tr v trch nhim ca cc thnh phn
USB khc nhau v USB xut hin nh th no t hnh phi cnh ca
Host v mt thit b.
- Mi lin quan gia chc nng v phn mm khch (client software).

2.1 USB Host:
Kt cu logic ca Host c ch ra trong hnh 2.2 gm c:
- B iu khin Host.
- Phn mm h thng USB c gp chung
- Phn mm khch. (Client Software).


2.2 Cc thit b USB:
Kt cu logic ca mt thit b USB vt l c ch ra trong hnh 2.3
gm :
- Giao din bus USB.
- Thit b USB logic.
- Chc nng.

SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 6



Cc thit b USB vt l cung cp cc chc nng b sung cho Host. Cc
thit b USB khc nhau th cung cp cc chc nng khc nhau. Mc d vy th
cc thit b USB logc c ni ghp ti Host c bn ging nhau.

2.3 Kin trc vt l (Physical Bus Topology):
Kt ni vt l ca cc thit b USB thng qua kin trc tng sao (tiered
star topology) nh hnh 2.4. Cc im ni USB c thng qua bi mt lp
thit b USB c bit c hiu l Hub. Cc im ni b sung c kt ni
thng qua Hub c gi l cc cng. Host bao gm c mt Hub c ni vi
n gi l Hub gc (root hub). Cc kt ni c thc hin ti cc cng ca Hub
gc. Cc thit b cung cp cc chc nng b sung cho Host c hiu l cc
chc nng (function).

SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 7



2.4 Kin trc Bus Logic:
Trong khi cc thit b vt l c kt ni ti Host theo kin trc tng sao
th qu trnh truyn thng gia Host vi mi thit b logic c xem nh l kt
ni trc tip ti cng gc (root port). Trong trng hp ny th bn thn cc
hub cng l cc thit b logic, nhng hnh 2.5 di y khng v ra cho hnh
v n gin d hiu.



2.5 Mi quan h gia chc nng v phn mm khch:
Trong qu trnh hot ng, phn mm khch nn c lp vi cc thit b
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 8

khc c th c gn ti USB.
3. Lung truyn thng USB:
USB cung cp mt dch v truyn thng gia phn mm trn Host v
chc nng USB ca n. Cc chc nng c th c yu cu lung truyn thng
khc nhau cho cc tng tc client-to-function khc nhau. USB cung cp s s
dng bus ton din hn bng cch tch cc lung truyn thng khc nhau ti
mt chc nng USB. Mi lung truyn thng c kt thc ti mt im cui
trn trn mt thit b. im cui ca thit b c s dng xc nh hng
ca mi lung truyn thng. Hnh 2.6 thuyt minh cch cc lung thng tin
c truyn qua cc ng dn (ng truyn) gia cc im cui v cc b nh
m pha Host. Phn mm trn Host giao tip vi mt thit b logic qua mt tp
cc lung truyn thng. Tp cc lung truyn thng c chn bi cc nh
thit k phn cng/phn mm p ng mt cch c hiu qu cc nhu cu ca
thit b ti c tnh truyn ti c cung cp bi USB.












4. Cc loi truyn d liu USB:
USB truyn d liu qua mt ng dn (ng truyn) gia mt bn l b nh m
c lin kt vi mt phn mm khch trn my ch vi mt bn lmt im cui
trn thit b USB. USB cung cp cc dng truyn ti khc nhau c ti u ho
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 9

p ng mt cch thch hp nht cc nhu cu ca phn mm khch v chc nng.
USB cung cp 4 loi truyn d liu: truyn iukhin (control transfer); truyn ngt
(interrupt transfer); truyn ng thi (isochronous transfer) v truyn khi (bulk
transfer).
4.1 Truyn iu khin:
Truyn iu khin l truyn theo kiu hai chiu. Loi truyn ny thng
c s dng ci t thit b ngoi vi. Giao thc truyn iu khin c bt
u bng mt giai on thng bo (token stage), tip theo l giai on d liu
(data stage) v kt thc l giai on bt tay (handshake stage). Mi thit b
ngoi vi USB u phi x l c loi truyn ny.
4.2 Truyn ngt:
Truyn ngt l kiu truyn mt chiu. Loi truyn ny c dng cho
cc thit b ngoi vi nh bn phm, chut, joystick . V Host khng th ngt nn
cc ngt t thit b ngoi vi c x l trong vng i. Ngi lp trnh h
thng c nhim v x l vng i ny. Giao thc truyn ngt khi ng khi
my ch (Host) bt u bng mt thng bo IN (IN Token). Thit b ngoi vi
tr li bng mt gi NAK nu khng c ngt. Trong trng hp c ngt th
thit b ngoi vi tr li bng mt gi d liu. Khi nhn ht d liu my ch s
tr li bng mt gi ACK nu d liu khng c li hoc khng tr li g nu c
li. Nu b nghn im cui ca thit b ngoi vi, n s gi n my ch gi
STALL v i phn mm h thng trn my ch x l.
4.3 Truyn ng thi:
Truyn ng thi l phng php truyn mt chiu, hng cuc truyn c th t thit
b ngoi vi v my ch hoc ngc li. V th cuc truyn cn hai im cui thit b
ngoi vi hoc hai ng ng dn phn mm pha my ch nu thit b cn dng kiu
truyn ny thng tin 2 chiu. Giao thc truyn ng thi bt u bng gi IN hoc
OUT t my ch tu thuc vo hng truyn v loi im cui. V d trong trng
hp gi IN, thit b truyn d liu v my ch. Trong trng hp OUT, my ch tip
tc bng cch truyn d liu. Truyn ng thi khng dng gi bt tay thng bo
kt qu truyn nn thng tin c th b tht lc. Loi truyn ny thng c dng cho
inthoi hay loa.
4.4 Truyn khi:
Truyn khi l phng php truyn mt chiu. Hng truyn c th t im cui v
my ch hay ngc li. Nh vy mt thit b ngoi vi cn c hai chiu d liu s cn
c hai im cui. Giao thc truyn khi gm c 3 giai on: Thng bo, d liu v
gi bt tay. Nu thit b b kt s khng c giai on d liu m ch c thng bo v
bt tay. D liu s c truyn qua ng dn t mt vng m d liu trong b nh
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 10

ca chng trnh tng ng ti mt im cui ca thit b ngoi vi.

III. Cc lp thit b c nh ngha:
1. Cc thnh phn ca 1 c t lp thit b:
Mt c t lp thit b nh ngha s lng v loi cc im cui bt buc cng nh
tu chn m cc thit b trong lp c th c. Mt c t lp cng c th nh ngha
hoc t tn cc nh dng d liu c truyn trn bus. Mt vi c t lp nh ngha
cc ng dng ca d liu ang c truyn, iu ny cho php Host bit cch s dng
d liu m n nhn c. Mt vi lp thit b s dng USB truyn d liu trong
mt nh dng c nh ngha bi mt giao din khc (v d cc lnh ca giao din
SCSI c s dng bi cc thit b lu tr th cp (mass-storage device) . Mt c t
lp cng c th nh ngha cc gi tr cho cc mc trong cc b m t chun.
2. Cc lp thit b c nh ngha:
2.1 Thit b m thanh (Audio):
Lp thit b m thanh chnh l lp cc thit b gi v nhn d liu m thanh. D liu
m thanh c th l ting ni c m ho, nhc hay bt k mt loi m thanh no
khc. Cc thit b thuc lp thit b m thanh c th s dng kiu truyn ng thi
cho lung m thanh hoc kiu truyn khi cho d liu c m ho bng giao thc
MIDI (Musical Instrument Digital Interface).
2.2 Thit b giao din th thng minh:
Th thng minh l cc loi th quen thuc c s dng cho vic gi in thoi, th
qu tng, th ra vo, tr cc cu ng, bo him y t, gii m cho cc b thu truyn
hnh v tinh v nhiu cc ng dng khc, nhng ng dng ny yu cu mt khi
lng thng tin nh hoc trung bnh vi s truy cp d liu lu trong th mt cch d
dng.
Mi th l mt module bao gm b nh v thng thm mt CPU. Nhiu th cho
php cp nht ni dung ca chng thay i mt s thng tin v d nh gi tr tin
trong th tn dng hay m ca th. truy cp mt th thng minh, bn kt ni n vi
thit b giao din th thng minh (CCID-Chip Card Interface Device) thng bng
cch nht th vo
khe c hoc soi n trc cc b c i vi loi th khng cn tip xc. USB nh
ngha lp thit b giao din th thng minh v c mt s thit b giao din th thng
minh (CCID) s dng giao din USB giao tip vi my tnh.
2.3 Lp cc thit b truyn thng:
Lp cc thit b truyn thng bao gm hai loi thit b chnh l: thit b thoi v cc
thit b mng tc trung bnh. Thit b thoi bao gm in thoi tng t ,modem
tng t, Cc b thch nghi u cui ISDN v in thoi s. Cc thit b mng bao
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 11

gm modem ADSL, modem in tn, 10BASE-T Ethernet adapter v hub.
2.4 Lp thit b bo mt:
Lp thit b bo mt nh ngha cch thc gip ta iu khin s truy cp ti cc file,
m nhc, hnh nh hoc cc d liu khc c truyn trn bus (v d mun copy mt
file no ln thit b hoc c ni dung c lu trong thit b th phi c
password).
2.5 Lp thit b cho php cp nht Firmware t Host:
Lp thit b cp nht firmware nh ngha mt giao thc cho php my ch gi
firmware tng cng hoc v cho mt thit b. Sau khi nhn s nng cp firmware th
thit b s c thit lp li s dng firmware mi ca n.
2.6 Lp thit b giao din ngi s dng (HID):
Lp thit b giao din ngi s dng bao gm cc loi bn phm, thit b con tr v
cc b iu khin dng chi game. i vi nhng thit b ny, my ch c thng
bo t thit b v gn nh lp tc thc hin theo cc yu cu ca ngi s dng (cc
yu cu ny mang tnh giao tip trc tip gia ngi s dng v my) nh s n
phm, s di chuyn ca con chut. My ch phi p ng nhanh sao cho ngi s
dng khng nhn thy tr rt nh gia yu cu ca h v cc p ng ca my.
2.7 Cu lin kt d liu hng ngoi (Infrared Data Association Bridge):
Lp thit b cu lin kt d liu hng ngoi nh ngha nhng yu cu v phn cng
v cc giao thc cho php vic truyn ti d liu khong cch ngn thng qua nng
lng hng ngoi. Thit b cu lin kt d liu hng ngoi s c ni vi my ch
qua cng USB cho php my ch s dng giao din USB gim st, iu khin v
truyn d liu qua mt giao din hng ngoi.
2.8 Lp thit b lu tr th cp:
Lp thit b lu tr th cp chnh l cc thit b c th truyn d liu theo c hai
hng (t my ch ti thit b hoc t thit b v my ch). in hnh cho lp thit b
ny c th k n cc a mm, a cng, CD, DVD v nh flash. Cc loi
camera cng c th s dng lp lu tr th cp cho php vic truy cp cc file hnh
nh trong b nh ca camera. Trong cc my tnh s dng h iu hnh Windows, cc
thit b thuc lp lu tr th cp s xut hin nh cc a trong ca s My
Computer v h iu hnh cho php ngi s dng sao chp, di chuyn v xo cc d
liu trong cc thit b .
2.9 Lp cc thit b in n:
Lp cc thit b in n c nh ngha cho cc thit b chuyn d liu nhn c t
my ch thnh nh dng ch hay hnh nh trn giy hay vt liu no .
2.10 Lp thit b lu gi nh tnh:

SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 12

Lp thit b ny bao gm Cc loi my nh v my qut. Cng vic ch yu ca lp
thit b ny l truyn d liu hnh nh t thit b ln my tnh ch. Ngoi ra mt vi
thit b cn c th nhn d liu t my tnh. Nu tt c nhng g ta cn l truyn cc
file hnh nh t mt my nh ln my tnh ch th ta c th a mt my nh vo lp
thit b lu tr th cp.
2.11 Lp cc thit b o lng v kim tra:
Lp cc thit b o lng v kim tra l dnh cho cc thit b o c nh cc b
ADC, DAC, cm bin v cc b chuyn i (chuyn i n v vt l chng hn). Cc
thit b ny c th l mt khi ring r hoc l mt cc trong mt my tnh ln.
2.12 Lp cc thit b nh ng:
Lp cc thit b nh ng h tr cc thit b ghi hnh s xch tay, webcam, v mt s
thit b c chc nng gi, nhn hay can chnh nh ng. Lp thit b ny cng h tr
vic truyn cc nh tnh t cc thit b nh ng.
2.13 Thc hin cc chc nng khng tiu chun:
Mt vi thit b khng c s ph hp r rt vi mt lp thit b c nh ngha. V
d nh cc thit b iu khin ng c, r le, hay cc c cu chp hnh khc. Mt v
d khc l cc thit b kt ni gia hai my vi tnh (Cu s dng USB). Nu mt thit
b u cui m khng ph hp gn vo mt lp c nh ngha th ngi thit k
s phi vit driver cho thit b cung cp cho my ch cc thng tin gip n giao
tip c vi thit b .
IV. Lp thit b giao din ngi s dng:
Lp thit b giao din ngi s dng (HID-Human Interface Device) l mt trong
nhng lp u tin c h iu hnh windows h tr. Trn nhng chic my tnh c
nhn s dng Windows 98 hoc cc phin bn mun hn th nhng ng dng c th
giao tip vi cc thit b giao din ngi s dng bng cch s dng cc b iu
khin (driver) c xy dng sn trong h iu hnh. Cng chnh v l do trn m
nhiu nh cung cp thit b u cui USB s dng lp thit b giao din ngi s
dng cho sn phm ca h. Chng ny s trnh by v lp HID vi mc ch gip
ngi c nhn nh xem mt thit b no c ph hp gn vo lp HID hay
khng. Ch ra cc yu cu i vi vi chng trnh (firmware) nh ngha mt thit
b thuc lp HID v cho php n trao i d liu vi my tnh ch. Chng cng s
gii thiu 6 yu cu iu khin c th.
1. Khi nim v HID:
T giao din ngi s dng trong tn gi ca lp HID ch ra s tng tc trc
tip gia con ngi vi thit b thuc lp ny. V d mt con chut c th pht hin
vic chng ta di chuyn hay nhn chut gi thng tin ln my ch v my ch s
dng thng tin ny em li cc p ng m ngi s dng ang mong i trong
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 13

mt ng dng c th no . Bn cnh cc thit b ph bin ca lp HID nh bn
phm, con chut, cn iu khin (joystick) th lp HID cn bao gm mt s thit b
khc nh cc nm iu chnh, cc chuyn mch, nt nhn, thanh trt, iu khin t
xa, bn phm in thoi, cc thit b iu khin dng cho game nh bao tay, bnh li.
Tuy nhin mt thit b thuc lp HID khng nht thit phi c mt giao din ngi s
dng. Mt thit b c th gn vo lp HID khi cc chc nng ca n nm gn trong
cc gii hn ca c t lp HID. Di y l cc gii hn v kh nng ch ca cc
thit b thuc lp HID:
- Tt c d liu c trao i di cng mt dng cu trc c gi l bo co (report).
My ch gi v nhn d liu bng cch gi cc bo co v yu cu cc bo co trong
cc phng thc truyn iu khin hoc truyn ngt. nh dng bo co l kh linh
hot v n c th p dng cho rt nhiu dng ca d liu song i vi mi mt bo
co c nh ngha th kch c ca n l xc nh.
- Mt giao din HID phi c mt im cui ngt vo (interrupt IN enpoint) gi d
liu ln my ch.
- Mt giao din HID c th c ti a mt im cui ngt vo v mt im cui ngt ra
(interrupt OUT enpoint). Nu ta cn nhiu im cui ngt hn na th ta c th to
mt thit b a chc nng gm nhiu thit b HID trong n. Mt ng dng phi m
bo s iu khin ring bit ti tng HID trong thit b a chc nng.
- im cui ngt vo cho php HID gi thng tin ln my ch nhng thi im m
khng h bit trc. V d khng th c cch no gip my tnh bit trc khi no
ngi s dng n mt phm no trn bn phm do b iu khin my ch s
dng giao tc ngt thm d c nh k nhm thu lm d liu mi.
- Tc trao i d liu l hn ch, c bit l khi truyn tc thp hoc ton tc.
im cui ngt tc thp khng th vt qu 800 bytes/sec [2], vi cc im cui
ton tc th tc ti a l 64 KB/s [2] cn im cui ngt tc cao th tc ti a
vo khong 24 MB/s [2].
Lu l giao din HID c th ch l mt trong nhiu kiu giao din c h tr bi
mt thit b. V d mt loa USB c th s dng phng thc truyn ng thi cho m
thanh ng thi cng c th c mt giao din HID cho vic iu khin to nh, cn
bng, treble v bass. Mt giao din HID thng s r hn cch thc iu khin vt l
truyn thng trn mt thit b.
2. Cc yu cu v phn cng:
2.1 Cc im cui:
Tt c cc kiu truyn ca HID s dng hoc im cui iu khin hoc im cui
ngt. Tt c cc HID phi c mt im cui ngt vo gi d liu ti my ch. Mt
im cui ngt ra l tu chn.
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 14

2.2 Cc loi bo co:
Yu cu i vi mt im cui ngt vo cho thy mi HID phi c ti thiu l mt
report u vo c nh ngha trong b m t report ca HID. Cc report u ra v
report c bit l tu chn.
2.3 Cc yu cu c th gi t Host ti thit b trong kiu truyn iu khin:
c t HID nh ngha 6 yu cu c th m Host c th gi ti thit b. Hai trong s
l Set_Report v Get_Report, em li cch Host v thit b trao i report thng
qua kiu truyn iu khin. Host s dng Set_Report gi report v Get_Report
nhn thng bo. Bn yu cu cn li lin quan ti vic cu hnh thit b. Cc yu cu
Set_Idle v Get_Idle dng thit lp v c tc ri, ci cho bit c hay khng
vic mt thit b gi li d liu khng h thay i k t ln thm d cui. Cc yu cu
Set_Protocol v Get_Protocol thit lp v c gi tr giao thc. Gi tr giao thc s
cho bit mt thit b c th c s dng hay khng ngay c khi b iu khin y
ca n cha c ti trn Host (v d con chut v bn phm c th thc hin chc
nng ca n ngay trong giai on khi ng - khi m b iu khin chnh thc ca n
cha c ti trn Host). Cc loi yu cu va nu s c trnh by chi tit hn
on sau.
2.4 Kiu truyn ngt:
Cc im cui ngt em li s lun phin trong vic trao i d liu, c bit khi pha
thu phi c c d liu mt cch nhanh chng hoc nh k. Truyn iu khin c
th b tr nu bus qu bn trong khi bng thng cho truyn ngt li c m bo.
Kh nng thc hin truyn ngt ra (OUT) c b sung phin bn 1.1 ca chun
USB. Windows 98 SE l phin bn Windows u tin h tr USB 1.1 v HID 1.1 [2].
3. Cc yu cu v vi chng trnh (Firmware):
Vi chng trnh phi ph hp vi cc yu cu ca lp thit b. Cc b m t ca thit
b phi bao gm mt b m t giao din nh ngha thit b thuc lp HID, mt b
m t HID v mt b m t im cui ngt vo (IN). B m t im cui ngt ra
(OUT) l tu chn. Vi chng trnh cng phi cha mt b m t report. Mt HID c
th h tr mt hay nhiu report. B m t report ch ra kch thc v ni dung ca d
liu cha trong report cng nh cch m pha thu s s dng d liu nhn c. Cc
gi tr trong b m t s ch ra mi report l mt report u vo, u ra hay l mt
report c bit. My ch nhn d liu cha trong report u vo v gi d liu cha
trong report u ra. Mt report c bit c th c truyn theo c hai hng Mi
thit b nn h tr ti thiu mt report u vo my ch c th thu nhn d liu
thng qua truyn ngt hoc truyn iu khin. Cc report u ra l tu chn.
tng thch vi Windows 98 Gold th cc thit b s dng cc report u ra nn h tr
vic gi report thng qua truyn iu khin. S dng truyn ngt cho cc thng bo
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 15

u ra l tu chn. Cn cc thng bo c bit cng l tu chn v nu c s dng
th n lun c truyn thng qua truyn iu khin.
4. Cch thc ch ra mt thit b thuc lp HID:
Vi bt k thit b USB no thuc lp HID th cc b m t ca n ch cho my ch
ci my ch cn bit giao tip vi thit b. My ch tm hiu v giao din HID
trong sut qu trnh thit lp bng cch gi mt yu cu Get_Descriptor. Cc b m t
ca mt thit b thuc lp HID bao gm: B m t thit b (Device Descriptor), b m
t cu hnh (Configuration Descriptor), b m t giao din (Interface Descriptor), b
m t HID (HID Descriptor), b m t im cui ngt vo (IN interrupt Enpoint
Descriptor), b m t im cui ngt ra (OUT Interrupt Endpoint Descriptor) v b
m t im cui ngt c bit (Feature Interrupt Endpoint Descriptor). Hai b m t
sau cng l tu chn (tc c th c hoc khng). Ngoi cc b m t va lit k trn
thit b thuc lp HID cn phi c mt b m t na l b m t Report.
Mt HID vi giao din khi ng s c th thc hin mt phn chc nng ca mnh
khi m driver ca n cha c my ch ti n. Hon cnh ny c th xut hin khi
my tnh khi ng trc tip t DOS hoc khi s dng ch an ton (safe mode) ca
Windows g li h thng. Mt bn phm hoc con chut vi giao din khi ng
c th s dng mt giao thc c n gin ho c h tr bi h thng vo ra
c s
(BIOS) ca nhiu my tnh ch. Trng protocol=1 tc l thit b h tr giao din
bn phm cn nu bng 2 th thit b h tr giao din con chut. B m t HID (HID
Descriptor) l b m t c b sung cho lp HID. B m t ny c th c 7 trng
hoc nhiu hn tu thuc vo s lng cc b m t c thm vo cho thit b:
- Trng bLength c kch thc 1 byte cho bit di ca b m t HID tnh theo byte.
- Trng bDescriptorType c gi tr l 21h ch ra b m t ny l b m t HID.
- Trng bcdHID c kch thc 2 byte ch ra phin bn USB m thit b tun theo.
- Trng bCountryCode, Nu thit b c s dng ch trong phm vi a l ca mt
nc no th trng ny s mang m ca quc gia (c t HID c danh sch m
ca cc nc). Nu vic s dng thit b khng ph thuc vo v tr a l th trng
ny c gi tr 00h.
- Trng bNumDescriptors ch ra s lng cc b m t lp thuc cp di ca b m
t ny .
- Trng bDescriptorType ch ra loi ca b m t thuc cp di ca b m t ny.
(V d nh trng ny c gi tr 22h ch ra rng b m t cp di ca n l b m
t Report) .
- wDescriptorLength cho bit kch thc tng cng ca cc b m t c m t
trc n v phn kch thc k t u cho n trng ny ca b m t HID .
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 16


Nu thit b c thm mt b m t vt l (physical descriptor) th b m t HID s c
thm hai trng na c lit k ln lt l:
- bDescriptorType c gi tr l 23h ch ra b m t cp di l b m t vt l.
- wDescriptorLength cho bit tng kch thc ca cc b m t c m t tnh t
u cho n ht trng ny.
5. B m t bo co (Report Descriptor):
Mt b m t thng bo nh ngha khun dng v cng dng ca d liu cha trong
cc report. V d nu thit b l mt con chut th d liu trong report s thng bo
cho my ch bit s di chuyn ca con chut v s click chut, nu thit b l mt b
iu khin rle th d liu trong bo co s cho bit rle no m v rle no ng. B
m t report cn phi linh hot iu khin thit b vi cc mc ch khc nhau.
D liu lu trong report cn c ti u ho v kch thc trnh lng ph khng
gian lu tr v rt ngn thi gian khi truyn trn bus. Sau y l mt v d v b m
t report ca mt keyboard v s trnh by mt s kin thc lin quan n b m t
report thng qua vic gii thch v d ny ( hiu y v cn k v b m t report l
mt iu khng h n gin v vy m v d ny ch mi nu ra c mt phn kin
thc v b m t). to b m t Report cho lp HID ta s dng phn mm HID
Descriptor Tool, y l mt tin ch min ph v c th ti v t a ch sau:
http://apps.intel.com/scripts-
util/download.asp?url=/intelpress/usb/Examples/ZipFiles/DT.zip&title=HI D+Descr
iptor+Tool&fullpg=3&site=Developer

6. Cc yu cu m Host c th gi ti 1 lp thuc lp HID:
HID nh ngha 6 yu cu m Host c th gi ti mt thit b thuc lp HID. Tt c
cc HID phi h tr Get_Report, cn i vi cc thit b h tr giao thc khi ng
th phi p ng c cc yu cu Get_Protocol v Set_Protocol. Cc yu cu cn li
gm Set_Report, Get_Idle v Set_Idle l tu chn, tr trng hp i vi mt
keyboard s dng giao thc khi ng phi h tr Set_Idle. Nu mt HID khng c
mt im cui ngt ra (OUT) hoc nu HID ang giao tip vi mt my ch ch h
tr USB 1.0 nh Windows 98 Gold chng hn th HID nu mun nhn report t
host n phi h tr Set_Report. Cc yu cu trn s c Host gi ti thit b trong
giai on setup ca truyn iu khin. Giai on setup ca truyn iu khin nh
c trnh by trong mc 3.5.2 din ra nh sau: ban u host pht ra gi thng bo
setup, theo sau l gi d liu dnh cho giao tc setup c kch thc ca phn d
liu l 8 byte, cui cng host ch gi bt tay ACK bit rng giao tc setup c
thnh cng hay khng. Cc yu cu ca host c cha trong 8 byte d liu ca gi
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 17

d liu theo sau gi thng bo setup, n c khun dng nh sau:






C mt s bit trong gi trn c gi tr ging nhau i vi c 6 yu cu l:
- 5 bit Destination type =00000B ch ra ch n ca yu cu l mt thit b.
(00001B: ch l mt giao din c th, 00010B: ch l mt im cui trn thit b,
00011B: ch l mt trong cc thnh phn khc trong thit b).
- 2 bit Request Type =01 ch ra loi yu cu ny l dnh cho mt lp thit b c
th. (00: tc request l mt trong cc request chun (c 11 loi request chun), 10:
request c nh ngha bi nh cung cp thit b)..

6.1 Get_Report:
Host gi yu cu ny khi n mun nhn mt Input report hoc Feature report t HID
s dng truyn iu khin.
Bit Direction = 1 ch ra rng c mt giai on d liu sau giai on setup v hng
truyn ca d liu l t thit b v host.
bRequest = 01h cho bit yu cu m host gi ti thit b l Get_Report.
wValue: Byte cao cha thng tin cho bit host mun nhn loi report no t thit b
(1=Input, 3=Feature), byte thp cha report ID.
wIndex: cha s lng giao din m yu cu c hng ti.
wlength: cha chiu di ti a cho php ca report trong giai on d liu tnh theo
byte. Lu : tt c cc HID nn h tr yu cu Get_Report.
6.2 Get_Idle:
Host gi yu cu ny c tc ri t thit b.
Bit Direction = 1.
bRequest = 02h.
wValue: Byte cao = 00h, byte thp ch ra report ID ca report m yu cu tc ng
ti. Nu byte = 00h th c ngha l yu cu s tc ng ti tt c cc Input report ca
HID.
wIndex cha s lng giao din h tr yu cu ny.
wlength = 1. 1 byte trng d liu ca gi d liu trong giai on d liu s cha tc
ri tnh theo s nguyn ln ca 4 ms.
Cc HID khng buc phi h tr yu cu Get_Idle.
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 18

6.3 Get_Protocol:
Mc ch ca yu cu ny l host bit c HID c h tr giao thc khi ng hay
khng.
Bit Direction = 1.
bRequest = 03h.
wValue = 0000h.
wIndex cha s lng giao din h tr yu cu ny.
wLength = 1. Nu 1 byte trng d liu ca gi d liu = 0 tc c h tr giao thc
khi ng cn nu 0 tc l khng h tr giao thc khi ng.
Cc thit b c h tr giao thc khi ng th phi p ng li yu cu ny.
6.4 Set_Report:
Host gi yu cu ny thng bo rng n mun gi mt Output hoc Feature report
ti thit b bng cch s dng truyn iu khin. Bit Direction = 0 ch ra rng
hng ca report trong giai on d liu l t host ti thit b. bRequest = 09h.
wValue: Byte cao cha thng tin v loi report s c gi trong giai on d liu (2:
Output report, 3: Feature report). Byte thp cha report ID. wIndex cha s lng
giao din m yu cu ny c hng ti .
wLength: cho bit chnh xc kch thc ca report tnh theo byte s c gi trong
giai on d liu.
Cc HID c th h tr hoc khng h tr yu cu Set_Report. Nu mt HID khng c
im cui ngt ra (OUT) hoc HID ang lm vic vi mt my ch ch h tr phin
bn USB 1.0 m li mun nhn d liu t Host th vic p ng li yu cu
Set_Report l cch duy nht c th nhn d liu t host.
6.5 Set_Idle:
Host gi yu cu ny l tit kim bng thng bng thng qua vic gii hn tn s
gi bo co ca mt im cui ngt vo (IN) khi d liu cha trong bo co khng c
s thay i so vi bo co gn nht.
Bit Direction = 0 ch ra hng ca d liu trong giai on d liu nu c th s l
t host ti thit b.
bRequest = 0Ah.
wValue: Byte cao thit lp khong thi gian ti thiu phi tri qua gia hai Input
report c d liu ging nhau m li c gi k tip nhau, Byte thp cha report ID
ca report m yu cu ny tc ng ti. Nu byte thp l 00h th c ngha l yu cu
ny tc ng ti tt c cc Input report ca HID.
wIndex cha s lng giao din h tr yu cu ny.
wLength 0000h: Cho thy khng c giai on d liu theo sau giai on setup.
Ch thch: Khong thi gian gia hai Input report l mt s nguyn ln ca 4 ms, nh
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 19

vy vi 1 byte cao ca wValue th khong thi gian ny s nm trong phm vi t 4 ti
1020 ms. Nu byte cao ca wValue = 00h th c ngha l HID ch c gi Input
report khi d liu ca report c thay i so vi ln gi ngay trc . Nu d liu
ca report c thay i so vi ln gi ngay trc th n c th c gi ngay khi c
mt thng bo IN bt k gi tr byte cao ca wValue l bao nhiu. Trong trng hp
d liu ca report khng h c thay i g so vi ln gi ngay trc mt khc
khong thi gian c gn trong byte cao ca wValue cha tri qua k t ln gi
report ngay trc m li c mt thng bo IN t host th HID s gi gi bt tay NAK.
Cn nu khong thi gian c gn trong byte cao ca wValue tri qua k t ln
gi report ngay trc th HID s gi ti host report mc d d liu ca report khng
h c thay i so vi ln gi ngay trc. Nu HID tr li yu cu Set_Idle ca host
bng gi bt tay STALL th n c th gi report bt c khi no c thng bo IN t
host k c khi d liu ca report khng h c s thay i.
Cc HID khng b bt buc phi h tr yu cu Set_Idle ca host ngoi tr keyboard
c s dng giao thc khi ng.
6.6 Set_Protocol:
Host gi yu cu ny ch nh HID c nn s dng giao thc khi ng hay khng.
Bit Direction = 0 ch ra hng ca d liu trong giai on d liu nu c th s l
t host ti thit b.
bRequest = 0Bh.
wValue = 0000h: nn s dng giao thc khi ng; wValue 0000h: khng nn s
dng giao thc khi ng. wIndex cha s lng giao din h tr yu cu ny
wLength 0000h: Cho thy khng c giai on d liu theo sau giai on setup.
Thit b mun thc hin chc nng trong qu trnh khi ng phi h tr yu cu
Set_Protocol.
V. Gii thiu PIC 18F4550:

PIC 18F4550 l mt sn phm ca h vi x l thng dng ca cng ty Microchip.
im ring bit ca vi x l PIC 18F4550 l n l 1 trong nhng PIC h tr ton th
cho USB, ngha l n USB gn trong c sn cc chn u ra ni trc tip vi my
tnh m khng cn mch ko hay bt c mch gn ngoi no khc.





SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 20



H tr tinh th dao ng k nhiu tn s nh u vo v b cn bng nn b x l c
th hot ng vi tn s 48MHz ca dao ng k c lp khi kt ni. Khi kt thc
hot ng th chnh dao ng k c kt ni (thng qua cc bit cu hnh). Lm vic
vi tc 48MHz l v iu kin tin quyt chuyn sang ch ton tc nh cng
USB. V vy, Driver USB chuyn sang ch ton tc (1.5Mbyte/s) qua USB v
tng thch vi chun USB 2.0. N cng c 35 chn IN/OUT v c sn v bc gm
DIP-40 nn rt thun tin cho nh pht trin v nhng ngi nghip d quan tm.
Vi b nh, c 32Kb Flash lu d liu chng trnh, 2kb b nh SRAM hay hi v
256 byte EEPROM (b nh khng bay hi) lu tr di hn d liu nh cu hnh
Cc ch th di 1 byte vi s ngoi l di 2 byte (CALL,MOVF,GOTO,LSFR). S
dng c ch ng ng thc thi m bng vic khin cc thit b ch th lin tip
hot ng trong 4 xung ( di xung) v c 4 ln nhy xung c thm vo.
Cc c tnh ng ch khc l ng h, ngt (ng h gn trong v ngoi) vi hai
mc u tin v dng c hai mc nh b so snh tng t km theo vi b pht in
th chun c 16 mc (hu ch khi dng trigger mc phn cng).
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 21

Cui cng, PIC 18F4550 cng c b chuyn i tng t 10 bit nhng dao ng k
khng yu cu v tc cao cn thit. V vy, my pht dao ng c tc
48MHz gia thi gian tr do truyn ti v cc ngt khc (vng lp .. ). Khng th t
c tc ln hn 200khz.
1. S chn:



Ta c th thy chn D- v D+ cho kt ni USB chn 23 v 24.
2. Cng c lp trnh:
C nhiu cng c lp trnh v bin dch cho PIC nh: CCS, Keil C, MPLAB X, Mikro
C,
Nhng vi ti ny th em thy Mikro C h tr kh tt v y , c bit l n
gin v d hiu. Nn y em chon vit bng Mikro C.
V y ta giao tip vi my tnh nn ta cn c 1 giao din giao tip vi PIC qua
cng USB nn y em chn thit k giao din bng C# trong b Visual Studio 2010
ca Microsoft.

CHNG 2: THIT K MCH
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 22



Tnh ton in tr hng dng cho led:
Ta c in p trn mi led l 3V v dng qua led l 10mA nn ta tnh ton c in
tr hng dng cho led l:


Ta chn in tr 220 .
CHNG 3: VIT CHNG TRNH
I. Chng trnh cho PIC 18F4550:
Ta dng phn mm Mikro C lp trnh cho PIC.
u tin ta to 1 Project mi: File/New/Project
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 23


Step 1: ta chn ng dn lu project, v chn loi vi iu khin s dng, km theo l
khai bo tn s thch anh m mnh s dng, y ta dng PIC 18F4550 v tn s
thch anh l 20MHz.
Step 2: b qua v khng dng n.
Step 3: chn th vin cn dng, ta chn Include None (Advanced)


SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 24


Step 4: ta tick vo vung v nhn Finish.

SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 25

Lc ny 1 ca s Edit Project s hin ra, ta chn cc thng s nh trong hnh:

y ta c 2 cch chn tn s hot ng cho CPU, hnh v ta thy c 2 Option
l u vo xung nhp cho CPU. Vi Option 1 l: HSPLL v Option 2 l: XT, HS.
- Ta chn s dng HSPLL, tc l Option 1. Thch anh tht l 20MHz, qua b chia
PLLDIV c 4MHz v a qua b 96MHz PLL, u ra nhn c tn s
96MHz, ci ny s c chia 2 (nh hnh v) 96/2=48 MHz, vy l USB hot ng
vi xung nhp l 48MHz.
- Khi khai bo s dng HSPLL th XT,HS b v hiu, chnh v th chng ta s ly xung
nhp t b HSPLL cp cho CPU, nh hnh trn xung nhp s c a qua b chia
CPUDIV nh nht l 2, tc l 96/2=48MHz. iu ny c ngha l CPU s hot ng
vi xung nhp cao nht 48MHz, mc d u vo thch anh ch c 20MHz. V lc ny
iu quan trng l chng ta phi sa li gi tr thch anh t cho Project l 20MHz
thnh 48MHz mc d thch anh tht bn ngoi l 20MHz.
Ngoi ra chng ta cn phi Enable cho pin 18 ly in p 3.3V ti chn ny.

SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 26


Tip theo ta tin hnh vit code.
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 27


Code:

sbit LCD_RS at RE0_bit;
sbit LCD_EN at RE2_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 28

sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;

sbit LCD_RS_Direction at TRISE0_bit;
sbit LCD_EN_Direction at TRISE2_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;

unsigned char readbuff[64] absolute 0x500;
unsigned char writebuff[64] absolute 0x540;
char cnt;
char kk,tam;
char i,j;
void interrupt(){
USB_Interrupt_Proc();
}
void main(void){
ADCON1 |= 0x0F;
CMCON |= 7;
TRISB = 0x00;
Lcd_Init();
HID_Enable(&readbuff,&writebuff);
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 29

Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
while(1){
while(!HID_Read()) ;
for(cnt=0;cnt<64;cnt++)
writebuff[cnt]=readbuff[cnt];
if(writebuff[0]==0){
switch(writebuff[1]){
case 1: portb.b0=!portb.b0; break;
case 2: portb.b1=!portb.b1; break;
case 3: portb.b2=!portb.b2; break;
case 4: portb.b3=!portb.b3; break;
case 5: portb.b4=!portb.b4; break;
case 6: portb.b5=!portb.b5; break;
case 7: portb.b6=!portb.b6; break;
case 8: portb.b7=!portb.b7; break;
case 9: portb=0xFF; break;
case 10: portb=0x00; break;
default: break;
}}
else
{
char hang1[16];
char hang2[16];
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 30

for(i=0;i<16;i++) hang1[i]=writebuff[i+1];
for(j=16;j<32;j++) hang2[j-16]=writebuff[j+1];
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1,1,hang1);
Lcd_Out(2,1,hang2);
}
while(!HID_Write(&writebuff,64)) ;

}}
Vy l xong phn code, ta tin hnh Desciption cho thit b.

SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 31


- Lu n th mc to v Add vo Project.
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 32



Vy l xong phn Code, ta tin hnh Build (Ctrl+F9) vo np vo PIC.

II. Giao din C# trn my tnh:
Do HID c sn Driver trn my v t ci t, chng ta s khng cn quan tm n
Driver.
u tin chng ta to 1 project mi v Add th vin lin kt ng HIDLib.dll .
Trong ca s Solution Explorer, nhn chut phi vo References, chn Add
Reference

Sau ta tin hnh thit k giao din v vit Code:
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 33



Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HIDLib;


namespace USBHID
{
public partial class Form1 : Form
{
HIDDevice dev = new HIDDevice();
byte[] data = new byte[64];
int i;

public Form1()
{
InitializeComponent();
dev.vid = 0x04D8;
dev.pid = 0x0003;
dev.in_size = 64;
dev.out_size = 64;
dev.Initialize();

}

SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 34

protected override void WndProc(ref Message m)
{
dev.DeviceChange(ref m);
base.WndProc(ref m);
}

private void btn_onall_Click_1(object sender, EventArgs e)
{

if (dev.AttachedState)
{

data[0] = 0;
data[1]=9;
for (i = 2; i < 64; i++)
data[i] = 0;
if (!dev.Transmit(data)) MessageBox.Show("Error");
}
else MessageBox.Show("Disconnected!");
}

private void btn_offall_Click_1(object sender, EventArgs e)
{

if (dev.AttachedState)
{
data[0] = 0;
data[1] = 10;
for (i = 2; i < 64; i++)
data[i] = 0;
if (!dev.Transmit(data)) MessageBox.Show("Error");
}
else MessageBox.Show("Disconnected!");
}

private void btn1_Click(object sender, EventArgs e)
{
if (dev.AttachedState)
{
data[0] = 0;
data[1] = 1;
for (i = 2; i < 64; i++)
data[i] = 0;
if (!dev.Transmit(data)) MessageBox.Show("Error");
}
else MessageBox.Show("Disconnected!");
}

private void btn2_Click(object sender, EventArgs e)
{
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 35

if (dev.AttachedState)
{
data[0] = 0;
data[1] = 2;
for (i = 2; i < 64; i++)
data[i] = 0;
if (!dev.Transmit(data)) MessageBox.Show("Error");
}
else MessageBox.Show("Disconnected!");
}

private void btn3_Click(object sender, EventArgs e)
{
if (dev.AttachedState)
{
data[0] = 0;
data[1] = 3;
for (i = 2; i < 64; i++)
data[i] = 0;
if (!dev.Transmit(data)) MessageBox.Show("Error");
}
else MessageBox.Show("Disconnected!");
}

private void btn4_Click(object sender, EventArgs e)
{
if (dev.AttachedState)
{
data[0] = 0;
data[1] = 4;
for (i = 2; i < 64; i++)
data[i] = 0;
if (!dev.Transmit(data)) MessageBox.Show("Error");
}
else MessageBox.Show("Disconnected!");
}

private void btn_send_Click(object sender, EventArgs e)
{
if (dev.AttachedState)
{
data[0] = 1;
string chuoi;
chuoi = this.txt.Text;
if (chuoi.Length > 32) MessageBox.Show("Vui long nhap it hon 32 ky tu
!");
else for (i = 1; i <= chuoi.Length; i++)
{

data[i] = Convert.ToByte(chuoi[i-1]);
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 36

}
if (!dev.Transmit(data)) MessageBox.Show("Error");
}
else MessageBox.Show("Disconnected!");
}

private void btn5_Click(object sender, EventArgs e)
{
if (dev.AttachedState)
{
data[0] = 0;
data[1] = 5;
for (i = 2; i < 64; i++)
data[i] = 0;
if (!dev.Transmit(data)) MessageBox.Show("Error");
}
else MessageBox.Show("Disconnected!");
}

private void btn6_Click(object sender, EventArgs e)
{
if (dev.AttachedState)
{
data[0] = 0;
data[1] = 6;
for (i = 2; i < 64; i++)
data[i] = 0;
if (!dev.Transmit(data)) MessageBox.Show("Error");
}
else MessageBox.Show("Disconnected!");
}

private void btn7_Click(object sender, EventArgs e)
{
if (dev.AttachedState)
{
data[0] = 0;
data[1] = 7;
for (i = 2; i < 64; i++)
data[i] = 0;
if (!dev.Transmit(data)) MessageBox.Show("Error");
}
else MessageBox.Show("Disconnected!");
}

private void btn8_Click(object sender, EventArgs e)
{
if (dev.AttachedState)
{
data[0] = 0;
SVTH: L TN LC GVHD: NGUYN DUY THO

MCH GIAO TIP MY TNH QUA CNG USB TRANG 37

data[1] = 8;
for (i = 2; i < 64; i++)
data[i] = 0;
if (!dev.Transmit(data)) MessageBox.Show("Error");
}
else MessageBox.Show("Disconnected!");
}
}

}








TI LIU THAM KHO
1. https://sites.google.com/site/lhpscienceclub/
2. http://www.picvietnam.com/forum/forumdisplay.php?f=45
3. http://www.microchip.com/
4. USB in nutshell - Craig Peacock

You might also like