อะไรคือความแตกต่างระหว่างไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์?


189

อะไรคือความแตกต่างระหว่างไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์?


2
ดูบทความนี้โดย Atmel
Sudoer

ราคาเป็นส่วนใหญ่ :-)
ฮิลมาร์

1
@ Hilmar อีกครั้ง "ราคาส่วนใหญ่" - ผิด
cp.engr

คำตอบ:


191

โดยทั่วไปแล้วไมโครโปรเซสเซอร์ไม่มีขา RAM, ROM และ IO มันมักจะใช้พินเป็นบัสเพื่อเชื่อมต่อกับอุปกรณ์ต่อพ่วงเช่น RAM, ROM, พอร์ตอนุกรม, ดิจิตอลและอนาล็อก IO มันสามารถขยายได้ที่ระดับบอร์ดเนื่องจากสิ่งนี้

ไมโครคอนโทรลเลอร์คือ 'all in one' ตัวประมวลผลหน่วยความจำ IO ทั้งหมดบนชิปตัวเดียวคุณไม่สามารถ (พูด) เพิ่มจำนวนแรมที่มีอยู่หรือจำนวนพอร์ต IO บัสควบคุมอยู่ภายในและไม่พร้อมใช้งานสำหรับนักออกแบบบอร์ด

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

ทั้งหมดนี้เป็นข้อความทั่วไป มีชิปที่ทำให้ขอบเขตไม่ชัดเจน


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

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

ดังนั้นเราสามารถพูดได้หรือไม่ว่าไมโครคอนโทรลเลอร์เป็นคอมพิวเตอร์ในขณะที่ไมโครโปรเซสเซอร์เป็นเพียงการใช้งานซีพียูเพียงครั้งเดียว?
doubleOrt

@doubleOrt: คุณสามารถทำให้มันเป็นอย่างนั้น แต่ขอบเขตจะเบลอ ทุกวันนี้มีชิปจำนวนไม่มากที่มีหน่วยความจำข้อมูลที่ระเหยได้ (SRAM) แต่ไม่มีหน่วยความจำรหัสที่ไม่ลบเลือน (Flash) พวกเขามักจะเรียกว่า MPU (ไมโครโปรเซสเซอร์) ดังนั้นความแตกต่างจึงมีความสัมพันธ์กับแฟลชในชิปเป็นหลัก NXP ทำการตลาดบางอย่างที่เรียกว่าโปรเซสเซอร์ "ครอสโอเวอร์" พร้อม RAM แต่ไม่มี Flash สิ่งนี้เกี่ยวข้องกับความยากลำบากที่เพิ่มขึ้นของการรวมแฟลชในชิปที่มีทรานซิสเตอร์น้อยลง ขีด จำกัด ปัจจุบันดูเหมือนจะอยู่ที่ประมาณ 28 นาโนเมตร
sh-

29

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

ในงานล่าสุด Boston Barcamp (MIT 2009) ฉันได้พูดคุยเรื่อง "Intro to Microcontrollers" สำเนาเอกสารแจกอยู่ที่

http://www.luciani.org/not-quite-ready/doc/intro-to-uC.pdf


25

ไมโครคอนโทรลเลอร์:

  • โดยทั่วไปแล้วจะเป็น 8 บิต แต่อาจเป็น 4-, 16- หรือ 32 บิต
  • ทำงานที่ความเร็วน้อยกว่า 200 MHz
  • ใช้พลังงานน้อยมาก
  • อาจให้กระแสไฟเพียงพอที่จะใช้งาน LED
  • มีประโยชน์ในการเชื่อมต่อกับเซ็นเซอร์และมอเตอร์
  • ถูกแทนที่อย่างง่ายดายราคาไม่แพง ($ 0.10 ถึง $ 10)
  • ถูก จำกัด จริงๆสำหรับ RAM และที่เก็บข้อมูลถาวร (พื้นที่แฟลช)
  • ดีจริงๆสำหรับมือสมัครเล่นอิเล็กทรอนิกส์

