ระบบสมองกลฝังตัว

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา

ระบบฝังตัวใน plug-in ที่บัตรที่มีหน่วยประมวลผลหน่วยความจำ, power supply, และภายนอกอินเตอร์เฟซ

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

ระบบฝังตัวสมัยใหม่มักใช้ไมโครคอนโทรลเลอร์ (เช่น ไมโครโปรเซสเซอร์ที่มีหน่วยความจำรวมและอินเทอร์เฟซอุปกรณ์ต่อพ่วง) แต่ไมโครโปรเซสเซอร์ทั่วไป (โดยใช้ชิปภายนอกสำหรับหน่วยความจำและวงจรอินเทอร์เฟซต่อพ่วง) ก็พบเห็นได้ทั่วไปเช่นกัน โดยเฉพาะอย่างยิ่งในระบบที่ซับซ้อนกว่า ไม่ว่าในกรณีใด โปรเซสเซอร์ที่ใช้อาจเป็นประเภทต่าง ๆ ตั้งแต่วัตถุประสงค์ทั่วไปไปจนถึงประเภทที่เชี่ยวชาญในการคำนวณบางประเภท หรือแม้แต่กำหนดเองที่ออกแบบมาสำหรับแอปพลิเคชันในมือ คลาสมาตรฐานทั่วไปของโปรเซสเซอร์เฉพาะคือตัวประมวลผลสัญญาณดิจิตอล (DSP)

เนื่องจากระบบฝังตัวมีไว้สำหรับงานเฉพาะวิศวกรออกแบบจึงสามารถเพิ่มประสิทธิภาพได้ เพื่อลดขนาดและต้นทุนของผลิตภัณฑ์ และเพิ่มความน่าเชื่อถือและประสิทธิภาพ บางระบบฝังตัวเป็นมวลผลิตได้รับประโยชน์จากการประหยัดจากขนาด

ระบบสมองกลฝังตัวมีขนาดตั้งแต่อุปกรณ์พกพาส่วนตัว เช่นนาฬิกาดิจิตอลและเครื่องเล่น MP3ไปจนถึงเครื่องจักรขนาดใหญ่ เช่นเครื่องใช้ในบ้านสายการประกอบอุตสาหกรรมหุ่นยนต์ ยานพาหนะขนส่งตัวควบคุมสัญญาณไฟจราจรและระบบภาพทางการแพทย์ บ่อยครั้งพวกมันประกอบขึ้นเป็นระบบย่อยของเครื่องจักรอื่นๆ เช่นavionicsในเครื่องบิน การติดตั้งขนาดใหญ่เช่นโรงงาน , ท่อและกริดพึ่งพาระบบฝังตัวหลายเครือข่ายร่วมกัน กำหนดลักษณะทั่วไปผ่านการปรับแต่งซอฟต์แวร์ ระบบฝังตัว เช่นตัวควบคุมลอจิกที่ตั้งโปรแกรมได้ มักประกอบด้วยหน่วยการทำงาน

ระบบสมองกลฝังตัวมีตั้งแต่ความซับซ้อนต่ำ เช่น ไมโครคอนโทรลเลอร์ชิปตัวเดียว ไปจนถึงระดับสูงมากที่มีหลายยูนิตอุปกรณ์ต่อพ่วงและเครือข่าย ซึ่งอาจอยู่ในชั้นวางอุปกรณ์หรือข้ามพื้นที่ทางภูมิศาสตร์ขนาดใหญ่ที่เชื่อมต่อผ่านสายการสื่อสารทางไกล

ประวัติ

ความเป็นมา

ต้นกำเนิดของไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์สามารถสืบย้อนไปถึงวงจรรวมของ MOSซึ่งเป็นชิปวงจรรวมที่ประดิษฐ์จากMOSFET ( ทรานซิสเตอร์แบบ field-effect ของโลหะออกไซด์-เซมิคอนดักเตอร์) และได้รับการพัฒนาขึ้นในช่วงต้นทศวรรษ 1960 ภายในปี 2507 ชิป MOS มีความหนาแน่นของทรานซิสเตอร์สูงขึ้นและต้นทุนการผลิตต่ำกว่าชิปสองขั้วชิป MOS มีความซับซ้อนเพิ่มขึ้นในอัตราที่ทำนายโดยกฎของมัวร์นำไปสู่การรวมขนาดใหญ่ (LSI) กับทรานซิสเตอร์หลายร้อยตัวบนชิป MOS ตัวเดียวในช่วงปลายทศวรรษ 1960 การประยุกต์ใช้ชิป MOS LSI ในการคำนวณเป็นพื้นฐานสำหรับไมโครโปรเซสเซอร์ตัวแรก เนื่องจากวิศวกรเริ่มตระหนักว่าระบบโปรเซสเซอร์ของคอมพิวเตอร์ที่สมบูรณ์นั้นสามารถบรรจุอยู่ในชิป MOS LSI หลายตัว[5]

ไมโครโปรเซสเซอร์แบบมัลติชิปตัวแรก ได้แก่Four-Phase Systems AL1ในปี 1969 และGarrett AiResearch MP944ในปี 1970 ได้รับการพัฒนาด้วยชิป MOS LSI หลายตัว ครั้งแรกที่ไมโครโปรเซสเซอร์ชิปเดียวคือIntel 4004ได้รับการปล่อยตัวในปี 1971 มันถูกพัฒนาโดยเฟเดอริโกแฟกกินใช้ของเขาซิลิกอนประตูเทคโนโลยี MOS พร้อมกับIntelวิศวกรร์เีชียฮอฟฟ์และสแตน MazorและBusicomวิศวกรMasatoshi Shima [6]

พัฒนาการ

หนึ่งในระบบฝังตัวแรกที่ทันสมัย recognizably เป็นอพอลโลแนะแนวคอมพิวเตอร์ , [ ต้องการอ้างอิง ]พัฒนาแคลิฟอร์เนีย 1965 โดยชาร์ลส์สตาร์เดรเปอร์ที่เอ็มไอทีห้องปฏิบัติการเครื่องมือวัดในช่วงเริ่มต้นของโครงการ คอมพิวเตอร์แนะนำ Apollo ถือเป็นรายการที่เสี่ยงที่สุดในโครงการ Apollo เนื่องจากใช้วงจรรวมแบบเสาหินที่พัฒนาขึ้นใหม่เพื่อลดขนาดและน้ำหนักของคอมพิวเตอร์

ระบบฝังตัวที่ผลิตขึ้นเป็นจำนวนมากในยุคแรกคือคอมพิวเตอร์นำทาง Autonetics D-17สำหรับขีปนาวุธมินิทแมนซึ่งเปิดตัวในปี 2504 เมื่อมินิทแมน II เริ่มผลิตในปี 2509 D-17 ถูกแทนที่ด้วยคอมพิวเตอร์เครื่องใหม่ที่เป็นตัวแทนของไฮเทคเครื่องแรก ปริมาณการใช้วงจรรวม

นับตั้งแต่แอปพลิเคชันช่วงแรกๆ เหล่านี้ในทศวรรษที่ 1960 ระบบฝังตัวได้ลดราคาลง และพลังการประมวลผลและฟังก์ชันการทำงานก็เพิ่มขึ้นอย่างมาก ต้นไมโครโปรเซสเซอร์ที่อินเทล 4004 (ปล่อยตัวในปี 1971) ได้รับการออกแบบมาสำหรับเครื่องคิดเลขและระบบขนาดเล็กอื่น ๆ แต่ยังคงจำเป็นต้องใช้หน่วยความจำภายนอกและชิปสนับสนุน โดยในช่วงต้นทศวรรษที่ 1980 หน่วยความจำ, การป้อนข้อมูลและระบบการส่งออกชิ้นส่วนได้รับการรวมอยู่ในชิปเดียวกับหน่วยประมวลผลในรูปแบบไมโครคอนโทรลเลอร์ไมโครคอนโทรลเลอร์ค้นหาแอปพลิเคชันที่คอมพิวเตอร์เอนกประสงค์จะมีราคาแพงเกินไป เนื่องจากต้นทุนของไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์ลดลง ความชุกของระบบฝังตัวจึงเพิ่มขึ้น

