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

BÁO cáo bài tập lớn hệ THỐNG THỜI GIAN THỰC đề tài tìm HIỂU hệ điều HÀNH TI RTOS

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

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CƠ KHÍ
***

BÁO CÁO BÀI TẬP LỚN HỆ THỐNG THỜI GIAN THỰC
ĐỀ TÀI: TÌM HIỂU HỆ ĐIỀU HÀNH TI-RTOS
Nhóm: Hướng nội Part-time Lớp: L01
Giáo viên hướng dẫn:

TS. Ngơ Hà Quang Thịnh

Thành phố Hồ Chí Minh - 09/2022


DANH SÁCH THÀNH VIÊN
Tên thành viên
Lê Thành Phúc
Vũ Đăng Khoa
Trương Đức Duy
Cao Phú Hải
Trần Huy Bảo
Nguyễn Tường Minh

MSSV
1910453
1911422
1910097
1910151
1910048
1910343



Chức vụ
Nhóm trưởng
Thành viên
Thành viên
Thành viên
Thành viên
Thành viên

Đánh giá công
việc (%)

1


MỤC LỤC
DANH MỤC HÌNH ẢNH..................................................................................................3
CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH TI-RTOS..........................................4
1.1. TI-RTOS là gì?........................................................................................................4
1.2. Các thành phần của TI-RTOS..................................................................................4
1.2.1. SYS/BIOS.........................................................................................................4
1.2.2. UIA: TI-RTOS Instrumentation.........................................................................5
1.2.3. NDK: TI-RTOS Networking.............................................................................6
1.2.4. TI-RTOS Network Services..............................................................................6
1.2.5. TI-RTOS Drivers and Board Initialization........................................................6
1.2.6 XDCtools............................................................................................................ 6
1.3. SYS/BIOS Kernel Services......................................................................................7
1.3.1. Threading Services............................................................................................8
1.3.2. Synchronization Modules (Inter Processor Communication Services)............11
1.4. Tại sao phải sử dụng TI-RTOS?............................................................................13

CHƯƠNG 2: ƯU ĐIỂM VÀ NHƯỢC ĐIỂM.................................................................15
2.1. Ưu điểm.................................................................................................................15
2.2. Nhược điểm...........................................................................................................17
2.3. So sánh...................................................................................................................18
CHƯƠNG 3: ỨNG DỤNG CỦA TI-RTOS.....................................................................23
3.1. Máy bán nước tự động...........................................................................................23
3.1.1. Một máy bán nước tự động cần phải có những gì?..........................................23
3.1.2. Cách tiếp cận thông thường.............................................................................24
3.1.3. Cách tiếp cận ứng dụng hệ thống thời gian thực..............................................25
3.1.4. Phân tích ưu điểm khi tiếp cận ứng dụng hệ thống thời gian thực...................26
3.2. Phanh ABS............................................................................................................. 27
3.2.1. Tổng quan về hệ thống phanh ABS.................................................................27
3.2.2. Cấu tạo của hệ thống phanh ABS....................................................................28
3.2.3. Nguyên lí hoạt động........................................................................................33
3.3. Hệ thống kiểm soát độ cao cho UAV.....................................................................33
2


TÀI LIỆU THAM KHẢO................................................................................................40
DANH MỤC HÌNH ẢNH
Hình 1: Kernel Services.....................................................................................................8
Hình 2: Threading Services................................................................................................9
Hình 3: Counting Semaphore...........................................................................................12
Hình 4: Queue..................................................................................................................13
Hình 5: Download miễn phí tại trang chủ của TI.............................................................15
Hình 6: RTOS Components.............................................................................................15
Hình 7: TI-RTOS Device's Drivers..................................................................................16
Hình 8: Thời gian thành lập và phát triển của TI-RTOS và FreeRTOS............................17
Hình 9: Máy bán nước tự động........................................................................................23
Hình 10: Sử dụng máy bán nước tự động.........................................................................23

