Tải bản đầy đủ (.pdf) (292 trang)

Bài giảng Xây dựng các hệ thống nhúng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.82 MB, 292 trang )



1




HC VIN CÔNG NGH N THÔNG
Khoa Công ngh thông Tin
B môn Khoa hc máy Tính







XÂY DNG CÁC
H THNG NHÚNG




















Hà Ni, tháng 11 
(bn sa và b sung)


2


Dy vƠ hc h thng nhúng lƠ đ cp ti mt ch đ có phm vi rng bao gm thit k,
môi trng ng dng, loi hình công ngh, qui tc cn thit đ tip cn mt cách có h thng.
Lnh vc thit k vƠ ng dng các h thng nhúng bao gm : các h thng vi điu khin (micro-
controller) nh vƠ đn gin, các h thng điu khin, h thng nhúng phơn tán, h thng trên
chip, mng máy tính (có dơy vƠ không dơy), các h thng PC nhúng, các h thng rƠng buc thi
gian, robotic, các thit b ngoƠi ca máy tính, x lỦ tín hiu, h thng lnh vƠ điu khinầ Nn
tng công ngh hin đi lƠ k thut vi đin t vi mt đ tích hp ln vƠ rt ln. Khi mun thit
k h thng nhúng, có nhiu yu t cn tuơn th ging nh khi thit k máy tính, nhng li b
rƠng buc bi đc thù ng dng. Thêm vƠo đó lƠ s đan chéo ca các k nng rt cn thit cho
thit k h thng nhúng, đc lp vn hƠnh, thit k vi tiêu chí tiêu hao nng lng thp, công
ngh phn cng, công ngh phn mm (h thng vƠ ng dng), h thi gian thc, tng tác
ngi máy vƠ đôi khi c vn đ an ninh h thng. Nh vy đƠo to vƠ hc h thng nhúng cn
mt khi lng kin thc tp hp ít nht t các b môn khác nh khoa hc máy tính (computer
science), khoa hc truyn thông (communication), k thut thit k đin t: các mch tng t vƠ
s, s dng tt các phn mm thit k bo mch (nh Protel, Proteus, DXPầ), kin thc v ch
to bán dn. Vì lƠ b môn công ngh có tính ng dng cao vi bƠi toán c th, nên li cn có

chuyên môn ca ngƠnh ngh, mƠ  đó h thng nhúng s ng dng. Tóm li đơy lƠ mt ch đ
hp nht vƠ vic thc hin ch đ nƠy thc không d dƠng.
Vi lng thi gian nht đnh, môn hc XỂY DNG CÁC H THNG NHỎNG s
mang li cho ngi hc nhng vn đ c bn nht v h thng nhúng  Chng 1. Chng 2 đ
cp ti kin trúc phn cng h thng, cách thit k mt s khi chc nng c s có tính thc t
cao. Chng 3 ch yu gii thiu v phn mm cƠi đt trên h thng nhúng, bao gm các trình
điu khin thit b, các phn mm trung gian, vƠ phn mm h thng đc cƠi đt . c bit nhc
li mt s yêu cu v khái nim ca các h thng thi gian thc vƠ h điu hƠnh thi gian thc.
Chng 4 gii thiu các tiêu chí vƠ phng pháp thit k h thông nhúng. Cui chng lƠ mt s
các bƠi tp ln kiu D án thit k, có th la chn cho thc hƠnh vi các kiu kin trúc h thng
nhúng khác nhau.
Nh đư nêu, đơy lƠ ch đ rng, mang tính k thut vƠ kin thc li đc tng hp t các
môn khác, nên tƠi liu nƠy chc không th tht s đy đ. Các phn kin thc nƠo không đc đ
cp sơu  đơy, ngi hc cn tham kho thêm các tƠi liu khác, hay t các môn hc liên quan.
Tác gi xin chơn thƠnh cám n các cán b, ging viên Khoa Công ngh thông tin vƠ b
môn Khoa hc máy tính, Hc vin Công ngh BCVT HƠ Ni đư góp Ủ đ tác gi hoƠn thƠnh giáo
trình. Tác gi cng xin đón nhn các Ủ kin đóng góp, phê bình t ngi đc, ngi hc, sao cho
tƠi liu nƠy có ích hn. a ch theo e-mail:





3

HƠ Ni, tháng 10 nm 2013

Hunh Thúc Cc,
Vin Công ngh thông tin, VAST, 18, HoƠng Quc Vit, HƠ Ni.















































4



Li nói đu 2
Mt s ch vit tt 7
Danh sách các hình v 9
Chng 1. GII THIU CHUNG V CÁC H THNG NHÚNG 15
1.1 KHÁI NIM V H THNG NHÚNG (HTN) 15
1.2 C IM CA HTN 15
1.3 CÁC YÊU CU VI HTN 18
1.4 MÔ HÌNH TNG TH HTN 19
1.4.1 Mô hình cu trúc phn cng ca máy tính 19
1.4.2 Kin trúc ca CPU 23
1.4.3 Mô hình tng quát ca mt HTN 25
1.4 PHÂN LOI HTN 27

1.5 KT CHNG 32
1.6 CÂU HI CUI CHNG 33
Chng 2. CÁC THÀNH PHN PHN CNG CA H THNG NHÚNG 34
2.1 B X LÍ TRUNG TÂM (Central Processing Unit-CPU) 34
2.2.1 Các loi CPU và nguyên lí hot đng 34
2.2.2 Ví d v mt CPU và nguyên lí hot đng 35
2.2 CPU 8085 VÀ H THNG BUS 44
2.2.1 Khái nim và bn cht vt lý ca các BUS 45
2.2.2 Khuych đi BUS (bus driver) 47
2.2.3 Bus đng b (Synchronous bus): 48
2.2.4 Bus không đng b (Asynchronous bus) 50
2.2.5 Trng tài BUS (bus arbitration) 51
2.2.6 Bus m rng (Expansion bus) EISA, MCA, Bus cc b, PCI 54
2.2.7 Bus SPI (Serial Peripheral Interface ) 55
2.2.8 Bus I
2
C (Inter-Integrated Circuit) 56
2.2.9 Thc hin k thut ca BUS 62
2.3 BO MCH mt HTN VI CU HÌNH TI THIU 66
2.4 HTN VI CÁC CPU KHÁC NHAU 69
2.4.1 CPU đa nng 16 bit 69
2.4.2 Bo mch vi CPU HARVARD (microcontroller Unit-MCU) h Intel 8051/8052/8xC25173


