tailieu.vncty.com luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

86
bé gi¸o dôc vμ ®μo t¹o trêng ®¹i häc b¸ch khoa hμ néi ----------------------------------------- luËn v¨n th¹c sü khoa häc Nghiªn cøu, thiÕt kÕ hÖ ®iÒu hμnh trªn bé vi ®iÒu khiÓn 8 bÝt ngμnh: xö lý th«ng tin vμ truyÒn th«ng Msè: vò trung kiªn Ngêi híng dÉn khoa häc: TS. NguyÔn Linh Giang hμ néi 2006

Upload: tran-duc-anh

Post on 29-Jun-2015

153 views

Category:

Documents


1 download

DESCRIPTION

http://tailieu.vncty.com/index.php

TRANSCRIPT

Page 1: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

bé gi¸o dôc vµ ®µo t¹o tr−êng ®¹i häc b¸ch khoa hµ néi

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

luËn v¨n th¹c sü khoa häc

Nghiªn cøu, thiÕt kÕ hÖ ®iÒu hµnh trªn bé vi ®iÒu khiÓn 8 bÝt

ngµnh: xö lý th«ng tin vµ truyÒn th«ng

M∙ sè:

vò trung kiªn

Ng−êi h−íng dÉn khoa häc: TS. NguyÔn Linh Giang

hµ néi 2006

Page 2: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-2-

Lêi cam ®oan

T«i xin cam ®oan b¶n luËn v¨n nµy lµ kÕt qu¶ nghiªn cøu cña b¶n th©n d−íi

sù h−íng dÉn cña TS. NguyÔn Linh Giang. NÕu cã g× sai ph¹m, t«i xin hoµn toµn

chÞu tr¸ch nhiÖm.

Ng−êi lµm cam ®oan

Vò Trung Kiªn

Page 3: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-3-

Môc lôc

Lêi cam ®oan.....................................................................................................2

Danh môc c¸c ký hiÖu, c¸c ch÷ viÕt t¾t ..........................................................5

Danh môc c¸c b¶ng ..........................................................................................6

Danh môc c¸c h×nh vÏ, ®å thÞ ..........................................................................7

Lêi nãi ®Çu ........................................................................................................9

Ch−¬ng 1 - Tæng quan vÒ hÖ ®iÒu hµnh ......................11

1.1. Kh¸i niÖm vÒ hÖ ®iÒu hµnh (OS-Operating System)................................. 11

1.1.1. Kh¸i niÖm................................................................................................. 11 1.1.2. Chøc n¨ng cña hÖ ®iÒu hµnh. ................................................................... 11 1.1.3. C¸c thµnh phÇn cña hÖ ®iÒu hµnh............................................................. 13

1.2. Qu¶n lý tiÕn tr×nh......................................................................................... 16

1.2.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh.............................................................. 16 1.2.2. Kh¸i niÖm vÒ tµi nguyªn “g¨ng” vµ ®o¹n tíi h¹n .................................... 17 1.2.3. HiÖn t−îng bÕ t¾c ..................................................................................... 19

1.3. LËp lÞch cho CPU ......................................................................................... 20

1.3.1. Kh¸i niÖm giê CPU.................................................................................. 20 1.3.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU................................ 20 1.3.3. LËp lÞch cho CPU..................................................................................... 22

1.4. Qu¶n lý bé nhí ............................................................................................. 25

1.4.1. Yªu cÇu ph¶i qu¶n lý bé nhí ................................................................... 25 1.4.2. C¸c s¬ ®å qu¶n lý bé nhí......................................................................... 26

Ch−¬ng 2 - Vi ®iÒu khiÓn vµ ng«n ng÷ lËp tr×nh

cho vi ®iÒu khiÓn ......................................................................28

2.1. Vi ®iÒu khiÓn........................................................................................28

2.1.1. Vi xö lý vµ vi ®iÒu khiÓn.......................................................................... 28 2.1.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn. ........................................................... 30 2.1.3. C¸c bé ®Þnh thêi. ...................................................................................... 35 2.1.4. Bé xö lý ng¾t. ........................................................................................... 37

2.2. Ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn......................................................... 39

Page 4: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-4-

2.2.1. Tæng quan vÒ c¸c ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn. ......................... 39 2.2.2. Nh÷ng vÊn ®Ò víi ng«n ng÷ C viÕt cho c¸c bé vi ®iÒu khiÓn................... 42

Ch−¬ng 3 - thiÕt kÕ hÖ vi ®iÒu khiÓn ............................49

3.1. X¸c ®Þnh yªu cÇu thiÕt kÕ. ........................................................................... 50

3.2. Lùa chän cÊu h×nh cho hÖ thèng................................................................. 51

3.2.1. Lùa chän bé ®iÒu khiÓn trung t©m. .......................................................... 51 3.2.2. Giao diÖn ng−êi sö dông. ......................................................................... 52 3.2.3. C¸c thiÕt bÞ m« pháng qu¸ tr×nh ho¹t ®éng cña tiÕn tr×nh. ...................... 53

3.3. ThiÕt kÕ m¹ch ®iÖn....................................................................................... 58

3.4. §o thö vµ kiÓm tra lçi. ................................................................................. 59

Ch−¬ng 4 - ThiÕt kÕ hÖ ®iÒu hµnh .....................................60

4.1.1. Môc ®Ých vµ yªu cÇu thiÕt kÕ. .................................................................. 60

4.1.2. Môc ®Ých. ................................................................................................. 60 4.1.2. Yªu cÇu .................................................................................................... 63

4.2. Tr×nh tù thiÕt kÕ hÖ ®iÒu hµnh. ................................................................... 64

4.3. X©y dùng c¸c tiÕn tr×nh. .............................................................................. 65

4.3.1. X©y dùng c¸c t¸c vô t−¬ng øng c¸c tiÕn tr×nh.......................................... 65 4.3.2. Gi¶i quyÕt bµi to¸n tµi nguyªn g¨ng ........................................................ 69

4.4. LËp lÞch cho CPU. ........................................................................................ 71

4.4.1. Sù kiÖn vµ chuyÓn tr¹ng th¸i gi÷a c¸c tiÕn tr×nh. ..................................... 71 4.4.2. LËp lÞch cho CPU..................................................................................... 80

4.5. Qu¶n lý bé nhí. ............................................................................................ 83

KÕt luËn vµ kiÕn nghÞ .....................................................................................86

Tµi liÖu tham kh¶o .........................................................................................87

Page 5: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-5-

Danh môc c¸c ký hiÖu, c¸c ch÷ viÕt t¾t

STT Ch÷ viÕt t¾t Ch÷ ®Çy ®ñ

1 FCFS First Come First Served

2 FIFO First In First Out

3 LIFO Last In First Out

4 MCS Micro Controller System

5 OS Operating System

6 RTOS Real Time Operating System

7 RR Round Robbin

8 SJF Shortest Job First

9 SRT Shortest Remain Time

10 uC Micro Controller

Page 6: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-6-

Danh môc c¸c b¶ng

B¶ng 1.1. Tr¹ng th¸i cña c¸c tiÕn tr×nh............................................................... 19

B¶ng 1.2. Thêi gian thùc hiÖn cña c¸c tiÕn tr×nh................................................ 25

B¶ng 1.3. Thêi gian chê cña c¸c tiÕn tr×nh......................................................... 25

B¶ng 2.1. Bé nhí d÷ liÖu trªn chÝp cña AT89S52 .............................................. 33

Page 7: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-7-

Danh môc c¸c h×nh vÏ, ®å thÞ

H×nh 1.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh........................................................ 17

H×nh 1.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU.......................... 20

H×nh 1.3. S¬ ®å thùc hiÖn tiÕn tr×nh ................................................................... 21

H×nh 1.4. S¬ ®å tæ chøc hµng ®îi c¸c tiÕn tr×nh ................................................. 22

H×nh 1.5. S¬ ®å Grant......................................................................................... 25

H×nh 2.1. S¬ ®å khèi cña bé vi ®iÒu khiÓn AT89S52 ......................................... 29

H×nh 2.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn ...................................................... 30

H×nh 2.3. S¬ ®å ghÐp nèi AT89S52 víi EPROM............................................... 31

H×nh 2.4. S¬ ®å ghÐp nèi AT89S52 víi RAM .................................................. 34

H×nh 2.5. Gi¶i m· ®Þa chØ cho c¸c vi m¹ch nhí ................................................. 34

H×nh 2.6. Bé nhí d÷ liÖu ®äc nh− bé nhí ch−¬ng tr×nh ..................................... 35

H×nh 2.7. Ho¹t ®éng cña Timer0 vµ Timer1 ë chÕ ®é 1..................................... 36

H×nh 2.8. C¸c nguån ng¾t cña AT89S52............................................................ 38

H×nh 3.1. Tr×nh tù thiÕt kÕ phÇn cøng cho hÖ thèng.......................................... 49

H×nh 3.2. S¬ ®å khèi cña hÖ vi ®iÒu khiÓn ......................................................... 51

H×nh 3.3. GhÐp nèi vi ®iÒu khiÓn víi RAM ngoµi. ............................................ 52

H×nh 3.4. Giao diÖn ng−êi sö dông trªn hÖ vi ®iÒu khiÓn................................... 53

H×nh 3.5. HiÓn thÞ trªn LED 7 ®o¹n b»ng kü thuËt quÐt .................................... 54

H×nh 3.6. GhÐp nèi ma trËn LED trªn hÖ vi ®iÒu khiÓn ..................................... 57

H×nh 3.7. Nguyªn t¾c xÕp ch÷ trªn ma trËn LED............................................... 58

H×nh 4.1. C¸c t¸c vô ®−îc thùc hiÖn ®ång thêi (song song) .............................. 62

H×nh 4.2. C¸c t¸c vô ®−îc thùc hiÖn lu©n phiªn liªn tôc.................................... 62

H×nh 4.3. Gi¶n ®å xung trªn P1.......................................................................... 69

H×nh 4.4. Chèt l¹i gi¸ trÞ cña P1......................................................................... 70

Page 8: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-8-

H×nh 4.5. C¸c tiÕn tr×nh ®−îc ph©n bæ thêi gian CPU b»ng nhau ...................... 71

H×nh 4.6. ChuyÓn gi÷a c¸c tiÕn tr×nh b»ng sù kiÖn time out .............................. 73

H×nh 4.7. C¸c tiÕn tr×nh ®−îc ph©n bæ thêi gian CPU kh¸c nhau ...................... 74

H×nh 4.8. Ng−êi sö dông ra lÖnh vµo c¸c thêi ®iÓm kh¸c nhau ......................... 75

H×nh 4.9. ChuyÓn gi÷a c¸ tiÕn tr×nh b»ng sù kiÖn interrupt ............................... 76

H×nh 4.9. M« t¶ tr¹ng th¸i cña c¸c tµi nguyªn cña tiÕn tr×nh. ............................ 77

H×nh 4.10. C¸c tµi nguyªn cÇn l−u khi dõng mét tiÕn tr×nh. .............................. 78

H×nh 4.11. Ph©n bæ ng¨n xÕp cho c¸c tiÕn tr×nh ................................................ 79

H×nh 4.12. LËp lÞch cho 8 tiÕn tr×nh thùc hiÖn quÐt ch÷ trªn ma trËn LED ....... 81

H×nh 4.13. LËp lÞch cho 4 tiÕn tr×nh quÐt c¸c sè trªn 4 LED 7 ®o¹n ................. 81

H×nh 4.14. LËp lÞch cho tiÕn tr×nh ®iÒu khiÓn LCD........................................... 82

H×nh 4.15. LËp lÞch cho tiÕn tr×nh thêi gian thùc .............................................. 82

H×nh 4.16. Tæ chøc bé nhí ROM cña hÖ vi ®iÒu khiÓn ..................................... 83

H×nh 4.17. Thay ®æi vÞ trÝ ®Æt c¸c ch−¬ng tr×nh con phôc vô ng¾t..................... 84

H×nh 4.18. Ph©n bæ bé nhí ROM....................................................................... 85

H×nh 4.19. Ph©n bæ bé nhí RAM....................................................................... 85

Page 9: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-9-

Lêi nãi ®Çu

Cïng víi sù ph¸t triÓn cña khoa häc kü thuËt, côm tõ “tù ®éng ho¸” ®· trë

nªn hÕt søc phæ th«ng. Tõ c¸c m¸y mãc tù ®éng trong c¸c nhµ m¸y xÝ nghiÖp

thay thÕ cho søc lao ®éng cña c«ng nh©n, tõ c¸c ®å gia dông tù ®éng trong gia

®×nh gióp Ých cho ng−êi néi trî...nãi chung c¸c thiÕt bÞ cã kh¶ n¨ng tù ®éng ho¸

xuÊt hiÖn ë kh¾p mäi n¬i. Mét c©u hái ®Æt ra víi kh¸ nhiÒu ng−êi lµ nhê ®©u mµ

c¸c thiÕt bÞ cã kh¶ n¨ng tù ®éng ®−îc? §Ó tr¶ lêi c©u hái nµy chóng ta cÇn ph¶i ®i

tõ khi cã côm tõ “tù ®éng ho¸” ra ®êi.

Tr−íc kia, khi ch−a cã c«ng nghÖ b¸n dÉn, c¸c phÇn tö cã tiÕp ®iÓm nÕu

®−îc ®Çu nèi víi nhau theo mét m¹ch logic nµo ®ã th× vÉn cã thÓ t¹o ra mét hÖ

thèng tù ®éng, tuy nhiªn kh¶ n¨ng ®¸p øng vµ tÝnh tù ®éng c¶ hÖ thèng nµy

kh«ng cao. C«ng nghÖ b¸n dÉn ra ®êi, nã gi¶i quyÕt ®−îc h¹n chÕ vÒ ®¸p øng (tèc

®é) cña c¸c phÇn tö cã tiÕp ®iÓm tuy nhiªn còng ph¶i chê ®Õn khi cã sù xuÊt hiÖn

cña c¸c bé vi xö lý, c¸c hÖ thèng cã tÝnh tù ®éng ho¸ cao míi ra ®êi. §Æc tr−ng

cña c¸c hÖ thèng nµy ®−îc m« t¶ b»ng mét c«ng thøc ®¬n gi¶n: PhÇn cøng +

PhÇn mÒm = øng dông. Theo c«ng thøc nµy th× khi tuú biÕn mét trong 2 thµnh

phÇn lµ phÇn cøng hoÆc phÇn mÒm th× sÏ cho ra øng dông kh¸c. Th«ng th−êng

phÇn mÒm lµ thµnh phÇn ®−îc tuú biÕn.

Mét hÖ thèng víi c¸c bé vi xö lý cã thÓ gi¶ c¸c suy nghÜ vµ hµnh ®éng cña

con ng−êi v× lý do ®¬n gi¶n lµ chóng ho¹t ®éng theo mét ch−¬ng tr×nh cña ng−êi

thiÕt kÕ ®−a vµo mµ ch−¬ng tr×nh chÝnh lµ c¸c thuËt to¸n lµ ý nghÜ cña ng−êi lËp

tr×nh. Nh− vËy ®Ó mét hÖ thèng cã tÝnh th«ng minh, tù ®éng ho¸ cao th× phÇn

mÒm viÕt cho nã lµ vÊn ®Ò hÕt søc quan träng.

Mét hÖ thèng víi cïng mét phÇn cøng nh−ng nÕu nã ®−îc viÕt hÖ ®iÒu hµnh

th× kh¶ n¨ng cña nã sÏ trë nªn m¹nh h¬n rÊt nhiÒu so víi mét hÖ thèng chØ cã

mét ch−¬ng tr×nh tuÇn tù. Víi môc ®Ých kh«ng ngõng ®¸p øng c¸c nhu cÇu cña

Page 10: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-10-

x· héi, hiÖn nay c¸c m«n häc vÒ hÖ nhóng ®· vµ ®ang ®−îc ®−a vµo gi¶ng d¹y t¹i

c¸c tr−êng Cao ®¼ng vµ §¹i häc. Tuy nhiªn ®Ó cã mét hiÖu qña gi¶ng d¹y tèt

nhÊt th× cÇn cã mét ph−¬ng ph¸p nghiªn cøu vµ thiÕt kÕ ®óng chÝnh t¾c vµ còng

cÇn ph¶i cã mét thiÕt bÞ phôc vô qua tr×nh thÝ nghiÖm.

Tr−êng §¹i häc C«ng nghiÖp Hµ néi lµ mét tr−êng ®µo t¹o c¸c cö nh©n vµ

c¸c kü s− thùc hµnh. Trong ch−¬ng tr×nh ®µo t¹o còng ®· cã m«n kü thuËt vi ®iÒu

khiÓn, ®©y cã thÓ coi lµ nÒn t¶ng ®Ó tiÕp cËn víi c¸c hÖ thèng nhóng sö dông vi

®iÒu khiÓn cã hÖ ®iÒu hµnh. ViÖc nghiªn cøu ®Ó ®−a vµo gi¶ng d¹y m«n thiÕt kÕ

hÖ ®iÒu hµnh cho c¸c hÖ vi ®iÒu khiÓn lµ phï hîp víi yªu cÇu hiÖn t¹i.

Víi sù h−íng dÉn cña TS NguyÔn Linh Giang, trong khu«n khæ luËn v¨n

nµy, t«i m¹nh d¹n nghiªn cøu vÒ c¸c nguyªn t¾c c¬ b¶n khi thiÕt kÕ mét hÖ ®iÒu

hµnh trªn hÖ vi ®iÒu khiÓn.

Néi dung cña luËn v¨n bao gåm 4 ch−¬ng, trong ®ã:

Ch−¬ng 1: Giíi thiÖu tæng quan hÖ ®iÒu hµnh.

Ch−¬ng 2: Giíi thiÖu bé vi ®iÒu khiÓn ®−îc sö dông ®Ó viÕt hÖ ®iÒu hµnh vµ

ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn.

Ch−¬ng 3. ThiÕt kÕ phÇn cøng hÖ vi ®iÒu khiÓn.

Ch−¬ng 4. ThiÕt kÕ hÖ ®iÒu hµnh cho hÖ vi ®iÒu khiÓn

Do thêi gian vµ kh¶ n¨ng cã h¹n nªn luËn v¨n nµy sÏ cßn nhiÒu thiÕu sãt.

RÊt mong ®−îc sù gãp ý vµ th«ng c¶m cña c¸c thÇy gi¸o, c« gi¸o.

Hµ néi, ngµy 30 th¸ng 10 n¨m 2006

Häc viªn

Vò Trung Kiªn

Page 11: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-11-

Ch−¬ng 1 - Tæng quan vÒ hÖ ®iÒu hµnh

1.1. Kh¸i niÖm vÒ hÖ ®iÒu hµnh (OS-Operating System)

1.1.1. Kh¸i niÖm

Khã cã mét kh¸i niÖm hay ®Þnh nghÜa chÝnh x¸c vÒ hÖ ®iÒu hµnh, v× hÖ ®iÒu

hµnh lµ mét bé phËn ®−îc nhiÒu ®èi t−îng khai th¸c nhÊt, hä cã thÓ lµ ng−êi sö

dông th«ng th−êng, cã thÓ lµ lËp tr×nh viªn, cã thÓ lµ ng−êi qu¶n lý hÖ thèng vµ

tuú theo møc ®é khai thøc hÖ ®iÒu hµnh mµ hä cã thÓ ®−a ra nh÷ng kh¸i niÖm

kh¸c nhau.

Kh¸i niÖm 1: HÖ ®iÒu hµnh lµ hÖ thèng ch−¬ng tr×nh víi c¸c chøc n¨ng gi¸m

s¸t ®iÒu khiÓn viÖc thùc hiÖn c¸c ch−¬ng tr×nh cña ng−êi sö dông qu¶n lý vµ ph©n

chia tµi nguyªn cho nhiÒu ch−¬ng tr×nh ng−êi sö dông ®ång thêi sao cho viÖc

khai th¸c chøc n¨ng cña hÖ thèng m¸y tÝnh cña ng−êi sö dông lµ thuËn lîi vµ hiÖu

qu¶ nhÊt.

Kh¸i niÖm 2: HÖ ®iÒu hµnh lµ mét ch−¬ng tr×nh ®ãng vai trß nh− giao diÖn

gi÷a ng−êi sö dông vµ phÇn cøng m¸y tÝnh nã qu¶n lý vµ ®iÒu khiÓn phÇn cøng

còng nh− sù thùc hiÖn cña tÊt c¶ c¸c ch−¬ng tr×nh.

Kh¸i niÖm thø hai rÊt gÇn víi c¸c hÖ ®iÒu hµnh ®ang sö dông trªn c¸c m¸y

tÝnh hiÖn nay trong khi kh¸i niÖm thø nhÊt l¹i gÇn víi c¸c hÖ thèng ®o l−êng ®iÒu

khiÓn trong c«ng nghiÖp sö dông c¸c bé ®iÒu khiÓn kh¶ tr×nh (VÝ dô nh− vi ®iÒu

khiÓn).

1.1.2. Chøc n¨ng cña hÖ ®iÒu hµnh.

Cã thÓ nãi hÖ ®iÒu hµnh lµ 1 hÖ thèng c¸c ch−¬ng tr×nh ®ãng vai trß trung

gian gi÷a ng−êi sö dông vµ phÇn cøng. NhiÖm vô chÝnh cña nã lµ cung cÊp mét

m«i tr−êng thuËn lîi ®Ó ng−êi sö dông dÔ dµng thùc hiÖn c¸c ch−¬ng tr×nh øng

dông cña hä trªn m¸y tÝnh vµ khai th¸c triÖt ®Ó c¸c chøc n¨ng cña phÇn cøng.

Page 12: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-12-

§Ó ®¹t ®−îc môc tiªu trªn hÖ ®iÒu hµnh ph¶i thùc hiÖn 2 chøc n¨ng chÝnh

sau ®©y:

- T¹o ra mét hÖ th«ng më réng bao gåm c¸c thµnh phÇn vËt lý vµ c¸c thµnh phÇn logic:

Nh− chóng ta biÕt, mét hÖ thèng kh¶ tr×nh (vÝ dô nh− m¸y tÝnh) gåm c¸c bé

phËn chÝnh nh−: Processor, Memory, I/O Device, Bus, vv, do ®ã ®Ó ®èi tho¹i

hoÆc khai th¸c m¸y tÝnh ng−êi sö dông ph¶i hiÓu ®−îc c¬ chÕ ho¹t ®éng cña c¸c

bé phËn nµy vµ ph¶i t¸c ®éng trùc tiÕp vµo nã tÊt nhiªn lµ b»ng nh÷ng con sè 0,1

(ng«n ng÷ m¸y). §iÒu nµy lµ qu¸ khã ®èi víi ng−êi sö dông hÖ ®iÒu hµnh ph¶i

che ®Ëy c¸c chi tiÕt phÇn cøng m¸y tÝnh bëi mét m¸y tÝnh më réng, m¸y tÝnh më

réng nµy cã ®Çy ®ñ c¸c chøc n¨ng cña mét m¸y tÝnh thùc nh−ng ®¬n gi¶n vµ dÔ

sö dông h¬n. Theo ®ã khi cÇn t¸c ®éng vµo m¸y tÝnh thùc ng−êi sö dông chØ cÇn

t¸c ®éng vµo m¸y tÝnh më réng mäi sù chuyÓn ®æi th«ng tin ®iÒu khiÓn tõ m¸y

tÝnh. Môc ®Ých cña chøc n¨ng nµy kµ: Gióp ng−êi sö dông khai thøc c¸c chøc

n¨ng cña phÇn cøng m¸y tÝnh dÔ dµng vµ hiÖu qu¶ h¬n.

- Qu¶n lý tµi nguyªn cña hÖ thèng:

Tµi nguyªn hÖ thèng cã thÓ lµ: prrocessor, Memory, I/O Device..., ®©y lµ

nh÷ng tµi nguyªn mµ hÖ ®iÒu hµnh dïng ®Ó cÊp ph¸t cho c¸c tiÕn tr×nh, ch−¬ng

tr×nh trong qu¸ tr×nh ®iÒu khiÓn sù ho¹t ®éng cña hÖ thèng. Khi ng−êi sö dông

cÇn thùc hiÖn mét ch−¬ng tr×nh hay mét ch−¬ng tr×nh cÇn n¹p thªm mét tiÕn

tr×nh míi vµo bé nhí th× hÖ ®iÒu hµnh ph¶i cÊp ph¸t kh«ng gian nhí cho ch−¬ng

