Professional Documents
Culture Documents
Xay Dung Cac He Thong Nhung V4-8.2011-BCVT
Xay Dung Cac He Thong Nhung V4-8.2011-BCVT
Xay Dung Cac He Thong Nhung V4-8.2011-BCVT
Li ni u
Dy v hc h thng nhng l cp ti mt ch c phm vi rng bao gm thit k, mi trng ng dng, loi hnh cng ngh, qui tc cn thit tip cn mt cch c h thng. Lnh vc thit k v ng dng cc h thng nhng bao gm : cc h thng vi iu khin (microcontroller) nh v n gin, cc h thng iu khin, h thng nhng phn tn, h thng trn chip, mng my tnh (c dy v khng dy), cc h thng PC nhng, cc h thng rng buc thi gian, robotic, cc thit b ngoi ca my tnh, x l tn hiu, h thng lnh v iu khin Nn tng cng ngh hin i l k thut vi in t vi mt tch hp ln v rt ln. Khi mun thit k h thng nhng, c nhiu yu t cn tun th ging nh khi thit k my tnh, nhng li b rng buc bi c th ng dng. Thm vo l s an cho ca cc k nng rt cn thit cho thit k h thng nhng, c lp vn hnh, thit k vi tiu ch tiu hao nng lng thp, cng ngh phn cng, cng ngh phn mm (h thng v ng dng), h thi gian thc, tng tc ngi my v i khi c vn an ninh h thng. Nh vy o to v hc h thng nhng cn mt khi lng kin thc tp hp t nht t cc b mn khc nh khoa hc my tnh (computer science), khoa hc truyn thng (communication), k thut thit k in t: cc mch tng t v s, s dng tt cc phn mm thit k bo mch (nh Protel, Proteus), kin thc v ch to bn dn. V l b mn cng ngh c tnh ng dng cao vi bi ton c th, nn li cn c chuyn mn ca ngnh ngh, m h thng nhng s ng dng. Tm li y l mt ch hp nht v vic thc hin ch ny thc khng d dng. Vi lng thi gian nht nh, mn hc XY DNG CC H THNG NHNG s mang li cho ngi hc nhng vn c bn nht v h thng nhng Chng 1. Chng 2 cp ti kin trc phn cng h thng, cch thit k mt s khi chc nng c s c tnh thc t cao. Chng 3 ch yu gii thiu v phn mm ci t trn h thng nhng, bao gm cc trnh iu khin thit b, cc phn mm trung gian, v phn mm h thng c ci t . c bit nhc li mt s yu cu v khi nim ca cc h thng thi gian thc v h iu hnh thi gian thc. Chng 4 gii thiu cc tiu ch v phng php thit k h thng nhng. Cui chng l mt s cc bi tp ln kiu D n thit k, c th la chn cho thc hnh vi cc kiu kin trc h thng nhng khc nhau. Nh nu, y l ch rng, mang tnh k thut v kin thc li c tng hp t cc mn khc, nn ti liu ny chc khng th tht s y . Cc phn kin thc no khng c cp su y, ngi hc cn tham kho thm cc ti liu khc, hay t cc mn hc lin quan.
PH LC p n cc bi tp cui chng.
RAM FLASH
Random Access Memory non-volatile computer storage (memory cards, USB flash drives, solid-state drives SSD)
Operating System Real Time Operating System Embedded System Embedded System Operating System Device Driver Programmable Logic Controller
H iu hnh H iu hnh thi gian thc H thng nhng H thng nhng H iu Hnh Trnh iu khin thit b b iu khin logic kh trnh
PIC
PSoC
H thng kh trinh trn vi mch ASIC l mt vi mch c thit k dnh cho mt ng dng c th. 6
ASIC
Microcontroller Unit Complex Instruction Set Reduced Instruction Set Serial Peripheral Interface
I2C
Inter-Integrated Circuit
Bus dng ni gia cc vi mch in t B thu/pht ni tip di b a nng Chng trnh con x l ngt hay Dch v x l ngt iu khin truy nhp mi trng (mng my tnh). V d: MAC address: a ch vt l ca thit b mng.
USART
ISR
MAC
MIPS IDE
Million instructions per second Integrated Development Environment, hoc: Integrated Design Environment hoc: Integrated Debugging Environment
Triu lnh my trong mt giy L tp cc phn mm h tr cc cng c, tin ch pht trin phn mm my tnh, bao gm: Son tho m ngun, trnh thng dch, trnh bin dch, trnh g ri
ICE
In-Circuit Emulator
2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32
Chu k c ng b BUS khng ng b, hot ng ng b bi i thoi gia cc tn hiu iu khin. BUS chui quay vng (daisy chaining) Trng ti BUS Trng ti Bus khng tp trung trong multibus Lin kt qua bus SPI Lin kt qua bus I2C Cc mch logic thng dng trong thit k k thut s Cc kiu ni u ra, u ra tr khng cao Vi mch 3 trng thi: hai trng thi logic v trng thi th 3 HZ: u ra b tch khi BUS. Mch cht (hay nh, gi li) kiu D, lm vic theo mc hay sn ln ca xung ng h CK. (Xem thm chi tit mach SN 7474). Cht 4 bit vi D-Flip/flop Cng khuych i (driver) cht hai chiu Cu hnh ti thiu bo mch CPU 8085, RAM/ROM/Ports Mch in cho hnh 2.21 CPU Intel x86 24 Bo mch vi ti thiu vi CPU 8086:BUS controller, Ngt controller, RAM CPU 8086 timing: lnh c M hnh kin trc Havard Cc khi chc nng ca CPU 8051/8052 CPU 8051:EEPROM, RAM bn trong v kh nng m rng b nh ti 64 KB Bo mch vi CPU 8051/8052 Cc khi chc nng ca nhn 8Xc251 CPU 8051 Phn hoch a ch trong CPU 8051
47 50 52 52 53 56 56 57 58 59 59 60 60 62 63 64 67 67
69 70 72 73 75 76 9
2.33 2.34 2.35 2.36 2.37 2.38 2.39 2.40 2.41 2.42 2.43 2.44 2.45 2.46 2.47 2.48 2.49 2.50 2.51 2.52 2.53 2.54 2.55 2.56 2.57 2.58 2.59 2.60
Bo mch vi CPU Intel 8051 v RAM, ROM m rng bn ngoi M hnh mt vi iu khin kiu PsoC hay PIC Vi iu khin PSoC CY8C29466 Vi iu khin PIC 16F882/883/886/887 M hnh u vo/ra ca phn t nh Phn loi b nh Cc loi b nh ROM Cc loi RAM 1 chip RAM 32K x 8 (32K byte) Phn t DRAM M hnh hot ng ca RAM cache S v ngoi mt vi mch (chip) nh (pin-out) S khi chc nng bn trong chip 16K x 1 bit S thit k bng nh SRAM 16K x 8, vi Chip 16Kx1 S khi chc nng ca 1 chip DRAM thng mi 4164Kb Quan h cc tn hiu iu khin DRAM 4164x1 thng mi CPU 8080/8085 Module DRAM 64 KB ton phn Chip ROM 2764 thng mi S thit k ROM 32KB t 4 Chip 2764 V d v cch phn b b nh trong my tnh PC M hnh k thut ghp ni Cc kiu ghp ni c d liu vo: D liu_t thit b vo ACC sau vo RAM a d liu t RAM vo ACC sau ACC ra thit b Trao i d liu c vo c iu kin Lu iu khin c d liu v c iu kin Lu iu khin c d liu kiu quay vng Cc kiu ngt
77 80 82 84 87 88 89 89 90 91 93 94 96 96 97 98 99 100 102 103 106 106 107 108 109 110 111 112 10
2.61 2.62 2.63 2.64 2.65 2.66 2.67 2.68 2.69 2.70 2.71 2.72 2.73 2.74 2.75 2.76
Thit kt vi ngt cng che c INTR ca CPU Vector ngt v chuyn x l ti ISR T chc ngt vi iu khin ngt M rng s ngt vi 2 vi mch 8259 Nguyn l DMA DMA v hot ng ca CPU l c lp Lu DMA ghi d liu t RAM ra thit b ngoi Cng song song trn PC v gii ngha cc chn cng Lu cc tn hiu cng song song Cng song song hai chiu u ni RS 232 cc loi DB9, DB 25 v DEC MMJ PC lm h pht trin phn mm cho HTN, ph hp tn hiu gia RS-232 ca PC v cng SI-P ca HTN ang pht trin Cng SI-P n gin, dng ngun t RS 232 ca PC ADC v ghp vo HTN HTN v DAC Bi tp thit k ghp ni ADC, cng LPT vo my tnh PC Chng 3 M hnh tng qut cc phn mm trn my tnh M hnh tng qut cc cc kiu sp xp phn mm trn my tnh Cc kiu tc v Biu thc hin mt tc v Phn loi cc gii thut lp lch thc hin tc v Quay vng kt hp u tin v chen ngang Gii thut vi gim st nh thi (ch canh chng) S kin v p ng RTOS nhn thi gian thc v RTOS a nng Cc chc nng nhn RTOS
113 114 115 116 118 119 120 122 122 123 124 126 126 128 128 131
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10
133 134 141 143 144 146 148 151 155 156 11
Cc h iu hnh RTOS H thng nhng thi gian thc V tr cua PMTD HTN M hnh cc lp mng theo TCP/IP, OSI v nh x vo HTN Cc ng dng WEB trong HTN, t lp phn mm ng dng Chng 4 Kch bn m phng hiu nng khi thit k HTN Cc cu trc kiu 4+1 Cc pha thit k HTN Gii thut thit k my in laser: phn hoch cng/mm Phn hoch thit k phn cng v phn mm Xy dng m hnh hnh thc: Bc sng lc s dng cch tng hp phn cng v phn mm chuyn ha xc nh chc nng vo m hnh phn cng ca thit k. Bo mch HTN H pht trin HTN Qui trnh pht trin phn mm cho HTN S n gin h thng v nh x b nh vo HTN ch nh x thc thi chuyn vo b nh ca h thng
12
1.1 KHI NIM V H THNG NHNG (HTN) Nhn li nhng nm 70 th k trc, x l thng tin thng phi s dng cc my tnh ln hay my tnh mini (v d dng my mini PDP 11 ca hng DEC mt h thng thng tr trong truyn thng). Cho ti nhng nm 80, khi vi x l v my tnh c nhn (PC bn v xch tay) ra i, my tnh tr thnh cng c c dng cho x l thng tin bi kh nng tnh ton nhanh, gn nh v di ng linh hot. Giai on tip theo l kh nng ch to vi mch kch thc vi trm micro mt v nano mt ca nhng nm chn mi, thc y xu hng nh ha (miniaturization) v a dng cc dng vi x l, pht trin mnh m. Cc b vi x l a nng v s xut hin cc vi x l chuyn bit (ASIC- application-specific integrated circuit) c ch to vi s lng ln cha tng thy. Vic s dng cc b vi x l chuyn bit to ra cc thit b chuyn x l mt hay mt vi bi ton k thut, to ra mt nghnh cng ngh mi, gi l cng ngh nhng. Sn phm ca cng ngh nhng ny l cc h thng nhng. Vy h thng nhng (HTN- Embedded system) l g ? C nhiu nh ngha v HTN, nhng nu ta ly tiu ch m t HTN lm ci g v s dng n nh th no, th c th ni v HTN nh sau: H thng nhng l mt thut ng ch mt h thng c kh nng hot ng t tr c nhng vo trong mt mi trng hay mt h thng khc qui m phc tp hn. l cc h thng tch hp c phn cng (l mt h thng my tnh c xy dng trn c s s dng vi x l microprocessor-based system) v phn phm nhng trong phn cng , thc hin cc bi ton chuyn bit. Hay theo nh ngha ca t chc IEEE th h thng nhng l mt h tnh ton (my tnh s) nm trong (hay c nhng vo) sn phm khc ln hn v rng thng thng n i vi ngi s dng. Ni rng ra, v n gin hn, khi mt h tnh ton (c th l PC, IPC, PLC, vi x l, vi h thng (microcontroller), DSP v.v...) c nhng vo trong mt sn phm hay mt h thng no v thc hin mt s chc nng c th ca h thng , th ta gi h tnh ton l mt h thng nhng. Tuy nhin tht khng d g nh ngha cho tht ng v HTN, nh ngha trn rt t ni ti cng ngh v cng rt n gin. Hin nay cha c nh ngha no tht tha ng v HTN, v d nu ly chc nng x l thng tin, th HTN l mt phn x l thng tin nhng trong cc h thng ln hn v phc tp hn, hay cng c th l mt h thng c lp vn hnh t ng. V d gn gi ta c: my tnh c nhn, hay my ch, l mt h thng phc tp c xy dng t cc thnh phn hot ng c lp nhng c ng b vi nhau. V iu khin ha, 13
1.2 C IM CA HTN hiu r hn v HTN, ta nu ra mt s c im nhn bit v mt h thng nhng: L mt kiu my tnh ng dng c bit, rt gii hn v phn cng v phn mm khi so snh vi cc my tnh a nng, nh my tnh c nhn, my ch, siu my tnh. iu ni ln rng hiu nng x l, nng lng tiu th, b nh, cc phn cng khc u hn ch. Cn phn mm hn ch, hay phn mm l c nh, c ngha h iu hnh c thit k ph hp vi cc x l nh. Hin nay h iu hnh thng s dng l h iu hnh a nhim (nh DOS 6.X h tr a nhim trn cc loi HTN dng PC 104), hay h iu hnh thi gian thc. Nu khng c h iu hnh, th cng l mt kiu chng trnh iu khin chung (monitor) no . Phn mm vit ra khng c cc phn m c mc tru tng hay c cng mc thp. M thc thi (gm h iu hnh v cc ng dng) c np vo b nh ROM. Nhn chung m thc thi c kch thc nh v ti u v ROM c dung lng nh. Tuy nhin vi s pht trin nhanh chng ca cng ngh, cch nu trn c th thay i, bi s c cc HTN rt tinh xo v mc phc tp rt cao, b nh c th n vi chc mega bytes. HTN c thit k thc hin mt hay vi ng dng xc nh, chuyn bit (Application specific), v d cc thit b nhng cng nghip nh robot thuc loi ny. Tuy nhin c nhng thit b nhng khc nh cc PDA, in thoi di ng, l cc HTN c kh nng thc hin nhiu chc nng hn. Hay cc Tivi k thut s li c th thc hin cc ng dng tng tc vi mn hnh cm ng, v.v Tuy nhin xu hng hin nay l to ra cc HTN kh trnh c giao din kt ni vi mt h pht trin khc nng cp phn mm. HTN tng tc vi mi trng ng dng qua nhiu phng thc: Qua cc b cm bin (sensor), ghp ni vo HTN bng dy dn, hay khng dy; Pht trin cc giao thc truyn tin ring bit, hay theo cc giao thc chun trao i thng tin vi cc thit b khc, c th c h tr ni mng LAN; HTN thuc loi thit b thng minh t phn ng (reactive), b ng nhng tng tc lin tc vi mi trng v c p ng kp thi vi nhng tin trin (s kin) m mi trng xc lp. Tng tc ngi-my rt n gin nu c v HTN chy c lp v thng tin vi h thng ln hn l chnh. Ngy nay xu hng WEB ha giao din tng tc l ph bin, v d cc thit b kt ni mng Internet nh ADSL dng SOHO (Small 14
C hiu nng cao. Cc s o sau y se phn nh c tnh ny: S dng nng lng thp v hiu qu. C th thy im ny cc thit b di ng. M phn mm c kch thc rt ti u, v m phi ci ton b trn HTN. Thi gian x l tc v (run-time) phi nhanh, s dng t ti nguyn phn cng (v lin quan ti tiu hao nng lng). Trng lng nh. y l mt trong nhng lc chn khi mua mt HNT. Gi thnh rt cnh tranh. Mun vy thit k v s dng phn cng, phn mm cn quan tm ti hiu qu.
15
Thit b nhng nh la in t, iu khin ng c, h thng phanh, h s Tivi analog, Tivi s, CD, DVD, VCR, PDA, in thoi di ng, CAMCODER, GPS, t iu ha, t lnh, l vi sng
Cng nghip Y t Mng thng tin (WAN, LAN, thoi) Vn phng Cc lnh vc khc: an ninh, quc phng, hng khng, hng hi
Robot, dy chuyn sn xut t ng, SCADA agents My thm tch, my pha-lc, my th, my tr tim, my qut ct lt, rt nhiu thit b y t hin i B nh tuyn, gateway, chuyn mch mng, cc thit b truyn thng-mng, trm chuyn tip, BTS di ng My Fax, my potocopy, my in (kim, laser, phun), my qut, mn hnh LCD c hp nht trong rt nhiu kh ti hin i ca tt c cc binh chng .
1.3 CC YU CU VI HTN HTN thc t l mt loi my tnh dng x l thng tin dng s. HTN c th l mt h thng c lp nh mt thit b tch cc trong m hnh iu khin, tc HTN l mt regulator s, thc hin cc chc nng ca PID regulator, khi cc chc nng ny c th hin bi thut ton v chuyn ha dng m chng trnh trong HTN. Trong khi HTN li l mt phn ca mt qui trnh cng ngh trong cng nghip. Nh trn lit k cc c im chung m cc h thng nhng thng c, t nhin ta c th rt ra c nhng yu cu cn c trn mt h thng nhng. 1. Kh nng p ng vi s kin bn ngoi (t cc tc nhn b kim sot) phi nhanh nhy, kp thi, tc l kh nng theo thi gian thc: Cc tc v c p ng rng buc bi thi hn cht (deadline); 16
1.4 M HNH TNG TH HTN Nh nu trong nh ngha ca HTN, th HTN c kin trc ca mt my tnh s, do vy s khng c g khc bit khi m t m hnh kin trc ca HTN ni chung. C khc chng l chi tit ca tng HTN c th. M hnh chc nng ca my tnh Di y ta nu ra m hnh tng qut ca my tnh theo nguyn l Von Neumman. HTN cng chia s kin trc ny trong mt s trng hp. M hnh cho thy cc khi chc nng c bn cn c. Trong thc t c nhng CPU nhng c kin trc c th khc nhau, nhng khi m t cc khi chc nng, th hon ton thng nht.
17
B nh Ghi/c (RAM)
B nh ch c (ROM)
H thng ng
dy a ch (ADDRES BUS
H thng ng
Ghp ni vo (I)
n v x l trung tm (Central Processing Unit CPU) l khi chc nng c bn nht to nn mt h vi x l, HNT hay my tnh c nhn (Personal Computer PC). CPU thc hin chc nng x l d liu theo nguyn tc thc hin chng trnh my tnh ci trong b nh ROM hay np vo b nh RAM. Vic thc hin nh sau:CPU c m lnh (OPCODE) t b nh (ROM hay RAM) . Gii m lnh, to cc tn hiu (xung) iu khin tng ng vi m lnh iu khin hot ng ca cc khi chc nng khc trong CPU v bn ngoi CPU. Thc hin tng bc cc thao tc x l d liu nh ngha trong m lnh. b) B nh chnh (ROM/RAM) c t chc t cc t nh n, kp. Theo chun ca IBM/PC t nh n (c s) c di 1 byte (8 bits). B nh ny gm cc chip nh ch c ROM (Read Only Memory) v cc chip nh truy xut ngu nhin RAM (Random Access Memory) c tc truy cp nhanh. B nh c s dng cha cc chng trnh v cc d liu cn x l. Cc chng trnh ng dng v d liu c th c cha ROM hoc RAM, cc kt qu trung gian hay kt qu cui cng ca cc thao tc x l c th c cha trong cc thanh ghi a dng hoc trong RAM. Cc mch ghp ni vo/ra (I/O) l cc mch in t cho php CPU trao i d liu vi cc thit b ngoi vi nh bn phm, mn hnh, my inlm giao din vi ngi dng hoc cc b chuyn i s-tng t DAC (Digital/Analog Converter), chuyn i tng t-s 18
Hnh 1.2-Ngun nui cho h my tnh Phn loi trn c s vi mch Tuy nhin khi cp ti cu trc ca HTN c xy dng trn cng ngheejnvi mch, c th c hai loi khc bit: H thng nhng da trn b vi x l trn bo mch Microprocessor-based Embedded System C CPU c lp, c th l CPU a nng ph bin (Intel 8080/8085, Motorola 6800), C RAM, ROM, nh thi , I/O c lp, Kh nng m rng RAM, ROM, Microcontroller-based Embedded System CPU dng li chuyn bit, RAM, ROM, nh thi, I/O trong mt vi mch n, RAM, ROM c dung lng c nh, I/O cho mc ch s dng, n mc ch, ng dng xc nh, 19 Vi vi iu khin trn bo mch
Microcontroller differs from a microprocessor in many ways. First and the most important is its functionality. In order for a microprocessor to be used, other components such as memory, or components for receiving and sending data must be added to it. In short that means that microprocessor is the very heart of the computer. On the other hand, microcontroller is designed to be all of that in one. No other external components are needed for its application because all necessary peripherals are already built into it. Thus, we save the time and space needed to construct devices.
Hnh 1.3
Phn nhiu cc ti liu khi cp ti thit k HTN, u dnh mt s ch v kin trc v cch thit k ch to CPU. y l mt vn chuyn v rt su, ti liu ny s khng dn xut. Ti liu ch gii hn gii thiu cc kiu CPU c th s dng thit k HTN. Cc kiu CPU ny rt ph bin trn th trng, rt a dng vi nng lc x l khc nhau v ph hp cho mi loi ng dng nhng. Di y l mt trong cc quan im nhn nhn CPU: Tp lnh: c th l CISC hay RISC, trong RISC l ph bin. Hot ng theo kiu Von Neumman, v d in hnh nh hnh v trn, trong H thng BUS a ch v BUS d liu, BUS iu khin chung cho ton b h thng, b nh chia s chung cho ton h thng vi vng m lnh (code) v d liu (data) trn cng khng gian a ch b nh v BUS d liu khng th truyn ng thi m lnh v d liu cng mt thi im. Qu trnh thc hin mt lnh my nh sau: 21
22
Instruction and data memories occupy different address spaces. For pure Harvard machines, there is an address 'zero' in instruction space that refers to an instruction storage location and a separate address 'zero' in data space that refers to a distinct data storage location. By contrast, von Neumann and modified Harvard machines store both instructions and data in a single address space, so address 'zero' refers to only one thing and whether the binary pattern in that location is interpreted as an instruction or data is defined by how the program is written. This characteristic unambiguously identifies a pure Harvard machine. o By a strict interpretation of this distinction, for example, the Microchip PIC17 and PIC18 architectures, as well as the Atmel 8-bit AVR architecture, would be regarded as pure Harvard Architecture machines because they do, in fact, maintain a distinct separation between code and data spaces, and address 'zero' of each does, in fact, refer to a physically different piece of memory. However, the distinction is made ambiguous by the colloquial use of the term "modified Harvard Architecture" to refer to such machines' inclusion of special instructions to read and/or write the contents of code space as though it were data.[1] Instruction and data memories have separate hardware pathways to the central processing unit (CPU). This is the point of pure or modified Harvard machines, and why they co-exist with the more flexible and general von Neumann architecture: separate memory pathways to the CPU allow instructions to be fetched and data to be accessed at the same time, improving throughput. The pure Harvard machines have separate pathways with separate address spaces. Modified Harvard machines have such separate access paths 23
Instruction and data memories may be accessed in different ways. The original Harvard machine, the Mark I, stored instructions on a punched paper tape and data in electro-mechanical counters. This, however, was entirely due to the limitations of technology available at the time. Today a Harvard machine such as the PIC microcontroller might use 12-bit wide flash memory for instructions, and 8-bit wide SRAM for data. In contrast, a von Neumann microcontroller such as an ARM7TDMI, or a modified Harvard ARM9 core, necessarily provides uniform access to flash and SRAM (as 8 bit bytes, in those cases).
24
Hnh1.6-Havard CPU ARM 920T ca Amtel M hnh tng qut ca mt HTN: Cc khi chc nng: Mi trng hot ng: ni s dng HTN, Chp hnh: l cc thit b cng ngh, Cm bin: thit b c bit ghi nhn thng tin cng ngh (v tr, vng quay, tc , nhit , p sut, kch thc (cao, di, su) ) , Ghp ni: l cc thit b phi hp, chuyn ha cc thng tin t cm bin thnh tn hiu in s ha, Cc b s ha (A/D) v tng t ha (D/A), Ghp ni vi cc h thng khc: lin kt cc HTN khc, mng d liu, Trung tm iu khin SCADA, Ghp ni BUS h thng CPU, RAM, ROM (FLASH),
25
Hnh 1.7- M hnh tng qut HTNM hnh vi cc khi chc nng
26
Hnh 1.7- M hnh tng qut HTN-Vi cc khi ngoi vi v phn mm Kin trc tru tng: lp xp chng Khi ni v kin trc mt h thng, thng ta cp tnh tng qut v nhng chc nng c bn. Nh vy mc tng qut, cc lp phn cng v phn mm c cp nh cc thnh phn (element) hp thnh. Cc thnh phn kin trc c th hp nht bn trong thit b nhng hoc tn ti bn ngoi v tng tc vi cc thnh phn bn trong theo mt cch no . cch nhn kin trc, th kin trc c biu din bi cc cu trc. Mi cu trc bao gm mt tp hp cc thnh phn c trng, cc thuc tnh v nhng c t v mi quan h bn trong cc thnh phn . Kin trc lp xp chng c c tnh l mi lp ch s dng chc nng(hay dch v) ca tng di n, ng thi ch cho php tng trn s dng cc chc nng (dch v) ca mnh. Kin trc ny c li th v an ninh, bn vng, n gin v thit k, d nng cp (cc dch v), thc hin mi lp v kh nng nng cp nng ngay c khi h thng ang hot ng. V d nguyn l 27
Hnh 1.8- Kin trc tru tng HTN - Lp phn cng: Nh Cc khi chc nng. - Lp phn mm h thng: H iu hnh hay Monitor - Lp ng dng: L mt s chng trnh ng dng xc nh m HTN thi hnh.
1.5 PHN LOI HTN Phn loi HTN c th theo nhiu tiu ch khc nhau v c th khng hon ton ging nhau (ging nh khi nu nh ngha v HTN). Tuy nhin c th nu ra y mt s tiu ch phn loi HTN. HTN hot ng u: Hot ng c lp: nhn u vo t cc tc nhn b iu khin, x l v cho u ra. Thi gian c u ra (p ng) phi trong mt khung thi gian nht nh theo khi thit k. Hot ng c lin kt vi nhau gia cc HTN v cc trung tm kim sot khc. Loi ny gi l HTN mng. V d cc HTN cc b ti cc thit b chp hnh u cui ca mt qui trnh cng ngh phc tp lin kt qua mng cc b ca nh my hay ca mt c my phc tp. H thng mng in thoi di ng l mt v d kiu HTN mng: my ngi dng <> cc trm BTS <> tng i <> tng i <> BTS <> my ngi dng. Tn chung ca HNT li ny l HTN di ng. Lnh vc ng dng: 28
V d : HTN n gin, ch c mt vi phm bm a thng tin vo, mt vi n LED hin u ra (trng thi no ). V d: HTN my iu ha nhit , l nhit v.v. HTN qui m phc tp: Phn cng phc tp: Thit k vi CPU 8,16 hay32 bits, hay s dng vi iu khin; H thng c cu trc vi BUS m rng ghp ni vi cc thit b ngoi vi; Phn mm nhng tinh vi, c h iu hnh thc hin cc nhim v, thao tc ng thi. C th l loi RTOS. Cng c lp trnh: C/C++/Visual C++/Java, RTOS, m ngun, cng c ki thut: Simulator, Debugger. Mi trng pht trin hp nht (Integrated Development Envirinment-IDE. Cng c soft xy dng phn cng phc hp. V d: cc HTN trn cc my gia cng (kim loi, khun nha v.v). HTN tinh vi (Sophisticated Embedded Systems) Phn cng v phn mm rt c bit; Nhiu CPU v c th m rng, hay cc CPU c th cu hnh c (configurable CPUs), hay mng logic lp trnh c (programable logic arrayPLA); Pht trin cho cc lp ng dng mi nht khi cc ng dng loi ny cn phi c qu trnh thit k ng thi gia phn cng v phn mm, hp nht cc linh 29
30
Hnh 1.10- B MP3 vi CPU BlackFin ca ANALOG DEVICES 2. Nh im 1. nu trn, v phn cng, cc HTN c thit k t rt nhiu loi CPU nhng v cc CPU nhng bn thn chng li c kin trc khc nhau. Hin trn th trng c th lit k cc kiu CPU nhng nh: CPU vn nng rt gn ph hp cho ng dng nhng, cc vi iu khin (microcontroller, PIC), cc kin trc kiu h thng trn mt vi mch (PSoC-Programmable System on Chip) 3. V phn mm c s c th t n gin cho ti tinh xo, h iu hnh thi gian thc (RTOS-Real Time Operating System). 4. V d mt s HTN 31
32
TMZ104 PC/104 Computer with Transmeta Crusoe TM5500 CPU TMZ104 Photo Features: Low power fanless x86 compatible Embedded BIOS Linux OS Watchdog timers Dual EIDE & floppy support USB, parallel port, PS2 keyboard & Mouse Dual RS-232 serial
Hnh 1.11- Mt s HTN thng mi Cc loi vi iu khin dng bo mch Cc loi vi x l ri thit k THN theo yu cu ng dng:
CPU : Intel 80X51, PIC 12F 675, Amtel 8051, PSoC (Programmable System on Chip) : CY8C29466 c im chung ca cc loi ny l c kin trc y ch trong mt vi mch c mc tch hp c ln v rt ln (VLSI: Very large Scale Integration). Bng di y lit k s loi CPU cho HTN t cc hng khc nhau (cha y ):
33
Tham kho mt s nh ngha HTN t cc ngun ti liu: HTN l mt h thng c phn cng c xy dng trn nn tng phn cng my tnh chuyn bit vi phn mm c nhng trong phn cng , nh mt trong cc thnh phn quan trng nht ca HTN. HTN do c th l mt h c lp hay l mt phn ca mt h thng ln hn. Mt s nh ngha v HTN: Wayne Wolf: what is an embedded computing system ? Loosly defined, it is any device that includes a programmable computer but is not itself intended to be general-purpose computer [Computers as Components Principal of Embedded Computer System Design]. Told D. Morton: Embedded Systems are electronic systems that contain a microprocessor or microcontroller, but we do not think od them as computers the computer is hidden or embedded in the system [Embedded Microcontrollers] Tim Wilmshurst: Embedded system is a system whose primcipal function is not computational, but which is controlled by a computer embedded within it. The computer is liklly to be a microprocessor or micro controller. The word embedded implies that it lies inside the overal system, hidden from view, forming an integral part of greater whole [ An Introduction to the Design of Small Scale Embedded System with PIC, 80c51 and 68HC05/08 Microcontroller] 1.7 CU HI CUI CHNG 1) 2) 3) 4) 5) 6) nh ngha tng i v HTN. Nhng thch thc no phi i mt khi thit k mt HTN ? Nhng cch nu m hnh kin trc ca mt HTN ? Th no l HTN kiu vi x l HTN kiu vi iu khin ? Nu cc khi chc nng trong hnh 1.7 m t v m hnh mt HTN. C bao nhiu loi kin trc CPU c s dng khi xy dng HTN ? Mi loi khc nhau im no ch yu ? 7) Nu cc thnh phn phn cng thng c trong mt HTN ? 8) Cc thnh phn nh bin i tng t-s (ADC), s-tng t (DAC), nh thi (timer), cng (port) nht thit cn c trn mt HTN ? Ti sao ? 9) C cc loi phn mm no trn mt HTN ? 34
8085 l 8-bit microprocessor, trong d liu x l l 8 bits, khng gian a ch c xc nh bi 16 bits, cho dung lng a ch l 65.535 (gi l 64K) nh. Cc thnh phn chc nng bao gm: Tp cc thanh ghi (Register). n v thc thi cc php tnh s hc v lun l (Arithmetic logic unit- ALU). H thng cc dy ni gia cc vi mch chc nng( BUS). Khi nh thi v iu khin (Timing & Control unit).
Hnh 2.2-Cc khi chc nng ca CPU 8080/8085 1) Tp cc thanh ghi (Registers): Cc thanhg ghi s dng cha d liu v a ch. Co hai loi thanh ghi: Thanh ghi a nng c dng nh chc nng nh d liu tm thi hay ch tc thi qui chiu ti b nh (ROM/RAM). Cc thanh ghi 8 bits l B, C, D, E, H v L. Khi ghp li s thnh thanh ghi 16 bits vi tn kp: BC, DE or HL. Thanh ghi c bit l cc thanh ghi gn cho chc nng c bit (hay chuyn dng): 37
40
RD (Read). Chn ra 3 trng thi. Nm trong nhm tn hiu iu khin. Tn hiu tch cc khi CPU tin hnh c d liu t b nh hoc t thit b ngoi vi. Trong ch HALT hoc DMA, chn ra ny trng thi trng thi tr khng cao. WR (Write). Chn ra 3 trng thi. Nm trong nhm tn hiu iu khin. Tn hiu tch cc khi CPU tin hnh ghi d liu vo b nh hoc a d liu ra thit b ngoi vi. Trong cc ch HALT hoc DMA, chn ra ny trng thi trng thi tr khng cao. IO/M. Trng thi logic ca u ra ny cho bit CPU ang lm vic vi thit b ngoi vi hay vi b nh. Nu l logic 1, CPU ang truy cp thit b vo/ra, cn nu l 0, CPU ang truy cp b nh. Kt hp vi hai u ra RD v WR to ra cc tn hiu I/OR, I/OW, MEMR, v MEMW trong trng hp s dng a ch tch bit i vi thit b vo/ra. Nm trong nhm tn hiu iu khin, IO/M cng l u ra 3 trng thi. Interrupts. P8085 c ngt a mc. C 5 chn ngt tt c: (INTR, RST5.5, RST6.5, RST7.5 v TRAP). Ngoi chn ngt khng che c l TRAP, cc chn khc u c th che hoc khng che nh lp trnh phn mm. INTR: Chn nhn yu cu ngt t bn ngoi, c p ng theo nguyn tc quay vng (polling) hoc vector thng qua lnh RST Cc yu cu ngt RST: C 3 u vo yu cu ngt vi cc mc u tin khc nhau l RST7.5, RST6.5 v RST5.5. Khi yu cu ngt xut hin ti cc chn ny, CPU t ng chuyn n cc vector ngt tng ng. C th nh sau: RST5.5 l mc u tin thp nht, phn ng theo mc in p trn chn yu cu ngt, a ch vector ngt ny nm nh c a ch 2CH. RST6.5: Ngt u tin thp th 2, phn ng theo mc in p trn chn yu cu ngt, a ch vector ngt ny nm nh 34H RST7.5: Mc u tin cao nht. Phn ng theo sn ln ca xung yu cu ngt. Sn ln ca xung ny tc ng ln mt Flip-Flop, mch ny gi li yu cu ngt cho n khi c xo nh tn hiu p ng nhn bit yu cu ngt (Acknowledge). a ch ca vector ngt ny nm nh 3CH - TRAP: L chn nhn yu cu ngt khng che c (d nhin l n c mc u tin cao nht). a ch ca vector ngt ny nh 24H. INTA. Tn hiu ra nhn bit yu cu ngt ti chn INTR. Cc yu cu ngt RST5.5, RST6.5, RST7.5 v TRAP khng tc ng n INTA. HOLD. Trng thi logic 1 chn ny l yu cu ca thao tc DMA. Cc u ra RD, WR, IO/M v ALE s c a v trng thi tr khng ra cao. 41
42
T1
CPU Clock-CLK Kiu chu ki my BUS a ch BUS D liu
T2
T3
T4
T1
T2
T3
T1
T2
T3
T1
T2
T3
Mi: Chu k my , Ti: trng thi my V d thc hin lnh c di 3 byte, ct ni dung ca ACC vo nh tr bi a ch trong lnh: STA [ a-ch-thp, a-ch-cao]
Hnh 2.3-Cc khi nin qui chiu theo CPU Clock Ta c th theo di cc xung in ny khi s dng my hin sng (OSCILOSCOPE) vi t nht 2 tia cp vo v tr thch hp trn bo mch, ly xung ng h CPU CLK lm chun ng b cc tn hiu. Vic thc hin mt lnh trong CPU P8085 thc t l mt chui cc thao tc READ v WRITE. Mi thao tc READ hay WRITE tng ng vi mt chu k my M. Mi lnh c thc hin qua 1 n 5 chu k my. Mi chu k my cn t 3 n 5 nhp ng h. V d lnh STA ni trn c 5 chu k my, 13 trng thi my. Sau y l m t hot ng ca CPU 8085 vi cc chu k ng h h thng v cc thao tc khc. chu k my th nht, CPU thc hin np m lnh (Instruction Code Fetch) trong RAM, cn gi l chu k Opcode Fetch. Hnh di cho thy rng vic thc hin chu k my M1 (Opcode 43
Hnh 2.4-Lu thi gian c s ca CPU 8085 (Theo ti liu ca hng Intel) CPU cng ng thi gi 16 bit a ch ra chu k my u tin, ngay t nhp u tin (T1) xc nh nh hay thit b I/O. Phn a ch byte thp t trn AD7-AD0 (Program Counter Low byte-PCL) ch tn ti trong thi gian 1 nhp nn cn phi c cht li nh tn hiu ALE mc cao. Cn phn a ch byte cao t trn A16-A8. Khi D7 D0 n nh trn cc dy d liu, CPU gi tn hiu RD. Khi nhn c d liu, RD chuyn ln mc cao cm v tr nh hay thit b I/O. S lng chu k my v trng thi cn cho thc hin mt lnh l c nh, song s lng ny khc nhau i vi cc lnh khc nhau, tu theo di ca t lnh (1 byte, 2 bytes, 3 bytes). S lng chu k my ph thuc vo s ln CPU phi lin lc vi cc phn t khc trong h thng, ch yu l vi cc chip khc.
44
Hnh 2.5-Biu thi gian ca chu k tm lnh. 2.2 CPU 8085 V H THNG BUS Vic u tin trong thit k mt HTN l la chn CPU v hnh thnh BUS h thng trc khi m rng vi cc thnh phn khc nh ROM, RAM v cc cng ghp ni. Tip tc vi t duy s dng h Intel 808X, ta s thit k h thng BUS nh sau: c im ca cc chn/tn hiu pht ra t CPU: Nh trn lit k, CPU a ra 3 tp hp tn hiu chnh, bao gm: - Tp tn hiu a ch trn cc chn AD7 AD0 v A8 A15, trong AD7 AD0 l cc chn 2 chc nng : Lc (M1, T1) l a ch phn thp, sau l d liu. Do to ra 16 ng a ch ta cn cht cc gi tr ny li vi h tr ca tn hiu ALE (Address Latch Enable) vi vi mch SN74373. Tp hp ny to thnh BUS a ch . - Tp cc chn d liu AD7 AD0 cc chu ki M/T tip theo ca chu k lnh. Tp hp ny to thnh BUS d liu. BUS d liu c rng khc nhau theo loi CPU, c th l 4, 8, 16, 32, 64, hay trn mt loi BUS c bit chung ghp ni vo vi mch ng x l (ChipSet), gi l BUS pha trc (Front Side Bus-FSB) cc mt PC hin i, rng co th ln 128, 256 hat 1024 bit. - Tp cc tn hiu iu khin pht ra t CPU, l BUS iu khin. 45
A15 A8 ALE
CPU 8085
AD7 AD0 RD/ WR IO/M INTA
Control BUS
Hnh 2.6- Cu hnh ti thiu: CPU 8085 v to BUS h thng Do chc nng ca BUS l truyn thng tin gia cc thnh phn hp thnh ca my tnh v do c vai tr rt quan trng nh hng ti hiu nng ca my tnh, nn i khi phi xem xt ti mt khi nim v thng lng ca BUS (nh bt k loi thit b truyn thng tin no). l gi tr v lng d liu ti a c chuyn qua BUS trong mt khon thi gian no , thng thng qui theo CPU clock (hay chu k lnh): Tc BUS (MHz) x s byte mt ln truyn Tc truyn ti a = S chu k Clock cho mt ln truyn 2.2.1 Khi nim v bn cht vt l ca cc BUS Hot ng ca mt h k thut s thc cht l vic trao i v x l cc gi tr nh phn gia cc thnh phn, cc khi v cc mch vi in t trong ton b h thng. Nh bit, cc gi tr nh phn (hoc 0 hoc 1) c th hin qua mc in p so vi mt chun nht nh, v d chun TTL(transistor-transistor logic) gi tr 0 tng ng vi mc in p thp (t 0V n +0,8V) v 46
Hnh 2.7-CPU Bus v BUS h thng T khi nim trn, d dng suy ra bn cht vt l ca cc BUS trong mt h my tnh: l cc ng truyn dn in, c th di cc dng cp nhiu si, ng dn trong cc bng mch in v.v Kh nng v cht lng dn in ca cc ng truyn dn ny ng vai tr quan trng v quyt nh i vi hot ng ca mt h my tnh. ng truyn dn km, in tr thun cao c th gy ra s suy gim ca tn hiu in dn n cc hin tng mt hoc sai d liu. BUS l ng dn in ni b m theo cc tn hiu c truyn t b phn ny n cc b phn khc trong h my tnh. 2.2.2 Khuych i BUS (bus driver) Tn hiu pht sinh t CPU thng c cng sut thp ch cho mt s ti danh nh (fanout), khng m rng BUS, nht l khi bus kh di v c nhiu thit b ni vi n. Chnh v th m hu ht cc BUS c ni mt s vi mch khuych bus (bus driver), v c bn l cc vi mch khuych i tn hiu s. Hu ht vi mch khc ni vi BUS qua vi mch u vo (bus receiver). i vi cc thit b khi th ng vai tr a tn hiu ln BUS (master), khi th ng vai tr nhn tn hiu t BUS (slave), ngi ta s dng mt vi mch kt hp c kh nng pht ra v nhn v, gi l vi mch pht v thu tn hiu (bus transceiver). Cc chip ny ng vai tr ghp ni v l thit b 3 trng thi, cho php n c th trng thi th 3 tr khng cao. Cc vn quan trng nht lin quan n thit k bus l: xung ng h bus (clock bus: s phn chia theo thi gian, hay cn gi l bus blocking), c ch trng ti bus (bus arbitration), x l ngt v x l li. 48
Hnh2.8-Chu k c ng b T1 bt u bng cnh dng ca xung clock, trong mt phn thi gian ca T1, vi x l t a ch byte cn c ln bus a ch. Sau khi tn hiu a ch c xc lp, vi x l t cc tn hiu MREQ v RD tch cc mc thp, tn hiu MREQ (Memory Request) - xc nh truy xut b nh ch khng phi thit b I/O, cn tn hiu RD - chn c ch khng phi ghi d liu. T2: thi gian cn thit b nh gii m a ch v a d liu ln bus d liu. T3: ti cnh m ca T3, vi x l nhn d liu trn bus d liu, cha vo thanh ghi bn trong vi x l v cht d liu. Sau vi x l o cc tn hiu MREQ v RD. Nh vy thao tc c hon thnh, ti chu k my tip theo vi x l c th thc hin thao tc khc. Cc gi tr c th v thi gian ca hnh v trn c th c gii thch chi tit nh sau:
49
TM
85
TRL
85
50
TDS
Thi gian thit lp d liu trc sn xung ca tn hiu xung clock( tn hiu ng h) Thi gian tr ca MREQ b so vi sn xung ca tn hiu ng h T3 Thi gian tr ca RD b so vi sn xung ca tn hiu ng h T3 Thi gian lu tr d liu t lc o tn hiu RD b
50
TMH
85
TRH
85
TDH
Truyn theo khi: Ngoi cc chu k c/ghi, mt s bus truyn d liu ng b cn h tr truyn d liu theo khi. Khi bt u thao tc c khi, vi mch lm ch bus (bus master) bo cho vi mch khc (slave) bit s byte cn c truyn i, th d truyn con s ny i trong chu k T1, sau ng l truyn i 1 byte, slave a ra trong mi chu k 1 byte cho ti khi s byte c thng bo. Nh vy, khi c d liu theo khi, n byte d liu cn n+2 chu k clock ch khng phi 3n chu k. Mt cch khc cho truyn d liu nhanh hn l gim chu k. v d trn: 1 byte c truyn i trong 750ns, vy bus c tc truyn 1.33MBps. Nu xung clock c tn s 8MHz, thi gian 1 chu k ch cn mt na, tc s l 2.67MBps. Tuy nhin, gim chu k bus dn n kh khn v mt k thut, cc tn hiu truyn trn cc ng khc nhau khng phi lun c cng tc , dn n hiu ng mo dng tn hiu. iu quan trng l thi gian chu k phi di hn so vi s tn ti ca mo dng tn hiu trnh vic nhng khong thi gian c s ho li tr thnh cc i lng bin thin lin tc. 2.2.4 Bus khng ng b (Asynchronous bus) Bus khng ng b khng s dng xung BUS clock, chu k ca n c th ko di tu v c th khc nhau i vi cc cp thit b khc nhau, gi l i thoi tun t bi cc tn hiu iu khin. Lm vic vi cc bus ng b d dng hn do n c nh thi mt cch gin on , tuy vy chnh c im ny cng dn n nhc im. Mi cng vic c tin hnh trong khong thi gian l bi s ca xung clock, nu 1 thao tc no ca vi x l hay b nh hon thnh trong 3,1 chu k th n cng s phi ko di trong 4 chu k. Khi chn chu k bus v xy dng b nh, I/O card cho bus ny th kh c th tn dng nhng tin b ca cng ngh. Chng hn sau khi xy dng bus vi s nh thi nh trn, cng ngh mi a ra cc vi x l v b nh c 51
Hnh 2.9-BUS khng ng b, hot ng ng b bi i thoi gia cc tn hiu iu khin. 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 tn hiu MREQ, RD, v SSYN. Khi slave nhn c tn hiu MSYN khng tch cc, n xc nh kt thc chu k v o tn hiu SSYN lm bus tr li trng thi ban u, mi tn hiu u khng tch cc, ch bus master mi. Trn gin thi gian ca bus bt ng b, ta s dng mi tn th hin nguyn nhn v kt qu MSYN tch cc dn n vic truyn d liu ra bus d liu v ng thi cng dn n vic slave pht ra tn hiu SSYN tch cc, n lt mnh tn hiu SSYN li gy ra s o mc ca cc ng a ch, MREQ b, RD b, v SSYN. Cui 52
53
Hnh 2.10 BUS chui quay vng (daisy chaining) Trng ti BUS Mt s loi bus c nhiu mc u tin, vi mi mc u tin c ng yu cu bus (bus request) v ng dy cho php bus (bus grant). V d: gi s 1 bus c 2 mc u tin 1 v 2 (cc bus thc t c 4, 8 hay 16 mc). Mi thit b trong h thng my tnh ni vi 1 trong cc mc yu cu bus, cc ng thng c s dng nhiu hn c gn vi ng dy c mc u tin cao hn. v du, cc thit b 1, 2 s dng mc u tin 1, cn cc thit b 3, 4 s dng mc u tin 2.
Hnh 2.11- Trng ti BUS Nu c mt s thit b cc mc u tin khc nhau cng yu cu, arbiter ch pht ra tn hiu grant i vi yu cu c mc u tin cao nht. Trong s cc thit b c cng mc u tin, thit b no gn arbiter hn s u tin hn. V mt k thut, khng cn ni ng grant level 2 gia cc thit b v chng khng bao gi i hi bus mc 2. Tuy nhin, trong thc t thun tin cho vic lp t ngi ta hay lm nh sau: ni tt c cc ng grant thng qua tt c cc thit b, nh vy s d dng hn l ni cc ng grant mt cch ring bit, v t cn c vo thit b no c quyn u tin cao hn. Mt trng ti BUS c ng dy th 3 ni ti cc thit b cc thit b xc nhn nhn c tn hiu grant v chim dng bus ng tn hiu xc nhn ACK (acknowledgement). Ngay sau 1 thit b pht tn hiu tch cc trn ng dy ACK, c th o tn hiu trn cc 54
Hnh 2.12-Trng ti Bus khng tp trung trong multibus C ch s dng 3 ng dy, khng ph thuc vo s lng thit b ni vi bus: Bus request: yu cu chim dng bus. Bus busy: ng bo bn, c bus master t mc tch cc khi c thit b ang chim dng bus Bus arbitration: c mc ni tip thnh 1 chui xch qua tt c cc thit b ngoi vi. u ca chui ny c gn vi mc in p 5V ca ngun nui. Khi khng c n v no yu cu chim dng bus, ng dy phn x bus truyn mc tch cc ti tt c cc thit b trong chui xch. Khi 1 n v no mun chim dng bus, u tin n kim tra xem bus c rnh khng v u vo In ca ng trng ti bus c mc tch cc hay khng. Nu khng (not active) th n khng tr thnh bus master. Ngc li, n s o u Out thnh khng tch cc, lm cho cc thit b ng sau n trong chui xch c u In khng tch cc. Khi trng thi c th hiu lm (khong thi gian tn hiu trn u In v Out ang thay i) qua i, ch cn li duy nht 1 thit b c u In tch cc v Out khng tch cc. Thit b ny tr thnh bus master, n s t bus busy tch cc v bt u truyn thng tin trn bus. 2.2.6 Bus m rng (Expansion bus) Bus m rng cho php bo mch ch lin lc c vi cc thit b ngoi vi, cc thit b ny c ci t qua cc khe cm m rng (expansion slot). Cc thng s chnh ca bus m 55
57
Hnh 2.13 Lin kt qua bus SPI Bus I2C (Inter-Integrated Circuit): La bus lin kt gia cc vi mch trn bo mch ch, trong cc HTN, thit b nh USB-my tnh, in thoi di ng, tc c 3.4 M bit/giy. Nguyn l hot ng theo kiu ch/t (Master/Slave), ni tip, tc thp. M hnh kt ni:
Hnh 2.14 Lin kt qua bus I2C Trong : SCL l xung ng h pht ra t chip lm ch (Master), SDA l ng d liu vi 7 bit a ch cc vi mch tham gia (vi mch ch v t). Rp l in tr ni ln ngun nui VDD. 58
Hnh 2.13-Cc mch logic thng dng trong thit k k thut s Cc loi mch ny thng c s dng to nn cc mch t hp logic thc hin cc chc nng lp m, gii m, dn knh v phn knh. Cng cn lu rng, mt s mch chc nng nh gii mm dn knh v phn knh c cc hng tch hp di dng cc mch MSI. Mt s mch c th k ra nh mch gii m 3/8 SN74138 to tn hiu chn port (Chip Select hay CS), mch dn knh 74151-74257, mch cng, v mch nhn v.v b) Mch 3 trng thi (Tri-state Component) 59
Hnh 2.16 Cc kiu ni u ra, u ra tr khng cao trnh hin tng ny, mt loi cng logic gi l cng 3 trng thi (tri-state gate HZ, hay 3 trng thi: 0, 1 logic v tr khng cao) c s dng cho li ra ca cc khi ni chung vo BUS. Hnh sau l mt phn t o (invertor) vi u ra 3 trng thi.
60
Hnh 2.17 Vi mch 3 trng thi: hai trng thi logic v trng thi th 3 HZ: u ra b tch khi BUS. c) Mch cht, thanh ghi: Mch cht l mt mch gm cc phn t c kh nng lu gi cc gi tr 0 hoc 1 li ra. C th dng D Flip-Flop lm mt mch cht vi tn hiu cht d liu CK ti u ra Q theo bng gi tr chn l sau: D l u vo, Q l u ra, CK l ng h iu khin. Bit rng Qn+1 = D vi tn hiu iu khin l s xut hin sn dng ca xung nhp CK. Nh vy, gi tr logic (0 hoc 1) ti D c chuyn sang u ra Q (cht). Nu CK gi nguyn trng thi bng 1, th trng thi u ra Q c gi nguyn. Nh vy, gi tr logic ca D c lu gi Q (nh).
Hnh 2.18 Mch cht (hay nh, gi li) kiu D, lm vic theo mc hay sn ln ca xung ng h CK. (Xem thm chi tit mach SN 7474). cht 4 bit ta s dng 2 vi mch 7474 v c s nh sau:
Hnh 2.20- Cng khuych i (driver) cht hai chiu Trn c s ca cc mch 3 trng thi, cc mch khuych i BUS hai chiu c xy dng theo nguyn l sau: Hai phn t 3 trng thi s c ghp ngc vi nhau, chn iu khin s dng tn hiu chn chiu v o tn hiu , v d tn hiu c RD. Khi xut hin tn hiu RD, d liu c php i t Q0 sang D0, ngc li, tn hiu ch c php i t D0 sang Q0 v cho php CPU a tn hiu ghi d liu ra ngoi. Ghp ni s phn t cho tt c cc dy d liu, ta c mch khuych i BUS hai chiu. Trong thc t, mch c chc nng trn c tch hp theo chun ca TTL, c k hiu l SN 74244 hay SN 74245 (hoc Intel 8288- Octal BUS Transceiver). 2.3 BO MCH mt HTN VI CU HNH TI THIU Tuy cha cp chnh xc v thit k phn cng ca mt HTN, nhng v d sau y hon ton c th c s dng nh mt HTN. H c xy dng theo kiu HTN duqja trn bo vi x l v cc linh kin khng cng trong mt chip nu Chng 1. Di y l mt m hnh ti thiu xy dng vi CPU Intel 8085, c ROM Monitor v chng trnh ng dng, RAM d liu v vi mch ghp ni vi thit b ngoi. Mt thit k ti thiu vi CPU, ROM. RAM v Cng I/O Cc linh kin cho bo mch MSC-85: 1 CPU 8085A Xtal cho f=3.0 Mhz 1 8755 2048 byte PROM 1 8156 256 bye RAM Programmable Timer/Counter x Port 8 bit programmable
62
Mt thit k ti thiu vi CPU, ROM, RAM v Cng I/O. Cc cng s dng khi thit k ghp ni vi cc thit b ngoi vi. B nh c th m rng khi c tng phn hoch khng gian nh cho ROM v RAM m rng phn mm, bao gm HH v ng dng. CPU 8085 l CPU rt mnh, h 8 bt. S chun t ngun ca Intel:
63
64
Hnh 2.22- Mch in cho hnh 2.21 Khi xy dng xong phn cng (mch in, hn cm, vi mch ), to phn mm np vo ROM.
65
66
Cc CPU h 80x86 c pht trin trn c s cng ngh ch to CHMOS vi mt tch hp rt cao (VLSI), c tiu hao cng sut rt nh. S khi chc nng ca CPU 8086 c th hin trn nh hnh trn, gm hai thnh phn ch yu l n v ghp ni BUS (BIU BUS Interface Unit), n v thc thi lnh (EU Execute Unit). Tt c cc thanh ghi v ng truyn d liu trong EU u c di 16 bits. BIU thc hin tt cc cc nhim v giao tip vi BUS bn ngoi: thit lp khu lin kt vi BUS d liu, BUS a ch v BUS iu khin. D liu c trao i gia CPU vi b nh khi EU c yu cu, song khng c truyn trc tip ti EU m thng qua mt vng nh RAM dung lng nh (6 bytes) c gi l hng nhn lnh trc (Instruction Stream Byte Queue PQ - PreFetch Quere) ri mi c truyn cho h thng thc thi lnh EU. BUI bao gm cc thanh ghi on nh, con tr lnh, v b iu khin BUS. EU chnh l li ca h CPU X86 v gn ging nh CPU 8085 cp. C th m t cch lm vic n gin nh sau: Khi EU ang thc hin mt lnh th BUI tm v ly lnh sau t RAM ngoi v t sn vo PQ. y l c ch ng ng (pipeline), mt k thut tng tc cho CPU. K thut ng ng s dng mt vng nh RAM cc nhanh (PQ), lm tng ng k tc ca b x l thng qua vic truy tm lnh PQ thay v tm t b nh RAM bn ngoi. Nu so vi cch thc truyn thng, c th coi thc t thi gian ly lnh bng 0. C th tm hiu thm v CPU loi ny t cc ti liu chuyn mn khc. Cho d CPU hot ng bn trong c khc, nhng nhng nguyn l my tnh th khng c g thay i khi thit k. Khi tm hiu k ti liu thit k vi CPU c th ta c th ln c mt s cho bo mch. Vi CPU 8086, mt thit k vi qui m ti thiu s nh sau: - CPU - Mch to xung nhp ng h 8284 - Mch to cc tn hiu cho BUS iu khin 8288 - Mch cht a ch latch 16 bit vi xung ALE 67
68
Hnh 2.24 Bo mch vi ti thiu vi CPU 8086:BUS controller, Ngt controller, RAM Biu thi gian. bit chc nng cc tn hiu trong s , ly v d v chu k c b nh sau y:
70
Hnh 2.26 M hnh kin trc Havard: BUS cho b nh chng trnh: Code Bus v Code Address; BUS cho RAM d liu: Data Bus v Data Address; SRC1, SRC2:ngun, DST: ch, l cc Bus ni b. 71
Hin nay Intel khng cn cung cp cc loi Vi iu khin h MCS-51 na, thay vo cc nh sn xut khc nh Atmel, Philips/signetics, AMD, Siemens, Matra&Dallas, Semiconductors c cp php lm nh cung cp th hai cho cc chip ca h MSC-51. Chip Vi iu khin c s dng rng ri trn th gii cng nh Vit Nam hin nay l Vi iu khin ca hng Atmel vi nhiu chng loi vi iu khin khc nhau. Atmel c cc chip Vi iu khin c tnh nng tng t nh chip Vi iu khin MCS-51 ca Intel, cc m s chip c thay i cht t khi c Atmel sn xut. M. s 80 chuyn thnh 89, chng hn 80C52 ca Intel khi sn xut Atmel thnh 89C52 (M s y : AT89C52) vi tnh nng chng tr.nh tng t nh nhau. Tng t 8051,8053,8055 c m. s tng ng Atmel l 89C51,89C53,89C55. Vi iu khin Atmel sau ny ngy cng c ci tin v c b sung thm nhiu chc nng tin li hn cho ngi dng.
72
73
Hnh 2.28 CPU 8051: EEPROM, RAM bn trong v kh nng m rng b nh ti 128 KB (64 KB code+64 KB data) Mt HTN: Bo mch vi iu khin MCU (hay C) vi CPU 8052 v cc vi mach h tr cho ng dng nhng: (http://www.keil.com/dd/docs/datashts/silabs/c8051f52x.pdf)
Hnh 2.29 Bo mch vi CPU 8051/8052 Di y l cc thng s cho thy cc thnh phn ca bo mch HTN hp nht SBS 8051F530: 74
C th tm hiu thm bo mch Bo mch 8052.com SBC tai www.8052.com Bo mch 8052.com Single Board Computer (SBC) s dng CPU Atmel AT89S8252/AT89S8253 v Dallas DS89C420, nhng c th cm bt k chip 40-pin 8052 tng thch ( 8052, 8051, 8032, 75
76
77
Hnh 2.31 CPU 8051 Ngoi cc trung tm vi x l h x86, Intel cn thit k v sn xut cc vi x l chuyn dng phc v cc mc ch o lng v iu khin t ng, m thc cht l cc h thng nhng. Cc chip vi x l loi ny vt ra ngoi khun kh ca mt trung tm vi x l n thun, tr thnh mt my tnh kiu vi iu khin (MicroController- C). B qua kin trc bn trong l kiu Harvard, v nhn theo kin trc xy dng bn ngoi v d m t v lp trnh, ta c th coi nh hot ng nh mt my vi tnh, th ging nh kin trc my tnh ca Von Neumann. CPU c trang b thm b nh chng trnh (ROM hoc EPROM) v b nh d liu, cng nh cc cng vo/ra ni tip, vo/ra song song, ngay trong vi mch. Vi mch ch yu ca h MCS - 51 l chip C8051/8052, linh kin u tin ca h ny c a ra th trng. Chip C8051 c cc c trng c tm tt nh sau: - 4 KB ROM v 128 byte RAM - 4 port 8- bt, 32 li vo/ra - 2 b nh thi (Timmer) 16 bt - Mch giao tip ni tip - Khng gian nh chng trnh ngoi (m rng) 64K - Khng gian nh d liu ngoi 64K - B x l bt (thao tc trn cc bt ring r) - 210 v tr bit nh c nh a ch Cc thnh vin khc ca h MCS-51 c cc t hp ROM (EPROM), RAM trn chip vi dung lng khc nhau, b bin i tn hiu tng t-s v s-tng t, v c th c thm b nh thi th ba. Mi mt chp ca h MCS-51 u c phin bn CMOS tiu th cng sut thp. 78
Hnh 2.32 Phn hoch a ch trong CPU 8051 c) V d thit k m rng b nh vi CPU 8051 V dung lng b nh trong Chip nh i khi khng cha m chng trnh, nn cn m rng b nh qua mt thit k m rng. Di y l mt thit k to ra 64KB ROM v 64KB RAM qua cc cng t CPU 8051: 79
Hnh 2.33 Bo mch vi CPU Intel 8051 v RAM, ROM m rng bn ngoi. Truy xut b nh chng trnh ngoi B nh chng trnh ngoi l b nh ch c, c cho php truy xut bi tn hiu PSEN. Khi c mt EPROM ngoi c s dng, c hai port 0 v port 2 khng c s dng cho mc ch vo/ra. Kt ni 8051vi b nh ngoi EPROM c trnh by hnh trn. Mt chu k my ca 8051 c 12 xung nhp. Nu b giao ng trn chip c tn s 12MHz, mt chu k my di 1sec. Trong mt chu k my in hnh, ALE c 2 xung v 2 byte ca lnh c c t b nh chng trnh (nu lnh ch c mt byte, byte th hai c loi b). B nh d liu ngoi l b nh c/ghi c cho php bi cc tn hiu RD v WR cc chn ca P3. Lnh dng truy xut b nh d liu ngoi l: MOVX, s dng hoc con tr d liu 16-bt DPTR hoc R0, R1 lm thanh ghi cha a ch. RAM c th giao tip vi 8051 theo cch nh EPROM ngoi tr ng RD ni vi ng cho php xut (OE) ca RAM v WR ni vi ng ghi (WR) ca RAM. Cc kt ni vi bus d liu v bus a ch ging nh EPROM. Bng cch s dng cc port 0 v port 2 v cc chip nh, ta c dung lng RAM v ROM ngoi ln n 64K
80
2.4.3 Vi mch H thng kh trnh trong mt Chip (Programmable System-on-a-chipPsoC) v Vi iu khin (Programmable Intelligent Computer-PIC) L mt cng ngh pht tin rt mnh hin nay, m nn tng c s l : hp nht tt c cc thnh phn mt my vi tnh, cc vi mch in t chuyn dng nh ADC/DAC, DSP vo mt vi mch duy nht vi kh nng lp trnh ng dng ngay trn vi mch . Lnh vc ng dng l to ra cc HTN vi ph cu hnh t n gin ti phc tp. nc ta y l xu hng pht trin rt mnh bi d thc hin v c bit gi thnh rt hp l. PIC: PIC bt ngun l ch vit tt ca "Programmable Intelligent Computer" (My tnh kh trnh thng minh) l mt sn phm ca hng General Instruments t cho dng sn phm u tin ca h l PIC1650. Lc ny, PIC1650 c dng giao tip vi cc thit b ngoi vi cho my ch 16bit CP1600, v vy, ngi ta cng gi PIC vi ci tn "Peripheral Interface Controller" (B iu khin giao tip ngoi vi). CP1600 l mt CPU tt, nhng li km v cc hot ng xut nhp, v v vy PIC 8-bit c pht trin vo khong nm 1975 h tr hot ng xut nhp cho CP1600. PIC s dng microcode n gin t trong ROM, v mc d, cm t RISC cha c s dng thi by gi, nhng PIC thc s l mt vi iu khin vi kin trc RISC, chy mt lnh mt chu k my (4 chu k ca b dao ng). Nm 1985 General Instruments bn b phn vi in t ca h, v ch s hu mi hy b hu ht cc d n - lc qu li thi. Tuy nhin PIC c b sung EEPROM to thnh 1 b iu khin vo ra kh trnh. Ngy nay rt nhiu dng PIC c xut xng vi hng lot cc module ngoi vi tch hp sn (nh USART, PWM, ADC...), vi b nh chng trnh t 512 word n 32K word (1word=16 bt). 82
V cu trc ca PsoC/PIC: s tch hp nhiu thnh phn trong mt vi mch C mt hay vi vi iu khin (microcontroller), hay vi x l (microprocessor) v b x l tn hiu s ( Digital Signal Processor-DSP ). Cc khi b nh ty chn ROM, RAM, EEPROM v Flash. Ngun ng h chun gm b giao ng thch anh v mch phn hi d cht pha (phaselocked loops). Ngoi vi gm b m nh thi (counter-timers), m thi gian thc (real-time timers) v mch t ng khi ng li h thng (power-on reset). Ghp ni ngi theo chun cng nghip USB, FireWire, Ethernet, USART, SPI(Serial Peripheral Interface). Ghp ni vi tn hiu tng t ADC v DAC 8, 10, 12 bit. B ngun chun, c chnh xc cao. V d cc thnh phn hp thnh ca mt vi iu khin hon chnh:
Hnh 2.34
Hnh 2.35 Vi iu khin PSoC CY8C29466 Vi mch PIC ca hng Microchip Technology
http://www.best-microcontroller-projects.com/pic-microcontroller.html
85
EEPROM. Timers (cc b nh thi). Analogue comparators (cc b so snh tng t). UART ( b thu pht d b vn nng). Cc cng kt ni ngoi vi, m rng b nh
Vi cc module nh vy, c th trin khai cc d n ng dng nh: * Frequency counter m tn s, s dng cc b nh thi bn trong, kt qu thng bo ra ngoi bng cch truyn thng i xa UART (RS232), hay ra LCD ti ch. * Capacitance meter - in dung k, bng cc b giao ng so snh tng t. * Event timer nh thi s kin vi cc b nh thi bn trong. * Event data logger Thu thp d liu theo nh thi v s ha bng DAC bn trong, lu d liu trong EEPROM hay lu trong b nh ngoi qua tuyn truyn d liu tc cao I2C. * Servo controller ng dng t ng ha kiu iu khin servo s dng b iu ch rng xung PWM vi phn mm iu khin servo, kt hp truyn thng qua UART n thit b u cui. V d PIC 12F675: 8 chn (Dual In Line) c cc ngoi vi tch hp nh sau:
86
c trng:
Two timers. One 10 bit ADC with 4 selectable inputs. An internal oscillator (or you can use an external crystal). An analogue comparator. 1024 words of program memory. 64 Bytes of RAM. 87
128 Bytes of EEPROM memory. External interrupt (as well as interrupts from internal peripherals). External crystal can go up to 20MHz. ICSP : PIC standard programming interface.
Cc PIC hng trung bnh c khng gian a ch t 1 KB n 8 KB (v d h 18FXYZ). B nh xem ra khng nhiu, nhng vi tp lnh hiu qu c th xy dng cc ng dng rt hu ch. (Xem v d PH LC : LM35 temperature sensing project). Lp trnh: S dng giao din ni tip ICSP lp trnh, c th lp trnh bng hp ng, hay C. Vo/Ra - I/O: PIC c cc cng kt ni s dng cho nhiu mc ch, v d cho iu khin motor bc, ng ct cc rele, c cc nt n ng/m, hin th ra LCD/7-segment/LED, o tn s, s dng ADC vi nhiu mc ch khc nhau Ngoi vi (Peripherals): Cc thit b tch hp bn trong rt nhiu v hu hiu cho cc d n ng dng, ty vo yu cu c th chn dng PIC vi cc c trung khc nhau. Cc c trng tng qut gm c: PIC PIC microcontroller microcontroller feature description Feature Flash memory RAM EEPROM Re-programmable program storage. Memory storage for variables. Long term stable memory : Electrically Erasable Programmable Read Only Memory. High current Input/Output ports (with pin direction change).
I/O ports
Timers/Counters Typically 3. USART CCP SSP Built in RS232 protocol (only needs level translator chip). Capture/Compare/PWM module. I2C and SPI Interfaces. 88
An analogue comparator and internal voltage reference. Analogue to digital converter. Parallel Slave Port (for 8 bit microprocessor systems). LCD interface.
Special features ICSP,WDT,BOR,POR,PWRT,OST,SLEEP ICSP Simple programming using In Circuit Serial Programming.
Flash memory: B nh cho chng trnh. ICSP (In Circuit Serial Programming): Cng giao din vi h pht trin, lp trnh
trc tip cho PIC nm trn bo mch thit k. Qa trnh lp trnh/th nghim c n gin ha theo kiu in the circuit cho ti khi hon thin phn mm.
89
Capture ghi nhn s kin Compare So snh khi Timer 1 t gi tr t trc. PWM - Pulse Width Modulation.
Capture : Ly d liu ca Timer 2 khi chn CCP xung ln cao hay xung thp do lp trnh. Compare: So snh khi Timer 1 t gi tr, v a vo CCPR1. Dng khi ng ADC. PWM: iu ch PWM vi phn gii 10 bit.
SSP (Synchronous Serial Port): kt ni vi thit b theo giao thc SPI SPI (Serial
Peripheral Interface) hay I2C(Inter IC communication). (project I2C here, more info I2C here).
ADC : Phn gii cp 10 bit, 10 u vo tng t dn knh. PSP: Cng song song 8 bit, c/ghi, ch slave, cho php mt h thng khc giao tip
trc tip vo CPU t ngoi vi tn hiu chn chip (CS-chip select). H bn ngoi nhn CPU nh thit b kiu nh x b nh (memory mapped I/O), nh vy PIC CPU l mt h con (slave) ca h kia, v c th lp trnh cho PIC thc hin cc tc v theo yu cu.
BOR
POR
Power on reset
Oscillator start up Wait for 1024 cycles after timer PWRT. Enter low power mode.
WDT ( Watch dog timer): s dng khi phn mm chy c vn , s RESET cng CPU v trng thi ban u. cm reset cng CPU, khi phn mm lm vic bnh thng, cn pht sinh lnh CLRWDT ci trong chu trnh, v np li gi tr nh thi cho WDT. WDT chy theo ng h ring. POR (Power On Reset): Khi ng PIC microcontroller khi c sn ln ca tn hiu MCLR. PWRT: nu cho php PIC microcontroller s khi ng sau 72 ms. OST (Oscillator Startup Timer): tr cn 1024 chu k c tn s n nh. SLEEP (Sleep mode -or low power consumption mode) hot ng khi thc hin lnh 'SLEEP'. PIC s thc dy bi cc s kin nh: RESET ngoi, Watch Dog Timer, INT - peripheral interrupt. Mt s PIC vi cc dng khjasc nhau: 12F, 16F:
91
PIC PIC PIC microcontroller microcontroller microcontroller Device No. Pins Flash memory WORDS 12F675 16F88 16F877A 8 18 40 1k 4k 8k
92
93
Hnh 2.36
Vi iu khin PIC 16F882/883/886/887 - Hai tc khi ng chn khi khi ng - Pht hin s c thch anh cho cc ng dng ti hn - Kh chuyn ng h ngay khi ang hot ng tit kim nng lng C ch ng tit kim nng lng Thang ngun nui rng :2.0V-5.5V Chi ng mi trng nhit cng nghip cao Khi ng khi bt ngun (Power-on Reset (POR)) nh thi bt ngun (Power-up Timer (PWRT)) v khi ng giao ng ( Oscillator Start-up Timer (OST)) Khi ng vi phn mm Bo v m kh trnh Flash/EEPROM Cell bn vng lu di vi: - 100,000 ln ghi voFlash 94
CPU RISC hiu nng cao: Ch cn 35 lnh my : - Tt c cc lnh u thc hin ch trong 1 chu k lnh, tr cc lnh nhy Tc hot ng: - DC 20 MHz tn s u vo (clock input) - DC 200 ns cho mt chu k lnh Ngt 8-Level Deep Hardware Stack Csac ch a ch: Direct, Indirect v Relative Cc c im c bit ca vi iu khin: Giao ng ni chnh xc lp bi nh my 1% - Kh trnh lp tn s t 8 MHz xung n 31 kHz - Tinh chnh bng phn mm
95
2.5.1 Mt s thng s chnh ca mch nh di ca nh: di ca nh cho bit s bit cha trong nh, c th tnh bng bit, byte (8 bit), t (16 bit), t p (32 bit) hay t kp (64 bit). Dung lng (capacity) ca mch nh xc nh s bit hay byte hay t cc i m mch nh c th cha. Gi s mch nh c n bit a ch u vo v mi a ch (hay nh) di l m bit, nh vy mch nh c dung lng 2n x m (bit). n v o dung lng b nh thng thng nht l: Byte(B), KiloByte (1KB=210B), MegaByte (1MB=220B), GigaByte (1GB=230B), TetraByte (1TB=240B)... Thi gian thm nhp (Acces Time) l thi gian t thi im p a ch ti BUS a ch ti khi khi ni dung ca nh c a ra BUS s liu, k hiu l tA , thi gian ny ph thuc vo cng ngh ch to v cu trc mch nh. Chu k c (Read Cycle) l thi gian k t khi p a ch c nh cho n khi c th p a c nh tip theo, k hiu l tRC. l thi gian ngn nht gia hai ln c mt nh. Chu k ghi (Write Cycle) l thi gian k t khi p a ch ghi nh cho n khi c th p a ghi nh tip theo, k hiu l tWC. l thi gian ngn nht gia hai ln ghi mch nh. 96
Mch lt (flip-flop) RS (cn gi l triger RS) ng b l mt mch c kh nng lu gi cc gi tr 0 hoc 1 li ra. C th dng RS Flip-Flop lm mt mch lu gi tn hiu vo R bng cch cht d liu li ti u ra Q. Cc hng ch to thc hin mch ny bng cng ngh cao, nn kch thc v cng nh, c th c hng nhiu triu phn t nh trn mt din tch 1mm2. Cc vi mch nh thng thng c ch to vi di t nh v s lng t nh c nh. Hnh m t: - Dng Flip/flop RS, hay D nh 1 bit, thch hp d ch to b nh tnh tnh (Static). - Cc u vo/ra cn thit ca mt nh, hay mt chip nh, hay mt module nh (ROM hay RAM): a ch (tp cc a ch p vo), cc tn hiu ghi (WR/)/c(RD/), chn chip/module CS (Chip Select) v u ra/vo d liu.
97
Hnh 2.37 M hnh u vo/ra ca phn t nh n v nh n v nh l cc gi tr qui c trong k thut my tnh, c th c cc loi nh sau: - Nh 1 bit, - Nh vi bit : 4 bit hay 8 bit (cn gi l 1 byte); - Mt t (word) 16 bit - Mt t p (double word) 32 bit - Mt t di 64 bit to c mt t nh ca b nh, tc l t nh c di (s bit trong mt t) chun (theo chun IBM l 8 bits), trong mt s trng hp nht nh cn phi tin hnh ghp cc chip nh li vi nhau. cho ta khi nim v kh nng to mt t nh c bn (byte) khi t nh ca chip nh l 1bit, 2bits v 4 bits. Trong trng hp di t nh ca chip nh l 8 bits, vic lin kt l khng cn thit.
Thng thng di mt n v nh ph thuc vo loi CPU c kh nng x l, v d CPU 8 bit nh Intel 8085, Motorola 6800 x l ti a 8 bit song song. Ngy nay cc CPU a nng trong PC x l 32 bit v 64 bit. 98
2.5.2 Phn loi b nh Ni chung, b nh c phn loi theo mt vi thuc tnh. Sau y l mt s cch phn loi b nh: Theo chc nng b nh c chia thnh hai lai: - B nh trong ( b nh chnh) - B nh ngoi. ( b nh ph) Da trn thi gian ghi v cch ghi b nh trong c th chia thnh: - B nh c nh - B nh bn c nh - B nh c/ ghi
Hnh 2.38 Phn loi b nh a. B nh c nh ROM (Read Only Memory): B nh c ni dung ghi sn mt ln khi ch to c gi l b nh c nh v c k hiu l ROM. Vic ghi c thc hin bng mt n. Mt phn t nh trong ROM thng n gin hn nhiu so vi mt mch lt trong b nh c /ghi, v trng thi ca n c nh. Chng trnh iu khin ca hu ht cc h vi tnh c gi trong ROM. b. B nh bn c nh EPROM (Erasable Programmable Read Only Memory) y l b nh xa c bng tia cc tm v ghi li c. S ln xa v ghi li khng hn ch. Chng c thi gian ghi ln hn rt nhiu so vi b nh oc/ghi. Di tc dng ca tia cc tm tt c cc nh b xa cng mt lc, tr v gi tr =1, khi xa mch nh phi c a ra khi h vi tnh xa. iu thun tin b nh bn c nh cng nh ROM, l b nh tuy bt bin khi 99
Hnh 2.39 Cc loi b nh ROM c. B nh c/ ghi RAM (Radom Access Memory) kiu truy nhp ngu nhin, ch cn c a ch p t, v tr no khng quan trng, s truy nhp c ni dung a ch tr ti. B nh c th ghi v c nhiu ln, vi thi gian ghi ngn c vi chc n vi trm nano giy. Trong cc h vi tnh, b nh c/ghi c s dng ct gi chng trnh (h iu hnh, ng dng), kt qu trung gian. Cc loi RAM:
100
Hnh 2.40 Cc loi RAM SRAM (Static RAM) nh tnh SRAM l b nh c/ghi c nguyn l hot ng tnh: ghi vo mt gi tr v tn ti cho ti khi ghi gi tr mi. Khi mt in s mt ni dung. B nh c/ghi tnh c cc nh cu to tng t nh mch lt. SRAM khng cn iu khin phc tp nh DRAM, tc nhanh hn (tA = 10 ns), tin cy hn nhng gi thnh tnh theo bit t hn DRAM, c s dng lm b m cache trong cc b vi x l hay my vi tnh. Bit nh c to bi Flip-Flop. V d cho 1 bit SRAM: Trn hnh bn l s nguyn l mt mt nh ca RAM tnh, mch nh s dng 6 transistor. RAM tnh c ch to theo cng ngh ECL (dng trong CMOS v BiCMOS). Mi bit nh gm c cc cng logic vi 6 transistor MOS.
Hnh 2.41 1 chip RAM 32K x 8 (32K byte) Lnh vc s dng SRAM: Do gi thnh cao, mt ch to (transistors/1 bit ) cao, tc nhanh, tin cy, d thit k cho ng dng, nn Trong my tnh SRAM thng dng nh RAM cache. Trong cc thit b in t s, c bit trong cc vi iu khin ca HTN , SRAM c s dng ph bin bi cc tnh nng nn trn. Hn na cc HTN khng cn dung lng b nh ln nh my tnh ph thng. DRAM (Dynamic RAM) RAM ng Hnh di l s mt nh RAM ng c to t 1 transistor v 1 t in. RAM ng dng k thut MOS. Mi bit nh gm mt transistor v mt t in k sinh. Vic ghi nh d liu da vo vic duy tr in tch np vo t in v b mt dn theo thi gian. Do vy cn khi phc li d liu, gi l lm ti (refresh). Qui trnh lm ti din ra lin tc, t ng theo chu k (v d khon 2s, hay khc ty dung lng v cng ngh ch to), v th gi l RAM ng. Vic lm ti c thc hin vi tt c cc nh trong b nh. Cng vic ny c thc hin t ng bi 102
103
104
Cc cch ghi/c/lm ti ca DRAM Khi thit k DRAM d vo c t ca CAS/ v RAS thit k logic iu khin Cc loi DRAM s dng trong my vi tnh PC 1. SDRAM (Vit tt t Synchronous Dynamic RAM) c gi l DRAM ng b. SDRAM gm 3 phn loi: SDR, DDR, v DDR2. o SDR SDRAM (Single Data Rate SDRAM), thng c gii chuyn mn gi tt l "SDR". C 168 chn. c dng trong cc my vi tnh c, bus speed chy cng vn tc vi clock speed ca memory chip, nay li thi. o DDR SDRAM (Double Data Rate SDRAM), thng c gii chuyn mn gi tt l "DDR". C 184 chn. DDR SDRAM l ci tin ca b nh SDR vi tc truyn ti gp i SDR nh vo vic truyn ti hai ln trong mt chu k b nh. c thay th bi DDR2. o DDR2 SDRAM (Double Data Rate 2 SDRAM), Thng c gii chuyn mn gi tt l "DDR2". L th h th hai ca DDR vi 240 chn, li th ln nht ca n so vi DDR l c bus speed cao gp i clock speed. 2. RDRAM (Vit tt t Rambus Dynamic RAM), thng c gii chuyn mn gi tt l "Rambus". y l mt loi DRAM c thit k k thut hon ton mi so vi k thut 105
Phn cp b nh c th hin trn : Quan st h thng nh t CPU ra ngoi ta c cc thnh phn nh sau: 1. Cc thanh ghi a nng cha mt ton hng hay kt qu trung gian, c iu khin bng phn cng 2. B nh m Cache cha mng lnh v s liu c s dng trong thi gian gn nht, c iu khin bng phn cng v chng trnh. B nh cache t gia CPU v b nh chnh. Cache trong CPU (cache L1), cache ngoi CPU (L2): B nh cache cha mt phn bn sao ca b nh chnh. Khi CPU thm nhp vo d liu n a a ch ti b iu khin Cache, sau mt trong hai qu trnh s xy ra. - Trng (cache hit): nu a ch tm thy trong Cache - Trt (cache miss): nu a ch khng c trong Cache Khi trt mt khi nh t b nh chnh s c a vo thay th cho mt ng (khi) ca Cache. ng no s c chn thay da trn hai nguyn l sau: - Cc b theo thi gian: nu CPU thm nhp vo mt nh th c xc sut cao n s thm nhp nh trong tng lai. - Cc b theo khng gian: nu CPU thm nhp vo mt nh th c xc sut cao n s thm nhp cc lnh v d liu t st cc v tr trong tng lai. Trng hp ghi vo Cache d liu s c ghi vo b nh chnh, ta phn bit hai trng hp sau:
107
108
Hnh 2.44 S v ngoi mt vi mch (chip) nh (pin-out) Tu theo tng chip, s lng chn a ch v s lng chn d liu c th khc nhau ph thuc vo di t nh v dung lng ca chip nh. di t nh ca chip nh c th l 1bit, 4 bits hoc 8 bits, trong khi s chn a ch c th t 10 tr ln tu thuc vo dung lng ca chip nh. Trong trng hp di t nh ca chip l 1 bit, ta cn phi ghp song song 8 chip to thnh 1 byte, ghp song song 16 chip to mt t word 2 bytes). Ngy nay, vi cng ngh chip mt cao, thng 1 chip nh c th c dung lng rt ln, v d 256 x 1 Mb/Chip, 512 x 4 Mb/chip, 1 Gb/chip. Nh c th to ra 1 thanh RAM c dung lng ln nh PC hin ang s dng. Vn t chc logic ca b nh l mt chng mc phc tp vt ngoi tm ca gio trnh, nn y ch nu ln mt vi khi nim n gin ph hp cho ngi thit k. Thit k v nh l mt vic rt quan trng v rt cn thit trong vic xy dng mt h vi tnh. Cc v nh c thit k thng thng l EPROM, cc loi v nh RAM, t cc chip nh c sn. Thng thng, cc chp nh c chn l nhng chip thng dng trn th trng, c cc thng s k thut ch yu sau: a. Dung lng nh ca chip nh tnh theo n v Kbyte b. di t nh ca chp nh tnh theo s bits 109
110
111
V d thit k RAM ng (DRAM ) DRAM dng phng php dn knh np ln lt (2 ln) a ch hng v a ch ct vo m a ch. S thi gian di y cho thy nhng lu khi thit k vi DRAM.
Hnh 2.47 S khi chc nng ca 1 chip DRAM thng mi 4164Kb Tn hiu iu khin : - RAS/: khi RAS (Row Access Strobe) tch cc th a ch hng c np (cht li). - CAS/: khi CAS (Column Access Strobe) tch cc th a ch ct c np (cht li). 112
Hnh 2.48 Quan h cc tn hiu iu khin DRAM 4164x1 thng mi. DRAM 4164 c dung lng 64 Kbit/chip, c t chc kiu ma trn gm (256 hng x 256 ct). chn mt bit trong ma trn cn c a ch v tr hng v ct c hai b gii m hng v gii m ct xc nh. u vo cho mi b gii m cn 8 bit c 256 u ra, vy ta s phi hp cc dy a ch t CPU 8085, bao gm A7-A0 cho hng v A15-A8 cho ct. CPU pht a ch vo vi mch dn knh SN 74257, u ra ln lc s l A7-A0 cht vo DRAM bng xung RAS/ A15-A8 bng xung CAS/. Khi thit k Mch logic iu khin to RAS/ v CAS/ v WE cn s dng cc tn hiu iu khin ta CPU pht ra. c c 64KB, cn 8 chip ni trn.
113
Hnh 2.49 CPU 8080/8085 Module DRAM 64 KB ton phn d) Thit k ROM/EPROM Trong tt c cc h my vi tnh, thnh phn khng th thiu l ROM/EROM/EPROM, vi chc nng lu cc phn mm khng c mt i khi mt in. Cc phn mm ny ty vo lnh vc ng dng my vi tnh, c th l : Nu l my tnh vn nng, nh PC, s l chng trnh BIOS (Basic Input Output system) c chc nng lu cc device driver, cc thng s khi ng cc vi mch iu khin cc thit b ghp ni vo PC trn bo mch ch hay qua cc slot m rng, cc routine, subroutine, v phn m khi ng H iu hnh t thit b ngoi. Nu l cc thit b in ton, v d nh HTN, th cha phn mm h thng iu khin thit b v ng dng c th m thit b x l. Nh cp cc loi phn mm y rt a dng. V d: Xy dng module ROM c dung lng 32KB, s dng Chip 2764 8K x 8 bit, a ch u l 20000hex. Chng trnh ng dng np vo module ny. Thit k mt ROM, loi 2764 (8Kx8bit), Vi mch 2764 c thi gian truy xut vo khong 250ns ph hp vi cc b vi x l tc cao nh Intel 8MHz 8086-2 trong h thng ny 2764 hot ng khng yu cu trng thi "i" ( Wait state ). Vi mch 2764 hot ng trong ch d 114
115
Gii m th nht c 5 u vo t A19-A15 v 32 u ra chn vng a ch. Vi gi tr: 00100 , chn vng a ch yu cu (20000-27FFF)hex = 32 K, s c u ra cho php gii m th 2 hot ng. Gii m th hai dng A13-A14 to ra 4 CS/ chn 4 chip, trong khi A12-A0 chn nh trong mi chip: Chn vng A19.A18.A17.A16.A15 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 Chn chip A14 A13 0 0 1 1 0 1 0 1 Chip c chn theo A14 v A13 C0(8K byte th 1) C1(8K byte th 2) C2(8K byte th 3) C3(8K byte th 4)
A12A11. A0 0. . .. .
116
Hnh 2.51 S thit k ROM 32KB t 4 Chip 2764 Vi cc tng nh trn c th thit k cc loi b nh cn thit cho mt HTN. iu lu ch l: Loi b nh no (ROM hay RAM) s dng v dng cho mc ch g (BIOS, HH hay D liu,ng dng). Khng gian a ch s dng t u n u trong ton b khng gian a ch m CPU cho php. Cch truy nhp RAM ca loi CPU s dng (tuyn tnh, phn on, phn trang, tr trc tip, tr gin tip qua cc thanh ghi ). V d sau y l phn hoch a ch b nh mega u tin (0000:0000 10000:0000) trong PC chun:
117
Hnh 2.52 V d v cch phn b b nh trong my tnh PC Trong : F000:0000 n F000:FFFF cho BIOS (64K cao nht), a ch sau RESET: CS:IP=FFFF:0000 (tc FFFF0) l lnh u tin thc hin (JMP RESTART F000:E05B. a ch FFFF1 n FFFFF dnh ring 16 byte cao nht cho CPU. Phn Extended (t 10000:0000 tr ln) l ngoi MB u tin vi A20 kch hot !
118
119
C000 - FFFF
16 KB
Theo a ch cho thit b (Imput/Output mapped Input/Output). Phng thc ny n gin v truy xut nhanh. Cc lnh in hnh c c php nh sau: Cho CPU 8080/8085: IN a_ ch_ port_in ] OUT a ch_ port_out] Khi thc hin lnh, [a ch port] s t trn c AD7-AD0 v A15-A8 v u ging nh nhau (doublicated). 8080/8085 ch cho ti a 256 cng. Vi CPU x86, dng 16 bit cho cng, do s cng s rt ln (65.535 cng). D liu trao i c th 8 bit/ln hay 16 bit /ln. Lnh c vo/ghi ra thng kt hp vi cc i AX v DX (hoc EAX v EDX). Trong src thng l DX cha a ch_ port_in] hay a ch_ port_out] v des thng l AL hay AX cha d liu c vo hay ghi ra t/ti cng ghp ni. Trong ch bo v (protected Mode hay Kernel Mode), ngi dng bnh thng khng s dng c lnh IN/OUT. Lnh thc thi: IN des, src OUT des, src V d cng chun cho bo mch v ngoi vi chun s dng trong PC: I/O address range Device 00 1f First DMA controller 8237 A-5 20 3f First Programmable Interrupt Controller, 8259A, Master 40 5f Programmable Interval Timer (System Timer), 8254 60 6f Keyboard, 8042 70 7f Real Time Clock, NMI mask 80 9f DMA Page Register, 74LS612 87 DMA Channel 0 83 DMA Channel 1 81 DMA Channel 2 82 DMA Channel 3 8b DMA Channel 5 89 DMA Channel 6 8a DMA Channel 7 8f Refresh a0 bf Second Programmable Interrupt Controller, 8259A, Slave c0 df Second DMA controller 8237 A-5 f0 Clear 80287 Busy 121
Ghi nhn trng thi Ghp ni l k thut thch ng v ng b hot ng trao i thng tin gia CPU v thit b ngoi vi, bao gm thch hp dng tn hiu (bin i, qui i mc nng lng) theo chun TTL ca my tnh. Qu trnh ny thun ty l thit k in t (s-s, analog-sanalog, s-analog). ng b hot ng c th thc hin theo cch din gii trnh t s xut hin ca cc tn hiu iu khin theo thi gian, hay thc hin kt hp vi phn mm iu khin. Vic kho st thng tin v trng thi hot ng ca thit b l rt quan trng. Thit b c th sn sng hoc khng/cha sn sng trao i d liu. ghi nhn ta gi l thng tin trng thi thit b , c th hin bi mt loi tn hiu mang thng tin trng thi. Qui trnh kho st trng thi trc khi thc hin trao i d liu gi l bt tay (hand shaking) v c th hin trong chng trnh iu khin thit b (device driver). M hnh ghp ni vo/ra M hnh ghp ni bao gm cc thnh phn sau y: Ghp ni thc hin qua BUS h thng hay BUS m rng, gi chung l BUS S dng cc vi mch thch ng ghp ni gia BUS v thit b ngoi (latch SN74773, SN 74244/245, Flip/Flop Type D SN 7474, gii m SN 74138, gate SN 7400, 3-state SN 74125, open collector SN 7403 . . Cc vi mch ny to thnh cng d liu trao i gia CPU v thit b i qua li. CPU truy nhp vo cc cng thc hin ng b qui trnh trao i d liu. Cc thit b ngoi, ghp vo bo mch my tnh, cung cp cc tn hiu cn thit thc hin ghp ni k thut.
H thng ng dy a ch (ADDRES BUS ) B vi x l trung tm (CENTRAL PROCESSING UNIT) H thng ng dy iu khin (CONTROL BUS) H thng ng dy d liu (DATA BUS)
Status
STROBE
Thit bi ngoi
DATA in/out
Hnh 2.54 Cc kiu ghp ni 2.6.2 Ghp ni CPU ch ng Vo/ra do CPU ch ng cn gi l vo/ra iu khin bng chng trnh c chia thnh hai nhm: Vo/ra s liu bng chng trnh khng iu kin Vo/ra s liu bng chng trnh c iu kin (handshaking-i thoi) a) Vo/ra s liu hng iu in, iu hin bng ch ng trnh Vo/ra s liu khng iu kin c cc c im nh: - CPU chuyn s liu thng qua chng trnh - CPU gi thit TB vo/ra lun sn sng chuyn s liu - D liu c vo CPU qua cng sau lu li o b nh cho cc x l tip theo. - Vic chuyn s liu c thc hin gia cc thanh ghi ca CPU (ACC) v thanh ghi (cng ghp ni) ca TB vo/ra, sau lu li o b nh cho cc x l tip theo. B nh [CPU_ACC] [ Cng ] [Thit b] c vo:
124
Hnh 2.55 c d liu vo: D liu_t thit b vo ACC sau vo RAM V d ng dng: Khi kim sot nhit , thit b nhit lun c s liu o v x l. Trong trng hp ny ghp ni vi thit b nhit tr nn n gin. Tng t cho m hnh a d liu ra thit b. Lnh thc hin: IN [port_in] hoc IN , a ch_ port_in] Cc bc thc hin: - CPU a ra BUS a ch a ch cng port_in cho gii m, to CS/ m port_in. - CPU a ra BUS /k tn hiu IORD - S liu t vi mch 3-state chuyn vo BUS d liu v di tc ng ca tn hiu IORD/ v c a vo ACC ca CPU qua port_in 3 trng thi. - Thc hin chuyn ACC vo RAM. a ra: Lnh thc hin: OUT [ port_out] hay OUT [ port_out], AL
125
Hnh 2.56 a d liu t RAM vo ACC sau ACC ra thit b Cc bc thc hin: - CPU a ra BUS a ch a ch cng port_out cho gii m, to CS/ m port_out. - CPU a d liu cn ghi ra BUS d liu - CPU a tn hiu IOWR/ cht d liu, di tc ng ca tn hiu IOWR/ s liu c ghi vo thanh ghi cht, t thit b nhn d liu vi tn hiu RD/ ca thit b. Ghi nhn cn bn y l CPU v tr trung gian ca qui trnh nhn hay gi d liu. Chi ph mt cng cho mi cu hnh. Mi ln trao i 1 byte. C ch ny c hn ch v CPU ra lnh c (IORD) hay ghi (IOWR) m khng kim tra xem thit b vo/ra c sn sng gi hay nhn s liu hay cha do khi ng dng cn phn tch hot ng ca thit b c gii php ghp ni ng mc ch. b) Vo/ra s liu c iu in, iu hin bng ch ng trnh Khi ghp ni vi cc thit b m thit b cn c thi gian hon thnh mt x l (tc v), trong qa trnh ghp ni, CPU cn c ghi nhn trng thi sn sng ca thit b nh gi v ra quyt nh tip theo.Qu trnh kim tra trng thi i khi phi thc hin mt vi ln trc khi quyt nh tip tc hay t b trao i d liu vi thit b. Ti sao ? Nu thit b lm vic tt, mi chuyn tri chy, nhng nu thit b hng hc, chng trnh iu khin khng th c ch thit b sn sng mi c, chu trnh phi kt thc. Qui tc ny gi l i thoi, hay mc ni c iu kin l vy. V mt thc hin, y cn t nht 2 cng: 1 cng c trng thi thit b, cng kia trao i d liu vo hay ra. Trng thi thng thng mc d n gin ch cn 1 bit th hin, v d STATUS=1, thit b sn sng , v ngc li. Tuy nhin c nhiu trng hp trng thi c th l tp hp ca vi bit. V d khi ghp vi cng truyn thng d b (UART), c n 5 bit phn nh trng thi ca UART. Cc bit trng thi c ni vo BUS d liu qua cc mch 3-trng thi v c iu khin bng lnh. 126
Hnh 2.57 Trao i d liu c vo c iu kin Cn CS0/ c trng thi READY ca thit b qua port_status, gi nh ni vo D0 ca BUS d liu. Cn CS1/ c d liu qua port_in, hp thnh t Flip/flop, cng 3-state, ni vado bit D0 ca BUS d liu. Cc bc thc hin: - CPU a a ch port_status ra BUS a ch, vo gii m, to CS0, c STATUS, gi tr bit READY ti D0. (IN port_status) - CPU kim tra gi tr ca READY. - Nu READY=0, quay li c STATUS NuREADY=1, CPU c d liu vo ACC (IN port_in) - Thc hin lnh ct d liu vo RAM Lu iu khin:
127
C = n1
C=0 ?
c STATUS Port_status
C = C-1
READY ? D0=1
C...s m ln kim tra trng thi t/b C2...s byte trao i vi t/b
C2=C2-1
C2=0 ?
Kt Thc
Hnh 2.58 Lu iu khin c d liu v c iu kin BI TP: 1.a ra c i thoi: Thit k mch ghp nia d liu ra; Vit chng trnh iu khin qu trnh a d liu ra.
c) Quay vng (polling) Trong phng php vo/ra c i thoi, nu thit b vo/ra cha sn sng nhn hay gi s liu th CPU phi ch cho thit b sn sng. Ni cc khc phng php ny gy lng ph thi gian ca CPU. Khi h thng c nhiu thit b ghp vo, cn c chin thut gin ti a thi gian ch trn mt thit b. Cch n gin l dng phng php quay vng hi trng thi cc thit b vo/ra. V nguyn tc ch hi 1 thit b mt ln, nu thnh cng, thc hin trao i d liu, cn khng 128
Thit b #1 READY ?
Thit b #2 READY ?
Thit b #n READY ?
Hnh 2.59 Lu iu khin c d liu kiu quay vng 2.6.3 Ghp ni I/O ch ng
a)
Ngt (Interrupts)
Nhng hn ch ca phng php vo/ra bng chng trnh c khc phc bng phng php vo/ra bng ngt. Trong phng php ny thit b vo/ra ch ng khi ng qu trnh vo/ra s liu. Khi s dng vi c ch ngt, phi qun trit tng v ngt khi gn cho thit b, l thit b s c nhu cu trao i d liu, tuy nhin thi im nhu cu xut hin th khng th bit trc c. chnh l u im vt tri m ngt mang li: Thit b ch ng vo bt c lc no, CPU khng b rng buc vi thit b, do chi ph thi gian nh phng php CPU ch ng gim i rt nhiu. Ngt cn mang mt ngha khc l tnh tc thi nu coi ngt l biu hin ca mt s kin. Trong cc HNT nhng vi x l theo thi gian thc, y chnh l im ch 129
Mt h ngt c bn:
130
Ngun pht sinh ngt (Input sources) L cc tn hiu ngt t cc thit b trong hay ngoi bo mch, v d t ADC/DAC, t UART , t cc cng ghp ni, DMAC cc tn hiu c th kch hot dng mc (level) hay sn ln hay xung ca tn hiu ngt (edge). CPU phn ng vi tn hiu qua lp trnh. C trng thi ngt (Interrupt flags) Mi ngt kt hp vi c, ch cn 1 bit, bo trng thi cuiar ngt . Cc bit thng tp hp trong 1 thanh ghi c ngt (interrupt register hay interrupt flag) c/ghi c. CPU c bit ngt xut hin, v ghi (xa) sau khi x l cho ngt . Mt n ngt (Interrupt mask) Mi ngt kt hp vi 1 bit ca thanh ghi mt n. Lp trnh cc bit ca thanhg ghi s cho php hay cm ngt tng ng kch hot. Phn loi kiu ngt:
131
Ngt mm thc cht thc hin mt li gi hm c bit c kch hot bi cc ngun ngt l cc s kin xut hin t bn trong chng trnh v ngoi vi tch hp trn Chip. V d nh ngt thi gian, ngt t thit b nh ADC/DAC, C ch ngt ny cn c hiu l loi thc hin ng b vi chng trnh v n c kch hot v thc thi ti cc thi im xc nh trong chng trnh. Hm c gi s thc thi chc nng tng ng vi yu cu ngt. Cc hm thng c tr bi mt vector ngt m c nh ngha v gn c nh bi nh sn xut Chip. V d nh h iu hnh ca PC s dng ngt s 21hex gn cho ngt truy nhp c d liu t a cng v xut d liu ra my in. Ngt cng
Ngt cng c th c xem nh l mt li gi hm c bit trong ngun kch hot l mt s kin n t bn ngoi chng trnh thng qua mt cu trc phn cng (thng c kt ni vi th gii bn ngoi qua cc chn ngt). Ngt cng thng c hiu hot ng theo c ch d b v cc s kin ngt kch hot t cc tn hiu ngoi vi bn ngoi v tng i c lp vi CPU, thng l khng xc nh c thi im kch hot. Khi cc ngt cng c kch hot CPU s nhn dng v thc hin li gi hm thc thi chc nng phc v s kin ngt tng ng. Trong cc c ch ngt khong thi gian t khi xut hin s kin ngt (c yu cu phc v ngt) ti khi dch v ngt c thc thi l xc nh v tu thuc vo cng ngh phn cng x l ca Chip. T chc to ngt c th n gin nu CPU h tr nhiu u vo ngt v h thng khng cn nhiu ngt cng. V d nh trong CPU 8080/8085 c 4 ngt (RST7.5, RST6.5, RST5.5 v TRAP) v 8 ngt mm (RST0 n RST7). Tuy nhin s thit b nhiu, s tn hiu ngt cng tng 132
Hnh 2.61 Thit kt vi ngt cng che c INTR ca CPU Hy xem xt tin trnh ngt nh sau chy trnh: Khi cn trao i thng tin, thit b ngoi vi gi tn hiu yu cu ngt (Interrupt Request-IRQ) ti u vo INTR ca CPU. CPU s thc hin nt lnh hin ti v tr li bng tn hiu nhn bit yu cu ngt (INTA). Chng trnh chnh lc ny b tm dng (ngt) v CPU chuyn sang thc hin chng trnh con phc v ngt (thc thi ISR ca ngt ), tc l chng trnh con trao i thng tin vi thit b ngoi vi yu cu ngt. Sau khi xong cng vic phc v ngt, CPU quay v thc hin tip chng trnh chnh k t lnh tip theo sau khi b ngt.
133
Hnh 2.62 Vector ngt v chuyn x l ti ISR Cc tn hiu yu cu phc v ngt t mt thit b ngoi vi bt k c gi ti chn nhn yu cu ngt ca CPU c th thng qua mt khi iu khin ngt. Tu theo ngi lp trnh m yu cu ngt c c chuyn ti CPU hay khng (thng qua chin thut nhn v x l ngt vi cc lnh cho php ngt (EI) hay cm ngt (DI). Trong trng hp yu cu ngt c gi ti CPU, x l ca CPU gm cc bc sau: Qu trnh thc hin ngt: - CPU hot ng bnh thng - Khi thit b vo/ra sn sng chuyn s liu s gi yu ngt ti CPU bng tn hiu IRQ ti du vo INTR (Interrupt Request) ca CPU - CPU thc hin nt lnh ang thc hin trc khi tr li chp nhn ngt - CPU nhn v tm cch xc nh ngt v tr li thit b vo/ra bng tn hiu INTA (Interrupt Acknowledgement) - y PSW (Program State Word) v PC (Program Counter) vo ngn xp - Xo cc c IF (Interrupt Flag) v c TF (Trap Flag) 134
Hnh 2.63 T chc ngt vi iu khin ngt Nhng iu lu khi vit chng trnh ISR: nhng lnh u tin ca ISR thc hin l: y cc thanh ghi ca CPU vo STACK, Thc hin vic cm ngt trnh qui ngt nu cn, hoc cm cc ngt khc M x l ca ISR Khi phc cc thanh ghi ca CPU Khi phc li kh nng chp nhn ngt cho cc ngt tm cm Quay v (RETURN) chng trnh b gin on trc . Lp trnh ngt v ci t vector ngt l vic lm cn thn trng. Cc ngt t chc theo vector ng thi cng l theo mc u tin, nn khi thit k cn c tng r rng. V mc u tin v s dng mc u tin: NMI (Non Maskable Interrupt) l yu cu ngt tc thi, khng th cm hay cho php bng chng trnh. Ngt theo Vector Ngt mm dng lnh (INT) gi cc chng trnh phc v ngt ca h thng. 135
Hnh 2.64 M rng s ngt vi 2 vi mch 8259 s dng 8259, cn nghin cu c t v phng php lp trnh cho vi mch ny. S cha c Chip select (CS/), cn ty vo thit k c th. b) Truy nhp trc tip vo b nh (Direct Memory Access-DMA) Trong cc phng php vo/ra trnh by trn c cc nhc im sau: 1) S dng phng php vo/ra iu khin bng chng trnh ta thy: - c d liu vo bng chng trnh phi chuyn s liu gia thit b vo/ra v b nh thng qua ACC: B nh [CPU_ACC] [ Cng ] [Thit b] Trong c hai bc cn thc hin: 1. [DATA_ghp ni_t thit b] ACC 2. [ACC] MEM 136
Hnh 2.66 DMA v hot ng ca CPU l c lp V du: Thit k vi DMAC: S dng Intel DMAC 8237 138
140
141
142
Chn 1 2 3 4 5
Tn gi STROBE D0 D1 D2 D3
Hnh 2.68 Cng song song trn PC v gii ngha cc chn cng
Lu d thi gian m t nguyn tc ghp ni vi my in, trong (Ra) c ngha tn hiu ra t cng v(Vo) l tn hiu t my in.
a ch truy nhp cng: Address 3BCh - 3BFh Notes: a ch ny trc ay hay kt hp trn bo mach video. Khng h tr ch ECP addresses (Extended Capabilities Mode) Cho cng LPT 1 Cho cng LPT 2
Khi s dng cng song song a d liu vo, c th d dng cc tn hiu trng thi nh ACK, PE, BUSY, SELECT, cc cng c dng ty bin theo s kho lo ca ngi thit k. Hn ch ay l ch c th c vo 4 bit mt ln. cc PC hin i cng ny vn nng hn gi l cng hai chiu:
Hnh 2.70 Cng song song hai chiu Xem thm: http://www.beyondlogic.org/spp/parallel.htm#6 Cng ni tip. Trong khi cng song song c u im v s bit truyn v c th t tc rt cao, th im yu ca cng l khon cch kt ni. gii quyt vn ny phi s dng ti cng ni tip. Bn cht ni tip l phi trao i gia hai my vi nhau tng bit mt v lnh vc ng dng ca truyn thng ni tip li rt ph bin. Tuy nhin truyn ni 145
Hnh 2.71 u ni RS 232 cc loi DB9, DB 25 v DEC MMJ D-Type-25 Pin No. Pin 2 Pin 3 Pin 4 Pin 5 Pin 6 Pin 7 Pin 8 D-Type-9 Pin No. Abbreviation Pin 3 Pin 2 Pin 7 Pin 8 Pin 6 Pin 5 Pin 1 TxD (Ra) RxD (Vo) RTS (Ra) CTS (Vo) DSR (Vo) SG (V my) DCD (Vo) Full Name (Transmit Data Serial). C liu pht ra t DTE (v duh PC, HTN) (Receive Data Serial). Nhn d liu t DCE v DTE (Request To Send). DTE sn sng pht d liu ra. (Clear To Send). DCE sn sng nhn d liu do DTE pht ra. (Data Set Ready). DTE sn sng nhn d liu t DCE. Signal Ground (Carrier Detect). kt ni vi DCE 146
Mt s cng ni tip khc: RS-422 (H thng tc cao tng t RS-232 nhng dng tn hiu vi sai ) RS-423 (H thng tc cao tng t RS-422 nhng dng tn hiu kiu khng cn bng) MIL-STD-188 (chun qun s, ging RS-232 nhng cht lng t hn (tr khng, sn ln dc hn) EIA-530 (tc cao s dng chun cc thuc tnh v in cua EIA 423, chn ni ca RS422 hay RS-423,) EIA/TIA-561 Kt ni 8 v tr, khng ng b gia thit b d liu u cui (Data Terminal Equipment) v thit b mch d liu kt thc (Data Circuit Terminating Equipment ) dng trao i d liu nh phn ni tip. EIA/TIA-562 (Chun qui nh cho giao din kt ni s khng cn bng (Electrical Characteristics for an Unbalanced Digital Interface (low-voltage version of EIA/TIA-232) TIA-574 (standardizes the 9-pin D-subminiature connector pinout for use with EIA-232 electrical signalling, as originated on the IBM PC/AT)). Mt s cng hin i khc: USB (Universal Serial Bus) l cng ph bin dng trong cc thit b nhng, v d b nh flash ngoi dng vi PC. Cc thit b nhng trong mt t hp thit b ni vi nhau qua HUB trao i d liu Cng 1394 (cn gi l FireWire) cc nhanh t ti 800Mbps, cho php kt hp ti 63 thit b cng lc, cm l chy v cm/rt nng. Cc thit b nh camcorder truyn video vi PC t tc rt cao. Cng SI-P (Serial Interrface port - Programmer): y l mt cng rt c bit pht trin kt ni gia mt bo mch HNT ang pht trin vi PC qua cng COM, trong PC l mi trng lp trnh phn mm cho HTN. Xem http://www.lancos.com/siprogsch.html#baseboard
147
Hinh 2.72 PC lm h pht trin phn mm cho HTN, ph hp tn hiu gia RS-232 cua PC v cng SI-P ca HTN ang pht trin
Hnh 2.73 Cng SI-P n gin, dng ngun t RS 232 ca PC 2.6.5 Ghp ni vi tn hiu tng t (analog signal) Cc thit b m HTN phi kim sot, iu khin s dng cc tn hiu lin lc vi HTN thng qua cc ghp ni. Cc tn hiu c th dng ri rc (discrete), hay bin thin lin tc theo thi gian, gi l tn hiu tng t (analog). Cc tn hiu trong t nhin phn ln dng tng t, biu din s bin thin lin tc theo thi gian ca mt i lng vt l no . Trong khi dng my tnh x l cc tn hiu , cn mt cng on nht nh chuyn ha tn hiu tng t thnh tn hiu ri rc, gi l s ha (digitalization). Lm s ha i khi ging nh m ha tn hiu analog vy, bi v c nhiu cch s ha v u ra ca s ha li c th biu din bi cc tp 148
Tc ly mu, trung thc s ha: ph thuc vo TCONVENSION ca l thi gian bin i xong mt mu ca ADC, t kt hp vi nh lut NyquistShannon tnh tn s ly mu:
Biu din Fourier transform ca x(t) nh trn, v nu X(f) = 0 cho mi | f | > B, th x(t) b gii hn b bng thng B. T tn s ly mu ti to tn hiu gc l :
fsample > 2B
149
ADC
Cm bin Cc knh vo
HTN
Hnh 2.74 ADC v ghp vo HTN 2.6.5.3 Bin i s thnh tng t (DAC) Trong trng hp thit b nhn gi tr tng t t HTN, cn c b bin i s-tng t: 150
HTN
DAC
Lc thp tn
I->U
Hnh 2.75 HTN v DAC ADC v DAC l mt ch rt phc tp, c th tham kho t cc bi hc khc. Khi s dng tham kho ti liu chn loi ph hp vi ng dng s thit k. Tuy nhin mt s thng s sau y c nu ra khi chn ADC/DAC: phn gii ca ADC: 8 bit, 10 bit, 12 bit; Thi gian chi ph cho mt bin i (hay tc bin i); nhy u vo tng t (hay thang o), gii (bin ), cc tnh tn hiu u vo; Ngun nui (n cc hay hai cc:+/-), bin V; Cn hay khng cn mch ly mu u vo (Sample-hold circuit); Ghp ni vi vi tnh (CPU), c tn hiu i thoi, ngt; . 2.7 KT CHNG
Chng ny cp n nhng k thut lin qua n phn cng, t hot ng ca CPU, ca BUS ( BUS ca CPU v BUS h thng). Vic nm bt v hiu cc nguyn tc lm vic ca CPU gip cho cc phn tip theo, l nhng k nng h tr cho vic thit k cc h thng vi tnh hay HTN, bi v nguyn tc khng c g khc bit. to ra mt h thng vi tnh, cn phi thit k b nh v m rng ghp ni vi cc thit b ngoi. Ghp thit b ngoi vo HTN l khu khng th thiu, bi HTN lin quan chnh ti cc thit b, l i tng HTN qun l v iu khin hot ng ca chng. Cc phng php ghp ni l chun k thut, do hiu c nguyn l v p dng cho tng ng dng s lm cho HTN hot ng hiu qu. 2.8 CU HI V BI TP
2.8.1 Cu hi cui chng 1. BUS hp thnh t cc tn hiu no ca CPU, chc nng, chiu trao i d liu mi BUS c khc nhau ? 151
Hnh 2.76 Bi tp thit k ghp ni ADC, cng LPT vo my tnh PC 3 ) Ghp ni vi cng kh trnh 8255. S dng ISA BUS trn PC. Mc ch bi tp: s dng vi mch a nng 8255, ghp ni vi BUS h thng m rng ISA: -S dng a ch IO cho Prototype 300Hex- thc hin ghp ni vi mch 8255 vi PC qua BUS ISA. Cng 301 c trng thi ca 8255, Cng 303 gi lnh cho 8255, mode 0. -S dng cng ca 8255 ni ti hin th l LED 7 thanh - Vit chng trnh thc hin ghp ni, a ra cc s lm cho n sng. 153
Hnh 3.1 M hnh tng qut cc phn mm trn my tnh Trong phn mm h thng t gia phn mm ng dng v phn cng. Hy xut pht t mt ng dng: khi ng dng mun s dng phn cng ca my tnh (truy nhp ROM, RAM, thit b ngoi nh a cng, mng ), ng dng s chuyn yu cu theo mt phng thc qui c gi h thng (system calls-GHT). GHT l mt giao din lp trnh m ng dng s dng khai thc cc dch v ca phn mm h thng. n lt mnh, phn mm h thng s gi lnh ti 155
a.
b.
c. Hnh 3.2 M hnh tng qut cc kiu sp xp phn mm trn my tnh Hnh 3.2 a. l cu hnh dng n gin nht. Cc thit b nhng vi nhng chc nng iu khin kiu ON/OFF c th s dng. Hnh 3.2 b. l cu hnh nng cao vi phn mm trung gian thc hin cc x l phc tp hn, theo cc u tin, a x l hn ch. Trong khi hnh 3.2 c. L cc h thng tinh xo hn, vic qun l ng dng v qun l phn cng cn c h iu hnh, c phn mm trung gian. H c th m rng bng cc bo mch c TKTB nhng trn bo v kt hp vi h iu hnh qua c ch HAL. Cc TKTB trong HTN thng xp vo hai lp: Lp xc nh theo kin trc (architecture-specific) ca HTN, cc TKTB lp ny qun tr phn cng hp nht vi CPU. Cc kin trc kiu microcontroller, hay kin trc Havard 156
3.1.4 Pht trin TKTB Cc cng vic cn lm thit k TKTB: Thu thp thng tin: Cc thng tin v my tnh (host) s ci TKTB ln : loi CPU, loi HH, kin trc BUS; Cc qui nh c dng vit TKTB: Cch t tn cho thit b, m t thiiest b, ti liu. Xc nh cc thuc tnh ca thit b: thit b l kiu khi (block device) hay kiu k t (character device), thit b c h tr cu trc h thng tp (a cng, USB, ), h tr chui (byte stream), c kh nng phn ng vi ngt (cm ngt qui khi ang trao i khi lng ln d liu, khi ko di chu k ngt khng cm ngt tip theo, thao tc hng i d liu c th b ngt hay ngt) , khi ng li (reset) nh th no. M t v thit b: kiu thit b, c bao nhiu thit b cng kiu c th ci t trn h thng, mc ch ca thit b. Thit k TKTB Kiu thit b: k t (Character ), Khi (Block ), C hai: khi v k t, Mng (Network ). 159
3.1.5 Mt s v d v TKTB TKTB iu khin ngt: Ngt l c ch ph bin c s dng. Chng 2 c m t v cch thc ngt xut hin v cc bc x l ngt. Di y s nu ra mt s nt chnh khi thit k TDDKTB cho ngt. u chng ta lit k tm chc nng ca TKTB, trong c t nht 4 chc nng kt hp vi m t khi xy dng TKTB ngt:
160
TKTB li bo mch cm vo khe I/O h thng Khi m rng chc nng h thng thng cn ti bo mch thit k cho chc nng mi. Thng thng cm bo mch vo BUS h thng s hnh thnh mt c ch kiu ch (master) v th cp (slave). Giao tip bo cm thm s c kim sot bi vi mch ghp ni-iu khin trn bo (slave). Trong vi mch s c cc thanh ghi iu khin, thanh ghi trng thi sao cho master c th truy nhp v kim tra hot ng ca bo mch cm thm. TKTB cho bo mch s c cc chc nng sau : 1) Khi ng I/O: Khi ng bo cm thm sau khi bt ngun t h thng. 2) Tt I/O: tt hot ng I/O tren bo mch cm thm khi tt ngun. 3) V hiu I/O bo mch cm thm: cho php phn mm khc v hiu I/O. 4) Kch hot bo mch : cho php phn mm khc kch hot I/O tr li. 5) Kha/gii kha: cho php mt phn mm khc kha bo mch, hay cho php phn mm khc kch hot bo mch tr li. 6) c/ghi bo: cho php phn mm khc thc hin c/ghi d liu vi bo mch.
Trong chng 2 c v d v TKTB vi lu iu khin ghp ni c iu kin, cng l mt li vit TKTB. C th tham kho vi MS OS ti : How to Write a Windows Driver. http://msdn.microsoft.com/en-us/library/ms809956.aspx 1.Ci DDK 2. http://www.adp-gmbh.ch/win/misc/writing_devicedriver.html 3.2 H THNG NHNG THI GIAN THC Trc khi i vo m t v HTN thi gian thc, cn tr li mt s khi nim lin quan ti h iu hnh cho my tnh. Mt h thng tnh ton hay mt thit b k thut s lun cn c phn mm h thng. Phn mm h thng m nhim chc nng qun l ti nguyn nh phn cng my tnh (ROM, RAM, thit b lu tr thng tin, cc thit b ngoi vi ), tp thc hin giao tip ngi my, khi ng, cung cp ti nguyn v iu phi cc chng trnh ng dng, v.v. Mc phc tp ca phn mm h thng c th khc nhau t n gin n tinh xo. Cc HTN cng khng phi l ngoi l, c HTN n gin c HTN phc tp, i vi cc HTN phc tp khi phi thc hin nhiu ng dng ng thi, th cn c h iiu hnh a nhim h tr. 3.2.1 H iu hnh a nhim (multitasking) Phn ln HTN c s dng trong mi trng iu khin cng ngh, ti ty vo v tr trong ton b dy chuyn, HTN c th l cc loi vi qui m kin trc khc nhau. Tuy nhin phn 162
Ch ngi dng
X l ngt
fork():
to TT mi, chen ngang
Ch nhn
Lp lch
Dng, treo, i
s kin
Hnh 3.3 Trng thi ca tin trnh Tin trnh ch y trong ch ngi dng: ngi dng kch hot chng trnh ng dng. Tin trnh ch y trong nhn HH, tc nhn: khi chng trnh i hi ti nguyn, nhn HH thay mt ngi dng truy nhp ti nguyn (RAM, I/O) bng cc chc nng ca nhn, cc chc nng ny c kch hot t ng dng qua GHT hay ngt mm. Tin trnh dng, i, tc nhn: khung thi gian cho tin trnh ht, hay tin trnh b gin on v cc l do khc (dng x l ngt, i c ti nguyn). Tin trnh chuyn vo hng i (wake up) sn sng chy li, tc nhn: khi nhu cu ti nguyn tha mn, n lt chy li. H lp lch s thc hin qu trnh ny: Dng Hnh i Chy trong nhn Chy trong ch ngi dng kt thc. 164
165
Hnh 3.4 Trin khai API qua GHT T y c th thy cu trc c bn ca GHT nh sau: 1. Mt chng trnh chnh kch hot dch v h thng bng mt GHT. 2. By (TRAP) chuyn GHT vo nhn HH, nhn xc nh s hiu ca dch v. 3. Thc hin dch v. 4. Kt thc dch v v tr v ni pht sinh GHT. Hnh sau cho cc bc theo trnh t t lp trnh n thc thi GHT read():
Hnh 3.4 Nguyn l a trnh v quan h gia ch ngi dng v ch nhn HH 166
Ch ti chu k
Ch s kin
M thc thi
Thi gian
S kin
M thc thi
M thc thi
Hnh 3.3 Cc kiu tc v So snh gia chc nng (function), dch v ngt v tc v: Chc nng (function) - Tp hp cc lnh thc hin mt hnh ng. - c kch hot bi th tc Proc/Task/ISR. - Mi chc nng c bi cnh thc thi ring. dch v ngt (ISR) - ISR l c lp. - Kiscg hot bi ngt cng hay mm. - ISR c gn mc u tin. - Mi ISR c bi cnh ring. tc v (Task) - Tc v l c lp. - c ng b thc thi bi RTOS. - Lp lch chn mt tc v chy trong mt khung thi gian.
Lung (Threads): L nhng phn chia nh ca mt tin trnh, chy trn cc h c a CPU, v c kim sot bi h thng kim sot tin trnh. 167
Ngt ngoi
iu phi ngt
ISR
Ngt nh thi
Cc dch v thi gian v s kin Cc dch v (to tin trnh, lung, chuyn trng thi, nhn, pht d liu )
Lp biu v iu phi tc v
Thc thi tc v
Gi h thng, by
Nhn RTOS
Hu ht cc loi tc v xuyn qua lp biu. Hn cht (deadline): thi iim cui cng phi cho ra mt p ng trong cc h rng buc v thi gian. Trong hnh di y di l hn cht. Thi gian xut hin ai (arrival time): Khi s kin xy ra v tc v tng ng c kch hot. 168
t ai ri si fi di wi
Hnh 3.4 Biu thc hin mt tc v Lp lch (scheduling) : k hoch ha vic thc hin cc tc v theo thi gian. a) Phn loi lp lch, cc TT c phn ra lm hai lp theo nhu cu thi gian, l : 1. hng I/O (I/O bound) c ngha TT s dng nhiu ti I/O v s dng nhiu thi gian i kt qu I/O; 2. hng CPU (CPU-bound), l lp TT yu cu nhiu thi gian CPU. cc HH a nng, cng c cch phn bit khc theo lp ng dng nh: - Lp TT tng tc (interactive), tng tc thng xuyn vi user, do chi ph nhiu thi gian cho nhn bn phm, hay chut. Khi c u vo TT phI thc dy tht nhanh, thi gian tr trung bnh l 50 n 150 ms, nu qu chn, user co h c vn ; Cc ng dng nh son vn bn, shell, ho (tI to hnh nh) thuc lp ny; - Lp TT x l l (batch), khng cn c s can thip ca user, v thng chy nn (background). Do khng cn phi c p ng nhanh, nn thng khng c xp u tin cao, V d loi ny l cc trnh dch (compiler) hay c cu tm d liu (database search engine), cc tnh ton khoa hc; - TT thi gian thc (real time), c yu cu rt khc khe, khng bao gi b cn tr bi cc TT mc u tin thp, cn p ng thi gian tht nhanh, v quan trng hn c l thi gian p 169
Hn cht cng
Hn cht mm
Chu k
Khng chu k
Chen ngang
Chen ngang
tnh
ng
tnh
ng
tnh
ng
tnh
ng
Hnh 3.5 Phn loi cc gii thut lp lch thc hin tc v Lp lch hn cht mm thng c thc hin thng qua m rng mt s chc nng ca h iu hnh. V d nh cung cp cc mc u tin cho vic kch hot cc tc v hay gi h thng. Hn ch mm t thn n khng cha ng nhiu yu t c tnh quyt nh, thi gian xc nh c th x dch vi dung sai (c th ng k) hay tnh nhy cm thi gian khng quan trojnh lm (less time-sensitive). Lp lch hn cht cng li rt nhy cm vi thi gian (more time-sensitive). ng hn phi thc hin/hay kt thc khng th ko di, sai hn nh s dn ti hu qu (nghim trng). Chen ngang (preemptive): gii thut c s dng nu c tc v no c thi gian thc thi qu lu, n c th b tc v khc ngt hay nu mt s kin bn ngoi cn thi gian p ng ngn, s kin s ngt s kin khc. Khng chen ngang (non-preemptive): gii thut gi nh rng cc tc v s thc hin cho ti khi hon tt. Nh vy nu c mt tc v thc thi qu lu, th p ng cho cc s kin ngoi s lu. 170
Cao
u tin
Chen ngang
T4
T4 hon tt
Thp
Task 1
Task 2
Task 3
T1
T1
T2
Hnh 3.6 Quay vng kt hp u tin v chen ngang Vic tnh mc u tin ca mi tin trnh c thc hin theo mt trong s cc thut ton sau: - Rate monotonic: tc v no cng din ra thng xuyn cng c u tin. - Deadline monotonic: tc v no cng gp, c thi hn cui cng sm cng c u tin. - Least laxity: tc v no c t l thi gian tnh ton/thi hn cht (deadline) cng ln cng c u tin. Lp lch tun hon / khng tun hon (periodic and aperiodic): Tc v s thc hin c sau
mt n v thi gian, gi l tc v tun hon. Ngc l l tc v khng tun hon v c c im l s thc hin vo cc thi im khng d on trc c.
Lp lch tnh (offline): Vic lp lch c thc hin da trn cc hiu bit hoc d bo v cc s kin tc v thc hin trong h thng (thi im xut hin, thi gian thc hin, hn cht c tnh (deadline) v c quyt nh ti thi im thit k v c p dng c nh trong sut qu trnh hot ng ca h thng. Cc tc v c khi ng cc thi im lp trong mt bng trc , module phn phi (dispacher) khi ng tc v theo ch dn trong bng. Module phn phi c kim sot bi cc b nh thi (timer), a module vo thc hin phn tch bng lch kch hot tc v ng thi im. Mt h thng b gim st bi timer gi l time trigged (TT system). Vic lp lch trc c mt s cc u im sau: - Tc v tip theo c th c la chn thc thi trong khong thi gian l hng s - Kh nng p ng yu cu thi gian thc c th c bit trc v c m bo Nhc im: - Khng th thay i lch trnh thc hin ca h thng trong qu trnh thc hin 171
nhiu CPU. Loi gii thut ny trin khai trn cc h thng lin kt, cc h thng c th l ng nht (cng loi CPU) hay khng ng nht (nhiu my, cc my c loi CPU khc nhau) ng dng thao tc nhng ch xc nh (target specific) c thi gian rng buc. S dng p dng trn cc h thng hn hp hardware/software, trn mt s tc v chuyn
cho phn cng thc hin.
Cc nhn HH c iu khin theo c ch ngt thng thc thi c ch lp lch khng chen ngang (dymnamic nonpreemtive) ng , trong khi loi ht nhn HH vn hnh theo qu trnh li thc thi theo c ch chen ngang ng (dynamic preemptive). Trn c s b lp lch s phi thc hin bi ton ti u v: Thi gian p ng (response time) Hiu sut thc hin (s lng cng vic thc hin xong trong mt n v thi gian S cng bng v thi gian ch i (cc tc v khng phi ch i qu lu)
V d bi ton lp lch:
Scheduling Function
A real-time system had to execute four tasks J1, J2, J3, J4 with arrival times and deadlines shown in the following table. The scheduling function _(t) observed is shown in Figure 6.
172
Figure 6: Scheduling Function Determine a) the maximum lateness, b) the tasks laxities, and c) the processor utilization for this schedule. Is the schedule feasible? If not, try to modify the scheduling function so that the schedule becomes feasible. Solution - Task 4 The lateness of a task is the delay of the task completion with respect to its deadline (note that if the task finishes before its deadline, its lateness is negative). The maximum lateness is of the task J2 = fi di = 12 10 = 2 (task J2 is the only task that violates the given constraints). The laxity (or slack time) is the maximum time that a task can be delayed on its activation to complete within its deadline. The laxities of the tasks J1, . . . , J4 are as follows (in the table below are the individual tasks computation times):
173
The CPU_Utilization is 13/14 = 0.93. A schedule is said to be feasible (kh thi) if all tasks can be completed according to a set of specified constraints. The scheduling function suggested in the exercise, _(t) is thus not feasible (the task J2 does not meet its deadline). Figure 7: Violation in the old scheduling function
The schedule can be modified in order to complete the execution of all tasks before their respective deadline. One (of several) feasible scheduling functions is depicted in the figure. Figure 8: New scheduling function
174
nh thi (watchdog-WD)
CPU
RESTART WD CLOCK
M hnh nguyn l cho WD Ch canh chng s thc hin mt ti khi ng (reset) h thng hay mt hnh ng (x l), hay kch hot mt x l hiu chnh nu chng trnh chnh b li, khng tin trin c do mt iu kin no khng th t c trong khung thi gian d tnh (chng trnh b treo). Trong cc h thi gian thc, trong c HTN, ch canh chng rt quan trng, c s dng t ng khi ng li mt ng dng nhng hay thm ch c h thng v trng thi ban u m khng c s can thip ca con ngi. Trong cc CPU nhng ta thy c vi b m thi gian (specialized timers) cng, t cc gi tr khc nhau cho cc ng dng quan trng, m trong khung thi gian ng dng phi kt thc hay phi a ra c p ng, nu khng (kh nng c s bt thng) ng dng s c ch canh chng khi ng li t u. Cc h c ci trnh gi ri s ghi li vo b lu tr c bit h tr khc phc s c. C th timer mm cho cc ng dng t ti hn (critical) hn. V d watchdog timer l mt b m (counter) cng/mm vi x bit, vi u vo c tn s m f , thi gian t vo b m l T, sau T n v thi gian, b m t gi tr t (hay t gi tr t kuif v 0). Nu sau thi gian m b m khng c ti khi ng, h thng s b khi ng li. V d : gi nh mt phn mm, c c vng lp chy trong 25 micro giy, hay vi dung sai ti a l 35 micro giy thc hin x l. Dng mt mt watchdog timer c u ra ni vo mt ngt khng che (NMI), hay vo chn RESET ca CPU. watchdog timer c np mt 175
} Task2() { . . .
FLAG=(TRUE/FALSE);
Ttask
} Taskn() {. .
FLAG=(TRUE/FALSE);
If (AllFLAGs=OK) { Call(reset Twd); Jmp mainLoop } else { Log error; reset System; WD reset CPU }
} }
Hnh 3.7 Gii thut vi gim st nh thi (ch canh chng) 176
//H hot ng bnh thng, //t mi gi tr 50 micro giy co watchdog //Tr v chu k mi;
T b dao ng
clk
prescale scalereg
overflow Timereg
overflow
checkreg
Gii thut: /*main.c*/ Main() { Wait until card inserted; Call watchdog_reset_routine; while(transaction in progress) { 177
178
Ghi ch: Phn ny lin quan ti H iu hnh, nn khi hc nn xem li L thuyt H iu hnh a nhim, c bit RTOS
3.2.2 H thng thi gian thc Khi nim h thi gian thc khng ng ngha vi khi nim h x l tc cao, x l nhanh. Nu ta cho rng, phi l cc ng dng iu khin c yu cu thi gian tnh ton rt nhanh mi gi l iu khin thi gian thc, th mt cu hi s c t ra l: nh th no mi c gi l nhanh? Ta c th thng nht l, c mt vi micro-giy l rt nhanh, tuy nhin nu mt vi chc micro-giy th sao, mt trm micro-giy th sao? Nu mt trm micro-giy mi gi l nhanh, th 101, 102, ... c nhanh khng? Cc h iu khin vi chu k trch mu 5ms, 6 ms, 7ms c c gi l h thi gian thc hay khng? Tc khng phn nh thi gian thc nhng c c tnh thi gian thc th ph thuc rt nhiu vo tc . Tc cng cao th sai s cng nh v cng d thc hin cc tc v thi gian thc. C th ni n gin hn, tnh thi gian thc l kh nng p kp thi v chnh xc. c im ca h thi gian thc Tnh b ng: H thng phi phn ng vi cc s kin xut hin vo cc thi im thng khng bit trc. V d, s vt ngng ca mt gi tr o, s thay i trng thi ca mt thit b qu trnh phi dn n cc phn ng trong b iu khin. Tnh chun xc chc nng v chnh xc v thi gian: Cc chc nng phi c thc hin chun xc. Cc tnh ton, x l phi cho ra kt qu trong mt chu k thi gian xc nh trc. Chnh xc v thi gian s cho php h a ra p ng mt cch kp thi. Tuy tnh chnh xc thi gian l mt c im tiu lch, nhng mt h thng c tnh nng thi gian thc khng nht thit phi c p ng tht nhanh m quan trng hn l phi c phn ng kp thi i vi cc yu cu, tc ng bn ngoi. Hy kho st cc v d sau y lm r yu t thi gian trong h thng thi gian thc: ts l thi im mt s kin xy ra t thit b v tc ng ti h thng; T l khon thi gian thc hin cc tnh ton, x l t ts ti tp c p ng u ra. tp l thi im ra p ng. Ta s c cc trng hp sau y: a) p ng ng theo yu cu ti tp: p ng chnh xc. b) p ng xy ra trong khon <tpq, tp2>. c) p ng xy ra trong khon <ts, tp>. d) p ng xy ra t tp cho ti
179
Hnh 3.8 S kin v p ng C th cn c cc phn tch khc cp ti thi im phi a ra p ng cho tc ng ca s kin, qua y ta thy r hn yu cu v tnh thi gian thc ca h thng thi gian thc: chnh xc (a), chnh xc tng i (b, c) v tng i lng lo. Nh vy khi p dng, ta c cc thit b ghp ni m c th k thut chc chn s ri vo cc trng hp trn, gip hnh thnh chin thut x l. m hnh trn khung thi gian T l yu t quan trng, v l khung thi gian khng th nh hn c khi xem xt trn mt HTN thi gian thc, tuy nhin T khc nhau cho cc h thng khc nhau. Gii php cho T ph thuc vo la chn thit k phn cng (c bit l tc ca CPU) v k nng vit phn mm h thng v phn mm ng dng. Tnh ng thi: H thng phi c kh nng phn ng v x l ng thi nhiu s kin din ra. V d, cng mt lc mt h thng trong vai tr l mt b iu khin PID, c yu cu thc hin nhiu vng iu chnh, gim st ngng gi tr nhiu u vo, cnh gii trng thi lm vic ca mt s thit b khc Tnh tin nh: D on trc c thi gian phn ng tiu lch, thi gian phn ng chm nht cng nh trnh t a ra cc p ng. V d, nu mt b iu khin phi x l ng thi nhiu nhim v, ta phi tham gia quyt nh c v trnh t thc hin cc cng vic v nh gi c thi gian x l mi cng vic. Nh vy ngi s dng mi c c s nh gi v kh nng p ng tnh thi gian thc ca h thng. X l thi gian thc X l thi gian thc l hnh thc x l thng tin trong mt h thng m bo tnh nng thi gian thc ca n. Nh vy, x l thi gian thc cng c cc c im tiu lch nu trn nh tnh 180
X l phn tn: Mi qu trnh tnh ton c thc hin ring trn mt my tnh.
Trong cc hnh thc trn y th hnh thc x l cnh tranh c vai tr ch cht. Mc d h thng iu khin c th c nhiu trm, v mi trm c th l mt h a vi x l, s lng cc qu trnh tnh ton cn thc hin thng bao gi cng ln hn s lng vi x l. Trong khi mt vi x l khng th thc hin song song nhiu lnh, n phi phn chia thi gian thc hin xen k nhiu nhim v khc nhau theo th t ty theo mc u tin v phng php lp lch.
[
real time computing: the objective is to meet the individual timing requirement of each task correct behavior depends on both (1) correct computation and (2) time at which results are produced system that must react within precise timing constraints to events in the environment characterized by a deadline should be predictable (when the timing constraints cannot be met, this must be notified in advance, so that an alternative (scheduling) plan may be planned, and possibly avoid the catastrophe) real time applications the most important features timeliness, design for peak load, predictability, fault tolerance, maintainability. Difference between Hard and Soft Real-Time Systems Hard Real-time systems A real-time task is said to be hard, if missing its deadline may cause catastrophic consequences on the environment under control. Examples are sensory data acquisition, detection of critical conditions, actuator servoing. Soft Real-time systems A real-time task is called soft, if meeting its deadline is desirable for performance reasons, but missing its deadline does not cause serious damage to the environment and does not jeopardize correct system behavior. Examples are command interpreter of the user interface, displaying messages on the screen A hard real-time system guarantees that critical tasks complete on time. This goal requires that all delays in the system be bounded from the retrieval of the stored data to the time that it takes the operating system to finish any request made of it. A soft real time system where a critical real-time task gets priority over other tasks and retains that priority until it completes. As in hard real time systems kernel delays need to be bounded
182
183
184
ng dng
Phn mm trung gian
TKTB
ng dng
Phn mm trung gian Phn mm trung gian
TKTB
H iu hnh
TKTB TKTB TKTB TKTB
Ci thin tnh tin nh, d on (predictability), v mi x l u i qua b lp lch; Cc TKTB c thit k cho tng h thi gian thc, hhieju chnh cho lp ng dng h thc hin. (Device drivers handled by tasks instead of integrated drivers: Improve predictability; everything goes through scheduler; Effectively no device that needs to be supported by all versions of the OS, except maybe the system timer.) (Def.: A real-time operating system is an operating system that supports the construction of real-time systems.) 185
2. OS must manage the timing and scheduling OS possibly has to be aware of task deadlines; (unless scheduling is done off-line). OS must provide precise time services with high resolution. 3. The OS must be fast Practically important. Chc nng chnh ca nhn RTOS l qun l ti nguyn CPU, b nh, qun l tc v, I/O, thc thi lin lc gia cc tin trnh, lp lch, mc u tin, thi gian, d on tnh hung s kin.
186
Nhn TROS
X l li
Dch v h thng
Khi ng tc v
Chuyn i tc v
ISR
IPC
Thng ip
ng
Socket mng
Hnh 3.10 Cc chc nng nhn RTOS Trong qa trnh pht trin HTN vi RTOS cn tin hnh g ri m, v th nghim : Cc chc nng thc thi a tc v (C hay C++); ng h nh thi mm (software timers); ng h nh thi cng; Ch canh ca (watchdog); Module lp lch; iu khin chen ngang; Ngt; Ghp ni thit b ngoi v cc module TKTB; Cc chc nng IPC; Cc chc nng x l li; Th nghim phn mm trung gian dng g ri nhng trong h thng. Cc RTOS
Cc RTOS
T to
RTOS t Linux
microC, OS II (Freeware)
HTN c th c to thnh khi c phn cng nhng v phn mm h thng l RTOS. Mi quan h gia h thi gian thc v HTN nh hnh di y:
H thng nhng
Hnh 3.12 H thng nhng thi gian thc Hnh cho thy rng khng phi tt c HTN u l HTN thi gian thc v ngc li khng phi tt c h thi gian thc l HTN. V phn chung chnh l biu din ca HTN thi gian thc. Cn c cc HTN khng thi gian thc, v HTN thi gian thc c xy dng trn h thng khng thi gian thc. Cc HTN kiu ny tng i ph bin cho cc ng dng nhng khng i hi qu kht khe v c tnh, hay cn p ng nhanh. xy dng cc h nh vy cn c nhng la chn phn cng c tc x l nhanh, RAM ln, p ng cho ng dng. Phn mm h thng khng phc tp nhng hiu qu chy trnh cao. V d cc dng PC 104 nhng trn th trng ph bin chy vi HH DOS 6.4 cng tha mn cho nhiu lp ng dng nhng, hay chy vi Linux nhn 2.2 khng thi gian thc cng l la chn hp l. Mt s H iu hnh thng mi: pSOS+ 248 pSOS+ kernel 248 pSOS+m multiprocessor kernel pREPC+ runtime support pHILE+ file system pNA+ network manager pROBE+ system level debugger XRAY+ source level debugger OS-9 VXWorks VRTX-32 IFX TNX RTL RTscope MPV LynxOS-Posix conformance 188
Hnh 3.13 V tr cua PMTG HTN Trn hnh ta nhn thy PMTG ging nh cu ni gia cc phn nm khc ca phn mm h thng, cung cp cc dch v cho cc phn mm ng dng, nh: an ninh h thng, kt ni mng, tryn thng cc b gia cc ng dng trong h thng, mang li s linh hot khi trin khai cc ng dng. Vi v tr trung gian, cc PMTG lm gim ng k tnh phc tp ca cc ng, v cc tin ch c sn v chia s ngay trong PMTG. Tuy nhin khi a PMTG vo h thng cng l tng thm mt lp xp chng, c tc ng ng k vo tnh m rng, hiu nng ca cc HTN, v PMTG tc ng vo tt c cc lp phn mm khc. 189
Hnh 3.14 M hnh cc lp mng theo TCP/IP, OSI v nh x vo HTN Lp 4, 3, 2 ca m hnh OSI c t trong lp phn mm h thng, nhng khng thuc nhn HH nhng. Cc lp 5, 5, 7 thuc phn mm ng dng, lp 1 thuc thnh phn phn cng. 190
Phn mm h thng. Phn mm h thng c m t thng qua cc bc: gii thiu cc khi nim c bn khi s dng m t v HH. c bit l HH a trnh, mi trng phn mm h thng c ci t ph bin trong cc HTN. Cc khi nin ny rt cn thit khi vit chng trnh ng dng cho HTN, cc s dng cc hm chc nng ca HH thng qua API kiu li gi hm (GHT). Nhng vn lin quan ti h thi gian thc, nhng c th c bn khi cp ti h thi gian thc cng c m t. Trin khai mt h thi gian thc trn mt h thng nhng yu cu nhng gii hn v vic chuyn ha phn mm h thi gian thc ln h thng nhng to ra mt h thng nhng thi gian thc. Phn mm trung gian v phn mm ng dng. Sau khi c TKTB, phn mm h thng v vit cc phn mm ng dng, HTN c th hot ng. Tuy nhin khi HTN nm trong mt tng th h thng ln hn, th mt lp phn mm khc, c lp, dng chung l cn thit, l cc phn mm trung gian. Cc phn mm trung gian c xu hng tiu chun ha, m, nhm to c s lin kt, kt ni cc HTN li vi nhau, v d nh mng my tnh. C nhiu phn mm trung gian c th tch hp vo HTN, ph thuc vo nhu cu v thc t trin khai. Cc phn mm ng dng l th hin mm cc tng khi thit k mt HTN v chnh l l do pht trin HTN. HTN ng dng cho mc ch g, cn to ra phn mm ng dng cho HTN , chnh v th s lng, chng loi, qui m, mc thng minh ngy nay rt ln, v pht trin rt nhanh.
3.6 CU HI CUI CHNG 1) Nu nh ngha TKTB. 2) a cc m vo m hnh cho thy v tr ca TKTB nm u trong kin trc h thng ( HTN khng c HH, HTN c HH). 3) Nu ra cc chc nng ca TKTB. 192
193
4.1
THIT K H THNG
HTN hp nht cc thnh phn phn cng v phn mm v ngi pht trin HTN phi c k nng c hai ch ny. Cc k nng gm kh nng thch ng v cch tip cn c tnh h thng, a ra mt quyt nh thit k trong khi phi la chn cc phn cng khc nhau cho ng dng nhng xc nh. Cc phn cng ph bin hin nay bao gm h thng xy dng trn CPU v d kiu vi iu khin (MCU-microcontroller) hay CPU x l tn hiu (DSP-digital signal processing) v cc h thng phn cng kh lp trnh (PLD-Programmable Logic Device, CPLDComplex Programmable Logic Device), mng cc phn t cng logic kh trnh (FPGA-Field Programmable Gate Array). Phn tch qui trnh la chn phn cng: Vic quyt nh chn phn cng cho HTN i ra t nhng kinh nghim c c t cc d n v cc hiu bit c tnh chuyn gia ca lnh vc HTN v cn chu nh hng ca nhiu yu t khc. Trc tin, phn cng phi c th thc hin c cc chc nng mong mun t ra bi cc yu cu thit k. Cc thuc tnh phn cng khi xc nh cc yu cu gm phm tr cc chc nng - s lng cc chc nng, kch thc ca cc cu trc d liu, c th thc hin trn phn cng v nu c tnh thi gian thc th l hiu nng - thc hin cc chc nng nhanh n mc no. Cn mt s yu cu khc khng mang tnh chc nng nh: tin cy, bo tr, tiu dng nng lng, kh kim tra h thng v cnh tranh trn th trng. Qui trnh chn phn cng: Kt ni gia cht lng ca h thng vi thuc tnh phn cng. Cc thuc tnh phn cng c trnh by nh hnh di y: H thng thuc tnh phn cng: Phn cng nhng thng thng t c tnh chun, do cc lp ng dng a dng. Tuy nhin c mt s yu cu chung c p dng:
194
195
196
197
To phn cng
Thc hin thit k: -Qun tr cc tc v cnh tranh, -Phn hoch phn cng/ phn mm, -ng thit k, -Bin dch, lp biu, -G ri, - ...
Sn phm nhng
Phn mm nhng
...
...
...
...
Ph chun thit k, Kim chng (hiu nng, tiu tn nng lng, tin cy, an ton h thng, )
4.1.1 Cc nn tng c bn khi xy dng kin trc HTN 1) Cn kin thc tt v phn cng (Thit k logic, kin trc my tnh, kin trc CPU, ngoi vi, h iu hnh ). Hiu bit tt v cc thnh phn hp thnh phn cng ca mt h thng nhng, c kh nng hiu v kim sot cc thit b ni vo HTN (hnh 3.17). 2) S tng tc vi th trng vo qu trnh xy dng HTN: Nhu cu ca th trng nh hng ti kin trc ca HTN v khng ch gii hn k thut, cng ngh; Cn nhn ra cc yu cu ca th trng c tc ng vo qui trnh thit k, bao gm: k thut, xu hng thng mi, nh hng ca chnh tr, x hi. im ny gi l chu k kin trc thng mi ca HTN (Architecture Business Cycle). T nhn thc cc yu cu, a ra gii php v phn cng/phn mm thng qua cc bc sau: nh ngha tp cc kch bn m tp phc tho mi mt trong nhng yu cu,
198
Ghi nhn li s liu kt qu: thng sut, tr, mt d liu ... phn tch HTN ang pht trin
Hnh 4.1 Kch bn m phng hiu nng khi thit k HTN nh ra cc phn cng, phn mm c th p ng vi yu cu ca th trng. 3) nh ngha mu kin trc (architecrute pattern) v m hnh qui chiu: Mu kin trc h thng hay cn gi l phong cch kin trc h thng thc cht l mt mu m t (profile) ca h thng, cha ng cc c t khc nhau v cc thnh phn phn cng v phn mm, chc nng ca cc thnh phn bn trong h thng, mt s b cc (topo layout) hay cn gi l m hnh qui chiu, cc lin kt gia v giao din ghp ni gia cc cc thnh phn . Cc mu thit k c to da trn phn cng v cc thnh phn dn xut t cc yu cu chc nng hay khng chc nng qua cc thit k ban u (protopype), cc kch bn hay cc chin thut ni trn. Profile sau hp nht cng vi cc m hnh phn cng, m hnh phn mm c c mt thit k c th. 4) nh ngha cc cu trc c tnh kin trc Tip theo bc 3) l to ra kin trc ca HTN. Kin trc HTN s c hnh thnh bng cch phn nh ton b HTN thnh cc thnh phn phn cng, phn mm, sau cc thnh phn li c phn nh n chi tit. S phn nh c biu din bi t hp ca cc cu trc khc nhau v cc mu to ra im 3) ni trn c s dng cho vic xy dng mt cu trc c tnh kin trc ca HTN. Mt s k thut c s dng ph bin 199
Hnh 4.2 Cc cu trc kiu 4+1 Cu trc logical l cu trc kiu modul c t cc thnh chc nng phn cng, phn mm, mi lin h tng tc chc nng gia chng, m h thng yu cu. Cc thng tin y s lm nn xy dng mt h thng thc t; Cu trc process bao gm cc cu trc thnh phn v cu trc kt ni, phn nh tnh tng tranh v ng b ca cc tin trnh trong h thng c h iu hnh. Cu trc ny m t cc yu cu phi chc nng (nh hiu nng, tnh hp nht h thng, ngun ti nguyn sn c, v.v) thch ng cho h iu hnh. Bng cch nhn t tin trnh, cu trc ny phc tho ra cc tin trnh trong h thng, c ch to cch lp lch, c ch qun tr ti nguyn. Cu trc allocation m t cch nh x phn cng/phn mm vo mi trng pht trin hp nht (integrated development environment-IDE) vi cc cng c: gi ri, bin dch, lin kt, s dng cho ngn ng lp trnh hp ng hay bc cao (C, C+). Cu trc deployment l m t lm th no trin khai phn mm vo phn cng. Phn ny cho bit cc phn cng cn c khi phn mm c xy dng i hi: thc hin code, x l d liu, tc ca CPU phi t mc ti thiu, tc BUS, tc trao i d liu Vi m hnh c nh ngha nh trn, th m hnh c phn mm v h thng c h iu hnh. Kin trc module cho php p dng m khng cn phi bit cc phn mm no c trong h thng hay ngay c khi h khng c phn mm h thng (nh mt s HTN n gin).
200
201
Phn tch cc yu cu
Pha 1 Pht trin phin bn kin trc a ra phin bn kin trc Version 1... Xem li, nh gi Phn hi
Kt hp phn hi
Pha 2 Kt hp phn hi
Pha 3
Sn phm
Pha 4
Hnh 4.3 Cc pha thit k HTN 6) Vit ti liu Ti liu v ton b h thng theo cc chun ti liu. Ti liu v tng cu trc Ti liu tng th v kin trc h thng.
202
C nhiu cch tip cn gii quyt vn thit k HTN, tuy nhin khng c cch no c th tha mn v t hiu qu nh mong mun. Di y s trnh by mt s tip cn khi thit k mt HTN. Thit k HTN l kt hp gii quyt mt h thng u cui bao gm c phn cng v phn mm. Do cn c nhng quyt nh phn no ca thit k s c gii quyt phn cng v phn no phn mm c c mt h thng vi nhng c im chuyn bit (thin v hiu nng), khc vi cc my tnh thng thng. C nhng x l phn mm li phi cng ha (gi l c silicon ha) m kt qu l hiu nng tnh ton nng cao. V d trc y, CPU 286/386 khi khng c vi chip FPU 387, mi php tnh du phy ng phi chy bng tp lnh mm, do nhiu phn mm cao cp khng hot ng c (AutoCAD chng hn). Cch la chn thit k nh vy gi l s phn hoch thit k. Nu tng qut ha khi nim gii thut thnh cc bc thc thi mt thit k, th gii thut nh mt kt hp ca cc thnh phn mn cng v thnh phn phn mm, v mi phn ca phn hoch cng/mm s thc thi mt gii thut. Tt nhin c th p dng gii thut thun mm (CPU khng c FPU), hay thun cng hoc kt hp c 2 (v d nh v ha my tnh). 203
Hnh 4.4
D liu nhn vo t cng LPT, CPU phi chuyn i thnh xu ni tip lm u vo iu ch tia laser, quay cc gng chiu tia, quay trng in, pht tin nh in ln giy, t mc sy kh bn in, Kt qu mt cng sut in 5-7 trang /pht. Tng tc in ? Tng cng thm CPU Gii php nh vy l ti u ? Tuy nhin khi phn tch gii php thit k mt cch su hn, c th biu din thit k nh mt gii thut c nhng tc v c th cng ha, v d cng ha khi chc nng ghi laser ln cc phn t nhy nh sng trn b mt trng in, gii phng CPU khi tc v ny nh trc lm. Tt nhin phn kh s l cn phn cng rt tin cy v bn vng, mt vi mch kiu ASIC (Application-Specific Integrated Circuit- kiu vi mch c thit k dnh cho mt ng dng c th) s xut hin. Tuy nhin ASIC s lm tng s phc hp h thng thit k. Do vy nhm phn mm s phi n lc v hiu chnh phn mm rt t m, sao cho thm phn cng nhng khng qu phc tp v t , lm gi thnh tng thm. S phn hoch thit k cng v mm:
204
Chy th (test)
Tng tc HW/SW
TKTB
firmware
Vit m cho
Th nghim
Hnh 4.5
Cn c s tng tc pha phn hoch cng/mm hai nhm thit k: Tuy hnh thnh cc khi chc nng cng/mm r rng, nhng khi ranh gii vn cha th khng nh khi cc thch thc cha c a vo thit k. Cc cng c thit k phn cng (ICE, Simulation, ) s cho thy c th ci thin phn cng khi kt hp vi phn mm, trong khi phn mm chy th bng m phng trn phn cng nh gi tc x l. Ni cch khc hai nhm thit k cng/mm cn tng tc vi nhau b sung cho thit k cui cng. Bo mch sn phm l bo mch ch tuy nhin vn cha l bo mch thc ch to. Qu trnh tng tc s lp li cho ti khi cc ch tiu sn phm chp nhn c, trc khi tin hnh lm sn phm mu thc. Cc cng ngh thit k ngy nay to iu kin hai 205
206
V d k thut thit k ASIC: l cuc cch mng trong thit k cc HTN. Sn phm ASIC c th tm thy, nh cc Chipset trong PC, chip x l m thanh, tng tc ha, chip cho MODEM, Qu trnh thit k c tn l bin dch bn dn (silicon compilation), trong phn cng v phn mm c biu din bi cc tp d liu ca ngn ng thit k cao cp. Nh vy HTN s c c t nh mt c s d liu mm (software database): mt phn m t kin trc phn cng, mt phn m t cch iu khin hot ng ca phn cng. y s phn bit gia phn cng v phn mm c tnh mp m: thit k phn cng li nh l thit k phn mm. 207
-Thit kt gii thut - Vit m C/C++ Co-Design, Co-Cerification pha: -nh ngh kin trc/ chc nng -Phn hoch HW/SW - Thit k gii thut - Vit m HDL
Hp nht
4.1.3 Xy dng bo mch khi pht trin h thng Trin khai cc yu cu m t phn 4.1.1 khi thit k bo mch s c th nh sau: 1) t vn : Mc ch thit k HTN, mc tiu cn t c, tnh thng mi ; 2) Xc nh HTN: Xy dng mt m hnh chnh tc (formal model) ca h thng vi cc yu cu sau y: Xc nh chc nng: xy dng tp cc mi quan h tng minh hay khng tng minh lin quan ti u vo/u ra, v thng tin trng thi bn trong ca h thng. Xy dng tp cc thuc tnh m thit k s phi tha mn. Kt hp cc thuc tnh v tp cc quan h vo/ra, trng thi h thng, xc nh li cc chc nng h thng. Cc thuc tnh bao gm: Cc thuc tnh c tnh k tha cc h thng tnh ton (my tnh s); Cc thuc tnh c th kim chng trn mt chc nng; Cc thuc tnh phi c kim chng trn cc c t phi c khi cc tiu ch u vo xut hin.
Xy dng tp cc ch s hiu nng nh gi thit k theo cc tiu ch: gi thnh, nng lng. tin cy, tc x l, kch thc Xy dng tp cc khc bit coi nh nhng thch thc ca thit k, ra gii php gii quyt. Thc hin tinh lc thit k c thit k t tng n m hnh:
208
c t
Lnh khng iu kin Qun tr tp (FSManagem ent) Dng d liu S kin ring bit
Sng lc
Bin dch
Tng hp phn mm
M hnh
M hnh CPU M hnh CPU M hnh lun l (logic) M hnh lun l (logic)
Hnh 4.6. Xy dng m hnh hnh thc: Bc sng lc s dng cch tng hp phn cng v phn mm chuyn ha xc nh chc nng vo m hnh phn cng ca thit k. M t h thng phn ng nh th no vi cc u vo, Cng c m hnh ha s vn ng ca h thng, v d phng php li Petri (Petri nets) hay biu trng thi (StateCharts). Yu cu ca sn phm s c: a ra m t sn phm; 3) Thit k phn cng: ln m hnh kin trc ca bo mch chnh, la chn cc thnh phn phn cng;
209
Rx
SIO
Tx
KEY
DISP
Digital inputs
Digital outputs
-n hiu (LED), -Motor bc, -cng tc on/off - ... -motor lin tc -van in -my o - .
Analog inputs
Analog outputs
CLK, RTClock
Timers, watchdogs
Hnh 4.7 Bo mch HTN 4) M hnh t chc ghp ni cc thit b ngoi, s lng, chng loi cc thit b ngoi; 5) Thit k phn mm: phc ha cc phn mm: M hnh cc lp phn mm; C hay khng c cc phn mm trung gian; C hay khng c h iu hnh, loi h iu hnh s pht trin cho phn cng ch; Phn mm iu khin I/O (TKTB); Phng thc lin kt cc phn mm theo nguyn l lp xp chng; Cc phn mm ng dng.
6) Tng tc gia phn mm v phn cng, tinh lc phn cng, phn mm 7) Vit phn mm trn h pht trin; 8) Vit ng dng trn h pht trin; 9) Th nhim chng cc phn mm v hiu chnh phn mm trn h pht trin; 10) Hp nht phn cng v phn mm vo sn phm ch th (prototype): Np phn mm vo h thng ch: 210
11) Hp nht h thng, tng cng th nhim cc chc nng vi cc iu kin phc tp gi nh, thi gian thc, p ng nh gi sc chu ng ca mi trng vn hnh trong thc t 12) Lm h s, ti liu. Tm tt qui trnh thit k HTN Cc qui tc thit k 1) Nn tng kin thc thit k HTN : Khoa hc v my tnh v k thut in t; 2) Thit k vi mch vi ngn ng phn cng Verilog hay VHDL (FPGA, ASIC); 3) Kh nng cng ngh v nhng gii hn cng ngh phn cng. 4) Lnh vc ng dng HTN rt rng, thit k phi hng vo i tng ng dng c th; Vi cc xu hng: - Gia tng kch thc m chng trnh: 16 64 KB ln n 64kB n 512 KB, - Ti s dng cc thnh phn cng (CPUs, micro-controller, DSPs) v mm (device drivers), - C s hp nht cao trong 1 h thng (DSP, mng, RF, CPU 32 bit, IO processors kiu Intelligent Input/Output-I2O). 5) S dng phn mm c sn, phn mm ti s dng, m ngun m. 6) Cng ngh lp trnh (ngn ng lp trnh, h pht trin phn mm); 7) Thit k vi mch (dng VLSI, ASIC), thit k h thng in t (s, analog); 8) H thng x l kiu thi gian thc (thi gian thc cng, thi gian thc mm). Cc bc thit k 1) Xy dng c t HTN, m hnh ha HTN s c thit k, thc nghim vi cc gii thut lin quan; 2) Tp hp v m t phn cng c bn : ghp ni c s, truyn thng, cng ngh tnh ton ng dng vi in t, cng ngh b nh, cc thit b ghp ni vo h thng. 3) H thng phn mm s c: iu khin thit b, phn mm trung gian, h iu hnh, phn mm ng dng 4) Phn hoch, chn lc cc phn ca thit k: phn cng, phn mm. mi phn, phn r thit k thnh cc phn nh hn, xy dng cc mi tng tc gia cc phn ; 211
213
214
H thng nhng : cc phn mm v phn cng Xy dng, pht trin phn mm bao gm: Lp trnh, g ri, m phng (cng/mm), hiu chnh,
Qui trnh pht trin phn mm ch np vo HTN ch. Np vo bo mch ch Th nghim, nh gi Hon chnh.
216
App C sources
Locator
Linker
*.exec
Asembler
ROM image
Np soft vo HTN
0 a1 a2 a3 a4 GND 0 Vcc1 b1 b2 b3 b4 5 1 6 2 7 3 8 4 0 a1 a2 a3 a4 GND 0 Vcc1 b1 b2 b3 b4
4 a4GNDb4 8
3 7
2 6
0 1 a1Vcc1b1 2 a2 b2 3 a3 b3 4 1 a4 b4 a1 b1 8 5 7 6 5
a3 b3
a2 b2
1 2 3 4
5 6 7 8
a4 GND b4
a3
a2
a1
a4
a3
a2
a1 Vcc1 b1
init
b3
b2
b1
b4
b3
b2
RAM
ROM
HTN
Hnh 4.9 Qui trnh pht trin phn mm cho HTN Cng c lin kt (linker) v nh v (locator) to ra tp thc thi kiu ELF (executable and linking format) dng nh phn (kiu image, hay code image) c th nh x hay np vo ROM.
Hnh 4.10 S n gin h thng v nh x b nh vo EEPROM hay FLASH ca HTN ch. 217
Loader c vit ring v s c ghi vo boot ROM. Mt phn a ch ca boot ROM s cha boot image (l phn code do k s phn cng vit) s thc hin cc m cn thit theo qui trnh bt my ngui (Power ON System Test-Cold Boot): khi ng phn cng, a cc vi mch, phn vng b nh, khng gian a ch vo trng thi ban u. Sau ht boot loader nhy ti a ch RESTART hay START ca phn mm h thng chuyn iu khin cho n. T lc h thng bt u hot ng. Trong qu trnh pht trin, cc phn mm cn c bao gm: - Boot h thng np vo EEPROM/ROM; Boot ROM cn c tin ch c kh nng kt ni vi h pht trin, v d nh giao thc TFTP, dung ti phn mm vo FLASH; - Phn mm h thng (Monitor hay RTOS); - Phn mm ng dng nhng; - Ti phn mm h thng v cc ng dng nhng vo FLASH. Nu np vo EEPROM ri th khng cn bc ny).
218
Phn program header table ch ra cc phn on c s dng lc chy chng trnh (run time) v phn header lit k tp cc phn nh phn : .text: m chng trnh, .rodata: d liu ch c, .data: d liu c/ghi c. Phn cng lin quan ti RESET ca loi CPU s dng. Khi ng c hai cch: khi ng ngui l khi bt ngun my, v khi ng nng, tc RESET nng khi my bt ngun, hay chnh xc l khi ng li nng. Khi thit k phn cng phi c mch in t to ra xung RESET v ni vo chn RESET ca CPU. rng ca xung ny bng my CPU-Clock ph thuc vo tng loi CPU s dng v cn thc hin chnh xc. u vo ny thc t l t hp ca mt s tn hiu quan trng, c tc ng khi ng li my. V d tn hiu t watchdogs, cc s kin s c h thng, cn thot khi vng lp qun v c th c mt vi tn hiu khc, ph thuc vo thit k. Phn mm thc hin c tn ph bin l: boot, bootstrap, hay bootloader (vi h c h iu hnh). Phn m thc thi gi l boot code. Thng thng m ny nm trong ROM nh l mt phn ca BIOS. Mt s CPU c kin trc vi mt b m chng trnh (Program Counter PC) t ng cu hnh cha a ch ca ROM m ti a ch l lnh u tin s c thc hin, hay phc tp hn l lnh nhy ti mt bng chn ch my s khi ng (v d khi khi ng h thng c h iu hnh, vi Intel X86, ban u chy ch thc (real mode), sau np nhn h iu hnh v chuyn sang ch chy bo v (protected mode) vi h iu hnh).
219
Hnh 4.11 nh x thc thi chuyn vo b nh ca h thng .rodata: Cc thng s khi ng h thng, thng khng i, do d ROM; _loader hay _wflash : start code hay loader, code ny RAM hay FLASH; _monitor: m ca chng trnh monitor. .sbss (block started by symbol) hay ni cha cc bin tnh c hay cha khi ng vi gi tr bng 0 trong ngn ng C), v, .sdata: HTN dng monitor hay OS c ti nh v vo RAM; .text: m chng trnh h thng v m ng dng nhng. Khi hiu c phc tho b tr b nh ca CPU s dng, s d dng hn khi np m thc thi vo h thng. Hy theo di nh trn hnh 4. 11: - Sau khi kch hot RESET CPU thc hin khi ng cng, y CPU bt u thc hin mt chng trnh, hay mt m nhy ti mt on m khc tip tc qu trnh khi ng, gi l khi ng mm. - Khi ng mm (start code, hay loader OS) thc hin mt lot cc thao tc to ra s phn chia b nh thnh cc vng chc nng (STACK, DATA cho h iu hnh, nhn h iu hnh, ), khi ng cc vi mch vi cc thng s c trong BIOS DATA ROM, v np h iu hnh v chuyn ti lnh u tin ca nhn h iu hnh. Nhn tip tc khi ng cc c s d liu ca nhn, khi ng cc dch v nhn v chuyn sang ch bo v. Vi cc bo mch thng mi, start code cho HTN cn kh nng ty bin p dng cho cc bo CPU khc nhau. c chc nng ny, b dch C t ng sinh code c cha tp hp ng tch ring cha m ca start code. Cc tp ny c tn crt0 hay crt1 (crt=C Run Time). Ty bin cc tp ny c start code ph hp vi bo mch. 220
222
Trnh t boot boot image chy t ROM Ch y R M sau hi m copy t ROM vo RAM kch bn ny, boot loader s chuyn mt chng trnh nh t ROM vo RAM v kch hot n chy. Thng m chng trnh h thng trong ROM rt ln m c ghi kiu nn np va ROM, nn boot loader phi gai nn trc khi khi ng phn m ny v n cn khng gian nh RAM thc hin. 1) --- n 6) ging nh trn. Mi trng lm vic cho loader c khi ng RAM (3, 4, 5). 224 2.
Trnh t boot thc hin RAM sau khi image c copy t ROM vo RAM 3. Ch y t R M sau hi ti xung t h pht trin (ang pht trin h thng) L kch bn trong qu trnh pht trin. Mi trng pht trin c mt PC h tr. S dng pht trin cc phn mm ng dng cho h thng nhng. Phaaffn mm pht trin nm trn PC v s ti xung h ch chy th hay np vo h ch pha cui cng. Trong RON c mt chng trnh gi l Debug Agent ng vai tr kp nh mt loader nh cc kch bn trn. 225
Chy image sau khi ti xung h ch t h pht trin (PC) Trnh t khi ng phn mm ca h ch Cho d h s chy theo kiu no th sau khi loader trao quyn iu khin cho code image, th phn mm ny s thc hin cc bc khi ng h thng. Cc bc khi nh h thng bao gm: - Khi ng phn cng, - Khi ng RTOS, - Kch hot ng dng nhng. 226
Khi ng phn cng Sau khi thc hin reset vector, cc thao tc c bn l cn phi khi ng cc phn cng ti thiu, bao gm: - Bt u thc hin reset vector (JMP ti a ch ca boot loader). - t CPU vo trng thi cc ng ban u, cc thanh ghi c khi ng vi cc gi tr thch hp, ly s hiu ca CPU, lp tn s CPUClock. - Cm cc ngt v cm cache nu h c cache. - Khi ng cc Chip iu khin b nh (MMU), iu khin cache (MCU). - Lp a ch u cho RAM (thng s c ROM), ly ton b kch thc ca RAM trn h, thc hin kim tra RAM (ghi/c, v d vi gi tr AAhex/55hex).
Tin trnh khi ng phn mm HTN Sau khi khi ng CPU v RAM, boot loader s copy v gii nn code imafe vo RAM, nh ni trn. 227
V d Intel CPU 8085: RESET => IP=0x0000 l a ch ca EPROM: Khi ng ch ni vi Console (Keyboard), sau nhy v chng trnh khi ng h: JMP CLDST (Khi ng ngui) a ch 0x01F1
on CLDST:
Trong khi Intel CPU x86 trn PC hot ng nh sau: Sau khi thc hin bt ngun (khi ng ngui), hay n t hp phm CTRL+DEL (khi ng nng = RESET), hai thanh ghi phn on m (code segment CS) v con tr lnh (Instruction pointer IP), vit chung l CS:IP c np gi tr 0xFFFF:0000 (a ch vt l 0xFFFF0). Lnh u tin phi thc hin a ch ny, ti y thc hin mt lnh nhy ti on lnh khi ng gi l Kim tra h thng sau bt ngun (POST Power On System Test) ti nhn START. on m ny thc hin cc cng vic nh sau: cm ngt, khi ng cc c ca CPU, c/ghi th cc thanh ghi, kim tra li (CRC) ca EPROM, khi ng cc vi mch iu khin ca bo mch chnh v.v. Tip theo khi ng li v cho php cc ngt khng che hot ng, thc hin INT 19 chy chng trnh mi (bootstrap loader) np m khi ng h iu hnh (boot-record) t a cng xung b nh, sau nhy ti a ch ca boot-record. Chng trnh bootrecord tip tc np h iu hnh xung phn b nh h thng. Lc ny ch hot ng l ch thc (real mode) ca CPU. Sau khi HH np hon tt, ch thc chuyn sang ch o hay cn gi l ch c bo v (protected mode), do HH kim sot. Lc ny HH cho php ngi dng s dng my tnh. 229
(V d ca Intel 80286: A23 - A0: Cho cho 16 MB a ch vt l, 1 GB a ch o. Initialization and Processor Reset Processor initialization or start up is accomplished by driving the RESET input pin HIGH. RESET forces the M80C286 to terminate all execution and local bus activity. No instruction or bus activity will occur as long as RESET is active. After RESET becomes inactive and an internal processing interval elapses, the M80C286 begins execution in real address mode with the instruction at physical location FFFFF0(H). RESET also sets some registers to predefined values as shown in Table 6. HOLD must not be active during the time from the leading edge of RESET to 34 CLKs after the trailing edge of RESET.
M8086 REAL ADDRESS MODE The M80C286 executes a fully upward-compatible superset of the M8086 instruction set in real address mode. In real address mode the M80C286 is object code compatible with M8086 and M8088 software. The real address mode architecture (registers and addressing modes) is exactly as described in the M80C286 Base Architecture section of this Functional Description. Memory Size Physical memory is a contiguous array of up to 1,048,576 bytes (one megabyte) addressed by pins A0 through A19 and BHE. A20 through A23 should be ignored. Memory Addressing In real address mode physical memory is a contiguous array of up to 1,048,576 bytes (one megabyte) addressed by pins A0 through A19 and BHE. Address bits A20A23 may not always be zero in real mode. A20A23 should not be used by the system while the M80C286 is operating in Real Mode. The selector portion of a pointer is interpreted as the upper 16 bits of a 20-bit segment address. The lower four bits of the 20-bit segment address are always zero. Segment addresses, therefore, begin on multiples of 16 bytes. See Figure 7 for a graphic representation of address information. 230
F0000-FFFF =>F000:0000-F000:FFFF
Hin tng chng cho trong m hnh ny: V d: Cho a ch 1256A, tm cc a ch trng vi n cc segment sau y: 1256 v 1240: i ch vt l = (segment * 16) + offset T : Segnent * 16 = a ch vt l offset 1256A=12560 + X, v 1256A=1240 + Y Vy: X=1256A-12560=A, v Y=1256A-1240=16A Cho nn ta c: 1256A=1256:000A = 1240:016A !!! Mt a ch vt l tn ti 2 segnent !!! Khi c a ch vt l v c offset, c th tnh ra s ca segment. V d: cho a ch vt l l 80FD2, vi offset=BFD2. Tm segment ? Segment*16=80FD2-BFD2=75000=> ch ti:7500:BFD2
231
Reserved Memory Locations The M80C286 reserves two fixed areas of memory in real address mode (see Figure 8); system initialization initialization area and interrupt table area. Locations from addresses FFFF0(H) through FFFFF(H) are reserved for system initialization. Initial execution begins at location FFFF0(H). Locations 00000(H) through 003FF(H) are reserved for interrupt vectors.
232
Real address Mode Initially Reserved Locations Sau RESET CS:IP=F000:FFF0 Do a ch tht s l (CS*16) + IP = F0000 + FFF0 = FFFF0
on m hp ng sau m t qui trnh trn: ************************************* *IBM PC AT System ROM BIOS Resident * ************************************* CODE SEGMENT AT 0F000H DB 57344 ; fill lonest DB . . . 233
56K
F000:E010 F000:E010
*************************************************** * NOW CPU TEST: FLAGS, REGS, CONDITIONALJMPS* *************************************************** ASSUME CS:CODE,DS: NOTHING ,ES: NOTHING ,SS: NOTHING ORG 0E05BH ; System start: F000:E05B RESET LABEL FAR F000:E05B START: F000:E05B FA CLI ;DISABLE INTERRUPTS F000:E05C B4D5 MOV AH, 0D5H ;SET flags SF, CF, ZF,F on .. .. (Tip tc m khi ng) CODE ENDS ; Bt ngun khi ng bt u y: ;---------------------------------------; POWER ON RESET VECTOR ;---------------------------------------VECTOR SEGMENT AT 0FFFFH FFFF:0000 EA5BE000F0 JMP RESET ; Nhy ti nhn RESET FFFF:0005 30342F32392F3035 DB VECTOR ENDS C th quan st cc a ch bng lnh debug: 04/29/05 ;RELEASE MARKER
234
Thng thng start code thc hin mt s thao tc nh kim tra CRC ca ROM, test RAM, ti nh v m ROM vo FLASH hay RAM (shadown mode) thc thi lnh nhanh hn, thc hin khi ng cc thanh ghi, khi ng cc vi mch iu khin tch hp trn bo vi cc gi tr lp trnh cho vi mch ROM . Sau thc hin np h iu hnh (trn a cng) hay chuyn iu khin ti h iu hnh FLASH. H thng i vo hot ng. V d star code: main() { //Check hardware (ROM, RAM); //Khi ng cc device drivers: cc Chip on board; //Khi ng cc bin mi trng; . //khi ng cc CSDL h thng; .. //Relocate RAM address, define memory map, load OS. ; //JMP to 1st instruction of OS JMP . //system run 235
4.2.5 V d pht trin HTN Mc ny a ra mt s u bi thc hnh pht trin HTN, s c ti liu ring cho mi bi tp. Cc HTN bao gm: 1) Thit k bo mch vi cc la chn: CPU Intel 8085/8086, ROM, RAM Cc vi mch ngoi vi : 74257, 74 244, 74245, 7474, 8253, 8255, 8237, UART 8250/16450/16550 2) http://www.beyondlogic.org/serial/serial2.htm 3) Pht trin HTN vi micro controller Intel 8051 vi phn mm KEIL Soft. 4) HTN vi PIC: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2123&p aram=en022497 Hin nay trn th trng c bn bo mch vi PIC 16F877 vi phn mm H pht trin vi gi 900.000,00 VN, ph hp cho thc hnh vit chng trnh ng dng. Sau khi thnh tho, c th thit k phn cng vi cc vi mch ri v pht trin ng dng c th t n gin n phc tp. 5) HTN vi Linux, bo Tri-M MZ104 (H PC 104): http://www.tri-m.com/products/engineering/mz104.html 6) Mt s h iu hnh trn HTN: QNX 4 RTOS, Windows CE and embedded Linux. Palm OS Windows CE MS-DOS or DOS Clones Linux, including RTLinux and MontaVista Linux and Unison OS QNX . 4.3 KT CHNG Chng 4 nu ra cc bc khi thit k mt HTN ni chung, v s lin kt vi th trng ng dng, v cc qui tc v nn tr thc cn c. Thit k HTN l mt bi tp rt tng hp vi bt k ai khi ni n thit k my tnh, bi khi lng kin thc rt rng, t k thut in t, khoa hc my tnh, cng ngh bn dn, ng dng my tnh trong cng nghip, trong gia nh Thit k 236
237
[12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22]
238
PH LC
p n bi tp thit k: Chng 2: Bi 1: 5. 6. 7. 8. EPROM - 4 KB (Address lines required is 12 A0 to A11 ) RAM-I - 8 KB (Address lines required is 13 A0 to A12 ) RAM-II - 8 KB (Address lines required is 13 A0 to A12 ) nh x a ch vo cc Chip nh nh sau:
BUSY PE
In7
7404
Q(o)
Q0
4 bit
. . . . .
Hnh 2.79 Bi tp thit k ghp ni AD vi BUS h thng my tnh PC Pht tho lu phn mm diu khin gp ni: 2. Chn knh o 3. khi ng chu k o ca ADC 4. c trng thi sau mi bin i (STATUS do EOC pht ra) 5. c v lu d liu.
Bi 3:
240
74 LS 47
10 d 9 e 15 f 14 9
seg.
DSP
15 14 13 12 11 19 /CS 1 DIR
[DataBUS A6] SD3 6 [DataBUS A7] SD2 7 [DataBUS A8] SD1 8 [DataBUS A9] SD0 9
74 LS 47
10 d 9 e 15 f 14 9
seg.
DSP
PIO 8255 A
Vcc 20 [BUS B2] RESET [BUS A23] A8 [BUS A22] A9 [BUS B14] /IOR/ [BUS B13] /IOW/ MR/] [MW/] [BUS A11] AEN GND Vcc 2 3 4 5 6 7 8 9 G 19 1 DIR
A1 8 A0 9 /CS 6
13 PC4
Vcc 20 [BUS A24]A7 [BUS A25]A6 [BUS A26]A5 [BUS A27]A4 [BUS A28]A3 [BUS A29]A2 [BUS A30] A1 [BUS A31]A0 G GND Vcc 2 3 4 5 6 7 8 9 19 1
GND 10 18 A7 17 A6 16 A5 5 9 11 1 3 4 6 10 8 2
15 A4 14 A3 13 A2 12 A1 11 A0
LM35DZ
The LM35 is a precision temperature sensor. It is guaranteed accurate to C at 25C (At different temperatures it is less accurate! but it is never more than 2C inaccurate and it probably is not this inaccurate anyway it's just the manufacturers maximum limits that may apply). Typically is stays accurate to within C over its temperature range so this is a good general purpose sensor and it's easy to use. It generates a linear output voltage using a centigrade scale - generating 10mV of output voltage for every degree centigrade change and there are several versions for operation over different temperature ranges: LM35 LM35C LM35D
Note: The project code calculates the temperature in Fahrenheit and generates both Centigrade and Fahrenheit outputs to the serial port.
245
Solderless breadboard
Add the components (at top right to) the temperature recorder - wires and R3,R4,R5 and the LM35 temperature sensor (U4) and the decoupling capacitor C4.
246
247
248
Software operation
The most interesting parts of the software are shown above. The variable val is an unsigned int so the maximum value it can store is 65535 The reference in use is 2.5V so for the 10bit ADC each ADC bit is worth 2.5/1023 = 2.44mV If you work out values generated for a maximum temperature of 100C using the scale
249
Averaging
Averaging would be better done in the PC as it has more resources - the same goes for calculating and displaying the temperature in Fahrenheit but this gives a demonstration of what you can do. Note: The RAM is used up since a bug in MikroC 5.0.0.3 puts strings int RAM - in future versions this will be corrected.
The left most value is the RAW ADC value, the next is the temperature sensor output in degrees centigrade and the next is the temperature sensor output in degrees Fahrenheit. Note: You have to put in the decimal point so the above readings are: 234 C 741 F 23.4C 74.1F
250
Introduction 1. Give a short definition of embedded systems and discuss main features of such systems. Illustrate your discussion with examples of embedded systems. 2. Discuss differences and similarities between embedded systems and general purpose workstations, desktop computers and portable computers. 3. What are basic characteristics of embedded systems? Discuss both inherent features of such systems as well as specific design process challenges. 4. Discuss and give a motivation why implementation of embedded systems using a single processor running a software implementation is not usually possible. What are advantages and disadvantages of such a solution? 5. Explain the term ``design space exploration''. What does it mean for embedded system design? What are typical design parameters which are included in a design space. 6. Design process is often controlled by the time-to-market requirement. Explain this requirement and possible consequences on the design methodology. Design Methodology 1. Input to a system design is usually defined as system specifications and a set of functional and non-functional requirements. Discuss system specification methods as well as different types of requirements. 2. What are basic features of good requirements? Discuss them briefly. 251
24. VHDL is used both for hardware simulation and synthesis. Discuss briefly the language features which create problems for synthesis. What are possible solutions to this problem. 25. Discuss briefly commonly accepted restrictions for VHDL used for high-level synthesis.
253
3. The theory of data-flow models is based on Khan process networks. In this theory it is proved that a network process is monotonous if X X' F(X) F(X'). What does this property means in practice? Which computations can be implemented using data-flow models? 4. Describe informally what are execution rules for data-flow network built of actors. Explain a notion of actors, tokens and firing rules. 5. What is a sufficient condition for a data-flow network to be deterministic. 6. Discuss briefly subclasses of data-flow networks called synchronous data-flow and boolean data-flow. Give examples of actors for these networks and their firing rules. 7. What is a firing rule for a data-flow network? Give examples of firing rule. 8. What does it mean that a set of firing rules for an actor of data-flow network is sequential? Give an algorithm for checking this property.
254
256
257
Interface Synthesis 1. Describe briefly basic steps in communication synthesis. 2. What are main objectives of channel binding, communication refinement, interface generation? 3. Describe briefly strobe and handshake protocols for processor communication with other devices. 4. Why interrupts are used for processor communication with external devices? 5. What is a role of an interrupt service routine? 6. Describe briefly functionality of a typical interrupt service routine. 7. What is DMA controller and what is its role in communication between different devices? 8. Describe briefly functionality of a DMA controller. 258
V d khc: (Trng i hc Bch khoa H Ni B mn iu khin t ng H THNG IU KHIN NHNG (Embedded Control Systems) TS. Lu Hng Vit) M hnh thc thi b iu khin nhng
260
Hnh 6 9: H thng iu khin s thc thi mt b iu khin s trn thit b vt l thc phi i hi xt xem b iu khin vi m hnh hm truyn cho c th hin thc ha c khng. iu kin phi xt thc ra l m bo rng khng c u ra no ca h thng li xut hin trc khi c tn hiu vo. Hay ni cch khc h thng xy dng phi tun th tnh nhn qu. Nu khai trin hm truyn ca b iu khin s c m t dng tng qut
thnh chui ly tha theo z th n phi khng c php cha bt k phn t no cha ly tha dng ca z. Hay ni cch khc l b iu khin c m t nh (1.5) phi c bc 0 tc l bc ca t s phi nh hn hoc bng bc ca mu s Sau khi thit k c b iu khin s th vic cn li l lp trnh v np vo cc b iu khin vt l kh trnh. Thc cht qu trnh ny l thc thi hm truyn ca b iu khin s bng lp trnh s trn cc b iu khin vt l c. y chng ta s ch yu quan tm n vic trin khai chun b cho bc lp trnh cc hm truyn ca b iu khin s. Xut pht t m t hm truyn dng tng qut ca b iu khin s
trong , l cc s nguyn dng. C th trin khai thc thi mt hm truyn ca b iu khin s theo 3 cch nh sau: 261
T ng thc (1.7) d dng tnh ra c gi tr ca u ra *( ) u t ca b iu khin s cho theo cc gi tr hin ti v qu kh ca u vo *( ) e t cng nh cc gi tr qu kh ca chnh n
thc hin b iu khin ny yu cu phi lu tr cc gi tr qu kh ca u vo v u ra ca b iu khin. Vi b iu khin cho yu cu phi c n m + gi tr cn phi lu tr hay ni cch khc cn phi c n m + phn t lu tr. Mt phng php khc trin khai lp trnh trc tip l s dng c ch tch trc tip u vo v u ra ca b iu khin theo mt bin trung gian X(z). Khng mt tnh tng qut nu chng ta nhn c t v mu ca hm truyn b iu khin s cho vi mt bin X(z). T rt ra c hm truyn ca u vo E(z) theo X(z) v hm truyn ca u ra U(z) theo X(z). Phng php ny thc hin nh sau:
Theo phng php ny yu cu s phn t lu tr chnh bng gi tr n, bng bc ca a thc mu s trong hm truyn b iu khin s cho. T cc ng thc (1.9) v (1.10) ta cng d dng xy dng c gin trng thi m t hm truyn ca b iu khin s (gi thit m=n=3).
262
Hnh 6 10: Gin trng thi ca h thng s Trin khi lp trnh s ghp tng Cch trin khai ny yu cu chuyn i b iu khin v dng tch ca cc hm truyn n gin c th d dng thc hin bng cc chng trnh n gin. Hay ni cch khc b iu khin s cho l kt qu ghp tng ca nhiu b iu khin nh. Trin khai lp trnh s song song B iu khin cho s c tch ra thnh tng ca cc b iu khin n gin v c th thc hin lp trnh song song cho cc b iu khin . 6.4.2 V d trin khai b iu khin PID s Xp x ho thnh phn vi tch phn C 3 phng php xp x gin on ph bin p dng cho cc thnh phn tch phn: vt trc (forward), vt sau (backward), v trapezoidal. Xp x sai phn vt trc
D xp x ho tch phn s l:
263
Hnh 6 11: Xp x sai phn vt trc Xp x sai phn vt sau Tng t nh sai phn vt trc ta c xp x tch phn nh sau:
Hnh 6 12: Xp x sai phn vt sau Xp x Trapezoidal Php xp x tch phn thu c s l:
264
trong , K l h s khuch i, TI l hng s thi gian tch phn, TD l hng s thi gian vi phn. Trong trng hp chu k trch mu nh, ng thc (1.16) c th c chuyn sang dng ng thc sai phn bng phng php ri rc ho. Trong , thnh phn vi phn c th c xp x nh php tnh sai phn bc nht v thnh phn tch phn c xp x dng vt trc. Bng php ri rc ny ta thu c ng thc m t b iu khin PID s nh sau:
T ng thc (1.17) ta d dng nhn thy rng thc thi b iu khin PID cn thng tin ca tt c cc sai lch e trong qu kh. thun tin cho vic thc hin lp trnh, dng qui s ph hp hn v c th rt ra t (1.17) nh sau:
265
trong , thnh phn tch phn c th xp x theo mt trong ba cch nh m t trong phn 6.1, thnh phn vi phn c th c xp x nh sau:
Xp x vt trc:
Xp x vt sau:
Xp x Trapezoidal:
266