Tải bản đầy đủ (.pdf) (21 trang)

Tài liệu Thiết bị ngoại vi và ghép nối . chương 3 pptx

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 (549.94 KB, 21 trang )

1
P&I Ch3: Methodes 1
Ch. 3. c¸c ph−¬ng ph¸p
trao ®æi th«ng tin
• Polling - Th¨m dß
• Interrupt - ng¾t &
• DMA - truy nhËp trùc tiÕp mem - IO
P&I Ch3: Methodes 2
3.1. Phương pháp thăm dò (polling)
• K/n Polling: Dùng phần mềm để kiểm tra
các cờ trạng thái @ IO Ports => quyết định
trao đổi số liệu hay không.
• Nhanh, đơn giản, thường dùng trong các hệ
nhỏ hoặc đơn nhiệm - ít thiết bị IO,
• Tốt cho việc thử nghiệm,
• Dùng với các thiết bị ngoại vi tần suất truy
nhập thấp, tốc độ chậm, ví dụ các kênh đo
nhiệt độ,
• Không phù hợp với ‘đa nhi
ệm’, đặc biệt
trong máy tính
2
P&I Ch3: Methodes 3
Ví dụ về PP polling
•Cổng Comm (RS232) của máy tính PC:
– Thanh ghi Line Status Register có các bit:
• b0 – Char received, đã thu xong 1 char,
• b1 – Overrun Error, char bị xóa đè
• b3 – Parity Error
• b4 – Framing Error
• B5 – TxHR Empty, thanh ghi phát rỗng, gửi tiếp


• B6 – Char transmitted
– Polling: thu - kiểm tra b0, phát kiểm tra – b5
P&I Ch3: Methodes 4
Một l−u
®å :
Polling
Device #1 Y
Request ?
N
Device #2 Y
Request ?
N
Device #n Y
Request ?
N
Device #1
Service Routine
Device #2
Service Routine
Device #n
Service Routine
Quit
H×nh 3.1. L−u ®å ph−¬ng ph¸p IO interface polling
3
P&I Ch3: Methodes 5
3.2. Ph−¬ng ph¸p ng¾t (Interrupt)
• Kh¸i niÖm,
• Ph©n lo¹i vµ
• ‘Case studies’
P&I Ch3: Methodes 6

• Là sự dừng thực hiện CTC để thực hiện
ctc, thường là do TBNV yêu cầu thông
qua port.
• Khi CPU đang thực hiện CTC, đến
dòng lệnh thứ n, ngẫu nhiên, ngoại vi
thứ i xin phục vụ bằng cách phát ra tín
hiệu IRQ(i) (Interrupt Request) đến
CPU. Nói chung, CPU sẽ ngừng xử lý
CTC và cất ngữ cảnh (flags và địa chỉ
của lệnh tiếp theo) vào Stack Mem, rồi
tìm địa chỉ của ctc phục vụ ngắt tương
ứng (Interrupt Service Routine - ISR)
để
thực hiện.
• Sau khi thực hiện xong ISR, gặp lệnh
iret (reti...), CPU khôi phục lại ngữ
cảnh (từ Stack Mem) của CTC và tiếp
tục thực hiện.
3.2. Phương pháp ngắt (Interrupt):
3.2.1. Khái niệm
H×nh 3.2. K/n
ng¾t
4
P&I Ch3: Methodes 7
• Đặc điểm:
– Là phương pháp vào/ra kết hợp tín hiệu và phần
mềm, để thực hiện đa nhiệm.
– Đối tượng bị ngắt: CTC bị dừng xử lý để thực hiện
ctc.
– Là chế độ hoạt động riêng cho các Vi xử lý/ máy

tính ON-LINE,
– Nguồn ngắt: chủ yếu từ ngoại vi thông qua IO ports,
CPU (exceptions, internal),
– Xảy ra ngẫu nhiên,
– Nhiều IOs
• => Tranh chấp => Phải giải quyết ưu tiên ngắt.
3.2. Phương pháp ngắt (Interrupt):
3.2.1. Khái niệm:
P&I Ch3: Methodes 8
• Ưu tiên ngắt - Interrupt Priority:
- T/bị ưu tiên cao có thể dừng ISR của t/bị ưu tiên thấp
- Hệ lớn, nhiều IOs thường dùng PIC (Intel PIC8259A)
- Chỉ số ưu tiên do nhà sx qui định cho các t/bị ngoại vi,
cố định, mức 0 là cao nhất.
Theo hình 3.2: Level (j) > Level(i),
i>j.
• Ưu tiên phân định do các tín hiệu ngắt trong CPU (Intel
8085: INTR, 5.5, 6.5, 7.5 và TRAP),
• Z80 CPU & others: ưu tiên theo kiểu Daisy Chain
3.2. Ph−¬ng ph¸p ng¾t (Interrupt): 3.2.1. Kh¸i niÖm
5
P&I Ch3: Methodes 9
a. Software Interrupt:
• Là việc gọi 1 ctc (Subroutine) được xây dựng riêng mà ctc
này còn có thể được gọi bởi thiết bị ngoại vi.
• Các lệnh gọi như INT n; (Intel x86) hay SWI n; (Moto).
• Tuy nhiên, việc thực hiện lệnh ngắt mềm giống như gọi
thủ tục, và đôi khi được hiểu là TRAP,
• Ngắt mềm không phải là ngắt
3.2. Interrupt: 3.2.2. ph©n lo¹i:

Gåm: Hardware, software, internal, exception, NMI...
P&I Ch3: Methodes 10
• Do Ports phát tín hiệu NMI/ IRQ đến CPU.
• Chia thành 2 loại: Maskable & Non Maskable
9 Maskable Interrupt: là các ngắt thông thường, có thể
cấm (disable) bởi lệnh CLI hay cho phép (enable) bởi
lệnh STI (Intel vs Moto!).
Các ngắt sẽ bị cấm (tại CPU) - IF disabled: sau khi CPU
reset, trước đó đã có IRQ khác, sau khi th/h lệnh CLI.
9Non Maskable Interrupt, NMI là ngắt có mức ưu tiên cao
nhất, thường cho các việc: mất điện, sai số liệu (DRAM
parity)... PC hiện nay, thường không dùng NMI.
3.2. Interrupt: 3.2.2. ph©n lo¹i: b. Hardware:
6
P&I Ch3: Methodes 11
Trong mt s CPU, by/ x lý cỏc s kin trong khi
thc hin, nh Intel x86:
- Divide by zero: tng ng thc hin lnh, Int 0,
- Trap - Single Step: thc hin tng lnh, debugger, Int 1,
dựng cựng vi Trap Flag (Trace).
- Break Point: to im dng, debugger, Int 3,
- Overflow: (trn s nguyờn), Int 4
- ...
3.2. Interrupt: 3.2.2. phân loại: c. Internal:
P&I Ch3: Methodes 12
Là vấn đề hay điều kiện để CPU dừng công việc
đang t/h, tìm địa chỉ và thực hiện 1 ctc, đợc thiết kế
để xử lý sự kiện này.
Exception giống Interrupt, thực hiện lệnh riêng.
Trong PC, Exp khác Intr qua 2 điểm:

- Liên quan tới việc thực hiện chơng trình,
-Có u tiên cao để dừng ch/tr
(Apple Macintosh Computers): các Error, thay đổi
điều kiện, kể cả ngắt, đợc CPU phát hiện trong khi
chơng trình đang hoạt động.
3.2. Interrupt: 3.2.2. phân loại: c. Exceptions:
7
P&I Ch3: Methodes 13
a. Intel 8x51 Micro Controllers:
Họ Intel 8x51 có 6 nguồn ngắt:
02 Ext. Interrupts: Int0 và Int1,
03 Timer Interrupts: Timer 0, 1, 2 và
01 Serial port Interrupt (phát/thu char).
ứng với các ngắt này, có các địa chỉ đầu cho ISR
tơng ứng tại trang zero @ Prog. Memory: 0003,
000Bh, 0013h, 001Bh, 0023h và 002Bh.
Tại các địa chỉ này thờng đặt lệnh LJMP nnnn và
đợc đặt lệnh RETI nếu không có ISR.
3.2. Interrupt: 3.2.3. Case study:
tổ chức ngắt của các hệ VXL/Máy tính
P&I Ch3: Methodes 14
b. Z80 system:
Z80-CPU, 3 modes ngắt: Các
lệnh ReStart (nh Intel 8085),
NMI và Daisy Chain. Kiểu Daisy
Chain:
Ghép nối với các Z80-Ports:
Z80-PIO, Z80-SIO, Z80-CTC...
IRQs từ các ports là Open Drain,
Khi CPU: M1 & IO Request =>

INTA đến port1,
Nếu Port1 Resq, sẽ phát m
Addr lên data bus, nếu không
Chuyển INTA đến Port 2...
Ưu tiên cố định/ jumper.
3.2. Interrupt: 3.2.3. Case study:
ngắt các hệ VXL/Máy tính
8
P&I Ch3: Methodes 15
c. x86 & PC interrupt : Real & Protected modes
REAL MODE: Bảng vector ngắt IVT - Interrupt
Vector Table: 1
st
kilo byte (RAM) bảng vector ngắt
1 KB = 256 elements of 4 bytes
Chứa địa chỉ đầu của ISR tơng ứng CS:IP. Khi khởi
tạo, BIOS nạp vào IVT đcđ của các ISR ứng với IO.
Đổi vector ngắt: đổi nội dung các vector này
Các ngắt cứng, NMI và Internal đều tơng ứng với 1
lệnh ngắt mềm có cùng vector type, tức có vector
trong bảng IVT.
3.2. Interrupt: 3.2.3. Case study:
ngắt các hệ VXL/Máy tính
P&I Ch3: Methodes 16
3.2. Interrupt: 3.2.3. Case study: x86 & pc IVT

×