ในปัจจุบัน ไมโครคอนโทรลเลอร์ที่มีราคาค่อนข้างต่ำอาจถูกตั้งโปรแกรมให้ทำหน้าที่เดียวกันกับส่วนประกอบที่แยกจากกันจำนวนมาก ด้วยไมโครคอนโทรลเลอร์ ทำให้สามารถเปลี่ยนได้แม้ในสินค้าอุปโภคบริโภคส่วนประกอบอนาล็อกแบบลูกบิดที่มีราคาแพงเช่นโพเทนชิโอมิเตอร์และตัวเก็บประจุแบบแปรผันที่มีปุ่มขึ้น/ลงหรือปุ่มอ่านโดยไมโครโปรเซสเซอร์ แม้ว่าในบริบทนี้ ระบบฝังตัวมักจะซับซ้อนกว่าโซลูชันแบบเดิม แต่ความซับซ้อนส่วนใหญ่อยู่ภายในไมโครคอนโทรลเลอร์เอง อาจจำเป็นต้องมีส่วนประกอบเพิ่มเติมน้อยมาก และความพยายามในการออกแบบส่วนใหญ่อยู่ในซอฟต์แวร์ ซอฟต์แวร์ต้นแบบและการทดสอบสามารถทำได้เร็วกว่าเมื่อเปรียบเทียบกับการออกแบบและสร้างวงจรใหม่ที่ไม่ได้ใช้โปรเซสเซอร์แบบฝังตัว

แอปพลิเคชัน

แอสเซมบลีย่อยคอมพิวเตอร์ฝังตัวสำหรับ Accupoll Electronic Voting Machine [7]

ระบบสมองกลฝังตัวมักจะพบในผู้บริโภค, อุตสาหกรรมยานยนต์ , เครื่องใช้ในบ้าน , การแพทย์, การสื่อสารโทรคมนาคม, การค้าและการใช้งานทางทหาร

การสื่อสารโทรคมนาคมระบบจ้างระบบฝังตัวมากมายจากสวิทช์โทรศัพท์สำหรับเครือข่ายโทรศัพท์มือถือที่ผู้ใช้ ระบบเครือข่ายคอมพิวเตอร์ใช้เราเตอร์เฉพาะและบริดจ์เครือข่ายเพื่อกำหนดเส้นทางข้อมูล

อิเล็กทรอนิกส์สำหรับผู้บริโภครวมถึงการเล่น MP3 , โทรทัศน์ , โทรศัพท์มือถือ , เครื่องเล่นวิดีโอเกม , กล้องดิจิตอล , จีพีเอสรับและเครื่องพิมพ์เครื่องใช้ในครัวเรือนเช่นเตาอบไมโครเวฟ , เครื่องซักผ้าและเครื่องล้างจานรวมถึงระบบที่จะให้ความยืดหยุ่นประสิทธิภาพและคุณสมบัติที่ฝังตัว ขั้นสูงHVACระบบเครือข่ายใช้อุณหภูมิให้มากขึ้นได้อย่างถูกต้องและมีประสิทธิภาพการควบคุมอุณหภูมิที่สามารถเปลี่ยนตามเวลาของวันและฤดูกาล ระบบอัตโนมัติในบ้านใช้เครือข่ายแบบมีสายและไร้สายที่สามารถใช้ควบคุมแสง สภาพอากาศ การรักษาความปลอดภัย เสียง/ภาพ การเฝ้าระวัง ฯลฯ ซึ่งทั้งหมดใช้อุปกรณ์ฝังตัวสำหรับการตรวจจับและควบคุม

ระบบขนส่งจากเที่ยวบินสู่รถยนต์ใช้ระบบฝังตัวมากขึ้น เครื่องบินใหม่ประกอบด้วยระบบ avionicsขั้นสูงเช่นระบบนำทางเฉื่อยและเครื่องรับ GPS ที่มีข้อกำหนดด้านความปลอดภัยเป็นอย่างมาก มอเตอร์ไฟฟ้าต่างๆ - มอเตอร์ brushless DC , มอเตอร์เหนี่ยวนำและมอเตอร์กระแสตรง - ใช้อิเล็กทรอนิกส์ควบคุมมอเตอร์ รถยนต์ , ยานพาหนะไฟฟ้าและยานพาหนะไฮบริดมากขึ้นใช้ระบบฝังตัวเพื่อเพิ่มประสิทธิภาพและลดมลพิษ ระบบความปลอดภัยยานยนต์อื่นๆ ที่ใช้ระบบฝังตัว ได้แก่ระบบเบรกป้องกันล้อล็อก (ABS)ระบบควบคุมเสถียรภาพการทรงตัว (ESC/ESP), ระบบควบคุมการลื่นไถล (TCS) และระบบขับเคลื่อนสี่ล้ออัตโนมัติ

อุปกรณ์ทางการแพทย์ใช้ระบบฝังตัวสำหรับการตรวจติดตามและภาพทางการแพทย์ต่างๆ( PET , SPECT , CTและMRI ) สำหรับการตรวจสอบภายในแบบไม่รุกราน ระบบสมองกลฝังตัวในเครื่องมือแพทย์มักใช้คอมพิวเตอร์อุตสาหกรรม [8]

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

อุปกรณ์ไร้สายขนาดเล็กที่เรียกว่าmotesเป็นเซ็นเซอร์ไร้สายในเครือข่าย ระบบเครือข่ายเซ็นเซอร์ไร้สายใช้ประโยชน์จากการย่อขนาดที่เป็นไปได้โดยการออกแบบ IC ขั้นสูงเพื่อจับคู่ระบบย่อยไร้สายเต็มรูปแบบกับเซ็นเซอร์ที่ซับซ้อน ทำให้ผู้คนและบริษัทต่างๆ สามารถวัดสิ่งต่างๆ มากมายในโลกทางกายภาพ และดำเนินการกับข้อมูลนี้ผ่านระบบตรวจสอบและควบคุม ม็อตเหล่านี้มีอยู่ในตัวเองโดยสมบูรณ์ และโดยทั่วไปแล้วจะใช้แหล่งแบตเตอรี่หมดหลายปีก่อนจะต้องเปลี่ยนหรือชาร์จแบตเตอรี่

ลักษณะเฉพาะ

ระบบสมองกลฝังตัวได้รับการออกแบบมาเพื่อทำงานบางอย่างโดยเฉพาะ แทนที่จะเป็นคอมพิวเตอร์เอนกประสงค์สำหรับงานหลายอย่าง บางรายการยังมีข้อจำกัดด้านประสิทธิภาพแบบเรียลไทม์ที่ต้องปฏิบัติตาม ด้วยเหตุผลต่างๆ เช่น ความปลอดภัยและการใช้งาน ส่วนอื่นๆ อาจมีข้อกำหนดด้านประสิทธิภาพต่ำหรือไม่มีเลย ทำให้ฮาร์ดแวร์ระบบง่ายขึ้นเพื่อลดต้นทุน

