Các thành phần của TI-RTOS
SYS/BIOS
TI-RTOS là một hệ sinh thái nhúng mở rộng cho các thiết bị của Texas Instruments, phát triển từ kernel đa nhiệm thời gian thực SYS/BIOS Hệ thống này cung cấp một giải pháp RTOS hoàn chỉnh với các thành phần middleware bổ sung và driver thiết bị, đáp ứng nhu cầu của các ứng dụng nhúng.
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.
Để tối ưu hóa kích thước bộ nhớ, các API được thiết kế theo mô-đun, chỉ những API cần thiết cho chương trình mới được liên kết vào chương trình thực thi.
Ngoà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ể cấu hình giúp tối ưu hóa hiệu suất, đồng thời giảm thiểu kích thước bộ nhớ bằng cách loại bỏ hoàn toàn chúng khỏi phiên bản mã sản xuất.
Hầu hết các lệnh gọi hệ thống đều đảm bảo hiệu suất ổn định, giúp các ứng dụng hoạt động hiệu quả trong thời gian thực.
• Để 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 cho phép cung cấp nhiều loại luồng phù hợp với các tình huống khác nhau, bao gồm ngắt phần cứng, ngắt phần mềm, tác vụ và trạng thái nhàn rỗi Người dùng có thể kiểm soát ưu tiên và đặc điểm chặn của các luồng thông qua việc lựa chọn các loại luồng phù hợp.
Các cấu trúc hỗ trợ giao tiếp và đồng bộ hóa giữa các luồng bao gồm semaphore, mailbox, event, gate và message với độ 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 chịu trách nhiệm xử lý các hoạt động lưu trữ và khôi phục ngữ cảnh ở mức thấp, đồng thời cho phép ngắt các quy trình dịch vụ được lập trình hoàn toàn bằng ngôn 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.
UIA: TI-RTOS Instrumentation
The Unified Instrumentation Architecture (UIA) offers a comprehensive framework that facilitates the creation and collection of measurement device data.
Bộ công cụ Phân tích Hệ thống (System Analyzer) trong CCS cung cấp một giải pháp nhất quán và di động cho phần mềm thiết bị, cho phép tái sử dụng phần mềm trên nhiều loại silicon và ứng dụng khác nhau Người dùng có thể truy cập các chế độ xem từ công cụ > Trình phân tích và công cụ RTOS > trình phân tích hệ thống Hệ thống này hoạt động cùng với UIA để cung cấp cái nhìn sâu sắc về hiệu suất và hành vi thời gian thực của phần mềm trên các thiết bị lõi đơn và đa lõi nhúng của TI.
NDK: TI-RTOS Networking
Bộ công cụ phát triển mạng (NDK) là ngăn xếp mạng hoạt động trên SYS/BIOS, cung cấp nền tảng cho việc phát triển và triển khai ứng dụng mạng trên các bộ vi xử lý TI, đặc biệt là dòng TMS320C6000 và ARM NDK cho phép các nhà phát triển nhanh chóng tạo mẫu và đóng gói ứng dụng xử lý mạng, đồng thời có thể thêm kết nối mạng vào các ứng dụng hiện có để phục vụ cho việc liên lạc, cấu hình và kiểm soát Với các thành phần có sẵn trong NDK, quá trình chuyển đổi từ ý tưởng sang triển khai ứng dụng trở nên dễ dàng và hiệu quả hơn.
TI-RTOS Network Services
Dịch vụ Mạng cung cấp các giao thức lớp ứng dụng như Máy khách HTTP và Máy khách SNTP, được tối ưu hóa cho bộ xử lý nhúng TI.
TI-RTOS Drivers and Board Initialization
TI-RTOS cung cấp trình điều khiển cho các thiết bị thuộc các gói *Ware được hỗ trợ, 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.
XDCtools
XDCtools là phần mềm độc lập do Texas Instruments cung cấp, cung cấp các công cụ thiết yếu để cấu hình và phát triển SYS/BIOS, NDK và UIA.
XDCtools cung cấp Trình chỉnh sửa cấu hình XGCONF và ngôn ngữ kịch bản cho các tệp *.cfg, giúp cấu hình các mô-đun trong các thành phần của TI-RTOS.
XDCtools cung cấp các công cụ hỗ trợ xây dựng tệp cấu hình cho dự án của bạn Nếu dự án có tệp *.cfg, CCS sẽ tự động sử dụng các công cụ này Quá trình 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 nhiều mô-đun và API thời gian chạy cho TI-RTOS, giúp tối ưu hóa việc phân bổ bộ nhớ, ghi nhật ký và kiểm soát hệ thống.
XDCtools, hay còn gọi là "RTSC" (Thành phần phần mềm thời gian thực), là một dự án mã nguồn mở thuộc hệ sinh thái Eclipse.org Dự án này 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", để áp dụng trong các hệ thống nhúng.
SYS/BIOS Kernel Services
Threading Services
Nhiều ứng dụng thời gian thực cần thực hiện nhiều chức năng đồng thời để phản ứng với các sự kiện bên ngoài, chẳng hạn 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 này đều quan trọng và cần được thực hiện một cách hiệu quả.
Các chức năng được gọi là luồng, và các hệ thống khác nhau có thể định nghĩa luồng theo cách hẹp hoặc rộng Một luồng hoạt động như một điểm kiểm soát duy nhất, có khả năng kích hoạt cuộc gọi hàm hoặc thói quen dịch vụ gián đoạn (ISR - Interrupt Service Routine).
SYS/BIOS cho phép tổ chức ứng dụng thành 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 hoạt động trên một bộ xử lý duy nhất, cho phép các luồng ưu tiên cao hơn chặn các luồng ưu tiên thấp hơn Hơn nữa, SYS/BIOS hỗ trợ nhiều loại tương tác giữa các luồng, bao gồm chặn, giao tiếp và đồng bộ hóa.
Các chương trình ứng dụng thời gian thực được tổ chức theo kiểu mô-đun, giúp thiết kế, thực hiện và duy trì dễ dàng hơn so với việc sử dụng một polling loop duy nhất SYS/BIOS hỗ trợ nhiều loại luồng chương trình với các mức độ ưu tiên khác nhau, từ cao nhất đến thấp nhất.
• Hardware interrupts (Hwi), bao gồm cả Timer functions
• Software interrupts (Swi), bao gồm Clock functions
Các luồng Hwi, hay còn gọi là Quy trình dịch vụ gián đoạn (ISR), là các luồng ưu tiên cao nhất trong ứng dụng SYS / BIOS Chúng thực hiện các nhiệm vụ quan trọng với thời gian nghiêm ngặt và được kích hoạt bởi các sự kiện không đồng bộ bên ngoài (ngắt) trong môi trường thời gian thực Các luồng Hwi luôn chạy đến khi hoàn thành, nhưng có thể bị tạm ngưng bởi các luồng Hwi khác nếu được phép.
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à Task Khác với Hwis được kích hoạt bởi phần cứng, Swis được gọi thông qua các mô-đun API nhất định Swis xử lý các luồng có thời hạn không nghiêm ngặt, cho phép trì hoãn các tác vụ ít quan trọng hơn để tối ưu hóa thời gian CPU Các đối tượng của Swi luôn chạy đến khi hoàn thành, trong khi Hwi có thể bị hoãn lại Swis chỉ yêu cầu không gian để lưu trữ ngữ cảnh cho từng mức ưu tiên, trong khi Task sử dụng ngăn xếp riêng cho mỗi luồng.
Luồng tác vụ có mức độ ưu tiên cao hơn luồng nền Idle nhưng thấp hơn ngắt phần mềm Khác với ngắt phần mềm, luồng tác vụ có thể bị chờ đợi trong quá trình thực hiện cho đến khi có sẵn các nguồn lực từ CPU Mỗi tác vụ cần một ngăn xếp riêng biệt, và SYS/BIOS cung cấp các cơ chế giao tiếp và đồng bộ hóa giữa các tác vụ, bao gồm Semaphores.
Sự kiện (Event), Hàng đợi tin nhắn (Queue) và Hộp thư (Mailbox).
Các luồng idle trong ứng dụng SYS/BIOS được thực thi với mức ưu tiên thấp nhất và hoạt động theo một vòng lặp nhàn rỗi liên tục Sau khi hàm main kết thúc, ứng dụng SYS/BIOS sẽ gọi thói quen khởi động cho từng mô-đun và sau đó chuyển vào vòng lặp nhàn rỗi Mỗi luồng idle phải chờ cho đến khi tất cả các luồng khác hoàn thành trước khi được gọi lại, và vòng lặp nhàn rỗi chỉ dừng lại khi có các luồng có mức ưu tiên cao hơn.
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:
SYS/BIOS cung cấp các chức năng cơ bản cho việc đồng bộ hóa và giao tiếp giữa các tác vụ thông qua semaphores Semaphores được sử dụng để quản lý quyền truy cập vào tài nguyên chia sẻ giữa các nhiệm vụ cạnh tranh.
Theo mặc định, semaphores là semaphores đếm Chúng giữ một số lượng nội bộ tương ứng với tài nguyên có sẵn Khi số lượng lớn hơn 0, các tác vụ không bị chặn khi nhận semaphore Giá trị đếm của semaphore bị giới hạn bởi kích thước 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 khi số đếm vượt quá giá trị tối đa của 16 bit.
Binary semaphores có thể có hoặc không có sẵn, với giá trị tối đa là 1 Chúng được thiết kế để điều phối quyền truy cập vào tài nguyên chia sẻ giữa hai nhiệm vụ So với counting semaphores, binary semaphores mang lại hiệu suất tốt hơn.
Sự kiện là một công cụ hữu ích để giao tiếp và đồng bộ hóa giữa các luồng Chúng hoạt động tương tự như Semaphore, nhưng cho phép chỉ định nhiều điều kiện cần xảy ra trước khi luồng tiếp tục thực hiện.
Một đối tượng Sự kiện hoạt động tương tự như Semaphore với các lệnh gọi "pend" và "post" Cụ thể, lệnh gọi Event_pend() cho phép chỉ định các sự kiện cần chờ đợi, trong khi lệnh gọi Event_post() xác định sự kiện nào đang được đăng.
Gates là thiết bị quan trọng giúp ngăn chặn truy cập đồng thời vào các khu vực mã nhạy cảm Các loại gate khác nhau có cách triển khai riêng biệt để khóa và bảo vệ những khu vực quan trọng này.
Các luồng có thể bị ư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ố đoạn mã cần phải được hoàn thành bởi một luồng trước khi cho phép thực thi bởi luồng khác Ví dụ điển hình về khu vực quan trọng cần được bảo vệ là mã sửa đổi biến toàn cục, thường yêu cầu sử dụng một Cổng để đảm bảo tính đồng nhất và an toàn trong quá trình thực thi.
Gates hoạt động bằng cách vô hiệu hóa các mức độ ưu tiên, như việc tắt chuyển đổi tác vụ hoặc can thiệp vào phần cứng, cũng như sử dụng semaphore nhị phân để quản lý tài nguyên hiệu quả.
Mô-đun ti.sysbios.knl.Mailbox cung cấp các chức năng quản lý hộp thư, cho phép chuyển bộ đệm giữa các tác vụ 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, với bộ đệm được sao chép vào bộ đệm bên trong có kích thước cố định Kích thước và số lượng bộ đệm được xác định khi tạo phiên bản Hộp thư Quá trình gửi và nhận bộ đệm diễn ra thông qua Mailbox_post() và Mailbox_pend(), với Mailbox_create() và Mailbox_delete() được sử dụng để tạo và xóa hộp thư Hộp thư cũng giúp kiểm soát luồng bộ đệm đến, đảm bảo không vượt quá khả năng xử lý của hệ thống.
Mô-đun ti.sysbios.knl.Queue hỗ trợ việc tạo danh sách các đối tượng thông qua việc triển khai hàng đợi dưới dạng danh sách liên kết đôi Điều này cho phép các phần tử được chèn hoặc xóa từ bất kỳ vị trí nào trong danh sách mà không bị giới hạn bởi kích thước tối đa của hàng đợi.
Tại sao phải sử dụng TI-RTOS?
Các vi xử lý hiện nay ngày càng phức tạp với sự phát triển của TCP/IP, USB, kết nối không dây và giao diện cảm ứng Các nhà phát triển nhúng hiện tại ưu tiên phát triển ứng dụng cụ thể nhanh chóng, do đó họ thường sử dụng các chức năng phổ biến như TCP/IP và USB thay vì các giao thức truyền thông truyền thống như SPI hay I2C TI-RTOS cung cấp những chức năng này để hỗ trợ quá trình phát triển.
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, đảm bảo rằng các tác vụ của hệ điều hành hoàn thành trong khoảng thời gian nhất định với độ trễ ngắt thấp Trên các vi điều khiển ARM Cortex-M hoặc C-2000, Kernel cung cấp chức năng zero-latency interrupt, cho phép thực hiện ngay lập tức các tác vụ ngắt, phù hợp với các vi điều khiển có bộ nhớ hạn chế Ngoài ra, kernel system call có thể được truy cập như một hàm C.
ƯU ĐIỂM VÀ NHƯỢC ĐIỂM
Ưu điểm
- TI-RTOS là một hệ thống thời gian thực được hỗ trợ bởi TI và nó là hoàn toàn miễn phí.
- Được tích hợp đầy đủ trong môi trường phát triển TI’s Code Composer Studio
Phát triển phần mềm trở nên dễ dàng hơn với một môi trường nhúng ổn định và đầy đủ Nó cung cấp các trình quản lý và chức năng hỗ trợ thiết bị ngoại vi một cách toàn diện.
Hệ thống thời gian thực đa nhiệm TI-RTOS Kernel (SYS/BIOS) cung cấp các giao diện tiêu chuẩn đã được kiểm định, giúp quản lý Interrupts hiệu quả.
Hình 5: Download miễn phí tại trang chủ của TI
Timer, UART, I 2 C, 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, I 2 C và SD
Giao thức TCP/IP cung cấp khả năng tạo ra một mạng ảo khi nhiều mạng máy tính được kết nối, cho phép giao tiếp hiệu quả trên khoảng cách lớn Mục đích chính của mô hình TCP/IP là hỗ trợ việc truyền tải dữ liệu giữa các thiết bị, đảm bảo sự kết nối và tương tác trong môi trường mạng đa dạng.
Khả năng kết nối mạng ngay lập tức với các thành phần tích hợp trong phát triển phần mềm giúp lập trình viên tiết kiệm thời gian trong việc thiết lập và kiểm tra Người dùng không cần phải lo lắng về việc viết code, ghép mã hay gặp phải vấn đề tương thích phiên bản, từ đó nâng cao hiệu quả công việc.
Hình 7: TI-RTOS Device's Drivers
Việc thêm các tác vụ và tính năng mới trên phần mềm trở nên dễ dàng hơn mà không làm ảnh hưởng đến thời gian phản hồi của các tác vụ ưu tiên cao hơn và các tác vụ 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 quá trình phát triển phần mềm.
Hệ thống tương thích với FAT (Bảng phân bổ tệp), một định dạng hệ thống tập tin phổ biến trên các thiết bị như USB, máy chụp hình, máy quay phim, máy nghe nhạc và đầu đọc đĩa.
Nhược điểm
Trong các dự án phát triển phần mềm hiện nay, một số họ MCU của Texas Instruments (TI) như C26xx, C28xx, C28FM3x, TM4Cx, MSP430, MSP432, và CC3200 không còn được ưu tiên sử dụng, mặc dù vẫn hỗ trợ tốt.
TI-RTOS cần thời gian bổ sung để xử lý thông tin tác vụ trước và sau khi đưa vào CPU, điều này ảnh hưởng đến hiệu suất sử dụng Yêu cầu tính ràng buộc về thời gian dẫn đến độ phức tạp cao, đồng thời cần đảm bảo độ an toàn trong quá trình xử lý.
Hình 8: Thời gian thành lập và phát triển của TI-RTOS và FreeRTOS
- 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 trong TI-RTOS có thể ở một trong bốn trạng thái: Ready, Running, Blocked và Suspended Để đảm bảo độ chính xác và giảm sai số, TI-RTOS chỉ cho phép một task được chạy tại một thời điểm nhất định, trong khi các task có độ ưu tiên thấp hơn phải chờ để đượ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 quá trình sử dụng.
So sánh
- So sánh giữa TI-RTOS, RTX (CMSIS-RTOS), FreeRTOS và Micrium khi nhúng trên MCU MSP432
FreeRTOS by Real Time Engineers Ltd.
Co- routines (task share stack)
Zero- latency interrupts supported (115 cycles for ISRs with TI-RTOS calls)
Zero- latency interrupts sRound-robin (default)
Device specific support coming soon
Pre and post sleep macros for customization
Cost Free Free Free Free
Bảng 1 – So sánh một vài RTOS được nhúng trên MSP432 1
- So sánh về giao thức IoT khi sử dụng một vài loại RTOS:
RTOS IoT Protocols Availability of
1 https://training.ti.com/rtos-options-msp432-mcus language
TI-RTOS by TI MQTT Open Source CCS IDE C/C++
Proprietary GUIX C/C++ àC/OS II/III by Micrium
FreeRTOS by Real Time Engineers Ltd.
VS, VS code, Arduino IDE, STM32cubeIDE,
QNX Neutrino by BlackBerry Ltd
Momentics-IDE C/C++, Java Bảng 2 – RTOS with IoT 2
2 https://www.irjmets.com/uploadedfiles/paper/volume2/issue_12._december_2020/5410/1628083216.pdf
ỨNG DỤNG CỦA TI-RTOS
Máy bán nước tự động
Hình 9: Máy bán nước tự động
Một máy bán nước tự động hiệu quả cần hoạt động chính xác theo lựa chọn của khách hàng, bao gồm việc nhận tiền, trả hóa đơn và nhận diện sản phẩm hết hàng Ngoài ra, máy cũng phải điều hòa nhiệt độ bên trong để đảm bảo chất lượng nước.
Hình 10: Sử dụng máy bán nước tự động
Máy cần được trang bị hệ thống giao tiếp từ xa để thông báo tình trạng hết hàng, giúp kịp thời bổ sung Đồng thời, cần có 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
Chúng ta cũng áp dụng đáp ứng ngắt cho từng nút bấm Hãy xem xét phương án này một cách chi tiết hơn, vì nó có thể hoạt động một cách không cần thiết.
Kiểm soát nhiệt độ hoạt động liên tục trong một vòng lặp gần như vô hạn, đảm bảo rằng quá trình này vẫn diễn ra ngay cả khi không có ai sử dụng.
Giải pháp đơn giản nhất để kiểm soát nhiệt độ là sử dụng ngắt, nhưng phương pháp này có thể gặp khó khăn nếu chương trình quá lớn, ảnh hưởng đến hoạt động chính Ngoài ra, cần phải chờ đợi để đảm bảo đạt đủ điều kiện trước khi tiếp tục.
Quá trình thả hàng chỉ diễn ra khi tiền được đưa vào máy và khách hàng đã chọn sản phẩm, và hệ thống sẽ luôn chờ cho đến khi cả hai điều kiện này được đáp ứng Hệ thống bộc lộ rõ những điểm yếu khi thực hiện nhiều tác vụ cùng lúc.
Khi hệ thống cần bổ sung tính năng mới, vòng lặp phát triển sẽ ngày càng lớn và tốc độ xử lý sẽ chậm lại Mặc dù có thể sử dụng các đáp ứng để cải thiện thời gian, nhưng điều này sẽ làm cho chương trình điều khiển trở nên phức tạp hơn khi cố gắng đồng bộ hóa mọi thứ hoạt động cùng một lúc.
3.1.3 Cách tiếp cận ứng dụng hệ thống thời gian thực Phân biệt rõ ràng mức độ ưu tiên của từng tác vụ
Kiểm soát nhiệt độ là yếu tố quan trọng trong việc bảo quản sản phẩm Việc giám sát và điều chỉnh nhiệt độ không cần thiết phải thực hiện quá thường xuyên, chỉ cần mỗi phút một lần là đủ Do đó, mức độ ưu tiên cho công việc này là 4.
Việc hiển thị các mặt hàng đã hết không phải là vấn đề quan trọng, vì trạng thái số lượng chỉ thay đổi khi máy trao nước cho khách hàng Do đó, tác vụ này có mức độ ưu tiên là 8.
Tác vụ nhận tín hiệu yêu cầu từ người dùng và xử lý thanh toán cần được ưu tiên cao nhất với mức độ ưu tiên 3 Trong khi đó, tác vụ thả hàng, mặc dù tương tự như việc cập nhật thông số và chỉ diễn ra khi có điều kiện thỏa mãn, sẽ được đặt ở mức độ ưu tiên 2 để đảm bảo đáp ứng nhanh chóng.
Vấn đề báo động khi phát hiện phá hoại thì cần phải bàn, ưu tiên là 1
Thiết lập từng tác vụ
Hình 13: Sơ đồ cách tiếp cận kết hợp RTOS
Sử dụng ngắt và ưu tiên ngắt
Toàn bộ các tác vụ trên đều được gọi bằng lệnh ngắt, tác vụ ưu tiên hơn sẽ chiếm quyền hoạt động của tác vụ kém ưu tiên hơn.
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
Các tác vụ được trình bày rõ ràng, cấu trúc dễ hiểu, dễ kế thừa và hiệu chỉnh.
Hệ thống không bị trễ, nhờ ưu tiên ngắtThời gian của các tác vụ quản lý rõ ràng để không ảnh hưởng đến nhau.
Phanh ABS
Hệ thống phanh chống bó cứng ABS (Anti-Lock Brake System) là một công nghệ an toàn quan trọng trên xe ô tô, giúp ngăn ngừa hiện tượng hãm cứng bánh xe trong các tình huống khẩn cấp ABS hoạt động bằng cách điều khiển điện tử, cho phép người lái duy trì khả năng kiểm soát hướng lái và tránh văng trượt Nhờ đó, hệ thống này đảm bảo sự ổn định cho thân xe, nâng cao mức độ an toàn khi tham gia giao thông.
Khi xảy ra va chạm bất ngờ, việc người lái liên tục đạp phanh gấp có thể khiến bánh xe bị cứng và vành lái không thể quay Hệ thống phanh ABS được thiết kế để giúp người lái kiểm soát tình huống tốt hơn.
Để hạn chế tình trạng bó cứng phanh, các chuyên gia khuyên người lái nên đạp phanh từ tốn trong các tình huống thông thường Trong trường hợp khẩn cấp, việc nhấp nhả phanh liên tục là cần thiết, nhưng không phải ai cũng giữ được bình tĩnh để thực hiện Để giải quyết vấn đề này, nhiều mẫu xe hiện đại đã được trang bị hệ thống phanh ABS (Anti-lock Braking System) Hệ thống này cho phép người lái chỉ cần đạp phanh và điều khiển vô lăng, giúp duy trì trạng thái ổn định và ngăn chặn hiện tượng trượt bánh trong các tình huống phanh gấp.
3.2.2 Cấu tạo của hệ thống phanh ABS
Hình 14: Cấu tạo hệ thống phanh ABS
Cảm biến tốc độ ở hai bánh xe bao gồm nam châm vĩnh cửu, cuộn dây và lõi từ, với vị trí lắp đặt thay đổi theo kiểu xe Rô-to cảm biến có các răng ở vành ngoài, khi bánh xe quay, rô-to sẽ sản sinh điện áp xoay chiều tỷ lệ với tốc độ quay ECU ABS nhận biết tốc độ bánh xe thông qua điện áp AC này.
Hình 15: Cảm biến gia tốc
Hệ thống ABS sử dụng cảm biến để đo trực tiếp sự giảm tốc của bánh xe khi phanh, giúp xác định trạng thái mặt đường và điều chỉnh áp suất dầu phanh một cách hợp lý Hiện nay, có hai loại cảm biến giảm tốc: cảm biến dọc và cảm biến ngang, được trang bị hai cặp đèn LED, transistor quang, kết hợp với đĩa xẻ rảnh và mạch biến đổi tín hiệu.
Hình 16: Các trạng thái của cảm biến gia tốc
Khi xe phanh gấp, tốc độ bánh xe giảm đột ngột, làm cho thân xe bị chúi về phía trước Hai đĩa cảm biến sẽ bị lắc theo hai chiều của thân xe; nếu dao động mạnh, đĩa sẽ che ánh sáng từ LED đến transistor quang, dẫn đến việc transistor quang đóng hoặc mở Cảm biến giảm tốc sẽ chia thành 4 mức và gửi tín hiệu về ECU Ngoài ra, cảm biến kiểu bán dẫn cũng được sử dụng để đo sự giảm tốc.
Hình 17: Cảm biến kiểu bán dẫn
Bộ chấp hành hệ thống phanh ABS
Hình 18: Bộ chấp hành hệ thống phanh ABS
Bộ chấp hành thủy lực đảm bảo cung cấp áp suất dầu tối ưu cho các xi-lanh phanh bánh xe, giúp điều khiển hiệu quả bởi ABS ECU và ngăn chặn hiện tượng bó cứng bánh xe khi phanh Hệ thống này bao gồm các van điện từ, motor điện dẫn động bơm dầu, bơm dầu và bình tích áp.
Hộp điều khiển hệ thống phanh ABS Control Module
Hệ thống ABS có khả năng nhận diện tốc độ góc của các bánh xe, từ đó tính toán tốc độ và sự thay đổi tốc độ của bánh xe, giúp xác định tốc độ xe, tốc độ chuẩn của bánh và ngưỡng trượt để phát hiện nguy cơ hãm cứng Ngoài ra, ABS còn gửi tín hiệu điều khiển đến bộ chấp hành thủy lực, thực hiện kiểm tra, chẩn đoán, lưu trữ mã lỗi và đảm bảo chế độ an toàn.
Hình 19: Bộ điều khiển ECU
ECU là một hệ thống bao gồm nhiều vi xử lý, được chia thành bốn cụm chính: Phần xử lý tín hiệu, Phần logic, Bộ phận an toàn và Bộ chẩn đoán cùng lưu giữ mã lỗi.
Nguyên lý hoạt động hệ thống chống bó cứng phanh ABS trên xe ô tô như sau:
Cảm biến tốc độ được lắp đặt ở bánh xe sẽ gửi tín hiệu đến bộ điều khiển ABS khi phát hiện tốc độ quay của một bánh xe chậm hơn mức quy định Hệ thống ABS sau đó sẽ xử lý thông tin, thực hiện tính toán và điều chỉnh áp suất dầu phanh phù hợp thông qua bộ chấp hành ABS.
Như vậy với tính chất:
- Yêu cầu đáp ứng được ngay lập tức bất kể chương trình đang làm gì
Xử lý với độ ưu tiên cao, như trong trường hợp hệ thống phanh ABS, yêu cầu RTOS (Hệ điều hành thời gian thực) để đảm bảo đáp ứng nhanh chóng và hiệu quả RTOS là yếu tố then chốt giúp quản lý và xử lý các tác vụ quan trọng trong hệ thống, đảm bảo an toàn và độ tin cậy cho các ứng dụng yêu cầu thời gian thực.
Hệ thống kiểm soát độ cao cho UAV
Hệ thống cho phép người dùng cấu hình và giám sát trong thời gian thực nhờ vào việc sử dụng hệ điều hành thời gian thực (RTOS) Khác với các thiết kế hệ thống nhúng truyền thống, RTOS hỗ trợ kiểm tra và can thiệp, cho phép người dùng thao tác trên các tác vụ và tham số Điều này giúp nâng cao khả năng kiểm soát quá trình bay của UAV và can thiệp kịp thời trước các sự cố bất ngờ.
Hình 20: Oakland University quadrotor with the avionics block
Hình 21: Common quadrotor avionics block.
Hệ thống UAV thường được điều khiển bởi một bộ xử lý trung tâm, có chức năng thu thập và xử lý dữ liệu từ các cảm biến Bộ xử lý này tính toán và điều khiển hoạt động của UAV, đồng thời truyền tín hiệu giám sát về trạm mặt đất và nhận tín hiệu điều khiển từ trạm nếu cần thiết.
Với cách tiếp cận này, bộ xử lý trung tâm phải thực hiện nhiều tác vụ khác nhau, điều này có thể gây khó khăn cho các hệ thống và ứng dụng yêu cầu độ đáp ứng kịp thời và chính xác cao.
Hình 22: The Quadrotor avionics block with RTOS approach
Với hướng tiếp cận của hệ thống được ứng dụng RTOS, các tác vụ sẽ được chia và sắp xếp theo mức ưu tiên bởi bộ xử lý.
Trong sơ đồ trên, hệ thống sẽ gồm 2 bộ xử lý phụ dung RTOS, khối Telemetry Processor và Control Processor
Telemetry Processor đảm nhiệm việc xử lý các tác vụ giao tiếp, bao gồm giao tiếp với bộ xử lý điều khiển Control Processor, tín hiệu điều khiển từ trạm mặt đất, các thiết bị ngoại vi và cảm biến, cũng như hệ thống giám sát và điều khiển từ mặt đất, cho phép giám sát và cấu hình tức thì hệ thống UAV Tất cả các nhiệm vụ này được quản lý bởi RTOS, với danh sách các nhiệm vụ cụ thể.
1 TIMU: A task to read the Euler angles from the IMU.
2 TGPS: A Task to read the GPS.
3 TAltimeter: A task to read the altimeter.
4 Tcompass: A task to read the compass.
5 TPWM: A task that captures PWM from the RC receiver.
6 TZigBee: A Task that assembles a data frame to be sent back to the base through the ZigBee link for control feedback.
7 LWTTelemetry: A light-weight task for reconfiguration-based control and monitoring communication with the reconfiguration host on the ground station.
8 CAN_Tx: A task to transmit frames over the CAN bus.
9 CAN_Rx: A task to receive frames from the CAN bus
10 Tsensors2control: A task to provide the control processor with GPS, compass, and altitude data read from the sensors
11 Ttranslate: A task to translate heading and altitude commands received from the ground station into desired altitude, roll, pitch, and yaw values and pass them to the control processor.
Bộ xử lý điều khiển (Control Processor) đóng vai trò quan trọng trong việc ổn định và điều hướng cho UAV thông qua việc thực hiện các vòng điều khiển PID Hệ thống sử dụng bốn vòng điều khiển PID để điều chỉnh và ổn định thái độ của UAV, trong đó tốc độ động cơ được điều chỉnh dựa trên cao độ và giá trị yaw từ IMU, GPS và máy đo độ cao Các lỗi hiện tại trong các vòng điều khiển PID được hiệu chỉnh bằng các hằng số độ lợi PID Kp, Ki và Kd, từ đó tạo ra các giá trị điều chỉnh động cơ chính xác Các lợi ích PID được xác định qua thực nghiệm và có thể được cấu hình lại một cách không dây bởi máy chủ cấu hình trên trạm mặt đất, cho phép điều chỉnh trong chuyến bay.
1 Tsensors: A Task to read GPS, compass, IMU, and altitude sensor data received from the telemetry processor.
2 TcontrolSignals: A Task to Read control signals coming from the telemetry processor.
3 TRoll: A Task to implement the Roll PID control loop.
4 TPitch: A Task to implement the Pitch PID control loop.
5 TYaw: A Task to implement the Yaw PID control loop.
6 TAltitude: A Task to implement the Altitude PID control loop.
7 CAN_Tx : A task to transmit frames over the CAN bus.
8 CAN_Rx: A task to receive frames from the CAN bus.
10 LWTcontrol :A light-weight task for reconfiguration-based control and monitoring to communicate with the light-weight task on the telemetry processor through the CAN bus.
Hệ thống điều khiển cho phép cấu hình lại cả mức tác vụ và thông số của phần mềm trên bộ xử lý quadrotor, giúp gán giá trị và điều chỉnh tham số trong thời gian thực Việc cấu hình lại tác vụ cho phép dừng các tác vụ hiện tại và khởi động các tác vụ mới, có thể thay thế hoàn toàn hoặc khởi động lại ở chế độ khác Hệ thống cũng cung cấp khả năng giám sát tất cả các tham số, biến và bộ nhớ, từ đó cho phép can thiệp vào các tác vụ và thực hiện thử nghiệm thực tế để tối ưu hóa dữ liệu cho bộ điều khiển PID Điều này giúp điều chỉnh mức ưu tiên của các tác vụ trong các tình huống không lường trước và dễ dàng thay đổi cấu trúc hệ thống để phù hợp với các ứng dụng khác.