Top Banner

of 130

Lap%20trinh%20he%20thong

May 31, 2018

Download

Documents

hutonline.net
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/14/2019 Lap%20trinh%20he%20thong

    1/130

    Bch Khoa Online

    Giao lu - Hc hi - Chia s kinh nghim

    ca cc th h sinh vin Bch Khoa

    hutonline.net

    http://hutonline.net/http://hutonline.net/
  • 8/14/2019 Lap%20trinh%20he%20thong

    2/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 1

    Chng 1KIN TRC V HOT NG CA H VI X L /

    MY TNH

    1. Cu trc lun lMy tnh s (Digital computer) l my gii quyt cc vn bng cch thc hin

    cc ch th do con ngi cung cp. Chui cc ch th ny gi l chng trnh (program).Cc mch in t trong mt my tnh s s thc hin mt s gii hn cc ch thn gincho trc. Tp hp cc ch th ny gi l tp lnh ca my tnh. Tt c cc chng trnhmun thc thi u phi c bin i sang tp lnh trc khi c thi hnh. Cc lnh cbn l:

    - Cng 2 s.- So snh vi 0.- Di chuyn d liu.

    Tp lnh ca my tnh to thnh mt ngn ng gip con ngi c th tc ng lnmy tnh, ngn ng ny gi l ngn ng my (machine language). Tuy nhin, hu ht ccngn ng my u n gin nn thc hin mt yu cu no , ngi thit k phithc hin mt cng vic phc tp. l chuyn cc yu cu ny thnh cc ch th c chatrong tp lnh ca my. Vn ny c th gii quyt bng cch thit k mt tp lnh mithch hp cho con ngi hn tp lnh ci t sn trong my (built-in). Ngn ng mysc gi l ngn ng cp 1 (L1) v ngn ng va c hnh thnh gi l ngn ng cp2 (L2).

    Tuy nhin, trong thc t, c th thc hin c, cc ngn ng L1 v L2 khngc khc nhau nhiu. Nh vy, ngn ng L2 cng khng tht s gip ch nhiu chongi thit k. Do , mt tp lnh k tip c hnh thnh s hng v con ngi nhiuhn l my tnh, tp lnh ny s to thnh mt ngn ng v ta gi l ngn ng L3. Ta cth vit cc chng trnh trong L3 nh l tn ti my tnh s dng ngn ng L3 (myo L3). Cc chng trnh ny sc dch sang ngn ng L2 v c thc thi bng mtchng trnh dch L2.

    Vic xy dng ton b chui cc ngn ng, mi ngn ngc to ra s thch hphn ngn ng trc s c th tip tc cho n khi nhn c ngn ng thch hp nht.

    S mt my o n cp c th biu din nh sau:

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    3/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 2

    Mt my tnh s c n cp c th xem nh c n-1 my o khc nhau, mi my o cmt ngn ng my ring. Cc chng trnh vit trn cc my o ny khng th thc thitrc tip m phi dch thnh cc ngn ng my cp thp hn. Ch c my tht dng ngnng my L1 mi c th thc thi trc tip bng cc mch in t. Mt lp trnh vin sdng my o cp n khng cn bit tt c cc trnh dch ny. Chng trnh trong my ocp n sc thc thi bng cch dch thnh ngn ng my cp thp hn v ngn ng myny sc dch thnh ngn ng my thp hn na hay dch trc tip thnh ngn ngmy L1 v thc thi trc tip trn cc mch in t.

    Cp n

    Cp 3

    Cp 2

    Cp 1

    My o Mn dng ngnng my Ln

    Chng trnh trong Ln c dch thnhngn ng ca my cp thp hn

    My o M3 dng ngnng my L3

    Chng trnh trong L3 c dch thnhngn ng L2 hay L1

    My o M2 dng ngn

    ng my L2

    Chng trnh trong L2 c dch thnh

    ngn ng my L1

    My tnh s M1 dngngn ng my L1

    Chng trnh trong L1 c thc thi trctip bng cc mch in t

    Hnh 1.1. My o n cp

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    4/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 3

    V cbn, my tnh gm c 6 cp:

    Cp 0 chnh l phn cng ca my tnh. Cc mch in t ca cp ny s thc thicc chng trnh ngn ng my ca cp 1. Trong cp logic s, i tng quan tm l cccng logic. Cc cng ny c xy dng t mt nhm cc transistor.

    Cp 1 l cp ngn ng my tht s. Cp ny c mt chng trnh gi l vi chngtrnh (microprogram), vi chng trnh c nhim v thng dch cc ch th ca cp 2. Hu

    ht cc lnh trong cp ny l di chuyn d liu t phn ny n phn khc ca my haythc hin vic mt s kim tra n gin.

    Mi my cp 1 c mt hay nhiu vi chng trnh chy trn chng. Mi vi chngtrnh xc nh mt ngn ng cp 2. Cc my cp 2 u c nhiu im chung ngay c ccmy cp 2 ca cc hng sn xut khc nhau. Cc lnh trn my cp 2 c thc thi bngcch thng dch bi vi chng trnh m khng phi thc thi trc tip bng phn cng.

    Cp th 3 thng l cp hn hp. Hu ht cc lnh trong ngn ng ca cp myny cng c trong ngn ng cp 2 v ng thi c thm mt tp lnh mi, mt t chc b

    Cp 5 Cp ngn ng hng vn

    Dch (chng trnh dch)

    Cp 4 Cp ngn ng hp dch

    Dch (hp dch)

    Cp 3 Cp hiu hnh

    Dch 1 phn (hiu hnh)

    Cp 2 Cp my quy c

    Thng dch (vi chng trnh)

    Cp 1 Cp vi lp trnh

    Vi chng trnh (phn cng)

    Cp 0 Cp logic s

    Hnh 1.2 Cc cp trn my tnh s

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    5/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 4

    nhkhc v kh nng chy 2 hay nhiu chng trnh song song. Cc lnh mi thm vosc thc thi bng mt trnh thng dch chy trn cp 2, gi l hiu hnh. Nhiulnh cp 3 c thc thi trc tip do vi chng trnh v mt s lnh khc c thng dchbng hiu hnh (do , cp ny l cp hn hp).

    Cp 4 tht s l dng tng trng cho mt trong cc ngn ng. Cp ny cung cpmt phng php vit chng trnh cho cc cp 1, 2, 3 d dng hn. Cc chng trnhvit bng hp ngc dch sang cc ngn ng ca cp 1, 2, 3 v sau c thng dchbng cc my o hay thc tng ng.

    Cp 5 bao gm cc ngn ngc thit k cho ngi lp trnh nhm gii quytmt vn c th. Cc ngn ng ny c gi l cp cao. Mt s ngn ng cp cao nhBasic, C, Cobol, Fortran, Lisp, Prolog, Pascal v cc ngn ng lp trnh hng i tngnh C++, J++, Cc chng trnh vit bng cc ngn ng ny thng c dch sangcp 3 hay 4 bng cc trnh bin dch (compiler).

    2. Giao tip ngoi vi

    Ta phn bit tt c 3 phng php xut / nhp d liu:- Nhp / xut bng cch hi trng thi ca thit b ngoi vi (polling)- Nhp / xut bng ngt (interrupt).- Nhp / xut bng cch truy xut trc tip vo b nhdng cc phn cng ph

    tr(DMA).

    2.1.Nhp / xut dliu bng cch hi vng (polling)

    Ta bit rng vn iu khin nhp / xut d liu s rt n gin trong trng hpthit b ngoi vi lc no cng c th lm vic vi P. Ta c th v d nh b hin th Led7 on lc no cng sn sng hin th d liu khi m P gi d liu ra. Tuy nhin, trong

    thc t, khng phi lc no P cng lm vic vi cc thit b ngoi vi c tnh nng nhtrn. V d nh khi lm vic vi mt my in, P yu cu in nhng my in khng sn sng(gi s nh ht giy, kt giy, ). Khi , P phi kim tra xem mt thit b m n cngiao tip c sn sng hay khng nu thit b sn sng th mi thc hin trao i d liu. kim tra cc thit b ngoi vi, P phi s dng cc tn hiu bt tay (handshake) xcnh tun t tng thit b, xem thit b no c yu cu trao i d liu. Cc tn hiu nyly t cc mch giao tip do ngi thit k to ra.

    Gi s h thng c 2 thit b ngoi vi, nu thit b 1 c d liu cn truyn n Pth n s gi 1 xung cht d liu ng thi to tn hiu sn sng cho thit b. Khi P

    kim tra tn hiu sn sng ca thit b 1 th n sc d liu vo t mch cht v xo tnhiu sn sng.

    Trong trng hp P mun gi d liu ra thit b 2, n sc tn hiu sn sng cathit b 2, nu thit b 2 c th nhn d liu th P s gi d liu ra mch cht v thit b 2sc d liu vo.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    6/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 5

    2.2.Ngt v xl ngt

    Trong cch thc thc hin trao i d liu bng cch hi vng nh trn, trc khitin hnh thc hin th P phi kim tra trng thi sn sng ca thit b ngoi vi. Tuynhin trong thc t ta cn phi tn dng kh nng ca P lm cc cng vic khc mkhng phi tn thi gian kim tra thit b, ch khi no c yu cu trao i d liu th mi

    tm dng cng vic hin ti. Cch lm vic nh vy gi l ngt P, khi c mt ngt xy rath ta phi thc hin gi cc chng trnh phc v ngt ti cc a ch xc nh ca P.Cc tn hiu ngt t thit b ngoi vi a vo P thng qua cc chn NMI hay INTR.

    2.2.1. Cc loi ngt

    Ngt cng: l cc yu cu ngt t cc chn NMI hay INTR.Ngt cng NMI l ngt khng che c cn ngt cng INTR c th che c. Cc

    lnh CLI (Clear Interrupt) v STI (Set Interrupt) chnh hng n vic P c chp nhnyu cu ngt ti chn INTR hay khng. Yu cu ngt ti chn INTR c th c cc kiungt t 00h FFh. Kiu ngt ny sc a vo bus d liu P xc nh kiu ngt(dng cho cc thit b ngoi vi khc nhau).

    Ngt mm: l cc ngt thc hin bng phn mm tc ng do ngi s dng.2.2.2. p ng ca P khi c yu cu ngt

    Khi c yu cu ngt n P v nu c php ngt, P s thc hin cc cng vicsau:

    - [SP] SP 2, [SP] FR (Flag Register): ct thanh ghi cvo stack.- IF 0, TF 0: khng cho thc hin cc ngt khc.- SP SP 2, [SP] CS: ct a chon m vo stack.- SP SP 2, [SP] IP: ct a ch trv sau khi phc v ngt

    74LS245

    23456789

    191

    1817161514131211

    A1

    A2A3A4A5A6A7A8

    GDIR

    B1

    B2B3B4B5B6B7B8

    INT2INT1

    INT7

    INT5

    VCC

    INT6

    INT4

    INT0

    1234

    56

    1112

    8

    INT3

    8086

    123456789

    10111213141516

    17181920 21

    222324

    25262728293031323334353637383940

    GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1

    AD0NMIINTRCLKGND RESET

    READYTEST

    INTA (QS1)ALE (QS0)

    DEN (S0)DT/R (S1)IO/M (S2)

    WR (LOCK)HLDA (RQ/GT1)HOLD (RQ/GT0)

    RDMN/MX

    BHE/S7A19/S6A18/S5A17/S4A16/S3

    AD15VCC

    Hnh 1.3 Kt ni ngt n gin

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    7/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 6

    - IP [S_hiu_ngt*4], CS [S_hiu_ngt*4 + 2]: ly lnh ti a ch phcv ngt tng ng

    - Sau khi kt thc chng trnh con phc v ngt (khi gp lnh IRET):+ IP [SP], SP SP + 2

    + CS [SP], SP SP + 2: ly li a ch trc khi gi chng trnh phc v

    ngt+ FR [SP], SP SP + 2: ly li gi tr thanh ghi c

    2.2.3. Xl u tin ngt

    Nh ta bit trn, khi P ang thc hin lnh, nu c ngt xy ra th P s tmngng chng trnh v thc thi chng trnh con phc v ngt. Trong thc t s c trnghp c nhiu yu cu ngt khc nhau cng mt lc, khi P s phc v cho ngt theoth tu tin vi nguyn tc l ngt no c mc u tin cao nht th s phc v cho ngt trc.

    Cc mc u tin ca cc ngt (t mc thp nht n mc cao nht):

    - Ngt thc hin chy tng lnh (INT 1)- Ngt che c INTR- Ngt khng che c NMI- Ngt ni b (INT 0: xy ra do php chia s 0, ngt mm)

    2.3.Nhp / xut dliu bng DMA (Direct Memory Access)

    Trong cc phng thc trao i d liu nh hai phn trn trnh by th vic traoi d liu gia thit b ngoi vi v h thng thng theo trnh t sau: tngoi vin vixl rii vo b nhhay tb nhn vi xl ri ghi ra ngoi vi. Trong thc t sc trng hp ta cn thc hin trao i d liu ngay gia ngoi vi v b nh. Khi ngi ta a ra cch truy xut b nhtrc tip (DMA). thc hin c vn ny,cc h vi x l thng thng dng thm cc mch chuyn dng iu khin qu trnhtruy xut b nh trc tip (DMAC Direct Memory Access Controller). C tt c 3 cch hot ng:

    Tn dng thi gian CPU khng dng bus:Ta phi dng thm mch pht hin cc chu k x l ni ca CPU v tn dng cc

    chu k ny thc hin trao i d liu.

    Treo CPUtrao i tng byte:CPU khng b treo trong khong thi gian di m ch b treo trong thi gian ngn

    trao i 1 byte d liu gia b nhv ngoi vi. Do , cng vic ca CPU khng bgin on m ch b chm i.

    Treo CPU mt khong thi gian trao i mt khi dliu:Trong cch ny, CPU b treo trong sut qu trnh trao i d liu.

    - CPU ghi t lnh v t ch lm vic vo DMAC.- Khi thit b ngoi vi c yu cu trao i d liu, n gi tn hiu DRQ = 1

    (DMA Request) n DMAC.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    8/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 7

    - DMAC gi tn hiu HRQ (Hold Request) n chn HOLD ca CPU yu cutreo CPU. Tn hiu ny s gimc cao cho n ht qu trnh trao i d liu.

    - Sau khi nhn yu cu treo, CPU s thc hin ht chu k bus ca m?nh ri treocc bus v gi tn hiu HLDA (Hold Acknowledge) bo cho DMAC bit cth s dng cc bus.

    - DMAC chuyn d liu t b nhn ngoi vi bng cch: a a ch byte utin ra bus a ch v a tn hiu MEMR c 1 byte t b nh, k tipDMAC a tn hiu IOW ghi d liu ra ngoi vi. Sau , DMAC gim sbyte cn truyn, cp nht a ch b nhv lp li qu trnh cho n khi htbyte cn truyn.

    Hnh 1.4 Giao tip DMAC vi h vi x l

    Hai tn hiu dng yu cu treo v chp nhn yu cu treo CPU dng cho cchDMA l HOLD v HLDA c th m t nh sau:

    Hnh 1.5 Tn hiu HOLD v HLDA

    P

    DMAC

    HRQ

    HACK

    HOLD

    HLDA

    I/O

    DRQ

    DACK

    DRQ

    DACK

    Memory

    Address bus

    Data bus

    Control bus

    CLK

    HOLD

    HLDA

    T4 hay T1

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    9/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 8

    3. Bus

    Hnh 1.6 - Cc bus trong mt h thng my tnh

    Bus l ng truyn tn hiu in ni cc thit b khc nhau trong mt h thngmy tnh. Bus thng c t 50 n 100 dy dn c gn trn mainboard, trn cc dyny c cc u ni a ra, cc u ny c sp xp v cch nhau nhng khong quynh c th cm vo nhng I/O board hay board b nh (bus h thng systembus).

    Cng c nhng bus dng cho mc ch chuyn bit, th d ni 1 vi x l vi 1 haynhiu vi x l khc hoc ni vi b nhcc b (local bus).

    Trong vi x l cng c mt s bus ni cc thnh phn bn trong ca b vi x lvi nhau. Ngi thit k chip vi x l c th tu la chn loi bus bn trong n, cn vicc bus lin h bn ngoi cn phi xc nh r cc quy tc lm vic cng nh cc cim k thut vin v ckh ca bus ngi thit k mainboard c th ghp ni chipvi x l vi cc thit b khc. Ni cch khc, cc bus ny phi tun theo 1 chun no .Tp cc quy tc ca chun cn c gi l giao thc bus (bus protocol)

    Thng c nhiu thit b ni vi bus, mt s thit b l tch cc (active) c thihi truyn thng trn bus, trong khi c cc thit b thng chyu cu t cc thit bkhc. Cc thit b tch cc c gi l ch (master) cn thit b thng l t(slave).

    V d: Khi CPU ra lnh cho biu khin a c/ghi mt khi d liu th CPU lmaster cn biu khin a l slave. Tuy nhin, biu khin a ra lnh cho b nhnhn d liu th n li gi vai tr master.

    CPURegisters

    ALU

    ng x l

    Memory

    board

    I/O

    board

    Bus cc b(local bus)

    Bus ni (on-chip bus)

    Bus h thng (system bus)

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    10/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 9

    3.1.Bus Driver v Bus Receiver

    Tn hiu in trong my tnh pht ra thng khng iu khin bus, nht lkhi bus kh di v c nhiu thit b ni vi n. Chnh v th m hu ht cc bus masterc ni vi bus thng qua 1 chip gi l bus driver, v cbn n l mt b khuch i tnhiu s. Tng t nh vy, hu ht cc slave c ni vi bus thng qua bus receiver.i vi cc thit b khi th ng vai tr master, khi th ng vai tr slave, ngi ta sdng 1 chip kt hp gi l transceiver. Cc chip ny ng vai tr ghp ni v l cc thitb 3 trng thi, cho php n c thtrng thi th 3 hmch (th ni).

    Ging nh vi x l, bus c cc ng a ch, ng s liu v ng iu khin.Tuy nhin, khng nht thit c nh x 1 1 gia cc tn hiu cc chn ra ca vi x l vcc ng dy ca bus. Th d: mt s chp vi x l c 3 chn ra, truyn ra cc tn hiubo chp vi x l ang thc hin cc thao tc MEMR , MEMW , IOR , IOW hay thaotc khc. Mt bus in hnh thng c 4 ng trn.

    Cc vn quan trng nht lin quan n thit k bus l: xung clock bus (s phnchia thi gian, hay cn gi l bus blocking), cch phn x bus (bus arbitration), x lngt v x l li.

    Cc bus c thc chia theo giao thc truyn thng thnh hai loi ring bit lbus ng b v bus khng ng b ph thuc vo vic s dng clock bus.

    3.2.Bus ng b (Synchronous bus)

    Mi chu k bus bt u bng vic xut a ch b nhhoc I/O port (chu k xungnhp T1). Bus iu khin c 4 tn hiu tc ng mc thp lMEMR , MEMW , IOR vIOW .

    Cc chui skin xy ra trong mt chu k bus c b nh:

    T1: P xut a ch b nh 20 bit. Cc ng d liu khng hot ng v ccng iu khin b cm

    T2: ng iu khin MEMR xung mc thp. n v b nhghi nhn chu kbus ny l qu trnh c b nhv t byte hay word c a ch ln data bus.

    T3: P t cu hnh cc ng data bus l nhp. Trng thi ny ch yu bnhc thi gian tm kim byte hay word d liu

    T4: P i d liu trn data bus. Do , n thc hin cht data bus v gii phngcc ng iu khin c b nh. Qu trnh ny s kt thc chu k bus.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    11/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 10

    Hnh 1.7 nh th chu k bus ng b

    Trong mt chu k bus, P c th thc hin c I/O, ghi I/O, c b nhhay ghi b

    nh. Cc ng address bus v control bus dng xc nh a ch b nhhay I/O vhng truyn d liu trn data bus.

    Ch rng P iu khin tt c cc qu trnh trn nn b nhbt buc phi cungcp c d liu vo lc MEMR ln mc cao trong trng thi T4. Nu khng, P scd liu ngu nhin khng mong mun trn data bus. gii quyt vn ny, ta c thdng thm cc trng thi ch(wait state).

    Truyn theo khi:Ngoi cc chu kc/ghi, mt s bus truyn d liu ng b cn h trtruyn d

    liu theo khi. Khi bt u thao tc c khi, bus master bo cho slave bit s byte cn

    c truyn i, th d truyn con s ny i trong chu k T1, sau ng l truyn i 1byte, slave a ra trong mi chu k 1 byte cho ti khi s byte c thng bo. Nhvy, khi c d liu theo khi, n byte d liu cn n+2 chu k clock ch khng phi 3nchu k.

    Mt cch khc cho truyn d liu nhanh hn l gim chu k. Tuy nhin, gimchu k bus dn n kh khn v mt k thut, cc tn hiu truyn trn cc ng khcnhau khng phi lun c cng tc , dn n hiu ng bus skew. iu quan trng l thi

    T1 T2 T3 T4

    a ch

    a ch

    D liu vo

    D liu ra

    Clk

    Address

    bus

    Data bus

    IOR hay

    MEMR

    Address

    bus

    Data bus

    IOW hayMEMW

    Ghi b

    nhhayI/O

    c bnhhay

    I/O

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    12/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 11

    gian chu k phi di hn so vi skew trnh vic nhng khong thi gian c s holi trthnh cc i lng bin thin lin tc.

    3.3.Bus bt ng b( Asynchronous bus)

    Bus bt ng b khng s dng xung clockng b, chu k ca n c th ko ditu v c th khc nhau i vi cc cp thit b khc nhau. Lm vic vi cc bus ng

    b d dng hn do n c nh thi mt cch gin on , tuy vy chnh c im nycng dn n nhc im. Mi cng vic c tin hnh trong khong thi gian l bi sca xung clock, nu 1 thao tc no ca vi x l hay b nhhon thnh trong 3.1 chuk th n cng s phi ko di trong 4 chu k. Khi chn chu k bus v xy dng bnh, I/O card cho bus ny th kh c th tn dng nhng tin b ca cng ngh. Chnghn sau khi xy bus vi snh thi nh trn, cng ngh mi a ra cc vi x l v bnhc thi gian chu k l 100ns ch khng cn l 750ns nh c, th chng vn chy vitc thp nh cc vi x l, b nhloi c, bi v giao thc bus i hi b nhphi ac d liu ra v n nh trc thi im cnh m ca T3. Nu c nhiu thit b khcnhau cng ni vi 1 bus, trong c th c mt s thit b hot ng nhanh hn hn cc

    thit b khc th cn phi t bus hot ng ph hp vi thit b c tc thp nht.Bus bt ng b ra i nhm khc phc nhng nhc im ca bus ng b.

    Trc ht master pht ra a ch nhm n mun truy cp, sau pht tn hiu MEMRtch cc xc nh cn truy xut b nhv yu cu qu trnh truy xut l READ xcnh chiu truyn d liu. Tn hiu MEMRc a ra sau tn hiu a ch mt khongthi gian ph thuc tc hot ng ca master. Sau khi 2 tn hiu ny n nh, masters pht ra tn hiu MSYN (master synchrization) mc tch cc bo cho slave bitrng cc tn hiu cn thit sn sng trn bus, slave c th nhn ly. Khi slave nhnc tn hiu ny, n s thc hin cng vic vi tc nhanh nht c thc, a dliu ca nhc yu cu ln bus d liu. Khi hon thnh slave s pht tn hiu SSYN (slave synchronization) tch cc.

    Hnh 1.8 nh th chu k bus bt ng b

    Address

    MEMR(Control)

    MSYN

    Data

    SSYN

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    13/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 12

    Master nhn c tn hiu SSYN tch cc th xc nh c d liu ca slave sn sng nn thc hin vic cht d liu, sau o cc ng a ch cng nh cc tnhiu MEMR v MSYN . Khi slave nhn c tn hiu MSYN khng tch cc, n xcnh kt thc chu k v o tn hiu SSYN lm bus trli trng thi ban u, mi tn hiuu khng tch cc, chbus master mi.

    Trn gin thi gian ca bus bt ng b, ta s dng mi tn th hin nguynnhn v kt qu. MSYN tch cc dn n vic truyn d liu ra bus d liu v ng thicng dn n vic slave pht ra tn hiu SSYN tch cc, n lt mnh tn hiu SSYN ligy ra so mc ca cc ng a ch, MEMR v MSYN . Cui cng so mc caMSYN li gy ra so mc tn hiu SSYN v kt thc chu k. Tp cc tn hiu phihp vi nhau nh vy c gi l bt tay ton phn (full handshake), ch yu gm 4 tnhiu sau:

    - MSYN tch cc.

    - SSYN tch cc p li tn hiu MSYN .- MSYN c o p li tn hiu SSYN (tch cc).

    - SSYN c o p li tn hiu MSYN khng tch cc.

    Ta c th nhn thy bt tay ton phn l c lp thi gian, mi s kin c gy rabi 1 s kin trc ch khng phi bi xung clock. Nu 1 cp master-slave no hot ng chm th cp master-slave k tip khng h bnh hng.

    Tuy u im ca bus bt ng b rt r rng, nhng trong thc t phn ln cc busang s dng l loi ng b. Nguyn nhn l cc h thng s dng bus ng b d thitk hn. Vi x l ch cn chuyn cc mc tn hiu cn thit sang trng thi tch cc l bnhp ng ngay, khng cn tn hiu phn hi. Ch cn cc chn ph hp th mi hotng u tri chy, khng cn phi bt tay.

    3.4.Xl ngt

    trn, ta ch kho st cc chu k bus thng thng, trong master nhn hay githng tin t / n slave. Mt ng dng quan trng na ca bus l dng x l ngt. KhiCPU ra lnh cho thit b I/O lm mt vic g , n thng chi tn hiu ngt do thitb I/O pht ra khi hon thnh cng vic c CPU yu cu. Khi nhn c tn hiu ngt,CPU sp ng ngay, c th nhn d liu do thit b I/O truyn v, hay gi tip d liu rathit b I/O, hay CPU s s dng bus cho mt thao tc khc. Nh vy chnh ngt pht ra

    tn hiu yu cu s dng bus.V c th nhiu thit b ngoi vi cng pht ra ngt, cho nn cn c 1 cch phn

    x ging nhi vi cc bus thng thng. Gii php thng dng l gn cc mc utin cho cc thit b v s dng 1 arbiter tp trung trao quyn u tin cho cc thit bquan trng thng xuyn c s dng. Hin trn th trng c nhng chip iu khinngt c tiu chun ha v c s dng rng ri l chip 8259A. C th ni 8 chip iukhin I/O ti cc u IRx (Interrupt request) ca 8259A. Khi c 1 thit b no munngt, n t mc tch cc ln chn Irx, 8259A nhn c tn hiu tch cc 1 hay mt s

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    14/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 13

    u vo Irx th st mc tch cc ln u dy INT. Tn hiu INT s truyn trc tip nchn Interrupt ca CPU. Khi CPU c th x l c ngt, n gi li 1 tn hiu chp nhnngt cho 8259A. Lc ny, CPU ch8259A ch ra I/O no yu cu ngt, bng cch gi shiu ca I/O ln bus d liu (D0-D7) i n CPU. Sau , phn cng CPU s sdng con s tnh ch s trong 1 bng con tr -bng vector ngt (interrupt vector) tm a ch chng trnh con, cho chy chng trnh ny phc v ngt. Cc chng

    trnh con ny gi l chng trnh con x l ngt.

    4. Cc chip h tr cho b x l trung tm4.1.Mch to xung clock 8284

    Hnh 1.9 Mch to xung clock 8284

    PCLK(Peripheral Clock): xung clock f = fX/6 (fX l tn s thch anh) vi chu kbn phn 50%.

    CSYNC (Clock Synchronisation): ng vo xung ng b chung khi h thng ccc 8284 dng dao ng ngoi ti chn EFI. Khi dng mch dao ng trong th phi niGND.

    AEN1 , AEN 2 (Address Enable): cho php chn cc chn tng ng RDY1,RDY2 bo hiu trng thi sn sng ca b nhhay thit b ngoi vi.

    RDY1, RDY2 (Bus ready): kt hp vi AEN1, AEN2 to cc chu ki CPU

    READY: ni n chn READY ca P.

    CLK(Clock): xung clock f = fX/3, ni vi chn CLK ca CPU.

    RESET: ni vi chn RESET ca CPU, l tn hiu khi ng li ton h thng.

    RES(Reset Input): chn khi ng cho 8284, c ni vi mch RC t khi

    ng khi bt ngun.OSC: ng ra xung clock c tn s fX.

    F/C (Frequency / Crystal): chn ngun tn hiu chun cho 8284, nu mc caoth chn tn s xung clock bn ngoi, ngc li th dng xung clock t thch anh.

    EFI(External Frequency Input): xung clock t b dao ng ngoi.

    8284

    1234567

    89 1011

    12131415161718

    CSYNCPCLKAEN1RDY1READYRD2AEN2CLKGND RESET

    RESOSCF/CEFI

    ASYNCX2X1

    VCC

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    15/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 14

    ASYNC: chn ch lm vic cho tn hiu RDY. Nu ASYNC = 1, tn hiuRDY c nh hng n tn hiu READY cho n khi c xung m ca xung clock. Ngcli th RDY chnh hng khi xut hin xung m.

    X1,X2: ng vo ca thch anh, dng to xung chun cho h thng.

    Hnh 1.10 Mch khi ng cho 8284

    4.2.Mch nh thi PIT 8253 / 8254 (Programmable Interval Timer)

    Hnh 1.11 S chn ca PIT 8253

    8284

    1

    2345678910

    11121314151617

    18CSYNC

    PCLKAEN1RDY1

    READYRD2

    AEN2CLK

    GNDRESETRESOSCF/CEFIASYNCX2X1VCC

    Vcc

    +

    A019

    A120 OUT0

    10

    OUT113

    OUT217

    D08

    D1

    7

    D26

    D35

    D44

    D53

    D62

    D71

    G011

    G114

    G2

    16

    CLK09

    CLK115

    CLK218

    RD22

    WR23

    CS21

    8253

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    16/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 15

    Hnh 1.12 S khi ca PIT 8253

    D7 D0: bus d liu

    CLK0 CLK2: ng vo xung clock cho cc bm

    OUT0 OUT2: ng ra bm

    RD , WR : cho php CPU c / ghi d liu t / n cc thanh ghi ca 8253

    A1, A0: gii m chn bm hay thanh ghi iu khin, thng c ni vi busa ch ca CPU

    A1 A0 Chn

    0 0 Bm 0

    0 1 Bm 1

    1 0 Bm 2

    1 1 Thanh ghi tiu khin

    G0 G2 (Gate): cho php hay cm cc bm hot ng ( =1: cho php, =0:cm).

    PIT 8253 c tt c 5 chm ty thuc vo gi tr trong thanh ghi iu khin.

    m dliu

    iukhinc/ghi

    Thanh

    ghi tiukhin

    Bm0

    Bm1

    Bm2

    D7 D0

    RD

    WR

    CS

    A1

    A0 BUSNI

    OUT0

    CLK0

    GATE0

    OUT1

    CLK1

    GATE1

    OUT2

    CLK2

    GATE2

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    17/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 16

    PIT 8253 c 3 bm li 16 bit c th lp trnh v c lp vi nhau. Mi bmc tn hiu xung clock ring (8254 tng t nh 8253 nhng c thm lnh c thanh ghitiu khin CWR).

    Cc chm:Ch 0 (Interrupt on Terminal Count): tn hiu ng ra mc thp cho ti khi b

    m trn th s chuyn ln mc cao.

    Ch 1 (Programmable Monoflop): tn hiu ng ra chuyn xung mc thp ticnh m ca xung clocku tin v s chuyn ln mc cao khi bm kt thc.

    Ch 2 (Rate Generator): tn hiu ng ra xung mc thp trong chu ku tinv sau chuyn ln mc cao trong cc chu k cn li.

    Ch 3 (Square-Wave Generator): tng t nh ch 2 nhng xung ng ra lsng vung khi gi trm chn v s thm mt chu kmc cao khi gi trm l.

    Ch 4 (Software-triggered Pulse): ging nh ch 2 nhng xung Gatekhngkhi ng qu trnh m m sm ngay khi sm ban u c np. Ng ra mccao m v xung mc thp trong chu k xung m. Sau , ng ra s trli mc cao.

    Ch 5 (Hardware-triggered Pulse): ging nh ch 2 nhng xung Gatekhngkhi ng qu trnh m m c khi ng bng cnh dng ca xung clock ng vo.Ng ra mc cao v xung mc thp sau mt chu k clock khi qu trnh m kt thc.

    SC1

    Quy nh phng thcc/ghi00: cht bm01: c/ghi byte thp10: c/ghi byte cao11: c/ghi byte thptrc, byte cao sau

    SC0 RW1 RW0 M2 M1 M0 BCD

    Chn bm

    00: bm 001: bm 110: bm 211: c CWR trong 8254

    Hnh 1.13 Dng tiu khin ca 8253

    Chm000: ch 0001: ch 1010: ch 2011: ch 3100: ch 4101: ch 5

    nh dng m

    0: m nh phn1: m BCD (0 999)

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    18/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 17

    Ba chc nng ca 8253 trong PC:Cp nhtng h h thng:bm 0 ca PIT pht tun hon mt ngt cng qua

    IRQ0 ca 8259 CPU c th thay i ng h h thng. Bm hot ng trong ch2. Ng vo c cp xung clock tn s 1.19318 MHz. G0 = 1 bm lun c phpm. Gi tr ban u c n p l 0 cho php PIT pht ra xung chnh xc vi tns:1.19318/65536 = 18.206Hz. Cnh dng ca mi xung ny s to ra mt ngt cngtrong 8259. Yu cu ny s dn ti ngt 08h cp nht ng h h thng 18.206 lntrong 1 giy.

    Lm ti b nh: PIT ni vi chip DMAC dng lm ti b nhDRAM. Bm1 snh k kch hot knh 0 ca DMAC-8237A tin hnh 1 chu trnh c gi lmti b nh. B nh1 hot ng trong ch 3 pht sng vung vi gi tr np ban u l18. Do sng vung c pht ra c tn s 1,19318 MHz/18 = 66288 Hz (chu k bng0.015s). Nh vy c sau 15 ms cnh dng ca sng vung ny s to 1 chu kc gi lm ti b nh.

    Pht sng m vi tn sbin i ra loa ca PC: Bm 2 ca PIT c dng

    pht sng m ra loa ca PC.4.3.Mch iu khin bus 8288

    Mch iu khin bus 8288 ly mt s tn hiu iu khin ca CPU v cung cp cctn hiu iu khin cn thit cho h vi x l.

    Hnh 1.14 Mch iu khin bus 8288

    IOB (Input / Output Bus Mode): iu khin 8288 lm vic cc ch buskhc nhau.

    CLK(Clock): ng vo ly t xung clock h thng (t 8284) v dng ng bton b cc xung iu khin i ra t mch 8288.

    DT/R (Data Transmit/Receive): CPU truyn (1) hay nhn (0) d liu.ALE(Address Latch Enable): tn hiu cho php cht a ch, tn hiu ny thng

    c ni vi chn G ca 74573 iu khin cht a ch.

    AEN(Address Enable): ch thi gian tr khong 150 ns s to cc tn hiu iukhin u ra ca 8288 m bo rng a ch s dng hp l.

    S2 ,S1 , S0 : cc tn hiu trng thi ly trc tip t CPU. Tu theo cc gi tr nhnc m 8288 sa cc tn hiu theo bng:

    8288

    1234567

    89111213

    141516171819

    10

    20IOBCLKS1DT/RALEAENMRDCAMWCMWTC

    IOWCAIOWC

    IORCINTACENDEN

    MCE/PDENS2S0

    GND

    VCC

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    19/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 18

    S2 1S S0 To tn hiu

    0 0 0 INTA

    0 0 1 IORC

    0 1 0 IOWC , AIOWC

    0 1 1 Khng

    1 0 0 MRDC

    1 0 1 MRDC

    1 1 0 MWTC , AMWC

    1 1 1 Khng

    MRDC(Memory Read Command): iu khin c b nh

    MWTC(Memory Write Command): iu khin ghi b nh

    AMWC(Advanced MWTC),: ging nh MWTC nhng hot ng sm hn mtcht dng cho cc b nhchm p ng kp tc CPU.

    IOWC(I/O Write Command): iu khin ghi ngoi vi

    AIOWC (Advanced IOWC),: ging nh IOWC nhng hot ng sm hn mtcht dng cho cc ngoi vi chm p ng kp tc CPU.

    IORC(I/O Read Command): iu khin c ngoi vi

    INTA (Interrupt Acknowledge): ng ra thng bo CPU ch p nhn yu cu ngtca thit b ngoi vi

    CEN(Command Enable): cho php a ra tn hiu DEN v cc tn hiu iu khinkhc ca 8288.

    DEN(Data Enable): iu khin bus d liu thnh bus cc b hay bus h thng.

    MCE/ PDEN (Master Cascade Enable / Peripheral Data Enable): nh ch lmvic cho mch iu khin ngt PIC 8259 n lm vic ch master.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    20/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 19

    4.4.Chip iu khin ngt u tin PIC 8259A (Priority Interrupt Controller)

    Hnh 1.15 S chn ca 8259A

    Trong trng hp nhiu yu cu ngt cn phi phc v, ta thng dng vi mch8259A gii quyt vn u tin. 8259A c th gii quyt c 8 yu cu ngt vi 8mc u tin khc nhau.

    Cc khi chc nng:IRR (thanh ghi yu cu ngt): lu tr cc yu cu ngt ti ng vo

    ISR (thanh ghi phc v ngt): lu tr cc yu cu ngt ang phc v

    IMR (thanh ghi mt n ngt): lu tr mt n ca cc yu cu ngt ti ng vo

    Control logic (logic iu khin): gi yu cu ngt ti chn INTR ca CPU khi ctn hiu ngt ti ng vo ca 8259A v nhn tr li chp nhn yu cu ngt hay khngINTA t CPU a kiu ngt vo CPU.

    Data bus buffer(m bus d liu): giao tip gia 8259A vi bus d liu ca CPU.

    Cascade buffer / comparator(m ni tng v so snh): lu tr v so snh s hiuca cc kiu ngt trong trng hp dng nhiu mch 8259A.

    8259A

    1110987654

    1819202122232425

    27

    1

    32 16

    17

    26

    121315

    D0D1D2D3D4

    D5D6D7

    IR0IR1IR2IR3IR4

    IR5IR6IR7

    A0

    CS

    RDWR SP/EN

    INT

    INTA

    CAS0CAS1CAS2

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    21/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 20

    Cc tn hiu iu khin:CAS0 2 (In, Out): cc ng vo chn mch 8259A t(slave) t mch 8259A ch

    (master) trong trng hp dng nhiu mch 8259A tng yu cu ngt.

    ENSP / (In, Out) (Slave Program / Enable Buffer): nu 8259A hot ng ch khng dng m d liu th tn hiu ny dng xc nh mch 8259A l mch ch(SP = 1) hay t(SP = 0). Nu 8259A hot ng ch c m d liu th tn hiu nydng cho php giao tip gia 8259A v CPU, khi mch 8259A l master hay slave

    phi da vo t lnh khi ng ICW4.INT (Out): tn hiu yu cu ngt a n CPU (chn INTR).

    INTA (In): nhn tr li chp nhn ngt hay khng t CPU (chn INTA )

    A0: cho php chn cc tiu khin ca 8259A.

    8259A cho php x l 8 ngt vi 8 mc u tin khc nhau. Trong trng hp hthng c s lng ngt ln hn th c th mc nhiu 8259A lin tng.

    Data bus

    buffer

    Read /Write

    Logic

    RD

    WR

    A0

    CS

    Cascadebuffer /

    comparator

    CAS0

    CAS1

    CAS2

    ENSP /

    Control logic

    ISR

    (Interrupt

    Service

    Register)

    PR

    (Priority

    Resolver)

    IRR

    (Interrupt

    Request

    Register)

    INTERN

    ALBUS

    IMR (Interrupt Mask Register)

    IR0

    IR1

    IR7

    INTINTA

    Hnh 1.16 S khi ca PIC 8259A

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    22/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 21

    Hnh 1.17 8259A mc lin tng

    4.5.Chip iu khin truy nhp b nh trc tip DMAC 8237 (Direct MemoryAccess Controller)

    DMAC 8237 c th thc hin truyn d liu theo 3 kiu: kiu c (t b nh rathit b ngoi vi), kiu ghi (t thit b ngoi vi n b nh) v kiu kim tra.

    8259A - Slave

    11109876

    54

    27132161726

    181920212223

    2425

    121315

    D0D1D2D3D4

    D5D6D7

    A0CSRDWR

    SP/ENINT

    INTA

    IR0IR1IR2IR3IR4

    IR5IR6IR7

    CAS0CAS1CAS2

    8259A - Master

    11109876

    54

    27132161726

    181920212223

    2425

    121315

    D0D1D2D3D4

    D5D6D7

    A0CSRDWR

    SP/ENINT

    INTA

    IR0IR1IR2IR3IR4

    IR5IR6IR7

    CAS0CAS1CAS2

    8086

    123456

    789

    1011121314151617181920 21

    22232425262728293031323334

    353637383940

    GNDAD14AD13AD12AD11

    AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND RESET

    READYTEST

    INTA (QS1)ALE (QS0)DEN (S0)DT/R (S1)IO/M (S2)

    WR (LOCK)HLDA (RQ/GT1)HOLD (RQ/GT0)

    RDMN/MX

    BHE/S7A19/S6

    A18/S5A17/S4A16/S3

    AD15VCC

    Vcc

    8237

    34

    10

    98

    5

    6

    12

    13

    11

    736

    12

    3233

    343537383940

    3029

    282726232221

    25241415

    19181716

    MEMRMEMW

    HRQ

    AENASTB

    VX

    READY

    CLK

    RESET

    CS

    HLDAEOP

    IORIOW

    A0

    A1A2A3A4A5A6A7

    DB0

    DB1DB2DB3DB4DB5DB6DB7

    DAK0DAK1DAK2DAK3

    DRQ0DRQ1DRQ2DRQ3

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    23/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 22

    Hnh 1.18 S chn v s khi ca DMAC 8237A

    Khi Timing and Control (nh thi v iu khin):To cc tn hiu nh thi v iu khin cho bus ngoi (external bus). Cc tn hiu

    ny c ng b vi xung clocka vo DMAC (tn s xung clock ti a l 5 MHz).

    Khi Priority encoder and rotating priority logic (m ha u tin vquay mc u tin):

    DMAC 8237A c 2 m hnh u tin: m hnh u tin cnh (fixed priority) v

    m hnh u tin quay (rotating priority). Trong m hnh u tin cnh, knh 0 s cmc u tin cao nht cn knh 3 c mc u tin thp nht. Cn i vi m hnh u tinquay th mc u tin khi khi ng ging nh m hnh u tin cnh nhng khi yu cuDMA ti mt knh no c phc v th sc t xung mc u tin thp nht.

    Khi Command Control (iu khin lnh):Gii m cc thanh ghi lnh (xc nh thanh ghi sc truy xut v loi hot ng

    cn thc hin).

    Timing and

    control

    EOP

    RESET

    CS

    READY

    CLK

    AEN

    MEMW

    ADSTB

    MEMR

    IOW

    IOR

    Priority encoder

    and rotating

    prority logic

    Decrementor

    Temp word

    count register

    Incrementor

    Temp address

    register

    I/O buffer

    Output buffer

    Read buffer

    Base

    address

    Base word

    count

    R/W buffer

    Current

    address

    Current

    word count

    Write buffer Read buffer

    I/O bufferCommand

    Mask

    Request

    R/W

    Mode

    Status

    Command

    control

    Temp

    Bus 16 bit

    A8A15

    D0D1

    A0 A3

    A4 A7

    DRQ0 DRQ3

    DACK0 DACK3

    HLDA

    HRQ

    DB0 D

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    24/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 23

    Cc thanh ghi:DMAC 8237A c tt c 12 loi thanh ghi ni khc nhau:

    Tn Kch thc (bit) S lng

    Thanh ghi a ch cs(Base Address Register)Thanh ghi m t cs(Base Word Count Register)

    Thanh ghi a ch hin hnh (Current Address Register)

    Thanh ghi m t hin hnh (Current Word Count Register)

    Thanh ghi a ch tm (Temporary Address Register)

    Thanh ghi m t tm (Temporary Word Count Register)

    Thanh ghi trng thi (Status Register)

    Thanh ghi lnh (Command Register)

    Thanh ghi tm (Temporary Register)

    Thanh ghi ch (Mode Register)

    Thanh ghi mt n (Mask Register)

    Thanh ghi yu cu (Request Register)

    1616

    16

    16

    16

    16

    8

    8

    8

    6

    4

    4

    44

    4

    4

    1

    1

    1

    1

    1

    4

    1

    1

    Chc nng cc chn ca 8237A:CLK (Input): tn hiu xung clock ca mch. Tn hiu ny thng c ly t 8284

    sau khi qua cng o.

    CS (Input): thng c ni vi b gii m a ch.RESET(Input): khi ng 8237A, c ni vi ng RESET ca 8284. Khi Reset

    th thanh ghi mt nc lp cn cc phn sau b xa:

    + Thanh ghi lnh

    + Thanh ghi trng thi

    + Thanh ghi yu cu

    + Thanh ghi tm

    + Flip-flop u/cui (First/Last flip-flop)

    READY(Input): ni vi READY ca CPU to chu ki khi truy xut cc thitb ngoi vi hay b nhchm.

    HLDA (Hold Acknowledge)(Input): tn hiu chp nhn yu cu treo t CPU

    DRQ0 DRQ3 (DMA Request)(Input): cc tn hiu yu cu treo t thit b ngoivi.

    DB0 DB7(Input, Output): ni n bus a ch v d liu ca CPU

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    25/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 24

    IOR , IOW (Input, Output): s dng trong cc chu kc v ghiEOP (End Of Process)(Input,Output): bt buc DMAC kt thc qu trnh DMAnu l ng vo hay dng bo cho mt knh bit l d liu chuyn xong(Terminal count TC), thng dng nh yu cu ngt CPU kt thc qu trnhDMA.

    A0 A3 (Input, Output): chn cc thanh ghi trong 8237A khi lp trnh hay dng cha 4 bit a ch thp.A4 A7(Output): cha 4 bit a ch

    HRQ (Hold Request)(Output): tn hiu yu cu treo n CPU

    DACK0 DACK3 (DMA Acknowledge)(Output): tn hiu tr li yu cu DMA chocc knh.

    AEN(Output): cho php ly a ch vng nhcn trao i

    ADSTB (Address Strobe)(Output): cht cc bit a ch cao A8 A15 cha trongcc chn DB0 DB7

    MEMR , MEMW (Output): dng c / ghi b nh.

    Cc thanh ghi ni:Cc thanh ghi ni trong DMAC 8237A c truy xut nhcc bit a ch thp A0

    A3.

    Bit a ch

    A3 A2 A1 A0

    ach

    Chn chc nng R/W?

    0

    0

    00

    0

    0

    0

    0

    1

    1

    1

    1

    11

    1

    1

    0

    0

    00

    1

    1

    1

    1

    0

    0

    0

    0

    11

    1

    1

    0

    0

    11

    0

    0

    1

    1

    0

    0

    1

    1

    00

    1

    1

    0

    1

    01

    0

    1

    0

    1

    0

    1

    0

    1

    01

    0

    1

    X0

    X1

    X2X3

    X4

    X5

    X6

    X7

    X8

    X9

    XA

    XB

    XCXD

    XE

    XF

    Thanh ghi a ch b nhknh 0Thanh ghi m t knh 0Thanh ghi a ch b nhknh 1Thanh ghi m t knh 1Thanh ghi a ch b nhknh 2Thanh ghi m t knh 2Thanh ghi a ch b nhknh 3Thanh ghi m t knh 3Thanh ghi trng thi / lnhThanh ghi yu cuThanh ghi mt n cho mt knhThanh ghi ch

    Xa flip-flop u/cuiXa ton b cc thanh ghi / c thanh ghi tmXa thanh ghi mt nThanh ghi mt n

    R/W

    R/W

    R/WR/W

    R/W

    R/W

    R/W

    R/W

    R/W

    W

    W

    W

    WW/R

    W

    W

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    26/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 25

    a chcc thanh ghi ni dng ghi /c a ch:

    Knh IOR

    IOW

    A3 A2 A1 A0 Thanh ghi R/W?

    0 1

    0

    10

    01

    01

    00

    00

    00

    00

    0

    0

    00

    0

    0

    11

    a ch csv a ch hin hnha ch hin hnh

    Bm csv bm hin hnhBm hin hnh

    W

    R

    WR

    1 1

    01

    0

    0

    10

    1

    0

    00

    0

    0

    0

    00

    1

    1

    11

    0

    0

    11

    a ch csv a ch hin hnha ch hin hnhBm csv bm hin hnhBm hin hnh

    W

    R

    W

    R

    2 1

    0

    10

    0

    1

    01

    0

    0

    0

    0

    1

    1

    1

    1

    0

    0

    0

    0

    00

    1

    1

    a ch csv a ch hin hnha ch hin hnhBm csv bm hin hnhBm hin hnh

    WR

    W

    R

    3 1

    01

    0

    0

    10

    1

    0

    000

    1

    111

    1

    111

    0

    01

    1

    a ch csv a ch hin hnh

    a ch hin hnhBm csv bm hin hnhBm hin hnh

    W

    RW

    R

    a chcc thanh ghi trng thi v iu khin:

    IOR ` IOW A3 A2 A1 A0 Thanh ghi

    1

    01

    11

    11

    0

    0

    1

    0

    00

    0

    01

    1

    1

    1

    11

    1

    1

    1

    00

    0

    001

    1

    1

    0

    00

    11

    00

    0

    0

    0

    1

    01

    0

    11

    Ghi thanh ghi lnhc thanh ghi trng thiGhi thanh ghi yu cu

    Ghi thanh ghi mt nGhi thanh ghi chXa flip-flop u/cuiXa tt c cc thanh ghi ni

    1

    01

    0

    0

    1

    01

    1

    1

    11

    1

    1

    11

    1

    1

    1

    1

    0

    0

    1

    1

    a ch csv a ch hin hnha ch hin hnhBm csv bm hin hnhBm hin hnh

    Mch 8273A-5 cha 4 knh trao i d liu DMA vi mc u tin lp trnh c.8237A-5 c tc truyn 1 MBps cho mi knh v 1 knh c th truyn 1 mng c di64 KB. c th s dng mch DMAC 8237A, ta cn to tn hiu iu khin nh sau:

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    27/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 26

    Hnh 1.19 Tn hiu iu khin cho h thng lm vic vi DMAC 8237A

    Tn hiu AEN t 8237A dng cm cc tn hiu iu khin t CPU khi DMAC nm quyn iu khin bus.

    4.6.Chip iu khin mn hnh CRTC 6845 (Cathode Ray Tube Controller)

    RST (Reset): khi ng li 6845.

    MA0 MA13 (Memory Address): 14 a ch nhcho RAM mn hnh.

    DE(Display Enable): cho php (=1) hay khng (=0) cc tn hiu iu khin v ach vng hin ln mn hnh.

    LPSTD (Light Pen Strobe): lu tra ch hin hnh ca RAM mn hnh trongthanh ghi bt sng. CPU c thanh ghi v xc nh v tr bt sng trn mn hnh.

    CURSOR: v tr con tr qut (=1) hay cha (=0).

    Hnh 1.20 S chn ca 68456845

    4567891011121314151617

    19

    25

    24

    23

    22

    21

    32

    3332313029282726

    3837

    363534

    183940

    MA0MA1MA2MA3MA4MA5MA6MA7MA8MA9

    MA10MA11MA12MA13

    CURSOR

    CS

    RS

    E

    R/W

    CLK

    LPSTDRST

    D0D1D2D3D4D5D6D7

    RA0

    RA1RA2RA3RA4

    DEHSVS

    Vcc

    74LS257

    2356

    11101413

    151

    4

    7

    9

    12

    1A1B2A2B3A3B4A

    4B

    GA/B

    1Y

    2Y

    3Y

    4Y

    RD

    WR

    AEN

    IO/M

    IOR

    IOW

    MEMR

    MEMW

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    28/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 27

    VS(Vertical Synchronization): ng ra tn hiu ng b qut dc

    HS(Horizontal Synchronization): ng ra tn hiu ng b qut ngang

    RA0 RA4 (Row Address): phn nh hng qut ca k t trong ch vn bn(32 hng qut). Trong ch ha, chng kt hp vi MA0 MA13 to cc a ch chocc bank RAM mn hnh.

    D0 D7: ng d liu.

    CS: chn chip.

    RS(Regigter Select): chn thanh ghi a ch (=0) hay thanh ghi d liu (=1).

    E: xung m kch hot bus d liu v dng nh xung clock cho 6845 c / ghi dliu vo cc thanh ghi bn trong.

    R/W : c / ghi d liu vo cc thanh ghi.

    CLK: dng ng b vi tn hiu ca mn hnh v thng bng tc hin k ttrn mn hnh.

    4.7.Chip ng xl ton hc 8087/80287/80387 (Mathematical co-processor)

    Cc bng x l ton 80x87 h trCPU trong vic tnh ton cc biu thc dngdu chm ng nh cng, tr, nhn, chia cc s du chm ng, cn thc, logarit, Chng cho php x l cc php ton ny nhanh hn nhiu so vi CPU. Thi gian x lgia 8087 v 8086 nh sau (dng xung clock 8 MHz):

    Php ton 8087 [s] 8086 [s]Cng / tr

    Nhn

    Chia

    Cn bc hai

    Tang

    Ly tha

    Lu tr

    10.6

    11.9

    24.4

    22.5

    56.3

    62.5

    13.1

    1000

    1000

    2000

    12250

    8125

    10680

    750

    8087:8087 gm mt n viu khin (CU Control Unit) dng iu khin bus v

    mt n v s hc (NU Numerical Unit) thc hin cc php ton du chm ngtrong cc mch tnh ly tha (exponent module) v mch tnh phn nh tr (mantissamodule). Khc vi 8086, thay v dng cc thanh ghi ri rc l mt ngn xp thanh ghi.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    29/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 28

    n viu khin nhn v gii m lnh, dc v ghi cc ton hng, chy cc lnhiu khin ring ca 8087. Do , CU c thng b vi CPU trong khi NU ang thchin cc cng vic tnh ton. CU bao gm biu khin bus, bm d liu v hnglnh.

    Hnh 1.22 S kt ni 8087 v CPU 8086

    Tiu khin

    T trng thi

    m d liu

    iu khin bus

    Biukhin s

    Module lytha

    Module

    nh tr

    T th Thanh ghi

    ngn xp

    Bus d liu

    a ch trng thi

    Hnh 1.21 S khi ca 8087

    CU - Control Unit NU - Numerical Unit

    CLK (8284)

    INT (8259)

    IRx (8259)

    8087

    34

    32

    2524

    19

    23

    161514131211109

    876543239

    38373635

    262728

    3133

    22

    21

    BHE/S7 INT

    QS0QS1

    CLK

    BUSY

    AD0AD1AD2AD3AD4AD5AD6AD7

    AD8AD9

    AD10AD11AD12AD13AD14AD15

    A16/S3A17/S4A18/S5A19/S6

    S0S1S2

    RQ/GT0RQ/GT1

    READY

    RST

    8086

    34

    32

    292524

    3130

    17

    23

    33

    22

    19

    21

    18

    161514131211109

    876543239

    38373635

    262728

    BHE/S7

    RD

    LOCKQS0QS1

    RQ/GT0RQ/GT1

    NMI

    TEST

    MX

    READY

    CLK

    RST

    INTR

    AD0AD1AD2AD3AD4AD5AD6AD7

    AD8AD9

    AD10AD11AD12AD13AD14AD15

    A16/S3A17/S4A18/S5A19/S6

    S0S1S2

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    30/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 29

    Ngn xp thanh ghi c tt c 8 thanh ghi t R0 R7, mi thanh ghi di 80 bit trong bit 79 l bit du, bit 64 78 dng cho s m v phn cn li l phn nh tr. D liutruyn gia cc thanh ghi ny c thc hin rt nhanh do 8087 c rng bus d liu l84 bit v khng cn phi bin i nh dng.

    Ngay sau khi reset PC, bng x l kim tra xem n c c ni vi PC hay

    khng bng cc ng BHE /S7. 8087 siu chnh di ca hng lnh cho ph hp viCPU (nu dng 8086 th di l 6 byte).

    8087 c mt thanh ghi trng thi l thanh ghi t th (tag word) gm cc cp bitTag0 Tag7 lu tr cc thng tin lin quan n ni dung ca cc thanh ghi R0 R7 cho php thc hin mt s tc v nhanh hn. Mi thanh ghi t th c 2 bit xc nh 4gi tr khc nhau ca cc thanh ghi Ri.

    Tag = 00: xc nh

    Tag = 01: zero

    Tag = 10: NAN, gi tr bt thng

    Tag = 11: rng

    80287:

    Hnh 1.23 S kt ni gia 80286 v 80287

    S0

    82284

    1516

    78

    117

    23

    5

    116

    4

    10

    12

    13S0S1

    X1X2

    ARDYAYEN

    SRDY

    SYEN

    EFI

    RESF/C

    READY

    CLK

    RESET

    PCLK

    80287

    2322212019181716151412118765

    262524

    40

    32

    35

    37

    21

    38

    36

    39

    2728

    3433

    29313

    D0D1D2D3D4D5D6D7D8

    D9D10D11D12D13D14D15

    ERRORBUSY

    PEREQ

    READY

    CLK

    RESET

    CLK286

    S0S1

    HLDA

    PEACK

    CKM

    NPRDNPWR

    NPS1NPS2

    CMD0CMD1COD/INTA

    S1

    S0

    8228819

    3

    18

    1

    2

    1514

    76

    131211

    17165

    4

    89

    S0S1

    M/IO

    READY

    CLK

    CEN/AENCENLCMDLYMB

    INTAIORCIOWC

    DT/RDENALE

    MCE

    MRDCMWTC

    80286

    3433322827262524232221201918171615141312111087

    54

    1666568676

    63

    31

    29

    5957645354

    61

    52

    36384042444648503739414345474951

    A0A1A2A3A4A5A6A7A8A9

    A10A11A12A13

    A14A15A16A17A18A19A20A21A22A23

    S0S1

    BHECOD/INTA

    HLDALOCKM/IO

    PEACK

    READY

    CLK

    RST

    NMIINTRHOLDERRORBUSY

    PEREQ

    CAP

    D0D1D2D3D4D5D6D7D8D9D10D11D12D13

    D14D15

    S1

    82284

    1516

    78

    117

    23

    5

    116

    4

    10

    12

    13S0S1

    X1X2

    ARDYAYEN

    SRDYSYEN

    EFI

    RESF/C

    READY

    CLK

    RESET

    PCLK

    S

    S0

    S1

    S

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    31/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 30

    Do 80286 c ch mch bo v nn mch ghp ni gia 80286 v 80287 cthit k khc 8087 n viu khin CU. Bng x l y khng thc hin truyxut b nhtrc tip. truy xut c b nh, 80287 khng nhng cn mt c vnha chn gin ca n m cn phi c tng cng thm chc nng qun l b nhca80286. Cu trc bn trong ca 80287 cng tng t nh 8087, ch c n v bus thay icho ph hp vi 80286. Khc vi 8087, 80287 hot ng khng ng b vi CPU nn c

    th dng xung clock ring. 80387:

    u im ca 80387 so vi 80287 l c th thc hin cc php ton s hc nhanhhn. No c bus d liu 32 bit nh CPU v s dng cng ngh CMOS nn cng sut tiuth thp hn.

    5. B thanh ghiP 8086/8088 c tt c 14 thanh ghi ni. Cc thanh ghi ny c th phn loi nh

    sau:

    - Thanh ghi d liu (data register)- Thanh ghi ch s v con tr (index & pointer register)- Thanh ghi on (segment register)- Thanh ghi trng thi v iu khin (status & control register)

    5.1.Cc thanh ghi dliu

    Cc thanh ghi d liu gm c cc thanh ghi 16 bit AX, BX, CX v DX trong na cao v na thp ca mi thanh ghi c thnh a ch mt cch c lp. Cc nathanh ghi ny (8 bit) c tn l AH v AL, BH v BL, CH v CL, DH v DL.

    Cc thanh ghi ny c s dng trong cc php ton s hc v logic hay trong qutrnh chuyn d liu.

    Bng 2.8:

    Thanh ghi Sdng trongAX MUL, IMUL (ton hng ngun kch thc word)

    DIV, IDIV (ton hng ngun kch thc word)IN (nhp word)OUT (xut word)

    CWDCc php ton x l chui (string)AL MUL, IMUL (ton hng ngun kch thc byte)

    DIV, IDIV (ton hng ngun kch thc byte)IN (nhp byte)OUT (xut byte)XLAT

    AAA, AAD, AAM, AAS (cc php ton ASCII)

    CBW (i sang word)

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    32/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 31

    DAA, DAS (s thp phn)Cc php ton x l chui (string)

    AH MUL, IMUL (ton hng ngun kch thc byte)DIV, IDIV (ton hng ngun kch thc byte)CBW (i sang word)

    BX XLAT

    CX LOOP, LOOPE, LOOPNE

    Cc php ton string vi tip du ng REPCL RCR, RCL, ROR, ROL (quay vi sm byte)

    SHR, SAR, SAL (dch vi sm byte)DX MUL, IMUL (ton hng ngun kch thc word)

    DIV, IDIV (ton hng ngun kch thc word)

    AX (ACC Accumulator): thanh ghi tch lu

    BX (Base): thanh ghi cs

    CX (Count): m

    DX (Data): thanh ghi d liu

    5.2.Cc thanh ghi ch s v con tr

    Bao gm cc thanh ghi 16 bit SP, BP, SI v DI, thng cha cc gi tr offset (lch) cho cc phn tnh a ch trong mt phn on (segment). Chng c thc sdng trong cc php ton s hc v logic. Hai thanh ghi con tr (SP Stack Pointer v BP Base Pointer) cho php truy xut d dng n cc phn tang trong ngn xp (stack)hin hnh. Cc thanh ghi ch s (SI Source Index v DI Destination Index) c dng

    truy xut cc phn t trong cc on d liu v don thm (extra segment). Thngthng, cc thanh ghi con tr lin hn on stack hin hnh v cc thanh ghi ch s linhn don d liu hin hnh. SI v DI dng trong cc php ton chui.

    5.3.Cc thanh ghi on

    Bao gm cc thanh ghi 16 bit CS (Code segment), DS (Data segment), SS (stacksegment) v ES (extra segment), dng nh a ch vng nh 1 MB bng cch chiathnh 16 on 64 KB.

    Tt c cc lnh phi trong on m hin hnh, c nh a ch thng qua thanhghi CS. Offset ( lch) ca m c xc nh bng thanh ghi IP. D liu chng trnh

    thng c t on d liu, nh v thng qua thanh ghi DS. Stacknh v thng quathanh ghi SS. Thanh ghi on thm c th s dng nh a ch cc ton hng, d liu,b nhv cc phn t khc ngoi on d liu v stack hin hnh.

    5.4.Cc thanh ghi iu khin v trng thi

    Thanh ghi con tr lnh IP (Instruction Pointer) ging nh bm chng trnh(Program Counter). Thanh ghi iu khin ny do BIU qun l nhm lu tr offset t btu on m n lnh thc thi k tip. Ta khng th x l trc tip trn thanh ghi IP.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    33/130

    Ti liu Lp trnh hthng Chng 1

    Phm Hng Kim Khnh Trang 32

    Thanh ghi c(Flag register) hay t trng thi 16 bit cha 3 bit iu khin (TF, IFv DF) v 6 bit trng thi (OF, SF, ZF, AF, PF v CF) cn cc bit cn li m 8086/8088khng s dng th khng th truy xut c.

    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    X X X X OF DF IF TF SF ZF X AF X PF X CF

    - OF (Overflow - trn): OF = 1 xc nh trn s hc, xy ra khi kt qu vt rangoi phm vi biu din

    - DF (Direction- hng): xc nh hng chuyn string, DF = 1 khi P lm vicvi string theo th t t phi sang tri.

    - IF (Interrupt - ngt): cho php hay cm cc interrupt c mt n- TF (Trap - by): t P vo ch tng bc, dng cho cc chng trnh g

    ri (debugger).- SF (Sign - du): dng ch cc kt qu s hc l s dng (SF = 0) hay m

    (SF = 1).- ZF (Zero): = 1 nu kt qu ca php ton trc l 0.- AF (Auxiliary nhph): dng trong cc s thp phn ch nht na byte

    thp hay mn t na byte cao.- PF (Parity): PF = 1 nu kt qu ca php ton l c tng s bit 1 l chn (dng

    kim tra li truyn d liu)- CF (Carry): CF = 1 nu c nhhay mn t bit cao nht ca kt qu. Cny

    cng dng cho cc lnh quay.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    34/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 34

    Chng 2NGT V S KIN

    1. Khi nim

    Ngt (interrupt) l qu trnh d

    ng ch

    ng trnh chnh

    ang ch

    y

    u tin th

    c hinmt chng trnh khc, chng trnh ny c gi l chng trnh phc v ngt (ISR

    Interrupt Service Routine). ISR hon ton ging vi mt chng trnh bnh thng trn mytnh, ngha l n c kh nng truy xut n tt c cc lnh ngn ng my ca P. Tuy nhincui ISR s kt thc bng lnh IRET (Interrupt Return) P tip tc thc hin lnh ktthc trc y.

    Cc nguyn nhn dn n ngt l:

    - Bn thn chng trnh ang thc hin b li, v d nh: chia cho 0, - Do tc ng ca thit b ngoi vi, v d nh: thc hin lnh in nhng my in li,

    ghi d liu vo a nhng khng c a,

    - Do lp trnh vin chng gi cc ngt c sn.Mt cch n gin, chng ta c th xem ngt nh l qu trnh gi chng trnh con

    nhng cc chng trnh con ny c to ra sn trong my tnh v qu trnh gi ny c thxy ra ti thi im khng xc nh trc.

    S kin (Event) l mt tc ng ln mt i tng trong mi trng Windows. Khic mt s kin xy ra, Windows s gi thng ip (message) n i tng. Cc s kinthng xy ra l:

    - S kin chut: Click, Double Click, - S kin bn phm: nhn phm, nh phm, - S kin ca s: Activate, Load, Unload,

    2. Cc loi ngt v bng vector ngtQu trnh ngt c th m t nh sau:

    Hnh 2.1 Qu trnh thc hin ngt

    Lu tr cc thanh ghi cn thit

    Khi phc cc thanh ghiQuay v chng trnh chnh (IRET)

    Chng trnh chnh ISR

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    35/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 35

    Trong cc qu trnh ngt, ta phn bit thnh 2 loi: ngt cng v ngt mm. Ngtmm l ngt c gi bng mt lnh trong chng trnh ngn ng my. Ngt mm cthc hin trn h p ng thng qua lnh INT. i vi cc ngn ng bc cao hn, vn cho

    php thc hin gi ngt nhng phi c bin dch thnh lnh INT trong hp ng ri mithc hin.

    Khc vi ngt mm, ngt cng khng c khi ng bn trong my tnh m do cc

    linh kin in t tc ng ln h thng. Ngt cng cng c chia thnh 2 loi: ngt chec v ngt khng che c. Ngt che c l ngt c th cho php hay khng cho phpthc thi bng phn mm thng qua c ngt IF (Interrupt Flag): lnh CLI (Clear InterruptFlag) s cm ngt v lnh STI (Set Interrupt Flag) s cho php cc ngt ny hot ng.

    Cc loi ngt khc nhau c th m t nh sau:

    Hnh 2.2 Cc loi ngt

    Khi thc hin lnh gi mt ngt no , chng trnh con phc v cho ngt scgi. thc hin cc ngt tng ng, a ch thc hin cc chng trnh con phc v ngtc t trong mt bng, gi l bng vector ngt.

    Bng vector ngt gm c 256 phn t, mi phn t gm 4 byte ng vi 256 ngt (tngt 0 n ngt 0FFh). Mi phn t trong bng vector ngt cha 2 a ch: a ch thanh ghion a vo CS v a ch offset ca chng trnh phc v ngt a vo IP.

    Ngt

    Ngt mm Ngt cng

    Ngt h thng Ngt do ngis dng

    Trong Ngoi

    HH BIOS Che c Khngche c

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    36/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 36

    Bng vector ngt c th m t nh sau:

    a ch a ch ISR S thtngt

    0000h:0000h CS

    0000h:0002h IP0

    0000h:0004h CS

    0000h:0006h IP1

    0000h:0008h CS

    0000h:000Ah IP2

    0000h:03FCh CS

    0000h:03FEh IP255

    Khi c mt qu trnh ngt xy ra, CPU s tm a ch bt u ca chng trnh ngtc cha trong bng vector ngt theo s th t ngt. Do mt phn t trong bng vectorngt chim 4 byte nn tm gi tra ch trong bng vector ngt, ta ch cn nhn s th tngt vi 4.

    Danh sch cc ngt m t nh sau:

    STT a ch Chc nng

    00h 0000h 0003h CPU: chia cho 0

    01h 0004h 0007h CPU: thc hin tng lnh

    02h 0008h 000Bh CPU: Li RAM

    03h 000Ch 000Fh CPU: thc hin n im dng

    04h 0010h 0013h CPU: trn s

    05h 0014h 0017h In trang mn hnh (Print Screen)

    06h, 07h 0018h 001Fh Dnh ring

    08h 0020h 0023h IRQ0: ngt ng h (18.2 ln / giy)

    09h 0024h 0027h IRQ1: ngt bn phm0Ah 0028h 002Bh IRQ2: Dnh ring

    0Bh 002Ch 002Fh IRQ3: Giao tip ni tip 1

    0Ch 0030h 0033h IRQ4: Giao tip ni tip 2

    0Dh 0034h 0037h IRQ5: a cng

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    37/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 37

    0Eh 0038h 003Bh IRQ6: a mm

    0Fh 003Ch 003Fh IRQ7: My in

    10h 0040h 0043h BIOS: mn hnh

    11h 0044h 0047h BIOS: xc nh cu hnh my tnh

    12h 0048h 004Bh BIOS: xc nh kch thc RAM

    13h 004Ch 004Fh BIOS: truy nhp a cng / a mm

    14h 0050h 0053h BIOS: truy nhp giao tip ni tip

    15h 0054h 0057h BIOS: truy nhp cassette hay mrng ngt

    16h 0058h 005Bh BIOS: kim tra bn phm

    17h 005Ch 005Fh BIOS: truy nhp my in

    18h 0060h 0063h Chng trnh xm nhp ROM BASIC

    19h 0064h 0067h BIOS: khi ng h thng (khi nhn Ctrl-Alt-Del)

    1Ah 0068h 006Bh BIOS: c / ghi ngy / gi1Bh 006Ch 006Fh Nhn phm Break

    1Ch 0070h 0073h Gi sau INT 08h

    1Dh 0074h 0077h a ch bng tham s mn hnh

    1Eh 0078h 007Bh a ch bng tham sa mm

    1Fh 007Ch 007Fh a ch bng font c k t mrng

    20h 0080h 0083h DOS: kt thc chng trnh

    21h 0084h 0087h DOS: gi cc hm ca DOS

    22h 0088h 008Bh a ch kt thc chng trnh

    23h 008Ch 008Fh Nhn Ctrl-Break

    24h 0090h 0093h a ch chng trnh x l li

    25h 0094h 0097h DOS: c a mm / a cng

    26h 0098h 009Bh DOS: ghi a mm / a cng

    27h 009Ch 009Fh DOS: kt thc chng trnh v thng tr

    28h 3Fh 00A0h 00FFh Dnh ring cho DOS

    40h 0100h 0103h BIOS: phc va mm41h 0104h 0107h a ch bng tham sa cng 1

    42h 45h 0108h 0117h Dnh ring

    46h 0118h 011Bh a ch ca bng tham sa cng 2

    47h 49h 011Ch 0127h Dnh cho user

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    38/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 38

    4Ah 0128h 012Bh Hn gi

    4Bh 67h 012Ch 019Fh Dnh cho user

    68h 6Fh 01A0h 01BFh Khng dng

    70h 01C0h 01C3h IRQ8: ng h thi gian thc

    71h 01C4h 01C7h IRQ9

    72h 01C8h 01CBh IRQ10

    73h 01CCh 01CFh IRQ11

    74h 01D0h 01D3h IRQ12

    75h 01D4h 01D7h IRQ13: t 80x87

    76h 01D8h 01DBh IRQ14: a cng

    77h 01DCh 01DFh IRQ15

    78h 7Fh 01E0h 01FFh Dnh ring

    80h F0h 0200h 03C3h Dng cho b thng dch BASICF1h FFh 03C4h 03FFh Khng s dng

    3. Gi ngt v chn ngtQu trnh gi ngt t hp ngn gin l thc hin lnhINT STT_ngtsau khi np

    cc tham s cn thit cho ngt. Khi thc hin lnh gi ngt, CPU s tm kim trong bngvector ngt a ch ca chng trnh phc v ngt. Ngi s dng cng c th xy dng mtchng trnh csnh cc chng trnh x l ngt. Sau , cc chng trnh khc c thgi ngt ra s dng. Mt chng trnh c th gi chng trnh con loi ny m khng cn

    bit a ch ca n.Nh vy, nu mun thay i ngt, ta c th thay i ni dung trong bng vector ngt

    chn chng trnh phc v do ngi s dng t xy dng v chng trnh ny scthc hin khi ngt c gi. lm iu ny, ta ch cn tm v tr ca vector ngt tng ngtrong bng v thay i gi tr ca n. iu ny thc hin c do bng vector ngt t trongRAM v c np mi khi khi ng h thng.

    Qu trnh ly v gn a ch ca chng trnh con phc v ngt c th thc hinthng qua ngt 21h bng cc hm sau:

    Hm 35h: ly a ch ca ngt

    Vo: AL = s th t ngtRa: ES:BX = a ch ca chng trnh phc v ngt

    Hm 25h: gn a ch ca mt chng trnh phc v cho mt ngt

    Vo: AL = s th t ngt, DS:DX

    Ra: khng c

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    39/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 39

    thc hin chn mt ngt, ta cn thc hin nh sau:

    Hnh 2.2 Qu trnh chn mt ngt

    Mt v d cho qu trnh chn ngt nh sau:

    ;*******************************************************************************

    ;*

    ;* LAB6-2.ASM - Assembler Laboratory ZMiTAC

    *

    ;*

    ;* Sample program that converts lowercase to uppercase when key pressed

    *

    ;*

    ;*******************************************************************************.MODEL SMALL

    .STACK 100h

    .CODE

    ;*******************************************************************************

    ;* Variables

    ;*******************************************************************************

    old_proc dd 0 ; address of original interrupt handler

    dot_flag db 0 ; dot flag

    ;*******************************************************************************

    ;* 09h interrupt handler

    ;*******************************************************************************

    segment_kb EQU 40h ; beggining of keyboard data segment

    wsk_kb EQU 1Ch ; offset of pointer to keyboard bufferkb_buf_begin EQU 80h ; offset of address of begining of the

    buffer

    kb_buf_end EQU 82h ; offset of address of end of the buffer

    keys PROC FAR

    ;-------------------------------------------------------------------------------

    ; Calling of original interrupt handler

    ;-------------------------------------------------------------------------------

    Dng hm 35h lya ch ca ngt

    Dng hm 25h gn

    a ch mi cho ngt

    Dng hm 25h khi

    phc li a ch ccho ngt

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    40/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 40

    int 60h

    ;-------------------------------------------------------------------------------

    ; Prepare registers

    ;-------------------------------------------------------------------------------

    push ax ; push registers on the stack

    push bx

    push dx

    push ds

    mov ax,segment_kb ; address of keyboard data segment to DS

    mov ds,ax

    ;-------------------------------------------------------------------------------

    ; Read the character and check ASCII code

    ;-------------------------------------------------------------------------------

    mov bx,ds:[wsk_kb] ; actual pointer to BX

    mov ax,ds:[kb_buf_begin] ; buffer beggining to AX

    cmp bx,ax ; is the beggining of the buffer ?

    jne mid_buf

    mov bx,ds:[kb_buf_end] ; last character is at the end of the

    buffer

    mid_buf:

    mov ax,ds:[bx-2] ; read last character

    cmp al,'.' ; compare with dotje dot_found ; if dot

    cmp al,'Z' ; compare with 'Z'

    ja check_lowercase ; if above check lowercase

    cmp al,'A' ; compare with 'A'

    jb keys_end ; end if less

    mov dot_flag,0 ; uppercase - clear flag

    jmp keys_end ; return

    check_lowercase:

    cmp al,'z' ; compare with 'z'

    ja keys_end ; end if above

    cmp al,'a' ; compare with 'a'

    jb keys_end ; end if less

    cmp dot_flag,0 ; was dot pressed?

    je keys_end ; end if not

    ;-------------------------------------------------------------------------------

    ; Change lowercase to uppercase

    ;-------------------------------------------------------------------------------

    sub al,'a'-'A' ; sub difference between cases

    mov ds:[bx-2],ax

    mov dot_flag,0 ; uppercase - clear flag

    jmp keys_end ; return

    dot_found:

    mov dot_flag,1 ; set flag

    jmp keys_end ; return

    ;-------------------------------------------------------------------------------

    ; Pop registers and return from interrupt

    ;-------------------------------------------------------------------------------

    keys_end:

    pop ds

    pop dx

    pop bx

    pop ax

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    41/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 41

    iret

    keys ENDP

    ;*******************************************************************************

    ;* Main program

    ;*******************************************************************************

    ;-------------------------------------------------------------------------------

    ; Get interrupt

    ;-------------------------------------------------------------------------------

    start proc

    mov ah,35h ; function 35h - read handler address

    mov al,09h ; of interrupt 09h

    int 21h

    mov word ptr old_proc,bx ; store 32-bit address

    mov word ptr old_proc+2,es ; of original interrupt handler

    push cs

    pop ds ; handler code segment to DS

    mov dx,offset keys ; offset of handler address to DX

    mov ah,25h ; function 25h - set new handler

    mov al,09h ; of interrupt 09h

    int 21h

    mov dx,word ptr old_proc+2

    mov ds,dxmov dx,word ptr old_proc

    mov ah,25h ; function 25h - set new adress

    mov al,60h ; of original interrupt handler

    int 21h ; 60h instead of 09h

    ;-------------------------------------------------------------------------------

    ; Main loop

    ;-------------------------------------------------------------------------------

    looping:mov ah,08h ; function 08h - read character

    int 21h ; ASCII code is returned in AL

    cmp al,1Bh ; ESC

    je ending ; if ESC end of the loop

    mov dl,al ; not ESC - move char to DL

    mov ah,02h ; function 02h - display character

    int 21h ; ASCII code of char in DL

    jmp looping

    ;-------------------------------------------------------------------------

    ending: mov dx,word ptr old_proc+2

    mov ds,dx

    mov dx,word ptr old_proc

    mov ah,25h ; function 25h - set old handler

    mov al,09h ; of interrupt 09h

    int 21h

    mov ah,4Ch ; end of the program

    int 21h

    start endp

    END start

    4. To v bt cc s kinTrong hiu hnh Windows, hook (cu mc) l cch cho php mt hm chn mt

    s kin (thng ip, chut, phm nhn) trc khi a n i tng cn x l. Hm ny chophp thay i hoc thm ch cm s kin xy ra. Chng c gi l hm lc (filter) v c

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    42/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 42

    phn loi da theo loi s kin b chn. gi c hm lc, ta cn phi thc hin qu trnhgn (attach) vo qu trnh cu mc (nh cu mc bn phm). Vic gn mt hay nhiu hmlc vo mt qu trnh cu mc c gi l thit lp (setting) mt qu trnh cu mc.

    Nu mt qu trnh cu mc c nhiu hn mt hm lc, Windows s duy tr mt chuicc hm lc trong hm c ci t vo gn nht s nm u chui v hm ci t lunht s nm cui chui. Nu s kin xy ra lm khi ng qu trnh cu mc, Windows s

    gi hm lc u tin trong chui. Qu trnh cu mc vo mt s kin c s dng bnghm SetWindowsHookEx v hm UnhookWindowsHookEx dng xa b hm lc khiqu trnh.

    Cch cu mc cung cp cc kh nng mnh m cho mt ng dng Windows. Ccng dng ny c th dng qu trnh cu mc :

    - X l v thay i cc thng ip gi n cc dialog box, message box, scroll barv menu ca mt ng dng (WH_MSGFILTER).

    - X l v thay i cc thng ip gi n cc dialog box, message box, scroll barv menu ca h thng (WH_SYSMSGFILTER).

    -

    X l v thay i cc thng ip ca h thng bt c khi no hm GetMessagehay PeekMessagec gi (WH_GETMESSAGE).

    - X l v thay i cc thng ip ca h thng bt c khi no hm SendMessagec gi (WH_CALLWNDPROC).

    - Ghi hay thc hin li cc s kin bn phm v chut (WH_JOURNALRECORD,WH_JOURNALPLAYBACK).

    - X l, sa i hay cm s kin chut (WH_MOUSE).- X l, sa i hay cm s kin bn phm (WH_KEYBOARD).- p ng vi cc hot ng no ca h thng, c kh nng pht trin CBT

    (computer-based training) cho ng dng (WH_CBT).- Cm cc hm lc khc (WH_DEBUG).Cc ng dng thng dng qu trnh cu mc :

    - Dng phm F1 h tr cho menu, dialog box v message box(WH_MSGFILTER).

    - Lu li qu trnh thc hin khi nhn phm hay chut (thng dng cho macro). Vd nh Windows Recorder s dng hook h trchc nng record v playback(WH_JOURNALRECORD, WH_JOURNALPLAYBACK).

    - Qun l thng ip xc nhn thng ip c gi ti ca s hay c to ra(WH_GETMESAGE, WH_CALLWNDPROC).

    - M phng ng vo chut v bn phm (WH_JOURNALPLAYBACK). Qu trnhcu mc l phng php tin cy thc hin hot ng ny. Nu ta thc hin m

    phng bng cch gi thng ip, Windows s khng thc hin cp nht trng thica bn phm hay chut dn n cc hot ng khng mong mun. Nu qu trnhcu mc thc hin iu ny, n sc x l ging nh s kin chut hay bn

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    43/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 43

    phm xy ra. V d nh Microsoft Excel dng hook thc hin macroSENDKEYS.

    - Cung c p kh nng CBT cho ng dng thc hin trn mi trng Windows(WH_CBT) lm cho qu trnh pht trin ng dng CBT d dng hn.

    Phm vi sdng: Mt trong nhng c trng ca Win32 Hook l cho php chnhqu trnh cu mc l h thng hay dng lung (thread). Hook h thng cho php tc ng

    n cc ca s khc trong h thng cn hook lung ch cho php tc ng n ca s hinhnh.

    Cch thc sdng qu trnh cu mc:

    s dng qu trnh cu mc, ta cn phi bit:

    - Lm th no dng hm cu mc ca Windows thm vo hay xa b mt hmlc trong chui hm x l ca mt qu trnh cu mc.

    - Cn phi thc hin cc hot ng g ci t mt hm lc.- C th thc hin c hm cu mc no v chng c th lm c g, gi nhng

    thng tin no.

    4.1. Hm cu mc ca WindowsCc ng dng trn nn Windows s dng cc hm SetWindowsHookEx,

    UnhookWindowsHookEx v CallNextHookEx qun l chui hm lc trong mt qutrnh cu mc. Trc phin bn 3.1, Windows thc hin qun l bng cc hmSetWindowsHook, UnhookWindowsHookv DefHookProc. Mc d cc hm ny cngc kh nng thc hin c trn nn Win32 nhng s c mt sc trng khng s dngc nh cc phin bn mi (Ex).

    4.1.1. Hm SetWindowsHookEx

    Dng thm mt hm lc vo mt qu trnh cu mc.Khai bo:

    Public Declare Function SetWindowsHook Lib "user32" Alias "SetWindowsHookA" (ByVal nFilterType As Long, ByValpfnFilterProc As Long) As Long

    Public Declare Function SetWindowsHookEx Lib "user32"Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfnAs Long, ByVal hmod As Long, ByVal dwThreadId As Long) AsLong

    Hm SetWindowsHookEx gm c 4 tham s:

    - idHook: xc nh loi hm cu mc s ci t. Thng s ny gm cc gi tr sau:WH_KEYBOARD: ci t hm cu mc qun l thng ip gi i khi nhn phm

    (ngoi tr t hp Ctrl Alt Del).

    WH_MOUSE: ci t hm cu mc qun l thng ip khi iu khin chut.

    WH_CALLWNDPROC: ci t hm cu mc qun l thng ip trc khi h thnggi n ca s, ch cho php x l thng ip m khng c thay i thng ip.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    44/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 44

    WH_CALLWNDPROCRET: ci t hm cu mc qun l thng ip sau khi ca s x l. Loi ny cho php thay i gi tr tr v ca thng ip.

    WH_MSGFILTER: ci t hm cu mc qun l cc thng ip c to ra gingnh c mt s kin ca dialog box, message box, menu hay scroll bar.

    WH_GETMESSAGE: ci t hm cu mc qun l cc thng ip c gi ti hngi.

    WH_CBT: ci t hm cu mc nhn thng bo tng dng CBT.

    WH_DEBUG: ci t hm cu mc gri mt hm cu mc khc.

    WH_FOREGROUNDIDLE: ci t hm cu mc trong hm ny c gi khilung (thread) foreground ca ng dng rnh (idle). Qu trnh ny thng s dng thcthi cc tc v c u tin thp khi lung u tin rnh.

    WH_JOURNALPLAYBACK: ci t hm cu mc gi cc thng ip clu bng hm cu mc WH_JOURNALRECORD.

    WH_JOURNALRECORD: ci t hm cu mc lu li cc thng ip gi nhng i.

    WH_KEYBOARD_LL: ci t hm cu mc qun l s kin bn phm mc thp(dng cho Windows NT/2000/XP).

    WH_MOUSE_LL: ci t hm cu mc qun l s kin chut mc thp (dng choWindows NT/2000/XP).

    WH_SHELL: ci t hm cu mc cho mt ng dng shell.

    WH_SYSMSGFILTER: ci t hm cu mc qun l cc thng ip c to raging nh c mt s kin ca dialog box, message box, menu hay scroll bar. Hm ny qunl cho tt cng dng trong cng mt desktop.

    -

    lpfn:Con tr chn a ch ca hm lc. Nu tham sdwThreadId= 0 hay chn mt

    lung c to bi mt tin trnh (process) khc, tham s lpfn phi chn mt hm cumc trong mt th vin lin kt ng (DLL). Ngc li, lpfn chn hm cu mc chatrong bn thn tin trnh hin hnh.

    - hMod:handle chn DLL cha hm x l xc nh bng tham slpfn. Tham shModphi

    t l NULL nu hm cu mc nm trong tin trnh hin hnh

    - dwThreadId:Xc nh ID ca lung thc hin qu trnh cu mc. Nu dwThreadId= 0, hm cumc s tc ng n tt c cc lung. ng dng c th dng hm GetCurrentThreadId

    xc nh ID ca lung hin hnh.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    45/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 45

    Phm vi thc hin ca hm cu mc m t nh sau:

    Hook Phm vi

    WH_CALLWNDPROC Lung hay h thng

    WH_CBT Lung hay h thng

    WH_DEBUG Lung hay h thngWH_GETMESSAGE Lung hay h thng

    WH_JOURNALRECORD H thng

    WH_JOURNALPLAYBACK H thng

    WH_FOREGROUNDIDLE Lung hay h thng

    WH_SHELL Lung hay h thng

    WH_KEYBOARD Lung hay h thng

    WH_MOUSE Lung hay h thng

    WH_MSGFILTER Lung hay h thng

    WH_SYSMSGFILTER H thng

    Hm SetWindowsHookEx tr v handle ca qu trnh cu mc ci t v tr vNULL nu qu trnh ci t khng thnh cng. Handle ny c dng xa qu trnh cumc khi s dng hm UnhookWindowsHookEx . Cc thng bo li khi qu trnh cu mckhng thnh cng l:

    - ERROR_INVALID_HOOK_FILTER: m cu mc sai- ERROR_INVALID_FILTER_PROC: hm lc sai- ERROR_HOOK_NEEDS_HMOD: mt qu trnh cu mc ton cc s dng tham

    s hMod = NULL hay chn mt lung khng tn ti.- ERROR_GLOBAL_ONLY_HOOK: mt qu trnh cu mc ch dng c cho

    h thng nhng c ci t cho mt lung xc nh.

    - ERROR_INVALID_PARAMETER: ID ca lung sai.- ERROR_JOURNAL_HOOK_SET: Ci t thm mt qu trnh cu mc dng

    nht k (WH_JOURNALRECORD v WH_JOURNALPLAYBACK) trong khimt qu trnh dng ny ang tn ti (ti mt thi im ch cho php mt qu trnhdng nht k).

    - ERROR_MOD_NOT_FOUND: Tham s hMod chn mt hm khng xc nhc.

    - Khc: khng cho php do bo mt ca h thng hay b nhtrn.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    46/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 46

    4.1.2. Hm UnhookWindowsHookEx:Dng xo mt hm lc ra khi chui x l mt qu trnh cu mc. Hm ny ly

    handle ca qu trnh cu mc tr v t lnh gi hm SetWindowsHookEx v lun tr v gitr TRUE.

    Khai bo:

    Public Declare Function UnhookWindowsHook Lib "user32"

    Alias "UnhookWindowsHook" (ByVal nCode As Long, ByVal

    pfnFilterProc As Long) As Long

    Public Declare Function UnhookWindowsHookEx Lib

    "user32" Alias "UnhookWindowsHookEx" (ByVal hHook As Long)

    As Long

    4.1.3. Hm CallNextHookEx:Dng chuyn thng tin cu mc n hm cu mc k tip trong chui x l.

    Declare Function CallNextHookExLib "user32" (ByVal hHookAs Long, ByVal ncode As Long, ByVal wParam As Long, lParam As

    Any) As Long

    - hHook: handle ca qu trnh cu mc, l gi tr tr v t lnh gi hmSetWindowsHookEx. Thng thng Windows b qua gi tr ny.

    - nCode: m ca qu trnh cu mc, hm cu mc dng m ny xc nhphng php x l thng tin.

    - wParam: xc nh tham sc x l bi hm cu mc.- lParam: ging nh wParam.Khi mt qu trnh cu mc khi ng, Windows gi hm u tin trong chui hm

    lc v kt thc qun l qu trnh, cc hm lc pha sau s khng x l. thc hin cc

    hm pha sau trong chui hm, Windows cung c p hm CallNextHookEx cho php gimt hm k tip trong chui hm lc. Nh vy, nu mt hm lc no khng thc hinhm CallNextHookEx th cc hm lc pha sau s khng thc hin.

    Mt v d s dng cc hm x l cu mc nh sau:

    'Cha trong mt file module

    Public Const WH_KEYBOARD = 2

    Public Const VK_SHIFT = &H10

    Public Const VK_CONTROL = &H11

    Public Const VK_MENU = &H12

    Declare Function CallNextHookExLib "user32" (ByVal hHookAs Long, ByVal ncode As Long, ByVal wParam As Long, lParam AsAny) As Long

    Declare Function GetKeyState Lib "user32" (ByVal nVirtKeyAs Long) As Integer Xc nh trng thi ca mt phm (Bit15)

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    47/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 47

    Declare Function SetWindowsHookEx Lib "user32" Alias"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn AsLong, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

    Declare Function UnhookWindowsHookExLib "user32" (ByValhHook As Long) As Long

    Public hHook As Long

    Public Function KeyboardProc(ByVal idHook As Long, ByValwParam As Long, ByVal lParam As Long) As Long

    If idHook < 0 Then

    'Gi hm x l k tip

    KeyboardProc = CallNextHookEx(hHook, idHook, wParam,ByVal lParam)

    Else

    'Nu nhn Shift-C

    If (GetKeyState(VK_SHIFT) And &H8000) And wParam =Asc("C") Then

    'th hin th kt qu

    Form1.Print "Shift-C pressed ..."

    End If

    If (GetKeyState(VK_CONTROL) And &H8000) And wParam =Asc("C") Then

    Form1.Print "Ctrl-C pressed ..."

    End If

    If (GetKeyState(VK_MENU) And &H8000) And wParam =Asc("C") Then

    Form1.Print "Alt-C pressed ..."

    End If

    'Gi hm x l k tip

    KeyboardProc = CallNextHookEx(hHook, idHook, wParam,ByVal lParam)

    End If

    End Function

    -----------------------------------------------

    'Cha trong form

    Private Sub Form_Load()

    't qu trnh cu mc

    hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOfKeyboardProc, App.hInstance, App.ThreadID)

    End Sub

    Private Sub Form_Unload(Cancel As Integer)

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    48/130

    Ti liu Lp trnh hthng Chng 2

    Phm Hng Kim Khnh Trang 48

    'Xo qu trnh cu mc

    UnhookWindowsHookEx hHook

    End Sub

    4.2. Hm lcHm lc thng c dng nh sau:

    Function FilterFunc (ByVal nCode As Integer, ByVal wParamAs Long, ByVal lParam As Long)

    Hm lc nhn 3 tham s:

    - nCode: m ca qu trnh cu mc, l mt s nguyn xc nh hm lc, v d nhloi s kin lm khi ng qu trnh cu mc. M ny c xc nh khi hm lcx l s kin hay gi hm DefHookProc. Nu m cu mc < 0 th hm lc skhng x l s kin m s gi hm DefHookProc truyn 3 tham s cn li chohm lc k tip trong chui hm lc bng hm CallNextHookEx.

    - Tham s th hai wParam v th ba lParam cha cc thng tin cn thit cho hmlc. Mi qu trnh cu mc dng cc gi tr wParam v lParam khc nhau. V dnh, qu trnh cu mc bn phm WH_KEYBOARD cha m phm nhn trongwParam v trng thi bn phm trong lParam. Hay qu trnh cu mcWH_MSGFILTER cha gi tr NULL trong wParam v mt con tr ch nthng ip cha trong lParam.

    Hm lc dng trong DLL:

    i vi cc qu trnh cu mc cc b, hm lc c tht ngay trong m lnh ca ngdng nhng i vi cc qu trnh cu mc h thng, hm lc phi c t trong mt DLL.Ch c qu trnh cu mc dng nht k (WH_JOURNALRECORD vWH_JOURNALPLAYBACK) l ngoi l. Hm lc ca qu trnh cu mc h thng phichia s d liu cho tin trnh thc hin qu trnh cu mc. Cc bin ton cc s dng trongDLL phi c xc nh r hay phi t trong vng d liu chia s.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    49/130

    Ti liu Lp trnh hthng Chng 3

    Phm Hng Kim Khnh Trang 49

    Chng 3GIAO TIP THIT B CHUN

    1. Giao tip bn phm

    1.1. Nguyn l hot ng

    Hnh 3.1 - S nguyn l v cc ghp ni ca bn phm

    Chip x l bn phm lin tc kim tra trng thi ca ma trn qut (scan matrix)

    xc nh cng tc ti cc ta X, Y ang c ng hay mv ghi mt m tng ng vobm bn trong bn phm. Sau m ny sc truyn ni tip ti mch ghp ni bnphm trong PC. Cu trc ca SDU (Serial Data Unit) cho vic truyn s liu:

    0 10

    STRT DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 PAR STOP

    STRT: bit start (lun bng 0)DB0 - DB7: bit s liu t 0 n 7.PAR: bit parity (lun l)STOP: bit stop (lun bng 1).

    X

    -

    Deco

    der

    D7

    11 bits SDU

    D5

    Keyboard Interface

    IRQ1 Y- Decoder

    D2

    Keyboard

    ScanEnable

    Keyboard cableKey

    boar

    d

    chip(PC/XT)

    or

    Keyboard

    Controller

    D1Serial

    Interface

    ScanMatrix

    IRQ Logic

    D6

    8042/8741/8742(AT ect)

    D3

    D0

    D4

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    50/130

    Ti liu Lp trnh hthng Chng 3

    Phm Hng Kim Khnh Trang 50

    Mi phm nhn sc gn cho 1 m qut (scan code) gm 1 byte. Nu 1 phm cnhn th bn phm pht ra 1 m make code tng ng vi m qut truyn ti mch ghp ni

    bn phm ca PC. Ngt cng INT 09h c pht ra qua IRQ1.

    Chng trnh x l ngt s x l m ny tu theo phm SHIFT c c nhn haykhng. V d: nhn phm SHIFT trc, khng ri tay v sau nhn C:

    make code c truyn - 42(SHIFT) - 46 (C).

    Nu ri tay nhn phm SHIFT th bn phm s pht ra break code v m ny ctruyn nh make code. M ny ging nh m qut nhng bit 7 c t ln 1, do vy ntng ng vi make code cng vi 128. Tu theo break code, chng trnh con x lngt s xc nh trng thi nhn hay ri ca cc phm. Th d, phm SHIFT v C c ritheo th t ngc li vi th d trn:

    break code c truyn 174 ( bng 46 cng 128 tng ng vi C) v 170(bng 42 cng 128 tng ng vi SHIFT).

    Phn cng v phn mm x l bn phm cn gii quyt cc vn vt l sau:

    - Nhn v nh phm nhng khng c pht hin.

    Chn 1: clock

    Chn 2: d liu

    Chn 3: Reset

    Chn 4: GND

    Chn 5: Vcc

    Hnh 3.2 u cm bn phm AT

    Chn 1: d liu

    Chn 2: khng dngChn 3: GND

    Chn 4: Vcc

    Chn 5: clock

    Chn 6: khng dng

    Hnh 3.3 u cm bn phm PS/2

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    51/130

    Ti liu Lp trnh hthng Chng 3

    Phm Hng Kim Khnh Trang 51

    - Kh nhiu rung c kh v phn bit 1 phm c nhn nhiu ln hay cnhn ch 1 ln nhng c gi trong mt khong thi gian di.

    1.2. Lp trnh giao tip qua cc cngBn phm cng l mt thit b ngoi vi nn v nguyn tc c th truy xut n qua cc

    cng vo ra.

    Cc thanh ghi v cc port:S dng 2 a ch port 60h v 64h c th truy xut bm vo, bm ra v thanh

    ghi iu khin ca bn phm.

    Port Thanh ghi R/W60h m ng ra R60h m ng vo W64h Thanh ghi iu khin W64h Thanh ghi trng thi R

    Thanh ghi trng thixc nh trng thi hin ti ca biu khin bn phm. Thanhghi ny chc (read only) v c bng lnh IN ti port 64h.

    7 0

    PARE TIM AUXB KEYL C/D SYSF INPB OUTB

    PARE: Li chn l ca byte cui cng c vo t bn phm; 1 = c li chn l, 0= khng c.

    TIM: Li qu thi gian (time-out); 1 = c li, 0 = khng c.AUXB: m ra cho thit b ph (ch c my PS/2); 1 = gi s liu cho thit b,

    0 = gi s liu cho bn phm.KEYL: Trng thi kha bn phm; 1 = khng kha, 0 = kha.C/D: Lnh/d liu; 1 = Ghi qua port 64h, 0 = Ghi qua port 60h.SYSF: ch thng; 1 = t kim tra thnh cng, 0 = reset khi cp inINPB: Trng thi m vo; 1 = d liu CPU trong bm vo, 0 = m vo rng.OUTB: Trng thi m ra; 1 = d liu biu khin bn phm trong bm ra, 0

    = m ra rng.

    Thanh ghiiu khinCc lnh cho biu khin bn phm:

    M M tA7h Cm thit b phA8h Cho php thit b phA9h Kim tra giao tip thit b ph v lu m kim tra vo bm ra

    00h: khng li01h: CLKmc thp02h: CLKmc cao03h: DATA mc thp

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    52/130

    Ti liu Lp trnh hthng Chng 3

    Phm Hng Kim Khnh Trang 52

    04h: DATA mc caoFFh: li khc

    AAh T kim tra (ghi 55h vo bm ra nu khng liABh Kim tra giao tip bn phm v lu m kim tra vo bm raADh Cm bn phmAEh Cho php bn phm

    C0h c cng vo v truyn d liu n bm raC1h c cc bit 3 0 ca cng vo v truyn n cc bit 3- 0 ca thanh ghi trng thicho n khi INPB = 1

    C2h c cc bit 7 4 ca cng vo v truyn n cc bit 7- 4 ca thanh ghi trng thicho n khi INPB = 1

    D0h c cng raD1h Ghi cng raD2h Ghi vo bm ra v xo AUXBD3h Ghi vo bm ra v set AUXBD4h Ghi byte d liu tip theo vo thit b ph

    Kha bn phm:

    Start:IN AL, 64h ; c byte trng thiTEST AL, 02h ; kim tra bm c y hay khngJNZ startOUT 64h, 0ADh ; kha bn phm

    Output

    Buffer

    64h

    60h

    Status

    Registe

    r

    Keyboard

    Output

    Port

    PCSystemBus

    60h

    PS/2 only

    64h

    Input

    Buffer

    Control

    Register

    Input

    Port

    Keyboard Controller

    Hnh 3.4 - Biu khin bn phm

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    53/130

    Ti liu Lp trnh hthng Chng 3

    Phm Hng Kim Khnh Trang 53

    Cc lnh cho bn phm:M Lnh M tEDh Bt/tt LED Bt/tt cc n led ca bn phmEEh Echo Tr v byte EEhF0h t/nhn dng m qut t 1 trong 3 t p m qut v nhn din cc m qut

    tp m qut hin ti.F2h Nhn din bn phm Nhn din ACK = AT, ACK+abh+41h=MF II.F3h t tc lp li/tr t tc lp li v thi gian tr ca bn phmF4h Enable Cho php bn phm hot ngF5h Chun/khng cho php t gi tr chun v cm bn phm.F6h Chun/cho php t gi tr chun v cho php bn phm.FEh Resend Bn phm truyn k t cui cng mt ln na ti b

    iu khin bn phmFFh Reset Chy reset bn trong bn phm

    Th d: lnh bt n led cho phm NUMCLOCK, tt tt c cc n khc.MOV AL,0EDh

    OUT 60H, ALWAIT:

    IN AL, 64H ; c thanh ghi trng thiJNZ WAIT

    MOV AL,02h

    OUT 60H, AL ; bt n cho numclock

    Cu trc ca byte ch th nh sau:

    7 2 1 00 0 0 0 0 CPL NUM SCR

    CPL: 1 = bt n Caps Lock; 0 = tt NUM: 1 = bt n Num Lock; 0 = ttSCR: 1 = bt n Scroll Lock; 0 = tt

    1.3. Lp trnh giao tip qua cc hm ca DOS, BIOSBIOS ghi cc k t do vic nhn cc phm vo bm tm thi c gi l bm

    bn phm (keyboard buffer), c a ch 40h:1Eh, gm 32 byte v kt thc a ch 40h:3Dh.Mi k tc lu tr bng 2 byte, byte cao l m qut, v byte thp l m ASCII. Chngtrnh x l ngt s xc nh m ASCII t m qut bng bng bin i v ghi c 2 m vo bm bn phm. Bm bn phm c t chc nh bm vng (ring buffer) v c qunl bi 2 con tr. Cc gi tr con trc lu tr trong vng d liu ca BIOS a ch40h:1Ah v 40h:1Ch. Con tr ghi (40h:1Ch) cho bit v tr cn trng k tip ghi k tnhp, con trc (40h:1Ah) cho bit v tr k tu tin sc. T, bm bn phmrng khi con tr ghi v con trc trng nhau bm ch cha c 15 k t.

    Ti liu ny c upload & download min ph ti website: http://hutonline.net

  • 8/14/2019 Lap%20trinh%20he%20thong

    54/130

    Ti liu Lp trnh hthng Chng 3

    Phm Hng Kim Khnh Trang 54

    Cc hm ca ngt 16h:

    Hm 0h - c k t t bn phm, nu khng nhn th s ch

    Ra: AH = scancode, AL = m ASCII. Nu phm nhn l cc phm c bit th AL = 0

    Hm 1h - ZF = 1 nu khng c k t trong bm. Gi tr tr v ging nh hm00h nhng khng xo k t ra khi bm

    Hm 2h - Tr v trng thi ca cc phm, kt qu cha trong AL

    7 6 5 4 3 2 1 0

    INS CAPS

    LOCK

    NUM

    LOCK

    SCROLL

    LOCK

    ALT CTRL LEFT

    SHIFT

    RIGHT

    SHIFT

    Hm 10h - Ging hm