1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ĐHCN bài giảng kỹ thuật vi xử lý nguyễn văn huy, 114 trang

115 251 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 115
Dung lượng 2,04 MB

Nội dung

TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP ĐỀ CƯƠNG CHI TIẾT MÔN HỌC Tên môn học: Kỹ thuật vi xử lý Phân bố thời gian: (Với trình độ cao đẳng) 30 Lý thuyết + 30 Bài tập, thực hành Môn tiên quyết: Kỹ thuật vi xử lý môn học quan trọng việc nghiên cứu phần cứng máy tính Các kiến thức môn học cần có để phục vụ cho môn học bao gồm: • Kỹ thuật điện tử số (2 mức: 0, 1, nhớ) • Kiến trúc máy tính Đối tượng học: Sinh viên ngành Kỹ thuật máy tính, Điều khiển tự động, Điện tử viễn thông, Kỹ thuật điện tử, Công nghệ thông tin Mô tả môn học: Trang bị cho sinh viên kiến thức có tính chất hệ thống liên quan đến kỹ thuật VXL Trang bị cho sinh viên khả tư nghiên cứu, tiếp cận với hệ VXL tiên tiến, đại Ngoài học phần giúp cho sinh viên dễ dàng việc xây dựng chương trình điều khiển thiết bị ghép nối với máy tính Nội dụng cụ thể bao gồm phần sau: • Khái niệm, cấu trúc nguyên lý hoạt động hệ VXL • Bộ VXL 8088/8086 • Các ghép nối 8088/8086 với thiết bị ngoại vi • Các phương thức đièu khiển vào liệu kỹ thuật VXL Nhiệm vụ sinh viên: Sinh viên phải tham gia đủ 80% lớp Phải hoàn thành đầy đủ tập thực hành chương trình Nội dung giảng dậy Chương Hệ vi xử lý 1.1 Vi xử lý gì? 1.2 Các hệ vi xử lý 1.2.1 Thế hệ (1971 đến 1973) 1.2.2 Thế hệ (1974 đến 1977) 1.2.3 Thế hệ (1978 đến 1982) 1.3 Thế hệ (1983 đến nay) 1.4 Giới thiệu cấu trúc hệ vi xử lý 1.3.1 CPU - Bộ xử lý trung tâm 1.3.2 Bộ nhớ bán dẫn (ROM, RAM) 1.3.3 Hệ thống vào (I/O) 1.3.4 Liên hệ khối Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Chương Bộ vi xử lý 8088 Intel 2.1 Giới thiệu hoạt động vi xử lý 8088 2.1.1 Giới thiệu chung 2.1.2 Cấu trúc hoạt động VXL 8088 2.2 Chế độ địa 8088 2.2.1 Chế độ địa ghi 2.2.2 Chế độ địa tức 2.2.3 Chế độ địa tực tiếp 2.2.4 Chế độ địa gián tiếp qua ghi 2.2.5 Chế độ địa tương đối sở 2.2.6 Chế độ địa tương đối số 2.2.7 Chế độ địa tương đối số sở 2.3 Mô tả tập lệnh 8088 2.3.1 Nhóm lệnh chuyển liệu 2.3.2 Nhóm lệnh số học 2.3.3 Nhóm lệnh logic, dịch quay 2.3.4 Nhóm lệnh so sánh 2.3.5 Nhóm lệnh rẽ nhánh (nhảy), lặp 2.3.6 Nhóm lệnh đặc biệt Chương Lập trình hợp ngữ cho 8088 máy tính IBM PC máy tương thích IBM PC 3.1 Giới thiệu chung 3.2 Giới thiệu khung chương trình 3.2.1 Cấu trúc lệnh hợp ngữ 3.2.2 Dữ liệu cho chương trình hợp ngữ 3.2.3 Biến 3.2.4 Khung chương trình hợp ngữ 3.3 Cách tạo cho chạy chương trình hợp ngữ 3.4 Các cấu trúc lập trình assembly 3.4.1 Cấu trúc 3.4.2 Cấu trúc lựa chọn 3.4.3 Cấu trúc lặp 3.5 Truyền tham số 3.6 Một số ngắt DOS BIOS Chương Ghép 8088 với nhớ tổ chức vào liệu 4.1 Giới thiệu tín hiệu chân 8088 mạch phụ trợ 4.1.1 Bảy nhóm tín hiệu 4.1.2 Phân kênh để tách thông tin đệm bus 4.1.3 Mạch tạo xung nhịp 8284 4.1.4 Mạch điều khiển bus 8288 4.1.5 Biều đồ thời gian lệnh đọc/ghi 4.2 Phối ghép 8088 với nhớ 4.2.1 Bộ nhớ bán dẫn 4.2.2 Giải mã địa cho nhớ 4.2.3 Phối ghép 8088 với nhớ 4.3 Phối ghép 8088 với thiết bị ngoại vi 4.3.1 Các kiểu phối ghép vào 4.3.2 Giải mã địa cho thiết vị vào/ra Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 4.3.3 Các mạch cổng đơn giản 4.3.4 Mạch phối ghép vào/ra song song lập trình PPI 8255 Chương Vào liệu cách thăm dò 5.1 Giới thiệu chung phương pháp điều khiển vào/ra liệu 5.2 Vào/ra liệu cách thăm dò trạng thái sẵn sàng thiết bị ngoại vi Chương Ngắt xử lý ngắt hệ vi xử lý 8088 6.1 Sự cần thiết phải ngắt CPU 6.2 Ngắt vi xử lý 8088 6.2.1 Các loại ngắt hệ 8088 6.2.2 Đáp ứng CPU có yêu cầu ngắt 6.2.3 Xử lý ưu tiên ngắt 6.2.4 Mạch điều khiển ngắt ưu tiên PPI 8259A Chương Vào liệu DMA 7.1 Nguyên tắc việc trao đổi liệu với thiết bị ngoại vi cách thâm nhập trực tiếp vào nhớ (DMA) 7.2 DMAC 8237-5 hệ vi xử lý 8088 7.2.1 Tín hiệu HOLD HLDA CPU 8088 7.2.2 Mạch DMAC 8237-5 Intel Nội dung thực hành ( gồm có thực hành - 5tiết/bài) Bài 1: Làm quen với trình dich hợp ngữ ASSEMBLER cách gọi ngắt ASM Mục đích: • Biết cách chuyển chương trình hợp ngữ (Assembler) dạng mã máy, qua giúp sinh viên hiểu rõ chế hoạt động lệnh, cách trao đổi số liệu • Biết cách nhập chương trình vào nhớ chạy chương trình • Hiểu, biết cách gọi truyền tham số gọi ngắt (Chủ yếu ngát 21h DOS, với hàm hiển thị nhập ký tự Nhằm phục vụ cho việc kiểm tra kết qua cho thí nghiệm sau) Bài 2: Trao đổi liệu thực phép tính số học Mục đích: • Giúp sinh viên làm quen với việc nạp trao đổi liệu ghi, ghi với nhớ phép tính số học Qua thấy ý nghĩa tác dụng ghi nhớ trình lưu trữ xử lý số liệu Bài 3: So sánh kiểm tra liệu Mục đích: • Giúp sinh viên làm quen với cấu trúc lập trình hợp ngữ • Biết cách so sánh kiểm tra liệu thông qua cờ Bài 4: Các thao tác Logic Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Mục đích: • Giúp sinh viên làm quen với cấu trúc lập trình hợp ngữ • Giúp sinh viên khảo sát thao tác đại số BOOLEAN theo phương thức mà chúng tác động ghi liệu nhớ Bài 5: Chương trình truyền tham số Mục đích: • Giúp sinh viên làm quen với cấu trúc lập trình hợp ngữ • Giúp sinh viên làm quen với cấu trúc lập trình theo chương trình con, truyền tham số cho chương trình Bài 6: Vào liệu với cổng Mục đích: • Giúp sinh viên làm quen với kiểu giao tiếp vi xử lý với thiết bị • Biết cách lập trình đặt chế độ làm việc cho cổng giao tiếp điều khiển ghép nối Tài liệu tham khảo: [1] Văn Thế Minh, Kỹ thuật vi xử lý, NXB Giáo Dục, 1997 [2] Đỗ Xuân Thụ & Hồ Khánh Lâm, Kỹ thuật vi xử lý máy vi tính, [3] Đỗ Xuân Tiến, Kỹ thuật lập trình điều khiển hệ thống, [4] Lê Văn Doanh & Phạm Khắc Chương, Kỹ thuật vi điều khiển, [5] Biên Dịch: Nguyễn Minh San - Hoàng Đức Hải, Cẩm nang lập trình hệ thống, [6] Nguyễn Đình Việt, Kiến trúc máy tính, [7] Trần Quang Vinh, Cấu trúc máy vi tính, NXB Giáo Dục, 1998 [8] Ytha Yu & Charles Marut, Lập trình hợp ngữ (Assembly) máy vi tính IBM-PC, NXB Giáo Dục, 1996 [9] PTS Nguyễn Quang Tấn, Vũ Thanh Hiền, Lập trình với Hợp Ngữ, NXB Thống Kê, 1997 [10] Trần Bá Thái, Điều khiển ghép nối thiết bị ngoại vi, NXB thống kê, 1987 [11] Computer Organization and Assembly Language Programming For IBM PC and Compatibles Michael Thorne - The Benjamin-Cummings Publishing Company, Inc 1991 [12] Microprocessors and microcomputer-based Rafiquzzaman - CRC Press, 1995 Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý system design Mohamed TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP NỘI DUNG CHI TIẾT Chương HỆ VI XỬ LÝ 1.1 Vi xử lý gì? Ngày xu hướng số hoá dạng tín hiệu khẳng định rõ nét nhiều lĩnh vực: Điện tử, tin học, viễn thông, công nghệ thông tin, kỹ thuật điều khiển tự động tín hiệu số có cấu trúc đơn giản, dễ tính toán, xử lý gia công Việc xử lý, tính toán, điều khiển thực chủ yếu máy tính PC (Hay hệ vi xử lý nói chung) Các hệ vi xử lý thường ghép nối giao tiếp với nhiều thiết bị ngoại vi khác Mỗi thiết bị làm việc môi trường khác chức năng, nhiệm vụ khác Môi trường thiết bị là: • Điện, điện tử • Cơ, điện • Quang điện tử, Chức năng, nhiệm vụ thiết bị như: • Thông tin vô tuyến, hữu tuyến • Kỹ thuật viễn thông • Robốt, máy công cụ, dây truyền sản xuất tự động Các hệ thống làm nhiệm vụ xử lý điều khiển nói chung có thành phần làm nhiệm vụ xử lý chế tạo công nghệ vi điện tử với độ tích hợp cao cao, chúng thường gọi vi xử lý (MicroProcessor) Các vi xử lý hoạt động (làm việc) theo chương trình, dùng để tính toán điều khiển hoạt động hệ thống Việc xây dựng chương trình điều khiển thiết bị cho chúng làm việc xác, đồng phức tạp Các hệ thống thông minh vai trò vi xử lý quan trọng 1.2 Các hệ vi xử lý 1.2.1 Thế hệ (1971 đến 1973) Năm 1971 Intel cho đời vi xử lý (VXL) 4004 (dùng cho máy tính cầm tay) chế tạo công nghệ PMOS Đây VXL bit liệu, 12 bit địa có 2250 Transitor Tiếp theo, Intel cho đời VXL 4040 VXL cải tiến từ VXL 4004 Trong thời gian này, Intel tiếp tục cho đời VXL 8008 VXL bit liệu  Đặc điểm vi xử lý khoảng thời gian là: o Tốc độ thực hiện: 10 ÷ 60 (µs/lệnh) o Tần số đồng hồ: fCLK = 0,1 ÷ 0,8 MHz o Cần nhiều mạch phụ trợ để tạo nên hệ vi xử lý hoàn chỉnh 1.2.2 Thế hệ (1974 đến 1977) Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Trong thời gian Intel cho đời VXL 8080, 8085 Motorola có VXL 6800, 6809 Zilog có VXL Z80 Signetics có VXL 6520  Đặc điểm vi xử lý khoảng thời gian là: Tập lệnh phong phú Là vi xử lý bit liệu Khả phân biệt địa nhớ lên tới 64 KB (16 bit địa chỉ) Khả phân biệt địa cổng 256 cổng cho thiết bị ngoại vi (sử dụng bit để đánh địa cho cổng) o Tốc độ ÷ (µs/lệnh) o Tần số đồng hồ: fCLK = ÷ MHz o o o o  Ứng dụng: o Điều khiển hệ thống công nghiệp o Chế tạo máy tính bit Apple II 1.2.3 Thế hệ (1978 đến 1982) Trong khoảng thời gian Intel cho đời VXL 8086, 8088, 80186, 80286 Motorola có VXL 68000, 68010  Đặc điểm vi xử lý khoảng thời gian là: Là vi xử lý 16 bit liệu Tập lệnh đầy đủ Khả phân biệt địa nhớ từ MB đến 16 MB Khả phân biệt địa cổng 64 K cổng cho thiết bị ngoại vi (đối với VXL Intel) o Tốc độ 0,1 ÷ (µs/lệnh) o Tần số đồng hồ: fCLK = ÷ 10 MHz o o o o  Ứng dụng: Chế tạo máy tính IBM PC, PC/XT, PC/AT máy tính Macintosh Apple 1.2.4 Thế hệ (1983 đến nay) Trong thời gian Intel thể sức mạnh vượt trội hãng khác việc chế tạo vi xử lý Intel liện tục cho đời VXL 80386, 80486 VXL 32 bit liệu, có bên đơn vị quản lý nhớ (MMU) cho phép chạy chế độ nhớ ảo đa nhiệm Tiếp theo VXL Pentium, Pentium II, Pentium III, Pentium IV VXL 64 bit liệu Motorola có VXL 68020, 68030, 68040, 68060  Đặc điểm vi xử lý khoảng thời gian là: o 32 bit địa chỉ, nên chế độ thực khả phân biệt địa nhớ GB Trong chế độ nhớ ảo chúng có khả quản lý không gian nhớ lên tới 64 TB (Teta Byte) o Cơ chế xử lý xen kẽ dòng mã lệnh (Pipline) o Bộ nhớ ẩn (Cache) Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP o Có quản lý nhớ (MMU), đồng xử lý toán học tích hợp bên o Tốc độ ÷ 112 (triệu lệnh/µs) o Tần số đồng hồ: fCLK = 10 ÷ 100 MHz cao  Ứng dụng: o Chế tạo máy tính có tốc độ cao, máy chủ đáp ứng cho xử lý lớn thống kê hàng ngày ngân hàng, khí tượng thuỷ văn, mô trình, lĩnh vực quân o Các máy tính 1.3 Giới thiệu cấu trúc hệ vi xử lý Chúng ta tìm hiểu qua đời vị trí vi xử lý Bộ VXL thành phần (trái tim) máy tính, kết hợp với phận mạch điện tử khác nhớ (bộ nhớ bán dẫn), phối ghép vào để tạo nên hệ vi xử lý nói chung mà máy tính trường hợp ứng dụng thể hệ vi xử lý Data bus Control bus CPU Memory ROM RAM I/O Interfacing Thiết bị vào Thiết bị Address bus Hình vẽ: Hệ vi xử lý • • • • CPU (Central Processing Unit) - Bộ xử lý trung tâm Memory: Bộ nhớ bán dẫn I/O (Input/Output): Khối phối ghép với thiết bị ngoại vi Bus tập đường dây truyền thông tin, tín hiệu gồm:  Data bus  Control bus  Address bus 1.3.1 CPU - Bộ xử lý trung tâm Là mạch điện tử có độ tích hợp cao (là trái tim hệ vi xử lý) Ngày thường vi mạch có độ tích hợp VLSI  Chức năng: o Điều khiển hoạt động hệ vi xử lý (hoạt động tính toán) Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP o Thực lệnh, xử lý liệu  Nguyên tắc hoạt động Hoạt động theo chương trình nằm nhớ Nó nhận nhận lệnh từ nhớ, lệnh ghi dạng bit 0, sau giải mã lệnh thành xung điều khiển tương ứng thao tác lệnh để điều khiển khối chức thực thao tác Quá trình thực bao gồm trao đổi liệu với nhớ Để thực trên, bên CPU có ghi lưu địa lệnh chuẩn bị thực hiện, gọi ghi trỏ lệnh (Instruction Pointer - PC), hay gọi đếm chương trình (Program Counter - PC)  Các thành phần vi xử lý: o Đơn vị điều khiển (Control Unit - CU): điều khiển hoạt động CPU thành phần khác hệ theo chương trình định (dãy lệnh) xung điều khiển o Đơn vị số học logic (Arithmetic and Logic Unit - ALU): thực chức xử lý liệu (tính toán) cộng, trừ, nhân, chia, NOT, AND, OR o Tập ghi (Registers Set): ngăn nhớ đặc biệt nằm CPU để tăng tốc độ trao đổi liệu Một số ghi lưu trữ thông tin tạm thời phục vụ cho việc thực chương trình o Bus bên (Internal Bus): Hệ thống bus CPU tập đường dây làm nhiệm vụ kết nối, vận chuyển thông tin (tín hiệu) thành phần với 1.3.2 Bộ nhớ bán dẫn (ROM, RAM) Là phận quan trọng hệ vi xử lý Nó có nhiệm vụ lưu trữ chương trình liệu Bộ nhớ bao gồm nhớ nhớ ẩn (cache L1, L2) Khi khởi động máy, chương trình điều khiển chứa ROM điều khiển hoạt động toàn hệ Các chương trình ứng dụng, phần chương trình điều khiển, kết chạy chương trình để RAM Ngoài có nhớ (ổ đĩa từ, quang ) lưu trữ lâu dài chương trình liệu, thiết bị ngoại vi 1.3.3 Hệ thống vào (I/O)  Chức Giao tiếp, trao đổi thông tin hệ vi xử lý với giới bên  Các thành phần o Thiết bị ngoại vi: Bàn phím, hình, chuột, máy in, ổ đĩa từ, ổ đĩa quang chuyển đổi ADC, DAC , chuyển đổi thông tin dạng thành dạng phù hợp với máy tính ngược lại liên hệ với máy tính thông qua khối phối ghép vào/ra o Mạch phối ghép vào/ra dùng ghép nối thiết bị ngoại vi với hệ vi xử lý (máy tính) Trong mạch phối ghép vào/ra có phận phối ghép cụ thể hệ thống bus với giới bên gọi cổng vào (I/O port) Mỗi cổng có địa xác định I/O port vào: nhận thông tin từ bên vào hệ thống, I/O port ra: đưa thông tin từ hệ giới bên 1.3.4 Liên hệ khối Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 10 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP D7-D0 IRQ0 IRQ1 RD Bus hệ thống 8088 chế độ MIN WR PIC 8259 A0 INT INTA IRQ7 A7-A1 CS IO/M SP/EN +5V Hình vẽ: PIC 8259 làm việc độc lập (mạch chủ chế độ không đệm bus) nối với 8088 làm việc chế độ MIN thông qua bus hệ thống, địa mạch PIC 8259A 0FEh – 0FFh sơ đồ ta thấy chân SP/EN 8259 nối với +5V, CS lấy từ mạch giải mã địa Vì có mạch PIC hệ thống nên xử lý yêu cầu ngắt đồng thời: IRQ0 – IRQ7 +5V RES AEN2 RDY1 3x‘373 CLK 8284 OC READY G Reset CSYNC A19-A0 F/C ‘245 AD7-AD0 DIR A19-A15 Reset READY G +5V AD7-AD0 CLK 8088 CEN S2-S0 8288 INTR A0 D7-D0 AEN ALE DT/R DEN CLK +5V 8259 CS IRQ0 IRQ1 DT/R SP/EN IORDC RD IOWDC WR IRQ7 Cas0 INTA INT Cas1 Cas2 Hình vẽ: 8259 chủ (làm việc độc lập) nối với 8088 chế độ MAX Nếu hệ vi xử lý 8088 làm việc chế độ MAX thường ta phải dùng mạch điều khiển bus 8288 đệm bus để cung cấp tín hiệu thích hợp cho hệ thống Mạch PIC 8259 phải làm việc chế độ có đệm bus để nối với bus hệ thống Theo hình vẽ ví dụ (8088 chế độ MAX nối với PIC 8259) ta thấy tín hiệu địa cho 8259 lấy từ bus hệ thống (chứ không lấy trực tiếp từ 8088), tín hiệu liệu nối với bus liệu vi xử lý từ thông qua đệm để nối vào bus hệ thống  Lập trình cho PIC 8259 Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 101 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Vi mạch điều khiển ngắt ưu tiên PIC 8259A vi mạch lập trình cỡ lớn lập trình Để mạch PIC 8259 hoạt động theo yêu cầu, sau bật nguồn cấp điện cho nó, PIC cần phải lập trình (thiết lập chế độ hoạt động) cách ghi vào ghi (tương ứng với cổng) bên từ điều khiển khởi đầu ICW (Initialization Control Word) tiếp sau từ điều khiển hoạt động OCW (Operation Control Word) Các từ điều khiển khởi đầu dùng để tạo nên kiểu làm việc ho PIC, từ điều khiển hoạt động định cách thức hoạt ICW1 động cụ thể PIC Từ điều khiển khởi đầu cần ghi trước PIC làm việc (tức trước PIC nhận yêu cầu ngắt để xử lý) từ ICW2 điều khiển hoạt động ghi ta muốn thay đổi (cách thức) hoạt động PIC 8259 F ICW1(2)=0? Cụ thể từ điều khiển nói sau: T i, Các từ điều khiển khởi đầu: PIC 8259 có tất từ điều khiển khởi đầu ICW1 – ICW4 Trong lập trình cho 8259 lúc ta cần dùng từ điều khiển khởi đầu (tức ghi tất chúng) Tuỳ theo trường hợp ứng dụng cụ thể mà có lúc ta cần ghi liên tiếp từ điều khiển khởi đầu có lúc ta cần ghi từ điều khiển khởi đầu (trong số đó) đủ Thứ tự điều kiện ghi từ điều khiển khởi đầu ICW vào 8259 thực theo lưu đồ sau: • ICW1 ICW3 F ICW1(1)=1? T ICW4 Sẵn sàng nhận yêu cầu ngắt Hình vé: Lưu đồ ghi từ điều khiển Như biết, PIC 8259 có đường địa khởi đầu cho PIC 8259 vào (A0), có nhiều ghi điều khiển trạng thái tương đương (tương ứng) với cổng Tuy nhiên để phân biệt ghi (trong 8259) đầu vào địa A0 thứ tự ghi giúp ta phân biệt cá ghi khác bên 8259 để ghi liệu cho từ điều khiển Ví dụ, A0 = dấu hiệu để nhận biết ICW1 (ghi) đưa vào ghi có địa chẵn PIC, A0 = từ điều khiển ICW2, ICW3 ICW4 (ghi) đưa vào ghi có địa lẻ PIC Khi giới thiệu ghi cụ thể với ý nghĩa bit liệu, ta ghi rõ thêm giá trị A0 tương ứng cho ICWi Bit D0 ICW1 (IC4) định 8259 nối với hệ vi xử lý Để làm việc với hệ 16, 32 bit (8088/x86) ICW1 thiết phải có IC4 = (tức ta cần đến từ điều khiển khởi đầu ICW4), hệ vi xử lý bit (như xử dụng 8080/8085) ta phải có IC4 = (và bit ICW4 vị xoá 0) Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 102 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP A0 D7 x D6 x x D5 x x D4 x D3 D2 D1 D0 LTIM ADI SNGL IC4 LTIM ADI SNGL IC4 1: Cần ICW4 0: Bỏ ICW4 Địa vector ngắt (chương trình con), không cần để ý hệ 16-32 bit Cách tác động xung yêu cầu ngắt: 1: Tác động theo mức dương 0: Tác động theo sườn dương Single 1: Chỉ có mạch PIC 0: Có nhiều mạch PIC Khoảng cách vector ngắt: 1: Cách byte (8088/x86) 0: Cách byte (8080/8085) Hình vẽ: Thanh ghi khởi đầu ICW1 Các bit lại ICW1 định nghĩa cách thức làm tác động xung yêu cầu ngắt (tác động theo sườn hay theo mức) chân yêu cầu ngắt IRQi 8259 việc bố trí mạch PIC 8259 khác hệ làm việc đơn lẻ hay theo chế độ nối tầng Khi sử dụng 8259 hệ 16 – 32 bit (8088/x86), bit D2 (ADI) nhận giá trị tuỳ ý, có ý nghĩa làm việc với hệ bit nên thường chọn Nếu sử dụng vi mạch PIC 8259 hệ, đặt bit D1 = (SNGL (S) = 1) Còn có nhiều mạch PIC nối tầng hệ thống bit D1 ICW1 mạch PIC phải xoá Bit D3 (LTIM) dùng để xác lập trigger theo mức hay trigger theo sườn xung Trong chế độ trigger theo mức, chương trình ngắt (yêu cầu ngắt) yêu cầu xuất mức điện áp cao lối vào yêu cầu ngắt IRQ Trong chế độ trigger theo sườn xung, tín hiệu yêu cầu ngắt lối vào IRQ phải chuyển từ mức thấp lên mức cao trì mức cao chương trình phục vụ ngắt thực Vì nói bit quy định cách thức tác động xung yêu cầu ngắt theo mức hay theo sườn (dương) Khi hoạt động hệ 16 – 32 bit không cần quan tâm tới bit D5, D6 D7 thường đặt chúng cho đơn giản Ngày nay, thường sử dụng vi xử lý 8088 cao xây dựng hệ vi xử lý nên sử dụng giá trị: 0000 1010 để ghi cho ICW1 • ICW2 A0 D7 D6 D5 D4 D3 D2 D1 D0 Trong hệ vi xử lý 16 – 32 bit, từ điều khiển T7 T6 T5 T4 T3 T2 T1 T0 khởi đầu dùng để (cho phép) chọn kiểu T7 T6 T5 T4 T3 T2 T1 T0 ngắt (số hiệu ngắt N) tương ứng với bit T7 – T3 cho đầu vào yêu cầu ngắt Các bit T2 – T0 Để chọn kiểu (số hiệu) ngắt ứng với mã yêu cầu ngắt IRQ0-IRQ7 8259 tự động gán giá trị tuỳ theo đầu vào yêu cho mạch PIC cầu ngắt IRQi cụ thể Thực chất chúng có ý nghĩa Hình vẽ: Thanh ghi khởi đầu ICW2 sau: Toàn bit ICW2 báo cho 8259 biết số hiệu ngắt phải gửi (đi) bus liệu để đáp ứng tín hiệu yêu cầu ngắt IRQ0 Để đáp ứng yêu cầu ngắt khác (IRQ1 – IRQ7), 8259 tự động cộng số lối vào với giá trị sở (“không trừ”) gửi kết cho 8088 dùng làm số hiệu ngắt cho tín hiệu yêu cầu ngắt Do ngắt có số hiệu ngắt từ – 31 ngắt chuyên dụng để dự trữ nên số 32 (20h) số ngắt thấp cho ứng dụng mở rộng người sử dụng Giả sử, cho ICW2 = 0010 0000 = 32d, 8259 gửi số hiệu ngắt lên bus liệu Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 103 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP cho 8088 làm số hiệu ngắt cho IRQ0 Với tín hiệu yêu cầu ngắt IRQ1, 8259 gán cho số hiệu ngắt 0010 0001 = 33d (tiếp tục), tương tự có: IRQ2 = 0010 0010 = 34d, IRQ3 = 0010 0011 = 34d, … Trong ICW2 nạp vào 8259, bit thấp luôn 8259 tự động cấp phát bit cho tương ứng với số lối vào yêu cầu ngắt IRQi • ICW3 A0 D7 D6 D5 D4 D3 D2 D1 D0 A0 1 D7 D6 D5 D1 D0 00 00 00 00 00ID2 ID2ID1 ID1ID0 ID0 1: Đầu vào IRQi nối với mạch 8259 thợ (tớ) 0: Đầu vào IRQi không nối với mạch 8259 thợ ICW2 mạch chủ D4 D3 D2 Mã hoá số hiệu ID mạch thợ 0-7 nối vào IRQ0-IRQ7 ICW2 mạch thợ Hình vẽ: Thanh ghi khởi đầu ICW2 Từ điều khiển khởi đầu sử dụng đến bit D2 (SNGL – S) thuộc từ điều khiển khởi đầu ICW1 có giá trị = 0, có nghĩa hệ thống có nhiều mạch PIC 8259 làm việc chế độ nối tầng (chủ – tớ) Chính mà tồn (có) loại ICW3: ICW3 cho mạch 8259 chủ: từ điều khiển để đầu vào yêu cầu ngắt IRQi có (tín hiệu INT của) mạch tớ nối vào Cần phải ghi ICW3 vào mạch chủ để biết với lối vào IRQ phải xuất ID vi mạch 8259 tớ lên đường Cas0 – Cas2 ICW3 cho mạch 8259 tớ: dùng làm phương tiện để mạch tớ nhận biết, từ điều khiển (“phải”) chứa mã số i ứng với đầu vào IRQi mạch chủ mà mạch 8259 tớ nối vào Mã số i (chính ID) sử dụng yêu cầu ngắt từ 8259 tớ Khi vi mạch 8259 chủ nhận yêu cầu ngắt từ mạch tớ – biết yêu cầu ngắt t mạch tớ thông qua IRQ tương ứng Khi yêu cầu ngắt chấp nhận, mạch chủ yêu cầu mạch tớ xuất số hiệu ngắt lên bus liệu cách đưa số ID chân Cas0 – Cas 2, vi mạch 8259 tớ so sánh ID với số ID Cas0 – Cas2, vi mạch tớ thấy trùng (có nghĩa nhận ID nó) đưa số hiệu ngắt lên bus liệu (Sự xử lý ưu tiên có nghĩa là: Tại thời điểm có nhiều yêu cầu ngắt (từ thiết bị ngoại vi) gửi tới mạch tớ Trước hết chúng gửi yêu cầu ngắt tới mạch chủ chờ xung INTA Nhận yêu cầu ngắt từ mạch tớ, mạch chủ gửi xung yêu cầu ngắt qua chân INT tới 8088 Nếu yêu cầu ngắt chấp nhận 8088 gửi xung chấp nhận ngắt thứ INTA tới tất mạch 8259 (chân mạch PIC chủ tớ nối chung) Nhận xung INTA này, tất mạch PIC có xử lý ưu tiên để chuẩn bị đưa số hiệu ngắt (của ngắt có chứa mức ưu tiên cao nhất) lên bus liệu có xung INTA thứ hai Nhưng có xung INTA thứ hai, mạch tớ phải xem xét xem có “cho phép” từ mạch chủ hay không thông qua việc so sánh ID với ID mạch chủ “chỉ định” qua chân Cas0 – Cas2 Số hiệu ID trùng với số i IRQi mạch chủ mà trước có tín hiệu yêu cầu ngắt từ mạch tớ gửi đến Như xung INTA thứ hai xuất số hiệu ngắt (của ngắt đó) từ mạch thợ chấp nhận đưa lên bus liệu để 8088 đọc Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 104 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Ví dụ: Trong hệ vi xử lý ta có mạch PIC 8259A chủ mạch 8259A thợ nối vào chân IRQ0 IRQ2 mạch chủ Tìm giá trị từ điều khiển khởi đầu ICW3 để gán cho mạch PIC INTA From 8088 To 8088 INT INTA 8259 thợ1 8259 chủ Cas0 Cas1 Cas2 Cas0 Cas1 Cas2 Giải: INTA Mạch chủ: ICW3 = 0000 0101b = 05h INT Mạch thợ (nối vào IRQ0 mạch chủ): ICW3 = 0000 0000b = 00h 8259 thợ2 Cas0 Cas1 Cas2 Mạch thợ (nối vào IRQ2 mạch chủ): ICW3 = 0000 0010b = 02h • ICW4 Hình vẽ: Sơ đồ theo đầu A0 D7 D6 D5 0 0 D4 D3 D2 D1 D0 SFNM BUF M/S AEOI mPM SFNM BUF M/S AEOI mPM 1: Mode 8088/x86 0: Mode MCS, 8080/8085 1: Chế độ ưu tiên cố định đặc biệt (Chế độ ưu tiên vòng cố định) 0: Không phải chế độ ưu tiên cố định đặc biệt (chế độ khác) 1: EOI tự động 0x: Mode không đệm 10: 8259 thợ – mode đệm 11: 8259 chủ – mode đệm Hình vẽ: Thanh ghi khởi đầu ICW4 Từ điều khiển khởi đầu dùng đến từ điều khiển khởi đầu ICW1 có bit IC4 = (cần thêm ICW4) Bit PM (Microprocessor Mode): Cho phép vi xử lý 8088/86 cao (80x86) làm việc với 8259 Nếu μPM = cho phép vi xử lý 8080/85 làm việc với 8259 Bit SFNM = 1, cho phép ta chọn chế độ ưu tiên cố định đặc biệt Trong chế độ yêu cầu ngắt với mức ưu tiên cao thời từ mạch thợ làm việc theo kiểu nối tầng mạch chủ nhận biết mạch chủ phục vụ yêu cầu ngắt mạch thợ khác với mức ưu tiên thấp (như biết, 8088 nhận yêu cầu ngắt, yêu cầu ngắt chấp nhận công việc làm để chuẩn bị thực ISR có công đoạn: Xoá cờ IF TF, điều có nghĩa thực ISR cấm ngắt che khác tác động Tuy nhiên, đầu ISR lại có lệnh lập cờ IF nhận biết yêu cầu ngắt che khác thực ISR đó, vấn đề đề cập đến phần sau) Sau yêu cầu ngắt Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 105 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP phục vụ xong chương trình phục vụ ngắt phải có lệnh kết thúc yêu cầu ngắt (EOF) đặt trước lệnh (IRET) trở để đưa đến cho mạch PIC chủ Khi bit SFNM = chế độ ưu tiên cố định chọn (IRQ0: mức ưu tiên cao nhất, …, IRQ7: mức ưu tiên thấp nhất) Thực mạch 8259 không dùng ICW4 chế độ chọn ngầm định Trong chế độ ưu tiên cố định, thời điểm có yêu cầu ngắt i phục vụ (bit ISRi = 1), lúc tất yêu cầu ngắt khác với mức ưu tiên thấp bị cấm yêu cầu ngắt khác với mức ưu tiên cao ngắt yêu cầu ngắt khác với mức ưu tiên thấp Bit BUF (Buffer): Cho phép định nghĩa mạch 8259 để làm việc với CPU trường hợp có đệm đệm nối với bus hệ thống Khi BUF = 1: 8259 làm việc chế độ có đệm bus, bit M/S = 1/0 cho phép ta chọn mạch 8259 để làm việc chế độ chủ/thợ (Master/Slave) SP/EN trở thành đầu cho phép mở đệm bus để PIC 8259 CPU thông với bus hệ thống Bit AEOI (Automatic End Of Interrupt): Cho phép chọn cách kết thúc yêu cầu ngắt tự động o AEOF = 8259 tự động xoá ISRi = xung INTA cuối chuyển lên mức cao mà không làm thay đổi thứ tự ưu tiên o Ngược lại, ta chọn cách kết thúc yêu cầu ngắt thường (AEOF = 0) chương trình phục vụ ngắt phải có thêm lệnh EOI đặt trước lệnh IRET để kết thúc cho 8259 Những vấn đề liên quan đến chế độ ưu tiên kết thúc yêu cầu ngắt nói thêm phần giới thiệu ghi từ điều khiển hoạt động ii, Các từ điều khiển hoạt động: Các từ điều khiển hoạt động OCWi định 8259 hoạt động sau khởi đầu từ điều khiển khởi đầu ICWi Tất từ điều khiển hoạt động ghi vào ghi PIC A0 = 0, trừ OCW1 hi A0 = (chỉ số ghi địa ngược lại với thành ghi điều khiển khởi đầu) • OCW1 A0 D7 D6 D5 D4 D3 D2 D1 D0 Thanh ghi để ghi bit mặt nạ vào M7 M6 M5 M4 M3 M2 M1 M0 ghi mặt nạ ngắt IMR Khi bit mặt M7 M6 M5 M4 M3 M2 M1 M0 nạ ghi IMR lập yêu cầu ngắt tương ứng với mặt nạ không nạ ngắt yêu cầu ngắt 8259 nhận biết (bị che) Từ điều Mặt 1: Có mặt nạ (yêu cầu ngắt tương ứng bị che) khiển phải (ghi) đưa đến 8259 0: Không có mặt nạ (yêu cầu ngắt tương ứng nhận biết) sau từ điều khiển khởi đầu ICWi Hình vẽ: Thanh ghi hoạt động OCW1 ghi vào 8259 lối vào yêu cầu ngắt IRTQi muốn đáp ứng Ta đọc lại IMR lúc để xác định tình trạng mặt nạ ngắt (có nghĩa, kiểm tra xem thời điểm yêu cầu ngắt phép, yêu cầu ngắt bị che) Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 106 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP • OCW2 A0 D7 Kết thúc ngắt (EOI) D6 D5 D4 D3 D2 D1 D0 R SL EOI 0 L2 L1 L0 R SL EOI 0 L2 L1 L0 RSLEOIý nghĩa001Lệnh EOI thường011Lệnh EOI đích danh (*)101Đổi mức ưu tiên có EOI thường100Lập chế độ quay có EOI tự động000Xoá chế độ quay có EOI tự động111Đổi mức ưu tiên có EOI đích danh (*)110Lệnh lập mức ưu tiên (*)010Không làm Mã hoá mức ưu tiên ngắt bị tác động 000: mức 001: mức 111: mức Trong đó: (*): dùng tổ hợp L2L1L0 Đổi mức ưu tiên tự động (quay vòng) Đổi mức ưu tiên đích danh (đặc biệt) Hình vẽ: Thanh ghi hoạt động OCW2 Các bit: R, SL EOI (theo bảng) phối hợp cho phép chọn cách thức kết thúc yêu cầu ngắt khác Trong đó, vài cách kết thúc yêu cầu ngắt tác động tới yêu cầu ngắt đích danh với mức ưu tiên mã hoá bit L2, L1, L0 (L2L1L0) Một số chế độ làm việc 8259 (1) Chế độ ưu tiên cố định: Đây chế độ làm việc ngầm định 8259 sau nạp từ điều khiển khởi đầu Trong chế độ này, đầu vào yêu cầu ngắt IRQ7 – IRQ0 gán cho mức ưu tiên cố định Cụ thể: IRQ0 gán mức ưu tiên cao nhất, … IRQ7 gán mức ưu tiên thấp Thứ tự mức ưu tiên giữ cố định (không thay đổi) mạch 8259 lập trình khác thông qua việc ghi từ điều khiển hoạt động OCW2 Trong chế độ ưu tiên cố định, thời điểm có yêu cầu ngắt i phục vụ (bit ISRi = 1), lúc tất yêu cầu ngắt khác có mức ưu tiên cao ngắt yêu cầu ngắt có mức ưu tiên thấp (2) Chế độ quay mức ưu tiên tự động (ưu tiên luân phiên): chế độ này, sau yêu cầu ngắt phục vụ xong, 8259 xoá bit tương ứng ghi ISR gán cho đầu vào (IRQ) mức ưu tiên thấp để tạo điều kiện cho yêu cầu ngắt khác (với mức ưu tiên thấp) có hội (thời cơ) phục vụ (3) Chế độ quay (đổi) mức ưu tiên đích danh: chế độ ta cần rõ (chỉ đích danh) đầu vào yêu cầu ngắt IRQi với i = L2L1L0 gán mức ưu tiên thấp nhất, đầu vào IRQi+1 tự động gán mức ưu tiên cao Đó chế độ làm việc tiêu biểu 8259 Trên sở đó, nhìn lại phối hợp bit R, SL, EOI để tạo lệnh quy định cách thức kết thúc yêu cầu ngắt cho chế độ làm việc khác nói qua (1) Kết thúc yêu cầu ngắt thường: Trong chương trình phục vụ ngắt phải có lệnh EOI đặt trước lệnh trở IRET cho 8259 Mạch 8259 xác định yêu cầu ngắt IRQi vừa phục vụ xoá bit ISRi tương ứng để tạo điều kiện cho yêu cầu ngắt ngắt có mức ưu tiên thấp tác động (phục vụ) Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 107 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP (2) Kết thúc yêu cầu ngắt đích danh: Trong chương trình phục vụ ngắt phải có lệnh EOI đích danh đặt trước lệnh trở IRET cho 8259 Mạch 8259 xoá bit ISRi (i = L2L1L0) để tạo điều kiện cho yêu cầu ngắt yêu cầu ngắt có mức ưu tiên thấp tác động (3) Quay (đổi) mức ưu tiên kết thúc yêu cầu ngắt thường: Trong chương trình phục vụ ngắt phải có lệnh EOI đặt trước lệnh trở IRET cho 8259 Mạch 8259 xác định yêu cầu ngắt thứ i vừa phục vụ, xoá bit ISRi tưng ứng gán mức ưu tiên thấp cho đầu vào IRQi này, đầu vào IRQi+1 gán mức ưu tiên cao Ví dụ: Thanh ghi ISR trước IRQ4 chấp nhận (0: mức ưu tiên cao nhất, 7: mức ưu tiên thấp nhất) Các bit Trạng thái ISR Mức ưu tiên IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0 Thanh ghi ISR sau IRQ4 chấp nhận sau có lệnh quay đổi Các bit Trạng thái ISR Mức ưu tiên IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0 Thanh ghi ISR trước IRQ5 chấp nhận (0: mức ưu tiên cao nhất, 7: mức ưu tiên thấp nhất) Các bit Trạng thái ISR Mức ưu tiên IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0 Thanh ghi ISR sau IRQ4 chấp nhận sau có lệnh quay đổi Các bit Trạng thái ISR Mức ưu tiên IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0 (1) Quay (đổi) mức ưu tiên chế độ kết thúc ngắt tự động: Trong chế độ cần lần đưa lệnh chọn chế độ mức ưu tiên kết thúc yêu cầu ngắt từ động Có thể chọn lệnh lập “chế độ quay có EOI tự động” Từ trở 8259 đổi mức ưu tiên kết thúc yêu cầu ngắt tự động tương tự mục trước Muốn loạ bỏ chế độ ta dùng lệnh xoá “chế độ quay có EOI tự động” (2) Quay (đổi) mức ưu tiên kết thúc yêu cầu ngắt đích danh: Trong chương trình phục vụ ngắt phải có lệnh EOI đích danh cho 8259 đặt trước lệnh trở IRET Mạch 8259 xoá bit ISRi (i = L2L1L0) Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 108 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP (3) Lập mức ưu tiên: Chế độ cho phép thay đổi mức ưu tiên có định mức ưu tiên gán trước cách gán mức ưu tiên thấp cho yêu cầu ngắt IRQi đích danh ứng với tổ hợp mã i = L2L1L0 Yêu cầu ngắt IRQi+1 gán mức ưu tiên cao • OCW3 A0 D7 0 0 D6 D5 ESMM SMM ESMM SMM D4 D3 D2 P P D1 D0 ERIS RIS ERIS RIS 10: Đọc IRR lần đọc sau 11: Đọc ISR lần đọc sau Thăm dò trạng yêu cầu ngắt 1: Đọc mã mức ưu tiên cao lần đọc sau Chế độ mặt nạ đặc biệt 10: Xoá chế độ mặt nạ đặc biệt 11: Lặp chế độ mặt nạ đặc biệt Hình vẽ: Thanh ghi hoạt động OCW3 Từ điều khiển hoạt động OCW3 sau nạp vào 8259 cho phép: o Chọn ghi để đọc (trạng thái) o Thăm dò trạng thái yêu cầu ngắt cách đọc trạng thái đâu vào yêu cầu ngắt IRQi với mức ưu tiên cao với mã đầu vào o Thao tác với mặt nạ đặc biệt D7 D7DD6 6D5 D4DD 2D1D0 D5 D4 D3 D2 D1 Các IR5 IR4 IIR1 I IR0 I IS4 IIII IR7 IR6 IR3 IR2 ghi IRR ISR IR5 IR4 IIR1 I IR0 I IS4 IIII IR7 IR6 IR3 IR2 S S S S SSS nạp SS S SSS S 765 3210 765 3210 sau nạp từ điều khiển IRi=0: Đầu vào ISi=0: IRQi không Yêu cầu có ngắt yêu cầu i không ngắt phục vụ OCW3 vào IRi=1: Đầu vào ISi=1: IRQi không Yêu cầu có ngắt yêu cầu i ngắtđược phục vụ 8259 với bit (a)cầu Thanh ngắt: ghi IRR phục vụ ngắt: IRR ERIS = (D1) (a) Thanh ghi yêu Bit (D0) RIS = 0, cho phép đọc IRR lần đọc sau; RIS = 1, cho phép đọc ISR lần đọc sau Bằng việc đưa vào 8259 từ điều khiển hoạt động OCW3 với bit P = 1, ta đọc bus liệu lần đọc tiếp sau từ thăm dò, thông tin yêu cầu ngắt với mức ưu tiên cao hoạt động mã tương ứng với yêu cầu ngắt theo dạng sau: D7 I D6 I D5 D4 D3 D0 D2 D1 D0 X X X X W2 W1 W0 X X X X W2 W1 W0 1: Đang có yêu cầu ngắt 0: Không có yêu cầu ngắt Mã số yêu cầu ngắt X: Don’t care Hình vẽ: Dạng thức từ thăm dò trạng tháI yêu cầu ngắt Ta coi chế độ thăm dò yêu cầu ngắt chế độ thường ứng dụng trường hợp có nhiều chương trình phục vụ ngắt giống cho yêu cầu ngắt Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 109 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP việc chọn chương trình để sử dụng (trách nhiệm) công việc người sử dụng (người lập trình) Vậy, muốn dùng chế độ thăm dò 8259 để xác định yêu cầu ngắt thời ta cầ thực dãy thao tác sau: o Cấm yêu cầu ngắt che lệnh CLI (xoá IF) o Ghi từ lệnh OCW3 với bit P=1 o Đọc từ thăm dò trạng thái yêu cầu ngắt bus liệu Bit ESMM = 1: Cho phép 8259 thao tác với chế độ mặt nạ đặc biệt Bit SMM = 1: cho phép chế độ mặt nạ đặc biệt Chế độ mặt nạ đặc biệt dùng để thay đổi thứ tự ưu tiên bên chương trình phục vụ ngắt Ví dụ, trường hợp có yêu cầu ngắt bị cấm (bị che chương trình phục vụ ngắt với từ điều khiển hoạt động OCW1) mà ta lại muốn cho phép yêu cầu ngắt với mức ưu tiên thấp so với mưc ưu tiên yêu cầu ngắt bị cấm tác động ta dùng chế độ mặt nạ đặc biệt Nếu thiết lập, chế độ mặt nạ đặc biệt tồn xoá cách ghi vào 8259 từ điều khiển OCW3 khác với bit SMM = Mặt nạ đặc biệt không ảnh hưởng tới yêu cầu ngắt có mức ưu tiên cao Tóm lược hoạt động 8259 hệ vi xử lý 8088: (1) Khi có yêu cầu ngắt từ thiết bị ngoại vi tác động vào chân IRQi 8259 gửi xung INT = đến chân INTR CPU 8088 (2) Nếu chấp nhận, 8088 đưa xung INTA (low active) đến 8259 (3) 8259 dùng xung INTA đầu thông báo để hoàn tất xử lý nội cần thiết, kể việc xử lý ưu tiên có nhiều yêu cầu ngắt tác động (4) 8088 đưa xung INTA thứ hai khiến 8259 đưa bus liệu byte số hiệu ngắt yêu cầu ngắt vừa chấp nhận (yêu cầu ngắt có mức ưu tiên cao (nếu có nhiều yêu cầu ngắt tác động) – tuỳ theo chế độ làm việc 8259) (5) 8088 tính toán địa chương trình phục vụ ngắt dựa số hiệu ngắt, cụ thể sau: o Cất FR; xoá IF, TF; cất CS, IP vào Stack o Lấy CS, IP chương trình phục vụ ngắt từ bảng vector ngắt thực Tuỳ theo yêu cầu khác hoạt động 8259 mà chương trình phục vụ ngắt có lệnh ghi OCW1, OCW2 hay OCW3 vào 8259 Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 110 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Chương VÀO RA DỮ LIỆU BẰNG DMA 7.1 Nguyên tắc việc trao đổi liệu với thiết bị ngoại vi cách thâm nhập trực tiếp vào nhớ (DMA) Trong kiểu điều khiển trao đổi liệu thiết bị ngoại vi hệ VXL cách thăm dò trạng thái sẵn sàng thiết bị ngoại vi hay cách ngắt VXL đưa chương trước, nhận thấy liệu chuyển từ nhớ tới thiết bị ngoại vi ngược lại phải qua VXL Vi tốc độ truyền liệu phục thuộc vào tốc độ lệnh di chuyển liệu MOV, IN, OUT, v.v Tuy nhiên thực tế có lúc ta cần trao đổi liệu tốc độ cao với thiết bị ngoại vi, ví dụ cần đưa liệu hình, trao đổi liệu hai thiết bị lưu trữ Trong trường hợp ta cần có khả ghi/đọc liệu trực tiếp với nhớ (direct memory access-DMA) Phương pháp tiến hành thâm nhập trực tiếp vào nhớ để chuyển liệu tới đích mà không thông qua CPU Để làm điều hệ VXL nói chung phải dùng thêm mạch chuyên dụng để điều khiển việc thâm nhập trực tiếp vào nhớ (direct memory access controller-DMAC) Có thể so sánh tốc độ truyền byte nhớ từ nhớ thiết bị ngoại vi sử dụng hai phương pháp DMA CPU sau: CPU DMA LAP: Mov AL,[SI] Out Port,AL Inc SI Loop LAP Chuyển Byte liệu 10 chu kỳ 10 chu kỳ chu kỳ 17 chu kỳ chu kỳ Tổng 39 chu kỳ Tổng chu kỳ Để hỗ trợ việc trao đổi liệu với thiết ịi ngoại vi cách thâm nhập trực tiếp vào nhớ, vi mạch CPU thường thồn hai chân tín hiệu điều khiển sau - HOLD: Chân tín hiệu yêu cầu treo DMAC cảnh báo cho CPU biết cần sử dụng BUS liệu cho mục đích trao đổi - HOLDA: Chân tín hiệu chấp nhận treo CPU, chấp nhận nhường BUS lại cho DMAC sử dụng Khi CPU nhận HOLD chấp nhận tự treo chính tức tách khỏi hệ thống cách đưa BUS liệu trạng thái trở kháng cao, sau HOLDA nên mức tích cực báo cho DMA phép sử dụng BUS liệu Sơ đồ khôi hệ VXL có khả trao đổi liệu theo kiểu DMA sau: Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 111 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP CPU Bus A Bus D DMAC HOLD HOLDA HRQ DRQ HACK DACK I/O MEM DRQ DACK Bus C ( ) Hệ VXL với DMAC Ta nhận thấy hệ thống này, CPU tự tách khỏi hệ thống việc tự treo (ứng với vị trí công tắc chuyển mạch thời) để trao quyền sử dụng BUS liệu cho DMAC DMAC phải chịu trách nhiệm điều khiển toàn hoạt động trao đổi liệu hệ thống Để làm điều DMAC phải có khả tạo tín hiệu điều khiển cần thiết giống CPU thân phải thiết bị lập trình (để CPU đưa thông tin cần thiết công việc mà phải làm trước CPU tách khỏi hệ thống), Quá trình hoạt động hệ thống tóm tắt sau: Khi thiết bị ngoại vi có yêu cầu trao đổi liệu kiểu DMA với nhớ, đưa yêu cầu DRQ=1 đến DMAC, DMAC chấp nhận tín hiệu gửi tín hiệu HRQ=1 đến chân HOLD CPU Nhận yêu cầu treo, chấp nhận CPU treo BUS gửi tín hiệu trả lời HLDA=1 chấp nhận treo tới chân HACK DMAC Khi DMAC trả lời thiết bị ngoại vi tín hiệu DACK=1, cho phép thiết bị ngoại vi phép trao đổi đổi liệu theo kiểu DMA Kết thúc trình trao đổi DMA đặt tín hiệu HRQ=0, trả quyền điều khiển BUS liệu lại cho CPU Trong thực tế có kiểu trao đổi liệu cách thâm nhập trực tiếp vào nhớ sau: 7.2 - Treo CPU khoảng thời gian để trao đổi mảng liệu - Treo CPU để trao đổi Byte - Tận dụng thời gian không sử dụng BUS CPU để trao đổi liệu DMAC 8237-5 hệ vi xử lý 8088 7.2.1 Tín hiệu HOLD HLDA CPU 8088 Hai tín hiệu yêu cầu treo trả lời chấp nhận treo chế độ MIN CPU 8088 HOLD HOLDA Quan hệ hai tín hiệu thể sau: Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 112 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP T4 T1 CLK HOLD HOLDA 7.2.2 Mạch DMAC 8237-5 Intel Vấn đề: Trong thực tế thời điểm có nhiều yêu cầu ngắt từ loại ngắt khác nhau, đòi hỏi CPU phục vụ CPU lúc phục vụ tất yêu cầu ngắt Vì cần có quy trình định dựa đặc tính tính ưu tiên mà yêu cầu ngắt đáp ứng Bản thân 8088 thiết kế để phân nhận diện mức ưu tiên ngắt theo tính chất quan sau: Mức ưu tiên • Ngắt nội bộ: INT (phép chia cho 0) … Cao • Ngắt không che NMI • Ngắt che ỈNT • Ngắt để chạy lệnh ….Thấp Khi có nhiều yêu cầu ngắt lúc CPU phục vụ theo mức ưu tiên giảm dần Trong trường hợp có nhiều ngắt che từ bên phải phục vụ ta thường dùng vi mạch có sẵn 8259A để giải vấn đề ưu tiên Mạch 8259A gọi mạch điều khiển ngắt ưu tiên (priority interupt controller PIC) Đó vi mạch cỡ lớn lập trình được, xử lý trước yêu cầu ngắt với mức ưu tiên khác để tạo yêu cầu ngắt đưa đến đầu vào INTR(yêu cầu ngắt che được) CPU 8088 Nếu nối tầng mạch 8259A chủ với mạch 8259A ta nâng tổng số yêu cầu ngắt với mức ưu tiên khác lên thành 64 Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 113 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Bus nội INT INTA Đệm Bus D Logic điều khiển CS RD WR Logic ghi đọc ISR PR IRR IR0 A0 Cas0 Cas1 Cas2 IR0 Đệm nối tầng so sánh IR0 IMR (thanh ghi mặt nạ) SP/EN Sơ đồ khối PIC 8259A Ghi chú: • IR0-IR7: yêu cầu ngắt • IRR: Thanh ghi yêu cầu ngắt • PR: Bộ xử lý ưu tiên • SP-EN: Slave program/Enable bufer(lập trình thành mạch thợ/mở đệm BUS liệu) • ISR: Thanh ghi yêu cầu ngắt phục vụ • Cas0-Cas2: Tín hiệu nối tầng PIC với Các khối chức 8259A • Thanh ghi IRR: Ghi nhớ yêu cầu ngắt có đầu vào IRi • Thanh ghi ISR: Ghi nhớ yêu cầu ngắt phục vụ số yêu cầu ngắt Iri • Thanh ghi IMR: ghi nhớ mặt nạ ngắt yêu cầu ngắt IRi • Logic điều khiển: Khối có nhiệm vụ gửi yêu cầu ngắt tới INTR 8088 có tín hiệu chân IRi nhận trả lời chấp nhận trả lời chấp nhận yêu cầu ngắt INTA từ CPU để điều khiển việc đưa kiểu ngắt bus liệu • Đệm bus liệu: Dùng để phối ghép 8259A với bus liệu CPU • Logic điều khiển ghi/đọc: Dùng cho việc ghi từ điều khiển đọc từ trạng thái 8259A • Khối đệm nối tầng so sánh: Ghi nhớ so sánh số hiệu mạch 8259A có mặt hệ vi xử lý Các tín hiệu 8259A: Một số tín hiệu mạch 8259A có tên giống tín hiệu tiêu chuẩn 8088 ta thấy rõ hiểu ý nghĩa chúng hình Ngoài tín hiệu có số tín hiệu khác đặc biệt khác sau: Cas0-Cas2 [I.O]: Là đầu vào mạch 8259A thợ đầu mạch 8259A chủ dùng cần nối tầng Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 114 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP SP / EN [I.O]: Khi 8259A làm việc chế độ đệm bus liệu tín hiệu vào dùng lập trình để biến mạch 8259A thành mạch thợ ( SP =0) chủ ( SP =1) Khi 8259A làm việc hệ vi xử lý chế độ có đệm bus liệu chân tín hiệu EN dùng mở đệm bus liệu để 8088 8259 thông vào bus liệu hệ thống Việc định nghĩa 8259A chủ thợ phải thực thông qua từ điều khiển ICW4 • INT [O]: Tín hiệu yêu cầu ngắt đến chân INTR 8088 • INTA [I]: Nối với tín hiệu báo chấp nhận ngắt INTA CPU Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 115 [...]... hoạt động đồng bộ Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 11 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Chương 2 BỘ VI XỬ LÝ 8088 CỦA INTEL 2.1 Giới thiệu hoạt động của bộ vi xử lý 8088 2.1.1 Giới thiệu chung Bộ vi xử lý 8088 thuộc họ vi xử lý của Intel Điển hình: 8085 là bộ vi xử lý 8 bit 8086 là bộ vi xử lý 16 bit hoàn chỉnh 8088 là bộ vi xử lý 16 bit trong/ 8 bit ngoài  Các đặc tính kỹ thuật chủ yếu:... Nếu OF=1 thì lệnh ngắt công vi c đang làm của bộ vi xử lý và thực hiện lệnh ngắt INT 4 IRET(Interrupt Return) Trở về chương trình chính (CTC) từ chương trình con phục vụ ngắt (ISR – Interrup Service Routin) Tại cuối ISR phải có lệnh IRET để bộ vi xử lý tự động lấy lại địa chỉ trở về CTC và lấy lại thanh ghi cờ Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 29 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP RET(Return... (Tính chất giống với lệnh ADC) Lệnh cập nhật các cờ: AF, CF, OF, PF, SF, ZF AF, PF chỉ liên quan đến 8 bit thấp Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 21 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Chú ý: Các ví dụ cho các lệnh ADC, ADD, SBB, SUB có thể tham khảo trong tài liệu Kỹ thuật Vi xử lý - Văn Thế Minh hoặc phụ lục của tài liệu này MUL nguồn (Multiply Unsigned Byte or Word) Nhân số không dấu Toán... Thanh ghi cờ: Đây là thanh ghi 16 bit, mỗi bit được sử dụng để thể hiện một trạng thái của bộ vi xử lý tại một thời điểm nhất định trong quá trình thực hiện chương trình (dãy các câu lệnh), Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 14 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP nhưng chỉ dùng 9 bit đối với bộ vi xử lý 8088/8086 Mỗi bit đó được gọi là một cờ (flag) Giá trị của mỗi cờ được biểu diễn bằng các... tắc đặt tên • Kiểu: là kích thước (phạm vi) biểu diễn của biến Có các kiểu sau: o DB (Define Byte): Kiểu byte (1 byte) o DW (Define Word): Kiểu word (2 byte) Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 34 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP o DD (Define Double Word): Kiểu double word (4 byte) o DF (Define Farword): Kiểu farword (6 byte), chỉ dùng với bộ vi xử lý 80386 trở lên o DQ (Define Quadword):... bộ vi xử lý 8088 nói chung được chia Mã lệnh đích, nguồn thành 6 nhóm, với 5 nhóm thao tác dữ liệu và 1 nhóm đặc biệt (gồm các chỉ thị để điều khiển) Một lệnh thường có cấu trúc như sau: 2.3.1 Nhóm lệnh chuyển dữ liệu Nhóm này thực hiện vận chuyển dữ liệu (sao chép - copy) từ nơi này đến nơi khác MOV đích, nguồn (Move a Word or Byte) Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 18 TRƯỜNG ĐẠI HỌC KỸ THUẬT... đến các cờ Ứng dụng: Thường được tính thời gian trong các vòng trễ chính xác Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 30 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Chương 3 LẬP TRÌNH BẰNG HỢP NGỮ CHO 8088 TRÊN MÁY TÍNH IBM PC VÀ CÁC MÁY TƯƠNG THÍCH IBM PC 3.1 Giới thiệu chung Sau khi đã giới thiệu một số lệnh cơ bản của bộ vi xử lý 8088 => ta sẽ dùng các lệnh đó để lập trình dùng hợp ngữ trên các máy tính... hạng nào Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 33 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Với hướng dẫn chương trình dịch, trường này chứa các thông tin khác nhau liên quan đến các lệnh giả của hương dẫn  Trường giải thích Trường này được bắt đầu bằng dấu chầm phẩy (;), sau đó là dòng giải thich Chương trình dịch sẽ bỏ qua không dịch trường này Lệnh tuy được vi t dưới dạng gợi nhớ của bộ vi xử lí,... liệu) Tốc độ chuẩn: 4.77 MHz Số chân của bộ vi xử lý: 40 Bộ vi xử lý 8086 của Intel được phát triển từ năm 1978 vào đưa vào thị trường từ năm 1980 Đây là bộ vi xử lý 16 bit bán hoàn chỉnh, các thanh ghi bên trong là 16 bit và nó xử lý 16 bit dữ liệu cùng một lúc, 8086 liên hệ với kênh số liệu bên ngoài bằng bus dữ liệu 16 bit và bus địa chỉ là 20 bit Bộ vi xử lý 8088 ra đời sau 8086, nó có cấu trúc bên... tăng  Chọn bộ vi xử lý 8088 để nghiên cứu vì: o Tập lệnh chung cho các bộ vi xử lý nói trên o Tính phức tạp vừa phải, phù hợp với những người mới tìm hiểu 2.1.2 Cấu trúc và hoạt động của bộ VXL 8088 Sự hoạt động của bộ vi xử lý 8088/8086 thực sự là vi c thực hiện lặp đi lặp lại 3 thao tác chính là lấy lệnh (fetch), giải mã lệnh (decode) và thực hiện (execute) Sơ đồ khối của bộ vi xử lý 8088/8086 như

Ngày đăng: 05/11/2016, 09:46

TỪ KHÓA LIÊN QUAN

w