vi điều khiển so với hệ thống trên chip


24

Tôi đang bắt đầu lập trình vi điều khiển và tôi đang đọc một số tài liệu và sách giáo khoa. Tôi hơi bối rối về sự khác biệt giữa Bộ điều khiển vi mô và Hệ thống trên chip?

Một số tài liệu sử dụng hai thuật ngữ này thay thế cho nhau. Tuy nhiên, hầu hết các sách giáo khoa đều chỉ ra rằng việc sử dụng hai thuật ngữ có thể thay đổi là KHÔNG chính xác, do đó phải có một số khác biệt đáng chú ý ...

Cảm ơn!


4
Cảm ơn vì đã chấp nhận câu trả lời của tôi, nhưng tôi thực sự khuyên bạn nên đợi lâu hơn trước khi chấp nhận. Những người khác có thể có quan điểm và hiểu biết khác nhau, nhưng thường có thể vượt qua một câu hỏi đã có câu trả lời được chấp nhận - Tôi biết tôi làm. Bạn muốn để lại một chút thời gian để thu thập sự đồng thuận, đặc biệt đối với một câu hỏi giải quyết một khu vực màu xám.
Olin Lathrop

@Olin Cool, sẽ ghi nhớ điều đó vào lần tới!
rrazd

Câu trả lời:


27

Bộ vi điều khiển là bộ xử lý có tích hợp bộ nhớ chương trình và dữ liệu. Các chip này dành cho các ứng dụng điều khiển nhúng nhỏ, do đó, việc để lại các chân cho I / O và không yêu cầu bus bộ nhớ ngoài là rất hữu ích. Một số vi điều khiển có ít nhất là 6 chân và có thể làm những việc hữu ích. Tương phản với bộ xử lý điện toán đa năng dành cho PC. Những thứ đó có 100 chân trong một mảng và đòi hỏi mạch ngoài rộng.

Đối với hệ thống trên chip, đó là một thuật ngữ ít được xác định rõ. Síp gọi một số bộ phận của họ là PSOC (Hệ thống lập trình trên Chip). Về cơ bản, đây là một bộ vi điều khiển với đồ họa nhỏ trên cùng một con chip. Thay vì được xây dựng trong các thiết bị ngoại vi, bạn có thể thực hiện bất cứ điều gì bạn muốn trong các tài nguyên có sẵn của FPGA.

Nói chung, tôi nghĩ rằng một hệ thống trên chip là một vi điều khiển với một số logic được cho là cấp độ hệ thống được tích hợp với nó. Tất nhiên, bạn càng cố gắng đi sâu vào hệ thống, càng ít khả năng bất kỳ một bộ phần cứng bổ sung nào sẽ hữu ích, vì vậy một số loại cấu hình là rất hữu ích. Tuy nhiên, hiện tại "hệ thống trên chip" là một thuật ngữ tiếp thị hơn bất kỳ thứ gì có thật.


20

System On a Chip (hay SoC) là cụm từ dễ hiểu mà những người tiếp thị sử dụng và không thực sự có ý nghĩa nhiều. Ngoài ra còn có nhiều biến thể như:

PSoC: Hệ thống lập trình trên chip, bởi chất bán dẫn Cypress.

SOPC: Hệ thống trên Chip lập trình được, bởi Altera

Về bản chất, SOC là một con chip duy nhất thực hiện mọi thứ được sử dụng để chiếm nhiều chip. Không có gì ở đó nói rằng nó phải bao gồm CPU hoặc RAM. Vì vậy, do thực tế là chúng ta có thể nhận được nhiều bóng bán dẫn hơn trên chip và chúng ta ngày càng có nhiều chức năng hơn trên chip của mình - mọi thứ có thể được gọi là SoC khi so sánh với những gì chúng ta đã làm 10 hoặc 20 năm trước !

Để làm cho vấn đề tồi tệ hơn: có rất nhiều ví dụ về những thứ được gọi là SoC vẫn cần nhiều chip để làm cho hữu ích. Thông thường, bạn sẽ có một số dạng CPU + Thiết bị ngoại vi vẫn yêu cầu Flash, RAM và công cụ nguồn bên ngoài. Vì vậy, ngay cả tên SoC là sai lệch.

MCU có lẽ là ví dụ ngắn gọn nhất về SoC nên là gì - nhưng đó là một ví dụ rất hạn chế.


@ David-kesner +1 cho SoC như một cụm từ tiếp thị.
Frank

12

