อ่าน 3 นาที
ซอฟต์แวร์ฝังตัว
ซอฟต์แวร์ฝังตัว คือ ซอฟต์แวร์ คอมพิวเตอร์ ที่เขียนขึ้นเพื่อควบคุมเครื่องจักรหรืออุปกรณ์ที่ไม่ถือว่าเป็นคอมพิวเตอร์โดยทั่วไป ซึ่งมักเรียกว่า ระบบฝังตัว โดยทั่วไปแล้ว...
ซอฟต์แวร์ฝังตัว
ซอฟต์แวร์ฝังตัวคือซอฟต์แวร์ คอมพิวเตอร์ ที่เขียนขึ้นเพื่อควบคุมเครื่องจักรหรืออุปกรณ์ที่ไม่ถือว่าเป็นคอมพิวเตอร์โดยทั่วไป ซึ่งมักเรียกว่าระบบฝังตัว โดยทั่วไปแล้ว ซอฟต์แวร์ฝังตัวจะมีความเชี่ยวชาญเฉพาะสำหรับฮาร์ดแวร์ที่ทำงานอยู่ และมีข้อจำกัดด้านเวลาและหน่วยความจำ[ 1 ]บางครั้งคำนี้ก็ใช้แทนกันได้กับเฟิร์มแวร์[ 2 ]

คุณลักษณะที่แม่นยำและเสถียรคือฟังก์ชันของซอฟต์แวร์ฝังตัวไม่ได้ถูกเริ่มต้น/ควบคุมผ่านอินเทอร์เฟซ ของมนุษย์ แต่ผ่านอินเทอร์เฟซของเครื่องจักรแทน[ 3 ]
ผู้ผลิตสร้างซอฟต์แวร์ฝังตัวลงในอุปกรณ์อิเล็กทรอนิกส์ของรถยนต์โทรศัพท์ โมเด็มหุ่นยนต์เครื่องใช้ไฟฟ้า ของเล่น ระบบรักษาความปลอดภัยเครื่องกระตุ้นหัวใจโทรทัศน์และกล่องรับสัญญาณ และนาฬิกาดิจิทัลเป็นต้น[ 4 ]ซอฟต์แวร์นี้อาจเรียบง่ายมาก เช่น การควบคุมแสงสว่างที่ทำงานบนไมโครคอนโทรลเลอร์8 บิต ที่มีหน่วยความจำเพียงไม่กี่กิโลไบต์โดยมีระดับความซับซ้อนในการประมวลผลที่เหมาะสมซึ่งกำหนดโดยกรอบการคำนวณที่ถูกต้องโดยประมาณ[ 5 ] (วิธีการที่ใช้พื้นฐานจากอัลกอริธึมแบบสุ่ม ) อย่างไรก็ตาม ซอฟต์แวร์ฝังตัวอาจมีความซับซ้อนมากในแอปพลิ เคชันต่างๆ เช่นเราเตอร์องค์ประกอบเครือข่ายออปติคอลเครื่องบินขีปนาวุธและระบบควบคุมกระบวนการ [ 6 ]
ระบบปฏิบัติการ
ต่างจากคอมพิวเตอร์มาตรฐานที่โดยทั่วไปใช้ระบบปฏิบัติการ เช่นmacOS , WindowsหรือLinuxซอฟต์แวร์ฝังตัวอาจไม่ใช้ระบบปฏิบัติการเลยก็ได้ หากใช้ระบบปฏิบัติการ ก็สามารถเลือกใช้ระบบปฏิบัติการได้หลากหลาย โดยทั่วไปจะเป็นระบบปฏิบัติการแบบเรียลไทม์โดยทั่วไปโค้ดสำหรับซอฟต์แวร์ฝังตัวจะเขียนด้วยภาษา CหรือC++แต่ภาษาโปรแกรมระดับสูง ต่างๆ เช่นC# , Java , PythonและJavaScriptก็มีการใช้งานกันอย่างแพร่หลายเพื่อกำหนดเป้าหมายไมโครคอนโทรลเลอร์และระบบฝังตัว[ 7 ]ภาษาแอสเซมบลีก็มักถูกใช้เช่นกัน โดยเฉพาะอย่างยิ่งในการบูตและการจัดการการขัดจังหวะAdaถูกใช้ในโครงการทางทหารและการบินบางโครงการ
ความแตกต่างจากซอฟต์แวร์แอปพลิเคชัน

