Home Linh kiện

Vi điều khiển

Tìm hiểu chung về vi điều khiển


Vi điều khiển
Bộ vi điều khiển là một máy vi tính đơn chip tích hợp phần chính của máy vi tính trên một chip. Vi điều khiển chủ yếu được sử dụng cho các thiết bị điều khiển tự động trong lĩnh vực điều hòa không khí ô tô và máy móc tự động. Vi điều khiển được sử dụng rộng rãi trong các hệ thống nhúng công nghiệp và dân dụng khác nhau do kích thước nhỏ, tiêu thụ điện năng thấp và dễ sử dụng.



Ⅰ. Vi điều khiển là gì?
Vi điều khiển là một máy tính được tích hợp trên một chip, nó thường được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các module vào/ra, các module biến đổi số sang tương tự và tương tự sang số,…
Một bộ vi xử lý là một máy tính. Tất cả các máy tính - dù là máy tính để bàn cá nhân hay máy tính lớn hay bộ vi điều khiển - đều có nhiều điểm chung:
Tất cả các máy tính đều có CPU (Bộ xử lý trung tâm) để thực thi các chương trình. Nếu bạn đang ngồi trước máy tính để bàn và đọc bài viết này, CPU của máy tính này hiện đang thực thi một chương trình, là trình duyệt web được sử dụng để hiển thị trang web này. CPU tải chương trình từ một thiết bị. Trên máy tính để bàn của bạn, chương trình trình duyệt được tải từ đĩa cứng. Máy tính có một số RAM (bộ nhớ truy cập ngẫu nhiên) được sử dụng để lưu trữ các "biến".
Ngoài ra, máy tính còn có một số thiết bị vào ra để nó có thể trao đổi thông tin với người dùng. Trên máy tính để bàn của bạn, bàn phím và chuột là thiết bị đầu vào, màn hình và máy in là thiết bị đầu ra. Đĩa cứng là một thiết bị vào-ra vì nó có thể nhập và xuất dữ liệu.
Vi điều khiển thường được sử dụng để xây dựng các hệ thống nhúng. Nó cũng được sử dụng trong các thiết bị điện, điện tử như máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện hay dây chuyền sản xuất tự động,…
Ví dụ, một bộ vi điều khiển trong tivi nhận tín hiệu đầu vào từ điều khiển từ xa và hiển thị chúng trên màn hình. Bộ vi điều khiển sẽ điều khiển việc điều chỉnh điện tử của bộ chọn kênh, loa và một số đèn hình.

Ⅱ. Các họ vi điều khiển
1. Họ vi điều khiển Atmel
Đây là một dòng đã quá quen thuộc khi các bạn học vi điều khiển trên ghế nhà trường, điển hình của nó là họ 8051. Ngoài ra còn có các dòng như sau:
• Dòng 8051 (8031, 8051, 8751, 8951, 8032, 8052, 8752, 8952)
• Dòng Atmel AT91 (Kiến trúc ARM THUMB)
• Dòng AT90, Tiny & Mega – AVR (Atmel Norway design)
• Dòng Atmel AT89 (Kiến trúc Intel 8051/MCS51)
• Dòng MARC4
2. Họ vi điều khiển STMicroelectronics
Đây là dòng chip chủ đạo trong các bài học của mình, đại diện chính là dòng STM32 huyền thoại
• ST 62
• ST7
• STM8
• STM32 (Cortex-Mx)
3. Họ vi điều khiển Microchip
Quá quen thuộc với các dòng PIC huyền thoại. VD:
• PIC 8-bit (xử lý dữ liệu 8-bit, 8-bit data bus)
- Từ lệnh dài 12-bit (Base-line): PIC10F, PIC12F và một vài PIC16F
- Từ lệnh dài 14-bit (Mid-Range và Enhance Mid-Range): PIC16Fxxx, PIC16F1xxx
- Từ lệnh dài 16-bit (High Performance): PIC18F
• PIC 16-bit (xử lý dữ liệu 16-bit)
- PIC điều khiển động cơ: dsPIC30F
- PIC có DSC: dsPIC33F
- Phổ thông: PIC24F, PIC24E, PIC24H
• PIC 32-bit (xử lý dữ liệu 32-bit): PIC32MX

4. Các dòng vi điều khiển khác
Ngoài ra còn có các dòng ít gặp của các hãng khác như:
• Họ vi điều khiển Cypress MicroSystems
• Họ vi điều khiển AMCC (Applied Micro Circuits Corporation)
• Họ vi điều khiển Freescale Semiconductor.
• Họ vi điều khiển Intel
• Họ vi điều khiển National Semiconductor
• Họ vi điều khiển Philips Semiconductors

ⅡI. Phân loại vi điều khiển
1. Phân loại theo độ dài thanh ghi
Dựa vào độ dài của các thanh ghi và các lệnh của VĐK mà người ta chia ra các loại vi điều khiển 8 bit, 16 bit hay 32 bit …