tr×nh, tiÕn tr×nh ®ã ®Ó ch−¬ng tr×nh, tݪn tr×nh ®ã n¹p ®−îc vµo bé nhí vµ ho¹t

®éng ®−îc. Trong m«i tr−êng hÖ ®iÒu hµnh ®a nhiÖm cã thÓ cã nhiÒu ch−¬ng

tr×nh, tiÕn tr×nh ®ång thêi cÇn ®−îc n¹p vµo bé nhí nh−ng kh«ng gian l−u tr÷ cñ©

bé nhí cã giíi h¹n do ®ã hÖ ®iÒu hµnh ph¶i tæ chøc cÊp ph¸t bé nhí sao cho hîp

lý ®Ó ®¶m b¶o tÊt c¶ c¸c ch−¬ng tr×nh tiÕn tr×nh khi cÇn ®Ó ®−îc n¹p vµo bé nhí

®Ó ho¹t ®éng. Ngoµi ra hÖ ®iÒu hµnh cßn ph¶i tæ chøc b¶o vÖ c¸c kh«ng gian nhí

®· cÊp cho c¸c ch−¬ng tr×nh tiÕn tr×nh ®Ó tr¸nh sù truy cËp bÊt hîp lÖ vµ sù tranh

Page 13: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-13-

chÊp bé nhí gi÷a c¸c ch−¬ng tr×nh, tiÕn tr×nh, ®Æc biÖt lµ c¸c tiÕn tr×nh ®ång thêi

ho¹t ®éng trªn hÖ thèng. §©y lµ mét trong nh÷ng nhiÖm vô quan träng cña hÖ

®iÒu hµnh.

Trong qu¸ tr×nh ho¹t ®éng cña hÖ thèng ®Æc bÖt lµ c¸c hÖ thèng ®a ng−êi

dïng ®a ch−¬ng tr×nh, ®a tiÕn tr×nh. Cßn xuÊt hiÖn mét hiÖn t−îng kh¸c, ®ã lµ

nhiÒu ch−¬ng tr×nh, tiÕn tr×nh ®ång thêi sö dông mét kh«ng gian nhí hau mét tËp

tin (d÷ liÖu, ch−¬ng tr×nh) nµo ®ã. Trong tr−êng hîp nµy hÖ ®iÒu hµnh ph¶i tæ

chøc viÖc chia sÎ vµ gi¸m s¸t viÖc truy xuÊt ®ång thêi trªn c¸c tµi nguyªn nãi

trªn sao cho viÖc sö dông tµi nguyªn cã hiÖu qu¶ nh−ng tr¸nh ®−îc sù mÊt m¸t d÷

liÖu vµ lµm háng c¸c tËp tin.

Hai dÉn chøng ®iÓn h×nh gióp chóng ra thÊy vai trß cña hÖ ®iÒu hµnh trong

viÖc qu¶n lý tµi nguyªn hÖ thèng sau nµy chóng ra sÏ thÊy viÖc cÊp ph¸t, chia sÎ,

b¶o vÖ tµi nguyªn cña hÖ ®iÒu hµnh lµ mét trong nh÷ng c«ng viÖc khã kh¨n vµ

phøc t¹p nhÊt. HÖ ®iÒu hµnh ®· chi phÝ nhiÒu cho c«ng viÖc nãi trªn ®Ó ®¸t ®−îc

môc tiªu: Trong mäi tr−êng hîp tÊt c¶ c¸c ch−¬ng tr×nh, tiÕn tr×nh nÕu cÇn ®−îc

cÊp ph¸t tµi nguyªn ®Ó ho¹t ®éng th× sím muén nã ®Òu ®−îc cÊp ph¸t vµ ®−îc

®−a vµo tr¹ng th¸i ho¹t ®éng.

1.1.3. C¸c thµnh phÇn cña hÖ ®iÒu hµnh

1.1.3.1. Thµnh phÇn qu¶n lý tiÕn tr×nh.

HÖ ®iÒu hµnh ph¶i cã nhiÖm vô t¹o lËp tiÕn tr×nh vµ ®−a nã vµo danh s¸ch

qu¶n lý tݪn tr×nh cña hÖ thèng. Khi tiÕn tr×nh kÕt thóc hÖ ®iÒu hµnh ph¶i lo¹i bá

tiÕn tr×nh ra lhái danh s¸c qu¶n lý tiÕn tr×nh cña hÖ thèng.

HÖ ®iÒu hµnh ph¶i cung cÊp ®Çy ®ñ tµi nguyªn ®Ó tiÕn tr×nh ®i vµo ho¹t ®éng

vµ ph¶i ®¶m b¶o ®ñ tµi nguyªn ®Ó duy tr× sù ho¹t ®éng cña tiÕn tr×nh cho ®Õn khi

tiÕn tr×nh kÕt thóc. Khi tiÕn tr×nh kÕt thóc hÖ ®iÒu hµnh ph¶i thu håi nh÷ng tµi

nguyªn mµ hÖ ®iÒu hµnh ®· cÊp cho tiÕn tr×nh.

Page 14: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-14-

Trong qu¸ tr×nh ho¹t ®éng nÕu v× mét lý do nµo ®ã tiÕn tr×nh kh«ng thÓ tiÕp

rôc ho¹t ®éng ®−îc th× hÖ ®iÒu hµnh ph¶i t¹m dõng tiÕn tr×nh thu håi tµi nguyªn

mµ tiÕn tr×nh ®ang chiÕm gi÷, sau ®ã nÕu diÒu kiÖn thuËn lîi th× hÖ ®iÒu hµnh

ph¶i t¸i kÝch ho¹t tiÕn tr×nh ®Ó tiÕn tr×nh tiÕp tôc ho¹t ®éng cho ®Õn khi kÕt thóc.

Trong c¸c hÖ thèng cã nhiÒu tiÕn tr×nh ho¹t ®éng song song hÖ ®iÒu hµnh

ph¶i gi¶i quyÕt vÊn ®Ò tranh chÊp tµi nguyªn gi÷a c¸c tiÕn tr×nh, ®Òu phèi

processor cho c¸c tiÕn tr×nh, gióp c¸c tiÕn tr×nh trao ®æi th«ng tin vµ ho¹t ®éng

®ång bé víi nhau, ®¶m b¶o nguyªn t¾c tÊt c¶ c¸c tiÕn tr×nh ®· ®−îc khëi t¹o ph¶i

®−îc thùc hiÖn vµ kÕt thóc ®−îc.

Tãm l¹i, bé phËn qu¶n lý tiÕn tr×nh cña hÖ ®iÒu hµnh ph¶i thùc hiÖn nhøng

nhiÖm vô sau ®©y:

T¹o lËp, huû bá tiÕn tr×nh.

T¹m dõng, t¸i kÝch ho¹t ®éng tiÕn tr×nh.

T¹o c¬ chÕ th«ng tin liªn l¹c gi÷a c¸c tiÕn tr×nh.

T¹o c¬ chÕ ®ång bé ho¸ gi÷a c¸c tiÕn tr×nh.

1.1.3.2. Thµnh phÇn qu¶n lý bé nhí.

Bé nhí chÝnh lµ mét trong nh÷ng tµi nguyªn quan träng cña hÖ thèng, ®©y lµ

thiÕt bÞ l−u tr÷ duy nhÊt mµ CPU cã thÓ truy xuÊt trùc tiÕp ®−îc.

C¸c ch−¬ng tr×nh cña ng−êi sö dông muèn thùc hiÖn ®−îc bëi CPU th×

trwocs hÕt nã ph¶i ®−îc hÖ ®iÒu hµnh n¹p vµo bé nhí chÝnh, chuyÓn ®æi c¸c ®Þa

chØ sö dông trong ch−¬ng tr×nh thµnh nh÷ng ®Þa chØ mµ CPU cã thÓ truy xuÊt

®−îc.

Khi ch−¬ng tr×nh, tiÕn tr×nh cã yªu cÇu ®−îc n¹p vµo bé nhí th× hÖ ®iÒu

hµnh ph¶i cÊp ph¸t kh«ng gian nhí cho nã. Khi ch−¬ng tr×nh, tiÕn tr×nh kÕt thóc

th× hÖ ®iÒu hµnh ph¶i thi håi l¹i kh«ng gian nhí ®· cÊp ph¸t cho ch−¬ng tr×nh,

tiÕn tr×nh tr−íc ®ã.

Page 15: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-15-

Trong c¸c hÖ thèng ®a ch−¬ng hay ®a tiÕn tr×nh, trong bé nhí tån t¹i nhiÒu

ch−¬ng tr×nh/ nhiÒu tiÕn tr×nh, hÖ ®iÒu hµnh ph¶i thùc hiÖn nhiÖm vô b¶o vÖ c¸c

vïng nhí ®· cÊp ph¸t cho c¸c ch−¬ng tr×nh/tiÕn tr×nh, tr¸nh sù vi ph¹m trªn c¸c

vïng nhí cña nhau.

Tãm l¹i, bé phËn qu¶n lý bé nhí chÝnh cña hÖ ®iÒu hµnh thùc hiÖn nh÷ng

nhiÖm vô sau:

CÊp ph¸t, thu håi vïng nhí.

Chi nhËn tr¹ng th¸i bé nhí.

B¶o vÖ bé nhí.

QuyÕt ®Þnh tiÕn tr×nh nµo ®−îc n¹p vµo bé nhí.

1.1.3.3. Thµnh phÇn qu¶n lý vµo ra.

Mét trong nh÷ng môc tiªu cña hÖ ®iÒu hµnh lµ gióp ng−êi sö dông khai thøc

hÖ thèng m¸y tÝnh dÔ dµng vµ hiÖu qu¶, do ®ã c¸c thao t¸c trao ®æi th«ng tin trªn

thiÕt bÞ xuÊt / nhËp ph¶i trong suèt ®èi víi ng−êi sö dông.

§Ó thùc hiÖn ®−îc ®iÒu nµy hÖ ®iÒu hµnh ph¶i tån t¹i mét bé phËn ®iÒu

khiÓn thiÕt bÞ, bé phËn nµy phèi hîp cïng CPU ®Ó qu¶n lý sù ho¹t ®éng vµ trao

®æi th«ng tin gi÷a hÖ thãng, ch−¬ng tr×nh ng−êi sö dông vµ ng−êi sö dông víi c¸c

thiÕt bÞ xu©ts/nhËp.

Bé phËn ®iÒu khiÓn thiÕt bÞ thùc hiÖn nh÷ng nhiÖm vô sau:

Gëi m· lÖnh ®iÒu khiÓn ®Õn thiÕt bÞ: HÖ ®iÒu hµnh ®iÒu khiÓn c¸c thiÕt bÞ

b»ng c¸c m· ®iÒu khiÓn, do ®ã tr−íc khi b¾t ®Çu mét qu¸ tr×nh trao ®æi d÷ liÖu

víi thiÕt bÞ th× hÖ ®iÒu hµnh ph¶i gëi m· ®iÓu khiÓn ®Õn thiÕt bÞ.

TiÕp nhËn yªu cÇn ng¾t (Interrupt) tõ c¸c thiÕt bÞ khi cÇn trao ®æi víi hÖ

thèng khi nã ph¸t ra mét tÝn hiÖu yªu cÇu ng¾t, hÖ ®iÒu hµnh tiÕp nhËn yªu cÇu

ng¾t tõ c¸c thiÕt bÞ, xem xÕt vµ thùc hiÖn mét thñ tôc ®Ó ®¸p øng yªu cÇu c¸c

thiÕt bÞ.

Page 16: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-16-

Ph¸t hiÖn vµ xö lý lçi: qu¸ tr×nh trao ®æi d÷ liÖu th−êng x¶y ra c¸c lçi nh−:

thiÕt bÞ vµo/ra ch−a s½n sµng, ®−êng truyÒn háng, vv, do ®ã hÖ ®iÒu hµnh ph¶i t¹o

ra c¸c c¬ chÕ thÝch hîp ®Ó ph¸t hiÖn lçi sím nhÊt vµ kh»c phôc c¸c lçi võa x¶y ra

nÕu cã thÓ.

1.2. Qu¶n lý tiÕn tr×nh

TiÕn tr×nh lµ mét ch−¬ng tr×nh ®ang xö lý, nã së h÷u mét con trá lÖnh, lËp

c¸c thanh ghi vµ c¸c biÕn. §Ó hoµn thµnh nhiÖm vô cña m×nh, c¸c tiÕn tr×nh cã

thÓ cßn yªu cÇu mét sè tµi nguyªn hÖ thèng nh−: CPU, bé nhí vµ c¸c thiÕt bÞ.

1.2.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh

Tr¹ng th¸i cña tiÕn tr×nh t¹i mçi thêi ®iÓm ®−îc x¸c ®Þnh bëi ho¹t ®éng

hiÖn thêi cña tiÕn tr×nh t¹i thêi ®iÓm ®ã. Trong suèt kho¶ng thêi gian tån t¹i trong

hÖ thèng, mét tiÕn tr×nh cã thÓ thay ®æi tr¹ng th¸i do rÊt nhiÒu nguyªn nh©n nh−:

Chê ®îi sù kiÖn nµo ®ã x¶y ra, ®îi mét thao t¸c vµo/ra hoµn tÊt, hÕt thêi gian xö

lý...

T¹i mçi thêi ®iÓm, tiÕn tr×nh cã thÓ nhËn mét trong c¸c tr¹ng th¸i sau:

- Khëi t¹o (new): TiÕn tr×nh ®ang ®−îc t¹o lËp.

- S½n sµng (ready): TiÕn tr×nh chê ®−îc cÊp ph¸t CPU ®Ó xö lý.

- Thùc hiÖn (runing): TiÕn tr×nh ®−îc xö lý.

- §îi (waiting): TiÕn tr×nh ph¶i dõng v× thiÕu tµi nguyªn hoÆc chê mét sù

kiÖn nµo ®ã.

- KÕt thóc (halt): TiÕn tr×nh ®· hoµn tÊt c«ng viÖc xö lý.

C¸c tr¹ng th¸i cña tiÕn tr×nh cã thÓ ®−îc biÓu diÔn qua s¬ ®å (h×nh 1.1)

Page 17: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-17-

H×nh 1.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh

HÖ ®iÒu hµnh qu¶n lý ho¹t ®éng cña c¸c tiÕn tr×nh trong hÖ thèng th«ng

qua khèi m« t¶ tiÕn tr×nh (process control block - PCB). Khèi m« t¶ tiÕn tr×nh bao

gåm c¸c thµnh phÇn:

- Sè thø tù cña tiÕn tr×nh

- Con trá tr¹ng th¸i cña tiÕn tr×nh (cho biÕt tr¹ng th¸i hiÖn t¹i cña tiÕn

tr×nh).

- Vïng nhí l−u tr÷ gi¸ trÞ c¸c thanh ghi mµ tiÕn tr×nh ®ang sö dông.

- Th«ng tin vÒ tµi nguyªn tiÕn tr×nh ®ang sö dông hoÆc ®−îc phÐp sö dông.

1.2.2. Kh¸i niÖm vÒ tµi nguyªn “g¨ng” vµ ®o¹n tíi h¹n

Chóng ta cïng xem thuËt to¸n sau:

Type ltem = ...;

Var Buffer: array [0..n-1] of ltem;

In. Out: 0..n-1

Counter: 0..n

Begin

(TiÕn tr×nh P)

Repeat

...

New Ready Runing Halt

Waiting

Page 18: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-18-

S¶n xuÊt th«ng tin vµ chøa trong NextP;

...

While Counter = n do Skip;

Buffer [In]:=NextP;

In:= In + 1 mod n;

Until false;

(TiÕn tr×nh C)

Repeat

While Counter = 0 do Skip;

NextC:= Buffer [Out];

Out:= Out + 1 mod n;

...

LÊy th«ng tin trong chøa trong NextC

...

Until false;

End;

NhËn xÐt: V× hai tiÕn tr×nh P vµ C song hµnh nªn cã thÓ x¶y ra tr−êng hîp

trong cïng 1 thêi ®iÓm, tiÕn tr×nh P t¨ng biÕn Counter lªn 1 (Counter:= Counter

+ 1) cßn tiÕn tr×nh C l¹i gi¶m biÕn Counter ®i 1 (Counter:= Counter – 1) dÉn tíi

kÕt qu¶ sai. Nh− vËy biÕn Counter trong tr−êng hîp nµy ®−îc gäi lµ tµi nguyªn

“g¨ng”. §o¹n tr×nh sö dông biÕn Counter gäi lµ ®o¹n tíi h¹n.

§Þnh nghÜa:

- C¸c tµi nguyªn logic vµ vËt lý ph©n bæ cho c¸c tiÕn tr×nh song hµnh lµ tµi

nguyªn “g¨ng”.

C¸c ®o¹n tr×nh sö dông tµi nguyªn g¨ng gäi lµ ®o¹n tíi h¹n (Critical

Section).

Page 19: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-19-

1.2.3. HiÖn t−îng bÕ t¾c

1.2.3.1. Kh¸i niÖm vÒ bÕ t¾c

Gi¶ sö cã hai tiÕn tr×nh P1 vµ P song hµnh sö dông c¸c tµi nguyªn r1 vµ r,

®−îc ®iÒu khiÓn bëi hai ®Ìn hiÖu S1 vµ S. T¹i mçi thêi ®iÓm, mçi tµi nguyªn chØ

phôc vô cho sù ho¹t ®éng cña mét tiÕn tr×nh. XÐt tr¹ng th¸i:

B¶ng 1.1. Tr¹ng th¸i cña c¸c tiÕn tr×nh

P1 Thêi ®iÓm P2

Wait (S1) t1 Wait (S2)

... t2 ...

Wait (S2) t3 ...

t4 Wait (S1)

NhËn xÐt: T¹i vÞ trÝ trªn, sau thêi ®iÓm t3, tiÕn tr×nh P1 r¬i vµo tr¹ng th¸i

chê tµi nguyªn r2 ®ang ®−îc P2 sö dông; Sau thêi ®iÓm t4, tiÕn tr×nh P2 r¬i vµo

tr¹ng th¸i chê tµi nguyªn r1 ®ang ®−îc tiÕn tr×nh P1 sö dông vµ b¾t ®Çu tõ ®©y, c¶

hai tiÕn tr×nh r¬i vµo tr¹ng th¸i chê ®îi v« h¹n vÒ hÖ thèng gÆp bÕ t¾c.

Nh− vËy bÕ t¾c lµ tr¹ng th¸i khi hai hoÆc nhiÒu tiÕn tr×nh cïng chê ®îi mét

sè sù kiÖn nµo ®ã vµ nÕu kh«ng cã t¸c ®éng ®Æc biÖt tõ bªn ngoµi th× sù chê ®îi

®ã lµ v« h¹n.

1.2.3.2. §iÒu kiÖn x¶y ra bÕ t¾c trong hÖ thèng.

HiÖn t−îng bÕ t¾c x¶y ra khi vµ chØ khi trong hÖ thèng tån t¹i 4 ®iÒu kiÖn:

- Cã tµi nguyªn g¨ng

- Cã hiÖn t−îng gi÷ vµ ®îi, cã mét tiÕn tr×nh ®ang gi÷ mét sè tµi nguyªn vµ

®îi tµi nguyªn bæ sung ®ang ®−îc gi÷ bëi c¸c tiÕn tr×nh kh¸c.

- Kh«ng cã hÖ thèng ph©n phèi l¹i tµi nguyªn: ViÖc sö dông tµi nguyªn

kh«ng bÞ ng¾t.

Page 20: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-20-

- Cã hiÖn t−îng chê ®îi vßng trßn.

1.2.3.3. C¸c møc phßng tr¸nh bÕ t¾c

§Ó tr¸nh hiÖn t−îng bÕ t¾c, th«ng th−êng hÖ thèng ¸p dông ba møc:

- Ng¨n chÆn: ¸p dông c¸c biÖn ph¸p ®Ó hÖ thèng r¬i vµo tr¹ng th¸i bÕ t¾c.

- Dù b¸o vµ tr¸nh bÕ t¾c: ¸p dông c¸c biÖn ph¸p ®Ó kiÓm tra c¸c tiÕn tr×nh

xem cã bÞ r¬i vµo tr¹ng th¸i bÕ t¾c hay kh«ng. NÕu cã th× th«ng b¸o tr−íc khi bÕ

t¾c x¶y ra.

- NhËn biÕt vµ kh¾c phôc: T×m c¸ch ph¸t hiÖn vµ gi¶i quyÕt.

1.3. LËp lÞch cho CPU

1.3.1. Kh¸i niÖm giê CPU

CPU lµ mét lo¹i tµi nguyªn quan träng cña m¸y tÝnh. Mäi tiÕn tr×nh muèn

ho¹t ®éng ®−îc ®Òu ph¶i cã sù phôc vô cña CPU (®Ó xö lý, tÝnh to¸n...). Thêi gian

mµ CPU phôc vô cho tiÕn tr×nh ho¹t ®éng ®−îc gäi lµ giê CPU.

T¹i mçi thêi ®iÓm nhÊt ®Þnh, chØ cã mét tiÕn tr×nh ®−îc ph©n phèi giê CPU

®Ó ho¹t ®éng (thùc hiÖn c¸c lÖnh cña m×nh).

1.3.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU

Trong chÕ ®é ®a ch−¬ng tr×nh, cã ba tr¹ng th¸i cña tiÕn tr×nh liªn quan mËt

thiÕt ®Õn giê CPU bao gåm:

H×nh 1.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU

Ready Runing

Waiting

Page 21: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-21-

- S½n sµng (ready): Lµ tr¹ng th¸i mµ tiÕn tr×nh ®−îc ph©n phèi ®Çy ®ñ mäi

tµi nguyªn cÇn thiÕt vµ ®ang chê giê CPU.

- Thùc hiÖn (running): Lµ tr¹ng th¸i mµ tiÕn tr×nh ®−îc ph©n phèi ®Çy ®ñ

mäi tµi nguyªn cÇn thiÕt vµ giê CPU.

- §îi (waiting): Lµ tr¹ng th¸i tiÕn tr×nh kh«ng thùc hiÖn ®−îc v× thiÕu mét

vµi ®iÒu kiÖn nµo ®ã (®îi d÷ liÖu vµo/ra, ®îi tµi nguyªn bæ sung...). Khi sù kiÖn

mµ nã chê ®îi xuÊt hiÖn, tiÕn tr×nh sÏ quay trë l¹i tr¹ng th¸i s½n sµng.

Nh− vËy, trong suèt thêi gian tån t¹i cña m×nh, c¸c tiÕn tr×nh sÏ tu©n thñ

theo s¬ ®å thùc hiÖn sau:

H×nh 1.3. S¬ ®å thùc hiÖn tiÕn tr×nh

Mét tiÕn tr×nh ®ang trong tr¹ng th¸i thùc hiÖn, nã cã thÓ rêi khái tr¹ng th¸i

bëi mét trong ba lý do:

- TiÕn tr×nh ®· hoµn thµnh c«ng viÖc vµ chuyÓn sang tr¹ng th¸i kÕt thóc, nã

tr¶ l¹i giê CPU cho hÖ thèng.

- TiÕn tr×nh tù ng¾t: Khi tiÕn tr×nh chê ®îi mét sù kiÖn nµo ®ã, tiÕn tr×nh sÏ

®−îc chuyÓn sang tr¹ng th¸i thùc hiÖn khi xuÊt hiÖn sù kiÖn nã ®ang chê.

- TiÕn tr×nh sö dông hÕt giê CPU dµnh cho nã, khi ®ã nã sÏ ®−îc chuyÓn

sang tr¹ng th¸i s½n sµng.

ViÖc chuyÓn tiÕn tr×nh sang tr¹ng th¸i s½n sµng vÒ b¶n chÊt lµ thùc hiÖn

viÖc ph©n phèi l¹i giê CPU.

B¾t ®Çu §îi I/O

Sö dông CPU Sö dông CPU

§îi I/O KÕt thóc

Sö dông CPU

Page 22: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-22-

1.3.3. LËp lÞch cho CPU

1.3.3.1. Kh¸i niÖm

§Ó ®iÒu khiÓn tiÕn tr×nh ë nhiÒu tr¹ng th¸i kh¸c, hÖ thèng th−êng tæ chøc

c¸c tõ tr¹ng th¸i (thùc chÊt lµ c¸c khèi ®iÒu khiÓn tiÕn tr×nh) ®Ó ghi nhËn t×nh

