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

Nghiên cứu và đánh giá hệ thống điều khiển thời gian thực RTOS

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 (2.16 MB, 104 trang )

TÓM TẮT LUẬN VĂN THẠC SĨ
Đề tài: Nghiên cứu và đánh giá hệ thống điều khiển thời gian thực RTOS.
Tác giả luận văn: Nguyễn Xuân Thái

Khóa: CHĐKTĐH2009

Người hướng dẫn: Ts. Nguyễn Hồng Quang
Nội dung tóm tắt:
Lý do chọn đề tài:
Dưới sự phát triển khoa học kỹ thuật các linh kiện khả trình ngày càng mạnh:
giá thành rẻ, tốc độ đáp ứng nhanh, bộ nhớ lớn, tích hợp nhiều chức năng ....Do đó
chúng được tích hợp trong rất nhiều hệ thống điều khiển. Để thuận lợi cho việc phát
triển, đảm bảo tính ổn định, dễ bảo trì, nâng cấp chương trình trong các chíp khả trình
của các hệ thống điều kiển, hệ điều hành đã ra đời. Các hệ điều hành này sẽ quản lý
các tài nguyên hệ thống điều khiển phục vụ cho việc phát triển chương trình. Ngoài ra,
vì các hệ thống điều khiển có yêu cầu về việc đáp ứng thời gian thực là rất quan trọng
nên các hệ điều hành này phải là các hệ điều hành thời gian thực. Nên tác giả lựa chọn
đề tài “Nghiên cứu và đánh giá hệ thống điều khiển thời gian thực RTOS” đặc biệt là
hệ điều hành thời gian thực mã nguồn mở để có thể giúp quá trình phát triển chương
trình điều khiển nhanh và hiệu quả hơn trong các hệ thống điều khiển.
Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu:
Mục đích nghiên cứu của luận văn là tìm hiểu các đặc điểm của hệ điều hành
thời gian thực, đưa ra các đặc điểm để có thể đánh giá được các hệ điều hành này.
Đối tượng nghiên cứu là hệ điều hành thời gian thực.
Phạm vi nghiên cứu là nghiên cứu và đánh giá một số hệ điều hành thời gian
thực mã nguồn mở dựa trên nền tảng Linux. Ngoài ra, Luận văn có tiến hành thực hiện
ứng dụng hệ điều hành thời gian thực vào mô phỏng hệ thống điều khiển động cơ điện
một chiều trên hệ thống thời gian thực.
Tóm tắt cô đọng các nội dung chính và đóng góp mới của tác giả
Luận văn giới thiệu về các khái niệm thời gian thực, hệ điều hành thời gian thực
và tìm hiểu các đặc điểm và yêu cầu của một của hệ điều hành thời gian thực. Tiếp


theo, luận văn nghiên cứu nguyên lý và đặc điểm của một số hệ điều hành thời gian
thực. Sau đó dựa trên các đặt điểm của hệ điều hành thời gian thực, Luận văn tiến hành

1


đánh giá một số hệ điều hành thời gian thực (Xenomai và RTAI). Sau khi đánh giá
các hệ điều hành, Tác giả tiến hành lựa chọn, xây dựng các bước thực hiện một hệ
thống thời gian thực RTAI và ứng dụng hệ thống thời gian thực trên nền tảng PC vào
mô phỏng điều khiển động cơ điện một chiều. Qua quá trình thực hiện luận văn, Tác
giả đã đưa ra được các đặc điểm để đánh giá hệ điều hành thời gian thực, thực hiện
được hệ thống thời gian thực và ứng dụng hệ điều hành thời gian thực này vào mô
phỏng điều khiển động cơ điện một chiều.
Phương pháp nghiên cứu.
Luận văn sử dụng phương pháp nghiên cứu lý thuyết: từ những yêu cầu của hệ
thống điều khiển để đưa ra các đặc điểm để đánh giá hệ điều hành thời gian thực được
sử dụng trong hệ thống điều khiển và phương pháp thực nghiệm: xây dựng hệ điều
hành thời gian thực điều khiển động cơ điện một chiều, đánh giá khả năng của hệ điều
khiển trong quá trình thiết kế mạch điều khiểm động cơ điện một chiều.
Kết luận
Luận văn đã thực hiện được các công việc sau: đưa ra được những yêu cầu, đặc
điểm để đánh khả năng đáp ứng thời gian thực của một hệ điều hành thời gian thực;
tiến hành đo đạc đánh giá hệ điều hành thời gian thực: RTAI và Xenomai; lựa chọn,
xây dựng và ứng dụng hệ điều hành thời gian thực RTAI vào điều khiển động cơ điện
một chiều; cho thấy tính linh hoạt của hệ thống thời gian thực RTAI trong việc thiết
kế, kiểm nghiệm hệ thống điều khiển (hệ thống điều khiển được thực hiện bởi các khối
trong simulink/Matlab) qua ví dụ mô phỏng điều khiển động cơ điện một chiều. Hy
vọng những thành quả này của luận văn sẽ được ứng dụng vào thực tế giúp cho công
việc thiết kế, nghiên cứu và đánh giá các hệ thống điều khiển được nhanh và thuận lợi
hơn.


2


Lời cam đoan
Tôi xin cam đoan đây là luận văn do tôi thực hiện, không sao chép, sửa chữa từ
nội dung của luận văn khác.

Hà Nội, ngày…. tháng …. Năm ……

Học viên
Nguyễn Xuân Thái

1


Mục lục
Danh mục các ký hiệu và viết tắt .......................................................................................6
Danh mục các bảng biểu .....................................................................................................7
Danh mục các đồ thị, hình vẽ .............................................................................................9
Lời mở đầu ........................................................................................................................ 12
CHƢƠNG 1: GIỚI THIỆU VỀ HỆ THỐNG THỜI GIAN THỰC........................... 14
1.1. Hệ thống thời gian thực ........................................................................................ 14
1.2. Hệ điều hành thời gian thực (Real Time Operating System - RTOS)............ 14
1.3. Các thông số dùng để đánh giá, phân tích hệ điều hành thời gian thực ......... 15
1.4. Các yêu cầu của hệ điều hành thời gian thực .................................................... 15
1.5. Lựa chọn nền tảng phát triển ............................................................................... 16
CHƢƠNG 2: CÁC HỆ ĐIỀU HÀNH THỜI GIAN THỰC ....................................... 18
2.1. Xenomai ................................................................................................................. 18
2.1.1. Nguyên lý ........................................................................................................ 18

2.1.2. API (Application programming interface – giao diện lập trình ứng dụng)
..................................................................................................................................... 19
2.1.3. Các đặc điểm. ................................................................................................. 22
2.1.3.1. Hỗ trợ nhiều luồng.................................................................................. 22
2.1.3.2. Hỗ trợ các kiểu đồng bộ cơ bản ............................................................ 22
2.1.3.3. Quản lý bộ thời gian và xung nhịp ....................................................... 22
2.1.3.4. Bộ nhớ chỉ định cở bản .......................................................................... 22
2.1.3.5. Các nền tảng hỗ trợ ................................................................................ 22
2.2. RTAI – Realtime Application Interface ............................................................. 23
2.2.1. Nguyên lý ........................................................................................................ 23
2.2.2. Adeos ............................................................................................................... 25
2.2.3. Lập lịch trình .................................................................................................. 27
2.2.4 API .................................................................................................................... 28
CHƢƠNG 3: ĐÁNH GIÁ SO SÁNH CÁC HỆ ĐIỀU HÀNH THỜI GIAN THỰC
............................................................................................................................................. 30