ไมโครโปรเซสเซอร์:

  • มักจะเป็นอย่างน้อย 16 บิตและโดยทั่วไปจะเป็น 32 บิตหรือ 64 บิตแม้ว่า 8 บิตจะยังคงมีส่วนแบ่งตลาดใหญ่
  • หลายคนสามารถทำเลขทศนิยมในฮาร์ดแวร์
  • ทำงานด้วยความเร็วที่วัดได้ในหลายร้อย MHz
  • ถูกออกแบบมาให้เป็นระบบของสมอง (และต้องการระบบทั้งหมดเพื่อสนับสนุนพวกมัน)
  • ต้องการฮาร์ดแวร์พิเศษในการเชื่อมต่อกับเซ็นเซอร์มอเตอร์ไฟ LED และอื่น ๆ
  • มีราคาแพง (คิดว่า 50 - 250 เหรียญสำหรับ 32 หรือ 64- บิต)
  • ออกแบบมาสำหรับ RAM ภายนอกและที่เก็บข้อมูลถาวร (ฮาร์ดไดรฟ์)
  • ไม่ได้ทำงานร่วมกับผู้ร่วมงานได้ง่ายนัก

ฉันคิดว่ามันน่าสนใจที่ชุด LEGO Mindstorms NXT มีไมโครโปรเซสเซอร์ [32 บิต AT91SAM7S256 (ARM7TDMI) ไมโครโปรเซสเซอร์หลัก @ 48 MHz (หน่วยความจำแฟลช 256 KB, 64 KB RAM)] สำหรับการคิดและไมโครคอนโทรลเลอร์ [8 บิต ATmega48] microcontroller @ 4 MHz (หน่วยความจำแฟลช 4 KB, 512 Bytes RAM)] สำหรับการเชื่อมต่อกับเซ็นเซอร์และมอเตอร์ ดูรายละเอียดทางเทคนิคเกี่ยวกับวิกิพีเดีย


2
8-bit เป็นไมโครโพรเซสเซอร์ที่โดดเด่น แต่มันไกลจากสามัญมากที่สุดฉันคิดว่าฉันอ่านเมื่อต้นปีที่แล้วว่าพวกเขาไม่ได้รวมส่วนแบ่งตลาดมากกว่า 50% อีกต่อไป
Kortuk

3
ที่จริงแล้วฉันอยากจะบอกว่าฉันไม่เห็นด้วยกับรายการไมโครคอนโทรลเลอร์จำนวนมาก ส่วนใหญ่ของราคาถูกที่พวกเขาวางในระบบไม่เสียค่าใช้จ่ายดอลลาร์หลายคนขึ้นอยู่กับแบรนด์ไม่สามารถให้กระแสไฟ LED นอกจากนี้ยังมีกลุ่มขนาดใหญ่มากที่ทำลาย 20MHz แต่โดยทั่วไปจะตรงตามข้อกำหนดนั้น ฉันคิดว่าพวกเขายอดเยี่ยมมากสำหรับผู้ที่ไม่ชำนาญ
Kortuk

ฉันได้รวมการแก้ไขบางส่วนและทำให้คำตอบของฉันเป็นวิกิชุมชน - ช่วยฉันทำให้ถูกต้อง!
Clinton Blackmore

3
AT91SAM7S256 เป็นไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์แน่นอน
jpc

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

13

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

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

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

มันยังคงเป็นไปได้ที่จะเรียกบางสิ่งบางอย่างไมโครโปรเซสเซอร์และสิ่งอื่น ๆ ไมโครคอนโทรลเลอร์เมื่อนักออกแบบปฏิบัติตามปรัชญาหนึ่งหรืออื่น ๆ อย่างชัดเจน Intel Core i7 เป็นโปรเซสเซอร์ที่ชัดเจน PIC และ AVR เป็นตัวควบคุมที่ชัดเจน อย่างไรก็ตาม ณ เวลานี้ด้วยจำนวนตรรกะที่สามารถใส่ในชิปตัวเดียวคุณสามารถฝังระบบไมโครโปรเซสเซอร์ทั้ง 1990 ลงในชิปตัวเดียวได้อย่างง่ายดาย สิ่งใดที่คุณเรียก PPC604 400MHz กับตัวควบคุมการขัดจังหวะการควบคุม SDRAM สนับสนุนอีเธอร์เน็ตและการฆ่าของอุปกรณ์ต่อพ่วงอื่น ๆทั้งหมดในหนึ่งชิป ?


