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 PHƯƠNG PHÁP  
TRAO ĐỔI THÔNG TIN  
Polling - Thăm dò  
Interrupt - ngt &  
DMA - truy nhp trc tiếp mem - IO  
P&I  
Ch3: Methodes  
1
3.1. Phương pháp thăm dò (polling)  
• K/n Polling: Dùng phn mm để kim tra các ctrng  
thái @ IO Ports => quyết định trao đổi sliu hay  
không.  
• Nhanh, đơn gin, thường dùng trong các hnhhoc  
đơn nhim - ít thiết bIO,  
• Tt cho vic thnghim,  
• Có thể đa nhim cho các đối tượng có hng sthi gian  
>>, các thiết bngoi vi tn sut truy nhp thp, tc độ  
chm. Ví dcác kênh đo nhit độ,  
• Không phù hp vi ‘đa nhim’, đặc bit trong máy tính  
P&I  
Ch3: Methodes  
2
1
Ví dvPP polling  
• Cng Comm (RS232) ca 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 bxóa đè  
• b2 – Parity Error  
• b3 – Framing Error  
• B4 – Break Interrupt  
• B5 – TxHR Empty, thanh ghi phát rng, gi tiếp  
• B6 – Char transmitted  
– Polling: thu - kim tra b0, phát kim tra – b5  
P&I  
Ch3: Methodes  
3
Polling  
Mt 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 ngt (Interrupt)  
Khái nim,  
Phân loi và  
Case studies  
P&I  
Ch3: Methodes  
5
3.2. Phương pháp ngt (Interrupt):  
3.2.1. Khái nim  
Là sdng thc hin CTC để thc hin  
ctc, thưng là do TBNV yêu cu thông  
qua port.  
Khi CPU đang thc hin CTC, đến dòng  
lnh thn, ngu nhiên, ngoi vi thi xin  
phc vbng cách phát ra tín hiu IRQ(i)  
(Interrupt Request) đến CPU. Nói chung,  
CPU sngng xlý CTC và ct ngcnh  
(flags và địa chca lnh tiếp theo) vào  
Stack Mem, ri tìm địa chca ctc phc  
vngt tương ứng (Interrupt Service  
Routine - ISR) để thc hin.  
Sau khi thc hin xong ISR, gp lnh iret  
(reti...), CPU khôi phc li ngcnh (từ  
Stack Mem) ca CTC và tiếp tc thc  
hin.  
H×nh 3.2. K/n  
ng¾t  
P&I  
Ch3: Methodes  
6
3
3.2. Phương pháp ngt (Interrupt):  
3.2.1. Khái nim:  
Đặc điểm:  
– Là phương pháp vào/ra kết hp tín hiu và phn mm,  
để thc hin đa nhim.  
Đối tượng bngt: CTC bdng xđể thc hin ctc.  
– Là chế độ hot động riêng cho các Vi xlý/ máy tính  
ON-LINE,  
– Ngun ngt: chyếu tngoi vi thông qua IO ports,  
CPU (exceptions, internal),  
– Xy ra ngu nhiên,  
– Nhiu IOs  
• => Tranh chp => Phi gii quyết ưu tiên ngt.  
P&I  
Ch3: Methodes  
7
3.2. Interrupt: 3.2.1. Khái nim  
Ưu tiên ngt - Interrupt Priority:  
- T/bị ưu tiên cao có thdng ISR ca t/bị ưu tiên thp  
- Hln, nhiu IOs thường dùng PIC (Intel PIC8259A)  
- Chsố ưu tiên do nhà sx qui định cho các t/bngoi vi, cố  
định, mc 0 là cao nht.  
Theo hình 3.2:  
Level (j) > Level(i),  
i>j.  
Ưu tiên phân định do các tín hiu ngt trong CPU (Intel 8085:  
INTR, 5.5, 6.5, 7.5 và TRAP),  
• Z80 CPU & others: ưu tiên theo kiu Daisy Chain  
P&I  
Ch3: Methodes  
8
4
3.2. Interrupt: 3.2.2. Phân loi:  
(Hardware, software, internal, exception, NMI...)  
a. Software Interrupt:  
• Là vic gi 1 ctc (Subroutine) được xây dng riêng mà ctc  
này còn có thể được gi bi thiết bngoi vi.  
• Các lnh gi như INT n; (Intel x86) hay SWI n; (Moto).  
• Tuy nhiên, vic thc hin lnh ngt mm ging như gi thủ  
tc, và đôi khi được hiu là TRAP,  
• Ngt mm không phi là ngt  
P&I  
Ch3: Methodes  
9
3.2. Interrupt: 3.2.2. Phân loi: b. Hardware:  
• Do Ports phát tín hiu NMI/ IRQ đến CPU.  
• Chia thành 2 loi: Maskable & Non Maskable  
Maskable Interrupt: là các ngt thông thường, có thcm  
(disable) bi lnh CLI hay cho phép (enable) bi lnh STI  
(Intel vs Moto!).  
Các ngt sbcm (ti CPU) - IF disabled: sau khi CPU  
reset, trước đó đã có IRQ khác, sau khi th/h lnh CLI.  
Non Maskable Interrupt, NMI là ngt có mc ưu tiên cao  
nht, thường cho các vic: mt điện, sai sliu (DRAM  
parity)... PC hin nay, thường không dùng NMI.  
P&I  
Ch3: Methodes  
10  
5
3.2. Interrupt: 3.2.2. Phân loi: c. Internal:  
Trong mt sCPU, để by/ để xlý các skin trong  
khi thc hin, như Intel x86:  
- Divide by zero: tương 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 điểm dng, debugger, Int 3,  
- Overflow: (tràn snguyên), Int 4  
- ...  
P&I  
Ch3: Methodes  
11  
3.2. Interrupt: 3.2.2. Phân loi: c. Exceptions:  
Là vn đề hay điều kin để CPU dng công vic đang  
t/h, tìm địa chvà thc hin 1 ctc, được thiết kế để xử  
lý skin này.  
- Exception ging Interrupt, thc hin lnh riêng.  
- Trong PC, Exp khác Intr qua 2 điểm:  
- Liên quan ti vic thc hin chương trình,  
- Có ưu tiên cao để dng ch/tr  
(Apple Macintosh Computers): các Error, thay đổi  
điều kin, kcngt, được CPU phát hin trong khi  
chương trình đang hot động.  
P&I  
Ch3: Methodes  
12  
6
3.2. Interrupt: 3.2.3. Case study:  
a. Intel 8x51 Micro Controllers:  
HIntel 8x51 có 6 ngun ngt:  
02 Ext. Interrupts: Int0 và Int1,  
03 Timer Interrupts: Timer 0, 1, 2 và  
01 Serial port Interrupt (phát/thu char).  
ng vi các ngt này, có các địa chỉ đu cho ISR tương ứng ti  
trang zero @ Prog. Memory: 0003, 000Bh, 0013h, 001Bh,  
0023h và 002Bh.  
Ti các địa chnày thưng đặt lnh LJMP nnnn và được đặt lnh  
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 ngt: Các  
lnh ReStart (như Intel 8085),  
NMI và Daisy Chain. Kiu  
Daisy Chain:  
• Ghép ni vi các Z80-Ports:  
Z80-PIO, Z80-SIO, Z80-CTC...  
• IRQs tcác ports là Open  
Drain,  
• Khi CPU: M1 & IO Request  
=> INTA đến port1,  
• Nếu Port1 Resq, sphát mã  
‘Addr’ lên data bus, nếu không  
• Chuyn 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: Bng vector ngt IVT - Interrupt Vector  
Table: 1st kilo byte (RAM) bng vector ngt  
1 KB = 256 elements of 4 bytes  
Cha địa chỉ đu ca ISR tương ứng CS:IP. Khi khi to,  
BIOS np vào IVT đcđ ca các ISR ng vi IO.  
Đổi vector ngt: đổi ni dung các vector này  
Các ngt cng, NMI và Internal đều tương ứng vi 1 lnh  
ngt mm có cùng vector type, tc có vector trong bng 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:  
lnh Int n, n=0..FFh, n - vector type  
tlnh:  
Trước khi thc hin lnh, phi có chtr khi to ngt (Intr house-  
keeping): định vISR và đổi vector ngt,  
Khi gp lnh Int n, CPU sct 6 byte Flag Reg, CS và IP vào  
Stack mem,  
(n x 4) là địa chIVT, đọc 4 byte np vào IP và CS tương ứng  
=> ISR bt đầu được thc hin.  
Khi gp lnh IRET, CPU khôi phc li tStack 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  
Qun lý 8 Channel (8 I/O ports)  
Ưu tiên cố định, vòng, vòng định trước,  
Ni tng vi Slave PIC(s), mrng thêm IOs  
Nhiu chế độ hot động:  
ICWs: để định các chế độ (itnit) như: 8/16 bit,  
IRQ là xung hay sườn, kiu ưu tiên…  
Operation CWs: lưu các trng thái trong quá trình  
hot động, ghi ra các từ điều khin hot động  
Dùng vi nhiu hVXL ca Intel và PC  
... Tham kho VXL ca MTV  
P&I  
Ch3: Methodes  
20  
10  
Các IRQ được mô ttheo mc ưu tiên gim dn:  
• NMI: Báo li DRAM parity error và IO check  
Error, PC (now) thường không áp dng  
• IRQ0: System Timer, HĐH và các ng dng căn cứ  
nhp thi gian này để thc hin các tác vchu kỳ  
55ms, được to 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 ca PIT8254, divisor=65536)  
• IRQ1: Key board Port Interrupt: khi có người dùng  
bm phím. Sau khi đã kim tra make & break codes,  
nếu OK, uC 8042 sconvert KB scan code => sys  
scan code và phát IRQ1  
P&I  
Ch3: Methodes  
21  
– IRQ2: Ni sang Slave PIC, mrng các thiết bị  
ngoi vi  
• IRQ8: Real time Clock – RTC, (Motorola  
MC146818 hoc Dallas 12C887) được lp trình  
đúng hết Thế k21 (Option DS1307 – I2C)  
• IRQ9: Thay cho IRQ2 trước đây, thưng là ngt  
màn hình – unused, reserved  
• IRQ10: Reserved (available)  
• IRQ11: Reserved  
• IRQ12:  
PS/2 mouse mi khi chut được bm,  
di, scrolling… sgi vCS code và goi IRQ12  
P&I  
Ch3: Methodes  
22  
11  
• IRQ13: Math Processor Errors: báo thc hin xong  
phép tính, báo li phép toán: chia zero, căn bc chn  
ca sâm, arcsin >1, loga ca sâm, s0...  
• IRQ14: IDE ghép qua ISA bus = báo ngt mi khi  
HD Controller thc hin xong 1 lnh do CS yêu cu  
(có kết qutt hay li)  
• IRQ15: Reserved – Đ/v Industrial PC Watch Dog  
Timer – WDT, là mch chng treo.  
P&I  
Ch3: Methodes  
23  
Watch Dog Timer - iPC  
• Là chế dùng để chng treo cho VXL  
• Dùng 01 counter, và mch Oscillator độc lp vi  
CPU.  
• Trong quá trình hot động, theo 1 chu k, do  
IRQ15 gi ISR15 np giá trpreload cho counter  
để sao cho ni dung bộ đếm không về đến zero.  
Nếu CPU btreo (halted), bộ đếm sẽ đếm lùi đần  
đến zero, phát ra xung BORROW OUT, xung này  
sreset CPU – cold start.  
• Tùy thuc vào hng sthi gian ca đối tượng,  
tùy tng hthng, bộ đếm WDT có thể được np  
giá trị đếm, np schia tn để các khong thi  
gian t200us, 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: Cng truyn tin RS232 s2  
(Comm2), báo ngt khi: thu/phát xong 1  
byte, li khi thu, có tín hiu báo vtthiết  
bngoài  
• IRQ4: như IRQ3 nhưng cho Comm1  
• IRQ5: Cng máy in s2 – LPT2, báo  
ngt mi khi có sườn xung ca xung ACK  
(tmáy in hoc tbên ngoài) – Reserved  
P&I  
Ch3: Methodes  
26  
13  
• IRQ6: FDC Interrupt – Floppy Disk Contronller  
báo thc hin xong 1 lnh do CS yêu cu (có kết  
qunormal or error), như khi động xong motor,  
tìm thy track, tìm thy sector, ghi/đọc/verify  
xong 1 sector, format 1 track...  
• IRQ7: Như 5, LPT1  
Chú ý: các thiết bghép qua PCI bus dùng  
chung 1 IRQ => CRTC, HDC, USB controller,  
Sound Controller... không dùng ngt 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:  
Hot động Hardware Intr trong PC (xem PIC 8259A)  
Interrupt Housekeeping - chun b:  
ISR, ví dfiles.sys[com], gmouse.com - cng comm1  
Load ISR và xác định địa chvt lý,  
Thay vector ngt, cn lưu vector cũ?  
Enabling IRQi @ PIC’s, Mask Reg (OCW1): b(i) = 0,  
Enabling cIF trong CPU, lnh STI, Set Interrupt Enable  
Flag, cho phép ngt.  
P&I  
Ch3: Methodes  
28  
14  
P&I  
Ch3: Methodes  
29  
3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int  
Hot động:  
Khi trao đổi sliu: Ngoi vi <=> vi IO port  
IO port phát tín hiu IRQ(i) ti PIC 8259A,  
Nếu được, PIC phát tín hiu INT => CPU. CPU thc  
hin nt lnh hin ti  
CPU ct ngcnh ca main prog. vào stack mem  
T/h #1 INTA bus cycle => Prioritizing, thiết lp ưu tiên  
T/h #2 INTA bus cycle => đọc Vector type ca 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 ly (VectorType x 4) => IVT, đọc ISR đcđ tương ứng,  
np vào IP&CS, IRS bt đầu được thc hin.  
Lưu ý khi xây dng ISR: (nếu dùng ASM)  
- Realtime Prog. Languages: MASM, C...  
- Enabling Interrupt for Higher priority Levels,  
- Ct nhng thanh ghi-ISR dùngvào STACK Mem,  
- T/h ni dung ISR,  
- Khôi phc Reg tSTACK 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 dng PC ISR:  
- NN cao Pascal/C: Pointers (for Old Vector) và procedure có  
chdn Interrupt. Chú ý cn có thêm các lnh STI và CLI hoc  
inline mã máy FAh và FBh (En/Dis).  
- MASM và OS: thay vector ngt trc tiếp, lnh mov các con  
trvào IVT; int 21h subfunctions: 25h và 35h ca DOS.  
- Case Study: Xây dng ng dng dùng ngt cng để ghép ni  
ngoi vi: IRQ1 (Any key), IRQ4: CommPort, IRQ5 (Option) hoc  
IRQ7 (LPT1, Falling Edge of -ACK), cnh báo virus ...  
- Thường trú ngt thi gian Int 1Ch thuc 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 vbt kỳ  
vùng nhnào  
Vtrí và kích thưc  
trong bng 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  
chuyn đế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 tEffct 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 NIM:  
•Controlled by DMAC, bus master (phát địa ch, th điều khin  
bus)  
• In/Out dùng hardware [burst mode] => nhanh,  
• 2-5 MBps ISA bus (max 33 MBps, MCA/EISA bus)  
• Chuyn 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 nim 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 bi t/h TC) / IO  
Requirement (EoP)  
Ni tng để mrng skê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ơ đồ khi:  
IOR  
P&I  
Ch3: Methodes  
39  
3.3. Direct Memory Access – DMA  
3.3.3. PC’s dma: Case study:  
• DMA Housekeeping khi to trưc khi hot độ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 tCh0  
(hex): 87, 83, 81, 82, 88, 89, 8A, IO space  
• Low Addr => BaseAddrRegi, (TechHelp 6.0)  
• Kích thước mng: 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 28/04/2022 6120
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