You are on page 1of 18

GIAO TI P USB

USB (Univeral Serial Bus) l hnh thc giao tip hu dng vi tnh nng Plug and Play Ra i t nm 1996, l kt qu ca s hp tc ca 7 cng ty hng u th gii: Compaq, Digital Equipment Corporation, IBM, Intel, Microsoft, NEC, v Northern Telecom. USB tao c hi cho cc thit b giao tip tc cao: digital camera, multimedia device, telephone device, USB disk,

1 Mc tiu ca giao tip USB


D s dng: Plug and Play: tnh nng cho php ngi s dng khng cn tt my ci t cu hnh nh interrupt, dipswitch, B iu khin USB t pht hin v nhn bit khi thit b c kt ni hoc ngt kt ni. H tr truyn d liu thi gian thc: ng dng ny cho php giao tip vi cc thit b multimedia truyn tn hiu m thanh hoc hnh nh M rng Port: USB cung cp 1 gii php m rng port cho php ti a 127 thit b kt ni cng lc vi 1 PC Vi tc kt ni m rng ln n 12Mbps, nhng mc tiu ca USB l dnh cho cc thit b tc thp v trung bnh nh: keyboard, mice, modem, scanner,

2 Cc chun Giao tip


USB 1.0 USB 1.1 USB 2.0

3 Cp USB
USB truyn tn hiu v ngun qua mt cp 4 si hnh 4.2: Vbus: in p cung cp cho thit b. oTn hiu D+. oTn hiu D-. oDy t GND.

Page 1 of 18

Hnh 4.2: Cable USB 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.3V cho u D-. Nhng in tr ny to nn cc mc in th khc nhau gia D+ v Dgip cho my ch pht hin c vic cm vo hay rt ra ca thit b cng nh tc truyn d liu ca thit b.

4 Port kt ni USB
C 2 loi thng dng: loi A v loi B Loi A: thng dng kt ni upstream (trn PC) Loi B: thng dng kt ni downstream (trn thit b) Tn hiu logic trn USB: s dng m NRZI, Logic 1: D+ >2.8V, D- <0.3V; Logic 0: D+ <0.3V, D- >2.8V Tr khng ng dy: 90

5 Tc kt ni USB
bo tc s kt ni thit b USB phi c in tr 1.5k ko ln ngun ng D+ hoc D. in tr ko ln ny cng dng host bit s hin hu ca thit b. chn tc Full speed (12MBit/s), in tr 1.5k c ko ln 3.3V ng D+ chn tc Low speed (1.5Mbit/s), in tr 1.5k c ko ln 3.3V ng D. Mt s thit b c in tr c xy dng mch bn dn, c th iu khin bng firmware

6 Ngun in cung cp
Mt li im quan trng ca thit b USB l khng cn ngun cp in bn ngoi m c cp t host Thit b USB c 3 ch ngun: Low power: dng cung cp 100mA, in p trong khong 4.4V - 5.25V Page 2 of 18

High power: dng cung cp ti a 500mA, in p bus t 4.75V-5.25V Self power: thit b c cp ngun t bn ngoi

7 M hnh mng

Cc thit b hot ng theo chun USB c kt ni vi nhau theo hnh mng hnh sao phn cp. Trung tm ca mi hnh sao ny l cc Hub. Trong hnh nh vy, cc thit b USB c chia lm 3 loi chnh:

USB Host: thit b ng vai tr iu khin ton b mng USB (c th ln ti ti a 126 thit b). V d nh trn my tnh, USB Host c gn trn mainboard. giao tip v iu khin cc USB device, USB Host controller cn c thit k tch hp vi USB RootHub (Hub mc cao nht). Vai tr ca thit b USB Host:

Trao i d liu vi cc USB Device iu khin USB Bus: o Qun l cc thit b cm vo hay rt ra khi Bus USB qua qu trnh im danh

(Enumeration) o Phn x, qun l lung d liu trn Bus, m bo cc thit b u c c hi trao i d liu ty thuc vo cu hnh ca mi thit b.