ระบบสมองกลฝังตัวไม่ใช่อุปกรณ์แบบสแตนด์อโลนเสมอไป ระบบฝังตัวจำนวนมากประกอบด้วยชิ้นส่วนขนาดเล็กภายในอุปกรณ์ขนาดใหญ่ที่มีจุดประสงค์ทั่วไปมากกว่า ตัวอย่างเช่นGibson Robot Guitarมีระบบฝังตัวสำหรับปรับสาย แต่จุดประสงค์โดยรวมของ Robot Guitar คือการเล่นเพลง [9]ในทำนองเดียวกัน ระบบฝังตัวในรถยนต์มีหน้าที่เฉพาะในฐานะระบบย่อยของตัวรถเอง

e-con Systems eSOM270 & eSOM300 คอมพิวเตอร์บนโมดูล

คำแนะนำโปรแกรมที่เขียนขึ้นสำหรับระบบฝังตัวจะเรียกว่าเฟิร์มแวร์และจัดเก็บไว้ในหน่วยความจำแบบอ่านอย่างเดียวหรือชิปหน่วยความจำแฟลช ทำงานโดยใช้ทรัพยากรฮาร์ดแวร์ของคอมพิวเตอร์ที่จำกัด: หน่วยความจำน้อย แป้นพิมพ์หรือหน้าจอขนาดเล็กหรือไม่มีอยู่จริง

อินเทอร์เฟซผู้ใช้

ส่วนต่อประสานผู้ใช้ข้อความระบบฝังตัวโดยใช้ MicroVGA [nb 1]

ระบบสมองกลฝังตัวมีตั้งแต่ไม่มีอินเทอร์เฟซผู้ใช้เลย ในระบบที่ทุ่มเทให้กับงานเดียวเท่านั้น ไปจนถึงอินเทอร์เฟซผู้ใช้แบบกราฟิกที่ซับซ้อนซึ่งคล้ายกับระบบปฏิบัติการเดสก์ท็อปของคอมพิวเตอร์สมัยใหม่ อุปกรณ์ฝังตัวที่เรียบง่ายใช้ปุ่ม , ไฟ LED , กราฟิกหรือตัวอักษรแอลซีดี ( HD44780 จอแอลซีดีเป็นต้น) ด้วยง่ายระบบเมนูอุปกรณ์ที่ซับซ้อนกว่าที่ใช้หน้าจอกราฟิกที่มีระบบสัมผัสหรือซอฟต์คีย์ขอบหน้าจอให้ความยืดหยุ่นในขณะที่ลดพื้นที่ที่ใช้: ความหมายของปุ่มสามารถเปลี่ยนแปลงไปตามหน้าจอ และการเลือกเกี่ยวข้องกับพฤติกรรมตามธรรมชาติของการชี้ไปยังสิ่งที่ต้องการ

ระบบบางระบบมีอินเทอร์เฟซผู้ใช้จากระยะไกลโดยใช้การเชื่อมต่อแบบอนุกรม (เช่นRS-232 ) หรือเครือข่าย (เช่นอีเทอร์เน็ต ) แนวทางนี้ขยายขีดความสามารถของระบบฝังตัว หลีกเลี่ยงค่าใช้จ่ายในการแสดงผล ลดความซับซ้อนของBSPและช่วยให้นักออกแบบสามารถสร้างอินเทอร์เฟซผู้ใช้ที่สมบูรณ์บนพีซีได้ ตัวอย่างที่ดีคือการรวมกันของเซิร์ฟเวอร์ Embedded HTTP ที่ทำงานบนอุปกรณ์ฝังตัว (เช่นกล้อง IPหรือเราเตอร์เครือข่าย ) ส่วนต่อประสานผู้ใช้จะแสดงในเว็บเบราว์เซอร์บนพีซีที่เชื่อมต่อกับอุปกรณ์

โปรเซสเซอร์ในระบบฝังตัว

ตัวอย่างของคุณสมบัติของคอมพิวเตอร์แบบฝังตัวทั่วไป เมื่อเปรียบเทียบกับคอมพิวเตอร์แบบฝังทั่วไป ได้แก่ การใช้พลังงานต่ำ ขนาดเล็ก ช่วงการทำงานที่สมบุกสมบัน และต้นทุนต่อหน่วยต่ำ นี้มาในราคาของทรัพยากรการประมวลผลที่จำกัด

ไมโครคอนโทรลเลอร์จำนวนมากได้รับการพัฒนาสำหรับการใช้งานระบบฝังตัว ไมโครโปรเซสเซอร์เอนกประสงค์ยังใช้ในระบบฝังตัว แต่โดยทั่วไปต้องการวงจรสนับสนุนมากกว่าไมโครคอนโทรลเลอร์

บอร์ดคอมพิวเตอร์สำเร็จรูป

PC/104และ PC/104+ คือตัวอย่างมาตรฐานสำหรับบอร์ดคอมพิวเตอร์สำเร็จรูปสำหรับระบบฝังตัวที่มีปริมาณน้อยและมีความทนทาน สิ่งเหล่านี้ส่วนใหญ่เป็นแบบ x86 และมักจะมีขนาดเล็กเมื่อเทียบกับพีซีมาตรฐาน แม้ว่าจะยังค่อนข้างใหญ่เมื่อเทียบกับระบบฝังตัวแบบธรรมดา (8/16 บิต) ส่วนใหญ่ พวกเขาอาจจะใช้DOS , Linux , NetBSDหรือฝังตัวระบบปฏิบัติการแบบ real-timeเช่นMicroC / OS-II , QNXหรือVxWorks

ในบางแอปพลิเคชัน ซึ่งขนาดเล็กหรือประสิทธิภาพการใช้พลังงานไม่ได้เป็นปัญหาหลัก ส่วนประกอบที่ใช้อาจเข้ากันได้กับที่ใช้ในคอมพิวเตอร์ส่วนบุคคล x86 ที่ใช้งานทั่วไป บอร์ดต่างๆ เช่น กลุ่มผลิตภัณฑ์ VIA EPIAช่วยลดช่องว่างด้วยการเข้ากันได้กับพีซี แต่มีการผสานรวมในระดับสูง มีขนาดเล็กลง หรือมีคุณลักษณะอื่นๆ ที่ทำให้น่าสนใจสำหรับวิศวกรฝังตัว ข้อได้เปรียบของแนวทางนี้คือส่วนประกอบสินค้าโภคภัณฑ์ต้นทุนต่ำอาจใช้ควบคู่ไปกับเครื่องมือพัฒนาซอฟต์แวร์เดียวกันกับที่ใช้สำหรับการพัฒนาซอฟต์แวร์ทั่วไป ระบบที่สร้างขึ้นในลักษณะนี้ยังคงถือว่าเป็นระบบฝังตัวเนื่องจากถูกรวมเข้ากับอุปกรณ์ขนาดใหญ่กว่าและทำหน้าที่เดียว ตัวอย่างอุปกรณ์ที่อาจใช้วิธีนี้คือATMและเครื่องอาร์เคดซึ่งมีรหัสเฉพาะสำหรับแอปพลิเคชัน

อย่างไรก็ตาม บอร์ดระบบฝังตัวแบบสำเร็จรูปส่วนใหญ่ไม่ได้เน้นที่ PC และไม่ใช้บัส ISA หรือ PCI เมื่อเกี่ยวข้องกับโปรเซสเซอร์system-on-a-chipอาจมีประโยชน์เพียงเล็กน้อยที่จะมีบัสมาตรฐานที่เชื่อมต่อส่วนประกอบแบบแยกส่วน และสภาพแวดล้อมสำหรับทั้งฮาร์ดแวร์และเครื่องมือซอฟต์แวร์อาจแตกต่างกันมาก

