Chương 1 Hf PILU HÀNH THỜI GIAN THỰC Hệ thống thời gian thực Hệ thống thời gian thực phải có thời gian đáp ứng với đầu vào trong một khoảng thời gian nhất định. Các hệ thống Real-Time rất phổ biến trong công nghiệp từ các thiết bị thu thập số liệu đơn giản như data recorder, metering systems, RTU. đến các hệ thống điều khiển lớn như SCADA cho nhà máy điện, xi mãng, cấp nước hay các hệ thống Robot công nghiệp, dân dụng phổ thông. Có thể kể đến các hệ chuyển mạch gói của CISCO, chuyển mạch đường PABX của Lucent.
Nói chung các hệ thống hay thiết bị chuyên dụng, đều là các hệ thờ gian thực hệ thống điều khiển, thu thập số liệu cần phải có tính Hard Real-Time, toàn bộ tín hiệu đầu vào đều phải được ghi nhận và xử lý. Đặc điểm hệ thống này là ít dịch vụ, đơn giản tối đa và rất chuyên dụng. Các hệ thống dân dụng như Multimedia, Set-top box, I/P Switching thường chỉ yêu cầu Soft Real-Time vì bệ thống cho phép độ trễ và chấp nhận mất dữ liệu, do đó làm giảm Qo§ của hệ thống. Lý do là các ứng dụng loại này có rất nhiều dịch vụ do đó hộ thống quá phức tạp để có thể triển khai Hard Real-Time.
Như vậy, RTU và hệ thống SCADA. là hệ đòi hỏi Hard Real-Time. Do đó các hệ này nên được thiết kế càng đơn giản càng tốt Các hệ điều hành thời gian thực phổ biến Hệ RTOS phổ biến nhất là VxWorks. Đã được dùng trong điều khiển robot, điều khiển quá trình, máy bay, viỄn thông, thiết bị y khoa, CNC hay các ứng dụng mô phỏng cao cấp.
Hệ phát triển là Tornado có giao diện GUI dễ dùng, mạng TCP/UDP. VxWorks hỗ trợ nhiều nền tảng phần cứng khác nhau: PowerPC, INTEL, Motorola 68K, ARM, StrongARM. Microsoft Windows CE.NET đo Microsoft phát triển, dễ dùng, có GUI quen thuộc tuy. nhiên khó can thiệp sâu vào hệ thống cũng như không tương thích POSIX do đó chỉ dùng.
trong các sản phẩm tiêu đùng, ít đùng trong công nghiệp. QNX & Lynx: cũng khá phổ biến trong công nghiệp trong các lĩnh vực chuyên sâu như quân sự, ra-đa, thiết bị y tế chất lượng cao, thiết bị viễn thông cao cấp, RTU. Các hệ RTOS hiện nay khá tốt và chuyên dụng, dễ sử dụng, hỗ trợ nhiều loại vi xử lý. Tuy nhiên giá các hệ chuyên dụng cho công nghiệp khá đất, thông thường khoảng trên đưới 100.000 USD cho một hệ phát triển trung bình, vài trăm ngàn cho những hệ thống công nghiệp lớn.
Nếu dùng cho các ứng dụng viễn thông hay quân sự thì rất đất. "áo cáo tổng kối để tài: Ứng dụng RT-Linuxđể nghiên cứu chế ạo RTU cho ngành Điện 5 Hệ điều hành Linux thời gian thực Do nhu cầu phát triển các ứng dụng Real-Time trên Linux đã có các nghiên cứu. về RT-Linux tại các trường đại học lớn, sau đó được các công ty chuyên về Linux cung cấp. Hiện nay, các hệ RT-Linux chiếm lĩnh thị trường đân dụng cũng như công nghiệp ngày càng nhiêu do chỉ phí thấp, tin cậy, dễ bảo trì và làm chủ được mã nguồn.
dụng công nghiệp, quân sự, viễn thông có xu hướng chuyển sang RT-Linux thay cho các hệ RTOS cũ vì c lý do trên Monta Vista Linux: Đang dẫn đầu thị trường với bộ GUI — IDE. Hỗ trợ các CPU: như X86/1A32, PowerPC, StrongARM, Xscale, MIPS; SH, ARM. TimeSys Linux: Do truing dai hoc Carnegie Mellon phát triển. Hỗ trợ rat nhiéu loai CPU: PowerPC, X86, MIPS, Xscale, Ultra SPARC, Super, StrongARM.
C6 b6 SDK va Tools hoan thién. FSMLabs: RT-Linux - cung cấp RT-Linux bao gồm Kernel va cic phiin mém kém theo. MiniLinux la hé Linux nhỏ gọn trên một đĩa mềm cho các hệ thống nhúng. Lineo: Embedix Realtime— Linco có cong nghé Realtime trên nên RTAI, thêm Kerncl và các Tool.
Industry's First COTS Linux Platform for Telecommunications Các công cụ phát triểu trêu Linux Trên Linux có các công cụ phát triển miễn phí ahv: QT, GCC, GDB. Tuy nhiên các hệ RT-Linux đều có các bộ SDK, IDE kèm theo nhưng giá thành khá cao do bán số lượng chưa nhiều. Các công cụ miễn phí dùng cũng khá tốt và tin cậy, tuy nhiên chỉ nên đùng trong các. dự án nhỏ và đơn giản do thiếu môi trường tích hợp và công cụ tự động hoá quy trình.
Các dự án lớn nên dùng hệ phát triển IDE hay SDK để giảm công sức phát triển, có sản phẩm tin cậy và đễ tìm lỗi chương trình hơn. Báo cáo tổng kết đê lài: Ứng. dụng RT-Linuv để nghiên cứu chế tạo RTU cho ngành Điện 6 Tiêu chuẩn POSIX Viện nghiên cứu IEEE đã phát triển các tiêu chuẩn cho UNIX, cung cấp các giao tiếp mở cho hệ điều hành là POSIX (Portable Operating Systcm Interface). Tiêu chuẩn IEEE 1003.1-2001 là tập hợp của hai tiêu chuẩn POSIX.
Cùng lúc đó các nghiên cứu về chuẩn đáp ứng việc mỡ rộng Real-Time là IEEE 1003.Ib-1993 và IEEE 1003.1c-1995/1996 xác định các luỗông thời gian thực.4 là tiêu chuẩn ban đầu vẻ Real-Time.1b-1993 được thay bằng IEEE- 1003. Chuẩn _ Mục _ Nội dung | POSIX.1-2001 ‘Systems Interface va Header POSIX.1-2001 __| Sheil va Utilities i POSIX4 1003. Ib-]993 Mỗ rộng Real-Time __|1003. [Thread Extension Linux được thiết kế là hệ điểu hành tuân theo chuẩn POSIX.
Linux hỗ trợ.1 cho giao diện các lời gọi hệ thống và POSIX.Ic: Thread Extension, POSIX.2: Shell va Utilities. Microsoft Windows không tương thích POSIX, do đó các ứng dụng Windows không chạy được trên Linux/Unix. Các ứng dụng Unix đều chạy trên Linux. Các ứng dụng lớn trong công nghiệp đều chạy trên Unix do đó có thể chuyển sang dùng Linux.
Real-Time Linux. “Thông thường Linux là một hệ không có tính thời gian thực với thời gian đáp ứng đao động khoảng vai tim mili giây. Các ứng dụng thông thường vẫn chấp nhận sự chậm trễ này, ví dụ như hiển thị video, khi hệ thống có thể mất vài khung hình hay tạm treo, nhưng vẫn chấp nhận được. Nếu dùng cho các ứng dụng thu thập số liệu thì một số dữ liệu có thể bị mất do đó không thể dùng được.
Có nhiều phương pháp để đưa khả năng Rcal- Time vào Linux. Các hệ Real-Time Linux đêu sửa Kernel của Linux để đạt được tính năng Hard. Real-Time cho Linux bing cach giảm thời gian trễ xử lý ngất (latcncy), độ lệch thời gian (iter) giữa các chu kỳ xử lý ngất trong khoảng vài micro giây, cho phép thời gian đáp ứng nhanh hơn và tăng độ phân giải thời gian. Có những giải pháp như sau MicroKernel: Phương pháp này đưa thêm một lớp Real-Time Kernel nằm giữa Linux Kernel và phần cing.
Lép Real-Time Kerncl này là một mã đơn thể nhỏ, gọi là Microkernel, cho phép. điều khiển các tác vụ và chạy Linux Kernel như là một tác vụ nễn. Microkernel sẽ chặn xử lý các ngất phần cứng và làm cho Linux Kernel không giành được xử lý ngắt trong Microkernel. Microkernel còn định thì cho các tác vụ thời gian thực với độ ưu tiên cao nhất để giảm độ trễ xử lý ngất.
"áo cáo tổng két dé tai: Ung. dung RT-Linux để nghiên câu chế tạo RTU cho ngành Điện 7 User Space Real Tone RealTime Real Tine Process Process Process lo Sptem Process cats |seneesan: Kernel Spaco meeMte eevn mm Micro Kernel M6 hinh MicroKernel Linux RT-Linux tại Đại học New Mexico được phát triển theo giải pháp Microkernel. Victor Yodaiken là nhà phát triển công nghệ và đã có bằng sáng chế cho giải pháp này Hiện nay đã có RT-Linux 3.0 và tương thích hạn chế với POSIX. Ngoài ra còn có dự án RTAI tại Đại học Milan, chủ yếu nghiên cứu các hàm API cho RT-Linux.
Hi¢n nay RTAL có phiên bần 2.0 Ưu điểm của phương pháp này là độ trễ thời gian nhỏ, khoảng dưới 10us, tuy nhiên do việc đưa thêm một lớp Kernel vào Linux Kernel nên các chương trình thời gian thực cẩn phải có hàm API riêng, điều khiển thiết bị riêng, gây khó khăn cho việc lập trình và đồ lỗi. Realtime POSIX: Phương pháp thứ hai được dùng là sửa trực tiếp Linux Kerncl và cung cấp thêm thư viện API để có hầm thời gian thực POSTX tương thích IEEE 1003-1d. Khác với phương pháp MicroKernel, phương pháp này không đưa thêm lớp Kernel nào. Các sửa đổi được thực hiện ngay trên Linux Kernel để cung cấp các timcr, tín hiệu, cờ hiệu, khóa bộ nhớ, định độ ưu tiên, các giao tiếp đồng bộ và không đồng bộ trong IEEE 1003- ld.
"Báo cáo tổng kết đễ tài: Ung dung RT-Linux dé nghién cứu. chế tạo RTU cho ngành Điện 8 s User Space E Real Tine ngNan reese Process, Resource Kernel System Calls System Calls Resource ¢ ) Standard Kernel Kernel Karnal Hooks Ieterropls & Inservupts 8 Raw Data Raw Data ca) = M6 hink Real-Time POSIX Linux Các dự án nghiên cứu: © KURT: tại trường đại học Kansas (KANSAS Univcrsity Real-Time Linux). Ban đầu KURT hoàn toàn tương thích IEEE 1003.1đ, tuy nhiên do yêu cầu tăng độ phân giải thời gian, KURT không hoàn toàn tương thích IEEE 1003-1d nữa. o_ TimeSys Linux: đo trường đại học Carnegie Mellon phat triển ban đầu vào năm 1996.
Hiện nay giải pháp đo công ty TimcSys Linux phát triển và phân phối. TimeSys Linux cung cấp đầy đủ các công cụ phát triển và mã nguồn với ưu điểm là dùng POSIX API nên các ứng dụng Real-Time tương thích với Linux và Unix, có nhiều ứng dụng và điều khiển thiết bị. Việc dò lỗi chương trình và điều khiển thiết bị không quá phức tạp. và khó khăn.
Tuy nhiên do có nhiều API, nên độ phân giải thời gian chỉ vào khoảng 50s. dé nghiên cứu. chế tao RTU cho ngành Điện Báo cáo tổng kết đê tài: Ứng, dụng RT-Linux 9 Các thông số cơ bản hệ điều hành thời gian thực Các thông số quan trọng đối với hệ điều hành thời gian thực là độ rễ xử lý và độ dao dong chu kỳ. Một sự kiện do ngất phần cứng hay do hệ điều hành tạo ra để báo hiệu có một tác vụ trong hàng đợi thực hiện.
Độ trễ xứ lý (latency) —— | eventisteney fe — fl if i | Event jitter Sat eam + a oo mt Event Request Start of event service routine Các sự kiện do phần cứng hay do hệ điều hành tạo ra. Trong các ngất cứng, độ trễ là thời gian từ khi nhận được tín hiệu cho đến khi thực hiện ngất cứng, do đó còn có độ trễ am do bus tín hiệu. Trong các ngắt mễm do hệ điều hành tạo ra, độ trễ là thời gian khi hệ điểu hành tạo ra tín hiệu cho đến khi thực hiện các ngất tương ứng. Dao dong chu kỳ (periodic jitter) bt penodic jitter periodic iter ""Jj.
f+ — ——+| Hedgeeime k— Dao động chủ kỳ là độ thay đổi trong các chu kỳ thực hiện các tác vụ định kỳ. dao động chu kỳ ảnh hưởng đến độ chính xác của các hệ lấy mẫu tín hiệu. So sánh các hệ RTOS a Báo cáo tổng kết đề tài: Ứng. dụng RT-Linux để nghiên cứu.