> อะไรที่คุณเรียกว่า PPC 604 ที่มีตัวควบคุมอินเตอร์รัปต์ตัวควบคุม SDRAM การสนับสนุนอีเธอร์เน็ตและอุปกรณ์ต่อพ่วงอื่น ๆ ทั้งหมดบนชิปตัวเดียว => ฉันจะเรียกมันว่า "fat microprocessor" ไม่มี ROM และ RAM ดังนั้นจึงไม่ใช่ไมโครคอนโทรลเลอร์
Wouter van Ooijen

2
@Wouter van Ooijen - ฉันคิดว่าฉันควรจะพูดถึงฉันจะเรียกมันว่า "ระบบบนชิป"
JustJeff


5

การตลาดส่วนใหญ่

มีคำแปลก ๆ อื่นอยู่ Analog Devices มี (หรือมี) บางสิ่งที่พวกเขาเรียกว่า "ไมโครคอนเวอร์เตอร์" ซึ่งเหมือนกับ ADC / DACs ที่มีไมโครโปรเซสเซอร์ในตัว TI กำลังเรียกคอนโทรลเลอร์สัญญาณดิจิตอล DSP (ซีรีย์ C2000) บางตัว

มิฉะนั้นสิ่งที่ JohnC พูด


ฉันจะหาข้อมูลเพิ่มเติมเกี่ยวกับ "ไมโครคอนเวอร์เตอร์" เหล่านี้ได้จากที่ใด สิ่งที่ใกล้เคียงที่สุดที่ฉันพบคือ TAS3202
endolith

พวกเขาอาจหยุดเรียกพวกเขาว่า analog.com/en/analog-microcontrollers/analog-microcontrollers/ …ฉันไม่เคยประทับใจมากกับไมโครโปรเซสเซอร์ของ ADI สิ่งต่าง ๆ ของอะนาล็อกของพวกเขานั้นดีและ DSP ของพวกเขาน่าจะดี แต่ฉันไม่มีประสบการณ์กับพวกเขา .
เจสัน S

อัตราการสุ่มตัวอย่างสูงสุด 8 kHz ดังนั้นจึงไม่มีประโยชน์กับเสียง : /
endolith

2
ฉันไม่เห็นด้วยว่ามันเป็นการตลาดเป็นส่วนใหญ่ ฉันเห็นด้วยกับคำตอบ JohnC
Daniel Grillo

5

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


4

เพียงเพิ่มคำตอบที่เขียนอย่างดีเยี่ยม Analogy: ไมโครโปรเซสเซอร์เป็นสมอง ในขณะที่ไมโครคอนโทรลเลอร์เป็นทั้งร่างกาย

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

ในขณะที่ร่างกายมีสมองและอุปกรณ์ต่อพ่วงอื่น ๆ เช่นไมโครคอนโทรลเลอร์ :)


3

เส้นค่อนข้างเบลอ แต่โดยทั่วไปแล้วมันจะเป็นดังนี้:

  • ไมโครโปรเซสเซอร์มีหน่วยประมวลผลหลัก (หน่วยดึง / ถอดรหัส, ALU, รีจิสเตอร์ ฯลฯ ) และอาจเป็นบล็อกพื้นฐานสองสามส่วน แต่โดยทั่วไปจะไม่มากขึ้น

  • ไมโครคอนโทรลเลอร์เพิ่ม RAM (SRAM) โดยปกติ ROM บางตัว (สามารถเป็น mask rom หรือ Flash / EEPROM) สำหรับการจัดเก็บรหัส (แต่สามารถ ROMless ได้) และชุดอุปกรณ์ต่อพ่วงพื้นฐาน (SPI / I2C, UART, GPIOs หรือแม้แต่ USB หรือ อีเธอร์เน็ตและอื่น ๆ ) บางครั้งสิ่งนี้เรียกว่า System-on-Chip (SoC) หรือบางครั้ง SoC เป็นสิ่งที่รวมกันมากขึ้น บริษัท ญี่ปุ่นบางแห่งก็ชอบคำว่า "ไมโครคอมพิวเตอร์ "

    อย่างไรก็ตามอย่างที่ฉันพูดถึงเส้นนั้นจะพร่ามัว ตัวอย่างเช่นโปรเซสเซอร์ Intel / AMD ล่าสุดเพิ่มคอนโทรลเลอร์หน่วยความจำบนชิป (ก่อนหน้านี้อยู่ในชิปเซ็ต)

    BTW ฉันจะเรียก 8086 ไมโครโปรเซสเซอร์ (ไมโครคอนโทรลเลอร์ของ Intel รวมถึงตัวอย่างเช่น 8051 หรือ 80186)


