Professional Documents
Culture Documents
VI IU C BN TRONG K THUT VI X L
I. CU TRC PHN CNG CA MT VI X L Nhng kin thc c din t trong ti liu ny l nhng kin mang tnh ch quan m ngi vit mun san s vi cc bn c c cng mi quan tm v ch lin
quan n nhng vn c bn ca k thut vi x l ni chung, khng phi l kin
thc p dng cho mt loi vi x l c th. Trc ht trnh nhng bn khon ng tic trong khi nghin cu ti liu, ti xin c gii thiu i cht v 02 khi nim vi x l (microprocessor) v vi iu khin (microcontroller). V c bn hai khi nim ny khng khc nhau nhiu, vi x l l thut ng chung dng cp n k thut ng dng cc cng ngh vi in t, cng ngh tch hp v kh nng x l theo chng trnh vo
cc lnh vc khc nhau. Vo nhng giai on u trong qu trnh pht trin ca
cng ngh vi x l, cc chip (hay cc vi x l) c ch to ch tch hp nhng phn cng thit yu nh CPU cng cc mch giao tip gia CPU v cc phn cng
khc. Trong giai on ny, cc phn cng khc (k c b nh) thng khng c
hp, cc ngoi vi cng c tch hp vo bn trong IC v ngi ta gi cc vi x l c tch hp thm cc ngoi vi l cc vi iu khin. Vic tch hp thm cc
ngoi vi vo trong cng mt IC vi CPU to ra nhiu li ch nh lm gim thiu
cc ghp ni bn ngoi, gim thiu s lng linh kin in t ph, gim chi ph cho thit k h thng, n gin ha vic thit k, nng cao hiu sut v tnh linh
hot. Trong ti liu ny, ranh gii gia hai khi nim vi x l v vi iu khin
thc s khng cn phi phn bit r rng. Chng ti s dng thut ng vi x l khi cp n cc khi nim c bn ca k thut vi x l ni chung v s dng thut ng vi iu khin khi i su nghin cu mt h chip c th. V c bn kin trc ca mt vi x l gm nhng phn cng sau: - n v x l trung tm CPU (Central Processing Unit). - Cc b nh (Memories). - Cc cng vo/ra song song (Parallel I/O Ports). - Cc cng vo/ra ni tip (Serial I/O Ports). - Cc b m/b nh thi (Timers).
Ngoi ra vi mi loi vi iu khin c th cn c th c thm mt s phn cng khc nh b bin i tng t-s ADC, b bin i s-tng t DAC, cc mch
iu ch dng sng WG, iu ch rng xung PWM B no ca mi vi x l chnh l CPU, cc phn cng khc ch l cc c quan
chp hnh di quyn ca CPU. Mi c quan ny u c mt c ch hot ng nht nh m CPU phi tun theo khi giao tip vi chng. c th giao tip v
iu khin cc c quan chp hnh (cc ngoi vi), CPU s dng 03 loi tn hiu c
1
Basic Knowledges Of Microprocessor Technique bn l tn hiu a ch (Address), tn hiu d liu (Data) v tn hiu iu khin
(Control). V mt vt l th cc tn hiu ny l cc ng nh dn in ni t CPU
liu v bus iu khin. C th m t s b cu trc phn cng ca m t vi x l theo hnh sau: B nh Cng vo/ra song song Ngoi vi B Ngoi vi D
Bus a ch n bit (n ng tn hiu) CPU Bus d liu m bit (m ng tn hiu) Bus iu khin (x tn hiu) Cng vo/ra ni tip B m Ngoi vi A Ngoi vi C
Sau y l m t s b v cc phn cng bn trong mt vi x l. 1. n v x l trung tm CPU: CPU c cu to gm c n v x l s hc v lgic (ALU), cc thanh ghi, cc khi lgic v cc mch giao tip.
Chc nng ca CPU l tin hnh cc thao tc tnh ton x l, a ra cc tn hiu a ch, d liu v iu khin nhm thc hin mt nhim v no do ngi
lp trnh a ra thng qua cc lnh (Instructions). 2. B nh: Nhn chung c hai loi b nh l b nh chng trnh v b nh d liu. B nh chng trnh dng cha m chng trnh hng dn CPU thc hin mt nhim v no . Thng thng th b nh chng trnh l cc loi b nh
khng bay hi (non-volatile), ngha l khng b mt ni dung cha bn trong khi
ngng cung cp ngun nui. C th k ra mt s b nh thuc loi ny nh: ROM, PROM, EPROM, EEPROM, Flash.
B nh d liu l b nh dng cha d liu (bao gm cc tham s, cc bin
l cc b nh SRAM.
Basic Knowledges Of Microprocessor Technique 3. Cng vo/ra song song: y l cc ng tn hiu c ni vi mt s chn ca IC dng giao tip
vi th gii bn ngoi IC. Giao tip y l a in p ra hoc c vo gi tr
thng dng quy c lgic dng: gi tr lgic 0 ng vi mc in p thp xp x 0VDC, gi tr lgic 1 ng vi mc in p cao xp x +5VDC. Ty loi vi x l
m khong xp x l khc nhau nhng nhn chung l tng thch vi mc
lgic TTL. Mi cng vo/ra song song thng gm 08 ng vo/ra khc nhau v gi l cc cng 08 bit. Cc ng tn hiu vo/ra ca cc cng v thuc cng mt cng l c lp vi nhau. iu c ngha l ta c th a ra hay c vo cc gi
tr lgic khc nhau i vi tng chn cng (tng ng tn hiu vo/ra). Mt iu cn ch na i vi cc cng vo/ra l chng c th c tch hp thm (ni
ng hn l kim thm) cc chc nng c bit lin quan n cc ngoi vi khc. 4. Cng vo/ra ni tip: Khc vi cng song song, vi cng ni tip cc bit d liu c truyn ln lt
trn cng mt ng tn hiu thay v truyn cng mt lc trn cc ng tn hiu khc nhau. Thng thng th vic truyn d liu bng cng ni tip phi tun theo mt c ch, mt giao thc hay mt nguyn tc nht nh. C th k ra mt s giao
thc nh SPI, I2C, SCI Cng ni tip c 02 kiu truyn d liu chnh:
Truyn ng b (synchronous): thit b truyn v thit b nhn u dng chung
xung nhp ring. Tuy nhin hai ngun xung nhp ny khng c khc nhau qu nhiu. Xung nhp l yu t khng th thiu trong truyn d liu ni tip v n c vai
tr xc nh gi tr ca bit d liu (hay ni ng hn l xc nh thi im c
mc lgic trn ng truyn d liu). Cng ni tip c th c mt trong cc tnh nng sau: n cng: thit b ch c th hoc truyn hoc nhn d liu. Bn song cng: thit b c th truyn v nhn d liu nhng ti mt thi im ch c th lm mt trong hai vic . Song cng: thit b c th truyn v nhn d liu ng thi. 5. B m/B nh thi: y l cc ngoi vi c thit k thc hin mt nhim v n gin: m cc xung nhp. Mi khi c thm mt xung nhp ti u vo m th gi tr ca b m s c tng ln 01 n v (trong ch m tin/m ln) hay gim i 01 n v (trong ch m li/m xung). Xung nhp a vo m c th l mt trong hai loi: Xung nhp bn trong IC. l xung nhp c to ra nh kt hp mch dao
ng bn trong IC v cc linh kin ph bn ngoi ni vi IC. Ta c th v l nhp tim ton b cc phn cng bn trong vi x l (bao gm c CPU v cc 3
Basic Knowledges Of Microprocessor Technique ngoi vi) c th hot ng c. Trong trng hp s dng xung nhp loi ny,
ngi ta gi l cc b nh thi (timers). Do xung nhp bn loi ny thng u
tr v gi tr 0. Vi b m 8 bit, gi tr ti a l 255 v l 65535 vi b m 16 bit. Ngoi cc phn cng nu trn cn phi k n mt khi lgic khc l khi
giao tip bus. Khi ny c chc nng ghp ni gia cc bus bn trong chip v cc chn a ra ngoi chip. Mc ch ca vic a cc tn hiu a ch, d liu v iu khin ra ngoi l nhm m rng kh nng phi ghp thm ca vi x l vi cc
) hoc c tch ring (tn hiu a ch dng mt s chn, tn hiu d liu dng
mt s chn khc). Ngi ta thng dn knh (multiplex), tc l ghp chc
nng, gia bus a ch v bus d liu gim thiu s chn cn thit. Trong trng hp ny, tn hiu a ch s xut hin trc, sau l tn hiu d liu trn cng mt tp hp cc ng tn hiu. tch c 2 loi tn hiu th nh sn xut cung
cp cho ngi s dng mt ng tn hiu iu khin c tn l tn hiu cht a
ch (thng k hiu l ALE). Tn hiu ny s tch cc khi tn hiu a ch xut hin v khng tch cc khi tn hiu d liu xut hin trn bus. Cc IC thch hp vi vic tch tn hiu a ch v d liu l cc IC thuc h 74xx373/374 hoc 74xx573/574. Trn y l m t s b cu trc phn cng ca mt vi x l. Trc khi i tip, ti xin chia s vi bn mt kinh nghim qu bu khi nghin cu k thut vi x l. l bn phi bit chp nhn. ng! K thut vi x l khng phi l mt ci g tm linh, l mt mn khoa hc c c c s l thuyt v minh chng thc t r rng, ng n. Tuy nhin s l khng sai nu ti ni rng n cng rt
tru tng. i vi bn, khi cc bn ang c nhng dng ch trong ti liu ny,
bn cng nh ti trc y, v ti ngh l ng vi tt c nhng ai tng nghin cu k thut vi x l, cm thy c ci g tht tru tng, kh hiu, rt gy t
m trong cc khi nim (d l khi nim n gin) lin quan n lnh vc ny. 4
Chng ta khi mi bt u u t a ra nhng cu hi cho mnh i loi nh: ti Written by Nguyen Xuan Kien
Basic Knowledges Of Microprocessor Technique sao vi x l c th lm c nhiu vic n vy? ci g din ra bn trong chip khi chng ta cp ngun nui cho n? ti sao ta li c th tc ng n timer hay cc
ngoi vi khc thng qua cc dng lnh vit cho CPU? hoc thm ch l mch in
bn trong mt vi x l, mt ngoi vi, mt cng vo/ra nh th no? Nhng bn c bit nu i tm cu tr li cho nhng thc mc , bn s c th mt rt nhiu thi
gian, cng sc m hiu qu nghin cu s khng cao, v cho n khi tm thy cu
tng ng tn hiu trong mt mch in c tch hp b xu trong chip. Vo lc ny (vng, ti ni l vo lc ny!), bn ch cn bit, ci mch in ngi ta gi l ci b m, l ci cng vo/ra, chc nng ca chng l g, nguyn l hot ng ra sao v iu khin c chng th cn phi lm nhng g (c th l phi vit nhng g trong khi lp trnh). Tuy nhin, ni nh vy khng c ngha ti
khuyn cc bn hc mt cch hng, khng cn n kin thc c bn. Nu bn l ngi c t nhiu kin thc in t (c bit l in t s), bn qu l may mn khi c mt nn tng kin thc vng chc khi tip cn vi k thut vi x l. Bn
c th hiu d dng cu to ca mt b m, nguyn l hot ng ca n v chc chn bn thy d dng tip thu hn nu nh trong bi hc ti ni vi bn rng
trong vi iu khin h 8051 c tch hp t nht 02 ngoi vi gi l cc b m. l v bn c nhng khi nim c bn, nhng hnh dung v nhng ci gi l b m. Nu cha c nhng khi nim c bn, cha c nhng mng tng s b, bn s cm thy kh hiu, nhng s kh hiu chnh l l do chng ta lm vic vi nhau! Ch cn kin nhn i cht, nhng g bn phi chp nhn mt cch
thut vi x l khng gian a ch. N c hiu l s lng a ch m CPU c th phn bit c. Trong mt b nh c rt nhiu nh v CPU thng phi truy nhp (ghi hoc c) n tng nh c th, do CPU tt nhin phi phn bit
c cc nh ring r vi nhau. Mi nh cn phi c mt a ch gn vi n.
trong vi x l cn c mt s phn cng khc cng cn c mt a ch dnh ring cho n nh cc thanh ghi iu khin, cc thanh ghi d liu Thng th hu nh
tt c nhng phn cng cn c truy nhp hay tc ng n u phi c gn
vi mt hay nhiu a ch. Ly v d, c th giao tip v iu khin mt b m (timer/counter), CPU cn phi tc ng n cc thanh ghi quy nh ch hot
5
Basic Knowledges Of Microprocessor Technique ng, thanh ghi cha s m ca b m . Cc thanh ghi ny u c a ch gn ring cho chng v nh cc a ch m CPU c th ghi/c gi tr ca cc thanh ghi, qua tc ng ln b m. Vi x l hot ng theo mt s nguyn tc c bn sau: Cc thao tc tnh ton x l s c vi x l, hay ni ng hn l CPU, thc hin theo cc ch dn (chnh l cc lnh) t trong b nh chng trnh.
ng nhin trong b nh chng trnh khng c nhng ch dn kiu nh
hy a in p +5VDC ra chn cng A! hay dng ci b m li, ng cho n m thm mt xung nhp no na! hay hy tm thi ch
y cho n khi no in p ti chn B c gi tr lgic bng 0!. l ngn
ng ca con ngi, cc vi x l khng nghe c v ng nhin khng hiu c nhng cu , chng ch c th nhn bit c hai v ch hai gi tr lgic tri ngc nhau m thi. Hai gi tr lgic tri ngc nhau c th l
en-trng, khng-c, cao-thp iu khng quan trng, ci quan trng l v mt vt l (in hc), nh mt c ch no m khi c ni dung ca
phi th. Theo truyn thng ngi ta quy nh chung rng cc gi tr lgic
l 0 v 1. Biu th cc gi tr lgic theo quy c lgic dng l in p cao (xp x +5VDC) cho gi tr 1 v in p thp (xp x 0VDC) cho gi
tr 0. Nh vy, thay v ni vi vi x l rng hy a ra gi tr lgic 1 ti chn cng A!, ngi ta m ho cu ni thnh mt chui cc bit lgic 01 (v d 00001010 chng hn) ri t trong b nh chng trnh ca IC. CPU khi cp ngun nui s c v tt nhin n hiu ci chui 0-1 c ngha l g v n s thc hin theo ngha ca lnh n dch ra t chui 0-1
. Vy ti sao n hiu c? Xin tr li l bn li lan man ri y! N hiu c n gin v ngi ta ch to ra nh th ri. Hy bit chp nhn
nh vy vo lc ny! Vic thc hin cc lnh s din ra tun t (lnh a ch thp hn c thc hin trc) bt u t a ch reset.
a ch reset l a ch ca b nh chng trnh m ti , sau khi c cp
ngun nui, CPU s bt u c v thc hin theo ch dn c m ha t ti . Mi loi vi x l c mt a ch reset ring (thng l t 0000H) do nh sn xut quy nh. Cc lnh c thc hin tun t l nh c thanh ghi b m chng trnh(PC).
Thanh ghi ny cha a ch ca nh cha m ca lnh tip theo s c
thc hin. Khi CPU tm np c m ca lnh n, thanh ghi PC s t ng tng ln 1 n v tr vo nh cha m ca lnh (n+1).
6
Basic Knowledges Of Microprocessor Technique CPU thc hin mt lnh theo cc bc nh. Thng th cc bc bao gm: tm np m lnh (fetch-tc l truy cp b
nh chng trnh, c ly gi tr ti nh c a ch tr bi thanh ghi PC, lu vo mt thanh ghi chuyn dng cha m lnh trong CPU), gii m lnh
vi phng thc thc hin lnh mt cch thun tun t, ngha l thc hin
tun t 3 bc i vi lnh th n ri mi thc hin 3 bc tip theo ca
lnh th (n+1).
Np m lnh n
Gii m lnh n
Np m lnh n+1
Sau ny, cc vi x l c thit k vi CPU c module ha thnh tng phn ring bit c hot ng kh c lp vi nhau, do m cu trc x l
ng ng (pipeline) ra i. Vi cu trc ny, cc bc nh trong vic thc hin cc lnh s c gi ln nhau, trong khi mt phn cng ca CPU thc
x l ny. Ngn xp(Stack): L mt on b nh (thng t trong RAM) dng cha a ch tr v ca trong cc trng hp chng trnh con hoc chng trnh phc v ngt c gi. Ngoi ra ngn xp cn dng lu cc d liu tm thi. Ngn xp hot ng theo c ch vo sau ra trc (LIFO-Last In First Out). Thanh
7
Basic Knowledges Of Microprocessor Technique ghi con tr ngn xp (SP-Stack Pointer) l thanh ghi c ni dung l a ch ca nh trn cng ca ngn xp. Gi tr ca SP c tng gim mt cch
t ng. Ngn xp l phn cng v cng quan trng trong vi x l, n tham
trn ngn xp hoc ngn xp trng vi cc vng nh lu d liu khc. Khi xy ra mt trong cc s c trn, s khng c cch no kim sot c hot
ng ca vi x l v c th gy thit hi ln i vi h thng. Ging nh mt tr chi, khi bn tham gia v v mt l do no phm vo mt trong hai li , tt c nhng g bn s nhn c trn mn hnh l dng ch
GAME OVER! Vy th no l a ch tr v? Nh ni trn, vi x l thc hin cc lnh mt cch tun t: lnh 1, lnh 2,, lnh n, lnh n+1Tuy nhin i khi n gp phi mt lnh gi
chng trnh con v do phi chuyn sang thc hin chng trnh con . on m lnh ca chng trnh con thng nm mt ni khc trong b
nh chng trnh, tc l c a ch khng lin tip vi lnh gi chng trnh con. Nhc li rng thanh ghi PC lc ny ang cha a ch ca lnh tip sau lnh gi chng trnh con. CPU ch bit thc hin nhng g c ti a ch
cha trong PC, do vy m PC cn phi c np gi tr mi l a ch ca m lnh u tin ca chng trnh con. Vic np gi tr mi cho PC c thc hin mt cch t ng khi bn gi mt chng trnh con, ngoi ra a ch ca lnh tip sau lnh gi chng trnh con trong chng trnh chnh
cng c t ng lu li sau khi thc hin xong chng trnh con, CPU
s c th quay li thc hin tip chng trnh chnh mt cch ng ch, tun
xp. Ngi ta thc hin vic chia chng trnh chnh thnh cc chng trnh con (l cc on chng trnh thc hin mt nhim v c th) d dng cho vic lp trnh v d li. Bn s dn c c k nng chia nh chng trnh chnh thnh cc chng trnh con mt cch hp l trong qu trnh lp trnh cho vi x l. Ngn xp cng c vai tr tng t nh i vi ngt. Vy ngt l g?
l nhng yu cu do cc ngoi vi (l cc phn cng tch hp trn IC hoc cc tc ng t bn ngoi) gi ti CPU nhm i hi nhng p
Basic Knowledges Of Microprocessor Technique CPU khng phi thm d lin tc mt hay nhiu s kin . Bng cch ghp
cc s kin cn p ng vi cc c ch ngt khc nhau, khi mt s kin no
xy ra, phn cng ph trch ngt tch hp trn CPU s t ng bo cho CPU bit rng s kin xy ra. CPU s dng cng vic ang lm li (nhng phi thc hin xong lnh ang c thc hin, d mi ch giai on tm np m lnh), v chuyn sang p ng bng cch thc hin chng
trnh phc v ngt tng ng. p ng xong, tc l x l xong s kin gy ra ngt, CPU s tip tc quay li lm tip cng vic ang dang d (ng nhin l nh hot ng ca ngn xp). Ni n ngt khng th khng ni
hai trng hp, ngt c mc u tin cao hn s lun c phc v ngay lp tc. Ty loi vi x l m mc u tin c th thay i c linh hot hoc c nh. Khc vi chng trnh con, thi im thc hin chng trnh phc v ngt trong hu ht cc trng hp l nm ngoi s kim sot ca ngi lp trnh do ngt c th xy ra bt k thi im no, khi CPU ang thc hin bt k mt lnh no trong chng trnh chnh.
V th c ch hot ng mt cch t ng ca ngn xp l khng th thiu trong mt vi x l. Cng v th m cn phi xem xt k lng vic s dng cc ti nguyn (thanh ghi, nh, bin, thm ch l cc ngoi vi) ca
cc chng trnh phc v ngt trnh tranh chp vi chng trnh chnh. Thng thng th khi vo u chng trnh phc v ngt, ngi ta lu li
nhng ti nguyn dng chung trc khi thay i chng. Kt thc chng trnh phc v ngt, cc ti nguyn s c khi phc li gi tr ca chng trc khi tr v chng trnh chnh. Thc hin cc thao tc lu tr v khi phc ny ng nhin lin quan n ngn xp, ch c iu khng phi thc hin mt cch t ng bi CPU m phi do ngi lp trnh ch ng thc hin bng cc lnh. Ngi lp trnh phi quyt nh ct nhng g v ly ra nhng g! Cng phi ch n c ch hot ng vo sau ra trc ca ngn xp v ct i bao nhiu th phi ly ra by nhiu. Nu khng bn s phm phi mt li tng t nh trn ngn xp v ch c Cha mi bit c chuyn g s xy ra khi a ch tr v khng c np ng vo thanh ghi
PC. Mt trong nhng ti nguyn hay b thay i khi thc hin chng trnh phc v ngt l cc c trng thi ca CPU. l cc bit th hin trng thi hin thi ca CPU v ca kt qu thc hin cc lnh. Cc c ny thng c ghp vi nhau thnh mt thanh ghi v c gi l thanh ghi trng thi. III. LP TRNH CHO MT VI X L
Sau khi thit k xong phn cng, bn phi tin hnh lp trnh cho vi x l hon thin sn phm ca mnh. Vi x l c th c lp trnh bng ngn ng bc
Basic Knowledges Of Microprocessor Technique cho tng loi vi x l v thng c gi l hp ng (Assembly). Ngn ng bc cao l cc ngn ng gn vi ngn ng ca con ngi v ging nhau cho nhiu loi vi x l. Mi loi ngn ng u c u v nhc im ring. Vi nhng ngi mi
bt u nghin cu v k thut vi x l, theo kinh nghim ca ring bn thn, ti cho rng nn bt u vi ngn ng bc thp. C mt s im ng lu khi bn
lp trnh cho mt vi x l. l: Trc tin bn phi hiu r c cc ch a ch ca vi x l . Ch a ch chnh l cch ch ra ton hng nm u. Ton hng l cc tham s, cc hng s, cc nh, cc thanh ghi, cc bit, cc chay ni chung l cc i tng tham gia vo vic thc hin lnh. Thng thng th
mt ton hng (v d nh mt thanh ghi) c th c tr n bng mt vi ch a ch khc nhau. Mi ch a ch c th mnh ring ca n v
c. Mi lnh u c m ha (hay c quy c) bi mt chui cc bit 0 v 1. Cc vi x l khc nhau th c tp lnh khc nhau do nh sn xut chip cung cp. Trc khi bt u vit cc lnh c th, bn nn vit lu thut ton thc hin cc nhim v c th. Lu thut ton l s din gii trnh t thc hin cc nhim v mt cch lgic v lin mch. Vit lu thut ton ngay c cho cc chng
trnh ht sc n gin l mt thi quen rt tt ngay c khi bn l mt cao th trong lp trnh vi x l. Ch cn mt cht thi gian thc hin cng vic
pht hin ra li v thut ton x l nu chng trnh chy khng nh mun. i vi bn thn ti m ni, ti cho rng vit cc dng lnh cho mt
vi x l khng phi l kh, ngc li n rt d, ci kh l bn phi bit c
bt k thm ch ngay ln u tin v theo nh cch chng ti vn ni a trong chuyn mn, trnh lp trnh ca bn t n cp plug and play!
Basic Knowledges Of Microprocessor Technique Chng trnh s c vit trong mt file m ngun (thng c ui l ASM). Phn mm trn my tnh c tn l Trnh bin dch (Compiler) s dch file m ngun sang mt file c ui l OBJ. File ny cha thng tin cn thit c th chuyn i sang file c ui HEX
hay file c ui BIN (l cc file cha m chng trnh c chuyn sang dng Hexa hay Binary) c th np vo trong b nh chng trnh ca vi
ng nhin phi ch n cc phn cng lin quan nh ngn xp hay cc c trng thi. Vi mi loi vi x l/vi iu khin li c nhiu hng cung cp cc phn mm trn my tnh dng son tho v bin dch. Cc phn mm ny c cc t kha khc nhau m ngi lp trnh phi tun
th khi s dng. T kha l cc k hiu c th hin bng cc k t, c
vit trong file m ngun nhng n khng phi l lnh ca vi x l, ng nhin khng c dch ra m my, ch l cc ch dn cho phn mm trn
my tnh thc hin bin dch cc file m ngun sang m my mt cch
chnh xc.