tr¹ng sö dông tµi nguyªn vµ tr¹ng th¸i tiÕn tr×nh. C¸c tõ tr¹ng th¸i ®−îc tæ chøc

theo kiÓu ®îi nh− sau:

H×nh 1.4. S¬ ®å tæ chøc hµng ®îi c¸c tiÕn tr×nh

Nh− vËy, lËp lÞch cho CPU cã nghÜa lµ tæ chøc mét hµng ®îi c¸c tiÕn tr×nh

s½n sµng ®Ó ph©n phèi giê CPU cho chóng dùa trªn ®é −u tiªn cña c¸c tiÕn tr×nh

sao cho hiÖu suÊt sö dông CPU lµ tèi −u nhÊt.

Mçi tiÕn tr×nh ë tr¹ng th¸i s½n sµng ®−îc g¾n víi mét thø tù −u tiªn. Thø tù

−u tiªn nµy ®−îc x¸c ®Þnh dùa vµo c¸c yÕu tè nh−: Thêi ®iÓm h×nh thµnh tiÕn

tr×nh, thêi gian thùc hiÖn tiÕn tr×nh, thêi gian kÕt thóc tiÕn tr×nh...

Ready queue CPU

I/O

I/O queue

I/O

I/O queue

I/O

I/O queue

M

M

Page 23: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-23-

1.3.3.2. Mét sè thuËt to¸n lËp lÞch cho CPU

1. First Come First Served (FCFS)

Trong thuËt to¸n nµy, ®é −u tiªn phôc vô tiÕn tr×nh c¨n cø vµo thêi ®iÓm

h×nh thµnh tiÕn tr×nh. Hµng ®îi c¸c tiÕn tr×nh ®−îc tæ chøc theo kiÓu FIFO. Mäi

tiÕn tr×nh ®Òu ®−îc phôc vô theo tr×nh tù xuÊt hiÖn cho ®Õn khi kÕt thóc hoÆc bÞ

ng¾t.

2. Shortest Job First (SJF).

ThuËt to¸n SJF x¸c ®Þnh thø tù −u tiªn thùc hiÖn tiÕn tr×nh dùa vµo tæng

thêi gian thùc hiÖn tiÕn tr×nh. TiÕn tr×nh nµo cã tæng thêi gian thùc hiÖn ng¾n sÏ

®−îc −u tiªn phôc vô tr−íc.

3. Shortest Remain Time (SRT)

T−¬ng tù nh− SJF nh−ng trong thuËt to¸n nµy, ®é −u tiªn thùc hiÖn c¸c tiÕn

tr×nh dùa vµo thêi gian cÇn thiÕt ®Ó thùc hiÖn nèt tiÕn tr×nh (b»ng tæng thêi gian =

thêi gian ®· thùc hiÖn). Nh− vËy trong thuËt to¸n nµy cÇn ph¶i th−êng xuyªn cËp

nhËt th«ng tin vÒ thêi gian ®· thùc hiÖn tiÕn tr×nh. §ång thêi chÕ ®é ph©n bæ l¹i

giê CPU còng ph¶i ®−îc ¸p dông nÕu kh«ng sÏ lµm mÊt tÝnh −u viÖt cña thuËt

to¸n.

4. Round Robin (RR)

Trong thuËt to¸n nµy, hÖ thèng quy ®Þnh mét l−îng tö thêi gian (time

quantum) kho¶ng tõ 10-100 mili gi©y. Mçi tiÕn tr×nh trong hµng ®îi lÇn l−ît ®−îc

ph©n phèi mét l−îng tö thêi gian ®Ó thùc hiÖn. Sau kho¶ng thêi gian ®ã, nÕu tiÕn

tr×nh ch−a kÕt thóc hoÆc kh«ng r¬i vµo tr¹ng th¸i ®îi th× nã ®−îc chuyÓn vÒ cuèi

hµng ®îi.

Hµng ®îi c¸c tiÕn tr×nh ®−îc tæ chøc theo kiÓu vßng trßn vµ c¸c tiÕn tr×nh

lu«n lu«n ®¶m b¶o ®−îc phôc vô. Khi cã tiÕn tr×nh míi ph¸t sinh, nã sÏ ®−îc ®−a

Page 24: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-24-

vµo hµng ®îi vßng trßn vµ ®−îc ®Æt ë vÞ trÝ phôc vô ngay. C¸c tiÕn tr×nh dï ng¾n

hay dµi ®Òu cã ®é −u tiªn phôc vô nh− nhau.

Trªn thùc tÕ, ®Ó ®¶m b¶o ®é −u tiªn cho c¸c tiÕn tr×nh dµi, hÖ thèng sÏ

ph©n chia c¸c tiÕn tr×nh thµnh m líp. Sè lÇn ®−îc phôc vô vµ thêi gian mét lÇn

phôc vô tiÕn tr×nh t¹i mçi líp kh¸c nhau (gi¶ sö ë líp thø i, tiÕn tr×nh ®−îc phôc

vô k lÇn vµ mçi lÇn víi thêi gian qi).

NÕu sau kho¶ng thêi gian ®· ®−îc ph©n phèi mµ tiÕn tr×nh ch−a kÕt thóc

hoÆc kh«ng bÞ ng¾t th× nã ®−îc chuyÓn sang líp thø i+1 (víi ki+1 vµ qi+1 lín h¬n).

L−îng tõ thêi gian sÏ t¨ng dÇn cho ®Õn khi tiÕn tr×nh r¬i vµo líp ngoµi cïng (líp

m). ë ®ã nã sÏ ®−îc phôc vô víi l−îng tö qm kh«ng ®æi. Nh− vËy thø tù −u tiªn

cña c¸c tiÕn tr×nh sÏ t¨ng dÇn theo thêi gian xÕp hµng ®îi.

¦u ®iÓm cña ph−¬ng ph¸p phôc vô ®ång møc theo líp sÏ cho phÐp hÖ

thèng −u tiªn nh÷ng tiÕn tr×nh ng¾n (v× nã kÕt thóc sím) nh−ng kh«ng g©y tæn h¹i

lín cho c¸c tiÕn tr×nh dµi.

Nh−îc ®iÓm lµ do ph¶i th−êng xuyªn ph©n phèi l¹i giê CPU nªn thêi gian

chê ®îi trung b×nh cña Round Robin cã thÓ lín h¬n so víi FCFS.

Chó ý: Trong thô©t to¸n, cÇn chän gi¸ trÞ l−îng tö thêi gian (time

quantum) thÝch hîp. NÕu chän gi¸ trÞ time quantum lín th× viÖc bæ sung tiÕn tr×nh

míi hoÆc kÝch ho¹t tiÕn tr×nh bÞ ng¾t sÏ lµm t¨ng thêi gian chê ®îi trung b×nh

nh−ng ng−îc l¹i nÕu chän gi¸ trÞ time quantum nhá th× nã sÏ lµm cho c¸c tiÕn

tr×nh ph¶i liªn tôc chuyÓn tr¹ng th¸i dÉn ®Õn gi¶m hÖ sè h÷u Ých cña CPU.

Th«ng th−êng gi¸ trÞ time quantum ®−îc chän theo c«ng thøc: q = t/n hoÆc

q=t/n – s. Trong ®ã: t lµ thêi gian khèng chÕ tr−íc; n lµ sè tiÕn tr×nh; s thêi gian

chuyÓn tõ tiÕn tr×nh nµy sang tiÕn tr×nh kh¸c.

VÝ dô: Cho d·y tiÕn tr×nh víi thêi gian thùc hiÖn t−¬ng øng theo b¶ng 1.2

vµ time quantum cã gi¸ trÞ q= 4

Page 25: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-25-

B¶ng 1.2. Thêi gian thùc hiÖn cña c¸c tiÕn tr×nh

TiÕn tr×nh T thùc hiÖn

P1 24

P2 3

P3 3

S¬ ®å Grant biÓu thÞ thø tù thùc hiÖn c¸c tiÕn tr×nh nh− h×nh 1.5.

P1 P2 P3 P1 P1 P1 P1 P1

0 4 7 10 14 18 22 26 30

H×nh 1.5. S¬ ®å Grant

Theo s¬ ®å nµy chóng ta thÊy thêi chê ®îi cña c¸c tiÕn tr×nh nh− b¶ng 1.2.

B¶ng 1.3. Thêi gian chê cña c¸c tiÕn tr×nh

Processes T thùc hiÖn T ®îi

P1 24 6

P3 3 1

P1 3 7

Tæng 30 17

DÉn ®Õn thêi gian chê ®îi trung b×nh cña c¸c tiÕn tr×nh lµ 17/3 = 5.66

1.4. Qu¶n lý bé nhí

1.4.1. Yªu cÇu ph¶i qu¶n lý bé nhí

Bé nhí lµ thiÕt bÞ l−u tr÷ duy nhÊt mµ th«ng qua ®ã CPU cã thÓ trao ®æi

th«ng tin víi m«i tr−êng bªn ngoµi. Do vËy, nhu cÇu tæ chøc, qu¶n lý bé nhí lµ

mét trong nh÷ng nhiÖm vô c¬ b¶n hµng ®Çu cña hÖ ®iÒu hµnh. Bé nhí ®−îc tæ

chøc nh− m¶ng mét chiÒu c¸c tõ nhí (word), mçi tõ nhí cã mét ®Þa chØ. ViÖc

trao ®æi th«ng tin víi m«i tr−êng bªn ngoµi ®−îc thùc hiÖn th«ng qua c¸c thao t¸c

®äc/ghi d÷ liÖu vµo mét ®Þa chØ cô thÓ nµo ®ã trong bé nhí.

Page 26: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-26-

HÖ ®iÒu hµnh chÞu tr¸ch nhiÖm cÊp ph¸t kh«ng gian nhí cho c¸c tiÕn tr×nh

khi cã yªu cÇu. §Ó thùc hiÖn tèt nhiÖm vô nµy, hÖ ®iÒu hµnh cÇn ph¶i xem xÐt

mét sè khÝa c¹nh sau:

- Sù t−¬ng øng gi÷a ®Þa chØ logic vµ ®Þa chØ vËt lý: Lµm thÕ nµo ®Ó chuyÓn

®æi mét ®Þa chØ logic thµnh mét ®Þa chØ vËt lý.

- Qu¶n lý bé nhí vËt lý bao gåm: Ph©n bæ kh«ng gian nhí cho c¸c tiÕn

tr×nh ho¹t ®éng, thu håi kh«ng gian nhí khi tiÕn tr×nh kÕt thóc, qu¶n lý ®−îc

kh«ng gian nhí tù do.

- Chia sÎ th«ng tin: Cho phÐp c¸c tiÕn tr×nh ®ang ho¹t ®éng trong bé nhí

cã thÓ chia sÎ th«ng tin víi nhau.

- B¶o vÖ bé nhí: Ng¨n chÆn c¸c tiÕn tr×nh x©m ph¹m ®Õn vïng nhí ®−îc

cÊp ph¸t cho c¸c tiÕn tr×nh kh¸c.

1.4.2. C¸c s¬ ®å qu¶n lý bé nhí

1.4.2.1. S¬ ®å ph©n ho¹ch cè ®Þnh

Bé nhí ®−îc chia thµnh n phÇn kh«ng nhÊt thiÕt ph¶i b»ng nhau vµ mçi phÇn

®−îc sö dông nh− mét bé nhí ®éc lËp gäi lµ mét ph©n ho¹ch. Mçi ph©n ho¹ch cã

thÓ n¹p ®−îc mét ch−¬ng tr×nh vµ tæ chøc thùc hiÖn mét c¸ch ®ång thêi. Nh− vËy

trªn lý thuyÕt nÕu cã n ph©n ho¹ch th× sÏ cã thÓ n¹p ®−îc n ch−¬ng tr×nh vµ thùc

hiÖn mét c¸ch ®ång thêi (n ®−îc gäi lµ hÖ sè song song cña hÖ thèng).

1.4.2.2. S¬ ®å ph©n ho¹ch ®éng

Trong s¬ ®å nµy, bé nhí cã mét b¶ng qu¶n lý kh«ng gian nhí tù do thèng

nhÊt. Khi thùc hiÖn ch−¬ng tr×nh, hÖ thèng dùa vµo kÝch th−íc ch−¬ng tr×nh ®Ó

ph©n bæ kh«ng gian nhí thÝch hîp, t¹o thµnh mét vïng nhí ®éc lËp vµ t¹o b¶ng

qu¶n lý riªng. Khi c¸c ch−¬ng tr×nh kÕt thóc, bé nhí giµnh cho nã sÏ bÞ thu håi.

Page 27: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-27-

1.4.2.3. S¬ ®å ho¸n ®æi (swapping)

S¬ ®å ho¸n ®æi dùa trªn nguyªn t¾c néi dung ch−¬ng tr×nh ë tr¹ng th¸i chê

®îi trong mét kho¶ng thêi gian dµi sÏ ®−îc t¹m thêi chuyÓn ra bé nhí ngoµi

(swap out) ®Ó gi¶i phãng vïng nhí cÊp ph¸t cho ch−¬ng tr×nh kh¸c ho¹t ®éng.

Khi ch−¬ng tr×nh kÕt thóc tr¹ng th¸i chê nã sÏ ®−îc n¹p trë l¹i bé nhí trong

(swap in) ®Ó tiÕp tôc thùc hiÖn.

Page 28: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-28-

Ch−¬ng 2 - Vi ®iÒu khiÓn vµ ng«n ng÷ lËp tr×nh

cho vi ®iÒu khiÓn

2.1. Vi ®iÒu khiÓn

2.1.1. Vi xö lý vµ vi ®iÒu khiÓn.

Bé vi xö lý ®· cã lÞch sö ra ®êi tõ 1971 khi Intel giíi thiÖu bé 8080 dïng

cho m¸y tÝnh ®¬n board. KÓ tõ khi ra ®êi, qua nhiÒu thÕ hÖ, cã nhiÒu c¶i tiÕn

nh−ng lÜnh vùc cña c¸c bé vi xö lý vÉn lµ c¸c hÖ thèng m¸y tÝnh. Trong hÖ thèng

m¸y tÝnh, bé vi xö lý cïng víi bé nhí, c¸c thiÕt bÞ vµo/ra...,hîp thµnh mét hÖ

thèng cã kh¶ n¨ng xö lý, ®iÒu khiÓn, l−u tr÷... cùc m¹nh.

Mét hÖ thèng m¸y tÝnh nÕu dïng cho mét øng dông lín yªu cÇu xö lý

nhanh, l−u tr÷ lín... th× kh«ng cã vÊn ®Ó g× ®Ó bµn. Tuy nhiªn nÕu mang hÖ thèng

nµy vµo dïng cho c¸c øng dông nhá th× l¹i trë thµnh l·ng phÝ. Tõ thùc tÕ nµy c¸c

nhµ s¶n xuÊt ®· nghiªn cøu vµ ®−a ra c¸c hÖ m¸y tÝnh nhá víi mét bé xö lý nhá,

mét bé nhí ch−¬ng tr×nh vµ d÷ liÖu nhá, mét sè c¸c thµnh phÇn vµo ra c¬ b¶n.

TÊt c¶ c¸c thµnh phÇn nµy ®−îc gãi gän trong mét chip ®¬n vµ ®©y ch×nh lµ bé vi

®iÒu khiÓn.

Nh− vËy ®Ó ph©n biÖt hai kh¸i niÖm vi xö lý vµ vi ®iÒu khiÓn th× cÇn ph¶i

xem xÐt trªn 2 ph−¬ng diÖn: KiÕn tróc phÇn cøng vµ lÜnh vùc øng dông. PhÇn

cøng cña mét bé vi ®iÒu khiÓn lµ mét bé vi xö lý, bé nhí, c¸c thiÕt bÞ vµo/ra. Vi

®iÒu khiÓn cã ®ñ nh÷ng thµnh phÇn c¬ b¶n cña mét hÖ m¸y tÝnh nªn bé vi ®iÒu

khiÓn cã thÓ ho¹t ®éng ®éc lËp ®−îc cßn vi xö lý th× kh«ng. XuÊt ph¸t tõ nh÷ng

®Æc tr−ng võa nªu nªn bé vi ®iÒu khiÓn ®−îc t×m thÊy trong c¸c øng dông nhá cßn

vi xö lý n»m trong c¸c hÖ thèng m¸y tÝnh.

AT89S52 lµ bé vi ®iÒu khiÓn 8 bit, ®−îc chÕ t¹o bëi h·ng ATMEL theo kiÕn

tróc cña 8051.

Page 29: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-29-

H×nh 2.1. S¬ ®å khèi cña bé vi ®iÒu khiÓn AT89S52

Trªn h×nh 2.1 lµ s¬ ®å khèi cña bé vi ®iÒu khiÓn nµy, theo ®ã bé vi ®iÒu

khiÓn cã ®Çy ®ñ c¸c phÇn cøng cÇn thiÕt cho mét hÖ ®iÒu hµnh thêi gian thùc nh−

bé xö lý trung t©m, bé nhí, c¸c bé timer ®Ó t¹o c¸c time tick, bé xö lý ng¾t ®Ó

thùc hiÖn chuyÓn m¹ch gi÷a c¸c tiÕn tr×nh, khèi vµo ra ®Ó thùc hiÖn c¸c thao t¸c

trong c¸c tiÕn tr×nh...Nh− vËy chØ cÇn mét bé vi ®iÒu khiÓn AT89S52víi gi¸ thµnh

kh¸ rÎ lµ ®· cã thÓ thùc hiÖn c¸c øng dông thêi gian thùc víi chi phÝ rÊt thÊp. §©y

còng chÝnh lµ lý do ®Ó t¸c gi¶ ®Ò tµi chän nghiªn cøu vi ®iÒu khiÓn vµ øng dông

vµo hÖ thèng thêi gian thùc.

Memory

Intermal Devices

CPU

Memory

ROM 8Kb

RAM256 byte

I/O devices

Timer0Timer1Timer2(16 bit)

UART

Interrupt Controller

System Bus

ROM 64Kb

RAM64Kb

I/O devices

.... ....

...

Extermal Devices

Oscilla- tior

Page 30: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-30-

2.1.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn.

AT89S52 coù boä nhôù theo caáu truùc Harvard: coù nhöõng vuøng cho boä nhôù

rieâng bieät cho chöông trình vaø döõ lieäu. Nhö ñaõ noùi ôû treân, caû boä nhôù chöông

trình vaø döõ lieäu coù saün ôû treân chip tuy nhieân dung löôïng cuûa caùc boä nhôù treân

chip laø haïn cheá. Khi thieát keá caùc öùng duïng ñoøi hoûi boä nhôù lôùn ngöôøi ta coù theå

duøng boä nhôù ngoaøi vôùi dung löôïng leân tôùi 64 Kbytes cho boä nhôù chöông trình

vaø cho 64 Kbytes boä nhôù döõ lieäu (hình 2.2).

H×nh 2.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn

2.1.2.1. Bé nhí ch−¬ng tr×nh.

AT89S52 cã 8Kb Flash Rom trªn chip, khi ch©n EA (ch©n sè 31) ®−îc ®Æt ë

møc logic cao (+5V), bé vi ®iÒu khiÓn sÏ thùc hiÖn ch−¬ng tr×nh trong Rom néi

b¾t dÇu tõ ®Þa chØ 0000H. Sè lÇn lËp tr×nh (ghi) cho bé nhí nµy lµ kho¶ng 1000

lÇn.

Khi ch©n EA ®−îc ®Æt ë møc logic thÊp, bé vi ®iÒu khiÓn sÏ thùc hiÖn

ch−¬ng tr×nh ë bé nhí ch−¬ng tr×nh ngoµi (EPPOM ngoµi), tuy nhiªn ®Ó cã ®−îc

Boä nhôù ngoaøi

Boä nhôù trong

Boä nhôù chöông trình (8Kb) 256

bytes

Boä nhôù chöông trình

(64Kb)

Boä nhôù döõ lieäu (64Kb)

0000H

00FFH

FFFFH

1FFFH

Page 31: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-31-

®iÒu nµy th× cÇn ph¶i cã mét m¹ch phèi ghÐp AT89S52 víi EPROM ®−îc lùa

chän.

Trªn h×nh 2.3: Mét vi m¹ch chèt (Latch) sÏ t¸ch riªng Bus ®a hîp ®Þa chØ vµ

d÷ liÖu AD0-AD7; Tuú theo dung l−îng cña EPROM sÏ cã sè ®−êng ®Þa chØ

t−¬ng øng ®−îc dïng; EPROM ®−îc ®äc nhê tÝn hiÖu PSEN.

H×nh 2.3. S¬ ®å ghÐp nèi AT89S52 víi EPROM

2.1.2.2. Bé nhí d÷ liÖu.

a.Bé nhí d÷ liÖu trªn chip.

AT89S52 cã 256 bytes Ram nh− baûng 2.1 ñöôïc phaân chia nhö sau:

- Caùc bank thanh ghi coù ñòa chæ töø 00H ñeán 1FH.

32 byte thaáp cuûa boä nhôù noäi ñöôïc daønh cho caùc bank thanh ghi. Boä leänh

AT89S52 hoå trôï 8 thanh ghi coù teân laø R0 -R7 vaø theo maëc ñònh sau khi reset

heä thoáng, caùc thanh ghi naøy coù caùc ñòa chæ töø 00H - 07H.

89S52

Page 32: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-32-

Caùc leänh duøng caùc thanh ghi RO - R7 seõ ngaén hôn vaø nhanh hôn so vôùi

caùc leänh coù chöùc naêng töông öùng duøng kieåu ñòa chæ tröïc tieáp. Caùc döõ lieäu ñöôïc

duøng thöôøng xuyeân neân duøng moät trong caùc thanh ghi naøy.

Do coù 4 bank thanh ghi neân taïi moät thôøi ñieåm chæ coù moät bank thanh ghi

ñöôïc truy xuaát bôûi caùc thanh ghi RO - R7 ñeåà chuyeån ñoåi vieäc truy xuaát caùc

bank thanh ghi ta phaûi thay ñoåi caùc bit choïn bank trong thanh ghi traïng thaùi.

- RAM ñòa chæ hoùa töøng bit coù ñòa chæ töø 20H ñeán 2FH.

AT89S52 coù 128 bit coù chöùa caùc byte ñònh ñòa chæ theo bit töø 20H ñeán

2FH.

YÙ töôûng truy xuaát töøng bit baèng phaàn meàm laø caùc ñaêëc tính maïnh cuûa caùc

boä vi ñieàu khieån noùi chung. Caùc bit coù theå ñöôïc ñaët, xoùa, AND, OR, ... , vôùi 1

leänh ñôn.

- RAM ña duïng töø 30H ñeán FFH.

-Caùc thanh ghi chöùc naêng ñaëc bieät töø 80H ñeán FFH.

Page 33: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-33-

B¶ng 2.1. Bé nhí d÷ liÖu trªn chÝp cña AT89S52

FF 30

Vuøng RAM ña duïng

2F 7F 7E 7D 7C 7B 7A 79 782E 77 76 75 74 73 72 71 702D 6F 6E 6D 6C 6B 6A 69 682C 67 66 65 64 63 62 61 602B 5F 5E 5D 5C 5B 5A 59 582A 57 56 55 54 53 52 51 5029 4F 4E 4D 4C 4B 4A 49 4828 47 46 45 44 43 42 41 4027 3F 3E 3D 3C 3B 3A 39 3826 37 36 35 34 33 32 31 3025 2F 2E 2D 2C 2B 2A 29 2824 27 26 25 24 23 22 21 2023 1F 1E 1D 1C 1B 1A 19 1822 17 16 15 14 13 12 11 1021 0F 0E 0D 0C 0B 0A 09 0820 07 06 05 04 03 02 01 001F Bank 3 18 17 Bank 2 10 0F Bank 1 08 07 Bank thanh ghi 0 00 (maëc ñònh cho R0 -R7)

FF

80

Daønh cho caùc thanh ghi ñaëc bieät (SFR)

RAM Caùc thanh ghi chöùc naêng

Page 34: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-34-

b. Bé nhí d÷ liÖu ngoµi.

H×nh 2.4. S¬ ®å ghÐp nèi AT89S52 víi RAM

H×nh 2.5. Gi¶i m∙ ®Þa chØ cho c¸c vi m¹ch nhí

8051 RAMA0-A7

Port 0 D0-D7

EA74HC373

ALE

RD

WROEWE

O

G

D

Port 2 A8-A15

RAM

RAMtext

Address Bus (A0- A15)

Data Bus (D0-D7)

74HC138

C

B

A

E

