Sự khác biệt giữa vi điều khiển và vi xử lý là gì?


Câu trả lời:


191

Một bộ vi xử lý thường không có chân RAM, ROM và IO. Nó thường sử dụng các chân của nó như một chiếc xe buýt để giao tiếp với các thiết bị ngoại vi như RAM, ROM, cổng nối tiếp, IO kỹ thuật số và Analog. Nó có thể mở rộng ở cấp độ hội đồng do điều này.

Một bộ vi điều khiển là 'tất cả trong một', bộ xử lý, ram, IO tất cả trên một chip, do đó bạn không thể (nói) tăng dung lượng RAM có sẵn hoặc số lượng cổng IO. Xe buýt điều khiển là nội bộ và không có sẵn cho người thiết kế bảng.

Điều này có nghĩa là một bộ vi xử lý thường có khả năng được xây dựng thành các ứng dụng cho mục đích chung lớn hơn so với vi điều khiển. Bộ vi điều khiển thường được sử dụng cho các ứng dụng chuyên dụng hơn.

Tất cả những điều này là những tuyên bố rất chung chung. Có chip có sẵn làm mờ ranh giới.


4
Nhiều bộ vi điều khiển làm cho một bus bộ nhớ có sẵn cho mã và dữ liệu bên ngoài; những chân này có thể hoặc không thể sử dụng cho các mục đích khác nếu bộ nhớ ngoài không được sử dụng. Theo tôi, sự khác biệt xác định là liệu một thiết bị có thường ( ) có khả năng chạy ít nhất là hữu ích mà không cần bus bộ nhớ ngoài hay không. ( ) 8051 chắc chắn có khả năng, vì vậy rõ ràng nó là "vi điều khiển". Một 8031 ​​là cùng một chip với 8051, nhưng với nội dung ROM không xác định. Việc thiếu ROM hữu ích sẽ biến nó thành một bộ vi xử lý, nhưng vì nó cùng chip với 8051, nên nó có thể được gọi là vi điều khiển.
supercat

2
"Xe buýt điều khiển là nội bộ và không có sẵn cho người thiết kế bảng." Điều đó không hẳn đúng. Có các bộ vi điều khiển tồn tại với một địa chỉ / cơ sở dữ liệu bên ngoài để cho phép thêm bộ nhớ.
stevenvh

Vì vậy, chúng ta có thể nói rằng một bộ vi điều khiển về cơ bản là một máy tính trong khi bộ vi xử lý chỉ là một thực thi đơn chip của CPU?
doubleOrt

@doubleOrt: Bạn có thể đặt nó theo cách đó, nhưng các ranh giới bị mờ. Ngày nay, có khá nhiều chip bao gồm bộ nhớ dữ liệu dễ bay hơi (SRAM), nhưng không có bộ nhớ mã không biến đổi (Flash). Chúng thường được gọi là MPU (bộ vi xử lý). Vì vậy, sự khác biệt dường như chủ yếu liên quan đến Flash trên chip ngày nay. NXP tiếp thị một cái gì đó mà họ gọi là bộ xử lý "chéo" với RAM, nhưng không có Flash. Điều này có liên quan đến khó khăn ngày càng tăng của việc tích hợp Flash trong chip với các bóng bán dẫn nhỏ hơn bao giờ hết. Giới hạn hiện tại dường như là khoảng 28nm.
sh-

29

Như đã đề cập, vi điều khiển về cơ bản là các hệ thống trên chip. Ngoại trừ một số thiết bị ngoại vi chuyên dụng, mọi thứ đều nằm trong một gói. Giao diện với các thiết bị ngoại vi bên ngoài hầu như luôn được thực hiện bằng các kết nối nối tiếp. Điều này giữ cho kích thước gói nhỏ (ít chân) và kích thước PCB nhỏ (ít chân để kết nối giữa các gói).

Tại Boston Barcamp vừa qua (MIT 2009) tôi đã nói chuyện "Giới thiệu về Vi điều khiển". Một bản sao của bản tin đang ở

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


25

Vi điều khiển:

  • thường là 8 bit, nhưng có thể là 4, 16- hoặc 32 bit
  • chạy ở tốc độ dưới 200 MHz
  • sử dụng rất ít năng lượng
  • có thể cung cấp đủ dòng điện để vận hành đèn LED
  • rất hữu ích để giao tiếp với các cảm biến và động cơ
  • dễ dàng thay thế, không tốn kém ($ 0,10 đến $ 10)
  • thực sự bị hạn chế về RAM và lưu trữ liên tục (không gian flash)
  • thực sự tốt cho những người có sở thích điện tử