Các loại VĐK 16 bit do có độ dài lệnh lớn hơn nên các tập lệnh cũng nhiều hơn, phong phú hơn. Tuy nhiên bất cứ chương trình nào viết băng VĐK 16 bit chúng ta đều có thể viết trên vi điều khiển 8 bit với chương trình thích hợp.

2. Phân loại theo kiến trúc CISC và RISC
Vi điều khiển CISC là vi điều khiển có tập lệnh phức tạp. Các VĐK này có một số lượng lớn các lệnh nên giúp cho người lập trình có thể linh hoạt và dễ dàng hơn khi viết chương trình.

Vi điều khiển RISC là vi điều khiển có tập lệnh đơn gian. Chúng có một số lượng nhỏ các lệnh đơn giản. Do đó, chúng đòi hỏi phần cứng ít hơn, giá thành thấp hơn, và nhanh hơn so với CISC. Tuy nhiên nó đòi hỏi người lập trình phải viết các chương trình phức tạp hơn, nhiều lệnh hơn.
3. Kiến trúc Harvard và kiến trúc Von-Neumann
Kiến trúc Harvard sử dụng bộ nhớ riêng biệt cho chương trình và dữ liệu. Bus địa chỉ và bus dữ liệu độc lập với nhau nên quá trình truyền nhận dữ liệu đơn giản hơn. Kiến trúc Von-Neumann sử dụng chung bộ nhớ cho chương trình và dữ liệu. Điều này làm cho VĐK gọn nhẹ hơn, giá thành rẻ hơn.

IV. Sự khác nhau giữa vi điều khiển và vi xử lý
1. Điểm giống nhau
Vi điều khiển và vi xử lý đều xử lý thông tin điều khiển sự hoạt động của máy tính hoặc mạch điện.
Chúng có kịch thước và hình dáng khá giống nhau.

2. Điểm khác biệt
Nếu ví vi điều khiển như một con người thì vi xử lý chính là bộ não.
• Vi điều khiển có thể hoạt động độc lập, tương tác với thế giới bên ngoài bằng các ngoại vi như ADC, các chân IO, các chuẩn giao tiếp I2C, SPI,…. Còn vi xử lý chỉ có thể tiếp nhận thông tin, phân tích và điều khiển qua các bus dữ liệu.
• Vi điều khiển là sự tích hợp của vi xử lý và nhiều các thành phần khác nhau nữa như bộ nhớ, ngoại vi, bộ định thời,… Đối với vi xử lý, để hoạt động được chúng cần có các bộ nhớ ngoài như RAM, ổ cứng,…. các bộ định thời như RTC…
• Lập trình vi điều khiển thường được sử dụng để làm các thiết bị tự động, còn lập trình vi xử lý thường để làm các hệ điều hành dùng trong máy tính hoặc các sản phẩm tương tự máy tính. Tuy vậy vi xử lý cũng có thể sử dụng trong các thiết bị như máy tính nhúng, có thể kể đến như Ras PI, Jetson…
• Vi xử lý sẽ quan trọng phần hiệu năng làm việc, vi xử lý càng có hiệu năng tốt thì càng mạnh mẽ, còn vi điều khiển sẽ quan trọng phần tối ưu giữa công xuất và hiệu năng, bởi các ứng dụng nhúng đôi khi không cần tốc độ làm việc quá cao mà sẽ quan tâm tới việc tiết kiệm năng lượng và ổn định.

V. Cấu trúc tổng quan của Vi điều khiển
1. CPU hay Vi xử lý
CPU (Center Programing Unit) hay bộ xử lý trung tâm là bộ não của vi điều khiển. CPU chịu trách nhiệm nạp lệnh, giải mã và thực thi. Tất cả những hành vi của vi điều khiển đều là do CPU điều khiển.
Chúng giao tiếp với các phần khác trong vi điều khiển thông qua hệ thống Bus.
2. Ocscillator Circuit
Nếu CPU là bộ não thì Ocscillator Circuit hay còn gọi là Clock được coi là trái tim của vi điều khiển. Để mọi thứ có thể hoạt động, bắt buộc chúng ta phải cấp xung, trái tim hoạt động mới có thể bơm máu cho toàn bộ cơ thể hoạt động được.
Chúng ta thường nghe quảng cáo dòng vi xư lý có tốc độ bao nhiêu Ghz gì gì đó, chính là tốc độ Clock mà vi xử lý đó có thể đáp ứng được, tốc độ xung càng cao thì tốc độ xử lý của CPU cũng tăng lên. Đương nhiên mọi thứ đều có giới hạn của nó.
3. Memory – Bộ nhớ
Bộ nhớ có thể coi là một phần không thể thiếu, chúng là nơi lưu trữ chương trình nạp lên hoặc dùng làm nơi chứa các thông tin tức thời mà CPU cần dùng tới. Có 2 kiểu bộ nhớ cơ bản:
• RAM (Random access memory) là bộ nhớ lưu các dữ liệu mà CPU cần dùng để tính toán, đưa ra quyết định, chúng sẽ bị xóa khi mất điện
• ROM/EPROM/EEPROM hoặc Flash: là bộ nhớ lưu trữ chương trình hay trí khôn của vi điều khiển, chúng được ghi khi chúng ta nạp chương trình vào vi điều khiển, không bị mất khi tắt điện hoặc reset.
4. Timer/counter
Một vi điều khiển có thể có nhiều bộ đếm thời gian và bộ đếm. Bộ đếm thời gian và bộ đếm có chức năng đếm thời gian tạo ra các sự kiện để vi điều khiển hoạt động đúng thời điểm.