2


3.1. Hệ thống kiểm tra.................................................................................................. 30
3.2. Đánh giá, so sánh trễ ngắt sử dụng kết nối cổng song song lặp vòng. ........... 30
3.3 Trễ lập lịch trình ..................................................................................................... 36
3.4. Thời gian chuyển khóa ngữ cảnh ........................................................................ 41
3.5. Đánh giá kết quả.................................................................................................... 44
CHƢƠNG 4: THỰC HIỆN HỆ THỐNG THỜI GIAN THỰC ................................. 45
4.1. Cấu trúc hệ thống thời gian thực ......................................................................... 45
4.1.1. Phần cứng ....................................................................................................... 45
4.1.2. Hệ điều hành .................................................................................................. 45
4.1.3. Các phầm mềm được sử dụng ...................................................................... 45
4.2. Các bƣớc tiến hành cài đặt hệ điều hành thời gian thực RTAI. ...................... 46

4.2.1. Chuẩn bị các gói phần mềm cần thiết phục vụ cài dặt các phần mềm. .. 46
4.2.1.1. Các gói phục vụ chung cho tất cả phần mềm...................................... 46
4.2.1.2. Các gói phục vụ cho cài đặt nhân. ........................................................ 46
4.2.1.3. Các gói phục vụ cho cài đặt rtai. .......................................................... 46
4.2.1.4. Các gói phục vụ cho cài đặt comedi-lib. ............................................. 46
4.2.1.5. Các gói phục vụ cho cài đặt comedi-calibrate. ................................... 46
4.2.1.6. Các gói phục vụ cho cài đặt qrtailab. ................................................... 47
4.2.2. Chuẩn bị các bộ cài cho hệ thống thời gian thực ...................................... 47
4.2.2.1. Bộ cài Nhân. ............................................................................................ 47
4.2.2.2. Bộ cài RTAI. ........................................................................................... 47
4.2.2.3. Bộ cài COMEDI. .................................................................................... 47
4.2.2.4. Bộ cài QRTAILab .................................................................................. 48
4.2.3. Thực hiện cài đặt các phần mềm. ................................................................ 48
4.2.3.1. Thực hiện cài đặt phiên bản quản lý hệ điều hành GRUB 0.97 ....... 48
4.2.3.2. Thực hiện cài đặt bản vá nhân hỗ trợ thời gian thực.......................... 49
4.2.3.3. Cài đặt các module hỗ trợ lập trình thời gian thực RTAI .................. 51
4.2.3.4. Cài đặt trình điều khiển thiết bị cho các thiết bị mở rộng COMEDI 52

3


4.2.3.5. Cài đặt các module hỗ trợ thời gian thực RTAI, cập nhập hỗ trợ thêm
module truy nhập dữ liệu COMEDI.................................................................. 53
4.2.3.6. Cài đặt công cụ giám sát các thông số của hệ thống QRTAILAB .. 56
4.2.3.7. Cài đặt môi trƣờng phát triển ứng dụng thời gian thực Matlab ....... 57
CHƢƠNG 5: ỨNG DỤNG HỆ ĐIỀU HÀNH THỜI GIAN THỰC TRONG ĐIỀU
KHIỂN ĐỘNG CƠ MỘT CHIỀU ................................................................................. 60
5.1. Giới thiệu động cơ một chiều. ............................................................................. 60
5.1.1. Nguyên lý làm việc......................................................................................... 60
5.1.2. Mô hình hóa động cơ. ................................................................................... 61

5.1.3. Đặc điểm làm việc động cơ một chiều khi thay đổi điện áp phần ứng. .. 62
5.2. Giới thiệu mô hình điều khiển tốc độ động cơ điện một chiều. ...................... 63
5.2.1. Sơ đồ khối điều khiển đốc độ động cơ điện một chiều. ............................. 63
5.2.2. Sơ đồ cấu trúc điều khiển tốc độ động cơ điện một chiều. ....................... 64
5.2.3. Hàm truyền và mô hình ảnh laplace của các phần tử trong hệ thống. ... 66
5.2.3.1. Động cơ điện một chiều......................................................................... 66
5.2.3.2. Khối chỉnh lƣu cầu ba pha dùng thyristor. .......................................... 67
5.2.3.3. Khâu phản hồi tốc độ. ............................................................................ 69
5.2.3.4. Khâu phản hồi dòng điện....................................................................... 70
5.2.3.5. Khâu điều chỉnh dòng điện. .................................................................. 70
5.2.3.6. Khâu điều chỉnh tốc độ. ......................................................................... 71
5.3. Tính toán thiết kế hệ thống điều khiển tốc độ. .................................................. 71
5.3.1. Tính toán các thông số cho động cơ điện một chiều tại bộ môn tự động
hóa. ............................................................................................................................. 71
5.3.1.1. Thực hiện tính toán. ............................................................................... 71
5.3.1.2. Tính toán hàm truyền cho mô hình mô phỏng. ................................... 72
5.3.2. Tính toán các thông số của bộ chuyển đổi điện áp. .................................. 73
5.3.2.1. Lựa chọn linh kiện cho bộ biến đổi điện áp. ....................................... 73
5.3.2.2. Hàm truyền của khâu chỉnh l ƣu ba pha dùng thyristor...................... 74
5.3.3. Tính toán các thông số của các khối phản hồi........................................... 74

4


5.3.3.1. Khối phản hồi tốc độ. ............................................................................. 74
5.3.3.2. Khâu phản hồi dòng điện....................................................................... 75
5.4. Tính toán các khối điều chỉnh dòng điện và tốc độ. ......................................... 75
5.4.1. Tính tóa mô hình khâu điều chỉnh dòng điện. ............................................ 75
5.4.2. Tính tóa mô hình khâu điều chỉnh tốc độ. .................................................. 77
5.4.3. Thực hiện các khâu giới hạn vật lý của hệ thống mô phỏng.................... 80

5.5. Mô hình mô phỏng và kết quả mô phỏng. ......................................................... 82
5.5.1. Mô hình mô phỏng hệ thống......................................................................... 82
5.5.2. Các tín hiệu đặt để đánh giá hệ thống. ....................................................... 83
5.5.3. Đáp ứng của hệ thống với tín hiệu đặt và tải. ............................................ 84
5.6. Mô phỏng với các phân tử chuẩn trong matlab................................................. 86
5.6.1. Mô hình hệ thống sử dụng các phần tử chuẩn của Matlab. ..................... 87
5.6.2. Kết quả mô phỏng.......................................................................................... 87
5.7. Rời rạc hóa mô hình. ............................................................................................ 89
5.7.1. Mô hình hệ thống sử dụng các phần tử rời rạc. ........................................ 90
5.7.2. Kết quả mô phỏng.......................................................................................... 90
5.8. Mô phỏng thời gian thực. ..................................................................................... 92
5.8.1. Mô phỏng hệ thồng điều khiển động cơ điện một chiều trên hệ thống
thời gian thực. ........................................................................................................... 92
5.8.1.1. Sơ đồ mạch điện của toàn bộ hệ thống đƣợc sủ dụng mô phỏng. .... 92
5.8.1.2. Thực hiện biên dịch sang chƣơng trình thực thi ................................. 93
5.8.1.3. Kết quả mô phỏng của hệ thống. .......................................................... 95
5.8.2. Mô phỏng mạch mạch lực và mạch điều khiển của hệ thống trên hai hệ
điều hành thời gian thực. ......................................................................................... 97
5.8.2.1. Sơ đồ mạch điện khi hệ thống đƣợc tách. ........................................... 97
5.8.2. Kết quả thực hiện chương trình ................................................................... 98
CHƢƠNG 6: ĐÁNH GIÁ KẾT QUẢ VÀ THẢO LUẬN ....................................... 101

