Interface là giao diện ghép nối giữa hai thiết bị, giữa hai chương trình ứng dụng hay giữa
người sử dụng và các chương trình ứng dụng.
Nguyên nhân : là do sự khác nhau giữa hệ thống trung tâm và thế giới rộng lớn bên
ngoài về : tốc độ làm việc, mức tín hiệu, không đồng bộ…
67 trang |
Chia sẻ: longpd | Lượt xem: 2674 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Ôn tập thiết bị ngoại vi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
------
ÔN TẬP THIẾT BỊ
NGOẠI VI
1
ÔN TẬP TBNV
Chương 0. Interface
0.1 Interface là gì, bao gồm những công việc gì ?
* Interface là giao diện ghép nối giữa hai thiết bị, giữa hai chương trình ứng dụng hay giữa
người sử dụng và các chương trình ứng dụng.
Nguyên nhân : là do sự khác nhau giữa hệ thống trung tâm và thế giới rộng lớn bên
ngoài về : tốc độ làm việc, mức tín hiệu, không đồng bộ…
* Interface bao gồm :
+ Thiết bị :
- Ports: ghép nối với các thiết bị máy tính hóa : mouse, printer,..
- Controller : ghép nối với các thiết bị chuyên dùng : FDC, HDC, CRTC,…
- Converter : chuyển đồi tín hiệu số thành tương tự và ngược lại : sound card,..
+ Chương trình điều khiển
- Liên kết các chương trình hệ thống và/ hoặc chương trình ứng dụng với phần cứng
vào ra (SPIs và APIs)
- Các hàm của thiết bị, BIOS, OS hoặc theo ứng dụng: SLLs, DLLs, DRVs, …
0.2 Mô hình ghép nối hiện đại ?
Các TBNV hiện đại theo mô hình sau :
các thiết bị ghép qua USB, IEEE 1394,.. và các bus vào ra hiện đại khác
2
Chương 1. Kiến trúc hệ VXL-MT.
1.1. Nêu các chu kỳ bus của CPU và DMAC, các chu kỳ bus nào thường dành để, ghép nối
thiết bị ngoại vi, cho ví dụ cụ thể ?
a. Chu kì Bus
* Có 8 chu kì bus của CPU
- M1, opcode fetching : Add -> Program mem, -MEMR.
- Data mem Reading : Add -> Data mem, -MEMR
- Data mem Writing : Add -> Data mem, -MEMW
- IO Port Reading : Add -> IO space, -IOR
- IO Port Writing : Add -> IO space, -IOW
- Interrupt Acknowledge, -INTA : CPU phát tín hiệu INTA, để thiết lập ưu tiên.
- Halt, waiting for Ext. Intr. hoặc reset
- Bus Idle :bus nghỉ
* Có 2 chu kì bus của DMA
-IOR-MemW và MemR-IOW .
b. Các chu kì bus thường dành để ghép nối TBNV
Có 4 chu kì
- IO Port Reading : đọc cổng vào ra
- IO Port Writing : ghi cổng vào ra.
- Interrupt Acknowledge,INTA : CPU phát tín hiệu INTA, để thiết lập ưu tiên.
- Halt, waiting for Ext, Intr hoặc reset
c. Ví dụ chu kì DMAC trao đổi cả mảng dữ liệu MemR-IOW.
- CPU phải ghi từ điều khiển và từ chế độ làm việc vào DMAC để quy định cách thức làm
việc.
- Khi TBNV có yêu cầu trao đổi dữ liệu, nó gửi DRQ=1 đến DMAC.
- DMAC đưa tín hiệu HRQ đến chân HOLD của CPU để yêu cầu treo CPU. Tín hiệu
HOLD phải ở mức cao cho đến khi hết quá trình trao đổi dữ liệu.
- Nhận được yêu cầu treo, CPU kết thúc chu kì bus hiện tại, sau đó treo các bus của mình,
và đưa tín hiệu HLDA báo cho DMAC biết được toàn quyền sử dụng bus.
- DMAC đưa xung DACK báo cho TBNV biết có thể bắt đầu trao đổi dữ liệu.
- DMAC đưa địa chỉ của byte đầu ra bus địa chỉ và đưa tín hiệu MemR=0 để đọc 1 byte
từ bộ nhớ ra bus dữ liệu. Tiếp đó DMAC đưa tín hiệu IOW=0 để ghi dữ liệu ra TBNV.
DMAC sau đó giảm bộ đếm số byte, cập nhật lại địa chỉ byte cần đọc tiếp và lặp cho đến
khi hết số đếm TC.
3
1.2. Khái niệm. chế độ hoạt động wait state, vẽ các biểu đồ thời gian để minh hoạ. ?
a.K/n wait state
- Th−êng dïng ®Ó ghÐp nèi : bé nhí, TBNV tèc ®é chËm.
- Khi Bus Master ph¸t ®Þa chØ vµ tÝn hiÖu ®äc/ghi (thªm c¸c tÝn hiÖu kh¸c ) ®Ó thùc hiÖn 1
chu k× bus, MMU/IO Port (Controller) chñ ®éng ph¸t tÝn hiÖu Ready = 0 víi môc ®Ých yªu
cÇu Bus Master gi÷ nguyªn tr¹ng th¸i bus thªm mét/vµi nhÞp Clock ®Ó chóng cã thêi gian
hoµn tÊt viÖc ®äc/ ghi. Sù chÌn thªm c¸c kho¶ng wait nµy gióp cho VXL cã thÓ ®ång bé vÒ
thêi gian so víi c¸c thiÕt bÞ ngo¹i vi chËm.
b. BiÓu ®å
Chu kú T1: ALE=1 ®Ó chèt lÊy ®Þa chØ bé nhí hay TBNV ®−a ra c¸c ®−êng ®Þa chØ.
Chu kú T2: §−a ra c¸c tÝn hiÖu ®iÒu khتn ®äc/ghi vµ c¸c d÷ liÖu lªn c¸c ®−êng d÷ liÖu.
Cuèi T2, sÏ kiÓm tra tÝn hiÖu ready cña MMU hay IO port.
Chu kú T3: thêi gian dµnh cho TBNV hay mem ®äc ghi d÷ liÖu. nÕu sau T2, ph¸t hiÖn tÝn
hiÖu Ready=0 th× sÏ chÌn vµo sau T3 mét kho¶ng TW ®Ó kÐo dµi thêi gian chê ®äc ghi.
Sau ®ã l¹i tiÐp tôc theo dâi tÝn hiÖu Ready.
Chu kú T4: C¸c tÝn hiÖu bus ®−îc gi¶i ho¹t, chuÈn bÞ cho mét chu kú bus míi.
1.3 Xây dựng sơ đồ mạch và đồ thị thời gian để tạo ra 01 ws cho ISA bus.
( chương 4).
4
Chương 2. Interface Protocols
2.1. Giao thức ghép nối là gì? Khi thực hiện ghép nối cần các loại thông thông tin gì (tóm
tắt) ? Phân nhóm các lớp (theo 2 nhóm chính).
a. Giao thức:
Là các quy định về
- Tín hiệu (signals).
- Định dạng dữ liệu (data format).
- Tốc độ (Rate).
- Phát hiện và sửa lỗi (error detective and correct).
- Tập lệnh và tương tác ( command and respondse set)
- Kịch bản ( scenario).
b. Phân loại
Theo mô hình ISO 7 lớp có thể phân thành hai nhóm chính
+ Các giao thức hướng truyền tin (Transport Oriented Protocols ) :
- Physical ( wire, cable, connector, port).
- Data link (CRC, CS, token).
- Network (Comm, 2 network).
- Transport( Err- protected raw infor).
+ Các giao thức hướng ứng dụng ( Application Oriented Protocols).
- Seasion ( Opening, End).
- Presentation (Common language)
- Application ( Read/Write, Start/Stop, File Transfer).
c. Khi thực hiện ghép nối cần chú ý cá tín hiệu
+ Thiết bị thông minh ?
+ Hơn 1 thiết bị ? -> bus/ mạng hay không ? -> dung bít( trường ) địa chỉ
-Nếu dùng bus > standard bus hay không ? tại sao ?
+Data : Xa/ gần , nhanh/ chậm -> serial/ parallent
Xa : Daisy chain cho tín hiệu hoặc nguồn cấp…
+ Các tín hiệu điều khiển và trạng thái
- Control signals
- Status signals
- Handshaking signal
- Analog/ Digital
- Daisy chain.
5
2.2. Khái niệm về hand shaking signal, cho ví dụ.?
a. Kh¸i niÖm
Lµ thñ tôc x¶y ra vµo lóc më ®Çu hay kÕt thóc 1 lÇn ghÐp nèi, dïng tÝn hiÖu phÇn cøng hay
c¸c kÝ tù ®Ó ®µm ph¸n.
* C¸c ký tù b¾t tay(Handshaking Signals):
RTS : Request To Send
CTS : Clear To Send
DTR : Data Terminal ready
DSR : Data Set Ready
RI : Ring Indication
CD : Carrier Detect
b.VÝ dô:
PC-LPT handshaking:
PC Comm-Modem handshaking
6
2.3. So sánh single end và differential, cho ví dụ ứng dụng.?
a. TÝn hiÖu single end (®¬n cùc)
Lµ tÝn hiÖu lµ ®iÖn thÕ so víi mét ®iÖn thÕ chuÈn nµo ®ã, th−êng lµ Gnd.
* VÝ dô :
- C¸c tÝn hiÖu trªn bus : data, address, control, RS232…
- Cã n tÝn hiÖu -> cã n+1 d©y dÉn.
* Nh¹y c¶m víi nhiÔu
b.TÝn hiÖu diffrential (vi sai)
Lµ hiÖu hai tÝn hiÖu tõ cæng m¸y tÝnh vµ TBNV. Tõ tÝn hiÖu ®¬n cùc qua bé biÕn ®æi
thµnh 2 ®iÖn thÕ A,B. Qua hÖ trung t©m l¹i ®−îc biÕn ®æi l¹i thµnh ®¬n cùc.
C¨n cø vµo VA-VB ta x¸c ®Þnh ®iÖn ¸p.
VA-VB >= 100mV Æ bÝt 1 (møc logic)
<= -100mV Æ bÝt 0
* §Æc ®iÓm :
- 1 tÝn hiÖu cÇn 2 d©y -> n tÝn hiÖu cÇn 2n d©y dÉn
- Khi thu mäi thµnh phÇn gièng nhau trªn hai sîi d©y ®−îc lo¹i trõ -> chÞu ®−¬c nhiÔu tèt
- Dïng víi kho¶ng c¸ch lín, tèc ®é cao, nguîc so víi ®¬n cùc.
- Cã thÓ dïng d©y kh«ng bäc kim.
* VÝ dô
- RS232 (®¬n cùc ) : 9600bps ë kho¶ng c¸ch 100 feet (Mouse)
- RS485 (vi sai) : 1 Mbps ë kho¶ng c¸ch 5000 feet ( USB)
2.4. Khi ghép nối trực tiếp với bus, các cổng In hoặc Out cần phải có cấu trúc (chức năng)
như thế nào? vì sao?
2.5. Yêu cầu của các mạch ghép nối có khả năng thực hiện kiểu hot pluggible.
- Yªu cÇu tÝn hiÖu chÆt chÏ, tÝn hiÖu kh«ng ®−îc chËp m¹ch
- Yªu cÇu vÒ nguån cung cÊp:
+ Khi c¾m thiÕt bÞ vµo th× nguån ph¶i cã tr−íc
+ Khi rót thiÕt bÞ ra th× nguån ph¶i rót sau
- Khi c¾m rót, tÝn hiÖu ph¶i ë tr¹ng th¸i trë kh¸ng cao HiZ.
- Khi c¾m vµo ®−êng bus råi th× CPU cã thÓ më lµ duy nhÊt.
2.6. Khi nào thường dùng ghép nối cách ly? nêu các kiểu cách ly và đặc điểm mỗi loại.
a. GhÐp nèi c¸ch ly
GhÐp nèi c¸ch ly nh»m ng¨n ngõa sù rß rØ ®iÖn thÕ cao so víi hÖ trung t©m.
Sö dông ghÐp nèi c¸ch ly th−êng trong c¸c tr−êng hîp cã sù kh¸c nhau vÒ
- møc dßng ¸p, hiÖu ®iÖn thÕ(xoay chiÒu, mét chiÒu)
- c«ng suÊt gi÷a tÝn hiÖu vµo vµ tÝn hiÖu ra
- gi÷a 2 m«i tr−êng
- ®èi t−îng c¸ch m¸y tÝnh kho¶ng 50m mµ hay bÞ sÐt.
Nhê c¸ch ghÐp nèi nµy mµ ®é an toµn cña thiÕt bÞ ®−îc ®¶m b¶o.
7
VÝ dô: s¬ ®å c¸ch ly quang häc ®èi víi In/ out.
b. Ph©n lo¹i
Tuú theo dßng tÝn hiÖu vµo, ®é chªnh lÖch ®iÖn thÕ gi÷a Vcc víi ®iÖn thÕ ®Çu vµo In
(nh¸nh cã ®ièt) sÏ lµm cho ®ièt s¸ng hoÆc tèi. NÕu ®ièt s¸ng, ta sÏ thu ®−îc dßng ®iÖn ë
nh¸nh kia.
C¸c kiÓu c¸ch ly
- Relay: t−¬ng tù c«ng t¾c ®iÖn, dïng khi ko cÇn ®iÖn thÕ cao
- Opto Coupler => ®Ó ghÐp c¸c thiÕt bÞ tin häc c«ng nghiÖp, ®iÖn thÕ cao, c«ng suÊt lín.
- IrLED...
2.7 Nèi tÝn hiÖu kiÓu daisy chain : cÊu tróc vµ ®Æc ®iÓm ?
a. CÊu tróc
Lµ ph−¬ng ph¸p trao ®æi th«ng tin trong hÖ thèng cã nhiÒu th«ng tin. C¸c thiÕt bÞ ®−îc
nèi däc víi nhau theo chuçi c¸nh hoa
b. §Æc ®iÓm
- Nèi c¸c thiÕt bÞ cã kho¶ng c¸ch tõ vµi ®Õn vµi chôc m, ®Çu ra cña port (module) thø n nèi
vãi ®Çu vµo cña n+1.
- Kh«ng nèi vßng ( ®Çu ra cña port cuèi cïng kh«ng ph¶i ®Çu vµo cæng ®Çu tiªn)
c. Ứng dụng
- Dïng cho tÝn hiÖu ( song song vµ nèi tiÕp), nguån cung cÊp, handshake…
- Dïng ®Ó ghÐp nèi nhiÒu module vµ cã kho¶ng c¸ch kh¸ lín, tÝn hiÖu ®−îc lÆp l¹i th«ng
qua c¸c module trung gian.
2.8. Gói tin là gì? Cấu trúc bao gồm thành phần gì? Vì sao phải 'đóng gói' số liệu? nêu 01
ví dụ đóng gói số liệu chuẩn mà bạn biết.?
Gói tin
Là một khối (block) định dạng của thông tin dùng trong truyền tải thông tin, thường
dùng là trong mạng máy tính. Các kiểu truyền dữ liệu không theo định dạng gói tín là:
truyền từng bit, byte, kí tự
Ph¶i ®ãng gãi v×:
Khi truyÒn trªn mét ®−êng truyÒn vËt lÝ, ®ãng gãi d÷ liÖu sÏ lµm tèc ®é truyÒn nhanh hn,
kiÓm so¸t lçi truyÒn tèt h¬n so víi khèi d÷ liÖu kh«ng cã ®iÓm kÕt thóc
CÊu tróc:
8
Gåm 3 phÇn chÝnh:
+ Header: Th−êng lµ ID cña gãi tin, ko mang tin. Cã thÓ cã tªn b¶n tin, tªn gãi, stt, ký tù
b¾t tay, ký tù ®ång bé, sè ktù/byte trong gãi….
+ Content: Néi dung tin – mang th«ng tin.
+ Tailer: M· b¾t tay kÕt thóc ,cã thÓ cã m· kiÓm tra lçi, kh«ng mang tin.
VÝ dô chuÈn:
VÝ dô 1.
VÝ dô2: Frame truyÒn kh«ng ®ång bé
Start(1 bÝt) Data(5/6/7/8 bits) Parity Stop(1[1.5/2]bits)
2.9 Công thức Shannon xác định tốc độ cho đường truyền ?
Shannon chỉ ra rằng dung lượng của một kênh truyền có nhiễu được cho bởi công thức
sau:
C=BW.log2(1+S/N)
C-Dung lượng của kênh truyền(Kbps)
BW-băng thông
S-biên độ của tín hiệu ở thiết bị phát
N-biên độ của nhiễu nhận ở đích
S/N bằng tỷ số công suất tín hiệu/ nhiễu
- Do đó, kênh điện thoại với băng thông BW=3 kHz và S/N=1000 có dung lượng khoảng
30000 bps.
- Băng thông của một cặp dây xoắn là 4 kHz, gồm phổ tần số cho thoại. Giả sử 1 tỉ số
signal-to-noise(SNR) của P0/Pn là 1000,(30dB), dung lượng của kênh truyền theo
Shannon sẽ là:
C = 4000 × Log 2 (1 + 1000) = 40 kbps
2.10. Nêu một số phương pháp kiểm tra lỗi. ?
Khi trao đổi thông tin thường hay gây ra lỗi, đặc biệt truyền xa/ chuyển đổi tín hiệu.
Nhiều phương pháp ( hardware/software) hỗ trợ để kiểm tra:
- BCC ([Block] Check Sum Code), phÇn mÒm.
- CRC, ECC… vi m¹ch/ phÇn mÒm- subroutine.
- Parity 1 hoÆc 2 chiÒu
- RAID (Redundancy) thõa d−: trao ®æi néi dung sè liÖu h¬n mét lÇn vµ so s¸nh.
- Barcode: m· ho¸, gi¶i m·, kiÓm tra lçi
-
9
2.11 Hãy giải thích ý nghĩa các trường của BarCode EAN13 sau: AAA BBBBB CCCC D,
cho ví dụ bằng số.?
Gi¶i thÝch: Barcode EAN13: AAA BBBBB CCCC D
Cã 4 ®é dµi v¹ch, 6 v¹ch/digital(b&w)
A: kÝ hiÖu n−íc (VN: 893; JP: 45 – 49; Ge 400-440, Ru 460-469 )
B: KÝ hiÖu c«ng ty, tæ chøc s¶n xuÊt
C: Chñng lo¹i mÆt hµng
D: M· Checksum(bªn ph¶i nhÊt) tõ ph¶i sang tr¸i.
10 - [( D2*3 + D3*1 + D4*3 + D5*1...+ D13*1)mod10]
VÝ dô: 893 12345 1234 7
2.12. Câu lệnh (từ master) và mã trả lời ( từ slave) thường có cấu trúc như thế nào?.
CÊu tróc chung:
o m· b¾t ®Çu ký tù riªng nh− @ / # / $...
o m· lÖnh, 1..3 bytes/char
o tham sè lÖnh, 1... n bytes,
o m· kiÓm tra lçi, check sum, CRC (dÔ xö lý)
o m· kÕt thóc, ký tù riªng.
Cã thªm c¸c m· (ký tù) ®èi tho¹i dïng kÝ tù ®iÒu khiÓn cña ASCII nh−: ENQ, ACK,
NACK, Bell, OK, ERR, BUSY …
VÝ dô
LÖnh AT cña modem.
AT : Tiền tố lệnh, yêu cầu modem “chú ý”. tiếp theo là mã lệnh
D : Dial. dùng lệnh D để quay số
T : Tone dialing.
Ví dụ ATDT 1260 => lệnh gửi cho modem yêu cầu modem quay số máy chủ 1260.
Trả lời: OK(Error) connect @19260(result).
Nếu đúng thì thực hiện lệnh và báo về. Không thì báo lỗi và không nhận được gì.
2.13 Kh¸i niÖm Time out ?
Kh¶ n¨ng kiªn nhÉn
2.14. Phân biệt 2 phương pháp định vị các cổng I/O: mem mapped IOs và IO mapped IOs
?.
Memory Mapped IOs IO Mapped IOs: (Z80, x86...):
- IOs chung víi Mem trong
MemSpace => chiÕm vïng nhí, tèn
vïng nhí
- CPU xö lý c¸c cæng IO b»ng c¸c
lÖnh nh− ®/v « nhí(mem)(lÖnh, chÕ
®é ®Þa chØ.....)
- Kh«ng chiÕm kh«ng gian nhí,
- CPU chØ thùc hiÖn 2 lÖnh: IN vµ
OUT
- x86 CPU’s IO map: IO mapped
IOs, 16 Addr bit IO => 64Kilo IO
locations.
PCs IO map:
10
- IO Mapped IOs
- ChØ dïng 10 addr bit thÊp nhÊt => 1 kilo IO locations
Soi g−¬ng víi 63 kilo cßn l¹i, mçi IO port chiÕm nhiÒu ®Þa chØ (nh− PIC, PIT, PPI..) =>
thiÕu IO space. SÏ dïng thªm kiÓu Mem Mapped IOs.
2.14. Trong CPU x86: nêu các lệnh ASM để trao đổi thông tin với cổng IO.?
LÖnh IN vµ OUT: chØ dïng c¸c thanh ghi Accumulator : AL (8bit), AX (16 bit) vµ EAX
(32 bit).
ChÕ ®é ®Þa chØ:
o Trùc tiÕp cho IO space :0..0FFh
VÝ dô: in al,60h ; Read KB port
out 61h,al ; beep, set/reset key flag
out 23Eh, ax ; lÖnh sai do 23Eh >255.
o Gi¸n tiÕp: cho IO space: 0..0FFFFh, qua thanh ghi dx
VÝ dô: mov dx,378h ; LPT port Add
mov al, ‘A’ ;41h
out dx,al ;’A’-> Printer.
mov dx,3F8h; Comm 1 port
in al,dx ;
11
Ch−¬ng 3 Ph−¬ng ph¸p trao ®æi th«ng tin IO
3.1 : Kh¸i niÖm ng¾t ( interupt) ?
Ng¾t:
- Lµ sù dõng thùc hiÖn CTC ®Ó thùc hiÖn ch−¬ng tr×nh con, th−êng lµ do TBNV yªu cÇu
th«ng qua port.
- Khi CPU ®ang thùc hiÖn ch−¬ng tr×nh chÝnh, ®Õn dßng lÖnh thø n, ngÉu nhiªn, thiÕt bÞ
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.
CPU sÏ ngõng xö lý ch−¬ng tr×nh chÝnh vµ cÊt ng÷ c¶nh vµo Stack Memory, råi t×m ®Þa chØ
cña ch−¬ng tr×nh con 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 cña CTC
vµ tiÕp tôc thùc hiÖn.
§Æ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.
- Ch−¬ng tr×nh chÝnh bÞ dõng xö lý ®Ó gäi ch−¬ng tr×nh con
- Lµ chÕ ®é ho¹t ®éng riªng cho c¸c Vi xö lý/ m¸y tÝnh kiÓu ON-LINE,
- Nguån ng¾t : chñ yÕu tõ TBNV th«ng qua IO ports, CPU.
- X¶y ra ngÉu nhiªn,
- Khi cã tranh chÊp th× xÐt −u tiªn ng¾t. ThiÕt bÞ cã −u tiªn cao sÏ ngõng ISR cña tb cã
−u tiªn thÊp h¬n.
3.2 Ph©n lo¹i ng¾t ?
Gåm: Hardware, software, internal, exception, NMI
a. Software Interrupt:( ng¾t mÒm )
- Lµ viÖc gäi 1 ctc (Subroutine) phôc vô ng¾t ®−îc x©y dùng riªng, c¸c 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; (Motorola).
- 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, ®©y lµ gäi mét thñ tôc. Ngoµi b»ng Int n cßn cã thÓ gäi
b»ng tÝn hiÖu ISR.
b. Hardware Interrupt: ( Ng¾t cøng )
12
Lµ ng¾t do cæng ph¸t tÝn hiÖu NMI/IRQ ®Õn CPU
Chia thµnh 2 lo¹i : Maskable vµ 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) STI
C¸c ng¾t sÏ bÞ cÊm (t¹i CPU) :
- sau khi CPU reset
- tr−íc ®ã ®· cã IRQ kh¸c.
- sau khi thùc hiÖn 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.
c. Internal (Ng¾t trong ):
Lµ ng¾t do c¸c tÝn hiÖu xuÊt hiÖn bëi ho¹t ®éng cña chÝnh procesor .Dïng ®Ó bÉy/ ®Ó xö
lý c¸c sù kiÖn trong khi thùc hiÖn . Nh÷ng sù kiÖn g©y ra ng¾t trong :
- Divide by zero (chia cho 0) : 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.
- Break Point: t¹o ®iÓm dõng, debugger, Int 3,
- Overflow: (trµn sè häc), Int 4.
- ...
d.Exception( ng¾t ngoµi )
Lµ ng¾t do c¸c tÝn hiÖu bªn ngoµi b¸o cho procesor .Sù kiÖn g©y ng¾t lµ sù kiÖn x¶y ra
ngoµi tiÕn tr×nh ®ang thùc hiÖn .
-Exception lµ vÊn ®Ò hay ®iÒu kiÖn ®Ó CPU dõng c«ng viÖc ®ang thùc hiÖn t×m ®Þa chØ vµ
thùc hiÖn 1 ctc ®−îc thiÕt kÕ ®Ó ®ãn nhËn 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
- VÝ dô: Math Processor Exception
3.3 So s¸nh interrupt vµ exception ?
3.4 Tæ chøc ng¾t cña hä vi ®iÒu khiÓn 8051?
+Cã 6 nguyªn nh©n g©y ra ng¾t víi hä Intel 8x51, t−íng øng víi 6 vector ng¾t :
-2 ng¾t do bªn ngoµi (Ext. Interrupts): Int0 vµ Int1,
-3 ng¾t do bé ®Þnh thêi (Timer Interrupts) : C¸c bé ®inh thêi 0, 1, 2
-1 ng¾t do cæng nèi tiÕp ( Serial port Interrupt - ph¸t/thu char).
+ øng víi c¸c ng¾t nµy, cã c¸c ®Þa chØ ®Çu cho ch−¬ng tr×nh con phôc vô ng¾t ( Interrupt
Service Routine – ISR) t−¬ng øng t¹i trang zero t¹i bé nhí ch−¬ng tr×nh(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.
13
3.5 Ph©n biÖt Interrupt Vector Table vµ Interrupt Descriptor Table ?
B¶ng vector ng¾t vµ b¶ng m« t¶ ng¾t
Gièng nhau : §Òu ®−îc sö dông trong hä x86
Kh¸c nhau :
a.B¶ng vector ng¾t (IVT)
- Sö dông trong chÕ ®é Real mode:
- Vị trÝ : CPU x86 dïng 1 kilo byte ®Çu tiªn (RAM) ®Ó chøa b¶ng vector ng¾t (gåm 256
thµnh phÇn 4 bytes), Mçi vector (thµnh phÇn ) chøa ®Þa chØ ®Çu cña ISR( ch−¬ngtr×nh con
phôc vô ng¾t ) t−¬ng øng. Khi khëi t¹o, BIOS n¹p vµo IVT ®Þa chØ ®Çu 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.
b.B¶ng m« t¶ ng¾t (Interrupt Descriptor Table - IDT)
- Sö dông trong chÕ ®é Protected Mode:
- Interrupt 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 thành phần mô tả trap/ interrupt/ task - địa chỉ và thuộc tính của ctc phục vụ ngắt
- Int/ trap cho phép chuyển đến ISR trong tác vụ hiện tại .
14
Base 32: trá gèc miÒn nhí
Limit 16: kÝch th−íc miÒn nhí.
3.6. Vẽ sơ đồ và mô tả hoạt động của máy tính PC (real mode) khi có ngoại vi xin ngắt (tín
hiệu IRQi) - ứng với các thiết bị ngoại vi cụ thể cùng các tham số.?
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
15
hiÖn t¹i
4. CÊt ng÷ c¶nh cña ch−¬ng tr×nh chÝnh vµo stack mem: cê, ®i¹ chØ CS:IP;
5. Thùc hiÖn #1 INTA bus cycle => Prioritizing, thiÕt lËp −u tiªn.
6. Thùc hiÖn #2 INTA bus cycle => ®äc Vector type cña IO port,
VectorType = i+8 nÕu VT=0..7 int 8..int 0Fh
= i+68 nÕu VT=8..15 int 70h…int 77h.
7. CPU lÊy VectorType x 4 => IVT, ®äc ®c ®Çu ISR t−¬ng øng,
n¹p vµo IP&CS, ISR b¾t ®Çu ®−îc thùc hiÖn.
8. ISR: (nÕu dïng ASM)
- Ng«n ng÷ lËp tr×nh thêi gian thùc MASM, C, ... ,
- Cho phÐp ng¾t bëi møc −u tiªn cao h¬n
- CÊt nh÷ng thanh ghi-ISR dïng vµo STACK Mem,
- T/hiÖn néi dung ISR,
- Kh«i phôc Reg tõ STACK Mem, LIFO,
- Depriorotizing:( OCW2): thiÕt lËp l¹i −u tiªn.
VÝ dô mov al,20h
out 20h, al ; Non Specific EOI
iret ; Return fron Intr.
3.8. Vẽ sơ đồ và mô tả hoạt động của máy tính PC khi có ngoại vi xin thực hiện DMA.?
c B¾t ®Çu t/h DMA, ngo¹i vi chuyÓn data => IO Port (PIO)
d IO Port ph¸t tÝn hiÖu DRQi tíi DMAC.
e NÕu chÊp nhËn DMAC ph¸t HRQ tíi CPU (CPU logic circuitry)
f CPU dõng ho¹t ®éng ë chu k× tr¹ng th¸i 3 cho bus cã trë kh¸n