Giáo trình Hệ thống nhúng - Công nghệ thông tin | Trường Đại học Quy Nhơn

Giáo trình Hệ thống nhúng - Công nghệ thông tin | Trường Đại học Quy Nhơn được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

MỤC LỤC
Chương 1 Tổng quan…………………………………………………………………….……1
1.1 Mở đầu…………….……………………………………………….………………….…1
1.2 Khái niệm về hệ nhúng…………………………………………………..……….….…...1
1.3 Vai trò của hệ thống nhúng trong sự phát triển của lĩnh vực công nghệ cao…….…….…3
1.4
Đặc tính, phương pháp thi
ế
t kế và xu th
ế
phát tri
n củ
a các h
nhúng…………..…...4
1.5
Môi tr
ườ
ng thông minh……………………………………………………………….6
1.6 Các h
điề
u hành nhúng và ph
n m
m nhúng………………………………..………6
1.6.1 H
điề
u hành nhúng…………………………………………………...…………6
1.6.2 Ph
n m
m nhúng………………………………………………………...………7
Chương 2 Lý thuyết thiết kế hệ thống nhúng………………………………….…………8
2.1 Quy trình thiế
t kế
Top-Down…………………………………………………………8
2.1.1 Pha phân tích……………………………………………………………..….…...8
2.1.2 Pha thiết kế nguyên lý………………………………………………….…….…10
2.1.3 Pha thiết kế kỹ thuật……………………………………………………..….…..11
2.1.4 Pha xây dựng hệ thống…………………………………………………..……...11
2.1.5 Pha kiểm tra………………………………………………………………..…...12
2.2 Quy trình thiết kế Bottom-Up……………………………………………………….12
2.3
Đặ
c tả h
thố
ng………………………………………………………….…….….….14
2.3.1 Khái ni
ệm
đặ
c t
(specification)………………………………….………..…...14
2.3.2
Tạ
i sao c
ần
đặ
c t
ả………………………………………………….…….….…...14
2.3.3
Phân lo
i các k
ỹ thu
t
đặ
c t
ả………………………………………….………….15
2.3.4
Ứng d
ng và
ư
u vi
t kh
sử d
ng
đặ
c t
……………………………….…….….15
2.3.5 Phươ
ng pháp
đặ
c t
s
d
ng “Máy tr
ng thái h
u h
n FSM”……………...16
2.4
Các phương pháp bi
u diễ
n thu
t toán……………………………………………..…17
2.4.1
Ngôn ng
t
nhiên………………………………………………………...…….18
2.4.2 Dùng l
ư
u
đồ……………………………………………………………….……18
2.4.3 Mã gi
ả……………………………………………………………………….…..21
Chương 3 Cấu trúc phần cứng……………………………………….……………………23
3.1 Cấ
u trúc t
ng quát c
a h
th
ng nhúng…………………………………….……….23
3.1.1 Ki
ế
n trúc c
ơ
bản……………………………………………………………….....23
3.1.2
C
u trúc ph
n c
ng…………………………………………………………......23
3.2
Mộ
t s
n
n tảng ph
n c
ng thông d
ng………………………………………….…...24
3.2.1
V
i
điề
u khiể
n Atmega8……………………………………………………..…..24
3.2.2 Kit Arduino Uno R3…………………………………………………………....29
3.2.3
Vi điều khiển MSP430G2553…………………………………………………...33
3.2.4 Kit MSP430 Launchpad……………………………………………………...….36
3.2.5 Vi điều khiển PIC18F2550………………………………………………..…….38
3.2.6 Kit PIC18F2550 Pinguino…………………………………………………..…...40
Chương 4 Phần mềm nhúng………………………………………………...……………..43
4.1
Đặ
c đ
i
ểm ph
n m
m nhúng………………………………………………………….43
4.2
Lập trình nhúng với ngôn ngữ Arduino………………………………………………..43
4.2.1 Cấu trúc………………………………………………………………………...….43
4.2.1.1 setup().…………………………………………………………………….…43
4.2.1.2 loop()………………………………………………………………………....44
4.2.1.3 Cú pháp mở rộng…………………………………………..…………………45
4.2.1.4 Toán tử số học………………………………………………….….…………48
4.2.1.5 Toán tử so sánh…………………………………………………..…………..50
4.2.1.6 Toán tử logic…………………………………………………….…………...50
4.2.1.7 Toán tử hợp nhất…………………………………………………….….…....50
4.2.1.8 Cấu trúc điều khiển………………………………………………….…..…...51
4.2.2 Giá trị…………………………………………………………………………..….59
4.2.2.1 Hằng số…………………………………………………………….………...59
4.2.2.2 Kiểu dữ liệu……………………………………………………….……….....65
4.2.2.3 Chuyển đổi kiểu dữ liệu………………………………………….……..……73
4.2.2.4 Phạm vi của biến và phân loại biến………………………………….……….74
4.2.2.5 Hàm hỗ trợ sizeoff()……………………………………………………...…..78
4.2.3 Hàm và thủ tục………………………………………………………………….....79
4.2.3.1 Nhập xuất Digital……………………………………………………...……79
4.2.3.2 Nhập xuất Analog……………………………………………………..…....81
4.2.3.3 Hàm thời gian………………………………………….…….….…….……85
4.2.3.4 Hàm toán học………………………………………….……………...…….88
4.2.3.5 Hàm lượng giác………………………………………….……………..…...93
4.2.3.6 Sinh số ngẫu nhiên…………………………………………………...…..…93
4.2.3.7 Nhập xuất nâng cao………………………………………………………....96
4.2.3.8 Bits và Bytes………………………………………………………………..99
4.2.3.9 Ngắt………………………………………………………………….....…102
Chương I: Tổng quan
Bài giảng lập trình nhúng 1
Chương 1: T
NG QUAN
1.1
Mở
đầ
u
Trong s
phát tri
n mạnh m
c
a khoa học thu
t v
i n
n kinh t
ế
trí thức và xu
h
ướ
ng h
i nhập toàn c
u nh
ư
hi
n nay, th
ế
gi
i Vi
t Nam
đ
ang th
c hi
n vi
ệc
kế
t h
p
gi
a các ngành thu
c l
ĩ
nh v
c ng ngh
cao trong m
t Khoa ho
c c
ơ
s
đ
ào
tạo
.
Đ
ó
l
ĩ
nh vực khoa h
c d
ướ
i 3 ng
n cờ: Máy tính,
Điệ
n t
- Vi
n thông
Điều
khi
n t
độ
ng
ta th
ườ
ng g
i “3 C” (Computer Communication - Control).
th
nói, các quá
trình s
n xu
t qu
n hi
n nay nh
ư
: các h
th
ng
đ
o l
ườ
ng
điều
khi
n t
độ
ng trong
s
ản xu
t công nghi
p; các h
th
ng di
độ
ng không dây tiên ti
ế
n,
các h
th
ng thông tin
v
tinh, các h
thố
ng thông tin d
a trên Web, chính ph
điệ
n t
ử,
th
ươ
ng m
i
điệ
n t
, các c
ơ
s
d
li
u c
a nhi
u ngành kinh t
ế
c
a Qu
c gia, các h
th
ng thi
ế
t b
Y t
ế
hi
n
đại, các
thi
ế
t b
đi
ện tử
dân d
ụng, ...
đều là s
n ph
m c
a s
k
ết
hợ
p gi
a các l
ĩnh v
c khoa h
c trên.
Hiệ
n nay chúng ta
đ
ang
th
i
đạ
i h
u PC sau giai
đoạ
n phát tri
n c
a máy tính
lớ
n
(Mainframe) 1960-1980, s
phát triển c
a PC-Internet giai
đoạ
n 1980-2000.
Giai
đoạ
n h
u PC-Internet này
đượ
c d
đ
oán t
n
ă
m 2000
đế
n 2020 giai
đoạ
n c
ủa
môi
tr
ườ
ng thông minh h
th
ng nhúng c
t lõi
đ
ang làm nên làn sóng
đổ
i m
ới
trong
công ngh
thông tin nói riêng l
ĩ
nh v
c công ngh
cao “3C”, nói chung.
Một
th
c t
ế
khách quan th
tr
ườ
ng c
a các hệ th
ng nhúng l
n gấp kho
ng 100 l
n th
tr
ườ
ng PC,
trong khi đó chúng ta m
i nhìn thấy b
n
i c
a công ngh
thông tin PC
Internet còn
ph
n chìm c
a công ngh
thông tin chiếm 99% s
processor trên toàn
cầ
u này n
m trong
các h
nhúng thì còn ít đư
c bi
ế
t
đế
n
.
S
ức
đẩ
y c
a công ngh
đư
a công nghệ vi
đ
i
n tử, công nghệ vi
điệ
n, công
ngh
sinh h
c h
i t
tạ
o nên các chip c
a công ngh
nano, n
n t
ng cho nh
ng thay
đổ
i
c
ơ
b
n trong l
ĩ
nh v
c công ngh
cao 3C, s
c kéo c
a th
tr
ườ
ng
đ
òi h
i các thi
ết
bị
ph
i
nhi
u ch
c n
ă
ng thân thiện v
i ng
ườ
i dùng, m
c
độ
thông minh ngày càng c
i
thi
n
đư
a
đế
n vai trò tầm quan tr
ng c
a các h
th
ng nhúng ngày càng
cao trong n
n
kinh t
ế
qu
c dân.
Phát tri
n các h
nhúng ph
n mềm nhúng qu
c sách c
a nhiều qu
c gia trên
th
ế
gi
i, nh
t giai
đoạ
n h
u PC hiện nay.
n
ướ
c ta
đ
áng tiếc l
ĩ
nh v
c y lâu nay
đ
ã
b
lãng quên, do vậy c
n nh
ng
đ
i
u ch
nh phù h
p trong chi
ế
n l
ượ
c phát
tri
n
để
th
theo k
p, rút ng
n kho
ng cách t
t h
u
đố
i v
i các n
ướ
c trong khu vực
và trên th
ế
gi
i
trong quá trình h
i nh
p n
n kinh t
ế
toàn c
u không thể tránh kh
i hi
n
nay.
1.2
Khái ni
m v
h
nhúng
H
th
ng nhúng (ti
ế
ng Anh: Embedded system) m
t thu
t ngữ
để
ch
m
t
th
ng
kh
n
ă
ng t
tr
đượ
c nhúng vào trong m
t môi tr
ườ
ng hay một h
th
ng m
.
Hệ
th
ng
nhúng có vai trò
đả
m nhận m
t phần công vi
c c
th
c
a h
th
ng mẹ.
Hệ
th
ng nhúng
th
một h
th
ng ph
n cứng ng th
một h
th
ng ph
n
m
m
.
(Wikipedia, 2010)
Chương I: Tổng quan
Bài giảng lập trình nhúng 2
Ví d
quanh ta r
t nhi
u s
n phẩ
m nhúng nh
ư vi sóng, n
i cơm
điệ
n,
điề
u
hòa,
điệ
n tho
i di
độ
ng, ô tô, y bay, tàu thủy, các
đầ
u
đ
o, c
ơ
cấu ch
p hành thông
minh v.v... ta th
thấy hi
n nay h
thống nhúng m
t
mọi lúc m
i n
ơ
i trong
cu
c s
ng c
a chúng ta
.
Hình 1.1 Một số ví dụ
v
ề các th
ng nhúng thông dụng
Các nhà th
ng trên th
ế
gi
i
đ
ã th
ng
đượ
c r
ng s
chip vi x
lý
trong các
máy PC các server, các mạ
ng LAN, WAN, Internet ch
chi
ế
m kho
ng 1% t
ng
số
chip
vi x
trên th
ế
gi
i, 99% s
vi x
còn l
i nằm trong các h th
ng
nhúng
.
Như
vậy ng ngh
th
ông tin
không ch
đơ
n thu
n PC, m
ng LAN, WAN,
Internet ph
ần mềm quản ...
nh
ư
nhi
u ng
ườ
i th
ườ
ng ngh
ĩ
.
Đ
ó ch
b
n
i c
a m
t
tả
ng
b
ă
ng chìm
.
Phầ
n chìm c
a công ngh
thông tin chính các ứng d
ng của các hệ
nhúng có
m
t trong mọ
i ngành ngh
c
a
đờ
i s
ng h
i hi
n nay.
Các h
nhúng
đượ
c tích h
p trong
các thiết b
đ
o l
ườ
ng
điề
u khi
n t
o nên
đầ
u não linh h
n c
a sản
ph
m
. Trong các
h
nhúng, h
th
ng đ
iề
u khi
n nhúng
đ
óng m
t vai trò h
ế
t sức quan
tr
ọng
.
Hệ
điề
u khiển nhúng h
th
ng mà máy tính được nhúng vào vòng
điề
u khi
ển củ
a
s
n ph
m nh
ằm
đi
u khi
n m
t
đố
i t
ượ
ng,
đi
ều khi
n m
t quá trình công nghệ
đ
áp
ng các
yêu c
u
đặ
t ra.
Hệ
th
ng
đi
ều khi
n nhúng l
y thông tin t
các c
m bi
ế
n, x
tính toán các
thu
t đ
iề
u khiển và phát tín hi
u
điề
u khi
n cho các c
ơ
c
u ch
p hành
.
Khác v
i các h
th
ng
điề
u khi
n c
điể
n theo nguyên th
ủy l
c, khí nén, r
ơ
le,
m
ch t
ươ
ng t
, h
đi
ều khi
n nhúng h
th
ng
điề
u khi
n s
đượ
c hình thành t
nhữ
ng n
ă
m 1960 đến nay
.
Tr
ướ
c
đ
ây c h
đ
iề
u khi
n s
th
ườ
ng do các máy tính l
ớn
đảm
nhi
ệm, ngày nay ch
c n
ă
ng
điề
u khi
n s
y do các chíp vi x
lý, các h
nhúng
đ
ã thay
th
ế
.
Ph
n mềm
điề
u khi
n ngày càng tinh s
o t
o nên
độ
thông minh c
a thi
ết
bị
ngày
càng chiế
m t
tr
ng l
n trong giá thành c
a thi
ế
t bị.
Chương I: Tổng quan
Bài giảng lập trình nhúng 3
Đi
ểm qua v
ch
c n
ă
ng x
tin
PC các thi
ế
t b
nhúng nh
ng nét
khác bi
ệt
.
Đố
i v
i PC m
ng internet ch
c n
ă
ng x
đang
đượ
c phát tri
n m
nh
các
l
ĩ
nh v
c qu
ản d
ch v
như th
ươ
ng m
i
điệ
n tử, ngân hàng đ
iệ
n tử
, chính ph
điệ
n tử,
th
ư
vi
n
đi
n t
,
đ
ào t
o t
xa, báo
điệ
n t
... các
ng d
ng này th
ườ
ng s
dụ
ng y
PC
để
bàn, mạ
ng WAN, LAN ho
ạt
độ
ng trong th
ế
gi
i
o
. Còn
đố
i v
i các
hệ
nhúng thì
ch
c n
ă
ng x
tính toán
đượ
c ứng d
ng c
th
cho các thi
ế
t b
v
t
(th
ế
gi
i th
t)
như mobile phone, qu
n áo thông minh, các thi
ế
t bị
điệ
n t
c
m tay,
thi
ế
t b
y t
ế
, xe ô
tô, tầu t
c hành, phươ
ng tiện v
n t
i thông minh, y
đ
o,
đầ
u
đ
o, c
ơ
cấ
u ch
p hành thông
minh, các h
th
ng
điề
u khi
n, nhà thông minh, thi
ế
t b
gia d
ng
thông minh v.v...
1.3
Vai trò c
a h
th
ng nhúng trong s
phát tri
n c
a l
ĩ
nh v
c công ngh
cao
“3C“
.
Các h
th
ng tự
độ
ng
đ
ã
đượ
c ch
ế
t
o trên nhi
u công ngh
khác nhau như các
thi
ế
t
b
máy móc t
độ
ng b
ng các cam ch
t c
ơ
khí, các h
th
ng t
độ
ng ho
t
độ
ng
bằ
ng
nguyên khí nén, thủy lực, r
ơ
le c
ơ
đ
i
n, m
ch
điệ
n t
số ... các thi
ế
t b
, h
th
ng này
ch
c năng xử m
c
độ
t
độ
ng thấp so v
i các h
thống tự
độ
ng
hi
n
đạ
i
được
xây d
ng trên n
n t
ng c
a các h
th
ng nhúng
.
Trong khi các h
th
ng tin h
c s
d
ng máy tính
để
h
tr
t
độ
ng hóa quá
trình qu
n lý, thì các h
th
ng
điề
u khiển t
độ
ng dùng máy tính
để
điề
u khi
n t
độ
ng
hóa quá trình công ngh
.
Chính vì v
y các thành t
u c
a công ngh
phần c
ng và
công ngh
ph
n mềm c
a y tính
điệ
n t
đượ
c áp d
ng phát tri
n m
t cách
ch
n l
c và hi
u
qu
cho các h
th
ng
đi
u khi
n t
động
. Và s
phát tri
n nh
ư
v
ũ
bão
củ
a công ngh
thông
tin kéo theo s
phát tri
n không ng
ng c
a l
ĩ
nh v
c t
động hóa
.
Ta th
thấy quá trình các h
nhúng thâm nh
p vào t
ng ph
n t
, thi
ế
t b
thu
c l
ĩ
nh v
c tự
độ
ng hóa nh
ư
đầ
u
đ
o, cấ
u ch
p hành, thi
ế
t bị giao di
n v
i ng
ười vậ
n
hành thậm chí o các r
ơ
le, contactor, t bấm tr
ướ
c kia hoàn toàn làm b
ằng cơ
khí.
Trướ
c khi
đầ
u
đ
o g
m ph
n t
bi
ế
n
đổ
i t
tham s
đ
o sang tín hi
u
điệ
n, mạ
ch
khuy
ế
ch
đạ
i, m
ch l
c m
ch bi
ế
n
đổ
i sang chu
n 4-20mA
để
truy
n tín hiệu
đ
o v
trung
tâm x
lý.
Hiệ
n nay đầ
u đo
đ
ã tích h
p c
chip vi x
lý, bi
ế
n
đổ
i ADC, b
truy
n
dữ
li
u s
v
i ph
n m
m
đ
o
đạ
c, l
c s
, tính toán truy
n k
ế
t qu
trên m
ng s
v
th
ng y tính
trung tâm.
Như
vậy
đầ
u
đ
o đã
đượ
c s
hóa ngày càng thông minh
do các ch
ức n
ă
ng
x
lý từ
máy tính trung tâm trướ
c kia nay
đ
ã
được chuyể
n xuố
ng x
ử lý t
i ch
b
ng chương
trình nhúng trong đầ
u đ
o.
T
ươ
ng t
nh
ư
vậy c
u ch
p hành nh
ư
môt
ơ
đ
ã
đượ
c ch
ế
t
o g
n k
ế
t hữu
vớ
i
c
b
servo v
i các thu
t toán
điề
u ch
nh PID tạ
i ch
kh
n
ă
ng n
i m
ng s
t
i
máy tính
ch
ủ.
Các t
r
ơ
le
điề
u khiển chi
ế
m di
n tích l
n trong các phòng
điề
u khi
n nay đượ
c co
g
n trong các PLC(programble Logic Controller).
Các bàn
điề
u khi
n v
i ng lo
t các
đồ
ng h
ch
báo, các phím, núm
đi
ều
khiển, các b
t
ghi trên gi
ấy c
ng kềnh nay được thay thế
b
ằng m
t vài PC
.
Chương I: Tổng quan
Bài giảng lập trình nhúng 4
Hệ
th
ng cáp truy
ền tín hi
u analog 4-20mA, ± 10V t
c
đầ
u
đ
o, c
ơ
c
u ch
p
hành v
trung tâm
điề
u khi
n nh
ng nh
t tr
ướ
c
đ
ây
đ
ã
được thay th
ế
b
ng vài cáp
đồ
ng
tr
c
ho
c cáp quang truy
ền dữ li
u s
Ta th
nói các h
nhúng
đ
ã “thay th
ế
chiế
m ph
n ngày càng nhi
u” trong các
ph
n t
, h
th
ng thu
c l
ĩ
nh v
c công ngh
cao “3C”
.
Vào nh
ng m 30 các h
th
ng t
độ
ng bằng cam ch
t c
ơ
khí th
ườ
ng ho
t
độ
ng
đơ
n lẻ với một ch
c n
ă
ng x
lý. Các h
th
ng t
độ
ng dùng r
ơ
le
đi
ện t
xu
t
hi
n
vào nh
ng m 40 mức x
kho
ng 10 ch
c n
ăng
. Các h
th
ng tự
độ
ng dùng bán
d
n hoạt
độ
ng theo nguyên t
ươ
ng t
(Analog) c
a thập kỷ 60 m
c x
kho
ng 30
ch
c n
ă
ng
. Vào nh
ng m 70 các thi
ế
t b
đ
iề
u khiển kh
trình PLC ra
đờ
i v
i mức
độ
xử
lý lên hàng tr
ă
m và vào nh
ng n
ă
m 80 v
i s
tham gia c
a các máy
tính
đi
n t
main frame
mini
đ
ã nh thành các h
th
ng
điề
u khi
n phân c
p v
i s
ch
ức n
ă
ng x
lên t
i ng
ch
c v
n (105). Sang th
p k 90 v
i sự phát tri
n c
a công nghệ ph
n c
ng c
ũ
ng nh
ư
ph
n mềm, các h
th
ng
điề
u khi
n phân tán ra
đờ
i(DCS) cho m
c x
lên t
i hàng
tr
c tri
u (107). sang thế kỷ 21, những hệ
th
ng t
độ
ng tính t
t
ch
c, t
ư
duy h
p tác s
m
c x
n t
i hàng tỷ
(109)
.
Tuy nhiên
để
đạ
t
đượ
c
độ
thông minh
nh
ư
nhữ
ng sinh v
t s
ng còn c
n nhi
u
th
i gian h
ơ
n các h
th
ng t
độ
ng còn cần tích
h
p trong nhi
u công ngh
cao
khác nh
ư
ng ngh
cảm bi
ế
n, công ngh
v
t li
u m
i,
công ngh
quang laser v.v
...
Đ
ây c
ũ
ng xu th
ế
phát tri
n c
a các h
thống t
độ
ng
ngày ng sử d
ng nhi
u
công ngh
m
i h
ơ
n trong c
u trúc và ho
t
độ
ng c
a mình
.
Trong
đ
i
u khi
n quá trình công ngh
, việc áp d
ng các h
nhúng đã t
o ra khả
ng t
độ
ng hóa toàn b
dây chuy
n s
n xu
t.
Kiế
n trúc h
th
ng
điề
u khi
n tr
ướ
c kia
tậ
p
trung v
xử t
i mộ
t máy tính thì nay các đầ
u
đ
o, c
ơ
c
u ch
p hành, giao di
ện với
ng
ườ
i
v
n hành
đề
u
đượ
c thông minh hóa nhi
u ch
c n
ă
ng x
t
i ch
kh
ng n
i
m
ng nhanh t
o thành h
th
ng m
ng y đ
iề
u khi
n ho
t
độ
ng theo ch
ế
độ
th
i gian
thự
c
. Ngoài các chức n
ă
ng
điề
u khi
n giám sát dây chuyền s
n xu
t hệ
th
ng còn
nhi
u s
dữ li
u, kh
n
ă
ng t
xác
đị
nh kh
c ph
c h
ng hóc, khả
ng th
ng kê,
báo cáo k
ế
t h
p h
th
ng m
ng máy tính qu
ản lý, l
p k
ế
ho
ch, thi
ế
t
kế
kinh doanh
t
o thành h
th
ng t
độ
ng hóa s
n xu
t toàn c
ục.
Trong l
ĩ
nh v
c rôbôt, v
i s
áp d
ng các thành t
u c
a các h
nhúng, rôbôt
đã
th
giác xúc giác.
Việ
c áp d
ng trí khôn nhân t
o vào rôbôt
đ
ã
đư
a rôbôt từ
ứng dụ
ng
ch
y
ế
u trong ng nghi
p sang các l
ĩ
nh v
c d
ch v
y t
ế
.
Kế
t h
p v
i các
thành t
u
c
a c
ơ
điệ
n t
, rôbôt ngày càng uyển chuy
n thông minh h
ơn
.
Trong
tươ
ng lai rôbôt
không ch
thay th
ế ho
t
độ
ng c
ơ
b
p c
a con ng
ườ
i còn th
thay
th
các công vi
c
đ
òi h
i h
at
động trí não c
a con ngườ
i.
Lúc này hệ th
ng
điề
u khi
ển củ
a rôbôt không ch
các vi x
m
nh còn sự h
tr
của các y tính m
ạng
ron nhân tạ
o, x
song song nhúng trong rôbôt
.
Các nghiên c
u phát tri
n này hi
ện
nay còn
giai
đo
n ban
đầu.
1.4
Đặc tính, phương pháp thi
ế
t kế và xu th
ế
phát tri
n củ
a các h
nhúng
Các h
nhúng nh
ng h
k
ế
t h
p ph
n cứng ph
n mềm m
t cách t
i
ư
u. Các
Chương I: Tổng quan
Bài giảng lập trình nhúng 5
h
nhúng là nh
ng h
chuyên d
ng, thường ho
t
động trong ch
ế
độ
th
i gian th
c,
bị
h
n
ch
ế
v
b
nhớ, giá thành ph
i r
nh
ư
ng l
i ph
i ho
t
độ
ng tin cậy tiêu t
n ít
ng l
ượ
ng
.
Các h
nhúng r
t
đ
a d
ng nhi
u kích c
, kh
n
ă
ng tính toán khác
nhau
. Ngoài ra
các h
nhúng th
ườ
ng ph
i ho
t
độ
ng trong môi tr
ườ
ng kh
c nghi
t
độ
nóng m, rung
xóc cao. d
nh
ư
các
đi
ều khi
n các máy diesel cho tàu biể
n, các thi
ế
t bị c
nh báo cháy
n
trong h
m lò. Các h
th
ng nhúng l
n th
ườ
ng các hệ nố
i
m
ng
.
y bay, tàu v
ũ
tr
th
ườ
ng nhi
u m
ng nhúng k
ế
t n
i
để
ki
m soát ho
ạt
độ
ng
điề
u khiển.Trong ô
hi
n
đạ
i có
đế
n trên 80 nút m
ng k
ế
t n
i các
đầ
u
đ
o c
ơ
cấ
u ch
p hành
để
b
o
đả
m ô tô ho
ạt
độ
ng an toàn và tho
i mái cho ngườ
i s
d
ng.
Thi
ế
t k
ế
các h
th
ng nhúng là thi
ết k
ế
phần c
ng và phầ
n mề
m ph
i h
ợp
.
Cách thi
ế
t
k
ế
c
điể
n cách xác
đị
nh tr
ướ
c các ch
c n
ă
ng ph
n mềm (SW) ph
n c
ng (HW) r
i
sau
đ
ó các b
ướ
c thi
ế
t k
ế
chi ti
ế
t
đượ
c ti
ế
n hành m
t cách
độ
c l
p
hai kh
i.
Hiệ
n nay
đ
a
s
các hệ th
ng t
độ
ng hóa thi
ế
t k
ế
(CAD) th
ườ
ng dành cho thi
ế
t k
ế
phầ
n cứ
ng
.
Các
h
thố
ng nhúng hi
n nay s
d
ng
đồ
ng th
i nhi
u công ngh
nh
ư
vi x
lý, DSP, m
ng
các chu
n ph
i ghép, protocol, do vậy xu th
ế
thiết k
ế
các h
nhúng
hi
n nay đòi h
i
kh
n
ă
ng thay
đổ
i mềm d
o h
ơ
n trong quá trình thi
ế
t k
ế
2 ph
ần
HW SW.
Để
đượ
c
thi
ế
t k
ế
cu
i cùng t
i
ư
u, quá trình thi
ế
t k
ế
SW HW ph
ải
phố
i h
p v
i nhau chặt ch
th
thay
đổ
i sau m
i lần thử chức n
ă
ng ho
t
độ
ng
tổ
ng hợ
p
.
Thi
ế
t kế các h
nhúng
đ
òi h
i ki
ế
n th
c
đ
a ngành về
điệ
n t
, xử lý tín hi
u, vi x
lý, thu
t
điề
u khi
n và l
p trình
th
i gian th
ực
.
Ph
n m
m trong các h
nhúng ngày càng chi
ếm t
trọ
ng cao
đ
ã trở
thành m
ột
thành ph
n c
u t
o nên thi
ế
t b
bình
đẳ
ng nh
ư
c ph
n c
ơ
khí, linh ki
n
điệ
n t
, linh
ki
n
quang h
c ...
các h
nhúng ngày càng ph
c t
p h
ơ
n
đ
áp
ng các yêu c
u kh
t khe
về
th
i
gian th
c, tiêu ít n
ă
ng l
ượ
ng, ho
t
độ
ng tin cậy
n
đị
nh h
ơ
n, khả n
ă
ng h
ội
tho
i cao,
khả n
ă
ng k
ế
t n
i m
ng, thích nghi, t
t
ch
c cao kh
n
ă
ng tái cấ
u
hình nh
ư
m
t
th
c th
, m
t tác nhân
.
kh
n
ă
ng ti
ế
p nh
n n
ă
ng lượng t
nhi
u ngu
n khác nhau (ánh sáng, rung
độ
ng,
điệ
n t
tr
ườ
ng, sinh h
c
...
)
để
t
o nên các h
th
ng t
ti
ế
p nh
n n
ă
ng l
ượ
ng trong
quá trình h
at
độ
ng.
Tuy nhiên h
th
ng nhúng hi
n nay còn ph
i
đố
i m
t v
i nhi
u thách
.
Độ
ph
c
tạ
p
c
a h
th
ng t
ă
ng cao do k
ế
t hợ
p nhi
u l
ĩ
nh v
c
đ
a ngành, k
ế
t h
p ph
ần c
ng -
m
ềm,
trong khi các ph
ươ
ng pháp thi
ế
t k
ế
kiểm tra chưa chín mu
ồi
.
Kho
ng cách
gi
a
thuy
ế
t th
c hành lớn còn thi
ế
u các ph
ươ
ng pháp thuy
ế
t hoàn ch
nh cho kh
o
sát phân tích toàn c
c c
a h
nhúng bao gồm thuy
ế
t
đ
i
u khi
n t
độ
ng,
thi
ế
t k
ế
y,
công ngh
ph
n mềm,
điệ
n t
, vi x
lý, các công nghệ h
tr
khác.
Mặ
t khác c h
nhúng
còn nhi
u vấn
đề
c
n gi
i quy
ế
t v
i độ tin cậy tính m
c
a hệ
th
ống
.
Do h
th
ng
nhúng th
ườ
ng ph
i h
i tho
i v
i môi tr
ườ
ng xung quanh nên nhi
u khi g
p những tình
hu
ng không l
ườ
ng tr
ướ
c d
d
n
đế
n hệ th
ng b
lo
ạn
.
Trong quá trình ho
t
độ
ng m
t s
ph
n mề
m th
ườ
ng ph
i ch
nh l
i thay
đổ
i nên h
th
ng ph
n
m
ềm th
không ki
m
soát
đượ
c
.
Đố
i với h
th
ng m
, các hãng th
3
đư
a các
module m
i, thành ph
n m
i
vào c
ũ
ng có th
gây nên s
hoạt
độ
ng thi
ế
u tin c
ậy.
Chương I: Tổng quan
Bài giảng lập trình nhúng 6
1.5
Môi tr
ườ
ng thông minh
Công ngh
bán dẫn phát tri
n m
nh theo xu th
ế
ngày càng r
, tích h
p cao,
khả
n
ă
ng tính toán l
n, kh
n
ă
ng k
ế
t n
i toàn c
u, kh
n
ă
ng ph
i h
p v
i các cảm bi
ế
n c
ơ
cấu chấp hành vi c
ơ
đ
i
n sinh h
c, kh
n
ă
ng giao di
n không qua bàn phím
đ
ang t
o
ti
n
đề
c
ơ
s
cho s
bùng n
c
a các thi
ế
t b
v
t d
ng thông minh xung
quanh ta
.
Đ
ây
s
kh
i
đầ
u c
a th
i
đạ
i hậu PC - Môi tr
ườ
ng thông minh
. Các ph
n
m
ềm nhúng trong
các chip vi h
ht
ng r
t phong phú
độ
mềm d
o, tái s
d
ng
cao.
Sứ
c
đẩ
y của công ngh
s
đư
a công ngh
vi
điệ
n t
ti
ế
p c
n c
ng n
ă
ng v
i
công ngh
sinh h
c tạo nên công nghệ nano v
i
độ
ph
c t
p giga vào th
p niên 2010-
2020
.
Các chip vi h
th
ng x
h
n hợp t
ươ
ng t
s
MS-SoC (Mixed Signal
System on
chip) vào giai
đoạ
n này s
trên 2 t
transistor, 1000 lõi CPU, 100MB b
nhớ
ho
ạt
độ
ng
t
n s
200GHz.
Vớ
i nh
ng vi hệ th
ng kh
ng nh toán siêu h
ng y vi
c thiết k
ế
các hệ
nhúng s
g
p không ít thách th
c nh
ư
x
song song,
độ
ph
c t
p c
a ph
n m
ềm
nhúng kh
n
ă
ng cung c
p n
ă
ng l
ượ
ng cho các thi
ế
t b
c
m tay. Trong t
ươ
ng lai
ng
l
ượ
ng cho truy
n d
li
u s
l
n g
p t
5
đến 30 l
n n
ă
ng lượng ho
t
độ
ng c
a các CPU
.
Trướ
c
đ
ây các h
th
ng th
ườ
ng
được thi
ế
t k
ế
trên n
n ph
n c
ng PC ph
n
m
m là Windown ho
c Linux, thì ngày nay s
l
ượng các h
n
n (platform) cho thi
ế
t kế các
h
nhúng kho
ng 25.
Trong t
ươ
ng lai các h
nhúng s
được thi
ế
t k
ế
trên n
n các chip
MS-SoC tạo nên các platform thi
ế
t k
ế
chuyên d
ng v
i s
l
ượ
ng s
lên
đế
n h
ơ
n 500 lo
ại
.
Ta th
li
t m
t s
d
điể
n hình nh
ư
platform raptor II cho thi
ế
t k
ế
camera s
,
PXA240 cho thi
ế
t k
ế
các thi
ế
t bị PDA, TL850 cho TV s
, BLUECORE
cho công ngh
không y Bluetooth, CDMA cho mobile phone 3G
...
các h
MS-SoC
sẽ
kh
n
ă
ng tái
c
u hình s
công c
ch
ch
t cho các sả
n ph
m c
a công ngh
cao “3C”.
1.6
Các h
điề
u hành nhúng và ph
n m
m nhúng
1.6.1
H
điề
u hành nhúng
Khác v
i PC th
ườ
ng chạy trên n
n h
điề
u hành windows ho
c unix, các h
th
ng nhúng các hệ
điề
u hành nhúng riêng c
a mình
. Các h
đ
i
ều hành dùng trong
các
h
nhúng n
i tr
i hi
n nay bao gồ
m Embedded linux, VxWorks, WinCE, Lynyos,
BSD,
Green Hills, QNX DOS, Embeddde linux hi
n
đ
ang phát tri
n m
nh
.
N
ă
m
2001 h
điề
u hành này chiếm 12% th
ph
n các h
điề
u hành nhúng thì m 2002
chi
ế
m 27%
và chi
ếm v
trí s
1.
Hiệ
n nay 40% các nhà thi
ế
t kế các h
nhúng cân nh
ắc
đầ
u tiên s
dụng
Embedded linux cho các
ng d
ng m
i c
a mình sau
đ
ó m
i
đế
n
các h
điề
u hành
nhúng truy
n th
ng nh
ư
VxWorks, WinCE. Các
đố
i th
c
nh tranh
củ
a Embedded linux
hi
n nay các h
đ
i
u hành nhúng t
t
o và windows CE
.
Sở
d
ĩ
Embedded linux s
phát tri
n v
ượ
t b
c là do s
c h
p d
n
đố
i v
i các
ng d
ụng
giá thành th
p
đ
òi h
i
th
i gian
đư
a s
n ph
m ra th
tr
ườ
ng nhanh
.
M
t khác Linux
ph
n mềm nguồn m
nên b
t kỳ ai cũng th
hi
u thay
đổ
i theo ý mình.
Linux c
ũ
ng một hệ
điề
u hành
c
u trúc module chiếm ít b
nh
trong khi
windows không các
đặ
c tính
ư
u
Chương I: Tổng quan
Bài giảng lập trình nhúng 7
vi
t y. Do th
tr
ườ
ng c
a các s
n phẩm nhúng
ng m
nh lên các nhà s
n xu
t ngày càng
s
d
ng c h
điề
u hành nhúng
để
đả
m b
ảo sả
n ph
ẩm s
c c
nh tranh Embedded
linux
đ
ang là s
n phẩm h
điề
u hành nhúng
có uy tín chi
ếm v
trí s
1 trong nh
ng n
ăm tớ
i.
1.6.2
Ph
n m
m nhúng
Ph
n mề
m nhúng ph
n mềm t
o nên ph
n h
n, ph
n trí tu
c
a các s
n phẩ
m
nhúng
.
Phầ
n mềm nhúng ngày càng có t
l
cao trong giá tr
c
a các s
n ph
m nhúng.
Hiệ
n
nay phần l
n c ph
n mềm nhúng nm trong các s
n phẩm truyền thông các
sả
n ph
ẩm
đi
ện tử gia d
ng (consumer electronics) ti
ếp
đế
n trong các s
n phẩm ô tô,
ph
ươ
ng ti
n
v
n chuy
n, máy móc thiết b
y t
ế
, các thi
ế
t b
n
ă
ng l
ượ
ng các thi
ế
t b
ị cả
nh báo b
o v
và các s
n phẩm
đ
o và
đ
i
u khi
ển
.
Để
th
tồn t
i và phát tri
n, các
sả
n phẩm công nghi
p
tiêu dùng c
n ph
i th
ườ
ng xuyên
đổ
i mới ngày càng
nhi
u ch
c n
ă
ng ti
n d
ng
thông minh h
ơn
. Các ch
c n
ă
ng này ph
n l
n do các
chươ
ng trình nhúng tạo nên.
Ph
n mềm nhúng m
t l
ĩ
nh v
c ng ngh
then chố
t
cho s
phát tri
n kinh t
ế
c
a
nhi
u qu
c gia trên th
ế
gi
i nh
ư
Nh
t B
n, Hàn Qu
ốc,
Ph
n Lan Trung Qu
ốc
.
Tạ
i Mỹ
nhi
u ch
ươ
ng trình hỗ trợ c
a nhà n
ướ
c
để
phát
triể
n các h
th
ng ph
n m
m nhúng
.
Hàn Qu
c có nh
ng d
án l
n nhằ
m phát tri
ển
công ngh
ph
n mềm nhúng như c thi
ế
t
b
gia d
ng n
i mạng Internet, h
th
ống phầ
n mềm nhúng cho phát tri
n thành ph
thông
minh, d
án phát tri
n ngành công
nghi
p ph
n mềm nhúng, trung m h
tr
các ngành
công nghi
p h
u PC v.v...
Hàn
Qu
c c
ũ
ng ch
p nh
n Embedded linux nh
ư
một h
điề
u
hành ch
ch
t trong vi
c phát
triể
n các sản phẩm nhúng c
a mình.
Th
ụy
Điể
n coi phát
triển các h
nhúng tầ
m
quan tr
ng chi
ế
n l
ượ
c cho sự phát tri
n c
a
đấ
t n
ướ
c
.
Ph
n
Lan nh
ng chính sách
quố
c gia tích c
c cho nghiên c
u phát tri
n các h
nhúng
đặ
c
bi
t các ph
n mề
m
nhúng
.
Nh
ng qu
c gia này còn thành lập nhi
u vi
n nghiên c
u
trung tâm phát
triển các h
nhúng.
Chương II: Lý thuyết thiết kế hệ thống nhúng
Bài giảng lập trình nhúng 8
Chương 2: LÝ THUY
T THI
T K
HỆ TH
NG NHÚNG
2.1
Quy trình thiế
t kế
Top-Down
Quy trình Top-Down th
ườ
ng
đượ
c áp d
ng cho các bài toán
đ
ã gi
i pháp
công ngh
cả v
ph
n m
ềm c
ũ
ng nh
ư
ph
n cứ
ng
.
Các gi
i pháp này
đ
ã
được phát tri
n
tr
ướ
c
đ
ó
c
ng d
ng khác, và
đã
được ki
ểm
định.
Trong th
ực t
ế
chúng ta s
thấy, b
n ch
t hay mấu ch
t c
a quy trình v
n
đề
tìm
hi
ểu xác
đị
nh bài toán, làm sao
để
xác
đị
nh
đượ
c chính xác
đầ
y
đủ
nh
t các
yêu c
u
c
ũ
ng các r
ng bu
c mà h
th
ng ph
i
đạ
t
đượ
c.
đồ
kh
i quy trình k
ế
top-down
hình 2.1
Hình 2.1 Sơ đồ khối quy trình Top - Down
2.1.1
Pha phân tích
Pha y pha quan tr
ng nh
t quy
ế
t
đị
nh hệ th
ng
đạ
t yêu c
u hay không.
M
t
h
thố
ng nhúng c
th
ph
i
đượ
c
đặt vào (nhúng vào) m
t h
th
ng l
n c
th
.
th
ế
ta
Chương II: Lý thuyết thiết kế hệ thống nhúng
Bài giảng lập trình nhúng 9
c
n ph
i bi
ế
t những yêu c
u nào cho nó, môi tr
ườ
ng hay
điề
u ki
n làm vi
c
củ
a nó.
Thông tin y g
i các yêu c
u các
điề
u ki
n r
ng bu
c cho h
thố
ng, nó giúp c
th
hoá
được vi
c ch
n gi
i pháp công ngh
thi
ế
t b
cho các k
ỹ s
ư
thi
ế
t k
ế
pha sau
.
-
Các yêu c
u: Các thông tin chi ti
ế
t v
nhiệm v
h
th
ng ph
i gi
i quy
ế
t
được, các tham s
đầ
u vào
đầu ra, các gi
i hạ
n trong h
th
ng c
thể
,
...
-
Các r
ng bu
c:
Điề
u ki
n làm việc các h
n ch
ế
nh
ư
th
i ti
ế
t,
độ
ẩm,
độ
nhi
u,
độ
chính xác, tính th
i gian th
c, lo
i tín hi
u giao ti
ế
p v
i h
th
ng
m
,
...
Ví d
: Xét bài toán thi
ết k
ế
h
th
ng
điề
u khi
n cho 1 c
a t
độ
ng
Giả
s
qua quá trình kh
o sát th
c tế
u c
ầu c
a bên khác hàng ta ph
i c
đị
nh
được các thông s
t
i thi
u sau:
a)
Yêu c
u:
1)
Hệ
th
ng áp d
ng cho 1 c
a hai chi
u (vào/ra)
2)
C
a cao 2,5m r
ng 3m
3)
Có ng
ườ
i trong ph
m vi 2m tr
ướ
c và sau c
a c
a ph
i m
4)
Th
i gian m
đ
óng c
a 3s
5)
Cử
a
đ
ang
đ
óng gặ
p v
t c
n ph
i m
ra ngay
6)
Làm vi
c
đ
i
n áp 220v/50Hz
7)
Chi phí cho b
đi
ều khi
n không quá 10 tri
u VN
Đ
8)
Hệ
th
ng th
ng có 2 ch
ế
độ
làm vi
c t
độ
ng và b
ng tay
9)
Sensor và công nghệ tu
ch
n
b)
Điề
u ki
n r
ng bu
c
1)
Sử
d
ng
độ
ng c
ơ
độ
ng l
ực s
n lo
i AC m
t pha 220V/50Hz 3kW.
2)
i
đặ
t c
a nhi
u ng
ườ
i qua l
i, n h
th
ng s
ph
i làm vi
c v
i t
n su
t
cao
.
3)
Điề
u kiện môi trường: Trong nhà, nhi
t
độ
t
18 C
0
đế
n 36 C
0
4)
Bộ
điề
u khi
n b
ng tay đặt c
nh c
a phía bên trong nhà
5)
Hệ
th
ng
đ
i
n c
p m
i t
đầ
u
6)
Ch
u
đượ
c quá t
i khi g
p ch
ướng ng
i v
t trong kho
ng th
i gian dài
.
Trong các bài toán c
th
, v
i các h
th
ng m
c
th
, m
i h
thống nhúng s
các
yêu c
u khác nhau. Tuy nhiên vẫn những tiêu chu
n yêu c
u chung h
u
hế
t các
h
th
ng ph
i tính đến nh
ư
:
-
Tính
đế
n chi phí bảo trì đị
nh k
-
Kích th
ướ
c và tr
ng l
ượng
-
Khả
n
ă
ng th
c thi: Th
i gian
đ
áp
ng,
độ
chính xác,
độ
phân gi
i,
...
Chương II: Lý thuyết thiết kế hệ thống nhúng
Bài giảng lập trình nhúng 10
-
Ngu
n nuôi
-
Tính m
ềm d
o, kh
ng nâng c
p, kh
n
ă
ng t
ươ
ng thích, kh
n
ă
ng ph
c
hồ
i
sau khi m
t ngu
n,
...
-
Th
i gian th
-
Th
i gian
để
th
ươ
ng m
i s
n phẩm
-
Độ an toàn
-
Khả
n
ă
ng ch
ng l
i sự
phá ho
i hay xâm nh
p.
2.1.2
Pha thi
ế
t k
ế
nguyên lý
M
c tiêu c
a pha y xác
định các gi
i pháp công ngh
t
các yêu c
u
đặ
t ra
pha Phân tích, t
đ
ó
đ
i thi
ế
t k
ế
hình, s
ơ
đồ
nguyên cho toàn b
h
th
ng bao
g
ồm
c
phần c
ng và ph
n m
m
.
Để
th
c hi
n b
ướ
c này thông th
ườ
ng tr
i qua các b
ướ
c sau:
-
Trước tiên ta ph
i xây d
ng m
t s
ơ
đồ
mô hình t
ng quát c
a toàn h
th
ống.
-
Sau
đ
ó phân tách thành các module hay các h
th
ng con.
-
Đị
nh giá cho h
th
ng, l
p k
ế
ho
ch phát tri
n
ướ
c l
ượ
ng th
i gian phát
tri
n h
thố
ng.
-
Xây d
ng các s
ơ
đồ
lu
ng d
u li
u gi
a các module hay các h
th
ng con
trong hệ thống
Ví d
2: Xây d
ng và phân tách các module trong mô hình t
ng quát c
a bài toán điều
khiển động cơ.
Hình 2.2 Sơ đồ tổng quát của một hệ thống điều khiển động cơ
Chương II: Lý thuyết thiết kế hệ thống nhúng
Bài giảng lập trình nhúng 11
2.1.3
Pha thi
ế
t k
ế
kỹ
thu
ật
Xây d
ng các thi
ế
t k
ế
chi ti
ế
t cho c
ph
n cứ
ng ph
n mề
m, các b
n thi
ế
t k
ế
này s
được chuy
n sang pha th
c thi
để
xây d
ng h
th
ng
.
Vì th
ế
pha y ng
ườ
i thi
ết
kế
ph
i
đư
a ra các b
n thi
ết k
ế
nh
ư
:
1
.
đồ
kh
i, s
ơ
đồ
thu
t toán.
2
.
Cấ
u trúc d
u li
u, d
li
u chia s
ẻ.
3
.
đồ
nguyên m
ch, chi ti
ế
t v
các
đầ
u vào/ra, lo
i tín hi
u hay giao th
ức
giao
ti
ếp
.
4
.
Thông s
linh ki
ện
đượ
c ch
n ho
c có th
thay th
ế
.
5
.
Các tham s
vào/ra cho h
th
ống.
6
.
Lự
a ch
n thi
ế
t b
, công c
phát triển h
thố
ng, các tài nguyên s
s
d
ụng.
7
. ...
Xây dựng s
ơ
đồ
quan h
gi
a các module các m trong hệ th
ng (call graph),
đồ
này mô t
cách th
c t
ương tác gi
a phần c
ng và ph
n m
m trong h
th
ng
.
Ví dụ: Sơ đồ Call graph của hệ thống điều khiển động cơ
Hình 2.3 S
ơ
đồ quan h
(call graph) giữa các module ph
n cứng và phân mề
m trong hệ
th
ống
đi
u khi
n độ
ng c
ơ
Để phát hi
n h
n ch
ế
t
i
đ
a c l
i hệ
th
ng s
g
p phải sau khi được y
d
ựng, ta th
hình hóa các thành ph
n ho
c toàn b
h
th
ng n
ế
u th
, nhằm
th
nghiệm ho
t
độ
ng c
a h
th
ng v
i các
đầ
u vào tình hu
ng gi
l
p,
đồ
ng th
i
th
nghi
m tính thân thi
n c
a giao di
n ng
ười dùng
.
2.1.4
Pha xây d
ng h
th
ng
T
các b
n thi
ế
t k
ế
, b
ướ
c này ti
ế
n hành xây d
ng hoàn thi
n hệ th
ng trên c
phân mềm ph
n c
ứng
.
Trong su
t quá trình xây dựng ph
i tuân th
theo các b
ướ
c và
đồ
công ngh
t
các bản thiết kế kỹ thu
ật
.
Đặ
c bi
t các tham s vào ra gi
a các
Chương II: Lý thuyết thiết kế hệ thống nhúng
Bài giảng lập trình nhúng 12
hàm,
đi
ều này
nh h
ưở
ng
đế
n vi
c tích h
p các module gi
a các nhóm làm việc khác
nhau hay s
k
ế
th
a t
các module khác. Các linh ki
n thi
ế
t b
sd
ng ph
i tuân th
theo b
n thi
ế
t k
ế
, nh
m giúp h
thống th
a mãn
đầ
y
đủ
các thông s
r
ng
buộ
c
đ
ã
đượ
c
đặ
t ra
pha phân tích
.
Việ
c phát tri
n h
thống th
đượ
c phân tách thành nhi
u nhóm, nhi
u ph
n
không c
n tuân theo tu
n t
, ho
c th
trên nhi
u môi tr
ườ
ng khác nhau mi
n sao
đả
m
b
o vi
c trao
đổ
i tham s
ố gi
a các module là tương thích và
đầy
đủ
.
N
ế
u chúng ta
phân tách
thi
ế
t k
ế
t
t, vi
c phát tri
n h
th
ng th
đượ
c ti
ế
n hành song song,
hoặ
c k
ế
th
a
cái s
n, s
làm giảm th
i gian phát tri
n h
th
ng
đ
áng k
v
n
đả
m
bả
o các yêu c
u
đ
ã
đặ
t ra.
M
t s
các k
thu
t nh
m phát hi
n h
ạn ch
ế
l
i ng
ườ
i phát triển th
áp
dụ
ng trong pha này Debug hay ph
ng Simulation
.
Tuy nhiên trong m
t bài toán
cụ
th
vi
c Debug là r
t khó, thông th
ườ
ng ng
ườ
i phát tri
n luôn s
d
ng m
t trình
phỏ
ng
(Simulation) v
i các phép th
trên các tín hi
u gi
l
ập.
2.1.5
Pha ki
ểm tra
M
c tiêu c
a pha y
đ
ánh giá kh
n
ă
ng th
c thi c
a h
th
ng sau khi
đ
ã
hoàn thi
n, thông th
ườ
ng ta th
c hi
n các b
ước sau:
Đầu tiên ta tiến hành gỡ lỗi (debug) kiểm định cho từng chức năng của hệ
thống.
Tiếp theo đánh giá khả ng thực thi của hệ thống dựa trên nhiều tiêu chí khác
nhau như: Tốc độ, độ chính xác, tính ổn định,
Ngày nay rất nhiều công ty trên nhiều lĩnh vực tuyển dụng nhân sự riêng cho pha y
g
i là testing hay các tester.
Nhi
ệm c
a c
a các Tester không ch
kiể
m các
tính n
ă
ng
c
a s
n phẩm phù h
p v
i các yêu cầu
đ
ã
đề
ra hay không, còn ph
ải
ngh
ĩ
ra các
tình hu
ng, các m
u,…
để
m ra các l
i ng
ườ
i thi
ế
t k
ế
hay ng
ườ
i phát
triể
n chư
a phát
hi
n ra
đượ
c.
Các thông tin k
ế
t quả c
a b
ướ
c này quyết
đị
nh m
t sản phẩm th
đượ
c
th
ươ
ng m
i hóa hay không, hay phải b
t
đầ
u m
t chu kmới v
i pha
đầ
u tiên pha
phân
tích bao g
m các thông tin m
i thu th
p
đượ
c t
b
ước này
.
2.2
.
Quy trình Bottom-Up
Quy trình Bottom-Up trong th
c t
ế
th
ườ
ng áp d
ng trong các bài toán ch
ư
a l
ựa
ch
n hay ch
ư
a tìm ra
đượ
c gi
i pháp công ngh
.
Mấ
u ch
t c
a quy trình t
p trung ch
yêu
quá trình thử nghiệm v
i h
thống tín hi
u th
c, từ
đ
ó ch
n ra gi
i pháp
công
ngh
linh ki
n phù h
p nh
t cho bài toán.
đồ
t
ng quát c
a quy trình nh
ư
hình 2.4
Chương II: Lý thuyết thiết kế hệ thống nhúng
Bài giảng lập trình nhúng 13
Hình 2.4 Sơ đồ khối quy trình Bottom - Up
Quy trình Bottom-Up b
t
đầ
u từ các ý t
ưở
ng
đơ
n l
, sau
đ
ó y dự
ng luôn thi
ết kế
kỹ thu
ật
.
Như
ta thấy quy trình hoàn toàn ng
ượ
c so vớ
i Top-Down
. Quy trình y
th
ườ
ng
áp d
ng các bài toán ch
ư
a lắm chắc v
l
i gi
i, ng
ườ
i thi
ế
t k
ế
m
i ch
ý
t
ưởng v
m
t v
n
đề
nào
đ
ó mu
n tìm m
t gi
i pháp ho
c gi
ải pháp t
t nh
t
để
gi
ải
quy
ế
t v
n
đề
.
Việ
c giải quy
ế
t các ý t
ưở
ng th
1 ho
c nhiều
để
m
t s
n phẩ
m
hoàn ch
nh
.
quy
trình y ta c
n chú ý 2 khâu test nhm kiểm
đị
nh chính xác l
ại
các thi
ế
t k
ế
k
thu
t
thi
ế
t k
ế
nguyên lý tr
ướ
c khi l
a ch
n 1 gi
i pháp t
i
u nh
ất.
Chính t
vi
c thí nghi
m và thi
ế
t k
ế
th
h
th
ng tr
ướ
c, sau
đ
ó m
i có th
phân tích
nguyên
để
chọn các
đặ
c tính m
i, rằng bu
c m
i cho m
t h
th
ng m
i.
Với
quy trình
này khâu thi
ế
t k
ế
kỹ thu
t Test sau khi xây d
ng h
th
ng quan trọ
ng
nhất
. v
i
Top-Down vi
c y d
ng m
t s
n phẩm theo nhu c
u c
a ng
ườ
i dùng môi tr
ườ
ng
đặ
t h
th
ống
. Còn v
i Bottom-Up th
ng
ườ
i ta còn ch
ư
a m ra cách
để
thi
ế
t k
ế
ra s
n
phẩm
đ
ó, ho
c s
n phẩm
đ
ó ch
ư
a h
trên thị tr
ườ
ng, khi đó c
ng
ười dùng và ng
ườ
i
thi
ế
t k
ế
chưa th
có thông tin gì v
các yêu c
u cho s
n ph
m hay
các
đặ
t tính kỹ thu
t c
a
s
n phẩm, vậy khâu thi
ế
t k
ế
kỹ thuật Test sau th
c thi các kỹ s
ư
phải tìm ra các
đặ
t
tính
đ
ó, nhằm xác
đị
nh
đượ
c các ưu vi
t c
ũ
ng nh
ư
các
hạ
n ch
ế
c
a s
n ph
ẩm m
ới
.
Chương II: Lý thuyết thiết kế hệ thống nhúng
Bài giảng lập trình nhúng 14
2.3
Đặ
c tả h
thố
ng
2.3.1
Khái ni
ệm
đặ
c t
(specification)
K
thu
t
đặ
c t
nhằm
định ngh
ĩ
a m
t h
thống, module hay s
n ph
m c
n ph
ải
làm
gì, nh
ư
ng không t
ph
i m th
ế
nào.
Ngh
ĩ
a
đặ
c t
ch
t
p trung vào vi
ệc
t
các ch
c n
ă
ng,
đầ
u vào
đầ
u ra, còn gi
i pháp
để
t
đầ
u vào
đượ
c
đầ
u ra
như
th
ế
nào thì không mô t
.
Đồng th
i nêu nên các tính ch
t c
a vấn
đề
đặ
t ra.
Nh
ư vậy b
n ch
t ta s
d
ng m
t công c
để
hình hoá m
t h
th
ng thành
các
module, các lu
ng d
li
u vào ra, các yêu c
u c
a tín hi
u hay d
li
u, các thông
tin trao
đổ
i gi
a các module,
...
Sao cho toàn b
quy trình làm vi
c c
a h
th
ng th
đọ
c
đượ
c
thông qua
đặ
c t
.
đ
ây ta không quan tâm
đế
n công ngh
c
a h
th
ng, mà ch
quan tâm
đế
n ch
c n
ă
ng, nhi
m v
và các tính ch
t mà h
thố
ng ph
i có
đượ
c.
Đặ
c t
thể
đượ
c ti
ế
n hành
nhi
u giai
đo
n, nhi
u l
n trong ti
ế
n trình phát tri
n
hệ
th
ng nh
ư:
Đặ
c t
yêu c
u (requirement specification): Nhằm t
đầ
y
đủ
chi ti
ế
t
nhữ
ng th
ng nh
t gi
a ng
ườ
i sử d
ng t
ươ
ng lai và ng
ườ
i thi
ế
t kế v
h
th
ống
.
Đ
ây các
thông tin c
ơ
s
để
ng
ườ
i thi
ế
t k
ế
thi
ế
t h
th
ng c
a mình, nhiệm vụ
ng
ườ
i thi
ế
t kế pahỉ
thi
ế
t k
ế
đầ
y
đủ
hoàn thi
n theo yêu c
u
đ
ã th
ng nh
t,
ng
ườ
i s
d
ng t
ươ
ng l
i
đượ
c
phép
đỏ
i h
i, giám sát vi
c thực thi các yêu cầu
trong phạm vi
đ
ã tho
thu
ận
.
Đặ
c t
ki
ế
n trúc h
thố
ng (system architect specification): Nh
m mô t
sự th
ng
nh
t
gi
a ng
ườ
i thi
ế
t k
ế
ng
ườ
i cài
đặ
t
. Các
đặ
t t
nh
m ch
ra
được các ch
c
ng, tính ch
t
và nhi
ệm v
cho các thành ph
n h
th
ng chu
n b
đượ
c cài
đặ
t
.
Việ
c xác
định các yêu c
u
t
đ
ó chuy
n thành b
n thi
ế
t k
ế
đ
ã
đượ
c
đặ
c t
khâu đặ
c t
yêu c
u, th
ế
khâu này ng
ườ
i
cài
đặ
t ch
quan t
m
đế
n bản thi
ế
t k
ế
nhữ
ng r
ằng bu
c
đ
ã th
ng nh
t v
i ng
ườ
i thiết k
ế.
Đặ
c t
Module (module specification): t
s
th
ng nh
t gi
a ng
ườ
i l
p trình cài
đặt module và ngườ
i l
p trình s
d
ng module
.
Quá trình cài đặ
t h
ệ th
ng có th
đượ
c phân
ra thành nhi
u module
đượ
c cài
đặ
t m
t cách song song, hay k
ế
th
ừa t
module s
n
hay module
đặ
t hàng, th
ế
ng
ườ
i cài
đặ
t ng
ườ
i s
dụ
ng module cần
đặ
c t
chi ti
ế
t
các ch
c n
ă
ng, nhiệm v
đặ
c bi
t các giao
tiế
p c
a hàm, để sao cho th
ghép n
i
t
ươ
ng thích và hiệ
u quả
module
đ
ó vào
hệ
th
ống
.
2.3.2
Tạ
i sao c
ần
đặ
c t
Việ
c
đặ
c t
là r
t c
n thi
ế
t tr
ướ
c khi xây d
ng một h
th
ng b
t kỳ trong l
ĩ
nh
v
c
nào b
i vì:
Đặc tả mang tính hợp đồng: Mô tả đầy đủ và chi tiết sự thống nhất giữa ngườis
d
ng
ng
ườ
i phát tri
n, chính th
ế
đây c
ơ
pháp khoa h
c
để
ng
ười phát triể
n thi
ế
t
k
ế
, còn ngườ
i s
d
ng thì giám sát và ki
ểm
định
.
Giúp s
n phẩm h
p th
c hoá: S
n phẩm
đượ
c phát tri
n theo các yêu c
u đ
ã
tho
thu
n, vì th
ế
s
n ph
m đương nhiên s
đặ
t yêu c
u v
i ngườ
i s
d
ng
.
Chương II: Lý thuyết thiết kế hệ thống nhúng
Bài giảng lập trình nhúng 15
Đặ
c t
công c
để
trao
đổi: Ngôn ng
đặ
c t
m
t ngôn ngử
đượ
c quy
đị
nh
chung th
ng nh
t th
ế
c
đặ
c t
có thể
đượ
c trao
đổ
i giữa các ng
ườ
i thi
ết kế
v
i
nhau.
Đồ
ng thời thông qua
đ
ó ng
ườ
i sử d
ng c
ũ
ng th
cái nhìn
tổ
ng quát v
s
n
ph
m
.
Tái sử d
ng: M
t
đặ
c t
th
đượ
c l
ư
u gi
để
phát tri
n ti
ế
p hoặc
đượ
c b
sung nâng c
p v
sau.
2.3.3
Phân lo
i các k
thu
t
đặ
c t
a)
Đặ
c t
phi hình th
c: S
d
ng 1 trong các công c
sau
để mô t
h
th
ống
o
Ngôn ng
t
nhiên t
do
o
Ngôn ng
t
nhiên có cấu trúc
o
Các ký hi
u
đồ
h
a
b)
Đặ
c t
n
a hình th
c: S
d
ng h
n h
p c
ngôn ng
t
nhiên, các hi
u toán
họ
c và các ký hi
u
đồ
h
ọa
c)
Đặ
c t
hình th
c: S
d
ng các hi
u toán h
c
để
hình hóa h
th
ng, các
ký hi
u toán h
c là các ký hi
u th
ng nhất chung có th
là:
o
Ngôn ng
đặ
c t
o
Ngôn ng
l
p trình
So sánh
đặ
c t
hình th
c và đặ
c t
phi hình th
c:
Đặc tả hình thức Đặc tả phi hình thức
Chính xác (vì s
d
ng các hi
ệu
toán
h
c
đ
ã
đượ
c thống nh
t trên
th
ế
gi
i)
.
Hợ
p th
c hóa hình th
c
.
Sử
d
ng công c
trao
đổ
i gi
ữa
các
ng
ườ
i thi
ế
t k
ế
, tuy nhiên s
dụ
ng các
hiệu toán h
c chuyên
ngành nên khó
đọ
c và khó hi
ểu
.
Ch
dành cho những ng
ườ
i có ki
ến
th
c
chuyên môn nên khó s
d
ụng
.
Phươ
ng pháp s
dụng ngôn ngữ tự
nhiên, t
do b
n
địa nên d
hi
u,
dễ
s
d
ụng
.
Kh
n
ă
ng m
m d
o cao, công c
t
là ngôn ng
d
thay th
ế
.
Thi
ế
u s
chính xác đầy
đủ
do
hạ
n
ch
ế
c
a ngôn ng
và mang tính ch
quan
.
Nh
p nh
ng
.
2.3.4
Ứng d
ng
ư
u vi
t kh
sử d
ng
đặ
c t
a)
ng d
ng
Đặ
c t
th
ường s
d
ng trong giai
đ
oàn
đầ
u c
a ti
ế
n trình phát tri
n sản phẩ
m
Chương II: Lý thuyết thiết kế hệ thống nhúng
Bài giảng lập trình nhúng 16
Nh
ằm h
n ch
ế
lỗi trong quá trình phát tri
n ph
n mềm, thông qua vi
c
đặ
c t
chi ti
ế
t
đầ
y
đủ
các chức n
ă
ng, nhiệm v
tính ch
t cho t
t cả các thành
phầ
n c
a sả
n ph
m
K
thu
t
đặ
c t
th
ường dùng khi phát tri
n các h
th
ống
o
Hệ
th
ng đ
iề
u khi
ển
o
Hệ
th
ng nhúng
o
Hệ
th
ng th
i gian th
ực
b)
Ưu vi
t khi sử d
ng
đặ
c t
Ư
u
đi
ểm khi sử d
ng
đặ
c t
đượ
c th
hi
n nh
t qua qua chi phí phát tri
n hệ
th
ng, ta có th
thấ
y rõ qua bi
u
đồ sau:
Hình 2.5 Biểu đồ so sánh chi phí phát tri
n h
th
ng s
dụng đ
c t
và không sử
d
ụng
Qua bi
u
đồ
ta d
nh nh
n ra t
ng chi phí khi s
d
ng
đặ
c t
gi
m
đ
i r
t
nhi
u,
điề
u nay s
là cho giá thành s
n ph
ẩm
đạ
t
được tính c
nh tranh
.
2.3.5
Phươ
ng pháp
đặ
c t
s
d
ng “Máy tr
ng thái h
u h
n FSM(Finite state
machine)”
Trong th
c t
ế
có m
t s
ph
ươ
ng pháp
đặ
c t
nh
ư
:
Máy tr
ng thái h
u h
ạn
M
ng Petri (th
ườ
ng dùng
để
t
các hệ th
ng ph
c t
p không
đồ
ng bộ,
nhi
u khâu làm vi
c song song)
Điề
u ki
n tr
ướ
c sau (th
ườ
ng dùng
đặ
c t
cho các hàm ho
c module)
| 1/111

