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

Ứ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

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

Đạ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
Chun 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 HỒ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. Hồ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 ngun 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. HỒ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. Hồng Minh Trí

CHỦ NHIỆM BỘ MƠN
QUẢN LÝ CHUN 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 CẢM ƠN
Để hoàn thành luận văn trong một thời gian tương đối
ngắn, ngoài sự cố gắng của bản thân em xin chân thành
cảm ơn sự giúp đỡ của các thầy cô bộ môn Điều Khiển Tự
Động đã thực hiện giảng dạy, truyền đạt cho em những
kiến thức quý báu trong suốt thời gian học tập tại trường.
Em xin chân thành cảm ơn thầy Hoàng Minh Trí người
đã gợi ý và tận tình hướng dẫn cho em suốt quá trình thực
hiện luận văn này.
Em xin chân thành cảm ơn công ty Philips
Semiconductor (nay đổi tên là NXP Semiconductor) và các
anh trong công ty NXP VN đã giúp đỡ cho em những linh
kiện quý báu và tận tình chỉ bảo em trong những lúc gặp
khó khăn trong việc thiết kế, đi dây phần cứng cũng như
việc lập trình phần mềm nhúng.
Xin chân thành cám ơn những ý kiến và sự giúp đỡ của
bạn bè đã giúp em hoàn thiện luận văn này.

TPHCM, ngày 30 tháng 7 năm 2009
Sinh viên thực hiện

Vũ Hoàng Dũ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. Hồ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 tố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 tố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 hồn tồ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ũ Hồng Dũng (01507678)

Trang 1/106


LVTN

GVHD : TS. Hồ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. Hồ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 tố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. Hồ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 hồn tồ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 hố 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. Hồ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. Hồ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 tồ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ũ Hồng Dũng (01507678)

Trang 6/106


LVTN

GVHD : TS. Hồ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. Hồ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. Hồ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 q trình, chạy một “self-test”, và sau đó chạy ứng
dụng. Q 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 qng 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. Hồ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 tồ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 tồ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ũ Hồng Dũng (01507678)

Trang 10/106


LVTN


GVHD : TS. Hồng Minh Trí

 Hệ thống khơng thể vận hành nếu nó khơng an tồ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 đố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. Hồ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. Hồ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 tồ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ũ Hồng Dũng (01507678)

Trang 13/106


LVTN

GVHD : TS. Hồng Minh Trí

các sự kiện. Nếu sự kiện xảy ra nhanh với tần suất cao có thể làm
tiêu tốn bộ nhớ và giảm đáp ứng, trong những trƣờng hợp này trình
điều khiển riêng chạy trực tiếp từ ngắt có thể giảm q trình tuần tự
trong một hệ điều hành. Để tránh việc thiếu tài nguyên, thời gian
chạy của mỗi sự kiện có thể đƣợc điều khiển, và những tác vụ có thê
chạy ở mức là số nhân của tim đập, một kỹ thuật đơn giản gọi là “tác
vụ hài” (harmonic tasking) đƣợc sử dụng rộng rãi trong những hệ
thống đa nhiệm đòi hỏi độ an tòan rất cao. Để tránh deadlock (xảy ra
khi hai hay nhiều tác vụ đợi lẫn nhau để giải phóng một tài nguyên,
hoặc đợi một tài nguyên), một hệ thống có thể bị giới hạn chỉ có hai
mức ƣu tiên, thơng thƣờng là “chạy” và “cấm ngắt”, để tránh việc

đảo thứ tự ƣu tiên.
3.5

Giới thiệu chip LPC2919 :
3.5.1 Giới thiệu :
Luận văn sử dụng chip LPC2919 của Philips, đây là một vi điều

khiển 32bit với cấu trúc bao gồm :
 Vi xử lý ARM968E-S với hỗ trợ gỡ lỗi thời gian thực tần số
dao động clock có thể lên tới 80MHz
 Một cấu trúc AMBA đa lớp bao gồm các bus xử lý cao AHB
để giao tiếp với các khối bộ nhớ trong chip
 Hai bus DTL dùng cho việc giao tiếp với các thành phần điều
khiển ngắt, năng lƣợng, clock và nhánh reset.
 Ba bus ngoại vi VLSI cho việc kết các ngoại vi trong chip và
các thành phần hệ thống phụ.

HVTH : Vũ Hoàng Dũng (01507678)

Trang 14/106


LVTN

GVHD : TS. Hồng Minh Trí

 Bộ nhớ trong chip bao gồm 48kb RAM tĩnh và 768kb Flash
dùng cho việc lập trình.
 Hai kênh CAN hỗ trợ giao thức Full-CAN và chế độ lọc cực
kỳ sắc sảo.

 Hai bộ điều khiển LIN với hỗ trợ phần cứng đầy đủ cho giao
tiếp truyền thông LIN.
 Hai bộ nối tiếp chuẩn 550 với bộ FIFO có dung lƣợng 16byte.
 Ba bộ Q-SPI song công với bốn đƣờng chọn slave; độ rông bit
là 16bit có bộ đệm FIFO cho cả phát và thu.
 32-bit watchdog, chạy trên tần số riêng không phụ thuộc thạch
anh bên ngoài.
 Hỗ trợ tới 108 đƣờng I/O đa mục đích hỗ trợ cả điện trở kéo
