1
HC VIN CÔNG NGH N THÔNG
Khoa Công ngh thông Tin
B môn Khoa hc máy Tính
XÂY DNG CÁC
H THNG NHÚNG
chuyên môn ca ngƠnh ngh, mƠ đó h thng nhúng s ng dng. Tóm li đơy lƠ mt ch đ
hp nht vƠ vic thc hin ch đ nƠy thc không d dƠng.
Vi lng thi gian nht đnh, môn hc XỂY DNG CÁC H THNG NHỎNG s
mang li cho ngi hc nhng vn đ c bn nht v h thng nhúng Chng 1. Chng 2 đ
cp ti kin trúc phn cng h thng, cách thit k mt s khi chc nng c s có tính thc t
cao. Chng 3 ch yu gii thiu v phn mm cƠi đt trên h thng nhúng, bao gm các trình
điu khin thit b, các phn mm trung gian, vƠ phn mm h thng đc cƠi đt . c bit nhc
li mt s yêu cu v khái nim ca các h thng thi gian thc vƠ h điu hƠnh thi gian thc.
Chng 4 gii thiu các tiêu chí vƠ phng pháp thit k h thông nhúng. Cui chng lƠ mt s
các bƠi tp ln kiu D án thit k, có th la chn cho thc hƠnh vi các kiu kin trúc h thng
nhúng khác nhau.
Nh đư nêu, đơy lƠ ch đ rng, mang tính k thut vƠ kin thc li đc tng hp t các
môn khác, nên tƠi liu nƠy chc không th tht s đy đ. Các phn kin thc nƠo không đc đ
cp sơu đơy, ngi hc cn tham kho thêm các tƠi liu khác, hay t các môn hc liên quan.
Tác gi xin chơn thƠnh cám n các cán b, ging viên Khoa Công ngh thông tin vƠ b
môn Khoa hc máy tính, Hc vin Công ngh BCVT HƠ Ni đư góp Ủ đ tác gi hoƠn thƠnh giáo
trình. Tác gi cng xin đón nhn các Ủ kin đóng góp, phê bình t ngi đc, ngi hc, sao cho
tƠi liu nƠy có ích hn. a ch theo e-mail:
3
HƠ Ni, tháng 10 nm 2013
Hunh Thúc Cc,
Vin Công ngh thông tin, VAST, 18, HoƠng Quc Vit, HƠ Ni.
4
Li nói đu 2
Mt s ch vit tt 7
Danh sách các hình v 9
Chng 1. GII THIU CHUNG V CÁC H THNG NHÚNG 15
1.1 KHÁI NIM V H THNG NHÚNG (HTN) 15
1.2 C IM CA HTN 15
1.3 CÁC YÊU CU VI HTN 18
1.4 MÔ HÌNH TNG TH HTN 19
1.4.1 Mô hình cu trúc phn cng ca máy tính 19
1.4.2 Kin trúc ca CPU 23
1.4.3 Mô hình tng quát ca mt HTN 25
1.4 PHÂN LOI HTN 27
2.5.2 Phân loi b nh 101
2.5.3 Phân cp b nh 108
2.5.4 T chc b nh vt lý và thit k b nh 110
2.6 GHÉP NI VI THIT B NGOI VI 121
2.6.1 Tng quan 121
2.6.2 Ghép ni CPU ch đng 125
2.6.3 Ghép ni I/O ch đng 130
2.6.4 Cng vào/ra 144
2.6.5 Ghép ni vi tín hiu tng t (analog signal) 150
2.6.6 Bin đi tng t thành s (s hóa) 152
2.6.7 Bin đi s thƠnh tng t (DAC) 153
2.7 KT CHNG 153
2.8 CÂU HI VÀ BÀI TP 153
2.8.1 Câu hi cui chng 153
2.8.2 Bài tp cui chng 154
Chng 3. CÁC THÀNH PHN PHN MM CA H THNG NHÚNG 156
3.1 TRỊNH IU KHIN THIT B ( vit tt: TKTB) 156
3.1.1 Tng quan 156
3.1.2 Các loi TKTB 160
3.1.3 3.1.3 Hot đng ca TKTB 161
3.1.4 Phát trin TKTB 161
3.1.5 Mt s ví d v TKTB 163
3.2 H THNG NHÚNG THI GIAN THC 165
3.2.1 H điu hành đa nhim (multitasking) 165
3.2.2 H thng thi gian thc 184
3.2.3 H điu hành thi gian thc (RTOS) 189
3.2.4 H thi gian thc không có h điu hành thi gian thc 195
3.3 PHN MM TRUNG GIAN (middleware) 198
3.4 PHN MM NG DNG 200
7
CPU
Central Processing Unit
n v x lý trung tâm
ROM
Read Only Memory
B nh chi đc
EPROM
Erasable programmable read-only
memory
B nh ch đc, xóa và lp trình li đc
RAM
Random Access Memory
b nh truy cp ngu nhiên
FLASH
non-volatile computer storage
PSoC
Programmable System - on - Chip
H thng kh trinh trên vi mch
ASIC
Application-Specific Integrated
Circuit
ASIC là mt vi mch đc thit k dành cho mt
ng dng c th theo yêu cu cá bit
MCU
Microcontroller Unit
Vi điu khin
CICS
Complex Instruction Set
Tp lnh đy đ
RISC
Reduced Instruction Set
Tp lnh rút gn
SPI
Serial Peripheral Interface
ng liên kt d liu ni tip, đng b, hot đng
theo kiu Ch/t (Master/Slave)
I
2
C
Inter-Integrated Circuit
Bus dùng đ ni gia các vi mch đin t ầ
8
In-Circuit Emulator
Là loi thit b phn cng dùng đ g ri khi phát
trin phn cng và phn mm hp nht, nh HTN.
Vid d nh Logic anlyzer, phn mm MPLAB ca
Microchip
9
10
Hình 2.15 Nguyên lí ni BUS I
2
C
Hình 2.16 Ghi/đc trên BUS I
2
C
Hình 2.17 Ví d d liu thu/phát trên BUS I
2
C
Hình 2.18 Các mch logic thng dùng trong thit k k thut s
Hình 2.19 Các kiu ni đu ra, đu ra tr kháng cao
Hình 2.20 Vi mch 3 trng thái: hai trng thái logic và
trng thái th 3 HZ: đu ra b “tách” khi BUS.
Hình 2.21 Mch cht (hay nh, gi li) kiu D,
làm vic theo mc hay sn lên ca xung đng h CK. (Xem thêm chi tit mach
SN 7474).
Hình2.22 Cht 4 bit vi D-Flip/flop
Hình 2.23 Cng khuych đi (driver) cht hai chiu
Hình 2.24 Cu hình ti thiu bo mch CPU 8085, RAM/ROM/Ports
Hình 2.25 Mch in cho hình 2.24
Hình 2.26 CPU Intel x86
Hình 2.27 Bo mch vi ti thiu vi CPU 8086:BUS controller, Ngt controller, RAM
Hình 2.28 CPU 8086 timing: lnh đc
Hình 2.29 Mô hình kin trúc Havard:
BUS cho b nh chng trình: Code Bus vƠ Code Address;
BUS cho RAM d liu: Data Bus và Data Address;
Hình 2.52 Phân cp b nh
Hình 2.53 Mô hình hot đng ca RAM cache
Hình 2.54 S đ võ ngoài mt vi mch (chip) nh (pin-out)
Hình 2.55 S đ khi chc nng bên trong chip 16K x 1 bit
Hình 2.56 S đ thit k bng nh SRAM 16K x 8, vi Chip 16Kx1
Hình 2.57 S đ khi chc nng ca 1 chip DRAM thng mi 4164Kb
Hình 2.58 Quan h các tín hiu điu khin DRAM 4164x1 thng mi.
Hình 2.59 CPU 8080/8085 Module DRAM 64 KB toàn phn
Hình 2.62 Ví d v cách phân b b nh trong máy tính PC
Hình 2.63 Mô hình k thut ghép ni
Hình 2.64 Các kiu ghép ni
Hình 2.65 c d liu vào: D liu_t thit b vƠo ACC sau đó vƠo RAM
Hình 2.66 a d liu t RAM vƠo ACC sau đó ACC ra thit b
Hình 2.67 Trao đi d liu đc vƠo có điu kin
Hình 2.68 Lu đ điu khin đc d liu vƠ có điu kin
Hình 2.69 Lu đ điu khin đc d liu kiu quay vòng
Hình 2.70 Mô hình hot đng ca ngt
12
Hình 2.71 Các kiu ngt
Hình 2.72 Thit kt vi ngt cng che đc INTR ca CPU
Hình 2.73 Vector ngt và chuyn x lý ti ISR
Hình 2.74 T chc ngt vi điu khin ngt
Hình 2.75 M rng s ngt vi 2 vi mch 8259
Hình 2.76 Nguyên lí DMA
Hình 2.77 DMA và hot đng ca CPU lƠ đc lp
Hình 2.78 Ghép ni DMAC 8237 vào vi CPU 8085vƠ lu đ thi gian ca qui trình DMA
Hình 2.79 Lu đ DMA ghi d liu t RAM ra thit b ngoài
Hình 3.16 Các h điu hành RTOS
Hình 3.17 H thng nhúng thi gian thc
Hình 3.18 V trí cua PMTG HTN
Hình 3.19 Mô hình các lp mng theo TCP/IP, OSI và ánh x vào HTN
Hình 3.20 Các ng dng WEB trong HTN, đt lp phn mm ng dng
Hình 4.1 Các thuc tính chung ca phn cng ca mt HTN
Hình 4.2 Mt kiu đc t tin thit k HTN
Hình 4.3 Kch bn mô phng hiu nng khi thit k HTN
Hình 4.4 Các cu trúc kiu “4+1”
Hình 4.5 Các pha thit k HTN
Hình 4.6 Gii thut thit k máy in laser: phân hoch cng/mm
Hình 4.7 Phân hoch thit k phn cng và phn mm
Hình 4.8 ng thit k phn cng và phn mm-đng kim nghim, ti uthit k
Hình 4.9 Qui trình thit k kiu ASIC
Hình 4.10 Xây dng mô hình hình thc: Bc sàng lc s dng cách tng hp phn cng
và phn mm đ chuyn hóa xác đnh chc nng vƠo mô hình phn cng ca thit
k.
Hình 4.11 Bo mch HTN
Hình 4.12 Mi tng quan gia giá thành h thng/hiu nng
và mc đ tích hp thng/hiu nng
Hình 4.14 Quá trình biên dch thành mã maý to ra HH
Hình 4.15 nh dng mt tp thc thi ELF
Hình 4.16 Tng quát các bc to nhơn HH mi t mã ngun
Hình 4.17 Tng quát các bc to nhơn HH mi t mã ngun và kiu khi đng
Hình 4.19 Các loi công c h tr g ri
Hình 4.20 Kt qu hin th ca g ri
Hình 4.21 Liên kt gi h phát trin và h đích đang đc g ri
14
đa dng các dòng vi x lý, phát trin mnh m. Các b vi x lỦ đa nng vƠ s xut hin các vi x
lý chuyên bit (ASIC- application-specific integrated circuit) đc ch to vi s lng ln cha
tng thy. Vic s dng các b vi x lý chuyên bit đ to ra các thit b chuyên x lý mt hay
mt vƠi bƠi toán k thut, to ra mt nghành công ngh mi, gi là công ngh nhúng. Sn phm
ca công ngh nhúng này là các h thng nhúng.
Vy h thng nhúng (HTN- Embedded system) là gì ?
Có nhiu đnh ngha v HTN, nhng nu ta ly tiêu chí mô t HTN làm cái gì và s dng nó nh
th nào, thì có th nói v HTN nh sau:
H thng nhúng là mt thut ng đ ch mt h thng có kh nng hot đng t tr đc
nhúng vào trong mt môi trng hay mt h thng khác qui mô phc tp hn. ó lƠ các h thng
tích hp c phn cng (là mt h thng máy tính đc xây dng trên c s s dng vi x lý -
microprocessor-based system) và phn phm nhúng trong phn cng đó, đ thc hin các bài
toán chuyên bit.
Hay theo đnh ngha ca t chc IEEE thì h thng nhúng là mt h tính toán (máy tính
s) nm trong (hay c nhúng vào) sn phm khác ln hn vƠ rng thông thng n đi vi
ngi s dng. Nói rng ra, vƠ đn gin hn, khi mt h tính toán (có th là PC, IPC, PLC, vi x
lý, vi h thng (microcontroller), DSP v.v ) đc nhúng vào trong mt sn phm hay mt h
thng nƠo đó vƠ thc hin mt s chc nng c th ca h thng đó, thì ta gi h tính toán đó lƠ
mt h thng nhúng. Tuy nhiên tht không d gì đnh ngha cho tht đúng v HTN, đnh ngha
trên rt ít nói ti công ngh vƠ cng rt đn gin. Hin nay cha có đnh ngha nƠo tht tha đáng
v HTN, ví d nu ly chc nng x lý thông tin, thì HTN là mt phn x lý thông tin nhúng
trong các h thng ln hn vƠ phc tp hn, hay cng có th là mt h thng đc lp vn hành t
đng. Ví d gn gi ta có: máy tính cá nhơn, hay máy ch, là mt h thng phc tp đc xây
dng t các thành phn hot đng đc lp nhng đc đng b vi nhau. V điu khin đ ha,
có vi điu khin rt mnh x lỦ đ ha, v điu khin trên đa cng có vi điu khin chuyên dng
đ x lý tín hiu, ghi/đc d liu t đa t tính theo yêu cu ca h điu hƠnh, v mng cng lƠ
mt vi điu khin tinh vi x lý tín hiuầ ó lƠ các h thng con đc nhúng trong h thng máy
tính nói chung. Mc dù vy ta cng s nêu ra đơy mt s đim chung v HTN.
1.2
Tng tác ngi-máy rt đn gin nu có vì HTN chy đc lp và thông tin vi h
thng ln hn lƠ chính. NgƠy nay xu hng WEB hóa giao din tng tác lƠ ph
bin, ví d các thit b kt ni mng Internet nh ADSL dòng SOHO (Small
Office-Home Office), có WEB đ làm cu hình và qun tr. Tng t, các HTN
công nghip cng phát trin theo xu hng nƠy đ d qun tr t trung tơm điu
khin.
HTN hoc lp, do đó các đc đim sau đơy:
tin cy, lí tng là không có s c hng hóc.
Bo trì: thi gian bo trì nhanh chóng.
Có tính sn sàng cao, là kt qu ca s tin cy và bo trì.
17
An toàn: nu có s c xy ra, HTN không gây ra nhng tác hi khác ca toàn h
thng.
An ninh: d liu ca HTN đc bo mt, truy nhp phi có xác nhn (ví d, HTN
là các thit b truyn thông, SOHO).
HTN là mt kiu máy tính có yêu cu v ch tin cy rt cao, hoc
ng khc nghit v nhit đ (cao, hay rt thp), đ m cao, đ rung đng
ln, nhiu sóng đin t v.vầ Ví d các máy tính trong công nghip, các thit b truyn thông,
trm BTS chng hn, hay các máy tính điu khin trên máy bay (fly by wire)ầ
Phn ln các h thng nhúng hot đng vi s ràng buc thi gian: yêu cu có thi gian
cho (đáp ng) đu ra nhanh, đúng thi đim, trong mi tng quan vi thi đim xut hin
ca (s kin) đu vào. Kiu hot đng nh vy gi là to đáp ng theo thi gian thc. Thi
gian thc có th chia ra làm hai kiu:
Nhy cm vi thi gian (time- sensitive): s kin ch đc x lý trong mt khung
thi gian nht đnh;
Thi gian ti hn (time critical): khi có s kin, h thng phi phn ng ngay,
chuyn nhanh nht đn mư chng trình ng vi s kin đó đ x lý, nói cách
lát, rt nhiu thit b y t hin điầ
Mng thông tin (WAN, LAN, thoi)
B đnh tuyn, gateway, chuyn mch mng, các thit b truyn
thông-mng, trm chuyn tip, BTS di đng ầ
Vn phòng
Máy Fax, máy potocopy, máy in (kim, laser, phun), máy quét, màn
hình LCDầ
Các lnh vc khác: an ninh, quc
phòng, hàng không, hàng hi
c hp nht trong rt nhiu khí tài hin đi ca tt c các binh
chng .
1.3 HTN
HTN thc t là mt loi máy tính dùng đ x lỦ thông tin đư dng s. HTN có th là
mt h thng đc lp nh mt thit b tích cc trong mô hình điu khin, tc HTN là mt
regulator s, thc hin các chc nng ca PID regulator, khi các chc nng nƠy đc th hin
bi thut toán và chuyn hóa dng mư chng trình trong HTN. Trong khi đó HTN li là mt
phn ca mt qui trình công ngh trong công nghip. Nh trên đư lit kê các đc đim chung mà
các h thng nhúng thng có, t nhiên ta có th rút ra đc nhng yêu cu cn có trên mt h
thng nhúng.
1. Kh ng vi s kin bên ngoài (t các tác nhân b kim soát) phi nhanh
nhy, kp thi, tc là kh nng theo thi gian thc:
Các tác v ng ràng buc bi thi hn chót (deadline);
Thi gian phát hin li phi rt ngn (ti thiu);
Khi chy các chu trình vòng lu khin bng phn mm phng
i hn;
2. Có kh nng lƠm ng khc nghit.
3. Có giá thành thp hay hiu qu hong/giá thành hp lí.
4. c nh gn, nh, d mang d vn chuyn, lp đt.
5. Tiêu th ng thp, kh nng s dng ngun pin, c qui (tt nhiên ph thuc vào
dung lng ca pin, c qui).
chc nng, thì hoƠn toƠn thng nht.
Mô hình l x lý trung tâm (Central Processing Unit CPU) là khi chc nng c bn
nht đ to nên mt h vi x lý, HNT hay máy tính cá nhân (Personal Computer PC).
CPU thc hin chc nng x lý d liu theo nguyên tc thc hin chng trình máy
tính cài trong b nh ROM hay np vào b nh RAM. Vic thc hin nh sau: CPU
đc mã lnh (OPCODE) t b nh (ROM hay RAM), sau đó,
Gii mã lnh, to các tín hiu (xung) điu khin tng ng vi mã lnh đ điu
khin hot đng ca các khi chc nng khác trong CPU vƠ bên ngoƠi CPU.
Tp các tín hiu to ra BUS ca CPU. Khi kt hp vi các vi mch dn /tách
kênh và khuych đi, các mch gii mư,ầ s to ra BUS h thng. BUS h thng
cung cp các tín hiu cho các vi mch tích hp vào CPU (ROM, RAM, I/O
module) to thành bo mch chính (CPU board).
Thc hin tng bc các thao tác x lý d liu đư đnh ngha trong mư lnh.
Ghi li kt qu thc hin lnh.
B nh chính (ROM/RAM) đc t chc t các t nh đn, kép. Theo chun ca
IBM/PC t nh dài 1 byte (8 bits). B nh này gm các chip nh
ch đc ROM (Read Only Memory) và các chip nh truy xut ngu nhiên RAM
(Random Access Memory) có tc đ truy cp nhanh. B nh đc s dng đ cha
20
các chng trình vƠ các d liu cn x lỦ. Các chng trình ng dng và d liu có
th đc cha ROM hoc RAM, các kt qu trung gian hay kt qu cui cùng ca
các thao tác x lý có th đc cha trong các thanh ghi đa dng hoc trong RAM.
B vi x lí trung
tâm
(CENTRAL
PROCESSING
k thut đóng-ngt dùng linh kin bán dn công sut (Switching Power Supply), va gn
nh, công sut đ ln, hiu sut cao.
21 Hình 1.2-Ngun nuôi cho h máy tính
Phân loi trên c s vi mch
Tuy nhiên khi đ cp ti cu trúc ca HTN đc xây dng trên công ngh vi mch, có th
có hai loi khác bit:
và khác nhau theo vài cách,
s dng mt vi x lí, cn hp nht nhiu thƠnh phn vƠo đó: b nh, I/O,
COM ầ vƠ do vy vi x lí lƠ trung tơm ca c h thng. Trong khi đó vi điu khin đc thit k
theo tiêu chí: tt c đc tích hp trong mt vi mch, đc bit lƠ các giao tip I/O, tc lƠ s không
cn thêm thƠnh phn nƠo vƠo đó. Li ích lƠ ch và
rt nhiu. Tuy nhiên do phn cng hn ch, nên cng phi đc xác
đnh.
H thng nhúng da trên
b vi x lý trên bo mch
(Microprocessor-based
Embedded System)
H thng nhúng vi
u khin trên bo mch
(Microcontroller-based
Embedded System)
Có CPU đc lp, có th lƠ CPU đa
nng ph bin (Intel 8080/8085,
Motorola 6800ầ),
Thit k ch
c thit k có tt c trong
mt Chip !
Nng lc tính toán đc thit k ti
u cho ng dng xác đnh, các ng
dng chuyên bit.
Rt phù hp đ xây dng các HTN
Tit kim gian thit k.
Hình 1.3 HTN xây dng t xây dng t vi x lý(Microprocessor-u khin
(microcontroller based)
23 Hình 1.4 Chip
.
1.4.2 Kin trúc ca CPU
Phn nhiu các tài liu khi đ cp ti thit k HTN, đu dành mt s ch đ v kin trúc và cách
thit k ch to CPU. ơy lƠ mt vn đ chuyên và rt sâu, tài liu này s không dn xut. Tài
liu ch gii hn gii thiu các kiu CPU có th s dng đ thit k HTN. Các kiu CPU này rt
ph bin trên th trng, rt đa dng vi nng lc x lý khác nhau và phù hp cho mi loi ng
dng nhúng. Di đơy lƠ mt trong các quan đim nhìn nhn CPU:
Tp lnh: có th lƠ CISC hay RISC, trong đó RISC lƠ ph bin.
Hot đng theo kiu Von Neumman, ví d đin hình nh hình v trên, trong đó H
thng BUS đa ch và BUS d liu, BUS điu khin chung cho toƠn b h thng, b
nh chia s chung cho toƠn h thng vi vùng mã lnh (code) và d liu (data) trên
nhng cho hiu qu hn cho các ng dng nhúng. Là loi ph bin đ thit k các
HTN. Hình 1.5 Hai kiu HTN vi 2 loi kin trúc CPU
25
Ví d Havard CPU ARM 920T, là loi CPU ci tin vi mt nh cache cho lnh và mt cache cho d
liu.
Hình1.6 Havard CPU ARM 920T ca Amtel
1.4.3 Mô hình tng quát ca mt HTN
Các khi ch
- Môi trng hot đng: ni s dng HTN,
- Chp hành: là các thit b công ngh,
- Cm bin: thit b đc bit ghi nhn thông tin công ngh (v trí, vòng quay, tc đ,
nhit đ, áp sut, kích thc (cao, dƠi, sơu) ầ) ,
- Ghép ni: là các thit b phi hp, chuyn hóa các thông tin t cm bin thành tín
hiu đin đ s hóa,
- Các b s hóa (A/D) vƠ tng t hóa (D/A),
- Ghép ni vi các h thng khác: liên kt các HTN khác, mng d liu, Trung tâm
điu khin SCADA, ầ
- Ghép ni BUS h thng
- CPU, RAM, ROM (FLASH),