ไมโครคอนโทรลเลอร์กับระบบบนชิป


24

ฉันเริ่มเขียนโปรแกรมไมโครคอนโทรลเลอร์และฉันกำลังอ่านเอกสารและตำราบางเล่ม ฉันสับสนเล็กน้อยเกี่ยวกับความแตกต่างระหว่างตัวควบคุมไมโครและระบบบนชิปคืออะไร

เอกสารบางฉบับใช้คำศัพท์สองคำนี้ระหว่างกัน อย่างไรก็ตามตำราเรียนส่วนใหญ่ชี้ให้เห็นว่าการใช้คำสองคำระหว่างการเปลี่ยนแปลงอาจไม่ถูกต้องดังนั้นจึงต้องมีความแตกต่างที่น่าสังเกต ...

ขอบคุณ!


4
ขอบคุณที่ยอมรับคำตอบของฉัน แต่ฉันขอแนะนำให้คุณรออีกต่อไปในครั้งต่อไปก่อนที่จะยอมรับ คนอื่น ๆ อาจมีมุมมองและความเข้าใจที่แตกต่างกัน แต่มักจะผ่านคำถามที่มีคำตอบที่ยอมรับแล้ว - ฉันรู้ว่าฉันทำ คุณต้องการปล่อยให้เวลาในการรวบรวมฉันทามติโดยเฉพาะอย่างยิ่งสำหรับคำถามที่อยู่ในพื้นที่สีเทา
Olin Lathrop

@Olin Cool จะจดจำไว้ในครั้งต่อไป!
rrazd

คำตอบ:


27

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

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

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


20

System On a Chip (หรือ SoC) เป็นวลีที่ดึงดูดทุกอย่างที่ผู้คนในตลาดใช้และไม่ได้มีความหมายมากนัก นอกจากนี้ยังมีหลายรูปแบบเช่น:

PSoC: ระบบที่ตั้งโปรแกรมได้บนชิปโดย Cypress Semiconductor

SOPC: ระบบบนชิปที่ตั้งโปรแกรมได้โดย Altera

ในสาระสำคัญ SOC เป็นชิปตัวเดียวที่ทำทุกอย่างที่เคยใช้ชิปหลายตัว ไม่มีอะไรที่บอกว่ามันจะต้องมีซีพียูหรือแรม ดังนั้นเนื่องจากเราสามารถได้รับทรานซิสเตอร์มากขึ้นบนชิปและเราได้รับฟังก์ชั่นมากขึ้นเรื่อย ๆ ในชิปของเรา - ทุกอย่างสามารถเรียกว่า SoC เมื่อเทียบกับสิ่งที่เราทำเมื่อ 10 หรือ 20 ปีก่อน !

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

MCU น่าจะเป็นตัวอย่างที่กระชับที่สุดของ SoC ที่ควรจะเป็น - แต่มันเป็นตัวอย่างที่ จำกัด มาก


@ David-kesner +1 สำหรับ SoC เป็นวลีทางการตลาด
Frank

12

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

ตรงกันข้าม System-on-Chip เป็นอีกส่วนหนึ่งของสเปกตรัม มันมุ่งเน้นไปที่ความยืดหยุ่นที่สมบูรณ์และการโต้ตอบกับผู้ใช้ มันมักจะรวมถึงสิ่งต่าง ๆ เช่นไดรเวอร์ IO สำหรับฮาร์ดแวร์ที่ใหญ่กว่า (เช่นฮาร์ดไดรฟ์ ฯลฯ ) และบางครั้งก็เป็นการ์ดกราฟิก System-on-Chip เป็นเหมือนระบบคอมพิวเตอร์ที่สมบูรณ์ใช่บนชิป

มีครอสโอเวอร์ค่อนข้างมากระหว่างสอง - เมื่อไหร่ที่จะหยุดเป็นไมโครคอนโทรลเลอร์และเริ่มเป็น System-on-Chip ซึ่งเป็นที่มาของความสับสนมากมาย

โดยทั่วไปถ้ามันสามารถทำสิ่งที่คอมพิวเตอร์สามารถทำได้ก็คือ System-on-Chip ยกตัวอย่างเช่นหากอยู่ที่โทรศัพท์ตั้งโต๊ะที่จัดการรายชื่อผู้ติดต่อของคุณหรือในระบบป้อนข้อมูลด้วยปุ่มกดหรือใช้งานมอเตอร์บนเครื่อง CNC แสดงว่าเป็นไมโครคอนโทรลเลอร์

ป.ล. อย่าอ้างฉันถึงสิ่งนี้ - อย่างที่ฉันบอกว่ามีครอสโอเวอร์มากมายระหว่างสองคนนี้