Bộ vi xử lý:

  • thường ít nhất là 16 bit và thường là 32 bit hoặc 64 bit, mặc dù 8 bit vẫn có thị phần lớn
  • nhiều người sẽ có thể làm toán học dấu phẩy động trong phần cứng
  • chạy ở tốc độ đo bằng hàng trăm MHz
  • được thiết kế để trở thành bộ não của một hệ thống (và cần cả một hệ thống để hỗ trợ chúng)
  • cần phần cứng đặc biệt để giao tiếp với cảm biến, động cơ, đèn LED, v.v.
  • đắt tiền (nghĩ $ 50 - $ 250 cho 32 hoặc 64-bit)
  • được thiết kế cho RAM ngoài và lưu trữ liên tục (ổ cứng)
  • không dễ dàng làm việc với một người có sở thích

Tôi thấy thú vị khi bộ LEGO Mindstorms NXT có bộ vi xử lý [32 bit AT91SAM7S256 (ARM7TDMI) bộ vi xử lý chính @ 48 MHz (bộ nhớ flash 256 KB, RAM 64 KB)] để thực hiện suy nghĩ và bộ vi điều khiển [8 bit ATmega48 vi điều khiển @ 4 MHz (bộ nhớ flash 4 KB, RAM 512 byte)] để giao tiếp với các cảm biến và động cơ. Xem thông số kỹ thuật trên Wikipedia .


2
8-bit là bộ vi xử lý chiếm ưu thế, nhưng khác xa với phổ biến nhất, tôi nghĩ rằng tôi đã đọc vào đầu năm nay rằng họ không còn chiếm hơn 50% thị phần.
Kortuk

3
Trên thực tế, tôi muốn nói rằng tôi không đồng ý với một lượng lớn danh sách vi điều khiển. Hầu hết những cái giá rẻ họ đặt trong các hệ thống không tốn một đô la, nhiều người, phụ thuộc vào thương hiệu, không thể cung cấp dòng điện để cấp nguồn cho đèn LED. Ngoài ra còn có một nhóm rất lớn phá vỡ 20 MHz, nhưng nói chung đáp ứng được thông số đó. Tôi nghĩ rằng họ cũng là tuyệt vời cho hobyist.
Kortuk

Tôi đã kết hợp một số sửa đổi và biến câu trả lời của mình thành wiki cộng đồng - giúp tôi làm cho đúng!
Clinton Blackmore

3
AT91SAM7S256 chắc chắn là một bộ vi điều khiển cũng như bộ vi xử lý.
jpc

4
Tôi bắt đầu chỉnh sửa nó, đăng, nhưng tôi không nghĩ nó thực sự có thể đổi được. Câu trả lời được chấp nhận cho câu hỏi này có bản chất của sự khác biệt, về cơ bản là 'bộ nhớ tích hợp' hoặc 'không có bộ nhớ tích hợp'. Tôi e rằng phần lớn này phần lớn là một danh sách các khái quát, một số trong đó hoàn toàn sai.

13

Sự khác biệt này là một điều khó thực hiện hơn nhiều trong những ngày này, vì toàn bộ các thiết bị đã phát sinh giữa các thái cực, nhưng nếu có một định danh dường như hoạt động, đó là nhìn vào pin-out và xem những gì các nhà thiết kế đã làm với các chân . Có phải họ chủ yếu là I / O cá nhân? Hay xe buýt chiếm ưu thế?

Theo quan điểm của tôi, một bộ vi điều khiển theo truyền thống là một thứ hoạt động như một giải pháp 1 chip; đặt một cái lên PCB với một vài sự không hài lòng không thể tránh khỏi, và một số đầu nối, viết một lượng nhỏ phần mềm và bạn có một hệ thống. Bộ vi điều khiển chứa tất cả bộ nhớ, không ổn định và không, mà hệ thống cần, cái giá phải trả cho sự tiện lợi này là sẽ không có nhiều thứ trong tay. Hầu hết các chân được dành riêng cho các chức năng I / O.

Trong khi đó, ở một thái cực khác, bộ vi xử lý là loại quái thú giảm tải càng nhiều càng tốt để hỗ trợ chip, nhằm dành silicon để tối đa hóa thông lượng của lõi CPU. Hầu hết các chân trên loại thiết bị này là địa chỉ và đường dữ liệu, cần thiết để kết nối với bộ nhớ và các thiết bị I / O mà lõi thiếu.

