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

Chào! Hôm nay mình sẽ giúp các bạn tìm hiểu sự khác biệt giữa vi điều khiển (VĐK) và vi xử lí (VXL). Để từ đó ta sẽ có cái nhìn tổng quát về 2 loại vi mạch này. Không dài dòng nữa, zô luôn nha.

Bộ vi xử lí (microprocessor)

Bộ vi xử lý (microprocessor) là một máy tính nhỏ hoặc CPU (đơn vị xử lý trung tâm) được sử dụng để tính toán, thực hiện phép toán logic, kiểm soát hệ thống và lưu trữ dữ liệu vv. Vi xử lý sẽ xử lý các dữ liệu đầu vào / đầu ra (input/output) thiết bị ngoại vi và đưa ra kết quả trở lại để chúng hoạt động. Dòng vi xử lý 4 bit đầu tiên được Intel sản xuất vào tháng 11/1971 với tên gọi là 4004. [​IMG]

Các loại cấu trúc

[​IMG]

  1. Các vi xử lý đầu tiên sử dụng cấu trúc Von-Neumann. Trong cấu trúc Von Neumann bộ nhớ dữ liệu và bộ nhớ chương trình được đặt trong một bộ nhớ. Để xử lý một lệnh từ bộ nhớ hoặc yêu cầu từ I / O, nó nhận được lệnh thông qua bus từ bộ nhớ hoặc I / O, và đặt vào thanh ghi, xử lý nó trong các thanh ghi. Bộ xử lý có thể lưu kết quả trong bộ nhớ thông qua các bus. Nhưng kiến trúc này có một số nhược điểm như chậm và quá trình truyền dữ liệu không đồng thời xảy ra cùng một lúc bởi vì chia sẻ cùng một bus chung.
  2. Sau này cấu trúc Harvard (Atmega328, Atmega168,... Arduino đang dùng) được phát triển. Trong cấu trúc Harvard bộ nhớ dữ liệu và bộ nhớ chương trình và các bus được tách biệt với nhau. Ngoài ra còn có hai loại CPU micro programming và hardwired programming. Microprogramming còn chậm khi so sánh với hardwired programming.
  3. Kiến trúc tập lệnh Complex Instruction Set Computer: complex instruction set computer (CISC) là tập lệnh phức tạp nên sẽ tốn nhiều thời gian để thực hiện; tập lệnh phức tạp có thể bao gồm quá trình xử lý opcode và các toán hạng …vv tốc độ thực hiện lệnh sẽ chậm. Cấu trúc X86 là một ví dụ.
  4. Reduced Instruction Set Computer: Reduced Instruction Set Computer (RISC) là tập lệnh thu gọn và tốc độ thực hiện nhanh. Việc thực hiện rất đơn giản và không yêu cầu cấu trúc phức tạp. RISC được sử dụng rộng rãi trong các ứng dụng hệ thống nhúng. SHARC và PowerPC sử dụng RISC.

Bộ vi xử lý thường được dùng trong các ứng dụng nhỏ. Tùy theo các ứng dụng và thiết bị ngoại vi bạn đang sử dụng mà có thể chọn bộ vi xử lý cần thiết để thực hiện.

Vi điều khiển(microcontroller)

Nó cũng là một máy tính nhỏ, trong đó CPU, bộ nhớ (RAM, ROM), I / O thiết bị ngoại vi, timers, counters, được nhúng vào trong một mạch tích hợp (IC) nơi mà các bộ vi xử lý và tất cả các khối này được kết hợp vào trong một board thông qua hệ thống bus. Vi điều khiển có thể dễ dàng giao tiếp với thiết bị ngoại vi bên ngoài như cổng nối tiếp, ADC, DAC, Bluetooth, Wi-Fi, …vv quá trình giao tiếp nhanh hơn khi so sánh với các bộ vi xử lý. Hầu hết các vi điều khiển sử dụng cấu trúc RISC. Ngoài ra còn có một số vi điều khiển sử dụng cấu trúc CISC như 8051, motorolla, vv

