Tổng quan về giáo trình

Bài giảng Vi xử lý là tài liệu học tập lưu hành nội bộ do Bộ môn Điện tử Công nghiệp thuộc Khoa Công nghệ Điện tử, Trường Đại học Công nghiệp Thành phố Hồ Chí Minh biên soạn (năm 2011). Giáo trình giữ vị trí môn học cơ sở ngành then chốt trong chương trình đào tạo kỹ sư và cử nhân các ngành Công nghệ Kỹ thuật Điện tử, Tự động hóa và Cơ điện tử.

Về chuẩn đầu ra và mục tiêu học tập, tài liệu trang bị cho sinh viên hệ thống lý thuyết về hệ thống số, cấu trúc phần cứng vi xử lý (MPU), nguyên lý vi điều khiển kiến trúc RISC thông qua hai chip đại diện là PIC 16F84 và PIC 16F877A của hãng Microchip Technology. Người học được trang bị khả năng phân tích tổ chức bộ nhớ Harvard, sơ đồ thanh ghi chức năng đặc biệt (SFR), kỹ thuật định địa chỉ, lập trình hợp ngữ với tập lệnh 35 lệnh 14-bit, cũng như phương pháp thiết kế ghép nối phần cứng vào/ra và các ngoại vi chuyên dụng.

Cấu trúc giáo trình được thiết kế theo lộ trình tiến cấp gồm 9 chương: từ các khái niệm tổng quan về hệ vi xử lý, cấu tạo phần cứng chi tiết của chip PIC, tập lệnh hợp ngữ, đến các khối ngoại vi như cổng xuất nhập, bộ định thời (Timer), truyền thông nối tiếp USART, cơ chế ngắt, bộ biến đổi ADC, bộ nhớ EEPROM, điều chế độ rộng xung PWM, chuẩn giao tiếp SPI/I2C và quy trình thiết kế hệ thống vi xử lý hoàn chỉnh.

Điểm đặc thù của tài liệu là phương pháp tiếp cận gắn liền giữa kiến trúc thanh ghi phần cứng và câu lệnh điều khiển trực tiếp. Mọi thông số kỹ thuật, bản đồ ô nhớ và sơ đồ ghép nối mạch ngoại vi (như mạch ổn áp 7805, mạch nút nhấn trở kéo, mạch lái LED và cách ly quang) đều được lượng hóa bằng sơ đồ mạch, địa chỉ cụ thể và ví dụ mã lệnh thực thi.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