5

2.4.3 Vi mch H thng kh trình trong mt Chip (Programmable System on chip-PsoC) và
Máy tính thông minh kh trình (Programmable Intelligent Computer-PIC) 84
2.5 B NH VÀ THIT K B NH 98
2.5.1 Mt s thông s chính ca mch nh 99

2.5.2 Phân loi b nh 101
2.5.3 Phân cp b nh 108
2.5.4 T chc b nh vt lý và thit k b nh 110
2.6 GHÉP NI VI THIT B NGOI VI 121
2.6.1 Tng quan 121
2.6.2 Ghép ni CPU ch đng 125
2.6.3 Ghép ni I/O ch đng 130
2.6.4 Cng vào/ra 144
2.6.5 Ghép ni vi tín hiu tng t (analog signal) 150
2.6.6 Bin đi tng t thành s (s hóa) 152
2.6.7 Bin đi s thƠnh tng t (DAC) 153
2.7 KT CHNG 153
2.8 CÂU HI VÀ BÀI TP 153
2.8.1 Câu hi cui chng 153
2.8.2 Bài tp cui chng 154
Chng 3. CÁC THÀNH PHN PHN MM CA H THNG NHÚNG 156
3.1 TRỊNH IU KHIN THIT B ( vit tt: TKTB) 156
3.1.1 Tng quan 156
3.1.2 Các loi TKTB 160
3.1.3 3.1.3 Hot đng ca TKTB 161
3.1.4 Phát trin TKTB 161
3.1.5 Mt s ví d v TKTB 163
3.2 H THNG NHÚNG THI GIAN THC 165
3.2.1 H điu hành đa nhim (multitasking) 165
3.2.2 H thng thi gian thc 184
3.2.3 H điu hành thi gian thc (RTOS) 189
3.2.4 H thi gian thc không có h điu hành thi gian thc 195
3.3 PHN MM TRUNG GIAN (middleware) 198
3.4 PHN MM NG DNG 200



6

3.5 KT CHNG 201
3.6 CÂU HI CUI CHNG 201
Chng 4 THIT K VÀ CÀI T CÁC H THNG NHÚNG 203
4.1 THIT K H THNG 203
4.1.1 Các nn tng c bn khi xây dng kin trúc HTN 207
4.1.2 Phân hoch thit k phn cng, phn mm 211
4.1.3 Xây dng bo mch khi phát trin h thng 217
4.2 CÀI T VÀ TH NGHIM HTN 221
4.2.1 Chn CPU cho thit k 221
4.2.2 B nh cho HTN 223
4.2.3 Ghép ni vi thit b 225
4.2.4 Phát trin phn mm cho HTN 225
4.2.5 G ri và mô phng 235
4.2.6 Phát trin HTN 240
4.2.7 Ví d phát trin HTN 266
4.3 KT CHNG 267
4.4 CÂU HI CUI CHNG 267
TÀI LIU THAM KHO 267
PH LC Các ví d 270



















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à lp trình li đc
RAM
Random Access Memory
b nh truy cp ngu nhiên

FLASH
non-volatile computer storage

(
memory cards, USB flash drives,
solid-state drives -SSD)
B nh bán dn không b mt ni dung ngay c khi
không cung cp ngun nuôi
OS
Operating System
H điu hành
RTOS
Real Time Operating System
H điu hành thi gian thc
ES
Embedded System
H thng nhúng
HTN
Embedded System
H thng nhúng
OS hay HH
Operating System
H iu Hành
TKTB
Device Driver
Trình điu khin thit b
PLC
Programmable Logic Controller
b điu khin logic kh trình
PIC
Programmable Intelligent
Computer
Máy tính kh trình thông minh

PSoC
Programmable System - on - Chip
H thng kh trinh trên vi mch
ASIC
Application-Specific Integrated
Circuit
ASIC là mt vi mch đc thit k dành cho mt
ng dng c th theo yêu cu cá bit
MCU
Microcontroller Unit
Vi điu khin
CICS
Complex Instruction Set
Tp lnh đy đ
RISC
Reduced Instruction Set
Tp lnh rút gn
SPI
Serial Peripheral Interface
ng liên kt d liu ni tip, đng b, hot đng
theo kiu Ch/t (Master/Slave)
I
2
C
Inter-Integrated Circuit
Bus dùng đ ni gia các vi mch đin t ầ


8


USART
Universal Serial Aynchronous
Receiver/Transmitter
B thu/phát ni tip di b đa nng
ISR
Interrupt Service Routine
Chng trình con x lí ngt hay Dch v x lí ngt
MAC
Media Access Control
iu khin truy nhp môi trng (mng máy tính).
Ví d: MAC address: a ch vt lí ca thit b
mng.
MIPS
Million instructions per second
Triu lnh máy trong mt giây


IDE
Integrated Development
Environment, hoc:
Integrated Design Environment
hoc:
Integrated Debugging
Environment
Là tp các phn mm h tr các công c, tin ích
đê phát trin phn mm máy tính, bao gm:
Son tho mã ngun, trình thông dch, trình biên
dch, trình g ri

ICE


In-Circuit Emulator
Là loi thit b phn cng dùng đ g ri khi phát
trin phn cng và phn mm hp nht, nh HTN.
Vid d nh Logic anlyzer, phn mm MPLAB ca
Microchip





















9



