Bài giảng Kỹ thuật Vi xử lý - Chương 6: Các kiểu I/O - Hồ Viết Việt

Bài giảng Kỹ thuật Vi xử lý  
Ngành Điện tử-Viễn thông  
Đại học Bách khoa Đà Nẵng  
của Hồ Viết Việt, Khoa ĐTVT  
Tài liệu tham khảo  
[1] Kỹ thuật vi xử lý, Văn Thế Minh, NXB Giáo dục, 1997  
[2] Kỹ thuật vi xử lý và Lập trình Assembly cho hệ vi xử  
lý, Đỗ Xuân Tiến, NXB Khoa học & kỹ thuật, 2001  
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ò  
A19  
A18  
:
5V  
A0  
D7  
D6  
D5  
D4  
D3  
D2  
D1  
D0  
A0  
A1  
A2  
A3  
A4  
B0  
B1  
B2  
B3  
B4  
B5  
B6  
B7  
74LS245  
A5  
A6  
A7  
8088  
Minimum  
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  
1 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0  
5 4 3 2 1 0  
IOR  
:
:
A19  
A18  
:
5V  
The Circuit  
A0  
D7  
D6  
D5  
D4  
D3  
D2  
D1  
D0  
A0  
B0  
B1  
B2  
B3  
B4  
B5  
B6  
B7  
A1  
A2  
A3  
A4  
A5  
A6  
A7  
74LS245  
8088  
Minimum  
Mode  
E
DIR  
D0  
D1  
D2  
D3  
D4  
D5  
D6  
D7  
Q0  
Q1  
Q2  
Q3  
Q4  
Q5  
Q6  
Q7  
IOR  
IOW  
74LS373  
LE  
OE  
AAAAAAAAAAAAAAAA  
1111119876543210  
543210  
IOR  
AAAAAAAAAAAAAAAA  
1111119876543210  
543210  
IOW  
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  
out dx, al  
mov cx, FFFF  
dec cx  
L4:  
mov bl, al  
in al, dx  
cmp al, FF  
je L6  
L1:  
L2:  
test al, 01  
jnz L5  
jnz L2  
xor ah, FF  
jmp L6  
cmp ah, 00  
jne L3  
rol al, 1  
cmp al, 01  
jne L1  
L5:  
L6:  
L7:  
test al, 80  
jz  
L7  
mov al, bl  
jmp L1  
jmp L4  
L3:  
ror al, 1  
cmp al, 80  
jne L1  
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  
out dx, al  
mov cx, FFFF  
dec cx  
L4:  
mov bl, al  
in al, dx  
cmp al, FF  
je L6  
L1:  
L2:  
test al, 01  
jnz L5  
jnz  
L2  
xor ah, FF  
jmp L6  
cmp ah, 00  
jne L3  
rol al, 1  
cmp al, 01  
jne L1  
L5:  
L6:  
L7:  
test al, 80  
jz  
L7  
mov al, bl  
jmp L1  
jmp L4  
L3:  
ror al, 1  
cmp al, 80  
jne L1  
Ngắt là gì?  
Thăm dò  
instruction  
Input  
Device  
While studying, I’ll  
check the bucket every 5  
minutes to see if it is  
Memory  
already full so that I can  
transfer the content of  
the bucket to the drum.  
µP  
THĂM DÒ  
Ngắt  
instruction  
Input  
Device  
I’ll just study. When the  
Memory  
speaker starts playing  
music it means that the  
bucket is full. I can then  
transfer the content of  
the bucket to the drum.  
Interrupt  
request  
µP  
INTERRUPT  
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.  
Tải về để xem bản đầy đủ
pdf 43 trang baolam 21880 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật Vi xử lý - Chương 6: Các kiểu I/O - Hồ Viết Việt", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_ky_thuat_vi_xu_ly_chuong_6_cac_kieu_io_ho_viet_vie.pdf