ผู้บริโภคส่วนใหญ่คุ้นเคยกับซอฟต์แวร์แอปพลิเคชันที่ให้ฟังก์ชันการทำงานบนคอมพิวเตอร์ อย่างไรก็ตาม ซอฟต์แวร์ฝังตัวมักไม่ค่อยเป็นที่สังเกตเห็น แต่ก็มีความซับซ้อนไม่แพ้กัน แตกต่างจากซอฟต์แวร์แอปพลิเคชัน ซอฟต์แวร์ฝังตัวมีข้อกำหนดด้านฮาร์ดแวร์และความสามารถที่ตายตัว และการเพิ่มฮาร์ดแวร์หรือซอฟต์แวร์จากภบุคคลที่สามนั้นถูกควบคุมอย่างเข้มงวด
ซอฟต์แวร์ฝังตัวจำเป็นต้องมีไดรเวอร์อุปกรณ์ ที่จำเป็นทั้งหมด ในระหว่างการผลิต และไดรเวอร์อุปกรณ์เหล่านี้เขียนขึ้นสำหรับอุปกรณ์ฮาร์ดแวร์ต่างๆ ไดรเวอร์อุปกรณ์เหล่านี้เรียกว่า BSP ( Board support package ) ซึ่งเป็นชั้นของซอฟต์แวร์ที่ประกอบด้วยไดรเวอร์เฉพาะฮาร์ดแวร์และรูทีนอื่นๆ ที่ช่วยให้ระบบปฏิบัติการเฉพาะ (โดยทั่วไปคือระบบปฏิบัติการแบบเรียลไทม์ หรือ RTOS) สามารถทำงานในสภาพแวดล้อมฮาร์ดแวร์เฉพาะ (คอมพิวเตอร์หรือการ์ด CPU) ซึ่งรวมเข้ากับ RTOS เอง ซอฟต์แวร์นี้ขึ้นอยู่กับ CPU และชิปเฉพาะที่เลือกเป็นอย่างมาก วิศวกรซอฟต์แวร์ฝังตัวส่วนใหญ่มีความรู้พื้นฐานเกี่ยวกับการอ่านแผนผังวงจรและการอ่านเอกสารข้อมูลของส่วนประกอบเพื่อกำหนดการใช้งานรีจิสเตอร์และระบบการสื่อสาร การแปลงระหว่างเลขฐานสิบ เลขฐานสิบหกและเลขฐานสองก็มีประโยชน์เช่นเดียวกับการใช้การจัดการบิต[ 8 ]
แอปพลิเคชันบนเว็บมักใช้ในการจัดการฮาร์ดแวร์ แม้ว่าไฟล์ XML และเอาต์พุตอื่นๆ อาจถูกส่งไปยังคอมพิวเตอร์เพื่อแสดงผลก็ตาม โดยทั่วไปจะใช้ระบบไฟล์ที่มีโฟลเดอร์ แต่ฐานข้อมูล SQL มักไม่ค่อยมีใช้
การพัฒนาซอฟต์แวร์จำเป็นต้องใช้คอมไพเลอร์แบบครอสซึ่งทำงานบนคอมพิวเตอร์แต่สร้างโค้ดที่สามารถทำงานได้บนอุปกรณ์เป้าหมาย การดีบักจำเป็นต้องใช้โปรแกรมจำลองวงจรภายในและฮาร์ดแวร์ดีบัก เช่น ดีบักเกอร์ JTAGหรือSWDนักพัฒนาซอฟต์แวร์มักจะสามารถเข้าถึงซอร์สโค้ดเคอร์เนล (ระบบปฏิบัติการ) ได้อย่างสมบูรณ์
ขนาดของหน่วยความจำจัดเก็บและ RAM อาจแตกต่างกันอย่างมาก บางระบบทำงานใน Flash ขนาด 16 KB และ RAM ขนาด 4 KB โดยมี CPU ทำงานที่ความเร็ว 8 MHz ในขณะที่ระบบอื่นๆ สามารถเทียบเท่ากับคอมพิวเตอร์ในปัจจุบันได้[ 9 ]ความต้องการพื้นที่เหล่านี้ทำให้มีการทำงานมากขึ้นในภาษา C หรือembedded C++แทนที่จะเป็น C++ ภาษาที่ใช้การตีความ เช่นBASIC (ในขณะที่Parallax Propellerสามารถใช้ BASIC ที่คอมไพล์แล้วได้) และJava (Java ME Embedded 8.3 [ 10 ]มีให้ใช้งานสำหรับ ไมโครคอนโทรลเลอร์ ARM Cortex-M4 , Cortex-M7และARM11 รุ่นเก่า ที่ใช้ในRaspberry PiและIntel Galileo Gen. 2) ไม่ได้ใช้กันทั่วไป ในขณะที่การใช้งาน ภาษา Python 3 ที่ใช้การตีความ – MicroPython – มีให้ใช้งานโดยเฉพาะสำหรับไมโครคอนโทรลเลอร์ เช่นARM 32 บิต (เช่น BBC micro:bit ) และไมโคร คอนโทรลเลอร์ PIC 16 บิต
โปรโตคอลการสื่อสาร
การสื่อสารระหว่างโปรเซสเซอร์และระหว่างโปรเซสเซอร์กับส่วนประกอบอื่นๆ นั้นมีความสำคัญอย่างยิ่ง นอกจากการกำหนดแอดเดรสหน่วยความจำโดยตรงแล้ว โปรโตคอลทั่วไปในระดับฮาร์ดแวร์ยังรวมถึงI²C , SPI , พอร์ตอนุกรม , 1-Wire , อีเธอร์เน็ตและUSBด้วย
โปรโตคอลการสื่อสารที่ออกแบบมาเพื่อใช้ในระบบฝังตัวนั้นมีให้ใช้งานในรูปแบบซอฟต์แวร์ปิดจากบริษัทต่างๆ เช่น InterNiche Technologies และCMX Systemsส่วน โปรโตคอล แบบโอเพนซอร์สมาจากuIP , lwipและอื่นๆ
ดูเพิ่มเติม
หมายเหตุ
- ^สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ MicroVGA โปรดดูไฟล์ PDFนี้
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ซอฟต์แวร์ฝังตัว
ซอฟต์แวร์ฝังตัว คือ ซอฟต์แวร์ คอมพิวเตอร์ ที่เขียนขึ้นเพื่อควบคุมเครื่องจักรหรืออุปกรณ์ที่ไม่ถือว่าเป็นคอมพิวเตอร์โดยทั่วไป ซึ่งมักเรียกว่า ระบบฝังตัว โดยทั่วไปแล้ว...
ระบบปฏิบัติการ
ต่างจากคอมพิวเตอร์มาตรฐานที่โดยทั่วไปใช้ระบบปฏิบัติการ เช่น macOS , Windows หรือ Linux ซอฟต์แวร์ฝังตัวอาจไม่ใช้ระบบปฏิบัติการเลยก็ได้ หากใช้ระบบปฏิบัติการ ก็สามารถเลือกใช้ระบบปฏิบัติการได้หลากหลาย โดยทั่วไปจะเป็น ระบบปฏิบัติการแบบเรียลไทม์...
ความแตกต่างจากซอฟต์แวร์แอปพลิเคชัน
ผู้บริโภคส่วนใหญ่คุ้นเคยกับ ซอฟต์แวร์แอปพลิเคชัน ที่ให้ฟังก์ชันการทำงานบนคอมพิวเตอร์ อย่างไรก็ตาม ซอฟต์แวร์ฝังตัวมักไม่ค่อยเป็นที่สังเกตเห็น แต่ก็มีความซับซ้อนไม่แพ้กัน แตกต่างจากซอฟต์แวร์แอปพลิเคชัน...
โปรโตคอลการสื่อสาร
การสื่อสารระหว่างโปรเซสเซอร์และระหว่างโปรเซสเซอร์กับส่วนประกอบอื่นๆ นั้นมีความสำคัญอย่างยิ่ง นอกจาก การกำหนดแอดเดรสหน่วยความจำโดยตรง แล้ว โปรโตคอลทั่วไปในระดับฮาร์ดแวร์ยังรวมถึง I²C , SPI , พอร์ตอนุกรม , 1-Wire , อีเธอร์เน็ต และ USB ด้วย