lên hoặc kéo xuống thơng qua lập trình.
 Vector điều khiển ngắt hỗ trợ 16 mức ƣu tiên ngắt.
 16 kênh ADC 10bit với thời gian lấy mẫu rất nhanh khoảng
2.44us. Mỗi kênh cho phép việc so sánh để giảm thiểu số
lƣợng ngắt.
 Có 24 chân ngắt ngồi với mức/cạnh ngắt lập trình đƣợc.
 Bộ điều khiển bộ nhớ ngoài bao gồm 8 bank nhớ, đƣờng dữ
liệu 32bit, đƣờng địa chỉ 24bit.

HVTH : Vũ Hoàng Dũng (01507678)

Trang 15/106


LVTN

GVHD : TS. Hồng Minh Trí

Hình 3.2 Cấu trúc của vi điều khiển 32bit LPC2919
Chip LPC2919 cấu hình vi xử lý ARM968E-S theo dạng byte là
little-endian. Tất cả các ngoại vi trong chip đều có clock riêng để tối
ƣu hóa việc sử dụng năng lƣợng. Cầu AHB2VPB dùng trong các hệ

thống phụ bao gồm các bộ đệm ghi trƣợc. Điều này dùng để khi
ARM968E-S thông báo một hành động ghi đến một thanh ghi trong
VPB thì nó vẫn tiếp tục cho dù việc ghi có thể chƣa xảy ra.

HVTH : Vũ Hoàng Dũng (01507678)

Trang 16/106


LVTN

GVHD : TS. Hồng Minh Trí

3.5.2 Vi xử lý ARM968S-E :
Vi xử lý ARM968S-E là vi xử lý đa năng RISC cho phép thực thi
rất tốt và tiêu tốn năng lƣợng thấp. Kiến trục ARM dựa trên lý
thuyết RISC và tập lệnh đƣợc giải mã đơn giản hơn rất nhiều so với
kiến trúc CISC.
Các tính năng nổi bật nhất của ARM968S-E là :
 Giao tiếp trực tiếp giữa lệnh và dữ liệu TCM.
 Có bộ nhớ ghi cho bus AHB và bus TCM
 Bộ nhân cải tiến 16x32 thích hợp cho việc thực thi đơn MAC
và hỗ trợ các lệnh 16-bit fixed point nhằm tăng tốc tính tốn
các ứng dụng xử lý số.
Kỹ thuật pipeline đƣợc dùng nên tất cả các khâu xử lý và truy
xuất bộ nhớ có thể đƣợc thực thi liên tục. Chip ARM968S-E dựa
trên kiến trúc 5 bƣớc pipeline ARMv5TE. Thông thƣờng, trong một
kiến trúc pipeline 3 bƣớc, trong khi một lệnh đƣợc thực thi thì lệnh
trƣớc nó đang đƣợc giải mã và một lệnh thứ ba đang đƣợc đƣa vào
từ bộ nhớ. Trong kiến trúc pipeline 5 bƣớc thì hai bƣớc khác đƣợc

đƣa vào cho việc truy xuất vùng nhớ và chu kỳ ghi lại.
Vi xử lý ARM968S-E cũng dùng một kỹ thuật rất riêng biệt đƣợc
gọi là THUMB, kỹ thuật này dùng cho các ứng dụng lớn khi vùng
nhớ quá nhỏ và việc tần suất thực thi lỗi là một vấn đề cần tính đến.
Ý tƣởng của THUMB là sử dụng một tập lệnh tối giản. Điều này
làm cho vi xử lý ARM968S-E có hai tập lệnh :
 Tập lệnh 32bit ARMv5TE thông thƣờng

HVTH : Vũ Hoàng Dũng (01507678)

Trang 17/106


LVTN

GVHD : TS. Hồng Minh Trí

 Tập lệnh THUMB 16bit
Tập lệnh THUMB có chiều dài 16bit cho phép tiết kiệm hai lần
so với tập lệnh ARM truyền thống trong khi vẫn giữ đƣợc các lợi thế
của tập lệnh ARM. Điều này hồn tồn có thể vì tập lệnh THUMB
hoạt động trên các thanh ghi 32bit giống nhƣ tập lệnh ARM.
Tập lệnh THUMB có thể giảm thiểu tới 65% dung lƣợng tập lệnh
ARM, và tăng 160% sức mạnh tính tốn khi bộ điều khiển ARM kết
hợp với một hệ thống 16bit.
3.5.3 Bộ nhớ Flash trên chip :
LPC2919 bao gồm một bộ nhớ flash lập trình có dung lƣợng là
768kb. Bộ nhớ này có thể đƣợc dùng để chứa code cũng nhƣ chứa
dữ liệu. Việc lập trình vào bộ nhớ có thể thông qua nhiều cách, dùng
ISP thông qua cổng nối tiếp hoặc dùng giao tiếp CAN.

3.5.4 Bộ nhớ RAM tĩnh trên chip :
LPC2919 gồm có hai bộ nhớ RAM : mộ bộ 32kb và một bộ
16kb. Cả hai có thể đƣợc dùng để chƣa code hoặc data. Mỗi bộ
RAM tĩnh có bộ điều khiển của riêng nó vì thế cả hai bộ có thể đƣợc
thực thi đồng thời thơng qua các lớp AHB khác nhau.

HVTH : Vũ Hoàng Dũng (01507678)

Trang 18/106


×