Hình 11: Phá vỡ máy bán nước tự động...........................................................................24
Hình 12: Sơ đồ cách tiếp cận thông thường.....................................................................24
Hình 13: Sơ đồ cách tiếp cận kết hợp RTOS....................................................................26
Hình 14: Cấu tạo hệ thống phanh ABS............................................................................28
Hình 15: Cảm biến gia tốc................................................................................................29
Hình 16: Các trạng thái của cảm biến gia tốc...................................................................30
Hình 17: Cảm biến kiểu bán dẫn......................................................................................31
Hình 18: Bộ chấp hành hệ thống phanh ABS...................................................................31
Hình 19: Bộ điều khiển ECU...........................................................................................32
Hình 20: Oakland University quadrotor with the avionics block.....................................34
Hình 21: Common quadrotor avionics block....................................................................35
Hình 22: The Quadrotor avionics block with RTOS approach.........................................36
Hình 23: Control system diagram.....................................................................................38

3


CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH TI-RTOS
1.1. TI-RTOS là gì?
TI-RTOS là một hệ sinh thái cơng cụ nhúng có thể mở rộng cho các thiết bị của TI.
Nó được mở rộng từ RTOS Kernel (SYS / BIOS) thành một RTOS hoàn chỉnh cung cấp
giải pháp bao gồm các thành phần middleware bổ sung và các driver cho các thiết bị. Qua
cung cấp các thành phần phần mềm hệ thống thiết yếu đã được kiểm tra trước và được
tích hợp sẵn, TI-RTOS cho phép tập trung vào việc phân biệt ứng dụng của mình.
Những thành phần của TI-RTOS:


TI-RTOS Kernel (SYS/BIOS)




TI-RTOS Instrumentation (UIA)



TI-RTOS Networking (NDK)



TI-RTOS Network Services



MSPWare, Mware, TivaWare, CC26xxWare, CC26xxWare, and the CC3200
SDK's driverlib



XDCtools

1.2. Các thành phần của TI-RTOS
1.2.1. SYS/BIOS
TI-RTOS là một hệ sinh thái nhúng có thể mở rộng cho các thiết bị của TI. Nó được
mở rộng từ một kernel đa nhiệm thời gian thực (SYS/BIOS) để trở thành một giải pháp
RTOS hoàn chỉnh bao gồm những thành phần middleware được thêm vào và các driver
của thiết bị.
SYS / BIOS cung cấp các lợi ích sau:


Tất cả các đối tượng SYS / BIOS có thể được cấu hình tĩnh hoặc động.




Để giảm thiểu kích thước bộ nhớ, các API được mơ-đun hóa để chỉ những API
được sử dụng bởi chương trình cần được ràng buộc vào chương trình thực thi.
4


Ngồi ra, các đối tượng được cấu hình tĩnh để giảm kích thước mã bằng cách
loại bỏ nhu cầu bao gồm các cuộc gọi tạo đối tượng.


Kiểm tra lỗi và gỡ lỗi thiết bị có thể định cấu hình và có thể được xóa hồn
tồn khỏi phiên bản mã sản xuất để tối đa hóa hiệu suất và giảm thiểu kích
thước bộ nhớ.



Hầu hết tất cả các lệnh gọi hệ thống đều cung cấp hiệu suất xác định để cho
phép các ứng dụng đáp ứng thời gian thực một cách đáng tin cậy.



Để cải thiện hiệu suất, dữ liệu thiết bị đo (chẳng hạn như dữ liệu log) được
định dạng trên máy chủ.



Mơ hình phân luồng cung cấp các loại luồng cho nhiều trường hợp khác nhau.
Hardware interrupt, software interrupt, task, idle đều được hỗ trợ. Chúng ta có

thể kiểm soát các ưu tiên và các đặc điểm chặn của các luồng thông qua sự lựa
chọn của bạn về các loại luồng.



Các cấu trúc hỗ trợ giao tiếp và đồng bộ hóa giữa các luồng được cung cấp.
Này bao gồm semaphore, mailbox, event, gate và message có độ dài thay đổi.



Dịch vụ quản lý bộ nhớ động cung cấp cả phân bổ khối có kích thước thay đổi
và kích thước cố định.



Bộ điều phối ngắt xử lý các hoạt động lưu / khôi phục ngữ cảnh mức thấp và
cho phép ngắt các quy trình dịch vụ được viết hồn tồn bằng C.



Dịch vụ hệ thống hỗ trợ việc bật / tắt ngắt và cắm các vectơ ngắt, bao gồm
ghép các vectơ ngắt vào nhiều nguồn.

