Vi điều khiển PIC và kiến trúc của nó kèm theo giải thích
Bài viết này cung cấp lời giải thích về vi điều khiển PIC và đi sâu vào chi tiết về kiến trúc bên trong của chúng.
PIC là vi điều khiển giao diện ngoại vi được phát triển vào năm 1993 bởi General Instruments. Vi điều khiển PIC được điều khiển bằng phần mềm và được lập trình để thực hiện nhiều tác vụ khác nhau và điều khiển dây chuyền sản xuất. Vi điều khiển PIC được sử dụng trong nhiều ứng dụng mới như điện thoại thông minh, thiết bị ngoại vi âm thanh và thiết bị y tế tiên tiến.

Có rất nhiều loại PIC trên thị trường, từ PIC16F84 đến PIC16C84. Những PIC này là PIC flash giá rẻ. Gần đây, Microchip đã giới thiệu nhiều loại chip flash, bao gồm 16F628, 16F877 và 18F452. Chip 16F877 có giá gấp đôi so với chip 16F84 cũ, nhưng dung lượng lớn hơn gấp tám lần. Nó có nhiều RAM hơn, nhiều chân I/O hơn, UART, bộ chuyển đổi A/D và nhiều tính năng khác.
Kiến trúc vi điều khiển PIC
Vi điều khiển PIC sử dụng kiến trúc RISC. Kiến trúc bộ nhớ tuân theo mô hình Harvard, bao gồm bộ nhớ chương trình và dữ liệu riêng biệt, với các bus riêng biệt.
1. Cấu trúc bộ nhớ
Kiến trúc PIC bao gồm hai đơn vị bộ nhớ: bộ nhớ chương trình và bộ nhớ dữ liệu.
Bộ nhớ chương trình: Đây là vùng nhớ 4K*14 dùng để lưu trữ các lệnh 13-bit hoặc mã chương trình. Dữ liệu bộ nhớ chương trình có thể được truy cập thông qua thanh ghi bộ đếm chương trình lưu trữ địa chỉ bộ nhớ chương trình. Địa chỉ 0000H được sử dụng làm vùng nhớ đặt lại, và địa chỉ 0004H được sử dụng làm vùng nhớ ngắt.
Bộ nhớ dữ liệu: Bộ nhớ dữ liệu bao gồm 368 byte RAM và 256 byte EEPROM. 368 byte RAM bao gồm nhiều bank, mỗi bank chứa một thanh ghi đa năng và một thanh ghi chức năng đặc biệt.
Các thanh ghi chức năng đặc biệt bao gồm các thanh ghi điều khiển để kiểm soát hoạt động của nhiều tài nguyên chip khác nhau như bộ hẹn giờ, bộ chuyển đổi tín hiệu tương tự sang tín hiệu số, cổng nối tiếp, cổng I/O, v.v. Ví dụ, thanh ghi TRISA có thể được dịch bit để thay đổi hoạt động đầu vào hoặc đầu ra của cổng A.
Thanh ghi đa năng bao gồm các thanh ghi được sử dụng để lưu trữ dữ liệu tạm thời và xử lý kết quả dữ liệu. Mỗi thanh ghi đa năng này có kích thước 8 bit.
Thanh ghi thao tác: Chứa vùng nhớ dùng để lưu trữ toán tử cho mỗi lệnh. Nó cũng lưu trữ kết quả của mỗi thao tác.
Thanh ghi trạng thái: Các bit của thanh ghi trạng thái chỉ ra trạng thái của ALU (đơn vị số học logic) sau mỗi lần thực thi lệnh. Thanh ghi này cũng được dùng để chọn một trong bốn bank RAM.
Thanh ghi chọn tệp: Hoạt động như một con trỏ đến các thanh ghi mục đích chung khác, chứa địa chỉ tệp của thanh ghi và được sử dụng để định địa chỉ gián tiếp.
Một thanh ghi đa năng khác là thanh ghi bộ đếm chương trình (Program Counter Register), một thanh ghi 13 bit. 5 bit trên cùng được sử dụng làm PCLATH (Program Counter Latch) để hoạt động độc lập như bất kỳ thanh ghi nào khác, và 8 bit dưới cùng được sử dụng làm bit bộ đếm chương trình. Bộ đếm chương trình hoạt động như một con trỏ đến lệnh được lưu trữ trong bộ nhớ chương trình.
EPROM: Gồm 256 byte không gian bộ nhớ. Đây là bộ nhớ không bay hơi giống như ROM nhưng dữ liệu của nó có thể bị xóa và thay đổi trong quá trình vi điều khiển hoạt động. Nội dung của EPROM có thể được đọc hoặc ghi bằng các thanh ghi chức năng đặc biệt như EECON1, EECON, v.v.
2. Cổng I/O
Dòng PIC16 bao gồm năm cổng: Cổng A, Cổng B, Cổng C, Cổng D và Cổng E.
- Cổng A: Đây là cổng 16 bit, có thể được sử dụng làm cổng vào hoặc ra tùy thuộc vào trạng thái của thanh ghi TRISA.
- Cổng B: Đây là cổng 8 bit có thể được sử dụng làm cổng vào và ra, trong đó 4 bit khi được sử dụng làm cổng vào có thể thay đổi khi có tín hiệu ngắt.
- Cổng C: Đây là cổng 8 bit có hoạt động (đầu vào hoặc đầu ra) được xác định bởi trạng thái của thanh ghi TRISC.
- Cổng D: Đây là cổng 8 bit, ngoài chức năng là cổng I/O, còn có chức năng là cổng phụ để kết nối với bus vi xử lý.
- Cổng E: Đây là cổng 3 bit đóng vai trò là tín hiệu điều khiển bổ sung cho bộ chuyển đổi A/D.
3. Bộ đếm thời gian
Vi điều khiển PIC bao gồm ba bộ hẹn giờ, trong đó Timer 0 và Timer 2 là bộ hẹn giờ 8 bit và Time-1 là bộ hẹn giờ 16 bit cũng có thể được sử dụng làm bộ đếm.
4. Bộ chuyển đổi A/D
Vi điều khiển PIC bao gồm bộ chuyển đổi tương tự sang số 8 kênh, 10 bit. Hoạt động của bộ chuyển đổi A/D được điều khiển bởi các thanh ghi chức năng đặc biệt này, ADCON0 và ADCON1. Bit thấp hơn của bộ chuyển đổi được lưu trữ trong thanh ghi ADRESL (8 bit) và bit cao hơn được lưu trữ trong thanh ghi ADRESH. Cần có điện áp tham chiếu tương tự 5V để hoạt động.
5. Bộ dao động
Bộ dao động được sử dụng để định thời. Vi điều khiển PIC bao gồm các bộ dao động ngoài như tinh thể hoặc bộ dao động RC. Trong trường hợp bộ dao động tinh thể, tinh thể được kết nối giữa hai chân dao động, và giá trị của tụ điện được kết nối với mỗi chân sẽ quyết định chế độ hoạt động của bộ dao động. Các chế độ bao gồm chế độ công suất thấp, chế độ tinh thể và chế độ tốc độ cao. Trong trường hợp bộ dao động RC, giá trị của điện trở và tụ điện quyết định tần số xung nhịp. Tần số xung nhịp nằm trong khoảng từ 30 kHz đến 4 MHz.
6. Mô-đun CCP:
Mô-đun CCP hoạt động theo ba chế độ sau:
Chế độ chụp: Chế độ này chụp thời gian tín hiệu đến, nói cách khác, nó chụp giá trị của Timer1 khi chân CCP ở mức cao.
Chế độ so sánh: Hoạt động như một bộ so sánh tương tự tạo ra đầu ra khi giá trị bộ hẹn giờ 1 đạt đến giá trị tham chiếu được chỉ định.
Chế độ PWM: Cung cấp đầu ra điều chế độ rộng xung với độ phân giải 10 bit và chu kỳ nhiệm vụ có thể lập trình.