Preview text:

MỤC LỤC
Chương 1 Tổng quan…………………………………………………………………….……1
1.1 Mở đầu…………….……………………………………………….………………….…1
1.2 Khái niệm về hệ nhúng…………………………………………………. ……….….….. 1
1.3 Vai trò của hệ thống nhúng trong sự phát triển của lĩnh vực công nghệ cao…….…….…3
1.4 Đặc tính, phương pháp thiết kế và xu thế phát triển của các hệ nhúng…………..…...4
1.5 Môi trường thông minh……………………………………………………………….6
1.6 Các hệ điều hành nhúng và phần mềm nhúng………………………………..………6
1.6.1 Hệ điều hành nhúng…………………………………………………...…………6
1.6.2 Phần mềm nhúng………………………………………………………...………7
Chương 2 Lý thuyết thiết kế hệ thống nhúng………………………………….…………8
2.1 Quy trình thiết kế Top-Down…………………………………………………………8
2.1.1 Pha phân tích……………………………………………………………..….…...8
2.1.2 Pha thiết kế nguyên lý………………………………………………….…….…10
2.1.3 Pha thiết kế kỹ thuật……………………………………………………..….…..11
2.1.4 Pha xây dựng hệ thống…………………………………………………..……...11
2.1.5 Pha kiểm tra………………………………………………………………..…...12
2.2 Quy trình thiết kế Bottom-Up……………………………………………………….12
2.3 Đặc tả hệ thố ng………………………………………………………….…….….….14
2.3.1 Khái niệm đặc tả (specification)………………………………….………..…...14
2.3.2 Tại sao cần đặc tả………………………………………………….…….….…...14
2.3.3 Phân loại các kỹ thuật đặc tả………………………………………….………….15
2.3.4 Ứng dụ ng và ưu việt khỉ sử dụng đặc tả……………………………….…….….15
2.3.5 Phương pháp đặc tả sử dụng “Máy trạng thái hữu hạn FSM”……………...16
2.4 Các phương pháp bi ểu diễn thuật toán……………………………………………..…17
2.4.1 Ngôn ngữ tự nhiên………………………………………………………...…….18
2.4.2 Dùng lưu đồ……………………………………………………………….……18
2.4.3 Mã giả……………………………………………………………………….…..21
Chương 3 Cấu trúc phần cứng……………………………………….……………………23
3.1 Cấu trúc tổng quát của hệ thống nhúng…………………………………….……….23
3.1.1 Kiến trúc cơ bản……………………………………………………………….....23
3.1.2 Cấu trúc phần c ứng…………………………………………………………......23
3.2 Một số nền tảng phần c ứng thông dụng………………………………………….…...24
3.2.1 Vi điều khiển Atmega8……………………………………………………..…..24
3.2.2 Kit Arduino Uno R3…………………………………………………………....29
3.2.3 Vi điều khiển MSP430G2553…………………………………………………...33
3.2.4 Kit MSP430 Launchpad……………………………………………………...….36
3.2.5 Vi điều khiển PIC18F2550………………………………………………..…….38
3.2.6 Kit PIC18F2550 Pinguino…………………………………………………..…...40
Chương 4 Phần mềm nhúng………………………………………………...……………..43
4.1 Đặc điểm phần mề m nhúng………………………………………………………….43
4.2 Lập trình nhúng với ngôn ngữ Arduino………………………………………………..43
4.2.1 Cấu trúc………………………………………………………………………...….43
4.2.1.1 setup().…………………………………………………………………….…43
4.2.1.2 loop()………………………………………………………………………....44
4.2.1.3 Cú pháp mở rộng…………………………………………..…………………45
4.2.1.4 Toán tử số học………………………………………………….….…………48
4.2.1.5 Toán tử so sánh…………………………………………………..…………..50
4.2.1.6 Toán tử logic…………………………………………………….…………...50
4.2.1.7 Toán tử hợp nhất…………………………………………………….….…....50
4.2.1.8 Cấu trúc điều khiển………………………………………………….…..…...51
4.2.2 Giá trị…………………………………………………………………………..….59
4.2.2.1 Hằng số…………………………………………………………….………...59
4.2.2.2 Kiểu dữ liệu……………………………………………………….……….....65
4.2.2.3 Chuyển đổi kiểu dữ liệu………………………………………….……..……73
4.2.2.4 Phạm vi của biến và phân loại biến………………………………….……….74
4.2.2.5 Hàm hỗ trợ sizeoff()……………………………………………………...…..78
4.2.3 Hàm và thủ tục………………………………………………………………….....79
4.2.3.1 Nhập xuất Digital……………………………………………………...……79
4.2.3.2 Nhập xuất Analog……………………………………………………..…....81
4.2.3.3 Hàm thời gian………………………………………….…….….…….……85
4.2.3.4 Hàm toán học………………………………………….……………...…….88
4.2.3.5 Hàm lượng giác………………………………………….……………..…...93
4.2.3.6 Sinh số ngẫu nhiên…………………………………………………...…..…93
4.2.3.7 Nhập xuất nâng cao………………………………………………………....96
4.2.3.8 Bits và Bytes………………………………………………………………..99
4.2.3.9 Ngắt………………………………………………………………….....…102 Chương I: Tổng quan Chương 1: TỔNG QUAN 1.1 Mở đầu
Trong sự phát triển mạnh mẽ c ủa khoa học kĩ thuật với nền kinh tế trí thức và xu
hướng hội nhập toàn c ầu như hiện nay, thế giới và Việt Nam đang thực hiện việc kết hợp
giữa các ngành thuộc lĩnh vực công nghệ cao trong một Khoa hoặc cơ sở đào tạo . Đó là
lĩnh vực khoa học dưới 3 ngọn cờ: Máy tính, Điện tử- Viễn thông và Điều khiển tự động
mà ta thường gọi là “3 C” (Computer – Communication - Control). Có thể nói, các quá
trình sản xuất và quản lí hiện nay như: các h ệ thống đo lường điều khiển tự động trong
sản xuất công nghiệp; các hệ thống di động và không dây tiên tiến, các hệ thố ng thông tin
vệ tinh, các hệ thống thông tin dựa trên Web, chính phủ điện tử, thương mại điệ n tử, các cơ
sở dữ liệu của nhiều ngành kinh tế và của Quốc gia, các hệ thống thiết bị Y tế hiện đại, các
thiết bị điện tử dân dụng, ... đều là sản phẩm của s ự k ết hợp giữa các lĩnh vực khoa học trên.
Hiện nay chúng ta đang ở thời đại h ậu PC sau giai đoạ n phát triển của máy tính lớn
(Mainframe) 1960-1980, và sự phát triển của PC-Internet giai đoạn 1980-2000. Giai
đoạn hậu PC-Internet này được dự đoán t ừ năm 2000 đến 2020 là giai đoạn của môi
trường thông minh mà hệ thống nhúng là cố t lõi và đang làm nên làn sóng đổi mới trong
công nghệ thông tin nói riêng và lĩnh vực công nghệ cao “3C”, nói chung. Một thực tế
khách quan là thị trường của các hệ thống nhúng l ớn gấp khoảng 100 l ần thị trường PC,
trong khi đó chúng ta mới nhìn thấy bề nổi của công ngh ệ thông tin là PC và Internet còn
phần chìm của công nghệ thông tin chiếm 99% số processor trên toàn cầu này nằm trong
các hệ nhúng thì còn ít được biết đến.
Sức đẩy của công nghệ đưa công nghệ vi đ iện tử, công nghệ vi cơ điệ n, công
nghệ sinh học hội tụ tạo nên các chip của công nghệ nano, là nền tảng cho nhữ ng thay đổi
cơ bả n trong lĩnh vực công nghệ cao “3C, s ức kéo của thị trường đòi hỏi các thiết bị phải
có nhiều chức năng thân thiện với ng ười dùng, có mức độ thông minh ngày càng cải
thiện đưa đến vai trò và tầm quan trọng của các hệ thống nhúng ngày càng cao trong nền kinh tế quốc dân.
Phát triển các hệ nhúng và phần mềm nhúng là quố c sách của nhiều quốc gia trên
thế giới, nhất là giai đoạn h ậu PC hiện nay. Ở nước ta đ áng tiếc lĩnh vực này lâu nay đã
bị lãng quên, do vậy cần có những điều chỉnh phù hợp trong chi ến lượ c phát tri ển để có
thể theo kịp, rút ngắn khoảng cách tụt hậu đối với các nước trong khu vực và trên thế giới
trong quá trình hội nhậ p nền kinh tế toàn cầu không thể tránh khỏi hiện nay.
1.2 Khái ni ệm về hệ nhúng
Hệ thống nhúng (tiếng Anh: Embedded system) là một thuật ngữ để chỉ một thống
có khả nă ng tự trị được nhúng vào trong một môi trường hay một hệ thống m ẹ. Hệ th ống
nhúng có vai trò đảm nhận một phần công vi ệc c ụ thể của h ệ thống mẹ. Hệ thống nhúng
có thể là một hệ thống phần cứng và cũng có thể là một hệ thống phần mềm. (Wikipedia, 2010)
Bài giảng lập trình nhúng 1 Chương I: Tổng quan
Ví dụ quanh ta có rất nhiều sản phẩm nhúng nh ư lò vi sóng, nồi cơm điện, điều
hòa, điện thoại di động, ô tô, máy bay, tàu thủy, các đầu đo, cơ cấu chấp hành thông
minh v.v... ta có thể thấy hi ện nay hệ thống nhúng có mặt ở mọi lúc mọi nơi trong
cuộc s ống của chúng ta .
Hình 1.1 Một số ví dụ về các thố ng nhúng thông dụng
Các nhà thống kê trên thế giới đã thống kê đượ c rằng số chip vi xử lý ở trong các
máy PC và các server, các mạng LAN, WAN, Internet chỉ chiếm khoảng 1% tổng số chip
vi xử lý có trên thế giới, 99% số vi xử lý còn lại nằm trong các hệ thống nhúng.
Như vậy công nghệ thông tin không chỉ đơ n thuần là PC, mạng LAN, WAN,
Internet phần mềm quản lý ... như nhiều người thường nghĩ. Đó chỉ là bề nổi của m ột tảng
băng chìm. Phần chìm của công nghệ thông tin chính là các ứng dụng của các hệ nhúng có
mặt trong mọi ngành nghề của đời sống xã hội hi ện nay. Các hệ nhúng được tích hợp trong
các thiết bị đo lường điều khiển t ạo nên đầu não và linh hồn của sản phẩm. Trong các
hệ nhúng, hệ thống điều khiển nhúng đóng một vai trò hết sức quan trọng.
Hệ điề u khiển nhúng là hệ thống mà máy tính được nhúng vào vòng điều khi ển của
sản phẩm nhằm điều khiển một đối tượng, điều khi ển một quá trình công nghệ đáp ứ ng các
yêu cầ u đặt ra. Hệ thố ng điều khiển nhúng lấy thông tin t ừ các cảm biến, xử lý tính toán các
thuật điều khiển và phát tín hiệ u điều khiển cho các c ơ cấu ch ấp hành.
Khác với các hệ thống điều khiển cổ điển theo nguyên lý thủy lực, khí nén, rơle,
mạch tương tự, hệ điều khiển nhúng là hệ thống điều khiển số được hình thành từ
những năm 1960 đến nay. Trước đây các hệ đ iều khiển số thường do các máy tính lớn đảm
nhiệm, ngày nay chức năng điều khiển số này do các chíp vi xử lý, các hệ nhúng đã thay
thế. Phần mềm điều khiển ngày càng tinh sảo tạo nên độ thông minh của thiết bị và ngày
càng chiếm tỉ trọng lớn trong giá thành của thiết bị.
Bài giảng lập trình nhúng 2 Chương I: Tổng quan
Điểm qua về chức năng xử lý tin ở PC và ở các thiết b ị nhúng có những nét
khác biệt. Đối với PC và mạng internet chức năng xử lý đang được phát triển mạnh ở các
lĩnh vực quản lý và dịch vụ như thương mại điện tử, ngân hàng điện tử, chính ph ủ điện tử,
thư viện điện tử, đào tạo từ xa, báo điệ n tử ... các ứng dụng này thường s ử dụng máy
PC để bàn, mạng WAN, LAN hoạt độ ng trong thế giới ảo. Còn đối với các hệ nhúng thì
chức năng xử lý tính toán được ứng dụ ng cụ thể cho các thiết bị vật lý (thế giới thật)
như mobile phone, quần áo thông minh, các thi ết bị điện tử c ầm tay, thiết bị y tế, xe ô
tô, tầu tốc hành, phương tiện vận tải thông minh, máy đo, đầu đo, cơ cấu chấp hành thông
minh, các hệ thống điều khiển, nhà thông minh, thiết bị gia dụng thông minh v.v...
1.3 Vai trò của hệ thống nhúng trong sự phát triển của lĩnh vực công ngh ệ cao “3C“.
Các hệ thống tự động đ ã được chế tạo trên nhiều công nghệ khác nhau như các thiết
bị máy móc tự động bằng các cam chốt cơ khí, các hệ thống tự động hoạt động bằng
nguyên lý khí nén, thủy lực, rơle c ơ điện, mạch điện tử số ... các thiết bị, hệ th ống này
có chức năng xử lý và mức độ t ự động thấp so với các hệ thống tự động hiện đại được
xây dựng trên nền tảng của các h ệ thống nhúng.
Trong khi các hệ thống tin học sử dụng máy tính để hỗ trợ và tự động hóa quá
trình quản lý, thì các h ệ thống điề u khiển tự động dùng máy tính để điề u khiển và tự động
hóa quá trình công nghệ. Chính vì vậy các thành tựu của công nghệ phần cứng và công nghệ
phần mềm của máy tính điệ n tử được áp dụng và phát triể n mộ t cách có chọn lọc và hiệu
quả cho các hệ thống điều khiển tự động. Và sự phát triển như vũ bão của công nghệ thông
tin kéo theo sự phát triển không ngừng củ a lĩnh vực tự động hóa.
Ta có thể thấy quá trình các hệ nhúng thâm nhập vào từng phần tử, thiết bị
thuộc lĩnh v ực tự độ ng hóa như đầu đo, cơ cấu ch ấp hành, thiết bị giao diện với người vận
hành thậm chí vào các rơle, contactor, nút bấm mà trước kia hoàn toàn làm bằng cơ khí.
Trước khi đầu đo g ồm phần tử biến đổ i từ tham s ố đo sang tín hiệu điện, mạ ch
khuyếch đại, mạch lọc và mạch biến đổ i sang chuẩn 4-20mA để truyền tín hiệu đo về trung
tâm xử lý. Hiện nay đầu đo đã tích hợp cả chip vi xử lý, biến đổi ADC, b ộ truyền dữ liệu số
với phần m ềm đo đạc, lọ c số, tính toán và truyền kết quả trên mạng số về thẳng máy tính
trung tâm. Như vậy đầu đ o đã được số hóa và ngày càng thông minh do các chức năng
xử lý từ máy tính trung tâm trước kia nay đ ã được chuyển xuố ng xử lý tại chỗ bằng chương
trình nhúng trong đầu đo.
Tươ ng tự như vậy cơ cấu chấp hành như môtơ đã được chế t ạo gắn k ết hữu cơ với
cả bộ servo với các thuật toán điều chỉnh PID tại chỗ và khả năng nối mạng số t ới máy tính chủ.
Các tủ rơle điề u khiển chiếm diện tích lớn trong các phòng điề u khiển nay được co
gọn trong các PLC(programble Logic Controller).
Các bàn điề u khiển với hàng loạt các đồng hồ chỉ báo, các phím, núm điều
khiển, các b ộ tự ghi trên giấy cồng kềnh nay được thay thế bằng một vài PC.
Bài giảng lập trình nhúng 3 Chương I: Tổng quan
Hệ thống cáp truyền tín hiệu analog 4-20mA, ± 10V từ các đầu đ o, cơ cấu chấp
hành về trung tâm điề u khiể n nhằng nhịt trước đây đã được thay thế bằng vài cáp đồng trục
hoặc cáp quang truyền dữ liệu số
Ta có thể nói các hệ nhúng đã “thay thế và chiếm phần ngày càng nhiều” trong các
phần tử , hệ thống thuộc lĩnh vực công nghệ cao “3C”.
Vào những năm 30 các h ệ thống tự động bằng cam chốt cơ khí thường hoạt
động đơn lẻ với một chức năng xử lý. Các hệ thống tự động dùng rơle điện từ xuất hiện
vào những năm 40 có mức xử lý khoảng 10 chức năng. Các hệ thống tự động dùng bán
dẫn hoạt động theo nguyên lý tương tự (Analog) của thập kỷ 60 có mức xử lý kho ảng 30
chức n ăng. Vào những năm 70 các thiết bị điều khiển khả trình PLC ra đời với mức độ xử
lý lên hàng trăm và vào những năm 80 với sự tham gia của các máy tính điện tử main frame
mini đã hình thành các hệ thống điều khiể n phân cấp với số chức năng xử lý lên t ới hàng
chục vạn (105). Sang thập kỷ 90 với sự phát triển của công nghệ phần cứng cũng như
phần mềm, các hệ thống điều khiển phân tán ra đời(DCS) cho mức xử lý lên t ới hàng
trục triệu (107). Và sang thế kỷ 21, những hệ thống tự động có tính tự tổ chức, có tư
duy hợp tác sẽ có mức xử lý lên tới hàng tỷ(109). Tuy nhiên để đạt được độ thông minh
như những sinh vật sống còn cần nhiều thời gian hơn và các hệ thống tự động còn cần tích
hợp trong nó nhiều công nghệ cao khác như công nghệ cảm biến, công nghệ vật li ệu mới,
công nghệ quang và laser v.v... Đây cũng là xu thế phát triển c ủa các hệ thống tự động
là ngày càng sử dụng nhiều công nghệ mới hơn trong cấu trúc và hoạt động của mình.
Trong điều khiển quá trình công ngh ệ, việc áp dụng các hệ nhúng đã tạo ra khả
năng tự động hóa toàn bộ dây chuy ền sản xuấ t. Kiến trúc hệ thống điều khi ển trước kia tập
trung về xử lý tại một máy tính thì nay các đầu đo, cơ c ấu chấp hành, giao diện với người
vận hành đều được thông minh hóa có nhiều chức năng xử lý tại chỗ và khả nă ng nố i
mạng nhanh tạo thành hệ thống mạng máy điều khiển hoạt động theo chế độ thời gian
thực. Ngoài các chức nă ng điều khiển và giám sát dây chuyền s ản xuất hệ thống còn có
nhiều cơ sở dữ li ệu, khả n ăng tự xác định và khắc phục hỏ ng hóc, khả năng thống kê,
báo cáo và kết hợp hệ thống mạ ng máy tính quản lý, lập kế hoạch, thiết kế và kinh doanh
tạo thành hệ thống tự động hóa s ản xuất toàn cục.
Trong lĩnh vực rôbôt, với sự áp dụng các thành tự u củ a các hệ nhúng, rôbôt đã có
thị giác và xúc giác. Việ c áp dụ ng trí khôn nhân tạo vào rôbôt đã đưa rôbôt từ ứng dụng
chủ yếu trong công nghiệp sang các lĩnh vực dịch vụ và y tế. Kết hợp với các thành tựu
của cơ điệ n tử, rôbôt ngày càng uyển chuyển và thông minh hơn. Trong tương lai rôbôt
không chỉ thay thế hoạt động cơ bắp của con người mà còn có thể thay thể các công việc
đòi hỏi họat động trí não củ a con người. Lúc này hệ thố ng điều khiển của rôbôt không chỉ
là các vi xử lý mạnh mà còn có sự hỗ trợ của các máy tính mạng nơron nhân tạo, xử lý
song song nhúng trong rôbôt. Các nghiên cứu phát triển này hiện nay còn ở giai đoạn ban đầu.
1.4 Đặc tính, phương pháp thiết kế và xu thế phát triển củ a các hệ nhúng
Các hệ nhúng là những hệ kết hợp phần cứng và phần mềm một cách t ối ưu. Các
Bài giảng lập trình nhúng 4 Chương I: Tổng quan
hệ nhúng là những hệ chuyên dụng, thường hoạt động trong chế độ thời gian thự c, bị hạn
chế về bộ nhớ, giá thành phải rẻ nhưng lại phải hoạt động tin cậy và tiêu tốn ít năng lượng.
Các hệ nhúng rất đa dạng và có nhiều kích c ỡ, khả năng tính toán khác nhau. Ngoài ra
các hệ nhúng thường phải hoạt động trong môi trường khắc nghiệt có độ nóng ẩm, rung
xóc cao. Ví dụ như các điều khiển các máy diesel cho tàu biển, các thiết bị cảnh báo cháy
nổ trong hầm lò. Các hệ thống nhúng lớn thường là các hệ nối mạng. Ở máy bay, tàu vũ
trụ thường có nhiều mạng nhúng kết nối để kiểm soát hoạt động và điề u khiển.Trong ô tô
hiện đại có đến trên 80 nút mạng kết nối các đầu đo cơ cấu chấp hành để bảo đả m ô tô hoạt
động an toàn và thoải mái cho người s ử dụng.
Thiết kế các hệ thống nhúng là thiết kế phần cứng và phần mềm phối hợp. Cách thiết
kế cổ điể n là cách xác định trước các ch ức năng phần mềm (SW) và phần cứng (HW) rồi
sau đó các bước thiết kế chi tiết được ti ến hành một cách độc lập ở hai khối. Hiệ n nay đa
số các hệ thống tự động hóa thiết k ế (CAD) thường dành cho thi ết kế phần cứng. Các
hệ thống nhúng hiệ n nay sử dụng đồng thời nhiều công ngh ệ như vi xử lý, DSP, mạng và
các chuẩn ph ối ghép, protocol, do vậy xu thế thiết kế các hệ nhúng hiện nay đòi hỏi có
khả năng thay đổ i mềm dẻo hơn trong quá trình thiết kế 2 ph ần HW và SW. Để có được
thiết kế cuối cùng tối ưu, quá trình thiế t kế SW và HW phải phối hợp với nhau chặt chẽ
và có thể thay đổi sau mỗi lần thử chức năng hoạt động tổng hợp. Thi ết kế các hệ nhúng
đòi hỏi ki ến thức đ a ngành về điện tử, xử lý tín hiệu, vi xử lý, thuật điều khiển và lập trình thời gian thực.
Phần mềm trong các hệ nhúng ngày càng chiếm tỉ trọng cao và đã trở thành một
thành phần cấu t ạo nên thiết bị bình đẳng như các phần cơ khí, linh kiện điện tử, linh kiện
quang học ... các hệ nhúng ngày càng phức tạp hơn đáp ứng các yêu c ầu khắt khe về thời
gian thực, tiêu ít năng lượ ng, hoạt động tin cậy ổn định hơn, có khả năng hội thoại cao,
có khả năng kết n ối mạng, có thích nghi, tự tổ chức cao có khả năng tái cấu hình nh ư một
thực thể, mộ t tác nhân.
Và có khả năng tiếp nhận nă ng lượng từ nhiều nguồn khác nhau (ánh sáng, rung
động, điện từ trường, sinh học ...) để tạo nên các hệ thố ng tự tiếp nh ận năng lượng trong quá trình họat động.
Tuy nhiên hệ thống nhúng hiện nay còn ph ải đối mặt với nhiều thách. Độ phức tạp
của hệ thố ng tăng cao do nó kết hợp nhiều lĩnh vực đa ngành, kết hợp phần cứng - mềm,
trong khi các phương pháp thiết kế và kiểm tra chưa chín muồi. Khoảng cách giữa lý
thuyết và thực hành lớn và còn thiếu các phương pháp và lý thuyết hoàn chỉnh cho khảo
sát phân tích toàn cục của hệ nhúng bao gồm lý thuyết điều khiển tự động, thiết kế máy,
công nghệ phần mềm, điện tử , vi xử lý, các công nghệ hỗ tr ợ khác. Mặt khác các hệ nhúng
còn nhiều vấn đề cần giải quyết với độ tin cậy và tính mở của hệ thống. Do hệ thống
nhúng thườ ng phải hội thoại với môi trường xung quanh nên nhiều khi gặp những tình
huống không lường trước dễ dẫn đến hệ thống b ị loạn. Trong quá trình hoạt động mộ t số
phần mềm thườ ng phải chỉnh lại và thay đổi nên hệ thống phần mềm có th ể không kiểm
soát được. Đối với h ệ thố ng mở, các hãng thứ 3 đưa các module mới, thành phần mới
vào cũng có thể gây nên sự hoạt động thiếu tin cậy.
Bài giảng lập trình nhúng 5 Chương I: Tổng quan
1.5 Môi trường thông minh
Công nghệ bán dẫn phát triển m ạnh theo xu thế ngày càng rẻ, tích hợp cao, có khả
năng tính toán lớn, khả năng kết nối toàn cầu, khả năng phối hợp với các cảm biến và c ơ
cấu chấp hành vi cơ điện và sinh họ c, khả năng giao diện không qua bàn phím đang tạo
tiền đề và cơ sở cho sự bùng nổ của các thiết bị vật dụ ng thông minh xung quanh ta. Đây
là sự khởi đầu của thời đại hậu PC - Môi trường thông minh. Các phần mềm nhúng trong
các chip vi hệ htống rất phong phú và có độ mềm dẻo, tái sử dụ ng cao.
Sức đẩy của công ngh ệ sẽ đưa công nghệ vi điện tử tiếp cận và cộng năng với
công nghệ sinh học tạo nên công nghệ nano với độ phức tạp giga vào thập niên 2010-2020.
Các chip vi hệ thống xử lý h ỗn hợp tương tự và s ố MS-SoC (Mixed Signal System on
chip) vào giai đoạn này sẽ có trên 2 tỷ transistor, 1000 lõi CPU, 100MB bộ nhớ và hoạt
động ở tần số 200GHz.
Với những vi hệ thố ng có khả năng tính toán siêu hạng này việc thiết kế các hệ
nhúng sẽ gặp không ít thách thứ c như xử lý song song, độ phức tạp củ a phần mềm
nhúng và khả năng cung cấ p năng lượ ng cho các thiết bị cầm tay. Trong tương lai nă ng
lượng cho truyền dữ liệu sẽ lớn gấp từ 5 đến 30 lần nă ng lượng hoạt động của các CPU.
Trước đây các hệ thống thường được thi ết kế trên nền phần cứng là PC và phần
mềm là Windown hoặc Linux, thì ngày nay số lượng các h ệ nền (platform) cho thiết kế các
hệ nhúng có khoảng 25. Trong tương lai các hệ nhúng sẽ được thi ết kế trên nền các chip
MS-SoC tạo nên các platform thiết kế chuyên dụng với số lượng sẽ lên đến hơn 500 loại.
Ta có thể liệt kê mộ t số ví dụ điể n hình như platform raptor II cho thiết kế camera số,
PXA240 cho thiết kế các thiế t bị PDA, TL850 cho TV số, BLUECORE cho công nghệ
không dây Bluetooth, CDMA cho mobile phone 3G ... các hệ MS-SoC sẽ có khả năng tái
cấu hình và sẽ là công cụ chủ chốt cho các sản phẩm của công nghệ cao “3C”.
1.6 Các hệ điều hành nhúng và phần mề m nhúng
1.6.1 Hệ điều hành nhúng
Khác với PC thường chạy trên nền hệ điều hành windows hoặc unix, các hệ
thống nhúng có các hệ điều hành nhúng riêng của mình . Các hệ điều hành dùng trong các
hệ nhúng nổi trội hiện nay bao gồm Embedded linux, VxWorks, WinCE, Lynyos, BSD,
Green Hills, QNX và DOS, Embeddde linux hiện đang phát triển mạnh. Năm 2001 hệ
điều hành này chiếm 12% thị phần các hệ điều hành nhúng thì năm 2002 chiếm 27%
và chiếm vị trí số 1. Hiện nay 40% các nhà thiết kế các hệ nhúng cân nhắc đầu tiên sử dụng
Embedded linux cho các ứng dụng mới của mình và sau đó m ới đến các hệ điều hành
nhúng truyền thống như VxWorks, WinCE. Các đố i thủ cạnh tranh của Embedded linux
hiện nay là các hệ điều hành nhúng tự tạo và windows CE. Sở dĩ Embedded linux có sự
phát triển vượt bậc là do có sức hấp d ẫn đối với các ứng dụng giá thành thấp và đòi hỏ i
thời gian đưa sản phẩm ra thị trường nhanh. Mặt khác Linux là phần mềm mã nguồn mở
nên bất kỳ ai cũng có thể hiểu và thay đổi theo ý mình. Linux c ũng là một hệ điều hành
có cấu trúc module và chiếm ít bộ nhớ trong khi windows không có các đặc tính ưu
Bài giảng lập trình nhúng 6 Chương I: Tổng quan
việt này. Do thị trường c ủa các sản phẩm nhúng tăng mạnh lên các nhà sản xuất ngày càng
sử dụng các hệ điều hành nhúng để đảm bảo sản phẩm có sức cạnh tranh và Embedded
linux đang là sản phẩm h ệ điều hành nhúng có uy tín chiếm vị trí số 1 trong nhữ ng năm tới. 1.6.2 Phần mềm nhúng
Phần mềm nhúng là phần mềm tạo nên phần hồn, phần trí tuệ của các sản phẩm
nhúng. Phần mềm nhúng ngày càng có tỉ lệ cao trong giá trị của các sản phẩm nhúng. Hiện
nay phần lớn các phần mềm nhúng nằm trong các sả n phẩm truyền thông và các sản phẩm
điện tử gia dụng (consumer electronics) tiếp đến là trong các sản phẩm ô tô, phươ ng tiện
vận chuyể n, máy móc thiết bị y tế, các thiết bị năng lượng các thiết bị cảnh báo bảo vệ
và các sản phẩm đ o và điều khiển. Để có thể tồn tại và phát triển, các sản phẩm công nghi ệp
và tiêu dùng cần phải thường xuyên đổi mới và ngày càng có nhiều chức năng tiện dụng
và thông minh hơn. Các chức năng này phần l ớn do các chương trình nhúng tạo nên.
Phần mềm nhúng là một lĩnh vực công nghệ then chốt cho sự phát triển kinh tế của
nhiều quốc gia trên thế giới như Nhật Bản, Hàn Quốc, Phần Lan và Trung Quốc . Tại Mỹ
có nhiều chương trình hỗ trợ của nhà nước để phát triển các hệ thố ng và phần mềm nhúng.
Hàn Quốc có những dự án lớn nhằ m phát triển công nghệ phần mềm nhúng như các thiết
bị gia dụng nối mạng Internet, hệ thống phần mềm nhúng cho phát triển thành phố thông
minh, dự án phát triển ngành công nghiệp phần mềm nhúng, trung tâm hỗ trợ các ngành
công nghiệp hậu PC v.v... Hàn Quốc cũng chấp nhận Embedded linux như một hệ điều
hành chủ chố t trong việc phát triển các sản phẩm nhúng của mình. Thụy Điển coi phát
triển các hệ nhúng có tầm quan trọ ng chiến lược cho sự phát triển c ủa đất nước. Phần
Lan có những chính sách quốc gia tích cực cho nghiên cứu phát triển các hệ nhúng đặc
biệt là các phần mề m nhúng. Những quố c gia này còn thành lập nhiề u viện nghiên cứu
và trung tâm phát triển các hệ nhúng.
Bài giảng lập trình nhúng 7
Chương II: Lý thuyết thiết kế hệ thống nhúng
Chương 2: LÝ THUYẾT THIẾT KẾ HỆ THỐNG NHÚNG
2.1 Quy trình thiết kế Top-Down
Quy trình Top-Down thường được áp dụ ng cho các bài toán đã có giải pháp
công nghệ cả về phần mềm cũng như phần cứng. Các giải pháp này đã được phát triển trước
đó ở các ứng dụ ng khác, và đã được kiểm định.
Trong thực tế chúng ta sẽ thấy, bản chấ t hay mấu chốt của quy trình là vấn đề tìm
hiểu và xác định bài toán, làm sao để xác định được chính xác và đầy đủ nhất các yêu cầu
cũng các rằng buộc mà hệ thống ph ải đạ t được.
Sơ đồ khối quy trình kế top-down ở hình 2.1
Hình 2.1 Sơ đồ khối quy trình Top - Down 2.1.1 Pha phân tích
Pha này là pha quan trọng nhất quyết định hệ thống có đạ t yêu cầu hay không. Mộ t
hệ thống nhúng c ụ thể phải được đặt vào (nhúng vào) một hệ thống lớn cụ thể. Vì thế ta
Bài giảng lập trình nhúng 8
Chương II: Lý thuyết thiết kế hệ thống nhúng
cần phải biết có những yêu cầu nào cho nó, môi trường hay điều kiện làm việc của nó.
Thông tin này gọi là các yêu cầu và các điều kiện rằng buộc cho hệ thố ng, nó giúp cụ thể
hoá được việc chọn giải pháp công nghệ và thiết bị cho các kỹ sư thiết k ế ở pha sau.
- Các yêu cầu: Các thông tin chi tiết về nhiệm vụ mà hệ thố ng phải giải quyết
được, các tham số đầu vào đầu ra, các giới hạn trong hệ thống cụ thể,...
- Các rằng buộ c: Điều kiện làm việc và các hạn chế như thời tiết, độ ẩm, độ
nhiễu, độ chính xác, tính thời gian thực, loại tín hiệu giao tiếp với hệ thống mẹ,...
Ví dụ: Xét bài toán thiết kế hệ thống điều khiển cho 1 cử a tự động
Giả sử qua quá trình khảo sát thực tế và yêu cầu của bên khác hàng ta phải xác định
được các thông số tối thiểu sau: a) Yêu cầu:
1) Hệ thống áp dụng cho 1 cửa hai chiều (vào/ra) 2) Cửa cao 2,5m rộng 3m
3) Có người trong phạm vi 2m trước và sau c ửa là cửa phải mở
4) Thời gian mở và đóng cửa 3s
5) Cử a đang đóng gặ p vật cản phải mở ra ngay
6) Làm việc điện áp 220v/50Hz
7) Chi phí cho bộ điều khiển không quá 10 triệu VNĐ
8) Hệ thống thống có 2 chế độ làm vi ệc tự động và bằng tay
9) Sensor và công nghệ tu ỳ chọn
b) Điều kiện rằng buộc
1) Sử dụng động c ơ động lực có sẵn loại AC mộ t pha 220V/50Hz 3kW.
2) Nơi đặt cửa có nhi ều người qua lại, nên hệ thống sẽ phải làm việc với tần suất cao.
3) Điề u kiện môi trường: Trong nhà, nhiệt độ từ 180C đế n 360C
4) Bộ điều khiển bằng tay đặt cạnh cửa phía bên trong nhà
5) Hệ thống điện cấp mới từ đầu
6) Chịu được quá tải khi gặp chướng ng ại vật trong khoảng thời gian dài.
Trong các bài toán cụ thể, vớ i các hệ thống mẹ cụ thể, mỗi hệ thống nhúng s ẽ có các
yêu cầu khác nhau. Tuy nhiên vẫn có những tiêu chuẩn và yêu cầu chung mà hầ u hết các
hệ thống phải tính đến như:
- Tính đế n chi phí bảo trì định kỳ
- Kích thước và trọng lượng
- Khả năng thực thi: Thời gian đáp ứng, độ chính xác, độ phân giải, ...
Bài giảng lập trình nhúng 9
Chương II: Lý thuyết thiết kế hệ thống nhúng - Nguồn nuôi
- Tính mềm dẻ o, khả năng nâng cấ p, khả năng tương thích, khả năng phục hồi sau khi mất nguồn,... - Thời gian th ử
- Thời gian để thương mại sản phẩm - Độ an toàn
- Khả n ăng chống l ại sự phá hoại hay xâm nhập.
2.1.2 Pha thiết kế nguyên lý
Mục tiêu của pha này là xác định các giải pháp công ngh ệ từ các yêu cầu đặt ra ở
pha Phân tích, từ đó đi thi ết kế mô hình, sơ đồ nguyên lý cho toàn bộ hệ thống bao g ồm
cả phần cứng và phần mềm.
Để thực hiện bước này thông thường trải qua các bước sau:
- Trước tiên ta phải xây dựng m ột sơ đồ mô hình tổng quát của toàn hệ thống.
- Sau đó phân tách thành các module hay các hệ thống con.
- Định giá cho hệ thống, lập kế hoạch phát triển và ước lượng thời gian phát triển hệ thống.
- Xây dựng các sơ đồ luồng dữu liệu giữa các module hay các hệ thống con trong hệ thống
Ví dụ 2: Xây dựng và phân tách các module trong mô hình tổng quát của bài toán điều khiển động cơ.
Hình 2.2 Sơ đồ tổng quát của một hệ thống điều khiển động cơ
Bài giảng lập trình nhúng 10
Chương II: Lý thuyết thiết kế hệ thống nhúng
2.1.3 Pha thiết kế kỹ thu ật
• Xây dựng các thiết kế chi tiết cho cả phần cứng phần mềm, các bản thiết kế này sẽ
được chuyển sang pha th ực thi để xây dựng h ệ th ống. Vì th ế ở pha này người thiết kế phải
đư a ra các bản thiết kế như:
1. Sơ đồ kh ối, s ơ đồ thuật toán.
2. Cấ u trúc dữu li ệu, dữ liệu chia sẻ.
3. Sơ đồ nguyên lý m ạch, chi tiết về các đầu vào/ra, loại tín hiệu hay giao th ức giao tiếp.
4. Thông số linh kiện được chọn ho ặc có thể thay thế.
5. Các tham số vào/ra cho hệ thống.
6. Lựa chọn thiết bị, công cụ phát triển hệ thống, các tài nguyên sẽ sử d ụng. 7. ...
• Xây dựng sơ đồ quan hệ giữa các module và các hàm trong hệ thống (call graph), sơ
đồ này mô tả cách thức tương tác giữa phần cứng và phần m ềm trong hệ thống.
Ví dụ: Sơ đồ Call graph của hệ thống điều khiển động cơ
Hình 2.3 Sơ đồ quan hệ (call graph) giữa các module phần cứng và phân mềm trong hệ thống điều khiển động cơ
Để phát hiện và hạn chế tối đa các lỗ i mà hệ thống sẽ gặp phải sau khi được xây
dựng, ta có thể mô hình hóa các thành phần hoặc toàn bộ hệ thống nếu có th ể, nhằm thử
nghiệm hoạt động của hệ thống với các đầu vào và tình huống giả lập, đồng thời thử
nghiệm tính thân thiện của giao diện người dùng.
2.1.4 Pha xây dựng hệ thố ng
Từ các bản thiết kế, bước này tiến hành xây dựng hoàn thiện hệ thống trên cả
phân mềm và phần cứng. Trong suố t quá trình xây dựng phải tuân thủ theo các bước và
sơ đồ công nghệ từ các bản thiết kế kỹ thuật. Đặc biệt là các tham số vào ra giữa các
Bài giảng lập trình nhúng 11
Chương II: Lý thuyết thiết kế hệ thống nhúng
hàm, điều này ảnh hưởng đến việc tích hợp các module giữa các nhóm làm việc khác
nhau hay sự kế thừa từ các module khác. Các linh kiện và thiết bị sử dụng phải tuân thủ
theo bản thiết kế, nhằm giúp hệ thống thỏa mãn đầy đủ các thông số rằng buộc đã được
đặt ra ở pha phân tích.
Việc phát tri ển hệ thống có th ể được phân tách thành nhiều nhóm, nhiều phần
không cần tuân theo tuần tự, hoặc có thể trên nhiều môi trường khác nhau miễn sao đảm
bảo việc trao đổi tham số giữa các module là tương thích và đầy đủ. Nếu chúng ta phân tách
và thiết kế tốt, việc phát triển hệ thống có thể được tiến hành song song, hoặc kế th ừa
cái có sẵn, sẽ làm giảm thời gian phát triển hệ thống đáng kể mà v ẫn đảm bảo các yêu cầu đã đặt ra.
Một số các kỹ thuật nhằm phát hiện và hạn chế lỗi mà người phát triển có thể áp
dụng trong pha này là Debug hay mô phỏng Simulation. Tuy nhiên trong một bài toán cụ
thể việc Debug là rất khó, thông thường người phát triển luôn sử dụng một trình mô phỏng
(Simulation) với các phép thử trên các tín hiệu giả lập. 2.1.5 Pha kiểm tra
Mục tiêu c ủa pha này là đ ánh giá khả năng thực thi của hệ thống sau khi đã
hoàn thiện, thông thường ta thực hiện các bước sau:
 Đầu tiên ta tiến hành gỡ lỗi (debug) và kiểm định cho từng chức năng cơ của hệ thống.
 Tiếp theo đánh giá khả năng thực thi của hệ thống dựa trên nhiều tiêu chí khác