1.2.2. UIA: TI-RTOS Instrumentation
The Unified Instrumentation Architecture (Kiến trúc thiết bị đo đạc hợp nhất) (UIA)
cung cấp nội dung đích hỗ trợ việc tạo và thu thập dữ liệu thiết bị đo đạc.
Bộ công cụ Phân tích Hệ thống (System Analyzer), là một phần của CCS, cung cấp
một cách nhất quán và di động cho phần mềm thiết bị. Nó bao gồm các chế độ xem có
thể được mở từ cơng cụ > Trình phân tích và cơng cụ RTOS > trình phân tích hệ thống
trong CCS. Nó cho phép phần mềm được sử dụng lại với nhiều loại thiết bị silicon, ứng

5


dụng phần mềm và bối cảnh sản phẩm. Nó hoạt động cùng với UIA để cung cấp khả năng
hiển thị về hiệu suất và hành vi thời gian thực của phần mềm chạy trên các thiết bị lõi
đơn và đa lõi nhúng của TI.
1.2.3. NDK: TI-RTOS Networking
Bộ công cụ phát triển mạng (Network Developer's Kit) (NDK) là một ngăn xếp
mạng hoạt động trên SYS/BIOS, là nền tảng để phát triển và hiển thị các ứng dụng hỗ trợ
mạng trên TI Processor, hiện chỉ giới hạn ở dòng TMS320C6000 và ARM. Ngăn xếp
NDK đóng vai trị như một nền tảng tạo mẫu nhanh để phát triển và đóng gói các ứng
dụng xử lý mạng và gói. Nó có thể được sử dụng để thêm kết nối mạng vào các ứng dụng
hiện có để liên lạc, cấu hình và kiểm sốt. Sử dụng các thành phần được cung cấp trong
NDK, các nhà phát triển có thể nhanh chóng chuyển từ phát triển các concept sang các
triển khai ứng dụng.
1.2.4. TI-RTOS Network Services
Thành phần Dịch vụ Mạng cung cấp các giao thức mạng lớp ứng dụng, chẳng hạn
như Máy khách HTTP và Máy khách SNTP. Chúng được thiết kế cho bộ xử lý nhúng TI.
1.2.5. TI-RTOS Drivers and Board Initialization
TI-RTOS cung cấp trình điều khiển (driver) cho các dịng thiết bị mà gói * Ware
được TI-RTOS hỗ trợ. Các gói * Ware này bao gồm TivaWare, MSPWare, MWare,
CC26xxWare và CC3200SDK Driverlib.
Các thư viện *Ware được phân phối với TI-RTOS đã được giảm kích thước để chỉ
bao gồm các phần cần thiết của thư viện.
1.2.6 XDCtools
XDCtools là một thành phần phần mềm riêng biệt được cung cấp bởi Texas
Instruments cung cấp các công cụ cơ bản cần thiết để định cấu hình và xây dựng SYS /
BIOS, NDK và UIA.

6



• XDCtools cung cấp Trình chỉnh sửa cấu hình XGCONF và ngôn ngữ kịch bản
được sử dụng trong các tệp * .cfg. Điều này được sử dụng để định cấu hình các mơ-đun
trong một số thành phần tạo nên TI-RTOS.
• XDCtools cung cấp các công cụ được sử dụng để xây dựng tệp cấu hình. Các cơng
cụ này được CCS sử dụng tự động nếu dự án của bạn chứa tệp *.cfg. Bước xây dựng này
tạo ra các tệp mã nguồn sau đó được biên dịch và liên kết với mã ứng dụng của bạn.
• XDCtools cung cấp một số mô-đun và API thời gian chạy mà TI-RTOS và các
thành phần của nó tận dụng để phân bổ bộ nhớ, ghi nhật ký, kiểm sốt hệ thống, v.v.
• XDCtools đơi khi được gọi là "RTSC" (Thành phần phần mềm thời gian thực), là
tên của dự án mã nguồn mở trong hệ sinh thái Eclipse.org để cung cấp các thành phần
phần mềm có thể tái sử dụng (được gọi là "gói") để sử dụng trong các hệ thống nhúng.
1.3. SYS/BIOS Kernel Services
Những Kernel Services chính:


Threading Services: Task, Software Interrupt, Clock, Idle,



Inter Processor Communication Services: Event, Mailbox, Semaphore, Gate



Memory Managers: Heap, Fixed-size buffer



Debug and Analysis Features: Logging, Diagnostics, Hooks, Stack checking


7


Hình 1: Kernel Services
1.3.1. Threading Services
Nhiều ứng dụng thời gian thực phải thực hiện một số chức năng khác nhau cùng
một lúc, thường là để đáp ứng với các sự kiện bên ngồi như tính khả dụng của dữ liệu
hoặc sự hiện diện của tín hiệu điều khiển. Cả hai chức năng được thực hiện và khi chúng
đều quan trọng.
Các chức năng này được gọi là luồng. Các hệ thống khác nhau sẽ định nghĩa các
luồng hẹp hoặc rộng. Một luồng là một điểm kiểm sốt duy nhất có thể kích hoạt một
cuộc gọi hàm (function call) hoặc một thói quen dịch vụ gián đoạn (ISR Interrupt Service
Routine).
SYS/BIOS cho phép ứng dụng được tổ chức như một tập hợp các luồng, mỗi luồng
thực hiện một chức năng mơ-đun hóa. Các chương trình đa luồng chạy trên một bộ xử lý
duy nhất bằng cách cho phép các luồng có mức độ ưu tiên cao hơn ngăn chặn các luồng
8


có mức độ ưu tiên thấp hơn và bằng cách cho phép các loại tương tác khác nhau giữa các
luồng, bao gồm chặn (blocked), giao tiếp (communicating) và đồng bộ hóa
(synchronizing).
Các chương trình ứng dụng thời gian thực được tổ chức theo kiểu mô-đun như vậy trái
ngược với một polling loop duy nhất để dễ dàng hơn để thiết kế, thực hiện và duy trì.
SYS /BIOS cung cấp hỗ trợ cho một số loại luồng chương trình với các ưu tiên khác
nhau. Các loại luồng (từ mức độ ưu tiên cao nhất đến thấp nhất) là:


Hardware interrupts (Hwi), bao gồm cả Timer functions




Software interrupts (Swi), bao gồm Clock functions



Tasks (Task)



Background thread (Idle)

Hình 2: Threading Services
Hardware interrupt thread (Hwi):
Các luồng Hwi (cịn được gọi là Quy trình dịch vụ gián đoạn hoặc ISR) là các luồng có
mức độ ưu tiên cao nhất trong ứng dụng SYS / BIOS. Các luồng Hwi được sử dụng để
thực hiện thời gian các nhiệm vụ quan trọng phải tuân theo thời gian nghiêm ngặt. Chúng
9


được kích hoạt để đáp ứng với sự kiện khơng đồng bộ bên ngồi (ngắt) xảy ra trong mơi
trường thời gian thực. Các luồng Hwi ln chạy đến khi hồn thành nhưng có thể được
xen ngang tạm thời bởi các luồng Hwi được kích hoạt bởi các ngắt khác, nếu được cho
phép (enabled).
Software interrupt thread (Swi):
Ngắt phần mềm cung cấp các mức độ ưu tiên bổ sung giữa các luồng Hwi và các luồng
Task. Khơng giống như Hwis được kích hoạt bởi các ngắt phần cứng, Swis được kích
hoạt theo chương trình bằng cách gọi một số mơ-đun API Swi nhất định. Swis xử lý các
luồng chịu sự hạn chế về thời gian ngăn cản chúng được chạy dưới dạng các tác vụ,

nhưng có thời hạn khơng nghiêm ngặt như thời hạn của Hwi. Giống như của Hwi, các đối
tượng của Swi ln chạy đến khi hồn thành. Swis cho phép Hwis trì hỗn q trình xử
lý ít quan trọng hơn đối với một luồng có mức độ ưu tiên thấp hơn, giảm thiểu thời gian
CPU dành cho một thói quen dịch vụ gián đoạn, nơi các Hwis khác có thể bị cấm
(disabled). Swis chỉ yêu cầu đủ không gian để lưu ngữ cảnh cho mỗi mức ưu tiên ngắt
Swi, trong khi Task sử dụng một ngăn xếp riêng cho từng luồng.
Task Thread:
Luồng tác vụ có mức độ ưu tiên cao hơn luồng nền Idle và thấp hơn ngắt phần mềm.
Luồng tác vụ khác với ngắt phần mềm ở chỗ chúng có thể chờ đợi (blocked)
trong q trình thực hiện cho đến khi có sẵn các nguồn lực do CPU cung cấp. Các tác vụ
yêu cầu một ngăn xếp riêng cho từng tác vụ. SYS /BIOS cung cấp một số cơ chế có thể
được sử dụng cho giao tiếp giữa các tác vụ và đồng bộ hóa. Chúng bao gồm Semaphores,
Sự kiện (Event), Hàng đợi tin nhắn (Queue) và Hộp thư (Mailbox).
Idle Thread:
Các luồng idle thực thi ở mức ưu tiên thấp nhất trong ứng dụng SYS / BIOS và được thực
thi lần lượt trong một vòng lặp liên tục (Vòng lặp nhàn rỗi). Sau khi hàm main return,
một ứng dụng SYS/BIOS gọi thói quen khởi động (start up routine) cho mỗi mơ-đun SYS
/ BIOS và sau đó rơi vào Vòng lặp nhàn rỗi. Mỗi luồng phải đợi tất cả những luồng khác
hồn thành trước khi nó được gọi lại. Vòng lặp nhàn rỗi chạy liên tục ngoại trừ khi nó
được ưu tiên bởi các luồng có mức độ ưu tiên cao hơn.
10


1.3.2. Synchronization Modules (Inter Processor Communication Services)
Đây là những mô-đun có thể được sử dụng để đồng bộ hóa quyền truy cập vào các
tài nguyên được chia sẻ, bao gồm:


Semaphore




Event Module



Gate



Mailbox



Queue
Semaphore
SYS/BIOS cung cấp một bộ chức năng cơ bản để đồng bộ hóa và giao tiếp giữa các

tác vụ dựa trên semaphores. Semaphores thường được sử dụng để điều phối quyền truy
cập vào một tài nguyên được chia sẻ giữa một tập hợp các nhiệm vụ cạnh tranh.
Các loại semaphore:


Counting semaphore



Binary semaphore




FIFO semaphore



Priority-aware semaphore

Theo mặc định, semaphores là counting semaphores. Counting semaphores giữ một số
lượng nội bộ của số lượng tài nguyên tương ứng có sẵn. Khi số lượng lớn hơn 0, các task
không chặn khi nhận được một semaphore. Giá trị đếm cho một semaphore chỉ bị giới
hạn bởi kích thước của bộ đếm 16 bit. Nếu Asserts bị tắt, số lượng sẽ lặp lại từ đầu mà
khơng có thông báo nếu số đếm được tăng lên từ giá trị 16 bit tối đa.
Binary semaphores có sẵn hoặc khơng có sẵn. Giá trị của chúng khơng thể tăng lên vượt
quá 1. Do đó, chúng nên được sử dụng để điều phối quyền truy cập vào tài nguyên được
chia sẻ bởi tối đa hai nhiệm vụ. Binary semaphores cung cấp hiệu suất tốt hơn so với
counting semaphores.
11


Hình 3: Counting Semaphore
Event
Event cung cấp một phương tiện để giao tiếp giữa và đồng bộ hóa các luồng. Chúng
tương tự như Semaphore ngoại trừ việc chúng cho phép chỉ định event nhiều điều kiện
phải xảy ra trước khi luồng quay trở lại.
Một đối tượng Sự kiện được sử dụng với các lệnh gọi đến "pend" và "post", giống như
đối với Semaphore. Tuy nhiên, các cuộc gọi đến Event_pend() cũng chỉ định những sự
kiện cần chờ đợi và các lệnh gọi đến Event_post() chỉ định sự kiện nào đang được đăng.
Gate
Gates là thiết bị để ngăn chặn truy cập đồng thời vào các vùng mã quan trọng. Các
gate khác nhau việc triển khai khác nhau về cách khóa các khu vực quan trọng.

Các luồng có thể được ưu tiên trước (preempted) so với các luồng ề khác có mức độ
ưu tiên cao hơn và một số phần của mã cần phải được được hoàn thành bởi một luồng
trước khi chúng có thể được thực thi bởi một luồng khác. Mã để sửa đổi biến tồn cục là
một ví dụ phổ biến về một khu vực quan trọng có thể cần được bảo vệ bởi một Cổng.

12


Gates thường hoạt động bằng cách vơ hiệu hóa một số mức độ ưu tiên như vơ hiệu
hóa chuyển đổi tác vụ hoặc thậm chí gián đoạn phần cứng, hoặc bằng cách sử dụng một
semaphore nhị phân.
Mailbox
Mô-đun ti.sysbios.knl.Mailbox cung cấp một tập hợp các chức năng để quản lý
mailbox. Mailbox có thể được sử dụng để chuyển bộ đệm từ tác vụ này sang tác vụ khác
trên cùng một bộ xử lý. Một phiên bản Mailbox có thể được sử dụng bởi nhiều người đọc
và người viết. Mô-đun Hộp thư sao chép bộ đệm vào bộ đệm bên trong có kích thước cố
định. Kích thước và số lượng của các bộ đệm này được chỉ định khi một phiên bản Hộp
thư được tạo (hoặc xây dựng). Một bản sao được thực hiện khi một bộ đệm được gửi đi
thông qua Mailbox_post(). Một bản sao khác xảy ra khi bộ đệm được truy xuất thông qua
một Mailbox_pend (). Mailbox_create() và Mailbox_delete() được sử dụng để tạo và xoá
hộp thư, tương ứng. Bạn có thể cũng tạo các đối tượng hộp thư tĩnh. Hộp thư có thể được
sử dụng để đảm bảo rằng luồng của bộ đệm đến không vượt quá khả năng của hệ thống
để xử lý các bộ đệm đó.
Queue
Mơ-đun ti.sysbios.knl.Queue cung cấp hỗ trợ tạo danh sách các đối tượng. Hàng đợi
được triển khai dưới dạng danh sách được liên kết đơi, để các phần tử có thể được chèn
hoặc xóa khỏi bất kỳ vị trí nào trong danh sách và để Hàng đợi khơng có kích thước tối
đa.

Hình 4: Queue


13


1.4. Tại sao phải sử dụng TI-RTOS?
Những vi xử lí hiện nay càng ngày càng trở nên phát triển đến phức tạp: TCP/IP,
USB, kết nối không dây, giao diện cảm ứng. Những nhà phát triển nhúng hiện nay muốn
tập trung vào phát triển ứng dụng cụ thể một cách nhanh chóng, do đó những chức năng
thường dùng như TCP/IP hay USB được sử dụng hơn là các giao thức truyền thông
truyền thống như SPI, I2C,… và TI-RTOS cung cấp những chức năng đó.
TI-RTOS đáp ứng nhu cầu về một hệ sinh thái phần mềm lớn mạnh cho phép những
nhà phát triển nhúng bên thứ ba có thể tiếp cận.
SYS/BIOS Kernel được thiết kế cho các ứng dụng thời gian thực, vì thế các tác vụ
của hệ điều hành sẽ được hoàn thành trong một khoản thời gian cụ thể.
Độ trễ của ngắt thấp. Ở những vi điều khiển ARM Cortex-M hoặc C-2000 đươc sử
dụng để điều khiển động động cơ điện hard-realtime, Kernel có một chức năng là zerolatency interrupt, cho phép tác vụ ngắt được thực hiện ngay tức thì
Đáp ứng với những dịng vi điều khiển có bộ nhớ bị giới hạn
Kernel system call có thể tiếp cận như C function call

14


CHƯƠNG 2: ƯU ĐIỂM VÀ NHƯỢC ĐIỂM
2.1. Ưu điểm

Hình 5: Download miễn phí tại trang chủ của TI
- TI-RTOS là một hệ thống thời gian thực được hỗ trợ bởi TI và nó là hồn tồn miễn phí.
- Được tích hợp đầy đủ trong môi trường phát triển TI’s Code Composer Studio
- Dễ dàng phát triển phần mềm với một môi trường nhúng đầy đủ và ổn định. Cung
cấp đầy đủ trình quản lý và các chức năng hỗ trợ thiết bị ngoại vi như:

+ Hệ thống thời gian thực đa nhiệm với nhân TI-RTOS Kernel (SYS/BIOS): hệ
thống này cung cấp các giao diện tiêu chuẩn đã qua kiểm định để quản lý Interrupts,

Hình 6: RTOS Components

15


Timer, UART, I2C, SPI, SPI-SD, PWM, Watchdog và các thiết bị ngoại vi làm tiết kiệm
năng lượng.
Hình 1.2 – TI-RTOS kernel quản lý hệ thống
+ Có đầy đủ các giao thức truyền thông, drivers phổ biến hiện nay như Ethernet,
USB, UART, I2C và SD

Hình 7: TI-RTOS Device's Drivers
+ Cung cấp giao thức TCP/IP: giao thức này giúp ta tạo một mạng ảo khi nhiều
mạng máy tính được kết nối với nhau. Mục đích của mơ hình TCP/IP là cho phép giao
tiếp trên khoảng cách lớn.
- Khả năng kết nối mạng ngay lập tức với các thành phần đã được tích hợp khi phát
triển phần mềm. Người dùng không cần phải thiết lập code, ghép mã hoặc gặp trường
hợp version của một bộ phận không phù hợp trong công việc. Điều này giúp các lập trình
viên giảm đáng kể thời gian set up và kiểm tra ban đầu.
16


- Dễ dàng thêm các tác vụ, tính năng mới với các tác vụ có độ ưu tiên thấp hơn trên
phần mềm sẽ không làm gián đoạn đến thời gian đáp ứng của các tác vụ có độ ưu tiên cao
hơn, các tác vụ của hệ thống chính.
- Cho phép dễ dàng loại bỏ hoặc thêm lại các chức năng khơng cần thiết trong q
trình phát triển phần mềm.

- Hệ thống tương thích với FAT (File Allocation Table). FAT là một định dạng hệ
thống tập tin mà ta thường thấy ở USB, máy chụp hình, máy quay phim, máy nghe nhạc
hay đầu đọc đĩa, …
2.2. Nhược điểm
- Khơng cịn được ưu tiên sử dụng trong các dự án phát triển phần mềm, chỉ hỗ trợ
tốt cho một số họ MCU của TI như C26xx, C28xx, C28FM3x, TM4Cx, MSP430,
MSP432, CC3200, …

Hình 8: Thời gian thành lập và phát triển của TI-RTOS và FreeRTOS
- TI-RTOS cần thêm một số thời gian để xử lý các thông tin về tác vụ trước và sau
khi đưa nó vào xử lý trong CPU nên hiệu suất sử dụng bị ảnh hưởng (do yêu cầu tính
ràng buộc về thời gian nên độ phức tạp cao và xử lý cần đảm bảo độ an toàn).
17


- Kém hiệu quả trong việc quản lý đa tác vụ. Vì vậy nó khơng được ưu tiên cho
những hệ thống đa tác vụ.
- Các thuật toán bên trong rất phức tạp cho việc lập trình.
- Một Task sẽ thuộc 1 trong 4 trạng thái: Ready, Running, Blocked và Suspended.
Để duy trì độ chính xác và giảm sai số, TI-RTOS chỉ tập trung vào một task tại một thời
điểm nhất định để Running. Các Tasks có độ ưu tiên thấp hơn sẽ cần đợi để được thực
thi. Đôi khi không có giới hạn về thời gian chờ.
- TI-RTOS khơng thể tách và quản lý các bộ nhớ thật sự hiệu quả do đó dễ gặp sự
cố trong q trình sử dụng.
2.3. So sánh
- So sánh giữa TI-RTOS, RTX (CMSIS-RTOS), FreeRTOS và Micrium khi nhúng trên
MCU MSP432
RTOS
TI-RTOS


ARM

by TI

by Keil


Schedule 
r type

Pre-

emptive

RTX

FreeRTOS
by

Real

Time

Engineers Ltd.

Micrium
by Micrium

Round-


robin (default)





emptive



emptive



emptive



ve

PreCooperati

PreCooperati

Pre-

ve
CMSIS










complia

18


nt



Tasks



Swis



Hwis



Software


timers



Tasks



Swis



Software

timers

Semaphor 

es

Semaphor

es



Mutex




Mutex



Mailbox



Mailbox



Events



Events



Latency



Co-

routines




(task share stack) 


Direct

Tasks
Software

timers

notifications


t

Tasks

TASK

Services

Interrup



latency interrupts
(115

cycles for ISRs
with


Software

timers


Semaphor

e


Mutex



Events



Zero-



Semaphor

es


Mutex




Mailbox



Events



Systick

latency interrupts

Zero-

supported



TI-RTOS



Zero-

latency interrupts
supported

calls)


sRound-robin
(default)


Pre-

emptive


Cooperati

ve
Device



Systick

Specific



Interrupts

Support



Exception




Systick



Systick

19


handling

Device
Drivers



SPI



SPI-SD



I2C




UART



Timer



RTC



Timestam







< 4K

5K – 10K

5K – 24K

p

Flash

Size

Watchdog

4K - 10K




Tick



Tick

Low

suppression

suppression

Power





Support

specific


Device

Manager

Device

Power specific support
coming soon

Tick

suppression


Pre

post

and
sleep

macros

for

customization


Idle


task



Idle Task

Hook


Tick

suppression
coming soon

hook
Object
Viewer
Executio
n Graph






3rd

party 


Standalone





3rd


party
20


Standalone

Logging





3rd

party 

Standalone
RTOS
Config
















Tool
Signal



Plots

(GUI composer)

Compile



CCS

r




IAR

support



GCC

License



Certified 
Cost

Free

BSD
EULA



IAR



Keil




GCC



Cosmic



BSD



CCS



IAR



Keil



GCC




Tasking



MIT



CCS



IAR



Micrium



SIL3/

SIL4
Free

Free

Free

Bảng 1 – So sánh một vài RTOS được nhúng trên MSP4321

- So sánh về giao thức IoT khi sử dụng một vài loại RTOS:
RTOS

1

IoT Protocols

Availability of IDE tools

Supporting

Source Code

Programming

/>
21


language
TI-RTOS
by TI
ThreadX
by

Express

Logic

µC/OS




MQTT



MQTT



CoAP



DDS



HTTP



MQTT

II/III 

by Micrium

FreeRTOS


CoAP



DDS



HTTP



MQTT



CoAP

by Real Time 

DDS

Engineers Ltd.



HTTP




JSON



MQTT



DDS

QNX Neutrino
by BlackBerry
Ltd

Open Source

CCS IDE

C/C++

Proprietary

GUIX

C/C++

Open Source

Atmel Studio

IDE

C

VS, VS code,
Open Source

Arduino

IDE,

STM32cubeIDE,

C/C++, Java



Closed source

QNX
Momentics-IDE

C/C++, Java

Bảng 2 – RTOS with IoT2

2

/>
22



CHƯƠNG 3: ỨNG DỤNG CỦA TI-RTOS
3.1. Máy bán nước tự động
3.1.1. Một máy bán nước tự động cần phải có những gì?

Hình 9: Máy bán nước tự động
Một máy bán nước tự động hiệu quả phải hoạt động chính xác đúng theo lựa chọn
của khách hàng. Từ việc nhận tiền, trả hóa đơn cho đến nhận diện được sản phẩm nào đã
hết hàng. Bên cạnh đó, máy bán nước cũng cần phải điều hòa được nhiệt độ bên trong.

Hình 10: Sử dụng máy bán nước tự động

23


Xa hơn nữa, máy cũng cần phải trang bị hệ thống để giao tiếp từ xa để thơng báo
tình trạng hết hàng để kịp thời bổ sung và hệ thống bảo vệ ngăn chặn các hành vi phá
hoại.

Hình 11: Phá vỡ máy bán nước tự động
Không để bất kỳ trường hợp lỗi không lương trước nào xảy ra
3.1.2. Cách tiếp cận thơng thường
Có thể đề ra phương án đơn giản bằng flowchart sau:

Hình 12: Sơ đồ cách tiếp cận thông thường
Bên cạnh đó, ta cịn sử dụng đáp ứng ngắt cho từng nút bấm
Bây giờ, có thể xem xét phương án này một cách chi tiết hơn
a. Hoạt động một cách không cần thiết
24



×