Vẫn có thể gọi một số thứ là bộ vi xử lý và những thứ khác là vi điều khiển, khi các nhà thiết kế tuân thủ rõ ràng triết lý này hay triết lý khác. Intel Core i7 rõ ràng là bộ xử lý, PIC và AVR là bộ điều khiển rõ ràng. Tuy nhiên, tại thời điểm này, với số lượng logic có thể được đặt trong một chip đơn, bạn có thể dễ dàng nhúng toàn bộ hệ thống vi xử lý 1990 vào một chip đơn. Bạn gọi PPC.60 400 MHz với bộ điều khiển ngắt, bộ điều khiển SDRAM, hỗ trợ ethernet và một loạt các thiết bị ngoại vi khác, tất cả nằm trên một chip ?


> Bạn gọi PPC.60 400 MHz với bộ điều khiển ngắt, bộ điều khiển SDRAM, hỗ trợ ethernet và một loạt các thiết bị ngoại vi khác, tất cả nằm trên một chip? => Tôi gọi nó là "bộ vi xử lý chất béo". Không có ROM và RAM, vì vậy chắc chắn không phải là vi điều khiển.
Wouter van Ooijen

2
@Wouter van Ooijen - Tôi đoán tôi nên đề cập, tôi gọi đó là "hệ thống trên chip".
JustJeff


5

Chủ yếu là tiếp thị.

Có một số thuật ngữ kỳ lạ khác; Các thiết bị analog có (hoặc có) thứ mà họ gọi là "microconverters" giống như ADC / DAC với bộ vi xử lý được tích hợp. TI hiện đang gọi một số Bộ điều khiển tín hiệu số DSP (dòng C2000) của họ.

Nếu không thì những gì JohnC đã nói.


Tôi có thể tìm thêm ở đâu về những "microconverters" này? Thứ gần nhất tôi tìm thấy là TAS3202.
endolith

họ có thể đã ngừng gọi họ như vậy. analog.com/en/analog-microcontrollers/analog-microcontrollers/... Tôi chưa bao giờ được ấn tượng nhiều với bộ vi xử lý ADI của, công cụ tương tự của họ là tốt, và DSP của họ có nghĩa vụ phải được tốt nhưng tôi không có kinh nghiệm w / họ .
Jason S

Tốc độ lấy mẫu tối đa 8 kHz, vì vậy không hữu ích cho âm thanh. : /
endolith

2
Tôi không đồng ý rằng đó chủ yếu là tiếp thị. Tôi đồng ý với câu trả lời của JohnC.
Daniel Grillo

5

Tôi muốn đề xuất rằng vi điều khiển là một thiết bị chứa đủ bộ nhớ trong và mạch điện, ít nhất là trong một số biến thể, nó có thể thực hiện một số chức năng hữu ích mà không cần bộ nhớ ngoài. Theo định nghĩa như vậy, 8051 sẽ có đủ mạch để hữu dụng và 8031 ​​thì không; Tuy nhiên, 8031 ​​chỉ đơn giản là một 8051 trong đó nội dung của ROM bên trong là không xác định (trong khi hoàn toàn có thể một số chip 8031 ​​"ROMless" rời khỏi không gian ROM, tôi hy vọng sẽ có một số khác, để thống nhất bố cục khuôn với các phiên bản bao gồm ROM, bao gồm một mảng ROM trống vô dụng).


4

Chỉ cần thêm tất cả các câu trả lời được viết một cách xuất sắc, Analogy: Vi xử lý là một bộ não. trong khi Vi điều khiển là Toàn bộ cơ thể.

Não có khả năng Thực hiện tất cả các hướng dẫn nhưng chúng ta cần phải gắn Mắt, Tay (tức là Ngoại vi) bên ngoài.

Trong khi Body có Brain và các thiết bị ngoại vi khác tức là Vi điều khiển :)


3