5


Danh mục các ký hiệu và viết tắt

Viết tắt

Tiếng việt


Tiêng anh

OS

Operate System

Hệ điều hành

RTOS

Real Time Operating System

Hệ điều hành thời gian thực

ISA

International Society for

Hiệp hội đo lƣờng và điều khiển

Measurement and Control

quốc tế

Portable Operating System

Giao tiếp hệ điều hành khả chuyển

POSIX


Interface
FSU

Số thực dạng dấu phẩy động

Floating Storage Unit

GPCPU General purpose central processing

Đơn vị xử lý trung tâm đa dụng

unit
GPL

General Public Licens

Giấy phép công cộng

LGPL

GNU Lesser General Public

Giấy phép công cộng hạn chế

License
HAL

Hardware Abstraction Layer


Lớp trừu tƣợng phần cứng

API

Application programming interface

Giao tiếp của các chƣơng trình ứng
dụng

RTDM

Mô hình trình điều khiển thiết bị

Realtime Device Driver Model

thời gian thực
LOC

Lines Of Code

Các dòng lệnh

Adeos

Adaptive Domain Environment for

Môi trƣờng hoạt động thích nghi

Operating Systems


cho các hệ điều hành

6


Danh mục các bảng biểu
Bảng 4.1: Cài đặt các gói phần mềm phục vụ cài đặt chung cho hệ thống. .............. 46
Bảng 4.2: Các gói phần mềm phục vụ cài đặt cho nhân hệ thống. ............................. 46
Bảng 4.3: Các gói phần mềm phục vụ cài đặt cho bản vá thời gian thực RTAI. ..... 46
Bảng 4.4: Các gói phần mềm phục vụ cài đặt thƣ viện trình điều khiển Comedi. ... 46
Bảng 4.5: Các gói phần mềm phục vụ cài đặt kiểm thử trình điều khiển Comedi. .. 46
Bảng 4.6: Các gói phần mềm phục vụ cài đặt phần mềm giám sát quá trình
QRTAILAB....................................................................................................................... 47
Bảng 4.7: Các lệnh cài đặt nhân hệ thống. .................................................................... 47
Bảng 4.8: Các lệnh cài đặt phần mềm thời gian thực. ................................................. 47
Bảng 4.9: Các lệnh cài đặt trình điều khiển thiết bị Comedi. ..................................... 47
Bảng 4.10: Các lệnh cài đặt phần mềm giám sát quá trình QRTAILAB. ................. 48
Bảng 4.11: Các lệnh thực hiện lƣu lại cấu hình phiên bản Grub 2. ........................... 48
Bảng 4.12: Các lệnh thực hiện gỡ bỏ gói phần mềm Grub 2. ..................................... 48
Bảng 4.13: Các lệnh thực hiện cài đặt gói phần mền grub legacy (GRUB 0.97)..... 49
Bảng 4.14: Các lệnh thực hiện tạo file cấu hình khởi động cho hệ thống. ................ 49
Bảng 4.15: Các lệnh thực hiện sửa đổi mã nguồn của nhân. ...................................... 49
Bảng 4.16: Các lệnh thực hiện tạo file cấu hình biên dịch nhân. ............................... 49
Bảng 4.17: Các lệnh thực hiện biên dịch nhân. ............................................................ 51
Bảng 4.18: Các lệnh thực hiện vài đặt nhân.................................................................. 51
Bảng 4.19: Các lệnh thực hiện cài đặt bản vá thời gian thực RTAI. ......................... 51
Bảng 4.20: Các lệnh thực hiện cài đặt trình điều khiển thiết bị truy nhập dữ liệu. .. 52
Bảng 4.21: Các lệnh thực hiện cài đặt các thƣ việc hỗ trợ lập trình để khai thác thiết
bị truy nhập dữ liệu (thƣ việc COMEDILIB). .............................................................. 52
Bảng 4.22: Các lệnh thực hiện cài đặt các công cụ căn chỉnh, kiểm định thiết bị truy

nhập dữ liệu(COMEDI-CALIBRATE). ........................................................................ 52
Bảng 4.23: Thêm các thƣ viện của trình điều khiển truy nhập dữ liệu mở rộng vào
bản vá thời gian thực RTAI............................................................................................. 53

7


Bảng 4.24: Thực hiện biên dịch và cài lại các module RTAI đã tích hợp trình điều
khiển Comedi. ................................................................................................................... 54
Bảng 4.25: Tải các module RTAI vào nhân.................................................................. 54
Bảng 4.26: Cài đặt phần mềm giám sát quá trình Qrtailab. ........................................ 56
Bảng 4.27: Tạo đƣờng dẫn cho phép truy nhập vào file matu2k8b.iso. .................... 57
Bảng 4.28: Cài đặt matlab. .............................................................................................. 57
Bảng 4.29: Tải mã nguồn của bản vá RTAI vào thƣ viện toolbox của matlab......... 58
Bảng 5.1: Các thông số động cơ điện một chiều. ......................................................... 71

8


Danh mục các đồ thị, hình vẽ
Hình 2.1: Cấu trúc của Xenomai. ................................................................................... 18
Hình 2.2: Lá chắn ngắt trong đƣờng ống pipe ngắt...................................................... 21
Hình 2.3: sự di chuyển giữa chế độ nguyên thủy và thứ hai. ...................................... 21
Hình 2.4: Kiến trúc của RTAI......................................................................................... 24
Hình 2.5: Tính kết thừa RTHAL trong RTAI. .............................................................. 25
Hình 2.6: Adeos I-PIPE. .................................................................................................. 26
Hình 3.1: Kết nối cổng song song lặp vòng. ................................................................. 31
Hình 3.2: Linux chuẩn không có giành quyền ƣu tiên nguyên thủy. ......................... 32
Hình 3.3: Linux chuẩn với giành quyền ƣu tiên nguyên thủy. ................................... 33
Hình 3.4: Linux chuẩn với bản vá giành quyền ƣu tiên thời gian thực. .................... 33

Hình 3.5: Xenomai không có giành uyền ƣu tiên nguyên thủy. ................................. 34
Hình 3.6: Xenomai với giành quyền ƣu tiên nguyên thủy. ......................................... 34
Hình 3.7: RTAI không có giành quyền ƣu tiên nguyên thủy...................................... 35
Hình 3.8: RTAI với giành quyền ƣu tiên nguyên thủy. ............................................... 35
Hình 3.9: Linux chuẩn không có giành quyền ƣu tiên (“SCHED_OTHER”). ......... 36
Hình 3.10: Linux chuẩn không có giành quyền ƣu tiên (“SCHED_FIFO”). ............ 37
Hình 3.11: Linux với bản vá giành quyền ƣu tiên thời gian thực SCHED_OTHER38
Hình 3.12: Linux với bản vá giành quyền ƣu tiên thời gian thực SCHED_FIFO.... 38
Hình 3.13: Xenomai nhiệm vụ không gian ngƣời dùng. ............................................. 39
Hình 3.14: Xenomai Nhiệm vụ không gian nhân......................................................... 39
Hình 3.15: Xenomai bộ thời gian IRQ........................................................................... 40
Hình 3.16: RTAI nhiệm vụ không gian ngƣời dùng. ................................................... 40
Hình 3.17: RTAI nhiệm vụ không gian nhân. .............................................................. 41
Hình 3.18: Thời gian chuyển khóa ngữ cảnh Xenomai (không giàn h ƣu tiên). ....... 42
Hình 3.19: Thời gian chuyển khóa Xenomai (với giành quyền ƣu tiên)................... 43
Hình 3.20: Thời gian chuyển khóa ngữ cảnh RTAI (không có giành quyền ƣu tiên).
............................................................................................................................................. 43