หนึ่งสไตล์การออกแบบร่วมกันใช้โมดูลระบบขนาดเล็กอาจจะเป็นขนาดของนามบัตรถือความหนาแน่นสูงBGAชิปเช่นARM -based System-on-a-ชิปประมวลผลและอุปกรณ์ต่อพ่วงภายนอกหน่วยความจำแฟลชสำหรับการจัดเก็บและDRAMสำหรับรันไทม์ หน่วยความจำ. ผู้จำหน่ายโมดูลมักจะจัดหาซอฟต์แวร์สำหรับบู๊ตและทำให้แน่ใจว่ามีระบบปฏิบัติการให้เลือกมากมาย มักจะรวมถึงLinuxและตัวเลือกตามเวลาจริงบางส่วน โมดูลเหล่านี้สามารถผลิตได้ในปริมาณมาก โดยองค์กรที่คุ้นเคยกับปัญหาการทดสอบเฉพาะทาง และรวมเข้ากับเมนบอร์ดแบบกำหนดเองที่มีระดับเสียงต่ำกว่ามาก กับอุปกรณ์ต่อพ่วงภายนอกเฉพาะแอปพลิเคชัน ตัวอย่างที่เด่นชัดของแนวทางนี้ได้แก่ArduinoและRaspberry Pi .

โซลูชัน ASIC และ FPGA SoC

ระบบบนชิป (SoC) มีระบบที่สมบูรณ์ - ซึ่งประกอบด้วยโปรเซสเซอร์หลายตัวคูณแคชแม้แตกต่างกันของหน่วยความจำและอุปกรณ์ต่อพ่วงต่างๆทั่วไปเช่นอินเตอร์เฟซสำหรับการสื่อสารแบบมีสายหรือไร้สายบนชิปตัวเดียว ชิปดังกล่าวมักรวมหน่วยประมวลผลกราฟิก (GPU) และตัวประมวลผลสัญญาณดิจิทัล (DSP) SoC สามารถนำไปใช้เป็นวงจรรวมเฉพาะแอปพลิเคชัน (ASIC) หรือใช้อาร์เรย์เกทแบบตั้งโปรแกรมภาคสนาม (FPGA) ซึ่งโดยทั่วไปสามารถกำหนดค่าใหม่ได้

การใช้งาน ASIC เป็นปกติสำหรับระบบฝังตัวในปริมาณสูงมากเช่นโทรศัพท์มือถือและมาร์ทโฟน การใช้งาน ASIC หรือ FPGA อาจใช้สำหรับระบบฝังตัวที่มีปริมาณไม่มาก โดยมีความต้องการพิเศษในด้านประสิทธิภาพของการประมวลผลสัญญาณ อินเทอร์เฟซ และความน่าเชื่อถือ เช่น ในระบบการบิน

อุปกรณ์ต่อพ่วง

ภาพระยะใกล้ของชิป SMSC LAN91C110 (SMSC 91x) ซึ่งเป็นชิปอีเทอร์เน็ตในตัว

ระบบสมองกลฝังตัวพูดคุยกับโลกภายนอกผ่านอุปกรณ์ต่อพ่วงเช่น:

เครื่องมือ

เช่นเดียวกับซอฟต์แวร์อื่นๆ ผู้ออกแบบระบบฝังตัวจะใช้คอมไพเลอร์ แอเซมเบลอร์ และดีบักเกอร์เพื่อพัฒนาซอฟต์แวร์ระบบฝังตัว อย่างไรก็ตาม พวกเขาอาจใช้เครื่องมือเฉพาะบางอย่างเพิ่มเติม:

  • ในวงจรดีบักเกอร์หรืออีมูเลเตอร์ (ดูหัวข้อถัดไป)
  • ยูทิลิตีเพื่อเพิ่ม checksum หรือCRCให้กับโปรแกรม เพื่อให้ระบบฝังตัวสามารถตรวจสอบได้ว่าโปรแกรมนั้นถูกต้องหรือไม่
  • สำหรับระบบที่ใช้การประมวลผลสัญญาณดิจิทัลนักพัฒนาอาจใช้โต๊ะทำงานทางคณิตศาสตร์เพื่อจำลองคณิตศาสตร์
  • การสร้างแบบจำลองระดับระบบและเครื่องมือการจำลองความช่วยเหลือนักออกแบบในการสร้างรูปแบบจำลองของระบบที่มีส่วนประกอบฮาร์ดแวร์เช่นหน่วยประมวลผล , ความทรงจำ , DMA , อินเตอร์เฟซ , รถโดยสารและการไหลของพฤติกรรมของซอฟต์แวร์เป็นแผนภาพรัฐหรือแผนภาพการไหลของใช้บล็อกห้องสมุดที่กำหนด การจำลองดำเนินการเพื่อเลือกส่วนประกอบที่เหมาะสมโดยทำการเปรียบเทียบประสิทธิภาพกับการแลกเปลี่ยนประสิทธิภาพ การวิเคราะห์ความน่าเชื่อถือ และการวิเคราะห์คอขวด รายงานทั่วไปที่ช่วยผู้ออกแบบในการตัดสินใจด้านสถาปัตยกรรมรวมถึงเวลาแฝงของแอปพลิเคชัน ปริมาณงานของอุปกรณ์ การใช้อุปกรณ์ การใช้พลังงานของระบบทั้งหมด ตลอดจนการใช้พลังงานระดับอุปกรณ์
  • เครื่องมือพัฒนาตามแบบจำลองจะสร้างและจำลองการไหลของข้อมูลแบบกราฟิกและไดอะแกรมแผนผังสถานะ UML ของส่วนประกอบต่างๆ เช่น ตัวกรองดิจิทัล ตัวควบคุมมอเตอร์ การถอดรหัสโปรโตคอลการสื่อสาร และงานที่มีอัตราหลายอัตรา
  • คอมไพเลอร์และตัวเชื่อมโยงแบบกำหนดเองอาจถูกใช้เพื่อปรับฮาร์ดแวร์เฉพาะให้เหมาะสม
  • ระบบฝังตัวอาจมีภาษาพิเศษหรือเครื่องมือการออกแบบของตัวเองหรือเพิ่มการปรับปรุงเพื่อเป็นภาษาที่มีอยู่เช่นForthหรือพื้นฐาน
  • อีกทางเลือกหนึ่งคือการเพิ่มระบบปฏิบัติการแบบเรียลไทม์หรือระบบปฏิบัติการแบบฝังตัว
  • สร้างแบบจำลองและการสร้างรหัสเครื่องมือมักจะขึ้นอยู่กับสภาพเครื่องจักร

เครื่องมือซอฟต์แวร์อาจมาจากหลายแหล่ง:

  • บริษัทซอฟต์แวร์ที่เชี่ยวชาญในตลาดสมองกลฝังตัว
  • เชื่อมต่อจากเครื่องมือพัฒนาซอฟต์แวร์GNU
  • บางครั้ง สามารถใช้เครื่องมือพัฒนาสำหรับคอมพิวเตอร์ส่วนบุคคลได้หากตัวประมวลผลแบบฝังตัวมีความสัมพันธ์ใกล้ชิดกับตัวประมวลผล PC ทั่วไป

เมื่อความซับซ้อนของระบบฝังตัวเพิ่มขึ้น เครื่องมือและระบบปฏิบัติการระดับสูงก็ถูกย้ายไปยังเครื่องจักรที่เหมาะสม ยกตัวอย่างเช่นโทรศัพท์มือถือ , ผู้ช่วยดิจิตอลส่วนตัวและคอมพิวเตอร์ของผู้บริโภคอื่น ๆ มักจะต้องใช้ซอฟต์แวร์ที่สำคัญที่จะซื้อหรือจัดไว้ให้โดยบุคคลอื่นที่ไม่ใช่ผู้ผลิตอุปกรณ์อิเล็กทรอนิกส์ ในระบบเหล่านี้จำเป็นต้องมีสภาพแวดล้อมการเขียนโปรแกรมแบบเปิด เช่นLinux , NetBSD , OSGiหรือJava แบบฝังเพื่อให้ผู้ให้บริการซอฟต์แวร์บุคคลที่สามสามารถขายให้กับตลาดขนาดใหญ่ได้