Hình 1.1 Mô hình tng quát bo mch ch
Hình 1.2 Ngun nuôi cho h máy tính
Hình 1.3 HTN xây dng t xây dng t vi x lý(Microprocessor-based) vƠ vi điu khin
(microcontroller based)
Hình 1.4 Microcontroller và các thành phn c bn, BUS kt ni bên trong.Tt c trong mt
chip
Hình 1.5 Hai kiu HTN vi 2 loi kin trúc CPU
Hình1.6 Havard CPU ARM 920T ca Amtel
Hình 1.7 Mô hình tng quát HTN-Mô hình vi các khi chc nng
Hình 1.8 Mt cách nhìn khác v mô hình tng quát HTN:Vi các khi ngoi vi và phn
mm
Hình 1.9 Kin trúc tru tng HTN
Hình 1.10 S đ khi CPU DSP-MP3.
Hình 1.11 B MP3 vi CPU BlackFin ca ANALOG DEVICES
Hình 1.12 Mt s HTN thng mi
Hình 2.1 Intel CPU 8085
Hình 2.2 Các khi chc nng ca CPU 8080/8085
Hình 2.3 Các khái nin qui chiu theo CPU Clock
Hình 2.4 Lu đ thi gian c s ca CPU 8085 (Theo tài liu ca hãng Intel)
Hình 2.5 Biu đ thi gian ca chu kì tìm lnh.
Hình 2.6 Cu hình ti thiu: CPU 8085 và to BUS h thng
Hình 2.7 CPU Bus và BUS h thng
Hình2.8 Chu kì đc đng b
Hình 2.9 BUS không đng b, hot đng đng b bi “đi thoi” gia các tín hiu điu
khin
Hình 2.10 BUS chui quay vòng (daisy chaining)
Hình 2.11 Trng tài BUS
Hình 2.12 Trng tài Bus không tp trung trong multibus
Hình 2.13 Liên kt qua bus SPI
Hình 2.14 Liên kt qua bus I2C



10

Hình 2.15 Nguyên lí ni BUS I
2
C
Hình 2.16 Ghi/đc trên BUS I
2
C
Hình 2.17 Ví d d liu thu/phát trên BUS I
2
C
Hình 2.18 Các mch logic thng dùng trong thit k k thut s
Hình 2.19 Các kiu ni đu ra, đu ra tr kháng cao
Hình 2.20 Vi mch 3 trng thái: hai trng thái logic và
trng thái th 3 HZ: đu ra b “tách” khi BUS.
Hình 2.21 Mch cht (hay nh, gi li) kiu D,
làm vic theo mc hay sn lên ca xung đng h CK. (Xem thêm chi tit mach
SN 7474).
Hình2.22 Cht 4 bit vi D-Flip/flop
Hình 2.23 Cng khuych đi (driver) cht hai chiu
Hình 2.24 Cu hình ti thiu bo mch CPU 8085, RAM/ROM/Ports
Hình 2.25 Mch in cho hình 2.24
Hình 2.26 CPU Intel x86
Hình 2.27 Bo mch vi ti thiu vi CPU 8086:BUS controller, Ngt controller, RAM
Hình 2.28 CPU 8086 timing: lnh đc
Hình 2.29 Mô hình kin trúc Havard:
BUS cho b nh chng trình: Code Bus vƠ Code Address;
BUS cho RAM d liu: Data Bus và Data Address;

SRC1, SRC2:ngun, DST: đích, lƠ các Bus ni b.
Hình 2.30 Các khi chc nng ca CPU 8051/8052
Hình 2.31 CPU 8051: EEPROM, RAM bên trong
và kh nng m rng b nh ti 128 KB (64 KB code+64 KB data)
Hình 2.32 Bo mch vi CPU 8051/8052
Hình 2.33 Các khi chc nng ca nhân 8XC251Sx
Hình 2.34 CPU 8051
Hình 2.35 Phân hoch đa ch trong CPU 8051
Hình 2.36 Bo mch vi CPU Intel 8051 và RAM, ROM m rng bên ngoài.
Hình 2.37 Mô hình mt vi điu khin kiu PSoC hay PIC kiu Vi x lí trong mt Chip

(Microprocessor-based system on a chip)


11

Hình 2.38 Vi điu khin PSoC CY8C29466
Hình 2.39 B trí võ-chân PIC 12F675
Hình 2.40 Mô hình khi chc nng PIC12F629/675
Hình 2.41 Vi điu khin PIC 16F882/883/88
Hình 2.42 Cách to bit nh c đnh bng công tc c hc hay diode bán dn
Hình 2.43 Mô hình đu vào/ra ca phn t nh
Hình 2.44 Cách t chc 1 đn v nh chun (1 byte) t các phn t 1 bit, 4bit và 8 bit
Hình 2.45 Phân loi b nh
Hình 2.46 Các loi b nh ROM
Hình 2.47 Các loi RAM
Hình 2.48 1 phn t RAM tnh
Hình 2.49 1 chip RAM 32K x 8 (32K byte)
Hình 2.50 Phn t DRAM, 1 bit DRAM và ma trn DRAM
Hình 2.51 Các cách ghi/đc/lƠm ti ca DRAM

Hình 2.52 Phân cp b nh
Hình 2.53 Mô hình hot đng ca RAM cache
Hình 2.54 S đ võ ngoài mt vi mch (chip) nh (pin-out)
Hình 2.55 S đ khi chc nng bên trong chip 16K x 1 bit
Hình 2.56 S đ thit k bng nh SRAM 16K x 8, vi Chip 16Kx1
Hình 2.57 S đ khi chc nng ca 1 chip DRAM thng mi 4164Kb
Hình 2.58 Quan h các tín hiu điu khin DRAM 4164x1 thng mi.
Hình 2.59 CPU 8080/8085 Module DRAM 64 KB toàn phn
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 thut ghép ni
Hình 2.64 Các kiu ghép ni
Hình 2.65 c d liu vào: D liu_t thit b vƠo ACC sau đó vƠo RAM
Hình 2.66 a d liu t RAM vƠo ACC sau đó ACC ra thit b
Hình 2.67 Trao đi d liu đc vƠo có điu kin
Hình 2.68 Lu đ điu khin đc d liu vƠ có điu kin
Hình 2.69 Lu đ điu khin đc d liu kiu quay vòng
Hình 2.70 Mô hình hot đng ca ngt


