- RTOS คืออะไร?
- ทำไมต้อง RTOS ??
- ความแตกต่างระหว่างระบบปฏิบัติการแบบเรียลไทม์และระบบปฏิบัติการ
- ประเภทของ RTOS
- ประโยชน์ของการใช้ RTOS ฟรี
- ปัญหาหลักบางประการที่เกี่ยวข้องกับ RTOS
- วิธีใช้ RTOS
ระบบฝังตัวมีแอปพลิเคชันที่หลากหลายในอุปกรณ์อิเล็กทรอนิกส์ทั้งหมดที่อยู่รอบตัวเราตัวอย่างที่เห็นได้ชัดคือแล็ปท็อปขนาดเล็กที่เราพกติดตัวตลอดเวลาใช่ฉันหมายถึงโทรศัพท์มือถือของเรา
เมื่อใดก็ตามที่ระบบฝังตัวเข้ามาในภาพจะเป็นการรวมกันของฮาร์ดแวร์เช่นไมโครคอนโทรลเลอร์หรือไมโครโปรเซสเซอร์และซอฟต์แวร์เช่นเฟิร์มแวร์หรือระบบปฏิบัติการเสมอ ระบบปฏิบัติการรูปแบบฐานของทุกอุปกรณ์อิเล็กทรอนิกส์และบริหารจัดการทั้งฮาร์ดแวร์และซอฟแวร์ที่อยู่ในอุปกรณ์อิเล็กทรอนิกส์ใด ๆ คำว่าระบบปฏิบัติการไม่ได้ จำกัด เฉพาะ Unix และ Windows สำหรับคอมพิวเตอร์เท่านั้น แต่ยังสามารถขยายไปยังไมโครคอนโทรลเลอร์ได้อีกด้วย หนึ่งในระบบปฏิบัติการดังกล่าวที่สามารถทำงานบนไมโครคอนโทรลเลอร์จะเรียกว่าเป็นระบบปฏิบัติการแบบ Real time ที่นี่เราจะได้เรียนรู้เกี่ยวกับ RTOS และการใช้งานของระบบปฏิบัติการเวลาจริง
RTOS คืออะไร?
ระบบปฏิบัติการแบบเรียลไทม์ที่รู้จักกันในชื่อ RTOS ให้คอนโทรลเลอร์ที่มีความสามารถในการตอบสนองต่ออินพุตและทำงานให้เสร็จภายในช่วงเวลาที่กำหนดตามลำดับความสำคัญ ในรูปลักษณ์แรก RTOS อาจดูเหมือนโปรแกรมฝังตัวหรือเฟิร์มแวร์อื่น ๆ แต่สร้างขึ้นจากสถาปัตยกรรมของระบบปฏิบัติการ ดังนั้นเช่นเดียวกับระบบปฏิบัติการ RTOS สามารถอนุญาตให้หลายโปรแกรมทำงานในเวลาเดียวกันที่รองรับการมัลติเพล็กซ์ อย่างที่เราทราบกันดีว่าแกนกลางของโปรเซสเซอร์หรือคอนโทรลเลอร์สามารถดำเนินการคำสั่งได้ทีละคำสั่งเท่านั้น แต่ RTOS มีสิ่งที่เรียกว่าตัวกำหนดตารางเวลาซึ่งจะตัดสินใจว่าจะเรียกใช้คำสั่งใดก่อนและดำเนินการตามคำสั่งของหลายโปรแกรมทีละโปรแกรม ในทางเทคนิค RTOS จะสร้างภาพลวงตาของการถ่ายหลายภาพโดยดำเนินการคำสั่งคู่ขนานทีละคำสั่งเท่านั้น
ทำให้ RTOS เหมาะสำหรับการใช้งานที่หลากหลายในโลกแห่งความเป็นจริง ใน RTOS สำหรับอินพุตใด ๆ เมื่อใดก็ตามที่มีการประเมินตรรกะซึ่งให้ผลลัพธ์ที่สอดคล้องกัน ตรรกะนี้ไม่เพียงวัดจากความคิดสร้างสรรค์เชิงตรรกะเท่านั้น แต่ยังวัดระยะเวลาที่มีการดำเนินงานเฉพาะ หากระบบล้มเหลวในการปฏิบัติงานในช่วงเวลาที่กำหนดระบบจะเรียกว่าระบบล้มเหลว
ทำไมต้อง RTOS ??
- ความพร้อมใช้งานของไดรเวอร์: มีไดรเวอร์มากมายใน RTOS ซึ่งช่วยให้เราใช้งานได้โดยตรงกับแอปพลิเคชันต่างๆ
- ไฟล์ตามกำหนดเวลา: RTOS ดูแลการตั้งเวลาดังนั้นแทนที่จะมุ่งเน้นไปที่การตั้งเวลาระบบใด ๆ เราสามารถมุ่งเน้นไปที่การพัฒนาแอปพลิเคชัน ตัวอย่างเช่นไฟล์การจัดกำหนดการงานใช้เพื่อกำหนดการดำเนินการบางอย่างเมื่อตรงตามเงื่อนไขที่กำหนด RTOS ใช้อัลกอริทึมขั้นสูงบางอย่างสำหรับการจัดตารางเวลาโดยทั่วไปจะทำงานสถานะพร้อมและบล็อกซึ่งในขณะที่รัน RTOS จะให้ความสำคัญกับการพัฒนาแอปพลิเคชันมากกว่าการตั้งเวลา
- ความยืดหยุ่นในการเพิ่มคุณสมบัติ:ภายใน RTOS แม้ว่าคุณจะเต็มใจที่จะเพิ่มคุณสมบัติใหม่คุณก็สามารถเพิ่มได้โดยไม่รบกวนคุณสมบัติที่มีอยู่
ความแตกต่างระหว่างระบบปฏิบัติการแบบเรียลไทม์และระบบปฏิบัติการ
มีความแตกต่างหลากหลายระหว่างระบบปฏิบัติการเรียลไทม์และระบบปฏิบัติการเช่น Windows, Linux เป็นต้นมาดูกันทีละตัวด้วยความช่วยเหลือของรูปแบบตาราง:
ส. เลขที่ | ระบบปฏิบัติการ | ระบบเรียลไทม์ |
1 | การแบ่งเวลาเป็นพื้นฐานของการดำเนินการของกระบวนการในระบบปฏิบัติการ | กระบวนการจะดำเนินการตามลำดับความสำคัญ |
2 | ระบบปฏิบัติการทำหน้าที่เป็นส่วนต่อประสานระหว่างฮาร์ดแวร์และซอฟต์แวร์ของระบบ | ระบบเรียลไทม์ได้รับการออกแบบมาเพื่อรองรับปัญหาในโลกแห่งความเป็นจริง |
3 | การจัดการหน่วยความจำไม่ใช่ปัญหาที่สำคัญเมื่อต้องเรียกใช้ระบบปฏิบัติการ | การจัดการหน่วยความจำทำได้ยากเนื่องจากขึ้นอยู่กับการจัดสรรหน่วยความจำปัญหาแบบเรียลไทม์ซึ่งตัวเองมีความสำคัญ |
4 | การใช้งาน: สำนักงานศูนย์ข้อมูลระบบสำหรับบ้าน ฯลฯ | การใช้งาน: การควบคุมเครื่องบินหรือเครื่องปฏิกรณ์นิวเคลียร์อุปกรณ์การวิจัยทางวิทยาศาสตร์ |
5 | ตัวอย่าง: Microsoft Windows, Linux, OS | ตัวอย่าง: Vx Works, QNX, Windows CE |
ประเภทของ RTOS
เราสามารถแบ่งประเภทของระบบปฏิบัติการเรียลไทม์ออกเป็นสามส่วนใหญ่ ๆ คือ
- ระบบปฏิบัติการฮาร์ดเรียลไทม์
- ระบบปฏิบัติการซอฟต์เรียลไทม์
- ระบบปฏิบัติการแบบเรียลไทม์ของ บริษัท
1. ระบบปฏิบัติการฮาร์ดเรียลไทม์
มาเริ่มทำความเข้าใจกับระบบปฏิบัติการประเภทนี้โดยใช้ตัวอย่างตัวอย่างจริงของมันคือระบบควบคุมการบิน ภายในระบบควบคุมการบินงานใดก็ตามที่นักบินมอบให้ในรูปแบบของข้อมูลเข้าควรดำเนินการให้ตรงเวลา ในระบบปฏิบัติการแบบฮาร์ดเรียลไทม์ความล้มเหลวของระบบสามารถยอมรับได้ คุณสมบัติของ Hard RTOS คือ:
- เพื่อปฏิบัติงานให้ตรงเวลา
- การไม่ตรงตามกำหนดเวลาเป็นอันตรายถึงชีวิต
- รับประกันเวลาตอบสนองกรณีแย่ลง
- อาจนำไปสู่ความล้มเหลวของระบบ
2. ระบบปฏิบัติการซอฟต์เรียลไทม์
ตัวอย่างที่ง่ายที่สุดในการใช้ soft RTOS คือฐานข้อมูลออนไลน์เนื่องจากภายใน RTOS อ่อนพารามิเตอร์ที่เรากังวลมากกว่าคือความเร็ว ดังนั้นคุณสมบัติของ Soft RTOS คือ:
- ควรดำเนินการให้เร็วที่สุด
- การทำงานให้เสร็จช้าเป็นสิ่งที่ไม่พึงปรารถนา แต่ไม่ถึงแก่ชีวิต
- มีความเป็นไปได้ที่จะทำให้ประสิทธิภาพลดลง
- ไม่สามารถนำไปสู่ความล้มเหลวของระบบ
3. ระบบปฏิบัติการแบบเรียลไทม์ของ บริษัท
แขนหุ่นยนต์ที่ใช้ในการเลือกวัตถุถือได้ว่าเป็นหนึ่งในตัวอย่างของ RTOS ของ บริษัท ที่นี่ภายใน RTOS ของ บริษัท นี้แม้ว่ากระบวนการจะล่าช้า แต่ก็ยอมรับได้
ประโยชน์ของการใช้ RTOS ฟรี
ต่อไปนี้เป็นข้อดีของการใช้ RTOS ในแอปพลิเคชันของคุณ
- ไม่มีปัญหาไฟร์วอลล์
- แบนด์วิดท์ต่ำเพื่อเพิ่มประสิทธิภาพ
- ปรับปรุงความปลอดภัยและความเป็นส่วนตัว
- ต้นทุนต่ำเนื่องจากการลดส่วนประกอบฮาร์ดแวร์และซอฟต์แวร์ที่ใช้ในการพัฒนา
ปัญหาหลักบางประการที่เกี่ยวข้องกับ RTOS
ตอนนี้แม้จะมีข้อดีมากมายสำหรับ RTOS ในแอปพลิเคชันในโลกแห่งความเป็นจริง แต่ก็มีข้อเสียต่างๆเช่นกัน บางประเด็นที่เกี่ยวข้องมีการกล่าวถึงที่นี่
- โดยปกติการขัดจังหวะจะใช้ในโปรแกรมเพื่อหยุดโปรแกรมที่เรียกใช้งานเพื่อเปลี่ยนกระแสไปยังส่วนที่สำคัญอื่น ๆ ของโค้ด ที่นี่ภายใน RTOS เนื่องจากต้องใช้เวลาตอบสนองอย่างรวดเร็ว ขอแนะนำว่าควรปิดการใช้งานอินเทอร์รัปต์เป็นเวลาน้อยที่สุด
- เนื่องจากเคอร์เนลควรตอบสนองต่อเหตุการณ์ต่างๆที่จำเป็นเพื่อให้มีขนาดของเคอร์เนลน้อยลง เพื่อให้พอดีกับ ROM อย่างเหมาะสม
- คุณสมบัติที่ซับซ้อนของ RTOS ควรถูกลบออกเนื่องจากไม่มีแนวคิดเกี่ยวกับหน่วยความจำเสมือนภายใน
วิธีใช้ RTOS
ตอนนี้คุณรู้แล้วว่า RTOS คืออะไรและคุณสามารถใช้งานได้ที่ไหนในการเริ่มต้นใช้งาน RTOSโดยปกติคุณจะต้องใช้ Tornado หรือสภาพแวดล้อมการพัฒนา FreeRTOS ให้เราพิจารณาคร่าวๆเกี่ยวกับสภาพแวดล้อมการพัฒนาทั้งสองนี้
พายุทอร์นาโด - VxWorks
Tornadoเป็นสภาพแวดล้อมแบบบูรณาการเพื่อพัฒนาแอปพลิเคชันRTOS แบบฝังตัวที่เกี่ยวข้องกับเวลาจริงบนระบบเป้าหมาย พายุทอร์นาโดประกอบด้วยองค์ประกอบพื้นฐานสามประการซึ่งแสดงไว้ด้านล่าง
1) VxWorks
2) เครื่องมือสร้างแอปพลิเคชัน (คอมไพเลอร์และโปรแกรมที่เกี่ยวข้อง)
3) สภาพแวดล้อมการพัฒนาแบบบูรณาการซึ่งสามารถจัดการแก้ไขข้อบกพร่องและตรวจสอบแอปพลิเคชัน VxWorks
VxWorksเป็นระบบปฏิบัติการแบบเรียลไทม์บนเครือข่าย ในการเริ่มต้นกับ VxWorks เราควรมีชุดพัฒนาหนึ่งชุด (เป้าหมาย) พร้อมกับเวิร์กสเตชันหนึ่งเครื่อง ในที่นี้ชุดพัฒนาคืออะไรนอกจากโฮสต์เป้าหมายหรือส่วนประกอบที่สื่อสารกับเซิร์ฟเวอร์เป้าหมายบนเวิร์กสเตชัน เป้าหมายที่นี่เชื่อมต่อเครื่องมือพายุทอร์นาโดเช่นเปลือกและดีบักดังนั้นการใช้ VxWorks เราจะกำหนดค่าและสร้างระบบในขณะที่ Tornado มีอินเทอร์เฟซผู้ใช้แบบกราฟิกและเครื่องมือบรรทัดคำสั่งสำหรับการกำหนดค่าและสร้าง
ประเด็นที่สำคัญมากที่มาในภาพคือในขณะที่ติดตั้งพายุทอร์นาโดภายในระบบของคุณไดเรกทอรีการติดตั้งควรใช้ชื่อพา ธ เป็น:
installDir / target ตัวอย่างเช่นหากคุณต้องการเก็บพายุทอร์นาโดของคุณใน C: \ tornado บนโฮสต์ windows ควรระบุชื่อพา ธ แบบเต็มในกรณีนั้นเป็น installDir / target / h / vxworks.h
ที่นี่เราจะไม่หารือในรายละเอียดเกี่ยวกับคุณสมบัติของ Vx ทำงาน (เราจะออกจากที่สำหรับการกวดวิชาถัดไป) แต่เราจะหารือถึงวิธีการพัฒนาที่สามารถทำได้โดยใช้ C ++ ภายใน Vxworks ใช้WinDriver GNU WindRiver GNU ช่วยเราในการวิเคราะห์กราฟิกเกี่ยวกับการขัดจังหวะที่เกี่ยวข้องในระหว่างการดำเนินการตลอดจนรายงานการใช้หน่วยความจำ
ตัวอย่างเช่นมุมมองที่ระบุไว้ข้างต้นของ WindRiver จะอธิบายหมายเลขโปรเซสเซอร์ที่เกี่ยวข้องพร้อมกับลำดับความสำคัญของงาน (tLowPri & tHighPri) สถานะไม่ได้ใช้งานคือเส้นสีเขียวระบุช่วงเวลาที่โปรเซสเซอร์ไม่อยู่ในสถานะการทำงานซึ่งสังเกตได้ว่าหลังจากผ่านไปทุกๆสองสามวินาที t1, t7, t8 & t9 ไม่มีอะไรนอกจากโปรเซสเซอร์ต่างๆที่ใช้ เรากำลังเลือกโปรเซสเซอร์ t7 เท่านั้น
ดังนั้น Windriver นี้จึงสามารถเรียกใช้ทั้งรูทีนย่อย VxWorks และโมดูลแอ็พพลิเคชัน คุณสามารถเปิดแอปพลิเคชั่น Windriver ได้จากแถบเครื่องมือเปิดทอร์นาโด (-> ปุ่ม i) ในภายหลังคลิกที่เมนูจากนั้นคลิกที่เชลล์ สุดท้ายจากพรอมต์คำสั่งให้พิมพ์“> เซิร์ฟเวอร์เป้าหมายของวินด์ช”
ในการเขียนโปรแกรมโดยใช้ C ++ สิ่งสำคัญคือต้องรวมคอมโพเนนต์ INCLUDE_CPLUS_DEMANGLER คอมโพเนนต์demanglerนี้อนุญาตให้สัญลักษณ์เชลล์เป้าหมายส่งคืนรูปแบบสัญลักษณ์ C ++ ที่มนุษย์อ่านได้ ก่อนที่จะดาวน์โหลดโมดูล C ++ ไปยังเป้าหมาย Vxworks กระบวนการติดตามที่รู้จักในฐานะเคี้ยวในที่นี้การเคี้ยวหมายถึงขั้นตอนการประมวลผลโฮสต์เพิ่มเติม
คอมไพล์โปรแกรมซอร์สแอปพลิเคชัน C ++ และรับตัวอย่างไฟล์ hello.cpp ในภายหลังให้เรียกใช้เพื่อแทะเล็มบน. o และรวบรวมไฟล์ ctdt.c ที่สร้างขึ้น นอกจากนี้ให้เชื่อมโยงแอปพลิเคชันกับ ctdt.o เพื่อสร้างโมดูลที่ดาวน์โหลดได้ hello.out ภายใน VxWorks ผลลัพธ์หลังจากเรียกใช้ VxWorks นี้จะเป็นไฟล์ make ซึ่งจะใช้กับบางเป้าหมาย
RTOS ฟรี
โดยทั่วไปเมื่อใดก็ตามที่เราเริ่มต้นด้วย RTOS เรามักจะชอบ Vx Works RTOS แต่ต่อไปนี้เรามาพูดคุยกันสั้น ๆ เกี่ยวกับ Free RTOS ซึ่งผู้เริ่มต้นสามารถใช้เพื่อดูแนวคิดของระบบปฏิบัติการเรียลไทม์ RTOS ฟรีได้รับการพัฒนาโดย Richard Barry และทีม FreeRTOS ซึ่งเป็นของ Real time engineer ltd แต่ใช้งานได้ฟรีและสามารถดาวน์โหลดได้โดยคลิกที่ลิงค์ด้านล่าง
ดาวน์โหลด ROTS ฟรี
เวอร์ชันล่าสุดของ RTOS ฟรีที่ใช้ในบทความนี้คือเวอร์ชัน 10 ซึ่งระบุว่าเป็น FreeRTOS V10
ข้อได้เปรียบที่ใหญ่ที่สุดของ RTOS ฟรีซึ่งทำให้ดีกว่าในแง่ของ RTOS อื่น ๆ คือพฤติกรรมที่เป็นอิสระของแพลตฟอร์มในแง่ของฮาร์ดแวร์เช่นรหัส c ที่เราจะใช้เพื่อเรียกใช้ระบบปฏิบัติการสามารถทำงานบนแพลตฟอร์มต่างๆที่มีสถาปัตยกรรมที่แตกต่างกัน ดังนั้นไม่ว่าคุณจะใช้ไมโครคอนโทรลเลอร์ 8051 หรือไมโครคอนโทรลเลอร์ ARM รุ่นล่าสุดโค้ดที่คุณเขียนพร้อมกับขั้นตอนการดำเนินการจะคล้ายกันสำหรับทั้งสองอย่าง
มีประโยชน์อื่น ๆ อีกมากมายของการใช้ RTOS ฟรีบนงาน Vx และเครื่องมือปฏิบัติการ RTOS อื่น ๆ บางส่วนสามารถระบุได้ว่า:
- ให้การทดสอบที่ง่ายขึ้น
- ส่งเสริมแนวคิดของการใช้รหัสซ้ำ
- เวลาว่างน้อยลง
- บำรุงรักษาง่าย
- สรุปข้อมูลเวลา
นอกจากนี้Kernelพื้นฐานโดยที่ Kernel หมายถึงส่วนประกอบกลางของระบบปฏิบัติการซึ่งมีอยู่ใน RTOS ฟรีทำให้สามารถใช้งานได้กับแอปพลิเคชันต่างๆ เนื่องจากง่ายต่อการเชื่อมต่อโมดูลที่ขยายบนระบบปฏิบัติการเพื่อให้ได้แอปพลิเคชันเพิ่มเติมฟรี RTOS จึงมีประสิทธิภาพมากขึ้น
หนึ่งในตัวอย่างของการใช้ RTOS ฟรีสามารถอธิบายได้โดยใช้แนวคิดของการรวม Free RTOS กับ Nabto Nabtoเป็นอุปกรณ์เว็บฟรีที่ใช้ในการถ่ายโอนข้อมูลจากอุปกรณ์ไปยังเบราว์เซอร์
ดังนั้นเมื่อรวมFree RTOS กับ Nabtoจึงทำให้เป็นโค้ด C ชิ้นเล็ก ๆ ตามที่อธิบายไว้ในรูปที่ก. ปัจจุบัน Internet of Things (IOT) อยู่ในเทรนด์และอุปกรณ์ IOT ทุกเครื่องที่เราจะเข้าถึงมี URL เฉพาะทางอินเทอร์เน็ตและเทคโนโลยีนี้ช่วยให้การเชื่อมต่อแบบชี้ไปยังจุดแบนด์วิดท์ที่ปลอดภัยและต่ำมาก ในกรณีที่ไม่มีการเชื่อมต่ออินเทอร์เน็ตชุดค่าผสมนี้จะเป็นประโยชน์ ดังนั้น RTOS ฟรีจึงเป็นตัวเลือกยอดนิยมในการนำ IOT ไปใช้