ระบบสมองกลฝังตัวมักพบในการใช้งานสำหรับผู้บริโภค การทำอาหาร อุตสาหกรรม ยานยนต์ และการแพทย์ ตัวอย่างบางส่วนของระบบฝังตัว ได้แก่ เครื่องเล่น MP3, โทรศัพท์มือถือ, เครื่องเล่นวิดีโอเกม, กล้องดิจิตอล, เครื่องเล่นดีวีดี และ GPS เครื่องใช้ในครัวเรือน เช่น เตาอบไมโครเวฟ เครื่องซักผ้า และเครื่องล้างจาน มีระบบฝังตัวเพื่อให้มีความยืดหยุ่นและมีประสิทธิภาพ

แก้จุดบกพร่อง

การดีบักแบบฝังอาจดำเนินการได้หลายระดับ ขึ้นอยู่กับสิ่งอำนวยความสะดวกที่มี ตัววัดต่างๆ ที่แสดงลักษณะเฉพาะของรูปแบบต่างๆ ของการดีบักแบบฝังตัวคือ: ทำให้แอปพลิเคชันหลักช้าลงหรือไม่ ระบบหรือแอปพลิเคชันที่แก้ไขจุดบกพร่องอยู่ใกล้กับระบบหรือแอปพลิเคชันจริงเพียงใด ทริกเกอร์ที่สามารถตั้งค่าการดีบักแสดงออกได้ชัดเจนเพียงใด (เช่น ตรวจสอบหน่วยความจำเมื่อถึงค่าตัวนับโปรแกรมเฉพาะ) และสิ่งที่สามารถตรวจสอบได้ในกระบวนการดีบัก (เช่น หน่วยความจำเท่านั้น หรือหน่วยความจำและการลงทะเบียน ฯลฯ)

ตั้งแต่ง่ายที่สุดไปจนถึงซับซ้อนที่สุด พวกเขาสามารถจัดกลุ่มคร่าวๆ ได้ดังนี้:

  • การดีบักเรซิเดนท์แบบโต้ตอบโดยใช้เชลล์แบบธรรมดาที่จัดเตรียมโดยระบบปฏิบัติการแบบฝัง (เช่น Forth และ Basic)
  • การดีบักภายนอกโดยใช้การบันทึกหรือเอาต์พุตพอร์ตอนุกรมเพื่อติดตามการดำเนินการโดยใช้มอนิเตอร์แบบแฟลชหรือใช้เซิร์ฟเวอร์ดีบัก เช่นRemedy Debuggerที่ใช้งานได้กับระบบมัลติคอร์ที่ต่างกัน
  • ดีบักเกอร์ในวงจร (ICD) ซึ่งเป็นอุปกรณ์ฮาร์ดแวร์ที่เชื่อมต่อกับไมโครโปรเซสเซอร์ผ่านอินเทอร์เฟซJTAGหรือNexus [10]สิ่งนี้ทำให้สามารถควบคุมการทำงานของไมโครโปรเซสเซอร์จากภายนอกได้ แต่โดยทั่วไปจะจำกัดอยู่ที่ความสามารถในการดีบักเฉพาะในโปรเซสเซอร์
  • จำลองในวงจร (ICE) แทนที่ไมโครโปรเซสเซอร์เทียบเท่ากับการจำลองให้การควบคุมเต็มรูปแบบผ่านทุกด้านของไมโครโปรเซสเซอร์
  • อีมูเลเตอร์ที่สมบูรณ์จะให้การจำลองทุกด้านของฮาร์ดแวร์ ทำให้สามารถควบคุมและแก้ไขได้ทั้งหมด และอนุญาตให้ทำการดีบักบนพีซีทั่วไป ข้อเสียคือค่าใช้จ่ายและการทำงานช้า ในบางกรณีอาจช้ากว่าระบบขั้นสุดท้ายถึง 100 เท่า
  • สำหรับการออกแบบ SoC วิธีการทั่วไปคือการตรวจสอบและดีบั๊กการออกแบบบนบอร์ดต้นแบบ FPGA เครื่องมือเช่น Certus [11]ใช้เพื่อเสียบโพรบใน FPGA RTL ที่ทำให้สัญญาณพร้อมสำหรับการสังเกต ใช้เพื่อดีบักการโต้ตอบระหว่างฮาร์ดแวร์ เฟิร์มแวร์ และซอฟต์แวร์ใน FPGA หลายตัวที่มีความสามารถคล้ายกับตัววิเคราะห์ลอจิก
  • ดีบักเกอร์เฉพาะซอฟต์แวร์มีประโยชน์ที่ไม่ต้องดัดแปลงฮาร์ดแวร์ แต่ต้องควบคุมสิ่งที่บันทึกอย่างระมัดระวังเพื่อประหยัดเวลาและพื้นที่จัดเก็บ (12)

โดยทั่วไปโปรแกรมเมอร์สามารถโหลดและเรียกใช้ซอฟต์แวร์ผ่านเครื่องมือ ดูโค้ดที่ทำงานอยู่ในโปรเซสเซอร์ เว้นแต่จะจำกัดการดีบักภายนอก และเริ่มหรือหยุดการทำงาน มุมมองของรหัสอาจจะเป็นHLL ซอร์สโค้ด , รหัสการชุมนุมหรือส่วนผสมของทั้งสอง

เนื่องจากระบบฝังตัวมักจะประกอบด้วยองค์ประกอบที่หลากหลาย กลยุทธ์การดีบักอาจแตกต่างกันไป ตัวอย่างเช่น การดีบักระบบฝังตัวที่มีศูนย์กลางของซอฟต์แวร์ (และไมโครโปรเซสเซอร์) นั้นแตกต่างจากการดีบักระบบฝังตัวซึ่งการประมวลผลส่วนใหญ่ดำเนินการโดยอุปกรณ์ต่อพ่วง (DSP, FPGA และตัวประมวลผลร่วม) ระบบฝังตัวจำนวนมากขึ้นในปัจจุบันใช้คอร์โปรเซสเซอร์มากกว่าหนึ่งคอร์ ปัญหาทั่วไปของการพัฒนาแบบมัลติคอร์คือการซิงโครไนซ์การทำงานของซอฟต์แวร์อย่างเหมาะสม ในกรณีนี้ การออกแบบระบบฝังตัวอาจต้องการตรวจสอบการรับส่งข้อมูลบนบัสระหว่างคอร์ของโปรเซสเซอร์ ซึ่งจำเป็นต้องมีการดีบักระดับต่ำมาก ที่ระดับสัญญาณ/บัส ด้วยตัววิเคราะห์ลอจิกเป็นต้น

การติดตาม

ระบบปฏิบัติการแบบเรียลไทม์ ( RTOS ) มักจะสนับสนุนการติดตามเหตุการณ์ของระบบปฏิบัติการ มุมมองแบบกราฟิกนำเสนอโดยเครื่องมือโฮสต์พีซี โดยอิงจากการบันทึกพฤติกรรมของระบบ การบันทึกการติดตามสามารถทำได้ในซอฟต์แวร์ โดย RTOS หรือโดยฮาร์ดแวร์การติดตามพิเศษ การติดตาม RTOS ช่วยให้นักพัฒนาเข้าใจปัญหาด้านเวลาและประสิทธิภาพของระบบซอฟต์แวร์ และให้ความเข้าใจที่ดีเกี่ยวกับพฤติกรรมของระบบในระดับสูง

ความน่าเชื่อถือ

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