Nói chung, một vi điều khiển được coi là một thiết bị nhúng được lập trình nội bộ để thực hiện một tác vụ cụ thể. Có tương tác người dùng tối thiểu và ít hoặc không linh hoạt. Một bộ vi điều khiển thường có công suất khá thấp chỉ với một lượng nhỏ bộ nhớ và ROM (flash).

Ngược lại, System-on-Chip là đầu kia của quang phổ. Nó hướng nhiều hơn đến sự linh hoạt hoàn toàn và tương tác người dùng. Nó thường bao gồm những thứ như trình điều khiển IO cho phần cứng lớn hơn (như ổ cứng, v.v.) và thậm chí đôi khi là bộ điều hợp đồ họa. System-on-Chip giống như một hệ thống máy tính hoàn chỉnh, vâng, trên chip.

Có khá nhiều sự giao thoa giữa hai bên - khi nào nó ngừng là một vi điều khiển và bắt đầu trở thành một Hệ thống trên Chip? Đó là nơi mà rất nhiều sự nhầm lẫn đến từ.

Về cơ bản, nếu nó có thể làm những gì máy tính có thể làm thì đó là System-on-Chip. Ví dụ, nếu thiết bị hướng vào, ngồi trong điện thoại bàn quản lý danh sách liên lạc của bạn hoặc trong hệ thống nhập bàn phím hoặc chạy động cơ trên máy CNC, thì đó là vi điều khiển.

ps, đừng trích dẫn tôi về điều này - như tôi nói có rất nhiều sự giao thoa giữa hai người.


5

Sự khác biệt về mặt nào đó liên quan đến tiếp thị nhiều hơn là kỹ thuật, nhưng tôi sẽ đề nghị rằng nói chung, phần "lập trình" của vi điều khiển được giới hạn trong một "dòng ý thức" duy nhất, tương đối hẹp. Về cơ bản, tại bất kỳ thời điểm nào, hoạt động tương đối nhỏ tiếp theo của vi điều khiển sẽ được xác định bằng cách lập trình, nhưng tất cả các logic khác trong hệ thống đều được tăng cường và sẽ hoạt động khi được xây dựng. Một số thứ như bộ hẹn giờ có thể cung cấp một số tùy chọn cấu hình (ví dụ: đếm ở tốc độ cố định so với đếm xung trên đầu vào) nhưng nói chung, hệ thống dây của hệ thống sẽ được cố định. Nếu muốn có một số thay đổi tín hiệu đầu ra để đáp ứng với một số tín hiệu đầu vào và không tồn tại phần cứng rõ ràng để làm điều đó, chương trình sẽ phải định kỳ xem tín hiệu đầu vào và, nếu nó đã thay đổi, hãy chuyển tín hiệu đầu ra. Nếu muốn thay đổi điện áp tương tự đầu ra để đáp ứng với điện áp tương tự đầu vào, bộ xử lý có thể lấy mẫu điện áp đầu vào, tính toán đáp ứng mong muốn và yêu cầu điện áp đầu ra mong muốn. Thực tế loại kích thích / đáp ứng mong muốn có thể được tạo ra bằng cách cho bộ xử lý nhìn vào đầu vào và tính toán đầu ra, nhưng nói chung thời gian đáp ứng sẽ là các đơn đặt hàng có cường độ chậm hơn so với có thể được sản xuất bằng phần cứng chuyên dụng.

Ý tưởng chung với chip hệ thống là cho phép cung cấp cho mạch đủ bộ ghép kênh và các phương tiện định tuyến khác để tín hiệu có thể được định tuyến qua các mạch để tạo ra nhiều kiểu phản ứng / kích thích hữu ích mà không cần sự can thiệp của bộ xử lý. Các mạch như vậy không thể tạo ra các mẫu kích thích / đáp ứng ở bất cứ nơi nào gần nhanh như những gì bộ xử lý có thể tạo ra, nhưng trong nhiều trường hợp chúng có thể là các đơn đặt hàng có cường độ nhanh hơn bất cứ thứ gì bộ xử lý có thể làm.


2

