คำตอบ:
โดยทั่วไปแล้วไมโครโปรเซสเซอร์ไม่มีขา RAM, ROM และ IO มันมักจะใช้พินเป็นบัสเพื่อเชื่อมต่อกับอุปกรณ์ต่อพ่วงเช่น RAM, ROM, พอร์ตอนุกรม, ดิจิตอลและอนาล็อก IO มันสามารถขยายได้ที่ระดับบอร์ดเนื่องจากสิ่งนี้
ไมโครคอนโทรลเลอร์คือ 'all in one' ตัวประมวลผลหน่วยความจำ IO ทั้งหมดบนชิปตัวเดียวคุณไม่สามารถ (พูด) เพิ่มจำนวนแรมที่มีอยู่หรือจำนวนพอร์ต IO บัสควบคุมอยู่ภายในและไม่พร้อมใช้งานสำหรับนักออกแบบบอร์ด
ซึ่งหมายความว่าไมโครโปรเซสเซอร์สามารถสร้างแอปพลิเคชั่นอเนกประสงค์ที่ใหญ่กว่าไมโครคอนโทรลเลอร์ได้ ไมโครคอนโทรลเลอร์มักใช้สำหรับแอปพลิเคชันเฉพาะเพิ่มเติม
ทั้งหมดนี้เป็นข้อความทั่วไป มีชิปที่ทำให้ขอบเขตไม่ชัดเจน
ตามที่ได้กล่าวมาแล้วว่าไมโครคอนโทรลเลอร์เป็นระบบที่สำคัญบนชิป ยกเว้นอุปกรณ์ต่อพ่วงบางอย่างทุกอย่างอยู่ในแพ็คเกจเดียว อินเทอร์เฟซกับอุปกรณ์ต่อพ่วงภายนอกเกือบทั้งหมดทำได้โดยใช้การเชื่อมต่อแบบอนุกรม สิ่งนี้จะทำให้ขนาดบรรจุภัณฑ์มีขนาดเล็ก (พินน้อยลง) และขนาด PCB มีขนาดเล็ก (พินน้อยกว่าเพื่อเชื่อมต่อระหว่างแพ็คเกจ)
ในงานล่าสุด Boston Barcamp (MIT 2009) ฉันได้พูดคุยเรื่อง "Intro to Microcontrollers" สำเนาเอกสารแจกอยู่ที่
ไมโครคอนโทรลเลอร์:
ไมโครโปรเซสเซอร์:
ฉันคิดว่ามันน่าสนใจที่ชุด LEGO Mindstorms NXT มีไมโครโปรเซสเซอร์ [32 บิต AT91SAM7S256 (ARM7TDMI) ไมโครโปรเซสเซอร์หลัก @ 48 MHz (หน่วยความจำแฟลช 256 KB, 64 KB RAM)] สำหรับการคิดและไมโครคอนโทรลเลอร์ [8 บิต ATmega48] microcontroller @ 4 MHz (หน่วยความจำแฟลช 4 KB, 512 Bytes RAM)] สำหรับการเชื่อมต่อกับเซ็นเซอร์และมอเตอร์ ดูรายละเอียดทางเทคนิคเกี่ยวกับวิกิพีเดีย
ความแตกต่างนี้เป็นสิ่งที่ทำให้วันนี้ยากขึ้นมากเนื่องจากอุปกรณ์ทั้งสเปกตรัมได้เกิดขึ้นระหว่างสุดขั้ว แต่ถ้ามีตัวระบุหนึ่งตัวที่ดูเหมือนจะใช้งานได้ก็ต้องดูที่ขาออกและดูสิ่งที่นักออกแบบ ทำกับหมุด พวกเขาส่วนใหญ่เป็น I / O ส่วนบุคคลหรือไม่? หรือรถเมล์ครอง?
ในมุมมองของฉันไมโครคอนโทรลเลอร์มักเป็นสิ่งที่ทำงานเป็นโซลูชั่น 1 ชิป ใส่หนึ่งลงบน PCB ที่มี discretes ที่หลีกเลี่ยงไม่ได้ไม่กี่ตัวและตัวเชื่อมต่อบางตัวเขียนซอฟต์แวร์จำนวนเล็กน้อยและคุณมีระบบ ไมโครคอนโทรลเลอร์มีหน่วยความจำทั้งหมดที่ระเหยได้และไม่ใช่ที่ระบบต้องการราคาที่จ่ายเพื่อความสะดวกนี้เป็นเพราะไม่มีอะไรในมือเลย หมุดส่วนใหญ่ใช้สำหรับฟังก์ชั่น I / O
ในขณะที่สุดโต่งอื่น ๆ ไมโครโปรเซสเซอร์เป็นสัตว์ประเภทที่จะถ่ายมากที่สุดเท่าที่เป็นไปได้ที่จะสนับสนุนชิปเพื่ออุทิศซิลิคอนเพื่อเพิ่มปริมาณงานของซีพียูสูงสุด หมุดส่วนใหญ่ในอุปกรณ์ประเภทนี้เป็นที่อยู่และสายข้อมูลซึ่งจำเป็นในการเชื่อมต่อกับหน่วยความจำและอุปกรณ์ I / O ที่แกนขาด
มันยังคงเป็นไปได้ที่จะเรียกบางสิ่งบางอย่างไมโครโปรเซสเซอร์และสิ่งอื่น ๆ ไมโครคอนโทรลเลอร์เมื่อนักออกแบบปฏิบัติตามปรัชญาหนึ่งหรืออื่น ๆ อย่างชัดเจน Intel Core i7 เป็นโปรเซสเซอร์ที่ชัดเจน PIC และ AVR เป็นตัวควบคุมที่ชัดเจน อย่างไรก็ตาม ณ เวลานี้ด้วยจำนวนตรรกะที่สามารถใส่ในชิปตัวเดียวคุณสามารถฝังระบบไมโครโปรเซสเซอร์ทั้ง 1990 ลงในชิปตัวเดียวได้อย่างง่ายดาย สิ่งใดที่คุณเรียก PPC604 400MHz กับตัวควบคุมการขัดจังหวะการควบคุม SDRAM สนับสนุนอีเธอร์เน็ตและการฆ่าของอุปกรณ์ต่อพ่วงอื่น ๆทั้งหมดในหนึ่งชิป ?
การตลาดส่วนใหญ่
มีคำแปลก ๆ อื่นอยู่ Analog Devices มี (หรือมี) บางสิ่งที่พวกเขาเรียกว่า "ไมโครคอนเวอร์เตอร์" ซึ่งเหมือนกับ ADC / DACs ที่มีไมโครโปรเซสเซอร์ในตัว TI กำลังเรียกคอนโทรลเลอร์สัญญาณดิจิตอล DSP (ซีรีย์ C2000) บางตัว
มิฉะนั้นสิ่งที่ JohnC พูด
ฉันขอแนะนำให้ไมโครคอนโทรลเลอร์เป็นอุปกรณ์ที่มีหน่วยความจำภายในและวงจรเพียงพอซึ่งอย่างน้อยก็ในบางรุ่นมันสามารถใช้งานฟังก์ชั่นที่มีประโยชน์ได้โดยไม่ต้องมีหน่วยความจำภายนอก โดยคำจำกัดความดังกล่าว 8051 จะมีวงจรเพียงพอที่จะเป็นประโยชน์ด้วยตัวเองและ 8031 จะไม่; อย่างไรก็ตาม 8031 นั้นเป็นเพียงแค่ 8051 ที่เนื้อหาของ ROM ภายในนั้นไม่ได้รับการระบุ (ในขณะที่เป็นไปได้โดยสิ้นเชิงที่บางส่วน "ROMless" 8031 ชิปและตัวแปรออกจากพื้นที่ ROM ออกจากความตายฉันคาดหวังว่าจะมีบางอย่างที่ สำหรับความสอดคล้องกันของรูปแบบตายกับรุ่นซึ่งรวมถึง ROM รวมอาเรย์รอมเปล่าเปล่าดาย)
เพียงเพิ่มคำตอบที่เขียนอย่างดีเยี่ยม Analogy: ไมโครโปรเซสเซอร์เป็นสมอง ในขณะที่ไมโครคอนโทรลเลอร์เป็นทั้งร่างกาย
สมองมีความสามารถในการดำเนินการคำแนะนำทั้งหมด แต่เราจำเป็นต้องแนบตามือ (เช่นอุปกรณ์ต่อพ่วง) จากภายนอก
ในขณะที่ร่างกายมีสมองและอุปกรณ์ต่อพ่วงอื่น ๆ เช่นไมโครคอนโทรลเลอร์ :)
เส้นค่อนข้างเบลอ แต่โดยทั่วไปแล้วมันจะเป็นดังนี้:
ไมโครโปรเซสเซอร์มีหน่วยประมวลผลหลัก (หน่วยดึง / ถอดรหัส, 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)
ไมโครโปรเซสเซอร์ = cpu; Microcontroller = cpu + อุปกรณ์ต่อพ่วง + อุปกรณ์ต่อพ่วงหน่วยความจำ = พอร์ต + นาฬิกา + ตัวจับเวลา + uarts + ตัวแปลง ADC + ไดรเวอร์จอแอลซีดี + DAC + สิ่งอื่น ๆ ; Memory = eeprom + sram + eprom + flash
ในไมโครโปรเซสเซอร์ตัวเลือกเพิ่มเติมรหัสคำแนะนำการจัดการเล็กน้อย แต่ใน Microcontroller: op-codes น้อยกว่า, คำแนะนำในการจัดการ bit เพิ่มเติม
ไมโครโปรเซสเซอร์อาจไม่ได้ตั้งโปรแกรมให้ทำงานแบบเรียลไทม์ในขณะที่ไมโครคอนโทรลเลอร์เช่นในอุปกรณ์ที่ต้องควบคุมอุณหภูมิของน้ำหรืออาจวัดอุณหภูมิของห้องต้องการการตรวจสอบแบบเรียลไทม์ดังนั้นจึงมีชุดคำสั่งในตัว ด้วยตัวเอง
ไมโครโปรเซสเซอร์เป็นหน่วยประมวลผลกลางอย่างง่าย (CPU) บนชิปตัวเดียว (จำคำว่า 'ชิปตัวเดียว') มันมีหน่วยคำนวณทางคณิตศาสตร์ (ALU), ชุดควบคุม (CU), รีจิสเตอร์, ตัวถอดรหัสคำสั่ง, วงจรควบคุมบัสเป็นต้น แต่ทุกอย่างควรอยู่บนชิปตัวเดียว
ไมโครคอนโทรลเลอร์: ไมโครคอนโทรลเลอร์คือความสัมพันธ์ของไมโครโปรเซสเซอร์และอุปกรณ์ต่อพ่วง I / O, วงจรรองรับและหน่วยความจำ (ทั้งข้อมูลและโปรแกรม) ไม่จำเป็นต้องอยู่บนชิปตัวเดียว (จำจุดนี้ไม่ได้อยู่ในชิปตัวเดียว)
คำตอบสั้น ๆ อย่างย่อ:
MicroProcessor - การ 'คิด' นั้นเป็นชิปที่จัดการกับคณิตศาสตร์
Microcontroller - ระบบที่มีไมโครโปรเซสเซอร์รวมอยู่สามารถเชื่อมต่อกับชิ้นส่วนอิเล็กทรอนิกส์เพื่อพัฒนาระบบสมองกลฝังตัว