1
TrườngĐạihọcBáchkhoaHàNội
BộmônĐiềukhiểntựđộng
Tàiliệutómtắtbàigiảng
HỆ THỐNG ĐIỀU KHIỂN NHÚNG
(EmbeddedControlSystems)
TS.LưuHồngViệt
2
Nội dung
1 MỞĐẦU 5
1.1 Cáckháiniệmvềhệnhúng 5
1.2 Lĩnhvựcứngdụngcủahệnhúng 7
1.3 Đặcđiểmcôngnghệvàxuthếpháttriểncủahệnhúng 8
1.3.1 Đặcđiểmcôngnghệ 8
1.3.2 Xuth
ếpháttriểnvàsựtăngtrưởngcủahệnhúng 9
1.4 Mụcđíchvànộidungmônhọc 10
2 CẤUTRÚCPHẦNCỨNGHỆNHÚNG 11
2.1 Cácthànhphầnkiếntrúccơbản 11
2.1.1 Đơnvịxửlý
trungtâmCPU 11
2.1.2 Xungnhịpvàtrạngtháitínhiệu 13
2.1.3 Busđịachỉ,dữliệuvàđiềukhiển 16
2.1.4 Bộnhớ 17
2.1.5 Khônggianvàphânvùngđịachỉ 21
2.1.6 Ngoạivi 21
2.1.7 Giaodiện 33
2.2 Mộ
tsốnềnphầncứngnhúngthôngdụng(µP/DSP/PLA) 37
2.2.1 ChipVixửlý/Viđiềukhiểnnhúng 37
2.2.2 ChipDSP 39
2.2.3 PAL 41
3 CƠSỞKỸTHUẬTPHẦNMỀMNHÚNG 48
3.1 Đặcđiểmphầnmềm
nhúng 48
3.2 Biểudiễnsốvàdữliệu 48
3.2.1 Cáchệthốngcơsố 48
3.2.2 Sốnguyên 48
3.2.3 Sốdấuphảytĩnh 50
3.2.4 Sốdấuphảyđộng 51
3.2.5 Mộtsốphéptínhcơbản 52
3.3 Tậplệnh 55
3.3.1 CấutrúctậplệnhCISCvàRISC 55
3.3.2 Địnhdạnglệnh 57
3.3.3 Cáckiểutruyềnđịachỉtoántửlệnh 57
3.3.4 Nguyênlýthựchiệnpipeline 60
3.3.5 Harzard 61
3
3.4 Ngônngữvàmôitrườngpháttriển 63
3.4.1 Ngônngữ 63
3.4.2 Biêndịch 65
3.4.3 Simulator 70
3.4.4 Emulator 71
3.4.5 Thiếtkếhệthốngbằngmáytính 71
4 HỆĐIỀUHÀNHNHÚNG 73
4.1 Hệđiềuhành 73
4.2 Bộnạpkhởi
tạo(Boot‐loader) 74
4.3 Cácyêucầuchung 76
4.4 Hệđiềuhànhthờigianthực 77
5 KỸTHẬTLẬPTRÌNHNHÚNG 81
5.1 Tácvụvàquátrình(process) 81
5.2 Lậplịch(Scheduling) 81
5.2.1 Cáckháiniệm 81
5.2.2
Cácphươngpháplậplịchphổbiến 82
5.2.3 Kỹthuậtlậplịch 85
5.3 Truyềnthôngvàđồngbộ 87
5.3.1 Semaphore 87
5.3.2 Monitor 89
5.4 Xửlýngắt 90
6 THIẾTKẾHỆNHÚNG:TỔHỢPPHẦNCỨNGVÀM
ỀM 93
6.1 Quitrìnhpháttriển 93
6.2 Phântíchyêucầu 93
6.3 Môhìnhhoásựkiệnvàtácvụ 93
6.3.1 PhươngphápmôhìnhPetrinet 93
6.3.2 QuiướcbiểudiễnmôhìnhPetrinet 94
6.3.3 Môtảcáctìnhhuốnghoạtđộ
ngcơbảnvớiPetrinet 95
6.3.4 Ngônngữmôtảphầncứng(VHDL) 103
6.4 Thiếtkếphầnmềmđiềukhiển 104
6.4.1 Môhìnhthựcthibộđiềukhiểnnhúng 104
6.4.2 Vídụthựcthibộđiềukhi
ểnPIDsố 106
TÀILIỆUTHAMKHẢO 108
4
5
1 MỞ ĐẦU
Kỷnguyêncông nghệmớiđãvàđang tiếptụcpháttriểnkhôngngừngnhằmthông
minhhoáhiệnđạihoáthôngsuốtcáchệthống.Cóthểnóiđánhdấusựrađờivàphát
triểnc ủah
ệnhúngtrướctiênphảikểđếnsựrađờicủacácbộvixửlý,viđiềukhiển.
NóđượcđánhdấubởisựrađờicủaChipvixửlýđầutiên4004vàonăm1971chomục
đích
tínhtoánthươngmạibởimộtcôngtyNhậtbảnBusicomvàsauđóđãđượcchắp
cánhvàpháttriểnvượtbậcbởiIntelđểtrởthànhcácbộsiêuxửlýnhưcácChipđược
ứngdụng
choPCnhưngàyna y.Thậpkỷ80cóthểđượccoilàkhởiđiểmbắtđầukỷ
nguyêncủasựbùngnổvềpháttriểncáchệnhúng.Từđókhởinguồncholànsóngra
đờicủahànglo
ạtcácchủngloạivixửlývàgắnliềnlàcáchệnhúngđểthâmnhậprộng
khắptrongcácứngdụnghàngngàycủacuộcsốngchúngtavídụnhư,cácthiếtbịđiện
tửsửdụngchosinhhoạthàngngày(lòvisóng,TV,tủlạnh,máygiặt,điềuhoà )và
vănphònglàmviệc(máyfax,máyin,máyđiệnthoại ) Cácbộvixửlývàphầnmềm
c
ũngngàycàngđượcsửdụngrộngrãitrongrấtnhiềucáchệthốngnhỏ.Cácloạivixử
lýđượcsửdụngtrongcáchệthốngnhúnghiệnnayđãvượtxasovớiPCvềsố
lượng
chủngloại(chiếmđến79%sốcácvixửlýđangtồntại[2])vàvẫncòntiếptụcphát
triểnđểnhằmđápứngvàthoảmãnrấtnhiềuứngdụngđadạng.Trong
sốđóvẫncòn
ứngdụngcảcácChipvixửlý8bit,16bitvàhiệnnaychủyếuvẫnlà32bit(chiếm
khoảng75%).Gắnliềnvớisựpháttriểnphầncứng,ph
ầnmềmcũngđãpháttriểnvới
tốcđộnhanhkhôngthuakémthậmchísẽt ăngnhanhhơnrấtnhiềutheosựpháttriển
hệnhúng.
1.1 Các khái niệm về hệ nhúng
Hệnhúng?
Trongthếgiớithựccủachúngtabấtkỳmộtthiếtbịhayhệthốngđiện/điệntửcókhả
năngxử lýthôngtin vàđiềukhiểnđều cóthểtiềmẩn trong
đómột thiếtbịhay hệ
nhúng,vídụnhưcácthiếtbịtruyềnthông,thiếtbịđolườngđiềukhiển,cácthiếtbị
phụcvụsinhhoạthàngngàynhưlòvisóng,máygiặt,camera…Rất
dễdàngđểcóthể
kểrahàngloạtcácthiếtbịhayhệthốngnhưvậyđangtồntạiquanhta,chúnglàhệ
nhúng.Vậyhệnhúngthựcchấtlàgìvànênhiểuthếnàovềhệnhúng?Hi
ệnnaycũng
chưacómộtđịnhnghĩanàothựcsựthoảđángđểđượcchuẩnhoávàthừanhậnrộng
rãichohệnhúngmàvẫnchỉlànhữngkháiniệmdiễntảvềchúngthôngqua
nhữngđặc
thùchung.Tuynhiênởđâychúngtacóthểhiểuhệnhúnglàmộtphầnhệthốngxửlý
thôngtinnhúngtrongcáchệthốnglớn,phứchợpvàđộclậpvídụnhưtrongôtô,các
thi
ếtbịđolường,điềukhiển,truyềnthôngvàthiếtbịthôngminhnóichung.Chúnglà
nhữngtổhợpcủaphầncứngvàphầnmềmđểthựchiệnmộthoặcmộtnhómchứ
cnăng
chuyên biệt, cụ thể (Tráingượcvới máy tínhPC màchúngta thường thấyđược sử
dụngkhôngphảichomộtchứcnăngmàlàrấtnhiềuchứcnănghayphục
vụchungcho
nhiềumụcđích).PCthựcchấtlạilàmộthệthốnglớn,tổhợpcủanhiềuhệthốngnhúng
vídụnhưcardmànhình,âmthanh,modem,ổcứng,bànphím…Chínhđiềunàylàm
chúngtadễlúngtúngnếuđượchỏinênhiểuthếnàovềPC,cóphảilàhệnhúnghay
không.
6
Hình1‐1:Mộtvàihìnhảnhvềhệnhúng
Hệthờigianthực?
Trongcácbàitoánđiềukhiểnvàứngdụngchúngtarấthaygặpthuậtngữ“thờigian
thực”.Thờigianthựccóphảilàthờigianphảnánh
vềđộtrungthựccủathờigianhay
không?Thờigianthựccóphảilàhiểnthịchínhxácvàđồngbộtheođúngnhưnhịp
đồnghồđếmthờigianhaykhông?Khôngphải hoàntoànnhưvậy!Th
ựcchất,theo
cáchhiểunếunóitrongcáchệthốngkỹthuậtđặcbiệtcáchệthốngyêucầukhắtkhevề
sựràngbuộcthờigian,thờigianthựcđượchiểulàyêucầ
ucủahệthốngphảiđảmbảo
thoảmãnvềtínhtiềnđịnhtronghoạtđộngcủahệthống.Tínhtiềnđịnhnóilênhànhvi
củahệthốngthựchiệnđúngtrongmộtkhungthời
gianchotrướchoàntoànxácđịnh.
Khungthờigiannàyđượcquyếtđịnhbởiđặcđiểmhoặcyêucầucủahệthống,cóthểlà
vàigiâyvàcũngcóthểlàvàinanogiâyhoặcnhỏhơ
nnữa.Ởđâychúngtaphânbiệt
yếutốthờigiangắnliềnvớikháiniệmvềthờigianthực.Khôngphảihệthốngthực
hiệnrấtnhanhlàsẽđảmbảođượctínhth
ờigianthựcvìnhanhhaychậmhoàntoànlà
phépsosánhcótínhtươngđốivìmiligiâycóthểlànhanhvớihệthốngđiềukhiển
nhiệtnhưnglạilàchậm đốivớicácđối
tượngđiềukhiểnđiệnnhưdòng,áp….Hơnthế
nữanếuchỉnhanhkhôngthìchưađủmàphảiđảmbảoduytrìổnđịnhbằngmộtcơ
chếhoạtđộngtincậy.Chínhvìvậyh
ệthốngkhôngkiểmsoátđượchoạtđộngcủanó
(bấtđịnh)thìkhôngthểlàm ộthệthốngđảmbảotínhthờigianthựcmặcdùhệthống
đócóthểchođápứngrấtnhanh,th
ậmchínhanhhơnrấtnhiềusovớiyêucầuđặtra.
Mộtvídụ minh hoạtiêu biểuđólà cơchếtruyền thôngdữliệu quađường truyền
chuẩnEthernettruyềnthống,mặcdù
aicũngbiếttốcđộtruyềnlàrấtnhanhnhưngvẫn
khôngphảihệhoạtđộngthờigianthựcvìkhôngthoảmãntínhtiềnđịnhtrongcơchế
truyềndữliệu(cóthểlàrấtnhanh
vàcũngcóthểlàrấtchậmnếucósựcanhtrạnhvà
giaothôngđườngtruyềnbịnghẽn).
7
Ngườitaphânralàmhailoạiđốivớikháiniệmthờigianthựclàcứng(hardreal ‐time)
vàmềm(softreal‐time).Thờigianthựccứnglàkhihệthốnghoạtđộngv
ớiyêucầuthoả
mãnsựràngbuộctrongkhungthờigiancứngtứclànếuviphạmthìsẽdẫnđếnhoạt
độngcủatoànhệthốngbịsaihoặcbịpháhuỷ.Vídụv
ềhoạtđộngđiềukhiểnchomột
lòphảnứnghạtnhân, nếuchậmraquyếtđịnhcóthểdẫnđếnthảmhoạgâyradophản
ứngphânhạchvàdẫnđếnbùngnổcảh
ệthống.Thờigianthựcmềmlàkhi hệthống
hoạtđộngvớiyêucầuthoảmãnràngbuộctrongkhungthờigianmềm,nếuviphạmvà
sailệchnằmtrongkhoảngchophép
thìhệthốngvẫncóthểhoạtđộngđượcvàchấp
nhậnđược.Vídụnhưhệthốngphátthanhtruyềnhình,nếuthôngtintruyềnđitừtrạm
pháttớingườinghe/nhìnchậmmộtvài
giâythìcũngkhôngảnhhưởngđángkểđến
tínhthờisựcủatinđượctruyềnđivàhoàntoànđượcchấpnhậnbởingườitheodõi.
Thựctếthấyrằnghầuhếthệnhúnglàcác
hệthờigianthựcvàhầuhếtcáchệthờigian
thựclàhệnhúng.Điềunàyphảnánhmốiquanhệmậtthiếtgiữahệnhúngvàthờigian
thựcvàtínhthờigian
thựcđãtrởthànhnhưmộtthuộctínhtiêubiểu củahệnhúng.Vì
vậyhiệnnaykhiđềcậptớicáchệnhúngngườitađềunóitớiđặctínhcơbảncủanólà
tínhthời
gianthực.
Hệ thời gian thực
Hệ Nhúng
Hệnhúngthời
gianthực
Hình1‐2:Phânbốvàquanhệgiữahệnhúngvàthờigianthực
1.2 Lĩnh vực ứng dụng của hệ nhúng
Chúngtacóthểkểrađượcrấtnhiềucácứngdụngcủahệthốngnhúngđangđượcsử
dụnghiệnnay,vàxuthểsẽcòntiếptụctăngnhanh.Mộtsốcáclĩnhvựcvàs
ảnphẩm
thịtrườngrộnglớncủacáchệnhúngcóthểđượcnhómnhưsau:
• Cácthiếtbịđiềukhiển
• Ôtô,tàuđiện
• Truyềnthông
• Thiếtbịytế
• Hệthốngđo
lườngthẩmđịnh
• Toànhàthôngminh
• Thiếtbịtrongcácdâytruyềnsảnxuất
• Rôbốt
•
8
1.3 Đặc điểm công nghệ và xu thế phát triển của hệ nhúng
1.3.1 Đặc điểm công nghệ
Cáchệthốngnhưvậyđềucóchungmộtsốđặcđiểmnhưyêucầuvềkhảnăngthời
gianthực,độtincậy,tínhđộclậpvàhiệuquả.Mộtcâuhỏiđặtralàtại
saohệthống
nhúnglạipháttriểnvàđượcphổcậpmộtcáchnhanhchóngnhưhiệnnay.Câutrảlời
thựcranằmởcácyêucầutănglênkhôngngừngtrongcácứngdụngcôngnghệ
hiện
nay.Mộttrongnhữngyêucầucơbảnđólà:
Khảnăngđộclậpvàthôngminhhoá:Điềunàyđượcchỉrõhơnthôngquamộtsốcác
thuộctínhyêucầu,cụthểnhư:
; Độtincậy
; Khảnăngbảotrìvànângcấp
; Sựphổcậpvàtiệnsửdụng
; Độantoàn
; Tínhbảomật
Hiệuquả:Yêucầunàyđượcthểhiệnthôngqua
mộtsốcácđặcđiểmcủahệthốngnhư
sau:
; Nănglượngtiêuthụ
; Kíchthướcvềphầncứngvàphầnmềm
; Hiệuquảvềthờigianthựchiện
; Kíchthướcvàkhốilượng
; Giáthành
Phânhoạchtácvụvàchứcnănghoá:Cácbộvixửlýtrongcáchệnhúngthườngđược
sửdụngđểđảmnhiệmvàthựchiệnmộthoặcmộtnhómch
ứcnăngrấtđộclậpvàcũng
đặcthùchotừngphầnchứcnăngcủahệthốnglớnmànóđượcnhúngvào.Vídụnhư
mộtvixửlýthựchiện mộtphần
điềukhiểnchomộtchứcnăngthuthập,xửlývàhiển
thịcủaôtôhayhệthốngđiềukhiểnquátrính.Khảnăngnàylàmtăngthêmsựchuyên
biệthoávềchứcnă
ngcủamộthệthốnglớnvàdễdànghơnchoquátrínhxâydựng,
vậnhànhvàbảotrì.
Khảnăngthờigianthực:Cáchệthốngđềugắnliềnvớiviệcđảm
nhiệmmộtchứcnăng
chínhvàphảiđượcthựchiệnđúngtheomộtkhungthờigianquiđịnh.Thôngthường
mộtchứcnăngcủahệthốngphảiđượcthựchiệnvàhoàn
thànhtheomộtyêucầuthời
gianđịnhtrướcđểđảmbảothôngtincậpnhậtkịpthờichophầnxửlýcủacácchức
năngkhácvàcóthểảnhhưởngtrựctiếptới
sựhoạtđộng đúngvàchínhxáccủatoàn
hệthống.Tuỳthuộcvàotừngbàitoánvàyêucầucủahệthốngmàyêucầuvềkhảnăng
thờigianthựccũngrấtkhácnhau.
Tuynhiên,trong thựctếkhôngphảihệnhúngnàoc ũngđềucóthểthoảmãntấtcả
nhữngyêucầunêutrên,vìchúnglàkếtquảcủasựthoảhiệpcủanhiềuyêucầuvàđiề
u
kiệnnhằmưutiênchochứcnăngcụthểmàchúngđượcthiếtkế.Chínhđiềunàylại
9
cànglàmtăngthêmtínhchuyênbiệthoácủacáchệ/thiếtbịnhúngmàcácthiếtbịđa
năngkhôngthểcạnhtranhđược.
1.3.2 Xu thế phát triển và sự tăng trưởng của hệ nhúng
Vìsựpháttriểnhệnhúnglàsựkếthợpnhuầnnhuyễngiữaphầncứngvàphầnmềm
nêncôngnghệgắnliềnvớinócũngchínhlàcôngnghệkếthợpgiữacác
giảiphápcho
phầncứngvàmềm.Vìtínhchuyênbiệtcủacácthiếtbị/hệnhúngnhưđãgiớithiệu
nêncácnềnphầncứngcũngđượcchếtạođểưutiênđápứngcho
chứcnănghaynhiệm
vụcụthểcủayêucầuthiếtkếđặtra.
Lớphệnhúngưutiênphát triểntheotiêuchívềkíchthướcnhỏgọn,tiêu thụnăng
lượngít,giáthànhthấp.Các
chípxửlýnhúngcholớphệthốngứngdụngđóthường
yêucầuvềkhảnăngtínhtoáníthoặcvừaphảinênhầuhếtđượcxâydựngtrêncởsở
bộđồngxửlý8bít‐
16bithoặccùnglắmlà32bitvàkhônghỗtrợdấuphảyđộngdosự
hạnchếvềdunglượngvàkhảnăngtínhtoán.
Lớphệnhúngưutiênthựcthikhảnăngxửlýtínhtoánv
ớitốcđộthựchiệnnhanh.Các
chípxửlýnhúngchocáchệthốngđócũngsẽlàcácChipápdụngcáccôngnghệcao
cấpvớikiếntrúcxửlýsongsongđểđápứngđượccườngđộtínhtoán
lớnvàtốcđộmà
cácChipxửlýđachứcnăngthôngthườngkhôngđạttớiđược.
Lớphệthốngưutiêncảhaitiêuchípháttriểncủahailớptrên,tứclàkíchthướcnhỏ
g
ọn,mứctiêuthụnănglượngthấp,tốcđộtínhtoánnhanh.Tuỳtheosựthoảhiệpgiữa
cácyêucầuvàxuthếpháttriểnchínhvìvậycũngkhôngcógìngạcnhiênkhichúngta
thấ
ysựtồntạisongsongcủarấtnhiềucácChipvixửlýnhúng,viđiềukhiểnnhúng8
bit,16bithay32bitcùngvớicácChípsiêuxửlýkhácvẫnđangđượcứngdụngrộng
rãichohệnhúng.Đócũnglàsựkếthợpđadạngvàsựrađờicủacáchệnhúngnói
chungnhằmthoảmãncácứngdụngpháttriểnkhôngngừng.
Vớimỗimộtnềnph
ầncứngnhúngthườngcónhữngđặcthùriêngvàkèmtheomột
giảipháppháttriểnphầnmềmtốiưutươngứng.Khôngcómộtgiảiphápnàochung
vàchuẩntắcchotất
cảcáchệnhúng.Chínhvìvậythôngthườngcácnhàpháttriểnvà
cungcấpphầncứngcũnglạichínhlànhàcungcấpgiảiphápphầnmềmhoặccôngcụ
pháttriểnphầnm
ềmkèmtheo.RấtphổbiếnhiệnnaycácChipvixửlýhayviđiều
khiểnđềucócáchệpháttriển(StarterKithayEmulator)đểhỗtrợchocácnhàứngdụng
vàxâydựnghệnhúngvới
hiểubiếthạnchếvềphầncứng.Ngônngữmãhoãphần
mềmcũngthườnglàChoặcgầngiốngnhưC(Likely C)thayvìphải viếthoàntoàn
bằnghợpngữAssembly
.Điềunàychophépcácnhàthiếtkếtốiưuvàđơngiảnhoárất
nhiềuchobướcpháttriểnvàxâydựnghệnhúng.
Trong xu thế phát triển không ngừng và nhằm thoả mãnđược
nhu cầu phát triển
nhanh và hiệu quả có rất nhiều các công nghệ cho phép thực thi các giải pháp hệ
nhúng.ĐứngsausựphổcậprộngrãicủacácChipvixửlýviđiềukhiển
nhúng,DSP
phảikểđếncáccôngnghệcũngđangrấtđượcquantâmhi ệnnaynhưASIC,CPLD,
10
FPGA,PSOC vàsự tổhợp củachúng Kèm theođólà cáckỹ thuậtpháttriển phần
mềmchophépđảmnhiệmđượccácbàitoányêu cầukhắtkhetrêncơsởmộtnềnphần
cứng
hữuhạnvềkhảnăngxửlývàkhônggianbộnhớ.Giảiquyếtcácbàitoánthời
gianthựcnhưphânchiatácvụvàgiảiquyếtc ạnhtranhchiasẻtàinguyênchung.Hiện
naycũ
ngđãcó nhiềunhàphát triểncôngnghệ phầnmềm lớnđanghướng vàothị
trườnghệnhúngbaogồmcảMicrosoft.NgoàimộtsốcáchệđiềuhànhWindowsquen
thuộc dùngcho PC,Microsoftcũngđ
ãtungra cácphiên bảnmini nhưWindowsCE,
WindowsXPEmbeddedvàcáccôngcụpháttriểnứngdụngkèmtheođểphụcvụchocác
thiếtbịnhúng,điểnhìnhnhưcácthiếtbịPDA,mộtsốthiếtbịđiều
khiểncôngnghiệp
nhưcácmáytínhnhúng,IPCcủaSiemens
Có thểnóihệnhúngđã trởthành một giảipháp công nghệ vàpháttriển một cách
nhanhchóng,hứa hẹnnhiềuthiết bị nhúngsẽ chiếm
lĩnhđược thịtrườngrộng lớn
trongtươnglainhằmđápứngnhucầuứngdụngkhôngngừngtrongcuộcsốngcủa
chúngta.Đốivớilĩnhvựccôngnghiệpvềđiềukhiể
nvàtựđộnghoá,hệnhúngcũnglà
mộtgiảiphápđầytiềmnăngđãvàđangđượcứngdụngrộngrãi.Nórấtphùhợpđể
thựcthicácchứcnăngthôngminhhoá,chuyênbiệttrong
cáchệthốngvàthiếtbịcông
nghiệp,từcáchệthốngtậptrungđếncáchệthốngphântán.Giảipháphệnhúngcóthể
thựcthitừcấpthấpnhấtcủahệthốngcôngnghiệ
pnhưcơcấuchấphànhchođếncác
cấpcaohơnnhưgiámsátđiềukhiểnquátrình.
1.4 Mục đích và nội dung môn học
Hệđiềukhiểnnhúnglàm ộtmônhọcmớinhằmcungcấpkiếnthứcchosinhviênvề
khảnăngphântíchvàthiếtkếhệthốngđiềukhiểnvàthôngminhhoáhệthốngtheo
chứcnăngtheogiảiphápcôngnghệ.Thiếtkếthựcthiđiềukhiểntrênnềnphầncứng
nhúng.