12

Hình 2.71 Các kiu ngt
Hình 2.72 Thit kt vi ngt cng che đc INTR ca CPU
Hình 2.73 Vector ngt và chuyn x lý ti ISR
Hình 2.74 T chc ngt vi điu khin ngt
Hình 2.75 M rng s ngt vi 2 vi mch 8259
Hình 2.76 Nguyên lí DMA
Hình 2.77 DMA và hot đng ca CPU lƠ đc lp
Hình 2.78 Ghép ni DMAC 8237 vào vi CPU 8085vƠ lu đ thi gian ca qui trình DMA
Hình 2.79 Lu đ DMA ghi d liu t RAM ra thit b ngoài

Hình 2.80 nh ngha các chơn ca cng SSP
Hình 2.68 Cng song song trên PC và gii ngha các chơn cng
Hình 2.81 Lu đ các tín hiu cng song song
Hình 2.82 Cng song song hai chiu
Hình 2.83 u ni RS 232 các loi DB9, DB 25 và DEC MMJ
Hinh 2.84 PC làm h phát trin phn mm cho HTN, phù hp tín hiu gia RS-232 cua PC
và cng SI-P ca HTN đang phát trin
Hình 2.85 Cng SI-P đn gin, dùng ngun t RS 232 ca PC
Hình 2.86 ADC và ghép vào HTN
Hình 2.87 HTN và DAC
Hình 2.88 Bài tp thit k ghép ni ADC, cng LPT vào máy tính PC
Hình 3.1 Mô hình tng quát các phn mm trên máy tính
Hình 3.2 Mô hình tng quát các kiu sp xp phn mm trên máy tính
Hình 3.3 Trng thái ca tin trình
Hình 3.4 Trin khai API qua GHT
Hình 3.4 Nguyên lí đa trình và quan h gia ch đ ngi dùng và ch đ nhơn HH
Hình 3.5 Các kiu tác v
Hình 3.6 Hu ht các loi tác v đ xuyên qua lp biu.
Hình 3.7 Biu đ thc hin mt tác v
Hình 3.8 Phân loi các gii thut lp lch thc hin tác v
Hình 3.9 Quay vòng kt hp u tiên vƠ chen ngang
Hình 3.10 Mô hình nguyên lí cho WD


13

Hình 3.12 S kin vƠ đáp ng
Hình 3.13 RTOS nhân thi gian thc vƠ RTOS đa nng
Hình 3.14 Module lp biu ca nhơn HH
Hình 3.15 Các chc nng nhơn RTOS

Hình 3.16 Các h điu hành RTOS
Hình 3.17 H thng nhúng thi gian thc
Hình 3.18 V trí cua PMTG  HTN
Hình 3.19 Mô hình các lp mng theo TCP/IP, OSI và ánh x vào HTN
Hình 3.20 Các ng dng WEB trong HTN, đt  lp phn mm ng dng
Hình 4.1 Các thuc tính chung ca phn cng ca mt HTN
Hình 4.2 Mt kiu đc t tin thit k HTN
Hình 4.3 Kch bn mô phng hiu nng khi thit k HTN
Hình 4.4 Các cu trúc kiu “4+1”
Hình 4.5 Các pha thit k HTN
Hình 4.6 Gii thut thit k máy in laser: phân hoch cng/mm
Hình 4.7 Phân hoch thit k phn cng và phn mm
Hình 4.8 ng thit k phn cng và phn mm-đng kim nghim, ti uthit k
Hình 4.9 Qui trình thit k kiu ASIC
Hình 4.10 Xây dng mô hình hình thc: Bc sàng lc s dng cách tng hp phn cng
và phn mm đ chuyn hóa xác đnh chc nng vƠo mô hình phn cng ca thit
k.
Hình 4.11 Bo mch HTN
Hình 4.12 Mi tng quan gia giá thành h thng/hiu nng
và mc đ tích hp thng/hiu nng
Hình 4.14 Quá trình biên dch thành mã maý to ra HH
Hình 4.15 nh dng mt tp thc thi ELF
Hình 4.16 Tng quát các bc to nhơn HH mi t mã ngun
Hình 4.17 Tng quát các bc to nhơn HH mi t mã ngun và kiu khi đng
Hình 4.19 Các loi công c h tr g ri
Hình 4.20 Kt qu hin th ca g ri
Hình 4.21 Liên kt gi h phát trin và h đích đang đc g ri


14


Hình 4.22 Môi trng phát trin chéo: h phát trin ậ công c - HTN đích
Hình 4.23 H thng nhúng : phn mm nhúng và phn cngnhúng
Hình 4.24 H phát trin HTN
Hình 4.25 Qui trình phát trin phn mm đích đ np vƠo HTN đích.
Hình 4.26 Qui trình phát trin phn mm cho HTN
Hình 4.27 S đ đn gin h thng và ánh x b nh vào EEPROM hay FLASH ca HTN
đích.
Hình 4.28 Vai trò ca trình loader
Hình 4.29 Phn program header table ch ra các phơn đon đc s dng lúc chy chng
trình (run time) và phn header lit kê tp các phn nh phân : .text: mư chng
trình, .rodata: d liu ch đc, .data: d liu đc/ghi đc.
Hình 4.30 nh x thc thi chuyn vào b nh ca h thng
Hình 4.31 Ví d tng quan v boostrap h thng
Hình 4.32 Trình t boot boot image chy t ROM
Hình 4.33 Trình t boot thc hin  RAM sau khi image đư đc copy t ROM vào RAM
Hình 4.34 Chy image sau khi đư ti xung h đích t h pht trin (PC)
Hình 4.35 Tin trình khi đng phn mm HTN


15

