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

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

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

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

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



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

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



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

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

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

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;

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 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

đ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 

 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

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).

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

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ầ),

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

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),


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status