ระบบคือการจัดเรียงของหน่วยต่างๆซึ่งประกอบเข้าด้วยกันเพื่อทำหน้าที่ตามคำแนะนำที่กำหนด ระบบฝังตัวเป็นการรวมกันของทั้งฮาร์ดแวร์และซอฟต์แวร์ซึ่งจะทำงานเฉพาะภายในระยะเวลาที่กำหนด (ซึ่งหมายความว่าควรทำงานเฉพาะอย่างเดียวเช่นเครื่องซักผ้า) ข้อได้เปรียบหลักของการใช้ระบบฝังตัวในแอปพลิเคชันคือสามารถลดขนาดและต้นทุนให้น้อยที่สุดและยังช่วยเพิ่มความน่าเชื่อถือและประสิทธิภาพของงาน บทความนี้แสดงภาพรวมเกี่ยวกับภาษาซอฟต์แวร์แบบฝังระบบฝังตัว การเขียนโปรแกรม และหน้าที่ของพวกเขา
ส่วนประกอบของระบบฝังตัว
ต่อไปนี้เป็นส่วนประกอบของระบบฝังตัว
- ฮาร์ดแวร์ในตัว: ไมโครคอนโทรลเลอร์เป็นหัวใจสำคัญของระบบฝังตัวที่อุปกรณ์ต่อพ่วงหลายตัวเชื่อมต่อกับฮาร์ดแวร์แบบฝังเพื่อการสื่อสาร
- RTO ในตัว: ระบบปฏิบัติการเรียลไทม์ในตัวถูกใช้เพื่อดำเนินการที่ซับซ้อนทั้งหมด (การดำเนินการ ar.
- ไดรเวอร์อุปกรณ์: ทำหน้าที่เป็นสะพานเชื่อมระหว่างระบบปฏิบัติการและอุปกรณ์ต่อพ่วง
- กองการสื่อสาร: ใช้สำหรับสื่อสารกับอุปกรณ์ภายนอก
- โปรแกรมฝังตัว: มันทำหน้าที่ที่กำหนดไว้ล่วงหน้าของอุปกรณ์ฝังตัว
ส่วนประกอบของระบบฝังตัว
ซอฟต์แวร์ฝังตัว
ซอฟต์แวร์ฝังตัวหรือโปรแกรมระบบสมองกลฝังตัวคือซอฟต์แวร์คอมพิวเตอร์ซึ่งใช้ในการควบคุมอุปกรณ์โดยจัดเตรียมชุดคำสั่ง นอกจากนี้ยังมีชื่อเป็น เฟิร์มแวร์ อุปกรณ์ต่างๆที่มีฟังก์ชันการทำงานที่หลากหลายสามารถตั้งโปรแกรมได้โดยใช้ซอฟต์แวร์ฝังตัวโดยรักษาข้อ จำกัด ด้านการออกแบบ (เช่นข้อ จำกัด ด้านเวลาตอบสนองกำหนดเวลาที่เข้มงวดและข้อมูลที่ประมวลผล) และจัดเก็บข้อมูลสุดท้ายใน หน่วยความจำ (ราม / รมย์).
ซอฟต์แวร์ถูกควบคุมหรือเริ่มต้นโดยอินเทอร์เฟซของเครื่อง ซอฟต์แวร์ฝังตัวอยู่ในอุปกรณ์อิเล็กทรอนิกส์ทั้งหมดเช่นรถยนต์โทรศัพท์หุ่นยนต์ ระบบรักษาความปลอดภัย ฯลฯ ซึ่งใช้งานง่ายบน 8 บิต ไมโครคอนโทรลเลอร์ ใช้หน่วยความจำสูงสุดไม่กี่ KB ช่วยในการประมวลผลการดำเนินการที่ซับซ้อนและกำหนดกรอบการคำนวณที่ถูกต้อง
ภาษาการเขียนโปรแกรมระบบฝังตัว
ซอฟต์แวร์ในตัวใช้ระบบปฏิบัติการซึ่งเป็นระบบปฏิบัติการแบบเรียลไทม์ที่ทำงานหลายอย่างพร้อมกัน โปรแกรมฝังตัวถูกตั้งโปรแกรมโดยใช้ใน C / C ++ , Phyton และ Java Scripts และได้รับการประมวลผลบนระบบปฏิบัติการเช่น ระบบปฏิบัติการลินุกซ์ , VxWorks , Fusion RTOS, Nucleus RTOS, micro C / OS, OSE เป็นต้นการเลือกภาษาโปรแกรมมีบทบาทสำคัญในการพัฒนาซอฟต์แวร์ฝังตัวซึ่งขึ้นอยู่กับปัจจัยบางประการดังที่แสดงด้านล่าง
- ขนาด : จำนวนหน่วยความจำที่โปรแกรมต้องการมีบทบาทสำคัญเนื่องจากโปรเซสเซอร์แบบฝังตัว (ไมโครคอนโทรลเลอร์) มี ROM (หน่วยความจำแบบอ่านอย่างเดียว) ตามจำนวนที่กำหนด
- ความเร็ว : ความเร็วในการทำงานของโปรแกรมต้องเร็ว
- การพกพา: สามารถคอมไพล์โปรเซสเซอร์ที่แตกต่างกันได้โดยใช้โปรแกรมเดียว
- การนำไปใช้งานทำได้ยาก
- การดูแลรักษาทำได้ยาก
การเขียนโปรแกรมระบบฝังตัวในภาษาแอสเซมบลี
การเขียนโปรแกรมระบบฝังตัวใน ภาษาแอสเซมบลี (อินพุต) และการแปลงเป็นไฟล์ ภาษาระดับเครื่อง (เอาต์พุต) โดยใช้แอสเซมเบลอร์สามารถอธิบายได้โดยใช้ตัวอย่างต่อไปนี้ซึ่งเราดำเนินการเพิ่มตัวเลขสองตัวโดยใช้รีจิสเตอร์สองตัวและเก็บผลลัพธ์ไว้ในรีจิสเตอร์เอาต์พุต
อินพุต
ที่นี่: MOV R0, # 01H
MOV # 1, # 02H
MOV A, R0
เพิ่ม A, R1
MOV P0, ก
SIMP ที่นี่
เอาต์พุต
ที่อยู่ Opcode Operand
0000 78 01
0002 79 02
0004 E8 -
0005 29 -
0006 F5 80
0008 80 00
รหัสแอสเซมบลีใช้สำหรับการพัฒนาโค้ดที่มีประสิทธิภาพทั้งในด้านขนาดและความเร็ว การพัฒนาโค้ดที่ใหญ่ขึ้นในภาษาแอสเซมบลีจะเป็นเรื่องยากซึ่งอาจทำให้ต้นทุนการพัฒนาซอฟต์แวร์สูงขึ้นและไม่มีความสามารถในการพกพาโค้ด ดังนั้นเพื่อที่จะเอาชนะข้อเสียนี้เราใช้ภาษาระดับสูงเช่น ฝัง C .
เกี่ยวกับ C, C ++, Java และ Embedded C
การเขียนโปรแกรม C
ภาษาซีเป็นภาษาเชิงโครงสร้างที่พัฒนาโดยเดนนิสริตชี่ ให้การเข้าถึงหน่วยความจำน้อยลงโดยใช้คอมไพเลอร์แบบง่ายและส่งข้อมูลได้อย่างมีประสิทธิภาพตามคำแนะนำของเครื่อง สามารถใช้งานได้หลากหลายตั้งแต่ระบบฝังตัวไปจนถึงซูเปอร์คอมพิวเตอร์
ฝังตัว C
Embedded C เป็นส่วนขยายของภาษา C ซึ่งใช้สำหรับการพัฒนาระบบฝังตัว ไวยากรณ์คล้ายกับภาษา C (เช่นฟังก์ชันหลักการประกาศฟังก์ชันการประกาศประเภทข้อมูลการวนซ้ำ ฯลฯ ) ความแตกต่างที่สำคัญระหว่างภาษา C แบบฝังและภาษา C มาตรฐานคือการกำหนดแอดเดรสอินพุต - เอาต์พุตของฮาร์ดแวร์การดำเนินการแบบจุดคงที่และช่องว่างที่อยู่การประมวลผล
การใช้ C ในระบบฝังตัวเนื่องจากข้อดีดังต่อไปนี้
- มีขนาดเล็กและง่ายต่อการเรียนรู้ทำความเข้าใจและแก้ไขข้อบกพร่องของโปรแกรม
- คอมไพเลอร์ C ทั้งหมดเข้ากันได้กับอุปกรณ์ฝังตัวทั้งหมด
- เป็นโปรเซสเซอร์ที่เป็นอิสระ (นั่นคือไม่เฉพาะเจาะจงสำหรับไมโครโปรเซสเซอร์หรือไมโครคอนโทรลเลอร์โดยเฉพาะ)
- ภาษาซีใช้การผสมผสานระหว่างภาษาแอสเซมบลีและคุณลักษณะของภาษาระดับสูง
- มันค่อนข้างมีประสิทธิภาพเชื่อถือได้ยืดหยุ่นมากขึ้นพกพาสะดวกระหว่างแพลตฟอร์มต่างๆ
- โปรแกรมที่พัฒนาในภาษา C นั้นง่ายต่อการทำความเข้าใจแก้จุดบกพร่องและบำรุงรักษา
เปรียบเทียบกับภาษา C ระดับสูงอื่น ๆ มีความยืดหยุ่นมากกว่าเนื่องจากเป็นภาษาที่เน้นโครงสร้างค่อนข้างเล็กและรองรับระดับบิตระดับต่ำ การจัดการข้อมูล .
C ++
ภาษาเชิงวัตถุเช่น C ++ ไม่ใช่ทางเลือกสำหรับการพัฒนาโปรแกรมที่มีประสิทธิภาพในสภาพแวดล้อมที่ จำกัด การวิจัยเช่นอุปกรณ์ฝังตัว ฟังก์ชันเสมือนและการจัดการข้อยกเว้นของ C ++ เป็นคุณสมบัติเฉพาะบางอย่างที่ไม่มีประสิทธิภาพในแง่ของพื้นที่และความเร็วของระบบ
JAVA
ระบบฝังตัวสามารถตั้งโปรแกรมด้วยภาษา JAVA โดยใช้ JAVA virtual machine (JVM) ซึ่งเข้าถึงทรัพยากรจำนวนมาก พบการใช้งานในแอปพลิเคชันระดับไฮเอนด์เป็นหลัก (เช่นโทรศัพท์มือถือ) และมีการพกพาข้ามระบบเพื่อประมวลผลแอปพลิเคชัน ไม่แนะนำสำหรับอุปกรณ์ฝังตัวขนาดเล็ก
สถาปัตยกรรมการเขียนโปรแกรม C แบบฝังตัวและตัวอย่าง
สถาปัตยกรรมการเขียนโปรแกรม C แบบฝังสามารถเข้าใจได้ด้วยตัวอย่างการใช้งาน ไมโครคอนโทรลเลอร์ 8051 โดยที่หน้าที่ของมันคือการกะพริบหลอด LED ซึ่งเชื่อมต่อกับ PORT1 ของคอนโทรลเลอร์และคอมไพเลอร์ที่ใช้คือ Keil C Compiler ต่อไปนี้เป็นรหัสสำหรับ LED กระพริบตา
#include // คำสั่งของตัวประมวลผลล่วงหน้า
ความล่าช้าเป็นโมฆะ (int) // การประกาศฟังก์ชันการหน่วงเวลา
โมฆะ main (โมฆะ) // ฟังก์ชันหลัก
{
P1 = 0x00 // port1 ปิดดังนั้น LED จึงปิดและเก็บไว้ใน reg51.h
ในขณะที่ (1) // ลูปอินฟินิตี้
{
P1 = OxFF //// port1 เปิดอยู่ดังนั้น LED จึงเปิดอยู่
ล่าช้า (1,000) // กำหนดการหน่วงเวลา
P1 = 0X00 // พอร์ต 1 ปิด
ล่าช้า (1000)
}
}
ความล่าช้าเป็นโมฆะ (int d) // การกำหนดฟังก์ชันการหน่วงเวลา
{
int ที่ไม่ได้ลงนาม i = 0 // ตัวแปรที่กำหนดในเครื่อง
สำหรับ (d> 0 d-)
{
สำหรับ (i = 250 i> 0i–)
สำหรับ (i = 248 i> 0i–)
}
}
ข้อดี
ต่อไปนี้เป็นข้อดีของซอฟต์แวร์ฝังตัว
- การโหลดข้อมูลทำได้เร็วขึ้น
- ต้นทุนต่ำ
- ใช้ทรัพยากรน้อยลง
ข้อเสีย
ต่อไปนี้เป็นข้อเสียของซอฟต์แวร์ฝังตัว
- การอัพเกรดมีความซับซ้อน
- ทุกครั้งที่รีเซ็ตเป็นสิ่งที่จำเป็นหากเกิดปัญหาใด ๆ
- การปรับขนาดสำหรับค่าขนาดเล็กเป็นเรื่องยาก
การใช้งาน
ต่อไปนี้เป็นแอพพลิเคชั่นของ Embedded Software
- การธนาคาร
- รถยนต์
- เครื่องใช้ในบ้าน
- รถยนต์
- ขีปนาวุธ ฯลฯ
คำถามที่พบบ่อย
1). ซอฟต์แวร์ฝังตัวคืออะไร?
ซอฟต์แวร์ฝังตัวหรือโปรแกรมระบบสมองกลฝังตัวคือซอฟต์แวร์คอมพิวเตอร์ซึ่งใช้ในการควบคุมอุปกรณ์โดยให้คำสั่ง
2). โปรแกรมที่ใช้ในซอฟต์แวร์ระบบฝังตัวคืออะไร?
โปรแกรมซอฟต์แวร์ระบบฝังตัวถูกตั้งโปรแกรมใน C หรือ C ++, Phyton และ Java Scripts
3). อะไรคือความแตกต่างระหว่างระบบฝังตัวและระบบปกติ?
ระบบฝังตัวคือการรวมกันของฮาร์ดแวร์และซอฟต์แวร์ที่ออกแบบมาเพื่อวัตถุประสงค์เฉพาะ กระบวนการต่างๆจะถูกประมวลผลตามลำดับ ในขณะที่โปรเซสเซอร์ปกติเป็นระบบปฏิบัติการแบบเรียลไทม์ของ RTO แต่จำเป็นต้องมีในกรณีที่จำเป็นสำหรับการดำเนินการแบบขนาน
4). ระบบฝังตัวประเภทต่างๆมีอะไรบ้าง?
ระบบฝังตัวแบ่งออกเป็นสองประเภท
- ขึ้นอยู่กับความต้องการด้านประสิทธิภาพและการใช้งานพวกเขาได้รับการจัดประเภทเพิ่มเติมเป็นเรียลไทม์สแตนด์อโลนเครือข่ายมือถือ
- ขึ้นอยู่กับประสิทธิภาพของไมโครคอนโทรลเลอร์พวกเขาถูกจัดประเภทเพิ่มเติมเป็นสเกลเล็กสเกลกลางและสเกลที่ซับซ้อน
5). การใช้งานหลักของระบบฝังตัว
การใช้งานที่สำคัญของระบบฝังตัวคือ
- เครื่องซักผ้า
- กล้องดิจิตอล
- เครื่องเล่นเพลง ฯลฯ
ระบบฝังตัวคือการผสมผสานระหว่างฮาร์ดแวร์และซอฟต์แวร์ ที่ไหน โปรแกรมซอฟต์แวร์ฝังตัว ถูกตั้งโปรแกรมใน C หรือ C ++, Phyton และ Java Scripts พวกเขาทำงานบน Linux OS, micro C / OS, QNX และอื่น ๆ ภาษา C เป็นภาษาพื้นฐานสำหรับการเขียนโค้ดซอฟต์แวร์ฝังตัว ดังนั้นนี่คือภาพรวมของซอฟต์แวร์ฝังตัวและสถาปัตยกรรมที่อธิบายโดยใช้โปรแกรม