E

E

7

6

5

4

3

2

1

0

CS

CS

CS

CS

CS

CS

A0-A12 A0-A12

D0-D7D0-D7OE OEWE

WR RD

PSEN

RAM8KBytes

EPROM8KBytes

2764 6264

Select another EPROM/RAMTíi c¸c vi m¹ch ROM/RAM kh¸c

Page 35: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-35-

Boä nhôù döõ lieäu ngoaøi laø boä nhôù RAM ñöôïc ñoïc hoaëc ghi bôûi tín hieäu /RD

vaø WR.Caùc RAM coù theå giao tieáp vôùi AT89S52 töông töï caùch thöùc nhö

EPROM ngoaïi tröø chaân /RD cuûa AT89S52 noái vôùi chaân /OE (Output Enable)

cuûa RAM vaø /chaân WR cuûa AT89S52 noái vôùi chaân /WE cuûa RAM (hình 2.10).

Neáu coù nhieàu vi maïch ROM vaø RAM cuøng ñöôïc gheùp noái vôùi AT89S52

thì coù theå duøng theâm vi maïch giaûi maõ 74LS138 (hình 2.5).

Nhö ñaõ noùi ôû treân, boä nhôù chöông trình vaø boä nhôù döõ lieäu cuûa AT89S52

coù theå truøng ñòa chæ, ñieàu naøy cho pheùp ngöôøi thieát keá coù theå xaây döïng moät boä

nhôù döõ lieäu chöùa chöông trình thöïc thi (boä nhôù döõ lieäu ñoïc nhö boä nhôù chöông

trình) nhö hình 2.6.

H×nh 2.6. Bé nhí d÷ liÖu ®äc nh− bé nhí ch−¬ng tr×nh

2.1.3. C¸c bé ®Þnh thêi.

Caùc boä ñònh thôøi (Timer) coù theå hieåu laø moät chuoãi caùc flip-flop chia

ñoâi taàn soá noái tieáp vôùi nhau, chuùng nhaän tín hieäu vaøo laøm nguoàn xung nhòp,

ngoõ ra cuûa taàn soá cuoái laøm nguoàn xung nhòp cho flip-flop baùo traøn cuûa

Timer (flip-flop côø). Giaù trò nhò phaân trong caùc flip-flop cuûa Timer coù theå

RAM

W

OE

W

RD

PSEN

Page 36: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-36-

xem nhö soá ñeám soá xung nhòp (hoaëc caùc söï kieän) töø khi khôûi ñoäng Timer.

Ví duï Timer 16 bit seõ ñeám leân töø 0000H ñeán FFFFH, côø baùo traøn seõ leân 1

khi soá ñeám traøn töø FFFFH ñeán 0000H.

AT89S52 coù 3 Timer 16 bit, moãi Timer coù boán cheá ñoä hoaït ñoäïng. Ngöôøi

ta söû duïng caùc Timer ñeå: Ñònh khoaûng thôøi gian, ñeám söï kieän hoaëc taïo toác ñoä

baud cho port noái tieáp trong.

H×nh 2.7. Ho¹t ®éng cña Timer0 vµ Timer1 ë chÕ ®é 1.

Nguyªn t¾c ho¹t ®éng cña c¸c bé ®Þnh thêi nh− sau:

Nguån xung clock ®−îc ®−a tíi Timer tõ mét trong c¸ch phô thuéc vµo bit

C-T trong thanh ghi TMOD:

• NÕu C-/T = 1, xung clock sÏ ®−îc lÊy tõ bé t¹o xung bªn ngoµi qua

ch©n Tx(T0,T1 hoÆc T2).

• NÕu C-/T = 0, xung clock sÏ ®−îc lÊy tõ bé chia tÇn trong chip, tÇn

sè cña xung ë ®©y lµ 1/12 tÇn sè cña bé dao ®éng th¹ch anh (Fosc).

Nguån xung clock nãi trªn sÏ ®−îc ®iÒu khiÓn ®Ó ®−a tíi c¸c Timer b»ng

c¸c bit: TR, GATE vµ møc logic trªn c¸c ch©n INTx:

• NÕu TRx=0, c¸c Timer sÏ bÞ cÊm mµ kh«ng cÇn quan t©m tíi GATE

vµ møc logic trªn c¸c ch©n INTx (thÓ hiÖn b»ng “cæng AND”).

Page 37: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-37-

• NÕu TRx=1, c¸c Timer sÏ ho¹t ®éng víi mét trong 2 ®iÒu kiÖn sau

x¶y ra (thÓ hiÖn b»ng cæng ‘OR”): Thø nhÊt: bit GATE=1; thø hai: trªn ch©n

INTx cã møc logic 1.

Gi¸ trÞ lín nhÊt mµ c¸c Timer chøa ®−îc lµ 65535 (t−¬ng øng FFFF(H)), khi

®Õm qu¸ gi¸ trÞ nµy sÏ x¶y ra trµn, khi cê trµn TF sÏ ®−îc ®Æt b»ng 1 vµ g©y ra

ng¾t do bé ®Þnh thêi. C¨n cø vµo sù kiÖn nµy bé xö lý ng¾t sÏ n¹p dÞa chØ cña

vector ng¾t cho con trá PC, bé vi ®iÒu khiÓn sÏ thùc hÖn ch−¬ng tr×nh ë ®©y.

Trong hÖ ®iÒu hµnh thêi gian thùc, bé ®Þnh thêi lµ mét trong nh÷ng tµi

nguyªn phÇn cøng kh«ng thÓ thiÕu. Bé ®Þnh thêi dïng ®Ó x¸c ®Þnh c¸c kho¶ng

thêi gian thÝch hîp cho mçi tiÕn tr×nh ho¹t ®éng (gäi lµ timer tick). Kho¶ng thêi

gian nµy cã thÓ thay ®æi dÏ dµng nhê viÖc n¹p c¸c gi¸ trÞ kh¸c nhau cho bé timer.

Kho¶ng thêi gian nµy còng thay ®æi tuú theo c¸c øng dông thêi gian thùc sao cho

nã lu«n nhá h¬n thêi gian ®¸p øng cña hÖ thèng víi c¸c kÝch thÝch bªn ngoµi.

2.1.4. Bé xö lý ng¾t.

Ng¾t cã thÓ hiÓu ®¬n gi¶n lµ t¹m dõng mét ho¹t ®éng A nµo ®ã vµ chuyÓn

sang mét ho¹t ®éng B kh¸c cã nhu cÇu cÊp thiÕt h¬n. Khi x¶y ra ng¾t, toµn bé c¸c

c«ng viÖc, tr¹ng th¸i cña ho¹t ®éng A sÏ ®−îc cÊt vµo ng¨n xÕp ®Ó lµm c¨n cø

tiÕp diÔn khi bé vi xö lý ®· hoµn thµnh xong ho¹t ®éng B vµ quay trë l¹i víi ho¹t

®éng A.

AT89S52 cã 6 nguån ng¾t:

- Ng¾t ngoµi ®Õn tõ ch©n /INT0.

- Ng¾t ngoµi ®Õn tõ ch©n /INT1.

- Ng¾t do bé timer 0.

- Ng¾t do bé timer 1.

- Ng¾t do bé timer 2.

Page 38: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-38-

- Ng¾t do Port nèi tiÕp.

6 nguån ng¾t nµy ®−îc xo¸ khi Reset vµ ®−îc ®Æt riªng b»ng phÇn mÒm bëi

c¸c bit trong c¸c thanh ghi cho phÐp ng¾t (IE), thanh ghi −u tiªn ng¾t (IP).

H×nh 2.8. C¸c nguån ng¾t cña AT89S52

Nh− ®· tr×nh bµy ë môc 2.3, c¸c bé ®Þnh thêi t¹o ra c¸c kho¶ng thêi gian

(time tick), theo ®ã c¸c mét tiÕn tr×nh ph¶i ®−îc t¹m dõng vµ mét tiÕn tr×nh kh¸c

sÏ ®−îc thùc hiÖn. Sù chuyÓn m¹ch sang tiÕn tr×nh míi kÐo theo viÖc ph¶i l−u l¹i

c¸c c«ng viÖc cña tiÕn tr×nh cò. Ng¾t do bé ®Þnh thêi chÝnh lµ c¬ së ®Ó cã thÓ thùc

hiÖn viÖc chuyÓn m¹ch gi÷a c¸c tiÕn tr×nh.

Page 39: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-39-

Ngoµi ra trªn vi ®iÒu khiÓn cßn cã mét sè c¸c nguån ng¾t kh¸c. C¸c nguån

ng¾t nµy khi ®−îc ®Æt ë c¸c thø tù −u tiªn thÝch hîp sÏ lµ con ®−êng ®Ó mét hÖ

thèng thêi gian thùc cã thÓ ph¶n øng kÞp thêi víi c¸c kÝch thÝch tõ bªn ngoµi.

2.2. Ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn

2.2.1. Tæng quan vÒ c¸c ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn.

Cho ®Õn nay khi lËp tr×nh cho c¸c bé vi ®iÒu khiÓn ng−êi ta th−êng sö dông

2 ng«n ng÷ chÝnh ®ã lµ hîp ng÷ vµ C. Hîp ng÷ (assembly) lµ ng«n ng÷ lËp tr×nh

bËc thÊp (chØ ®øng trªn ng«n ng÷ m¸y mét bËc). Hîp ng÷ sö dông chÝnh ngay tËp

lÖnh cña bé vi ®iÒu khiÓn t−¬ng øng ®Ó viÕt nªn mét ch−¬ng tr×nh. §Ó biªn dÞch

thµnh m· m¸y cã thÓ sö dông tr×nh dÞch hîp ng÷ (assembler) hoÆc cã thÓ dïng

chÝnh b¶ng m· lÖnh do nhµ s¶n xuÊt cung cÊp ®Ó m· ho¸ c¸c lÖnh vµ tæng hîp

thµnh m· (code) cña ch−¬ng tr×nh. Chóng ta cïng xem xÐt vÝ dô sau:

MOV AL,80H ; chuyÓn sè 80H vµo AL

MOV BL,12H ; chuyÓn sè 12H vµo BL

ADD AL,BL ; céng hai sè víi nhau.

Trong ®o¹n ch−¬ng tr×nh trªn nÕu tra b¶ng m· sÏ cã ®−îc m· cña 3 lÖnh lÇn

l−ît lµ:

B0 80

B3 12

80 C0

NÕu tæng hîp l¹i th× m· cña ®o¹n ch−¬ng tr×nh trªn sÏ lµ B0 80 B3 12

80 C0.

C¸ch tra b¶ng m· lÖnh vµ ho¸ lÖnh sau ®ã tæng hîp thµnh m· ch−¬ng tr×nh

cã thÓ g©y ra nhÇm lÉn vµ mÊt rÊt nhiÒu thêi gian chÝnh v× vËy mµ tr×nh dÞch hîp

ng÷ ra ®êi. Cã trong tay tr×nh dÞch hîp ng÷ ng−êi lËp tr×nh cã thÓ ®· gi¶m bít

Page 40: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-40-

®−îc kh¸ nhiÒu c«ng søc khi lËp tr×nh cho vi ®iÒu khiÓn. Tuy nhiªn chóng ta cïng

xem xÐt vÝ dô sau:

Thùc hiÖn phÐp to¸n AX=7 * 9 + 12 * 8.

Hîp ng÷:

MOV AL,7 ;sè h¹ng thø nhÊt chøa trong AL

MOV BL,9 ;sè h¹ng thø hai chøa trong BL

MUL BL ;nh©n 2 sè, kÕt qu¶ chøa trong AX

MOV CX,AX ;chuyÓn kÕt qu¶ vµo thanh ghi kh¸c ®Ó

chuÈn bi cho phÐp ;nh©n thø hai

MOV AL,12

MOV BL,8

MUL BL

ADD AX,CX ;céng hai tÝch víi nhau

AINSI C:

AX=7*9+12*8;

Râ rµng víi cïng mét nhiÖm vô nh−ng AINSI C chØ cÇn 1 dßng lÖnh trong

khi hîp ng÷ cÇn tíi 8 dßng lÖnh vµ c¶ 8 dßng lÖnh trªn ®Òu ph¶i thao t¸c trªn c¸c

thanh ghi (phÇn cøng). Tõ lý do nµy mµ ng−êi ta nghÜ ®Õn viÖc nªn sö dông mét

ng«n ng÷ cÊp cao h¬n ®Ó thay thÕ cho hîp ng÷ vµ x©y dùng tr×nh dÞch (compiler)

cho ng«n ng÷ cÊp cao ®ã.

Khi thiÕt kÕ phÇn mÒm cho mét hÖ thèng nhóng nhá sö dông 8085, viÖc

sö dông m· hîp ng÷ (assembly code) ®Ó ph¸t triÓn toµn bé s¶n phÈm ®· trë thµnh

chuyÖn b×nh th−êng. §èi víi nhiÒu ®Ò tµi, ®©y lµ tiÕp cËn kh¶ thi v× l−îng m· cÇn

®−îc t¹o ra th−êng nhá h¬n 8 Kbyte vµ t−¬ng ®èi ®¬n gi¶n vÒ b¶n chÊt. NÕu mét

kü s− phÇn cøng ®−îc giao nhiÖm vô thiÕt kÕ c¶ phÇn cøng lÉn phÇn mÒm, ng−êi

nµy th−êng cã khuynh h−íng viÕt phÇn mÒm b»ng hîp ng÷. Ng−êi kü s− phÇn

Page 41: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-41-

cøng th−êng kh«ng quen víi mét ng«n ng÷ cÊp cao nh− C ch¼ng h¹n hoÆc ng−êi

nµy kh«ng quan t©m ®Õn ng«n ng÷ cÊp cao.

KhuyÕt ®iÓm cña c¸c ®Ò tµi ®−îc viÕt b»ng hîp ng÷ cã thÓ lµ khã ®äc vµ

khã b¶o tr×, ®Æc biÖt khi c¸c ch−¬ng tr×nh cho c¸c ®Ò tµi nµy kh«ng ®−îc chó

thÝch tèt. Ngoµi ra, l−îng m· cã thÓ sö dông l¹i tõ mét ®Ò tµi viÕt b»ng hîp ng÷

th−êng rÊt thÊp. ViÖc sö dông ng«n ng÷ cÊp cao nh− C cã thÓ gi¶i quyÕt c¸c vÊn

®Ò nµy.

Mét ch−¬ng tr×nh ®−îc viÕt b»ng C sÏ dÔ ®äc h¬n so víi ch−¬ng tr×nh ®−îc

viÕt b»ng hîp ng÷. Do ch−¬ng tr×nh viÕt b»ng C së h÷u c¸c cÊu tróc lín h¬n, ta

dÔ dµng hiÓu vµ b¶o tr× ch−¬ng tr×nh. Do tÝnh cã module cña ng«n ng÷ C, mét

ch−¬ng tr×nh viÕt b»ng C cã thÓ sö dông l¹i m· mét c¸ch tèt h¬n khi ®i tõ ®Ò tµi

kh¸c. ViÖc chia ch−¬ng tr×nh thµnh nhiÒu hµm sÏ thóc ®Èy cÊu tróc phÇn mÒm tèt

h¬n vµ dÉn ®Õn c¸c hµm cã thÓ ®−îc lÊy ra tõ mét ®Ò tµi vµ sö dông vµo ®Ò tµi

kh¸c, nh− vËy sÏ gi¶m tæng thêi gian ph¸t triÓn.

Mét ng«n ng÷ cÊp cao ch¼ng h¹n nh− C cho phÐp ng−êi ph¸t triÓn viÕt

ch−¬ng tr×nh t−¬ng ®ång nhiÒu h¬n víi suy nghÜ cña con ng−êi so víi ch−¬ng

tr×nh viÕt b»ng hîp ng÷. Ng−êi ph¸t triÓn cã thÓ tËp trung nhiÒu thêi gian h¬n vµo

viÖc thiÕt kÕ c¸c gi¶i thuËt cña hÖ thèng thay v× ph¶i tËp trung vµo viÖc thùc hiÖn

riªng rÏ c¸c gi¶i thuËt. §iÒu nµy sÏ lµm gi¶m mét c¸ch ®¸ng kÓ thêi gian ph¸t

triÓn vµ lµm gi¶m thêi gian gì rèi v× ch−¬ng tr×nh sÏ dÔ hiÓu h¬n.

B»ng c¸ch sö dông ng«n ng÷ gièng nh− C, ng−êi lËp tr×nh kh«ng cÇn ph¶i

am t−êng kiÕn tróc cña bé vi ®iÒu khiÓn. §iÒu nµy cã nghÜa lµ mét ng−êi ch−a

quen víi mét bé vi ®iÒu khiÓn cho s½n cã thÓ x©y dùng mét ®Ò tµi nhanh h¬n v× tæ

chøc bªn trong cña bé vi ®iÒu khiÓn ®Ých cã thÓ kh«ng cÇn nghiªn cøu. Ngoµi ra

ch−¬ng tr×nh ®−îc ph¸t triÓn b»ng C sÏ dÔ dµng sö dông víi c¸c hÖ thèng kh¸c so

víi ch−¬ng tr×nh ®−îc ph¸t triÓn b»ng hîp ng÷.

Page 42: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-42-

NhiÒu bé vi ®iÒu khiÓn cã c¸c tr×nh dÞch ng«n ng÷ C, c¸c tr×nh dÞch nµy hç

trî AINSI C.

TÊt c¶ c¸c ®iÒu nµy kh«ng cã ý muèn nãi r»ng hîp ng÷ kh«ng cã vai trß

cña m×nh. Trªn thùc tÕ nhiÒu hÖ thèng nhóng (®Æc biÖt lµ c¸c hÖ thèng thêi gian

thùc) kÕt hîp ch−¬ng tr×nh C vµ ch−¬ng tr×nh hîp ng÷.

§èi víi c¸c thao t¸c cã thêi gian tíi h¹n, ch−¬ng tr×nh hîp ng÷ th−êng lµ

ph−¬ng ph¸p duy nhÊt ®−îc lùa chän. Tuy nhiªn theo kinh nghiÖm, phÇn cßn l¹i

cña ®Ò tµi (bao gåm nhiÒu giao diÖn phÇn cøng) cã thÓ vµ nªn ®−îc ph¸t triÓn

b»ng C. Mét trong nh÷ng ®iÒu quan träng nhÊt vÒ ng«n ng÷ C lµ ng«n ng÷ nµy

cho phÐp ta thùc hiÖn c¸c thao t¸c møc thÊp cña phÇn cøng nÕu cÇn, l¹i cßn cung

cÊp cho ta chøc n¨ng vµ kh¸i niÖm trõu t−îng cña ng«n ng÷ cÊp cao.

2.2.2. Nh÷ng vÊn ®Ò víi ng«n ng÷ C viÕt cho c¸c bé vi ®iÒu khiÓn.

Ng«n ng÷ lËp tr×nh C lµ mét ng«n ng÷ lËp tr×nh ®−îc sö dông réng r·i trªn

thÕ giíi. NhiÒu ng−êi cho r»ng ®©y lµ ng«n ng÷ lËp tr×nh bËc cao v× C cã kh¸

nhiÒu thuéc tÝnh gièng c¸c ng«n ng÷ lËp tr×nh bËc cao, vÝ dô nh−: cÊu tróc cña

ch−¬ng tr×nh, c¸ch ®Þnh nghÜa vµ gäi c¸c thñ tôc...,tuy nhiªn søc m¹nh thùc sù

cña C kh«ng ph¶i ë ®ã mµ chÝnh lµ kh¶ n¨ng truy nhËp phÇn cøng, thao t¸c trªn

c¸c bit, byte, word cña phÇn cøng ®èi t−îng. Còng chÝnh bëi lý do nµy mµ C

®−îc rÊt nhiÒu nhµ thiÕt kÕ hÖ ®iÒu hµnh sö dông lµ ng«n ng÷ lËp tr×nh bªn c¹nh

hîp ng÷, cã thÓ kÓ ra c¸c hÖ ®iÒu hµnh cã sö dông C ®Ó lËp tr×nh nh−: UNIX,

LINUX, MS-Windows...

Trªn bé vi ®iÒu khiÓn 8bit, dÔ hiÓu lµ kh«ng thÓ ®em so s¸nh vÒ tµi nguyªn

®èi víi c¸c bé vi xö lý ®−îc chän ®Ó viÕt hÖ ®iÒu hµnh LINUX hay Windows. Cã

thÓ kÓ ra mét sè dÉn chøng: tµi nguyªn vÒ bé nhí cña vi ®iÒu khiÓn chØ vµi Kbyte

®èi víi bé nhí ch−¬ng tr×nh vµ vµi tr¨m byte ®èi víi bé nhí d÷ liÖu; kh«ng gian

®Þa chØ còng chØ lµ vµi chôc Kbyte...

Page 43: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-43-

Tr×nh dÞch C cã kh¶ n¨ng nhËn m· nguån C (C source code) cña ng−êi lËp

tr×nh vµ t¹o ra m· ®èi t−îng (object code) ®−îc tèi −u ho¸ cao tõ m· nguån nµy.

Tuy nhiªn cã nhiÒu ®iÒu mµ chóng ta, víi t− c¸ch lµ ng−êi thiÕt kÕ, cã thÓ thùc

hiÖn ®Ó gióp cho tr×nh dÞch t¹o ra m· tèt h¬n ®Ó cã thÓ tiÕt kiÖm ®îc tèi ®a c¸c tµi

nguyªn cña vèn h¹n chÕ cña bé vi ®iÒu khiÓn.

2.2.2.1. Gi¶m kÝch th−íc biÕn.

Mét trong nh÷ng ®iÒu c¬ b¶n nhÊt mµ ta cÇn ph¶i lµm ®Ó c¶i thiÖn ch−¬ng

tr×nh cña ta lµ ®Æc biÖt l−u ý ®Õn kÝch th−íc cña c¸c biÕn. §èi víi ng−êi th−êng

lËp tr×nh b»ng C trªn c¸c m¸y ch¼ng h¹n nh− mét mainframe hoÆc PC, viÖc khai

b¸o nh÷ng ®iÒu nh− lµ c¸c bé ®Õm vßng lÆp d−íi d¹ng c¸c sè nguyªn lµ rÊt b×nh

th−êng, ngay c¶ ®èi víi c¸c biÕn mµ gi¸ trÞ cña chóng kh«ng bao giê v−ît qu¸

255. Trªn mét m¸y 8 – bit nh− 8051, viÖc sö dông réng r·i c¸c kiÓu d÷ liÖu cã

kÝch th−íc lín h¬n 8 bÝt sÏ g©y ra sù hoang phÝ lín vÒ kh¶ n¨ng xö lý vµ bé nhí.

Ta cÇn ph¶i cÈn thËn xem xÐt tÇm gi¸ trÞ ®èi víi biÕn mµ ta khai b¸o vµ kÕ ®Õn

chän kiÓu nhá nhÊt tho¶ yªu cÇu. HiÓn nhiªn kiÓu ®−îc −a chuéng nhÊt ®èi víi

c¸c biÕn sÏ lµ unsigned char, do kiÓu nµy chØ sö dông 1 byte.

2.2.2.2. Sö dông kiÓu unsigned.

§Õn ®©y, ta cã thÓ ng¹c nhiªn v× kiÓu ®−îc −a chuéng lµ kiÓu unsigned

char thay v× lµ kiÓu char. LËp luËn ®»ng sau ®iÒu nµy lµ 8051 kh«ng hç trî sè häc

cã dÊu vµ ®o¹n m· phô ®−îc yªu cÇu bëi mét gi¸ trÞ cã dÊu, tr¸i ng−îc víi mét

gi¸ trÞ kh«ng dÊu, sÏ lÊy ®i toµn bé c¸c tµi nguyªn cña bé vi ®iÒu khiÓn. Nh− vËy

cïng víi viÖc chän lùa c¸c kiÓu biÕn t−¬ng øng víi tÇm gi¸ trÞ, ta còng ph¶i xem

xÐt xem cã ph¶i biÕn sÏ ®−îc sö dông cho mét thao t¸c nµo ®ã sÏ yªu cÇu c¸c sè

©m. NÕu kh«ng, ta cÇn ®¶m b¶o r»ng ta chØ ra biÕn cã kiÓu unsigned. Ta cÇn lo¹i

bá c¸c sè ©m ra khái mét hµm hoÆc toµn bé øng dông cña ta.

Page 44: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-44-

2.2.2.3. Kh«ng sö dông sè dÊu chÊm ®éng.

