You are on page 1of 15

CHNG I : GII THIU USB V PIC 18F4550

1. Gii thiu chung v chun USB


1.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-v-chy m vi tnh nng cm
nng thit b (ni v ngt cc thit b khng cn phi khi ng
li h thng).

Universal Serial Bus (USB) l mt trong nhng giao thc ph bin


nht c s dng trong sn phm in t tiu dng hin nay,
bao gm my tnh, my nh, thit b GPS, my MP3, modem, my
in, my scan, Cc chun USB ban u c pht trin bi
Compaq, Microsoft, Intel, v NEC, v sau bi Hewlett-Packard,
Lucent v Philips. Cc cng ty ny cui cng hnh thnh t chc
phi li nhun USB Implementers Forum Inc. t chc ny pht trin
v cng b cc thng s k thut ca USB.

1.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 xong 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.
- M rng Port: USB cung cp mt gii php m rng port cho
php ti a 127 thit b kt ni cng lc vi mt PC.
- tin cy cao.
1.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.

1
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.
1.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 nng khc. Vi 7 bit a ch, ngoi
my ch USB ra n c th qun l ti a 127 thit b ngoi vi.

USB l mt giao thc ni tip tc cao, n c th cung cp in


cho cc thit b kt ni vi n. Mt bus USB h tr kt ni ln n
127 thit b (gii hn bi cc trng a ch 7-bit, lu rng a
ch 0 khng c s dng v n c mt mc ch c bit) c
kt ni thng qua dy cp vi chiu di ln n ba hoc thm ch
nm mt. Nhiu thit b USB c th c kt ni vi bus thng
qua Hub, Hub ny c th c 4, 8, hoc thm ch 16 cng. Mt
thit b c th c cm vo mt Hub m Hub ny kt ni n cc
Hub khc, v nh vy. S lng ti a cho php l su tng. Theo
cc c im k thut, khong cch ti a ca mt thit b n
my ch ca n l khong ba mi mt, thc hin bng cch s
dng 5 hub. y l khong cch di nht. Nu cho khong cch
di hn ta c th dng chun truyn Ethernet.

2
- My ch USB:

Ch c duy nht mt Host trong 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.
1.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 tc bnh thng (USB full-speed): 12Mb/s.
- USB tc thp (USB low-speed): 1.2Mb/s.