USB Device: l cc thit b ng vai tr nh cc slave giao tip vi USB Host. Xin lu mt iu ht sc quan trng l cc thit b ny hon ton ng vai tr b ng, khng bao gi c t gi gi tin ln USB Host hay gi gi tin gia cc USB Device vi nhau, tt c u phi thng qua qu trnh iu phi ca USB Host. Cc bn s hiu c ch ny r hn trong phn truyn thng ca chun USB. Chc nng ca thit b USB Device: o Trao i d liu vi USB Host o Pht hin gi tin hay yu cu t USB Host theo giao thc USB. Page 3 of 18

USB Hub: ng vai tr nh cc Hub trong mng Ethernet ca chng ta. Cp ngun cho cc thit b USB

8 Kch bn hot ng

Qu trnh hot ng ca chun USB c th c chia lm hai giai on chnh:

Qu trnh im danh: l qu trnh USB Host pht hin cc thit b cm vo v rt ra khi ng USB Bus. Mi khi mt thit b tham gia vo Bus USB, USB Host s tin hnh c cc thng tin m t (Description) ca USB Device, t thit lp a ch (NodeID) v ch hot ng tng ng cho thit b USB Device. Cc a ch s c nh t 1->126 nn v l thuyt, chun USB cho php kt ni 126 thit b vo ng Bus. Khi thit b rt ra khi ng Bus, a ch ny s c thu hi.

Qu trnh truyn d liu: hiu qu trnh truyn d liu ny, chng ta phi hiu c hai khi nim c th ni l kh v quan trng nht trong chun USB, l khi nim Interface v Endpoint (Xin lu l ch thit b USB device mi c Endpoint, USB Host khng c Page 4 of 18

Endpoint). Mt thit b USB s c th c nhiu Interface, mt Interface c th s dng nhiu Endpoint. Ti xin ly mt v d sau cc bn thy: Th nh USB ch s dng 1 Interface theo chun USB Mass storage, interface ny s dng 3 Endpoint. B USB 3G s dng cc Interface khc nhau nh: CD Room, Mass storage v Communication, mi interface li s dng nhiu Endpoint khc nhau. Nh vy, ng gc mc h thng, cc Interface chnh l cc dch v khc nhau m thit b cung cp cn cc Endpoint chnh l cc cng cn thit cho mi dch v. Tng ng vi khi nim trong kin trc TCP/IP, v d giao thc FTP l giao thc s dng truyn file s s dng hai cng 20,21. Trong khi giao thc HTTP li s dng port 80, giao thc Telnet s dng port 23. Thc t cc Endpoint cng nh cc Port trong chun TCP/IP ng vai tr nh cc b m truyn/nhn d liu. Nh vic s dng nhiu b m m cc qu trnh truyn thng c tin hnh song song v cho tc cao hn, bn cnh gip cho vic phn tch cc dch v khc nhau. Vi chun USB, cc thit b c thit k vi ti a l 16 Enppoint. Cc Endpoint c phn loi theo hng truyn d liu nhn t pha USB Host. C th Cc Endpoint truyn d liu t USB Device ti USB Host l endpoint IN Cc Endoint truyn d liu t USB Host ti USB Device l endpoint OUT Hnh trn l kt qu chng ta xem cc thng tin cu hnh ca mt thit b USB hot ng vi 1 Interface, Interface ny s dng hai Endpoint (0x01 v 0x82), 1 Endpoint In v mt Endpoint Out, c hai Endpoint hot ng ch Bulk Transfer (Chi tit chng ta s xem phn ch truyn ngay sau y). Trn Linux, cc bn c th dng lnh lsusb xem cc thng tin ny vi bt c thit b USB no cm vo Bus. truyn c d liu theo chun USB, cc thit b USB Device phi c kt ni vi USB Host thng qua cc Pipe (ng ng). Mi Pipe s ni mt Endpoint ca USB Device vi USB Host.

9 M t h thng USB
Mt h thng USB c m t bi ba nh ngha: Kt ni USB, cc thit b USB v 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.