nhau như: Tốc độ, độ chính xác, tính ổn định,…
Ngày nay rất nhiều công ty trên nhiều lĩnh vực tuyển dụng nhân sự riêng cho pha này
gọi là testing hay các tester. Nhiệm củ a của các Tester không ch ỉ là kiểm các tính năng
của sản phẩm có phù hợp với các yêu cầu đ ã đề ra hay không, mà còn phải ngh ĩ ra các
tình huố ng, các mẫu,… để tìm ra các lỗi mà người thiết kế hay người phát triển chưa phát hiện ra được.
Các thông tin kết quả của bước này quyết định một sản phẩm có thể được
thương mại hóa hay không, hay phải bắt đầu một chu kỳ mới với pha đầu tiên là pha phân
tích bao gồ m các thông tin mớ i thu thập được từ b ước này. 2.2. Quy trình Bottom-Up
Quy trình Bottom-Up trong thực tế thường áp dụng trong các bài toán chưa l ựa
chọn hay chưa tìm ra được giải pháp công nghệ. Mấu chốt của quy trình tập trung chủ yêu
và quá trình thử nghiệm với hệ thống và tín hiệu thực, từ đó chọn ra giải pháp công
nghệ và linh ki ện phù hợp nhất cho bài toán. Sơ đồ t ổng quát củ a quy trình như hình 2.4
Bài giảng lập trình nhúng 12
Chương II: Lý thuyết thiết kế hệ thống nhúng
Hình 2.4 Sơ đồ khối quy trình Bottom - Up
Quy trình Bottom-Up bắt đầu từ các ý t ưởng đơn lẻ, sau đó xây dựng luôn thiết kế
kỹ thuật. Như ta thấy quy trình hoàn toàn ngược so với Top-Down. Quy trình này thường
áp dụng có các bài toán chưa lắm chắc về lời giải, người thiết kế mới chỉ có ý tưởng về
một vấn đề nào đó và muốn tìm một giải pháp hoặ c giải pháp tốt nhất để giải quyết vấn đề.
Việc giải quyết các ý tưởng có thể 1 ho ặc nhiều để có một sản phẩm hoàn chỉnh. Ở quy
trình này ta cần chú ý có 2 khâu test nhằm kiểm định chính xác lại các thiết kế kỹ thuật và
thiết kế nguyên lý trước khi lựa chọn 1 gi ải pháp tối ứu nhất.
Chính từ việc thí nghiệm và thiết kế thử hệ thống trước, sau đó mới có thể phân tích
nguyên lý để chọn các đặc tính mới, rằng buộc m ới cho m ột hệ thống m ới. Với quy trình
này khâu thiết kế kỹ thuật và Test sau khi xây dựng hệ thống là quan trọng nhất. Vì với
Top-Down việc xây dựng một sản phẩm là theo nhu cầu của người dùng và môi trường
đặt hệ thống. Còn với Bottom-Up có thể ng ười ta còn chưa tìm ra cách để thi ết kế ra sản
phẩm đ ó, hoặc sản phẩm đó chư a hề có trên thị trường, khi đó cả người dùng và người
thiết kế chưa thể có thông tin gì về các yêu cầu cho sản phẩm hay các đặt tính kỹ thuật của
sản phẩm, vì vậy khâu thiết kế kỹ thuật và Test sau thực thi các kỹ sư phải tìm ra các đặ t
tính đó, nhằm xác định được các ưu việt cũng như các hạn chế của sản phẩm mới.
Bài giảng lập trình nhúng 13
Chương II: Lý thuyết thiết kế hệ thống nhúng 2.3 Đặc tả hệ thống
2.3.1 Khái niệm đặc tả (specification)
Kỹ thuật đặc tả nhằm định nghĩa m ột hệ thống, module hay sản phẩm cần phải làm
gì, nhưng không mô tả nó phải làm thế nào. Nghĩa là đặc tả chỉ tập trung vào việc mô tả
các chức năng, đầu vào và đầu ra, còn giải pháp để từ đầu vào có được đầu ra như thế
nào thì không mô tả. Đồng thời nêu nên các tính chất củ a vấn đề đặt ra.
Như vậy bản chất ta sử dụng m ột công cụ để mô hình hoá một hệ thống thành các
module, các luồ ng dữ liệu vào ra, các yêu cầu của tín hiệu hay dữ liệu, các thông tin trao
đổi giữa các module,... Sao cho toàn bộ quy trình làm việc của hệ thống có thể đọc được
thông qua đặc tả. Ở đây ta không quan tâm đến công nghệ của h ệ thống, mà chỉ quan tâm
đến chức năng, nhiệm vụ và các tính chất mà hệ thống phải có được.
Đặ c tả có thể được tiến hành ở nhiều giai đoạn, nhi ều lần trong tiến trình phát triển hệ thố ng như:
• Đặc tả yêu cầu (requirement specification): Nhằm mô tả đầy đủ và chi tiết
những thống nhất giữa người sử dụng tương lai và người thiết kế về hệ thống. Đ ây là các
thông tin cơ sở để người thiết kế thiết hệ thống của mình, nhiệm vụ người thiết kế pahỉ
thiết kế đầy đủ và hoàn thiện theo yêu cầu đã th ống nhấ t, người sử dụng tương lại được
phép đỏi hỏi, giám sát việc thực thi các yêu cầu trong phạm vi đ ã thoả thuận.
• Đặc t ả kiến trúc hệ thống (system architect specification): Nhằm mô tả sự thống nhất
giữa người thiết k ế và người cài đặt. Các đặt tả nhằm chỉ ra được các ch ức năng, tính chất
và nhiệm vụ cho các thành phần hệ thống chu ẩn bị đượ c cài đặt. Việc xác định các yêu cầu
từ đó chuyển thành bản thiết kế đ ã được đặc tả ởkhâu đặ c tả yêu cầu, vì thế khâu này người
cài đặt chỉ quan tầm đến bản thiết kế và những rằng buộc đã thống nhất với người thiết kế.
• Đặc tả Module (module specification): Mô tả sự thống nhất giữa người l ập trình cài
đặt module và người lập trình sử dụng module. Quá trình cài đặt hệ thố ng có thể được phân
ra thành nhiều module được cài đặt m ột cách song song, hay kế thừa từ module có sẵn
hay module đặt hàng, vì thế người cài đặt và người sử dụng module cần đặc t ả chi tiết
các chức năng, nhiệm vụ và đặc biệt các giao tiếp củ a hàm, để sao cho có thể ghép nố i
tương thích và hiệu quả module đó vào hệ thống.
2.3.2 Tại sao cần đặc t ả
Việc đặc tả là rất c ần thiết trước khi xây dựng một hệ thống bất kỳ trong lĩnh v ực nào bờ i vì:
• Đặc tả mang tính hợp đồng: Mô tả đầy đủ và chi tiết sự thống nhất giữa ngườisử dụng
và người phát triển, chính vì thế đây là cơ pháp lý và khoa học để người phát triển thiết
kế, còn người sử dụng thì giám sát và ki ểm định.
• Giúp sản phẩm hợp thức hoá: Sản phẩm được phát triển theo các yêu cầu đã
thoả thuận, vì thế sản phẩm đương nhiên sẽ đặt yêu cầ u với người s ử dụng.
Bài giảng lập trình nhúng 14
Chương II: Lý thuyết thiết kế hệ thống nhúng
• Đặc t ả là công cụ để trao đổi: Ngôn ngữ đặc tả là một ngôn ngử được quy định
chung và thống nhất vì thế các đặc tả có thể được trao đổi giữa các người thiết kế với
nhau. Đồng thời thông qua đó người sử dụng cũng có thể có cái nhìn tổng quát về sản phẩm.
• Tái sử dụng: Một đặc tả có thể được lưu giữ để phát triển tiếp hoặc được bổ sung nâng cấp v ề sau.
2.3.3 Phân loại các kỹ thuậ t đặc tả
a) Đặc tả phi hình th ức: S ử dụ ng 1 trong các công cụ sau để mô tả hệ thống
o Ngôn ngữ tự nhiên tự do
o Ngôn ngữ tự nhiên có cấu trúc o Các ký hiệu đồ họa
b) Đặc tả nửa hình thức: Sử dụng hỗ n hợp cả ngôn ngữ tự nhiên, các ký hiệu toán
học và các ký hiệu đồ họa
c) Đặc tả hình thức: Sử dụng các ký hiệu toán học để mô hình hóa hệ thống, các
ký hiệu toán học là các ký hiệu thống nhất chung có thể là: o Ngôn ngữ đặc tả o Ngôn ngữ lậ p trình
So sánh đặc tả hình th ức và đặc tả phi hình thức: Đặc tả hình thức Đặc tả phi hình thức
• Chính xác (vì sử dụng các ký hiệu toán •
Phương pháp sử dụng ngôn ngữ tự
học đã được thống nhất trên thế giới).
nhiên, tự do và b ản địa nên dễ hiểu, dễ sử
• Hợp thức hóa hình thức. dụng.
• Sử dụng là công cụ trao đổ i giữa các • Khả năng mềm dẻo cao, vì công cụ mô
người thiết kế, tuy nhiên vì sử dụng các tả là ngôn ngữ dễ thay thế.
ký hiệu toán học chuyên ngành nên khó • Thiếu sự chính xác và đầy đủ do hạn đọc và khó hiểu.
chế củ a ngôn ngữ và mang tính chủ quan.
• Chỉ dành cho những người có kiến thức • Nhập nhằng.
chuyên môn nên khó sử dụng.
2.3.4 Ứng dụng và ưu việt kh ỉ sử dụng đặc tả a) Ứng dụng
• Đặ c tả thường sử d ụng trong giai đoàn đầu của tiến trình phát triển sản phẩm
Bài giảng lập trình nhúng 15
Chương II: Lý thuyết thiết kế hệ thống nhúng
• Nhằm hạn chế lỗi trong quá trình phát triển ph ần mềm, thông qua việc đặc tả
chi tiết và đầy đủ các chức năng, nhiệm v ụ và tính chất cho tất cả các thành phần của sả n phẩm
• Kỹ thuật đặc tả thường dùng khi phát triển các hệ thống
o Hệ thống điều khi ển o Hệ thống nhúng
o Hệ thống th ời gian thực
b) Ưu việt khi sử dụng đặ c tả
Ưu điểm khi sử dụng đặc tả được thể hiện rõ nhất qua qua chi phí phát triển hệ
thống, ta có thể thấy rõ qua biểu đồ sau:
Hình 2.5 Biểu đồ so sánh chi phí phát triẻn hệ thống sử dụng đặc tả và không sử d ụng
Qua biểu đồ ta dễ dành nhận ra tổng chi phí khi sử d ụng đặc tả giảm đi rất
nhiều, điều nay sẽ là cho giá thành sản phẩm đạt được tính cạ nh tranh.
2.3.5 Phương pháp đặc tả sử dụng “Máy trạng thái h ữu hạn FSM(Finite state machine)”
Trong thực tế có một s ố phương pháp đặc t ả như:
• Máy trạng thái hữu hạn
• Mạng Petri (thường dùng để mô tả các hệ thống phức tạp không đồng bộ, có
nhiều khâu làm việc song song)
• Điều kiện trước sau (th ường dùng đặc tả cho các hàm hoặc module)
Bài giảng lập trình nhúng 16