ปัญหาความน่าเชื่อถือเฉพาะอาจรวมถึง:

  • ระบบไม่สามารถปิดได้อย่างปลอดภัยเพื่อการซ่อมแซม หรือไม่สามารถเข้าถึงได้เกินกว่าจะซ่อมแซมได้ ตัวอย่าง ได้แก่ ระบบอวกาศ สายเคเบิลใต้น้ำ บีคอนนำทาง ระบบรูเจาะ และรถยนต์
  • ระบบจะต้องทำงานต่อไปเพื่อความปลอดภัย "โหมดปวกเปียก" จะทนได้น้อยกว่า มักถูกเลือกโดยโอเปอเรเตอร์ ตัวอย่าง ได้แก่ การนำทางเครื่องบิน ระบบควบคุมเครื่องปฏิกรณ์ การควบคุมโรงงานเคมีที่มีความสำคัญต่อความปลอดภัย สัญญาณรถไฟ
  • ระบบจะสูญเสียเงินจำนวนมากเมื่อปิดตัวลง: สวิตช์โทรศัพท์ การควบคุมโรงงาน การควบคุมสะพานและลิฟต์ การโอนเงินและการทำตลาด การขายและบริการอัตโนมัติ

มีการใช้เทคนิคต่างๆ ร่วมกันในบางครั้งเพื่อกู้คืนจากข้อผิดพลาด ทั้งบั๊กของซอฟต์แวร์ เช่นหน่วยความจำรั่วและข้อผิดพลาดแบบซอฟต์ในฮาร์ดแวร์:

  • ตัวจับเวลาจ้องจับผิดที่รีเซ็ตคอมพิวเตอร์เว้นแต่ว่าซอฟต์แวร์จะแจ้งระบบย่อยของ watchdog เป็นระยะด้วยอะไหล่สำรองที่สามารถเปลี่ยนเป็นซอฟต์แวร์ "โหมดปวกเปียก" ที่มีฟังก์ชันบางส่วน
  • การออกแบบด้วยสถาปัตยกรรมTrusted Computing Base (TCB) [13]ช่วยให้มั่นใจได้ถึงสภาพแวดล้อมของระบบที่มีความปลอดภัยสูงและเชื่อถือได้
  • ไฮเปอร์ไวเซอร์ที่ออกแบบมาสำหรับระบบฝังตัวสามารถให้การรักษาความปลอดภัยสำหรับการห่อหุ้มองค์ประกอบของระบบย่อยต่างๆได้อย่างมีส่วนประกอบของซอฟต์แวร์ที่ถูกบุกรุกไม่สามารถยุ่งเกี่ยวกับระบบย่อยอื่น ๆ หรือซอฟต์แวร์ระบบสิทธิพิเศษระดับ [14] การห่อหุ้มนี้ช่วยป้องกันไม่ให้ข้อผิดพลาดแพร่กระจายจากระบบย่อยหนึ่งไปยังอีกระบบหนึ่ง ซึ่งจะช่วยปรับปรุงความน่าเชื่อถือ การทำเช่นนี้อาจทำให้ระบบย่อยปิดและรีสตาร์ทโดยอัตโนมัติเมื่อตรวจพบข้อผิดพลาด
  • Immunity Aware การเขียนโปรแกรม

เสียงสูงกับเสียงต่ำ

สำหรับระบบที่มีปริมาณมาก เช่นเครื่องเล่นเพลงแบบพกพาหรือโทรศัพท์มือถือการลดค่าใช้จ่ายมักจะเป็นการพิจารณาหลักในการออกแบบ โดยทั่วไปแล้ว วิศวกรจะเลือกฮาร์ดแวร์ที่ “ดีเพียงพอ” เพื่อใช้งานฟังก์ชันที่จำเป็น

สำหรับปริมาณน้อยหรือต้นแบบระบบฝังตัวคอมพิวเตอร์วัตถุประสงค์ทั่วไปอาจจะปรับโดยการ จำกัด โปรแกรมหรือโดยการเปลี่ยนระบบปฏิบัติการที่มีระบบปฏิบัติการแบบ real-time

สถาปัตยกรรมซอฟต์แวร์ฝังตัว

ในปี 1978 สมาคมผู้ผลิตไฟฟ้าแห่งชาติได้ออกมาตรฐานสำหรับไมโครคอนโทรลเลอร์ที่ตั้งโปรแกรมได้ ซึ่งรวมถึงคอนโทรลเลอร์ที่ใช้คอมพิวเตอร์แทบทุกชนิด เช่น คอมพิวเตอร์บอร์ดเดี่ยว คอนโทรลเลอร์แบบตัวเลข และแบบอิงเหตุการณ์

มีสถาปัตยกรรมซอฟต์แวร์หลายประเภทที่ใช้กันทั่วไปในปัจจุบัน

วงจรควบคุมอย่างง่าย

ในการออกแบบนี้ ซอฟต์แวร์มีลูป . รูทีนย่อยการเรียกลูปซึ่งแต่ละรูทีนจะจัดการส่วนหนึ่งของฮาร์ดแวร์หรือซอฟต์แวร์ ดังนั้นจึงเรียกว่าลูปควบคุมอย่างง่ายหรือลูปควบคุม

ระบบควบคุมการขัดจังหวะ

ระบบฝังตัวบางระบบถูกควบคุมโดยอินเตอร์รัปต์เป็นหลัก ซึ่งหมายความว่างานที่ดำเนินการโดยระบบจะถูกทริกเกอร์โดยเหตุการณ์ประเภทต่างๆ สามารถสร้างอินเตอร์รัปต์ได้ ตัวอย่างเช่น โดยตัวจับเวลาในความถี่ที่กำหนดไว้ล่วงหน้า หรือโดยคอนโทรลเลอร์พอร์ตอนุกรมที่ได้รับไบต์

ระบบประเภทนี้จะใช้หากตัวจัดการเหตุการณ์ต้องการเวลาแฝงต่ำ และตัวจัดการเหตุการณ์นั้นสั้นและเรียบง่าย โดยปกติ ระบบประเภทนี้จะทำงานง่ายๆ ในลูปหลักด้วย แต่งานนี้ไม่ไวต่อความล่าช้าที่ไม่คาดคิดมากนัก

บางครั้งตัวจัดการขัดจังหวะจะเพิ่มงานที่ยาวขึ้นให้กับโครงสร้างคิว ต่อมา หลังจากที่ตัวจัดการการขัดจังหวะเสร็จสิ้น งานเหล่านี้จะถูกดำเนินการโดยลูปหลัก วิธีนี้จะทำให้ระบบเข้าใกล้เคอร์เนลแบบมัลติทาสก์ด้วยกระบวนการที่ไม่ต่อเนื่อง

การทำงานหลายอย่างร่วมกัน

ระบบการทำงานแบบ multitasking ที่ไม่ใช่มาตรการจะคล้ายกับรูปแบบการควบคุมวงง่ายยกเว้นว่าวงที่ถูกซ่อนอยู่ในAPI [3] [1]โปรแกรมเมอร์กำหนดชุดของงาน และแต่ละงานจะมีสภาพแวดล้อมในการ "รัน" ของตัวเอง เมื่องานไม่ได้ใช้งาน จะเรียกรูทีนที่ไม่ได้ใช้งาน ซึ่งมักจะเรียกว่า "หยุดชั่วคราว", "รอ", " Yield”, “nop” (หมายถึงไม่มีการดำเนินการ ) เป็นต้น

ข้อดีและข้อเสียคล้ายกับของลูปควบคุม ยกเว้นว่าการเพิ่มซอฟต์แวร์ใหม่จะง่ายกว่า โดยเพียงแค่เขียนงานใหม่หรือเพิ่มในคิว