[​IMG]

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

  • Cấu trúc: Hầu hết các bộ vi xử lý sử dụng cấu trúc CISC và Von-Neumann. Tuy nhiên, bộ vi xử lý phổ biến sử dụng cấu trúc CISC. Còn vi điều khiển sử dụng cấu trúc RISC và Harvard. Nhưng cũng có một số vi điều khiển sử dụng cấu trúc CISC như 8051 và SHARC. Bộ vi xử lý có ROM, RAM, bộ nhớ lưu trữ thứ cấp I / O thiết bị ngoại vi, timer bộ đếm(counters).. vv được xếp cùng trên một board và kết nối thông qua bus được gọi là vi điều khiển.
  • Tốc độ CPU: Bộ vi xử lý có tốc độ nhanh hơn so với các bộ điều khiển bởi clock. Bộ vi xử lý có thể có tốc độ xung nhịp (clock) cao. Bộ vi điều khiển có thể chậm khi so sánh với các bộ vi xử lý. Tốc độ thực thi luôn luôn phụ thuộc vào clock. Nếu chúng ta so sánh hiệu suất tổng thể và ứng dụng, vi điều khiển tốc độ thực hiện rất nhanh bởi vì tất cả các thiết bị ngoại vi sẵn có.
  • Thời gian thiết kế: Thiết kế một vi điều khiển sẽ mất ít thời gian hơn khi thiết kế bộ vi xử lý. Việc giao tiếp giữa các thiết bị ngoại vi và chương trình dễ dàng hơn khi so sánh với bộ vi xử lý. Vi điều khiển được thiết kế để thực hiện một chức năng cụ thể. Cụ thể có nghĩa là các ứng dụng mà quan hệ giữa đầu vào và đầu ra được xác định rõ ràng. Tùy thuộc vào đầu vào, một số xử lý cần phải được thực hiện và thiết lập từ đầu ra. Ví dụ, bàn phím, chuột, máy giặt, máy ảnh kỹ thuật, USB, điều khiển từ xa, lò vi sóng, xe hơi, xe đạp, điện thoại, điện thoại di động, đồng hồ ..vv Khi ứng dụng được cụ thể hóa, cần tài nguyên nhỏ như RAM, ROM, I / O port …vv do đó có thể được nhúng vào một chip duy nhất. Điều này sẽ làm giảm kích thước và chi phí.
  • Ứng dụng: bộ vi xử lý chủ yếu được sử dụng trong các hệ thống máy tính, hệ thống quốc phòng, mạng thông tin liên lạc …vv vi điều khiển được sử dụng chủ yếu trong các ứng dụng nhúng như đồng hồ, điện thoại di động, máy nghe nhạc mp3, vv
  • ​Giá thành: So sánh vi điều khiển và vi xử lý về chi phí là không hợp lý. Chắc chắn vi điều khiển rẻ hơn so với bộ vi xử lý. Tuy nhiên vi điều khiển không thể được sử dụng thay cho bộ vi xử lý và ngược lại vì vi điều khiển và vi xử lý có tầm quan trọng riêng trong việc phát triển các ứng dụng.​

Kết luận

Như vậy là chúng ta vừa tìm hiểu xong sự khác biệt giữa vi điều khiển và vi xử lí. Mình hi vọng rằng bài viết này sẽ mang lại nhiều kiến thức mới cho các bạn. Chúc các bạn lập trình, sáng tạo vui vẻ và có nhiều sáng chế, phát minh hay và thú vị. Xin cảm ơn

 
lên
37 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Giới thiệu thư viện RobotMove - Thư viện điều khiển Xe, Robot di chuyển sử dụng module L298

Xin chào mọi người! Mình cảm thấy rằng việc điều khiển cho robot hay xe sử dụng module L298 di chuyển hơi rắc rối, bởi phải điều khiển tới 4 chân, chi tiết hơn thì tới 6 chân (Thêm 2 chân enA và enB). Với lại mình cũng mới học viết thư viện nên mình đã nảy ra ý tưởng viết thư viện này. Mình bắt tay vào gõ và gõ và gõ và cuối cùng cũng thành công. Ohhhh Zeeeeee. Mừng quá nên share cho anh em xem. Đây là thư viện đầu tiên của mình và mình chỉ mới học cơ bản nên có gì sai sót mong các bác Pro đóng góp cho.

lên
22 thành viên đã đánh giá bài viết này hữu ích.

Lập trình Arduino không cần viết code - Phần 7: Cảm biến mưa

Đây là phần 7 của chuỗi bài viết "Lập trình Arduino không cần viết code"

- Xem lại phần 6 tại đây

Xin chào mọi người, hôm nay chúng ta sẽ làm quen với cảm biến và cụ thể hơn là ở bài này chính là cảm biến mưa. Vào luôn nha.

 

lên
15 thành viên đã đánh giá bài viết này hữu ích.