.  
1.1 
Nhìn li nhng nm 70 th k trc, x lỦ thông tin thng phi s dng các máy tính ln hay
máy tính mini (ví d dòng máy mini PDP 11 ca hãng DEC mt h thng thng tr trong truyn
thông). Cho ti nhng nm 80, khi vi x lỦ vƠ máy tính cá nhơn (PC đ bƠn vƠ xách tay) ra đi,
máy tính tr thành công c đc dng cho x lý thông tin bi kh nng tính toán nhanh, gn nh
vƠ di đng linh hot. Giai đon tip theo là kh nng ch to vi mch kích thc vƠi trm micro
mét và nano mét ca nhng nm chín mi, đư thúc đy xu hng nh hóa (miniaturization) và

đa dng các dòng vi x lý, phát trin mnh m. Các b vi x lỦ đa nng vƠ s xut hin các vi x
lý chuyên bit (ASIC- application-specific integrated circuit) đc ch to vi s lng ln cha
tng thy. Vic s dng các b vi x lý chuyên bit đ to ra các thit b chuyên x lý mt hay
mt vƠi bƠi toán k thut, to ra mt nghành công ngh mi, gi là công ngh nhúng. Sn phm
ca công ngh nhúng này là các h thng nhúng.
Vy h thng nhúng (HTN- Embedded system) là gì ?
Có nhiu đnh ngha v HTN, nhng nu ta ly tiêu chí mô t HTN làm cái gì và s dng nó nh
th nào, thì có th nói v HTN nh sau:
H thng nhúng là mt thut ng đ ch mt h thng có kh nng hot đng t tr đc
nhúng vào trong mt môi trng hay mt h thng khác qui mô phc tp hn. ó lƠ các h thng
tích hp c phn cng (là mt h thng máy tính đc xây dng trên c s s dng vi x lý -
microprocessor-based system) và phn phm nhúng trong phn cng đó, đ thc hin các bài
toán chuyên bit.
Hay theo đnh ngha ca t chc IEEE thì h thng nhúng là mt h tính toán (máy tính
s) nm trong (hay c nhúng vào) sn phm khác ln hn vƠ rng thông thng n đi vi
ngi s dng. Nói rng ra, vƠ đn gin hn, khi mt h tính toán (có th là PC, IPC, PLC, vi x
lý, vi h thng (microcontroller), DSP v.v ) đc nhúng vào trong mt sn phm hay mt h
thng nƠo đó vƠ thc hin mt s chc nng c th ca h thng đó, thì ta gi h tính toán đó lƠ
mt h thng nhúng. Tuy nhiên tht không d gì đnh ngha cho tht đúng v HTN, đnh ngha
trên rt ít nói ti công ngh vƠ cng rt đn gin. Hin nay cha có đnh ngha nƠo tht tha đáng
v HTN, ví d nu ly chc nng x lý thông tin, thì HTN là mt phn x lý thông tin nhúng
trong các h thng ln hn vƠ phc tp hn, hay cng có th là mt h thng đc lp vn hành t
đng. Ví d gn gi ta có: máy tính cá nhơn, hay máy ch, là mt h thng phc tp đc xây
dng t các thành phn hot đng đc lp nhng đc đng b vi nhau. V điu khin đ ha,
có vi điu khin rt mnh x lỦ đ ha, v điu khin trên đa cng có vi điu khin chuyên dng
đ x lý tín hiu, ghi/đc d liu t đa t tính theo yêu cu ca h điu hƠnh, v mng cng lƠ
mt vi điu khin tinh vi x lý tín hiuầ ó lƠ các h thng con đc nhúng trong h thng máy
tính nói chung. Mc dù vy ta cng s nêu ra đơy mt s đim chung v HTN.

1.2 



16

 hiu rõ hn v HTN, ta nêu ra mt s đc đim đ nhn bit v mt h thng nhúng:
 Là mt kiu máy tính ng dc bit, rt gii hn v phn cng và phn mm khi so
sánh vi các máy tính đa nng, nh máy tính cá nhơn, máy ch, siêu máy tính. iu đó nói
lên rng hiu nng x lỦ, nng lng tiêu th, b nh, các phn cng khác đu hn ch. Còn
phn mm hn ch, hay phn mm là c đnh, có ngha h điu hƠnh đc thit k phù hp
vi các x lỦ đư đnh. Hin nay h điu hƠnh thng s dng là h điu hƠnh đa nhim (nh
DOS 6.X h tr đa nhim trên các loi HTN dòng PC 104), hay h điu hành thi gian thc.
Nu không có h điu hƠnh, thì cng lƠ mt kiu chng trình điu khin chung (monitor)
nƠo đó. Phn mm vit ra không có các phn mã có mc đ tru tng hay có cng  mc
thp. Mã thc thi (gm h điu hành và các ng dng) đc np vào b nh ROM. Nhìn
chung mã thc thi có kích thc nh và ti u vì ROM có dung lng nh. Tuy nhiên vi s
phát trin nhanh chóng ca công ngh, cách nêu trên có th thay đi, bi s có các HTN rt
tinh xo và mc đ phc tp rt cao, b nh có th đn vài chc mega bytes.
 c thit k  thc hin mt hay vài ng dnh, chuyên bit (Application
specific), ví d các thit b nhúng công nghip nh robot thuc loi này. Tuy nhiên có nhng
thit b nhúng khác nh các PDA, đin thoi di đng, là các HTN có kh nng thc hin
nhiu chc nng hn. Hay các Tivi k thut s li có th thc hin các ng dng tng tác
vi màn hình cm ng, v.vầ Tuy nhiên xu hng hin nay là to ra các HTN kh trình có
giao din kt ni vi mt h phát trin khác đ nâng cp phn mm.
 HTN tng tác vi môi trng ng dng qua nhiu phng thc:
 Qua các b cm bin (sensor), ghép ni vào HTN bng dây dn, hay không dây;
 Phát trin các giao thc truyn tin riêng bit, hay theo các giao thc chun đ trao