9


Hình 3.21: Thời gian chuyển khóa ngữ cảnh RTAI (có giành quyền ƣu tiên). ........ 44
Hình 4.1: Giao diện cấu hình biên dịch nhân................................................................ 50
Hình 4.2: Giao diện cấu hình biên dịch các module RTAI. ........................................ 54
Hình 4.3: Kết quả kiểm tra các module RTAI đƣợc nạp bằng lệnh dmesg. ............. 56
Hình 4.4: Giao diện của phần mềm giám sát QRTAILAB. ........................................ 57
Hình 4.5: Giao diện cài đặt phần mềm matlab. ............................................................ 58
Hình 4.6: Các module RTAI đƣợc hỗ trợ trong Matlab. ............................................. 59
Hình 5.1: Mô hình động cơ điện một chiều. ................................................................. 61
Hình 5.2: Mô hình điều khiển tốc độ động cơ một chiều sử dụng thyristor. ............ 62

Hình 5.3: Đặc tính cơ động cơ một chiều kích từ độc lập........................................... 62
Hình 5.4: Sơ đồ khối hệ thống điều khiển tốc độ động cơ điện một chiều. .............. 64
Hình 5.5: Sơ đồ cấu trúc hệ thống điều chỉnh tốc độ động cơ điện một chiều. ........ 65
Hình 5.6: Mô hình động cơ điện một chiều. ................................................................. 66
Hình 5.7: Mô hình tuyết tính hóa động cơ điện một chiều. ........................................ 67
Hình 5.8: Sơ đồ mạch cầu chỉnh lƣu ba pha dùng thyristor. ....................................... 67
Hình 5.9: Hoạt động của bộ chỉnh lƣu ba pha. ............................................................. 68
Hình 5.10: Mô hình dạng cấu trúc mô phỏng. .............................................................. 72
Hình 5.11: Đáp ứng của mô hinh động cơ một chiều với nguồn một chiều 220V. . 73
Hình 5.13: Mô hình vòng điều chỉnh dòng điện. .......................................................... 75
Hình 5.14: Mô hình điều chỉnh dòng ia' . ....................................................................... 76
Hình 5.15: Mô hình khâu điều chỉnh dòng điện. .......................................................... 76
Hình 5.16: Mô hình mạch điều khiển tốc độ................................................................. 77
Hình 5.17: Mô hình của động cơ. ................................................................................... 82
Hình 5.18: Tốc độ đặt để điều khiển động cơ. .............................................................. 83
Hình 5.19: Đƣờng đặt tính của tải. ................................................................................. 84
Hình 5.20: Tốc độ động cơ.............................................................................................. 84
Hình 5.21: Đáp ứng của động cơ tại thời điểm thay đổi của tải từ 0 lên 30Nm tại 4s.
............................................................................................................................................. 85

10


Hình 5.22: Đáp ứng của động cơ tại thời điểm thay đổi của tải từ 30 lên 46Nm tại
7s......................................................................................................................................... 85
Hình 5.23: Dòng điện của động cơ................................................................................. 86
Hình 5.24: Mô hình mô phỏng sử dụng các phần tử chuẩn trong matlab. ................ 87
Hình 5.25: Tốc độ động cơ mô hình liên tục. ............................................................... 88
Hình 5.26: Dòng điện phần ứng động cơ của mô hình liên tục. ................................. 88
Hình 5.27: Mô hình mô phỏng sử dụng các phần tử rời rạc. ...................................... 90

Hình 5.28: Tốc độ của động cơ của mô hình rời rạc .................................................... 91
Hình 5.29: Dòng điện của động cơ của mô hình rời rạc.............................................. 91
Hình 5.30: Sơ đồ hệ thống đƣợc sử dụng mô phỏng trên hệ điều hành thời gian thực.
............................................................................................................................................. 93
Hình 5.31: Bảng điều khiển. ........................................................................................... 94
Hình 5.32: Bảng cài đặt môi trƣờng thực hiện biên dịch. ........................................... 95
Hình 5.33: Tốc độ động cơ trong mô phỏng thời gian thực....................................... 96
Hình 5.34: Dòng điện phần ứng động cơ trong mô phỏng thời gian thực. ............... 97
Hình 5.35: Mạch điều khiển. ........................................................................................... 97
Hình 5.36: Mạch Lực. ...................................................................................................... 98
Hình 5.37: Tốc độ động cơ trong mô phỏng thời gian thực thực hệ kết nối hai hệ
thống................................................................................................................................... 99
Hình 5.38: Dòng điện động cơ trong mô phỏng thời gian thực thực hệ kết nối hai hệ
thống................................................................................................................................. 100

11


Lời mở đầu
Khoa học kỹ thuật phát triển mạnh, các linh kiện số ngày càng hoàn thiện,
các nhƣợc điểm của hệ thống số đƣợc khắc phục (nhƣ tốc độ nhanh hơn, độ phân
giải số cao hơn…), nên các linh kiện số đƣợc ứng dụng rất rộng dãi trong các hệ
thống điều khiển. Giá thành linh kiện số rẻ hơn trƣớc, việc thiết kế mạch điều khiển
logic dần đƣợc thay thế bằng các phần tử có thể lập trình (cho giá thành rẻ hơn, linh
hoạt, mềm dẻo, bảo trì nâng cấp dễ hơn trong các bài toán điều khiển). Các phần tử
này sử dụng các lệnh để thực hiện điều khiển thực hiện các chứng năng của hệ
thống. Trong đó các chíp có khả năng lập trình đƣợc là trung tâm của hệ thống, các
chíp này sẽ chứa các chƣơng trình điều khiển. Các chƣơng trình điều khiển này có
thể đƣợc phát triển từ đầu bao gồm toàn bộ công việc nhƣ quả lý bộ nhớ, vào ra,
thời gian …, nhƣ vậy sẽ làm mất rất nhiều thời gian phát triển, kiểm nghiệm tính ổn

định của từng mô-đun chƣơng trình. Để khắc phục nhƣợc điểm này các hệ điều
hành ra đời, các hệ điều hành này sẽ thực hiện công việc quản lý tài nguyên (bộ
nhớ, ngắt, vào ra, thời gian …) và các chƣơng trình sẽ gọi các mô-đun này (các môđun này đã đƣợc nhà phân phối hệ điều hành kiểm nghiệm nên tính ổn định cao ) để
thực hiện công việc. Nhƣ vậy việc nghiên cứu hệ điều hành để áp dụng vào bài toán
điều khiển là rất cần (giảm thời gian phát triển, chi phí kiểm nghiệm …). Ngoài ra
trong bài toán điều khiển cần đảm bảo tính thời gian thực của hệ điều hành, do đó
luận văn này sẽ nghiên cứu đánh giá hệ điều hành thời gian thực cho các hệ thống
điều khiển.
Luận văn tiến hành đánh giá các hệ điều hành thời gian thực (hệ điều hành
thời gian thực RTAI và xenomai) , dựa trên ba đặc điểm quan trọng của hệ điều
hành thời gian thực: Trễ, dao động, và thời gian chuyển ngữ cảnh. Từ đánh giá đó
tiến hành lựa chọn hệ điều hành thời gian thực và ứng dụng vào bài toán điều khiển
động điện cơ một chiều.
Luận văn thực hiện theo phƣơng pháp thực nghiệm: tìm hiểu các đặt điểm
quan trọng để có thể đánh giá đƣợc tính thời gian thực của hệ điều hành thời gian

