Chương 6 Các kiểu I/O

Chia sẻ: Vu Van Luan | Ngày: | Loại File: PPT | Số trang:45

0
53
lượt xem
5
download

Chương 6 Các kiểu I/O

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo về các kiểu I/O

Chủ đề:
Lưu

Nội dung Text: Chương 6 Các kiểu I/O

  1. Chương 6 Các kiểu I/O 6.1 Thăm dò (Polling) 6.2 I/O điều khiển bằng ngắt (Interrupt) - 6.3 DMA (Direct Memory Access)
  2. Thăm dò A19 5V A18 : A0 D7 A0 B0 D6 A1 B1 D5 A2 B2 D4 A3 B3 D3 A4 B4 D2 A5 74LS245 B5 8088 D1 A6 B6 Minimum D0 A7 B7 Mode E DIR IOR IOW mov dx, F000 L1: in al, dx cmp al, FF je L1 A A A A A A A A A A A A A A A A IOR 1111119876543210 : 543210 :
  3. A19 5V A18 : The Circuit A0 D7 A0 B0 D6 A1 B1 D5 A2 B2 D4 A3 B3 D3 A4 B4 D2 A5 74LS245 B5 8088 D1 A6 B6 Minimum D0 A7 B7 Mode E DIR D0 Q0 D1 Q1 IOR D2 Q2 IOW D3 Q3 D4 Q4 D574LS373 Q5 D6 Q6 D7 Q7 A A A A A A A A A A A A A A A A IOR LE OE 1111119876543210 543210 AAAAAAAAAAAAAAAAIOW 1111119876543210 543210
  4. Bài toán • Chương trình tạo ra hiệu ứng “LED chạy”: - Ban đầu LED chạy từ trên xuống - Khi nhấn phím thấp nhất thì LED thay đổi hướng chạy - Khi nhấn phím cao nhất thì chương trình kết thúc
  5. Chương trình mov dx, F000 L4: mov bl, al mov ah, 00 in al, dx mov al, 01 cmp al, FF L1: out dx, al je L6 mov cx, FFFF L2: dec cx test al, 01 jnz L2 jnz L5 cmp ah, 00 xor ah, FF jne L3 jmp L6 rol al, 1 L5: test al, 80 cmp al, 01 jz L7 jne L1 L6: mov al, bl jmp L4 jmp L1 L3: ror al, 1 L7: cmp al, 80 jne L1
  6. Khuyết điểm của thăm dò • Tốn nhiều thời gian • NgườI sử dụng có thể nhả phím trước khi lệnh in al, dx được thực hiện, do đó bộ vi xi xử lý sẽ không biết rằng ngườI sử dụng đã nhấn phím • Làm sao để khắc phục các khuyết điểm đó?
  7. Khuyết điểm của thăm dò mov dx, F000 L4: mov bl, al mov ah, 00 in al, dx mov al, 01 cmp al, FF L1: out dx, al je L6 mov cx, FFFF test al, 01 L2: dec cx jnz L5 jnz L2 cmp ah, 00 xor ah, FF jne L3 jmp L6 rol al, 1 L5: test al, 80 cmp al, 01 jz L7 jne L1 L6: mov al, bl jmp L4 jmp L1 L3: ror al, 1 L7: cmp al, 80 jne L1
  8. Ngắt là gì?
  9. Thăm dò instruction While studying, I’ll Input Memory check the bucket every Device 5 minutes to see if it is already full so that I can transfer the content of the bucket to the drum. µP THĂM DÒ
  10. Ngắt instruction I’ll just study. When the Input Memory speaker starts playing Device music it means that the bucket is full. I can then transfer the content of the bucket to the drum. Interrupt request µP INTERRUPT
  11. Interrupt- Ngắt • Bộ vi xử lý không cần phải kiểm tra tính sẵn sàng của thiết bị I/O. • Các thiết bị I/O sẽ báo cho vi xử lý biết khi chúng đã sẵn sàng • Bộ vi xử lý có thể làm công việc khác khi thiết bị I/O không có nhu cầu trao đổI dữ liệu
  12. Interrupt- Ngắt • Một số thuật ngữ cần nhớ: – Yêu cầu ngắt – Đầu vào ngắt – Đầu ra chấp nhận ngắt – Chương trình con phục vụ ngắt – Vector ngắt – Số ngắt – Bảng các vector ngắt
  13. Interrupt Service Routine (ISR) - Chương trình con phục vụ ngắt Interrupt vector - Vector ngắt • Là chương trình được thực hiện khi có một yêu cầu ngắt được chấp nhận • Kết thúc bằng lệnh IRET • Địa chỉ của chương trình con phục vụ ngắt • Bao gồm 4 byte: – 2 byte cho địa chỉ Offset – 2 byte cho địa chỉ Segment
  14. Interrupt Vector Number Số ngắt • Là một số được dùng để phân biệt các yếu cầu ngắt. Bởi vì có thể có nhiều hơn một thiết bị phát yêu cầu ngắt đến bộ vi xử lý cho nên để cho bộ vi xử lý có thể nhận biết được thiết bị thì mỗI thiết bị sẽ được gán cho một số ngắt • Trong hệ thống 8088, co thể có đến 256 số ngắt (từ 00h đến FFh)
  15. Interrupt Vector Table Bảng các vector ngắt • Là vùng nhớ được dành riêng để lưu trữ các vector ngắt • Có thể xem như là một mảng các vector ngắt – Mảng này có 256 phần tử – Mỗi phần tử gồm 4 byte: 2 byte đầu lưu địa chỉ offset, 2 byte sau lưu địa chỉ segment – Các vector ngắt được lưu trữ theo trật tự tăng dần của số ngắt
  16. Bảng các vector ngắt
  17. Phản ứng của vi xử lý khi không có ngắt • Khi bật công tấc nguồn hoặc nhấn nút reset. 1. Bộ vi xử lý được khởi động: – (IP) = 0000h – (CS) = FFFFh – IF = 0 2. Bộ vi xử lý tìm và lấy 1 byte lệnh. 3. IP tăng lên 1. 4. Bộ vi xử lý giải mã và thực hiện lệnh nếu tất cả các byte lệnh của một lệnh đã được lấy. 5. Quay trỏ lại bước 2.
  18. Phản ứng của vi xử lý khi có ngắt • Thiết bị I/O đưa yêu cầu ngắt đến bộ vi xử lý bằng cách làm cho đầu vào ngắt INTR chuyển sang mức cao. 1. Bộ vi xử lý sẽ hoàn thành lệnh đang thực hiện trước khi chấp nhận ngắt 2. Bộ vi xử lý chấp nhận ngắt bằng cách đưa ra tín hiệu chấp nhận ngắt ở mức thấp từ chân INTA. Lúc này thiết bị I/O sẽ làm cho tín hiệu ở INTR chuyển về mức thấp. 3. Thiết bị I/O sẽ đưa số ngắt được gán cho nó đến bộ vi xử lý thông qua D-Bus. Bộ vi xử lý sẽ lưu trữ số ngắt này vào một thanh ghi tạm thời
  19. Phản ứng của vi xử lý khi có ngắt 1. Bộ vi xử lý lưu giá trị hiện thời của thanh ghi cờ vào stack. 2. Bộ vi xử lý xoá cờ ngắt 3. Bộ vi xử lý lưu giá trị hiện thời của CS vào stack. 4. Bộ vi xử lý lưu giá trị hiện thờI của IP vào stack. 5. Bộ vi xử lý nhân số ngắt với 4. Kết quả này chính là địa chỉ của nơi lưu trữ vector ngắt tương ứng trong bảng các vector ngắt. Hai byte đầu tiên của vector ngắt được copy vào IP và hai byte tiếp theo được copy vào CS. 6. Quay trở về bước 2.
Đồng bộ tài khoản