đi thông tin vi các thit b khác, có th có h tr ni mng LAN;
 HTN thuc loi thit b thông minh t phn ng (reactive), b đng nhng tng
tác liên tc vi môi trng vƠ có đáp ng kp thi vi nhng tin trin (s kin)
mƠ môi trng đó xác lp.

 Tng tác ngi-máy rt đn gin nu có vì HTN chy đc lp và thông tin vi h
thng ln hn lƠ chính. NgƠy nay xu hng WEB hóa giao din tng tác lƠ ph
bin, ví d các thit b kt ni mng Internet nh ADSL dòng SOHO (Small
Office-Home Office), có WEB đ làm cu hình và qun tr. Tng t, các HTN
công nghip cng phát trin theo xu hng nƠy đ d qun tr t trung tơm điu
khin.
 HTN hoc lp, do đó các đc đim sau đơy:
  tin cy, lí tng là không có s c hng hóc.
 Bo trì: thi gian bo trì nhanh chóng.
 Có tính sn sàng cao, là kt qu ca s tin cy và bo trì.


17

 An toàn: nu có s c xy ra, HTN không gây ra nhng tác hi khác ca toàn h
thng.
 An ninh: d liu ca HTN đc bo mt, truy nhp phi có xác nhn (ví d, HTN
là các thit b truyn thông, SOHO).
 HTN là mt kiu máy tính có yêu cu v ch tin cy rt cao, hoc
ng khc nghit v nhit đ (cao, hay rt thp), đ m cao, đ rung đng
ln, nhiu sóng đin t v.vầ Ví d các máy tính trong công nghip, các thit b truyn thông,
trm BTS chng hn, hay các máy tính điu khin trên máy bay (fly by wire)ầ
 Phn ln các h thng nhúng hot đng vi s ràng buc thi gian: yêu cu có thi gian
cho (đáp ng) đu ra nhanh, đúng thi đim, trong mi tng quan vi thi đim xut hin
ca (s kin) đu vào. Kiu hot đng nh vy gi là to đáp ng theo thi gian thc. Thi
gian thc có th chia ra làm hai kiu:
 Nhy cm vi thi gian (time- sensitive): s kin ch đc x lý trong mt khung
thi gian nht đnh;
 Thi gian ti hn (time critical): khi có s kin, h thng phi phn ng ngay,
chuyn nhanh nht đn mư chng trình ng vi s kin đó đ x lý, nói cách

khác trong mt ca s thi gian cho phép, x lý phi đc thc hin và phi có
đáp ng đu ra. Ví d nu vòng phn hi trong các h có điu khin  đó HTN lƠ
b điu khin chy gii thut điu khin không đ nhanh (x lý, tính toán quá lâu),
h thng tr nên không n đnh.
 Có hiu nng cao. Các s đo sau đơy se phn ánh đc tính này:
 S dng nng lng thp và hiu qu. Có th thy đim này  các thit b di đng.
 Mã phn mm có kích thc rt ti u, vì mư phi cài toàn b trên HTN.
 Thi gian x lý tác v (run-time) phi nhanh, s dng ít tài nguyên phn cng (vì
liên quan ti tiêu hao nng lng).
 Trng lng nh. ơy lƠ mt trong nhng lc chn khi mua mt HNT.
 Giá thành rt cnh tranh. Mun vy thit k và s dng phn cng, phn mm cn
quan tâm ti hiu qu.

Di đơy lƠ các ví d v các HTN nhìn  góc đ s dng:
c ng dng
Thit b nhúng
Ô tô
ánh la đin t, iu khin đng c, h thng phanh, h s ầ
in t tiêu dùng
Tivi analog, Tivi s, CD, DVD, VCR,ầ
PDA, in thoi di đng, CAMCODER, GPS, t điu hòa, t


18

lnh, lƠ vi sóng ầ
Công nghip
Robot, dây chuyn sn xut t đng, SCADA agentsầ
Y t
Máy thm tách, máy pha-lc, máy th, máy tr tim, máy quét ct

lát, rt nhiu thit b y t hin điầ
Mng thông tin (WAN, LAN, thoi)
B đnh tuyn, gateway, chuyn mch mng, các thit b truyn
thông-mng, trm chuyn tip, BTS di đng ầ
Vn 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 lnh vc khác: an ninh, quc
phòng, hàng không, hàng hi
c hp nht trong rt nhiu khí tài hin đi ca tt c các binh
chng .
1.3   HTN
HTN thc t là mt loi máy tính dùng đ x lỦ thông tin đư  dng s. HTN có th là
mt h thng đc lp nh mt thit b tích cc trong mô hình điu khin, tc HTN là mt
regulator s, thc hin các chc nng ca PID regulator, khi các chc nng nƠy đc th hin
bi thut toán và chuyn hóa  dng mư chng trình trong HTN. Trong khi đó HTN li là mt
phn ca mt qui trình công ngh trong công nghip. Nh trên đư lit kê các đc đim chung mà
các h thng nhúng thng có, t nhiên ta có th rút ra đc nhng yêu cu cn có trên mt h
thng nhúng.
1. Kh ng vi s kin bên ngoài (t các tác nhân b kim soát) phi nhanh
nhy, kp thi, tc là kh nng theo thi gian thc:
 Các tác v ng ràng buc bi thi hn chót (deadline);
 Thi gian phát hin li phi rt ngn (ti thiu);
 Khi chy các chu trình vòng lu khin bng phn mm phng
i hn;
2. Có kh nng lƠm  ng khc nghit.
3. Có giá thành thp hay hiu qu hong/giá thành hp lí.
4. c nh gn, nh, d mang d vn chuyn, lp đt.
5. Tiêu th ng thp, kh nng s dng ngun pin, c qui (tt nhiên ph thuc vào
dung lng ca pin, c qui).

6. Hong tin cy, chu li cao
 Tin cng dch v yêu cu i hn sau thi gian t t
0
n t;


19

 Cho hng s ca t s s c trong thi gian 1 gi ng h là e (e/h), thì biu