3
Cp USB bao gm 4 dy l D+ v D- to thnh 1 cp xon truyn
V BUS V BUS
tn hiu, v GND cp ngun cho thit b ( thng th
= 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


R pd
cn v pha thit b ngoi vi, cc u dy D+, D- c bo v
R pu
bi cc in tr cui ( chnh l cc in tr ). Thit b tc
cao hoc bnh thng 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.

4
Ngun ti a cho mt thit b bn ngoi kt ni s dng in p cp
bi cng USB c gii hn trong khong 100mA ti in p 5.0V. C
hai loi u kt ni c s dng ph bin l kiu A v kiu B:

u ni kiu A u ni
kiu B

Chn s Tn Mu sc

1 + 5.0 V

2 - Data Trng

3 + Data Xanh l cy

4 Ground (t) en

Bng 8.1 Quy nh chn ca u kt ni USB

1.6. M hnh lung d liu USB


1.6.1. Cc thnh phn trong vic kt ni USB.

Vic thc hin kt ni USB gm cc thnh phn:

- Thit b vt l USB (USB physical device): L thit b tch ri


c ni vi Host thng qua cp USB thc hin cc chc
nng theo yu cu ca ngi dng cui.
- Phn mm khch (Client software): Phn mm thc thi trn
Host, tng ng vi thit b USB. Phn mm ny c th c
h iu hnh cung cp hoc i km theo thit b ca nh sn
xut.
- Phn mm h thng USB (USB system software): L phn mm
h tr USB trong h iu hnh ring. Phn mm h thng USB

5
c cung cp bi h iu hnh, n c lp vi thit b USB v
phn mm khc.
- USB Host Controller (Giao din BUS ca Host): L phn cng v
phn mm cho php thit b USB gn vi Host. Vi thit b vt
l USB c cc lp sau:
Lp giao din BUS USB (USB bus Interface) c vai tr trong vic
kt ni vt l/ bo hiu/ gi tin gia thit b USB vi Host.
Lp thit b USB (USB device Layer) l ni phn mm h thng
USB thc hin cc hot ng chung vi thit b USB.
Lp chc nng (Function layer): Cung cp cc kh nng b
sung ti Host thng qua mt phn mm khch thch hp.

Hnh : M hnh lung d liu USB

1.6.2. Bus Topology

Bus Topology gm 4 thnh phn chnh:

- Host v cc thit b: y l thnh phn s cp ca 1 h thng


USB.
- Cu trc vt l: cho thy cc thnh phn ca 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 1 thit b.
- Mi lin quan gia chc nng v phn mm khch ( Client
Software).
1.6.2.1. USB Host

6
Kt cu logic ca Host gm c 3 phn nh hnh di:

- B iu khin Host.
- Phn mm h thng USB c gp chung ( thc cht n
gm: USB Driver, Host Controller v Host software).
- Phn mm khch ( Client Software).

Hnh : Kt cu Host

1.6.2.2. Cc thit b USB

Kt cu logic ca mt thit b USB vt l c ch ra nh hnh


gm:

- Giao din bus USB.


- Thit b USB logic.
- Chc nng.

7
Hnh : Kt cu thit b vt l

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 logic c ni gho ti Host
c bn ging nhau.

1.6.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 di. Cc im ni USB c
thng qua bi 1 lp thit b USB c hiu l Hub. Cc im ni
b sung c kt ni thng qua Hub c gi l cc cng. Hub
bao gm c 1 Hub c ni vi n 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 (
Funtion).

8
Hnh : Kin trc bus vt l USB

1.6.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 thit b logic.

Hnh : Kin trc bus logic USB

1.6.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 khc c th c gn ti USB.

1.7. Lung truyn thng USB

9
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 mt thit
b, im cui ca thit b c s dng cc nh hng ca
mi lung truyn thng. 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.

1.8. 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 khc trn my
ch vi mt bn l mt im cui trn thit b USB. USB cung cp
cc dng truyn ti khc nhau c ti u ha 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 iu khin
(control transfer); truyn ngt (interrupt transfer); truyn ng
thi (isochronous transfer) v truyn khi (bulk transfer).

- Truyn iu khin (control transfer): l truyn theo kiu 2


chiu, thng s dng ci t phn cng v a ra lnh cho
iu khin thit b. Kiu truyn ny c lm vic mc u
tin cao vi kh nng kim sot li t ng. Mi gi tin c th
truyn ln n 64 byte.
- Truyn ngt (interrupt transfer): l kiu truyn mt chiu, s
dng cho cc thit b cn cung cp mt lng d liu nh (ch
truyn theo hng vo) v tun hon chng hn nh: chut,
bn phm u s dng kiu truyn ngt. Khng ging nh c
ch ngt, y khng c yu cu ngt c gi ti ch USB
m my tnh s hi vng theo chu k xem c thit b no gi
d liu ti khng. Thng thit b gi ti ch my tnh 8 byte
d liu trong 1 ln truyn. Cc thit b s dng kiu truyn
ngt nh bn phm, chut hay cng c th dng cho mt thit
b o lng khc.
- Truyn ng thi (isochronous transfer): l phng php truyn
mt chiu, hng cuc truyn c th t thit b ngoi vi v

10
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.
Khi lng d liu cn truyn ln vi tc d liu c quy
nh, chng hn nh dng card m thanh th thng p dng
truyn ng b. Theo cch truyn ny mt gi tr tc d liu
xc nh c duy tr. Vic hiu chnh li khng c thc hin
v cc li l t cng khng gy nh hng ng k n cht
lng cuc truyn.
- Truyn khi (bulk transfer): l phng php truyn mt chiu,
hng truyn c th t im cui v my ch hay ngc li.
Khi c lng d liu ln cn truyn v cn kim sot li truyn,
nhng li khng c yu cu thc p v thi gian truyn th d
liu thng c truyn theo kiu khi. Kiu truyn ny thng
p dng cho cc thit b nh my in, my qut.

GIAO TIP USB VI PIC 18F4550

Chng ny m t cc nguyn tc c bn ca bus USB v i tm hiu


cc ng dng da trn USB vi vi iu khin PIC. Cc bus USB l mt
giao thc phc tp. Trong bi ny cp nhng nguyn tc c bn
ca USB v cch kt ni giao tip vi vi iu khin PIC 18f4550

11
Mt s vi iu khin PIC18 h tr giao tip USB. V d, cc vi iu
khin PIC18F4550 h tr c hai chun USB low speed v full
speed cho php giao tip gia PC v vi iu khin . Cc v d
chng ny chng ta s s dng vi iu khin PIC18F4550.

Hnh bn di m t tng quan v khi giao tip USB ca


pic PIC18F4550. Pin RC4 (pin 23) v RC5 (pin 24) ca PORTC c s
dng cho giao tip USB. RC4 l chn d liu D- v RC5 l chn d
liu D+. Cc in tr ko ln c tch hp sn bn trong vi iu
khin c th kch hot hoc v hiu ha (UPUEN = 0) nu mun. Khi
ta c th s dng cc in tr mc thm ngoi. hot ng
ch low speed mt in tr ko ln bn trong hoc bn ngoi kt
ni vi chn D-, ch full speed mt in tr ko ln bn trong
hoc bn ngoi kt ni vi chn D+.

Hot ng ca cc m-un USB c cu hnh s dng ba thanh ghi


iu khin, v tng cng hai mi hai thanh ghi c s dng
qun l giao tip USB. Cu hnh ca cc thanh ghi l mt nhim v
rt phc tp v khng c cp trong cun sch ny. Bn c
quan tm c th tham kho datasheet ca PIC18F4550.

12
M-un USB trong pic18f4550

Cc hm trong h tr giao tip USB ca trnh bin dch CCS

usb_init() Khi to phn cng USB. Khi ch thit b kt ni n bus


bng mt vng lp v tn. Hm s kch hot cho php chc
nng ngt USB

usb_init_cs() Ging nh usb_init(), nhng n khng ch thit b kt ni n


bus. y hu ch khi thit b hot ng khng s dng ngun
cp t cng USB v thit b c th hot ng m khng cn kt
ni n cng USB

usb_task() Nu bn s dng kt ni nhy (connection sense), v s dng


hm usb_init_cs() , khi bn gi hm ny theo nh k

13
quan st chn kt ni nhy (connection sense pin). Khi PIC
c kt ni n BUS, hm ny s khi to (chun b) cc khi
ngoi vi giao tip USB. Khi thit b b ngt kt ni khi bus, n
s reset USB stack v cc khi ngoi vi. Hm kch hot cho
php chc nng ngt USB

Ch : trong ng dng bn phi nh ngha USB_CON_SENSE_PIN n chn


kt ni nhy

usb_detach() Khi bn ngt kt ni PIC n Bus. Hm ny c gi t ng


bi usb_task() nu kt ni b mt, nhng n c th gi bi
ngi s dng.

usb_attach() Khi kt ni PIC n bus. Hm ny c gi t ng bi


usb_task() nu c kt ni , nhng c th gi bi ngi s dng.

usb_attached( Tr v TRUE nu thit b kt ni n cng USB. Mt on macro


) co nhim v quan st chn c nh ngha
trong USB_CON_SENSE_PIN

Mt vng lp v tn ch n khi thit b c enumerated

usb_wait_for_e
numeration()

usb_enumerat Tr li TRUE nu thit b c enumerated thnh cng bi CPU.


ed() Nu thit b c enumerated bi PC, khi bn c th
gi/nhn cc gi tin

usb_put_pack t mt gi tin vo mt b m ca endpoint c ch nh.


et Tr li TRUE nu thnh cng, FALSE nu buffer ang cn y
vi cc gi tin trc
(endpoint,
data, len, tgl)

usb_puts a d liu n endpoint c ch nh. S khc bit gia


usb_puts() v usb_put_packet() l usb_puts() gi lin tip nhiu
(endpoint,
gi tin nu d liu mun gi c kch thc ln hn kch thc
data, len,
gi tin

14
timeout)

usb_kbhit(end Hm tr v TRUE nu endpoint ch nh c d liu trong b


point) m nhn

usb_get_packe c tt c cc bytes t b m ca enpoint c ch nh v


t con tr ptr tr n a ch lu ca byte. Hm tr v s byte
c lu
(endpoint, ptr,
max)

usb_gets(endp c mt thng ip ( message ) t endpoint c ch nh. S


oint, ptr, khc bit gia usb_get_packet() and usb_gets() l
usb_gets() ch thng ip nhn y khi thng ip c
max, timeout)
cha nhiu hn trong mt gi tin. Tr v s byte c nhn

15

You might also like