Giới thiệu hệ điều hành RTOS

Một phần của tài liệu Quang báo điều khiển thông qua Web nhúng (Trang 36)

2.6.1 Hệ thống thời gian thực ( Real time System)

• Thời gian ( Time) : Sự chính xác của hệ thống không chỉ phụ thuộc vào kết quả tính toán logic mà còn phụ thuộc vào thời gian cho ra kết quả.

• Thực ( Real): Đáp ứng của hệ thống với những sự kiện bên ngoài.

• Thời gian thực ( Real-Time): Phải đảm bảo các yếu tố . o Đáp ứng nhanh

o Dự đoán được.

o Các tác vụ ( Real-time Task) được xác định bằng deadline.

o Deadline là thời gian tối đa một tác vụ phải hoàn thành việc tính toán.  Hệ điều hành thới gian thực là hệ thống có:

- Lịch trình thực thi theo thời gian. - Quản lý tài nguyên hệ thống.

- Cung cấp những nền tảng cơ bản để phát triển các ứng dụng trên nó.

2.6.2 Thời gian thực cứng ( Hard Real-time) và thời gian thực mềm ( Soft Real-

Hình 2.16: Thời gian thực cứng và thời gian thực mềm.

• Thời gian thực cứng:

- Một tác vụ là thời gian thực cứng nếu như thời gian tính toán vượt quá deadtime có thể gây ra sự phá vỡ môi trường điều khiển.

• Thời gian thực mềm:

- Một tác vụ là thời gian thực mềm nếu như đảm bảo thực thi trong deadtime cho phép và nếu như không đảm bảo thì sẽ không tạo ra những nguy hại nào đáng kể cho hệ thống và không làm ảnh hưởng đến sự ứng xử của hệ thống.

2.6.3 Các thành phần trong RTOS

• Bộ lịch trình (scheduler): Là một tập các thuật toán để xác định tác vụ (Task) nào được thực thi .

• Đối tượng (Object) :Là những cấu trúc đặc biệt (Kernel) giúp người lập trình tạo ra các ứng dụng.

• Dịch vụ (Service) :Là những điều khiển mà Kernel (lõi) thực thi trong đối tượng (object): chia thời gian (Timing), Ngắt (interrupt), Đáp ứng (handling) và quản lý tài nguyên hệ thống (resource management)

2.6.4 Các đối tượng ( Objects) trong RTOS:

• Tasks:Là các luồng ( thread) thực thi cùng tồn tại và độc lập nhau có thể “ cạnh tranh” nhau để dành quyền thực thi.

• Semaphores:Là đối tượng bắt sự kiện để đồng bộ giữa các tasks, có thể tăng hoặc giảm.

• Message Queues:Là một kiểu cấu trúc dữ liệu được dùng để đồng bộ hóa hoặc trao đổi thông tin giữa các Tasks.

• Real-time embedded applications:Là sự kết nối giữa các đối tượng của Kernel để giải quyết vấn đề thời gian thực như sự đồng thời, sự đồng bộ,và trao đổi dữ liệu

2.6.5 Giới thiệu hệ điều hành OSA

OSA là một hệ điều hành đa nhiệm thời gian thực(RTOS) cho các PIC của Microchip PIC10 , PIC12 ,PIC16 , PIC18 , PIC24 , dsPIC, vi điều của Atmel AVR 8- bit, và STMicroelectronics STM8.

RTOS cho phép các lập trình viên tập trung vào các nhiệm vụ theo định hướng các tác vụ(thuật toán, toán học…) và không phải lo lắng về việc phụ thuộc các tác vụ . Tất cả các tác vụ được thực hiện bởi hạt nhân của OSA:

•Chuyển đổi giữa các quy trình song song (ví dụ như quét bàn phím, dữ liệu đầu ra cho màn hình LCD, chuyển đổi rơ le).

•Kiểm tra thời gian chờ, thời gian đếm delay.

•Tìm kiếm các tác vụ sẵn sàng với ưu tiên cao nhất và thực hiện nó.

•Trao đổi dữ liệu giữa các tác vụ khác nhau sử dụng semaphores, messages, hàng đợi, vv.

•Một tác vụ trong OSA là một hàm C. Chức năng này phải chứa một vòng lặp vô hạn trong đó bên trong nó chứa ít nhất một dịch vụ chuyển tác vụ. Một tác vụ đơn giản như sau.

void SimpleTask (void) {

for (;;) // Infinite loop {

OS_Yield(); // Unconditional context switching }

}

Cách tạo một Project

Sử dụng OSA trong chương trình, ta làm như sau:

1 Tạo ra một project sử dụng IDE. Ngoài tất cả các project file của chương trình ta thêm file “osa.c” (nó có chứa tất cả các biến hệ thống và các mẫu chức năng) 2 Trong thư mục project của chương trình tạo ra các tập tin OSAcfg.h. tập tin này được sử dụng để xác định các thông số OSA biên soạn (như số tác vụ, loại bộ đếm thời gian, vv). Trong trường hợp đơn giản tập tin này có thể được bỏ trống. Có thể sử dụng chương trình OSAcfg_Tool để tạo/sửa đổi tập tin này. 3 Chèn dòng "include <osa.h>" vào tất cả các file mà sẽ sử dụng các dịch vụ

OSA.

4 Thêm "Include search paths" để lựa chọn dự án:

 Đường dẫn đến OSAcfg.h cho project hiện tại của chương trình.

 Đường dẫn đến osa.h.

5 Vào đầu hàm main() gọi hàm dịch vụ OS_Init(). 6 Vào cuối hàm main() gọi hàm dịch vụ OS_Run().

Đối với MikroC PRO IDE

• Để thêm tập tin osa.c chọn menu "Project/Add File To Project…"

• Bao gồm đường đặt trong menu "Project/Edit Search Paths…" Trong hộp thoại có hai danh sách đường dẫn: Source Files và Header Files Chúng ta cần "Header files".Nhấn "green plus" biểu tượng để thêm include-paths

• Các mối liên kết phải được thông báo về các chức năng sẽ được sử dụng như các tác vụ:

#pragma funcall main Task_Buttons // Tell linker that function will be

// called indirectly

void Task_Buttons (void) {

Một phần của tài liệu Quang báo điều khiển thông qua Web nhúng (Trang 36)

Tải bản đầy đủ (DOCX)

(66 trang)
w