12


thực. Xây dựng hệ thống thời gian thực sử dụng hệ điều hành thời gian thực RTAI
trên nền tảng PC (nền tảng x86) sử dụng hệ điều hành Ubuntu phục vụ mục đích thử
nghiệm, ứng dụng vào các bài toán điều khiển. Tìm hiểu sử dụng phần mềm
MATLAB để biên dịch các mô đun khối simulink thành các ứng dụng có thể thực
thi thời gian thực. Thử nghiệm hệ thống với mô hình động cơ điện một chiều.
Kết cầu của luận văn gồm 6 chƣơng:
Chƣơng 1: Tìm hiểu các khái niệm về hệ thống thời gian thực, hệ điều hành
thời gian thực, và các yêu cầu của một hệ điều hành thời gian thực,
Chƣơng 2: Tìm hiểu nguyên lý, đặc điểm làm việc của hai hệ điều hành thời
gian thực RTAI và xenomai.
Chƣơng 3: Đánh giá hệ điều hành thời gian thực RTAI và xenomai dựa trên

ba đặc điểm thời gian thực: Trễ, dao động, chuyển ngữ cảnh.
Chƣơng 4: Nêu các bƣớc tiến hành xây dựng hệ thống thời gian thực RTAI
trên nền tảng PC.
Chƣơng 5: Thực hiện tính toán hệ thống điều khiển động cơ điện một chiều
và ứng dụng hệ thống thời gian thực RTAI vào mô hình trên.
Chƣơng 6: Đánh giá kết quả và bàn luận.

13


CHƢƠNG 1: GIỚI THIỆU VỀ HỆ THỐNG THỜI GIAN THỰC
1.1. Hệ thống thời gian thực
Thông thƣờng thời gian thực (Real-Time) đƣợc đƣợc hiểu với nghĩa là khi
thực hiện một sự kiện sẽ cho đáp ứng trong khoảng thời gian ngắn có thể xác định
trƣớc. Trong kỹ thuật điều khiển, một tiến trình (xử lý) đƣợc gọi là thời gian thực
nếu nó có sự ràng buộc thời gian nào đó và tiến trình đƣợc hoàn thành trong thời
gian định trƣớc mà không xuất hiện lỗi. Một hệ thống thời gian thực là sự kết hợp
các tiến trình với các ràng buộc về thời gian. Kỳ hạn (deadline) là một ví dụ về ràng
buộc về thời gian mà hệ thống thời gian thực mong muốn đạt đƣợc.
Hệ thống thời gian thực đƣợc chia thành hai loại: thời gian thực cứng (hard
real-time) và thời gian thực mềm (soft real-time). Tiêu chuẩn chính để phân loại hệ
thống thời gian thực là mức độ yêu cầu của tiến trình trong hệ thống với kỳ hạn của
nó. Trong hệ thống thời gian thực cứng, kỳ hạn của nó là phải đạt đƣợc, nếu vƣợt
quá kỳ hạn có thể gây hỏng hóc hoặc hoạt động sai cả hệ thống. Mức độ yêu cầu về
kỳ hạn của hệ thống phụ thuộc vào nhiệm vụ thực hiện. Ví dụ về thời gian thực
cứng đó là các lò phản ứng hạt nhân. Với hệ thống thời gian thực mềm, hệ thống có
thể chấp nhận việc tiến trình vƣợt quá kỳ hạn mong muốn trong khoảng dung sai
chấp nhận đƣợc. Sự vƣợt kỳ hạn này không ảnh hƣởng tới hoạt động của hệ thống.
Sự quan trọng của kỳ hạn phụ thuộc vào ứng dụng. Ví dụ, nếu một máy video mất
một hoặc hai khung ảnh là có thể chấp nhận đƣợc nhƣng lại có sự giới hạn về số

lƣợng mất khung ảnh và tần số mất. Trong hệ thống thời gian thực mềm có thể xảy
ra vƣợt kỳ hạn nhƣng không đƣợc thƣờng xuyên.
1.2. Hệ điều hành thời gian thực (Real Time Operating System - RTOS)
Để đạt tính ổn định, mềm dẻo, dễ ràng trong bảo trì nâng cấp các ứng dụng
trong hệ thống thời gian thực, các hệ thống thời gian thực ngày nay thƣờng sử dụng
hệ điều hành thời gian thực.
Một hệ điều hành (Operate System – OS) là một chƣơng trình hệ thống cung
cấp giao tiếp giữa các chƣơng trình ứng dụng và phần cứng của hệ thống. Hệ điều
hành thời gian thực (Real Time Operating System – RTOS) là một hệ điều hành
(Operate System – OS) có khả năng đảm bảo chắc chắn thiết lập ràng buộc (liên
kết) về thời gian. Các chƣơng trình trong hệ điều hành thời gian thực có các nhiệm

14


vụ (task) phải đảm bảo sẽ hoàn thành trƣớc kỳ hạn và nhận đƣợc kết quả đúng.
RTOS phải có khả năng đáp ứng lại sự kiện không dự đoán trƣớc đƣợc trong
khoảng thời gian định trƣớc và xử lý nhiều sự kiện đồng thời. Các nguồn tài nguyên
của hệ thống thời gian thực phải đƣợc quản lý rõ ràng cho mục đích thời gian thực.
1.3. Các thông số dùng để đánh giá, phân tích hệ điều hành thời gian thực
Trễ (Latency): Để phân tích trễ ta coi hệ thống sử dụng RTOS nhƣ hộp đen,
và kiểm tra đáp ứng của hệ thống với ngắt. Trễ là khoảng thời gian sai lệch giữa
thời điểm một ngắt đƣợc sinh ra và thời điểm điều khiển ngắt của hệ thống đƣa ra
đáp ứng. Khi kiểm tra đánh giá ngắt, hệ thống phải trạng thái làm việc tải lớn (tải
CPU lớn và vào ra dữ liệu lớn).
Dao động (Jitter): Trong hệ thống thời gian thực, dao động tác động tới hoạt
động của hệ thống là hiển nhiên. Ví dụ, Trong điều khiển động cơ bƣớc, việc phát
xung trong khi điều khiển động cơ quay, nhƣng dao động thời điểm phát xung làm
cho mômem đƣợc tạo ra sớm hoặc muộn hơn theo dao động. Sự thay đổi vị trí (góc
quay) của động cơ () sẽ dao động theo sự dao động của xung (t) ( = .t),