din t s s c là R(t)=exp
(-e(t-t0))
  i gian gia 2 ln s c (Mean
Time To Failure- MTTF) s là 1/R(t);
  tin cy cao nt ~10
-9
s c /gi.
 Tính sn sàng cao: Nu thi gian sa cha s c trung bình là MTTR, thì tính
sn sàng (availability) A=MTTF/(MTTF+MTTR).
7. An toàn và bo mt.
8. Kh p phn mm và d phòng nâng cp phn cng (m rng qua khe
cm d tr, ví d các thit b mng thng có tính nng nƠy).

1.4 
Nh đư nêu trong đnh ngha ca HTN, thì HTN có kin trúc ca mt máy tính s, do vy s
không có gì khác bit khi mô t mô hình kin trúc ca HTN nói chung. Có khác chng lƠ  chi
tit ca tng HTN c th.
1.4.1 Mô hình cu trúc phn c
Di đơy ta nêu ra mô hình tng quát ca máy tính theo nguyên lí Von Neumman. HTN cng
chia s kin trúc này trong mt s trng hp. Mô hình cho thy các khi chc nng c bn cn
có. Trong thc t có nhng CPU nhúng có kin trúc c th khác nhau, nhng khi mô t các khi

chc nng, thì hoƠn toƠn thng nht.
Mô hình l x lý trung tâm (Central Processing Unit  CPU) là khi chc nng c bn
nht đ to nên mt h vi x lý, HNT hay máy tính cá nhân (Personal Computer  PC).
 CPU thc hin chc nng x lý d liu theo nguyên tc thc hin chng trình máy
tính cài trong b nh ROM hay np vào b nh RAM. Vic thc hin nh sau: CPU
đc mã lnh (OPCODE) t b nh (ROM hay RAM), sau đó,
 Gii mã lnh, to các tín hiu (xung) điu khin tng ng vi mã lnh đ điu
khin hot đng ca các khi chc nng khác trong CPU vƠ bên ngoƠi CPU.
 Tp các tín hiu to ra BUS ca CPU. Khi kt hp vi các vi mch dn /tách
kênh và khuych đi, các mch gii mư,ầ s to ra BUS h thng. BUS h thng
cung cp các tín hiu cho các vi mch tích hp vào CPU (ROM, RAM, I/O
module) to thành bo mch chính (CPU board).
 Thc hin tng bc các thao tác x lý d liu đư đnh ngha trong mư lnh.
 Ghi li kt qu thc hin lnh.
 B nh chính (ROM/RAM) đc t chc t các t nh đn, kép. Theo chun ca
IBM/PC t nh dài 1 byte (8 bits). B nh này gm các chip nh
ch đc ROM (Read Only Memory) và các chip nh truy xut ngu nhiên RAM
(Random Access Memory) có tc đ truy cp nhanh. B nh đc s dng đ cha


20

các chng trình vƠ các d liu cn x lỦ. Các chng trình ng dng và d liu có
th đc cha  ROM hoc RAM, các kt qu trung gian hay kt qu cui cùng ca
các thao tác x lý có th đc cha trong các thanh ghi đa dng hoc trong RAM.

B vi x lí trung
tâm
(CENTRAL
PROCESSING

UNIT)
ng h thch
anh nhp chun
Ngun nuôi mt
chiu
H thng đng dây d liu (DATA BUS)
H thng đng dây điu khin (CONTROL BUS)
H thng đng dây đa ch (ADDRES BUS )
B nh Ghi/c
(RAM)
B nh ch c
(ROM)
Ghép ni ra (O) Ghép ni vào (I)
BUS
h
thng

Hình 1.1- Mô hình tng quát bo mch ch
 Các mch ghép ni vào/ra (I/O interface) là các mch đin t, thc hin các gii pháp k
thut thích ng tín hiu, tr khángầ cho phép CPU trao đi d liu vi các thit b ngoi
vi nh bƠn phím, mƠn hình, máy in, các b chuyn đi s-tng t DAC (Digital/Analog
Converter), chuyn đi tng t-s ADC (Analog/Digital Converter), các mch vào/ra d
liu dng s DO (Digital Outputs), DI (Digital Inputs)ầ
 H vi x lý còn có mt mch to xung nhp gi là CPU Clock. B to xung nƠy đc điu
khin bng mt mch thch anh có tn s thích hp vƠ đm bo tn s làm vic n đnh,
vi tn s chính xác cao. CPU có mt chân phát xung cho các vi mch còn li, gi lƠ đng
h h thng (System Clock), đng h này ni ti tt c các vi mch điu khin chính trên
bo mch, đng b toàn b hot đng vi CPU.
 Mt khi ngun nuôi (Power Supply) cung cp nng lng cho h thng t mng đin
li, hay s dng pin. B ngun ca các h vi x lỦ thông thng là b ngun xung vi

k thut đóng-ngt dùng linh kin bán dn công sut (Switching Power Supply), va gn
nh, công sut đ ln, hiu sut cao.


21


Hình 1.2-Ngun nuôi cho h máy tính

 Phân loi trên c s vi mch
Tuy nhiên khi đ cp ti cu trúc ca HTN đc xây dng trên công ngh vi mch, có th
có hai loi khác bit:
 và  khác nhau theo vài cách, 
  s dng mt vi x lí, cn hp nht nhiu thƠnh phn vƠo đó: b nh, I/O,
COM ầ vƠ do vy vi x lí lƠ trung tơm ca c h thng. Trong khi đó vi điu khin đc thit k
theo tiêu chí: tt c đc tích hp trong mt vi mch, đc bit lƠ các giao tip I/O, tc lƠ s không
cn thêm thƠnh phn nƠo vƠo đó. Li ích lƠ  ch  và 
 rt nhiu. Tuy nhiên do phn cng hn ch, nên  cng phi đc xác