ViÖc thùc hiÖn c¸c phÐp to¸n sè dÊu chÊm ®éng trªn c¸c gi¸ trÞ 32-bit víi

mét bé vi ®iÒu khiÓn 8 bit còng gièng nh− ta c¾t mét b·i cá b»ng c¸c ®å dïng c¾t

mãng tay. Ta cã thÓ thùc hiÖn ®−îc ®iÒu nµy nh−ng sÏ hoang phÝ mét l−îng thêi

gian lín khñng khiÕp. BÊt kú lóc nµo ta dù ®Þnh sö dông dông sè dÊu chÊm ®éng

trong mét øng dông, ta cÇn ph¶i tù hái xem cã ph¶i ®iÒu nµy lµ tuyÖt ®èi cÇn thiÕt

hay kh«ng? Th«ng th−êng, c¸c sè dÊu chÊm ®éng cã thÓ ®−îc lo¹i bá b»ng c¸ch

t¨ng cÊp tÊt c¶ c¸c gi¸ trÞ b»ng mét cÆp cïng bËc vÒ ®é lín vµ sö dông c¸c phÐp

to¸n sè nguyªn. Ta sÏ xö lý tèt h¬n c¸c sè kiÓu int vµ long so víi c¸c sè kiÓu

double vµ float. Ch−¬ng tr×nh cña ta sÏ thùc thi nhanh h¬n vµ c¸c th−êng tr×nh sè

dÊu chÊm ®éng sÏ kh«ng ®−îc liªn kÕt vµo trong øng dông cña ta. Ngoµi ra nÕu

ta cÇn ph¶i sö dông sè dÊu chÊm ®éng, ta cÇn xem xÐt viÖc sö dông c¸c phiªn b¶n

cña 8051, c¸c phiªn b¶n nµy ®· ®−îc tèi −u ho¸ ®èi víi c¸c phÐp to¸n sè häc

ch¼ng h¹n nh− Siemens 80517, 80537 hoÆc Dallas Semiconductor 80320.

Cã nhiÒu khi ta bÞ Ðp buéc ph¶i liªn kÕt chÆt chÏ víi viÖc sö dông c¸c sè

dÊu chÊm ®éng trong hÖ thèng cña ta. Ta ®· biÕt nh÷ng bÊt lîi vÒ kÝch th−íc

ch−¬ng tr×nh vµ tèc ®é mµ ta ph¶i ®èi phã. Ngoµi ra, ta cÇn ý thøc ®−îc r»ng nÕu

ta sö dông c¸c phÐp to¸n sè dÊu chÊm ®éng trong mét th−êng tr×nh mµ th−êng

tr×nh nµy cã thÓ bÞ ng¾t, ta ph¶i ®¶m b¶o r»ng th−êng tr×nh ng¾t (interrupting

routine) kh«ng ®−îc sö dông c¸c phÐp to¸n sè dÊu chÊm ®éng ë bÊt kú n¬i nµo

trong c©y gäi (calling tree) cña th−êng tr×nh, hoÆc ta ph¶i l−u gi÷ tr¹ng th¸i cña

hÖ thèng sè dÊu chÊm ®éng ë n¬i b¾t ®Çu cña ISR b»ng c¸ch sö dông “fpsave” vµ

phôc håi l¹i tr¹ng th¸i ban ®Çu cña hÖ thèng sè dÊu chÊm ®éng ë n¬i kÕt thóc ISR

b»ng c¸ch sö dông “fprestore”. Mét ph−¬ng ph¸p kh¸c lµ bao bäc lêi gäi ®Õn c¸c

ch−¬ng tr×nh sè dÊu chÊm ®éng ch¼ng h¹n nh− sin() cïng víi mét hµm v« hiÖu

ho¸ c¸c ng¾t tr−íc lêi gäi ®Õn hµm to¸n häc vµ cho phÐp c¸c ng¾t trë l¹i sau lêi

gäi.

Page 45: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-45-

include <math.h>

void timer0_isr(void) interrupt 1 {

struct FPBUF fpstate;

// ®o¹n m· khëi ®éng hoÆc ®o¹n m·

// Kh«ng sö dông sè dÊu chÊm ®éng nµo ®ã

fpsave(&fpstate); // L−u tr¹ng th¸i cña

// hÖ thèng sè dÊu chÊm ®éng

// ®o¹n m· ISR bÊt kú, bao gåm

// ®o¹n m· sè dÊu chÊm ®éng.

fprestore (&fpstate); // kh«i phôc tr¹ng th¸i

cña hÖ thèng

// sè dÊu chÊm ®éng

// ®o¹n m· ISR bÇt kú kh«ng sö dông

// sè dÊu chÊm ®éng

}

float my_sin(float arg) {

float retval;

bit old_ea;

old_ea = EA; // l−u tr¹ng th¸i ng¾t hiÖn hµnh

EA = 0; // cÊm c¸c ng¾t

Retval = sin(arg); /* thùc hiÖn lêi gäi hµm

sè dÊu chÊm ®éng*/

EA = old_ea; /* ®Æt trë l¹i tr¹ng

th¸i ng¾t*/

return retval;

}

Page 46: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-46-

NÕu ta ph¶i sö dông sè dÊu chÊm ®éng trong ch−¬ng tr×nh cña ta, ta cÇn nç

lùc x¸c ®Þnh ®é chÝnh x¸c cùc ®¹i cÇn cã. Mét khi ®· tÝnh ®−îc sè bit cùc ®¹i cña

®é chÝnh x¸c cÇn cã trong viÖc tÝnh to¸n sè dÊu chÊm ®éng, ta h·y ®−a sè nµy vµo

trong hép tho¹i c¸c lùa chän cña tr×nh dÞch bªn d−íi ®iÒu khiÓn “Bit to round for

float compare”. §iÒu nµy sÏ cho phÐp c¸c th−êng tr×nh sè dÊu chÊm ®éng giêi

h¹n l−îng c«ng viÖc mµ chóng thùc hiÖn chØ ®Õn ®é chÝnh x¸c cã ý nghÜa ®èi víi

hÖ thèng cña ta.

2.2.2.4. Sö dông biÕn bit

Khi ta dù ®Þnh sö dông c¸c cê (flag) chØ cã hai tr¹ng th¸i 0 vµ 1, ta nªn sö

dông kiÓu bit thay v× sö dông kiÓu unsigned char. §iÒu nµy nh»m môc ®Ých ®Ó

dµnh bé nhí cho sau nµy v× ta kh«ng hoang phÝ 7 bit kia. Ngoµi ra, c¸c biÕn bit

lu«n lu«n ®−îc cÊt ë RAM bªn trong vµ do vËy sÏ ®−îc truy cËp trong mét chu

kú.

3.8.5. Sö dông biÕn côc bé thay cho biÕn toµn côc

C¸c biÕn ®−îc khai b¸o lµ d÷ liÖu toµn côc (global data) sÏ sö dông kÐm

hiÖu qu¶ h¬n so víi c¸c biÕn ®−îc khai b¸o lµ d÷ liÖu côc bé (local data). Lý do

cho ®iÒu nµy lµ tr×nh dÞch lu«n cè g¾ng g¸n c¸c biÕn côc bé cho c¸c thanh ghi

bªn trong, trong khi ®ã d÷ liÖu toµn côc cã thÓ hoÆc kh«ng thÓ ë trong c¸c thanh

ghi bªn trong tuú thuéc vµ khai b¸o cña ta. Trong nh÷ng tr−êng hîp mµ c¸c biÕn

toµn côc ®−îc g¸n mÆc ®Þnh cho XDATA (ch¼ng h¹n nh− c¸c ch−¬ng tr×nh theo

m« h×nh bé nhí lín), ta ®· tõ bá viÖc truy cËp nhanh. Lý do kh¸c ®Ó tr¸nh c¸c

biÕn toµn côc lµ ta ph¶i phèi hîp viÖc truy cËp ®Õn c¸c biÕn nh− vËy gi÷a c¸c qu¸

tr×nh trong hÖ thèng cña ta. §iÒu nµy sÏ lµ mét vÊn ®Ò trong c¸c hÖ thèng ng¾t

hoÆc c¸c hÖ thèng ®a t¸c vô, trong ®ã cã thÓ cã nhiÒu h¬n mét qu¸ tr×nh sÏ cè

g¾ng sö dông biÕn toµn côc. NÕu ta cã thÓ tr¸nh c¸c biÕn toµn côc vµ sö dông c¸c

biÕn côc bé, tr×nh dÞch sÏ qu¶n lý ch−¬ng tr×nh cña ta mét c¸ch cã hiÖu qu¶ nhÊt.

Page 47: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-47-

2.2.2.6. Sö dông bé nhí bªn trong cho c¸c biÕn.

C¸c biÕn toµn côc vµ côc bé cã thÓ bÞ buéc ë trong mét vïng nhí bÊt kú mµ

ta muèn. Nh− ta ®· biÕt qua c¸c th¶o luËn ë trªn vÒ c¸c tho¶ hiÖp gi÷a c¸c ®o¹n

nhí, ta cÇn thÊy râ r»ng ta cã thÓ tèi −u ho¸ tèc ®é cña ch−¬ng tr×nh b»ng c¸ch

®Æt c¸c biÕn ®−îc sö dông th−êng xuyªn ë RAM bªn trong. Ngoµi ra ch−¬ng

tr×nh cña ta sÏ nhá h¬n do cã Ýt lÖnh h¬n vµ cung cÊp viÖc truy cËp c¸c biÕn ë

RAM bªn trong nhanh h¬n so víi ch−¬ng tr×nh ph¶i truy cËp c¸c biÕn ë RAm

ngoµi. Nh»m t¨ng tèc ®é thùc thi ch−¬ng tr×nh, ta sÏ muèn lÊp ®Çy c¸c ®o¹n nhí

theo thø tù sau: DATA, IDATA, PDATA, XDATA. Mét lÇn n÷a ta cÇn cÈn thËn

®Ó dµnh ®ñ kh«ng gian nhí trong ®o¹n nhí DATA cho vïng xÕp chång bªn trong

cña bé vi ®iÒu khiÓn.

2.2.2.7. Sö dông c¸c con trá bé nhí cô thÓ.

NÕu ch−¬ng tr×nh cña ta dù ®Þnh sö dông c¸c con trá cho c¸c thao t¸c nµo

®ã, ta cã thÓ muèn kh¶o s¸t c¸ch sö dông chóng vµ l−u gi÷ chóng trong mét vïng

nhí cô thÓ ch¼ng h¹n nh− kh«ng gian XDATA hoÆc CODE. NÕu ta cã thÓ thùc

hiÖn ®iÒu nµy, ta sÏ sö dông c¸c con trá bé nhí cô thÓ. Nh− ®· ®Ò cËp tr−íc ®©y,

c¸c con trá bé nhí cô thÓ sÏ kh«ng cÇn ®Õn mét bé chän vµ ch−¬ng tr×nh sö dông

chóng sÏ chÆt chÏ h¬n do tr×nh dÞch cã thÓ bæ sung chóng ®Ó ¸p dông mét tham

chiÕu ®Õn mét ®o¹n nhí cho tr−íc thay v× ph¶i x¸c ®Þnh ®o¹n nhí nµo con trá

nh¾m ®Õn.

2.2.2.8. Sö dông hµm néi t¹i

§èi víi nh÷ng hµm ®¬n gi¶n ch¼ng h¹n nh− quay bit c¸c biÕn (bit – wise

rotation of variables), tr×nh dÞch cung cÊp cho ta c¸c hµm néi t¹i (intrinsic

function), c¸c hµm nµy cã thÓ ®−îc gäi. NhiÒu hµm néi t¹i t−¬ng øng trùc tiÕp víi

c¸c lÖnh cña hîp ng÷ trong khi nh÷ng hµm kh¸c ®−îc yªu cÇu nhiÒu h¬n vµ cung

cÊp tÝnh t−¬ng thÝch cña ANISI. TÊt c¶ c¸c hµm néi t¹i lµ hµm reentrant vµ do vËy

cã thÓ ®−îc gäi mét c¸ch an toµn tõ bÊt kú n¬i nµo trong ch−¬ng tr×nh.

Page 48: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-48-

§«i víi c¸c thao t¸c quay trªn mét byte, c¸c hµm néi t¹i _crol_ (quay

tr¸i) _cror_ (quay ph¶i) t−¬ng øng trùc tiÕp víi c¸c lÖnh hîp ng÷ ‘RL A’ vµ

‘RR A’. NÕu ta muèn thùc hiÖn phÐp quay bÝt trªn c¸c ®èi t−îng lín h¬n ch¼ng

h¹n nh− mét ®èi t−îng cã kiÓu int hoÆc long, hµm néi t¹i sÏ phøc t¹p h¬n

vµ do vËy sÏ dµi h¬n. C¸c phÐp quay nµy cã thÓ ®−îc gäi b»ng c¸ch sö dông c¸c

hµm néi t¹i _irol, _iror_ cho c¸c kiÓu int vµ c¸c hµm näi t¹i _lrol,

_lror_ cho c¸c kiÓu long.

LÖnh “nh¶y vµ xo¸ bÝt nÕu bÝt ®−îc thiÕt lËp b»ng 1” (“jump and clear bit

if set”) JBC tõ còng ®−îc thùc hiÖn d−íi d¹ng mét hµm néi t¹i ®Ó sö dông trong

C. Hµm nµy ®−îc gäi bëi _testbit_. Hµm néi t¹i nµy tr¶ vÒ gi¸ trÞ ®óng nÕu bÝt

th«ng sè ®−îc thiÕt lËp b»ng 1 vµ sai nÕu ng−îc l¹i. §iÒu nµy th−êng h÷u dông

khi kiÓm tra c¸c cê ch¼ng h¹n nh− RI, TI hoÆc c¸c cê trµn cña bé ®Þnh thêi vµ

dÉn ®Õn ch−¬ng tr×nh viÕt b»ng C dÔ ®äc h¬n nhiÒu. Hµm nµy cã thÓ dÞch trùc

tiÕp thµnh lÖnh JBC. VÝ dô sau ®©y sÏ minh ho¹ râ h¬n ®iÒu nµy

#include<instrins.h>

void serial_intr(void) interrupt 4 {

if (!_testbit_(TI)){ /* nÕu ®©y lµ ng¾t truyÒn*/

P0 = 1; // ®æi tr¹ng th¸i P0.0.

_nop_(); // chê 1 chu kú

P0 = 0;

.... /* thùc hiÖn c¸c c©u lÖnh kh¸c...*/

}

if (!_testbit_(RI)){

test = _cror_(SBUF,1);

..../* thùc hiÖn c¸c thao t¸c kh¸c*/.

}

}

Page 49: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-49-

X¸c yªu cÇu thiÕt kÕ

Lùa chän cÊu h×nh cho hÖ thèng theo yªu cÇu thiÕt kÕ

ThiÕt kÕ m¹ch ®iÖn vµ l¾p r¸p linh kiÖn

§o thö vµ kiÓm tra lçi

Ch−¬ng 3 - thiÕt kÕ hÖ vi ®iÒu khiÓn

ThiÕt kÕ phÇn cøng lµ thiÕt kÕ m¹ch ®iÖn tö bao gåm c¸c linh kiÖn, phô kiÖn

phï hîp t¹o thµnh mét hÖ vi ®iÒukhiÓn hîp nhÊt. Nãi chung mét hÖ vi ®iÒu khiÓn

còng t−¬ng ®−¬ng víi mét hÖ m¸y tÝnh, tøc lµ nã ph¶i cã ®ñ 03 khèi chÝnh: Khèi

xö lý trung t©m, khèi bé nhí vµ khèi vµo ra. Chi tiÕt vÒ tõng khèi nµy nh− thÕ nµo

lµ tuú thuéc vµo tõng øng dông cô thÓ. Cã nh÷ng øng dông yªu cÇu xö lý tÝnh

to¸n nhanh th× cÇn mét bé xö lý m¹nh, cã øng dông yªu cÇu l−u tr÷ lín th× cÇn

ph¶i cã bé nhí cã dung l−îng lín...Khèi cÇn ph¶i tuú biÕn nhiÒu nhÊt chÝnh lµ

khèi vµo ra bëi lÏ khèi nµy chÝnh lµ khèi giao tiÕp víi thÕ giíi thùc ®Ó t¹o ra c¸c

øng dông thùc. Nãi chung ®Ó thiÕt kÕ ®−îc mét hÖ vi ®iÒu khiÓn cã kh¶ n¨ng ho¹t

®éng tèt, ®é tin cËy cao th× ng−êi thiÕt kÕ cÇn ph¶i ®i theo mét tr×nh tù nhÊt ®Þnh,

còng cã thÓ gäi lµ nguyªn t¾c thiÕt kÕ. Cã 2 nhãm nguyªn t¾c chÝnh ®ã lµ ®i tõ

trªn xuèng vµ ®i tõ d−íi lªn. Nguyªn t¾c ®i tõ trªn xuèng th−êng ®−îc ¸p dông

víi c¸c hÖ nhóng nhá, cô thÓ trong tr−êng hîp thiÕt kÕ mét hÖ vi ®iÒu khiÓn th×

tr×nh tù thiÕt kÕ nh− sau:

H×nh 3.1. Tr×nh tù thiÕt kÕ phÇn cøng cho hÖ thèng

Page 50: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-50-

3.1. X¸c ®Þnh yªu cÇu thiÕt kÕ.

HÖ thèng nhóng gåm phÇn cøng vµ hÖ ®iÒu hµnh thêi gian thùc ®−îc thiÕt kÕ

víi môc ®Ých lµm thiÕt bÞ thÝ nghiÖm ë tr−êng §¹i häc C«ng nghiÖp Hµ néi, v×

vËy hÖ thèng ph¶i ®¸p øng ®−îc mét sè yªu cÇu sau:

-TÝnh s− ph¹m:

Kh¸c víi c¸c thiÕt bÞ mang tÝnh th−¬ng m¹i, thiÕt bÞ d¹y häc ph¶i ®¶m b¶o

®−îc c¸c yªu cÇu vÒ s− ph¹m nh−:

+Phï hîp víi néi dung, ch−¬ng tr×nh häc.

+Phï hîp víi ®èi t−îng häc.

-TÝnh trùc quan:

TÝnh trùc quan lµ mét trong nh÷ng yªu cÇu quan träng nhÊt cña mét thiÕt bÞ

d¹y häc. Mét thiÕt bÞ cã tÝnh trùc quan sÏ gióp sinh dÔ thÝ nghiÖm h¬n vµ t¹o

høng thó cho sinh viªn trong qua tr×nh häc. Trong thiÕt bÞ nµy th× tÝnh trùc quan

ph¶i ®−îc thÓ hiÖn ë mét sè khÝa c¹nh sau:

+ C¸c thiÕt bÞ vµo/ra ph¶i lµ c¸c thiÕt bÞ dÔ nh×n, dÔ quan s¸t, dÔ x¸c ®Þnh kÕt

qu¶ vµ dÔ ®o ®¹c, kiÓm tra.

+Giao diÖn ng−êi sö dông ph¶i ®¬n gi¶n dÔ t−¬ng t¸c víi hÖ thèng nhÊt.

-TÝnh khoa häc:

ThiÕt bÞ ®−îc thiÕt kÕ ph¶i ®¶m b¶o tÝnh khoa häc cña mét s¶n phÈm kü

thuËt, c¸c kh©u thiÕt kÕ, vËt t− linh kiÖn sö dông ph¶i ®¶m b¶o c¸c yªu cÇu kü

thuËt.

-TÝnh thùc tiÔn.

-TÝnh thÈm mü.

-TÝnh kinh tÕ.

Page 51: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-51-

3.2. Lùa chän cÊu h×nh cho hÖ thèng.

C¨n cø vµo yªu cÇu thiÕt kÕ th× hÖ thèng cã thÓ gåm c¸c thµnh phÇn nh−

sau:

- Bé ®iÒu khiÓn trung t©m (bao gåm : Bé xö lý (CPU), bé nhí, khèi ®iÒu

khiÓn vµo ra).

- Giao diÖn ng−êi sö dông.

- C¸c thiÕt bÞ m« pháng cho qua tr×nh thùc hiÖn cña c¸c tiÕn tr×nh.

H×nh 3.2. S¬ ®å khèi cña hÖ vi ®iÒu khiÓn

3.2.1. Lùa chän bé ®iÒu khiÓn trung t©m.

Trªn thÞ tr−êng hiÖn nay cã kh¸ nhiÒu bé vi xö lý cã thÓ cho phÐp viÕt hÖ

®iÒu hµnh tuy nhiªn ®Ó ®¶m b¶o c¸c yªu cÇu nh− môc 1 ®· nªu th× cã thÓ chän bé

vi ®iÒu khiÓn AT89S52 lµ bé xö lý trung t©m nh÷ng lý do sau:

-AT89S52 lµ mét bé vi ®iÒu khiÓn, trªn bé vi ®iÒu khiÓn nµy ®· tÝch hîp s½n

bé nhí ROM, bé nhí RAM, c¸c bé ®Þnh thêi, bé xö lý ng¾t, khèi ®iÒu khiÓn

vµo/ra, ®©y lµ nh÷ng tµi nguyªn c¬ b¶n dïng ®Ó viÕt mét hÖ ®iÒu hµnh. NÕu chän

mét bé vi xö lý th× hÖ thèng vÉn cÇn thªm bé nhí, bé ®Þnh thêi... nh− vËy sÏ tèn

kÐm kinh phÝ vµ hÖ thèng sÏ kång kÒnh h¬n.

Vi ®iÒu khiÓn

Bé nhí

Vµo/Ra

M« pháng c¸c tiÕn tr×nh ho¹t ®éng

Giao diÖn ng−êi sö dông

Bé ®iÒu khiÓn trung t©m

Page 52: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-52-

-AT89S52 lµ bé vi ®iÒu khiÓn 8bit ®−îc ph¸t triÓn trªn c¬ së bé vi ®iÒu

khiÓn 8051, ®©y lµ bé vi ®iÒu khiÓn víi cÊu tróc vµ tËp lÖnh c¬ b¶n, dÔ dµng tiÕp

cËn ®èi víi nh÷ng ®èi t−îng nh− häc sinh sinh viªn.

-Gi¸ thµnh cña AT89S52 lµ kh¶ rÎ so víi c¸c bé vi ®iÒu khiÓn cã cïng tÝnh

n¨ng h¬n n÷a bé vi ®iÒu khiÓn nµy cã tÝch hîp s¾n m¹ch n¹p ROM trªn chip nªn

cã thÓ thÝ nghiÖm mµ kh«ng cÇn tèn chi phÝ ®Ó mua s¾m mét bé n¹p ROM.

H¹n chÕ duy nhÊt cña bé vi ®iÒu khiÓn mµy lµ dung l−îng bé nhí RAM nhá

(256 byte). §Ó kh¾c phôc h¹n chÕ nµy cã thÓ dïng mét vi m¹ch SRAM ngoµi cã

dung l−îng 8 Kb ghÐp nèi theo s¬ h×nh 3.3.

A5A4AD4

10K

CS4

A9A8

X2

AD3

X1

WR

AD6

VCC

X2

A12

A14

WRA15

A6

AD1

AD5

RTS

CS1

10uf

A8

WR

AD2

IC2

74HC573

23456789

111

1918171615141312

D0D1D2D3D4D5D6D7

LEOE

Q0Q1Q2Q3Q4Q5Q6Q7

AD5

AD0

JP1 SEL

123

PSEN

WR

A10

IC1

2930

31

1918

9

3938373635343332

12345678

2122232425262728

1011

1213

1415

1617 PSEN

ALE

EA

X1X2

RST

P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

P2.0/A8P2.1/A9

P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

P3.0/RXDP3.1/TXD

P3.2/INT0P3.3/INT1

P3.4/T0P3.5/T1

P3.6/WRP3.7/RD

A2

CS7

CS1

WR

A2

VCC

A14

AD1

WR

11.0592MHz

EA

AD0

CP2

0.1uF

AD7

CS2

CS5

RTS

AD2

AD6

EA

AD0

WR

A1

SW1

AD3

VCC

A3

IC3

MC74F138

123

15141312111097

645

ABC

Y0Y1Y2Y3Y4Y5Y6Y7

G1G2AG2B

RDWR

RD

VCC

AD3

A1

TX

A0

WR

A15

AD2

A5

CS3

6264

109876543252421232

1112131516171819

22272026

A0A1A2A3A4A5A6A7A8A9

A10A11A12

