Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối: Chương 3 - Bùi Quốc Anh

34 13 0
Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối: Chương 3 - Bùi Quốc Anh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 3 - Các phương pháp trao đổi thông tin thuộc bộ Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối do Bùi Quốc Anh biên soạn sẽ hướng đến giới thiệu tới các bạn một số thông tin về phương pháp thăm dò; phương pháp ngắt; direct memory access - dma;...

Ch 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 3.1 Phương pháp thăm dị (polling) • K/n Polling: Dùng phần mềm để kiểm tra cờ trạng thái @ IO Ports => định trao đổi số liệu hay khơng • Nhanh, đơn giản, thường dùng hệ nhỏ đơn nhiệm - thiết bị IO, • Để thử nghiệm, • Dùng với thiết bị ngoại vi tần suất truy nhập thấp, tốc độ chậm, ví dụ kênh đo nhiệt độ, • Không phù hợp với ‘đa nhiệm’, đặc biệt máy tính P&I Ch3: Methodes Polling Một l−u ®å : Device #1 Request ? Y Device #1 Service Routine Y Device #2 Service Routine N Device #2 Request ? N Device #n Request ? Y Device #n Service Routine N Quit P&I Hình 3.1 Lu đồ phơng pháp IO interface polling Ch3: Methodes 3.2 Phơng pháp ngắt (Interrupt) ã Khái niệm, ã Phân loại ã Case studies P&I Ch3: Methodes 3.2 Phương pháp ngắt (Interrupt): 3.2.1 Khái niệm • • • Là dừng thực CTC để thực ctc, thường TBNV yêu cầu thông qua port Khi CPU thực CTC, đến dòng lệnh thứ n, ngẫu nhiên, ngoại vi thứ i xin phục vụ cách phát tín hiệu IRQ(i) (Interrupt Request) đến CPU Nói chung, CPU ngừng xử lý CTC cất ngữ cảnh (flags địa lệnh tiếp theo) vào Stack Mem, tìm địa ctc phục vụ ngắt tương ứng (Interrupt Service Routine - ISR) để thực Sau thực xong ISR, gặp lệnh iret (reti ), CPU khôi phục lại ngữ cảnh (từ Stack Mem) CTC tiếp tc thc hin P&I Ch3: Methodes Hình 3.2 K/n ngắt 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 phần mềm, để thực đa nhiệm – Đối tượng bị ngắt: CTC bị dừng xử lý để thực ctc – Là chế độ hoạt động riêng cho 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 ngẫu nhiên, – Nhiều IOs • => Tranh chấp => Phải giải ưu tiờn ngt P&I Ch3: Methodes 3.2 Phơng pháp ngắt (Interrupt): 3.2.1 Khái niệm ã u tiờn ngt - Interrupt Priority: - T/bị ưu tiên cao dừng ISR 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 nhà sx qui định cho t/bị ngoại vi, cố định, mức cao Theo hình 3.2: Level (j) > Level(i), i>j • Ưu tiên phân định tín hiệu ngắt CPU (Intel 8085: INTR, 5.5, 6.5, 7.5 TRAP), • Z80 CPU & others: ưu tiên theo kiểu Daisy Chain P&I Ch3: Methodes 3.2 Interrupt: 3.2.2 phân loại: Gồm: Hardware, software, internal, exception, NMI a Software Interrupt: • Là việc gọi ctc (Subroutine) xây dựng riêng mà ctc gọi thiết bị ngoại vi • Các lệnh gọi INT n; (Intel x86) hay SWI n; (Moto) • Tuy nhiên, việc thực lệnh ngắt mềm giống gọi thủ tục, hiểu TRAP, • Ngắt mềm khơng phải ngắt P&I Ch3: Methodes 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 loại: Maskable & Non Maskable Maskable Interrupt: ngắt thơng thường, cấm (disable) lệnh CLI hay cho phép (enable) lệnh STI (Intel vs Moto!) Các ngắt bị cấm (tại CPU) - IF disabled: sau CPU reset, trước có IRQ khác, sau th/h lệnh CLI 9Non Maskable Interrupt, NMI ngắt có mức ưu tiên cao nhất, thường cho việc: điện, sai số liệu (DRAM parity) PC nay, thường không dùng NMI P&I Ch3: Methodes 3.2 Interrupt: 3.2.2 phân loại: c Internal: Trong số CPU, để bẫy/ để xử lý kiện thực hiện, Intel x86: - Divide by zero: tương ứng thực lệnh, Int 0, - Trap - Single Step: thực lệnh, debugger, Int 1, dùng với Trap Flag (Trace) - Break Point: tạo điểm dừng, debugger, Int 3, - Overflow: (tràn số nguyên), Int - P&I Ch3: Methodes 10 3.2 Interrupt: 3.2.3 Case study: x86 & pc, Hardware Int Hardware Interrupt, irq: Hoạt động Hardware Intr PC (xem PIC 8259A) Interrupt Housekeeping - chuÈn bÞ: ISR, vÝ dơ files.sys[com], gmouse.com - cỉng comm Load ISR xác định địa 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 CPU, lÖnh STI, Set Interrupt Enable Flag, cho phÐp ng¾t P&I Ch3: Methodes 20 P&I Ch3: Methodes 21 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 CPU cất ngữ cảnh main prog vào stack mem P&I 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 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 VT =0 Ù int8 int 0Fh = i+ 68h nÕu vt = 15 Ù int 70h int 77h Ch3: Methodes 22 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 Lu ý 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 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 23 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 lệnh STI CLI inline m máy FAh FBh (En/Dis) - MASM OS: thay vector ngắt trực tiếp, lệnh mov trỏ vào IVT; int 21h subfunctions: 25h 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) hc IRQ7 (LPT1, Falling Edge of -ACK), cảnh báo virus - Thờng trú ngắt thêi gian Int 1Ch thuéc Int ISR, Timer P&I Ch3: Methodes 24 3.2 Interrupt: 3.2.3 Case study: x86 & pc, Hardware Int 80x86 Interrupt in Protected Mode: • Int Descriptor Table (IDT) định vị vùng nhớ • Vị trí kích thước bảng IDTR: 32bit addr 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 current task P&I Ch3: Methodes 25 3.2 Interrupt: 3.2.3 Case study: x86 & pc, Int instruction CLI STI LIDT EA SIDT EA INT n IRET INT O HLT WAIT P&I ; Load IDT từ Effct Addr ; ( INT 4) ; Wait for Ext IRQ or Reset ; Wait for -Busy => inactive Ch3: Methodes 26 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 27 3.3 direct memory access – dma 3.3.1 Kh¸i niƯm dma: P&I Ch3: Methodes 28 3.3 direct memory access - dma 3.3.2 dmac 8237a, Intel : MTV ƒ ƒ ƒ ƒ ƒ ƒ 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 t/h TC) / IO Requirement (EoP) Nối tầng để mở rộng sè kªnh DMA ƒ P&I Ch3: Methodes 29 3.3 direct memory access - dma 3.3.3 PC’s dma: • DMAC#1: 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 • Ch5 - HDC ISA bus, spare • Ch6 - Spare, • Ch7 - Spare ã Page Registers: 080h 08Fh: Giữ địa cao DMAC phát 16 low addr bit • SysBus in DMA mode, AEN = (Addr Enable) P&I Ch3: Methodes 30 3.3 direct memory access - dma 3.3.3 PCs dma: Case study - Sơ đồ khối: IOR P&I Ch3: Methodes 31 3.3 direct memory access – dma 3.3.3 PCs dma: Case study Mô tả HĐ: ã P&I DMA Housekeeping khởi tạo trớc 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 -DACKi ISA bus ã Port (IO Addr), AEN = (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 counter- địa chỉ, DACKi Ch3: Methodes 32 3.3 direct memory access – dma 3.3.3 PC’s dma: Case study:IOR-MEMW bus cycle c Bắt đầu t/h DMA, ngoại vi chuyển data => IO Port d IO Port ph¸t tÝn hiƯu DRQi tíi DMAC NÕu chÊp nhËn e DMAC ph¸t HRQ tới CPU (CPU logic circuitry) f CPU dừng hoạt động @ state T3, Hi Z bus cña CPU g CPU Tr¶ lêi t/h HLDA => DMAC & ‘goes to sleep’ h Thùc hiÖn DMA bus cycle: - DACKi = 0, as Chip Select - IOR = ==> IO Port 'nhả' data lên bus - Addr Mem (DMAC & Page Reg) - MEMW = => chuyÓn byte/word i DMAC: Tăng CurrentAddrReg, giảm CurrentCounter Nếu Current Counter=0 phát T/C (Terminate Count), nÕu 0 => h, next DMA bus cycle Mỗi chu kỳ bus, chuyển đợc byte tõ P&I Ch3: Methodes 33 Bμi tËp ch−¬ng 3: ã Xây dựng ứng dụng ngắt: bàn phím, LPT, Comm mạch ghép nối ã Xây dựng sơ đồ ghép nối lập trình cho DMAC kênh 16 bit cho máy tính PC để gửi số liệu nhận số liệu vào Channel, Mode, – Block – BTCT: DMA 16bit! P&I Ch3: Methodes 34 ... Methodes 27 3. 3 direct memory access – dma 3. 3.1 Kh¸i niƯm dma: P&I Ch3: Methodes 28 3. 3 direct memory access - dma 3. 3.2 dmac 8 237 a, Intel : MTV ƒ ƒ ƒ ƒ ƒ ƒ Channel of 8/16 bit IOR-MEMW & MEMR-IOW DMA... Một l−u ®å : Device #1 Request ? Y Device #1 Service Routine Y Device #2 Service Routine N Device #2 Request ? N Device #n Request ? Y Device #n Service Routine N Quit P&I H×nh 3. 1 Lu đồ phơng... rộng số kênh DMA P&I Ch3: Methodes 29 3. 3 direct memory access - dma 3. 3 .3 PC’s dma: • DMAC#1: bit Channels, 64KB max, 0h-0fh addr • Ch0 - DRAM Refresh, Spare • Ch1 - SDLC, LPT’s EPP/ECP/IEEE1284

Ngày đăng: 08/05/2021, 19:13

Tài liệu cùng người dùng

Tài liệu liên quan