Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------
VŨ HOÀNG DŨNG
ỨNG DỤNG LÝ THUYẾT ĐIỀU KHIỂN HIỆN ĐẠI VÀO
HỆ THỐNG NHÚNG ĐỂ ĐIỀU KHIỂN MÔ HÌNH THỰC
Chuyên ngành : TỰ ĐỘNG HÓA
LUẬN VĂN THẠC SĨ
TP. HỒ CHÍ MINH, tháng 07 năm 2009
CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : TS. Hoàng Minh Trí ..........................................
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 1 : PGS.TS. Dương Hoài Nghĩa ...................................
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 2 : TS. Nguyễn Thiện Thành ........................................
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN
THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày . . . . . tháng . . . . năm . . . . .
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA …Điện – Điện Tử……………….
----------------
CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
---oOo--Tp. HCM, ngày . . . . . tháng . . . . . năm . . . . . .
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên: VŨ HOÀNG DŨNG
Phái: NAM
Ngày, tháng, năm sinh: 25/08/1984
Nơi sinh: Vũng Tàu
Chuyên ngành: Tự Động Hóa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MSHV: 01507678 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1- TÊN ĐỀ TÀI: Ứng dụng lý thuyết điều khiển hiện đại vào hệ thống nhúng để điều khiển
các mô hình thực.
2- NHIỆM VỤ LUẬN VĂN: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
-
Nghiên cứu hoạt động hệ thống nhúng.
-
Nghiên cứu chip vi điều khiển 32bit LPC2919.
-
Nghiên cứu ngôn ngữ C/C++ cho hệ thống nhúng.
-
Xây dựng board LPC2919 để điều khiển mô hình quạt&ván.
-
Nghiên cứu nguyên lý hoạt động của Simulink từ đó xây dựng môi trường LVTN để ứng
dụng thuật toán điều khiển cho board LVTN.
-
Nghiên cứu lý thuyết điều khiển thích nghi bền vững.
-
Xây dựng mô hình MRAC bền vững để điều khiển hệ quạt ván.
-
Viết quyển LVTN.
3- NGÀY GIAO NHIỆM VỤ : . 01/02/2009. . . . . . . . . . . . . . . . . . . .
4- NGÀY HOÀN THÀNH NHIỆM VỤ : . .20/07/2009 . . . . . . . . . . . . . . . . . . .
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN (Ghi đầy đủ học hàm, học vị ): . . . . . . . . . . . . . . . . .
. . . . . . TS. HOÀNG MINH TRÍ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua.
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)
TS. Hoàng Minh Trí
CHỦ NHIỆM BỘ MÔN
QUẢN LÝ CHUYÊN NGÀNH
(Họ tên và chữ ký)
TS. Nguyễn Đức Thành
KHOA QL CHUYÊN NGÀNH
(Họ tên và chữ ký)
LÔØI CAÛM ÔN
Ñeå hoaøn thaønh luaän vaên trong moät thôøi gian töông ñoái
ngaén, ngoaøi söï coá gaéng cuûa baûn thaân em xin chaân thaønh
caûm ôn söï giuùp ñôõ cuûa caùc thaày coâ boä moân Ñieàu Khieån Töï
Ñoäng ñaõ thöïc hieän giaûng daïy, truyeàn ñaït cho em nhöõng
kieán thöùc quyù baùu trong suoát thôøi gian hoïc taäp taïi tröôøng.
Em xin chaân thaønh caûm ôn thaày Hoaøng Minh Trí ngöôøi
ñaõ gôïi yù vaø taän tình höôùng daãn cho em suoát quaù trình thöïc
hieän luaän vaên naøy.
Em xin chaân thaønh caûm ôn coâng ty Philips
Semiconductor (nay ñoåi teân laø NXP Semiconductor) vaø caùc
anh trong coâng ty NXP VN ñaõ giuùp ñôõ cho em nhöõng linh
kieän quyù baùu vaø taän tình chæ baûo em trong nhöõng luùc gaëp
khoù khaên trong vieäc thieát keá, ñi daây phaàn cöùng cuõng nhö
vieäc laäp trình phaàn meàm nhuùng.
Xin chaân thaønh caùm ôn nhöõng yù kieán vaø söï giuùp ñôõ cuûa
baïn beø ñaõ giuùp em hoaøn thieän luaän vaên naøy.
TPHCM, ngaøy 30 thaùng 7 naêm 2009
Sinh vieân thöïc hieän
Vuõ Hoaøng Duõng
TÓM TẮT LUẬN VĂN
Mục tiêu của nghiên cứu này là tìm hiểu về hệ thống nhúng, xây dựng
một hệ thống mà ở đó ta có thể dùng các blocks như trong Simulink của
Matlab để dùng dễ dàng cho việc áp dụng mô phỏng vào mô hình thực. Và
dựa vào đó xây dựng các ứng dụng lý thuyết điều khiển vào hệ thống nhúng
để điều khiển mô hình thực.
Đề tài thực hiện việc kết hợp giữa giải thuật điều khiển thích nghi và giải
thuật điều khiển bền vững để đưa ra giải thuật mới, giải thuật này sẽ được áp
dụng điều khiển hệ không tối thiểu pha.
Điều khiển thích nghi MRAC nhằm mục đích điều khiển hệ thống sao
cho đáp ứng của nó bám theo đáp ứng của một mô hình mẫu cho trước, tuy
nhiên trong thực tế môi trường thường có nhiễu vì vậy điều khiển bền vững
được áp dụng vào nhằm mục đích làm cho hệ thống vẫn bám theo đáp ứng
của mô hình mẫu trong một giới hạn nào đó. Mục tiêu của đề tài là thiết kế
bộ điều khiển bền vững MRAC trong đó luật thích nghi được thay đổi sao
cho sai số của hệ thống (so với mô hình chuẩn) được bao và tiến về zero,
điều này được thực hiện bằng cách đưa mô hình sai số về dạng hàm SPRLyapunov.
MỤC LỤC
1. Giới thiệu luận văn ......................................................................1
2. Nhiệm vụ luận văn.......................................................................3
3. Hệ thống nhúng ...........................................................................4
3.1 Giới thiệu hệ thống nhúng .....................................................4
3.2 Đặc điểm hệ thống nhúng......................................................4
3.3 Các tính năng của hệ thống nhúng ........................................6
3.3.1 Giao diện người dùng ...................................................6
3.3.2 CPU Platform ...............................................................7
3.3.3 Công cụ hỗ trợ ..............................................................7
3.3.4 Gỡ rối............................................................................8
3.3.5 Khỏi động .....................................................................9
3.3.6 Tự kiểm tra (self-test) ...................................................9
3.3.7 Độ tin cậy....................................................................10
3.4 Những kiến trúc phần mềm nhúng ......................................11
3.4.1 Vòng lặp điều khiển đơn giản.....................................11
3.4.2 Hệ thống điều khiển ngắt............................................11
3.4.3 Nonpreemptive multitasking ......................................12
3.4.4 Preemptive multitasking.............................................12
3.4.5 Cấu hình các hệ điều hành..........................................13
3.5 Giới thiệu chip LPC2919.....................................................14
3.5.1 Giới thiệu ....................................................................14
3.5.2 Vi xử lý ARM968S-E.................................................17
3.5.3 Bộ nhớ Flash trên chip................................................18
3.5.4 Bộ nhớ RAM tĩnh trên chip........................................18
4. Số dấu chấm tĩnh và môi trường LVTN .................................19
4.1 Giới thiệu số dấu chấm tĩnh (fixed-point) ...........................19
4.2 Cách biểu diễn số fixed-point..............................................19
4.3 Các phép toán trong fixed-point ..........................................20
4.3.1 Phép cộng ...................................................................20
4.3.2 Phép nhân ...................................................................20
4.3.3 Phép chia.....................................................................20
4.4 Môi trường LVTN ...............................................................20
4.4.1 Giới thiệu ....................................................................20
4.4.2 Mục đích của môi trường LVTN................................20
4.4.3 Cấu trúc của môi trường LVTN .................................21
5. Điều khiển thích nghi ................................................................24
5.1 Khái niệm.............................................................................24
5.1.1 Định nghĩa ..................................................................24
5.1.2 Nhận dạng hệ thống....................................................25
5.1.3 Ước lượng tham số thích nghi thời gian thực.............25
5.1.4 Phân loại .....................................................................26
5.1.5 Ứng dụng ....................................................................26
5.2 Hệ thích nghi mô hình tham chiếu – MRAS .......................27
5.2.1 Sơ đồ chức năng ........................................................27
5.2.2 Luật MIT ....................................................................29
5.2.3 Nội dung, phương pháp thiết kế MRAS.....................34
5.3 Bộ điều khiển MRAC trực tiếp dùng luật chuẩn hóa ..........42
5.3.1 Giới thiệu ...................................................................42
5.3.2 Bộ MRAC cho các đối tượng SISO ..........................44
6. Điều khiển thích nghi bền vững ...............................................62
6.1 Giới thiệu luật thích nghi bền vững.....................................62
6.2 Thông số không chắc chắn (Uncertainties) .........................63
6.2.1 Không chắc chắn không cấu trúc ...............................64
6.2.2 Không chắc chắn có cấu trúc .....................................66
6.3 Các kỹ thuật tăng tính bền vững cho luật thích nghi...........66
6.3.1 Giới thiệu ..................................................................66
6.3.2 Kỹ thuật rò (leakage) ..................................................67
6.3.2.1 Thông số σ cố định ( fixed − σ ) ....................69
6.3.2.2 Thông số σ thay đổi ( switching − σ ) .............71
6.3.2.3 Kết quả mô phỏng ..........................................73
6.4 Giới thiệu điều khiển thích nghi bền vững ..........................76
6.5 Bộ MRAC bền vững cho hệ SISO .....................................77
7. Điều khiển thích nghi bền vững cho hệ quạt & ván...............97
7.1 Giới thiệu hệ quạt ván..........................................................97
7.2 Xây dựng bộ MRAC bền vững cho hệ quạt&ván ...............97
7.3 MRAC bền vững trên môi trường LVTN ...........................99
8. Kết quả đạt được và hướng phát triển..................................102
8.1 Kết quả đạt được................................................................102
8.2 Hướng phát triển ...............................................................103
Tài liệu tham khảo .......................................................................104
LVTN
GVHD : TS. Hoàng Minh Trí
CHƢƠNG 1 : GIỚI THIỆU LUẬN VĂN
Công nghệ phát triển triển vi xử lý nhúng trên thế giới đang có
những bƣớc tiến rất nhanh và thanh đổi từng ngày, giờ đây con
ngƣời đã hoàn toàn có thể tích hợp nhiều vi xử lý và nhiều hệ thống
lên trên chỉ một con chip. Dù rằng tích hợp rất nhiều tính năng cùng
với sức mạnh tính toán đƣợc nâng lên nhƣng nó cũng làm cho vấn
đề phức tạp thêm và một bài toán là làm sao tận dụng tối đa ƣu thế
của chip trong lĩnh vực hệ thống nhúng.
Dù rằng lý thuyết điều khiển hiện đại và công nghệ nhúng đã có
những bƣớc tiến đột phá, tuy nhiên hai lĩnh vực này vẫn chƣa thực
sự gần nhau. Điển hình là đa số các lý thuyết điều khiển hiện đại đều
sử dụng mô phỏng của Matlab hoặc nếu điều khiển mô hình thì cũng
phải dựa vào sức mạnh tính toán của PC thông qua các phần mêm
Matlab hoặc Labview và một “cầu nối” từ PC tới mô hình đó là các
card chuyển đổi dữ liệu. Điều này gây ra một số trở ngại vì ta phải
phụ thuộc vào các card chuyển đổi này. Và dù rằng nó cho ta cái
nhìn trực quan về mặt điều khiển học nhƣng ta lại hoàn toàn không
thấy đƣợc cấu trúc thực sự của toàn hệ thống mà điều này lại quan
trọng trong việc đƣa lý thuyết vào áp dụng trong thực tế.
Mục tiêu của nghiên cứu này là tìm hiểu về hệ thống nhúng, xây
dựng một hệ thống mà ở đó ta có thể dùng các blocks nhƣ trong
Simulink của Matlab để dùng dễ dàng cho việc áp dụng mô phỏng
vào mô hình thực. Và dựa vào đó xây dựng các ứng dụng lý thuyết
điều khiển vào hệ thống nhúng để điều khiển mô hình thực.
HVTH : Vũ Hoàng Dũng (01507678)
Trang 1/106
LVTN
GVHD : TS. Hoàng Minh Trí
Đề tài thực hiện việc kết hợp giữa giải thuật điều khiển thích nghi
và giải thuật điều khiển bền vững để đƣa ra giải thuật mới, giải thuật
này sẽ đƣợc áp dụng điều khiển hệ không tối thiểu pha.
Điều khiển thích nghi MRAC nhằm mục đích điều khiển hệ
thống sao cho đáp ứng của nó bám theo đáp ứng của một mô hình
mẫu cho trƣớc, tuy nhiên trong thực tế môi trƣờng thƣờng có nhiễu
vì vậy điều khiển bền vững đƣợc áp dụng vào nhằm mục đích làm
cho hệ thống vẫn bám theo đáp ứng của mô hình mẫu trong một giới
hạn nào đó. Mục tiêu của đề tài là thiết kế bộ điều khiển bền vững
MRAC trong đó luật thích nghi đƣợc thay đổi sao cho sai số của hệ
thống (so với mô hình chuẩn) đƣợc bao và tiến về zero, điều này
đƣợc thực hiện bằng cách đƣa mô hình sai số về dạng hàm SPRLyapunov.
HVTH : Vũ Hoàng Dũng (01507678)
Trang 2/106
LVTN
GVHD : TS. Hoàng Minh Trí
CHƢƠNG 2 : NHIỆM VỤ LUẬN VĂN
Để thực hiện luận văn thì học viên cần thực hiện những nhiệm vụ
sau :
Nghiên cứu hoạt động hệ thống nhúng.
Nghiên cứu chip vi điều khiển 32bit LPC2919.
Nghiên cứu ngôn ngữ C/C++ cho hệ thống nhúng.
Xây dựng board LPC2919 để điều khiển mô hình quạt&ván.
Nghiên cứu nguyên lý hoạt động của Simulink từ đó xây dựng
môi trƣờng LVTN để ứng dụng thuật toán điều khiển cho
board LVTN.
Nghiên cứu lý thuyết điều khiển thích nghi bền vững.
Xây dựng mô hình MRAC bền vững và port lên môi trƣờng
LVTN để điều khiển hệ quạt ván.
Viết quyển LVTN.
HVTH : Vũ Hoàng Dũng (01507678)
Trang 3/106
LVTN
GVHD : TS. Hoàng Minh Trí
CHƢƠNG 3 : HỆ THỐNG NHÚNG
3.1
Giới thiệu :
Một hệ thống nhúng là một hệ thống với mục đích đặc biệt
(special-purpose), trong đó máy tính đƣợc gói gọn hoàn toàn trong
thiết bị mà nó điều khiển. Không giống nhƣ một máy tính kiểu dùng
cho nhiều mục đích (general-purpose), nhƣ máy tính cá nhân chẳng
hạn (PC), một hệ thống nhúng cho phép một hoặc một số ít những
tác vụ đã đƣợc định nghĩa trƣớc, thông thƣờng là với những yêu cầu
cụ thể. Khi hệthống đã hƣớng tới những tác vụ cụ thể, kỹ sƣ thiết kế
có thể tối ƣu hoá nó, giảm kích thƣớc và giá thành sản phẩm. Những
hệ thống nhúng thƣờng là những sản phẩm sản xuất hàng loạt, nhƣ
vậy sẽ tiết kiệm đƣợc chi phí .
Máy tính cầm tay hay PDA thông thƣờng đƣợc xem nhƣ là một
thiết bị nhúng bởi vì tính chất của thiết kế phần cứng, mặc dù vậy
chúng có thể đƣợc mở rộng bằng những phần mềm khác. Định nghĩa
về hệ thống nhúng tiếp tục mờ đi khi những thiết bị đƣợc mở rộng.
Về cơ bản, những hệ thống nhúng bao gồm những thiết bị di
động nhƣ máy nghe nhạc MP3 cho đến những thiết bị lớn nhƣ đèn
giao thông hay hệ thống điều khiển trong các nhà máy, công xƣởng.
(theo wikipedia)
3.2
Lịch sử :
Hệ thống đầu tiên đƣợc xem nhƣ một hệ thống nhúng hiện đại là
máy dẫn đƣờng Apollo (Apollo Guidance Computer), đƣợc phát
HVTH : Vũ Hoàng Dũng (01507678)
Trang 4/106
LVTN
GVHD : TS. Hoàng Minh Trí
triển bởi Charles Stark Draper ở phòng thí nghiệm đo lƣờng của học
viện MIT.
Hinh 3.1 Máy dẫn đƣờng Apollo
Mỗi chuyến bay đến mặt trăng sử dụng 2 chiếc máy này, chúng
chạy một “hệ thống dẫn đƣờng quán tính” (Inertial Guidance
Systems) của cả module lệnh và LEM (Lunar Excursion Module)
Khi bắt đầu dự án này, hệ thống dẫn đƣờng Apollo đƣợc xem
nhƣ là thiết bị nhiều rủi ro nhất trong dự án Apollo.
Sản phẩm chứa hệ thống nhúng đầu tiên đƣợc sản xuất hàng loạt
là má tính dẫn đƣờng Autonetics D-17 đƣợc dùng cho tên lữa
Minuteman, ra đời năm 1961. Nó đƣợc xây dựng từ những transistor
rời rạc và có một đĩa cứng là vùng nhớ chính. Khi tên lữa
MinetemanII ra đời vào năm 1966, máy tính D-17 đƣợc thay bằng
một máy tính mới và đó là máy tính đầu tiên có cấu tạo hầu hết là
những mạch tích hợp. Chƣơng trình này đã giúp giảm giá thành của
IC cổng NAND từ $1000/IC xuống còn $3/IC, cho phép chúng
đƣợc dùng trong mục đích thƣơng mại.
HVTH : Vũ Hoàng Dũng (01507678)
Trang 5/106
LVTN
3.3
GVHD : TS. Hoàng Minh Trí
Các tính năng của hệ thống nhúng:
Hệ thống nhúng đƣợc thiết kế để thực hiện hiện những tác vụ
nhất định, một số cũng thực hiện những tác vụ thời gian thực (realtime) cho một số mục đích nhƣ độ an toàn và ổn định, một số khác
không đòi hỏi điều này, cho phép phần cứng của hệ thống trở nên
đơn giản và giảm đƣợc giá thành .
Đối với các hệ thống cao cấp nhƣ những máy nghe nhạc MP3
hay điện thoại di động, tối thiểu hóa giá thành là mục tiêu chính
trong thiết kế. Kỹ sƣ thƣờng chọn những phần cứng “đủ tốt” để thực
thi những tính năng cần thiết. Ví dụ, một bộ set-top box cho việc thu
sóng tivi từ vệ tinh cần phải thực hiện một lƣợng lớn data ở mỗi
giây, nhƣng hầu hết đƣợc thực hiện bởi các mạch tích hợp, CPU
nhúng “sets up” những tác vụ này, và hiển thị ra màn hình graphic,
để hiện thị trạng thái.
3.3.1 Giao diện ngƣời dùng:
Hệ thống nhúng bao gồm từ không có giao diện ngƣời dùng –
hiển thị một tác vụ - cho đến giao diện ngƣời dùng đầy đủ giống
nhƣ màn hình desktop trong một số thiết bị nhƣ PDAs. Thông
thƣờng trong hệ thống nhúng không cần khả năng hiển thị phức tạp
thì một số ít phìm nhấn đƣợc dùng để điều khiển một menu, với một
số cho việc di chuyển và một số cho việc lựa chọn.
Trong những màn hình lớn, một màn hình cảm biến touch-screen
cung cấp khả năng linh hoạt và tiết kiệm đƣợc vùng sử dụng. Ƣu
điểm của hệ thống này là nút nhấn có thể thay đổi theo màn hình.
HVTH : Vũ Hoàng Dũng (01507678)
Trang 6/106
LVTN
GVHD : TS. Hoàng Minh Trí
Những hệ thống cần tay cũng thƣờng có một phím bấm “joystick”
cho việc chọn lựa.
Sự phát triển của Internet cho phép những kỹ sƣ thiết kế một số
lựa chọn khác, nhƣ cung cấp một website trên một mạng kết nối.
Điều này đƣợc thực hiện cho việc điều khiển từ xa. Điều này tránh
đƣợc giá thành cao cho việc hiển thị phức tạp đồng thời cung cấp
khả năng nhập liệu và hiển thị phức tạp trên một máy tính khác.
3.3.2 CPU Platform:
Có nhiều kiến trúc CPU khác nhau đƣợc dùng trong hệ thống
nhúng nhƣ là ARM, MIPS, ColdFire/68k, PowerPC, x86, PIC, 8051,
Atmel AVR, Renesas H8, SH, V850, FR-V, M32R … Điều này
tƣơng phản với thị trƣờng máy tính để bàn, nơi mà chỉ có rất ít các
kiến trúc vi xử lý (nhƣ Intel và AMD).
Một cấu hình phổ biến dùng cho những hệ thống nhúng rất cao
cấp là “system on chip”(SoC), điều này thƣờng đƣợc thấy trong các
vi điều khiển ví dụ nhƣ LPC2000…
3.3.3 Công cụ hỗ trợ :
Về vấn đề phần mềm, kỹ sƣ thiết kế hệ thống nhúng cần phải sử
dụng trình biên dịch compliers, assemblers và trình gỡ rối debuggers
để phát triển phần mềm dùng cho hệ thống nhúng. Tuy nhiên, đôi
khi có thêm những công cụ khác :
Một “in-circuit emulator” (ICE) là một thiết bị phần cứng cái
thay thế hoặc cắm vào vi xử lý, cung cấp một số tính năng để
load code nhanh chóng và dễ dàng debug code trên hệ thống.
HVTH : Vũ Hoàng Dũng (01507678)
Trang 7/106
LVTN
GVHD : TS. Hoàng Minh Trí
Cung cụ thêm vào một checksum hoặc CRC cho chƣơng
trình, điều này cho phép hệ thống nhúng kiểm tra xem chƣơng
trình có phù hợp không.
Đối với những hệ thống dùng DSP (digital signal processing),
ngƣời phát triển có thể dùng một cung cụ tóan học nhƣ
MathCad hoặc Mathematica để mô phỏng.
Trình biên dịch và trình liên kết riêng rẽ có thể đƣợc dùng để
tối ƣu hóa cho từng phần cứng cụ thể
Một hệ thống nhúng có thể có ngôn ngữ lập trình và công cụ
thiết kế riêng hoặc thêm vào những tính năng cho ngôn ngữ
hiện có.
Các công cụ phần mềm có thể lấy từ :
Các công ty phần mềm chuyên thiết kế cho hệ thống nhúng
(Mentor Graphic,Keil,…)
Từ các công cụ miễn phí nhƣ GNU
Đôi khi, công cụ phát triễn cho máy tính cá nhân cũng đƣợc
dùng nếu vi xử lý dùng gần giống mới vi xử lý của PC
3.3.4 Gỡ rối:
Gỡ rối hệ thống nhúng có thể chia thành nhiều mức, dựa vào các
công cụ hiện có, từ debug trong assembly hoặc source-level cho đến
debug với một ICE, để xuất ra cổng debug nối tiếp, tới một môi
trƣờng mô phổng chạy trên một PC.
Vì mức độ phức tạp của hệ thống nhúng ngày càng tăng, những
công cụ hỗ trợ ở mức cao hơn và những hệ điều hành đƣợc kết hợp
HVTH : Vũ Hoàng Dũng (01507678)
Trang 8/106
LVTN
GVHD : TS. Hoàng Minh Trí
chung với nhau, và đƣợc mua hoặc cung cấp. Trong những hệ thống
này, một môi trƣờng lập trình mở nhƣ Linux, eCos, NetBSD, OSGi
hoặc Embedded Java là cần thiết để những nhà cung cấp phần mềm
thứ ba có thể nhắm tới thị trƣờng lớn hơn.
3.3.5 Khởi động :
Tất cả các hệ thống nhúng đều có “start-up code”. Thông thƣờng
nó thiết lập các quá trình, chạy một “self-test”, và sau đó chạy ứng
dụng. Quá trình khởi động thƣờng đƣợc thiết kế ngắn, thƣờng nhỏ
hơn 1/10 giây, tuy nhiên cũng tùy theo ứng dụng.
3.3.6 Tự kiểm tra (self-test):
Hầu hết những hệ thống nhúng có một số self-test đƣợc tích hợp
bên trong, chúng có thể chạy ngắt quãng hoặc liên tục, thông thƣờng
có những loại sau :
Test cho hệ thống : CPU, RAM, và bộ nhớ chƣơng trình.
Chúng thƣờng chạy một lần khi khởi động.
Test cho ngoại vi : Kiểm tra ngõ vào và đọc ngƣợc lại hoặc
kiểm tra ngõ ra.
Test cho nguồn cung cấp bao gồm pin hoặc nguồn backup
khác.
Kiểm tra dung lƣợng: kiểm tra cái mà hệ thống sử dụng và
đƣa ra cảnh báo khi dung lƣợng xuống thấp, ví dụ nhƣ một hệ
thống kiểm tra xăng trong xe.
Kiểm tra mức an tòan.
Đôi khi cần một số kiểm tra về tƣơng tác :
HVTH : Vũ Hoàng Dũng (01507678)
Trang 9/106
LVTN
GVHD : TS. Hoàng Minh Trí
Kiểm tra cáp : một vòng lặp đƣợc thiết lập để hệ thống có
nhận đƣợc cái mà nó truyền đi không
Kiểm tra lắp ráp : cho phép một hệ thống đƣợc hiệu chỉnh khi
nó đƣợc cài đặt.
Kiểm tra vận hành : dùng để kiểm tra việc vận hành của hệ
thống.
3.3.7 Độ tin cậy :
Độ tin cậy có nhiều định nghĩa khác nhau phụ thuộc:
Hệ thống không thể tắt an toàn để kiểm tra, hoặc nó không thể
truy xuất để kiểm tra. Thông thƣờng, một khối con của hệ
thống nhúng dùng để kiểm tra và các công tắc đƣợc dùng trực
tiếp. Thay vì phải thay thế phần cứng, có thể dùng phần mềm
“limp modes” cái cung cấp những chức năng riêng biệt. Ví dụ
các hệ thống không gian, cấp ngầm dƣới biển, đèn chỉ đƣờng,
…
Hệ thống phải đƣợc giữ hoạt động vì lý do an toàn. Cũng
giống nhƣ ở trên, nhƣng “limp modes” ít đƣợc dùng hơn.
Thông thƣờng việc sao lƣu đƣợc chọn bởi ngƣời điều hành.
Ví dụ hệ thống định hƣớng máy bay, điều khiển xƣởng sản
xuất thuốc, hệ thống tín hiệu xe lửa.
Hệ thống sẽ mất rất nhiều tiền khi nó tắt (Tổng đài điện thọai,
hệ thống điều khiển phân xƣờng, sàn giao dịch …) Chúng
thƣờng có rất ít hoặc không có test.
HVTH : Vũ Hoàng Dũng (01507678)
Trang 10/106
LVTN
GVHD : TS. Hoàng Minh Trí
Hệ thống không thể vận hành nếu nó không an toàn. Thƣờng
thì một hệ thống nhƣ vậy không thể vận hành nếu nó tiêu tốn
quá nhiều tiền. Việc test có thể thực hiện, tuy nhiên chỉ có
một hành động đó là tắt tòan bộ hệ thống và báo hiệu một sai
sót.
3.4
Những kiến trúc phần mềm nhúng :
Có vài loại kiến trúc phần mềm nhúng hay đƣợc dùng:
3.4.1 Vòng lặp điều khiển đơn giản :
Trong thiết kế, phần mềm đơn giản chỉ có một vòng lặp. Vòng
lặp gọi những nhánh nhỏ, mỗi nhánh đó quản lý một phần của phần
cứng hay phần mềm. Một mô hình thông dụng cho loại thiết kế này
là máy trạng thái, cái mà định nghĩa một tập hợp các trạng thái mà
hệ thống có thể ở đó và làm cách nào chuyển đổi giữa chúng, với
mục tiêu giảm thiểu việc định nghĩa các hành vi của hệ thống
Sức mạnh của hệ thống là ở tính đơn giản của nó, và trên một
phần nhỏ của phần mềm vòng lặp thƣờng nhanh đến mức không ai
quan tâm đến việc đoán thời gian của nó. Điều này thông dụng trên
các thiết bị nhỏ với một vi điều khiển thực hiện một tác vụ đơn giản.
Điểm yếu của một vòng lặp điều khiển đơn giản là nó không đảm
bảo đƣợc một thời gian để đáp ứng bất cứ vấn đề hardware nào (mặc
dù những thiết kế cẩn thận có làm việc với nó), và nó trở nên khó
khăn để bảo trì hay thêm vào các tính năng khác.
3.4.2 Hệ thống điều khiển ngắt:
Một số hệ thống nhúng dùng điều khiển ngắt. Điều này nghĩa là
những tác vụ thực hiện bởi hệ thống đƣợc “trigger” bởi những sự
HVTH : Vũ Hoàng Dũng (01507678)
Trang 11/106
LVTN
GVHD : TS. Hoàng Minh Trí
kiện khác nhau. Một ngắt có thể đƣợc tạo ra, ví dụ nhƣ ngắt timer,
hoặc cổng nối tiếp khi nhận một byte dữ liệu.
Những loại hệ thống này đƣợc dùng nếu việc xử lý sự kiện đòi
hỏi thời gian ngắn (low latency) và đơn giản.
Thông thƣờng loại hệ thống này cũng chạy một tác vụ đơn giản
trong vòng lặp chính. Những tác vụ phục vụ ngắt nên đƣợc giữ thật
ngắn để giữ “interrupt latency” là nhỏ nhất.
3.4.3 Nonpreemptive multitasking:
Một hệ thống “Nonpreemptive multitasking” gần với dạng một
vòng lặp đơn giản, ngoại trừ việc vòng lặp đó đƣợc giấu trong một
hàm API (application programming interface), ngƣời lập trình định
nghĩa một dãy các tác vụ, mỗi tác vụ có một môi trƣờng riêng để
chạy. Sau đó, khi một tác vụ rơi vào trạng thái nghỉ, nó gọi một
nhánh nghỉ (thƣờng là “pause”, “wait”, “yeild” …)
Một kiến trúc giống nhƣ vậy có một bảng lƣu sự kiện (event
queue), và có một vòng lặp thực hiện từng sự kiện tại từng thời
điểm.
Ƣu điểm và khuyết điểm của hệ thống này là giống với vòng lặp
điêu khiển, thêm một software mới vào là điều dễ dàng, đơn giản chỉ
là viết thêm một tác vụ mới.
3.4.4 Preemptive multitasking :
Trong loại hệ thống này, một vùng code mức thấp (low-level
code) thay đổi giữa các tác vụ dựa trên một timer. Đây là mức mà hệ
thống thƣờng đƣợc xem nhƣ là một “hệ điều hành”, và thực hiện tác
HVTH : Vũ Hoàng Dũng (01507678)
Trang 12/106
LVTN
GVHD : TS. Hoàng Minh Trí
cả các công việc phức tạp cũa việc quản lý đa tác vụ cùng chạy tại
cùng thời điểm.
Code của một tác vụ có thể phá hủy dữ liệu của một tác vụ khác,
chúng nên đƣợc cách ly. Truy xuất đến dữ liệu dùng chung phải
đƣợc điều khiển bởi một số giải thuật đồng bộ, nhƣ “message
queue”, “semaphore” …
Bởi vì tính phức tạp của hệ thống, nên thƣờng các tổ chức mua
một hệ điều hành thời gian thực cho phép những lập trình viên lập
tập trung vào những tính năng của thiết bị hơn là những phục vụ của
hệ điều hành.thời gian thực cho phép những lập trình viên lập tập
trung vào những tính năng của thiết bị hơn là những phục vụ của hệ
điều hành.
3.4.5 Cấu hình các hệ điều hành:
Khoảng 20% các hệ thống nhúng đòi hỏi mức độ an toàn, thời
gian chính xác, độ tin cậy và hiệu quả là không thể đạt đƣợc với một
trong số các kiến trúc ở trên. Trong trƣờng hợp này một tổ chức xây
dựng một hệ thống riêng để phù hợp. Trong các trƣờng hợp khác, hệ
thống có thể bị chia nhỏ bởi một “mechanism controller” sử dụng
một số kỹ thuật đặc biệt, và một “display controller” với một hệ điều
hành quy ƣớc, một hệ thống truyền thông truyền dữ liệu giữa chúng.
Vì những hệ thống nàu đƣợc phát triển mà không có sự thành
thạo về thời gian thực, hỏng hóc thƣờng xảy ra. Tuy nhiên, một số
kỹ thuật đƣợc biết rộng rãi và đƣợc sử dụng bởi những ngƣời có
kinh nghiệm, nhƣng ít đƣợc dạy ở những trƣờng đại học. Ví dụ,
nhiều hệ điều hành sử dụng danh sách để nối tiếp hóa và ƣu tiên hóa
HVTH : Vũ Hoàng Dũng (01507678)
Trang 13/106
- Xem thêm -