Giáo trình gồm 9 chương với các nội dung trọng tâm như sau:

  • Chương 1: Giới thiệu chung về hệ vi xử lí - Giới thiệu chung về vi điều khiển PIC: Trình bày hệ đếm (nhị phân, thập phân, thập lục phân), bảng mã chuyển đổi; lịch sử phát triển vi xử lý qua 4 thế hệ (từ Intel 4004, 8085, 8086 đến Pentium IV, Motorola 68000, Zilog Z80); cấu trúc bus hệ thống (Address, Data, Control bus); phân loại máy tính từ siêu máy tính đến máy vi tính; so sánh vi xử lý (MPU) và vi điều khiển (MCU); tổng quan cấu trúc phần cứng cơ bản của vi điều khiển PIC.
  • Chương 2: Phần cứng của PIC 16F84 và PIC 16F877A: Khảo sát chi tiết sơ đồ chân, cấu tạo nội vi, tổ chức bộ nhớ chương trình Flash (1K word trên 16F84 và 8K word trên 16F877A), bộ nhớ dữ liệu RAM/EEPROM, ngăn xếp 8 mức (Stack), bộ đếm chương trình (PC/PCL/PCLATH), bản đồ phân trang bộ nhớ (Bank 0 đến Bank 3) và phân tích các bit trong các thanh ghi chức năng SFR (STATUS, PIE1, PIR1, PIE2, PIR2, PCON).
  • Chương 3: Tập lệnh của PIC 16F877A / PIC 16F84A: Phân loại và phân tích tập lệnh gồm 35 lệnh chuẩn (độ dài 14-bit), bao gồm nhóm lệnh tác động lên byte, nhóm lệnh tác động lên bit và nhóm lệnh điều khiển/hằng số; phân tích chức năng thanh ghi làm việc W; các phương pháp định địa chỉ (trực tiếp, gián tiếp qua INDF và FSR, tức thời, tương đối và tuyệt đối).
  • Chương 4: Vào ra - Hoạt động của bộ định thời - Lập trình vi điều khiển PIC 16F84 và PIC 16F877A: Kỹ thuật cấu hình các cổng PORTA, PORTB, PORTC, PORTD, PORTE thông qua thanh ghi hướng TRIS; nguyên lý hoạt động và chế độ đếm xung/định thời của Timer 0 (8-bit), Timer 1 (16-bit) và Timer 2 (8-bit với thanh ghi chu kỳ PR2).
  • Chương 5: Truyền thông nối tiếp USART: Cấu trúc và phương thức hoạt động của mô-đun truyền nhận nối tiếp đồng bộ và bất đồng bộ USART, nhận diện địa chỉ 9-bit, cấu hình chân phát (TX) và nhận (RX).
  • Chương 6: Ngắt (Interrupts): Khảo sát 14 nguồn ngắt nội vi và ngoại vi trên PIC 16F877A (ngắt ngoài RB0/INT, ngắt thay đổi trạng thái PORTB, ngắt Timer, ngắt ADC, ngắt USART, ngắt giao tiếp nối tiếp), cấu hình thanh ghi INTCON và vector ngắt tại địa chỉ 0004h.
  • Chương 7: Bộ chuyển đổi tương tự sang số (ADC): Cấu trúc khối ADC 10-bit tích hợp với 8 kênh vào tương tự (AN0 - AN7), điện áp tham chiếu Vref+, Vref- và cách thức cấu hình các thanh ghi ADCON0, ADCON1.
  • Chương 8: Bộ nhớ dữ liệu EEPROM, PWM, SPI/I2C: Nguyên lý đọc/ghi bộ nhớ không bay hơi EEPROM; hoạt động của khối CCP ở chế độ điều chế độ rộng xung (PWM); hoạt động của khối giao tiếp nối tiếp đồng bộ MSSP ở chế độ SPI (SDO, SDI, SCK) và I2C (SDA, SCL).
  • Chương 9: Thiết kế hệ vi xử lí và hệ phát triển vi điều khiển: Phương pháp luận tích hợp phần cứng và phần mềm, xây dựng bo mạch ứng dụng vi xử lý hoàn chỉnh.

Logic phát triển của giáo trình đi từ việc xây dựng khái niệm cơ bản về hệ thống số và kiến trúc CPU, chuyển sang khảo sát cấu trúc vật lý của chip, tiếp nối bằng công cụ lập trình tập lệnh, sau đó mở rộng sang từng ngoại vi chuyên biệt và tổng hợp bằng thiết kế hệ thống.

+-------------------------------------------------------------+
| CƠ SỞ: Hệ đếm, Lịch sử MPU, Kiến trúc MPU/MCU (Chương 1)    |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
| PHẦN CỨNG: Cấu trúc vi điều khiển PIC 16F84/877A (Chương 2) |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
| LẬP TRÌNH: 35 Lệnh Assembly, Định địa chỉ, SFR (Chương 3)   |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
| NGOẠI VI CƠ BẢN: Vào/Ra (I/O), Bộ định thời Timer (Chương 4)|
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
| NGOẠI VI NÂNG CAO: USART, Ngắt, ADC, PWM, SPI/I2C (Ch. 5-8) |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
| ỨNG DỤNG TỔNG HỢP: Thiết kế hệ thống phát triển (Chương 9)  |
+-------------------------------------------------------------+

