Đăng ký Đăng nhập
Trang chủ ứ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 ...

Tài liệu ứ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

.PDF
114
3
78

Mô tả:

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

Tài liệu liên quan