Giáo Trình Kỹ Thuật Vi Xử Lý – Tác Giả Trương Tấn Hải (Đại Học Giao Thông Vận Tải)

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

Giáo trình "Kỹ thuật vi xử lý" do tác giả Trương Tấn Hải biên soạn, được xuất bản và lưu hành nội bộ tại Trường Đại học Giao thông Vận tải - Hà Nội (1997). Đây là tài liệu học thuật phục vụ trực tiếp cho học phần Kỹ thuật Vi xử lý thuộc chương trình đào tạo kỹ sư các ngành Kỹ thuật Điện tử, Tự động hóa, Kỹ thuật Máy tính và Công nghệ Thông tin. Tài liệu đóng vai trò nền tảng trong khối kiến thức cơ sở ngành, kết nối giữa môn học Kỹ thuật số và các môn học ứng dụng chuyên sâu như Thiết kế hệ thống nhúng, Giao tiếp máy tính và Đo lường điều khiển bằng máy tính.

Mục tiêu học tập của giáo trình nhằm trang bị cho sinh viên:

  • Kiến thức toàn diện về cấu trúc phần cứng và tập lệnh của bộ vi xử lý chuẩn 8-bit (trọng tâm là vi xử lý Intel 8085A).
  • Khả năng phân tích và thiết kế các mạch ghép nối vào/ra dữ liệu theo phương pháp cách ly (vào/ra tách biệt) và phương pháp bản đồ bộ nhớ (vào/ra theo địa chỉ bộ nhớ).
  • Kỹ năng xây dựng chương trình điều khiển ngoại vi bằng hợp ngữ (Assembly), làm chủ các phương thức trao đổi dữ liệu: không điều kiện, có điều kiện (bắt tay - handshaking), hỏi vòng (polling), hệ thống ngắt định hướng/ngắt ưu tiên (vectored/priority interrupts) và truy cập bộ nhớ trực tiếp (DMA).
  • Phương pháp phối ghép các vi mạch hỗ trợ ngoại vi cỡ vừa và lớn (MSI/LSI), cấu hình các bộ đệm FIFO, quản trị truyền thông nối tiếp dị bộ/đồng bộ, và thiết kế bộ đếm thời gian thực.

Cách tiếp cận của giáo trình đi thẳng từ nguyên lý cấu trúc phần cứng, phân tích chi tiết các giản đồ thời gian (timing diagrams) của các chu kỳ máy, từ đó giải thích các dòng lệnh hợp ngữ tương ứng và hiện thực hóa thành các sơ đồ mạch logic cụ thể. Điểm đặc sắc của tài liệu là tính thực tế cao trong thiết kế phần cứng: mọi phân tích đều gắn liền với thông số thời gian trễ, mức tích cực của tín hiệu điều khiển và các giải pháp phòng tránh hiện tượng xung đột bus (bus contention).


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

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