Theo tôi, SoC là thuật ngữ có rất nhiều định nghĩa, trên thực tế sẽ liên tục thay đổi theo thời gian. Mặt khác, Vi điều khiển sẽ được định nghĩa theo cùng một cách sau một thập kỷ như bây giờ. Khi bạn nói Vi điều khiển, nó đi kèm với một số điều cơ bản trên một chip đơn lẻ, như, bộ nhớ, cổng IO, Bộ đếm thời gian và Bộ đếm, v.v ... Nhưng khi bạn nói một SoC, nó không có bất kỳ tiêu chuẩn cụ thể nào về những gì loại mạch nên chứa. Ví dụ, ứng dụng chính mà họ đang cố gắng mang SoC vào là Điện thoại thông minh. Ở kịch bản hiện tại, điện thoại thông minh nên chứa một số thứ cơ bản trên máy bay như,

  1. NFC
  2. GPS
  3. Gia tốc kế và con quay hồi chuyển
  4. Wifi
  5. CPU và GPU

Trong tình huống hiện tại nếu tôi muốn sản xuất điện thoại thông minh, tôi sẽ chọn CPU và GPU và giao diện mọi thứ với nó. Nhưng SoC dựa trên khái niệm chip đơn sẽ có tất cả những điều trên và có khả năng phát triển (mặc dù theo cách rất cơ bản). Ngoài ra, tôi đã nói SoC có định nghĩa thay đổi liên tục vì các yêu cầu cơ bản cho điện thoại thông minh, máy tính hoặc bất kỳ thiết bị điện tử nào sẽ tăng lên từng ngày và định nghĩa về SoC sẽ thay đổi theo các yêu cầu đó.


0

Có SoC về cơ bản là một thuật ngữ tiếp thị được sử dụng thường xuyên hơn. Có thuật ngữ máy chủ và thiết bị. Hầu hết các nhà sản xuất PC lớn như Dell, HP, IBM, v.v ... Họ đã sử dụng CPU bên trong chúng thường do Intel, AMD, v.v. về cơ bản cung cấp CPU hoặc SoC trên Bo mạch chủ (được gọi là CPU), một số cũng cung cấp CPU + SoC (với mục đích cụ thể để giảm tải hoạt động của các thiết bị ngoại vi - như cảm biến, hoặc thiết bị GPS, nếu không sẽ rất đói điện chúng được kết nối trực tiếp với CPU) .SoC đôi khi cũng gọi Bộ đồng xử lý có công việc giống như những gì tôi đã viết trước đó. Giờ đây, các MotherBoards được kết nối với nhiều thiết bị ngoại vi khác nhau (được kết nối với CPU hoặc SoC cơ bản), các thiết bị ngoại vi này về cơ bản được kết nối trực tiếp với chúng (SOC hoặc CPU) thông qua bus tổng hợp - i2c, SPI, USB hoặc chúng thường được kết nối với MicroControllers . các nhà sản xuất bộ điều khiển) cũng như các nhà sản xuất PC khi họ đang có được các thiết bị tốt hơn (thiết bị ngoại vi + Vi điều khiển). Vì toàn bộ vấn đề là thuật ngữ vi điều khiển mà bạn sẽ thấy thường xuyên hơn ở phía thiết bị (cái đang được giao tiếp với SoC (Bây giờ bạn đã biết SOC là gì ?? Bạn không biết) và SoC ở phía Máy chủ (Phía PC ). Bạn có thể nói CPU là người cha ủy thác công việc của mình cho SoC để có khả năng cung cấp năng lượng tốt hơn cho các thiết bị (Micro + thiết bị ngoại vi) .Socs về cơ bản có nhiều bộ nhớ hơn để lưu trữ Bộ vi điều khiển mở rộng hệ điều hành có thể hỗ trợ RTOs nhiều nhất.


1
Ôi! Thực sự thích downvote khi mọi người làm điều đó mà không nêu nhiều ý kiến ​​cần thiết!
Raulp

3
Nó rất không rõ ràng. Tôi không thể tạo ra những thứ trong và ngoài dòng ý thức này.
ivan_pozdeev

0

Tóm tắt những điều trên, dường như với tôi:

MCU cung cấp rất nhiều bộ nhớ, giao diện như VGA và các khả năng như GPU bằng cách sử dụng một số chip khác nhau cung cấp những thứ khác nhau.

MCU phù hợp với mọi thứ trên một con chip bằng cách chỉ cung cấp bộ nhớ tối thiểu, giao diện, v.v.

Một SoC phù hợp với mọi thứ trên một chip bằng cách đẩy các giới hạn của những gì có thể được thực hiện trên một chip.

MCU cung cấp giá trị bằng cách giảm thiểu chi phí, SoC cung cấp giá trị bằng cách tối đa hóa chức năng, cả trên một chip. Nếu nó cạnh tranh với logic TLL, đó có thể là MCU. Nếu cạnh tranh với bộ vi xử lý (AMD, Intel), đó có thể là SoC.

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.