nguyên nhân dẫn tới mất bƣớc của động cơ [Protor and Shackleford 2001]. Dao
động là thời gian sai lệnh giữa hai trễ ngắt liên tiếp. Cuối cùng, sai lệch lớn nhất
đƣợc chọn nhƣ là dao động (tồi nhất) của hệ thống này.
Thời gian đáp ứng xấu nhất (Worst Case Response Time): Thời gian đáp
ứng xấu nhất đƣợc xác định theo phƣơng pháp của ISA (International Society for
Measurement and Control). Phƣơng pháp xác định tần số ngắt lớn nhất theo ISA:
khi nhận đƣợc tín hiệu vào hệ thống đƣa trực tiếp tới đầu ra, thực hiện đo số lƣợng
xung vào và ra. Khi hệ thống hoạt động ổn định thì số lƣợng xung hai cổng là bằng
nhau. Tăng tần số tín hiệu vào cho tới khi số lƣợng xung hai cổng khác nhau. Tại
thời điểm này, tần số đƣợc giảm xuống cho tới tần số hệ thống làm việc ổn định trở
lại. Tần số tín hiệu vào đo đƣợc là tần số hoạt động lớn nhất của hệ thống. Đáp ứng
thời gian xấu nhất là ngịch đảo của tần số lớn nhất nhận đƣợc. Kiểm tra thực hiện
với tải hệ thống lớn (tải CPU và tải vào ra dữ liệu lớn).
1.4. Các yêu cầu của hệ điều hành thời gian thực
Khả năng đa nhiệm (Multitasking Capabilities): Một ứng dụng thời gian
thực chia thành nhiều nhiệm vụ. Việc chia này sẽ sử dụng tối đa năng lực CPU.

15


Trễ ngắt thấp (Short Interrupt Latency): Trễ ngắt là sự trễ của phần cứng
khi sử lý tín hiệu ngắt + thời gian để hoàn thành câu lệnh hiện tại + thời gian thực
hiện mã hệ thống chuẩn bị cho truyền sự thực hiện tới thiết bị điều khiển ngắt.
Chuyển ngữ cảnh nhanh (Fast Context Switch): Là thời gian khi hệ điều
hành nhận đƣợc sự kiện tới khi bắt đầu của thực hiện nhiệm vụ phục vụ sự kiện đó
đƣợc gọi là thời gian chuyển ngữ cảnh (dispatch latency – trễ điều độ). Trong hệ
thống thời gian thực yêu cầu thời gian chuyển ngữ cảnh phải là nhỏ.
Sự quản lý bộ nhớ (Control of Memory Management): một hệ điều hành
cung cấp cách để nhiệm vụ khóa (lƣu trữ) mã và dữ liệu của nó vào trong bộ nhớ
thực vì vậy nó có thể đảm bảo đáp ứng dự đoán trƣớc đƣợc với ngắt.

Lập lịch trình thích hợp (Proper Scheduling): Hệ điều hành cung cấp cách
thức để lập lịch trình dễ ràng các nhiệm vụ ràng buộc về thời gian.
Dịch vụ bộ thời gian đảm bảo mịn (Fine granularity Timer Services): độ
phân giải hàng milli giây là thô nhất. Độ phân giải hành micro giây là yêu cầu trong
vài trƣờng hợp.
Nhiều cơ chế giao tiếp giữa các nhiệm vụ (Rich set of Inter Task
Communication Mechanism): Hàng đợi thông điệp (Message queues), chia sẻ bộ
nhớ (shared memory), sự đồng bộ - cờ hiệu (semaphores), cờ sự kiện (event flags).
1.5. Lựa chọn nền tảng phát triển
Các hệ thống thời gian thực đều đƣợc thiết kế dựa trên bộ xử lý tín hiệu số,
và chúng có thể đạt đƣợc thời gian thực bởi thực hiện chƣơng trình từ dòng lệnh cơ
bản (dạng mã máy) của bộ xử lý tín hiệu số đó. Nhƣng việc này đòi hỏi ngƣời phát
triển cần phải hiểu biết sâu về phần cứng và môi trƣờng phát triển cho vi điều khiển
đó. Điều này sẽ kéo theo chi phí thời gian lớn để thực hiện, gây khó khăn cho phát
triển và việc đánh giá tính ổn định của hệ thống phức tạp hơn. Do đó ngày nay để
nâng cao hiệu năng lập trình, tính ổn định và giảm chi phí duy trì, phát triển ứng
dụng ngƣời ta sử dụng hệ điều hành thời gian thực trong các hệ thống điều khiển
thời gian thực.
Ngày nay có rất nhiều hệ điều hành thời gian thực khác nhau có cả các bản
mã nguồn mở, thƣơng mại khác nhau. Các hệ điều hành này có thể thực hiện trên
nền tảng Windows hoặc Linux. Trong đó, RTOS dựa trên Linux là rất quan trọng vì
nó có mã nguồn mở và giấy phép công cộng (Public License). Các nhà nghiên cứu,

16


phát triển và lập trình ƣa thích Linux vì nền tảng mở tạo ra sự mềm dẻo trong đánh
giá và phát triển ứng dụng.
Do tính mở và đƣợc sự hỗ trợ rộng lớn của cộng đồng phát triển, nên Linux
ngày càng đƣợc qua tâm. Rất nhiều nhà phát triển hệ thống thời gian thực, kể cả các

nhà cung cấp hệ điều hành thời gian thực thƣơng mại đều có xu hƣớng cung cấp
môi trƣờng phát triển sản phẩn của họ sang môi trƣờng Linux.
Ngoài ra, hệ điều hành Linux còn có các đặc điểm của một hệ điều hành thời
gian thực mềm: Linux hỗ trợ đa luồng và hỗ trợ giao tiếp hệ điều hành khả chuyển
(POSIX) , các thƣ viện phù hợp là sẵn có, ví dụ thƣ viện luồng đơn vị dấu phải động
(FSU Pthread). Trong đó, chuẩn POSIX định nghĩa hệ điều hành và chƣơng trình
giao tiếp nhƣ thế nào với thiết bị phần cứng. Tiêu chuẩn POSIX 1003.13 định nghĩa
là hệ thống thời gian thực đa ngƣời dùng cho phép các tiến trình thời gian thực thực
hiện theo thứ tự bằng cách sử dụng trình lập lịch đặc biệt và tự khóa nó trong bộ
nhớ để tránh sự phân trang nhớ trên đĩa cứng.
Từ những đặc điểm nổi bật của Linux: là hệ điều hành thời gian thực mềm
mã nguồn mở, miễn phí và đƣợc hỗ trợ bở nhiều nhà phát triển. Nên luận văn này
lựa chọn hệ điều hành thời gian thực đƣợc phát triển dựa trên nền Linux.
Trong các máy tính cá nhân hiện, đơn vị xử lý trung tâm đa dụng (General
purpose central processing unit – GPCPU) là không phù hợp cho các ứng dụng thời
gian thực vì có vài nhân tố không đảm bảo nhƣ bộ nhớ ảo và sự quản lý bộ nhớ dẫn
tới cản trở trễ mặc định. Nhƣng với đặc điểm tích toán tốc độ cao của GPCPU ngày
nay (số lƣợng của tính toán dấu phẩy động trên giây là hàng triệu) với lệnh đơn có
thể chứa nhiều dữ liệu và đa xử lý đối nên nó có thể thực hiện đƣợc các hệ thống
điều khiển phức tạp. Để sử dụng các GPCPU vào ứng dụng thời gian thực cứng
ngƣời ta đã thực hiện thay đổi nhân của hệ điều hành để có thể đáp ứng điều điều
khiển thời gian thực, bao gồm khả năng dự đoán trƣớc, khả năng giành ƣu tiên, hỗ
trợ lập lịch trình đa luồng, khả năng ƣu tiên, và thiết bị chia sẻ nguồn dự trữ tránh
đảo lộn thứ tự ƣu tiên. Việc sử đổi nhân này sẽ tạo ra hệ điều hành thời gian thực sử
dụng các CPU của máy tính cá nhân để ứng dụng trong điều khiển. Luận văn sẽ
chọn đơn vị xử lý tín hiệu số là CPU của máy tính cá nhân do tính sẵn có của nó.

17



CHƢƠNG 2: CÁC HỆ ĐIỀU HÀNH THỜI GIAN THỰC
Nhƣ đã nói ở chƣơng 1, ta sẽ lựa chọn các hệ điều hành thời gian thực dựa
trên nền tản máy tính cá nhân PC sử dụng Linux đó là Xenomai và RTAI. Chƣơng
này sẽ giới thiệu về cấu trúc và nguyên tắc hoạt động của chúng.
2.1. Xenomai
Dự án Xenomai đặt ra năm 2001, và đƣợc duy trì tới hiện nay bởi Philippe
Gerum, Bruno Rouchouse và Gilles Chanteperdrix. Mục tiêu chính của dự án là
cung cấp khả năng thời gian thực dựa trên lõi RTOS trừu tƣợng (có mô phỏng các
RTOS nhƣ: VxWorks, pSOS…). Các ứng dụng đƣợc viết cho RTOS truyền thống
có thể thực hiện thông qua lõi RTOS trừu tƣợng này. Nói chung, Xenomai nhắm tới
tính mềm dẻo, tính mở rộng, và khả năng duy trì hơn là cố gắng giành đƣợc khả
năng có trễ khả thi thấp nhất nhƣ RTAI làm. Nhân Xenomai đăng ký giấy phép
công cộng (General Public Licens - GPL). Tuy nhiên, nó vẫn có thể phân phối ứng
dụng độc quyền bằng thƣ viện không gian ngƣời dùng, đăng ký dƣới giấy phép
GNU Lesser General Public License (LGPL).
2.1.1. Nguyên lý

Hình 2.1: Cấu trúc của Xenomai.
18


Ta tìm hiều về nguyên lý của Xenomai thông qua kiến trúc tổng quan trên
Hình 2.1. Xenomai bao gồm vài lớp trừu tƣợng khác nhau. Các lớp này mang lại
tính mềm dẻo to lớn cho xenomai. Phía trên của phần cứng là chỗ nhân nano Adeos
làm việc. Lớp trừu tƣợng phần cứng (Hardware Abstraction Layer – HAL) nằm
phía trên Adeos là phần phụ thuộc kiến trúc của Xenomai. Để xuất Xenomai có thể
chạy trên nền tảng phần cứng khác, lớp HAL phải tƣơng thích với kiến trúc mới để
lớp Adeos có thể hoạt động với kiến trúc đo. Phần trung tâm của hệ thống là hạt
nhân RTOS trừu tƣợng chạy phía trên HAL. Nó thực hiện đặt các dịch vụ RTOS
chung (lớp Real-time nucleus) cho hầu hết các hệ thống. Các ứng dụng có thể sử

dụng các dịch vụ thời gian thực thông qua API nguyên thủy Xenomai hoặc qua các
RTOS-API truyền thống (các API hỗ trợ cho các RTOS truyền thống) khác đƣợc
xây dƣợng phía trên của hạt nhân lớp nucleus. Việc lõi RTOS hỗ trợ cho API cho
RTOS truyền thống giúp việc chuyển các ứng dụng tới kiến trúc Xenomai không
cần viết lại toàn bộ. Xenomai cho phép ngƣời dùng chạy ứng dụng của họ trong
không gian nhân hoặc không gian ngƣời dùng. Trong không gian ngƣời dùng, thời
gian thực hiện nhiệm vụ lâu hơn. Các nhiệm vụ đƣợc chạy trong ngữ cảnh không
gian ngƣời dùng để đảm bảo sự tin cậy của hệ thống, bởi vì sự cố của một tiến trình
trong không gian nhân có thể dẫn tới một hỏng hóc toàn bộ hệ thống. Phần tiếp theo
sẽ tập trung thảo luận vài đặt điểm của API truyền thống.
2.1.2. API (Application programming interface – giao diện lập trình ứng dụng)
Xenomai hỗ trợ cả các RTOS-API truyền thống (API của RTOS truyền
thống) và cả các API nguyên thủy (API của Xenomai), các API này có thể sử dụng
độc lập hoàn toàn. Nó đƣợc thực hiện trong module nhân “xeno_native.ko”. Cung
cấp các dịch vụ:
- Quản lý nhiệm vụ (Task management).
- Dịch vụ thời gian (Timing services).
- Hỗ trợ đồng bộ (đếm cờ hiệu (semaphores), Mutexes, các biến điều kiện,
nhóm cờ sự kiện).
- Truyền thông và thông điệp (hàng đợi thông điệp, đƣờng ống thông điệp,
Bộ nhớ heap).
- Điều khiển thiết bị I/O.
- Hỗ trợ đăng ký (cho phép thực hiện từ các không gian thực thi khác nhau).
API là độc lập ngữ cảnh, nghĩa là gần nhƣ có thể đặt các dịch vụ thời gian

19


thực là nhƣ nhau để có thể sử dụng trong không gian nhân hoặc không gian ngƣời
dùng. Ví dụ một nhiệm vụ là luôn luôn biểu diễn bởi từ khóa RT_TASK và hàng

đợi thông điệp bởi miêu tả từ khóa RT_QUEUE bất chấp không gian thực hiện
chúng sử dụng. Hơn nữa, các từ khóa có thể chia sẻ giữa các không gian thực hiện
và cho phép gọi dịch vụ từ các đối tƣợng đƣợc tạo ra từ không gian đối lập.
Xenomai hỗ trợ chế độ thực hiện pha trộn cho phép các nhiệm vụ trong
không gian ngƣời dùng có thể thực hiện trong miền Xenomai. Nghĩa là sau khi bắt
đầu các tiến trình thời gian thực mới thì nó chạy tiếp tục trong miền Xenomai, hay
còn gọi là “miền nguyên thủy” – Primary Domain. Nhiệm vụ có sự bảo vệ bộ nhớ
nhƣng đƣợc lập lịch trình trực tiếp bởi Xenomai. Chạy trong chế độ này trễ lập lịch
trình trƣờng hợp xấu nhất là luôn luôn gần giới hạn phần cứng và dự đoán đƣợc. Nó
có thể giành quyền ƣu tiên của bất kỳ hoạt động của Linux nào mà không có trễ.
Khi nhiệm vụ thời gian thực trong miền nguyên thủy cho phép hệ thống
Linux gọi, thì nhiệm vụ đƣợc chuyển ngay lập tức tới miền Linux (“miềm thứ hai”Secondary Domain). Nó nằm dƣới trình lập lịch của Linux, nghĩa là nó thể bắt đầu
thực hiện tại điểm lập lịch trình lại gần nhất tiếp theo của nhân Linux. Thời gian di
chuyển phụ thuộc vào sự đản bảo của nhân Linux. Rõ ràng, thời gian dài nhất giữa
hai lần thực hiện của việc lập lịnh trình lại trong Linux là trƣờng hợp xấu nhất. Nó
cho phép các sự kiện nhiệm vụ thời gian thực chạy trong miền thứ hai có thể dự
đoán đƣợc.
Một nhiệm vụ chạy trong miền thứ hai truy nhập tất cả các dịch vụ Linux
thông thƣờng. Tuy nhiên, lời gọi hệ thống đƣợc thiết kế để đảm bảo công bằng và
dự đoán đƣợc sẽ là nguyên nhân vài vấn đề ở đây. Khi vào miền thứ hai, nhiệm vụ
thời gian thực không mất ƣu tiên của nó. Giản đồ ƣu tiên là nhất quán qua các miền,
nghĩa là nhân Linux kế thừa bộ ƣu tiên của nhiệm vụ thời gian thực. Nó tranh giành
nguồn tài nguyên CPU với các tiến trình thời gian thực còn lại. Đây là sự khác biệt
cơ bản với cách RTAI/LXRT thực hiện, trong đó sự kế thừa ƣu tiên đƣợc tối ƣu.
Trong RTAI/LXRT nhiệm vụ thời gian thực lấy ƣu tiên thấp nhất định nghĩa bởi
trình lập lịch RTAI.
Trong khi nhiệm vụ vào miền thứ hai, vẫn có thể bị giành ƣu tiên bởi điều
khiển ngắt Linux chuẩn. Cái này có thể là nguyên nhân trễ không mong muốn vì
vậy cần phải tạo cho nó “lá chắn ngắt” – Interrupt Shield. Nó làm trễ mỗi khi điều
khiển ngắt Linux cho đến khi không có bất kỳ nhiệm vụ thời gian thực nào đang