Tài liệu được kết cấu chặt chẽ theo tiến trình phát triển kiến thức từ cấu trúc cơ bản đến các giải pháp giao tiếp ngoại vi phức tạp. Trong đó, phần trích đoạn trọng tâm thể hiện cấu trúc của các chương cốt lõi:

  1. Chương VI: Vào/Ra Điều Khiển Bằng Chương Trình

    • Khái niệm và phân loại các phương thức vào/ra: Định nghĩa quá trình trao đổi số liệu giữa bộ vi xử lý với mạch ngoài và bộ nhớ. Phân loại 3 nhóm điều khiển chính: (1) Vào/ra điều khiển bằng chương trình; (2) Vào/ra điều khiển bằng ngắt; (3) Vào/ra điều khiển bằng phần cứng/truy cập trực tiếp bộ nhớ (DMA - Direct Memory Access).
    • Cơ chế phân biệt không gian địa chỉ: Phân tích tín hiệu $IO/\overline{M}$, các tín hiệu điều khiển đọc $\overline{RD}$ ($IOR = 0$, $MEMR = 0$) và ghi $\overline{WR}$ ($IOW = 0$, $MEMW = 0$). So sánh hai mô hình: Vào/ra tách biệt (Isolated I/O) sử dụng lệnh IN, OUT với chu kỳ 3 bước (Opcode Fetch, Memory Read địa chỉ 8-bit vào thanh ghi $W-Z$, và chu kỳ Input/Output); và Vào/ra theo địa chỉ bộ nhớ (Memory-mapped I/O) sử dụng các lệnh truy cập ô nhớ (MOV r, M, LDA, STA, LHLD, SHLD, ADD M, ANA M, MVI M, data).
    • Kỹ thuật giải mã địa chỉ cổng: Phương pháp giải mã tuyến tính (Linear Decoding) cho các hệ thống nhỏ (tối đa 8 cổng vào/ra, mỗi bit địa chỉ chọn một cổng, đánh đổi giữa tính đơn giản và nguy cơ chập bus khi lỗi phần mềm). Phương pháp giải mã đầy đủ sử dụng các vi mạch giải mã MSI chuyên dụng như 74LS139 (giải mã kép 2-sang-4), 8205/74LS138 (giải mã 3-sang-8), 74LS154 (giải mã 4-sang-16 mở rộng tới 256 cổng), và kỹ thuật sử dụng thanh ghi địa chỉ mở rộng để địa chỉ hóa tới 65.281 cổng.
    • Các vi mạch giao tiếp vào/ra MSI/LSI: Phân tích mạch chốt dữ liệu ra 74LS373 (chốt mức), 74LS374 (chốt sườn dương), 9334 (chốt 8-bit định địa chỉ riêng biệt); mạch đệm 3 trạng thái có cổng Schmitt trigger chống nhiễu 74LS240 (đệm đảo) và 74LS244 (đệm không đảo); mạch dồn kênh 16-sang-1 (8219); cổng vào/ra đa năng 8-bit Intel 8212.
    • Giao tiếp song song lập trình được: Khảo sát chi tiết vi mạch Intel 8155 (tích hợp $256 \times 8$ RAM, 3 cổng vào/ra A, B, C và bộ định thời 14-bit) và vi mạch phối ghép ngoại vi lập trình được PPI 8255A (gồm 3 cổng A, B, C hoạt động ở 3 chế độ: Mode 0 - Vào/ra cơ bản; Mode 1 - Vào/ra có chốt/bắt tay; Mode 2 - Bus 2 chiều trên cổng A; cùng tính năng BSR - Bit Set/Reset cho cổng C).
    • Truyền thông nối tiếp: Phân loại truyền dẫn đơn công (Simplex), bán song công (Half-duplex), song công toàn phần (Full-duplex). Cấu trúc khung dữ liệu không đồng bộ (Start bit, 5-8 bit dữ liệu ASCII, Parity chẵn/lẻ, 1-2 Stop bit). Nguyên lý và sơ đồ cấu trúc của bộ thu phát không đồng bộ vạn năng UART (hoạt động với xung đồng hồ $16\times$ nhịp baud). Truyền thông đồng bộ qua ký tự SYN. Sử dụng các chân vào/ra nối tiếp trực tiếp SID và SOD của 8085A qua các lệnh RIM và SIM. Các chuẩn vật lý: RS-232C, RS-422 (vi sai đối xứng, cự ly 1200m, 10 Mbaud), RS-423 (không đối xứng, 1200m, 100 Kbaud), IEEE 488 (GPIB bus song song 8-bit cho thiết bị đo).
  2. Chương VII: Cấu Trúc Ngắt và Các Thiết Bị Phụ Trợ

    • Cơ chế hoạt động của hệ thống ngắt: Quy trình tiếp nhận ngắt đồng bộ theo xung nhịp của 8085A. Định nghĩa và công thức tính thời gian ẩn cực đại (Maximum Latency Time): $$t_{\text{LATMAX}} = t_{\text{INS}} + t_{\text{MAX chu kỳ lệnh}} = \frac{1}{2}T + 200\text{ns} + 18T = 18.5T + 200\text{ns}$$
    • Các chân ngắt phần cứng 8085A và bảng vector ngắt: Phân cấp ưu tiên từ cao xuống thấp: TRAP (ngắt không che được, địa chỉ $24\text{H}$), RST 7.5 ($3\text{CH}$), RST 6.5 ($34\text{H}$), RST 5.5 ($2\text{CH}$), và INTR (ngắt che được thông qua chu kỳ ghi nhận ngắt $\overline{\text{INTA}}$ để đọc mã lệnh RST n với địa chỉ $8 \times n$, từ $00\text{H}$ đến $38\text{H}$).
    • Xử lý ngắt ưu tiên đa cấp: Sử dụng vi mạch mã hóa ưu tiên 74148 (8-sang-3 đường) và vi mạch điều khiển ngắt ưu tiên chuyên dụng PICU 8214, bộ điều khiển ngắt lập trình được 8259 (cung cấp lệnh CALL 3-byte). Kỹ thuật bảo vệ ngữ cảnh vi xử lý bằng PUSH/POP các cặp thanh ghi và PSW, quản trị cấm/cho phép ngắt bằng DI/EI và thiết lập mặt nạ bằng SIM/RIM.
    • Bộ nhớ đệm FIFO (First-In First-Out): Cấu trúc và hoạt động của vi mạch FIFO Am 2812 ($32 \times 8$). Khả năng đọc/ghi độc lập điều hòa tốc độ giữa CPU và ngoại vi. Kỹ thuật ghép tầng $n$ vi mạch Am 2812 đạt dung lượng thực tế $31n + 1$ (ví dụ hệ 3 tầng đạt $94 \times 8$). Ứng dụng phát hiện ký tự kết thúc dòng CR ($0\text{D}\text{H}$) đệm dữ liệu từ UART.
    • Đồng hồ thời gian thực và Bộ định thời (Timer): So sánh đồng hồ thời gian thực phần mềm (sử dụng ngắt 1Hz từ điện lưới hoặc thạch anh cập nhật 3 ô nhớ Giây, Phút, Giờ có hiệu chỉnh thập phân DAA) và đồng hồ phần cứng. Khảo sát chi tiết bộ định thời 14-bit của 8155: cấu trúc thanh ghi điều khiển/trạng thái ($C/S$), các bit chế độ $M_2, M_1$ (chế độ chia xung, sóng vuông tự nạp lại, xung kết thúc đếm TC) và ứng dụng đo chu kỳ xung ngoài.

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