5. Các ngoại vi của vi điều khiển
6. I/O Ports – Input/ouput
Có thể coi I/O Port là tay chân của vi điều khiển, chúng giúp cho vi điều khiển tương tác với các thành phần khác ngoài môi trường.
Cổng đầu vào / đầu ra được sử dụng chủ yếu điều khiển hoặc giao tiếp các thiết bị như màn hình LCD, đèn LED, máy in, …cho vi điều khiển.

7. Các chuẩn giao tiếp
Giống như miệng và tai vậy. Vi điều khiển sẽ sử dụng các chuẩn giao tiếp khác nhau để liên lạc với nhau hoặc liên lạc với các phâng tử khác trên mạch. Có thể kể đến như I2C, SPI, UART, USB, ….

8. Bộ chuyển đổi analog sang digital (ADC)
Bộ chuyển đổi ADC được sử dụng để chuyển đổi tín hiệu analog sang dạng digital. Tín hiệu đầu vào trong bộ chuyển đổi này phải ở dạng analog (ví dụ: đầu ra cảm biến) và đầu ra từ thiết bị này ở dạng digital. Đầu ra digital có thể được sử dụng cho các ứng dụng kỹ thuật số (ví dụ: các thiết bị đo lường).

9. Bộ chuyển đổi Digital sang Analog (DAC)
Hoạt động của DAC là đảo ngược của ADC. DAC chuyển đổi tín hiệu digital thành định dạng analog. Nó thường được sử dụng để điều khiển các thiết bị analog như động cơ DC, các ổ đĩa…

10. Interrupt control hay quản lý sự kiện
Ngoài việc thực thi chương trình, vi điều khiển còn phải tương tác với các tác nhân bên trong và bên ngoài. Các tác nhân này sẽ tạo ra các sự kiện gọi là Ngắt, để quản lý nó cần có một khối quản lý ngắt ( Interrupt control)

11. Special functioning block
Một số vi điều khiển chỉ được sử dụng cho một số ứng dụng đặc biệt (ví dụ: hệ thống không gian và rô bốt) các bộ điều khiển này có chứa các cổng bổ sung để thực hiện các hoạt động đặc biệt đó. Đây được coi là khối chức năng đặc biệt.
VI. Ưu và nhược điểm của vi điều khiển
1. Ưu điểm của vi điều khiển
Những ưu điểm chính của vi điều khiển là:
Vi điều khiển hoạt động như một máy vi tính không có bất kỳ bộ phận kỹ thuật số nào.
Tích hợp cao hơn bên trong vi điều khiển làm giảm chi phí và kích thước của hệ thống.
Việc sử dụng vi điều khiển rất đơn giản, dễ khắc phục sự cố và bảo trì hệ thống.
Hầu hết các chân được lập trình bởi người dùng để thực hiện các chức năng khác nhau.
Dễ dàng kết nối thêm các cổng RAM, ROM, I/O.
Cần ít thời gian để thực hiện các hoạt động.

2. Nhược điểm của vi điều khiển
Vi điều khiển có kiến trúc phức tạp hơn so với vi xử lý.
Chỉ thực hiện đồng thời một số lệnh thực thi giới hạn.
Chủ yếu được sử dụng trong các thiết bị vi mô.
Không thể trực tiếp giao tiếp các thiết bị công suất cao.
VII. Ứng dụng của vi điều khiển
Vi điều khiển hiện hữu trên rất nhiều mặt của cuộc sống.
Bạn có thể tìm thấy vi điều khiển trong tất cả các loại thiết bị điện tử hiện nay. Bất kỳ thiết bị nào liên quan đến đo lường, lưu trữ, điều khiển, tính toán hoặc hiển thị thông tin đều phải có chip vi điều khiển bên trong.
Ứng dụng lớn nhất của vi điều khiển là trong ngành công nghiệp ô tô (vi điều khiển được sử dụng rộng rãi để kiểm soát động cơ và điều khiển công suất trong ô tô).
Bạn cũng có thể tìm thấy vi điều khiển bên trong bàn phím, chuột, modem, máy in và các thiết bị ngoại vi khác. Trong thiết bị thử nghiệm, vi điều khiển giúp bạn dễ dàng thêm các tính năng như khả năng lưu trữ số đo, tạo và lưu trữ các thói quen của người dùng và hiển thị thông báo cũng như dạng sóng.
Sản phẩm tiêu dùng sử dụng bộ vi điều khiển bao gồm máy quay kỹ thuật số, đầu phát quang, màn hình LCD / LED…
Hay đến với thời đại 4.0 các bạn sẽ thấy vi điều khiển trong các thiết bị IOT, giúp con người kết nối mọi máy móc từ xa thông qua Internet