đnh.
H thng nhúng da trên
b vi x lý trên bo mch
(Microprocessor-based
Embedded System)
H thng nhúng vi
u khin trên bo mch
(Microcontroller-based
Embedded System)
 Có CPU đc lp, có th lƠ CPU đa
nng ph bin (Intel 8080/8085,
Motorola 6800ầ),

 Có RAM, ROM, đnh thi , I/O
đc lp,
 Kh nng m rng RAM, ROM,
I/O tùy ý,
 a nng, đt tin.
 Kin trúc gn nh mt máy tính
 CPU dng lõi chuyên bit, RAM,
ROM, đnh thi, I/O trong mt vi mch
đn,
 RAM, ROM có dung lng c đnh,
I/O đ cho mc đích s dng,
 n mc đích, ng dng xác đnh,
tiêu hao ít nng lng, giá c hp lí
cho ng dng nhúng.
 Kích thc nh, gn.



22

nhng có kích thc nh.
Thit k ch
 Cn phi có các vi mch RAM,
ROM hp thành t bên ngoài vi mch.
 Không th kt ni vi ngoi vi
ngoi vi, cn có thêm các vi mch h
tr cho chc nng nƠy.
 Tuy nhiên nng lc tính toán
mnh.


Thit k ch
 c thit k  có tt c trong
mt Chip !
 Nng lc tính toán đc thit k ti
u cho ng dng xác đnh, các ng
dng chuyên bit.
 Rt phù hp đ xây dng các HTN
 Tit kim gian thit k.



Hình 1.3 HTN xây dng t xây dng t vi x lý(Microprocessor-u khin
(microcontroller based)


23


Hình 1.4 Chip 
.
1.4.2 Kin trúc ca CPU
Phn nhiu các tài liu khi đ cp ti thit k HTN, đu dành mt s ch đ v kin trúc và cách
thit k ch to CPU. ơy lƠ mt vn đ chuyên và rt sâu, tài liu này s không dn xut. Tài
liu ch gii hn  gii thiu các kiu CPU có th s dng đ thit k HTN. Các kiu CPU này rt
ph bin trên th trng, rt đa dng vi nng lc x lý khác nhau và phù hp cho mi loi ng
dng nhúng. Di đơy lƠ mt trong các quan đim nhìn nhn CPU:
 Tp lnh: có th lƠ CISC hay RISC, trong đó RISC lƠ ph bin.
 Hot đng theo kiu Von Neumman, ví d đin hình nh hình v trên, trong đó H
thng BUS đa ch và BUS d liu, BUS điu khin chung cho toƠn b h thng, b
nh chia s chung cho toƠn h thng vi vùng mã lnh (code) và d liu (data) trên

cùng không gian đa ch b nh và BUS d liu không th truyn đng thi mã lnh và
d liu cùng mt thi đim. Quá trình thc hin mt lnh máy nh sau:
1) c mã lnh t ROM/RAM qua BUS d liu vào CPU, gi mư đ xác đnh làm
gì tip theo;
2) c d liu tip theo là mt phn ca lnh (operands) nu có;
3) Thc hin lnh khi đư đc ht các operands ca lnh;
4) Lu kt qu vào thanh ghi hay ra RAM.


24

Trong qua strình thc hin lnh, BUS d liu là kênh duy nht đ trao đi d liu, do
vy ta nói BUS d liu có th b “bo hòa”, hiu nng tính toán b hn ch. Vi các
CPU hin đi BUS d liu đc ci tin rt nhiu, đc bit là giao thc BUS vƠ đng
h BUS đc nơng cao đ ci thin hn ch nói trên.
 Và hot đng kiu Harvard vi mt s đc đim khác bit :
 Howard Aiken (1900-1973) khi xây dng máy tính vi các relé đư tách các b nh
d liu (RAM) và b nh chng trình (NVM Non Volatile Memory: ROM,
FLASH) vi các bus riêng r đ truy cp vào b nh d liu (RAM) và b nh
chng trình cha phn mm nhúng (h điu hành, Device drivers, ng dng
nhúng ).
 Bus cho lnh và Bus cho d liu tách bit, điu hƠnh đc lp nên lnh và d liu có
th đc đa ra cùng mt lúc, ci thin tc đ so vi thit k vi ch mt bus.
 Phân bit rõ ràng b nh d liu và b nh chng trình, CPU có th va đc mt
lnh, va truy cp d liu t b nh cùng lúc.
 Do các BUS đc lp, CPU có kh nng tìm trc các lnh (instruction prefetch),
nên vi kin trúc Harvard chng trình chy nhanh hn, bi vì nó có th thc hin
ngay lnh tip theo khi va kt thúc lnh trc đó.
 Tuy nhiên v kin trúc có phn phc tp hn trong phn cng, vi 2 BUS đc lp
gơy khó khn nht đnh cho các ngôn ng lp trình cp cao (ví d nh C,ầ )

nhng cho hiu qu hn cho các ng dng nhúng. Là loi ph bin đ thit k các
HTN.


Hình 1.5 Hai kiu HTN vi 2 loi kin trúc CPU


25

Ví d Havard CPU ARM 920T, là loi CPU ci tin vi mt nh cache cho lnh và mt cache cho d
liu.

Hình1.6 Havard CPU ARM 920T ca Amtel
1.4.3 Mô hình tng quát ca mt HTN
 Các khi ch
- Môi trng hot đng: ni s dng HTN,
- Chp hành: là các thit b công ngh,
- Cm bin: thit b đc bit ghi nhn thông tin công ngh (v trí, vòng quay, tc đ,
nhit đ, áp sut, kích thc (cao, dƠi, sơu) ầ) ,
- Ghép ni: là các thit b phi hp, chuyn hóa các thông tin t cm bin thành tín
hiu đin đ s hóa,
- Các b s hóa (A/D) vƠ tng t hóa (D/A),
- Ghép ni vi các h thng khác: liên kt các HTN khác, mng d liu, Trung tâm
điu khin SCADA, ầ
- Ghép ni BUS h thng
- CPU, RAM, ROM (FLASH),

×