Giáo trình cung cấp các nguyên lý kỹ thuật điện tử - số mang tính quy chuẩn:

  • Nguyên lý phân chia và phân giải địa chỉ: Phân tích sự tổ hợp mức logic giữa các đường bus địa chỉ cao ($A_8 - A_{15}$), bus dồn kênh địa chỉ/số liệu ($AD_0 - AD_7$), và các đường điều khiển hệ thống ($IO/\overline{M}$, $\overline{RD}$, $\overline{WR}$, $ALE$) thông qua cổng logic cơ bản hoặc vi mạch giải mã.
  • Nguyên lý phối ghép điện áp và chống phản xạ đường truyền: Phân tích ảnh hưởng của điện dung ký sinh $C$, điện cảm $L$, độ lệch điện áp đất giữa các trạm thu/phát; nguyên lý khuếch đại vi sai triệt tiêu tín hiệu đồng pha (Common Mode Signal); và kỹ thuật phối hợp trở kháng đặc trưng đường dây $R_0$ ($50\Omega - 200\Omega$) để ngăn ngừa phản xạ tín hiệu khi truyền nối tiếp tốc độ cao.
  • Lý thuyết quản trị tài nguyên CPU: Mô hình hóa sự tiêu hao thời gian của CPU giữa phương pháp hỏi vòng liên tục (chi phí I/O Overhead lớn) so với phương pháp đáp ứng ngắt sự kiện (Event-driven Interrupts) và phương pháp đệm trung gian bằng phần cứng (FIFO, DMA).

Kỹ năng phát triển