Kiến thức nền tảng được xây dựng

  • Lý thuyết cơ bản (Fundamental theories): Lý thuyết biểu diễn thông tin dạng số (Binary, Decimal, Hexadecimal, mã BCD, ASCII); kiến trúc máy tính Von Neumann và kiến trúc Harvard; phân loại vi mạch số theo quy mô tích hợp (SSI, MSI, LSI, VLSI, ULSI); công nghệ chế tạo bán dẫn (NMOS, HMOS, CMOS, HCMOS, TTL, IIL).
  • Nguyên lý cốt lõi (Core principles): Nguyên lý thực thi lệnh tuần tự theo chu kỳ lấy lệnh (Instruction Fetch) - giải mã lệnh (Decode) - thực thi lệnh (Execute); cơ chế giao tiếp bus hệ thống qua bộ đệm 3 trạng thái; cơ chế quản lý bộ nhớ ngăn xếp LIFO (Last In First Out); nguyên lý hoạt động của khối số học logic (ALU) gắn liền với hệ thống cờ trạng thái.
  • Khung phân tích kiến trúc (Essential frameworks): Mô hình cấu trúc thanh ghi tệp (Register-File Architecture) với tính trực giao của tập lệnh; cấu trúc phân chia Bank bộ nhớ dữ liệu thông qua các bit điều khiển RP1:RP0 trong thanh ghi STATUS; khung đồng bộ hóa hệ thống với 4 chế độ dao động thạch anh/mạch RC (LP, XT, HS, RC, EXTRC, INTRC).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Đọc hiểu và phân tích sơ đồ chân vi mạch, giản đồ thời gian; tính toán chu kỳ máy ($T_{cy} = 4 \times T_{osc}$); phân tích cấu trúc mã máy 14-bit từ các câu lệnh hợp ngữ; thao tác trên các phần mềm công cụ như môi trường phát triển tích hợp MPLAB và trình biên dịch MPASM.
  • Kỹ năng phân tích (Analytical skills): Phân tích trạng thái hoạt động của ALU thông qua các cờ cary (C), digit carry (DC), zero (Z); tính toán thông số bảo vệ và tổn hao nhiệt trên mạch nguồn ổn áp tuyến tính 7805 dựa trên công thức công suất tiêu tán $P = (V_{in} - V_{out}) \times I$; phân tích địa chỉ phân trang bộ nhớ chương trình sử dụng thanh ghi PCLATH và PCL.
  • Kỹ năng thực hành (Practical competencies): Thiết kế sơ đồ nguyên lý mạch vi điều khiển gồm khối cấp nguồn 5V, mạch dao động thạch anh và mạch tạo xung Reset (/MCLR); ghép nối ngõ vào số với nút nhấn (dùng điện trở kéo lên ngoài hoặc điện trở kéo lên nội tại PORTB); ghép nối ngõ ra điều khiển LED đơn, LED 7 đoạn, rơle, còi báo (buzzer) và mạch cách ly quang.

Phương pháp giảng dạy và học tập

Tiếp cận sư phạm (Pedagogical approach)

Giáo trình áp dụng kết hợp giữa thuyết trình lý thuyết kiến trúc, nêu vấn đề kỹ thuật và đàm thoại tương tác với sinh viên. Thời lượng các bài giảng được phân chia chi tiết theo số tiết quy chuẩn (ví dụ: Bài giảng số 1 gồm 5 tiết, Bài giảng số 2 gồm 5 tiết, Bài giảng số 3 gồm 10 tiết). Mỗi bài giảng được chuẩn hóa cấu trúc sư phạm bao gồm: Kiểm tra bài cũ $\rightarrow$ Xác định mục tiêu bài giảng $\rightarrow$ Liệt kê phương tiện đồ dùng dạy học $\rightarrow$ Danh mục tài liệu tham khảo $\rightarrow$ Triển khai nội dung chi tiết $\rightarrow$ Tổng kết bài $\rightarrow$ Câu hỏi/bài tập về nhà $\rightarrow$ Mục rút kinh nghiệm sau giờ dạy.

Bài tập và ví dụ thực tế (Case studies & Practical exercises)