D0D1D2D3D4D5D6D7

OEWE

CS1CS2

ALE

A13

AD4

C233P

A7

CP1

0.1uF

CS0

A3

A7

WR

A11

AD4 A4

VCC

A10

A6

AD1

AD6

C133P

CS6

AD7

AD5

A0

ALE

A12

RX

A13

WR

CS1

AD7

A9A11

H×nh 3.3. GhÐp nèi vi ®iÒu khiÓn víi RAM ngoµi.

3.2.2. Giao diÖn ng−êi sö dông.

Víi tÝnh chÊt lµ mét thiÕt bÞ d¹y häc, ng−êi sö dông lµ sinh viªn, häc sinh v×

vËy giao diÖn ng−êi sö dông ph¶i ®¬n gi¶n vµ hiÖu qu¶ nhÊt. Mµn h×nh m¸y tÝnh,

mµn h×nh tinh thÓ láng, LED... lµ c¸c thiÕt bÞ ®−a tin ra hay ®−îc sö dông trong

Page 53: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-53-

c¸c hÖ thèng nhóng. Bµn phÝm, c¸c contact, nót nhÊn, c¶m biÕn... lµ c¸c thiÕt bÞ

®−a tin vµo hay ®−îc sö dông. Trong ®iÒu kiÖn thùc tÕ vµ c¨n cø vµo c¸c yªu cÇu

thiÕt kÕ hÖ thèng th× cã thÓ chän mµn h×nh tinh thÓ láng vµ hÖ thèng c¸c nót nhÊn

®Ó lµm giao diÖn ng−êi sö dông, tõ ®©y ng−êi sö dông cã thÓ t¸c ®éng vµo hÖ

®iÒu hµnh trong mét giíi h¹n nµo ®ã (h×nh 3.4).

CONTACT1

D0

D6

Y1

12MHz

VCC

D6

EN_LCD

RW

D4

C1

C_LCD

D5

D7

VCC

VCC

D5

VCC

VCC

RW

10KVR_LCD20K

D2

SW1

D3

C2

33P

D1

D4

RS

D7

IC1

8051

2930

31

1918

9

3938373635343332

12345678

2122232425262728

1011

1213

1415

1617 PSEN

ALE

EA

X1X2

RST

P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

P2.0/A8P2.1/A9

P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

P3.0/RXDP3.1/TXD

P3.2/INT0P3.3/INT1

P3.4/T0P3.5/T1

P3.6/WRP3.7/RD

D2

VCC

D1

10K

C1 33P

D0

C3

C

VCC

D3

CONTACT2

ULCD

LCD

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

RS

EN_LCD

H×nh 3.4. Giao diÖn ng−êi sö dông trªn hÖ vi ®iÒu khiÓn.

3.2.3. C¸c thiÕt bÞ m« pháng qu¸ tr×nh ho¹t ®éng cña tiÕn tr×nh.

TÝnh trùc quan lµ yªu cÇu ®Çu tiªn khi lùa chän c¸c thiÕt bÞ m« pháng cho

qu¸ tr×nh ho¹t ®éng cña tiÕn tr×nh trong hÖ ®iÒu hµnh. Trªn mét thiÕt bÞ d¹y häc

th× kh«ng thÓ ®−a c¸c thiÕt bÞ m¸y mãc kång kÒnh vµo ®−îc, h¬n n÷a tiªu chÝ

chÝnh cña thiÕt bÞ d¹y häc nµy lµ hÖ nhóng vµ hÖ ®iÒu hµnh trªn bé vi ®iÒu khiÓn

v× vËy cã thÓ chän hÖ thèng c¸c LED ®Ó m« pháng lµ ®¶m b¶o ®−îc tÝnh trùc

quan vµ kinh tÕ nhÊt.

Page 54: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-54-

VCC

R21K

QL3A1013

QLED2

LED7SEGMENT

1 2 3 4 5 6 7 8

9

a b c d e f g dp

Vcc

R11K

VCC

QLED3

LED7SEGMENT

1 2 3 4 5 6 7 8

9

a b c d e f g dp

Vcc

QL2A1013

C1

33P

10K

C3

C

QL1A1013

R31K

VCC

IC1

8051

2930

31

1918

9

3938373635343332

12345678

2122232425262728

1011

1213

1415

1617 PSEN

ALE

EA

X1X2

RST

P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

P2.0/A8P2.1/A9

P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

P3.0/RXDP3.1/TXD

P3.2/INT0P3.3/INT1

P3.4/T0P3.5/T1

P3.6/WRP3.7/RD

R31K

C2

33P

SW1

QLED1

LED7SEGMENT

1 2 3 4 5 6 7 8

9

a b c d e f g dp

Vcc

Y1

12MHz

QL5A1013

QLED4

LED7SEGMENT

1 2 3 4 5 6 7 8

9

a b c d e f g dp

Vcc

H×nh 3.5. HiÓn thÞ trªn LED 7 ®o¹n b»ng kü thuËt quÐt

Page 55: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-56-

Trªn hÖ thèng cã 2 thiÕt bÞ chÝnh ®ã lµ 03 ma trËn LED dïng ®Ó hiÓn thÞ

c¸c ký tù bÊt kú vµ 04 LED 7 ®o¹n dïng ®Ó hiÓn thÞ thêi gian thùc cña hÖ

thèng.

3.2.3.1. Kü thuËt quÐt hiÓn thÞ trªn LED 7 ®o¹n.

§Ó hiÓn thÞ trªn 1 LED 7 ®o¹n th× cÇn 8 ®−êng ®iÒu khiÓn theo c¸ch hiÓn

thÞ th«ng th−êng hoÆc cÇn 4 ®−êng nÕu dïng vi m¹ch 74xx47. Víi c¶ hai c¸ch

võa nªu nÕu cÇn ®iÒu khiÓn mét sè l−îng lín c¸c LED 7 ®o¹n th× t−¬ng øng sÏ

cÇn mét sè l−îng lín c¸c ®−êng ®iÒu khiÓn trong khi sè l−îng c¸c ®−êng ®iÒu

khiÓn trªn bé vi ®iÒu khiÓn lµ cã h¹n.

NÕu dïng c¸ch hiÓn thÞ theo nguyªn t¾c quÐt (h×nh 3.5) th× n LED 7 ®o¹n

sÏ cÇn 8+n ®−êng khiÓn khiÓn, tiÕt kiÖm c¸c ®−êng dÉn ®iÒu khiÓn h¬n nhiÕu

so víi hai c¸ch trªn.

3.2.3.1. Kü thuËt quÐt hiÓn thÞ trªn ma trËn LED.

CÊu t¹o cña ma trËn LED bao gåm 64 m¾t DIODE, mçi m¾t gåm 1 led

mµu ®á . Trªn MCS toµn bé c¸c hµng cña 3 ma trËn LED ®−îc ®iÒu khiÓn bëi

P3, c¸c cét cña 3 ma trËn led ®−îc ®iÒu khiÓn bëi P0,P1,P2 th«ng qua c¸c bé

ph©n kªnh 74HC138 (h×nh 3.6).

Nguyªn t¾c xÕp ch÷ trªn ma trËn LED:

Gi¶ sö ta cÇn xÕp ch÷ H mµu ®á trªn ma trËn led (h×nh 3.7).

V× kh«ng thÓ t¹i mét thêi ®iÓm tÊt c¶ c¸c m¾t xÕp theo h×nh ch÷ H ®Òu

s¸ng ®−îc nªn cã thÓ chia ch÷ H thµnh 3 phÇn:

PhÇn 1 gåm 6 m¾t, ®Ó 6 m¾t nµy s¸ng chóng ta g¸n: P0=00100010B;

P1=00011111B

PhÇn 2 gåm 5 m¾t, ®Ó 5 m¾t nµy s¸ng chóng ta g¸n: P0=00111110B;

P1=11101111B

PhÇn 3 gåm 8 m¾t, ®Ó 8 m¾t nµy s¸ng chóng ta g¸n: P0=00100010B;

P1=11110000B

Page 56: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-57-

C5

123

15141312111097

645

ABC

Y0Y1Y2Y3Y4Y5Y6Y7

G1G2AG2B

R1

C11

C23

C12

P35

X2

P35

C18

10K

P27

P11

L6

P00

CP1

0.1uF

C6

L8

C23

P13

L7

C11

P27

R6

P37

C21

P21

C5

P34

P16 P06

VCC

P24

VCC

EA

11.0592MHzVCC

P36

C7

C8

VCC

IC1

2930

31

1918

9

3938373635343332

12345678

2122232425262728

1011

1213

1415

1617 PSEN

ALE

EA

X1X2

RST

P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

P2.0/A8P2.1/A9

P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

P3.0/RXDP3.1/TXD

P3.2/INT0P3.3/INT1

P3.4/T0P3.5/T1

P3.6/WRP3.7/RD

C13

JP1 SEL

123

C8

R4

P04

C15

P12

P24

P22

C2

C20

P36

C9

R3

P20

C20

C19

10uf

P10

P25

R7

P22

R5

123

15141312111097

645

ABC

Y0Y1Y2Y3Y4Y5Y6Y7

G1G2AG2B

C7

C17

C6

P03

C24

C16

P31

123

15141312111097

645

ABC

Y0Y1Y2Y3Y4Y5Y6Y7

G1G2AG2B

C12

X2

C133P

C14

C22

123

15141312111097

645

ABC

Y0Y1Y2Y3Y4Y5Y6Y7

G1G2AG2B

P05

C19

VCC

P30

C3

P23

RTS

P15

R8

P26

RTS

P37

L1

C10

P23P34

C2

P02

C16

C3

C22

C21

P14

L2

C233PSW1

VCC

C10

C1

C1

P25

C15

X1

L3

C17C

4

P01

P30

C4

12345678

1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

L1L2L3L4L5L6L7L8

C1

C2

C3

C4

C5

C7

C8

C9

C10

C11

C12

C13

C14

C15

C16

C17

C18

C19

C20

C21

C22

C23

C24

P26

C18

L4

C13

C14

P07P17

R2

P31

L5

VCC

EA

C9

H×nh 3.6. GhÐp nèi ma trËn LED trªn hÖ vi ®iÒu khiÓn

Page 57: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-58-

H×nh 3.7. Nguyªn t¾c xÕp ch÷ trªn ma trËn LED.

§Ó cã thÓ hiÓn thÞ c¸c dßng ch÷ bÊt kú trªn ma trËn LED th× cÇn cã mét

bé nhí ®Ó l−u l¹i font cña tÊt c¶ c¸c ch÷. Font cña c¸c ch÷ cã thÓ hiÓu lµ c¸c

byte d÷ liÖu cÇn xuÊt ra trªn c¸c Port ®Ó ma trËn s¸ng theo ch÷ ®ã. Trong

khu«n khæ luËn v¨n nµy t«i chØ x©y dùng mét bé font ch÷ ®¬n gi¶n gåm 26

ch÷ c¸i kh«ng dÊu, bé font nµy ®−îc n¹p vµo ROM, khi cÇn thay ®æi kiÓu ch÷

cã thÓ x©y dùng vµ n¹p l¹i cho ROM.

3.3. ThiÕt kÕ m¹ch ®iÖn.

§Ó ®¶m b¶o ®−îc c¸c yªu cÇu vÒ kü thuËt, mü thuËt th× m¹ch ®iÖn cña

thiÕt bÞ ph¶i ®−îc thiÕt kÕ trªn m¸y b»ng c¸c phÇn mÒm vÏ m¹ch chuyªn dông.

Trªn thùc tÕ hiÖn nay cã kh¸ nhiÒu phÇn mÒm thiÕt kÕ m¹ch nh− Protel,

Orcad, Circuit Maker...mçi phÇn mÒm nµy ®Òu cã nh÷ng ®iÓm m¹nh riªng,

tuy nhiªn ®Ó thiÕt kÕ hÖ thèng nµy th× Protel tá ra cã −u thÓ h¬n c¶ v× th− viÖn

phÇn mÒm nµy cã ®ñ c¸c linh kiÖn cÇn cho hÖ thèng, ®èi víi m¹ch 2 líp trë

lªn th× phÇn mÒm nµy tá ra tèi −u ho¸ c¸c ®−êng m¹ch tèt h¬n.

Nh− ®· ®Ò cËp trong môc 2, c«ng viÖc thiÕt kÕ ®−îc chia thµnh 3 h¹ng

môc lµ; ThiÕt kÕ bé xö lý trung t©m, thiÕt kÕ giao diÖn ng−êi sö dông vµ thiÕt

kÕ c¸c thiÕt bÞ m« pháng sù ho¹t ®éng cña c¸c tiÕn tr×nh.

P17

P16

P15

P14

P13

P12

P11

P10

P00 P01 P02 P03 P04 P05 P06 P07

Page 58: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-59-

3.4. §o thö vµ kiÓm tra lçi.

§èi víi mét ®èi t−îng nh− hÖ vi ®iÒu khiÓn th× ®o thö vµ kiÓm tra lçi

b»ng c¸c dông cô th«ng th−êng nh− ®ång hå, m¸y hiÖn sãng lµ ch−a ®ñ v× lý

do ®©y lµ mét hÖ thèng kh¶ tr×nh. C¸ch tèt nhÊt ®Ó kiÓm tra lµ viÕt c¸c ®o¹n

ch−¬ng tr×nh cho tõng khèi trªn hÖ thèng vµ kiÓm tra ho¹t ®éng cña tõng khèi

®ã. Qu¸ tr×nh kiÓm tra ph¸t hiÖn khèi nµo cã lçi th× kh¾c phôc ngay trªn khèi

®ã.

Page 59: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-60-

Ch−¬ng 4 - ThiÕt kÕ hÖ ®iÒu hµnh

4.1.1. Môc ®Ých vµ yªu cÇu thiÕt kÕ.

4.1.2. Môc ®Ých.

Trªn thùc tÕ, trong c¸c hÖ thèng nhóng cã thÓ cã mét hoÆc mét sè c«ng

viÖc cÇn ph¶i thùc hiÖn lÆp ®i lÆp l¹i liªn tôc, chóng ta cïng xem xÐt 3 vÝ dô

sau ®©y:

VÝ dô 1:

int counter;

void main (void)

{

counter = 0;

while (1) /* lÆp v« tËn */

{

counter++; /* t¨ng biÕn counter */

}

}

VÝ dô 2:

int counter;

void main (void)

{

counter = 0;

while (1) /* lÆp v« tËn */

{

check_serial_io ();

process_serial_cmds ();

check_kbd_io ();

process_kbd_cmds ();

Page 60: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-61-

}

}

VÝ dô 3:

#include <rtx51tny.h>

int counter0;

int counter1;

void job0 (void) _task_ 0

{

os_create (1); /* ®Æt task 1 ë tr¹ng th¸i s½n

sµng */

while (1) { /* lÆp v« tËn */

counter0++; /* t¨ng biÕn counter */

}

}

void job1 (void) _task_ 1

{

while (1) { /* lÆp v« tËn */

counter1++; /* t¨ng biÕn counter */

}

}

Trong vÝ dô 1, c©u lÖnh counter++ ®−îc ®Æt trong mét vßng lÆp v« tËn

trong ch−¬ng tr×nh chÝnh. Khi thùc hiÖn ch−¬ng tr×nh nµy, bé vi ®iÒu khiÓn chØ

thùc hiÖn mét t¸c vô duy nhÊt lµ t¨ng gi¸ trÞ cña biÕn counter lªn. Ch−¬ng

tr×nh nµy minh ho¹ cho c¸c ch−¬ng tr×nh ®¬n t¸c vô.

Trong vÝ dô 2, cã tíi 4 t¸c vô ®−îc lu©n phiªn thùc hiÖn lÆp vµ lÆp ®i lÆp

l¹i liªn tôc. C¸ch viÕt nh− vÝ dô 2 cã thÓ më réng ®−îc kh¶ n¨ng cña bé vi

®iÒu khiÓn h¬n tuy nhiªn cã mét vÊn ®Ò tån t¹i lµ tÝnh ®¸p øng cña hÖ thèng.

Gi¶ thiÕt khi ch−¬ng tr×nh ®ang ®−îc thùc thi ë t¸c vô check_kbd_io()th×

cã c¸c byte d÷ liÖu ®Õn tõ cæng nèi tiÕp vµ hÖ thèng ph¶i xö lý c¸c byte d÷ liÖu

Page 61: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-62-

®ã nghÜa lµ cÇn ph¶i thùc hiÖn t¸c vô process_serial_cmds().H¹n chÕ

nµy sÏ ®−îc kh¾c phôc b»ng c¸ch viÕt ë vÝ dô 3.

Trong vÝ dô 3, ®Çu tiªn vi ®iÒu khiÓn sÏ thùc thi ë t¸c vô cã tªn lµ job0,

t¸c vô nµy khëi t¹o cho 2 t¸c vô job1 vµ job2 ®ång thêi lµ nhiÖm vô cña chÝnh

nã lµ t¨ng biÕn counter0. Sau khi thùc hiÖn xong task 0, CPU sÏ chuyÓn sang

thùc hiÖn task 1 vµ task 2 sau ®ã l¹i quay trë l¹i thùc hiÖn task 0. ý t−ëng chia

thêi gian xö lý cña CPU thµnh c¸c khe thêi gian mét c¸c thÝch hîp vµ lu©n

phiªn thùc hiÖn c¸c t¸c vô chÝnh lµ ý t−ëng cña hÖ ®iÒu hµnh ®a nhiÖm (h×nh

4.2). Trªn thùc tÕ nÕu tæ chøc c¸c t¸c vô mét c¸ch hîp lý vµ ph©n chia thêi

gian cña CPU mét c¸c hîp lý cho c¸c t¸c vô sao cho khi ®ang thùc thi ë t¸c vô

nµy, c¸c t¸c vô kh¸c kh«ng bÞ ¶nh h−ëng th× c¶m gi¸c d−êng nh− tÊt c¶ c¸c t¸c

vô ®ang ®−îc thùc hiÖn ®ång thêi (h×nh 4.1).

H×nh 4.1. C¸c t¸c vô ®−îc thùc hiÖn ®ång thêi (song song)

H×nh 4.2. C¸c t¸c vô ®−îc thùc hiÖn lu©n phiªn liªn tôc

Trong thùc tÕ chóng ta gÆp rÊt nhiÒu c¸c hÖ thèng ®o l−êng ®iÒu khiÓn tù

®éng ho¸ mµ c¸c hÖ thèng nµy th−êng ph¶i xö lý nhiÒu c«ng viÖc cïng mét

t1 t2 ... tn time

task 0 task 1 task 2

t1 t2 ... tn time

task 0 task 1 task 2

Page 62: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-63-

lóc víi ®¸p øng kh¾t khe vª thêi gian. Víi c¸c hÖ thèng nµy th× c¸c ch−¬ng

tr×nh ®iÒu khiÓn viÕt theo cÊu tróc tuÇn tù ®¬n gi¶n (vÝ dô 1, vÝ dô 2) tá ra

kh«ng thÓ ®¸p øng ®−îc. VÊn ®Ò ®ã chØ cã thÓ ®−îc gi¶i quyÕt nÕu hÖ thèng cã

mét hÖ ®iÒu hµnh.

Tr−êng §¹i häc C«ng nghiÖp lµ mét trong nh÷ng c¬ së ®µo t¹o cã sù g¾n

kÕt gi÷a ho¹t ®éng ®µo t¹o vµ thùc tiÔn x· héi cao. ViÖc ®−a vµo gi¶ng d¹y

m«n “thiÕt kÕ hÖ ®iÒu hµnh trªn vi ®iÒu khiÓn” lµ mét viÖc hÕt søc cÇn thiÕt

vµo thêi ®iÓm khi mµ c«ng nghÖ tù ®éng ho¸ ®ang ph¸t triÓn m¹nh nh− hiÖn

nay.

4.1.2. Yªu cÇu

Do ®Æc thï lµ mét hÖ ®iÒu hµnh thêi gian thùc (RTOS - Real Time

Operating System) ®−îc thiÕt kÕ trªn mét hÖ vi ®iÒu khiÓn 8 bÝt vµ thiÕt kÕ ®Ó

phôc vô c«ng t¸c thÝ nghiÖm ë mét c¬ së ®µo t¹o nªn hÖ ®iÒu hµnh ph¶i cã mét

sè yªu cÇu cô thÓ sau:

- Ph¶i thùc thi ®ång thêi ®−îc nhiÒu ch−¬ng tr×nh n¹p trong bé nhí ROM

nh− chøc n¨ng cña mét hÖ ®iÒu hµnh ®a nhiÖm.

- Ph¶i cã ®¸p øng tøc th× víi c¸c t¸c ®éng cña ng−êi sö dông nh− yªu cÇu

cña mét hÖ ®iÒu hµnh thêi gian thùc.

- KÝch th−íc cña nh©n hÖ ®iÒu hµnh vµ c¸c ch−¬ng tr×nh ®−îc n¹p s½n

trong bé nhí ROM kh«ng ®−îc v−ît qu¸ 8 Kb. Bé nhí RAM dµnh cho hÖ

®iÒu hµnh tèi ®a lµ 8 Kb – 256 byte.

- HÖ ®iÒu hµnh ®−îc viÕt b»ng 2 ng«n ng÷ chÝnh lµ C vµ hîp ng÷ nhóng

trong tr×nh dÞch C, ®©y lµ 2 ng«n ng÷ häc sinh ®· ®−îc häc tr−îc khi häc m«n

“thiÕt kÕ hÖ ®iÒu hµnh trªn vi ®iÒu khiÓn”. C¸c thµnh phÇn cña hÖ ®iÒu hµnh

®−îc viÕt thµnh c¸c module, thuËn tiÖn cho ng−êi häc cã thÓ so¸t lçi vµ thay

®æi.

§øng trªn gãc ®é ng−êi sö dông th× hÖ thèng ph¶i thùc hiÖn ®−îc 3

nhiÖm vô ®ång thêi lµ quÐt hiÓn thÞ th«ng tin trªn ma trËn LED; quÐt hiÓn thÞ

Page 63: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-64-

thêi gian trªn LED 7 ®o¹n vµ hiÓn thÞ c¸c th«ng tin cÇn thiÕt trªn mµn h×nh

tinh thÓ láng. Khi cã t¸c ®éng cña ng−êi sö dông trªn c¸c phÝm nhÊn, hÖ thèng

ph¶i cã ®¸p øng tøc th× b»ng viÖc th«ng b¸o lªn LCD vµ thay ®æi c¸c th«ng tin

theo phÝm nhÊn trªn c¸c LED.

4.2. Tr×nh tù thiÕt kÕ hÖ ®iÒu hµnh.

Do ®Æc tr−ng hÖ vi ®iÒu khiÓn 8 bit lµ mét mét hÖ thèng nhá chØ phôc vô

qu¸ tr×nh thÝ nghiÖm nªn hÖ ®iÒu hµnh viÕt cho nã còng kh«ng qua phøc t¹p.

Víi nh÷ng hÖ ®iÒu hµnh kiÓu nµy chóng ta cã thÓ thiÕt kÕ theo nguyªn t¾c

Module ho¸, nghÜa lµ liÖt kª c¸c module cã trong hÖ ®iÒu hµnh, thiÕt kÕ chóng,

sau ®ã liªn kÕt chóng l¹i. C¸c b−íc tiÕn hµnh cã thÓ nh− sau:

-B−íc 1: Tõ môc ®Ých yªu cÇu thiÕt kÕ, liÖt kª c¸c module cÇn thiÕt cho hÖ

®iÒu hµnh.

-B−íc 2: ThiÕt kÕ c¸c module ®ång thêi cã thÓ ch¹y thö c¸c module ®Ó ®¶m

b¶o tÝnh chÝnh x¸c cña chóng tr−íc khi ®−îc liªn kÕt.

- B−íc 3: Liªn kÕt c¸c module cña hÖ ®iÒu hµnh.

- B−íc 4: Ch¹y thö vµ kiÓm tra kÕt qu¶.

B−íc 2 vµ b−íc 3 chÝnh lµ hai b−íc quan träng nhÊt. Th«ng th−êng th× hai

b−íc nµy ®«i khi ®−îc thùc hiÖn ®ång thêi v× cã nh÷ng module c«ng viÖc

chÝnh cña nã lµ liªn kÕt c¸c module kh¸c.

C«ng viÖc cña b−íc 2 vµ b−íc 3 gåm 2 phÇn chÝnh:

- ThiÕt kÕ c¸c ch−¬ng tr×nh th−êng tró trong bé nhí ROM, khi hÖ ®iÒu hµnh