2

ความแตกต่างระหว่างไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์

  1. ไมโครโปรเซสเซอร์ = cpu; Microcontroller = cpu + อุปกรณ์ต่อพ่วง + อุปกรณ์ต่อพ่วงหน่วยความจำ = พอร์ต + นาฬิกา + ตัวจับเวลา + uarts + ตัวแปลง ADC + ไดรเวอร์จอแอลซีดี + DAC + สิ่งอื่น ๆ ; Memory = eeprom + sram + eprom + flash

  2. ในไมโครโปรเซสเซอร์ตัวเลือกเพิ่มเติมรหัสคำแนะนำการจัดการเล็กน้อย แต่ใน Microcontroller: op-codes น้อยกว่า, คำแนะนำในการจัดการ bit เพิ่มเติม

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


3
ข้อมูลเหล่านี้เป็นเพียงเล็กน้อยสุ่มและไม่ได้มีรูปแบบที่ดีนักสำหรับคำถามที่มีคำตอบมากมาย ยกตัวอย่าง: ใครบอกว่าไมโครคอนโทรลเลอร์ต้องมีไดรเวอร์ ADC, DAC และ LCD หลายคนมี แต่ก็ไม่ใช่กฎ เช่นเดียวกันสำหรับการจัดการบิตและการดำเนินการตามเวลาจริง
clabacchio

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

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

1

ไมโครโปรเซสเซอร์เป็นหน่วยประมวลผลกลางอย่างง่าย (CPU) บนชิปตัวเดียว (จำคำว่า 'ชิปตัวเดียว') มันมีหน่วยคำนวณทางคณิตศาสตร์ (ALU), ชุดควบคุม (CU), รีจิสเตอร์, ตัวถอดรหัสคำสั่ง, วงจรควบคุมบัสเป็นต้น แต่ทุกอย่างควรอยู่บนชิปตัวเดียว

ไมโครคอนโทรลเลอร์: ไมโครคอนโทรลเลอร์คือความสัมพันธ์ของไมโครโปรเซสเซอร์และอุปกรณ์ต่อพ่วง I / O, วงจรรองรับและหน่วยความจำ (ทั้งข้อมูลและโปรแกรม) ไม่จำเป็นต้องอยู่บนชิปตัวเดียว (จำจุดนี้ไม่ได้อยู่ในชิปตัวเดียว)

  1. ไมโครโปรเซสเซอร์เป็นองค์ประกอบหนึ่งของไมโครคอมพิวเตอร์
  2. ไมโครคอนโทรลเลอร์เป็นคอมพิวเตอร์ที่สมบูรณ์คล้ายกับคอมพิวเตอร์เครื่องอื่น

1

คำตอบทั้งหมดถูกต้องเนื่องจากความแตกต่างนี้ของบล็อกมากกว่าใน mC และ mP ดูตารางด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่


0

คำตอบสั้น ๆ อย่างย่อ:
MicroProcessor - การ 'คิด' นั้นเป็นชิปที่จัดการกับคณิตศาสตร์
Microcontroller - ระบบที่มีไมโครโปรเซสเซอร์รวมอยู่สามารถเชื่อมต่อกับชิ้นส่วนอิเล็กทรอนิกส์เพื่อพัฒนาระบบสมองกลฝังตัว

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