Tài liệu cung cấp các bài toán kỹ thuật gắn liền với thực tế:

  • Hệ thống điều khiển nhiệt độ phòng: Ứng dụng đo nhiệt độ qua bộ biến đổi tương tự sang số ADCON0, so sánh dữ liệu đo với ngưỡng lưu trong ô nhớ người dùng (user file) để quyết định bật/tắt thiết bị gia nhiệt thông qua thanh ghi cổng (PORT).
  • Mạch giải mã hiển thị LED 7 đoạn: Ứng dụng bảng tra dữ liệu (Look-up Table) bằng cách tác động trực tiếp lên bộ đếm chương trình thấp ADDWF PCL, f kết hợp lệnh nạp hằng số quay về RETLW.
  • Ghép nối vào/ra cơ bản: Lập trình cổng PORTB điều khiển mảng 4 LED thông qua điện trở hạn dòng $470,\Omega$ và đọc trạng thái nút nhấn với điện trở kéo lên nội.
                 SƠ ĐỒ KHỐI HỆ VI ĐIỀU KHIỂN CƠ BẢN
   +---------------------+     +--------------------+     +-------------------+
   |     NGÕ VÀO (IN)    |     |   VI ĐIỀU KHIỂN    |     |   NGÕ RA (OUT)    |
   | - Công tắc, nút nhấn| --> |   (PIC 16F84 /     | --> | - LED đơn, Buzzer |
   | - Bàn phím ma trận  |     |    PIC 16F877A)    |     | - LED 7 đoạn      |
   | - Cảm biến biến trở |     |  Thực thi 35 lệnh  |     | - Rơle, Quạt, Lò  |
   +---------------------+     +--------------------+     +-------------------+

Phương pháp đánh giá (Assessment methods)

Hệ thống đánh giá được xây dựng thông qua ngân hàng câu hỏi và bài tập cuối mỗi chương:

  • Đánh giá lý thuyết: Trình bày cấu trúc CPU 8-bit; phân biệt ROM và RAM (MROM, PROM, EPROM, EEPROM, SRAM, DRAM); so sánh vi xử lý MPU và vi điều khiển MCU; giải thích cơ chế bus 3 trạng thái.
  • Đánh giá kỹ năng tính toán: Tính số đường địa chỉ cho chip nhớ 2KB ($2^{11}$ byte); xác định dung lượng định vị bộ nhớ; tính toán công suất tiêu tán trên IC 7805 ($V_{in} = 24\text{V}$, $V_{out} = 5\text{V}$, $I = 0{,}5\text{A} \rightarrow P = 9{,}5\text{W}$).
  • Đánh giá kỹ năng phân tích lệnh: Phân tích mã máy 14-bit của lệnh MOVWF 06h, tính số chu kỳ máy và thời gian thực thi lệnh khi dùng thạch anh $4\text{MHz}$.

Hướng dẫn tự học (Self-study guidelines)

Giáo trình hướng dẫn quy trình 6 bước để tự xây dựng chương trình vi điều khiển:

  1. Khảo sát và xác định yêu cầu bài toán (ngõ vào, ngõ ra, thông số kỹ thuật).
  2. Thiết lập lưu đồ thuật toán (Flowchart) mô tả chu trình hoạt động.
  3. Soạn thảo mã nguồn bằng hợp ngữ (Assembly) sử dụng tập lệnh PIC.
  4. Nhập mã nguồn vào máy tính thông qua phần mềm MPLAB IDE.
  5. Biên dịch mã nguồn thành mã máy dạng đối tượng (.HEX/.OBJ) bằng trình biên dịch MPASM.
  6. Nạp mã máy vào vi điều khiển (sử dụng mạch nạp JDM cổng COM hoặc mạch nạp cổng USB) và kiểm thử đánh giá trên phần cứng.

Điểm nổi bật và cập nhật

Tiến trình công nghệ từ vi xử lý đến vi điều khiển Flash

