Tải bản đầy đủ (.ppt) (45 trang)

Tài liệu Chương 6 Các kiểu I/O docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (755.04 KB, 45 trang )



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)

Thăm dò
mov dx, F000
L1: in al, dx
cmp al, FF
je L1
:
:
A
1
5
8088
Minimum
Mode
A18
A0
:
D7
D6
IOR
IOW
A19
D5


D4
D3
D2
D1
D0
74LS245
B0
B1
B2
B3
B4
B5
B6
B7
A0
A1
A2
A3
A4
A5
A6
A7
E DIR
A
1
4
A
1
3
A

1
2
A
1
1
A
1
0
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
IOR
5V


The Circuit
A
1
5
8088
Minimum
Mode
A18
A0
:
D7
D6
IOR
IOW
A19
D5
D4
D3
D2
D1
D0
A
1
4
A
1
3
A
1

2
A
1
1
A
1
0
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
IOR
5V
74LS245

B0
B1
B2
B3
B4
B5
B6
B7
A0
A1
A2
A3
A4
A5
A6
A7
E DIR
A
1
5
A
1
4
A
1
3
A
1
2
A

1
1
A
1
0
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
IOW
74LS373
Q0
Q1
Q2

Q3
Q4
Q5
Q6
Q7
D0
D1
D2
D3
D4
D5
D6
D7
OELE

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


Chương trình
mov dx, F000
mov ah, 00
mov al, 01
L1: out dx, al
mov cx, FFFF
L2: dec cx

jnz L2
cmp ah, 00
jne L3
rol al, 1
cmp al, 01
jne L1
jmp L4
L3: ror al, 1
cmp al, 80
jne L1
L4: mov bl, al
in al, dx
cmp al, FF
je L6
test al, 01
jnz L5
xor ah, FF
jmp L6
L5: test al, 80
jz L7
L6: mov al, bl
jmp L1
L7:

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 đó?

Khuyết điểm của thăm dò
mov dx, F000
mov ah, 00
mov al, 01
L1: out dx, al
mov cx, FFFF
L2: dec cx
jnz L2
cmp ah, 00
jne L3
rol al, 1
cmp al, 01
jne L1
jmp L4
L3: ror al, 1
cmp al, 80
jne L1
L4: mov bl, al
in al, dx
cmp al, FF
je L6
test al, 01
jnz L5
xor ah, FF
jmp L6
L5: test al, 80

jz L7
L6: mov al, bl
jmp L1
L7:

Ngắt là gì?

Thăm dò
While studying, I’ll
check the bucket every
5 minutes to see if it is
already full so that I can
transfer the content of
the bucket to the drum.
Input
Device
Memory
µP
instruction
THĂM DÒ

Ngắt
I’ll just study. When the
speaker starts playing
music it means that the
bucket is full. I can
then transfer the
content of the bucket to
the drum.
Input

Device
Memory
µP
instruction
INTERRUPT
Interrupt
request

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

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

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

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)

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

Bảng các vector ngắt

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.

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.
6. 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
7. 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.
8. 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

Phản ứng của vi xử lý khi có ngắt
9. Bộ vi xử lý lưu giá trị hiện thời của thanh ghi cờ vào
stack.
10. Bộ vi xử lý xoá cờ ngắt
11. Bộ vi xử lý lưu giá trị hiện thời của CS vào stack.
12. Bộ vi xử lý lưu giá trị hiện thờI của IP vào stack.
13. 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.
14. Quay trở về bước 2.

8088 và một thiết bị ra đơn giản
A
1
5
8088
Minimum
Mode
A18
A0
:
D7
D6
IOR
IOW
A19
D5
D4
D3
D2
D1
D0
A
1
4
A
1

3
A
1
2
A
1
1
A
1
0
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0

IOW
74LS373
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
D0
D1
D2
D3
D4
D5
D6
D7
OELE

8088 và một thiết bị vào đơn giản
A
1
5
8088
Minimum
Mode
A18
A0
:

D7
D6
IOR
IOW
A19
D5
D4
D3
D2
D1
D0
74LS245
B0
B1
B2
B3
B4
B5
B6
B7
A0
A1
A2
A3
A4
A5
A6
A7
E DIR
A

1
4
A
1
3
A
1
2
A
1
1
A
1
0
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2

A
1
A
0
IOR
5V

8088 và thiết bị vào hoạt động theo cơ chế ngắt
INTR
A
1
5
8088
Minim um
Mode
A18
A0
:
D7
D6
IOR
IOW
A19
D5
D4
D3
D2
D1
D0
74LS245

B7
B6
B5
B4
B3
B2
B1
B0
A7
A6
A5
A4
A3
A2
A1
A0
E
DIR
A
1
4
A
1
3
A
1
2
A
1
1

A
1
0
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
IOR
5V
INTR
INTA

8088 và một thiết bị vào hoạt động theo cơ chế ngắt
INTR

D Qset
Qclr
5V
5V
A
1
5
8088
Minimum
Mode
A18
A0
:
D7
D6
IOR
IOW
A19
D5
D4
D3
D2
D1
D0
74LS245
B0
B1
B2
B3
B4

B5
B6
B7
A7
A6
A5
A4
A3
A2
A1
A0
E
DIR
A
1
4
A
1
3
A
1
2
A
1
1
A
1
0
A
9

A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
IOR
5V
5V
INTR
INTA

8088 và một thiết bị vào hoạt động theo cơ chế ngắt
A
1
5
8088
Minimum

Mode
A18
A0
:
D7
D6
IOR
IOW
A19
D5
D4
D3
D2
D1
D0
74LS245
B7
B6
B5
B4
B3
B2
B1
B0
A7
A6
A5
A4
A3
A2

A1
A0
E
DIR
A
1
4
A
1
3
A
1
2
A
1
1
A
1
0
A
9
A
8
A
7
A
6
A
5
A

4
A
3
A
2
A
1
A
0
IOR
5V
INTR
D Qset
Qclr
5V
5V
INTR
INTA
INTA

×