มัลติทาสกิ้งเชิงป้องกันหรือมัลติเธรด

ในระบบประเภทนี้ โค้ดระดับต่ำจะสลับระหว่างงานหรือเธรดตามตัวจับเวลา (เชื่อมต่อกับอินเตอร์รัปต์) นี่คือระดับที่ระบบถือว่าโดยทั่วไปมีเคอร์เนล "ระบบปฏิบัติการ" ขึ้นอยู่กับว่าจำเป็นต้องใช้ฟังก์ชันมากน้อยเพียงใด โดยนำเสนอความซับซ้อนมากขึ้นหรือน้อยลงในการจัดการงานหลายงานที่ทำงานควบคู่กันตามแนวคิด

ในฐานะที่เป็นรหัสใด ๆ ที่อาจจะเกิดความเสียหายข้อมูลของงานอื่น (ยกเว้นในระบบที่มีขนาดใหญ่ใช้MMU ) โปรแกรมจะต้องได้รับการออกแบบอย่างระมัดระวังและผ่านการทดสอบและการเข้าถึงข้อมูลที่ใช้ร่วมกันจะต้องถูกควบคุมโดยกลยุทธ์การประสานบางอย่างเช่นคิวข้อความ , semaphoresหรือไม่ใช่ -blockingรูปแบบการ ซิงโครไนซ์

เนื่องจากความซับซ้อนเหล่านี้ จึงเป็นเรื่องปกติที่องค์กรต่างๆ จะใช้ระบบปฏิบัติการแบบเรียลไทม์ (RTOS) ซึ่งช่วยให้โปรแกรมเมอร์แอปพลิเคชันสามารถมุ่งความสนใจไปที่การทำงานของอุปกรณ์มากกว่าบริการของระบบปฏิบัติการ อย่างน้อยก็สำหรับระบบขนาดใหญ่ ระบบขนาดเล็กมักไม่สามารถจ่ายค่าใช้จ่ายที่เกี่ยวข้องกับระบบเรียลไทม์ทั่วไปได้เนื่องจากข้อจำกัดเกี่ยวกับขนาดหน่วยความจำ ประสิทธิภาพ หรืออายุการใช้งานแบตเตอรี่ ทางเลือกที่จำเป็นต้องใช้ RTOS ทำให้เกิดปัญหาขึ้นเอง อย่างไรก็ตาม เนื่องจากต้องทำการเลือกก่อนที่จะเริ่มกระบวนการพัฒนาแอปพลิเคชัน เวลานี้บังคับให้นักพัฒนาต้องเลือกระบบปฏิบัติการแบบฝังสำหรับอุปกรณ์ของตนโดยอิงตามข้อกำหนดในปัจจุบัน และจำกัดตัวเลือกในอนาคตให้มาก[15]การจำกัดตัวเลือกในอนาคตจะกลายเป็นปัญหามากขึ้นเมื่ออายุผลิตภัณฑ์ลดลง นอกจากนี้ ระดับความซับซ้อนเพิ่มขึ้นอย่างต่อเนื่อง เนื่องจากอุปกรณ์จำเป็นต้องจัดการตัวแปรต่างๆ เช่น อนุกรม, USB, TCP/IP, Bluetooth , LAN ไร้สาย , วิทยุหลัก, หลายช่องสัญญาณ, ข้อมูลและเสียง, กราฟิกที่ได้รับการปรับปรุง, หลายสถานะ, หลายเธรด สถานะรอมากมายและอื่น ๆ แนวโน้มเหล่านี้นำไปสู่การเข้าถึงมิดเดิลแวร์ที่ฝังตัวนอกเหนือจากระบบปฏิบัติการแบบเรียลไทม์

ไมโครเคอร์เนลและเอ็กโซเคอร์เนล

microkernelเป็นขั้นตอนตรรกะขึ้นมาจากเวลาจริง OS การจัดเรียงตามปกติคือเคอร์เนลของระบบปฏิบัติการจัดสรรหน่วยความจำและเปลี่ยน CPU เป็นเธรดของการดำเนินการต่างๆ กระบวนการในโหมดผู้ใช้ใช้ฟังก์ชันหลัก เช่น ระบบไฟล์ อินเทอร์เฟซเครือข่าย ฯลฯ

โดยทั่วไป microkernels จะประสบความสำเร็จเมื่อการสลับงานและการสื่อสารระหว่างกันเป็นไปอย่างรวดเร็วและล้มเหลวเมื่อทำงานช้า

Exokernelsสื่อสารอย่างมีประสิทธิภาพโดยการเรียกรูทีนย่อยปกติ ฮาร์ดแวร์และซอฟต์แวร์ทั้งหมดในระบบพร้อมใช้งานและขยายได้โดยโปรแกรมเมอร์แอปพลิเคชัน

เมล็ดเสาหิน

ในกรณีนี้ เคอร์เนลที่ค่อนข้างใหญ่และมีความสามารถที่ซับซ้อนจะถูกปรับให้เหมาะกับสภาพแวดล้อมแบบฝังตัว สิ่งนี้ทำให้โปรแกรมเมอร์มีสภาพแวดล้อมที่คล้ายกับระบบปฏิบัติการเดสก์ท็อปเช่นLinuxหรือMicrosoft Windowsดังนั้นจึงมีประสิทธิผลมากสำหรับการพัฒนา ข้อเสียคือต้องใช้ทรัพยากรฮาร์ดแวร์มากขึ้น มักจะมีราคาแพงกว่า และเนื่องจากความซับซ้อนของเมล็ดเหล่านี้ จึงสามารถคาดการณ์ได้น้อยกว่าและเชื่อถือได้

ตัวอย่างทั่วไปของเมล็ดฝังเสาหินมีการฝังตัวลินุกซ์ , VXWorksและWindows CE

แม้จะมีค่าใช้จ่ายที่เพิ่มขึ้นในฮาร์ดแวร์ประเภทของระบบฝังตัวนี้จะเพิ่มขึ้นในความนิยมโดยเฉพาะอย่างยิ่งบนอุปกรณ์ที่มีประสิทธิภาพมากขึ้นฝังตัวเช่นเราเตอร์ไร้สายและระบบนำทางจีพีเอส นี่คือสาเหตุบางประการ:

  • มีพอร์ตไปยังชุดชิปฝังตัวทั่วไป
  • พวกเขาอนุญาตให้กลับมาใช้รหัสที่เปิดเผยต่อสาธารณชนสำหรับไดรเวอร์อุปกรณ์ , เว็บเซิร์ฟเวอร์ , ไฟร์วอลล์และรหัสอื่น ๆ
  • ระบบการพัฒนาสามารถเริ่มต้นด้วยชุดคุณลักษณะกว้างๆ และจากนั้นสามารถกำหนดค่าการแจกจ่ายให้ไม่รวมฟังก์ชันที่ไม่จำเป็น และประหยัดค่าใช้จ่ายของหน่วยความจำที่จะใช้
  • วิศวกรหลายคนเชื่อว่าการรันโค้ดแอปพลิเคชันในโหมดผู้ใช้มีความน่าเชื่อถือและง่ายต่อการแก้ไขจุดบกพร่อง ซึ่งทำให้กระบวนการพัฒนาง่ายขึ้นและโค้ดสามารถพกพาได้สะดวกยิ่งขึ้น [ ต้องการการอ้างอิง ]
  • คุณสมบัติที่กำหนดให้การตอบสนองที่เร็วกว่าสามารถรับประกันมักจะสามารถวางไว้ในฮาร์ดแวร์

ส่วนประกอบซอฟต์แวร์เพิ่มเติม