Dòng này hơi mờ nhưng nhìn chung nó sẽ như thế này:

  • bộ vi xử lý chứa lõi bộ xử lý (đơn vị tìm nạp / giải mã, ALU, thanh ghi, v.v.) và có thể một vài khối cơ bản hơn, nhưng thường không nhiều hơn.

  • vi điều khiển thêm RAM (SRAM), thường là một số ROM (có thể là mặt nạ rom hoặc Flash / EEPROM) để lưu trữ mã (nhưng cũng có thể là ROMless) và một bộ các thiết bị ngoại vi cơ bản (SPI / I2C, UART, GPIO, thậm chí có thể là USB hoặc Ethernet và như vậy). Đôi khi điều này được gọi là System-on-Chip (SoC), hoặc đôi khi SoC là một thứ thậm chí còn được tích hợp nhiều hơn. Một số công ty Nhật Bản cũng thích thuật ngữ " máy vi tính ".

    Tuy nhiên, như tôi đã đề cập, dòng bị mờ. Ví dụ, bộ xử lý Intel / AMD gần đây thêm bộ điều khiển bộ nhớ trên chip (trước đây nó có trong chipset).

    BTW, tôi thực sự sẽ gọi 8086 là bộ vi xử lý (bộ vi điều khiển của Intel bao gồm 8051 hoặc 80186).


2

Sự khác biệt giữa vi điều khiển và vi xử lý

  1. Bộ vi xử lý = cpu; Vi điều khiển = cpu + thiết bị ngoại vi + bộ nhớ Ngoại vi = cổng + đồng hồ + bộ hẹn giờ + uarts + bộ chuyển đổi adc + trình điều khiển LCD + dac + các thứ khác; Bộ nhớ = eeprom + sram + eprom + flash

  2. Trong Vi xử lý nhiều mã op hơn, một vài hướng dẫn xử lý bit. Nhưng trong Vi điều khiển: ít mã op hơn, Hướng dẫn xử lý bit nhiều hơn.

  3. Một bộ vi xử lý cũng có thể không được lập trình để xử lý các tác vụ thời gian thực trong khi một bộ vi điều khiển như trong các thiết bị cần kiểm soát nhiệt độ của nước hoặc có thể đo nhiệt độ của phòng cần theo dõi thời gian thực và do đó, bộ hướng dẫn sẵn có của bộ vi điều khiển hoạt động. trên chính nó.


3
Những thông tin này là một chút ngẫu nhiên và không được xây dựng tốt, cho một câu hỏi với rất nhiều câu trả lời. Lấy một ví dụ: ai nói rằng một vi điều khiển phải có trình điều khiển ADC, DAC và LCD? Nhiều người có chúng, nhưng đó không phải là một quy tắc. Tương tự cho xử lý bit và hoạt động thời gian thực.
clabacchio

@neelamSingh, Chào mừng bạn đến với trang web, bài đăng của bạn không được định dạng tốt và dường như cắt ngang giữa chừng, nó có thể sử dụng một số công việc!
Kortuk

2
Điểm thứ ba của bạn không hợp lệ. Khả năng thời gian thực được xác định bởi HĐH, không phải loại bộ xử lý. Không có lý do tại sao RTOS sẽ không chạy trên bộ vi xử lý. Và vi điều khiển cũng không nhất thiết phải có nhiều hướng dẫn xử lý bit.
stevenvh

1

Bộ vi xử lý là một đơn vị xử lý trung tâm đơn giản (CPU) trên một chip đơn (hãy nhớ từ 'Chip đơn'). Nó bao gồm đơn vị logic số học (ALU), đơn vị điều khiển (CU), thanh ghi, bộ giải mã lệnh, mạch điều khiển bus, v.v. nhưng mọi thứ nên nằm trên một chip đơn.

Bộ vi điều khiển: Một bộ vi điều khiển là sự kết hợp giữa bộ vi xử lý và các thiết bị I / O ngoại vi, mạch hỗ trợ và bộ nhớ (cả dữ liệu và chương trình). Không nhất thiết phải ở trên một chip đơn (hãy nhớ điểm này, không phải trong một chip đơn).

  1. Bộ vi xử lý là một thành phần của máy vi tính.
  2. Vi điều khiển là một máy tính hoàn chỉnh tương tự như bất kỳ máy tính nào khác.

1

Tất cả các câu trả lời đều đúng, vì sự khác biệt này nhiều hơn các khối có trong mC và mP, xem bảng bên dưới,

nhập mô tả hình ảnh ở đây


0

Câu trả lời dài ngắn:
MicroProcessor - Liệu 'suy nghĩ', về cơ bản là một con chip xử lý toán học.
Vi điều khiển - Một hệ thống có bộ vi xử lý đi kèm, có khả năng dễ dàng giao tiếp với các thành phần điện tử để phát triển các hệ thống nhúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.