Chuẩn giao tiếp USB

Embed Size (px)

Citation preview

USB v giao thc truyn tin

GIAO TIP USB

USB (Univeral Serial Bus) l hnh thc giao tip hu dng vi tnh nng Plug and PlayRa 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,

Mc tiu ca giao tip USBD 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 nhM rng Port:USB cung cp 1 gii php m rng port cho php ti a 127 thit b kt ni cng lc vi 1 PCVi 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,Cc chun giao tipUSB 1.0USB 1.1USB 2.0Port kt ni USBC 2 loi thng dng: loi A v loi BLoi A: thng dng kt ni upstream (trn PC)Loi B: thng dng kt ni downstream (trn thit b)Port kt ni USB (tt)Tn hiu logic trn USB: s dng m NRZILogic 1:D+ >2.8VD- 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 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 bn tri 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.

4. Ch truynChun USB cung cp cho chng ta tng cng l 4 ch truyn, p ng nhiu mc ch khc nhau ty thuc vo c ch truyn cng nh tc m ngi thit k mong mun.

Truyn iu khin (Control transfer): l ch truyn c tt c cc thit b USB h tr truyn cc thng tin iu khin vi tc tng i chm.

Truyn ngt (Interrupt transfer): s dng cho cc thit b cn truyn mt lng d liu nh, tun hon theo thi gian v d nh chut, bn phm. Khi , v d c 10s mt ln USB Host s gi request xung v USB Device s tr d liu v cho USB Host (vi trng hp Interrupt In Endpoint).

Truyn theo khi (Bulk transfer): s dng cho cc thit b cn truyn mt lng d liu ln, yu cu chnh xc tuyt i, khng c rng buc qu cht ch v thi gian thc v d nh th nh USB, my in. Ci ny tng t nh giao thc TCP trong mng Ethernet

Truyn ng thi (Isochronos transfer): s dng cho cc thit b cn truyn mt lng d liu ln vi tc rt nhanh, m bo rng buc v thi gian thc tuy nhin chp nhn hy sinh chnh xc mt mc nht nh nh cc thit b nghe nhc, xem phim kt ni theo chun USB. Chun ny tng t giao thc UDP trong mng Ethernet.

Trn y l bi gii thiu v chun USB. Thc s dng chun USB th khng qu kh nhng hiu cn k chun USB th thc s chng ta cn u t nhiu thi gian v cng sc. Hy vng bi vit ngn ny s gip cc bn trong qu trnh hc tp v lm vic. Chi tit cc bn c th tham kho sch "USB Complete" tuy nhin theo kinh nghim c nhn tc gi, cc bn nn kt hp gia c sch v t mnh lp trnh cho cc thit b chun USB, khi cc bn mi nm vng c. Ty vo chuyn mn ca cc bn, c rt nhiu bi ton c th gip cc bn nm vng hn v chun USB, tc gi xin a ra mt s v d cc bn tham kho theo cc mc t d ti kh.

1. Lp trnh giao tip vi mt thit b USB vi my tnh: USB Joystick

2. To ra mt thit b lm vic theo chun USB: c th s dng cc IC trn th trng nh PIC4550, AT91SAM256...

3. Lp trnh giao tip vi cc thit b USB chuyn dng s dng th vin WinUSB ca Microsoft

4. To driver cho chun USB trn Linux, lp trnh kt ni vi thit b.

USB v giao thc truyn tin

Trc y, thc hin giao tip gia my tnh v cc thit b ngoi vi chng ta thng tin hnh thng qua cng song song (LPT), hoc cng ni tip (RS232, COM). Tuy nhin do hn ch v tc v rm r trong cch b tr (kch thc cng kh ln), kh nng m rng km (mi my tnh ch c mt cng LPT v nhiu nht l 4 cng COM) nn trong cc my tnh i mi c bit l trong my tnh xch tay, ngi ta c xu hng thay dn cc cng giao tip truyn thng trn bng cng USB. Cc thit b ngoi vi i mi hin nay cng c xu hng lm theo theo chun giao tip mi ny thay th dn cc chun giao tip truyn thng.

Hnh 41:USB Logo

Trong cc thit b o lng tin hc truyn thng c thc hin kt ni vi my tnh ch yu vn thc hin qua giao tip RS232. V thc t trong phin bn trc ca phn mm GMI ny, tin hnh giao tip vi my tnh thng qua cng ni tip 232. Tuy nhin vi nhiu thit b i hi phi c nhiu my tnh hoc mt my tnh nhng phi c cc thit b chuyn i t cc chun giao tip khc sang chun RS232 (nh usb to 232, PCI to 232,) gy tn km. Vi vic ng dng USB vo thit b o lng ln ny em mong mun chun ny s tip tc ng dng cho cc thit b o lng tin hc sau ny, iu ny cng l xu th tt yu ca cc thit b ngoi vi hin i.

Universal Serial Bus (USB) l giao tip c tc cao v thun tin cho vic ghp ni cc ngoi vi vi my tnh. chng ny em s gii thiu cc khi nim chung nht v USB v lp giao din ngi dng Human Interface Device l lp thit b m em s dng cho h thng.

Khi nim v USB

USB (Universal Serial Bus) l bus ni tip a nng cho php cc thit b u cui giao tip vi my tnh ch (Host Computer).

Cc mc tiu hng ti khi s dng USB

D dng m rng cc thit b u cui ca PC.

Cung cp gii php chi ph thp song vn h tr truyn dn vi tc ln n 480Mb/s.

H tr ng dng thi gian thc nh voice, audio, video,...

Giao thc linh hot cho cc ch hn hp: isochronous data transfers v asynchronous messaging.

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.

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.

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.

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 7bit a ch, ngoi my ch USB ra n c th qun l ti a 127 thit b ngoi vi. Hnh 4.1 s minh ho kin trc ca USB.

Hnh 42: M hnh bus USB

My ch USB (USB Host)

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, chng trnh cho vi iu khin (firmware) hoc phn mm. Mt Hub gc (root hub) c tch hp ch trong h thng Host cung cp mt hoc nhiu im lp thm.

Cc thit b USB

Thit b USB c th l mt trong cc thit b sau:

Hub: cung cp im lp thm vo USB.

Cc chc nng: Cung cp cc kh nng cho h thng nh mt kt ni ISDN, digital joystick, hoc speakers.

Thit b hiu c giao thc USB

Cp USB

USB truyn tn hiu v ngun qua mt cp 4 si hnh 4.2:

Vbus: in p cung cp cho thit b.

Tn hiu D+.

Tn hiu D-.

Dy t GND.

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.

Hnh 43: 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.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.

Cc lp thit b USB

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.

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

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

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.

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.

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

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.

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.

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

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.

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 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 d liu theo sau gi thng bo setup, n c khun dng nh sau:

Hnh 44: 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 =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).

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.

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.

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

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.

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

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.