1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

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

21 518 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Các phương pháp trao đổi thông tin
Thể loại Bài thuyết trình
Định dạng
Số trang 21
Dung lượng 549,94 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• 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

Trang 1

• DMA - truy nhËp trùc tiÕp mem - IO

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

Trang 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 đè

Device #2 Y Request ?

N

Device #n Y Request ?

N

Device #1 Service Routine

Device #2 Service Routine

Device #n Service Routine

Trang 3

• 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

Trang 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:

• Ư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,

• 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

Trang 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

• 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:

Trang 6

P&I Ch3: Methodes 11

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

-

3.2 Interrupt: 3.2.2 phân loại: c Internal:

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:

Trang 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:

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

Trang 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

3.2 Interrupt: 3.2.3 Case study: x86 & pc IVT

Trang 9

P&I Ch3: Methodes 17

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!).

3.2 Interrupt: 3.2.3 Case study: x86 & pc, int n instruction

Hardware Interrupt, irq:

IRQ trong PC: dùng 2 PICs - Priority Interrupt Controller

Trang 10

P&I Ch3: Methodes 19

3.2 Interrupt: 3.2.3 Case study: x86 & pc, Hardware Int

PCI bus dùng chung 1 IRQ

ƒ 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 & OCWs

ƒ Dùng với nhiều hệ VXL của Intel, IBM-PC

ƒ Tham khảo VXL của MTV

3.2 Interrupt: 3.2.3 Case study: x86 & pc, Hardware Int

Priority Interrupt Controller Intel 8259A

Trang 11

P&I Ch3: Methodes 21

Các IRQ được mô tả theo mức ưu tiên giảm dần:

• 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

– 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

Trang 12

P&I Ch3: Methodes 23

– 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.

Watch Dog Timer

• Là cơ chế dùng để chống treo cho VXL

• Dùng 01 counter down, 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

Trang 13

P&I Ch3: Methodes 25

Fig 3.5b Watch dog Timer principle

• 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ừ

MODEM

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

Trang 14

P&I Ch3: Methodes 27

• 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

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

comm 1

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.

3.2 Interrupt: 3.2.3 Case study: x86 & pc, Hardware Int

Trang 15

P&I Ch3: Methodes 29

Hoạt động:

1 Khi trao đổi số liệu: Ngoại vi <=> với IO port

2 IO port phát tín hiệu IRQ(i) tới PIC 8259A,

3 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

4 CPU cất ngữ cảnh của main prog vào stack mem

5 T/h #1 INTA bus cycle => Prioritizing, thiết lập −u tiên

6 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 3.2 Interrupt: 3.2.3 Case study: x86 & pc, Hardware Int

Trang 16

P&I Ch3: Methodes 31

7 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.

8 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.

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,

3.2 Interrupt: 3.2.3 Case study: x86 & pc, Hardware Int

Trang 17

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

HLT ; Wait for Ext IRQ or Reset

WAIT ; Wait for -Busy => inactive

3.2 Interrupt: 3.2.3 Case study: x86 & pc, Int instruction

Trang 18

P&I Ch3: Methodes 35

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)

3.3 direct memory access – dma

3.3.1 Khái niệm dma:

Trang 19

P&I Ch3: Methodes 37

3.3 direct memory access - dma

3.3.2 dmac 8237a, Intel : MTV

• 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)

Trang 20

P&I Ch3: Methodes 39

3.3 direct memory access - dma

3.3.3 PC’s dma: Case study - Sơ đồ khối:

IOR

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): DRQ i và -DACK i 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 => BaseAddrReg i , (TechHelp 6.0)

• Kích thước mảng: BaseCounter i

• Single byte/ block

• Specificed block/ IO Port Requirement

• Burst mode: SRAM và counter- địa chỉ, DACK i

3.3 direct memory access – dma

3.3.3 PC’s dma: Case study – Mô tả HĐ:

Trang 21

P&I Ch3: Methodes 41

c Bắt đầu t/h DMA, ngoại vi chuyển data => IO Port

d IO Port phát tín hiệu DRQ i 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:

- DACK i = 0, as Chip Select

- IOR = 0 ==> IO Port 'nhả' data lên bus

- Addr Mem (DMAC & Page Reg)

- MEMW = 0

=> chuyển 1 byte/word

i DMAC: Tăng CurrentAddrReg, giảm CurrentCounter Nếu

Current Counter=0 thì phát T/C (Terminate Count), nếu <>0

=> h, next DMA bus cycle

Mỗi chu kỳ bus, chuyển được 1 byte hoặc 1 từ

3.3 direct memory access – dma

3.3.3 PC’s dma: Case study:IOR-MEMW bus cycle

Bài tập chương 3:

• Xây dựng ứng dụng ngắt: bàn phím, LPT,

Comm hoặc mạch ghép nối.

• Xây dựng sơ đồ ghép nối và lập trình cho

DMAC các kênh 8 và 16 bit cho máy tính

PC để gửi số liệu ra hoặc nhận số liệu vào.

– Channel,

– Mode,

– Block

– BTCT: DMA 16bit!

Ngày đăng: 23/12/2013, 16:15

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm