TS.

Hà Đắc Bình

HỆ THỐNG THỜI GIAN THỰC
Giáo trình dành cho sinh viên ngành điện tử viễn thông

ĐÀ NẴNG 2012

i

.

ii

Lời nói đầu
Hiện nay, hệ thống thời gian thực được ứng dụng rộng rãi trong nhiều lĩnh vực: công nghiệp, y khoa, viễn thông, mạng Internet và đa phương tiện, quốc phòng. Giáo trình này được viết với mục đích cung cấp cho bạn đọc những kiến thức tổng quát và cụ thể về hệ thống thời gian thực, bao gồm các nội dung phần cứng, hệ điều hành thời gian thực, kỹ thuật lập trình và cuối cùng là thiết kế hệ thống thời gian thực. Để nắm bắt tốt nội dung giáo trình này bạn đọc cần có kiến thức cơ bản từ môn học Kỹ thuật lập trình Assembly hoặc C/C++ với nội dung Đại học hoặc Cao đẳng dành cho các ngành Điện tử viễn thông. Sau mỗi chương là phần câu hỏi ôn tập. Bạn đọc nên tự trả lời các câu hỏi này. Các câu hỏi được xắp xếp theo thứ tự có chủ ý. Trả lời hết tất cả các câu hỏi có vẻ là một quá trình tốn công sức và mất thời gian, nhưng tác giả muốn nhấn mạnh rằng đây là phương pháp tối ưu nhất để bạn đọc nắm bắt một cách thấu đáo và hiệu quả nội dung cần biết. Trả lời các câu hỏi này sẽ tiết kiệm thời gian của bạn khi bạn gặp các chương tiếp theo, hoặc thực hiện các ứng dụng có độ phức tạp và tổng hợp cao hơn. Trong tài liệu này vì lý do chuyên môn nên một số từ và khái niệm được giữ nguyên bằng tiếng Anh như được sử dụng phổ biến trong các tài liệu tiếng Việt khác. Trường hợp từ chuyên môn được sử dụng khác nhau bởi các tác giả khác nhau thì giáo trình này sẽ sử dụng theo tài liệu tham khảo là tài liệu phổ biến. Mọi từ tiếng Anh đều được giải nghĩa ở lần xuất hiện đầu tiên. Hệ thống thời gian thực một trong những lĩnh vực phát triển nhanh nhất trong công nghệ hiện đại, nên giáo trình này không thể tránh khỏi sai sót và các nhận định chủ quan. Tác giả kính mong được sự góp ý của bạn đọc để có thể hoàn thiện hơn nữa một giáo trình đề cập đến môn học rất thú vị này. Tác giả

iii

iv ..

. .9. . .1 1. . . 15 Ứng dụng của hệ thống thời gian thực . . . . . . . . . . . . . . . . . . . .9 Ứng dụng trong lĩnh vực công nghiệp: . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Mục lục 1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC 1. . . . . . . . . . . . .8 1. . . . . . . . . . . . . . . . . . .9. . . . . . .9. 23 1. . . . . . . . . . . . . . . . . . . .9.10 Ứng dụng trong những lĩnh vực khác . . . . . . .2 1. . . . . . . . .2 1. . . . . . . . . .7. . . . . . . . . . .4 1. . . . .6 1. . .1 1. . . . . . . . . . . . . . . . 27 v . . . . . . .9. Thời gian trong hệ thống thời gian thực . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 1.9. .7 Giới thiệu chương . . .9. . . . . .9. . . . . . . . . .5 1. . . . Đặc tính của các hệ thống thời gian thực . . 14 Hệ thống điều khiển và hệ thời gian thực . . . . .1 27 Giới thiệu chương . . . . . . . . . Khái niệm hệ thống thời gian thực . . . . . . . . . . . . 1. . . . . 20 Ứng dụng trong lĩnh vực hàng không vũ trụ . . . . .3 1. . . . . . . . . . . . 15 1. . . . . . . . . . Cấu tạo của hệ thống thời gian thực . . . . . . . . 19 Ứng dụng trong lĩnh vực viễn thông . . . . . . . . . . .4 1. . . . . . 16 Ứng dụng trong lĩnh vực y khoa: . . . . . . . Phân loại hệ thống thời gian thực . . . .9. .5 1. . .6 1. . . . 22 Ứng dụng trong lĩnh vực quốc phòng . . . . . . . . . . . . . . . . .1 1. . . . . . . . . 24 2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC 2. . . . . . . . . . . . . . . . . . . . . . . . . . . .3 1. . . . . . . 18 Ứng dụng trong lĩnh vực ô tô và giao thông vận tải . . . . .9 1 1 1 3 4 5 8 Xử lý thời gian thực . . . . . . . . . . . . . 21 Ứng dụng trong lĩnh vực Internet và các ứng dụng đa phương tiện 22 Ứng dụng trong lĩnh vực điện tử tiêu dùng . . . 13 Phương thức xử lý thời gian thực .9. . . . . . 23 Câu hỏi ôn tập . . . 18 Ứng dụng trong lĩnh vực thiết bị ngoại vi . . 13 Các khái niệm trong xử lý thời gian thực .7. . . . . . . . . . .2 1. .7 1. . . . . . . . . . . . . . . . . .

3 Câu hỏi ôn tập . 55 Các dịch vụ cơ bản . . . . . . .tương tự . .4 3. . . . .2.3. 34 Tổ chức bộ nhớ . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Thiết bị chấp hành . . . . . . . . . .5. . . . . . . . . .2 2. . . . . . 45 Hệ điều hành thời gian thực (RTOS) . 35 Thiết bị cảm biến . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Các trạng thái tác vụ . . .3. . . . 52 Các kiến trúc hệ điều hành thời gian thực . . 30 Các chế độ định địa chỉ . . 47 Đặc điểm và chức năng của hệ điều hành thời gian thực . . . . . . . .3. 36 2. . . . . . . .5 3. . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . .3 3. . . . . . . . . . . . . . . . . . . . . . . .3 3.5. . . . . .4. . . . . . . . .2. . . . . . . . . . . . .1 45 . . . 42 Bộ biến đổi số . . 33 2. . . . . . . . . . . . 40 2. .2. . . . . . . . . . 43 2. 51 Tổng quan . . . . . .5 Các thiết bị vào ra . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. .2 3. . . . . . . . . . . .1 3. . 43 3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC 3. . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Cấu trúc cơ bản 2. . . . . . . . . . . . . . . . . . . . . . . .1 2. . . 33 RAM . . . . . . . . . . . . . . . . 54 Hạt nhân hỗn hợp . . . . . . 52 Đơn hạt nhân . . . . . . . . . . . . .2 Bộ chuyển đổi tương tự . . . . . . . . . 47 So sánh hệ điều hành thời gian thực (RTOS) và hệ điều hành trên PC (PCOS) . . . . .3. . . . . . . . .số . . . . .2. . . . . . . .1 2. . . . . . . .3. . . . . . .3. 28 Chu kỳ lấy và thực thi lệnh . . . . . . . . . . . . . . . . . . 53 Vi hạt nhân . . .2. . . . . . . . .4 3. 45 Hệ điều hành . . . . . . . .1 2. 29 Các hình thức của lệnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . .3. . .4. . . . . . . . . . . . . . . . . . 55 vi . . . . . . . . . . . . . . . . . . . . . . .2 2. . . . . . . 48 Phân loại hệ điều hành thời gian thực . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 3. .4. . . . .3 2. . . . . . . . . . . . . . . 32 ROM . . . . . . .4 3. . . . . .4 Bộ nhớ . . . . . . .3. . . . . .2 Tổng quan về hệ điều hành thời gian thự 3. . . . . . . .1 3. . . . .2 2. . . . . . . . . . 45 Giới thiệu chương .5. . .1 2. . . . . . . . . .2 2.4 .1 3. . . . . . . . . . . . . 39 Giao tiếp I/O . . . . . . . 27 Bộ xử lý trung tâm CPU . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 RISC và CISC . . . . . . .

. . . .3 4. . . . . . . . . . . . . . 83 Xử lý ngắt trong môi trường RTOS . . . . . . . 84 Sự ưu tiên của ngắt . . . . . . . . . . 65 4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC 4.1 4. . . . . . . . . . . .1 4. . .2.2. . .3. . . . . .4. . . . . .3. . . . . . . . . . . . . 72 Các chế độ của bộ đếm/bộ định thời . . . . . . . . .2. . . . . . . 74 Lập trình cho các bộ đếm . . . . . . . .3 Kỹ thuật lập lịch (Scheduling) 4. . . bộ định thời và quá hạn . . . . . . . . . . . 68 4. . .2. . . . . . . . . . . . . . . . . . . . .2. . . .1 4. . . . .2 4. .4. . . 87 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Tổng quan . . 72 4. . . .2. . . . . . . . . . . . . . . . . . . . .3 Chức năng bộ định thời . . . . . . . . . . . . . . . . . . . . . .3. . . .4. . . . .4 3. . . . . . . . . . . .2. . .2 67 Giới thiệu chương . .4. . . . . . . . . . . . . . 90 vii . . . . . . . . 67 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Xử lý ngắt . . . 83 4. .2. . . . . . . . . . . Mailboxes và Pipes . . . . . . . . .3. . . . . . .2 3. .5. . . . . . . . . .3 Bộ lập lịch . .2 4. . . .2 3. . . . . . .4. . . . . . 79 Tổng quan về ngắt . . . . . . . 56 Tác vụ và dữ liệu . . . . . . 75 .4 Tổng quan về ngắt của 8051 . . . . . . . . 59 Các sự kiện – Event . 59 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . .3 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . 87 Các ví dụ sử dụng ngắt .4. . . . .2. . .1 4. . . . . . .3 4. . . .4. . . . . . . . . . . . . . . . . . . . 64 Các dịch vụ mở rộng của RTOS thương mại . . . . . 68 Timer phần cứng .2. 86 Các vector ngắt . . .4. . . 58 Message Queues. . .1 4. . . . . . . . . . . . . . . . . . . .3. . . .5. . .3 4. . . . . .1 3.2 Các phương pháp lập lịch phổ biến . .3. . . . . . . . . . . . . .2 4. .3. . . .2. .1 4. . . . . . . . . . . 84 4. . . . . . 69 Timer phần mềm . . . . . . . . . . . . 78 Ví dụ về lập trình Timer cho 8051 . 67 Bộ định thời (Timer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . .4. . . . . . . . . . . .1 4. . . . . . . . . . . . . . . . . . . . . 67 Thời gian. . . . . . . . . .2 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Ví dụ ngắt của 8051 . . . 57 Đèn báo (Semaphore) và chia sẻ dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . 63 Giới thiệu một số hệ điều hành thời gian thực . .3.5 3. . .2. . .3 3. . . . . 78 Các giải thuật lập lịch . . . . . . . . .3.5. . .2 Thời gian (Time) và quá hạn (Timeout) . . . . . .

. . . . . . . . . .1. . . . . . . 107 Lập lịch . . . . . . . . . . . . . .2 5. . . . . 99 5. .3 5. 109 5. . . . . . 107 Câu hỏi ôn tập . . . . . . . . . 102 Lập lịch . . . . . 106 Lập lịch: . . . . . . . .3. . . . . . . .2 5. . . . . . . . . . . . . . . . . . . . . 108 Giao tiếp . . . . . 99 5. 98 MARS . . .1 SPRING . . . . . . .1 5. . . . 97 Truyền thông bất đồng bộ . . . . . . . . . . . . . . .5 Đáp ứng thời gian thực . . . . . . . . . . . . . . . . . 107 I/O và xử lý ngắt . . . . . . . . . . . . . . . .2.3. . . . . . . . . . . . . . . . . . . . . . . . . . . .4 5. . .3. . . . .3 Truyền thông . . . . . . . . . . . 98 Tình trạng tranh đua và định thời . . . . . . . . . . . 104 RK . . . . . . . . . . . . . . . . 103 Quản lý tác vụ . . .3. . . . . 94 Phục hồi khi bị lỗi . .2 5. . . . . . . . . . . . . . . .3. . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . 93 5. . . . . . . .1 5. . . . . 103 Xử lý ngắt . . . . . . . .3 5. . . . . . . . . . . . . .1. . . . . . . .3. .1.3. . .2 5. . . . . . . . . . . . . . . .2. . . .2. . 110 Tài liệu tham khảo 111 viii . . . . . . . .2. . .2. . . . . . . . .3. . . .3. . . . . . . . . . . 93 Các vấn đề về thiết kế hệ thống thời gian thực .1 5.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 5. . . . . . . .3. . . . . . . . . . . . . .3. 95 Thiết kế kiến trúc phân tán . . .2. . . . . . . . . . . . . . . . . . . . . . . . . .3 Giới thiệu một số hệ thống thời gian thực tiêu biểu . . . . . . . . . . . . . . .2. . . . . . . . . . . .3. . . . . . . . . . . . . . 109 I/O và xử lý ngắt . . .3 5. . . . . . . . .3 5. . . . . . . . . . . . . . . .5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC 5. . . .2 93 Giới thiệu chương .2 5. . . . . . . . . . . .3. . . . . . . . . . .1 5. . . .3.

• Giới thiệu thời gian trong hệ thống thời gian thực.1 Chương 1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC 1. 1.1 Giới thiệu chương • Giới thiệu các khái niệm liên quan đến hệ thống thời gian thực. • Giới thiệu một số ứng dụng của hệ thống thời gian thực.2 Khái niệm hệ thống thời gian thực Hệ thống là tập hợp các phần tử có quan hệ hữu cơ với nhau. Một hệ thống trong kỹ thuật là một sự kết hợp của tập hợp các yếu tố đầu vào thành một tập hợp các kết quả ở đầu ra. Hay nói một cách khác. Như vậy. một hệ thống thời gian thực không có nghĩa đơn thuần là hệ thống đó 1 . tính đúng đắn của nó không chỉ phụ thuộc vào kết quả tính toán hợp lý mà còn phụ thuộc vào thời gian mà kết quả này được tạo ra. tác động chi phối lẫn nhau theo các quy luật nhất định để trở thành một chỉnh thể.1. • Phân loại hệ thống thời gian thực • Mô tả các đặc điểm của hệ thống thời gian thực. như hình 1. Một hệ thống thời gian thực là một hệ thống phải đáp ứng yêu cầu rõ ràng về mặt logic và về mặt thời gian.

1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC Hình 1. như hình 1. Chẳng hạn.1: Mô hình một hệ thống xử lý Hình 1. Ví dụ. người ta thiết lập các mức ưu tiên khác nhau cho từng công việc và qui định thời gian cho chúng. hệ thống điều khiển không lưu. lò phản ứng hạt nhân. Có những cảnh báo khi khoảng thời gian qui định này không được đáp ứng. Một hệ thống chỉ cần thỏa mãn 2 yếu tố: có kết quả hợp lý và đáp ứng yêu cầu về mặt thời gian thì ta coi đó là hệ thống thời gian thực.3. người ta thường dùng 2 . Một hệ thống điều khiển thời gian thực như hình 1. hệ thống này gồm nhiều tín hiệu cảm biến và tín hiệu hình ảnh từ camera đầu vào. tên lửa.2. . các hệ thống của máy bay. Vì một hệ thống thường có nhiều công việc khác nhau nên các công việc này được sắp xếp theo một lịch trình cụ thể.2: Một mô hình một hệ thống điều khiền thời gian thực xử lý nhanh vì xử lý tốc độ nhanh ở đây là chưa cụ thể. hệ thống đặt chỗ của hàng không. là những hệ thống thời gian thực vì chúng phải xử lý thông tin trong khoảng thời gian đã định trước nếu không chúng sẽ bị lỗi. . Mỗi công việc có một mức độ khẩn cấp riêng. hệ thống căn cứ vào các dữ liệu của các đầu vào xử lý theo thuật toán đã định trước để được kết quả hiển thị và kết quả điều khiển các đối tượng ở đầu ra.

Khi sử dụng nhiều ngắt.).1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC Hình 1. Phần cứng bao gồm các loại mạch (mạch xử lý.4: Ví dụ về một mô hình hệ thống thời gian thực Cảm biến 3 . Hình 1. người ta thường đặt các mức ưu tiên khác nhau cho các loại ngắt này. các chương trình ứng dụng.). Xem thêm về cách thức xử lý ngắt ở chương 4.3: Mô hình một hệ thống xử lý với các công việc được lập lịch ngắt để báo hiệu một công việc nào đó bắt đầu. Mức ưu tiên này thường được thiết lập cho những sự kiện mang tính sống còn của hệ thống như Reset. Phần mềm bao gồm hệ điều hành thời gian thực.3 Cấu tạo của hệ thống thời gian thực Một hệ thống thời gian thực được cấu tạo từ hai phần: phần cứng và phần mềm... các thiết bị phụ trợ đi kèm (điện.. các đối tượng điều khiển (van. cảm biến. mạch giao tiếp. cơ khí. Mô hình phần cứng của hệ thống thời gian thực như hình 1.. mạch điều khiển.3. Mức ưu tiên cao nhất sẽ được đáp ứng ngay bất kể khi đó hệ thống đang làm công việc gì.). 1... động cơ.

1. một loại cảm biến nhiệt độ sử dụng các nguyên tắc của sự thay đổi của điện trở với nhiệt độ (gọi là một varistor). Cũng có loại cảm biến áp suất hoạt động dựa trên các nguyên tắc vật lý khác. Cũng có loại cảm biến nhiệt độ dựa trên các nguyên tắc vật lý khác. thay đổi của nhiệt. Khối chấp hành Khối chấp hành là bất kỳ thiết bị nào có chức năng chuyển đổi các tín hiệu điện thành một số hành động vật lý trên môi trường hoạt động của hệ thống. thiết bị truyền động thủy lực và khí nén cũng được sử dụng phổ biến. Điều này được gọi là chuyển đổi đầu ra. Một cảm biến áp suất thường hoạt động trên nguyên tắc điện áp. khí nén hoặc đặc tính vật lý của một số đối tượng. nó hoạt động dựa trên nguyên lý sự thay đổi nhiệt độ dẫn đến thay đổi điện thế. Một khối chấp hành phổ biến là một động cơ. các tín hiệu tương tự được tạo ra bởi một tế bào photo-voltaic bình thường trong phạm vi mV và cần được chuyển đổi trước khi chúng có thể được xử lý bởi máy tính. Máy gia nhiệt. một cảm biến nhiệt độ hoạt động trên nguyên tắc của cặp nhiệt điện (thermocouple).4 Phân loại hệ thống thời gian thực Hệ thống thời gian thực được chia thành 2 loại: Hệ thống thời gian thực mềm (Soft real-time system) và Hệ thống thời gian thực cứng (Hard real-time system). Ví dụ. Hệ thống thời gian thực mềm: 4 . chuyển đổi đầu vào là cần thiết để được thực hiện trên các tín hiệu cảm biến trước khi chúng có thể được chấp nhận bởi máy tính. Những hành động vật lý có thể là các hình thức của chuyển động. Tương tự như vậy.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC Cảm biến dùng để chuyển đổi một số đặc tính vật lý của môi trường hoạt động thành tín hiệu điện. Một ví dụ về một bộ cảm biến là tế bào photo-voltaic chuyển đổi năng lượng ánh sáng thành năng lượng điện hoặc các cảm biến nhiệt độ và cảm biến áp suất. đặc tính điện. Khối chuyển đổi tín hiệu Các tín hiệu điện được tạo ra bởi một máy tính có thể hiếm khi được sử dụng trực tiếp cho khối chấp hành. Ví dụ. Khối xử lý thời gian thực Đây là khối xử lý trung tâm chạy trên hệ điều hành thời gian thực cùng với các chương trình ứng dụng đi kèm. Các tín hiệu máy tính thường được chuyển đổi trước khi chúng có thể được sử dụng bởi các thiết bị truyền động. Thông thường. Phần này sẽ được nói rõ hơn ở những chương sau.

Các loại ràng buộc thời gian xem Phần 1. Một thời hạn của tác vụ được quy định cụ thể thời gian trước khi tác vụ phải hoàn thành và cho ra các kết quả. Hệ thống thời gian thực mềm thường được sử dụng nơi tồn tại sự truy cập đồng thời và sự cần thiết để giữ cho một số hệ thống kết nối để cập nhật với thay đổi tình huống. nhưng hệ thống vẫn có thể tiếp tục hoạt động. ví dụ như phần mềm duy trì và cập nhật các kế hoạch bay cho máy bay thương mại.6.5 Đặc tính của các hệ thống thời gian thực Một hệ thống thời gian thực có những đặc tính sau: 1) Tính ràng buộc thời gian : Mỗi tác vụ thời gian thực được kết hợp với một số ràng buộc về thời gian. Các kế hoạch bay phải được giữ hợp lý với trạng thái hiện hành nhưng có thể hoạt động với một độ trễ của giây. Hệ thống thời gian thực cứng được sử dụng khi nó là bắt buộc rằng một sự kiện được phản ứng trong một thời hạn nghiêm ngặt. Đảm bảo mạnh mẽ như vậy được yêu cầu của hệ thống mà không phản ứng trong một khoảng thời gian nhất định sẽ gây ra tổn thất lớn. tuy nhiên khi thời gian này không đáp ứng được thì hệ thống vẫn tiếp tục hoạt động bình thường mà không quan tâm đến hậu quả của những vi phạm này (thường thì các tác hại này là không đáng kế). Các ví dụ khác của các hệ thống nhúng thời gian thực cứng bao gồm các hệ thống điều trị y khoa như máy tạo nhịp tim và các bộ điều khiển quá trình công nghiệp. một hệ thống điều khiển đánh lửa ở động cơ xe là một hệ thống với qui định về thời gian nghiêm ngặt bởi vì một tín hiệu chậm trễ có thể gây hỏng động cơ hoặc thiệt hại. Hệ thống thời gian thực cứng: Là hệ thống mà trong đó người ta đưa ra yêu cầu rất khắc khe về thời gian. Đây là trách nhiệm 5 . 1. đặc biệt là làm tổn hại đến môi trường xung quanh. Ví dụ. Một hình thức rất phổ biến của ràng buộc thời gian là thời hạn (deadline) gắn với tác vụ. Hệ thống audio-video trực tiếp (Live audio-video systems) cũng là hệ thống thời gian thực. Nguyên nhân là do khi bất kỳ một vi phạm về thời gian đều để lại một hậu quả vô cùng nghiêm trọng. về thể chất hoặc đe dọa cuộc sống con người (mặc dù định nghĩa nghiêm ngặt chỉ đơn giản là không đáp ứng thời hạn thì tạo nên sự thất bại của hệ thống ).1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC Là hệ thống mà trong đó thời gian trả lời của hệ thống cho một yêu cầu xử lý bên ngoài là quan trọng. vi phạm những ràng buộc về mặt thời gian thì dẫn đến sự suy giảm về chất lượng.

1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC của hệ điều hành thời gian thực (RTOS) để đảm bảo rằng tất cả các tác vụ đáp ứng các ràng buộc thời gian của mình. Trong những chương sau, chúng ta sẽ xem xét làm thế nào một RTOS có thể đảm bảo rằng các nhiệm vụ đáp ứng các hạn chế thời gian của mình thông qua các chiến lược lập kế hoạch công việc thích hợp. 2) Tính đúng đắn : Khái niệm đúng đắn trong các hệ thống thời gian thực khác với trong bối cảnh của các hệ thống truyền thống. Trong các hệ thống thời gian thực, tính chính xác hàm ý không chỉ là sự đúng đắn hợp lý của các kết quả, mà thời gian các kết quả được xuất ra là rất quan trọng. Một kết quả hợp lý chính xác được xuất ra sau thời hạn sẽ được coi là một kết quả không chính xác. 3) Tính nhúng (embedded): Một phần lớn của các hệ thống thời gian thực là hệ thống nhúng. Một hệ thống máy tính nhúng về mặt vật lý là được "nhúng" trong môi trường của hệ tống chung và thường điều khiển hệ thống chung đó. Một ví dụ về một hệ thống nhúng là Multi-Point Fuel Injection (MPFI), hệ thống thảo luận trong Ví dụ 6 Mục 1.9. 4) Tính an toàn và tin cậy : Đối với hệ thống không thời gian thực truyền thống, đảm bảo an toàn tuyệt đối và có độ tin cậy tốt là những vấn đề độc lập. Tuy nhiên, trong nhiều hệ thống thời gian thực, hai vấn đề phức tạp này liên kết với nhau tạo nên đặc tính này của hệ thống. Lưu ý rằng, một hệ thống an toàn là một hệ thống không gây ra bất kỳ thiệt hại ngay cả khi nó không thành công. Mặt khác, một hệ thống đáng tin cậy là một hệ thống có thể hoạt động trong thời gian dài mà không có bất kỳ thất bại nào. Một hệ thống an toàn và có độ tin cậy cao là cần thiết bởi vì bất kỳ sự thất bại của hệ thống có thể gây ra thiệt hại lớn. 5) Tính đồng thời : Một hệ thống thời gian thực thường cần phải đáp ứng một số các sự kiện độc lập trong giới hạn thời gian ngắn và nghiêm ngặt. Ví dụ, một hệ thống tự động hóa kiểm soát của nhà máy hóa chất (xem Ví dụ 1 mục 1.9), theo dõi sự tiến độ của các phản ứng hóa học và điều khiển tốc độ của phản ứng bằng cách thay đổi các thông số khác nhau như áp suất, nhiệt độ và nồng độ hóa học. Các tham số này được thu nhận bằng cách sử dụng các bộ cảm biến được cố định trong buồng phản ứng hóa học. Các cảm biến này có thể tạo ra các dữ liệu không đồng bộ ở các mức khác nhau. Vì vậy, hệ thống thời gian thực phải xử lý dữ liệu từ tất cả các cảm biến đồng thời, nếu không các tín hiệu có thể

6

1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC bị mất và có thể xảy ra các sự cố hệ thống. 6) Tính phân tán và cấu trúc phản hồi : Trong nhiều hệ thống thời gian thực, các thành phần khác nhau của hệ thống được phân bố tự nhiên trên các vị trí địa lý khác nhau. Trong các hệ thống như vậy, những sự kiện khác nhau phát sinh tại các địa điểm địa lý riêng biệt. Vì vậy, những sự kiện này thường có thể phải được xử lý tại chỗ để giảm tải của mạng truyền thông. Do đó, các cảm biến và khối chấp hành có thể được đặt ở những nơi mà các sự kiện được tạo ra. Một ví dụ về hệ thống như vậy là một nhà máy lọc dầu phân bố trên một khu vực địa lý rộng lớn. Tại mỗi nguồn dữ liệu, một thiết kế tốt là xử lý dữ liệu tại chỗ trước khi đưa đến bộ xử lý trung tâm. Khi khối chấp hành thực thi lệnh thì nó làm thay đổi môi trường ở các bộ cảm biến và các bộ cảm biến lại phản hồi sự thay đổi này về cho bộ xử lý trung tâm. 7) Tính quan trọng tác vụ : Tính quan trọng tác vụ là một cách đo cái giá của sự thất bại của một tác vụ. Tính quan trọng tác vụ được xác định bằng cách kiểm tra tính quan trọng của các kết quả được tạo ra bởi các tác vụ đối với sự hoạt động đúng đắn của hệ thống. Một hệ thống thời gian thực có các tác vụ với tầm quan trọng rất khác nhau. Do đó, rất dễ hiểu tầm quan trọng của các tác vụ khác nhau phải được xem xét khi thiết kế khả năng chịu lỗi. Tầm quan trọng của một tác vụ cao hơn, đáng tin cậy hơn, nó phải được ưu tiên thực hiện. Hơn nữa, trong trường hợp của một sự thất bại của một tác vụ quan trọng, việc phát hiện và phục hồi ngay lập tức sự thất bại là rất quan trọng. Tuy nhiên, mức ưu tiên của tác vụ là một khái niệm khác và tầm quan trọng của tác vụ là một trong những yếu tố để xác định mức ưu tiên của tác vụ hoặc thứ tự thực thi các tác vụ. 8) Tính phù hợp của phần cứng : Một hệ thống thời gian thực thường được thực hiện trên phần cứng phù hợp với người sử dụng. Ví dụ, một điện thoại di động không sử dụng các bộ vi xử lý truyền thống. Điện thoại di động sử dụng bộ vi xử lý là có kích thước nhỏ, chỉ hỗ trợ những khả năng xử lý thực sự cần thiết cho hoạt động của điện thoại di động và thiết kế đặc biệt để có hiệu quả sử dụng năng lượng cao với mục đích tiết kiệm pin. Các khả năng của bộ vi xử lý được sử dụng trong một điện thoại di động là rất khác so với của một bộ xử lý mục đích chung. 9) Tính tương tác : Các hệ thống thời gian thực thường có sự tương tác. Một hệ thống tương tác là một

7

1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC hệ thống trong đó một sự tương tác giữa máy tính và môi trường được duy trì. Hệ thống thông thường tính toán hàm các dữ liệu đầu vào để tạo ra các dữ liệu đầu ra. Nói cách khác, các hệ thống truyền thống tính toán dữ liệu đầu ra như một hàm φ của các dữ liệu đầu vào. Đó là, dữ liệu đầu ra có thể được thể hiện theo toán học như sau: Dữ liệu đầu ra = φ (Dữ liệu đầu vào) Ví dụ, nếu một số I1 dữ liệu được đưa vào đầu vào, hệ thống sẽ tính toán O1 như là kết quả O1 = φ(I1). Xây dựng khái niệm này, hãy xem xét một ví dụ liên quan đến một phần mềm tự động hóa thư viện. Trong một phần mềm tự động hóa thư viện, khi dùng chức năng tìm kiếm một cuốn sách của "hệ thống Real-Time" bằng cách nhập tên cuốn sách đầu vào, sau đó phần mềm hiển thị "Tên tác giả: R. Mall, Rack Số: 001, Số bản sao: 1 ". Ngược lại với các tính toán truyền thống của đầu ra như là một hàm đơn giản của các dữ liệu đầu vào, các hệ thống thời gian thực không tạo ra bất kỳ dữ liệu đầu ra, nhưng đưa vào tương tác liên tục với môi trường của chúng. Trong mỗi bước tương tác, kết quả tính toán được sử dụng để thực hiện một số hành động đối với môi trường. Phản ứng của môi trường sẽ được lấy mẫu và được đưa trở lại vào hệ thống. Vì vậy, các tính toán trong một hệ thống thời gian thực có thể được coi là không chấm dứt. 10) Tính ổn định : Trong điều kiện quá tải, hệ thống thời gian thực cần tiếp tục đáp ứng thời hạn trong những tác vụ quan trọng nhất, mặc dù thời hạn của tác vụ không quan trọng có thể không đáp ứng được . Điều này là trái ngược với yêu cầu của sự công bằng cho các hệ thống truyền thống, ngay cả dưới điều kiện quá tải. 11) Tính tự động xử lý ngoại lệ : Nhiều hệ thống thời gian thực làm việc liên tục và thường hoạt động mà không có người điều khiển. Ví dụ, một nhà máy hóa chất nhỏ được thiết lập tự động để làm việc không ngừng. Khi không có người vận hành, hành động khôi phục từ một thất bại trở nên khó khăn. Thậm chí, nếu không có hành động khắc phục ngay lập tức thì cũng mong muốn một thất bại không tạo ra các tình huống thảm khốc. Khi sự cố được phát hiện thì hệ thống sẽ tiếp tục hoạt động trong một chế độ bị suy thoái hơn là bị tắt đột ngột.

1.6 Thời gian trong hệ thống thời gian thực
Thời gian thực là một khái niệm định lượng thời gian và được đo bằng cách sử dụng một đồng hồ vật lý (thực) như hình 1.5. Bất cứ khi nào chúng ta định lượng thời gian

8

hình ảnh phải được cập nhật ở mức khoảng 30 khung hình mỗi giây để cung cấp cho sự chuyển động liên tục. thông số vận tốc phải được đọc với một tốc độ mà nó phải dựa vào vận tốc tối đa của phương tiện. đi trước. chúng ta đã làm việc với thời gian thực. khởi tạo tác vụ và đánh dấu dữ liệu. Khi nghiên cứu các hệ thống thời gian thực. cuối cùng.5: Một đồng hồ thời gian thực Ngược lại thời gian thực. Khi làm việc với thời gian lôgic. đôi khi. cần lưu ý rằng các đồng hồ cho thời gian có thể không chính xác. thời hạn của hệ thống được dựa trên việc suy đoán. thời gian lôgic (còn được gọi là thời gian ảo) là một khái niệm không định lượng của thời gian và được thể hiện bằng cách sử dụng các sự kiện theo quan hệ thứ tự như: trước. chúng ta phải xem xét bản chất của thời gian. Hơn nữa. thời hạn được dựa trên các hiện tượng vật lý cơ bản của hệ thống điều khiển. Tuy nhiên. thời gian đọc từ đồng hồ vật lý không còn cần thiết nữa đối với sự sắp xếp thứ tự các sự kiện. v. sau khi. Thời gian là vấn đề cơ bản nhất của hệ thống thời gian thực. ở các màn hình động. điều 9 . có một số lỗi số hóa liên quan với đồng hồ. Nói chung. bởi vì mắt người cập nhật với một tốc độ chậm hơn.v. thành công. đặc biệt là trong hệ thống thời gian thực cứng. Các vấn đề trong những trường hợp này là tương đối khó cho thiết kế hệ thống. Trong một số trường hợp.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC bằng cách sử dụng một đồng hồ vật lý. Ví dụ. Trong các hệ thống định hướng. bởi vì thời hạn của tác vụ là những khoảnh khắc của thời gian. Hình 1. ngay cả những đồng hồ nguyên tử chính thức của Mỹ cũng phải được điều chỉnh. Nhưng câu hỏi đặt ra là: "Thời hạn đến từ đâu?". Nhiều hệ thống thời gian thực sử dụng mốc thời gian và đồng hồ chung cho sự đồng bộ hóa.

Khái niệm về thời gian rời rạc dựa trên một sự phân biệt giữa thời điểm và khoảng thời gian. là để theo dõi thời gian thực hoặc thời gian trôi qua khi hệ thống được cấp nguồn (tùy thuộc vào việc thực hiện). Trong môi trường có nhiều vi xử lý có thể tồn tại nhiều đồng hồ thì những đồng hồ này phải đồng bộ với nhau. Hình 1. một chức năng quan trọng của ngắt bộ đếm thời gian là duy trì đồng hồ hệ thống. Công việc của đồng hồ hệ thống tương tự như đồng hồ thời gian thực. Vì vậy.6: Đồng hồ hệ thống • Các loại đồng hồ hệ thống Nếu hệ thống có 1 đồng hồ duy nhất thì đó là đồng hồ máy chủ (Server clock). Bộ đếm có khả năng lập trình sẽ kiểm soát đồng hồ hệ thống. Khi đồng hồ chính bị hỏng thì 1 trong các đồng hồ phụ thay thế đóng vai trò đồng hồ chính. Thông thường các trục thời gian được chia thành một số liền kề phân đoạn thời gian (thường có chiều dài cố định). như trong hình 1.6. Giá trị ban đầu của đồng hồ hệ thống thường được lấy từ đồng hồ thời gian thực tại thời đểm bật nguồn hoặc được thiết lập bởi người sử dụng. Các đồng hồ này đồng bộ với nhau. • Quan niệm về sự rời rạc thời gian Thời gian rời rạc là sự không liên tục trên miền thời gian của một hàm do sự lấy mẫu của biến tại một khoảng thời gian hữu hạn. Nếu hệ thống có nhiều đồng hồ thì gồm 1 đồng hồ chính (Master clock) và nhiều đồng hồ phụ (Slave clock). • Đồng hồ hệ thống Thời gian hệ thống được đo bằng đồng hồ hệ thống. tức là đồng hồ hệ thống đếm thời gian khi có ngắt của bộ đếm. Loại đồng hồ này có độ chính xác cao và giá thành đắt.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC này cần phải được xem xét khi sử dụng chúng cho việc đánh dấu thời gian của dữ liệu. như 10 .

Trên thực tế. Ràng buộc về thời gian phân thành 3 loại: (1) Ràng buộc trễ (Delay Constraint) (2) Ràng buộc thời hạn (Deadline Constraint) (3) Ràng buộc khoảng thời gian (Duration Constraint) Delay: Sự ràng buộc trễ là thời gian tối thiểu (delay) phải có giữa sự xuất hiện của hai sự kiện bất kỳ e1 và e2. Một ràng buộc trễ của sự kiện e2 với đối sự kiện e1 được thể hiện trong hình 1. Chu kỳ này khoảng s hoặc ns.7. biểu thị khoảng thời gian giữa sự xuất hiện của hai sự kiện e1 và e2 và d là khoảng cách tối thiểu cần thiết giữa hai sự kiện (sự chậm trễ). nếu e2 xảy ra sớm hơn so với thời gian trễ tối thiểu này thì coi đó là một hành vi vi phạm ràng buộc trễ. Những sự kiện này có thể được tạo ra bởi chính các tác vụ hoặc bởi môi trường của hệ thống. Đồng hồ trong các hệ thống số phát sinh ngắt báo hiệu theo 1 chu kỳ. Gọi t(e1) và t(e1) là mốc thời gian tương ứng của các sự kiện e1 và e2 và d là sự chậm trễ tối thiểu quy định từ e2. Trong đó. Nó rất dễ dàng để thấy rằng e2 phải xảy ra sau khi tại đơn vị thời gian ít nhất là d đã trôi qua kể từ sự xuất hiện của e1.8. nếu không chúng ta sẽ có một hành vi vi phạm ràng buộc trễ. Hình 1. Một ví dụ của sự kiện như vậy là kích hoạt của động cơ.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC hình 1.7: Xung đồng hồ • Ràng buộc về thời gian Chúng ta đã thấy rằng tính đúng đắn của tác vụ thời gian thực phụ thuộc vào tính đúng đắn hợp lý của kết quả cũng như sự thỏa mãn những ràng buộc thời gian tương ứng cho các sự kiện nhất định trong một hệ thống. tức là: 11 . Một sự ràng buộc trễ trên sự kiện e2 được thể hiện như hình 1.8. Cả hai số khoảng thời gian và thời điểm được quy định cụ thể là hữu hạn. Đơn vị nhỏ nhất của thời gian là 1 chu kỳ. Sau khi e1 xảy ra. số lượng các điểm thời gian = Số khoảng thời gian + 1.

Nói cách khác. Trong đó. biểu thị sự tách biệt thực tế giữa thời điểm xảy ra hai sự kiện e1 và e2. Hãy xem xét t(e1) và t(e2) là mốc thời gian tương ứng về sự xuất hiện của các sự kiện e1 và e2 và d là thời hạn cuối cùng như hình 1.9. Một ràng buộc thời hạn ngụ ý rằng e2 phải xảy ra trong đơn vị thời gian d sau khi e1 xảy ra. Chúng ta có thể nói rằng t(e1) và t(e2) phải đáp ứng ràng buộc: = t(e2) − t(e1) d d Hình 1. và d là thời hạn cuối cùng.9: Ràng buộc thời hạn Duration: Một ràng buộc khoảng thời gian của một sự kiện được xác định bởi khoảng thời gian mà sự kiện phản ứng. Loại ràng buộc thời gian tối thiểu đòi hỏi rằng một khi sự kiện bắt đầu thì sự kiện đó không phải kết thúc trước khi một thời gian tối thiểu nhất định.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC Hình 1. Nó có thể là khoảng thời gian tối thiểu hoặc khoảng thời gian tối đa. trong khi một loại 12 .8: Ràng buộc thời gian trễ = t(e2) − t(e1) Deadline: Ràng buộc thời hạn (deadline) là thời gian cho phép tối đa của sự xuất hiện giữa hai sự kiện tùy ý e1 và e2. sự kiện thứ hai (e2) phải thực hiện theo sau sự kiện đầu tiên (e1) trong khoảng thời gian tối đa cho phép.

Hình 1.10: Các loại tác vụ Ví dụ.7 Xử lý thời gian thực 1. Có thể nói. khái niệm tác vụ (task) cũng hay được sử dụng bên cạnh quá trình tính toán.1. Các dạng tác vụ qui định trong chuẩn IEC 61131-3 (Programmable Controllers – Parts: Programming Languages) như hình 4. 1.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC ràng buộc khoảng thời gian tối đa yêu cầu rằng một khi sự kiện bắt đầu. tác vụ là một nhiệm vụ xử lý thong tin trong hệ thống.1 Các khái niệm trong xử lý thời gian thực • Tác vụ (Task): Là công việc cần thực thi tham gia trong hệ thống. có thể thực hiện theo cơ chế tuần hoàn (periodic task) hoặc theo sự kiện (event task). Để đảm bảo thỏa mãn các ràng buộc về thời gian trong hệ thống thời gian thực. một tác vụ có thể thực hiện nhiệm vụ điều khiển cho một hoặc nhiều mạch vòng kín có chu kỳ trích mẫu giống nhau.7. sự kiện đó phải kết thúc trước khi một khoảng thời gian tối đa nhất định kết thúc. Các loại tác vụ khác gọi là tác vụ không có chu kỳ. thời gian xử lý các công việc trong hệ thống luôn được quan tâm ở tất cả các khâu trong quá trình xây dựng và phát triển hệ thống. Trong các hệ thống điều khiển. Tác vụ phải thực hiện lặp đi lặp lại một các đều đặn theo những khoảng thời gian p thì được gọi là các tác vụ có chu kỳ và p gọi là chu kỳ của tác vụ. Hoặc một tác vụ có thể thực hiện nhiệm vụ 13 .

tính phân tán và phản hồi. Tác vụ có thể thực hiện dưới dạng một quá trình tính toán duy nhất hoặc một chuỗi các quá trình tính toán khác nhau. có thể tồn tại đồng thời với các quá trình khác kể cả trong thời gian thực hiện lệnh và thời gian xếp hàng chờ đợi thực hiện. một hệ thống thời gian thực sử dụng các quá trình xử lý đồng thời.7. Trong khi một bộ vi xử lý không thể thực hiện song song nhiều lệnh. • Tiến trình (Process): Là một diễn biến thực thi một tác vụ của hệ thống • Đa nhiệm (Multitasking) và đồng thời (Concerrency): Thông thường các bộ vi xử lý chỉ có thể thực hiện một tác vụ duy nhất trong một thời điểm nhưng với sự chuyển đổi rất nhanh giữa các tác vụ của một hệ điều hành đa nhiệm làm cho chúng dường như được chạy đồng thời với nhau. tính an toàn và tin cậy. tính quan trọng của tác vụ. như hình 3. • Xử lý song song: Các quá trình tính toán được phân chia thực hiện song song trên nhiều bộ xử lý của máy tính. Mặc dù hệ thống điều khiển có thể có nhiều trạm và mỗi trạm có thể có một hệ đa vi xử lý. • Xử lý phân tán: Mỗi quá trình tính toán được thực hiện riêng trên một máy tính. Trong các hình thức trên đây thì hình thức xử lý cạnh tranh có vai trò chủ chốt. tính ổn định và tính tự động xử lý ngoại lệ. tính phù hợp của phần cứng. tính tương tác. 1. Như vậy.2 Phương thức xử lý thời gian thực Xử lý thời gian thực là hình thức xử lý thông tin trong một hệ thống để đảm bảo tính năng thời gian thực của nó. xử lý thời gian thực cũng có các đặc điểm tiêu biểu nêu trên như tính ràng buộc thời gian. nhưng số lượng các quá trình tính toán cần thực hiện thường bao giờ cũng lớn hơn số lượng bộ vi xử lý. tính nhúng. tính đúng đắn. Các hình thức tổ chức các quá trình tính toán đồng thời: • Xử lý cạnh tranh: Nhiều quá trình tính toán chia xẻ thời gian xử lý thông tin của một bộ vi xử lý. Quá trình xử lý là một tiến trình thực hiện một hoặc một phần chương trình tuần tự do hệ điều hành quản lý trên một máy tính. • Lập lịch (Scheduling): Là một phép thực hiện phân bố và gán quy trình thực thi các tác vụ cho bộ xử lý sao cho mỗi tác vụ được thực hiện hoàn toàn.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC điều khiển logic thực hiện trình tự theo các sự kiện xảy ra. nó phải phân chia thời gian để thực hiện xen kẽ nhiều nhiệm vụ khác nhau theo thứ tự 14 . Để có thể phản ứng với nhiều sự kiện diễn ra cùng một lúc.1. tính đồng thời.

Một bộ điều khiển phải đưa ra được tín hiệu điều khiển kịp thời sau một thời gian nhận được tín hiệu cảm biến để đưa hệ thống về trạng thái mong muốn. các thiết bị vào/ra. điều khiển nhúng lại là giải pháp đặc thù trong các ứng dụng nhanh. bất kể là hệ thống điều khiển nhiệt độ. Một mạng truyền thông trong hệ thống điều khiển có tính năng thời gian thực phải có khả năng truyền tin một cách tin cậy và kịp thời đối với các yêu cầu của các bộ điều khiển. điều khiển áp suất. Trong khi đó. điều khiển lưu lượng hay điều khiển chuyển động. mà còn phụ thuộc vào sự phối hợp hoạt động giữa các thành phần đó.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC của mức ưu tiên định trước và phương pháp lập lịch. yêu cầu về tính thời gian thực đối với mỗi ứng dụng điều khiển cũng có các đặc thù khác nhau. các thiết bị cảm biến và thiết bị chấp hành. Tính năng thời gian thực của một hệ thống điều khiển phân tán không chỉ phụ thuộc vào tính năng thời gian thực của từng thành phần trong hệ thống. 1. vì vậy dung lượng bộ nhớ cũng như hiệu năng vi xử lý thường thấp. Các hệ thống ứng dụng PLC và DCS cũng thường chậm hơn nhưng không có nghĩa là chúng không phải là hệ thời gian thực. các vấn đề này sẽ được nói rõ trong các chương sau. Không có hệ thống điều khiển nào có thể hoạt động bình thường nếu như nó không đáp ứng được các yêu cầu về thời gian. mức độ ràng buộc khác nhau.9 Ứng dụng của hệ thống thời gian thực Hệ thống thời gian thực được ứng dụng rộng rãi trong nhiều lĩnh vực: công nghiệp. Trong thực tế. phần lớn các hệ thống thời gian thực là các hệ thống điều khiển.8 Hệ thống điều khiển và hệ thời gian thực Theo như định nghĩa về hệ thời gian thực thì ta có thể nói tất cả các hệ thống điều khiển là hệ thời gian thực. các hệ thống điều khiển công nghiệp như PLC (Programmable Logic Controller) hoặc DCS (Distributed Control System) đặt ra các yêu cầu cao về khả năng lập trình và đưa vào vận hành thuận tiện cho các bài toán lớn. Ngược lại. 15 . tiêu biểu là điều khiển chuyển động. chi phí phần cứng cho từng sản phẩm cần được giảm thiểu. 1. Hơn nữa. dẫn đến các yêu cầu ngặt nghèo hơn về hiệu suất phần mềm. Ví dụ. các hệ thống điều khiển nhúng thường được ứng dụng với các sản phẩm chế tạo hàng loạt.

nhiệt độ và nồng độ hóa chất của buồng phản ứng. Ngay sau khi nhận biết phần cần được lắp ráp cho sản phẩm. các máy trạm bắt đầu thực hiện công việc của mình trên sản phẩm. Trong một nhà máy lắp ráp xe tự động. một cảm biến cảm nhận sự xuất hiện của một phần sản phẩm lắp ráp. thiết bị kiểm tra và đo lường và các thiết bị robot. Các thông số này được lấy mẫu định kỳ... Mỗi lần các dữ liệu của nhà máy được thu thập.1 Hệ thống kiểm soát nhà máy hóa chất Hệ thống kiểm soát nhà máy hóa chất cơ bản là một loại ứng dụng điều khiển quá trình.9. hệ thống tự động hóa công nghiệp. Mỗi máy trạm thực hiện một số công việc cụ thể về các sản phẩm như lắp động cơ. Tại mỗi trạm làm việc. khi sản phẩm di chuyển trên băng tải.2 Nhà máy lắp ráp ô tô tự động Nhà máy lắp ráp xe tự động là một ví dụ về một hệ thống tự động hóa nhà máy. Một vài ví dụ về ứng dụng trong công nghiệp của hệ thống thời gian thực là: hệ thống kiểm soát quá trình. lắp cửa. Hạn chế thời gian đối với các máy trạm là 16 . các ứng dụng SCADA. Dọc theo dây chuyền. Ví dụ 1. hệ thống tự động quyết định các hành động khắc phục cần thiết ngay lập tức để duy trì các phản ứng hóa học với một tốc độ nhất định. Một khung xe được đưa vào máy trạm đầu tiên trên băng tải. quốc phòng. lắp bánh xe.1 Ứng dụng trong lĩnh vực công nghiệp: Ứng dụng trong công nghiệp là ứng dụng chính của hệ thống thời gian thực. một chiếc xe lắp ráp đầy đủ được đi ra sau khi sản phẩm này đi qua tất cả các máy trạm. phun sơn xe ôtô. nhiệt độ hoặc tập trung hóa chất và thực hiện những hành động trong giới hạn thời gian đã được xác định trước. một số máy trạm được lắp đặt. một máy tính thời gian thực định kỳ giám sát trạng thái hoạt động của nhà máy. hệ thống tự động quyết định tức thời các hành động điều chỉnh chính xác cần thiết chẳng hạn như thay đổi áp suất. viễn thông. Ví dụ 1. Trong một nhà máy hóa chất tự động. Thông thường. sản phẩm của công việc (một phần xe đã lắp ráp) di chuyển trên một băng tải (xem hình 1.11). giới hạn thời gian trong ứng dụng kiểm soát nhà máy hóa chất từ một vài micro giây đến một vài mili giây.v. Trạng thái hoạt động của nhà máy được xác định dựa trên các dữ liệu hiện tại về áp suất. Dựa trên các giá trị lấy mẫu tại một thời điểm bất kỳ. 1. v.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC y khoa. mạng Internet và đa phương tiện..

Nó cảm nhận tình trạng tiêu thụ năng lượng tại các điểm phân phối và tính tải trên các giai đoạn khác nhau để cung cấp năng lượng với sự tự động về cân bằng tải. Một hệ thống EMS giúp thực hiện cân bằng tải trong một mạng lưới phân phối năng lượng điện. Tùy thuộc vào tải cảm nhận trong các phân đoạn khác nhau của mạng. cảm biến nằm rải rác tại các địa điểm địa lý khác nhau để thu thập dữ liệu thô (được gọi là sự kiện quan tâm). Các mô hình cơ sở dữ liệu phản ánh tình trạng hiện tại của môi trường và được cập nhật thường xuyên để làm cho nó trở thành một mô hình cho thế giới thực. Trong các hệ thống SCADA. mỗi vài mili giây) và như vậy phải được xử lý trước khi trạng thái tiếp theo được cảm nhận. 17 .1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC máy trạm phải hoàn thành công việc của nó trước khi sản phẩm làm việc di chuyển đi đến công đoạn kế tiếp. Hình 1. Những dữ liệu này sau đó được xử lý và lưu trữ trong một cơ sở dữ liệu thời gian thực. Ràng buộc thời gian trong một ứng dụng như SCADA là các cảm biến cảm nhận trạng thái hệ thống tại các khoảng thời gian định trước (chẳng hạn. Một ví dụ khác của một hệ thống SCADA là một hệ thống theo dõi và kiểm soát lưu lượng truy cập trong một mạng lưới máy tính. Các giới hạn thời gian cho các đáp ứng ở đây thường ở mức của một vài trăm mili giây.3 Hệ thống điều khiển giám sát và thu nhận dữ liệu (Supervisory Control And Data Acquisition SCADA) SCADA là một loại của các hệ thống điều khiển phân tán được sử dụng trong nhiều ngành công nghiệp.11: Một ví dụ về dây chuyền lắp ráp xe hơi Ví dụ 1. Một ví dụ của một ứng dụng SCADA là một hệ thống quản lý năng lượng (EMS). hệ thống SCADA làm cho các bộ định tuyến thay đổi lưu lượng truy cập định tuyến với một chính sách linh hoạt. Một hệ thống SCADA sẽ giúp theo dõi và kiểm soát một số lượng lớn các sự kiện phân tán mà con người quan tâm.

robot được sử dụng để khôi phục lại các vật liệu phóng xạ vào vị trí thích hợp của nó. máy fax. Tuy nhiên. các bộ phận điều khiển laser không có ý tưởng về hình dạng chính xác của các phông chữ. gạch dưới. Robot có khả năng cảm nhận môi trường xung quanh nó thường xuyên và dựa trên các thông tin này để lập kế hoạch đường đi của nó. Ví dụ 1. cỡ chữ. phóng xạ coban (radium) bị trật vị trí và rơi.. Một robot được sử dụng trong việc lấy các vật liệu phóng xạ dời. nhặt nó lên và đưa nó về đúng vị trí của nó. 1.3 Ứng dụng trong lĩnh vực thiết bị ngoại vi Một vài ví dụ về thiết bị ngoại vi có chứa hệ thống nhúng thời gian thực là: máy in laser. theo dõi. . Các hoạt động phức tạp nhất mà bộ vi xử lý thực hiện là việc lái cho bộ phận điều khiển laser. cảm nhận khi người dùng nhấn một nút trên điều khiển bảng điều khiển và hiển thị các thông báo khác nhau cho người sử dụng. Ví dụ 1. Vật liệu phóng xạ như coban và radium được sử dụng cho điều trị ung thư. chữ đậm.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC 1. sắp phông chữ.. Khi đó con người không thể đến gần vật liệu phóng xạ được. giám sát giường bệnh và chụp cắt lớp vi tính trục (CAT). Robot bước vào căn phòng có chứa các chất phóng xạ. Các hoạt động quan trọng mà một bộ vi xử lý nhúng trong một máy in laser thực hiện bao gồm: nhận dữ liệu được từ cổng giao tiếp. Các bộ vi xử lý nhúng nhận được lệnh in trên cổng đầu vào của nó và xác định các điểm chấm (dot) kết hợp với nhau như thế nào để in được các tài liệu mong 18 . mà nó có thể được yêu cầu in. in nghiêng. cảm nhận tình trạng kẹt giấy và hết giấy.9. thiết bị xạ trị. Tại thời điểm trong quá trình điều trị.2 Ứng dụng trong lĩnh vực y khoa: Một vài ví dụ về ứng dụng y khoa của hệ thống thời gian thực là: robot. Ràng buộc thời gian thực vào tác vụ quy hoạch đường đi của robot là việc lập kế hoạch đường đi phải được đưa ra đủ nhanh sau khi một chướng ngại vật được phát hiện. nếu không nó có thể va chạm với chướng ngại vật.5 Máy in Laser Hầu hết các máy in laser có bộ vi xử lý mạnh được nhúng vào để kiểm soát các hoạt động khác nhau liên quan đến in ấn. máy quét MRI.9. máy ảnh kỹ thuật số và máy quét. Ràng buộc thời gian ở đây là ở mức của một vài phần nghìn giây.4 Robot được sử dụng trong việc phục hồi của vật liệu phóng xạ Robot đã trở nên rất phổ biến hiện nay và đang được sử dụng trong một loạt các ứng dụng y tế. máy photocopy kỹ thuật số.

nồng độ thải khí.4 Ứng dụng trong lĩnh vực ô tô và giao thông vận tải Một vài ví dụ về ứng dụng trong lĩnh vực ô tô và giao thông vận tải của hệ thống thời gian thực là: hệ thống điều khiển động cơ ô tô. hệ thống định vị xe và hệ thống kiểm soát động cơ MPFI. kiểm soát xe lửa tốc độ cao. nhiệt độ nước làm mát động cơ.12. điều khiển tín hiệu giao thông đường bộ. v. vị trí trục cam. nhiệt độ khí thải. vị trí trục khuỷu. 19 . 1. mà nó còn giảm thiểu ô nhiễm bằng cách tối thiểu hóa quá trình đốt cháy một phần (vì quá trình này không đốt cháy hết và gây ra ô nhiễm). tốc độ chạy xe.9. Trong các mô hình ô-tô cũ. Ví dụ 1. kết quả thực nghiệm cũng cho thấy việc phun nhiên liệu chính xác thông qua nhiều điểm là hiệu quả hơn so với một điểm phun duy nhất. tốc độ quay động cơ rpm. Nhiệm vụ của bộ chế hòa khí là thay đổi tốc độ phun nhiên liệu phụ thuộc vào tốc độ hiện tại và gia tốc của chiếc xe.6 Hệ thống phun nhiên liệu (Multi-Point Fuel Injection MPFI) Hệ thống MPFI là một hệ thống điều khiển hoạt động của động cơ ô tô. Các cảm biến này liên tục theo dõi nhiệt độ môi trường xung quanh.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC muốn và quản lý việc in ấn các hình ảnh chính xác thông qua một loạt các lệnh điểm (chấm) gửi cho bộ phận điều khiển laser. Một hệ thống MPFI có khả năng xác định một tốc độ phun nhiên liệu chính xác hơn với các giá trị của tốc độ và giá tốc thu thập được so với một hệ thống dựa trên bộ chế hòa khí. Một sơ đồ về khái niệm của một chiếc xe được nhúng bởi một hệ thống MPFI được thể hiện trong hình 1. Ràng buộc thời gian ở đây là ở mức của một vài phần nghìn giây. kiểm soát không lưu. MPFI là một hệ thống thời gian thực có chức năng điều khiển tốc độ phun nhiên liệu và cho phép động cơ hoạt động với hiệu quả tối ưu. Lượng nhiên liệu này đạt được bằng cách kiểm soát thời gian cho van phun mở suốt trong khoảng thời gian được gọi là độ rộng xung. một thiết bị cơ khí được gọi là bộ chế hòa khí đã được sử dụng để kiểm soát tốc độ phun nhiên liệu cho động cơ. Ngoài ra. Thử nghiệm thực tế đã cho rằng trong trường hợp lượng nhiện liệu tiêu thụ tối ưu thì tốc độ phun nhiên liệu cần thiết quan hệ phi tuyến với tốc độ và gia tốc của xe.v. Trong động cơ MPFI. Những hành vi của bộ vi xử lý được xác định bởi các dữ liệu thu thập được từ các cảm biến đặt trên tất cả các vị trí động cơ. Bộ xử lý chủ yếu là kiểm soát thời điểm đánh lửa và lượng nhiên liệu được phun vào. tốc độ phun nhiên liệu chính xác tại mỗi điểm phun được xác định bởi một máy tính. Một hệ thống MPFI không chỉ làm cho một chiếc xe tiết kiệm nhiên liệu một cách hiệu quả.

cường độ tín hiệu nhận được (Received Signal Strength RSS) của nó giảm tại trạm cơ sở này.9. thời gian chuyển cuộc gọi phải đạt được ở mức trong một vài mili giây. gửi và nhận tin nhắn kiểm soát về chiếc điện thoại. Một hệ thống di động thường được thiết kế dựa trên bản đồ thành phố để thiết lập các tế bào như hình 1.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC Hình 1.5 Ứng dụng trong lĩnh vực viễn thông Một vài ví dụ sử dụng hệ thống thời gian thực trong các ứng dụng viễn thông là: hệ thống điện thoại di động. một trạm cơ sở (base station) giám sát các máy điện thoại di động hiện diện trong tế bào. Thông thường. Trong mỗi tế bào. Chuyển vùng cuộc gọi được yêu cầu khi điện thoại di động di chuyển ra khỏi một trạm cơ sở. các trạm cơ sở này thực hiện một số nhiệm vụ như tìm người sử dụng. theo dõi chi tiết cuộc gọi cho các mục đích thanh toán và thực hiện chuyển vùng (hand-off) cho điện thoại di động.7 Một hệ thống di động tế bào Hệ thống di động đã trở thành một phương tiện rất phổ biến của thông tin di động.13. hội nghị truyền hình. 20 . Công việc này phải được hoàn thành trong một khoảng thời gian đủ nhỏ được xác định trước để người dùng không cảm thấy bất kỳ sự gián đoạn tạm thời nào của dịch vụ trong thời gian chuyển vùng. Bên cạnh đó.12: Một hệ thống thời gian thực nhúng trong một xe MPFI 1. Trạm cơ sở này giám sát và sớm phát hiện RSS giảm xuống dưới một giá trị ngưỡng nhất định thì chuyển các chi tiết của các cuộc gọi của điện thoại di động đến trạm cơ sở của tế bào mà máy điện thoại di động này đã di chuyển tới. Ví dụ 1. Khi máy điện thoại di động di chuyển ra khỏi vùng phủ sóng của trạm cơ cở.

độ nghiêng. gia tốc..1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC Hình 1. hệ thống theo dõi vệ tinh và máy tính trên máy bay. cất cánh và hạ cánh. độ cao. máy tính on-board tính tọa độ X. phi công có thể chọn chế độ "bay tự động". nó phải tính toán độ lệch từ giá trị theo dõi một cách chính xác và thực hiện các hành vi tương ứng. Ngay sau khi phi công chuyển sang chế độ "bay tự động".8 Máy tính On-Board trên máy bay Trong nhiều máy bay hiện đại. 21 . Trong trường hợp này. Trước khi xử lý các giá trị mẫu thu được tiếp theo.6 Ứng dụng trong lĩnh vực hàng không vũ trụ Một vài ứng dụng quan trọng của hệ thống thời gian thực trong các ứng dụng hàng không vũ trụ là: hệ thống điện tử mô phỏng chuyến bay.. Y.. Từ các dữ liệu lấy mẫu.. của máy bay. Ví dụ 1. thời gian lấy mẫu của các thông số khác nhau và xử lý chúng phải trong vòng một vài micro giây. một máy tính trên máy bay kiểm soát tất cả các điều khiển của máy bay bao gồm hướng bay. máy tính định kỳ lấy mẫu vận tốc. Z của vị trí máy bay hiện tại và so sánh chúng với dữ liệu theo dõi xác định trước.9. hệ thống quản lý cabin hàng không.13: Một hệ thống di động tế bào 1. Trong chế độ "bay tự động".

1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC

1.9.7 Ứng dụng trong lĩnh vực Internet và các ứng dụng đa phương tiện
Sử dụng quan trọng của hệ thống thời gian thực trong các ứng dụng đa phương tiện và Internet bao gồm: hội nghị truyền hình và multicast đa phương tiện, thiết bị định tuyến Internet và chuyển mạch. Ví dụ 1.9 Hội nghị truyền hình Trong một ứng dụng hội nghị truyền hình như hình 1.14, tín hiệu video và âm thanh được tạo ra tương ứng bởi máy ảnh và micro. Các dữ liệu được lấy mẫu theo một tốc độ khung hình nhất định xác định trước. Sau đó dữ liệu được nén, đóng gói và được gửi đến người nhận qua mạng. Vào đầu cuối thu, các gói dữ liệu được sắp xếp, giải nén và sau đó được tái tạo. Ràng buộc thời gian ở đầu cuối nhận là người nhận phải xử lý và tái tạo lại các khung nhận được với một tốc độ không đổi được xác định trước. Vì vậy, nếu 30 khung hình được hiển thị mỗi phút, một khi một khung được hiển thị thì khung kế tiếp phải được tái tạo trong vòng 2 giây.

Hình 1.14: Hệ thống hội nghị truyền hình

1.9.8 Ứng dụng trong lĩnh vực điện tử tiêu dùng
Điện tử tiêu dùng là lĩnh vực ứng dụng đặc biệt của nhiều hệ thống thời gian thực. Một vài ứng dụng điển hình của hệ thống thời gian thực trong điện tử tiêu dùng là: các

22

1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC hộp set-top, thiết bị âm thanh, điện thoại Internet, lò vi sóng, máy giặt thông minh, hệ thống an ninh gia đình, điều hòa không khí và làm lạnh, đồ chơi và điện thoại di động. Ví dụ 1.10 Điện thoại di động Điện thoại di động là lĩnh vực phát triển nhanh nhất của điện tử tiêu dùng. Một điện thoại di động tại bất kỳ thời điểm thực hiện một số nhiệm vụ cùng một lúc. Chúng bao gồm: chuyển đổi giọng nói đầu vào thành tín hiệu số, triển khai công việc xử lý tín hiệu số (Digital Signal Processing DSP), chuyển đổi tín hiệu điện tạo ra bởi micro thành tín hiệu thoại đầu ra và lấy mẫu tín hiệu đến từ trạm cơ sở trong các kênh điều khiển. Một điện thoại di động phản ứng với các thông tin nhận được từ các trạm cơ sở trong phạm vi giới hạn thời gian nhất định theo quy định. Ví dụ, một trạm cơ sở ra lệnh cho một điện thoại di động chuyển việc liên lạc sang một tần số định trước. Điện thoại di động phải thực hiện lệnh này từ trạm cơ sở trong một vài mili giây.

1.9.9 Ứng dụng trong lĩnh vực quốc phòng
Ứng dụng quân sự điển hình của hệ thống thời gian thực bao gồm: hệ thống hướng dẫn tên lửa, hệ thống chống tên lửa, hệ thống giám sát dựa trên vệ tinh. Ví dụ 1.11 Hệ thống dẫn đường tên lửa Hệ thống dẫn đường tên lửa như hình 1.15 là một hệ thống trong đó có khả năng cảm biến và định vị mục tiêu. Nhận biết và định vị trở nên dễ dàng khi mục tiêu phát ra bức xạ điện hoặc nhiệt. Trong một hệ thống dẫn đường tên lửa, tên lửa được hướng dẫn bởi một máy tính được gắn trên tên lửa. Máy tính đó tính toán độ lệch từ quỹ đạo cần thiết và theo dõi hiệu quả những thay đổi của tên lửa để hướng dẫn nó vào mục tiêu. Ràng buộc thời gian trên hệ thống dẫn đường dựa trên máy tính là các cảm biến và các tác vụ theo dõi và điều chỉnh phải được kích hoạt đủ nhanh để giữ cho tên lửa tránh đi lạc khỏi mục tiêu. Các cảm biến mục tiêu, các tác vụ theo dõi và chỉnh hướng thường được yêu cầu phải được hoàn tất trong vòng một vài trăm micro giây hoặc thậm chí thấp hơn tùy thuộc vào tốc độ của tên lửa và loại hình mục tiêu.

1.9.10 Ứng dụng trong những lĩnh vực khác
Bên cạnh các lĩnh vực ứng dụng đã được thảo luận, các hệ thống thời gian thực đã tìm thấy nhiều ứng dụng khác trong cuộc sống hàng ngày của chúng ta. Một ví dụ của ứng dụng như vậy là hệ thống đặt chỗ tàu hỏa.

23

1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC

Hình 1.15: Hệ thống dẫn đường tên lửa Ví dụ 1.12 Hệ thống đặt chỗ tàu hỏa Trong một hệ thống đặt chỗ tàu hỏa, một kho lưu trữ trung tâm duy trì cập nhật dữ liệu về tình trạng đặt vé của các đoàn tàu khác nhau. Quầy đặt vé được phân phối trên vị trí địa lý khác nhau. Khách hàng xếp hàng tại quầy đặt vé khác nhau và gửi yêu cầu đặt vé của họ. Sau khi một yêu cầu đặt vé được thực hiện tại quầy, nó thường chỉ mất một vài giây cho hệ thống để xác nhận đặt vé và in vé. Một ràng buộc thời gian thực trong ứng dụng này là một khi yêu cầu được thực hiện, máy tính phải in vé hoặc hiển thị thông báo không còn chỗ ngồi đó trước khi thời gian phản ứng trung bình của con người (khoảng 20 giây) hết hạn, để khách hàng không nhận thấy bất kỳ sự chậm trễ nào và có được một cảm giác đã đạt được kết quả tức thì.

Câu hỏi ôn tập
1.1. Bạn hiểu thuật ngữ "thời gian thực" như thế nào? Khái niệm thời gian thực khác với khái niệm thời gian lô-gic như thế nào? Giải thích câu trả lời của bạn bằng cách sử dụng một ví dụ phù hợp. 1.2. Hệ thống thời gian thực là gì? Nêu ví dụ. 1.3 Thuật ngữ "thực" trong một hệ thống thời gian thực có ý nghĩa gì? Giải thích ý của

24

1. 1.11 Nêu các phương thức xử lý thời gian thực.8 Phát biểu nào sau đây đúng? a.4 Nêu cấu tạo của hệ thống thời gian thực. 25 .7 Phần cứng hệ thống thời gian thực so với hệ thống vi xử lý thông thường thì a.9 Hệ thống thời gian thực là a. Hệ thống phải có ít nhất một thiết bị thời gian thực b. 1. Hầu hết các hệ thống điều khiển là hệ thống thời gian thực b. Tất cả đều đúng 1. 1. 1. Đồng hồ hệ thống phải là đồng hồ thời gian thực c. Phức tạp hơn b. Tốc độ xử lý cao hơn d. 1.1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC bạn bằng một hệ thống thời gian thực. deadline. duration).6 Nêu những đặc tính của hệ thống thời gian thực. Đa dụng hơn c.5 Hệ thống thời gian thực thường được chia thành mấy loại? Nêu cụ thể. 1. Hệ thống điều khiển là hệ thống tự trị được nhúng vào hệ thống mẹ 1.10 Giải thích các khái niệm về ràng buộc thời gian (delay. Hệ thống điều khiển phải sử dụng hệ điều hành Linux c. Đồng hồ hệ thống phải được đồng bộ với đồng hồ bên ngoài. Hệ thống điều khiển phải có bộ phận thời gian thực d. Hệ thống phải có các hoạt động thỏa mãn về thời gian thực hiện định trước d.12 Nêu một vài ví dụ về hệ thống thời gian thực và phân tính tính thời gian thực trong hệ thống đó.

26 .1 TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC .

2 Chương 2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC 2. một hệ thống xử lý chung (hệ thống máy tính) được cấu tạo gồm một CPU. bus dữ liệu và bus điều khiển.2 Cấu trúc cơ bản Trong cấu trúc đơn giản nhất. bus địa chỉ là phương tiện để định địa chỉ bộ nhớ và các thiết bị I/O. Một hệ thống xử lý chung có bốn loại bus: bus nguồn. bộ nhớ và I/O (Input/Output) được nối với nhau bằng các bus (Hình 2.1). Bus nguồn dùng để cấp nguồn điện cho các thành phần khác nhau của hệ thống máy tính. bus dữ liệu được sử dụng để trao đổi dữ liệu giữa các thành phần khác nhau trong hệ 27 .1 Giới thiệu chương • Giới thiệu cấu trúc cơ bản của phần cứng hệ thống thời gian thực • Giới thiệu khối xử lý trung tâm và bộ nhớ • Giới thiệu khối giao tiếp • Giới thiệu một số thiết bị cảm biến • Giới thiệu một số thiết bị chấp hành 2. bus địa chỉ.

2. Ngoài ra. do hoạt động tính toán của nó tỏa ra rất nhiều nhiệt nên nó có thể có một thiết bị tản nhiệt và quạt nhỏ kèm theo để giúp tản nhiệt. có hình vuông và có nhiều chân kim loại dùng để kết nối xuống bo mạch chủ. Các hệ thống thời gian thực phân tán khác sử dụng đa xử lý để cho phép hệ thống xử lý sắp xếp các tác vụ trên các bộ vi xử lý khác nhau. CPU là bộ não của hệ thống máy tính nơi mà hầu hết các tính toán xảy ra. Thông thường. Trong các hệ thống lớn. Một ví dụ về phần cứng mạch xử lý như hình 2. CPU là yếu tố quan trọng nhất của một hệ thống máy tính. Về khả năng tính toán. Một số hệ thống thời gian thực là đa xử lý thì có nghĩa là các bộ vi xử lý được phân phối phân tán trong hệ thống.3): 28 .2. Hai thành phần điển hình bên trong của một CPU như sau (Hình 2. Đối với những phần sau.1: Sơ đồ khối phần cứng cơ bản của hệ thống xử lý chung 2.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC thống. Đôi khi được gọi đơn giản là xử lý trung tâm. CPU hiện nay có kích thước nhỏ. Hình 2. nhưng thường được gọi là bộ vi xử lý. bus điều khiển dùng để báo cho bộ nhớ hay thiết bị I/O biết cách thức trao đổi dữ liệu. CPU yêu cầu một hoặc nhiều bản mạch in. CPU được gắn trực tiếp vào một chân đế cắm xuống bo mạch chủ. Trên các máy tính cá nhân và máy trạm nhỏ. xem hình 2. Khi đề cập đến bus hệ thống thì thường ám chỉ đến bus địa chỉ và bus dữ liệu.3 Bộ xử lý trung tâm CPU CPU là viết tắt của Central Processing Unit (khối xử lý trung tâm). giáo trình này chỉ nói tới các hệ thống với bộ xử lý đơn (uniprocessing). CPU là một chip duy nhất được gọi là một bộ vi xử lý.

2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC Hình 2. 2) Khối điều khiển (CU). khi cần thiết thì gọi ALU.2: Mạch xử lý trung tâm 1) Khối logic số học (ALU). Chúng được lưu trữ trong bộ nhớ chính của hệ thống dưới dạng nhị phân (mã máy) và chờ đợi thực hiện. Các lệnh được tuần tự lấy từ vị trí bộ nhớ chính mà con trỏ chương trình chỉ tới và được đặt trong 29 . thực hiện hoạt động số học và logic.3.1 Chu kỳ lấy và thực thi lệnh Chương trình là một chuỗi các lệnh hoặc mã lệnh. dùng để lấy lệnh từ bộ nhớ và giải mã và thực thi chúng. Hình 2.3: Cấu tạo của một CPU 2.

Các tín hiệu điều khiển khác nhau và các thanh ghi nội bộ cũng có thể dùng cho việc trao đổi dữ liệu. có thể sử dụng đến hai bộ phận ALU và bộ nhớ khi thực hiện một tính toán số học nào đó. Sau khi thực hiện một lệnh. điều này có nghĩa là CPU hoạt động liên tục. phép trừ có số trừ và số bị trừ.3. Quá trình lấy và thực thi một lệnh được gọi là chu kỳ lấy và thực thi lệnh. các lệnh tiếp theo sẽ tiếp tục lấy từ bộ nhớ chính và thực hiện. hai thuật ngữ "operandam" và "operandum" có thể được sử dụng để sử dụng với bất kỳ hoạt động nguyên phân hoặc nhị phân. 2. Do đó. Operandam 30 . Khối điều khiển CU giải mã các lệnh. Điều quan trọng là sự phân biệt toán hạng nào được tham chiếu trong một thao tác xử lý. Một số mã lệnh hoặc sự kiện bên ngoài có thể gây ra một lệnh không được thực hiện liên tục. Trong số học. phép cộng là có số được cộng và số cộng. bất kỳ bộ vi xử lý nào cũng có thể được xem như là một cái máy lấy dữ liệu và chuyển đổi nó. bộ nhớ hoặc dữ liệu bị tác động bởi vi chương trình này. Trong khi tập lệnh phản ánh sự khác nhau cơ bản về thiết kế bộ vi xử lý. Mỗi lệnh bao gồm một vùng mã toán tử (opcode) và có hoặc không có nhiều toán hạng (operand.2 Các hình thức của lệnh Một tập lệnh cấu thành một ngôn ngữ mô tả chức năng của một hệ thống xử lý. Ngay cả khi không làm gì cả thì CPU vẫn lấy và thực thi lệnh NOP mà không làm thay đổi trạng thái của CPU và được gọi là không hoạt động (no-operation). Các lệnh trong một bộ xử lý dùng để lập trình thực hiện việc xử lý các tham số và trả về một kết quả. phép nhân số bị nhân và số nhân. tất cả các tập lệnh đều có những chức năng chung. Trường hợp này gọi là ngắt. Các vị trí bộ nhớ chứa dữ liệu đi xử lý hoặc các dữ liệu mới được tạo thành. Ví dụ. phân nhánh và đồng bộ. phép chia có số bị chia và số chia. quá trình xử lý này sẽ được thảo luận sau. Trong một ý nghĩa chung chung. thông qua các lệnh để tạo thành những thông tin mới. input).2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC thanh ghi lệnh. Hầu hết các lệnh cần tham chiếu đến vị trí bộ nhớ hoặc trỏ đến một vị trí nhớ hoặc một thanh ghi. Opcode thường là địa chỉ bắt đầu của vi chương trình (microprogram) và toán hạng đại diện cho thanh ghi. các thao tác khác nhau sử dụng các tham số khác nhau để phân biệt chúng. Giải mã bao gồm việc xác định vị trí của vi chương trình trong micromemory và sau đó thực thi nội bộ chương trình này.

nhưng thực sự ba loại chế độ đánh địa chỉ cơ bản: 1. việc này tùy thuộc vào bộ vi xử lý định hướng việc nhận và lưu trữ dữ liệu như thế nào. nó được truy cập để lấy dữ liệu cho tham số của lệnh. Mặc dù một số cấu trúc bộ xử lý có 10 hoặc nhiều hơn chế độ đánh địa chỉ. ngoại trừ cái trước không lưu trữ dữ liệu cho các tham số.3. Các chế độ khác: Một số bộ vi xử lý hiện đại nhất sử dụng phương thức kết hợp ba chế độ định địa chỉ cơ bản này để tạo ra thêm một số chế độ định địa chỉ khác. Vị trí bộ nhớ trực tiếp là một biến. Điều này giống như một biến trong ngôn ngữ cấp cao. Do đó. Vị trí bộ nhớ trực tiếp 3. Vị trí bộ nhớ gián tiếp Dữ liệu tức thời là các hằng số. trừ đi 1 từ địa chỉ nơi dữ liệu được lưu trữ. dữ liệu luôn có sẵn. nơi dữ liệu được tham chiếu bởi một cái tên. Việc đánh địa chỉ các dữ liệu cho một tham số là một phần của quá trình giải mã cho một lệnh (đi đôi với việc giải mã lệnh) trước khi thực hiện. như số cộng. 31 .3 Các chế độ định địa chỉ Các chế độ địa chỉ là chỉ cách thức các lệnh lấy được các thông số hoặc toán hạng như thế nào. số bị nhân hoặc số bị chia. 2. các dữ liệu được lưu trữ tại một vị trí trong bộ nhớ. chúng được tìm thấy ở vị trí bộ nhớ đi kèm với lệnh. số nhân hoặc số chia. mà nó chứa địa chỉ dùng để tham chiếu hoặc trỏ đến dữ liệu. CPU không cần phải tính toán địa chỉ để lấy dữ liệu cho lệnh. Dữ liệu tức thời 2. Operandum là tham số thứ hai. Vị trí bộ nhớ gián tiếp là giống như vị trí bộ nhớ trực tiếp. một chế độ tính toán độ dời sử dụng vị trí bộ nhớ gián tiếp. Đây là hình thức đơn giản nhất của truy cập toán hạng. Trong ngôn ngữ cấp cao chế độ địa chỉ tức thì tương đương với một hằng số trong mã chương trình. Hoặc là một sự giảm trước (predecrement) của một vị trí bộ nhớ. nhưng bản thân tên gọi không phải là giá trị. như số được cộng.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC là tham số đầu tiên. Những bộ xử lý khác nhau cũng mở rộng chế độ định địa chỉ dựa trên ba chế độ cơ bản. Ví dụ. Trong đó.

Hiện nay các bộ vi xử lý RISC phổ biến là ARM. 8) Microprogram và phần cứng đều phức tạp.4 RISC và CISC Máy tính có tập lệnh phức tạp (Complex instruction set computers CISC) cung cấp chức năng tương đối phức tạp như là một phần của tập lệnh. 5) Lệnh định dạng cố định. MIPS. SuperH.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC 2. bộ xử lý CISC có được giải pháp để giảm tải mã hóa cho lập trình viên. 6) Ít lệnh và ít chế độ định địa chỉ. 2) Kiến trúc lấy và lưu trữ tham chiếu đến bộ nhớ. Bằng cách này. chẳng hạn như hợp ngữ và trình biên dịch. Hiệu quả sử dụng của các lệnh trực tiếp trên thanh ghi có thể làm giảm thời gian lấy lệnh từ bộ nhớ không cần thiết.3. Điều này có nghĩa là qui trình giải mã lệnh có thể được thực hiện bằng một tổ hợp mạch nhanh. 6) Có một số lệnh nhân và có nhiều chế độ định địa chỉ. Điều này cho phép các lập trình viên các công cụ mạnh để xây dựng các chương trình ứng dụng và nhiều công cụ phần mềm mạnh. DEC Alpha. CISC được dựa trên tám nguyên tắc sau đây: 1) Lệnh phức tạp mất nhiều chu kỳ khác nhau. tăng cường thực hiện tốc độ và giảm thiểu việc sử dụng bộ nhớ. và PowerPC của IBM. 7) Bộ thanh ghi nhân lớn. Các tiêu chí RISC là một tập hợp ngược lại của tám nguyên tắc CISC. 2) Bất kỳ lệnh nào cũng có thể tham chiếu bộ nhớ. Trong một máy tính lệnh đơn giản (Reduced Instruction Set Computer RISC). 4) Microprogram được thực hiện cho mỗi lệnh bản địa. Ngoài ra. việc giảm độ phức tạp của chip cho phép lưu trữ on-chip nhiều hơn (chẳng hạn có thêm thanh ghi mục đích chung). 7) Có một bộ thanh ghi duy nhất. Đó là: 1) Lệnh đơn giản chỉ mất một chu kỳ đồng hồ. PA-RISC. 5) Các lệnh được định dạng biến. 32 . 3) Không có lệnh được thiết kế theo dạng ống dẫn. 3) Thiết kế mang đặc tính đường ống cao. 8) Trình biên dịch và phần mềm xử lý phức tạp. SPARC. mỗi lệnh chỉ mất một chu kỳ máy. 4) Lệnh thực hiện trực tiếp bởi phần cứng. PIC.

Thiết bị nạp ROM rất đắt.4 Bộ nhớ Bộ nhớ là một trong những bộ phận chủ yếu tạo thành hệ thống xử lý. Nó dùng để lưu chương trình và dữ liệu. Nó thông thường chỉ được nạp một lần bởi nhà sản xuất.1 ROM Bộ xử lý cần một loại bộ nhớ sao cho khi mất điện thì nội dung bộ nhớ không mất đi. EAPROM (electrically alterable ROM hay EEROM). Bộ nhớ chia thành 2 loại ROM và RAM như hình 2. ROM cho phép bộ xử lý khởi động các phần cứng khác khi bắt đầu được cấp nguồn. Loại bộ nhớ này gọi là ROM (Read Only Memory). ROM rất quan trọng đối với hệ thống xử lý. Nó dùng để lưu trữ chương trình và các dữ liệu cố định. Dữ liệu chỉ có thể được đọc ra từ ROM nhưng không thể ghi vào ROM (cách nói tương đối). ROM được sử dụng với loại dữ liệu mà không thể thay thế được và được sản xuất với số lượng lớn. ROM Với loại bộ nhớ ROM thì dữ liệu được nhà sản xuất linh kiện nạp trực tiếp. Dung lượng của bộ nhớ càng lớn thì tính năng của hệ thống xử lý càng tốt. PROM (programmable ROM).4. Có nhiều loại ROM khác nhau được sử dụng: ROM.4.4: Bộ nhớ và bản đồ bộ nhớ 2. EPROM (erasable PROM).2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC 2. PROM 33 . Dung lượng của bộ nhớ biểu trưng cho khả năng nhớ của hệ thống xử lý. Hình 2.

Cuối cùng. 2. Tuy vậy một khi dữ liệu đã được nạp thì không thể thay đổi được. EAPROM. RAM có thể chia thành 2 loại RAM tĩnh (SRAM) và RAM động (DRAM). Công nghệ này đang đưa vào các ứng dụng điện tử thương mại. Tuy vậy dữ liệu trên EPROM có thể xóa đi bằng tia cực tím thông qua thấu kính nhỏ đặt trên vi mạch. EPROM EPROM là loại bộ nhớ có thể nạp nhiều lần bởi người sử dụng. bộ nhớ flash chỉ có thể được viết trong khối kích thước 8-128 kilobytes tại một thời điểm. nó sử dụng một bóng bán dẫn duy nhất cho mỗi bit. bộ nhớ flash có chi phí thấp hơn và tích hợp hơn so với EEPROM.000 lần. Sau khi xoá xong thì EPROM có thể được nạp lại với dữ liệu khác. nhưng nó được dự kiến sẽ xuất hiện ngày càng phổ biến trong hệ thống nhúng với các ứng dụng thời gian thực. 20 đến 30 nano giây. trong khi EEPROM là xấp xỉ 1 triệu. lên đến 1 micro giây. Từ đây trở đi ta sẽ dùng từ ROM cho tất cả các loại bộ nhớ chỉ ghi được như đã nêu trên. mà chỉ cần dùng tín hiệu điện áp. 2 V để đọc. Một nhược điểm nữa là bộ nhớ flash yêu cầu điện áp khá cao: 12 V để viết. Căn cứ vào kết cấu của đơn vị mạch điện cơ bản của chip nhớ. Thời gian đọc bộ nhớ flash rất nhanh. Một nhược điểm của bộ nhớ flash là nó chỉ có thể được viết và xóa khoảng 100. Loại bộ nhớ này hoạt động với tốc độ nhanh hơn các loại bộ nhớ trên. nhưng tốc độ ghi lại khá chậm.4. trong khi EEPROM sử dụng hai bóng bán dẫn cho mỗi bit. tức là người sử dụng có thể nạp chương trình hoặc dữ liệu vào loại bộ nhớ này.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC Người sử dụng có thể nạp dữ liệu vào loại bộ nhớ này. SRAM Mạch điện đơn vị nhớ 1 bit tin tức của SRAM có thể dùng loại linh kiện lưỡng cực 34 . Flash ROM Bộ nhớ flash là một dạng khác của PROM có thể ghi lại. Các loại bộ nhớ ROM có tính chất hoạt động tương tự giống nhau. để xoá dữ liệu trên EEROM chúng ta không cần đến tia cực tím.2 RAM Bộ nhớ truy cập ngẫu nhiên RAM (Random Access Memory) là loại bộ nhớ mà ta có thể đọc hoặc ghi dữ liệu vào bất cứ lúc nào và bất kỳ vị trí nào của bộ nhớ. Tuy vậy. EEPROM Đây là loại bộ nhớ tương tự EPROM. Do đó.

địa chỉ bắt đầu và địa chỉ kết thúc là hoàn toàn tưởng tượng. Một kiểu khác của NVARM là loại kết hợp giữa SRAM và EEPROM. DRAM có giá thành thấp (giá cùng 1 dung lượng). tổng hao điện năng thấp. Trong những hệ thống vi xử lý phức tạp đòi hỏi cần bộ nhớ lớn. Non-volatile RAM (NVRAM) NVRAM là một loại đặc biệt của SRAM. có pin dự phòng có thể giữ lại nội dung của nó khi mất nguồn. có thể nhớ được tin tức 0 hoặc 1 . nhưng có thể là đại diện của một hệ thống nhúng cụ thể. chủ yếu sử dụng loại mạch dùng linh kiện MOS. Ví dụ. mạch ngoại vi đơn giản. đặc biệt là khi lập trình. nhưng tổn hao điện năng lớn chỉ phù hợp cho những sử dụng có dung lượng RAM nhỏ. Khác với ROM. người ta thường dùng DRAM.5. Trong hệ thống vi xử lý thì RAM dùng để lưu trữ các chương trình. bộ nhớ RAM không giữ được nội dung khi bị mất nguồn điện. các loại bộ nhớ và cách thức bố trí của chúng được quan tâm đặc biệt. ví dụ như trong máy tính cá nhân. không cần làm tươi. thể tích nhỏ nhưng do cấu tạo của mạch đơn vị cơ bản của DRAM gồm 1 transistor và 1 tụ điện nên để nhớ được chúng ta cần phải làm tươi (định thời nạp điện cho tụ) do đó làm cho mạch ngoại vi phức tạp. thời gian truy cập nhanh (khoảng 20 ~ 40ns). nó có đặc điểm: khi mất nguồn nội dung của nó được viết vào EEPROM ngay lập tức và được đọc ra từ EEPROM khi có nguồn trở lại.3 Tổ chức bộ nhớ Đối với các kỹ sư hệ thống thời gian thực. trạng thái 0 hoặc 1 luôn được bảo lưu. dữ liệu và các biến tạm thời. Chỉ cần không mất điện. độ tập trung thấp. một bộ vi xử lý nhúng hỗ trợ một bộ nhớ địa chỉ 32-bit được tổ chức như trong hình 2. Chương trình thực thi nằm trong bộ nhớ bắt đầu từ địa chỉ 0000 0000H qua E000 0000H của một số loại ROM lập trình được. trừ khi thông qua thao tác ghi viết vào dữ liệu mới.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC tạo thành cũng có thể dùng linh kiện MOS tạo thành. DRAM Khác với SRAM. SRAM làm việc ổn định. Nó rất hữu ích để chương trình trong bộ nhớ không bị thay đổi đề phòng việc ghi ngẫu nhiên vào khu vực này sẽ không hư hại 35 . Mạch đơn vị của SRAM thường do 6 bóng MOS tạo thành. Tất nhiên. Một bản đồ như vậy có thể phù hợp với tổ chức bộ nhớ của hệ thống đo quán tính. Mạch điện do loại linh kiện lưỡng cực tạo thành có tốc độ truy cập nhanh nhưng công nghệ phức tạp.4. tổn hao điện năng lớn nên loại này ít dùng. 2.

2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC Hình 2. các dữ liệu ở các vị trí này có thể được viết lại dưới sự kiểm soát của chương trình.5 Các thiết bị vào ra Hệ thống xử lý có rất nhiều ứng dụng. các hằng số hiệu chuẩn xác định một số loại chế độ chẩn đoán hoặc khởi tạo. Địa chỉ từ FFC0 0001H đến FFFF FE00H lưu các thông số cố định của hệ thống. Những dữ liệu này được ghi vào bộ nhớ NVRAM hơn là vào bộ nhớ RAM để chúng có sẵn để phân tích khi hệ thống ngưng hoạt động do tắt nguồn hay bị sự cố. liên quan đến việc thiết lập các thông số hệ thống. Từ địa chỉ E000 0F01H đến FFC0 0000H là bộ nhớ RAM được sử dụng cho ngăn xếp (stack). bộ nhớ heap và bất kỳ dữ liệu nào khác cần lưu trữ tạm thời. Trong thời gian chạy. Các dữ liệu khác. nhưng cho dù dùng trong trường hợp nào 36 . chúng có thể được viết lại chỉ khi hệ thống không hoạt động. ví dụ. 2. Cuối cùng.5: Một ví dụ về tổ chức bộ nhớ hay làm thay đổi chương trình. được lưu trữ từ địa chỉ E000 0001H đến E000 0F00H trong EPROM. thông tin chẩn đoán hoặc dữ liệu hộp đen có thể được lưu trữ ở đây. địa chỉ từ FFFF FE00H dến FFFF FFFFH chứa các địa chỉ kết nối với các thiết bị truy cập thông qua DMA hoặc bộ nhớ ánh xạ I / O.

đó là sự sai khác điện áp tạo ra tại vị trí giao nhau do sự khác biệt trong việc phân phối năng lượng của hai kim loại khác nhau. cảm biến. máy quét ảnh. thiết bị cảm ứng chuyển động cơ khí và quang. . transducer) là bất kỳ thiết bị nào có chức năng chuyển đổi hình thức tín hiệu từ dạng này sang dạng khác. phải được chuyển đổi sang dạng số bởi một thiết bị khác. Trong khuôn khổ của giáo trình này chỉ giới thiệu một vài thiết bị cảm biến được sử dụng phổ biến trong các hệ thống điều khiển thời gian thực. Trong trường hợp của các hệ thống nhúng.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC đều không thể tách rời việc xử lý dữ liệu tin tức. Sử dụng phổ biến nhất là cảm biến nhiệt độ điện. nhiệt kế điện tử (thermistor). Nhiệt kế điện tử có yếu tố điện trở làm bằng vật liệu bán dẫn. cảm biến tốc độ. Nhiệt kế điện trở dựa trên sự gia tăng giá trị trở kháng của một dây kim loại khi nhiệt độ tăng. Việc xử lý tin tức thông thường xử lý tin tức do thiết bị nhập cung cấp. Đầu vào là một tín hiệu tương tự. nó thay đổi trở kháng theo nhiệt độ.1 Thiết bị cảm biến Thiết bị cảm biến còn gọi là đầu dò (sensor. Tất cả các thiết bị này gọi chung là các thiết bị ngoại vi (Peripherals). 1) Cảm biến nhiệt độ Nhiệt độ là một thông số quan trọng của hầu hết các hệ thống thời gian thực nhúng. chẳng hạn như robot. . chuột. gọi tắt là thiết bị I/O. màn hình. . cảm biến hóa học. cảm biến áp suất và độ cao. 2. Các thiết bị xuất quen thuộc như đĩa từ. cung cấp cho người sử dụng dưới nhiều hình thức. các thiết bị nhập quen thuộc như bàn phím. cảm biến cung cấp tín hiệu đầu ra có thể sử dụng được đối với một đáp ứng của một số lượng thông số đo lường quy định. cảm biến góc nghiêng (gyroscope).5. . động cơ. Dữ liệu kết quả sau khi được xử lý xong được gửi đến thiết bị xuất. Đầu ra là một số mức hoặc bản đồ bit có sẵn cho CPU đọc về thông qua DMA (Dual Memory Access) hoặc bộ nhớ ánh xạ I/O.. . máy in. bao gồm: cảm biến cặp nhiệt điện (thermocouple). Cảm biến thermocouple tận dụng lợi thế của hiệu ứng giao nhau. nhiệt kế điện trở. Ví dụ.. 2) Cảm biến vận tốc Cảm biến vận tốc có chức năng chuyển đổi sự nén hoặc sự kéo căng hoặc sự biến 37 . Những loại cảm biến điển hình trong các hệ thống điều khiển bao gồm cảm biến nhiệt độ. đĩa từ.

6. Cảm biến vận tốc có thể được chế tạo để lợi dụng hiệu ứng điện áp. Hiện tượng mà sự quay theo trục này được chuyển thành sự quay theo trục kia đã được dùng để giám sát độ nghiêng (như trong máy bay chẳng hạn) như hình 2. nó gây ra sự phóng điện của các điện tử.7. Bằng cách này. nó tác động moment ngoại lực vào đĩa. Khi đĩa xoay với vận tốc rất cao. robot và các ứng dụng trong ô tô.6: Nguyên lý của cảm biến góc nghiêng Hiện nay. sự chuyển hướng theo moment ngoại lực được giảm thiểu (do hầu hết đã bị chuyển sang phương vuông góc) giúp gyroscope hầu như duy trì được độ nghiêng của nó. ADIS16100. Khi khung ngoài quay. làm đĩa chịu thêm chuyển động quay theo phương vuông góc với phương quay của khung. một cảm biến góc nghiêng vốn là một bánh đà hoặc một cái đĩa trong đó trục được tự do theo tất cả mọi hướng. Hình 2. tàu vũ trụ. cảm biến góc quay là những con chip điện tử rất gọn nhẹ như ADXL335.. độ nén của các thiết bị do tăng tốc có thể được đo. Chúng được sử dụng trong nhiều lĩnh vực khác nhau như hình 2.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC dạng của một thanh kim loại hoặc màng thành tín hiệu điện. . Về mặt cơ học. 38 .. Cảm biến vận tốc điện áp là được sử dụng rộng rãi nhất. ITG3200. dựa trên các nguyên tắc của xung lượng góc. Cảm biến góc nghiêng là một thiết bị dùng để đo hoặc duy trì sự định hướng. Hiệu ứng điện áp là hiện tượng nếu một tinh thể được nén dẫn đến cấu trúc mạng tinh thể bị phá vỡ. 3) Cảm biến góc nghiêng Cảm biến góc nghiêng (còn gọi là Con quay hồi chuyển) được sử dụng trong hệ thống dẫn đường của máy bay.

5.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC Hình 2. Đương nhiên. Có rất nhiều thiết bị chấp hành. động cơ trong máy điều hòa dùng để quay quạt thổi không khi mát.2 Thiết bị chấp hành Hệ thống thời gian thực thông qua các thiết bị chấp hành để đi phản ứng lại với thế giới thực.Động cơ Servo 39 .Động cơ DC không dùng chổi than (Brushless) . Ví dụ. tăng giảm nhiệt độ phòng. ở đây xin giới thiệu một số thiết bị chấp hành như sau: Động cơ: Động cơ là loại cung cấp chuyển động cho hệ thống như hình 2. động cơ trong máy giặt dùng để quay mâm quần áo khi giặt.Động cơ AC .. động cơ trong lò vi sóng dùng để quay mâm thức ăn để nấu nướng.Động cơ DC dùng chổi than (Brushed) .Động cơ DC ..7: Các loại ứng dụng của cảm biến góc nghiêng 2. Những loại khác nhau phù hợp cho nhiều ứng dụng khác nhau. một số loại động cơ là phù hợp hơn cho các ứng dụng nhất định hơn so với các loại động cơ khác... Có những động cơ sau: . Động cơ công nghiệp là loại hình động cơ cơ bản nhất. chẳng hạn như cho động cơ hoạt động.8.

5. tại các buổi hòa nhạc. cho nên CPU có thể thông qua bus dữ liệu tiến hành trao đổi dữ liệu với chip nhớ. Đèn được sử dụng trong bảng điều khiển xe để hiển thị các thông số của xe hoặc dùng để cảnh báo nếu bất kỳ sự cố nào của hệ thống như hình 2.Động cơ tuyến tính Hình 2. hệ thống kiểm soát ánh sáng được sử dụng trong đèn giao thông. Ví dụ.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC . quá trình được hoàn thành thông qua bus dữ liệu.3 Giao tiếp I/O Quá trình trao đổi dữ liệu giữa CPU và thiết bị I/O cũng giống như quá trình trao đổi dữ liệu giữa CPU và bộ nhớ. Nhưng quá trình trao đổi dữ liệu giữa CPU và bộ nhớ đơn giản hơn nhiều. tức là dưới sự tác dụng của các tín hiệu điều khiển.Động cơ AC Servo không dùng chổi than . 40 . hoặc để hiển thị một cái gì đó. bởi vì tốc độ truy cập của các chip nhớ thường cùng cấp với tần số đồng hồ của vi xử lý.Động cơ bước .9. 2.Động cơ DC Servo dùng chổi than .8: Một số loại động cơ Đèn: Bóng đèn và đèn LED có thể bằng cách sử dụng để cung cấp ánh sáng. hơn nữa bản thân các chip nhớ có khả năng đệm dữ liệu.

loại cơ điện.9: Đèn chỉ thị Trong khi đó. có loại là tín hiệu song song. Chính vì vậy. nó mang đến cho việc trao đổi dữ liệu giữa CPU và thiết bị ngoài một số vấn đề sau: 1) Tốc độ không tương thích Thông thường tốc độ của các thiết bị ngoài thấp hơn rất nhiều so với tốc độ hoạt động của vi xử lý như tốc độ của máy in. 3) Kiểu tín hiệu không tương thích Truyền trên bus của hệ thống vi xử lý thông thường là dữ liệu song song 8 bit. bàn phím. 16 bit hoặc 32 bit. có loại là tín hiệu áp. Trong khi đó thiết bị ngoài như thiết bị điện cơ thường thường không thể dùng mức điện áp TTL điều khiển mà dùng mức điện áp và hệ thống nguồn riêng. hoặc có loại là tín hiệu dòng. không thống nhất với thời gian làm việc của CPU. đứng về mặt nguyên lý hoạt động thì có các loại như: loại cơ khí. 4) Thời gian không tương thích Các thiết bị ngoài đều có sự định thời và lôgic điều khiển riêng. có loại là tín hiệu đóng mở. loại điện tử. trong khi đó kiểu tín hiệu của các loại thiết bị ngoài không giống nhau. có loại là tín hiệu số. Cho nên các thiết bị I/O không thể trực tiếp nối với bus hệ thống của CPU mà cần phải thông qua mạch giao tiếp giữa CPU và các thiết bị I/O nhằm 41 . hoặc có loại là tín hiệu nối tiếp.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC Hình 2. thiết bị I/O có nhiều chủng loại khác nhau. Có loại thiết bị là tín hiệu tương tự. 2) Mức điện áp không tương thích Tín hiệu điện mà CPU sử dụng thường là mức điện áp TTL.

1v.1 Bộ chuyển đổi tương tự . 3) Dịch chuyển và lọc tần số : Dịch chuyển và lọc tần số thường được sử dụng để làm giảm các thành phần tiếng ồn trong một tín hiệu. Ví dụ. 16 bit . điện áp cảm biến phải thông qua sự chuyển đổi trước khi nó có thể được sử dụng bởi máy tính. . một bộ cảm biến xuất ra điện áp trong khoảng -0. 4) Chuyển đổi phương thức tín hiệu: Chuyển đổi phương thức tín hiệu thường xuyên được thực hiện để chuyển đổi tín hiệu một chiều thành xoay chiều và ngược lại. trong khi giao tiếp đầu vào của máy tính có thể chấp nhận điện áp chỉ trong khoảng 0 . Như vậy có thể có 2n kết quả số có thể có với giá trị từ 0 đến 2n-1.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC giải quyết những vấn đề nêu trên.5.3. Các khái niệm về bộ biến đổi này đã được nêu ở nội dung môn học kỹ thuật số. ).số (Analogue – Digital Converter ADC) là thiết bị chuyển đổi tín hiệu điện áp hoặc dòng điện tương tự thành tín hiệu số. . Các loại tiếng ồn xảy ra ở các băng tần hẹp và tín hiệu phải được dịch chuyển khỏi các băng tần tiếng ồn để tiếng ồn có thể được lọc đi. trong khi giao tiếp đầu vào của một máy tính có thể yêu cầu mức điện áp tín hiệu đầu vào có mức của volt. 12 bit. . Thông thường mạch giao tiếp có những chức năng sau: 1) Khuếch đại điện áp: Khuếch đại điện áp thường được yêu cầu thực hiện để làm cho điện áp cảm biến phù hợp với mức điện áp của hệ thống xử lý. Các thông số quan trọng nhất của vi mạch ADC biểu hiện chất lượng. 2.5v. một bộ cảm biến có thể tạo ra điện áp trong phạm vi mV.Thời gian chuyển đổi 42 . Ví dụ. Hoặc dùng để chuyển đổi tín hiệu tương tự thành tín hiệu số và ngược lại.5 đến 0. Trong trường hợp này.Kết quả chuyển đổi và độ phân giải ADC chuyển đổi đại lượng tương tự đầu vào có giá trị từ 0 đến điện áp tham khảo Vref thành đại lượng số có độ rộng n bit (8 bit. 2) Dịch chuyển mức điện áp: Dịch chuyển mức điện áp thường được yêu cầu để sắp xếp các mức điện áp được tạo ra bởi một cảm biến để được chấp nhận bởi hệ thống xử lý.số Bộ chuyển đổi tương tự . ADC có chức năng chuyển đổi điện áp tương tự đầu vào thành số nhị phân. tính chất hoạt động của ADC là các thông số sau: .

7 Nêu hai tính chất quan trọng của RAM tĩnh.3.tương tự Bộ biến đổi số . RAM. Câu hỏi ôn tập 2. bus địa chỉ.4 ROM là gì? RAM là gì? 2. bus dữ liệu. 2.6 Tại sao hệ thống xử lí lại cần ROM? 2.tương tự (Digital – Analogue Converter DAC) chuyển đổi tín hiệu số ra từ vi xử lí thành tín hiệu tương tự để điều khiển các thiết bị tương tự. ROM. .3 Vẽ sơ đồ khối của hệ thống xử lí bao gồm CPU.5 Giới thiệu 4 loại ROM phổ biến.2 Bộ biến đổi số .5. tại đây chúng ta chỉ bàn đến các tính chất của DAC liên quan đến việc kết nối với vi xử lí. 2. . I/O.Độ phân giải (resolution): Được định nghĩa bằng trong đó Vm là điện áp tối đa đầu ra.Độ tuyến tính : chỉ mức độ thay đổi của giá trị tương tự khi giá trị số thay đổi. Thời gian chuyển đổi càng bé thì ADC có chất lượng và giá thành càng cao. Nội dung hoạt động và các tính chất của bộ DAC đã được giới thiệu kỹ tại môn Kỹ thuật số. Hoạt động của DAC là tương đối đơn giản nên tại đây ta chỉ nêu ra những nguyên tắc cơ bản để bạn đọc có thể tự tiến hành. các ADC hoạt động trên nguyên tắc so sánh nên cần khoảng thời gian có đơn vị mili giây đến micro giây để chuyển đổi. 2. Thông thường. bus điều khiển.8 Flash ROM là bộ nhớ 43 . DAC lý tưởng là tuyến tính nhưng trên thực tế có sai số DAC chuyển đổi gần như tức thời dữ liệu số từ đầu vào đến đầu ra.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC Để chuyển đổi tín hiệu tương tự đầu vào thành tín hiệu số cho đầu ra thì ADC cần một khoảng thời gian xác định.1 Bus là gì? 2. 2. n là số bit của dữ liệu đầu vào.2 Xác định khái niệm cấu trúc 3-bus 2.

2. 32kbyte b. Được sử dụng làm bộ nhớ đệm. Là bộ nhớ bay hơi c. các đường dữ liệu là 16.9 Bộ nhớ song song có tốc độ truy xuất so với bộ nhớ nối tiếp là a. các đường địa chỉ b. các đường xung clock đồng bộ 2. Các đường dữ liệu.10 Bộ nhớ song song 16 bit có dung lượng 1Mbit. Các đường dữ liệu. Dung lượng bộ nhớ là a.13 Nêu một số thiết bị cảm biến và thiết bị chấp hành và một tả nguyên lý hoạt động của chúng. Cao hơn b. các đường điều khiển và các đường chọn chip d. 17 d. 15 b. 256 kbyte 2.11 Một bộ nhớ có các đường địa chỉ là 16. Bộ nhớ chỉ đọc được chế tạo theo công nghệ CMOS b. Thấp hơn c. các đường địa chỉ và các đường điều khiển c. 64 kbyte c. Là bộ nhớ EEPROM có tốc độ đọc cao d. 128 kbyte d. 18 2.2 PHẦN CỨNG HỆ THỐNG THỜI GIAN THỰC a. Tốc độ phụ thuộc vào vi xử lý 2. 44 . Các đường dữ liệu. 16 c. Số đường địa chỉ là a. các đường địa chỉ. Các đường dữ liệu. các đường điều khiển là 4.14 Tại sao phải thiết kế mạch giao tiếp? Mô tả một vài chức năng của mạch giao tiếp. các đường địa chỉ.12 Một bộ nhớ song song phải có các tín hiệu sau a. 2. Không so sánh được d.

quản lý các thiết bị phần cứng và các tài nguyên phần mềm trên hệ thống.1 Giới thiệu chương • Giới thiệu khái niệm về hệ điều hành • So sách sự khác biệt giữa hệ điều hành chung và hệ điều hành thời gian thực • Đặc điểm và chức năng của hệ điều hành thời gian thực • Phân loại hệ điều hành thời gian thực • Giới thiệu tổ chức và kiến trúc hệ điều hành thời gian thực • Giới thiệu các dịch vụ cơ bản của hệ điều hành thời gian thực • Giới thiệu các dịch vụ mở rộng của hệ điều hành thời gian thực • Giới thiệu một số hệ điều hành thời gian thực tiêu biểu 3. dùng để điều hành.2.3 Chương 3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC 3.2 Tổng quan về hệ điều hành thời gian thự 3. 45 .1 Hệ điều hành Định nghĩa : Hệ điều hành (gọi chung) là một phần mềm chạy trên hệ thống máy tính hoặc chạy trên hệ thống điều khiển chung.

cung cấp một môi trường cho phép người sử dụng phát triển và thực hiện các ứng dụng của họ một cách dễ dàng. Hệ điều hành ngày nay có xu hướng thiết lập giao diện người dùng đồ họa (GUI). cho phép các bộ phận khác nhau của một trong những chương trình được sử dụng đồng thời. quản lý cả phần mềm và tài nguyên phần cứng. • Hệ điều hành thời gian thực được thiết kế để cho phép hệ thống xử lý và đáp ứng với đầu vào theo thời gian thực. • Một hệ điều hành đa người dùng cho phép nhiều người dùng để chạy các chương trình cùng một lúc. hệ điều hành đa luồng và hệ điều hành thời gian thực. 46 . Một hệ điều hành máy tính là một phần mềm được thiết kế để chạy các chương trình khác trên máy tính. Một hệ điều hành cũng có một vai trò quan trọng trong an ninh. Các hệ điều hành thường dùng cho máy tính cá nhân là Microsoft Windows. Hệ điều hành có nhiều loại.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC Hệ điều hành đóng vai trò trung gian trong việc giao tiếp giữa người sử dụng và phần cứng hệ thống. Đây là loại hệ điều hành có thể được sử dụng bởi một vài người hoặc hàng trăm trong số họ. BSD và một số phiên bản Windows được sử dụng phổ biến. Trong thực tế. • Hệ thống điều hành đa nhiệm có khác một chút. nhận dữ đầu vào từ các thiết bị bên ngoài và hiển thị ra màn hình máy tính. hệ điều hành đa nhiệm. như máy in và máy quét. Hệ điều hành chịu trách nhiệm cho tất cả mọi thứ từ việc kiểm soát và phân bổ bộ nhớ. Nó cũng quản lý các tập tin trên ổ đĩa cứng máy tính và các thiết bị ngoại vi kiểm soát. các hệ điều hành Mac OS X. Linux. Nó được coi là xương sống của một máy tính. Hệ điều hành của một máy tính là phần mềm quan trọng nhất của nó. hệ điều hành đa xử lý. nó có thể chạy nhiều hơn một chương trình tại một thời điểm. tại trường học và ngay cả đối với một số tình huống với các máy tính tại nhà. có một số hệ điều hành được sử dụng để cho phép hàng ngàn người để chạy chương trình cùng một lúc. Riêng đối với máy tính Macintosh. Công việc của nó bao gồm ngăn cản người dùng trái phép truy cập vào hệ thống máy tính. Điều này có thể rất tiện dụng trong một số môi trường làm việc. Có hệ điều hành đa người dùng. • Hệ điều hành đa luồng có khác nhau hơn. • Một hệ thống điều hành đa xử lý cho phép một chương trình để chạy trên nhiều hơn một đơn vị xử lý trung tâm (CPU) tại một thời điểm. Linux và các biến thể Unix.

2 Hệ điều hành thời gian thực (RTOS) Định nghĩa : RTOS là một hệ điều hành hỗ trợ các ứng dụng thời gian thực bằng cách cung cấp kết quả logic đúng trong thời hạn yêu cầu. Thông thường. hệ điều hành thời gian thực có thể được sử dụng trong công việc điều khiển tự động hóa. điều mà các nhà thiết kế có thể 47 . không được coi là thời gian thực. RTOS là chìa khóa cho nhiều hệ thống nhúng và nó cung cấp một nền tảng để xây dựng các ứng dụng. Kết quả là tác vụ ưu tiên thấp có thể có quyền ưu tiên thực thi mạnh mẽ so với các tác vụ ưu tiên khác cao hơn. nhưng ngoài ra nó cung cấp cơ chế để cho phép lập lịch trình thời gian thực của các tác vụ.2. Không phải tất cả các hệ thống nhúng được thiết kế với RTOS. 3. Hệ điều hành thời gian thực thường được sử dụng khi máy tính phải phản ứng với thông tin đầu vào một cách phù hợp mà không có sự chậm trễ. Mặc dù hệ điều hành thời gian thực có thể hoặc không có thể làm tăng tốc độ thực hiện. Thời gian "xác định" có nghĩa là hệ điều hành tiêu thụ một lượng thời gian biết trước và nằm trong dự kiến. Do đó.Sự khác biệt chính giữa các hệ thống điều hành chung của máy tính và hệ điều hành thời gian thực là "sự xác định" thời gian hành vi trong các hệ điều hành thời gian thực. Hệ thống nhúng với phần cứng/mã tương đối đơn giản/nhỏ có thể không yêu cầu một RTOS.Hệ điều hành chung được tối ưu hóa để chạy một loạt các ứng dụng và các quá trình cùng một lúc. Các hệ thống nhúng với các ứng dụng phần mềm từ trung bình đến lớn đòi hỏi một số hình thức lập kế hoạch và do đó chúng cần có RTOS. độ trễ không phải là một mối quan tâm cho hệ điều hành mục đích chung.2.3 So sánh hệ điều hành thời gian thực (RTOS) và hệ điều hành trên PC (PCOS) Hệ điều hành thời gian thực (RTOS) và hệ điều hành trên PC (PCOS) có những sự khác biệt sau: Tính xác định . RTOS có định nghĩa độ trễ trong trường hợp tồi tệ nhất.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC 3. Trong khi đó. Lập kế hoạch tác vụ . nhưng nó cung cấp các công cụ thời gian chính xác và có thể dự đoán tốt hơn so với hệ điều hành chung. chẳng hạn như hệ điều hành đĩa (DOS). Cấu trúc cơ bản là tương tự như hệ điều hành chung. vì nó có thể cần nhiều thời gian để đáp ứng với đầu vào. do đó đảm bảo rằng tất cả các tác vụ nhận được ít nhất một số thời gian xử lý. hệ điều hành mục đích chung.

2. 48 . Trong trường hợp là hệ điều hành mục đích chung như Windows/Linux. 3) Hầu hết các hệ điều hành máy tính quan tâm đến hiệu năng trung bình. RTOS sử dụng phương thức lập kế hoạch dựa trên ưu tiên đặt trước.RTOS thường được sử dụng cho các ứng dụng nhúng. Hạt nhân RTOS ưu tiên định trước . có nghĩa là thời gian hoạt động bị giới hạn cho tất cả các công việc và quá trình xử lý ngắt.4 Đặc điểm và chức năng của hệ điều hành thời gian thực Hệ điều hành thời gian thực có những đặc điểm sau: 1) Độ trễ chuyển đổi trạng thái nhỏ. Đảo ngược ưu tiên xảy ra khi một tác vụ có mức ưu tiên trung bình (không sử dụng tài nguyên) giành quyền ưu tiên thực thi trước một tác vụ có mức ưu tiên thấp hơn đang sử dụng tài nguyên mà một tác vụ có mức ưu tiên cao hơn hai mức ưu tiên kia đang chờ. Điều này có nghĩa là thời gian thực hiện việc lưu trạng thái của tác vụ hiện hành và sau đó chuyển đổi sang tác vụ khác là ngắn.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC không muốn. Tất cả các hoạt động hạt nhân là theo sự ưu tiên định trước. trong khi đó hệ điều hành mục đích chung được sử dụng cho máy tính để bàn hoặc máy tính mục đích chung khác. Điều này còn được gọi là độ trễ ngắt. Trong khi đó. RTOS chỉ mặc định các dịch vụ cần thiết cho các ứng dụng nhúng của người sử dụng. Tất cả các hành vi hệ thống là xác định.Hạt nhân hạt nhân của một RTOS là phần lịch trình mà công việc được thực hiện ở một thời điểm nhất định. 3. Cách sử dụng . Điều này rất quan trọng đối với các hệ thống nhúng nơi mà sự chậm trễ có thể gây ra một mối nguy hiểm đến sự an toàn. lập kế hoạch là dựa trên quá trình. 2) Thời gian tiêu hao từ việc thực hiện câu lệnh cuối cùng của một tác vụ đến việc thực hiện lệnh đầu tiên của chương trình xử lý ngắt là có thể dự đoán được và đủ ngắn. trong đó cho phép các công việc có mức ưu tiên cao luôn đáp ứng được thời hạn của chúng.RTOS có cơ chế để ngăn chặn đảo ngược ưu tiên. Đảo ngược ưu tiên . trong khi các RTOS lại quan tâm đến các giới hạn và thời gian đáp ứng. 2) Để tiết kiệm bộ nhớ. Lập kế hoạch trong RTOS là lập lịch liên quan đến thời gian. Ngoài ra. ta cũng có thể mô tả sự khác biệt giữa hệ điều hành thời gian thực và hệ điều hành máy tính bằng 3 điểm như sau: 1) Vấn đề bảo mật đối với RTOS không được quan tâm bảo vệ như hệ điều hành máy tính.

3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC 3) Tương tự. Hệ điều hành thời gian thực có một số chức năng như sau (hình 3. mỗi công việc cần phải được phân bổ với một số lượng 49 . thời gian tiêu hao từ việc thực hiện câu lệnh cuối cùng của chương trình xử lý ngắt đến việc thực hiện lệnh đầu tiên của tác vụ tiếp theo cũng có thể dự đoán và đủ ngắn. 2) Quản lý bộ nhớ (Memory Management) Có hai loại quản lý bộ nhớ trong RTOSs.1): Hình 3. Họ là Quản lý ngăn xếp (Stack) và Quản lý vùng nhớ dùng chung (Heap): Trong một RTOS đa tác vụ. Xử lý mức ưu tiên có nghĩa là cho phép chuyển đổi từ một tác vụ hiện đang thực hiện có mức ưu tiên thấp sang một tác vụ khác có mức ưu tiên cao hơn đã sẵn sàng và chờ đợi để được thực thi. 6) Hệ thống thời gian thực không hỗ trợ xử lý theo mức ưu tiên cho hạt nhân (kernel) mà trong khi xử lý hạt nhân sẽ được đặt mức ưu tiên bởi một số quá trình khác.1: Chức năng của hệ điều hành thời gian thực 1) Quản lý tác vụ (Task Management) Quản lý tác vụ cho phép người lập trình thiết kế phần mềm ứng dụng thành một số đoạn mã riêng biệt để thực hiện các mục tiêu và thời hạn riêng biệt. 4) Độ tin cậy và thời gian ràng buộc giữa các cơ chế xử lý phải được đảm bảo để các tác vụ giao tiếp với nhau một cách kịp thời. Điều này còn được gọi là độ trễ kết thúc ngắt. 5) Một RTOS có hỗ trợ xử lý đa nhiệm và theo mức ưu tiên cho từng tác vụ. Chức năng này thực hiện thông qua bộ lập lịch và bộ điều phối.

nó phải hoàn trả lại. 6) Quản lý thiết bị vào/ra (Device I/O Management) Một hạt nhân RTOS thường được trang bị dịch vụ quản lý thiết bị I / O để cung cấp một khung thống nhất (ứng dụng lập trình giao diện API) và công cụ giám sát cho một hệ thống nhúng để tổ chức và truy cập các thiết bị phần cứng đa dạng. Bộ nhớ này thường được gọi là ngăn xếp hạt nhân (kernel stack) và quản lý quá trình này gọi là quản lý ngăn xếp. Điều này phân bổ bộ nhớ được thực hiện bằng cách sử dụng mô hình khối kiểm soát tác vụ (Task Control Block TCB). Một thách thức cơ bản trong việc thiết kế RTOS là hỗ trợ ngắt và từ đó cho phép truy cập không đồng bộ vào cấu trúc dữ liệu bên trong RTOS. vv) để chuyển đổi ngữ cảnh. bộ nhớ vật lý của MCU hoặc MPU thường sẽ được dùng cho mã chương trình. 4) Quản lý bộ định thời (Timer Management) Trong các hệ thống nhúng. các khối bộ nhớ này dùng cho các tác vụ khi cần. Vùng nhớ dùng chung thường được sử dụng bởi hạt nhân để cấp phát bộ nhớ động không gian dữ liệu cho các tác vụ. các tác vụ của hệ thống và người sử dụng thường được lên kế hoạch để thực hiện sau một thời gian nhất định. bộ đệm.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC bộ nhớ để lưu trữ bối cảnh của chúng (như nội dung thanh ghi. Sau khi kết thúc công việc khởi tạo chương trình. 50 . Để cung cấp một công cụ như bộ lập kế hoạch thì cần thiết có một ngắt định kỳ để theo dõi thời gian trễ và thời gian chờ. Bộ nhớ còn lại được gọi là vùng nhớ dùng chung. Bộ nhớ có thể được chia thành các khối có kích thước cố định. 5) Ngắt và xử lý sự kiện (Interrupt and Event Handling) Ngắt là một cơ chế phần cứng được sử dụng để thông báo cho CPU là một sự kiện không đồng bộ đã xảy ra. bộ đếm chương trình. 3) Đồng bộ giữa các tác vụ (Intertask Synchronization) và Thông tin giữa các tác vụ (Intertask Communication) Đồng bộ hóa là điều cần thiết cho các tác vụ chia sẻ tài nguyên (như thiết bị. Khi một tác vụ kết thúc mà có sử dụng một khối bộ nhớ. Quản lý quá trình bộ nhớ này được biết đến như quản lý Heap. RTOSs mới nhất hiện nay cung cấp cả hai loại thời gian: "thời gian tương đối tính thời gian bằng các đơn vị của xung và "thời gian tuyệt đối " bằng thời gian thực như lịch. vv) và / hoặc cho phép nhiều nhiệm vụ được thực hiện đồng thời. Thông tin liên lạc giữa các tác vụ bao gồm việc chia sẻ dữ liệu giữa các tác vụ thông qua việc chia sẻ tài nguyên không gian bộ nhớ và dữ liệu. dữ liệu chương trình và ngăn xếp hệ thống.

Kích thước rất nhỏ. Hạt nhân cho mục đích nghiên cứu. treo hay kích hoạt việc thực hiện 2) Hệ điều hành thời gian thực mở rộng Các hệ điều hành này như RT-UNIX (được mở rộng từ UNIX). ta có thể phân hệ điều hành thời gian thực thành ba loại: Hệ điều hành thời gian thực nhỏ với mục đích thương mại.Cung cấp việc xử lý độ trễ. RT-MACH (được mở rộng từ MACH).Hỗ trợ xử lý đa tác vụ . ERCOS. RT-LINUX (được mở rộng từ LINUX). 3) Hạt nhân cho mục đích nghiên cứu Các hệ điều hành này như SPRING.5 Phân loại hệ điều hành thời gian thực Đứng ở góc độ người sử dụng.Đồng hồ thời gian thực . Windows CE. .Phát triển hỗ trợ cho khả năng chịu lỗi 51 . DARK. VxWorks.Hỗ trợ các hàng đợi thời gian thực . Chúng có những đặc điểm như sau: . hạt nhân của nó có khả năng: . Nulceus.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC 3. 1) Hệ điều hành thời gian thực nhỏ với mục đích thương mại Các hệ điều hành này thường nhỏ và nhanh như QX. CHAOS.2. . PDOS. RT-POSIX (được mở rộng từ POSIX). HARTOS.Nhấn mạnh khả năng dự đoán không chỉ của hạt nhân mà còn cung cấp sự hỗ trợ dự đoán ở mức ứng dụng . pSOS.Cung cấp cơ chế lập lịch dựa trên thứ tự ưu tiên .Hỗ trợ các dịch vụ cơ bản để đồng bộ thời gian thực . MARS.Có thời gian chuyển trạng thái và thời gian đáp ứng ngắt ngoài nhanh. Để đáp ứng những yêu cầu về thời gian thực.Cung cấp các cảnh báo đặc biệt và thời gian quá hạn (timeout) .Cung cấp vùng nhớ có kích thước cố định hoặc thay đổi cho việc quản lý bộ nhớ (không có bộ nhớ ảo) và có thể cố định mã chương trình và dữ liệu trong bộ nhớ.Cung cấp các giới hạn thời gian thực hiện .Hỗ trợ các thuật toán lập lịch thời gian thực . Hệ điều hành thời gian thực mở rộng. Chúng có những đặc điểm chung sau: . Chúng chậm hơn và có khả năng dự đoán kém hơn so với hệ điều hành thời gian thực thương mại nhưng chúng lại có nhiều chức năng hơn và môi trường phát triển tốt hơn dựa trên tập các giao tiếp chuẩn và thân thiện. EMERALDS. MARUTI. ARTS.

bảo vệ hệ thống.Phát triển hỗ trợ cho QoS. Phần hạt nhân có vai trò điều khiển rất quan trọng để đảm bảo tất cả các phần của hệ thống có thể làm việc ổn định và thống nhất. xử lý ngắt. Hình 3. Hai kiến trúc thiết kế phần hạt nhân kinh điển nhất là kiến trúc đơn hạt nhân (monolithic-kernel) và vi hạt nhân (micro-kernel). . Chúng đảm nhiệm các chức năng lập lịch. các thanh ghi điều khiển. như hình 3.1 Tổng quan Hai thành phần chính trong thiết kế hệ điều hành là hạt nhân (kernel) và các chương trình hệ thống. Chức năng điều khiển chính của nó là phục vụ điều khiển phần cứng bao gồm ngắt. . Nó nạp các phần mềm điều khiển thiết bị để cung cấp các tiện ích chung và phối hợp với các hoạt động vào ra với hệ thống.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC . các từ trạng thái và các bộ định thời gian.3 Các kiến trúc hệ điều hành thời gian thực 3.Cung cấp hỗ trợ cho đa bộ xử lý và cho hệ thống thời gian thực phân tán .3.2.3. như hình 3. có một loại kiến trúc hạt nhân thứ 3 là hạt nhân hỗn hợp (hybrid-kernel). đồng bộ. 3.2: Kiến trúc của một hệ điều hành thời gian thực Hạt nhân được sử dụng để phục vụ cho các bộ phận quản lý tiến trình. Ngoài ra. bộ phận quản lý tài nguyên và bộ phận quản lý vào/ra. bộ phận lập lịch. 52 .

ở không gian hạt nhân.Thiếu khả năng mở rộng và bảo trì khó. Tuy nhiên. hệ thống file.Quá trình xử lý và tương tác nhanh hơn vì không cần phải chờ đợi..Dễ dàng xử lý các tín hiệu và liên lạc giữa nhiều thành phần với nhau .3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC Hình 3. Kiến trúc này có những ưu điểm: . việc cho tất cả các cơ bản dịch vụ vào trong không gian hạt nhân có ba nhược điểm lớn: . Nó chạy tất cả các dịch vụ hệ thống cơ bản như quản lý tiến trình và bộ nhớ. hệ thống phần cứng sẽ không cần cài đặt thêm driver cũng như phần mềm khác .Truy cập trực tiếp đến các phần cứng . Ví dụ điển hình về loại hình kiến trúc đơn hạt nhân là Linux. 53 ..Khi sửa chữa lỗi hoặc bổ sung các tính năng mới phải biên dịch lại toàn bộ hạt nhân mà việc biên dịch của một hạt nhân mới có thể mất nhiều thời gian và rất nhiều bộ nhớ.3: Các kiến trúc của hệ điều hành 3. ngắt xử lý và truyền thông I/O. MacOS và OS.2 Đơn hạt nhân Kiểu kiến trúc đơn hạt nhân cung cấp tất cả các chức năng/dịch vụ chính yếu thông qua một quá trình xử lý đơn lẻ.Kích thước hạt nhân lớn .3. xây dựng từ quản lý tiến trình cơ bản đến giao diện cho phần còn lại của hệ điều hành (thư viện và các ứng dụng). Nó được xây dựng theo dạng lớp.Nếu được hỗ trợ đầy đủ. .

Kích thước nhỏ.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC 3. .3 Vi hạt nhân Để khắc phục những nhược điểm của đơn hạt nhân. kiến trúc vi hạt nhân có những ưu điểm sau: . Ưu điểm: 54 . .Các dịch vụ có thể được khởi tạo hoặc cấu hình lại mà không nhất thiết phải khởi tạo lại toàn bộ hệ thống. Vì vậy đây có thể là lý do làm chậm tốc độ và làm giảm tính hiệu quả hoạt động của hệ thống.4 Hạt nhân hỗn hợp Khác với 2 loại hạt nhân trên. phân phối và điều chỉnh công việc phù hợp.Phần cứng hoạt động dưới mức hiệu suất thông thường vì các trình điều khiển ở trong chế độ người sử dụng .Do tính độc lập tương đối giữa các modul trong vi hạt nhân nên cần thiết phải có một cơ chế trao đổi thông tin hay truyền thông giữa các modul đó.3. kiến trúc này có những nhược điểm: .Kiến trúc vi hạt nhân cung cấp độ an toàn cao do dịch vụ hệ thống chạy ở tầng người sử dụng với hạn chế về truy nhập vào tài nguyên của hệ thống và có thể được giám sát. người ta thiết kế hệ điều hành dựa trên kiến trúc vi hạt nhân.Kiến trúc vi hạt nhân có thể được xây dựng một cách mềm dẻo để phù hợp với cầu hình phần cứng khác nhau một các linh hoạt hơn so với kiểu kiến trúc đơn hạt nhân. linh hoạt .Các tiến trình không thể truy cập tới những ứng dụng khác mà không phải chờ đợi Kiến trúc vi hạt nhân được phát triển mạnh mẽ trong các hệ thống đa xử lý như Mach. Thông thường. Tính năng này thực sự rất có ích vì chúng đảm bảo tính hiệu quả của hệ thống. hạt nhân hỗn hợp có khả năng chọn lựa và quyết định những ứng dụng nào được phép chạy trong chế độ người sử dụng hoặc chế độ giám sát. Nhờ cơ chế này. QNX. . Các vi hạt nhân cung cấp các chức năng điều hành cơ bản cốt lõi theo cơ chế các modul tương đối độc lập đảm nhiệm các tác vụ cụ thể và chuyển dời rất nhiều các dịch vụ điển hình điều hành hệ thống và thực thi trong không gian người sử dụng. 3. Tuy nhiên.3. dễ quản lý. những chương trình như driver và file hệ thống I/O sẽ hoạt động trong chế độ người sử dụng trong khi IPC (Inter-Process Communication) và các gói tín hiệu được giữ lại trong chế độ giám sát.

Có thể bị bỏ lại trong quá trình gây treo hệ thống tương tự như với vi hạt nhân . Nhiều tác vụ đồng thời có thể được ở trạng thái này. Ví dụ.Các trình điều khiển thiết bị phải được quản lý bởi người dùng 3.Các nhà phát triển có thể chọn và phân loại những ứng dụng nào sẽ chạy trong chế độ thích hợp . nếu chỉ có một bộ vi xử lý thì chỉ có một tác vụ là trong trạng thái đang chạy ở một thời điểm nhất định.Có tính linh hoạt và cơ động cao nhất Nhược điểm: . Sẵn sàng (Ready) . 3.có nghĩa là các bộ vi xử lý đang thực hiện các lệnh của tác vụ này. Các thành phần của 1 tác vụ: Tên/ID.4 Các dịch vụ cơ bản 3.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC . Chạy (Running) . Tại một số điểm trong chương trình.Sử dụng ít bộ nhớ hơn so với đơn hạt nhân . Bị chặn (Blocked) . 2. Trừ khi là một hệ thống đa bộ xử lý. Khi một tác vụ được mở khóa thì nó chuyển từ trạng thái bị khóa sang trạng thái sẵn sàng chạy.4. 1 block điều khiển (TCB) và các thủ tục thực thi tác vụ như hình 3.có nghĩa rằng tác vụ này yêu cầu tài nguyên hệ thống nhưng chưa được đáp ứng. độ ưu tiên. khi gọi đến một chức năng trong RTOS thì bắt đầu một tác vụ.1 Các trạng thái tác vụ Tác vụ (Task) là một đơn vị cơ bản chạy trong RTOS. Một ứng dụng được chia thành nhiều tác vụ đồng thời để tối ưu khả năng đáp ứng vào ra theo sự ràng buộc của thời gian. Theo hầu hết các RTOS. Mỗi tác vụ trong một RTOS luôn luôn là một trong ba trạng thái: 1.có nghĩa rằng tác vụ đang trong trạng thái sẵn sàng thực thi nhưng chưa thể thực thi vì có tác vụ khác có quyền ưu tiên cao hơn đang chiếm quyền thực thi.4. một tác vụ đơn giản chỉ là một chương trình con. yêu cầu phải đợi một số sự kiện bên ngoài hoặc làm trễ một khoảng thời gian. một tác vụ xử lý dữ liệu từ một mạng lưới sẽ không có gì để làm khi không có dữ liệu. Một tác vụ đáp ứng cho người sử dụng khi người sử dụng nhấn một nút sẽ 55 .

Các trạng thái có thể chuyển đổi cho nhau. Bộ lập lịch phải luôn quan tâm tới các mức ưu tiên của tác vụ vì nếu một tác vụ ưu tiên cao mà bị bộ vi xử lý treo trong một thời gian dài trong khi các nhiệm vụ ưu tiên thấp hơn được chờ đợi trong trạng thái sẵn sàng thì trường hợp đó là quá xấu.4. Phần còn lại chờ đợi trong trạng thái sẵn sàng. Bất kỳ tác vụ nào cũng có thể ở trạng thái này.4: Cấu trúc một tác vụ không có gì để làm cho đến khi người sử dụng nhấn nút. các bộ lập lịch trong hầu hết các RTOS đều khá đơn giản về công việc sẽ nhận được từ bộ xử lý: chúng nhìn vào những ưu tiên mà ta gán cho các tác vụ và trong số các tác vụ mà không phải trong trạng thái bị chặn thì tác vụ nào có ưu tiên cao nhất sẽ được thực hiện. Cho nên. theo dõi tình trạng của từng công việc và quyết định tác vụ nào chuyển đến trạng thái chạy.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC Hình 3. Không giống như bộ lập lịch trong Unix hoặc Windows. điều kiện chuyển đổi cụ thể như hình 3. 56 .5. Nó giúp xác định tác vụ (task) nào sẽ dành quyền CPU để thực thi tiếp theo. Sau đó.2 Bộ lập lịch Một phần vô cùng quan trọng của RTOS là lập lịch. 3. nó thực hiện việc chuyển trạng thái (context switching) được thực hiện bằng bộ điều phối (dispatcher).

4.3 Tác vụ và dữ liệu Mỗi tác vụ có một hiện trường riêng. áp dụng việc sử dụng khá phổ biến của động từ block có nghĩa là "di chuyển vào trạng thái chặn". Do đó. lên lịch với giả định rằng ta biết những thông tin cần thiết khi thiết lập các mức ưu tiên tác vụ. Tất cả những dữ liệu khác được chia sẽ giữa các tác vụ.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC Hình 3. 3. Bộ lập lịch không thể quyết định cho một tác vụ là khi nó phải chờ đợi cho một cái gì đó. một chương trình ngắt hoặc một số tác vụ khác trong hệ thống phải có khả năng để báo hiệu rằng bất cứ điều gì mà tác vụ được chờ đợi đã xảy ra. Khi một tác vụ bị chặn thì nó không bao giờ được các bộ vi xử lý thực thi. động từ run có nghĩa là "di chuyển vào tình trạng chạy" hoặc "trong trạng thái đang chạy" và động từ context switch có nghĩa là "thay đổi tác vụ trong trạng thái đang chạy". bộ đếm chương trình và một ngăn xếp. Việc chuyển đổi vụ giữa các trạng thái sẵn sàng và chạy hoàn toàn là công việc của bộ lập lịch. tác vụ và chương trình ngắt có thể di chuyển từ trạng thái bị chặn sang tình trạng sẵn sàng. Nếu một tác vụ đang chạy thì có một tác vụ khác ưu tiên hơn được kích hoạt thì RTOS sẽ dừng tác vụ đang chạy và sẽ chạy tác vụ ưu tiên cao hơn. bao gồm các giá trị thanh ghi. Một tác vụ chỉ bị chặn khi nó đã hết việc để làm. Còn tác vụ có mức ưu tiên thấp hơn sẽ bị khóa. Ở đây.5: Các trạng thái của tác vụ và sự chuyển đổi giữa chúng các tác vụ ưu tiên thấp hơn chỉ phải chờ đợi. Nếu không. Công việc có thể bị chặn. Khi 57 . tác vụ đó sẽ bị khóa vĩnh viễn. nhưng bộ lập lịch phải kiểm soát trạng thái đang chạy.

Hình 3.1 Dùng hàm P(S) biểu thị TakeSemaphore và hàm V(S) biểu thị ReleaseSemaphore. vấn đề chia sẻ dữ liệu rất dễ dẫn tới việc không nhất quán trong chương trình và có thể gây sụp đổ hệ thống. Kernel sẽ phân chia chúng đến một Block điều khiển semaphore( semaphore control block (SCB). vì vậy cần có những biện pháp trao đổi thông tin trong RTOS để giải quyết vấn đề này.4 Đèn báo (Semaphore) và chia sẻ dữ liệu Một semaphore là một biến/chìa khóa/cờ hoặc một loại dữ liệu trừu tượng đơn giản nhưng hữu ích cho việc kiểm soát sự truy cập đa xử lý đến một nguồn tài nguyên chung trong một môi trường xử lý song song. điều đó rất dễ dàng để chuyển dữ liệu từ tác vụ này tới tác vụ khác: Hai tác vụ cần phải truy cập tới cùng biến. với một ID duy nhất. một giá trị và một danh sách các Tasks đang ở trọng thái chờ ( task waiting list) như hình 3. Một semaphore nhị phân RTOS điển hình có hai chức năng: Lấy đèn báo (TakeSemaphore) và Giải phóng đèn báo (ReleaseSemaphore). Tuy nhiên. 3. Ví dụ 2. Một số RTOS thậm chí có nhiều hơn một loại semaphore. hình 3.6.6: Sự truy cập tài nguyên chung giữa hai tác vụ Khi một semaphore được tạo ra lần đầu tiên. chương trình được viết như sau: Void P (int S) 58 .7.4. sau đó tất cả các tác vụ khác gọi TakeSemaphore sẽ bị chặn cho đến khi tác vụ đầu tiên gọi ReleaseSemaphore.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC chúng ta sử dụng biến chia sẻ dữ liệu giữa các tác vụ. Nếu một task vụ đã gọi là TakeSemaphore để lấy tín hiệu semaphore thì không được gọi ReleaseSemaphore để giải phóng nó.

5. } Chỉ có một tác vụ có semaphore tại một thời điểm. Mailboxes và Pipes Hàng đợi – Message Queue 59 . các hộp thư (mailbox) và các đường ống (pipe) cho mục đích này.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC Hình 3. } Void V (int S) { S = FALSE. chia sẻ dữ liệu. 3. 3.7: Ví dụ minh họa về cấu trúc của semaphore { while (S == TRUE) S = TRUE. Chúng ta có thể sử dụng semaphore như tín hiệu để giao tiếp giữa các tác vụ với nhau hoặc giữa hàm ngắt và tác vụ.5 Các dịch vụ mở rộng của RTOS thương mại Các tác vụ phải có khả năng giao tiếp với nhau để phối hợp làm việc và để trao đổi.1 Message Queues. Hầu hết các RTOS kết hợp một số dịch vụ như: hàng đợi các thông điệp (message Queue ).

Khi một hàng đợi được tạo ra lần đầu tiên.8: Cấu trúc của Queue Một hàng đợi có 2 danh sách các task đang chờ có liên quan. Hầu hết các RTOS cho phép sử dụng nhiều hàng đợi. và môt hay nhiều danh sách các task đang chờ. Nếu ta cố ghi vào một hàng đợi khi nó đã đầy thì RTOS sẽ trả lại một thông báo lỗi để chúng ta biết công việc đó bị hỏng hoặc bị khóa cho đến khi có một tác vụ nào đó đọc dữ liệu ra khỏi hàng đợi. Ta có thể thêm một số thông số để định danh hàng đợi và từ đó ta có thể đọc hoặc ghi vào hàng đợi đó. như hình 3. nó được gán đến một khối quản lý hàng đợi (Queue control Block QCB). tên hàng đợi/ID duy nhất. 60 . chiều dài hàng đợi.8. độ dài tối đa mỗi tin nhắn. bộ nhớ đệm (buffer). Hình 3. Một danh sách các task chờ nhận dữ liệu bao gồm các tác vụ đang chờ khi hàng đợi rỗng( không có dữ liệu).3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC Là một công cụ giao tiếp dữ liệu giữa các tác vụ. Danh sách các tác vụ đang chờ gửi gồm những tác vụ đang chờ trong khi hàng đợi đang đầy (full) dữ liệu. Một message Queue là một đối tượng tương tự như Buffer ( bộ nhớ đệm) thông qua Task hoặc chương trình phục vụ ngắt để gửi và nhận dữ tin nhắn (message) để giao tiếp và đồng bộ dữ liệu. Nếu ta cố đọc một hàng đợi rỗng thì nó sẽ trả ra một thông báo lỗi. Rất nhiều RTOS sử dụng một hàm để đọc từ một hàng đợi nếu có dữ liệu trong hàng đợi.9. Ví dụ như hình 3.

số lượng tin nhắn trong hộp thư mỗi là không giới hạn. trong đó chiều dài tin nhắn thường được cố định). Có một giới hạn tổng số các tin nhắn được ghi ở tất cả các hộp thư trong hệ thống.. Một số biến thể ta có thể thấy sau đây: Một số RTOS cho phép viết tin nhắn của độ dài khác nhau vào đường ống (không giống như các hộp thư và hàng đợi. Tin nhắn ưu tiên cao sẽ được đọc trước tin nhắn ưu tiên thấp hơn mà không quan tâm đến thứ tự mà chúng được viết vào hộp thư.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC Hình 3. Tuy nhiên.9: Cấu trúc của Queue Hộp thư – Mailbox Hộp thư là hàng đợi + semaphore như hình 3. để viết và đọc từ hộp thư và có thể có chức năng để kiểm tra xem hộp thư có chứa bất kỳ tin nhắn và hủy các hộp thư nếu nó không còn cần thiết. viết vào chúng. Đường ống trong một số RTOS hoàn toàn định hướng theo byte: nếu tác vụ A ghi 11 byte đường ống và sau đó tác vụ B ghi 19 byte vào đường ống. Một số RTOS cho phép một số lượng nhất định tin nhắn trong mỗi hộp thư. nó sẽ nhận được 11 của tác vụ A đã viết cộng với 3 byte của tác vụ B. Trong một số RTOS.10.. Các chi tiết của pipe giống như các chi tiết của hộp thư và hàng đợi. bạn có thể đặt mức ưu tiên cho các tin nhắn trong hộp thư. RTOS điển hình có chức năng để tạo ra. RTOS có thể tạo ra chúng. nhưng những tin nhắn này sẽ được phân chia vào các hộp thư cá nhân khi cần thiết. các chi tiết của hộp thư khác nhau trong RTOS là khác nhau. đọc từ chúng. sau đó nếu tác vụ C đọc 14 byte từ đường ống. khác nhau tùy vào mỗi loại RTOS. Trong một số RTOS khác. Đường ống – Pipe Pipe cũng giống như hàng đợi. Còn 16 byte của tác vụ B đã viết sẽ nằm lại 61 .

mailbox. Hình 3. 62 .11: Pipe Sử dụng queue. mailbox và pipe có thể làm vấn đề chia sẻ dữ liệu giữa các tác vụ trở nên dễ dàng hơn nhưng nó cũng rất dễ gây ra lỗi trong hệ thống của chúng ta.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC Hình 3. Khi sử dụng ta chú ý mấy điểm chính sau: Queue: Xử lý thông tin theo kiểu FIFO (First In First Out). Mailbox: Xử lý thông tin theo kiểu không nghẽn và theo mức ưu tiên. pipe Mặc dù queue. Một số RTOS sử dụng các chức năng thư viện C chuẩn fread và fwrite để đọc và ghi vào ống.10: Một mailbox trong đường ống dùng cho bất cứ tác vụ nào đọc từ nó.

một số khác đòi hỏi các tác vụ phần mềm của người sử dụng phải tự làm. Khi tác vụ điều khiển động cơ hoặc thủ tục định thời gian phát hiện động cơ chạy thì nó báo hiệu sự kiện với một cuộc gọi cho Event Manager.5.Một hay nhiều tác vụ bị khóa đợi chờ một sự kiện.Semaphore là phương thức nhanh nhất và đơn giản nhất.RTOS mặc định hình thành một nhóm các sự kiện và các tác vụ đợi cho bất kỳ tập con nào của nhóm sự kiện xảy ra. pipe. Một số đặc điểm của sự kiện trong các RTOS là: . thông tin thông qua một semaphore không nhiều. mailbox. Một số RTOS thiết lập lại các sự kiện một cách tự động. Chúng có một số đặc điểm riêng sau : . Tuy nhiên. .3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC Pipe: Xử lý những thông điệp có độ dài khác nhau. Ví dụ.Hàng đợi cho phép chúng ta gửi một số lượng lớn thông tin từ tác vụ này tới tác vụ khác. Khi các tác vụ phải chờ đợi động cơ thì chúng gọi Event Manager yêu cầu chờ đợi cho đến khi cờ sự kiện kiểm soát động cơ cho biết động cơ bắt đầu chạy. Chúng ta sử dụng các queue. Một cờ sự kiện được xác định để đại diện cho trạng thái của động cơ (off hoặc on). Sử dụng các sự kiện thuận lợi hơn semaphore là ở chỗ : một tác vụ đợi một hay nhiều sự kiện trong cùng thời gian trong khi nó chỉ đợi một semaphore. Mỗi sự kiện cơ bản là một cờ Boolean mà một tác vụ có thể thiết lập hoặc xóa và là cái mà các tác vụ khác có thể chờ đợi. .Các RTOS khác nhau đưa ra các cách khác nhau để thiết lập lại các sự kiện sau khi nó đã xảy ra và các tác vụ đợi sự kiện đó sẽ được giải phóng.2 Các sự kiện – Event Một dịch vụ khác của RTOS là quản lý các sự kiện bên trong hệ thống. . 3. . Event Manager đánh thức tất cả các tác vụ đang chờ đợi cho động cơ trên chạy. Chỉ một bit thông điệp được chuyển đi để thông báo semaphore được giải phóng. semaphore và các sự kiện cho việc giao tiếp giữa hai tác vụ hoặc giữa một ngắt và một tác vụ. các tác vụ chờ đợi một động cơ chạy. RTOS sẽ giải phóng tất cả chúng và thực hiện chúng theo thứ tự ưu tiên khi sự kiện xảy ra.Sự kiện ít phức tạp hơn semaphore nhưng lại tiêu tốn nhiều thời gian bộ xử lý hơn semaphore. cho dù tác vụ chỉ đợi trên một hàng đợi tại một thời điểm nhưng sự thật là chúng cho phép gửi dữ liệu thông qua một hàng đợi làm nó linh hoạt hơn một sự kiện. 63 .

Nó hỗ trợ 256 tác vụ và cung cấp dịch vụ điều khiển semaphore.Đồng bộ và chia sẻ dữ liệu giữa các tác vụ .RTX51 full cho phép thực hiện cả chuyển mạch xoay vòng và chuyển tác vụ với 4 mức ưu tiên.Bộ lập lịch . RTX51 là một hệ thống đơn giản được thiết kế cho các phần mềm có độ phức tạp cao và có giới hạn chính xác về thời gian đáp ứng. RTX51 Tiny cho phép chuyển mạch xoay vòng giữa các tác vụ. 3) QNX Neutrino QNX Neutrino là chuẩn mực cho các ứng dụng nhúng thời gian thực. có tính ưu tiên và đa tác vụ.Quản lý bộ nhớ . µC/OS hỗ trợ các tính năng sau: . Labrosse xây dựng.RTX51 Tiny là một nhân thời gian thực nhỏ của RTX51 full.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC 3. hàng đợi. Nó có thể co 64 .3 Giới thiệu một số hệ điều hành thời gian thực 1) RTX51-Real Time Operating System RTX51 là một hệ điều hành thời gian thực đa tác vụ cho hệ vi điều khiển 8051. hỗ trợ thông tin giữa các tác vụ và có thể hoạt động song song cùng với các hàm ngắt 2) µC/OS µC/OS là nhân một hệ điều hành thời gian thực do J. đèn báo.Truyền thông điệp . ta có thể gán tên cho một tác vụ. .6. có tính khả chuyển cao. một nhóm sự kiện hay một vùng nhớ. V2.Các thiết bị vào ra . mềm dẻo. Nhờ vậy mà bộ phát hiện lỗi có thể hiện thị tên của những đối tượng đó và cho phép chúng ta nhanh chóng xem thông tin về đối tượng. hàng đợi và vùng nhớ. Ngoài ra. tín hiệu tác vụ.5. . Có hai phiên bản của RTX51: RTX51 full và RTX51 Tiny. RTX51 Tiny dễ dàng chạy trên một chíp không có bộ nhớ dữ liệu ngoài. RTX51 có các công cụ rất mạnh để quản lý các tác vụ.Hệ thống file .6 cho phép bộ sửa lỗi đọc thông tin cấu hình của một ứng dụng và hiển thị những thông tin đó. Phiên bản µC/OS-II tăng cường thêm khả năng đặt tên tới mỗi đối tượng của nhân. Đặc biệt với phiên bản V2.Mạng truyền thông µC/OS còn hỗ trợ nhiều bộ vi xử lý và rất gọn nhẹ để sử dụng cho nhiều hệ thống nhúng. hộp thư.

3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC giãn tới một kích thước rất nhỏ và cung cấp nhiều tác vụ hoạt động đồng thời. điều khiển lập lịch. Câu hỏi ôn tập 3. 3. Mỗi task có một số hiệu (ID). Cho phép nhiều người dùng đăng nhập vào hệ thống tại cùng một thời điểm 3. Có thể chuyển đổi qua lại với nhau b. Cho phép tạo nhiều tài khoản người dùng b. Task là các ứng dụng chạy song song với nhau. từ một cấu hình cơ bản nhất của một nhân nhỏ (microkernel) với một vài modul nhỏ cho tới một hệ thống được trang bị khả năng phát triển mạng diện rộng để phục vụ hàng trăm người sử dụng. Trạng thái blocked có thể chuyển qua ready nhưng ngược lại thì không 65 . thứ tự ưu tiên và chuyển hiện trường nhanh.2 Hệ điều hành thời gian thực là gì? So sánh Hệ điều hành thời gian thực và Hệ điều hành chung. b. Cho phép người sử dụng có quyền như người quản trị d. QNX Neutrino rất mềm dẻo: Người sử dụng có thể dễ dàng thay đổi cấu hình OS cho phù hợp với ứng dụng của mình. Tại một thời điểm CPU chỉ xử lý 1 task. 3. các tiến trình. 3.5 Nêu các kiến trúc của Hệ điều hành thời gian thực và mô tả đặc điểm của chúng.6 Phát biểu nào sau đây đúng a.4 Hệ điều hành đa người dùng là a.7 Các trạng thái của một task a. Trạng thái ready có thể chuyển qua running nhưng ngược lại thì không d.3 Nêu đặc điểm và chức năng của Hệ điều hành thời gian thực. số hiệu này có thể thay đổi c. d. 3. Cho phép nhiều người có thể đăng nhập vào hệ thống bằng các tài khoản khác nhau c. Trạng thái running có thể chuyển sang blocked nhưng ngược lại thì không c.1 Hệ điều hành là gì? Phân loại hệ điều hành. Tại một thời điểm CPU có thể xử lý nhiều task 3.

3.3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC 3. 3.11 Pipe là gì? Mô tả sự khác nhau giữa hàng đợi.9 Hàng đợi là gì? Mô tả cấu trúc của một hàng đợi. µC/OS. 3.8 Semaphore là gì? Mô tả cấu trúc của một semaphore.13 Mô tả những đặc điểm giống và khác năng của các hệ điều hành thời gian thực: RTX51. QNX Neutrino. hộp thư và pipe. 3.10 Hộp thư là gì? Mô tả cấu trúc của một hộp thư. 3. 66 .12 Nêu các qui tắc thực thi hàm ngắt trong môi trường RTOS.

.1 Thời gian (Time) và quá hạn (Timeout) Nói chung. làm trễ.2.4 Chương 4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC 4. đo tốc độ bánh xe). 67 . chúng ta sử dụng thời gian trong lập trình hệ thống thời gian thực là để lấy mẫu định kỳ và không định kỳ.2 Thời gian. thời gian chờ.1 Giới thiệu chương • Giới thiệu các khái niệm liên quan đến thời gian • Ví dụ về lập trình Timer • Giới thiệu các kỹ thuật xử lý cơ bản trong hệ thời gian thực • Giới thiệu các giải thuật lập lịch • Giới thiệu kỹ thuật xử lý ngắt • Ví dụ lập trình xử lý ngắt của 8051 4. bộ định thời và quá hạn 4.Lấy mẫu định kỳ là dùng thời gian để đo lường tốc độ thay đổi hoặc để lượng hóa dữ liệu đầu vào (ví dụ.

tức không nhạy cảm về thời gian. Đối với hầu hết các hệ thống phần cứng. Khoảng thời gian giữa các ngắt được gọi là một đơn vị thời gian của hệ thống (System Tick). thiết bị. Thời gian được sử dụng trong phần mềm như là một phương tiện để đo lường và tương tác với thế giới thực.2. Bằng cách phân tích nhu cầu của chúng ta về thời gian trong phần mềm hệ thống. Hầu hết phần mềm không phải là thời gian thực. được sử dụng để đồng bộ hóa thời gian cho các hệ thống con khác nhau. Phần cứng mà không có một đồng hồ chung thì thiết kế rất phức tạp và rất khó để chạy đúng.Lấy mẫu không định kỳ là khi chúng ta muốn đo khoảng thời gian của hai sự kiện hoặc dữ liệu đầu vào (ví dụ. Bộ định thời này ngắt định kỳ và được sử dụng cho các dịch vụ thời gian của RTOS. Phần lớn các thuyết tính toán bỏ qua yếu tố thời gian.. .2. thiết bị truyền động. để thay đổi hành động sau khi một thời gian đã trôi qua (ví dụ. thiết lập một bộ đếm thời gian chậm trễ ngẫu nhiên trong một số loại game).. Để hiểu được thời gian trong phần mềm thì cần phải biết lý do tại sao chúng ta cần nó. đồng hồ thường là một đầu vào rõ ràng. thời gian thường ẩn.Quá hạn là khi chúng ta muốn nhắc nhở chính mình. đo thời gian phản xạ).2 Bộ định thời (Timer) 4.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC . cảm biến.Làm trễ là khi chúng ta muốn chờ đợi một khoảng thời gian xác định (ví dụ. 4. chúng ta có thể xây dựng một mô hình trừu tượng thích hợp của thời gian. làm trễ một thời gian cố định cho mỗi vòng lặp điều khiển). hầu hết các chương trình không sử dụng một đồng hồ đầu vào cho việc đồng bộ hóa thời gian và chúng có một khái niệm mơ hồ về thời gian thực thi. Do đó. chúng ta cần hiểu một mô hình thích hợp của thời gian là những gì.1 Chức năng bộ định thời Hầu hết các RTOS đều duy trì nhịp xung của bộ định thời.2. nó phối hợp và đồng bộ hóa với các hệ thống con độc lập khác. Thời gian là vấn đề cơ bản để thiết kế phần cứng. Hầu hết các RTOS thường sử dụng dịch vụ thời gian để: 68 . bằng cách thiết lập một báo thức. Việc sử dụng thời gian (đồng hồ) cho phần cứng là khác với phần mềm. Kết quả là hầu hết các chương trình có thể được suy luận độc lập với tốc độ thực hiện phần cứng cơ bản. ví dụ như con người. . tính đúng đắn của chúng không phụ thuộc vào một sự giả định về thời gian. Để có thể sử dụng thời gian hiệu quả trong phần mềm. Đối với các hệ thống phần mềm.

nó sẽ tạo ra một ngoại lệ khi nó hết hạn. Nó phụ thuộc vào những gì chúng ta muốn đạt được. Chúng ta có thể chọn loại timer phần cứng để đơn giản hóa công việc lập trình và giúp giảm chi phí so với thực hiện bằng phần mềm. hàng đợi. nó là phần mở rộng timer phần cứng.Chương trình ứng dụng có thể điều khiển RTOS gọi một hàm xác định sau một số đơn vị thời gian của hệ thống. nó phải được thiết lập lại bởi phần mềm thường xuyên trước khi nó hết hạn. khi giá trị bộ đếm bằng giá trị định trước đó thì nó tạo ra một sự kiện ngắt. 69 .Một tác vụ có thể khóa chính bản thân nó sau một số đơn vị thời gian xác định. 4. tốc độ đếm phụ thuộc vào tốc độ xung đồng hồ. Có nhiều loại timer trong phần cứng.2. Mỗi loại phục vụ cho một mục đích cụ thể. • Timer điều chế độ rộng xung (PWM): là timer cho phép lập trình để tạo ra độ rộng xung mong muốn. timer phần mềm là timer ảo. • Watchdog timer : là timer phát hiện lỗi. . chỉ đọc (read-only). Timer phần cứng ở độ phân giải cao nhưng khoảng thời gian ít.Định thời gian bị giới hạn của một tác vụ trong hệ thống khi nó đợi đèn báo. ví dụ một số thiết bị tắt màn hình khi không làm việc sau một khoảng thời gian.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC . khi về 0 hoặc khi tràn thì sẽ tạo ra một sự kiện ngắt. • Timer so sánh đầu ra : có thể được lập trình để khi đếm lên hoặc đếm xuống đều so sánh với một giá trị định trước. Trong khi đó. • Bộ đếm lập trình được : có thể được lập trình để đếm lên hoặc đếm xuống.2 Timer phần cứng • Bộ đếm : Bộ đếm chạy tự do. Timer ảo có thể ghép timer phần cứng cho các kích hoạt chương trình khác nhau. nó đếm lên 1 đơn vị mỗi khi có xung đồng hồ đến. . Nếu không.Kéo dài thời gian sử dụng pin. . .2. .Hệ thống với các kết nối mạng phải chờ đợi sự xác nhận dữ liệu mà họ đã gửi và truyền lại dữ liệu nếu một sự xác nhận hiển thị không đúng thời hạn. • Timer dò đầu vào: có thể được lập trình để khi có một sự kiện đến nó sẽ đến lên hoặc giảm xuống. .

Nó là một phiên bản phần mềm của một chiếc đồng hồ bấm giờ. chúng ta cần một loại khác của bộ đếm thời gian: đồng hồ bấm giờ. if (msec == 1000) { msec = 0. return from interrupt. // interval timer counter unsigned int sec. ++sec. Nó được sử dụng trong trường hợp ứng dụng của chúng ta đòi hỏi nhiều timer cho nhiều thiết bị và các tác vụ tương tác nhưng lại chỉ có một timer phần cứng duy nhất. nó 70 . 4. nhưng nó có tích hợp sẵn timer kích hoạt bởi tần số lấy mẫu của nó.2.2. // and so on . } usec = counter / Hz. nó làm giảm bớt rất nhiều thời gian lấy mẫu tín hiệu.. chúng ta thường sử dụng timer phần mềm ảo. // milliseconds unsigned int usec. Chúng ta có thể cho nó chạy hoặc dừng nó bất cứ lúc nào.3 Timer phần mềm Ngoài timer phần cứng. Đồng hồ treo tường (wall clock): Ví dụ 4. // microseconds interrupt handler void wall_clock() { ++msec.. // seconds unsigned int msec.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC • Bộ chuyển đổi A/D : đây không thực sự là một timer.1 Giả sử chúng ta có một timer phần cứng với một tần số đếm f MHz (độ phân giải micro giây) và chúng ta lập trình để tạo ra một xung ngắt mỗi mili giây. Khi hết hạn. } Đồng hồ bấm giờ (stopwatch): Để xử lý các trường hợp ngoại lệ và thời gian chờ. Chương trình được viết như sau: #define HZ f // counter frequency unsigned int counter.

Ví dụ 4. // in milliseconds unsigned int stopped. void start (unsigned n ) { // "n" in milliseconds count = n. break. • Timout : Tạo ra một sự kiện timeout khi giá trị đếm của nó đạt đến 0. if (count == 0) { generate a timeout.. void start(unsigned n) { // "n" in milliseconds 71 . Chúng ta sử dụng một bộ đếm thời gian đồng hồ bấm giờ để nhắc nhở chúng ta một cách không đồng bộ về một điều gì đó được thực hiện sau khi thời gian nhất định.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC tạo ra một sự kiện thời gian chờ. chúng ta có thể tạo ra bất cứ số lượng nào chúng ta cần trong ứng dụng. –count. // in milliseconds unsigned int stopped. Chương trình của đồng hồ bấm giờ như sau: unsigned int count.) { delay 1 millisecond. } unsigned int period. • Dừng : ngừng đếm. for(. Vì nó là một bộ đếm thời gian ảo. stopped = 0. if (stopped) break. } } } void stop() { stopped = 1.2 Viết chương trình của đồng hộ bấm giờ. Nó có 3 hành vi: • Bắt đầu (n): bắt đầu đếm ngược từ n. unsigned int count.

Bộ đếm (counter) : đếm sự kiện bên ngoài. khái niệm tương đối của thời gian là khá thích hợp.) { delay 1 millisecond. chúng hoạt động tương đối với thời gian hiện tại.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC period = n.2. Một chu kỳ máy bao gồm 12 xung đồng hồ của 8051. –count.1 Tổng quan 8051 có hai bộ đếm 16 bit. TL0 (bộ đếm 0) và TH1. if (stopped) break. stopped = 0. sử dụng thời gian tương đối. TL1 (bộ đếm 1). 72 . 4.3 Ví dụ về lập trình Timer cho 8051 4. Nghĩa là. Xung đồng hồ cho các bộ đếm này có thể là xung đồng hồ bên trong của 8051 hoặc nguồn xung bên ngoài. if (count == 0) { generate a timeout. Tần số tối đa có thể đếm được bằng 1/24 tần số đồng hồ của 8051.2. cho nên nó thường được cấp một dịch vụ lịch thực. count = period. Bộ định thời tăng 1 với mỗi chu kỳ máy. 01/10/2012. Bởi vì độ phân giải thời gian cho các chức năng báo thức như vậy là khá thô. Đối với một số ứng dụng..Bộ định thời (timer) : đếm xung đồng hồ của 8051. Đôi khi. chẳng hạn 2:15:30 pm.3. for(. Nội dung của hai bộ đếm có thể truy cập được ở các thanh ghi TH0. } } } Đồng hồ báo thức (Alarm clock): Hầu hết các timer mà chúng tôi thấy là timer phần cứng hoặc timer phần mềm. . Ta có hai trường hợp với hai tên gọi như sau: . chúng ta cần phải thiết lập một báo thức theo thời gian thực (đồng hồ treo tường). Bộ đếm tăng 1 khi gặp cạnh xuống của tín hiệu đi đến chân T0 (hoặc T1). count = period.

4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC Hoạt động của các bộ đếm được xác định bằng lập trình cho thanh ghi TMOD. M1. TR1 : Bit điều khiển bộ đếm 1. C/T : Chọn bộ đếm/bộ định thời. Bit này được đặt hoặc xoá bằng phần mềm và có tác 73 . Khi vi xử lí chuyển sang chương trình phục vụ ngắt thì cờ này tự động được xoá. Hình 4.M0 : Chọn một trong 4 chế độ (0-4) của bộ đếm. Cấu tạo của TCON như trên hình 4. Cờ được đặt bởi phần cứng của 8051.1: Các bit của thanh ghi TMOD GATE : Tín hiệu điều khiển. Nếu GATE = 1 khi đó bộ đếm n (n = 0. Như vậy lúc này bộ đếm được điều khiển bằng cả tín hiệu bên ngoài và bằng lập trình. Thanh ghi này có 4 bit cho 2 bộ đếm và 4 bit dùng cho hai tín hiệu yêu cầu ngắt bên ngoài.1) sẽ được cho phép đếm khi đầu vào = 1 và TRn = 1. Bit này quy định bộ đếm sẽ đếm xung đồng hồ của 8051 (C/T = 0 ) như là bộ định thời hoặc đếm xung bên ngoài (C/T =1) như là bộ đếm. Nếu GATE = 0 bộ đếm n sẽ được cho phép đếm khi TRn = 1.TCON : Thanh ghi điều khiển bộ đếm/bộ định thời.2: Các bit của thanh ghi TCON TF1 : Cờ tràn của bộ đếm 1. .TMOD : Thanh ghi chế độ của bộ đếm/bộ định thời: thanh ghi này bao gồm 2 nhóm 4 bit. TRn là bit của thanh ghi TCON. . Lúc này bộ đếm chỉ được điều khiển bằng phần mềm. Hình 4.2. Các bộ đếm được khởi động hoặc dừng bằng cách đặt hoặc xoá bit TR0 hoăc TR1 trong thanh ghi TCON.1. mỗi nhóm cho 1 bộ đếm như được mô tả trên hình 4.

Tại chế độ này bộ đếm/bộ định thời là bộ đếm 13 bit như trên hình 4. Cờ được đặt khi có tín hiệu yêu cầu ngắt và được tự động xoá khi ngắt được phục vụ xong. Tín hiệu xung đồng hồ được cho phép vào bộ đếm khi TRn = 1 (bộ đếm được cho phép) đồng thời GATE = 0 hoặc = 1. M1 = 0). M1 = 1). Bộ đếm đếm lên 1 với mỗi xung đồng hồ đến. TF0. Nếu IT1 = 1 thì yêu cầu ngắt sẽ được nhận tại cạnh lên của tín hiệu yêu cầu ngắt. IE0. Bộ đếm 1 có thể dùng tạo tần số chuyển đổi cho kênh nối tiếp ở chế độ 1 hoặc chế độ 3. IT0 : Các bit tương tự cho tín hiệu ngắt 4. IT1 : Bit điều khiển chế độ của tín hiệu yêu cầu ngắt. TR0 : Các tín hiệu có chức năng tương tự như trên cho bộ đếm 0. Ở mode 74 . . .3: Mode 0 .3. Mode 1 tương tự như Mode 0. Bit này được đặt bằng lập trình. Nếu IT1 = 0 thì yêu cầu ngắt sẽ được nhận khi tín hiệu yêu cầu ngắt có giá trị 0. .Mode 0: Bộ đếm 13 bit (Khi M0 = M1 = 0). IE1 : Cờ đánh dấu có tín hiệu yêu cầu ngắt đến cổng.2 Các chế độ của bộ đếm/bộ định thời Các bộ đếm/bộ định thời có thể hoạt động trong 4 chế độ xác định bởi các bit M1. khác biệt là ở đây bộ đếm là bộ đếm 16 bit. Bit này có thể dùng như nguồn tạo ngắt.bộ đếm 13 bit dụng cho phép hoặc ngưng hoạt động của bộ đếm.2.3.Mode 2: Bộ đếm 8 bit với giá trị khởi động cho trước (M0 = 0.Mode 1: Bộ đếm 16 bit (M0 = 1. Ta thấy 5 bit của THn và 8 bit của TLn tạo ra một bộ đếm 13 bit. M0 trong thanh ghi TMOD.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC Hình 4. Khi bộ đếm tràn (khi chuyển về trạng thái toàn số 0) thì cờ TFn trong TCON tự động được đặt.

3 Lập trình cho các bộ đếm 1) Khởi động và truy xuất các thanh ghi . Hình 4. 4. Bộ đếm 1 dùng để tạo tốc độ truyền thông cho kênh nối tiếp hoặc dùng cho các ứng dụng không yêu cầu gọi ngắt.2. Sau khi tràn thì TL được nạp bằng giá trị của TH.#00010000B Bit 7: 0 Cho phép đếm bằng set TR1 Bit 6: 0 Bộ đếm làm việc như bộ định thời đếm xung đồng bộ của 8051 Bit 5: 0 Bộ đếm/định thời 1 ở mode 1 (bộ đếm 16 bit) Bit 4: 1 Bộ đếm/định thời 1 ở mode 1 (bộ đếm 16 bit) Bit 3: 0 Cho phép đếm bằng set TR0 Bit 2: 0 Bộ đếm làm việc như bộ định thời đếm xung đồng bộ của 8051 75 . Khi bộ định thời TH0 tràn thì sẽ đặt bit TF1 bằng 1 để gọi yêu cầu ngắt (hình 4. và TF0. GATE. bit TR1 sẽ điều khiển bộ định thời này.bộ đếm 8 bit với giá trị ban đầu . Bộ đếm TH0 hoạt động như bộ định thời.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC 2 thanh ghi TL hoạt động như là một bộ đếm với giá trị khởi động cho trước như trên hình 4. TR0.4: Mode 2 . Ví dụ bằng lệnh sau: MOV TMOD. Việc nạp giá trị TH bằng lệnh của chương trình không ảnh hưởng tức thời đến trạng thái của TL. Bộ đếm TL0 sử dụng các tín hiệu C/T . Tại mode 3 thì bộ đếm 0 chia làm hai bộ đếm riêng biệt TH0 và TL0.Trước hết ta cần nạp từ chế độ vào thanh ghi TMOD. Do bit TR1 đã được sử dụng cho bộ đếm 0 nên để khởi động hoặc ngưng bộ đếm 1 thì ta buộc phải đặt hoặc huỷ mode 3.4.Mode 3: Chế độ riêng biệt cho các bộ đếm.5).3. Tại các chế độ trước các bộ đếm 0 và 1 có cùng chức năng.

Ví dụ: CLR TR1 . Thao tác này cho phép ta thay đổi số lượng đếm được cho đến khi tạo ngắt. Ví dụ: MOV TL1.Nạp giá trị ban đầu cho thanh ghi TLn/THn Các bộ đếm đếm lên và đặt cờ tràn khi lại đạt đến giá trị 0. Ví dụ: CLR TF0 .#0FFH Lúc này bộ đếm 1 được nạp giá trị ban đầu là FF9CH.#9CH MOV TH1.Xoá cờ tràn bằng xoá bit TFn. Giá trị khởi đầu mặc định là 0 hoặc cũng có thể cho bộ đếm khởi đầu bằng giá trị khác bằng cách nạp một số và thanh ghi THn hoặc TLn. Ta có thể xử lý bằng cách 76 .TL1 Chú ý: Việc đọc hai byte kế tiếp nhau có thể gây ra sai số khi đọc nếu giữa hai lệnh trên bộ đếm đếm tràn từ byte thấp (TL) lên byte cao (TH).TH1 MOV B. Để biết nội dung của bộ đếm ta có thể đọc từ thanh ghi THn và TLn bằng nhóm lệnh: MOV A.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC Hình 4. .Đọc trạng thái bộ đếm.Dừng bộ định thời bằng cách xoá bit TRn.5: Bộ đếm/bộ định thời ở mode 3 Bit 1: 0 Bộ đếm/định thời 0 ở mode 0 (bộ đếm 13 bit) Bit 0: 0 Bộ đếm/định thời 0 ở mode 0 (bộ đếm 13 bit) .

TH0 chứa -50 SETB TR0 .0 . Sóng vuông này có chu kỳ 100µs.0 bằng cách sử dụng bộ định thời 0. như vậy bộ định thời phải đếm đến 500 rồi đổi trạng thái cổng P1.khởi đầu bộ đếm WAIT: 77 . như vậy một chu kỳ máy có độ dài là 1µs.0 và lặp lại. trong đó thời gian ở mức cao và thời gian ở mức thấp cùng là 50µs. Như vậy bộ định thời cần đếm 50 rồi đổi trạng thái cổng P1. rồi byte thấp.#0FEH .lặp lại END Ví dụ 4.chế độ định thời 16 bit LOOP: MOV TH0.đổi trạng thái P1. ORG 0030H MOV TMOD.0 SJMP LOOP .#0CH .LOOP .4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC dừng bộ đếm trước khi đọc nội dung bộ đếm.0 rồi lập lại.xoá cờ tràn CPL P1.#-50 . sau đó lại byte cao và kiểm tra 2 kết quả byte cao đọc được xem có khác nhau không.#01H . Hoặc kiểm tra việc đọc bằng cách đọc byte cao.chế độ tự nạp lại 8 bit MOV TH0. 2) Ví dụ lập trình cho bộ đếm Ví dụ 4. ORG 0030H MOV TMOD. Vì số 500 lớn hơn 256 nên ta phải dùng 2 bộ đếm TH0 và TL0 ở mode 1 đếm đến 16 bit.4 Viết chương trình tạo sóng vuông 1 Khz trên chân P1.byte cao của -500 MOV TL0.3 Viết chương trình tạo sóng vuông 10 Khz trên chân P1.chạy vòng cho đến khi cờ tràn CLR TF0 .byte thấp của –500 SETB TR0 .#02H .khởi động bộ đếm LOOP: JNB TF0. Giả sử 8051 dùng thạch anh cho mạch giao động là 12 Mz.0 bằng cách sử dụng bộ định thời 0. Sóng vuông này có chu kỳ 1000µs.

0 SJMP LOOP .xoá cờ tràn CPL P1. .đổi trạng thái P1.6: Các phương pháp lập lịch thời gian thực .4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC JNB TF0.lặp lại END 4.chờ tràn CLR TR0 .WAIT . . thời gian thực hiện.Lập lịch offline/tĩnh: Việc lập lịch được thực hiện dựa trên các hiểu biết hoặc dự báo về các sự kiện tác vụ thực hiện trong hệ thống (thời điểm xuất hiện. vì vậy thời gian đáp ứng cho các sự kiện khác có thể lâu.Lập lịch preemptive: Phương pháp này khắc phục nhược điểm của Lập lịch nonpreemptive khi thời gian thực thi các tác vụ lâu. thời hạn. Hình 4.6. . ) và được quyết định tại thời điểm thiết kế và được áp dụng cố định trong suốt quá trình hoạt động của hệ thống.Lập lịch non-preemptive: Phương pháp này đảm bảo các tác vụ được thực hiện hoàn toàn mỗi khi thực thi. 78 . .3 Kỹ thuật lập lịch (Scheduling) 4.0 .ngưng bộ định thời CLR TF0 .3.1 Các phương pháp lập lịch phổ biến Người ta chia phương pháp lập lịch thời gian thực như hình 4.

P3. thực thi các tiến trình theo thứ tự của trường hợp (b) tốt hơn trường hợp (a). P3. Cơ chế lập lịch này thuộc loại không ngắt được và có ưu điểm là dễ dàng thực thi.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC . P2. 4. Như vậy. 3. Sơ đồ lập lịch là không xác định trước và thay đổi động theo quá trình thực hiện. Như vậy. Thời gian đợi trung bình là: (0+24+27)/3=17. P3 như hình 4. Ví dụ 4. • Shortest Job First (SJF ): 79 .3. của P2 là 24 và của P3 là 27. thời gian đợi của P1 là 6.Lập lịch Mono hay Multi-processor: Nhiệm vụ lập lịch và thực thi được đảm nhiệm bởi một (mono) hoặc nhiều bộ xử lý (multi). Thời gian đợi trung bình là: (6+0+3)/3=3. Trường hợp (b): Giả sử các tiến trình được thực thi theo thứ tự sau: P2.Lập lịch tập trung hoặc phân tán: Việc lập lịch được thực hiện áp dụng cho các tác vụ thực thi bởi một (tập trung) hoặc nhiều bộ xử lý (phân tán). .Lập lịch online/động: Bộ xử lý thực hiện việc lập lịch trong quá trình thực thi dựa trên cơ sở các thông tin hoạt động hiện hành của hệ thống. P1 như hình 4. . Hơn nữa do việc xử lý không ngắt được nên có hiện tượng chiếm hữu độc quyền bộ xử lý trong thời gian dài và có thể gây ra sự trễ bất thường trong quá trình thực hiện các tác vụ chờ đợi khác.7. P2. Trường hợp (a): Giả sử các tiến trình được thực thi theo thứ tự sau: P1. Tuy nhiên nó không phù hợp cho các hệ thống hỗ trợ nhiều người sử dụng vì có một sự biến đổi lớn về thời gian trung bình mà một quá trình hay tác vụ phải chờ đợi để được xử lý.5 Có 3 tiến trình P1.7. của P2 là 0 và của P3 là 3.2 Các giải thuật lập lịch • First-Come-First-Served (FCFS) Scheduling : Trong cơ chế lập lịch đến trước phục vụ trước thì các quá trình được xử lý theo thứ tự mà nó xuất hiện yêu cầu và cho đến khi hoàn thành. thời gian đợi của P1 là 0. Như vậy. Tùy thuộc vào độ phức tạp về thuật toán cần xử lý mà khi lập lịch người ta quyết định phải sử dụng phương pháp lập lịch Mono hay Multi. Tính thời gian đợi trung bình. Thời gian thực thi tương ứng của 3 tiến trình này là: 24. 3.

P3 và P4. Phương pháp này dựa trên một số giả thiết sau: 80 . Giải thuật non preemptive là giải thuật mà khi CPU thực thi tiến trình này thì nó không bị giành quyền thực thi cho đến khi nó thực hiện xong tiến trình đó. Đối với SJF (preemptive ).8. Đối với SJF (non preemptive ). Vấn đề chính gặp phải trong cơ chế lập lịch này là không biết trước được thời gian thực thi của các tác vụ tham gia trong hệ thống và thường phải áp dụng cơ chế tiên đoán và đánh giá dựa vào kinh nghiệm về các tác vụ thực thi trong hệ thống. Thời gian xuất hiện và thời gian thực thi tương ứng của 4 tiến trình này như hình 4. thời gian đợi trung bình là: (9 + 1 + 0 +2)/4 = 3.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC Hình 4.6 Có 4 tiến trình P1. P2. tác vụ nào có thời gian ngắn nhất sẽ có quyền ưu tiên cao nhất và sẽ được phục vụ trước. nó áp dụng cho các tác vụ hay quá trình độc lập. Tính thời gian đợi trung bình. Giải thuật preemptive là giải thuật nếu một tiến trình mới đến có thời gian thực thi ít hơn so với thời gian còn lại của tiến trình đang thực hiện thì sẽ gianh được quyền thực thi.7: Ví dụ về giải thuật FCFS Trong cơ chế lập lịch này. thời gian đợi trung bình là: [0 +(8-2)+(7-4) +(12-5)] /4 = 4. Cơ chế lập lịch này chia làm 2 loại: giành quyền thực thi (preemptive ) và không giành quyền thực thi (non preemptive ). Giải thuật này còn được gọi là: Shortest-Remaining-Time-First (SRTF). Ví dụ 4. • Rate monotonic (RM): Phương pháp lập lịch RM là thuật toán được biết tới nhiều nhất hiện nay.

Theo nguyên lý này. 81 .8: Ví dụ về giải thuật SJF 1) Tất cả các tác vụ tham gia hệ thống phải có thời hạn kiểu chu kỳ. Tác vụ có thời hạn gần nhất sẽ có mức ưu tiên cao nhất và các tác vụ có thời hạn xa nhất sẽ có mức ưu tiên thấp nhất. EDF có thể được áp dụng cho các tác vụ chu kỳ và có thể mở rộng để đáp ứng cho các trường hợp các thời hạn thay đổi khác nhau theo chu kỳ. với các tác vụ có chu kỳ không đổi thì RM sẽ là phương pháp lập lịch cho phép ngắt và có mức ưu tiên cố định. Hơn nữa mức ưu tiên cho mỗi tác vụ trong quá trình hoạt động mềm dẻo nên chu kỳ của tác vụ có thể thay đổi bất kỳ lúc nào theo thời gian. Thuật toán RM được thực thi theo nguyên lý gán mức ưu tiên cho các tác vụ dựa trên chu kỳ của chúng. Tác vụ nào có chu kỳ nhỏ thì sẽ có được mức ưu tiên cao.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC Hình 4. Ưu điểm nổi bật của phương pháp này là có thể lập lịch đáp ứng được 100% cho tất cả các tác vụ. • Earliest-deadline-first (EDF): Thuật toán lập lịch theo phương pháp này sử dụng thời hạn của tác vụ như điều kiện ưu tiên để xử lý điều phối hoạt động. 2) Tất cả các tác vụ độc lập với nhau 3) Thời gian thực hiện các tác vụ biết trước và không đổi 4) Thời gian chuyển đổi hiện trường là rất nhỏ và có thể bỏ qua.

9. Khoảng thời gian phục vụ cho mỗi tác vụ trong quá trình là sự thỏa hiệp giữa thời gian thực hiện các tác vụ và thời gian thực hiện một chu trình. trong đó thời gian lượng tử = 4. Hình 4. Mỗi quá trình được thực thi trong một đơn vị thời gian nhỏ của CPU (thời gian lượng tử).66.9: Ví dụ về giải thuật Round Robin 82 .7 Xem hình 4. • Round Robin : Đây là cơ chế lập lịch phân bổ đều dặn. Có thể chọn khoảng thời gian đó rất nhỏ và đôi lúc ta không nhận ra rằng đang có sự phân bổ thực hiện trong hệ thống. Ví dụ 4. Tuy nhiên. Tính thời gian đợi trung bình.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC • Minimum Laxity first (MLF): Cơ chế lập lịch này sẽ ưu tiên tác vụ nào có ít thời gian còn lại nhất để thực hiện trước khi nó kết thúc để đảm bảo yêu cầu thực thi đúng. Sau thời gian này trôi qua. nếu thời gian đó quá nhỏ thì nó có thể làm mất tính hiệu quả thực hiện của toàn bộ hệ thống vì cần nhiêu thời gian trong việc chuyển đổi hiện trường cho mỗi tác vụ sau mỗi chu trình thực hiện. cho phép giành quyền thực thi và đơn giản. thường là 10-100 phần nghìn giây. tiến trình được ưu tiên và thêm vào cuối của hàng đợi sẵn sàng. Ta được thời gian đợi trung bình là: [(30-24)+4+7]/3 = 17/3 =5. Mỗi một tác vụ xử lý hay phục vụ trong khoảng thời gian nhất định và được lặp lại theo một chu trình xuyên suốt quá trình các tác vụ tham gia hệ thống. Đây được xem là cơ chế lập lịch gán quyền ưu tiên động và dễ dàng đạt được sự tối ưu về hiệu suất thực hiện và sự công bằng trong hệ thống.

CPU sẽ thực thi chương trình phục vụ ngắt bắt đầu ở địa chỉ ngắt. mỗi loại ngắt ứng với một địa chỉ trong bảng địa chỉ ngắt hay còn gọi là vector ngắt chứa con trỏ (Pointer) tới chương trình xử lý của loại ngắt đó. như hình 4. Thông thường. Người sử dụng cũng có thể xây dựng môt chương trình cơ sở như các chương trình xử lý ngắt.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC 4. Sau đó. Bảng này nằm ở vùng thấp của RAM (ví dụ 100 bytes đầu tiên).10: Quá trình xử lý ngắt Trong các quá trình ngắt. Khi thực hiện lệnh gọi ngắt.1 Tổng quan về ngắt Ngắt (interrupt) là quá trình dừng chương trình chính đang chạy để ưu tiên thực hiện một chương trình khác. Một chương trình có thể gọi chương trình con loại này mà không cần biết địa chỉ của nó.4. Ngắt mềm là ngắt được gọi bằng một lệnh trong chương trình ngôn ngữ máy hoặc từ lời gọi hệ thống (System Call hay Monitor Call).4 Xử lý ngắt 4. ta phân biệt thành 2 loại: ngắt cứng và ngắt mềm. chương trình này được gọi là chương trình phục vụ ngắt (ISR – Interrupt Service Routine). các chương trình khác có thể gọi ngắt ra để sử dụng. Ngắt cứng là ngắt do tín hiệu yêu ngắt đến từ các thiết bị ngoài đưa đến chân ngắt của CPU.10. Lệnh đặc biệt này (ví dụ có tên INT hoặc SysCall) là cơ chế để tiến trình người dùng yêu cầu một dịch vụ của hệ điều hành (ví dụ yêu cầu thực hiện lệnh I/O). Hình 4. Cơ chế xử lý ngắt phải có nhiệm vụ lưu lại hiện trường bao gồm địa chỉ lệnh bị ngắt để sau đó có thể quay lại và 83 .

3. Vùng nhớ dùng để lưu hiện trường gọi Ngăn xếp hệ thống (System Stack) với nguyên tắc làm việc LIFO(Last In First Out). . Các hàm ngắt trong hầu hết các môi trường phải tuân theo hai quy tắc (điều này không áp dụng cho mã của tác vụ): Quy tắc 1: Một hàm ngắt không được gọi bất kỳ hàm RTOS nào mà những hàm đó có thể khóa lời gọi.Hàm ngắt có thể không hoàn thành sau một thời gian dài.Ngoài ra.Nếu thủ tục ngắt phá vỡ quy tắc này thì RTOS có thể chuyển việc điều khiển từ hàm ngắt tới chạy một tác vụ khác. Quy tắc 2: Một hàm ngắt không nên gọi bất kỳ hàm RTOS nào có thể gây ra cho RTOS chuyển tới chạy các tác vụ. Ví dụ về xử lý ngắt trong môi trường hệ điều hành thời gian thực như hình 4. .Yêu cầu ngắt ngoài đến chân INT0 và INT1 có thể gọi ngắt bằng mức thấp (logic 0) hoặc bằng cạnh xuống (khi chuyển từ 1 về 0). . không đọc từ các hàng đợi hoặc mailbox khi các hàng đợi và mailbox rỗng.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC nội dung của các thanh ghi trạng thái.4. . thậm chí tác vụ này có quyền ưu tiên cao nhất. trừ khi RTOS biết đó là một hàm ngắt và không là một tác vụ trong lúc đang thực hiện hàm ngắt. Các bit này cũng được tự động xoá khi 8051 bắt đầu chương trình con phục vụ ngắt.11. 4.4. 4. hầu hết các hàm ngắt phải chạy để hoàn thành việc thiết lập lại phần cứng để sẵn sàng cho ngắt tiếp theo.1 Tổng quan về ngắt của 8051 8051 có 5 nguồn yêu cầu ngắt để giao tiếp với môi trường bên ngoài: .Do đó thủ tục ngắt không sử dụng đèn báo. . .2 Xử lý ngắt trong môi trường RTOS Hầu hết các RTOS cung cấp các hàm để thực hiện việc xử lý ngắt.4. 84 . không đợi các sự kiện. vì vậy khoá tất cả các ngắt có mức ưu tiên thấp hơn và có thể khóa luôn tất cả các ngắt khác. .Nếu hàm ngắt gọi một hàm RTOS và bị khóa thì tác vụ đang chạy khi ngắt xảy ra sẽ bị khóa mãi mãi.3 Ví dụ ngắt của 8051 4. Khi có ngắt ngoài đến thì các bit IE0 hoặc IE1 được tự động set.

.Mỗi ngắt đều có thể được cho phép hoặc bị cấm một cách riêng biệt bằng cách đặt hoặc xoá bit tương ứng trong thanh ghi IE (hình 4.Yêu cầu ngắt của các bộ đếm 0 và 1 sẽ set các bit TF0.12: Thanh ghi cho phép ngắt EI 85 . Các bit TFn được tự động xoá khi chương trình con phục vụ ngắt bắt đầu. . TF1. Các bit này không bị xoá tự động khi chương trình con phục vụ ngắt bắt đầu. Như vậy các ngắt có thể được gọi bằng phần cứng hoặc gọi bằng chương trình. Trong chương trình con này người lập trình phải xác định cụ thể bit TI hay bit RI gọi ngắt.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC Hình 4.11: Ví dụ về xử lý ngắt trong môi trường hệ điều hành thời gian thực . Hình 4.Yêu cầu ngắt từ kênh nối tiếp đến khi một trong hai bit RI (nhận) hoặc TI (phát) bằng 1. . xác định ưu tiên trong trường hợp cả hai đều gọi ngắt rồi mới được xoá. Các bit này được set khi xảy ra hiện tượng tràn bộ đếm (ví dụ từ FFFFH đến 0000H với bộ đếm 16 bit).12).Tất cả các bit yêu cầu ngắt nói trên đều có thể được xoá hoặc được set bằng chương trình.

Các bit của thanh ghi IP có ý nghĩa như sau: Bit PS: ưu tiên mức cao của kênh nối tiếp Bit PT1 và PT0: ưu tiên mức cao của các bộ đếm Bit PX1 và PX0: ưu tiên mức cao của các yêu cầu ngắt bên ngoài và Ví dụ 4. Thanh ghi ngắt IP có cấu trúc các bit được mô tả trên hình 4. Nếu EA = 1 thì tất cả các ngắt được cho phép. Chỉ có giá trị khi EA = 1 Bit EX0 và EX1 – cho phép hoặc cấm các yêu cầu ngắt từ bên ngoài INT0 và INT1. Quy định ưu tiên được mô tả trên hình 4. Bit ITn trong thanh ghi TCON quyết định rằng tín hiệu sẽ gọi ngắt bằng mức logic 0 hoặc bằng cạnh xuống. Bit EA: Bit cho phép tất cả (Enable all). Yêu cầu ngắt ngoài INT0 (cờ IE0) 2. Ngắt của bộ đếm 0 (cờ TF0) 3. ET0.14. ET1.4.7 Với lệnh MOV IP. Trong một mức (thấp hoặc cao) thì thứ tự ưu tiên cũng được xác định theo thứ tự sau: 1. Chỉ có giá trị khi EA = 1 Bit ET0 và ET1 – cho phép (1) hoặc cấm yêu cầu ngắt của các bộ đếm 0 và 1. 8051 có hai mức ưu tiên được xác định không đổi: mức ưu tiên cao và mức thấp. Bit ES – cho phép (1) hoặc cấm (0) yêu cầu gọi ngắt từ kênh nối tiếp. EX1. 4. Ngắt của kênh nối tiếp (cờ RI hoặc cờ TI) Nếu người sử dụng có nhu cầu đặt một số ngắt nào đó lên mức ưu tiên cao nhất thì cần phải ghi bit tương ứng vào thanh ghi IP – thanh ghi ưu tiên ngắt. Yêu cầu ngắt ngoài INT1 (cờ IE1) 4.13. EX0. Chỉ có giá trị khi EA = 1. #00011000B 86 .4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC IE .3. Ngắt của bộ đếm 1 (cờ TF1) 5.Thanh ghi cho phép ngắt có 5 bit ứng với 5 nguồn gọi ngắt và 1 bit cho phép hoặc cấm tất cả các ngắt. Nếu EA = 0 thì cấm tất cả các ngắt.2 Sự ưu tiên của ngắt Vấn đề ưu tiên ngắt cần được giải quyết cụ thể khi xảy ra trường hợp có nhiều yêu cầu ngắt đến cùng một lúc. nhưng mỗi ngắt cụ thể được cho phép bằng các bit ES.

3 Các vector ngắt Mỗi ngắt của 8051 gọi một chương trình con phục vụ ngắt tại địa chỉ được quy định cụ thể theo bảng như trong hình 4. 4. 4.15.4. Thứ tự ưu tiên ngắt lúc này là: ngắt bộ đếm 1.8 Tạo ngắt bởi một bộ đếm 87 .4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC Hình 4. ngắt kênh nối tiếp. Chú ý rằng giữa hai địa chỉ ở bảng trên chỉ là 8 ngăn nhớ.4 Các ví dụ sử dụng ngắt Ví dụ 4. ngắt ngoài INT0.13: Quy định ưu tiên các ngắt của 8051 Lệnh này đặt ngắt kênh nối tiếp.4. Với các chương trình có độ dài lớn hơn thì ta cần đặt vào các địa chỉ trên lệnh nhảy đến địa chỉ khác có vùng bộ nhớ lớn hơn bằng lệnh LJMP.3. ngắt ngoài INT1. Như vậy chỉ các chương trình con phục vụ ngắt ngắn mới có thể đặt vào đây. ngắt bộ đếm 1 lên mức cao.3. ngắt bộ đếm 0.

nhảy qua chương trình phục vụ ngắt ORG 000BH .khởi đầu LJMP MAIN .trở về chương trình chính ORG 0030H .0 Ví dụ này đã được giải quyết ở phần Timer với kỹ thuật đợi.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC Hình 4.đảo cổng P1.địa chỉ ngoài các vector ngắt MAIN: .TH0 chứa -50 SETB TR0 .#02H .cho phép ngắt bộ đếm 1 88 .0 .14: Thanh ghi ưu tiên ngắt PI Hình 4.15: Bảng các vector ngắt Viết chương trình sử dụng bộ định thời 0 và các ngắt để tạo ra sóng vuông 10 KHz tại chân P1. tại đây ta sẽ sử dụng kỹ thuật ngắt.chế độ tự nạp lại 8 bit MOV TH0. ORG 0000H .#82H . Ngắt do bộ định thời 1 xảy ra khi có tràn.bắt đầu chương trình con phục vụ ngắt T0 CPL P1.điểm nhập chương trình con phục vụ ngắt T0 T0ISR: . chương trình chính MOV TMOD.0 RETI .khởi động bộ định thời 1 MOV IE.#-50 .

Bộ định thời 1 hoạt động ớ chế độ 1.mode 1 . cho phép ngắt bộ định thời 1 89 .16: Yêu cầu của ví dụ 2 Bộ định thời 0 hoạt động ở chế độ 2 được sử dụng để tạo ra đang sóng 7 KHZ trên chân P1. khởi động bộ định thời 0 SETB TF1 .4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC SJMP $ .địa chỉ vector của bộ định thời 0 LJMP T0ISR ORG 001BH . ORG 0000H LJMP MAIN ORG 000BH . #-71 .9 Tạo ngắt bởi hai bộ đếm Viết một chương trình sử dụng các ngắt để tạo đồng thời hai sóng có tần số là 7 KHz và 500Hz ở các chân P1. bộ định thời 0 .6. không làm gì END Ví dụ 4. bộ định thời 1 . như trên hình 4. 7 KHz sử dụng bộ định thời 0 SETB TR0 . chế độ định thời 16-bit.7 và P1. #12H . Hình 4.16.mode 2 MOV TH0.7.6. của 8051 hoạt động ở tần số 12 MHZ.địa chỉ vector của bộ định thời 1 LJMP T1ISR ORG 0030H MAIN: MOV TMOD. tạo ra dạng sóng 500 Hz trên chân P1.

#-1000 .6 RETI END Câu hỏi ôn tập 4.1 Nếu 8051 hoạt động với Xtal 24 MHz thì tần số lớn nhất của bộ đếm làm việc ở chế độ định thời là bao nhiêu? Tần số lớn nhất của tín hiệu đồng hồ bên ngoài mà bộ đếm đếm được là bao nhiêu? 4. thời gian mức cao 1 ms MOV TL1.6 Một bộ cảm biến quang học tạo ra một xung có cạnh lên và cạnh xuống khi một người đi vào cửa hàng. 90 . xuất số lượng người đếm được bằng số BCD ra hai cổng P0.5 với tần số 100 kHz mà không dùng bộ định thời.1 với chu kỳ trách nhiệm (duty cycle) là 30%. MOV TH1. #8AH .7 RETI T1ISR: CLR TR1 .4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC MOV IE.3 Lệnh tiếp theo có tác dụng gì: SETB 8EH 4. Giả sử xung đồng bộ của 8051 là 12 MHz.2. 4.5 Viết chương trình sử dụng bộ định thời 0 để xuất xung vuông 12kHz ra chân P1. Tín hiệu này được đưa vào 8051 để đếm số người. thời gian mức thấp 1 ms SETB TR1 CPL P1. đồng thời bật đèn đỏ nối đến chân P2.2 Viết chương trình tạo ra xung vuông tại chân P1. cho phép ngắt do các bộ định thời SJMP $’ T0ISR: CPL P1. Khi số lượng đếm bằng 10000 thì bắt đầu đến lại từ đầu.#11010101B 4.7 Viết chương trình xuất ra xung 500 Hz tại chân P0. #-1000 . P1 (4 chữ số). 4.4 Lệnh tiếp theo có tác dụng gì: MOV TMOD. Hãy lập trình đếm số người vào. 4.1.

Task có mưc ưu tiên cao hơn nếu gởi yêu cầu thực hiện trong khi cpu đang thực hiên tác có mức ưu tiên thấp hơn thì task có mức ưu tiên cao hơn sẽ được xử lý. Cả 3 đều đúng 4. Round-robin scheduling c.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC 4. Các task được thực hiện đồng thời d. b. Mỗi task có thời gian xử lý của cpu khác nhau tùy vào giá trị ưu tiên c. các mức ưu tiên này không thay đổi. Task có mức ưu tiên cao nhất sẽ được thực thi trước b. lưu các ký tự trên vào bộ nhớ dữ liệu bên trong bắt đầu từ địa chỉ 60H. Kết hợp cả 2 giải thuật d. 4. Mỗi một task được gán một mức ưu tiên.11 Trong các hệ thống RTOS a. Cả 3 đều sai 4. 4. Mỗi task có thời gian xử lý của CPU cố định.10 Giải thuật được sử dụng trong hệ thống thời gian thực là a. Preemtive priority-based scheduling b.9 Trong giải thuật round-robin a.13 Tạo ra tần số 7 kHz với 70% mức điện áp cao và 30% mức điện áp thấp trong một chu kỳ.7 bằng ngắt. 91 . Mỗi một task được gán một mức ưu tiên. Task có mức ưu tiên cao hơn không rơi vào trạng thái blocked d. Giải thuật khác 4.8 Giải thuật lập lịch dựa vào chế độ ưu tiên a. Cả 3 đều sai 4.14 Viết chương trình nhận 10 ký tự tại kênh nối tiếp sử dụng ngắt.12 Tạo ra xung vuông 1 kHz ở chân P1. c. b. Cả 2 đều đúng d. các mức ưu tiên này có thể thay đổi bằng các sử dụng các lệnh của kernel c.

Nếu không có báo động thì 8051 cho đèn vàng nhấp nháy với tần số 0.15 Cảm biến báo cháy báo động bằng mức điện áp 0. 92 . Tín hiệu từ cảm biến đi đến chân yêu cầu ngắt ngoài 0.6.4 KỸ THUẬT LẬP TRÌNH THỜI GIAN THỰC 4. Hãy viết chương trình để 8051 tạo ra tín hiệu báo động đèn đỏ ở chân P1.7 nhấp nháy với tần số 1 Hz và sáng đèn vàng đều ở chân P1.1 Hz.

2 Các vấn đề về thiết kế hệ thống thời gian thực Thiết kế hệ thống thời gian thực là một nhiệm vụ đầy thử thách. Ví dụ.5 Chương 5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC 5. Một hệ thống thời gian thực điển hình có thể tương tác với hàng ngàn các thực thể này cùng một lúc. Hệ thống này kết nối mỗi cuộc gọi khác nhau. Hầu hết các khó khăn đều xuất phát từ thực tế do hệ thống thời gian thực tương tác với các thực thể thế giới thực. một hệ thống chuyển mạch điện thoại thường xuyên xử lý các cuộc gọi từ hàng chục ngàn thuê bao. Trong phần này. trình tự xuất hiện của các sự kiện trong cuộc gọi có thể khác nhau rất nhiều. Những tương tác này có thể khá phức tạp. Ngoài ra. chúng ta sẽ thảo luận về những vấn đề liên quan đến việc thiết kế hệ thống thời gian thực như sau: • Đáp ứng thời gian thực • Phục hồi khi bị lỗi 93 .1 Giới thiệu chương • Giới thiệu các vấn đề về thiết kế hệ thống thời gian thực • Giới thiệu một số hệ thống thời gian thực tiêu biểu 5.

Việc thực thi một công việc có thành công hay không phụ thuộc vào các hoạt động chính xác và kịp thời của hệ thống. do đó gây ra độ chậm trễ khác nhau trong việc thông tin liên lạc. Hệ thống này phải đáp ứng các yêu cầu cho tất cả các cuộc gọi được thiết lập tại bất kỳ thời gian nào. Các vấn đề chính được yêu cầu là: • Kiến trúc phù hợp? Nếu việc thông tin liên lạc có liên quan đến quá nhiều nút. một hệ thống chuyển mạch điện thoại nhận số quay pulse đến từ hàng ngàn thuê bao trong một giới hạn định trước của mức 1 giây. Vì vậy. • Tốc độ kết nối có phù hợp? Nói chung. tốc độ kết nối. tải của một liên kết lớn hơn 40-50% là một sẽ làm cho hệ thống kém đi. Tần suất sử dụng của kết nối cao sẽ gây ra các hàng đợi được tạo ra trên các nút khác nhau. • Các thành phần xử lý đủ mạnh? 94 .. v. Điều này liên quan đến việc quyết định sự kết nối giữa các bộ vi xử lý. nó có khả năng làm cho hệ thống không thể đáp ứng yêu cầu thời gian thực do tắc nghẽn. một kiến trúc đơn giản có một sự lựa chọn tốt hơn để đáp ứng yêu cầu thời gian thực. Trong giai đoạn thiết kế kiến trúc hệ thống. cơ chế phát hiện trạng thái đóng nhả của rơle và việc trao đổi thông tin của phần mềm phải làm việc trong giới hạn của thời gian dự tính trước. tốc độ xử lý.2. các kỹ sư phần cứng và phần mềm phải làm việc với nhau để lựa chọn kiến trúc hệ thống hợp lý để đáp ứng yêu cầu thời gian thực này. Để đáp ứng yêu cầu này. Ví dụ.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC • Làm việc với kiến trúc phân tán • Truyền thông bất đồng bộ • Tình trạng đua tranh và định thời 5. Thiết kế phần cứng và phần mềm trong hệ thống là để đáp ứng yêu cầu thời gian thực.v. Các kỹ sư thiết kế phải tập trung rất sớm vào các yêu cầu đáp ứng thời gian thực.1 Đáp ứng thời gian thực Hệ thống thời gian thực có khả năng đáp ứng các tương tác bên ngoài trong một khoảng thời gian định trước.

Thực tế có thể lập lịch cho 3-5 tác vụ trong thời gian quy định. ta phải áp dụng phương thức kiểm tra đề phòng để phục hồi từ các điều kiện lỗi. thông số lập lịch và độ trễ ngắt cần được xác nhận. một số các điều kiện lỗi phần mềm có thể dẫn đến một tác vụ tạo ra một ngoại lệ cho vi xử lý. Điều này có thể gây ra các tác vụ ưu tiên thấp không được thực thi.Độ trễ ngắt đề cập đến độ trễ mà hệ điều hành có thể xử lý ngắt và lập lịch các tác vụ để đáp ứng ngắt. Thiết kế tác vụ sao cho có khả năng bảo vệ chống lại các điều kiện gây lỗi.2. Có các loại lỗi: a) Lỗi phần mềm trong một tác vụ: Không giống như các ứng dụng máy tính để bàn. . Vì vậy tốt nhất giữ cho tần suất sử dụng CPU lúc cao điểm dưới 50%. đôi khi nó có thể chạy lại tác vụ ở trạng thái được lưu trước đó. Vì vậy. nó có thể làm cho các tác vụ có mức ưu tiên cao trong hệ thống sẽ loại bỏ các tác vụ ưu tiên thấp của bất kỳ thời gian của CPU. Ngoài ra.Thông số lập lịch liên quan đến khả năng dự báo về thời gian lập lịch tác vụ. Điều này rất quan trọng trong một hệ thống thời gian thực bởi vì chuỗi các sự kiện có thể dẫn đến nhiều tình trạng khác nhau.2 Phục hồi khi bị lỗi Hệ thống thời gian thực phải hoạt động tin cậy ngay cả trong trường hợp bị lỗi. Những lỗi này có thể xuất phát từ nội bộ hoặc từ bên ngoài. một hệ thống điện thoại chuyển mạch được dự kiến để nhận số quay pulse trong ít hơn 500 ms. các ứng dụng thời gian thực không có sự thoát ra một hộp thoại một cách dễ dàng hoặc thoát ra trạng thái lỗi khi phát hiện bị lỗi. Ví dụ. Trong những trường hợp như vậy.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC Một CPU có tần suất sử dụng quá cao sẽ dẫn đến hành vi thời gian thực không thể đoán trước. • Hệ điều hành phù hợp? Thiết lập mức ưu tiên cao cho tác vụ có liên quan đến xử lý các sự kiện quan trọng theo thời gian thực. Hầu hết các hệ điều hành dễ dàng đáp ứng được những con số này cũng như đáp ứng được độ trễ quay số trung bình. Ngoài ra. 1) Lỗi nội bộ: Lỗi nội bộ có thể là do phần cứng và phần mềm hệ thống bị lỗi. Chúng ta có thể không kiểm tra được tất cả các trường hợp trong môi trường phòng thí nghiệm. Hãy xem xét lập lịch ưu tiên nếu yêu cầu thời gian thực rất nghiêm ngặt. 5. . Khi chọn hệ điều hành. 95 . Một hệ điều hành thời gian thực sẽ có độ trễ ngắt thấp hơn nhiều.

do đó thiết kế các phần mềm để xử lý lỗi độc lập của bất kỳ nút nào. d) Lỗi kết nối: Hầu hết các thông tin liên lạc trong các hệ thống thời gian thực diễn ra ở kết nối giữa các nút xử lý khác nhau trong hệ thống. Lấy ví dụ. Các loại lỗi có thể xảy ra trong môi trường là: a) Hành vi của các thực thể bên ngoài không hợp lệ: Khi một hệ thống thời gian thực tương tác với các thực thể bên ngoài. hệ thống sẽ suy xét để giải quyết bất kỳ sự mâu thuẫn. Nó không phải xử lý cho toàn bộ hệ thống khi có lỗi của một nút duy nhất. hệ thống thông báo cho người giám sát về lỗi đó. hệ thống có thể chuyển đổi sang một mạch dự phòng.Phục hồi hiện trường cho các bộ xử lý lỗi: Khi các bộ vi xử lý bị lỗi hoạt động trở lại.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC b) Khởi động lại bộ xử lý: Hầu hết các hệ thống thời gian thực được tạo thành từ nhiều nút. nó sẽ phải khôi phục lại tất cả hiện trường bị mất của mình từ các bộ vi xử lý khác trong hệ thống. Ví dụ về cách một hệ thống 96 . Những bộ vi xử lý sau đó sẽ hủy bỏ bất kỳ sự tương tác với nút của bộ xử lý thất bại. một khi các bộ vi xử lý điều khiển hoạt động trở lại thì nó sẽ khôi phục lại trạng thái của các cổng thuê bao từ các bộ xử lý khác. nó phải có khả năng phục hồi từ lỗi trong môi trường bên ngoài. hệ thống chuyển mạch điện thoại xóa tất cả các cuộc gọi liên quan đến bộ xử lý đó. nếu có mạch dự phòng. bộ vi xử lý khác phải được thông báo về sự thất bại này. nó sẽ xử lý tất cả các điều kiện lỗi có thể xảy ra từ những thực thể này. Ví dụ. nếu một bộ xử lý điều khiển không thành công. Luôn luôn tồn tại sự mâu thuẫn giữa các bộ vi xử lý khác nhau trong hệ thống. hệ thống khởi tạo sự suy xét để kiểm tra chéo cấu trúc dữ liệu trên các bộ vi xử lý điều khiển khác nhau. 2) Lỗi ngoài Hệ thống thời gian thực phải làm việc trong thế giới thực. Hệ thống cách ly liên kết lỗi đó và định tuyến lại các gói dữ liệu để liên kết lỗi không ảnh hưởng đến việc thông tin giữa các nút khác. Hệ thống nên có thể phát hiện và phục hồi từ lỗi mạch. Ngoài ra. . Khi mạch bị lỗi. Vì vậy.Xử lý thất bại của bộ xử lý: Khi một bộ xử lý bị lỗi. Để tránh bất kỳ sự mâu thuẫn nào. Điều này liên quan đến hai hoạt động: . c) Lỗi mạch: Hệ thống thời gian thực được thiết kế để có khả năng phục hồi từ lỗi phần cứng. Trong những trường hợp như vậy.

Trong trường hợp này.Thuê bao gác máy trước khi hoàn tất việc quay số. nó cần phải xử lý tất cả các loại lỗi.3 Thiết kế kiến trúc phân tán Hầu hết các hệ thống thời gian thực liên quan đến việc xử lý trên các nút khác nhau.Thuê bao nhấc máy nhưng không quay số . phần mềm lưu trú trên các trung tâm OMC. Quá trình này diễn ra một cách có thứ bậc cho đến khi hệ thống được khởi tạo hoàn chỉnh . Ví dụ.2. Xác định các giao tiếp là rất phức tạp do xếp đặt byte khác nhau và quy tắc đệm trong bộ xử lý. Do đó có một số thách thức trong thiết kế như sau: 1) Duy trì tính nhất quán: Duy trì tính thống nhất cấu trúc dữ liệu là một thách thức khi nhiều bộ xử lý được tham gia vào việc thực hiện chức năng xử lý. 3) Giao tiếp giữa các bộ xử lý: Một trong những vấn đề đau đầu nhất trong các hệ thống thời gian thực là xác định và duy trì giao tiếp. Trong hầu hết các hệ thống. ví dụ như: . do đó. 4) Phân bố tải: 97 .Trẻ con nghịch điện thoại . Khi nút này kết thúc khởi tạo. Nút trực tiếp kết nối với các OMC sẽ khởi tạo đầu tiên. Xử lý lỗi kết nối ngoài tương tự như xử lý những lỗi của liên kết nội bộ. nhưng nó vẫn sẽ phải hỗ trợ giao tiếp với các điện thoại thế hệ cũ. Duy trì các giao tiếp còn là vấn đề rất phức tạp bởi các vấn đề tương thích. Sự khác biệt chính là lỗi đó có thể gây ra một thời hạn trễ và nó có thể không được định tuyến lại các gói dữ liệu. Bản thân hệ thống phân phối công việc xử lý giữa các bộ vi xử lý này. b) Lỗi kết nối: Một hệ thống thời gian thực được lắp đặt phân tán ở một số địa điểm. 2) Khởi tạo hệ thống: Khởi tạo một hệ thống với nhiều bộ xử lý phức tạp hơn rất nhiều so với một máy tính duy nhất. nếu một hệ thống di động thay đổi giao thức giao tiếp với một điện thoại thế hệ mới. Các liên kết bên ngoài kết nối các nút xử lý này.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC chuyển mạch điện thoại xử lý các cuộc gọi từ các thuê bao. nó sẽ bắt đầu tải phần mềm cho các nút con trực tiếp kết nối với nó. 5. Nhất quán thường được duy trì bằng cách chạy kiểm tra cấu trúc dữ liệu. hệ thống đang tương tác với con người.

Tất cả các bước trong một giao thức được mô tả với các đặc điểm kỹ thuật chính xác thời gian cho từng giai đoạn. 5. Máy trạng thái cung cấp một cơ chế rất linh hoạt để xử lý các tương tác tin nhắn không đồng bộ. Nhưng thường thì các nhà thiết kế phát hiện ra chính chúng nằm ở một vị trí mà một bộ xử lý hoặc một liên kết trở thành một nút thắt cổ chai. 5.4 Truyền thông bất đồng bộ Các cuộc gọi thủ tục từ xa (Remote procedure calls RPC) được sử dụng trong các hệ thống máy tính để đơn giản hóa việc thiết kế phần mềm. Phân bổ chia sẻ thường được quản lý bởi một bộ xử lý duy nhất. Bộ định thời được khởi động để theo dõi sự tiến độ của các sự kiện. Nếu hệ thống cân tải thì năng lực của hệ thống có thể được tăng lên khi thêm nhiều bộ xử lý. nhưng chúng phải chia sẻ chung nguồn tài nguyên. hầu hết các hệ thống thời gian thực hỗ trợ thiết kế máy trạng thái (state machine) dựa trên thiết kế cho phép nhận được nhiều tin nhắn trong một trạng thái duy nhất. nhưng chúng sử dụng rất hạn chế trong các hệ thống thời gian thực.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC Khi nhiều bộ xử lý và các liên kết trao đổi thông tin cho nhau thì việc phân phối tải là một nhiệm vụ khó khăn. Tất cả các giao thức đều nhấn mạnh đến tầm quan trọng của thời gian.2. bộ cấp phát tài nguyên được chia sẻ có thể trở thành một cổ chai trong việc đạt được năng lực của hệ thống một cách đầy đủ. Điều này dẫn đến việc thiết kế lại các tính năng rất tốn kém để cải thiện quy mô hệ thống. Trạng thái tiếp theo được xác định bởi các nội dung của tin nhắn nhận được.2. cho nên người thiết kế phải hết sức chú ý các vấn đề liên quan.5 Tình trạng tranh đua và định thời Thiết kế hệ thống thời gian thực quan trọng nhất là thời gian. Vì vậy. RPC cho phép một chương trình để gọi thủ tục trên một máy tính từ xa tương tự như các cuộc gọi thủ tục địa phương. 5) Phân bổ nguồn lực tập trung: Hệ thống phân tán được chạy trên nhiều bộ xử lý. Sự linh động này được đưa ra với những vấn đề phức tạp riêng của nó. Nếu hệ thống không được thiết kế một cách cẩn thận. RPCs thực sự đơn giản hóa việc thiết kế và phát triển của các hệ thống thông thường. Hệ thống thời gian thực đối phó với các vấn đề thời gian bằng cách sử dụng bộ định thời. Hệ thống như vậy được cho là quy mô tuyến tính với việc tăng khả năng xử lý. Nếu 98 . Lý do chính là hầu hết truyền thông trong thế giới thực là không đồng bộ. Hầu hết các giao thức cũng sẽ xác định thời gian thay đổi như thế nào khi với tải trọng ngày càng tăng.

1 MARS MARS (MAintainable Real-time System) là một hệ thống thời gian thực kháng lỗi phân tán được phát triển ở trường đại học Vienna (Áo) để điều khiển các ứng dụng phức tạp (như hệ thống điều khiển không lưu. Cùng một luồng đã được phân bổ cho cuộc gọi đến và cuộc gọi đi. Tình trạng tranh đua này có thể dễ dàng giải quyết bằng cách định nghĩa các quy định về nơi giữ các nguồn tài nguyên khi xung đột xảy ra. Một số chúng rất khó nhận biết và chỉ có thể được xác định bằng cách kiểm tra cẩn thận thiết kế. 5. điều này dẫn đến tình trạng tranh đua.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC các sự kiện dự kiến xảy ra. Vấn đề xảy ra khi cả hai đầu được phân bổ luồng gần như ở cùng một thời gian. Vấn đề chính ở đây là xác định tình trạng tranh đua. hệ thống chuyển đổi đường ray và nhiều hệ thống khác. ) . Kiến trúc của hệ thống MARS bao gồm một tập hợp các điểm máy tính (còn gọi là clusters ) được kết nối thông qua các kênh giao tiếp có tốc độ cao. Nếu các sự kiện dự kiến không diễn ra. Môi trường điều khiển của các ứng dụng này thường áp đặt thời hạn cứng (hard deadline). Kiến trúc của MARS như hình 5. dùng để thực thi các tác vụ của ứng dụng và các bản sao của hệ điều hành MARS. Điều này được giải thích với một ví dụ: Tổng đài điện thoại có luồng (trunk) 2 hướng dùng để kết nối 2 tổng đài. . Mỗi component là một máy tính độc lập. bộ định thời sẽ báo quá thời gian và công việc phục hồi sẽ được kích hoạt. .3 Giới thiệu một số hệ thống thời gian thực tiêu biểu Phần này sẽ giới thiệu một số hệ thống thời gian thực đang được sử dụng trong thực tế như MARS. 99 . Mỗi cluster bao gồm một số bộ thu nhận và xử lý dữ diệu (component) liên kết với nhau thông qua một bus thời gian thực đồng bộ (MARS-bus). Tình trạng tranh đua có thể tránh được bằng cách yêu cầu hai tổng đài làm việc từ hai đầu khác nhau của vùng nhớ. SPRING và RK nhằm cung cấp cho người học các thông tin về cấu tạo và các tính năng những hệ thống này để người học tham khảo khi thiết kế hệ thống thời gian thực. 5. Hầu hết các tình trạng tranh đua không phải là đơn giản như ví dụ trên.1.3. bộ định thời dừng lại. Tình trạng tranh đua xảy ra khi trạng thái của một tài nguyên phụ thuộc vào các yếu tố thời gian và không thể dự đoán.

Bên trong FTU. các thiết bị này hình thành nhóm mang tên nhóm hệ kháng lỗi (Fault-Tolerant Units FTUs).5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC Hình 5. 100 . sữa chữa và được khôi phục lại sau mà không ảnh hưởng đến sự hoạt động bình thường của các cluster khác. khi đó các bộ phận bị lỗi có thể được gỡ bỏ từ các cluster đang chạy. khi một bộ phận dự phòng đơn lẻ bị lỗi thì nó vẫn hoạt động không tạo ra bất kỳ kết quả nào. Với tính năng này cho phép hệ thống có khả năng duy trì và mở rộng. Tính năng kháng lỗi được thực hiện ở các cấp của cluster thông qua việc kích hoạt các thiết bị dự phòng. tức là khi các sự kiện xảy ra ở tần mức cao nhất của chúng. Sự đảm bảo khả năng phát hiện lỗi cao được thực hiện bởi cơ chế phần mềm nằm ở hạt nhân và cơ chế phần cứng ở cấp bộ xử lý. Một component có thể được mởi rộng thành một cluster mới và cluster mới có thể thiết kế độc lập từ các phần còn lại của hệ thống trong khi những đặc tính I/O của component giao tiếp là không thay đổi.1: Kiến trúc của hệ thống MARS Đặc điểm chính mà để phân biệt MARS với các hệ thống thời gian thực phân tán khác là hành vi xác định của nó trong điều kiện tải tối đa.

Nó sử dụng CPU Motorola 680x0. Chúng liên lạc với nhau thông qua việc trao đổi các thông điệp và giao thức được sử dụng cho việc truy cập bus. đó là thời gian hệ thống với một sự động bộ chính xác.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC Tính dự đoán trong tình trạng tải cao nhất có thể được thực hiện bằng cách sử dụng cách lập lịch tĩnh kết hợp với chiến lược điều phối theo thời gian. Về phần cứng. Hơn nữa do cách lập lịch off-line nên nó cho phép sử dụng các thuật toán phức tạp để đi xử lý các vấn đề như xử lý tình trạng khẩn cấp hay các yêu cầu kháng lỗi. Đặc điểm của những tác vụ thời hạn cứng (hard deadline). tức thời hạn nó bắt buộc phải hoàn thành. mỗi component của MARS dùng bản mạch chính máy tính có thay đổi chút đỉnh. bộ nhớ. Tất cả các chi tiết phần cứng được ẩn bên trong hạt nhân và tất cả các cấu trúc dữ liệu hạt nhân không thể được truy cập trực tiếp. Phần mềm chạy trên các component của MARS được chia thành các loại sau: 1) Hạt nhân hệ điều hành: Công việc của nó là quản lý tài nguyên (CPU. 2 giao tiếp RS232 và 1 giao tiếp hệ thống máy tính nhỏ SCSI. . 2) Tác vụ thời gian thực cứng (HRT-tasks): Hoạt động theo kiểu tuần hoàn gồm nhận. Mặc dù cách tiếp cận tĩnh giống giới hạn tính linh động của hệ thống trong môi trường động. Lập lịch động không được dùng đến do tất cả các hoạt động quan trọng được xử lý theo kiểu tác vụ tuần hoàn. Các tác vụ này được thực hiện bởi các hàm xác định của hạt nhân như đồng bộ về thời gian và chuyển đổi các giao thức. bộ đồng bộ đồng hồ CSU. Chúng thường là các tác vụ không tuần hoàn được lập lịch trong thời gian rỗi của bộ xử lý. Một bộ HRT-tasks gồm nhiều tác vụ ứng dụng và nhiều tác vụ hệ thống. tìm lỗi thời gian. Trong MARS. Tất cả các component của MARS đều truy cập cơ sở thời gian chung. xử lý và gửi thông điệp. 3. bộ điều khiển mạng LAN. bus. điều khiển các truy cập đến bus thời gian thực và loại trừ các thông tin dư thừa. ) và tạo sự tương thích của phần cứng. Các tác vụ ứng dụng và các tác vụ hệ 101 . Nó dùng để kiểm tra tính hợp lệ của thông tin thời gian thực. Các bảng kết quả được tạo bởi bộ lập lịch off-line sẽ được kết nối đến mỗi component và được thực hiện theo phương thức thời gian. . nhưng nó có thể tiên đoán chính xác và giảm thời gian chạy nhỏ nhất đối với sự lựa chọn tác. Tác vụ thời gian thực mềm (SRT-tasks): Chúng hoạt động không dựa trên các thời hạn nghiêm ngặt.. toàn bộ công việc lập lịch được dự toán off-line có cân nhắc đến đặc điểm thời gian các tác vụ.