hoµn tÊt c¸c ch−¬ng tr×nh nµy sÏ trë thµnh c¸c tiÕn tr×nh song song. C«ng viÖc

nµy bao gåm c¶ viÖc gi¶i quyÕt tµi nguyªn g¨ng vµ ®o¹n tíi h¹n. C«ng viÖc

nµy cã thÓ gäi lµ “x©y dùng c¸c tiÕn tr×nh”

- ThiÕt kÕ nh©n cña hÖ ®iÒu hµnh. C«ng viÖc nµy thùc chÊt lµ lµm thÕ nµo ®Ó

cã thÓ qu¶n lý, ph©n bæ tµi nguyªn cho c¸c tiÕn tr×nh ho¹t ®éng. Hai tµi

nguyªn quan träng nhÊt ®ã chÝnh lµ thêi gian cña CPU vµ bé nhí. Ph©n bæ

Page 64: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-65-

thêi gian CPU mét c¸ch hîp lý ®Ó tËn dông tèi ®a kh¶ n¨ng lµm viÖc cña CPU;

ph©n bæ bé nhí cho c¸c tiÕn tr×nh mét c¸ch khoa häc ®Ó kh«ng bÞ xung ®ét lµ

môc ®Ých chÝnh cña phÇn nµy. C«ng viÖc cña phÇn nµy chÝnh lµ 2 c«ng viÖc:

LËp lÞch cho CPU vµ qu¶n lý bé nhí.

4.3. X©y dùng c¸c tiÕn tr×nh.

4.3.1. X©y dùng c¸c t¸c vô t−¬ng øng c¸c tiÕn tr×nh.

4.3.1.1. Nguyªn t¾c x©y dùng c¸c t¸c vô trªn tr×nh dÞch C.

Tr×nh dÞch C cho phÐp x©y dùng tíi 16 t¸c vô, 16 t¸c vô nµy cã thÓ lu©n

phiªn thùc hiÖn, khi ®ã hÖ thèng cã thÓ cã tíi 16 tiÕn tr×nh.

C¸c t¸c vô ®−îc tr×nh dÞch C ®Þnh nghÜa nh− sau :

void name (void) _task_ task ID

Trong ®ã:

name lµ tªn c¸c t¸c vô.

task ID lµ sè hiÖu cña c¸c t¸c vô (task ID- 0 ®Õn 15).

VÝ dô:

void init (void) _task_ task 0

Khi thùc hiÖn, CPU lu«n thùc hiÖn ë task 0 tr−íc tiªn, chÝnh v× vËy task 0

lu«n ®−îc dïng ®Ó khëi t¹o hoÆc kh«ng khëi t¹o cho c¸c task kh¸c.

§Ó khëi t¹o cho mét task, tr×nh dÞch C cung cÊp s¾n hµm

os_create(task ID).

VÝ dô cÇn khëi t¹o task 5 th× c©u lÖnh t−¬ng øng sÏ lµ: os_create(5)

§Ó kh«ng khëi t¹o mét task nµo ®ã (®−a task ®ã vµo tr¹ng th¸i dõng-

halt), tr×nh dÞch C cung cÊp s½n hµm os_delete (task ID).

VÝ dô cÇn dõng task 5 th× c©u lÖnh t−¬ng øng sÏ lµ: os_delete (5)

Page 65: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-66-

4.3.1.2. X©y dùng c¸c t¸c vô.

Nh− ®· ®Ò cËp trong ch−¬ng 3, hÖ thèng phÇn cøng ®−îc thiÕt kÕ víi c¸c

thµnh phÇn chÝnh bao gåm (1):

- HÖ thèng hiÓn thÞ th«ng tin trªn ma trËn LED bao gåm 3 ma trËn LED.

- §ång hå thêi gian thùc hiÓn thÞ b»ng 4 LED 7 thanh.

- Giao diÖn ng−êi sö dông gåm 1 mµn h×nh tinh thÓ láng LCD vµ c¸c

phÝm nhÊn.

Víi hÖ th«ng nµy th× cã thÓ chia thµnh c¸c t¸c vô nh− sau:

- T¸c vô 0 (task 0) : Dïng ®Ó khëi t¹o cho c¸c t¸c vô kh¸c

- T¸c vô 1 (task 1): Dïng ®Ó nhËn lÖnh ®iÒu khiÓn tõ ng−êi sö dông, tõ ®ã

göi tÝn hiÖu ®iÒu khiÓn cho c¸c t¸c vô kh¸c.

- T¸c vô 2 (task 2): Dïng ®Ó hiÓn thÞ c¸c th«ng b¸o trªn LCD phôc vô

ng−êi ®iÒu khiÓn.

- T¸c vô 3 (task 3): T¸c vô thêi gian, t¸c vô nµy cung cÊp thêi gian thùc

cho c¸c t¸c vô 4

- T¸c vô 4 (task 4) : Dïng ®Ó quÐt c¸c th«ng sè phót, gi©y theo thêi gian

thùc lªn 4 LED 7 thanh.

- T¸c vô 5 (task 5) : Dïng ®Ó quÐt c¸c th«ng tin cÇn hiÓn thÞ trªn ma trËn

LED.

Gi¶i thuËt cña c¸c t¸c vô nh− sau:

T¸c vô 4 (task 4):

while (1) /* lÆp v« tËn */

{

TrÔ 1 gi©y (dïng bé ®Þnh thêi);

T¨ng biÕn gi©y lªn 1 ®¬n vÞ;

if (biÕn gi©y == 60)

Page 66: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-67-

{

biÕn gi©y = 0;

T¨ng biÕn phót lªn 1 ®¬n vÞ;

if (biÕn phót == 60)

{

BiÕn phót = 0;

T¨ng biÕn giê lªn 1 ®¬n vÞ;

if (biÕn giê == 24)

{

biÕn giê=0;

}

}

}

}

T¸c vô 5 (task 5):

Gi¶ thiÕt cÇn hiÓn thÞ x phót vµ y gi©y:

while(1) /*lÆp v« tËn*/

{

cËp nhËt thêi gian thùc vµo hai biÕn x vµ y;

phut_hang_don_vi=x%10;

phut_hang_chuc =x/10;

giay_hang_don_vi=y%10;

giay_hang_chuc =x/10;

P1=M[x/10]; //xuÊt m· cña chØ sè hµng chôc lªn

LED thø nhÊt.

P2.0=1; //cÊp nguån ®Ó LED thø nhÊt s¸ng

TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y.

Page 67: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-68-

P1=M[x%10]; //xuÊt m· cña chØ sè hµng ®¬n vÞ lªn

LED thø hai.

P2.1=1; //cÊp nguån ®Ó LED thø hai s¸ng

TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y.

P1=M[y/10]; //xuÊt m· cña chØ sè hµng chôc lªn

LED thø ba.

P2.2=1; //cÊp nguån ®Ó LED thø ba s¸ng

TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y.

P1=M[y/%0]; //xuÊt m· cña chØ sè ®¬n vÞ cña LED

thø t−.

P2.3=1; //cÊp nguån ®Ó LED thø t− s¸ng

TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y.

}

-T¸c vô 5 (task 5) :

while(1) //lÆp v« tËn

{

XuÊt m· cña dßng ch÷ thø nhÊt lªn c¸c cét cña ma

trËn LED (Port 0,2,3);

Dßng thø nhÊt s¸ng;

TrÔ 30ms; chu kú quÐt nhá h¬n 1/24 gi©y.

XuÊt m· cña dßng ch÷ thø hai lªn c¸c cét cña ma

trËn LED (Port 0,2,3);

Dßng thø hai s¸ng;

TrÔ 30ms; chu kú quÐt nhá h¬n 1/24 gi©y.

XuÊt m· cña dßng ch÷ thø ba lªn c¸c cét cña ma

trËn LED (Port 0,2,3);

Dßng thø ba s¸ng;

TrÔ 30ms; chu kú quÐt nhá h¬n 1/24 gi©y.

...

Page 68: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-69-

XuÊt m· cña dßng ch÷ thø t¸m lªn c¸c cét cña ma

trËn LED (Port 0,2,3);

Dßng thø t¸m s¸ng;

TrÔ 30ms; chu kú quÐt nhá h¬n 1/24 gi©y.

}

4.3.2. Gi¶i quyÕt bµi to¸n tµi nguyªn g¨ng

4.3.2.1. Tµi nguyªn g¨ng trong hÖ thèng.

Nh− ®· ®Ò cËp trong phÇn thiÕt kÕ phÇn cøng, Port 1 cña bé vi ®iÒu khiÓn

®−îc thiÕt kÕ ®Ó quÐt hµng cho c¸c ma trËn LED vµ còng ®−îc dïng ®Ó quÐt

cho c¸c LED 7 thanh. Chu cña 2 kü thuËt quÐt nµy lµ t−¬ng ®−¬ng nhau vµ

®−îc chän lµ 30 ms. Gi¶n ®å xung trªn Port 1 cã thÓ m« t¶ nh− h×nh 4.3

H×nh 4.3. Gi¶n ®å xung trªn P1

Sau khi xuÊt gi¸ trÞ lªn Port 1 ®Ó quÐt hµng, t¸c vô 4 cã c©u lÖnh trÔ 30

ms. Trong kho¶ng thêi gian nµy CPU sÏ chuyÓn sang thùc hiÖn mét t¸c vô

30ms

30ms

Thêi ®iÓm cÇn xuÊt gi¸ trÞ

00001011 trªn Port 1 ®Ó quÐt

hµng ma trËn LED

Thêi ®iÓm cÇn xuÊt gi¸ trÞ

00101011 trªn Port 1 ®Ó quÐt LED 7 ®o¹n

t3

to t2

t1

Page 69: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-70-

kh¸c nh−ng riªng tµi nguyªn I/O lµ Port 1 th× kh«ng ®−îc sö dông vµo môc

®Ých kh¸c. Trong kho¶ng thêi gian 30ms nµy, gi¶ thiÕt CPU chuyÓn sang thùc

hiÖn t¸c vô 5 vµ t¸c vô nµy còng lµm c«ng viÖc lµ xuÊt gi¸ trÞ lªn Port 1 ®Ó

quÐt LED 7 ®o¹n. Nh− vËy Port 1 chÝnh lµ tµi nguyªn g¨ng trong bµi to¸n nµy

vµ ®o¹n ch−¬ng tr×nh sö dông Port 1 chÝnh lµ ®o¹n ch−¬ng tr×nh tíi h¹n.

4.3.2.2. Gi¶i ph¸p gi¶i quyÕt tµi nguyªn g¨ng.

Nh− ®· tr×nh bµy ë ch−¬ng 1, cã kh¸ nhiÒu ph−¬ng ph¸p ®Ó gi¶i quyÕt

tuy nhiªn hÇu hÕt c¸c ph−¬ng ph¸p ®Òu ®−a ra gi¶i ph¸p lµ gi¶i quyÕt cho tõng

tiÕn tr×nh ®i vµo ®o¹n tíi h¹n cña nã, tiÕn tr×nh cßn l¹i ph¶i chê.

C¸c gi¶i ph¸p nµy kh«ng phï hîp víi bµi to¸n nµy v× c¶ hai tiÕn tr×nh cã

tµi nguyªn g¨ng ®Òu lµ c¸c tiÕn tr×nh lµm nhiÖm vô hiÓn thÞ b»ng kü thuËt

quÐt. NÕu mét tiÕn tr×nh nµo ®ã ph¶i chê tiÕn tr×nh kia ra khái ®o¹n tíi h¹n th×

tÇn sè quÐt sÏ bÞ thay ®æi, ®©y lµ ®iÒu kh«ng thÓ ch¸p nhËn.

HiÖn t¹i thêi gian sö dông Port 1 cña c¶ hai tiÕn tr×nh ®Òu lµ 30 ms tuy

nhiªn thêi gian t¸c ®éng ®Õn Port 1 cña mçi tiÕn tr×nh chØ lµ vµi micro gi©y

(thêi gan thùc hiÖn mét lÖnh). NÕu nh− dïng mét vi m¹ch chèt ®Ó l−u l¹i gi¸

trÞ cña Port 1 cho c¸c tiÕn tr×nh kh¸c nhau th× P1 sÏ kh«ng bÞ chiÕm gi÷ liªn

tôc trong 30 ms vµ ®ång nghÜa víi viÖc lo¹i trõ ®−îc tµi nguyªn g¨ng trong hÖ

thèng (h×nh 4.4).

74HC573

23456789

111

1918171615141312

D0D1D2D3D4D5D6D7

LEOE

Q0Q1Q2Q3Q4Q5Q6Q7

2930

31

1918

9

3938373635343332

12345678

2122232425262728

1011

1213

1415

1617PSEN

ALE

EA

X1X2

RST

P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

P3.0/RXDP3.1/TXD

P3.2/INT0P3.3/INT1

P3.4/T0P3.5/T1

P3.6/WRP3.7/RD 74HC573

23456789

111

1918171615141312

D0D1D2D3D4D5D6D7

LEOE

Q0Q1Q2Q3Q4Q5Q6Q7

H×nh 4.4. Chèt l¹i gi¸ trÞ cña P1

Tíi hµng cña ma trËn LED

Tíi LED 7 ®o¹n

Page 70: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-71-

4.4. LËp lÞch cho CPU.

4.4.1. Sù kiÖn vµ chuyÓn tr¹ng th¸i gi÷a c¸c tiÕn tr×nh.

4.4.1.1. Sù kiÖn(event).

Kh¸i niÖm vÒ sù kiÖn trong bµi to¸n cô thÓ nµy cã thÓ hiÓu lµ c¸c ®iÓm

thêi gian mµ c¸c tiÕn tr×nh cã thÓ ®−îc thùc thi (running), cã thÓ bÞ dõng...Cã

thÓ cã mét sè lo¹i sù kiÖn sau:

- Time out.

Mét hÖ thèng cã hÖ ®iÒu hµnh ®a nhiÖm sÏ cã kh¶ n¨ng thùc thi nhiÒu t¸c

vô cïng mét lóc. Tuy nhiªn ®iÒu nµy chØ thÊy trªn khÝa c¹nh ng−êi sö dông hÖ

®iÒu hµnh cßn trªn kh¸i c¹nh ng−êi thiÕt kÕ th× ®ã chØ lµ viÖc ph©n chia thêi

gian CPU sao cho c¸c tiÕn tr×nh ®Ó t¹o c¶m gi¸c nh− c¸c tiÕn tr×nh ®Òu ®ang

®−îc thùc hiÖn. ViÖc ph©n chia thêi gian cho CPU cã thÓ lµm mét c¸ch ®¬n

gi¶n lµ dïng mét bé ®Þnh thêi, ®Þnh ra c¸c kho¶ng thêi gian b»ng nhau vµ chia

cho c¸c tiÕn tr×nh c¸c kho¶ng thêi gian b»ng nhau ®ã ®Ó thùc hiÖn. Kho¶ng

thêi gian ®ã gäi lµ time out.

H×nh 4.5. C¸c tiÕn tr×nh ®−îc ph©n bæ thêi gian CPU b»ng nhau

Trªn h×nh 4.5 m« t¶ 3 tiÕn tr×nh ®−îc ph©n phèi c¸c kho¶ng thêi gian

b»ng nhau vµ b»ng 100 ms. Theo ®ã trong 100 ms ®Çu CPU sÏ thùc thi task 0,

task 1 vµ task 2 ë tr¹ng th¸i chê, kÕt thóc 100 ms, CPU sÏ chuyÓn dõng task 0,

t

task 0 task 1 task 2

Time out =100 ms

Page 71: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-72-

chuyÓn sang thùc hiÖn ë task 2, task 3 ë tr¹ng th¸i chê, kÕt thóc 200 ms, CPU

sÏ dõng task 2, chuyÓn sang thùc hiÖn task 3...

Gi¶i ph¸p t¹o ra time out ®Ó lu©n phiªn thùc hiÖn gi÷a c¸c tiÕn tr×nh lµ sö

dông ng¾t cña bé ®Þnh thêi 0 theo gi¶i thuËt sau:

/*phÇn khëi t¹o*/

-khëi t¹o cho bé ®Þnh thêi 0 chÕ ®é 2(chÕ ®é tù

n¹p l¹i) víi gi¸ trÞ ban ®Çu=gi¸trÞ n¹p l¹i=-100 .

-Cho phÐp ng¾t do bé ®Þnh thêi 0.

counter=0;

...

/*ch−¬ng tr×nh phôc vô ng¾t do bé ®Þnh thêi 0*/

ISRtimer0(){

if(counter<=2) //gi¶ sö cã 3 tiÕn tr×nh, nÕu

biÕn counter ch−a t¨ng qu¸ 2 {

t¨ng biÕn counter;

cÊt c¸c thanh ghi vµo vïng ng¨n xÕp cña tiÕn

tr×nh hiÖn t¹i

chuyÓn con trá lÖnh IP tíi tiÕn tr×nh cã sè hiÖu

b»ng biÕn counter.

} ;

else {

counter=0;

cÊt c¸c thanh ghi vµo vïng ng¨n xÕp cña tiÕn

tr×nh hiÖn t¹i

chuyÓn con trá lÖnh IP tíi tiÕn tr×nh cã sè hiÖu

b»ng biÕn counter. }

}

Page 72: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-73-

Cã thÓ m« t¶ ho¹t ®éng cña ch−¬ng tr×nh trªn b»ng h×nh 4.6.

H×nh 4.6. ChuyÓn gi÷a c¸c tiÕn tr×nh b»ng sù kiÖn time out

-Signal.

NÕu nh− dïng c¸c kho¶ng thêi gian b»ng nhau ®Ó ph©n phèi cho c¸c tiÕn

tr×nh th× cã thÓ sÏ x¶y ra hiÖn t−îng lµ cã nh÷ng tiÕn tr×nh kho¶ng thêi gian ®ã

lµ kh«ng ®ñ ®Ó thùc hiÖn mét phÇn viÖc; cã nh÷ng tiÕn tr×nh kho¶ng thêi gian

®ã lµ thõa ®Ó thùc hiÖn mét phÇn viÖc. §iÒu nµy cã thÓ kh¾c phôc b»ng c¸ch

kh«ng chê ®Õn hÕt 100ms míi chuyÓn quyÒn chiÕm thêi gian cña CPU sang

tiÕn tr×nh kh¸c mµ mét tiÕn tr×nh chØ cÇn thùc hiÖn hÕt phÇn viÖc cña m×nh lµ

cã thÓ göi tÝn hiÖu (signal) cho tiÕn tr×nh kh¸c thùc hiÖn ngay. Nh− vËy sÏ tËn

dông ®−îc thêi gian cña CPU h¬n. cóng ta cïng xem xÐt vÝ dô sau:

void job0 (void) _task_ 0

{

//thùc hiÖn c«ng viÖc cña task 0

os_send-signal(1); //göi tÝn hiÖu tíi task 1

}

t

task 0 task 1 task 2

HÕt 100ms, x¶y ra ng¾t do bé ®Þnh thêi 0.

ISRtimer0() { while(counter<=2) { t¨ng biÕn counter; cÊt c¸c thanh ghi vµo vïng ng¨n xÕp cña tiÕn tr×nh hiÖn t¹i; chuyÓn con trá lÖnh IP tíi tiÕn tr×nh cã sè hiÖu b»ng biÕn counter; } ; else { counter=0; cÊt c¸c thanh ghi vµo vïng ng¨n xÕp cña tiÕn tr×nh hiÖn t¹i chuyÓn con trá lÖnh IP tíi tiÕn tr×nh cã sè hiÖu b»ng biÕn counter. } }

Page 73: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-74-

void job1 (void) _task_ 1

{

os_wait(K_SIG,0)//®îi tÝn hiÖu tõ task 0

//thùc hiÖn c«ng viÖc cña task 1

os_send-signal(2); //göi tÝn hiÖu tíi task 2

}

void job1 (void) _task_ 2

{

os_wait(K_SIG,1)//®îi tÝn hiÖu tõ task 1

//thùc hiÖn c«ng viÖc cña task 2

}

Ho¹t ®éng cña ch−¬ng tr×nh ë vÝ dô trªn cã thÓ m« t¶ nh− sau:

H×nh 4.7. C¸c tiÕn tr×nh ®−îc ph©n bæ thêi gian CPU kh¸c nhau

Trong kho¶ng thêi gian tõ t1 ®Õn t2, task 0 thùc hiÖn xong c«ng viÖc cña

m×nh, nã göi tÝn hiÖu cho task 1(os_send-signal(1)). task 1 trong tr¹ng

th¸i s½n sµng vµ chê tÝn hiÖu cña task 0(os_wait(K_SIG,0)). Khi nhËn

®−îc nã thùc hiÖn ngay c«ng viÖc cña m×nh.T−¬ng tù, Trong kho¶ng thêi gian

tõ t2 ®Õn t3, task 1 thùc hiÖn xong c«ng viÖc cña m×nh, nã göi tÝn hiÖu cho

task 2(os_send-signal(2)). task 2 trong tr¹ng th¸i s½n sµng vµ chê tÝn

hiÖu cña task 1(os_wait(K_SIG,1)). Khi nhËn ®−îc nã thùc hiÖn ngay

c«ng viÖc cña m×nh. Nh− vËy ngay khi tiÕn tr×nh nµy kÕt thóc th× tiÕn tr×nh kia

®i vµo ho¹t ®éng, thêi gian nhµn rçi cña CPU lµ kh«ng cã.

t1 t2 t3 t4

task 0 task 1 task 2

Page 74: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-75-

- interrupt.

Mét trong nh÷ng ®Æc tr−ng cña hÖ ®iÒu hµnh thêi gian thùc lµ kh¶ n¨ng

®¸p øng cña nã víi kÝch thÝch tõ thÕ giíi bªn ngoµi hay cßn gäi lµ lÖnh cña

ng−êi sö dông trong t×nh huèng cô thÓ nµy.

Gi¶ thiÕt hÖ thèng ®−îc thiÕt kÕ víi 5 tiÕn tr×nh trong ®ã cã tiÕn tr×nh 1 lµ

tiÕn tr×nh ®iÒu khiÓn, tiÕn tr×nh nµy sÏ nhËn lÖnh tõ ng−êi sö dông vµ ®iÒu

khiÓn sù ho¹t ®éng cña c¸c tiÕn tr×nh kh¸c. HÖ thèng sÏ ®¸p øng tèt nÕu nh−

ng−êi sö dông ra lÖnh vµo ®óng thêi ®iÓm mµ thêi gian cña CPU ®ang ®−îc

ph©n phèi cho tiÕn tr×nh 1(t×nh huèng 1). Tr−êng hîp ng−îc l¹i nÕu ng−êi sö

dông ra lÖnh vµo ®óng thêi ®iÓm mµ thêi gian cña CPU ®ang ®−îc ph©n phèi

cho mét tiÕn tr×nh kh¸c kh«ng ph¶i lµ tiÕn tr×nh 1(t×nh huèng 1) th× lÖnh ®ã

kh«ng thÓ ®−îc ®¸p øng kÞp thêi hoÆc cã thÓ kh«ng ®−îc ®¸p øng (h×nh 4.8).

H×nh 4.8. Ng−êi sö dông ra lÖnh vµo c¸c thêi ®iÓm kh¸c nhau

§Ó kh¾c phô t×nh tr¹ng nµy, c¸c lÖnh tõ phÝa ng−êi sö dông ®Òu ph¶i

®−îc thiÕt kÕ ®Ó cã thÓ g©y ra ng¾t. Mçi lÖnh sÏ g©y ra mét ng¾t t−¬ng øng víi

t

task 0 task 1 task 2 task 3 task 4 task 5

T×nh huèng 1: Ng−êi sö dông ra lÖnh vµo thêi ®iÓm CPU ®ang thùc hiÖn tiÕn

tr×nh 1

T×nh huèng 2: Ng−êi sö dông ra lÖnh vµo thêi ®iÓm CPU ®ang thùc hiÖn tiÕn

tr×nh 3

Page 75: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-76-

c©u lÖnh ®ã, khi ®ã mçi khi ra lÖnh, CPU sÏ ngõng ngay tiÕn tr×nh hiÖn thêi vµ

chuyÓn sang ch−¬ng tr×nh con phôc vô ng¾t cã vÐc t¬ t−¬ng øng. Tõ ch−¬ng

tr×nh con phôc vô ng¾t sÏ quay vÒ tiÕn tr×nh 1 ®Ó ®iÒu khiÓn c¸c tiÕn tr×nh kh¸c