Qua nội dung giáo trình, người học được rèn luyện các kỹ năng kỹ thuật cụ thể:

  • Kỹ năng thiết kế phần cứng: Thiết kế mạch giao tiếp giữa vi xử lý với bộ nhớ và thiết bị ngoại vi; lựa chọn và ghép nối các IC đệm 3 trạng thái, IC chốt, IC giải mã và các vi mạch ngoại vi lập trình được chuẩn Intel (8155, 8255A, 8259, 8212).
  • Kỹ năng lập trình hợp ngữ cấp thấp: Viết các chương trình con phục vụ ngắt (ISR), chương trình quét và thăm dò trạng thái cổng (Polling loop), thuật toán phát hiện lỗi khung truyền (Parity, Framing, Overrun), chương trình nạp từ điều khiển chế độ và xử lý số học BCD.
  • Kỹ năng phân tích thời gian thực: Đọc và tính toán chu kỳ xung nhịp từ giản đồ thời gian; xác định thời gian thiết lập ($t_{\text{SETUP}}$), thời gian giữ ($t_{\text{HOLD}}$), chu kỳ đợi ($T_{\text{WAIT}}$), và tính toán chính xác chu kỳ trễ định thời cho các ứng dụng đo lường.

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

Cách tiếp cận sư phạm

Giáo trình áp dụng phương pháp tiếp cận "từ dưới lên" (Bottom-Up Approach) kết hợp "phần cứng gắn liền phần mềm":

  1. Trình bày cấu trúc mạch logic bên trong của từng vi mạch và các chân tín hiệu.
  2. Phân tích trạng thái hoạt động thông qua giản đồ xung nhịp chi tiết (mức tích cực cao/thấp, thời điểm chốt dữ liệu, sườn lên/sườn xuống).
  3. Đưa ra cấu trúc từ điều khiển (Control Word) và từ trạng thái (Status Word) cho từng chế độ.
  4. Cung cấp các đoạn mã nguồn Assembly mẫu hoàn chỉnh để minh họa cách khởi tạo và vận hành phần cứng tương ứng.

Bài tập và các ca thiết kế mẫu (Case Studies)

Tài liệu tích hợp các bài toán thiết kế hệ thống điển hình:

  • Thiết kế mạch điều khiển tải công suất: Ứng dụng lệnh OUT kết hợp mạch lật flip-flop, cổng đảo hở cực góp (Open Collector) và rơ-le bán dẫn (Solid State Relay) để đóng/cắt nguồn điện xoay chiều 120VAC cấp cho mô tơ mà không gây xung đột bus số liệu.
  • Hệ thống thu thập dữ liệu hỏi vòng 8 kênh: Thiết kế mạch gộp 8 cờ trạng thái của 8 thiết bị vào thành 1 byte trạng thái qua cổng vào $00\text{H}$, kết hợp chương trình con sử dụng lệnh quay thanh ghi qua cờ nhớ RAL và gọi có điều kiện CC SRVx để thiết lập mức ưu tiên từ cổng 7 xuống cổng 0.
  • Phối ghép đồng bộ ngoại vi bằng 8155 và 8255A: Bài toán cấu hình cổng A làm cổng vào, cổng B làm cổng ra và cổng C đóng vai trò tạo các tín hiệu bắt tay ($STB$, $IBF$, $OBF$, $ACK$) cùng giải pháp khắc phục hiện tượng đọc lặp dữ liệu do xung chốt quá dài bằng cách kiểm tra cờ $INTR$.
  • Đo tần số và chu kỳ tín hiệu: Ứng dụng mạch định thời 8155 kết hợp mạch lật chia đôi tần số để chuyển đổi dạng sóng cần đo thành sóng vuông, đếm số xung chuẩn phát ra từ bộ dao động đồng hồ CPU.

Hướng dẫn tự học và đánh giá

  • Tự học: Sinh viên cần kết hợp vẽ lại sơ đồ kết nối chân giữa 8085A với các IC phụ trợ, phân tích bảng chân lý của các mạch giải mã (như 74148, 74LS139), và dịch từng dòng lệnh hợp ngữ sang mã máy nhị phân/hexadecimal để nắm rõ hoạt động của bus.
  • Phương pháp đánh giá: Đánh giá thông qua khả năng thiết kế sơ đồ nguyên lý ghép nối mạch theo yêu cầu địa chỉ cổng cho trước; viết đúng các chuỗi lệnh khởi tạo từ điều khiển cho các IC LSI; và tính toán chính xác dung lượng bộ nhớ, không gian cổng I/O cũng như thời gian đáp ứng ngắt của hệ thống.

Điểm nổi bật và thông số kỹ thuật thực tế

Giáo trình thể hiện tính chuẩn xác của tài liệu kỹ thuật chuyên ngành thông qua việc cung cấp đầy đủ các thông số vật lý và chuẩn công nghiệp:

Vi mạch / Tiêu chuẩn Phân loại / Cấu trúc Đặc tính kỹ thuật cốt lõi trong tài liệu
Intel 8085A CPU 8-bit Bus dồn kênh $AD_0-AD_7$, tín hiệu $IO/\overline{M}$, ngắt 5 mức (TRAP, RST 7.5, 6.5, 5.5, INTR), chân nối tiếp SID/SOD.
Intel 8155 RAM & I/O Timer $256 \times 8$ RAM, 3 cổng I/O (A, B 8-bit; C 6-bit), bộ định thời 14-bit (4 chế độ $M_2M_1$).
Intel 8255A (PPI) Giao tiếp song song 24 chân I/O chia 3 cổng (A, B, C); 3 chế độ hoạt động (Mode 0, 1, 2); hỗ trợ lập/xoá bit độc lập trên cổng C.
Intel 8212 Cổng I/O đa năng 8-bit Tích hợp chốt 8-bit, đệm 3 trạng thái, logic chọn mạch ($DS_1, DS_2$) và chế độ $MD$ linh hoạt làm cổng vào hoặc ra.
Am 2812 Bộ đệm FIFO $32 \times 8$ Tự dịch chuyển dữ liệu nội tại, cờ $FLAG$ báo nửa dung lượng ($16+1$), ghép tầng $n$ mạch đạt dung lượng $31n+1$.
RS-232C Chuẩn truyền dẫn nối tiếp Mức logic 1: $-3\text{V} \div -25\text{V}$, mức logic 0: $+3\text{V} \div +25\text{V}$; cự ly tối đa 15m; tốc độ cực đại 20 Kbaud.
RS-422 / RS-423 Chuẩn nối tiếp công nghiệp RS-422 vi sai đối xứng (cự ly 1200m, 10 Mbaud); RS-423 không đối xứng (cự ly 1200m, 100 Kbaud).
IEEE 488 (GPIB) Chuẩn ghép nối thiết bị đo Bus số liệu song song 8-bit kết hợp đường điều khiển bắt tay; nối tối đa 15 thiết bị; cự ly 20m; tốc độ 250 KB/s.

Các phân tích kỹ thuật trong tài liệu đều chỉ rõ giải pháp xử lý sự cố phần cứng thực tế như:

  • Hiện tượng xung đột bus khi giải mã tuyến tính gặp lỗi chương trình (ví dụ: gán nhầm lệnh IN 12 kích hoạt đồng thời cả cổng 4 và cổng 8 do trùng bit địa chỉ).
  • Kỹ thuật dùng điện trở cuối đường dây triệt tiêu sóng phản xạ khi chu kỳ bit ngắn hơn thời gian truyền dẫn.
  • Xử lý lệch thế đất giữa trạm phát và trạm thu bằng mạch thu vi sai.

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

  1. Sinh viên đại học (Năm 2, Năm 3):

    • Chuyên ngành: Kỹ thuật Điều khiển và Tự động hóa, Kỹ thuật Điện tử - Viễn thông, Công nghệ Thông tin, Kỹ thuật Máy tính, Điện tử Giao thông.
    • Yêu cầu kiến thức tiên quyết (Prerequisites): Đã hoàn thành học phần Kỹ thuật số (nắm vững đại số logic, cổng logic, mạch tuần tự Flip-Flop, bộ đếm, bộ giải mã) và Nguyên lý Kiến trúc Máy tính cơ bản.
  2. Học viên cao học và nghiên cứu sinh:

    • Sử dụng làm tài liệu tham chiếu cấu trúc phần cứng kinh điển, phương pháp giải mã bus, cơ chế trọng tài ngắt và các giải pháp ghép nối bộ đệm phục vụ nghiên cứu thiết kế hệ thống chuyên dụng.
  3. Giảng viên và cán bộ giảng dạy:

    • Dùng làm khung giáo trình chuẩn để biên soạn đề cương bài giảng, xây dựng ngân hàng câu hỏi thi kết thúc học phần và thiết kế các bài thí nghiệm ghép nối vi xử lý trên các kit thực hành 8085.
  4. Kỹ sư thiết kế phần cứng và hệ thống nhúng:

    • Sử dụng để tra cứu thông số thời gian, cấu trúc lệnh hợp ngữ, nguyên lý phối hợp trở kháng đường truyền và giải pháp ghép nối các chuẩn ngoại vi công nghiệp.

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