Giáo trình phân tích sự chuyển dịch từ các bộ vi xử lý cổ điển sang các dòng vi điều khiển tích hợp cao:

  • Hệ thống hóa lịch sử: Phản ánh tiến trình phát triển từ vi xử lý 4-bit thế hệ 1 (Intel 4004 chế tạo theo công nghệ PMOS với tốc độ $10\text{--}60,\mu\text{s/lệnh}$), thế hệ 2 (Intel 8085, Zilog Z80 công nghệ NMOS), thế hệ 3 (Intel 8086, Motorola 68000 công nghệ HMOS), đến thế hệ 4 với các CPU 32-bit (Intel 80386, 80486, Pentium) ứng dụng kỹ thuật đường ống lệnh (pipeline), bộ nhớ cache và bộ nhớ ảo.
  • Tối ưu hóa kiến trúc RISC: Tập trung vào họ vi điều khiển PIC với kiến trúc tập lệnh rút gọn gồm 35 lệnh, thực thi hầu hết các lệnh trong 1 chu kỳ máy ($200\text{ns}$ ở tần số $20\text{MHz}$), giải quyết giới hạn của các hệ vi xử lý dùng tập lệnh phức tạp (CISC).
  • Công nghệ bộ nhớ Flash/EEPROM: Thay thế dòng linh kiện OTP (One Time Programmable) hoặc loại cửa sổ JW cần xóa bằng tia cực tím bằng chip nhớ Flash (PIC 16F84A, PIC 16F877A) cho phép nạp/xóa trực tiếp trên mạch điện (ISP - In-Circuit Programming) với độ bền 100.000 lần ghi xóa đối với bộ nhớ chương trình Flash và 1.000.000 lần đối với bộ nhớ dữ liệu EEPROM (thời gian lưu trữ dữ liệu 40 năm).

Khả năng tích hợp công nghiệp

Tài liệu tích hợp đầy đủ các khối chức năng tương thích với tiêu chuẩn công nghiệp:

  • Khối chuyển đổi ADC 10-bit trên chip với 8 kênh ngõ vào.
  • Hai bộ so sánh và khối bắt giữ/so sánh/điều chế xung (CCP/PWM).
  • Mô-đun truyền thông nối tiếp đồng bộ MSSP hỗ trợ chuẩn SPI và I2C (hỗ trợ chế độ chủ Master và tớ Slave).
  • Mô-đun truyền thông nối tiếp bất đồng bộ USART với khả năng xử lý khung truyền 9-bit.
  • Chế độ tiết kiệm năng lượng (Sleep mode) với dòng tiêu thụ tĩnh dưới $1,\mu\text{A}$ và bộ đếm thời gian giám sát hệ thống Watchdog Timer (WDT) sử dụng dao động RC nội.

Đối tượng sử dụng giáo trình

Phân loại người học và điều kiện tiên quyết

  • Đối tượng sinh viên: Tài liệu được biên soạn cho sinh viên bậc đại học và cao đẳng thuộc các chuyên ngành Kỹ thuật Điện tử, Công nghệ Kỹ thuật Điện tử - Truyền thông, Tự động hóa, Kỹ thuật Máy tính và Cơ điện tử.
  • Kiến thức tiên quyết (Prerequisites):
    • Kỹ thuật số: Nắm vững các hệ đếm (nhị phân, thập phân, hexa), đại số Boole, hàm logic, cấu tạo cổng logic, thanh ghi chốt, bộ đếm (counter), bộ dồn kênh (multiplexer).
    • Mạch điện tử cơ bản: Nguyên lý hoạt động của diode bán dẫn, transistor BJT/FET, nguyên lý hoạt động của mạch ổn áp DC và phân tích mạch điện xoay chiều/một chiều cơ bản.

Hướng dẫn dành cho giảng viên

Giảng viên bộ môn Điện tử Công nghiệp có thể sử dụng tài liệu làm khung đề cương chi tiết:

  • Sử dụng cấu trúc phân bổ số tiết định sẵn để lập kế hoạch giảng dạy lý thuyết và thực hành.
  • Sử dụng hệ thống câu hỏi kiểm tra bài cũ và bài tập cuối chương để thiết kế đề thi, bài kiểm tra đánh giá quá trình.
  • Sử dụng danh mục phương tiện dạy học (máy tính, máy chiếu, bảng, phần mềm MPLAB) để chuẩn bị bài giảng điện tử và bài thí nghiệm phòng lab.

Tài liệu tham khảo và tự học