นอกจากระบบปฏิบัติการหลักแล้ว ระบบฝังตัวจำนวนมากยังมีส่วนประกอบซอฟต์แวร์ชั้นบนเพิ่มเติมอีกด้วย ส่วนประกอบเหล่านี้ประกอบด้วยสแต็คโปรโตคอลเครือข่าย เช่นCAN , TCP/IP , FTP , HTTPและHTTPSและยังรวมความสามารถในการจัดเก็บข้อมูล เช่นFATและระบบจัดการหน่วยความจำแฟลช หากอุปกรณ์ฝังตัวมีความสามารถด้านเสียงและวิดีโอ ไดรเวอร์และตัวแปลงสัญญาณที่เหมาะสมจะปรากฏในระบบ ในกรณีของเมล็ดแบบเสาหิน เลเยอร์ซอฟต์แวร์เหล่านี้จำนวนมากรวมอยู่ด้วย ในหมวด RTOS ความพร้อมใช้งานของส่วนประกอบซอฟต์แวร์เพิ่มเติมขึ้นอยู่กับข้อเสนอเชิงพาณิชย์

สถาปัตยกรรมเฉพาะโดเมน

ในภาคยานยนต์AUTOSARเป็นสถาปัตยกรรมมาตรฐานสำหรับซอฟต์แวร์ฝังตัว

ดูเพิ่มเติม

หมายเหตุ

  1. ^ สำหรับรายละเอียดเพิ่มเติมของ MicroVGA โปรดดู PDFนี้

อ้างอิง

  1. อรรถเป็น ไมเคิล บาร์ . "อภิธานศัพท์ระบบสมองกลฝังตัว" . ห้องสมุดเทคนิคนิวตริโน ดึงข้อมูลเมื่อ 2007-04-21 .
  2. ^ ฮีธ, สตีฟ (2003). การออกแบบระบบสมองกลฝังตัว EDN series สำหรับวิศวกรออกแบบ (2 ed.) นิวเนส. NS. 2 . ISBN 978-0-7506-5546-0. ระบบฝังตัวเป็นระบบที่ใช้ไมโครโปรเซสเซอร์ที่สร้างขึ้นเพื่อควบคุมฟังก์ชันหรือช่วงของฟังก์ชัน
  3. ^ ไมเคิล Barr; แอนโธนี่ เจ. มาสซา (2006). "แนะนำตัว" . การเขียนโปรแกรมระบบฝังตัว: กับ C และ GNU เครื่องมือในการพัฒนา โอเรลลี่. หน้า 1–2. ISBN 978-0-596-00983-0.
  4. ^ Barr ไมเคิล (1 สิงหาคม 2009) "โปรแกรมชายแท้ในซี" . การออกแบบระบบสมองกลฝังตัว TechInsights (สื่อธุรกิจสหรัฐ) NS. 2 . สืบค้นเมื่อ2009-12-23 .
  5. ^ เชอร์ริฟ, เคน (30 สิงหาคม 2559). "เรื่องน่าประหลาดใจของไมโครโปรเซสเซอร์ตัวแรก" . IEEE Spectrum สถาบันวิศวกรไฟฟ้าและอิเล็กทรอนิกส์ . 53 (9): 48–54. ดอย : 10.1109/MSPEC.2016.7551353 . S2CID 32003640 . สืบค้นเมื่อ13 ตุลาคม 2019 . 
  6. ^ "1971: ไมโครผสานรวมฟังก์ชั่นของ CPU บนชิปตัวเดียว" ซิลิคอนเครื่องยนต์ พิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์. สืบค้นเมื่อ22 กรกฎาคม 2019 .
  7. ^ "มูลนิธิพรมแดนอิเล็กทรอนิกส์" . มูลนิธิพรมแดนอิเล็กทรอนิกส์ .
  8. ^ ระบบสมองกลฝังตัว Dell OEM Solutions | เดลล์ . Content.dell.com (2011-01-04). สืบค้นเมื่อ 2013-02-06.
  9. ^ เดวิด แครี่ (2008-04-22) "Under the Hood: Robot Guitar ฝังการปรับจูนอัตโนมัติ" . การออกแบบระบบสมองกลฝังตัว เก็บถาวรจากต้นฉบับเมื่อ 2008-07-08
  10. ^ ตันเครติ แมทธิว; Hossain, Mohammad Sajjad; Bagchi, ซอราภ; Raghunathan, วีเจย์ (2011). "Aveksha: แนวทางฮาร์ดแวร์-ซอฟต์แวร์สำหรับการติดตามและการทำโปรไฟล์ของระบบฝังตัวแบบไร้สายที่ไม่ล่วงล้ำ" การประชุมวิชาการ ACM 9 ตัวระบบเครือข่ายเซนเซอร์ เซ็นซิส '11 นิวยอร์ก นิวยอร์ก สหรัฐอเมริกา: ACM: 288–301 ดอย : 10.1145/2070942.2070972 . ISBN 9781450307185. S2CID  14769602 .
  11. ^ "Tektronix Shakes ขึ้นต้นแบบสมองกลฝังตัว Instrumentation กระตุ้นบอร์ดเพื่อ Emulator สถานะ" วารสารวิศวกรรมอิเล็กทรอนิกส์. 2555-10-30 . สืบค้นเมื่อ2012-10-30 .
  12. ^ ตันเครติ แมทธิว; สุนดาราม, วินัยธีรธาน; Bagchi, ซอราภ; Eugster, แพทริค (2015). "ควานหา: บันทึกและเล่นซ้ำระดับระบบเฉพาะซอฟต์แวร์ในเครือข่ายเซ็นเซอร์ไร้สาย" การประชุมวิชาการนานาชาติครั้งที่ 14 ในการประมวลผลข้อมูลในเครือข่ายเซนเซอร์ IPSN '15. นิวยอร์ก นิวยอร์ก สหรัฐอเมริกา: ACM: 286–297 ดอย : 10.1145/2737095.2737096 . ISBN 9781450334754. S2CID  10120929 .
  13. ^ Heiser, Gernot (ธันวาคม 2007) "ระบบของคุณปลอดภัยหรือไม่ พิสูจน์สิ!" (PDF) . ;เข้าสู่ระบบ: . 2 (6): 35–8.
  14. ^ Moratelli, C; โยฮันน์ เอส; เนเวส, เอ็ม; เฮสเซล, เอฟ (2016). "การทำงานแบบเสมือนสมองกลฝังตัวสำหรับการออกแบบของการใช้งานที่เชื่อถือได้ของ IOT" 2016 International Symposium on Rapid System Prototyping (RSP) : 2–6. ดอย : 10.1145/2990299.2990301 . ISBN 9781450345354. S2CID  17466572 . สืบค้นเมื่อ2 กุมภาพันธ์ 2018 .
  15. ^ "การทำงานข้ามแพลตฟอร์มแบบฝังหลาย" (PDF) คลาริน็อกซ์ สืบค้นเมื่อ2010-08-17 .

อ่านเพิ่มเติม

  • จอห์น แคทซูลิส (พฤษภาคม 2548) การออกแบบอุปกรณ์ฝังตัวรุ่นที่ 2 โอเรลลี่. ISBN 0-596-00755-8.
  • เจมส์ เอ็ม. คอนราด; อเล็กซานเดอร์ จี. ดีน (กันยายน 2554). ระบบฝังตัวแนะนำการใช้ Renesas RX62N ไมโครคอนโทรลเลอร์ ไมโคร ISBN 978-1935-7729-96.
  • Klaus Elk (สิงหาคม 2559) ฝังการพัฒนาซอฟแวร์สำหรับอินเทอร์เน็ตของสิ่งพื้นฐานเทคโนโลยีและการปฏิบัติที่ดีที่สุด ISBN 978-1534602533.

ลิงค์ภายนอก