1. Giáo trình này phù hợp với đối tượng người học nào?

Tài liệu được biên soạn phục vụ trực tiếp cho sinh viên đại học ngành Kỹ thuật Điện, Điện tử, Tự động hóa, Tin học kỹ thuật và các kỹ sư cần nắm vững nguyên lý hoạt động phần cứng cùng kỹ thuật ghép nối ngoại vi ở mức tín hiệu và thanh ghi.

2. Người học cần chuẩn bị kiến thức nền tảng nào trước khi tiếp cận tài liệu?

Người học cần nắm vững kiến thức về Kỹ thuật số (hệ đếm nhị phân/hexadecimal, bảng chân lý, các cổng logic cơ bản, mạch chốt D, Flip-Flop, bộ đếm, bộ dồn kênh) và các khái niệm cơ bản về cấu trúc máy tính (bus dữ liệu, bus địa chỉ, thanh ghi, bộ nhớ RAM/ROM).

3. Điểm khác biệt của giáo trình so với các tài liệu thuần túy lập trình vi xử lý là gì?

Giáo trình tập trung sâu vào kỹ thuật ghép nối phần cứng thực nghiệm: phân tích chi tiết mức logic của từng chân vi mạch, giản đồ thời gian của từng chu kỳ máy ($T$-state), phương pháp giải mã địa chỉ, phối ghép điện áp TTL, chống nhiễu đường truyền và cách thức phần mềm tác động trực tiếp lên các mạch chốt/đệm ngoại vi.

4. Làm thế nào để tự học và làm chủ nội dung giáo trình hiệu quả?

Người học nên kết hợp đọc hiểu lý thuyết với việc tự vẽ lại sơ đồ chân, lập bảng phân bổ không gian địa chỉ cho từng cổng/bộ nhớ, phân tích dòng chảy tín hiệu trong các chu kỳ đọc/ghi ($\overline{RD}$, $\overline{WR}$), và thực hành viết lại các đoạn mã Assembly điều khiển thanh ghi lệnh ($C/S$, PPI Control Word).

5. Có tài liệu bổ trợ hoặc công cụ nào nên sử dụng kèm theo giáo trình?

Để đạt hiệu quả học tập cao nhất, người học nên kết hợp sử dụng các phần mềm mô phỏng tập lệnh và phần cứng 8085 (như 8085 Simulator IDE, Proteus), tra cứu bảng thông số linh kiện (Datasheets) gốc của các vi mạch Intel 8085A, 8155, 8255A, 8259, 74LS138, và tài liệu thực hành phòng thí nghiệm Vi xử lý.


Kết luận

Giáo trình "Kỹ thuật vi xử lý" của tác giả Trương Tấn Hải (Trường Đại học Giao thông Vận tải - Hà Nội, 1997) là một tài liệu học thuật có giá trị khoa học và sư phạm cao trong việc đào tạo kiến trúc phần cứng và kỹ thuật ghép nối vi xử lý cơ bản. Bằng việc phân tích sâu sắc các cơ chế vào/ra điều khiển bằng chương trình, hệ thống ngắt vector, truyền thông nối tiếp và các vi mạch ngoại vi chuẩn công nghiệp, giáo trình cung cấp nền tảng tư duy thiết kế mạch hệ thống toàn diện cho sinh viên khối kỹ thuật.

Lộ trình học tập đề xuất từ giáo trình: $$\text{Kỹ thuật số} \longrightarrow \text{Cấu trúc vi xử lý 8085A} \longrightarrow \text{Kỹ thuật giải mã & ghép nối I/O (8155/8255A)} \longrightarrow \text{Quản trị ngắt & Truyền thông nối tiếp} \longrightarrow \text{Thiết kế hệ vi xử lý ứng dụng/Hệ thống nhúng}.$$

Tài liệu là nguồn tham khảo học thuật phục vụ trực tiếp cho quá trình học tập, nghiên cứu và phát triển các hệ thống điều khiển tự động dựa trên nền tảng vi xử lý.