Giáo trình tích hợp và dẫn xuất từ các nguồn học liệu quốc tế và trong nước:

  • Smith, PIC in practice: a project-based approach, Elsevier, 2nd edition, 2006.
  • Myke Predko, Programming and customizing the PIC microcontroller, 3rd edition, McGraw-Hill, 2008.
  • D.V. Hall, Microprocessors and interfacing: Programming and Hardware, 2nd ed., Macmillan/McGraw-Hill, 1992.
  • Hồ Trung Mỹ, Vi xử lý, NXB Đại học Quốc gia Tp. Hồ Chí Minh.
  • Trương Trác, Chip đơn 16C84 và ứng dụng của chúng.
  • Datasheet kỹ thuật chuẩn của chip PIC 16F84 và PIC 16F877A từ Microchip Technology.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Tài liệu phục vụ sinh viên khối ngành kỹ thuật điện - điện tử, kỹ thuật điều khiển - tự động hóa, kỹ thuật máy tính và các kỹ sư phần cứng cần nắm vững kiến trúc vi xử lý và nguyên lý lập trình ghép nối vi điều khiển 8-bit.

2. Cần kiến thức nền nào để học giáo trình này?

Người học cần hoàn thành các học phần Kỹ thuật số (hệ đếm, mạch logic cơ bản), Mạch điện tử (diode, transistor, IC tuyến tính) và có tư duy thuật toán cơ bản trong lập trình máy tính.

3. Điểm khác biệt của giáo trình so với các tài liệu vi xử lý khác?

Giáo trình phân tích cấu trúc thanh ghi phần cứng chi tiết của kiến trúc RISC PIC (bản đồ bộ nhớ, các thanh ghi STATUS, INTCON, PIR, PIE, PCON, ADCON) và tập trung vào lập trình hợp ngữ (Assembly) với tập lệnh 35 lệnh, giúp người học hiểu rõ nguyên lý vận hành mức phần cứng và chu kỳ máy thay vì chỉ lập trình qua các ngôn ngữ bậc cao.

4. Làm sao để tự học giáo trình hiệu quả?

Người học nên kết hợp đọc tài liệu với việc thực hành tuần tự: vẽ lưu đồ thuật toán cho bài toán điều khiển $\rightarrow$ viết mã nguồn hợp ngữ $\rightarrow$ sử dụng phần mềm MPLAB/MPASM để biên dịch kiểm tra lỗi $\rightarrow$ tính toán chu kỳ thực thi $\rightarrow$ kiểm tra mạch nguyên lý ghép nối phần cứng trên datasheet.

5. Có tài liệu và công cụ phần mềm nào bổ trợ kèm theo?

Tài liệu đi kèm các phần mềm phát triển gồm IDE MPLAB, trình biên dịch MPASM, bộ công cụ quản lý thư viện MPLIB/MPLINK; cùng các giáo trình tham khảo chuyên sâu của Smith (Elsevier, 2006), Myke Predko (McGraw-Hill, 2008) và datasheet chính thức từ Microchip Technology.


Kết luận

Bài giảng Vi xử lý của Bộ môn Điện tử Công nghiệp - Trường Đại học Công nghiệp Tp. Hồ Chí Minh cung cấp hệ thống tri thức hoàn chỉnh và chuẩn xác về cấu trúc phần cứng vi xử lý và họ vi điều khiển RISC PIC 8-bit (PIC 16F84 và PIC 16F877A).

Lộ trình học tập đề xuất cho người học gồm 4 giai đoạn:

  1. Giai đoạn 1: Nắm vững cơ sở hệ thống số, cấu trúc bus và nguyên lý CPU (Chương 1).
  2. Giai đoạn 2: Làm chủ cấu trúc phần cứng, phân trang bộ nhớ và các thanh ghi SFR (Chương 2).
  3. Giai đoạn 3: Thành thạo tập lệnh 35 lệnh hợp ngữ và kỹ thuật định địa chỉ (Chương 3).
  4. Giai đoạn 4: Lập trình cấu hình các ngoại vi vào/ra, bộ định thời Timer, truyền thông USART, ngắt, ADC, PWM, SPI/I2C và thiết kế hệ thống phát triển hoàn chỉnh (Chương 4 đến Chương 9).

Nguồn tài nguyên bổ trợ gồm các tài liệu chuyên khảo của D.V. Hall, Myke Predko, Smith, Hồ Trung Mỹ cùng hệ thống datasheet kỹ thuật của hãng Microchip Technology.