Page 5 of 18

Cc m hnh lung d liu: L hnh thc m trong d liu di chuyn trong h thng qua 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 v kh s phn x ban u.

10 Cc kiu truyn
C 4 kiu truyn USB:

10.1 Control transfer: truyn 2 hng


H tr ci t, truyn thng tin gia host v function. Gm 3 giai on: setup, data, status. Mc ch: truyn thng tin khi thit b bt u kt ni vi host

10.2 Isochronous transfer: truyn 1 hng hoc 2 hng


Mc ch: truyn d liu vi tc c nh, b qua li. V d: truyn voice qua USB

10.3 Interrupt transfer: Ch truyn 1 hng i vo host


Mc ch: truyn d liu nh, khng lin tc. V d: thit b s dng interrupt nh keyboard, mouse.

10.4 Bulk transfer: Truyn 1 hng hoc 2 hng


Mc ch: truyn d liu ln, chnh xc, khng khc khe v thi gian. V d: scanner, printer, USB disk

11 Cc loi gi d liu (packet)


Vic truyn d liu cng USB lun c khi ng t host. D liu truyn i gm 5 loi gi (packet): Token packet: bo mode truyn Start of Frame packet: ch th bt u 1 khung mi Data packet: cha d liu c truyn i Handshake packet: dng xc nhn d liu v bo li Special packet: dng bo tc m host mun truyn

11.1 TOKEN packet


SYNC: byte ng b tn hiu clock, thng chn 01h PID (Packet identifier): cho bit loi packet. C 4 bit v tr na byte cao, 4 cn li l b ca 4 bit ID dng kim tra. Page 6 of 18

ADDR: xc nh a ch ca thit b ENDP: xc nh knh vo ca thit b CRC (Cyclic Redundancy Check): gm 5 bit kim tra

11.2 Data packet


DATA: c 2 loi DATA0, DATA1, c th c chiu di t 0 n 1023 byte

11.3 Start of Frame Packet


SOF packet c truyn bi host sau mi 1ms.

11.4 Handshake packet


C 3 loi Handshake packet c xc nh bi ID: ACK: xc nhn gi nhn thnh cng NAK: bo co thit b khng th nhn hoc gi gi d liu STALL: yu cu s can thip t host Special packet C 4 loi Special packet c xc nh bi ID: PRE: yu cu mode truyn tc thp ERR: bo li Plit: chia d liu truyn Ping: dng kim tra ng truyn

Page 7 of 18

12 Control transfer (truyn iu khin)


Vic truyn iu khin gm 3 bc: Setup stage Data stage Status stage

12.1 Setup stage:


Gm 3 gi packet: Token: truyn a ch v end point Data: lun truyn d liu Data0 ci t kch thc d liu Handshake: bo nhn thnh cng hoc bo li

12.2 Data stage:


Gm 3 gi packet: Token: bo hng truyn IN hoc OUT Data: cc byte d liu c truyn Handshake: xc nhn thnh cng hoc bo li truyn

12.3 Status stage:


Bo trng thi truyn, c 2 trng hp xy ra. IN: khi host nhn d liu OUT: khi host gi d liu

13 Isochronous transfer
Khi host truyn 1 gi IN token, thit b s truyn d liu ti host. Nu host truyn OUT token, thit b s chn data ti host ngay sau . Khng c qu trnh handshake trong Isochronous transfer

14 Bulk transfer
Truyn tng t nh Isochronous transfer ngoi tr c thm chu k Handshake sau chu k d liu bo m d liu chnh xc C 3 tn hiu bt tay: ACK: nu d liu nhn c khng c li NAK: bo rng thit b khng th thc hin c yu cu t host STALL: bo rng c li trn thit b v yu cu can thip phn mm t host

Page 8 of 18

15 Interrupt transfer
Tng t nh vic truyn kiu Bulk transfer ngoi tr ch c IN token. Khi nhn c IN token, thit b truyn d liu v host Nu thit b khng c d liu ngt tr v th bo NAK Nu thit b b tr hon hoc yu cu can thip phn mm t host th bo STALL