chạy trong miền thứ hai. Lá chắn ngắt có thể cho phép trong khi cấu hình bản vá
20


nhân qua từ khóa “CONFIG_XENO_OPT_ISHIELD”. Bên cạnh đó, nó có thể cho
phép/không cho phép lá chắn ngắt trong thời gian thực hiện thông qua lời gọi hệ
thống Xenomai “rt_task_set_mode”. (cờ: T_SHIELD) Lá chắn ngắt tự coi nó dƣờng
nhƣ là nhƣ miền Adeos. (nhìn hình 2.2).

Hình 2.2: Lá chắn ngắt trong đƣờng ống pipe ngắt.
Nhƣng đặc điểm này vẫn có thể dẫn tới vấn đề đảo lộn ƣu tiên. Nhiệm vụ
thời gian thực có thể đông cứng khi thực hiện hoạt động vào ra (ví dụ. trình điều
khiển thiết bị Linux thông thƣờng). Từ khi chắn ngắt đƣợc cho phép, sự phân phối
của một ngắt có thể trễ cho tới khi không có bất kỳ một nhiệm vụ thời gian thực nào
đƣợc tích cực trong không gian thứ hai. Điều này có thể là nguyên nhân đảo ngƣợc
ƣu tiên và do đó cần phải viết trình điều khiển thiết bị mới dựa trên miềm Xenomai
hay miền nguyên thủy. Mô hình trình điều khiển thiết bị thời gian thực (Realtime
Device Driver Model - RTDM) hỗ trợ phát triển những trình điều khiển đó. Điều trở
ngại ở đây là trình điều khiển đó đã có trong nhân Linux chuẩn là không phù hợp
cho sử dụng trong môi trƣờng thời gian thực và vì vậy phải viết lại.
Hình 2.3 thể hiện sự di chuyển của tiến trình nhiệm vụ thời gian thực giữa
chế độ nguyên thủy và chế độ thứ hai.

Hình 2.3: sự di chuyển giữa chế độ nguyên thủy và thứ hai.

21


2.1.3. Các đặc điểm.
Phần tiếp theo này sẽ đƣa ra vài đặc điểm quan trọng của hạt nhân

Xenomai là các điểm chủ đạo để có thể so sánh với các bản phối thời gian thực
Linux khác.
2.1.3.1. Hỗ trợ nhiều luồng
- Thuật toán lập lịch trình có ƣu tiên (preemptive scheduling algorithm)
- Mức ƣu tiên cho các luồng là số nguyên 32 bits (32 bit integer priorities).
- Lập lịch trình vòng tròn cho các luồng (thread) có cùng ƣu tiên (lƣợng tử
hóa thời gian)
- Các cảnh giới cho luồng (thời gian đợi một nguồn tài nguyên là giới hạn).
(watchdogs)
- Mô hình 5 trạng thái cho tiến trình (khởi tạo, treo, lấy tài nguyên, trễ do bộ
đếm, sẵn sàng thực hiện).
- Hỗ trợ kế thừa ƣu tiên.
- Hỗ trợ (đơn vị dấu phảy động) FPU trên luồng
2.1.3.2. Hỗ trợ các kiểu đồng bộ cơ bản
- Hỗ trợ kế thừa ƣu tiên, thực hiện chia sẻ mã trình lập lịch.
- Hỗ trợ giới hạn thời gian đợi và xáo bỏ cƣỡng bức sự đợi.
2.1.3.3. Quản lý bộ thời gian và xung nhịp
- Chế độ chu kỳ và không chu kỳ (nếu phần cứng hỗ trợ).
- Hạt nhân chuyển khóa trong suốt từ dao động chu kỳ tới giá trị bộ đếm thời
gian phục thuộc vào chế độ hoạt động bộ thời gian.
- Giới hạn thời gian trƣờng hợp xấu nhất khi khởi động, dừng và cất giữ bộ
thời gian.
- Bộ thời gian sử dụng thuật toán quay tròn.
2.1.3.4. Bộ nhớ chỉ định cở bản
- Bộ nhớ động chỉ định có đảm bảo thời gian thực (thiết bị heap thời gian
thực)
- Dựa trên đề nghị của McKusick và Karels.
2.1.3.5. Các nền tảng hỗ trợ
- ARM
- Blackfin DSP


22


- x86, x86_64 đang phát triển
- IA64
- Power PC
2.2. RTAI – Realtime Application Interface
2.2.1. Nguyên lý
Sự phát triển của giao diện ứng dụng thời gian thực (RTAI) bắt đầu từ năm
2000 bởi giáo sƣ Mategazza tại Dipartimeto di Ingegneria Aerospaziale ở Mailand.
Nó là một nhánh của dự án RTLinux. Các nền tảng đƣợc hỗ trợ bởi RTAI:
- x86
 có hoặc không có Bộ đếm thời gian (TimeStamp Counter - TSC)
 hỗ trợ dấu phẩy động
 cung cấp bản vá đa dạng từ nhân Linux 2.4 và 2.6
 x86_64 đang thử nghiệm
- PowerPC
 PowerPC G5
 Có bản vá chỉ cho nhân Linux 2.4
- ARM
 StrongARM 11x0
 ARM7: họ clps711x, Cirrus Logic EP7xxx, CS89712, PXA25x
 ARM9: bo mạch Cirrus EDB9301 phát triển với EP9301 CPU
(ARM920T)
 Không phải luôn luôn có bản vá cho cả hai nhân Linux phiên bản 2.4/2.6
RTAI là rất giống với Xenomai do có sự sát nhập trong dự án RTAI/Fusion
trong năm 2002. Nhiều lời gọi API Xenomai là API nguyên thủy có bản sao của nó
trong API của RTAI, chỉ phân biệt bởi tên. Tuy nhiên RTAI không theo quan niệm
cung cấp nhiều API cho ngƣời dùng nhƣ Xenomai làm. Việc cung cấp khả năng để

chạy ứng dụng kế thừa từ RTOS truyền thống là nằm ngoài phạm vi của RTAI. Ở
RTAI không có nhiều lớp trừu tƣợng khác nhau thực hiện phía trên các lớp khác
nhƣ trƣờng hợp Xenomai. Hình 2.4 đƣa ra kiến trúc của RTAI.
Cho tới cuối năm 2003, Lớp trừu tƣợng hóa phần cứng còn đƣợc gọi là lớp
trừu tƣợng hóa phần cứng thời gian thực (RTHAL). Về cơ bản, nó bao gồm sự đặt
các con trỏ hàm, đƣợc sửa đổi trong nhân Linux. Đầu tiên, các con trỏ đƣợc trỏ tới

23


×