hearder còn có chứa một số vùng khác bao gồm thời gian theo dõi các thông tin chứa trong tin nhắn. Tin nhắn trạng thái được không bị mất khi đọc. do đó nó không cần kiểm soát lưu lượng rõ ràng. trong khi kích thước của nó là cố định và được xác định trước trong hệ thống. do MARS được thiết kế để có thể dự đoán được ngay cả dưới điều kiện tải cao điểm.3. Bên cạnh vùng chuẩn phụ thuộc LAN. thông tin liên lạc giữa các tác vụ. 102 . Một nhược điểm là giao thức TDMA đạt hiệu quả thấp khi điều kiện tải thấp. các cluster và các thiết bị ngoại vi được thực hiện thông qua một cơ chế thống nhất qua tin nhắn. do đó chúng có thể được đọc nhiều lần bởi một số tùy ý của các tác vụ. hầu hết các mã hệ điều hành được viết bằng ngôn ngữ C tiêu chuẩn. chiều dài là một hằng số và một kết cuối chuẩn. nên TDMA là giao thức tốt nhất đáp ứng yêu cầu này. trạng thái sẽ được cập nhật nhanh hơn so với đọc. 5. Tin nhắn giữa các thành phần trao đổi qua MARS-bus theo giao thức TDMA (Time Division Multiple Access). Do tin nhắn mô tả các đối tượng thời gian thực nên nó không thể bị thay đổi bởi các tác vụ. nhưng nó được thực hiện bằng cách đi qua một con trỏ. bao gồm một tiêu đề chuẩn. Nếu người gửi có một tần số cao hơn so với của người nhận. các phiên bản trước bị ghi đè và trạng thái được mô tả trong tin nhắn được cập nhật.1. khoảng thời gian hiệu lực. Mỗi khi một phiên bản mới của một tin nhắn nhận được. Để tạo thuận lợi cho việc chuyển MARS sang các nền tảng phần cứng khác. Tất cả các tin nhắn MARS có một cấu trúc giống hệt nhau. Giao thức này cung cấp một truy cập không xung đột qua Ethernet ngay cả trong điều kiện chịu tải lớn nhất. giao tiếp tiến trình là hoàn toàn không đồng bộ. Cấu trúc của phần giữa tin nhắn được định nghĩa bởi lập trình viên ứng dụng. Tất cả các tin nhắn được gửi định kỳ để trao đổi thông tin về tình trạng của môi trường hoặc trạng thái nội bộ. cũng như mốc thời gian gửi và nhận trên tin nhắn của SCU. Việc trao đổi tin nhắn giữa hạt nhân và các tác vụ ứng dụng không yêu cầu một bản sao rõ ràng của tin nhắn. Kết cuối có chứa một tổng kiểm tra.1 Truyền thông Trong MARS. Tuy nhiên. Trong MARS.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC thống truy cập hạt nhân chỉ bằng các cuộc gọi hệ thống đã được xác định. tin nhắn được lưu giữ trong bộ đệm chỉ đọc của hệ điều hành. nhưng không có lỗi tràn bộ đệm bởi vì các tin nhắn mới nhất thay thế tin nhắn trước đó. các component.

2 Lập lịch Trong MARS. các tác vụ chỉ có thể bị đình chỉ tại khi có cơ hội (được xác định trong giai đoạn thiết kế) để chúng được đảm bảo ở trong một trạng thái phù hợp với môi trường. trong giai đoạn thiết kế.3 Xử lý ngắt Trong MARS.3. tất cả các ngắt đến CPU sẽ bị cấm.1. Chuyển đổi tức thì là sự chuyển đổi được thực hiện càng sớm càng tốt. Tức là. hạ cánh và giảm tốc.3.1. mỗi tin nhắn nhận được hai mốc thời gian từ CSU (khi gửi và khi nhận được) với độ chính xác khoảng ba micro giây. Khi thực hiện một chuyển đổi lịch trình phù hợp. trong đó mỗi bộ được xử lý bởi một thuật toán lập lịch trình thích hợp. bảng kế hoạch được bởi bộ điều phối sử dụng để thực hiện việc kích hoạt các tác vụ và chuyển đổi hiện trường tại thời điểm được xác định trước. bay. ở thời điểm gọi chương trình xử lý ngắt chính tiếp theo với khoảng thời gian 8ms. Trên thực tế. Nhược điểm của phương pháp lập lịch này là do không có tác vụ được tạo ra một cách linh động. sự tương tác tin nhắn giữa chúng. nếu cho phép mỗi thiết bị được ngắt CPU sẽ gây ra một tải không 103 . 5. ngoại trừ ngắt đồng hồ từ các CSU. việc lập lịch cho các hoạt động thời gian thực cứng được thực hiện off-line có xem xét về trường hợp xấu nhất về thời gian thực hiện các tác vụ. Khi chạy. 5. chỉ định các tin nhắn đến khe TDMA.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC Để phát hiện các lỗi thời gian trong quá trình giao tiếp. Ví dụ. Và mỗi giai đoạn có thể yêu cầu tác vụ khác nhau hoặc một chính sách lập kế hoạch khác nhau. Lập lịch tĩnh tạo bởi bộ lập lịch off-line được lưu trữ trong một bảng và nạp vào mỗi component. Có hai loại chuyển đổi lịch trình được hỗ trợ bởi hạt nhân: chuyển đổi phù hợp và chuyển đổi ngay lập tức. có năm giai đoạn khác nhau: chạy đà. lập trình viên ứng dụng có thể định nghĩa một vài giai đoạn hoạt động của hệ thống đại diện bởi các bộ tác vụ khác nhau. Sự thay đổi giữa hai lịch trình (thay đổi chế độ) có thể dẫn đến một cuộc gọi đến hệ thống một tác vụ ứng dụng hoặc tiếp nhận một tin nhắn liên quan với sự chuyển đổi lịch trình. Hệ thống MARS cũng cho phép các chiến lược lập lịch khác nhau để thích ứng với các giai đoạn điều hành khác nhau. nên hệ thống này là không linh hoạt và không thể thích ứng với những thay đổi trong môi trường. Nhưng nếu giả thiết về môi trường làm việc kiểm soát được thì phương pháp này có ưu điểm dự đoán dễ dàng và giảm thiểu chi phí thời gian chạy cho việc quyết định thực hiện lập kế hoạch. một ứng dụng điều khiển máy bay. cất cánh.

mỗi mili giây. Hoa kỳ hỗ trợ cho các ứng dụng điều khiển lớn và phức tạp được đặc trưng bởi các ràng buộc thời gian cứng. Mỗi nút chứa ba loại bộ xử lý: một hoặc nhiều bộ xử lý ứng dụng. Phần thứ 2 (phần xử lí chính) viết bằng ngôn ngữ C.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC thể đoán trước trên hệ thống và gây nguy hiểm đến sự đảm bảo thực thi của các tác vụ quan trọng.2 SPRING SPRING là một hệ điều hành thời gian thực phân tán được phát triển tại Đại học Massachusetts. Do ngắt bị cấm nên các thiết bị ngoại vi sẽ được kiểm tra định kì trong vòng ngắt đồng hồ xử lí. 5. một bộ xử lý hệ thống và một bộ xử lý hệ thống phụ I/O. Kiến trúc hệ thống SPRING được minh họa trong hình 5. trong khi đó các thiết bị ưu tiên thấp sẽ không được CPU xử lý. kích hoạt mỗi 8 mili giây ngay khi thực thi phần đầu tiên.2: Kiến trúc của hệ thống SPRING 104 .2 và bao gồm một tập hợp các nút đa đa xử lý kết nối thông qua một mạng truyền thông tốc độ cao. Hình 5. Cơ chế định mức ưu tiên cho ngắt cũng không dùng tới bởi vì sẽ cung cấp lợi thế cho những thiết bị ưu tiên cao. Chương trình xử lí đồng hồ ngắt chia làm 2 phần được kích hoạt với tần suất khác nhau. Chương trình xử lý ngắt phụ có thể trì hoãn bất kì cuộc gọi hệ thống nào.3. dẫn đến việc không đáp ứng được thời hạn. Phần đầu tiên (phần xử lí phụ) được viết bằng hợp ngữ cho mục đích thực thi nhanh. trong khi đó chương trình xử lí chính bị trì hoãn cho đến khi kết thúc cuộc gọi hệ thống.

tuy nhiên việc phân các tác vụ cho các bộ vi xử lý được thực hiện tĩnh để cải thiện tốc độ và loại bỏ sự chậm trễ không thể đoán trước. . trong khi đó bộ xử lý I/O có thể được kiểm soát bởi bất kỳ hệ điều hành thương mại nào dựa trên mức ưu tiên. 105 . • Mô đun thứ hai bao gồm một bộ lập lịch địa phương (nằm trên bộ xử lý hệ thống) chịu trách nhiệm đảm bảo sự linh động cho việc lập lịch của một tác vụ trên một bộ xử lý ứng dụng cụ thể.Bộ xử lý hệ thống (system processor) chịu trách nhiệm để thực hiện các thuật toán lập lịch (một phần quan trọng của hệ thống) và hỗ trợ tất cả các hoạt động hạt nhân. Một bộ lập lịch như vậy tạo ra bảng tác vụ của hệ thống sau đó được đưa đến bộ xử lý ứng dụng. trong khi một phần khác được chia sẻ giữa các bộ vi xử lý khác thông qua bus VME. Để tăng hiệu quả trong thời gian chạy. • Mức lập kế hoạch thứ ba là bộ lập lịch phân tán cho phép cố gắng để tìm thấy một nút rỗi trong trường hợp trong đó tác vụ đó không thể được đảm bảo tại địa phương. Một bản sao của hạt nhân SPRING được thực hiện trên mỗi bộ xử lý ứng dụng và trên bộ xử lý hệ thống. Trên bo mạch này. Công việc của nó chỉ đơn giản là loại bỏ tác vụ đã sẵn sàng thiếp theo trong bảng tác vụ hệ thống mà các tác vụ đảm bảo được sắp xếp theo đúng thứ tự.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC . Cơ chế lập kế hoạch được chia thành 4 mô đun: • Ở cấp thấp nhất. một số tác vụ có thể được tải trên nhiều bộ vi xử lý. Sự tác rời về mặt vật lý giữa các hoạt động của hệ thống và các hoạt động ứng dụng cho phép làm giảm chi phí hệ thống trên các bộ xử lý ứng dụng và loại bỏ sự chậm trễ không thể đoán trước về khi thực hiện các tác vụ. .Bộ xử lý hệ thống I/O (I/O subsystem) có trách nhiệm xử lý ngắt không quan trọng đến từ các thiết bị ngoại vi chậm hoặc từ các cảm biến mà không có thời gian đáp ứng dự đoán. nếu tình trạng quá tải xảy ra khi một tác vụ được kích hoạt thì tác vụ đó có thể được thực hiện trên một bộ xử lý khác mà không có chi phí lớn. do đó. SPRING cho phép kích hoạt tác vụ một cách linh động.Bộ xử lý ứng dụng (application processors) được dành riêng cho việc thực hiện các tác vụ ứng dụng quan trọng đã được đảm bảo bởi hệ thống. Trong một nút. cắm trong bus VME. một phần của bộ nhớ chính dùng lưu trữ chương trình và dữ liệu riêng của bộ xử lý. có một bộ điều phối chạy trên mỗi bộ xử lý ứng dụng. I/O quan trọng liên quan đến thời gian được trực tiếp thực hiện trên bộ xử lý hệ thống. Phần còn lại của các mô-đun lập kế hoạch được thực hiện trên bộ xử lý hệ thống. mỗi đơn vị xử lý bao gồm mạch Motorola MVME136A thương mại.

loại tác vụ này không ảnh hưởng đến việc thực hiện các tác vụ quan trọng và cần thiết.1 Quản lý tác vụ Ở SPRING. ưu tiên hoặc không ưu tiên. thời hạn. Vì lý do này. đối với mỗi tác vụ. nên các tác vụ loại này phải có tất cả các tài nguyên cần và phải được đảm bảo off-line. một danh sách các tài nguyên cần thiết. thời gian giữa 2 lần xuất hiện. người sử dụng phải xác định thời gian thực hiện trong trường hợp xấu nhất. • Tác vụ không cần thiết (Unessential task) là quá trình có hoặc không có thời hạn được thực hiện trong thời gian nhàn rỗi của bộ xử lý. nhiệm vụ cần thiết và nhiệm vụ không cần thiết. 106 . loại tác vụ (quan trọng. nếu không một kết quả thảm khốc có thể xảy ra trên hệ thống điều khiển. thực hiện định kỳ hoặc không định kỳ hoặc không có hạn chế thời gian rõ ràng. Tầm quan trọng của một tác vụ là giá trị thu được bởi hệ thống khi tác vụ hoàn thành trước thời hạn của nó. Yêu cầu thời gian đại diện cho các đặc điểm kỹ thuật thời gian thực của một công việc và có thể nằm trong khoảng trên một phổ rộng. nếu quá hạn sẽ không gây ra hậu quả thảm khốc. tác vụ được phân loại dựa trên hai tiêu chí chính: tầm quan trọng và các yêu cầu thời gian. mức độ quan trọng. Dựa trên tầm quan trọng và yêu cầu thời gian. 5. Đặc biệt. Các tác vụ của SPRING được đặc trưng bởi một số lượng lớn các thông số. một đồ thị ưu tiên. bao gồm cả thời hạn cứng hay mềm. có ba loại tác vụ được định nghĩa ở SPRING: nhiệm vụ quan trọng. Thông thường. cần thiết hoặc không cần thiết). chúng phải được xử lý tự động nếu không sẽ là điều không thể (hoặc rất đắt tiền) để dự trữ đủ tài nguyên cho tất cả chúng. Những thông tin này được sử dụng bởi thuật toán lập kế hoạch để tìm một lịch trình khả thi. • Tác vụ quan trọng (Critical task) là tác vụ mà hoàn toàn phải đáp ứng được thời hạn của nó.3. do đó. Do tầm quan trọng của nó. trong các ứng dụng thực tế. số lượng các nhiệm vụ quan trọng là tương đối nhỏ so với tổng số các tác vụ khác trong hệ thống.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC • Mô đun lập lịch trình thứ tư là một bộ điều khiển dùng để điều chỉnh các thông số khác nhau của các thuật toán lập lịch ohu2 hợp với các điều kiện tải khác nhau. • (Tác vụ cần thiết (Essential task) là tác vụ cần thiết cho hoạt động của hệ thống. tuy nhiên. nhưng chỉ làm giảm hiệu suất của hệ thống.2. một danh sách các tác vụ mà cần giao tiếp và một danh sách các nút mà trên đó các mã tác vụ được nạp lên. Số tác vụ cần thiết thường lớn hơn trong các ứng dụng điều khiển phức tạp.

5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC 5.3.2.2 Lập lịch: Mục tiêu của thuật toán lập lịch SPRING là tự động đảm bảo việc thực hiện các tác vụ mới đến trong bối cảnh của tải hiện thời. Tính khả thi của lịch trình được xác định sau khi xem xét nhiều vấn đề, chẳng hạn như hạn chế thời gian, quan hệ ưu tiên, tính loại trừ lẫn nhau khi chia sẻ tài nguyên, tính không chiếm quyền ưu tiên, các yêu cầu kháng lỗi. 5.3.2.3 I/O và xử lý ngắt Trong hệ thống SPRING, thiết bị ngoại vi I/O được chia thành hai loại: thiết bị I/O chậm và thiết bị I/O nhanh. Các thiết bị I/O chậm được ghép thông qua một bộ xử lý chuyên xử lý đầu cuối (bộ vi xử lý I/O), được điều khiển bởi một hệ điều hành thương mại. Chương trình driver của thiết bị chạy trên bộ vi xử lý này không sử dụng thuật toán bảo đảm động, mặc dù chúng có thể kích hoạt các tác vụ quan trọng hoặc các tác vụ cần thiết. Các thiết bị I/O nhanh được xử lý bởi bộ xử lý hệ thống, vì vậy chúng không ảnh hưởng đến việc thực hiện các tác vụ ứng dụng. Ngắt từ các thiết bị I/O nhanh được xử lý như một tác vụ mới đó là phải thường xuyên đảm bảo giống như bất kỳ tác vụ khác trong hệ thống.

5.3.3 RK
RK (Real-time Kernel: Hạt nhân thời gian thực) là một hệ thống thời gian thực phân tán được phát triển tại Đại học Pennsylvania, Hoa Kỳ để hỗ trợ các ứng dụng robot đa cảm biến. Sự hạn chế về mặt thời gian cứng trong hoạt động điều khiển robot cần thiết cho hai lý do quan trọng. Trước tiên, các cảm biến và cơ cấu chấp hành yêu cầu thu thập thông tin và phản hồi điều khiển thường xuyên để hệ thống hoạt động liên tục và thông suốt. Thứ hai, một số tác vụ cấp cao (chẳng hạn như lập quỹ đạo, tránh chướng ngại vật, ...) có thể được yêu cầu thực hiện kịp thời để tránh những kết quả thảm khốc. Kiến trúc của RK được thiết kế bao gồm 5 bộ vi xử lý (MicroVAX) kết nối thông qua một mạng Ethernet 10 Mb, hai bộ thao tác robot (PUMA 560) với một bộ điều khiển chung, một cảm biến xúc giác và một camera như hình 5.3. Một trong những bộ vi xử lý (P3) hoạt động như một người giám sát, hai bộ (P1 và P5) được kết nối với bộ điều khiển thông qua một giao tiếp song song, một (P2) chịu trách nhiệm thu thập hình ảnh và xử lý và một (p4) được dành riêng cho các cảm biến xúc giác. Để hỗ trợ tất cả

107

5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC

Hình 5.3: Kiến trúc của hệ thống RK các hoạt động thăm dò và điều khiển cần thiết cho hệ thống rô-bốt, một bản sao giống hệt nhau của hạt nhân được thực hiện trên mỗi bộ vi xử lý đó. Để đạt được hành vi dự đoán, RK cung cấp một tập hợp các dịch vụ có thời gian thực hiện ngưỡng của trường hợp xấu nhất. Ngoài ra, hạt nhân cho phép lập trình viên xác định các ràng buộc thời gian để thực hiện xử lý và giao tiếp liên xử lý. 5.3.3.1 Lập lịch RK hỗ trợ cả hai loại tác vụ thời gian thực và phi thời gian thực. Tác vụ thời gian thực lại được chia thành ba loại với mức độ khác nhau của tầm quan trọng: bắt buộc, cứng và mềm. Việc sắp xếp các tác vụ của CPU được thực hiện theo thứ tự ưu tiên. Trong cùng một loại, tiến trình bắt buộc được thực hiện trên cơ sở First-Come-First-Server (FCFS) tức đến trước phục vụ trước , trong khi tiến trình cứng và mềm được thực hiện dựa trên các ràng buộc thời gian của chúng bằng các thuật toán EDF. Sự khác nhau giữa tác vụ cứng và mềm là: tác vụ cứng là một thuật toán đảm bảo xác nhận lịch trình của nó ở thời gian xuất hiện, trong khi nhiệm vụ mềm không được đảm bảo. Cuối cùng, tác vụ phi thời gian thực được lên kế hoạch trên nền tảng sử dụng FCFS. Ràng buộc thời gian trên tác vụ thời gian thực cũng có thể được quy định cụ thể như định kỳ hoặc không định kỳ và có thể được định nghĩa trên toàn bộ quá trình, một phần của quá trình hoặc trên tin nhắn. Để tạo điều kiện thuận lợi cho việc lập trình ràng buộc thời gian, RK hỗ trợ một

108

5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC khái niệm về phạm vi thời gian, trong đó việc xác định các ràng buộc thời gian bằng một chuỗi các trạng thái. Mỗi phạm vi thời gian bao gồm năm thuộc tính: một cờ cứng/mềm, một thời gian bắt đầu, một thời gian thực hiện tối đa, một thời hạn và một tên duy nhất. Bất cứ khi nào một phạm vi thời gian có cờ cứng thì bộ lập lịch kiểm tra xem các ràng buộc thời gian tương ứng có được đảm bảo trong bối cảnh của tải hiện tại. Nếu yêu cầu không được đảm bảo, một thông báo lỗi được tạo ra bởi hạt nhân. Một vi phạm về ràng buộc thời gian xảy ra nếu một trong hai quá trình có thời gian thực hiện dài hơn thời gian thực hiện tối đa đã xác định trước hoặc vượt qua thời hạn của nó. Khi điều này xảy ra, hạt nhân sẽ gửi một tín hiệu đến quá trình này. Nếu quá trình này là cứng thì lỗi hệ thống quan trọng đã xảy ra (bởi vì ràng buộc thời gian được bảo đảm bởi lịch trình), do đó, tác vụ mà đã bỏ lỡ thời hạn trở thành một quá trình bắt buộc và cơ cấu kiểm soát của hệ thống sẽ thực hiện tác vụ đó sớm nhất có thể. 5.3.3.2 Giao tiếp RK cung cấp ba phương thức giao tiếp cơ bản giữa các tác vụ thời gian thực: - Tín hiệu: Thông báo lỗi hệ thống quan trọng; - Các sự kiện thời gian: Thông báo các sự kiện có ràng buộc thời gian; - Các cổng: Trao đổi tin nhắn không đồng bộ với ràng buộc thời gian. 5.3.3.3 I/O và xử lý ngắt Hệ điều hành truyền thống cung cấp các trình driver thiết bị cho phép đơn giản hóa tương tác giữa các quá trình ứng dụng và các thiết bị ngoại vi. Cách tiếp cận này cho phép cùng một thiết bị được sử dụng bởi nhiều quá trình, tuy nhiên, nó tạo ra sự trễ trong sự thực hiện các quá trình mà có thể gây nguy hiểm cho việc đảm bảo hoạt động thời gian thực cứng. Trong các ứng dụng robot, vấn đề này không như vậy, bởi vì các thiết bị cảm biến không được chia sẻ giữa các quá trình, nhưng được kiểm soát bởi các tác vụ chuyên dụng thu thập dữ liệu và tiền xử lý. Vì lý do này, RK cho phép xử lý trực tiếp các thiết bị điều khiển bằng cách chia sẻ bộ nhớ và truy cập thanh ghi thiết bị. Ngoài ra, một quá trình có thể yêu cầu hạt nhân chuyển đổi ngắt thiết bị sang các sự kiện thời gian. Mặc dù phương pháp này đòi hỏi lập trình viên biết chi tiết ở mức thấp về các thiết bị nhưng nó nhanh hơn so với phương pháp truyền thống vì không cần sự chuyển đổi

109

[Kop97. 5. Yao03. Mal07] 110 . hạt nhân không cần phải thay đổi khi bỏ hay thêm vào các thiết bị mới.5 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC thông tin phản hồi tới thiết bị. Hơn nữa. 5.2 Vấn đề đáp ứng thời gian thực trong hệ thống thời gian thực phải được xem xét như thế nào khi thiết kế? 5.1 Khi thiết kế hệ thống thời gian thực thì phải chú ý những vấn đề gì? 5. Lap04.5 Tại sao phải chú ý đến vấn đề truyền thông bất đồng bộ khi thiết kế hệ thống thời gian thực? 5. 5.10 Tìm hiểu một số tính năng của hệ thống thời gian thực ARTS. 5.6 Như thế nào là tình trạng đua tranh? Nêu ví dụ. 5.3 Như thế nào được gọi là hệ thống thời gian thực kháng lỗi? Nêu một số trường hợp kháng lỗi cụ thể.4 Khi thiết kế kiến trúc phân tán cho hệ thống thời gian thực thì phải chú ý đến những nội dung nào? 5.7 Mô tả một số tính năng của hệ thống thời gian thực MARS. Câu hỏi ôn tập 5.8 Mô tả một số tính năng của hệ thống thời gian thực SPRING.9 Mô tả một số tính năng của hệ thống thời gian thực RK.

Laplante. 2007. IEEE Press Editorial Board. Dorling Kindersley (India) Pvt. [Lap04] Phillip A. [Yao03] Qing Li Carolyn Yao. Real-Time Systems. Ltd. 2003. Real-Time Systems: Theory and Practice. Real-Time Concepts for Embedded Systems.Tài liệu tham khảo [Kop97] Hermann Kopetz. 2004. 111 . Real Time Systems Design and Analysis. CMP Books. [Mal07] Rajib Mall. 1997. Kluwer Academic Publishers.

. . . . . . . . . . . 33 Một ví dụ về tổ chức bộ nhớ . . . . . . . . . . . .4 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Chức năng của hệ điều hành thời gian thực . . . . . . . . . . . . . . 36 Nguyên lý của cảm biến góc nghiêng .1 Sơ đồ khối phần cứng cơ bản của hệ thống xử lý chung . . . . . . . . . . . . . . . . . . . . . . . . .1 2. . . . 38 Các loại ứng dụng của cảm biến góc nghiêng . . . .10 Các loại tác vụ . . . . . . . Ví dụ về một mô hình hệ thống thời gian thực . . . . . . . . . . . . . . . . . Đồng hồ hệ thống 2 2 3 3 9 . . .9 3. . . . . . . . . . . . . . . . . . . . . . . . . . .12 Một hệ thống thời gian thực nhúng trong một xe MPFI . . . . . 20 1. . . . . . . . . . . . . . . . Mô hình một hệ thống xử lý với các công việc được lập lịch . . . . . .14 Hệ thống hội nghị truyền hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Một đồng hồ thời gian thực . . . . . . . .4 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1. . . . . . . . . . . . . . . . 10 Xung đồng hồ . . . . .3 2. . . . . . . . . . . . . . .5 1. . .7 1. . . . . . 29 Cấu tạo của một CPU . . . . . . . . . . . . . . . . . . .2 2. . . . . . . . . . . . . . . . . . . . . . . . . 21 1.11 Một ví dụ về dây chuyền lắp ráp xe hơi . . . . . . . . . . . . 12 1. . . . . . . . . . . . . . . . . . . . . . . .15 Hệ thống dẫn đường tên lửa . . . . .6 1. . . . .1 1. . . . . . . .13 Một hệ thống di động tế bào . . . . . . . . . . . . . . . . . . . . . . .6 2. . . . . . . . . . . . . . 11 Ràng buộc thời gian trễ . . . . . . . . . .7 2. . . . . . . . . . . . . . . . . . . .2 1. . . . . . . . 13 1. . 49 112 . . . . . .9 Mô hình một hệ thống xử lý . . . . . . . . . . . . . . . . . . . . . . .8 2. 24 2. . . . .Danh sách hình vẽ 1. . . . 12 Ràng buộc thời hạn . . . . . . 22 1. Một mô hình một hệ thống điều khiền thời gian thực . .8 1. . . . . . . . . . .5 2. . . . . . . . . . . . . 28 Mạch xử lý trung tâm . . . 29 Bộ nhớ và bản đồ bộ nhớ . . 39 Một số loại động cơ . . . . . . . . . . . . 40 Đèn chỉ thị . . . . .

. . . . . . .16 Yêu cầu của ví dụ 2 . . . . . .3 4. . . . . . . . . . . . . . . . . . . . . . . . . .4 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Quy định ưu tiên các ngắt của 8051 . . . . . . . . . . 59 Cấu trúc của Queue . . . . . . . . . . . . . . . . . . . . . 73 Mode 0 . . . . 85 4. . . . 58 Ví dụ minh họa về cấu trúc của semaphore . . 56 Các trạng thái của tác vụ và sự chuyển đổi giữa chúng . . . . . . . . . .12 Thanh ghi cho phép ngắt EI . . . . .4 4. . . . . . .5 4. . . . . . . . . . . . . .1 4. . . . . . . . . . .5 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 4. . . . . 57 Sự truy cập tài nguyên chung giữa hai tác vụ . . . . 76 Các phương pháp lập lịch thời gian thực . . . .bộ đếm 8 bit với giá trị ban đầu . .Danh sách hình vẽ 3. . . . . . . . . . . . . . 82 4. . . . . . . . . 104 Kiến trúc của hệ thống RK . . . . . . . . . . . . . . .6 4. . . 53 Cấu trúc một tác vụ . . . 80 Ví dụ về giải thuật SJF . . . 100 Kiến trúc của hệ thống SPRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 5. . . . . . . . . 62 4. . . . . 61 3. .15 Bảng các vector ngắt . . . . . . . . . . . . . . . . . . 85 4. . . . . . . . . . . . . . . . . . . . . . .8 3. . . . . . . . . . . . . . . 62 3. . . . . . . . 75 Bộ đếm/bộ định thời ở mode 3 . . . .14 Thanh ghi ưu tiên ngắt PI . . . . . . . .bộ đếm 13 bit . . . . . . . . 89 5. . . . . . 87 4.1 5. . . .9 Các bit của thanh ghi TMOD . . . . . . . . . . . .10 Một mailbox .7 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Kiến trúc của hệ thống MARS . . . 83 4. . . . 81 Ví dụ về giải thuật Round Robin . . . . . . . . . . . . . .11 Ví dụ về xử lý ngắt trong môi trường hệ điều hành thời gian thực . . .7 3. . . . . . . . . . . . . . . . . 74 Mode 2 . . . . . . . . . . 60 Cấu trúc của Queue . . . . . . . . . . . . . . . .2 3. . . . . . . . . . . . . . . . . . . . . . 108 113 . . . . . . . . . . .10 Quá trình xử lý ngắt . . . . . .3 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4. . . . . . . . . . . . . . . . . . . 52 Các kiến trúc của hệ điều hành . . . .11 Pipe . . . . .8 4. . . . . 78 Ví dụ về giải thuật FCFS . . . . . . . . . . . 88 4. . . . .9 Kiến trúc của một hệ điều hành thời gian thực . . . . . . . . . . . . . . . . .6 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Các bit của thanh ghi TCON . . . . . . . . . . . . . . . .

Danh sách hình vẽ . 114 .

Sign up to vote on this title
UsefulNot useful