theo lÖnh cña ng−êi sö dông.

H×nh 4.9. ChuyÓn gi÷a c¸ tiÕn tr×nh b»ng sù kiÖn interrupt

4.4.1.2. ChuyÓn gi÷a c¸c tiÕn tr×nh(context switching).

1. Kh¸i niÖm.

Mét tiÕn t×nh cã thÓ coi nh− mét ch−¬ng tr×nh, ch−¬ng tr×nh nµy ®−îc m·

ho¸ vµ chiÕm mét ®o¹n nµo ®ã trong bé nhí. Ch−¬ng tr×nh nµy sÏ ®−îc gäi

®Õn (®Ó thùc thi) bÊt kú lóc nµo vµ còng cã thÓ kÕt thóc bÊt kú lóc nµo sau ®ã

l¹i b¾t ®Çu l¹i còng vµo thêi diÓm bÊt kú. ViÖc quyÕt ®Þnh tiÕn tr×nh ho¹t ®éng

hay dõng vµo thêi ®iÓm nµo lµ hoµn toµn do nh©n cña hÖ ®iÒu hµnh.

Khi mçi tiÕn tr×nh ho¹t ®éng nã ®Òu sö dông c¸c tµi nguyªn nh− CPU, bé

nhí RAM, c¸c thanh ghi...Mçi tiÕn tr×nh ®Òu sö dông c¸c tµi nguyªn ®ã theo

c¸ch kh¸c nhau vµ khi bÞ dõng chóng còng lµm thay ®æi c¸c tµi nguyªn ®ã

kh¸c nhau, vÝ dô nh− tr¹ng th¸i cña CPU, gi¸ trÞ cña c¸c thanh ghi, gi¸ trÞ cña

c¸c « nhí trong RAM...

t

task 0 task 1 task 2

Ng−êi sö dông ra lÖnh

ISR(){ L−u l¹i lÖnh ng−êi sö dông vµo c¸ biÕn; Quay trë vÒ tiÕn tr×nh 1; }

Tíi c¸c tiÕn tr×nh kh¸c

Page 76: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-77-

H×nh 4.9. M« t¶ tr¹ng th¸i cña c¸c tµi nguyªn cña tiÕn tr×nh.

Mét vÊn ®Ò ®Æt ra lµ lµm thÕ nµo ®Ó cã thÓ dõng tiÕn tr×nh sau ®ã l¹i b¾t

®Çu l¹i mµ kh«ng bÞ ¶nh h−ëng g×. §Ó thùc hiÖn ®−îc ®iÒu nµy th× hÖ ®iÒu

hµnh cÇn ph¶i l−u l¹i ®−îc tr¹ng th¸i cña c¸c tµi nguyªn mµ tiÕn tr×nh ®ang sö

dông khi nã bÞ dõng bëi hÖ ®iÒu hµnh vµ lÊy l¹i ®−îc tr¹ng th¸i cña c¸c tµi

nguyªn nµy khi tiÕn tr×nh ®−îc b¾t ®Çu l¹i. Ho¹t ®éng l−u, vµ phôc håi tr¹ng

th¸i cña c¸c tµi nguyªn cña mét tiÕn tr×nh gäi lµ Context Switching.

Trong bÞ vi ®iÒu khiÓn, mét sè tµi nguyªn cÇn ph¶i ®−îc cÊt mçi khi

chuyÓn tõ tiÕn tr×nh nµy sang tiÕn tr×nh kh¸c nh− sau:

- C¸c thanh ghi trung gian.

- Thanh ghi tr¹ng th¸i.

- Bé ®Õm ch−¬ng tr×nh (con trá lÖnh).

TiÕn tr×nh bÞ dõng ngµy tr−íc khi nã ®i vµo thùc hiÖn lÖnh céng

Hai c©u lÖnh tr−íc cña tiÕn tr×nh ®· ®Æt 2 sè h¹ng vµo 2 thanh ghi ®Ó thùc hiÖn lÖnh céng. Tuy nhiªn tr−íc khi thùc hiÖn phÐp céng tiÕn tr×nh bÞ dõng vµ mét tiÕn tr×nh kh¸c ho¹t ®éng. Khi quay trë l¹i th× tiÕn tr×nh sÏ thùc hiÖn cau lÖnh céng tuy nhiªn lóc ®ã 2 sè h¹ng trong 2 thanh ghi cã thÓ ®· bÞ thay ®æi bêi c¸c c©u lÖnh cña c¸c tiÕn tr×nh kh¸c.

Page 77: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-78-

- Con trá ng¨n xÕp.

H×nh 4.10. C¸c tµi nguyªn cÇn l−u khi dõng mét tiÕn tr×nh.

2. L−u c¸c tµi nguyªn cña tiÕn tr×nh.

C¸c bé vi ®iÒu khiÓn ®Òu cã mét vïng nhí ®Æc biÖt gäi lµ ng¨n xÕp, vïng

nhí nµy cho phÐp cã thÓ cÊt néi dung cña c¸c thanh ghi vµo vµ cho phÐp lÊy ra

theo nguyªn t¾c LIFO (Last in First out). MÆt kh¸c trong tËp lÖnh cña c¸c bé

vi ®iÒu khiÓn ®Òu cã c©u lÖnh cÊt vµo ng¨n xÕp (push) vµ lÊy ra tõ ng¨n xÕp

(pop). Dùa vµo c¸c c¨n cø nµy chóng ta cã thÓ x©y dùng mét ch−¬ng tr×nh con

chuyªn lµm nhiÖm vô cÊt c¸c thanh ghi mçi khi tiÕn tr×nh bÞ dõng.

Cã 2 vÊn ®Ò ®Æt ra víi ch−¬ng tr×nh nµy lµ:

Thø nhÊt: Ph¶i ph©n bæ ng¨n xÕp cho hîp lý. Vïng dµnh ®Ó l−u tr¹ng th¸i

c¸c thanh ghi cho c¸c tiÕn tr×nh ph¶i ®ñ cho n tiÕn tr×nh. Vïng dµnh cho c¸c

Page 78: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-79-

tiÕn tr×nh sö dông ph¶i ®ñ cho tiÕn tr×nh cã dug l−îng ng¨n xÕp cÇn sö dông

lín nhÊt trong c¸c tiÕn tr×nh (h×nh 4.11).

H×nh 4.11. Ph©n bæ ng¨n xÕp cho c¸c tiÕn tr×nh

Thø hai: V× ng¨n xÕp ho¹t ®éng theo nguyªn t¾c LIFO nªn trong ch−¬ng

tr×nh ph¶i x¸c ®Þnh ®−îc thanh ghi nµo cÇn ph¶i ®−îc cÊt tr−íc vµ thnh ghi nµo

cÇn ph¶i ®−îc cÊt sau.

Gi¶i thuËt cña ch−¬ng tr×nh nh− sau:

#define SAVE_CONTEXT()

asm volatile {

-®äc biÕn task_num ®Ó x¸c ®Þnh tiÕn tr×nh nµo bÞ

dõng.

-cÊt néi dung cña con trá ng¨n xÕp hiÖn t¹i sang

biÕn save_SP.

-CËp nhËt vÞ trÝ ng¨n xÕp cÇn cÊt vµo thanh ghi

con trá ng¨n xÕp

-CÊt gi¸ trÞ cña thanh ghi con trá ng¨n xÕp

trong biÕn save_SP

-CÊt c¸c thanh ghi trung gian

-CÊt thanh ghi tr¹ng th¸i.

- CÊt bé ®Õm ch−¬ng tr×nh.

}

Vïng dµnh cho c¸c tiÕn tr×nh

sö dông

TiÕn tr×nh 1

TiÕn tr×nh 2

....

TiÕn tr×nh n

Vïng dµnh ®Ó l−u tr¹ng th¸i c¸c thanh ghi cho c¸c tiÕn tr×nh

Page 79: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-80-

3. Phôc håi c¸c tµi nguyªn cña tiÕn tr×nh.

V× ng¨n xÕp ho¹t ®éng theo nguyªn t¾c LIFO nªn gi¶i thuËt cña ch−¬ng

tr×nh RESTORE_CONTEXT() sÏ ng−îc víi ch−¬ng tr×nh

SAVE_CONTEXT():

#define RESTORE_CONTEXT()

asm volatile

{

-®äc biÕn task_num ®Ó x¸c ®Þnh tiÕn tr×nh nµo

®−îc phôc håi.

-CËp nhËt vÞ trÝ ng¨n xÕp cÇn cÊt vµo thanh ghi

con trá ng¨n xÕp

-LÊy bé ®Õm ch−¬ng tr×nh.

-LÊy thanh ghi tr¹ng th¸i.

-LÊy c¸c thanh ghi trung gian

-LÊy con trá ng¨n xÕp.

}

4.4.2. LËp lÞch cho CPU

Nh− ®· tr×nh bµy trong ch−¬ng 1, cã kh¸ nhiÒu thuËt to¸n ®Ó lËp lÞch cho

CPU tuy nhiªn do ®Æc thï cña hÖ thèng cã 6 t¸c vô vµ c¸c tiÕn tr×nh còng ®−îc

x¸c ®Þnh tr−íc nªn cã thÓ chän thuËt to¸n RR kÕt hîp víi xö lý ng¾t khi cã sù

t¸c ®éng cña ng−êi sö dông lªn c¸c phÝm nhÊn.

C¸c t¸c vô trªn hÖ thèng cã nh÷ng ®Æc thï kh¸c nhau chÝnh v× vËy cã thÓ

ph©n lo¹i vµ ¸p dông c¸ch ph©n phèi tµi giê CPU theo c¸c nguyªn t¾c kh¸c

nhau trªn c¬ së thuËt to¸n RR.

QuÐt ch÷ trªn ma trËn LED:

Nh− ®· tr×nh bµy ë ch−¬ng 3, ®Ó quÐt ch÷ trªn ma trËn LED th× cÇn cã 8

lÇn xuÊt d÷ liÖu vµ gi÷a c¸c lÇn ®ã lµ c¸c kho¶ng thêi gian trÔ 25 ms chÝnh v×

vËy 8 tiÕn tr×nh nµy mçi tiÕn tr×nh thùc chÊt chØ ch¹y (running) trong kho¶ng

Page 80: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-81-

thêi gian cë vµi micro gi©y (kho¶ng thêi gian thùc hiÖn 2 lÖnh), thêi gian trÔ

tiÕn tr×nh sÏ ®i vµo tr¹ng th¸i ®îi (waitting) cho ®Õn khi sù kiÖn time out (hÕt

25ms) x¶y ra th× tiÕn tr×nh l¹i ®−îc tiÕp tôc (h×nh 4.12).

Kho¶ng thêi gian tõ t0 ®Õn t1: TiÕn tr×nh 1 (P1) ë tr¹ng th¸i running.

Kho¶ng thêi gian tõ t1 ®Õn t3 (25 ms): TiÕn tr×nh 1 (P1) ë tr¹ng th¸i waiting.

Kho¶ng thêi gian tõ t2 ®Õn t3: Tµi nguyªn giê CPU ®−îc ph©n phèi cho c¸c tiÕn tr×nh

kh¸c (ngoµi 8 tiÕn tr×nh trªn).

H×nh 4.12. LËp lÞch cho 8 tiÕn tr×nh thùc hiÖn quÐt ch÷ trªn ma trËn LED

QuÐt c¸c sè trªn LED 7 ®o¹n :

HÖ thèng ®−îc thiÕt kÕ víi 4 LED 7 ®o¹n ®Ó hiÓn thÞ c¸c th«ng tin vÒ thêi

gian thùc v× vËy cÇn 4 tiÕn tr×nh ®Ó thùc hiÖn t¸c vô nµy. Nguyªn t¾c quÐt trªn

LED 7 ®o¹n t−¬ng tù nguyªn t¾c quÐt trªn ma trËn LED v× vËy 4 tiÕn tr×nh nµy

còng ho¹t ®éng theo nguyªn t¾c cña 4 tiÕn tr×nh trªn (h×nh 4.13).

H×nh 4.13. LËp lÞch cho 4 tiÕn tr×nh quÐt c¸c sè trªn 4 LED 7 ®o¹n

P1 P2 P3 P4 P5 P6 P7 P8

t0 t1 t2 t3 t

......... TiÕn tr×nh á tr¹ng th¸i waiting. TiÕn tr×nh ë tr¹ng th¸i running

P9 P10 P11 P12

t0 t1 t2 t3 t

......... TiÕn tr×nh á tr¹ng th¸i waiting. TiÕn tr×nh ë tr¹ng th¸i running

Page 81: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-82-

HiÓn thÞ th«ng tin trªn LCD:

Khi bËt nguån, hÖ th«ng sÏ ch¹y mÆc ®Þnh víi mét dßng ch÷ trªn ma trËn

LED vµ mÆc ®Þnh kiÓu ®ång hå thêi gian lµ phót vµ gi©y, trªn LCD cïng hiÓn

thÞ mét dßng ch÷ mÆc ®Þnh. Khi cã lÖnh cña ng−êi sö dông, tuú theo c©u lÖnh

cña ng−êi sö dông cã c¸c dßng ch÷ hiÓn thÞ kh¸ nhau trªn LCD. Nh− vËy tiÕn

tr×nh nµy ban ®Çu chØ gåm c¸c lÖnh xuÊt ký tù hiÓn thÞ sau ®ã ®i vµo tr¹ng th¸i

®îi v« thêi h¹n cho ®Õn khi cã sù kiÖn ng−êi sö dông ra lÖnh (g©y ra ng¾t) th×

míi b¾t ch¹y l¹i vµ sau ®ã l¹i ®îi sù kiÖn ng−êi sö dông ra lÖnh tiÕp theo.

Kho¶ng thêi gian tiÕn tr×nh ë ch¹y (running) chØ cë vµi micro gi©y cßn kho¶ng

thêi gian nã ë tr¹ng th¸i ®îi lµ kh«ng biÕt tr−íc chÝnh v× vËy cã thÓ dïng sù

kiÖn signal ®Ó ®îi tõ mét tiÕn tr×nh kh¸c.

H×nh 4.14. LËp lÞch cho tiÕn tr×nh ®iÒu khiÓn LCD

- Qu¶n lý thêi gian thùc:

Gi¶i thuËt cña t¸c vô nµy lµ liªn tôc t¨ng biÕn gi©y lªn mçi ®¬n vÞ sau 40

sù kiÖn timeout (25ms x 40 = 1000ms = 1s) vµ t¨ng biÕn phót lªn 1 ®¬n vÞ sau

khi biÕn gi©y t¨ng ®−îc 60 lÇn... C¨n cø vµo gi¶i thuËt nµy cã thÓ chän sù kiÖn

timeout ®Ó ®−a tiÕn tr×nh trë l¹i tr¹ng th¸i running tõ tr¹ng th¸i waiting.

H×nh 4.15. LËp lÞch cho tiÕn tr×nh thêi gian thùc

Running waiting running

Ng−êi sö dông ra lÖnh

P13

Running waiting(25ms) running

HÕt 25 ms

P14

Page 82: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-83-

- Khëi t¹o c¸c th«ng sè:

Mµn h×nh tinh thÓ láng, c¸c thanh ghi cho phÐp ng¾t, c¸c thnh ghi cña c¸c

bé ®Þnh thêi...lµ c¸c ®èi t−îng cÇn ®−îc khëi t¹o tr−íc khi chóng ®−îc c¸c tiÕn

tr×nh sö dông nh− mét tµi nguyªn hÖ thèng.

TiÕn tr×nh nµy cÇn ph¶i ®−îc ho¹t ®éng tr−íc tiªn khi hÖ thèng b¾t ®Çu ®i

vµo ho¹t ®éng. TiÕn tr×nh nµy lµ mét tiÕn tr×nh kh¸ ®Æc biÖt, do thao t¸c khëi

t¹o chØ cÇn mét lÇn nªn tiÕn tr×nh nµy còng chØ cÇn ch¹y mét lÇn duy nhÊt.

TiÕn tr×nh nµy sÏ mang sè hiÖu 0, khi thùc hiÖn, nã sÏ ®−îc −u tiªn thùc hiÖn

®Çu tiªn.

4.5. Qu¶n lý bé nhí.

HÖ ®iÒu hµnh ®−îc thiÕt kÕ trªn mét phÇn cøng lµ hÖ vi ®iÒu khiÓn. HÖ vi

®iÒu khiÓn chØ cã bé nhí ROM vµ bé nhí RAM, kh«ng gièng c¸c m¸y tÝnh cã

nhiÒu cÊp bé nhí nªn còng kh«ng cã c¸c kü thuËt ph©n ®o¹n ph©n trang...

®−îc ¸p dông. Trong môc nµy chØ ®i vµo gi¶i quyÕt viÖc tæ chøc ph©n chia bé

nhí cho c¸c tiÕn tr×nh, c¸c ch−¬ng tr×nh cña nh©n hÖ ®iÒu hµnh sao cho hîp lý

vµ tr¸nh xung ®ét bé nhí.

H×nh 4.16. Tæ chøc bé nhí ROM cña hÖ vi ®iÒu khiÓn

0000H

0003H

000BH

0013H

001BH

0023H

002BH . . . 1FFFH

Ng¾t do reset hÖ thèng

Ng¾t ngoµi 0

Ng¾t do bé ®Þnh thêi 0

Ng¾t ngoµi 1

Ng¾t do bé ®Þnh thêi 1

Ng¾t do port nèi tiÕp

Ng¾t do bé ®Þnh thêi 2

Page 83: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-84-

Nh− trªn h×nh 4.12 kh«ng gian dµnh cho c¸c ch−¬ng tr×nh con phôc vô

ng¾t lµ rÊt nhá trong khi ®©y chÝnh lµ nh©n cña hÖ ®iÒu hµnh. §Ó kh¾c phôc

vÊn ®Ò nµy, ch−¬ng tr×nh con phôc vô ng¾t cã thÓ ®Æt ë vÞ trÝ kh¸c trong bé

nhí vµ ë vÞ trÝ cña c¸c vÐc t¬ ng¾t cã thÓ ®Æt c©u lÖnh ®Ó nh¶y tíi c¸c ®iÓm ®Æt

ch−¬ng tr×nh con phôc vô ng¾t (h×nh 4.17).

H×nh 4.17. Thay ®æi vÞ trÝ ®Æt c¸c ch−¬ng tr×nh con phôc vô ng¾t

Ngoµi c¸c vïng dïng ®Ó chøa c¸c ch−¬ng tr×nh con phôc vô ng¾t ra, vïng

nhí cßn l¹i sÏ thuéc vÒ m· cña c¸c ch−¬ng tr×nh t−¬ng øng víi c¸c tiÕn tr×nh.

Nh− vËy bé nhí ch−¬ng tr×nh sÏ ®−îc chia thµnh 3 vïng chÝnh:

Vïng 1: Vïng nµy chØ ®Æt c¸c c©u lÖnh nh¶y tíi c¸c ch−¬ng tr×nh con

phôc vô ng¾t t¹i vÞ trÝ cña c¸c vÐc t¬ ng¾t t−ong øng.

Vïng 2: Lµ vïng ®Ó ®Æt c¸c ch−¬ng tr×nh con phôc vô ng¾t.

Vïng 3: Lµ vïng chøa m· cña c¸c ch−¬ng tr×nh t−¬ng øng víi c¸c tiÕn

tr×nh cã trong hÖ thèng.

JMP Main

JMP EX0ISR

0000H

0003H

000BH

0013H

001BH

0023H

002BH . . . 1FFFH

Main:

EX0ISR:

Page 84: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-85-

H×nh 4.18. Ph©n bæ bé nhí ROM

Còng t−¬ng tù nh− bé nhí ch−¬ng tr×nh, bé nhí d÷ liÖu còng ph¶i ®−îc

tæ chøc thµnh c¸c vïng kh¸c nhau ®Ó tr¸nh viÖc chång chÐo lªn nhau khi thùc

hiÖn.

H×nh 4.19. Ph©n bæ bé nhí RAM

0000H 0003H 000BH 0013H 001BH 0023H 002BH . . . 1FFFH

Vïng 1

Vïng 2

Vïng 3

Nh©n cña hÖ ®iÒu hµnh

0000H

001FH . . . 1FFFH

Vïng 1: Dµnh cho c¸c thanh ghi ®a n¨ng

Vïng 2: Dµnh cho c¸c

tiÕn tr×nh ®ang ho¹t ®éng

Vïng 3: Dµnh cho viÖc l−u tr¹ng th¸i cña c¸c thanh ghi cña mçÜ tiÕn

tr×nh khi nã bÞ dõng bëi hÖ ®iÒu hµnh

Page 85: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-86-

KÕt luËn vµ kiÕn nghÞ

Sau thêi gian nghiªn cøu vµ t×m hiÓu vÒ nguyªn t¾c thiÕt kÕ c¸c hÖ ®iÒu

hµnh nhá trªn c¸c bé vi ®iÒu khiÓn, t«i ®· ®¹t ®−îc mét sè kÕt qu¶ sau:

- N¾m ®−îc ph−¬ng ph¸p thiÕt kÕ míi c¸c hÖ vi ®iÒu khiÓn.

- N¾m ®−îc ph−¬ng ph¸p thiÕt kÕ c¸c hÖ ®iÒu hµnh cho c¸c hÖ vi ®iÒu

khiÓn

- Cã kü n¨ng sö dông c¸c tr×nh biªn dÞch, phÇn mÒm n¹p cho c¸c bé vi

®iÒu khiÓn.

- ThiÕt kÕ thµnh c«ng module thÝ nghiÖm hÖ ®iÒu hµnh cho vi ®iÒu khiÓn

dung cho môc ®Ých nghiªn cøu, gi¶ng d¹y, thÝ nghiÖm.

Víi môc ®Ých nghiªn cøu t×m hiÓu ®Ó thiÕt kÕ module phôc vô c«ng t¸c

gi¶ng d¹y nªn s¶n phÈm thiÕt kÕ cña t«i míi chØ dõng ë mét vµi øng dông nhá.

Tuy nhiªn víi nh÷ng kÕt qu¶ ®· ®¹t ®−îc trong thêi gian nghiªn cøu võa qua,

t«i nhËn thÊy m×nh hoµn toµn cã kh¶ n¨ng lµm chñ c¸c hÖ vi ®iÒu khiÓn vÒ c¶

phÇn cøng vµ phÇn mÒm. Hy väng luËn v¨n nµy sÏ gióp Ých phÇn nµo cho

nh÷ng ng−êi b¾t ®Çu t×m hiÓu vÒ lÜnh vùc nµy.

T«i xin ch©n thµnh c¶m ¬n:

TS NguyÔn Linh Giang, ng−êi ®· trùc tiÕp h−íng dÉn vµ gióp ®ì t«i

trong thêi gian lµm luËn v¨n. Trung t©m §µo t¹o vµ Båi d−ìng Sau §¹i häc -

Tr−êng §¹i häc B¸ch khoa Hµ Néi; c¸c thÇy c« gi¸o trong Khoa §iÖn tö,

tr−êng §HCN HN, ®· gióp ®ì t«i vÒ mÆt thêi gian, thiÕt bÞ còng nh− sù ®éng

viªn rÊt lín cña b¹n bÌ ng−êi th©n vÒ mÆt tinh thÇn trong thêi gian thùc hiÖn

®Ò tµi.

Page 86: Tailieu.vncty.com   luan van-thac_si_nghien_cuu,_thiet_ke_he_dieu_hanh_tren_bo_vi_dieu_khien_8_bit

-87-

Tµi liÖu tham kh¶o

TiÕng ViÖt

1. Ph¹m V¨n Êt, LËp tr×nh C c¬ së vµ n©ng cao, NXB khoa häc kü thuËt, Hµ

Néi.

2. NguyÔn Gia §Þnh (2000), Nguyªn lý hÖ ®iÒu hµnh, NXB khoa häc kü thuËt,

Hµ Néi.

3. TrÇn H¹nh Nhi (1998), HÖ ®iÒu hµnh n©ng cao, NXB khoa häc kü thuËt, Hµ

Néi.

4. Tèng V¨n On (1998), Hä vi ®iÒu khiÓn 8051, NXB Minh Khai, TP Hå ChÝ

Minh.

TiÕng Anh

5. M.Beach (2000), C51primer, Prentice Hall, London.

6. William Stalling (1995). Operating Systems, Prentice Hall,London.

Websides:

7.http://www.atmel.com

8. http://www.freeRTOS.com

9. http://www.Keil.com.