Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối - Chương 3: Các phương pháp trao đổi thông tin - Bùi Quốc Anh

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  
1
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,  
• Có thể đa nhiệm cho các đối tượng có hằng số thời gian  
>>, 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  
P&I  
Ch3: Methodes  
2
1
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 đè  
• b2 – Parity Error  
• b3 – Framing Error  
• B4 – Break Interrupt  
• 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  
3
Polling  
Một lưu đồ  
thăm dò:  
Device #1  
Request ?  
Y
Device #1  
Service Routine  
N
Device #2  
Request ?  
Y
Device #2  
Service Routine  
N
Device #n  
Request ?  
Y
Device #n  
Service Routine  
N
Quit  
Hình 3.1. Lưu đồ phương pháp  
IO interface polling  
P&I  
Ch3: Methodes  
4
2
3.2. Phương pháp ngắt (Interrupt)  
• Khái niệm,  
• Phân loại và  
• Case studies  
P&I  
Ch3: Methodes  
5
3.2. Phương pháp ngắt (Interrupt):  
3.2.1. Khái niệm  
•
•
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.  
H×nh 3.2. K/n  
ng¾t  
P&I  
Ch3: Methodes  
6
3
3.2. Phương pháp ngắt (Interrupt):  
3.2.1. Khái niệm:  
• Đặ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.  
P&I  
Ch3: Methodes  
7
3.2. Interrupt: 3.2.1. Khái niệm  
• Ư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  
P&I  
Ch3: Methodes  
8
4
3.2. Interrupt: 3.2.2. Phân loại:  
(Hardware, software, internal, exception, NMI...)  
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  
P&I  
Ch3: Methodes  
9
3.2. Interrupt: 3.2.2. Phân loại: b. Hardware:  
• Do Ports phát tín hiệu NMI/ IRQ đến CPU.  
• Chia thành 2 loại: Maskable & Non Maskable  
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.  
Non 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.  
P&I  
Ch3: Methodes  
10  
5
3.2. Interrupt: 3.2.2. Phân loại: c. Internal:  
Trong một số CPU, để bẫy/ để xử lý các sự kiện trong  
khi thực hiện, như Intel x86:  
- Divide by zero: tương ứng thực hiện lệnh, Int 0,  
- Trap - Single Step: thực hiện từng lệnh, debugger,  
Int 1, dùng cùng với Trap Flag (Trace).  
- Break Point: tạo điểm dừng, debugger, Int 3,  
- Overflow: (tràn số nguyên), Int 4  
- ...  
P&I  
Ch3: Methodes  
11  
3.2. Interrupt: 3.2.2. Phân loại: c. Exceptions:  
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.  
P&I  
Ch3: Methodes  
12  
6
3.2. Interrupt: 3.2.3. Case study:  
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.  
P&I  
Ch3: Methodes  
13  
3.2. Interrupt: 3.2.3. Case study:  
• 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.  
P&I  
Ch3: Methodes  
14  
7
3.2. Interrupt: 3.2.3. Case study:  
c. x86 & PC interrupt : Real & Protected modes  
REAL MODE: Bảng vector ngắt IVT - Interrupt Vector  
Table: 1st 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.  
P&I  
Ch3: Methodes  
15  
3.2. Interrupt: 3.2.3. Case study: x86 & PC IVT  
P&I  
Ch3: Methodes  
16  
8
3.2. Interrupt: 3.2.3. Case study: x86 & PC, int n instruction  
SOFTWARE INTERRUPT:  
lệnh Int n, n=0..FFh, n - vector type  
Mô tả lệnh:  
Trước khi thực hiện lệnh, phải có chtr khởi tạo ngắt (Intr house-  
keeping): định vị ISR và đổi vector ngắt,  
Khi gặp lệnh Int n, CPU sẽ cất 6 byte Flag Reg, CS và IP vào  
Stack mem,  
(n x 4) là địa chỉ IVT, đọc 4 byte nạp vào IP và CS tương ứng  
=> ISR bắt đầu được thực hiện.  
Khi gặp lệnh IRET, CPU khôi phục lại từ Stack Mem IP, CS và  
Flag Reg (LIFO!).  
P&I  
Ch3: Methodes  
17  
3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int  
Hardware Interrupt, IRQ:  
IRQ trong PC: dïng 2 PICs - Priority Interrupt Controller  
PIC 8259A  
Master PIC (địa chỉ: 20h, 21h, IO Space), IRQ0..IRQ7  
=> Int  
8..Int 0Fh  
Slave PIC (địa chỉ: 0a0h, 0a1h) = IRQ8..IRQ15 =>  
=> Int 70h..Int 77h  
P&I  
Ch3: Methodes  
18  
9
3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int  
PCI bus dùng chung 1 IRQ  
P&I  
Ch3: Methodes  
19  
3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int  
Priority Interrupt Controller Intel 8259A  
Quản lý 8 Channel (8 I/O ports)  
Ưu tiên cố định, vòng, vòng định trước,  
Nối tầng với Slave PIC(s), mở rộng thêm IOs  
Nhiều chế độ hoạt động:  
ICWs: để định các chế độ (itnit) như: 8/16 bit,  
IRQ là xung hay sườn, kiểu ưu tiên…  
Operation CWs: lưu các trạng thái trong quá trình  
hoạt động, ghi ra các từ điều khiển hoạt động  
Dùng với nhiều hệ VXL của Intel và PC  
... Tham khảo VXL của MTV  
P&I  
Ch3: Methodes  
20  
10  
Các IRQ được mô tả theo mức ưu tiên giảm dần:  
• NMI: Báo lỗi DRAM parity error và IO check  
Error, PC (now) thường không áp dụng  
• IRQ0: System Timer, HĐH và các ứng dụng căn cứ  
nhịp thời gian này để thực hiện các tác vụ chu kỳ  
55ms, được tạo từ:  
14.31818 MHz/3 = 4.77MHz  
4.77 MHz/4 = 1.19 MHz, qua PIT8254,  
f = 1.19MHz/65536 = 18.2Hz T=55ms  
(Channel 0 của PIT8254, divisor=65536)  
• IRQ1: Key board Port Interrupt: khi có người dùng  
bấm phím. Sau khi đã kiểm tra make & break codes,  
nếu OK, uC 8042 sẽ convert KB scan code => sys  
scan code và phát IRQ1  
P&I  
Ch3: Methodes  
21  
– IRQ2: Nối sang Slave PIC, mở rộng các thiết bị  
ngoại vi  
• IRQ8: Real time Clock – RTC, (Motorola  
MC146818 hoặc Dallas 12C887) được lập trình  
đúng hết Thế kỷ 21 (Option DS1307 – I2C)  
• IRQ9: Thay cho IRQ2 trước đây, thường là ngắt  
màn hình – unused, reserved  
• IRQ10: Reserved (available)  
• IRQ11: Reserved  
• IRQ12:  
PS/2 mouse mỗi khi chuột được bấm,  
di, scrolling… sẽ gửi về CS code và goi IRQ12  
P&I  
Ch3: Methodes  
22  
11  
• IRQ13: Math Processor Errors: báo thực hiện xong  
phép tính, báo lỗi phép toán: chia zero, căn bậc chẵn  
của số âm, arcsin >1, loga của số âm, số 0...  
• IRQ14: IDE ghép qua ISA bus = báo ngắt mỗi khi  
HD Controller thực hiện xong 1 lệnh do CS yêu cầu  
(có kết quả tốt hay lỗi)  
• IRQ15: Reserved – Đ/v Industrial PC Watch Dog  
Timer – WDT, là mạch chống treo.  
P&I  
Ch3: Methodes  
23  
Watch Dog Timer - iPC  
• Là cơ chế dùng để chống treo cho VXL  
• Dùng 01 counter, và mạch Oscillator độc lập với  
CPU.  
• Trong quá trình hoạt động, theo 1 chu kỳ, do  
IRQ15 gọi ISR15 nạp giá trị preload cho counter  
để sao cho nội dung bộ đếm không về đến zero.  
Nếu CPU bị treo (halted), bộ đếm sẽ đếm lùi đần  
đến zero, phát ra xung BORROW OUT, xung này  
sẽ reset CPU – cold start.  
• Tùy thuộc vào hằng số thời gian của đối tượng,  
tùy từng hệ thống, bộ đếm WDT có thể được nạp  
giá trị đếm, nạp số chia tần để các khoảng thời  
gian từ 200us, 2ms, 20ms, 200ms, 2s đến 20s  
P&I  
Ch3: Methodes  
24  
12  
Fig. 3.5b Watch dog Timer principle  
P&I  
Ch3: Methodes  
25  
• IRQ3: Cổng truyền tin RS232 số 2  
(Comm2), báo ngắt khi: thu/phát xong 1  
byte, lỗi khi thu, có tín hiệu báo về từ thiết  
bị ngoài  
• IRQ4: như IRQ3 nhưng cho Comm1  
• IRQ5: Cổng máy in số 2 – LPT2, báo  
ngắt mỗi khi có sườn xuống của xung ACK  
(từ máy in hoặc từ bên ngoài) – Reserved  
P&I  
Ch3: Methodes  
26  
13  
• IRQ6: FDC Interrupt – Floppy Disk Contronller  
báo thực hiện xong 1 lệnh do CS yêu cầu (có kết  
quả normal or error), như khởi động xong motor,  
tìm thấy track, tìm thấy sector, ghi/đọc/verify  
xong 1 sector, format 1 track...  
• IRQ7: Như 5, LPT1  
• Chú ý: các thiết bị ghép qua PCI bus dùng  
chung 1 IRQ => CRTC, HDC, USB controller,  
Sound Controller... không dùng ngắt riêng –  
thường dùng chung IRQ11  
P&I  
Ch3: Methodes  
27  
3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int  
HARDWARE INTERRUPT, IRQ:  
Hoạt động Hardware Intr trong PC (xem PIC 8259A)  
Interrupt Housekeeping - chuẩn bị:  
ISR, ví dụ files.sys[com], gmouse.com - cổng comm1  
Load ISR và xác định địa chỉ vật lý,  
Thay vector ngắt, cần lưu vector cũ?  
Enabling IRQi @ PIC’s, Mask Reg (OCW1): b(i) = 0,  
Enabling cờ IF trong CPU, lệnh STI, Set Interrupt Enable  
Flag, cho phép ngắt.  
P&I  
Ch3: Methodes  
28  
14  
P&I  
Ch3: Methodes  
29  
3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int  
Hoạt động:  
Khi trao đổi số liệu: Ngoại vi <=> với IO port  
IO port phát tín hiệu IRQ(i) tới PIC 8259A,  
Nếu được, PIC phát tín hiệu INT => CPU. CPU thực  
hiện nốt lệnh hiện tại  
CPU cất ngữ cảnh của main prog. vào stack mem  
T/h #1 INTA bus cycle => Prioritizing, thiết lập ưu tiên  
T/h #2 INTA bus cycle => đọc Vector type của IO port,  
VectorType = i+8; nếu i =0..7 int8.. int 0Fh  
= i+ 68h nếu i = 8..15 int 70h..int 77h  
P&I  
Ch3: Methodes  
30  
15  
3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int  
CPU lấy (VectorType x 4) => IVT, đọc ISR đcđ tương ứng,  
nạp vào IP&CS, IRS bắt đầu được thực hiện.  
Lưu ý khi xây dựng ISR: (nếu dùng ASM)  
- Realtime Prog. Languages: MASM, C...  
- Enabling Interrupt for Higher priority Levels,  
- Cất những thanh ghi-ISR dùngvào STACK Mem,  
- T/h nội dung ISR,  
- Khôi phục Reg từ STACK Mem, LIFO,  
- Depriorotizing: OCW2:  
Ví dụ:  
mov al, 20h  
out 20h, al ; Non Specific EOI  
iret  
; Return fron Intr.  
P&I  
Ch3: Methodes  
31  
3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int  
d. Xây dựng PC ISR:  
- NN cao Pascal/C: Pointers (for Old Vector) và procedure có  
chỉ dẫn Interrupt. Chú ý cần có thêm các lệnh STI và CLI hoặc  
inline mã máy FAh và FBh (En/Dis).  
- MASM và OS: thay vector ngắt trực tiếp, lệnh mov các con  
trỏ vào IVT; int 21h subfunctions: 25h và 35h của DOS.  
- Case Study: Xây dựng ứng dụng dùng ngắt cứng để ghép nối  
ngoại vi: IRQ1 (Any key), IRQ4: CommPort, IRQ5 (Option) hoặc  
IRQ7 (LPT1, Falling Edge of -ACK), cảnh báo virus ...  
- Thường trú ngắt thời gian Int 1Ch thuộc Int 8 ISR, Timer  
P&I  
Ch3: Methodes  
32  
16  
3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int  
80x86 Interrupt in  
Protected Mode:  
•
Int. Descriptor Table  
(IDT) có thể định vị bất kỳ  
vùng nhớ nào  
•
Vị trí và kích thước  
trong bảng IDTR: 32bit  
addr và 16 bit limit  
•
•
Gate, not vector.  
256 gate descriptor:  
trap/ interrupt/ task - ISR's  
Addr & Attribute  
•
Int/ trap cho phép  
chuyển đến ISR trong  
current task.  
P&I  
Ch3: Methodes  
33  
3.2. Interrupt: 3.2.3. Case study: x86 & pc, Int. instruction  
CLI  
STI  
LIDT EA ; Load IDT từ Effct Addr  
SIDT EA  
INT n  
IRET  
INT O  
HLT  
WAIT  
; ( INT 4)  
; Wait for Ext IRQ or Reset  
; Wait for -Busy => inactive  
P&I  
Ch3: Methodes  
34  
17  
3.3. DIRECT MEMORY ACCESS - DMA  
3.3.1. KHÁI NIỆM:  
•Controlled by DMAC, bus master (phát địa chỉ, th điều khiển  
bus)  
• In/Out dùng hardware [burst mode] => nhanh,  
• 2-5 MBps ISA bus (max 33 MBps, MCA/EISA bus)  
• Chuyển block/ Single byte (FDC)  
• IO port  Mem, Mem  Mem (ít)  
• Specified Block/ IO Requirement  
• Stealing cycle (DRAM controller Intel 8208)  
P&I  
Ch3: Methodes  
35  
3.3. direct memory access – DMA  
3.3.1. Khái niệm DMA:  
P&I  
Ch3: Methodes  
36  
18  
3.3. Direct Memory Access – DMA  
3.3.2. dmac 8237a, Intel : MTV  
4 Channel of 8/16 bit  
IOR-MEMW & MEMR-IOW DMA bus cycles  
Mem to Mem  
Single byte/ block transfer (64KB/Kw max)  
Ưu tiên cố định/ vòng  
Specified block (kết thúc bởi t/h TC) / IO  
Requirement (EoP)  
Nối tầng để mở rộng số kênh DMA  
...  
P&I  
Ch3: Methodes  
37  
3.3. direct memory access - dma  
3.3.3. PC’s dma:  
• DMAC#1: 8 bit Channels, 64KB max, 0h-0fh addr  
• Ch0 - DRAM Refresh, Spare  
• Ch1 - SDLC, LPT’s EPP/ECP/IEEE1284 mode Alt., Spare  
• Ch2 - FDC, single byte mode  
• Ch3 - LPT’s EPP/ECP/IEEE1284 mode, Ir port (IEEE  
802.11b), Spare  
• DMAC #2: 16 bit Channels, 64KW max, 0C0-0Cfh ®Þa chØ  
• Ch4 - Cascade for DMAC 1  
• Ch5 - HDC ISA bus, spare  
• Ch6 - Spare,  
• Ch7 - Spare.  
• Page Registers: 080h..08Fh: Gi÷ ®Þa chØ cao v× DMAC chØ ph¸t  
16 low addr bit  
• SysBus in DMA mode, AEN = 1 (Addr Enable)  
P&I  
Ch3: Methodes  
38  
19  
3.3. direct memory access - dma  
3.3.3. PC’s DMA: Case study – Sơ đồ khối:  
IOR  
P&I  
Ch3: Methodes  
39  
3.3. Direct Memory Access – DMA  
3.3.3. PC’s dma: Case study:  
• DMA Housekeeping khởi tạo trước khi hoạt động  
– DMAC as Passive Device:  
– Addr lines (DMAC & Page Reg) input/ Hi-Z  
– Init: 8bit(Master:0..1F)/ 16bit (Slave:0C0..0DFh)  
• Channel (i): DRQi và -DACKi trên ISA bus.  
• Port (IO Addr), AEN = 1 (Address decode)  
• IOR-MEMW hay MEMR-IOW  
• Hi Addr of data memory => page reg t/ứng. Addr từ Ch0  
(hex): 87, 83, 81, 82, 88, 89, 8A, IO space  
• Low Addr => BaseAddrRegi, (TechHelp 6.0)  
• Kích thước mảng: BaseCounteri  
• Single byte/ block  
• Specificed block/ IO Port Requirement  
• Burst mode: SRAM và counter- địa chỉ, DACKi  
P&I  
Ch3: Methodes  
40  
20  
Tải về để xem bản đầy đủ
pdf 21 trang Thùy Anh 16460 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối - Chương 3: Các phương pháp trao đổi thông tin - Bùi Quốc Anh", để 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_thiet_bi_ngoai_vi_va_ky_thuat_ghep_noi_chuong_3_ca.pdf