luận văn giao tiếp với vi Điều khiển arm

Upload: hanhoainguyen

Post on 13-Oct-2015

62 views

Category:

Documents


7 download

TRANSCRIPT

  • - 1 -

    I HC QUC GIA H NI

    TRNG I HC CNG NGH

    TRNG XUN THNG

    GIAO TIP VI VI IU KHIN ARM

    LUN VN THC S

    H Ni - 2011

  • - 2 -

    MC LC

    M U ....................................................................................................................6 PHN I - L THUYT CHUNG..............................................................................7 CHNG 1 - CU TRC VI IU KHIN ARM ................................................7

    1.1 i nt v lch s hnh thnh v pht trin vi iu khin ARM .........................7 1.2 Cu trc c bn ARM.......................................................................................8 1.3 M hnh kin trc .............................................................................................8 1.4 M hnh thit k ARM ...................................................................................11

    1.4.1 Li x l ..................................................................................................11 1.4.2 Cc thanh ghi ca ARM ...........................................................................12

    1.5 Cu trc load-store .........................................................................................13 1.6 Cu trc tp lnh ca ARM ............................................................................13

    1.6.1 Thc thi lnh c iu kin ........................................................................13 1.6.2 Phng thc nh a ch .........................................................................13 1.6.3 Ngn xp..................................................................................................14 1.6.4 Tp lnh ARM .........................................................................................14

    1.7 Kt lun..........................................................................................................17 CHNG 2 - GIAO TIP VI VI IU KHIN ARM ......................................18

    2.1 M hnh giao tip trong vi iu khin ARM ...................................................18 2.2 Cc giao tip c bn trong vi iu khin ARM ...............................................19

    2.2.1 Giao tip vi b nh ................................................................................19 2.2.2 Giao tip vi b iu khin ngt...............................................................22 2.2.3 Giao tip vi b nh thi ........................................................................26 2.2.4 Giao tip vi b iu khin tm dng v Reset ........................................29 2.2.5 Giao tip vi khi GIPO ..........................................................................31 2.2.6 Giao tip vi khi truyn/thu khng ng b a nng (UART) ................33 2.2.7 Giao tip ngoi vi ni tip (SPI)...............................................................35 2.2.8 Giao tip USB..........................................................................................36 2.2.9 Kin trc bus truyn d liu cao cp ca vi iu khin ARM ...................38

    2.3 Kt lun..........................................................................................................42 CHNG 3 - C IM CC DNG LI X L ARM .................................44

    3.1 Phn loi v tnh nng cc dng li x l ARM..............................................44 3.2 c im cc dng li x l ARM .................................................................46

    3.2.1 c im ca kin trc dng li x l ARM v4T .....................................46 3.2.2 c im kin trc dng li x l ARM v5..............................................47 3.2.3 c im kin trc dng li x l ARM v6..............................................48 3.2.4 Kin trc dng li x l ARM v7.............................................................49

    3.3 Kt lun..........................................................................................................50 PHN II - THC NGHIM ...................................................................................51

  • - 3 -

    CHNG 4 - NG DNG MT S GIAO TIP VI VI IU KHIN AT91SAM7S64 ........................................................................................................51

    4.1 Gii thiu .......................................................................................................51 4.2 c tnh c bn ca vi iu khin AT91SAM7S64.........................................52 4.3 Khi ngun cung cp ......................................................................................54 4.4 Cng kt ni chun JTAG ..............................................................................56 4.5 Mch cm bin nhit ..................................................................................56 4.6 Giao tip vi IC thi gian thc DS12C887 .....................................................59 4.7 Hin th d liu trn LED 7 on....................................................................70 4.8 Giao tip vi SD Card ....................................................................................73 4.9 Giao tip vi my tnh qua cng COM ...........................................................80 4.10 S nguyn l mch ..................................................................................83 4.11 S mt trn mch in .................................................................................85 4.12 S mt di mch in ................................................................................85 4.13 Mch hon chnh ..........................................................................................86 4.14 Kt qu .........................................................................................................86 4.15 Lu thut ton .........................................................................................89

    KT LUN ..............................................................................................................90 TI LIU THAM KHO..........................................................................................91 DANH MC BNG...................................................................................................92 DANH MC HNH....................................................................................................93 PH LC ..................................................................................................................95

  • - 4 -

    K HIU CC CH VIT TT

    ADC Analog to Digital Converter B chuyn i tng t sang s AMBA Advanced Microcontroller

    Bus Architecture Kin trc bus truyn vi iu khin cao cp

    AHB Advanced High-performance Bus

    Bus truyn d liu hiu sut cao

    AIC Advanced Interrupt Controller B iu khin ngt cao cp ASIC Application-Specific

    Integrated Circuit Mch tch hp chuyn dng

    ASB Advanced System Bus H thng bus truyn a nng API Application Programming

    Interface Giao din lp trnh ng dng

    APB Advanced Peripheral Bus Bus truyn ngoi vi a nng BRG Baud Rate Generator B to tc Baud CLK Clock Xung nhp CMSIS The Cortex Microcontroller

    Software Interface Standard Chun giao tip phn mm vi iu khin Cortex

    CRC Cyclic Redundancy Check Kim tra d vng DMA Direct Memory Access S truy cp b nh trc tip DSP Digital Signal Processors B x l tn hiu s DRAM Dynamic Random Access

    Memory B nh truy cp ngu nhin ng

    EEPROM Electrically Erasable Programmable Read-Only Memory

    B nh ch c c th xa c bng in

    EPROM Erasable Programmable Read-Only Memory

    B nh ch c c kh nng lp trnh li c

    FAT File Allocation Table Bng phn b tp tin FIFO First In First Out Vo trc ra trc FIQ Fast Interrupt Request Yu cu ngt nhanh GIPO General Purpose

    Input/Output u vo hoc ra a mc ch

    GSM Global System for Mobile Communications

    H thng truyn thng di ng ton cu

    IEM Intelligent Energy Management

    B qun l mc tiu th nng lng thng minh

    IRQ Interrupt Request Yu cu ngt LCD Liquid Crystal Display Mn hnh tinh th lng LSB Least Significant Bit Bit c gi tr thp nht

  • - 5 -

    MAC Multiply-Accumulate Unit B tch ly nhn MSB Most Significant Bit Bit c gi tr cao nht PDA Personal Digital Assistant My h tr c nhn k thut s PLD Programmable Logic Device B logic c kh nng lp trnh PLL Phase Lock Loop Vng kha pha PMC Power Management Controller B qun l ngun PWM Pulse Width Modulation B iu ch rng xung PHY Physical Lp vt l RAM Random Access Memory B nh truy nhp ngu nhin ROM Read Only Memory B nh ch c RTC Real Time Clock ng h thi gian thc Rx Receive Nhn d liu SD Card Secure Digital Card Th nh d liu s SPI Serial Peripheral Interface Giao tip ngoi vi ni tip SRAM Static Random Access

    Memory B nh truy cp ngu nhin tnh

    SSRAM Synchronous Static Random Access Memory

    B nh truy cp ngu nhin ng b tnh

    Tx Transmit Truyn d liu TIC Test Interface Controller B giao tip kim th UART Universal Asynchronous

    Receiver/Transmitter B thu/pht khng ng b a nng

    USB Universal Serial Bus Bus ni tip a nng VGA Video Graphics Array Mng ha hnh nh

  • - 6 -

    M U

    Xut hin t nhng nm u thp nin 1960, h thng nhng ang pht trin mnh m trong lnh vc k thut in t v cng ngh thng tin, vi nhng ng dng rng ri trong cng nghip v i sng.

    H thng nhng hin nay i hi phi c cu trc mnh, p ng thi gian thc tt, dung lng b nh ln, kh nng tnh ton nhanh, kh nng tiu th nng lng thp, tnh n nh cao v tch hp sn nhiu ngoi vi.

    Vi iu khin ARM c nh gi l mt trong nhng dng vi iu khin mnh, p ng c nhng yu cu trong h thng nhng ngy nay, c s dng rng ri trn th gii v ang c nghin cu pht trin Vit Nam.

    Trong khun kh ca ti, ta s tm hiu m hnh kin trc, cc giao tip vi vi iu khin ARM, c im chung ca dng li x l ny v th nghim mt s ng dng giao tip vi vi iu khin AT91SAM7S64 c li x l l ARM7TDMI.

  • - 7 -

    PHN I - L THUYT CHUNG CHNG 1 CU TRC VI IU KHIN ARM

    c th thc hin giao tip vi vi iu khin ARM th yu cu trc ht t ra l phi hiu r v cu trc v nhng c im ca vi iu khin ny [5] [6].

    1.1 i nt v lch s hnh thnh v pht trin vi iu khin ARM Vic thit k ARM c bt u t nm 1983 trong mt d n pht trin ca cng ty my tnh Acorn.

    Nhm thit k, dn u bi Roger Wilson v Steve Furber, bt u pht trin mt b vi x l c nhiu im tng ng vi k thut MOS 6502 tin tin. Acorn tng sn xut nhiu my tnh da trn 6502, v vy vic to ra mt chip nh vy l mt bc tin ng k ca cng ty ny.

    Nhm thit k hon thnh vic pht trin mu gi l ARM1 vo nm 1985, v vo nm sau, nhm hon thnh sn phm ARM2. ARM2 c ng truyn d liu 32 bit, khng gian a ch 26 bit tc cho php qun l n 64 Mbyte a ch v 16 thanh ghi 32 bit. Mt trong nhng thanh ghi ny ng vai tr l b m chng trnh vi 6 bit c gi tr cao nht v 2 bit c gi tr thp nht lu gi cc c trng thi ca b vi x l. Th h sau, ARM3 c to ra vi 4KB b nh m v c chc nng c ci thin tt hn na.

    Vo nhng nm cui thp nin 80, hng my tnh Apple Computer bt u hp tc vi Acorn pht trin cc th h li ARM mi. Cng vic ny tr nn quan trng n ni Acorn nng nhm thit k tr thnh mt cng ty mi gi l Advanced RISC Machines. T l do hnh thnh ch vit tt ARM ca Advanced RISC Machines thay v Acorn RISC Machine. V sau, Advanced RISC Machines tr thnh cng ty ARM Limited.

    Kt qu s hp tc ny l ARM6. Mu u tin c cng b vo nm 1991 v Apple s dng b vi x l ARM 610 da trn ARM6 lm c s cho PDA hiu Apple Newton. Vo nm 1994, Acorn dng ARM 610 lm CPU trong cc my vi tnh RiscPC ca h.

    Tri qua nhiu th h nhng li ARM gn nh khng thay i kch thc. ARM2 c 30.000 transistors trong khi ARM6 ch tng ln n 35.000. tng ca nh sn xut li ARM l sao cho ngi s dng c th ghp li ARM vi mt s b phn ty chn no to ra mt CPU hon chnh, mt loi CPU m c th to ra trn nhng nh my sn xut bn dn c v vn tip tc to ra c sn phm vi nhiu tnh nng m gi thnh vn thp.

    Th h kh thnh cng ca hng l li x l ARM7TDMI, vi hng trm triu li c s dng trong cc my in thoi di ng, h thng video game cm tay.

  • - 8 -

    ARM thnh mt thng hiu ng u th gii v cc ng dng sn phm nhng i hi tnh nng cao, s dng nng lng t v gi thnh thp.

    Chnh nh s ni tri v th phn thc y ARM lin tc c pht trin v cho ra nhiu phin bn mi.

    Nhng thnh cng quan trng trong vic pht trin ARM: - Gii thiu tng v nh dng cc tp lnh c nn li (Thumb) cho php

    tit kim nng lng v gim gi thnh nhng h thng nh. - Gii thiu cc h iu khin ARM. - Pht trin mi trng lm vic o ca ARM trn my tnh. - Cc ng dng cho h thng nhng da trn li x l ARM ngy cng tr nn

    rng ri. Hu ht cc nguyn l ca h thng trn chip v cch thit k b x l hin i

    c s dng trong ARM, ARM cn a ra mt s khi nim mi nh gii nn ng cc dng lnh. Vic s dng ba trng thi nhn lnh gii m thc thi trong mi chu k my mang tnh quy phm thit k cc h thng x l thc. Do , li x l ARM c s dng rng ri trong cc h thng phc tp.

    1.2 Cu trc c bn ARM

    - Cu trc load-store (np-lu tr). - Cho php truy xut d liu khng thng hng. - Tp lnh trc giao. - Tp lnh ARM-32bit. - Hu ht cc lnh u thc hin trong vng mt chu k n.

    Trong ARM c mt s tnh cht mi nh sau: - Hu ht tt c cc lnh u cho php thc thi c iu kin, iu ny lm gim

    vic phi vit cc tiu r nhnh cng nh b cho vic khng c mt b d on r nhnh.

    - Trong cc lnh s hc, ch ra iu kin thc hin, ngi lp trnh ch cn sa m iu kin.

    - C mt thanh ghi dch 32 bit m c th s dng y chc nng vi hu ht cc lnh s hc v vic tnh ton a ch.

    - C cc kiu nh a ch theo ch s rt mnh. - C h thng con thc hin ngt hai mc u tin n gin nhng rt nhanh,

    km theo cho php chuyn tng nhm thanh ghi.

    1.3 M hnh kin trc Cc thnh phn nhng cng vi mt li x l ARM c m t trong hnh 1.1.

    y cng l mt kin trc chung trong h x l vi li ARM.

  • - 9 -

    Hnh 1.1: M hnh kin trc li x l ARM.

    Li x l ARM l mt khi chc nng c kt ni bi cc bus d liu, cc mi tn th hin cho dng chy ca d liu, cc ng th hin cho bus d liu, v cc biu din trong hnh l mt khi hot ng hoc mt vng lu tr. Cu hnh ny cho thy cc dng d liu v cc thnh phn to nn mt b x l ARM. D liu i vo li x l thng qua cc bus d liu. Cc d liu c th l mt hng thc hin hoc mt trng d liu. Hnh 1.1 cho thy u im kin trc Harvard ca ARM l s dng trn hai bus truyn khc nhau (bus d liu v bus lnh tch ring), cn kin trc Von Neumann chia s d liu trn cng bus.

    Cc b gii m s nh hng dch chuyn trc khi chng c thc thi. Mi mt ch lnh thc hin thuc v mt tp lnh ring bit.

    B x l ARM, ging nh tt c b x l RISC, s dng kin trc load-store. iu ny c ngha l c hai loi ch lnh chuyn d liu vo v ra ca b x l: lnh load cho php sao chp d liu t b nh vo thanh ghi trong li x l, v ngc li lnh store cho php sao chp d liu t thanh ghi ti b nh. Khng c lnh x l d liu trc tip trong b nh. Do , vic x l d liu ch c thc hin trong cc thanh ghi.

    Tt c d liu thao tc nm trong cc thanh ghi, cc thanh ghi c th l ton hng ngun, ton hng ch, con tr b nh. Cc d liu 8 bit, 16 bit u c m rng thnh 32 bit trc khi a vo thanh ghi.

  • - 10 -

    Tp lnh ARM nm trong hai ngun thanh ghi Rn v Rm, v kt qu c tr v thanh ghi ch Rd. Ngun ton hng c c t thanh ghi ang s dng trn bus ni b A v B tng ng.

    Khi s hc v logic (ALU: Arithmetic Logic Unit) hay b tch ly nhn (MAC: Multiply-Accumulate Unit) ly cc gi tr thanh ghi Rn v Rm t bus A v B, v tnh ton kt qu (b tch ly nhn c th thc hin php nhn gia hai thanh ghi v cng kt qu vi mt thanh ghi khc). Cc lnh x l d liu ghi cc kt qu trc tip trong Rd ri tr v tp thanh ghi.

    Mt tnh nng quan trng ca ARM l thanh ghi Rm cn c th c x l trc trong shifter (b dch chuyn) trc khi n i vo ALU. Shifter v ALU c th phi hp vi nhau tnh ton cc biu thc v a ch.

    M hnh thanh ghi theo kin trc Registry Registry, giao tip vi b nh thng qua cc lnh load-store, cc lnh load v store s dng ALU tnh ton a ch c lu trong cc thanh ghi a ch, ngoi ra tp lnh ny cn s dng ALU to ra a ch c t chc trn a ch thanh ghi v truyn i trn cc bus a ch. B gia tc dng trong cc trng hp truy xut cc vng nh lin tc.

    Sau khi i qua cc khi chc nng, kt qu trong Rd c ghi tr li tp thanh ghi. Tp lnh load-store cp nht tng a ch thanh ghi trc khi li x l c hoc ghi gi tr thanh ghi t v tr nh tun t tip theo. Li x l tip tc thc hin cc lnh cho n khi xy ra mt ngt ngoi l hoc c thay i dng chy thc hin bnh thng.

    Trn l tng quan v b x l ARM. Cc thnh phn chnh ca b vi x l gm li x l, cc thanh ghi, kin trc ng ng s c trnh by trong phn k tip. Ch hot ng ca ARM:

    ARM c by ch hot ng, ch ngi dng l ch c bn v t c quyn nht, khi CPU thc hin m ha d liu cho ngi dng.

    Cc ch hot ng ca ARM c m t trong bng 1.1. Bng 1.1: Cc ch hot ng ca RAM.

    Ch K hiu quy c Mc c u tin Ch cc bit [4:0]

    Abort abt c 1 0 1 1 1 Fast Interrupt Request fiq c 1 0 0 0 1 Interrupt Request irq c 1 0 0 1 0 Supervisor svc c 1 0 0 1 1 System sys c 1 1 1 1 1 Undefined und c 1 1 0 1 1 User usr khng 1 0 0 0 0

  • - 11 -

    Trong : - Abort : c nhp vo sau khi d liu hoc lnh c b qua qu trnh

    tin np. - FIQ : X l cc ngt c mc u tin cao, h tr vic truyn d liu v

    cc knh x l - IRQ : c s dng cho vic x l cc ngt mc ch chung. - Supervisor : Ch bo v dng cho h iu hnh . - System : Ch u tin, dng cho h iu hnh . - Undefined : Dng cho trng hp m lnh khng hp l. - User : Ch ngi dng c mc u tin thp.

    Cc ch ny c th c thit lp bng phn mm hoc thng qua cc ngt bn ngoi hoc thng qua qu trnh x l ngoi l. Phn ln cc chng trnh ng dng c thc thi trong ch User. Mi ch iu khin u c cc thanh ghi h tr tng tc bt cc ngoi l.

    1.4 M hnh thit k ARM

    1.4.1 Li x l Dng n gin ca li x l gm nhng phn c bn sau: - Program Counter (PC): B m chng trnh: gi a ch ca lnh hin ti. - Thanh ghi tch ly (ACC): gi gi tr d liu khi ang lm vic. - n v x l s hc (ALU): thc thi cc lnh nh phn nh cng, tr, gia tng - Thanh ghi lnh (IR): gi tp lnh hin ti ang thc thi. Li x l MU0 c pht trin u tin v l li x l n gin, c tp lnh di

    16 bit, vi 12 bit a ch v 4 bit m ha. Cu trc tp lnh li MU0 c dng:

    4 bits 12 bits opcode S

    Hnh 1.2: Cu trc chun cho tp lnh ca MU0.

    M hnh thit k ng truyn d liu n gin ca li x l MU0 c m t trong hnh 1.3. Vic thit k cp chuyn i mc thanh ghi (RTL): B m chng trnh (PC) ch n tp lnh cn thc thi, np vo thanh ghi lnh (IR), gi tr cha trong IR ch n vng a ch nh, nhn gi tr, kt hp vi gi tr ang cha trong thanh ghi tch ly (ACC) qua n v x l s hc (ALU) to gi tr mi, cha vo ACC. Mi mt lnh nh vy, ty vo s ln truy cp nh m tn s chu k xung nhp tng ng. Sau mi lnh thc thi, PC s c tng thm.

  • - 12 -

    PC IR

    Memory

    IRALU

    control

    Bus a ch

    Bus d liu

    Hnh 1.3: ng truyn d liu ca li x l MU0.

    1.4.2 Cc thanh ghi ca ARM phc v mc ch ca ngi dng: r0 r14 l 15 thanh ghi a dng, r15 l

    thanh ghi Program Counter (PC), thanh ghi trng thi chng trnh hin ti (CPSR - Current Program Status Register). Cc thanh ghi khc c gi li cho h thng (nh thanh ghi cha cc ngt).

    Cc thanh ghi ca ARM c m t trong hnh 1.4.

    Hnh 1.4: M hnh cc thanh ghi ca ARM.

    - Thanh ghi CPSR c ngi dng s dng cha cc bit iu kin. - N: Negative - c ny c bt khi bit cao nht ca kt qu x l ALU bng 1. - Z: Zero - c ny c bt khi kt qu cui cng trong ALU bng 0. - C: Carry - c ny c bt khi kt qu cui cng trong ALU ln hn gi tr 32

    bit v trn.

  • - 13 -

    - V: Overflow - c bo trn sang bit du. - Thanh ghi SPSR (Save Program Status Register) dng lu gi trng thi ca

    thanh ghi CPSR khi thay i ch .

    1.5 Cu trc load-store

    Cng nh hu ht cc b x l dng tp lnh RISC khc, ARM cng s dng cu trc load-store. iu c ngha l: tt c cc lnh (cng, tr) u c thc hin trn thanh ghi. Ch c lnh sao chp gi tr t b nh vo thanh ghi (load) hoc chp li gi tr t thanh ghi vo b nh (store) mi c nh hng ti b nh.

    Cc b x l CISC cho php gi tr trn thanh ghi c th cng vi gi tr trong b nh, i khi cn cho php gi tr trn b nh c th cng vi gi tr trn thanh ghi. ARM khng h tr cu trc lnh dng t b nh n b nh. V th, tt c cc lnh ca ARM thuc mt trong ba loi sau:

    - Lnh x l d liu: ch thay i gi tr trn thanh ghi. - Lnh load-store: sao chp gi tr t thanh ghi vo b nh v sao chp gi tr t

    b nh vo thanh ghi. - Lnh iu khin dng lnh: bnh thng, ta thc thi cc lnh cha trong mt

    vng nh lin tip, tp lnh iu khin dng lnh cho php chuyn sang cc a ch khc nhau khi thc thi lnh, ti nhng nhnh c nh (lnh r nhnh) hoc l lu v tr li a ch phc hi chui lnh ban u (lnh r nhnh v kt ni) hay l ln vng m ca h thng.

    1.6 Cu trc tp lnh ca ARM

    1.6.1 Thc thi lnh c iu kin

    ARM cung cp kh nng thc hin mt cch c iu kin hu ht cc lnh da trn t hp trng thi ca cc c iu kin trong thanh ghi CPSR.

    Thanh ghi CPSR cho bit trng thi ca chng trnh hin ti v c m t trong hnh 1.5.

    31 28 27 8 7 6 5 4 0 N Z C V Khng dng I F T Chn ch

    Hnh 1.5: V tr cc bit trn thanh ghi CPSR.

    1.6.2 Phng thc nh a ch

    i vi nhng lnh x l d liu ch c hai phng thc l trc tip thanh ghi v gi tr trc tip.

    i vi nhng lnh load v store th phng thc a ch l gin tip cc thanh ghi (khng c phng thc trc tip b nh).

  • - 14 -

    1.6.3 Ngn xp

    ARM h tr vic lu v phc hi gi tr nhiu thanh ghi, gm hai lnh: - LDM : Load multiple register. - STM : Store multiple register. Vic lu hoc phc hi gi tr thanh ghi vi b nh bt u t a ch c lu

    trong thanh ghi nn, gi tr ca thanh ghi nn c th gi nguyn hoc c cp nht. Th t a ch b nh sao lu cc thanh ghi tng hoc gim ty theo phng thc

    nh a ch.

    1.6.4 Tp lnh ARM

    Tt c lnh ca ARM u l 32 bit:

    - C cu trc dng load-store. - Cu trc lnh nh dng ba a ch (ngha l a ch ca hai ton hng ngun

    v ton hng ch u l cc a ch ring bit). - Mi mt lnh thc thi mt iu kin. - C c lnh load-store nhiu thanh ghi ng thi. - C kh nng dch bit kt hp vi thc thi lnh ALU trong ch mt chu k my. - Ch Thumb code: l mt ch c bit ca ARM dng tng mt m

    bng cch nn lnh 32 bit thnh 16 bit. Mt phn cng c bit s gii nn lnh Thumb 16 bit thnh lnh 32 bit.

    ARM h tr su kiu d liu:

    - 8 bit c du v khng du. - 16 bit c du v khng du. - 32 bit c du v khng du. - Cc ton t ca ARM c 32 bit, khi lm vic vi cc d liu ngn hn, cc bit

    cao ca ton t s c thay th bng bit 0.

    Cch t chc v thc thi tp lnh ca ARM:

    Hnh 1.6: Chu k thc thi lnh theo kin trc ng ng.

  • - 15 -

    Cch t chc ca li ARM khng thay i nhiu t nm 1983 1995, u s dng tp lnh c kin trc ng ng ba tng. T 1995 tr v y, ARM gii thiu mt s li mi c s dng kin trc ng ng chn tng.

    Chu k thc thi lnh theo kin trc ng ng c m t trong hnh 1.6.

    Cc bc thc thi lnh gm: - Nhn lnh t b nh (fetch); - Gii m lnh, xc nh cc tc ng cn c v kch thc lnh (decode); - Truy cp cc ton hng c th c yu cu t thanh ghi (reg); - Kt hp vi ton hng y to thnh kt qu hay a ch b nh (ALU); - Truy cp vo b nh cho ton hng d liu nu cn thit (mem); - Vit kt qu ngc li thanh ghi (res).

    Kin trc ng ng

    Kin trc ng ng l kin trc c bn trong vi iu khin ARM, hnh 1.7 m t kin trc ng ng ba tng minh ha cc bc thc thi lnh: fetch decode excute (nhn lnh gii m thc thi).

    Hnh 1.7: Kin trc ng ng ba tng.

    Trong kin trc ng ng, khi mt lnh ang c thc thi th lnh th hai ang c gii m v lnh th ba bt u c np t b nh. Vi k thut ny th tc x l tng ln rt nhiu trong mt chu k my.

    Trong hnh 1.7 cho ta thy c mt chui ba lnh c np, gii m, v thc thi bi b x l. Mi lnh c mt chu trnh duy nht hon thnh sau khi ng ng c lp y.

    Tp lnh c t vo cc ng ng lin tc. Trong chu k u tin li x l np lnh ADD (cng) t b nh. Trong chu k th hai li tm np cc lnh SUB (tr) v gii m lnh ADD. Trong chu k th ba, c hai lnh SUB v ADD c di chuyn dc theo ng ng. Lnh ADD c thc thi, lnh SUB c gii m, v lnh CMP (so snh) c np. Qu trnh ny c gi l lp y ng ng. Kin trc ng ng cho php li x l thc hin lnh trong mi chu k.

  • - 16 -

    Khi tng chiu di ng ng, s lng cng vic thc hin tng cng on gim, iu ny cho php b x l phi t c n mt tn s hot ng cao hn tng hiu sut thc thi. Thi gian tr ca h thng cng s tng ln bi v c nhiu chu k hn lp y ng ng trc khi li x l c th thc thi mt lnh. Chiu di ng ng tng ln cng c ngha l d liu cng c th s phi ph thuc gia cc cng on nht nh.

    ARM gii thiu v a ra kin trc ng ng c nm tc v, vi vng nh d liu v chng trnh ring bit. T kin trc lnh c ba tc v c chia nh li thnh nm tc v cng lm cho mi chu k xung nhp s thc hin mt cng vic n gin hn mi cng on, cho php c th tng chu k xung nhp ca h thng. S tch ri b nh chng trnh v b nh d liu cng cho php gim ng k ti nguyn chim ca mi lnh trong mt chu k my.

    Hnh 1.8: Kin trc ng ng ba tng trong tp lnh c nhiu chu k my.

    Thi gian b x l thc thi mt chng trnh c tnh bi cng thc:

    clk

    instpro f

    CPIxNT

    Trong : - CPI l s xung nhp trung bnh cn cho mi lnh;

    - Ninst l s lnh thc thi mt chng trnh (c nh);

    - fclk l tn s xung nhp.

    Vi cng thc trn th c hai cch gim thi gian thc thi mt chng trnh: - Tng tn s xung nhp: iu ny i hi trng thi ca mi nhim v trong

    dng chy lnh n gin, v do s tc v s tng thm.

  • - 17 -

    - Gim CPI: iu ny i hi mi lnh cn nhiu dng chy lnh hn vi tc v khng i, hoc cc tc v cn n gin hn, hoc kt hp c hai li vi nhau.

    1.7 Kt lun Chng 1 trnh by nhng khi qut c bn ca vi iu khin ARM, qua ta nm

    c qu trnh pht trin v hnh thnh vi iu khin ARM, m hnh kin trc ca vi iu khin ARM v cu trc tp lnh vi rt nhiu u im nh: tp lnh 32 bit, cu trc load-store, cch t chc v thc thi tp lnh ca ARM di dng kin trc ng ng v tp lnh trc giao, hu ht tt c cc lnh u cho php thc thi c iu kin v thc thi trong mt chu k n. Vi cc c tnh k thut c trng ny th vi iu khin ARM l mt trong nhng vi iu khin c tc x l, hiu sut thc thi cao v kh nng tiu th nng lng t nht vo thi im hin nay. ---------------------------------

  • - 18 -

    CHNG 2 GIAO TIP VI VI IU KHIN ARM

    2.1 M hnh giao tip trong vi iu khin ARM

    Vi iu khin ARM l mt h thng c cha li vi x l ARM vi cc giao tip h tr bn trong [6].

    Vi iu khin ARM c thc thi trn h thng kin trc cc bus truyn d liu a chc nng ca vi iu khin. Bao gm b x l ARM kt ni qua h thng bus truyn d liu hiu sut cao ng b nhanh vi SRAM, cc bus giao tip ngoi, v cu ni ti cc bus truyn ngoi vi cng sut thp, c m t trong hnh 2.1.

    Thit b ngoi vi bn ngoi c xy dng t cc thit b ring v ty theo ng dng ngi dng.

    Hnh 2.1: M hnh giao tip trong vi iu khin ARM.

    Cc khi chc nng trong vi iu khin ARM bao gm:

    - B x l ARM; - B iu khin ngt; - B phn x bus truyn hiu sut cao (AHB - Advanced High-performance

    Bus); - B iu khin b nh; - SRAM; - EPROM hoc Flash;

  • - 19 -

    - DRAM; - Cu ni AHB APB (Advanced Peripheral Bus: Bus truyn ngoi vi ti u) - Cu ni ngoi AHB; - B m/nh thi; - Khi SPI (Serial Peripheral Interface): Khi giao tip cc thit b ngoi vi ni

    tip; - Khi Serial UART (Serial Universal Asynchronous Receiver/Transmitter): Khi

    giao tip ni tip truyn/thu khng ng b a nng.

    2.2 Cc giao tip c bn trong vi iu khin ARM

    2.2.1 Giao tip vi b nh Giao tip vi b nh trong vi iu khin ARM [7] c tnh nng truy xut d liu

    rt nhanh. Trong vi iu khin ARM, b nh ni b c th c cc dng b nh nh:

    SSRAM, SRAM, DRAM, EPROM/Flash.

    Bn b nh chnh c m t trong hnh 2.2:

    Hnh 2.2: S phn tch hai trng thi trn bn b nh.

  • - 20 -

    Bn b nh c hai trng thi:

    - Trng thi Reset. - Trng thi thng thng: sau khi c nh x cc thanh ghi nh a ch vo.

    Trong cu hnh thng thng ( c nh a ch), k hiu vng RAM l t a ch 0x0 n 0x04000000.

    Trong cu hnh Reset, ROM c nh x vo khng gian c k hiu vi kh nng truy cp RAM a ch cao hn.

    Khi truy cp vo khng gian b nh 0x10000000, b x l s hy b cc trng hp ngoi l (sai a ch).

    Vng RAM

    Vng RAM c chia thnh bn khi chnh c m t trong hnh 2.3. T phn 16MB dnh ring cho DRAM, SRAM, SSRAM.

    Hnh 2.3: Vng RAM.

  • - 21 -

    Khi 16MB (khi im 0x0) l vng ROM, c cc im k hiu ti cu hnh c s ca ROM, hoc c cc vng xp chng ln RAM (trong cu hnh thng thng).

    Bng a ch trn vng RAM trong cu hnh thng thng v Reset c m t trong bng 2.1

    Bng 2.1: Cc a ch trn vng RAM.

    Cu hnh thng thng Cu hnh Reset

    a ch a ch tng ng a ch a ch tng ng

    0x00000000 0x01000000 0x00000000 0x04000000

    0x00002000 0x02002000

    0x00080000 0x03080000

    Trong lin kt nh a ch, theo mc nh khi cu hnh Reset, EPROM v Flash di y ca a ch bn nh. Nu thanh ghi nh a ch c ghi vo, tn hiu nh a ch s l mc cao v b gii m chuyn sang bn b nh thng thng, khi RAM s di cng.

    Nu khi hot ng m h thng khng c EPROM hay Flash, hoc nu mun khi ng t RAM, phi g lin kt nh a ch. Tn hiu nh a ch s lun mc cao, v vic khi ng vi SSRAM s di y ca a ch bn nh.

    Cc b nh trong vng RAM c chc nng:

    - SSRAM ng b SRAM (SSRAM) c dng cung cp b nh chu k n. Thit b SSRAM t chc di dng 32KB x 32 bit. Vng ny c s dng cho cc trnh gii hn thi gian, nh l cc b iu khin ngt. SSRAM thng a ch 0, cu hnh ca b nh ny l khng bt buc.

    - SRAM SRAM c dng th hin cc gin b nh khc nhau. SRAM cho php iu khin bn mc vt l 128KB x 8 bit chia thnh hai dy logic ca mi mt mc 256KB. Mi mt dy logic ny c th c nh cu hnh 8, 16, hoc 32 bit b nh m rng. SRAM m phng b nh h thng ny bng cch chn chnh xc s trng thi ch.

    - DRAM DRAM cung cp:

    H tr ch tun t truy cp; H tr cc bc chuyn byte, halfword v word; B iu khin lm ti DRAM; T ng nh li cu hnh kch thc khi.

  • - 22 -

    Vng ROM

    C mt vng c dnh ring cho ROM. Vng ROM ging nh c hai cu hnh thng thng v cu hnh Reset ca bn b nh, vng ROM c m t nh trong hnh 2.4.

    ROM

    0x08000000

    0x04000000

    128 MB

    64 MB

    Hnh 2.4: Vng ROM.

    Khi Reset vi iu khin ARM, ROM c xc nh v tr 0x0 v khi chuyn sang trng thi thng thng th RAM s v tr di cng ca bn a ch.

    EPROM/Flash

    EPROM/Flash c hai dng, mt cho 8 bit b nh m rng v mt cho 16 bit b nh m rng. Cc b nh ny c th c truy cp cng theo chun EPROM hoc theo chun 5V Flash.

    2.2.2 Giao tip vi b iu khin ngt

    B iu khin ngt trong ARM [8] cung cp giao tip phn mm c lp cho h thng ngt. Cc bit ngt c nh ngha cho yu cu chc nng c bn trong thit k h thng.

    Trong h thng ARM c hai mc ngt:

    - FIQ (Fast Interrupt Request) dnh cho ngt nhanh.

    - IRQ (Interrupt Request) dnh cho cc ngt chung.

    FIQ c s dng ti bt k thi im no. N cung cp ngt vi thi gian tr thp, ging nh l mt ngun c lp m bo chng trnh phc v ngt c th thc thi trc tip m khng cn s quyt nh ca ngun ngt chnh. iu lm gim bt thi gian tr ngt nh l cc thanh ghi c bit, cc thanh ghi ny dnh cho cc ngt FIQ v dng ti a hiu sut.

    Cc b iu khin ngt c chia ra s dng cho FIQ v IRQ, ch khc v tr mt bit ring c nh r cho b iu khin FIQ, cc bit cn li trong b iu khin ngt ny dnh cho ngun ngt c lp trong 32 bit ca b iu khin IRQ v c m t trong hnh 2.5.

  • - 23 -

    Hnh 2.5: Cc b iu khin ngt FIQ v IRQ.

    B iu khin ngt s dng v tr bit cho mi ngun ngt khc nhau v mi v tr c nh r bi phn mm chng trnh ngt, cc knh truyn thng v cc b nh thi. Bit 0 khng c xc nh trong b iu khin IRQ, mc d vy n vn c th c s dng chung tng t ngun ngt nh trong b iu khin FIQ.

    Tt c ngun ngt c a vo s hot ng mc cao, bt k yu cu o hay cht tc ng n phi c cung cp ti ngun ngt chung.

    Quyn u tin trong s phn cng khng c cung cp, cng khng c bt k dng quyn u tin vc t ngt, tt c cc chc nng ny c th c cung cp trong phn mm.

    Thanh ghi ngt chng trnh cng cung cp ti ngt chung di s iu khin ca phn mm. y l dng s dng gim cp t ngt FIQ thnh ngt IRQ. B iu khin ngt cung cp cc trng thi ngun ngt, trng thi yu cu ngt v thanh ghi cho php ngt. Thanh ghi cho php ngt c dng quyt nh mt ngun ngt hot ng nu sinh ra mt yu cu ngt h thng x l. Trng thi ngun ngt ch xc nh nu ngun ngt tng thch u tin hot ng. Ngun ngt s hot ng mc cao, do mt mc logic cao trong thanh ghi trng thi ngun ch bo ngun ngt hot ng. Trng thi yu cu ngt c xc nh nu ngun ngt sinh ra mt yu cu ngt ti b x l.

    Thanh ghi cho php ngt c c ch kp cho vic thit lp v xa cc bit cho php. Cc bit thit lp hay xa ny l c lp v khng lin quan g n cc bit khc trong thanh ghi cho php.

    Khi ghi vo v tr thit lp cho php ngt, mi mt bit d liu s c thit lp mc cao tng ng vi bit trong thanh ghi cho php v tt c cc bit khc trong thanh

  • - 24 -

    ghi cho php khng b nh hng. Khi ghi vo v tr xa trn thanh ghi cho php ngha l dng bit xa o li, khng dng cc bit khc.

    Mt knh ca b iu khin ngt c m t trong hnh 2.6.

    Hnh 2.6: S mt knh ca b iu khin ngt.

    B iu khin ngt FIQ c dnh ring bit 0. B iu khin IRQ c s lng ln hn, kch thc ca b iu khin ny ph thuc vo h thng x l.

    Cc thanh ghi iu khin ngt: Cc thanh ghi sau c quy nh cho c hai b iu khin ngt FIQ v IRQ

    - Thanh ghi cho php Trng thi ch c. Thanh ghi cho php c dng chc chn ngun ngt u vo v xc nh

    ngun ngt u vo c tc ng s to ra mt yu cu ngt n b x l. Thanh ghi ny l ch c v cc gi tr ca n ch c th thay i bi cc v tr thit lp hoc xa. Nu cc bit trong b iu khin ngt cha c kch hot (thit lp hoc xa) th c ngha l cc bit trong thanh ghi cho php s c nhng vi trng thi khng xc nh.

    Bit cho php l 1 ch bo rng ngt c kch hot v s cp mt yu cu ngt ti b x l. Bit kch hot l 0 ch bo rng ngt c xa. Trng thi khi ng li s xa b tt c cc ngt.

    - Thanh ghi cho php thit lp: Trng thi ch ghi. V tr ny dng thit lp cc bit trong thanh ghi cho php ngt. Khi ghi vo

    v tr ny bit d liu mc cao s sinh ra bit tng ng trong thanh ghi cho php c thit lp. Cc bit d liu thp khng nh hng n bit tng ng trong thanh ghi cho php.

  • - 25 -

    - Thanh ghi cho php xa: Trng thi ch c. V tr ny dng xa cc bit trong thanh ghi cho php ngt. Khi ghi vo

    thanh ghi ny bit d liu mc cao s sinh ra bit tng ng trong thanh ghi cho php c xa. Cc bit d liu thp khng nh hng n bit tng ng trong

    thanh ghi cho php ngt.

    - Thanh ghi trng thi ngun: Trng thi ch c. V tr ny cung cp tnh trng ca cc ngun ngt ti b iu khin ngt. Bit

    cao ch bo rng mt yu cu ngt thch hp l m bo c quyn u tin hot ng.

    - Thanh ghi yu cu ngt: Trng thi ch c. V tr ny cung cp tnh trng ca ngun ngt. Bit cao ch bo rng ngt hot

    ng v s to ra mt ngt a ti b x l.

    - Thanh ghi ngt chng trnh IRQ: Trng thi ch ghi. Khi ghi vo thanh ghi ny s thit lp hoc xa mt chng trnh ngt. Ghi

    vo thanh ghi ny bit 1 phn cao s to ra mt chng trnh ngt, trong khi ghi vo thanh ghi ny bit 1 phn thp s xa chng trnh ngt. Gi tr thanh ghi ny s quyt nh bi vic c bit 1 ca thanh ghi trng thi ngun. Khng s dng bit 0 trong thanh ghi ny.

    Mt s thanh ghi dnh ring cho kim tra. Cc thanh ghi ny khng c truy cp trong qu trnh hot ng thng thng.

    Cc bit c nh ngha trong b iu khin ngt B iu khin ngt FIQ gm mt bit (bit 0). Bit 1 n bit 5 trong b iu khin ngt c nh ngha nh trong bng 2.2. Bit

    6 tr ln n bit 31 ty theo yu cu s dng.

    Bng 2.2: Cc bit nh ngha trong b iu khin ngt.

    Bit Ngun ngt

    0 FIQ source 1 Programmed Interrrupt 2 Comms Rx 3 Comms Tx 4 Timer 1 5 Timer 2

  • - 26 -

    Bn nh b iu khin ngt c m t trong bng 2.3.

    Bng 2.3: Bn nh b iu khin ngt.

    a ch c s ca b iu khin ngt khng c nh v c th khc nhau i vi mi h thng x l c th. Tuy nhin, khong cch ca cc thanh ghi t a ch c s c c nh.

    2.2.3 Giao tip vi b nh thi

    Gii thiu chung C ti thiu hai b nh thi trong mt h thng ARM [8], mc d c nh ngha nh vy nhng c th d dng m rng thm cc b nh thi. Cng vi nguyn tc m rng n gin l tc ng ti cu trc thanh ghi s cung cp thm cc b nh thi cho s dng t vic lp trnh. Mi mt b nh thi l mt b m ngc rng 16 bit, c th la chn phn chia tn s u vo. Mch m cho php xung h thng c s dng trc tip, hoc xung c chia bi 16, 256 hoc 1024 ty theo s dng. Vic phn chia ny c cung cp bi cc bc 0, 4, 8 hoc 10 ca b chia t l xung. B nh thi c hai ch hot ng:

    - Kiu m t do. - Kiu tun hon.

    Trong ch nh thi tun hon b m s to ra mt ngt ti mt khong thi gian. Trong ch nh thi t do, b nh thi s trn b m sau khi n gi tr 0 v tip tc m ngc t gi tr cc i.

    Hot ng ca b nh thi B nh thi c np bi vic ghi vo thanh ghi np, sau nu nh c cho php, b nh thi s m ngc v 0. Trn mt hnh trnh m v 0 nh vy, mt ngt s c to ra. Ngt s c xa bng cch ghi vo thanh ghi xa.

  • - 27 -

    Sau hnh trnh m v 0, nu b nh thi ang hot ng ch nh thi t do th b nh thi s tip tc m gim t gi tr cc i. Nu ang trong ch tun hon th b nh thi s ti li t thanh ghi np v tip tc m gim. Trong ch ny b nh thi s to ra mt chu k ngt (ngt nh k). Cc ch c la chn bi mt bit trong thanh ghi iu khin. bt k im hin hnh no th gi tr b nh thi cng c th c t b m ngc, c m t trong hnh 2.7. B nh thi c kch hot bng mt bit trong thanh ghi iu khin. Vic khi ng li s lm b nh thi c xa, ngt s c xa v thanh ghi np s khng xc nh. Cc ch v gi tr trong b chia t l cng s khng xc nh.

    Hnh 2.7: Gin khi b nh thi.

    Xung nhp b nh thi c to ra bi b chia t l xung. Xung nhp b nh thi c th l xung h thng, xung h thng c chia t b chia 16, c to ra bi 4 bit ca b chia t l, hoc xung h thng c chia t b chia 256 c to ra bi tng hp 8 bit ca b chia t l, c m t trong hnh 2.8.

    Hnh 2.8: B chia t l xung.

  • - 28 -

    Cc thanh ghi trong b nh thi

    - Thanh ghi np: Thanh ghi np c trng thi thanh c hoc ghi. Thanh ghi np cha gi tr khi to ca b nh thi v dng gi tr ny np

    li trong ch nh thi tun hon. Khi ghi vo thanh ghi ny, 16 bit trn cng ghi vo l 0 v khi c 16 bit trn cng s khng xc nh.

    - Thanh ghi gi tr:

    Thanh ghi gi tr c trng thi ch c. V tr thanh ghi gi tr cho bit gi tr hin hnh ca b nh thi.

    - Thanh ghi xa:

    Thanh ghi xa c trng thi ch ghi. Khi ghi vo v tr thanh ghi xa s xa i mt ngt c to ra bi b m

    ca b nh thi.

    - Thanh ghi iu khin:

    Thanh ghi iu khin c trng thi c hoc ghi. Thanh ghi iu khin cung cp vic cho php hay loi b cc ch v cu

    hnh chia t l cho b nh thi.

    - V tr cc bit trong thanh ghi iu khin cho b nh thi c m t trong hnh 2.9.

    31 8 7 6 5 4 3 2 1 0

    0 Cho php Chn ch 0 0 B chia t l 0 0

    Hnh 2.9: V tr cc bit trong thanh ghi iu khin.

    - Chc nng cc bit trong thanh ghi iu khin c m t trong bng 2.4.

    Bng 2.4: M t cc bit trong thanh ghi iu khin cho b nh thi.

    Cc bit 0 1, 4 5, 8 31: khng xc nh Ghi gi tr 0 v c c nh l khng xc nh

    Bit 2, 3 Cc bit dnh cho b chia t l xung c m t trong bng 2.5

    0 : Ch nh thi t do Bit 6 Bit la chn ch

    1 : Ch nh thi tun hon 0 : Khng cho php b nh thi hot ng

    Bit 7 Bit cho php 1 : Cho php b nh thi hot ng

    - Ch cc bit ca b chia t l xung trong thanh ghi iu khin c m t trong bng 2.5.

  • - 29 -

    Bng 2.5: Ch cc bit ca b chia t l xung trong thanh ghi iu khin.

    Bit 3 Bit 2 Xung c chia Cc bc ca b chia t l xung

    0 0 1 0 0 1 16 4 1 0 256 8 1 1 1024 10

    - Bn nh b nh thi:

    a ch c s ca b nh thi khng c nh v c th khc i vi mi h thng x l c th. Tuy nhin, khong cch ca cc thanh ghi t a ch c s c c nh nh trong bng 2.6.

    Bng 2.6: Bn a ch b nh thi.

    2.2.4 Giao tip vi b iu khin tm dng v Reset

    Gii thiu chung

    B iu khin tm dng v Reset l s kt hp ca bn chc nng ring bit: chc nng tm dng, chc nng xc nhn, cc trng thi Reset v bn b nh Reset [8]. Hnh 2.10 m t giao tip li x l ARM vi b iu khin tm dng v Reset, b iu khin ngt v b nh thi. tng thit k cc thit b ngoi vi ny l lm tng s ng nht trong h thng ARM v lm tng mc linh ng ca phn mm

    gia cc h thng.

    - Chc nng iu khin tm dng: iu khin tm dng l h thng x l trong trng thi cng sut thp nh l trng thi i trong lc ngt (h thng khng yu cu b x l hot ng).

  • - 30 -

    V tr xc nh tm dng l ch ghi. Khi ghi vo v tr tm dng, h thng s i vo trng thi ch. Thng thng n s ngn chn b x l tm np lnh thm cho n khi nhn c mt ngt.

    Hnh 2.10: Giao tip li ARM vi b iu khin tm dng v Reset.

    - Chc nng xc nhn: Thanh ghi xc nhn cho bit cu hnh h thng. Thanh ghi xc nhn l ch c. Ch duy nht mt bit c ci t cho thanh ghi xc nhn, bit 0 dng cho bit thm thng tin. Bit 0 l bit xc nhn vi trng thi thit lp: 0 khng c thng tin. 1 xc nhn thm thng tin. Nu bit di cng ca thanh ghi xc nhn c thit lp, cc bit c yu cu thm sau s cung cp chi tit hn v thng tin h thng.

    - Chc nng Reset: Thanh ghi Reset l ch c. Ch c mt bit ca thanh ghi ny c nh ngha,

    l bit Reset ngun. Bit Reset ngun l bit 0 trong thanh ghi Reset v cc gi tr ca n c biu bin nh sau:

    0 khng Reset ngun. 1 Reset ngun. Ngoi ra cc bit trong thanh ghi Reset c th cung cp chi tit hn v thng tin

    trng thi Reset. Thanh ghi Reset c c ch kp dnh cho cc bit ci t v xa, cc bit ny hon

    ton c lp v khi thay i s khng nhn cc bit khc trong thanh ghi.

  • - 31 -

    V tr xa trng thi Reset l ch ghi. V tr ny dng xa cc c trng thi Reset. Khi ghi vo mi mt bit d liu vo thanh ghi ny mc cao s thit lp bit tng ng trong thanh ghi Reset l xa. Khi ghi vo mi mt bit d liu vo thanh ghi ny mc thp s khng gy nh hng n bit tng ng trong thanh ghi Reset.

    V tr Reset khng c bin trong c tnh tham chiu cc thit b ngoi ti thiu, v bit Reset trng thi ngun khng th thit lp c bng phn mm. Thanh ghi ny c ci t sn trong c tnh k thut m bo kh nng ca chc nng Reset.

    - Xa bn nh ca b iu khin Reset: V tr xa bn Reset l ch ghi.

    Khi bn b nh Reset xa v bn nh thng thng c dng, h thng s khng quay tr li dng bn b nh Reset, ngoi tr phi tri qua iu kin thit lp li.

    trng thi Reset, h thng x l s nh x ROM n v tr 0, v khi qu trnh hot ng thng thng tr li, RAM s v tr 0.

    - Bn nh b iu khin tm dng v Reset c m t trong bng 2.7.

    Bng 2.7: Bn nh b iu khin tm dng v Reset.

    a ch c s ca b iu khin tm dng v Reset l khng c nh v c th khc nhau i vi mi h thng x l c th. Tuy nhin, khong cch ca cc thanh ghi t a ch c s c c nh.

    2.2.5 Giao tip vi khi GIPO

    Khi GIPO (General Purpose Input/Output) l khi iu khin 8 bit u vo hoc ra a mc ch [9], uc kt hp cht ch vi b logic c kh nng lp trnh (PLD). B PLD giao tip qua cc bus m rng vi GPIO.

    - Cc bit trong GPIO:

    Cc bit t 0 3 l cc bit u ra ch c. Cc bit t 4 7 l cc bit c lp trnh c lp nh l mt u vo hoc l mt u ra. Cc bit trong thanh ghi d liu c thit lp v xo c dng bi cc thanh

  • - 32 -

    ghi GPIO_DATASET v GIPO_DATACLR. Cc bit c v ghi c dng bi thanh ghi GPIO_DATAIN v GPIO_DATAOUT.

    - Cc thanh ghi GPIO:

    GPIO cung cp cc tn hiu u ra v u vo a mc ch. Mi mt ng GPIO u c in tr ko 10K bn trong ln 3,3V. Cc thanh ghi GPIO c ch r trong bng 2.8.

    Bng 2.8: Bng tng qut cc thanh ghi GPIO.

    Tn thanh ghi Trng thi di (bit) Chc nng

    GPIO_DATASET Ghi 8 Thit lp u ra d liu GPIO_DATAIN c 8 c cc chn u vo d liu GPIO_DATACLR Ghi 8 Xa u ra thanh ghi d liu GPIO_DATAOUT c 8 c cc chn u ra d liu GPIO_DIRN c/Ghi 8 iu khin hng d liu vo/ra

    - Thanh ghi thit lp u ra d liu: V tr GPIO_DATASET c dng thit lp u ra cc bit nh sau:

    1 = thit lp bit u ra GPIO. 0 = ngt lin kt bit u ra GPIO.

    - Thanh ghi c u vo d liu: Dng c trng thi hin hnh ca cc chn GPIO t v tr GPIO_DATASET.

    - Thanh ghi xa u ra d liu:

    V tr GPIO_DATACLR c dng xa cc bit u ra GPIO c lp nh sau: 1 = xa bit u ra GPIO. 0 = khng tc ng n bit u ra GPIO.

    - Cc chn c u ra d liu: Dng c trng thi hin hnh ca cc bit thanh ghi u ra GPIO t v tr GPIO_DATACLR.

    - iu khin hng d liu: Thanh ghi GPIO_DIRN c dng thit lp hng cho mi chn GPIO nh sau:

    1 = chn l u ra. 0 = chn l u vo (mc nh).

    iu khin hng d liu cho mt bit GPIO c m t trong hnh 2.11.

  • - 33 -

    Hnh 2.11: iu khin hng d liu GPIO (1 bit).

    2.2.6 Giao tip vi khi truyn/thu khng ng b a nng (UART) Giao tip UART l giao tip ni tip, c cc tnh nng sau: - Cp tn hiu cho cc u vo b iu khin; - iu khin u ra tn hiu; - Thit lp tc baud; - Truyn v nhn 16 byte FIFO; - a ra cc ngt.

    Chc nng UART UART trn vi iu khin ARM h tr c hai kiu giao tip l giao tip song cng v giao tip bn song cng. Giao tip song cng tc l c th gi v nhn d liu vo cng mt thi im. Cn giao tip bn song cng l ch c mt thit b c th truyn d liu vo mt thi im, vi tn hiu iu khin hoc m s quyt nh bn no c th truyn d liu. Giao tip bn song cng c thc hin khi m c hai chiu chia s mt ng dn hoc nu c hai ng nhng c hai thit b ch giao tip qua mt ng cng mt thi im. D liu truyn c ghi vo thnh 16 byte FIFO (b m vo trc ra trc) v bt u qu trnh truyn cc khung d liu vi cc tham s c xc nh trong thanh ghi iu khin UART. Truyn s kt thc khi d liu trong FIFO l trng. Trong qu trnh thu, UART bt u ly mu sau khi nhn mt bit khi ng (u vo mc thp). Khi mt word (16 bit) c nhn , n s c cha trong FIFO nhn. C th khng dng cc ch FIFO. Trong trng hp ny, UART cung cp cc thanh ghi gi mt byte cho vic truyn v nhn cc knh. Mt bit trn trong UART_RSR lm mt ngt c thit lp trong trng hp mt byte nhn trc mt byte c c. C th khng s dng tnh nng ca FIFO nhng nu xy ra li trn, d liu d vn c cha trong FIFO v phi c ra xa FIFO. Thit lp tc baud ca UART c lp trnh bi cc thanh ghi chia tc bit UART_LCRM v UART_LCRL.

  • - 34 -

    Cc ngt UART

    Mi UART to ra bn ngt:

    - B ngt trng thi: dng xc nhn khi c bt k s thay i trng thi no. B ngt ny c xa bng cch ghi vo thanh ghi UART_ICR.

    - Ngt loi b UART: dng xc nhn khi UART c loi b v bit khi ng (mc thp) c pht hin trn ng thu. Trng thi ny s c xa nu UART c kch hot hoc ng thu mc cao.

    - Ngt Rx (ngt thu d liu): dng xc nhn khi mt trong cc trng hp sau xy ra: B FIFO thu c kch hot v b FIFO cha na hoc qu na (8 byte

    hoc nhiu hn 8 byte). B FIFO thu khng cn trng v khng c d liu cho hn chu k 32 bit. B FIFO thu b v hiu v d liu c thu. Ngt Rx c xa bng vic c ni dung ca FIFO.

    - Ngt Tx (ngt truyn d liu): dng xc nhn khi mt trong cc trng hp sau xy ra:

    B FIFO truyn c kch hot v b FIFO cha mt na hoc t hn mt na. B FIFO truyn b v hiu ha v vng m lu tr l trng. Ngt Tx s c xa khi chn vo b FIFO hn qu na hoc ghi vo thanh

    ghi lu tr.

    Dng khung truyn

    Khung truyn trong giao tip UART gm bn thnh phn, nh trong hnh 2.12.

    Start bit Data Parity Stop bits

    Hnh 2.12: Khung truyn trong giao tip UART.

    - Start bit (1 bit mc logic 0): bt u mt gi tin, ng b xung nhp clock; - Data (c th l 5,6,7 hoc 8 bit): d liu cn truyn; - Parity bit (1 bit: chn (even), l (odd), mark, space): bit cho php kim tra li; - Stop bit (1 hoc 2 bit): kt thc mt gi tin.

    Tc truyn

    - Tnh bng n v bit/giy: bps (bit per second) hay cn gi l tc baud. - L s bit truyn trong mt giy. - Tc ti a =Tn s xung nhp clock/hng s.

  • - 35 -

    VD: tn s thch anh ngoi cho vi iu khin l 18.432MHz, hng s =16 -> tc truyn l: 115.200 bps.

    Bn trong UART h tr cc thanh ghi cho php xc nh cc tc lm vic khc, vd: 1.200, 2.400, 4.800, 9.600, 19.200, 38.400 bps, c th thit lp tc baud bng phn mm.

    2.2.7 Giao tip ngoi vi ni tip (SPI) Chc nng SPI

    Trong vi iu khin ARM, khi SPI (Serial Peripheral Interface) c tch hp sn bn trong v nm trn bus truyn d liu ngoi vi ti u tng hiu sut truyn d liu v ti u kh nng tiu th cng sut. - SPI s dng phng thc truyn: Ni tip ng b Song cng.

    Ni tip: truyn mt bit d liu trn mi nhp truyn; ng b: c xung nhp ng b qu trnh truyn; Song cng: cho php gi, nhn ng thi.

    - SPI l giao thc Master Slave Thit b ng vai tr Master iu khin xung ng b (SCK); Tt c cc thit b slave b iu khin bi xung ng b pht ra bi Master. SPI l giao thc trao i d liu (Data Exchange): mt bit c gi ra s c

    mt bit khc c nhn v, c m t nh trong hnh 2.13.

    Hnh 2.13: Giao thc Master Slave trong giao tip SPI.

    Cc cu hnh ghp ni c bn trong giao tip SPI - Cu hnh ghp ni mt thit b c m t trong hnh 2.14

    Hnh 2.14: Ghp ni mt thit b.

  • - 36 -

    - Cu hnh ghp ni nhiu thit b c m t trong hnh 2.15 (1 Master n Slave):

    Hnh 2.15: Ghp ni nhiu thit b.

    - M t cc chn trong giao tip SPI: MISO (Master Input Slave Output); MOSI (Master Output Slave Input); SCK: xung ng b; SS (Slave select): chn chn thit b ( mt thit b slave c th lm vic,

    chn SS phi gi mc thp). - Cc thit b s dng giao tip SPI rt a dng, bao gm: th nh SD/MMC, b nh,

    cm bin nh, ADC, LCD,

    2.2.8 Giao tip USB Trong vi iu khin ARM, khi giao tip chun USB c tch hp sn bn trong

    v nm trn bus truyn d liu ngoi vi ti u tng hiu sut truyn d liu v ti u kh nng tiu th cng sut. Trong khi giao tip USB c mt b x l truyn v nhn d liu v mt b m FIFO. D liu truyn trn USB theo giao thc c nh ngha sn.

    Giao tip USB l mt chun truyn d liu ni tip a nng [10] vi cc thit b ngoi vi. S truyn tn hiu theo chun giao tip USB c m t trong hnh 2.16.

    Hnh 2.16: S truyn tn hiu theo chun giao tip USB.

  • - 37 -

    Qu trnh trao i d liu Cc thit b USB c th trao i d liu vi my ch theo bn kiu hon ton

    khc nhau, c th: - Truyn iu khin (control transfer); - Truyn ngt (interrupt transfer); - Truyn theo khi (bulk transfer); - Truyn ng thi (isochronous transfer).

    Truyn iu khin: iu khin phn cng, cc yu cu iu khin c truyn. Kiu truyn ny lm vic vi mc u tin cao v vi kh nng kim sot li t ng. Tc truyn ln v c n 64 byte trong mt yu cu c th c truyn.

    Truyn ngt: cc thit b, cung cp mt lng d liu nh, tun hon. H thng s hi theo chu k, chng hn 10 ms mt ln xem c cc d liu mi gi n.

    Truyn theo khi: khi c lng d liu ln cn truyn v cn kim sot li truyn nhng li khng c yu cu v thi gian truyn th d liu thng c truyn theo khi.

    Truyn ng thi: khi c khi lng d liu ln vi tc d liu c quy nh. Theo cch truyn ny mt gi tr tc xc nh c duy tr. Vic hiu chnh li khng c thc hin v nhng li truyn nh khng gy nh hng ng k.

    u im giao tip USB

    - D s dng: Mt giao tip dng chung cho nhiu thit b ngoi vi khc nhau; T ng cu hnh; D dng u ni; H tr kh nng cm nng (Hot pluggable); Thng khng cn s dng ngun ngoi.

    - Tc cao v tin cy, h tr nhiu tc khc nhau: Tc cao nht: 480 Mbps; Tc cao : 12 Mbps; Tc thp : 1,5 Mbps.

    - Tit kim in.

    - Li ch cho ngi dng pht trin (thit k phn cng, lp trnh nhng, lp trnh ng dng).

    - Linh hot: Chun giao tip USB h tr bn kiu truyn v ba tc khc nhau -> c th

    ph hp cho nhiu loi thit b ngoi vi;

  • - 38 -

    C th h tr truyn cc gi d liu c rng buc hoc khng rng buc v thi gian lm tng tnh thi gian thc

    H tr giao thc giao tip vi cc thit b chun nh my in, bn phm, a, u c th,

    - c h tr bi h iu hnh: Cc h iu hnh ph bin u h tr chun USB: Windows, Linux,

    Macintosh; Pht hin khi thit b c cm vo hay rt ra khi h thng; Giao tip vi thit b c cm vo tm ra cch trao i d liu; H tr cc giao din hm chun (API Application Programming Interface)

    cho php lp trnh giao tip vi thit b; c h tr bi nhiu nh sn xut; Cc chip chuyn dng h tr giao tip theo chun USB kh ph bin; Gii hn v khong cch: gii hn chiu di ng truyn khng qu 5m; C th tng khong cch bng cc mch chuyn i (USB RS485,

    wifi,).

    2.2.9 Kin trc bus truyn d liu cao cp ca vi iu khin ARM Gii thiu chung ARM giao tip vi cc khi ngoi vi bi h thng bus truyn d liu cao cp AMBA (Advanced Microcontroller Bus Architecture) [11], [12]. c im ca AMBA l chun truyn thng trn chip dnh cho thit k cc vi iu khin 16 v 32 bit vi hiu sut cao, cc b x l tn hiu v cc thit b ngoi vi phc tp. AMBA l mt c tnh dnh cho cc bus trn chip, cho php cc khi lnh (nh iu khin b nh, CPU, DSP v cc thit b ngoi vi) c kt ni vi nhau thnh mt vi iu khin hay thnh chip ngoi vi phc tp.

    - AMBA c thit k vo: Cc b vi iu khin PDA, vi s lng ln cc thit b ngoi vi c tch hp

    v kh nng tiu th in rt thp. Cc b vi iu khin a phng tin nh cc b iu khin hnh nh c b nh

    dung lng ln. Cc thit b ASIC phc tp cho cc sn phm chuyn dng. Tch hp iu khin v cc chc nng x l tn hiu cc thit b truyn thng

    di ng s.

    - Chnh sch ca ARM l c th h tr s dng AMBA pht trin cc bo mch v cc cng c khc.

  • - 39 -

    - Mc tiu ca AMBA: D dng pht trin cc mch nhng vi iu khin vi mt hay nhiu b x l

    v nhiu thit b ngoi vi. Gim thiu c tng chi ph trong sn xut th nghim chip. AMBA h tr thit k cc khi, cu trc v cc b x l c lp, h tr pht

    trin th vin cc thit b ngoi vi v sn sng cung cp b nh truy cp nhanh, cc li CPU cao cp.

    - t c nh vy, kin trc AMBA c nhng tnh nng chnh sau: Tnh n th cao. H tr a dch v. Ngun tiu th thp. Phng php kim th cao cp.

    - AMBA l mt h m, bt k ai cng c th sao chp cc c tnh k thut t ARM v dng giao thc ca AMBA thit k chip. Khng c s lin i n bn quyn hay tin bn quyn. Cc hi vin ARM c th cung cp v h tr v h thng AMBA.

    - c tnh k thut AMBA: Bus bng thng rng, tc cao. Bus ngoi vi c cng sut thp, cu trc n gin. Cho php truy cp kim th cc khi nhanh. Cc hot ng qun l hiu qu (Reset hoc bt ngun, qu trnh khi to v

    ch ngh). - Kin trc AMBA in hnh c m t trong hnh 2.17.

    Hnh 2.17: Vi iu khin da trn kin trc AMBA in hnh.

  • - 40 -

    - Bus h thng hiu sut cao (ASB - Advanced System Bus): Bus ny l xng sng ca h thng chnh, m bo tc d liu gia h

    thng vi cc giao tip bus bn ngoi. B x l trung tm (CPU), cc bus truyn chnh khc (nh b iu khin truy cp b nh trc tip DMA), b nh trong cng c kt ni vi bus truyn tc cao ny.

    ASB c kt ni vi APB bi cu ni.

    - Bus truyn d liu ngoi vi ti u (APB - Advanced Peripheral Bus): Bus truyn ngoi vi ny c cng sut thp, tc thp v n gin. y l cc

    thit k thng thy trong ARM, cc bus y hp hn v n gin hn dnh cho kt ni cc thit b ngoi vi chung nh l cc b nh thi, cc cng vo ra song song, b thu/pht khng ng b a nng, bng cch t cc thit b ngoi vi truy cp trn APB v phn vng chng i t ASB, lm gim bt lng ti trn ASB v t c hiu sut ti a trn ASB.

    - Truy cp ngoi: Truy cp ngoi c s dng cho vic truy cp kim th. Trng hp thng thng l giao tip vi b nh ngoi nhng c th ci t bt k chn ra no cho vic kim th. Kim th vin c th kim sot cc bus v kim tra cc thnh phn mt cch c lp hay ln lt. Phng php truy xut song song cho php kim th nhanh c bit l i vi cc vng nh m CPU.

    - Vi iu khin da trn AMBA cha b qun l thng tin ngun v trng thi Reset m bo: Trnh iu khin duy nht khi cp ngun. Cc ch tit kim in hay ch ng. C ch khi ng li cho cc trng thi bnh thng, nng hoc ch.

    - Bus h thng hiu sut cao (ASB) c thit k s dng vi hiu nng cao v bng thng ln vi nhng c tnh:

    Bus a ch v bus truyn d liu ring bit; H tr kin trc ng ng; H tr cc bus d liu chnh; H tr cc thit b ghp ni ph, bao gm c cu ni n bus truyn d liu

    ngoi vi ti u (APB); B phn x v b gii m trung tm. Tc truyn ty thuc vo c im thit k v mc ch s dng. Cu hnh

    tc truyn ny khng b gii hn bi ch tiu k thut.

    - Bus truyn d liu ngoi vi ti u (APB) c thit k lm bus con cho bus truyn chnh ASB v c kt ni bng cu ni (cu ni ny gii hn ti ASB).

  • - 41 -

    - Mc tiu APB l bus truyn d liu n gin, s dng in p thp vi nhng c tnh: Truy cp d liu c iu khin ch bi s la chn v cho qua, khng cn

    xung nhp. Cng sut tiu hao gn nh bng khng khi bus truyn ny khng s dng. Giao tip ng truyn n gin. Tc truyn d liu ph thuc vo tc ca cc thit b ngoi vi. Cu hnh tc truyn khng b gii hn bi ch tiu k thut, c th thay i

    theo thit k ngi dng.

    Cc bus d liu ca APB c th c ti u ha tng thch vi cc thit b ngoi vi kt ni. Rt nhiu cc thit b ngoi vi c yu cu ng truyn d liu hp, v mt c ch kt ni thit b ngoi vi 32 bit trc cu ni, tip theo sau cu ni l c ch kt ni vi cc thit b ngoi vi 8 bit, gim vng khng cn s dng trong bus truyn d liu, ti u ha bus truyn d liu.

    Mc d xung nhp khng c thit lp trong AMBA, phn vng cung cp bi cu ni v APB ti gin c vic tiu hao cng sut. Rt nhiu cc thit b ngoi vi nh cc b nh thi, b to tc Baud (BRG), b iu ch rng xung (PWM) yu cu chia xung nhp h thng, v cc v tr c th lp trnh, c phn chia bn cnh cu ni rt tin li v to ra ch ngun hiu qu.

    Khng c bus truyn d liu chnh trong APB (ngoi tr cu ni). Tt c cc thit b ngoi vi hot ng nh l cc h th ng.

    c tnh gia ASB v APB

    - ASB c dng cho cc b iu khin CPU, DSP, DMA v cc bus truyn d liu chnh khc, hay cc thit b ngoi vi c hiu sut cao.

    - APB c dng cho ng truyn dn ph, nh a ch thanh ghi cc thit b ngoi vi, c bit l khi s lng cc thit b ngoi vi ln m ngun tiu th yu cu thp.

    - ASB v APB s dng cng h phng php kim th trong AMBA.

    B iu khin giao tip kim th B iu khin giao tip kim th l mt bus truyn d liu ASB chnh, c

    dng giao tip vi bus truyn d liu bn ngoi (hoc vi cc chn tng thch khc) truy cp kim th ca thit b bn ngoi, c m t trong hnh 2.18.

    C ch ny cho php truy cp cng kim th m mt mc thp cng logic, c th kim th nhanh bng cch truy cp song song. Phng php kim th cho php dng li cc kt qu kim th trung gian, lu li gi tr ti thi im th. Chng hn nh khi mt khi thit b ngoi vi c dng tr li, khi trung gian kim th (khi c kim th vn tn ti) c th c s dng li, v tip tc kim th mc cao hn ca chng trnh.

  • - 42 -

    Hnh 2.18: B iu khin giao tip kim th s dng theo dng khi.

    B iu khin giao tip kim th c kh nng kim tra hot ng ca cc thit b ngoi vi, b phn x c nhim v phn chia tc bus cho ph hp tc truyn ca tng thit b ngoi vi.

    u im AMBA c s dng trn cc sn phm ARM v chng t c cc tnh nng hiu dng. Hin nay kin trc bus truyn d liu AMBA c s dng nhiu trn cc b vi iu khin tch hp cao cp khc bi p ng c cc vn :

    - Kin trc chip c phn vng tc , tit kim in nng. - Qun l d n tin ch bi vic s dng khi kim th, do gim bt thi

    gian nghin cu pht trin sn phm. - Sn phm c nhiu tnh nng cao cp, b vi x l c lp, hin i v c tnh

    cnh tranh. - ARM lun sn sng h tr cc cng c v mi trng pht trin h thng bus

    truyn d liu AMBA.

    2.3 Kt lun Chng 2 trnh by tng quan giao tip c bn trong vi iu khin ARM, trn c

    s , ty theo ng dng vi iu khin ARM c b xung thm cc tnh nng cao cp

  • - 43 -

    hn (c trnh by trong chng 3). Cc giao tip trn vi iu khin ARM lun c kh nng tng tc tt vi cc thit b ngoi vi trn h thng bus truyn d liu c tc x l cao, nhng tiu th nng lng thp.

    Cc giao tip vi vi iu khin ARM u c hng h tr, nh ngha thnh cc module v c ti u t khi thit k theo kiu cu trc trong lp trnh C, rt thun li cho ngi lp trnh tip cn v pht trin ng dng. Chnh v vy, vi iu khin ARM c phm vi ng dng rng ri, lun c sn cc cng c h tr giao tip cho c phn cng v phn mm. ---------------------------------

  • - 44 -

    CHNG 3 C IM CC DNG LI X L ARM

    3.1 Phn loi v tnh nng cc dng li x l ARM

    Phn loi cc dng li x l ARM

    Cc dng li x l ARM cho n nay c bn kin trc [13], bao gm: kin trc v4T, kin trc v5, kin trc v6 v kin trc v7.

    Kin trc ARMv4T l kin trc c bn, cc kin trc ARM sau bao gm v5, v6, v7 u k tha t kin trc ARMv4T. Hnh 3.1 m t s hnh thnh v pht trin cc kin trc li x l ARM t kin trc ARMv4 n ARMv7.

    Hnh 3.1: Cc kin trc li x l ARM.

  • - 45 -

    Tnh nng cc dng li x l ARM

    Tnh nng cc dng li x l ARM c m t trong hnh 3.2.

    Hnh 3.2: Tnh nng cc dng li x l ARM.

    Trong :

    ARM 32-Bit ISA (Instruction Set Architecture): cu trc tp lnh ARM 32 bit.

    Thumb 16-Bit ISA: cu trc tp lnh Thumb 16 bit c thit lp bng cch phn tch tp lnh ARM 32 bit v chuyn ha tt nht ph hp vi tp lnh 16 bit, lm gim kch thc m.

    Thumb: c tnh Thumb ci thin mt bin dch m, b x l thc hin tp lnh 16 bit. ch ny c mt s ton hng i km s n i v gii hn mt s kh nng so vi ch tp lnh ARM y . Trong Thumb, cc m s nh hn v t chc nng cho ci thin mt m tng th. Trong trng hp b nh hoc bus truyn d liu b hn ch di 32 bit, m Thumb cho php tng hiu sut thnh m ARM 32 bit tng kh nng x l trn bng thng ln hn.

    Thumb-2: c a ra b sung cho cc gii hn tp lnh 16 bit Thumb vi vic cung cp thm tp lnh 32 bit m rng. Mc tiu ca Thumb-2 l t c mt m nh Thumb vi hiu sut tng ng nh tp lnh ARM 32 bit.

  • - 46 -

    Thumb-2 Mixed ISA: kt hp tp lnh 16 bit v 32 bit m c th khng cn ch chuyn mch. Kt hp tp lnh 16 bit v 32 bit ngay ti thi im ang thc hin lnh v ch trong mt lnh n (khng gy gim hiu sut thc thi).

    VFPv2 (Vector Floating Point): l b thc hin php tnh du chm ng ca kin trc ARM. VFPv2 c 16 thanh ghi, hot ng vi mt chu k n, kh nng tnh ton v x l rt nhanh, tr thp, c chnh xc cao.

    VFPv3 l phin bn nng cp ca VFPv2, VFPv3 c chnh xc cao hn vi 32 thanh ghi v mt s tp lnh c m rng.

    NVIC (Nested Vectored Interrupt Controller): B iu khin vector ngt lng nhau c kh nng x l ngt rt linh hot v nhanh chng v cho php rt ngn thi gian tr hon p ng ngt (h thng p ng ngt nhanh hn) vi nhiu mc u tin khc nhau.

    Jazella: l cng ngh h tr trnh thng dch m Java, cho php li ARM thc thi trc tip m Java trong cu trc phn cng nh l trng thi thc thi th ba cng vi cc ch ARM v Thumb hin hnh, lm tng tc kh nng thc thi.

    WIC (Wake-up Interrupt Controller): B iu khin nh thc khi c ngt, gip cho cc hot ng tiu tn t nng lng hn.

    TrustZone: Khi tng tnh bo mt, m bo cc on m c hi khng lm nh hng n h thng.

    SIMD (Single Instruction Multiple Data): Khi tp lnh n a d liu, khi ny cho php tp lnh hot ng ti cng thi im trn cc mc d liu khc nhau, lm tng kh nng x l d liu v c bit hiu qu i vi cc d liu dng m thanh v hnh nh.

    NEON: Cng ngh NEON mc ch l tng hiu sut x l cho cc nh dng a phng tin, cng ngh ny c pht trin m rng t cng ngh SIMD, c kh nng lm tng cc thut ton x l tn hiu nh l m ha v gii m cc nh dng m thanh, hnh nh; ha hai chiu, ba chiu; tr chi; tng hp x l ging ni, hnh nh trong thoi vi hiu sut x l cao.

    3.2 c im cc dng li x l ARM

    3.2.1 c im ca kin trc dng li x l ARM v4T

    Kin trc v4T c ARM gii thiu nm 1994, bao gm cc li x l bao gm: ARM7TDMI, ARM720T, ARM920T. Kin trc v4T h tr tp lnh Thumb (vit tt l T trong cc k hiu ca b x l). H tr cng lc tp lnh Thumb 16 bit v ARM 32 bit. Vi tp lnh Thumb 16 bit cho php trnh bin dch to ra chng trnh nh hn m vn tng thch vi h thng

  • - 47 -

    32 bit. in hnh kin trc ny l li ARM7TDMI c thit k nhm p ng cc ng dng yu cu hiu sut cao, tiu th nng lng thp v nh gn. ngha cc k hiu trn ARM7TDMI: - T l h tr tp lnh Thumb 16 bit; - D l Debug - hiu chnh li; - M c ngha l Long Multiply Support - h tr php ton 64 bit; - I l Interface, h tr giao tip ngoi vi. ARM7TDMI h tr gii m li bng khi Embedded Trace Macrocell (ETM) y l gii php gii m li hon chnh dnh cho li ARM, ngoi ra ARM7TDMI c kh nng kt hp vi cc li khc nhm tng cng kh nng x l. ARM7TDMI c kin trc ng ng ba tng, l kin trc Von Neumann, b x l s hc 32 bit. H thng tp lnh 16 v 32 bit c kh nng m rng thng qua giao din ng x l vi li ngoi. phin bn m rng ARM720T, b nh m v h thng qun l b nh (MMU Memory Management Unit) c tch hp. Tip phin bn ARM9TDMI s dng kin trc ng ng nm tng v kin trc Harvard.

    3.2.2 c im kin trc dng li x l ARM v5

    Kin trc v5 v cc phin bn m rng v5T, v5TE, v5TEJ c ARM gii thiu nm 1999, bao gm cc li x l:

    ARM1020E/1022E v5T; ARM946E-S/ARM966E-S/ARM968E-S v5TE; ARM7EJ-S/ARM92EJ-S/ ARM1026EJ-S v5TEJ.

    c tnh k thut chung ca dng ARMv5 c m t trong bng 3.1:

    Bng 3.1: c im k thut chung ca dng ARMv5.

    B x l Li x l dng RISC 32 bit I/O nh x b nh (Memory map I/O) Dung lng khng gian b nh 4GBytes Tp lnh 16 bit, 32 bit

    Ch hot ng C by ch : User, Supervisor, Abort, Undefined, System, IRQ, FIQ Cu trc tp lnh H tr tp lnh ARM 32 bit v Thumb 16 bit m rng Ngt IRQ (Interrupt Request) v FIQ (Fast Interrupt)

    Phin bn v5T: b lnh Thumb c ci tin, h tr CLZ (Count Leading Zero), CLZ l tp lnh h tr cho php xc nh mt bin m gim v 0 ch trong mt chu k lnh, gip gim thi gian trong cc lnh cng, tr, nhn, chia cc s nh

  • - 48 -

    phn; gip tng tc trong x l tn hiu s so vi cng ngh thc hin php tnh du chm ng.

    Phin bn v5TE: h tr khi x l tn hiu s DSP (Digital Signal Processing). Vi khi DSP ny, nng lc x l tnh ton s c tng ln 70%.

    Phin bn v5TE-J: khi Jazelle c thm vo nhm h tr trnh thng dch m Java v b thc thi m Java. Thi gian thc thi m Java c tng ln tm ln v gim c hn 80% nng lng tiu th so vi li x l khng h tr khi Jazelle. Tnh nng ny cho php lp trnh vin thc thi m Java mt cch c lp vi h iu hnh.

    Kin trc v5 c s dng nhiu dng ARM10, c bit l phin bn v5TE-J. Mc d khng c nhiu thay i v kin trc, tuy nhin phin bn kin trc v5 c s dng rt nhiu bi vi x l tch hp h thng nn to c s linh hot vi nhiu tnh nng cao cp.

    3.2.3 c im kin trc dng li x l ARM v6

    Kin trc v6 v cc phin bn m rng v6T2, v6Z v v6K c ARM gii thiu nm 2002, bao gm cc li x l: ARM1136J(F)-S, ARM1156T2(F)-S(v6T2), ARM1176JZ(F)-S(v6Z), MPCore(v6K).

    C nhiu b sung kin trc v6 theo hng to ra nhng h thng nhng cao cp v phc tp hn nhng vn gi c u im v kh nng tiu th in nng thp. Vi mi phin bn s c nhng tnh nng c bit c thm vo. K tha cc c im ni tri ca kin trc v4 v v5, kin trc v6 cc khi TEJ c tch hp vo li ARM. m bo kh nng tng thch ngc phn b nh v x l ngoi l c k tha t kin trc v5.

    V kin trc v6, c nm im chnh c ci tin:

    - Qun l b nh: b nh cache v khi qun l b nh (MMU- Memory Management Unit) c ci tin lm tng hiu sut thc thi ca h thng ln 30% so vi kin trc c.

    - a li x l (Multiprocessor): p ng cc h thng m yu cu kh nng tc x l nhanh nh: phng tin gii tr c nhn, x l s Cc li x l chia s v ng b d liu vi nhau thng qua vng nh chung.

    - H tr x l a phng tin: tch hp b tp lnh SIMD (Single Instruction Multiple Data) lm tng kh nng x l d liu dng m thanh v hnh nh. SIMD cng cho php cc nh pht trin ci t cc ng dng phc tp hn nh: gii m d liu m thanh v hnh nh, cc bi ton nhn dng, hin th hnh nh 3D hoc h tr thit b s dng cng ngh khng dy.

    - Kiu d liu: l cch h thng s dng v lu tr d liu trong b nh. Cc h thng SoC (System on Chip), cc chip vi x l n, h iu hnh v cc giao

  • - 49 -

    din ngoi vi nh USB hoc PCI thng hot ng da trn kiu d liu little endian. Mt s cc giao thc nh TCP/IP hay MPEG hot ng da trn kiu d liu big endian. c th ti u ha kh nng tch hp ca h thng, ARMv6 h tr cng lc c hai nh dng little v big endian, gi tt l mixed-endian. Bn cnh , ARMv6 cn cung cp tp lnh x l d liu dng unalignment - c kch thc d liu thay i. Tng t nh ARMv5, ARMv6 cng l kin trc 32 bit, nn h tr ng truyn d liu 64 bit hoc cao hn.

    - X l ngoi l v ngt: thch ng cho cc h thng x l thi gian thc.

    Nhm tng cng tnh an ton khi thc thi m chng trnh, khi TrustZone c tch hp phin bn v6Z. Vn thc thi m an ton xut pht t thc t ngy cng nhiu thit b di ng da trn nn tng ca ARM, nhiu chng trnh c ti t trn mng do tnh an ton ca cc on m nhiu khi cha c kim chng. TrustZone m bo cc on m c hi khng lm nh hng n h thng.

    Dng ARM11 l i din ph bin nht ca kin trc ARMv6. Vi kin trc ng ng tm tng ( ARM1156T p dng kin trc ng ng chn tng), h thng d on r nhnh (Branch Prediction) v kt qu tr v (Return Stack) gip ARM11 nng cao hiu sut thc thi lnh.

    Tp lnh Thumb-2 cng c gii thiu h tr cc lnh Thumb 16 bit v 32 bit. phin bn ARM1176JZ(F)-S b sung khi IEM (Intelligent Energy Management) qun l mc tiu th nng lng tt hn.

    3.2.4 Kin trc dng li x l ARM v7

    Kin trc v7 v cc phin bn m rng v7-A, v7-R v v7-M c ARM gii thiu vo nm 2005, c trng bao gm cc li x l: Cortex-A8 (v7-A), Cortex-R4 (v7-R), Cortex-M3 (v7-M).

    Kin trc v7 c chia thnh ba dng chnh da trn c th ca ng dng thc tin:

    - Dng A (vit tt ca Application), li ARM dng ny h tr cho cc ng dng i hi tnh phc tp, mc tng tc ngi dng cao nh: thit b cm tay di ng, my tnh, cng ngh khng dy

    - Dng R (vit tt ca Realtime), li ARM dng ny h tr cho cc ng dng cn tnh ton x l thi gian thc.

    - Dng M (vit tt ca Microcontroller), li ARM dng ny dnh cho cc ng dng cng nghip v in t tiu dng.

    ARM Cortex l mt phin bn khc vi cc phin bn ARM thng hay c k hiu bi ARMXX. ARM Cortex khng c tc hot ng hay h thng ngoi vi nht

  • - 50 -

    nh m ty thuc vo nh sn xut phn cng s thit k h thng ngoi vi khc nhau. Tuy nhin tt c u dng chung li ARM Cortex v vic lp trnh v truy cp phn cng tun theo chun CMSIS (The Cortex Microcontroller Software Interface Standard: Chun giao tip phn mm vi iu khin Cortex).

    3.3 Kt lun

    Chng 3 trnh by cc tnh nng v kin trc cc loi li x l trong cc dng vi iu khin ARM. T kin trc li x l ARMv4 n kin trc li x l ARMv7, mi mt kin trc u c nhng tnh nng x l c trng, phin bn sau c s b sung thm cc tnh nng c bit, nhng c tnh k tha ca cc phin bn trc. phin bn ARMv7, hng ARM pht trin chun giao tip phn mm vi iu khin Cortex (CMSIS), kt hp cht ch vi cc nh cung cp phn mm chun ha cc giao tip vi cc thit b ngoi vi, cc h iu hnh thi gian thc v cc thit b trung gian. y l mt trong nhng thun li khi tm hiu pht trin v ng dng cc dng vi iu khin c li x l ARM cao cp.

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

  • - 51 -

    PHN II - THC NGHIM CHNG 4 NG DNG MT S GIAO TIP VI VI IU KHIN AT91SAM7S64

    4.1 Gii thiu Trn th trng Vit Nam hin nay c hai hng cung cp vi iu khin ARM kh

    ph bin l Philips v Atmel. Trong lun vn ny, ta chn vi iu khin AT91SAM7S64 ca Atmel [14] xy dng ng dng thc nghim.

    Mch thc nghim c chc nng: - Thu thp nhit , hin th nhit v thi gian thc trn LED 7 on; - Lu d liu vo th nh vi thi gian thc (nhit ; thi gian; ngy/thng/

    nm); - c kt qu d liu lu vo th nh trn my tnh bng u c th hoc

    c trc tip trn mch qua cng COM;

    Chi tit mch thc nghim bao gm: - S dng vi iu khin AT91SAM7S64 ca Atmel; - Cng np chun JTAG cho cc dng vi iu khin AT91SAM ca Atmel; - S dng cm bin nhit tng t LM35; - Giao tip vi IC thi gian thc DS12C887; - Hin th nhit v thi gian thc trn LED 7 on; - Giao tip vi SD Card; - Giao tip my tnh qua cng COM; - Ngun cung cp cho mch: ngun ngoi 5 12VDC hoc ngun qua cng

    USB trn my tnh.

    S khi tng qut mch thc nghim c m t trong hnh 4.1.

    Hnh 4.1: S khi tng qut mch thc nghim.

  • - 52 -

    4.2 c tnh c bn ca vi iu khin AT91SAM7S64 xy dng mch thc nghim da trn vi iu khin AT91SAM7S64, ta phi nm

    c cc c tnh c bn v kh nng pht trin ng dng ca vi iu khin ny [15].

    Gin khi ca AT91SAM7S64 c m t trong hnh 4.2.

    Hnh 4.2: Gin khi ca vi iu khin AT91SAM7S64.

  • - 53 -

    Vi iu khin AT91SAM7S64 l mt trong nhng vi iu khin trong h AT91SAM7S do hng Atmel ch to, c kin trc thuc dng li x l ARM v4T v c li x l c trng l ARM7TDMI. H vi iu khin AT91SAM7S bao gm:

    - AT91SAM7S512 : 512 Kbytes b nh Flash. - AT91SAM7S128 : 128 Kbytes b nh Flash. - AT91SAM7S64 : 64 Kbytes b nh Flash. - AT91SAM7S321/32 : 32 Kbytes b nh Flash. - AT91SAM7S161/16 : 16 Kbytes b nh Flash.

    Cc tnh nng c bn

    - Li x l: Li ARM7TDMI theo kin trc RISC, Cu trc tp lnh gm: tp lnh 32

    bit thc hin cu lnh hiu sut cao v tp lnh 16 bit (Thumb) u tin m chng trnh nh gn.

    - B nh: 16 Kbytes SRAM; 64 Kbytes Flash.

    - Cc giao tip ngoi vi: Mt cng truyn USB 2.0 vi tc 12 Mbits/giy ; Mt b iu khin ng b ni tip (SSC); Hai b giao tip UARTs; Mt b giao tip SPI; Ba b Timer/Counter 16 bit; Bn b iu bin rng xung: cho php qun l bn knh PWM 16 bit

    c lp; Mt b TWI (Two-Wire Interface); Tm knh ADC 10 bit, trong bn knh dng chung cho vo ra a mc ch; Mt b iu khin vo hoc ra song song PIO qun l 32 ng vo hoc ra

    song song; Mt b Timer ni (PIT); Mt b Watchdog Timer; Mt b nh thi thi gian thc 32 bit (RTT).

    - H thng: Xung nhp CPU ti a c th ln ti 55MHz 1,65V; Ma trn cc knh truyn;

  • - 54 -

    Truy cp b nh trc tip (DMA Direct Memory Access); B iu khin ngt cao cp (AIC Advanced Interrupt Controller):

    Cho php lp trnh c lp nhiu ngun ngt vi tm mc u tin cho tng ngun ngt;

    C hai ngun ngt ngoi, mt ngun ngt bn trong, cc ngun ngt c ch bo v chng cc tp nhiu.

    B qun l ngun (PMC Power Management Controller) cho php tit kim trong vic s dng nng lng, c kh nng ti u ngun nh trong ch ch v trong ch ngh;

    - B to xung bao gm: B to dao ng tn s t 3 n 20 Mhz; B dao ng chm RC; B PLL cho php to xung c tn s chnh xc.

    - Ch vo ra: 64 chn vo ra lp trnh c.

    - Ngun cung cp: 3,3VDC; bn trong c tch hp mt b iu chnh in p ra l 1,8VDC

    gip ti u vic cp ngun trong vi iu khin.

    4.3 Khi ngun cung cp

    Khi ngun cung cp cho ton mch

    Khi ngun c kh nng nhn ngun ngoi t 5 12VDC hoc qua cng USB trn my tnh.

    Khi ngun c chc nng cung cp in p v n p mc 5VDC v 3,3VDC cho ton mch, c m t trong hnh 4.3. Mch tiu th ch yu l LED 7 on, do vy tng dng in tiu th trn mch lc ln nht khong 150mA. Do mch ngun ch cn s dng cc vi mch NCP1117 n p 5V vi dng 1A, 78M33 n p 3,3V vi dng l 500mA v c thit k nh sau:

    D2

    D1

    12

    P1

    VUSB

    GND

    10uF+ C4

    100nFC6

    10k

    R1

    LED1

    +3V3

    100nFC5

    +5V

    D3

    SW1

    PW_SW

    10uF+ C7 10uF

    + C3

    GND1IN3 OUT 2

    OUT 4

    U2

    REG1117-5

    IN1 OUT 3

    GND2 GND 4

    U3

    78M33

    Hnh 4.3: S nguyn l mch ngun.

  • - 55 -

    Khi ngun cung cp trong vi iu khin

    Vi iu khin AT91SAMS64 c su chn ngun, c tch hp thnh b iu chnh in p cung cp cho li ARM; b nh Flash, b nhn tn, b iu khin vo ra bn trong vi iu khin v c kt ni nh trong hnh 4.4.

    GND 2

    GND 17

    GND 46

    GND 60

    VDDCORE12

    VDDCORE24

    VDDCORE54

    VDDFLASH59

    VDDIN7

    VDDIO18

    VDDIO45

    VDDIO58

    VDDOUT8

    VDDPLL64

    U4D

    AT91SAM7S64-AU-001

    GND

    +3V3

    100nF

    C26

    100nF

    C20

    100nF

    C27

    100nF

    C21

    100nF

    C28

    100nF

    C22

    100nF

    C29

    100nF

    C23

    100nF

    C19

    100nF

    C25

    GND

    VDDIN

    VDDOUTV

    DD

    IN

    VD

    DO

    UT

    2.2uF

    C30

    Hnh 4.4: S mch ngun vo ra cho vi iu khin.

    Chn VDDIN: cho php iu chnh in p trong di in p t 3.0V n 3.6V, nu khng s dng chn ny iu chnh th in p nh mc l 3.3V.

    Chn VDDOUT: c u ra n p mc 1.8V.

    Chn VDDIO: cc ng ngun vo ra c cung cp ng thi, di in p t 3.0V n 3.6V, in p nh mc l 3.3V.

    Chn VDDFLASH: p ng v yu cu ngun cho b nh Flash hot ng chnh xc. Di in p t 3.0V n 3.6V, in p nh mc l 3.3V.

    Cc chn VDDCORE: cung cp ngun logic ca thit b, di in p t 1.65V n 1.95V, quy chun l 1.8V. C th kt ni ti chn VDDOUT vi cc t kh ghp dng ngn tn hiu t tng ny sang tng kia. VDDCORE cung cp ngun cho thit b bao gm c b nh Flash.

    Chn VDDPLL: ngun cho b dao ng v b PLL. C th kt ni trc tip ti chn VDDOUT.

  • - 56 -

    Cc ngun ca b iu chnh in p ny khng c cc ngun t ring bit, ch dng mt ngun t chung. Trn mch in cc t lc xung t v cc chn ni t ca b iu chnh in p ny phi c ni vo ngun t chung vi khong cch ngn nht.

    4.4 Cng kt ni chun JTAG

    Cng JTAG dng kt ni vi mch np cho vi iu khin AT91SAM7S64, c m t trong hnh 4.5.

    JTAGSEL50

    TCK53

    TDI33

    TDO49

    TMS51

    U4C

    AT91SAM7S64-AU-001

    12345678910

    11121314151617181920

    P2

    Header 10X2

    GND

    +3V3

    47kR6

    47kR7

    47kR8

    47kR9

    47kR10

    TDITMSTCK

    TDORST

    TDITDOTCKTMSJTAGSEL

    12

    J3

    BDS_JUMP

    JTAG Connector

    Hnh 4.5: S mch cng kt ni chun JTAG.

    TMS, TDI v TCK l cc chn u vo schimitt trigger (c tc dng chng nhiu). TMS v TCK c kh nng giao tip c n 5V, TDI th khng. Cc chn TMS, TDI v TCK khng tch hp tr ko.

    TDO l tn hiu bng mc VDDIO v khng c tr ko.

    Chn JTAGSEL c s dng la chn khi xc nhn mc cao th s chuyn sang ch Debug.

    Cc chn TMS, TDI, TCK v TDO u phi mc tr ko ln dng ngun n nh trng thi xut nhp d liu.

    4.5 Mch cm bin nhit

    S mch cm bin nhit c m t trong hnh 4.6. Mch gm hai khi:

    - Khi cm bin nhit ; - Khi khuch i in p u ra ca LM35 ln 3,3V.

  • - 57 -

    VCC1

    Vout2

    GND3

    U8

    LM35CAZ

    GND

    75R21

    1uF+ C34

    +5V

    2

    31 A

    84

    U7ALM358AD

    5

    67 B

    84

    U7BLM358AD

    20k

    R22

    10kR23

    10uF+ C25

    100nFC26

    GND

    ADC

    Hnh 4.6: S mch cm bin nhit .

    Khi cm bin nhit

    Khi ny s dng cm bin LM35 [16], y l mt trong nhng IC thuc h cm bin nhit tng t, c sn xut theo cng ngh bn dn da trn cc cht bn dn d b tc ng bi s thay i ca nhit , u ra ca cm bin l in p (V) t l vi nhit m n c t trong mi trng cn o. S chn v di in p ra ca LM35 c m t trong hnh 4.7.

    Chn 1: Ngun cung cp t 4 n 20V; Chn 2: in p ra t 0 n 1000mV theo

    thang 0mV + 10mV/oC; Chn 3: Ni t.

    Hnh 4.7: S chn v cc gi tr in p vo ra ca LM35.

    Khi mch khuch i

    Khi ny s dng IC LM358AD [17], khuch i in p t LM35 ph hp vi th chun ca ADC trn vi iu khin. S LM358 c m t trong hnh 4.8.

    Hnh 4.8: S IC LM358AD v chc nng cc chn tng ng.

  • - 58 -

    Chc nng cc chn IC LM358AD c m t trong bng 4.1.

    Bng 4.1: Chc nng cc chn IC LM358AD.

    Chn Chc nng

    1 u ra 1 2 u vo o 3 u vo khng o 4 t 5 u vo khng o 2 6 u vo o 2 7 u ra 2 8 Ngun dng

    Gi tr ghp ni LM35 vi ADC ca vi iu khin Ta chn b ADC 10 bit ca AT91SAM7S64 c 1024 mc lng t Trng hp 1: ghp ni thng LM35 vi ADC - Vref ca ADC = 3.3V

    - Di o LM35: 0 100 oC, 10mV/oC - Vout (in p ra LM35) t 0V 1V

    u vo ADCmax ca LM35 = 3.3VV1 x 1024 = 320 mc

    Mc tng ng vi nhit o LM35: 1 mc = 320

    V1 3.1mV 0.3 oC

    Vy nhit thay i 0.3 oC, Vin (ADC) thay i 3.1mV th vi iu khin mi pht hin c c s thay i nhit mi trng.

    - Trng hp 2: ghp ni LM35 qua khi mch khuch i (IC LM358AD) n b ADC.

    gim sai s, ta cho khuch i in p ra ca LM35 ln ba ln ph hp vi

    th chun ca b ADC. H s khuch i: K = 1 + 12

    RR

    Trong R2 = 20K, R1 = 10K K = 3 Lc ny Vin (ADC) t 0V 3V

    ADCmax = 3.3VV3 x 1024 = 931 mc

    Mc tng ng vi nhit : 1 mc = 931

    V3 3.1mV

    Do qua b khuch i nn 1 mc LM35 = 3mV1.3 1mV 0.1 oC

  • - 59 -

    Vy nhit thay i 0.1 oC, Vin (ADC) thay i 1mV th vi iu khin pht hin c c s thay i nhit mi trng, lm gim sai s c ba ln so vi trng hp s dng trc tip u ra t LM35.

    S dng thm b khuch i ngoi tc dng lm tng phn di cn c tc dng lm b m tr khng gia LM35 v b ADC.

    Vic c ADC c tnh bi cng thc: ADC = VrefVin x 2n

    Trong : Vin l in p c a vo t mch cm bin nhit . Vref = 3.3V (in p tham chiu u vo ca b ADC). 2n = 1024 (n = 10: l s bit ca b ADC).

    Bc thay i ca ADC l: 10243.3V = 3.2mV

    Ti 0 oC th gi tr u ra ca LM35 l 0mV tng ng vi ADC = 0; Vi ADC = 1 th in p tng ng l 3.2mV. M LM35 thay i 10mV/oC nn gi tr ADC thay i trong mt n v th nhit

    thay i l: 10mV3.2mV = 0.32

    Vy nhit u ra l: T = ADC * 0.32

    4.6 Giao tip vi IC thi gian thc DS12C887 DS12C887 l IC thi gian thc [18], c rt nhiu u im: - C chnh xc cao; - D liu thi gian c lu trong b nh, c pin c tch hp bn trong IC

    nn khng b mt d liu khi mt ngun cung cp. Do vy, d liu c ghi vo th nh lun m bo chnh xc v thi gian.

    S mch kt ni IC DS12C887 c m t trong hnh 4.9.

    VCC 24

    AD5 9AD4 8AD3 7AD2 6AD1 5AD0 4

    AD7 11

    MOT1

    AD6 10

    CS13AS14

    R/W15

    DS17

    RST18

    SQW 23

    GND12

    IRQ 19

    U6

    DS12887GND

    +5V

    100nF

    C18

    GNDAD0AD1AD2AD3AD4AD5AD6AD7

    AS

    DS

    RW

    10k

    R17

    100nFC19

    Hnh 4.9: S mch kt ni IC DS12C887.

  • - 60 -

    S cc chn IC DS12C887 c m t trong hnh 4.10.

    Hnh 4.10: S cc chn IC DS12C887.

    Chc nng cc chn IC DS12C887 c m t trong bng 4.2.

    Bng 4.2: Bng k hiu v chc nng cc chn DS12C887.

    Chn K hiu Chc nng

    1 MOT La chn loi bus 2,3,16,20,21,22 NC B trng

    4-11 AD0-AD7 Bus a hp a ch/d liu 12 GND t 13 CS u vo la chn RTC (Real Time Clock)

    14 AS Cht a ch 15 R/ W u vo c/ghi

    17 DS Cht d liu 18 RESET u vo khi ng li

    19 IRQ u ra yu cu ngt

    23 SQW u ra sng vung 24 VCC Ngun cung cp 5V

    M t cc chn tn hiu ca IC DS12C887

    GND, VCC in p u vo 5V, khi in p c cung cp ng chun 5V, thit b c truy cp y v d liu c th c v ghi. Khi VCC thp hn 4.25V, qu trnh c v ghi b cm. Khi VCC xung thp hn 3V, RAM v b gi gi c chuyn sang ngun nng lng bn trong. Chc nng gi thi gian duy tr chnh xc vo khong mt pht/thng nhit 250C bt k in p u vo chn VCC.

    MOT (Mode select) chn ny la chn gia hai loi bus truyn d liu. Khi c ni ln VCC, bus nh thi Motorola c chn. Khi c ni xung GND hoc

  • - 61 -

    khng ni, bus nh thi Intel c chn. Chn ny c in tr ko xung bn trong, gi tr khong 20K.

    SQW (Square Wave output) Chn SQW c th xut tn hiu ra t mt trong mi ba loi c cung cp t mi lm trng thi c chia bn trong ca RTC. Tn s ca chn SQW c th thay i bng cch lp trnh. Tn hiu SQW khng xut hin khi VCC thp hn 4.25V.

    AD0 AD7 (Multiplexed Bidirectional Address/Data Bus) bus a hp tit kim chn, v thng tin a ch v thng tin d liu c dng chung ng tn hiu. Cng ti nhng chn ny, a ch c xut trong sut phn th nht ca chu k bus v c dng cho d liu trong phn th hai ca chu k, a hp a ch/d liu khng lm chm thi gian truy cp ca DS12C887 khi bus chuyn t a ch sang d liu xy ra trong sut thi gian truy cp RAM ni. a ch phi c gi tr trc khi xut hin sn xung ca AS/ALE, ti thi im m DS12C887 cht a ch t AD0 n AD6. D liu ghi phi c hin th v gi n nh trong sut phn sau ca xung DS hoc WR. Trong chu k c ca DS12C887 u ra 8 bit ca d liu trong cc phn sau ca xung DS hoc RD. Chu k c c thc hin xong v bus truyn tr v trng thi tng tr cao cng nh khi DS bt u chuyn xung thp trong trng hp nh thi Motorola hoc khi RD chuyn ln cao trong trng hp nh thi Intel.

    AS (Address Strobe Input) Xung dng cung cp xung cht a ch trong vic phc hp bus. Sn xung ca AS/ALE lm cho a ch b cht li bn trong ca DS12C887. Sn ln tip theo khi xut hin trn bus AS s xa a ch bt chp chn CS c c chn hay khng. Lnh truy cp c th gi ti bng c hai cch.

    DS (Data Strobe or Read Input) Chn DS/RD c hai kiu s dng ty thuc vo mc ca chn MOT. Khi chn MOT c kt ni ln Vcc, bus nh thi Motorola c la chn. Trong kiu ny DS l xung dng trong sut phn sau ca chu k bus truyn v c gi l Data Strobe. Trong sut chu k c, DS bo hiu thi gian m DS12C87 c iu khin bus i. Trong chu k c, sn sau ca DS lm DS12C887 cht d liu c ghi. Khi chn MOT c ni xung GND, bus nh thi Intel c la chn. Trong kiu ny, chn DS c gi l Read (RD). RD xc nh chu k thi gian khi DS12C887 iu khin bus c d liu. Tn hiu RD c cng nh ngha vi tn hiu cho php xut d liu trong mt b nh ring.

    R/W (Read/Write Input) Chn R/ W cng c hai cch hot ng. Khi chn MOT c kt ni ln VCC cho ch nh thi Motorola, R/ W ang ch ch c hoc l chu k hin ti l chu k c hoc ghi. Chu k c i hi chn R/ W phi mc cao khi chn DS mc cao. Chu k ghi i hi chn R/ W phi mc thp trong sut qu trnh cht tn hiu ca DS. Khi chn MOT c ni GND cho ch nh thi Intel, tn hiu R/ W l tn hiu hot ng mc thp c gi l WR. Trong ch ny, chn R/ W c nh ngha nh tn hiu cho php ghi d liu trong RAM chung.

  • - 62 -

    CS (Chip Select Input) Tn hiu chn la phi c xc nh mc thp chu k bus truyn DS12C887 c s dng. CS phi c gi trong trng thi hot ng trong sut DS v AS ca ch nh thi Motorola v trong sut RD v WR ca ch nh thi Intel. Chu k bus khi chn v tr m khng chn CS s cht a ch nhng s khng c bt k s truy cp no. Khi VCC thp hn 4.25V, chc nng bn trong ca DS12C887 ngn chn s truy cp bng cch khng cho php chn la u vo CS. Qu trnh ny nhm bo v c d liu ca ng h thi gian thc bn trong cng nh d liu RAM trong sut qu trnh mt ngun.

    IRQ (Interrupt Request Output) Chn IRQ l u ra hot ng mc thp ca

    DS12C887 m c th s dng nh u vo ngt ti b x l. u ra IRQ mc thp khi bit l nguyn nhn lm ngt v ph hp vi bit cho php ngt c thit lp. xa chn IRQ chng trnh ca b vi x l thng thng c c thanh ghi C. Chn RESET cng b xa trong lc ngt. Khi khng c trng thi ngt no c s dng, trng thi IRQ trong trng thi tng tr cao. Nhiu thit b ngt c th ni ti

    mt knh truyn IRQ . Knh truyn IRQ l mt u ra m v yu cu mt in tr ko ln bn ngoi.

    RESET (Reset Input) Chn RESET khng c hiu lc i vi ng h, lch, hoc l RAM. ch cp ngun, chn RESET c th b ko xung trong thi gian cho php n nh ngun cung cp. Thi gian m chn RESET b ko xung mc thp ph thuc vo ng dng. Tuy nhin nu chn RESET c s dng ch cp ngun, thi gian RESET mc thp c th vt qu 200ms mc thp v VCC trn 4.24V, nhng iu sau xy ra:

    - Bit cho php ngt nh k (PEIO: Periodic Interrupt Enable) c t mc 0. - Bit cho php ngt chung (AIE: Alamrm Interrupt Enable) c t mc 0. - Bit c cho php ngt kt thc cp nht (UF: Update Ended Interrut Flag) c

    xa v 0. - Bit c trng thi yu cu ngt (IRQF: Interrupt Request Status Flag) c t

    mc 0. - Bit c cho php ngt nh k (PF: Periodic Interrupt Flag) c t mc 0. - Thit b khng s dng c cho ti khi chn RESET tr li mc logic 1. - Bit c cho php ngt chung (AF: Alarm Interrupt Flag) c t mc 0.

    - Chn IRQ trong trng thi tng tr cao.

    - Bit cho php xut sng vung (SQWE: Square Wave Output Enable) c t mc 0.

    - Bit cho php ngt kt thc cp nht (UIE: Update Ended Interrupt Enable) c t mc 0.

  • - 63 -

    Trong cc ng dng thng thng chn RESET c th c ni ln VCC. Kt ni nh vy s cho php DS12C887 hot ng v khi mt ngun s khng lm nh hng n bt k thanh ghi iu khin no.

    Cu trc bn trong IC DS12C887

    Cu trc bn trong IC DS12C887 c m t trong hnh 4.11.

    Hnh 4.11: Cu trc IC DS12C887.

    Bn a ch ca DS12C887 Bn a ch ca DS12C887 c m t trong hnh 4.12. Bn a ch bao

    gm 113 byte RAM thng dng, 11 byte RAM m thnh phn bao gm ng h thi gian thc, lch, d liu bo gi v 4 byte c s dng cho vic iu khin v thng bo tnh trng. Tt c 128 byte c th c ghi hoc c trc tip tr nhng trng hp sau:

    - Thanh ghi C v D l hai thanh ghi ch c. - Bit th by ca thanh ghi A l bit ch c. - Bit cao ca byte th hai l bit ch c.

  • - 64 -

    Thi gian v lch c c c bng cch c cc byte b nh hin c. Thi gian, lch v bo gi c thit lp hoc gn gi tr bng cch ghi gi tr cc byte RAM thch hp. Ni dung ca mi byte cha thi gian, lch v bo gi u c th hin th c hai dng: nh phn (Binary) hoc BCD (Binary Coded Decimal). Trc khi ghi ln cc thanh ghi thi gian, lch, v cc thanh ghi bo gi bn trong, bit SET thanh ghi B phi c thit lp mc logic 1 ngn nga s cp nht c th xy ra trong qu trnh ghi . Thm vo na ghi ln mi thanh ghi ch thi gian, lch, v thanh ghi bo gi mt nh dng la chn (BCD hay nh phn), bit chn kiu d liu (DM) ca thanh ghi B phi c t mc logic thch hp ln tt c mi byte d liu. Bit la chn kiu hin th 24/12 l bit khng th thay i v khng khi ng li thanh ghi. Khi nh dng 12 gi c la chn, bit cao ca byte gi lun c truy cp bi v chng c m gp i. Mi mt giy, mi mt byte c nng cp v c kim tra tnh trng bo gi mt ln.

    Hnh 4.12: Bn a ch DS12C887.

    Cc thanh ghi iu khin

    DS12C887 c bn thanh ghi iu khin c s dng vo mi lc k c trong qu trnh cp nht.

    - Thanh ghi A

    MSB LSB BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0

    Hnh 4.13: V tr cc bit trong thanh ghi A.

  • - 65 -

    UIP: Update In Progress: l bit trng thi m c th theo di c. Khi bit UIP mc 1, qu trnh cp nht s sm xy ra. Khi bit UIP mc 0, qu trnh cp nht s khng xy ra t nht l 244 s. Nhng thng tin v thi gian, lch, v bo gi trong RAM c y cho vic truy cp khi bit UIP mc 0. Bit UIP l bit ch c v khng b nh hng ca chn RESET . Khi ghi bit SET thanh ghi B ln 1, th s ngn chn mi qu trnh cp nht v xa bit trng thi UIP.

    DV2, DV1, DV0: ba bit trn c s dng bt hoc tt b dao ng v ci t li qu trnh m xung. Khi c t 010 th l s kt hp duy nht bt b dao ng ln v cho php RTC gi thi gian. Khi c t 11X s cho php dao ng nhng gi qu trnh m xung mc Reset. Qu trnh cp nht tip theo s din ra sau 500 ms, sau khi nh dng 010 c ghi vo ba bit DV0, DV1, v DV2.

    RS3, RS2, RS1, RS0: bn bit loi la chn chn la mt trong mi ba loi ca b chia mi lm trng thi hoc khng cho php xut ra tn hiu chia ra ngoi. Loi c la chn c th pht ra sng vung (chn SQW) hoc ngt theo chu k. Ngi s dng c th s dng mt trong nhng cch sau:

    Cho php ngt vi bit PIE Cho php xut u ra ti chn SQW vi bit SQWE Cho php c hai hot ng cng mt lc v cng mt loi. Khng kch hot c hai.

    - Thanh ghi B

    MSB LSB BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 SET PIE AIE UIE SQWE DM 24/12 DSE

    Hnh 4.14: V tr cc bit trong thanh ghi B.

    Set: Khi bit SET mc 0, thng thng qu trnh cp nht bng cch tng bin m mt ln mt giy. Khi bit SET c ghi vo mc 1, mi qu trnh cp nht u b cm, v chng trnh c th khi ng cc byte thi gian v lch m khng c qu trnh cp nht no xy ra trong qu trnh khi ng. Chu k c c th thc thi cng mt kiu. SET l bit c hoc ghi v khng chu nh hng trng thi RESET hoc cc chc nng bn trong ca DS12C887.

    PIE (Periodic Interrupt Enable): Bit cho php ngt theo chu k l bit c hoc ghi, n cho php bit c ngt theo chu k (PF: Periodic Interrupt Flag) trong thanh ghi C iu khin chn IRQ xung mc thp ty thuc vo t l phn b ca bit RS3

    RS0 thanh ghi A. Khi bit PIE = 0 th u ra IRQ b cm ngt, nhng c PF vn c thit lp theo chu k ngt. PIE khng b tc ng bi bt k chc nng ni no ca DS12C887 nhng c xa v 0 bi chn RESET .

  • - 66 -

    AIE (Alarm Interrupt Enable): Bit cho php ngt bo gi, l bit c/ghi m khi c thit lp ln 1 s cho php bit c bo gi (Alarm Flag (AF)) thanh ghi C, cho php ngt IRQ . Tn hiu ngt bo gi din ra tt c cc giy khi c ba byte bo gi cha m bo gi dont care c th hin nh phn nh sau 11XXXXXX. Cc chc nng bn trong ca DS12C887 khng b nh hng bi bit AIE.

    UIE (Update Ended Interrupt Enable): Bit cho php kt thc qu trnh ngt cp nht, l bit c/ghi m cho php bit c kt thc qu trnh cp nht thanh ghi C cho php ngt IRQ . Chn RESET mc 0 hoc chn SET mc 1 s xa bit UIE.

    SQWE (Square Wave Enable): Khi bit cho php xut sng vung c thit lp ln mc 1, mt tn hiu sng vung c tn s c t bi v tr c la chn ca bit RS3 n RS0 s iu khin sng ra ti chn SQW. Khi bit SQWE c thit lp mc thp, chn SQW s c gi mc thp. SQWE l bit c hoc ghi v c xa khi RESET. SQWE c thit lp ln 1 khi c cp Vcc.

    DM (Data Mode): Bit kiu d liu quy nh khi no th thng tin lch v thi gian nh dng nh phn hoc nh dng BCD. Bit DM c thit lp bi chng trnh c nh dng thch hp. Bit ny khng b thay i bi cc chc nng bn trong hoc chn RESET . Mc 1 ca DM s hin th d liu nh phn cn mc 0 hin th d liu dng BCD.

    24/12: Bit iu khin 24/12 xc nh kiu byte gi. Khi mc 1 th ch ch hin th 24 gi, cn mc 0 th ch ch hin th 12 gi. Bit ny l bit c ghi v khng b nh hng bi cc chc nng bn trong cng nh chn RESET .

    DSE (Daylight Saving Enable): Bit cho php nh cng khai, l bit c hoc ghi, n cho php hai cp nht c bit khi DSE c thit lp ln 1. Mt l vo ch nht u tin ca thng t, thi gian s tng t 1:59:5