5

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

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


2

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

  1. เอ็นเอฟซี
  2. จีพีเอส
  3. มาตรความเร่งและ Gyro
  4. อินเตอร์เน็ตไร้สาย
  5. CPU และ GPU

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


0

ใช่ SoC นั้นเป็นคำศัพท์ทางการตลาดที่ใช้บ่อยขึ้นมีอุปกรณ์และคำศัพท์โฮสต์ส่วนใหญ่เป็นผู้ผลิตพีซีรายใหญ่เช่น Dell, HP, IBM และอื่น ๆ พวกเขาใช้ซีพียูภายในโดยทั่วไปโดย Intel, AMD และอื่น ๆ โดยทั่วไปจะให้ CPU หรือ SoC บน Mother Board (เรียกว่า CPU) บางแห่งก็ให้ CPU + SoC (สำหรับวัตถุประสงค์เฉพาะเพื่อถ่ายกิจกรรมของอุปกรณ์ต่อพ่วงเช่นเซ็นเซอร์หรืออุปกรณ์ GPS ซึ่งมิฉะนั้นจะหิวมาก พวกเขาเชื่อมต่อโดยตรงกับ CPU) บางครั้ง SoC ก็เรียก Co-Processor ซึ่งมีงานเหมือนกับที่ฉันเขียนไว้ก่อนหน้านี้ ตอนนี้ถึง MotherBoards เชื่อมต่ออุปกรณ์ต่อพ่วงต่างๆ (ซึ่งเชื่อมต่อกับ CPU หรือ SoC โดยทั่วไป) อุปกรณ์ต่อพ่วงเหล่านี้เชื่อมต่อโดยตรงกับพวกเขา (SOC หรือ CPU) ผ่านทาง Sum Bus - i2c, SPI, USB หรือโดยทั่วไปจะเชื่อมต่อกับ MicroControllers . ผู้ผลิตคอนโทรลเลอร์) เช่นเดียวกับผู้ผลิตพีซีที่ได้รับอุปกรณ์ที่ดีกว่า (อุปกรณ์ต่อพ่วง + ไมโครคอนโทรลเลอร์) ดังนั้นประเด็นทั้งหมดคือคำว่าไมโครคอนโทรลเลอร์คุณจะเห็นบ่อยครั้งมากขึ้นในด้านอุปกรณ์ (สิ่งที่ถูกเชื่อมต่อกับ SoC (ตอนนี้คุณรู้ว่า SOC คืออะไรคุณไม่ได้) และ SoC ทางฝั่ง (ด้านพีซี) ) คุณสามารถพูดได้ว่าซีพียูเป็นพ่อที่มอบหมายงาน SoC ให้กับเขาเพื่อความสามารถในการใช้พลังงานที่ดีขึ้นของอุปกรณ์ (Micro + อุปกรณ์ต่อพ่วง) โดยทั่วไปแล้วเอกสารนั้นมีความทรงจำมากกว่าเดิมในการโฮสต์ Microcontrollers OS unliek


1
ว้าว ! จริงๆเหมือน downvote เมื่อมีคนทำโดยไม่ต้องแสดงความคิดเห็นที่จำเป็นมาก!
Raulp

3
มันไม่ชัดเจนมาก ฉันไม่สามารถแยกแยะความแตกต่างในจิตสำนึกนี้ได้
ivan_pozdeev

0

สรุปข้างต้นดูเหมือนว่าสำหรับฉัน:

MCU ให้หน่วยความจำอินเตอร์เฟซเช่น VGA และความสามารถมากมายเช่น GPU โดยใช้ชิปที่แตกต่างกันหลายตัวที่ให้สิ่งต่าง ๆ

MCU เหมาะกับทุกสิ่งทุกอย่างบนชิปตัวเดียวโดยจัดให้มีหน่วยความจำน้อยที่สุดอินเตอร์เฟส ฯลฯ

SoC เหมาะกับทุกสิ่งในชิปตัวเดียวโดยผลักดันขีด จำกัด ของสิ่งที่สามารถทำได้บนชิปตัวเดียว

MCUs ให้ความคุ้มค่าโดยการลดต้นทุน SoCs ให้ความคุ้มค่าโดยการเพิ่มฟังก์ชั่นการทำงานสูงสุดบนชิปตัวเดียว ถ้ามันแข่งขันกับลอจิก TLL ก็น่าจะเป็น MCU หากแข่งขันกับไมโครโปรเซสเซอร์ (AMD, Intel) ก็น่าจะเป็น SoC

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.