16 Cc bc kt ni thit b qua cng USB


Khi mt thit b USB c kt ni vo bus, host s thc hin 1 tin trnh xc nhn v qun l thit b, tin trnh ny l c tnh Plug and Play ca USB Tin trnh ny gm cc bc sau: Attached: Khi c kt ni thit b ch s nhn bit nh s thay i tn hiu D+ v DPowered: host gi lnh port enable and reset, ng thi cp dng 100mA cho thit b, lc ny thit b c khi ng. Default: sau khi reset, thit b trng thi mc nh (default) vi a ch 0 v endpoint 0 Address: host gn 1 a ch cho thit b qun l Configured: host gi lnh GET DESCRIPTOR n thit b yu cu nh cu hnh thit b, sau host gn cc gi tr cu hnh thit b qua setup packet. Lc ny thit b sn sng s dng

17 Cc lp thit b USB
17.1 Cc thnh phn ca mt 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.

17.2

Cc lp thit b c nh ngha
Cc lp thit b c nh ngha cho giao tip USB: 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

Page 9 of 18

ng thi cho lung m thanh hoc kiu truyn khi cho d liu c m ho bng giao thc MIDI (Musical Instrument Digital Interface) 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 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. 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 gm modem ADSL, modem in tn, 10BASE-T Ethernet adapter v hub 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). 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 sa li 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. Lp thit b ny c bit n khi chng ta s dng chc nng bootloader cho vi iu khin. 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. 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 Page 10 of 18

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. 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 . 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 . Lp thit b lu gi nh tnh: 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. 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. 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. 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 .

17.3 Lp thit b giao din ngi s dng (HID-Human Interface Device)


Lp thit b giao din ngi s dng 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 Page 11 of 18

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.

17.3.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 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.

Page 12 of 18

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, vi cc im cui ton tc th tc ti a l 64 KB/s cn im cui ngt tc cao th tc ti a vo khong 24 MB/s . Vi bn Windows 98 Gold th n ch h tr USB 1.0 tc l khng h tr im cui ngt ra do tt c d liu truyn t my ch xung thit b phi s dng truyn iu khin. 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 c ngha l vi cng mt giao tip USB trn mt thit b nhng ta c th s dng hai lp giao tip khc nhau.

17.3.2

Cc yu cu v phn cng

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. Cc loi bo co (Report): 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. 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: Cc yu cu 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.

Page 13 of 18

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.

17.3.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 phi 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 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.

17.3.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 thng tin 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). B m t im cui ngt c bit (Feature Interrupt Endpoint Descriptor).

Page 14 of 18

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 (b m t Report s c ni c th sau).

17.3.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 cc s kin 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.

17.3.6

Cc yu cu m host c th gi ti mt thit b thuc lp HID

Nh trnh by trn, c t 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 din ra nh sau: ban u host pht ra gi thng bo setup, theo sau l gi d liu dnh cho thao 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 d liu theo sau gi thng bo setup, n c khun dng nh sau:

Hnh 4-4: Khun dng d liu ca giai on setup trong kiu truyn Control C mt s bit trong gi trn c gi tr ging nhau i vi c 6 yu cu l: 5 bit Destination type = o 00000B ch ra ch n ca yu cu l mt thit b. o 00001B: ch l mt giao din c th. Page 15 of 18

o o

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 = o 01 ch ra loi yu cu ny l dnh cho mt lp thit b c th. o 00: tc request l mt trong cc request chun (c 11 loi request chun). o 10: request c nh ngha bi nh cung cp thit b).

17.3.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.

17.3.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. Mt 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.

17.3.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. Page 16 of 18

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 yu cu ny.

17.3.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.

17.3.6.5

Set_Idle

Host gi yu cu ny l tit kim bng thng 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 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 Page 17 of 18

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.

17.3.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: o = 0000h: nn s dng giao thc khi ng; o 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.

Page 18 of 18

You might also like