5.1.2. LẬP TRÌNH CHO PIC 8259A
8259 là vi mạch khả trình.
• Việc lập trình cho PIC 8259 gồm 2 công đoạn:
Thiết lập chế độ làm việc của PIC 8259;
Lập trình truyền tin qua 8259.
• 8259 có 4 từ điều khiển khởi động: ICW1 – ICW4 và 3 từ điều khiển hoạt động
OCW1 – OCW3.
• Các thanh ghi của PIC 8259 được truy cập qua địa chỉ: 020h và 021h.
5.1.2. LẬP TRÌNH CHO PIC 8259A
• Khởi động PIC cùng PC theo lưu đồ sau:
VXL: Viết từ điều khiển khởi động ICW1.
VXL: Viết từ điều khiển khởi động ICW2.
Nếu có ghép tầng VXL ghi tiếp ICW3.
Nếu có đòi hỏi ICW4 thì sẽ viết tiếp từ
điều khiển khởi động ICW4.
52 trang |
Chia sẻ: thanhle95 | Lượt xem: 653 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Kiến trúc máy tính - Bài 5: Các chip bổ trợ - Phan Thanh Toàn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
v1.0014103212
KIẾN TRÚC MÁY TÍNH
Giảng viên: ThS. Phan Thanh Toàn
2
v1.0014103212
BÀI 5
CÁC CHIP BỔ TRỢ
Giảng viên: ThS. Phan Thanh Toàn
3
v1.0014103212
• Liệt kê được các chip bổ trợ trong máy vi tính.
• Liệt kê được các công dụng của các chip bổ trợ
trong máy tính.
• Mô tả được cấu tạo và nguyên tắc hoạt động của các
chip bổ trợ như: 8259, 8255,
MỤC TIÊU BÀI HỌC
4
v1.0014103212
Để hiểu rõ bài này, yêu cầu sinh viên cần có các
kiến thức cơ bản liên quan đến các môn học sau:
• Kỹ thuật số;
• Kỹ thuật điện tử số.
CÁC KIẾN THỨC CẦN CÓ
5
v1.0014103212
• Đọc tài liệu và tóm tắt những nội dung chính của
từng bài.
• Luôn liên hệ và lấy ví dụ thực tế khi học đến từng
vấn đề̀ và khái niệm.
• Sử dụng các ngôn ngữ lập trình cơ bản như
Pascal, C,
• Làm bài tập và luyện thi trắc nghiệm theo yêu cầu
từng bài.
HƯỚNG DẪN HỌC
6
v1.0014103212
5.1. Chip điều khiển ngắt 8259
5.2. Chip ghép nối ngoại vi khả trình PPI-8255A
5.3. Chip định thời PIT-8253
5.4. Chip điều khiển truy nhập bộ nhớ trực tiếp DMA-8237A
CẤU TRÚC NỘI DUNG
7
v1.0014103212
5.1.1. Cấu tạo và
nguyên tắc hoạt động
5.1.2. Lập trình cho
PIC 8259A
5.1. CHIP ĐIỀU KHIỂN NGẮT 8259A
8
v1.0014103212
• Hệ thống máy tính có nhiều loại ngắt và nhiều ngắt.
• Mỗi ngắt có một mức ưu tiên khác nhau.
• VXL có 2 lối vào cho ngắt là: INTR, NMI.
• Cần bộ điều khiển ưu tiên ngắt để đưa các tín hiệu ngắt vào 2 chân INTR, NMI.
Hình 1: Sơ đồ khối PIC 8259 A
5.1.1. CẤU TẠO VÀ NGUYÊN TẮC HOẠT ĐỘNG
9
v1.0014103212
5.1.1. CẤU TẠO VÀ NGUYÊN TẮC HOẠT ĐỘNG
• Các thanh ghi IRR, ISR, IMR: 8 bit.
• Tín hiệu yêu cầu ngắt: IR0, IR1, , IR7.
• Thanh ghi che ngắt (IMR – Interrupt Mask Register): Cấm/cho phép ngắt.
• IRR: Thanh ghi yêu cầu ngắt.
• IR: Thanh ghi ngắt được phục vụ.
• PR: Mạch logic giải quyết ưu tiên ngắt.
10
v1.0014103212
5.1.1. CẤU TẠO VÀ NGUYÊN TẮC HOẠT ĐỘNG
Hình 2: Sơ đồ phối ghép 8259 với bộ VXL
11
v1.0014103212
5.1.1. CẤU TẠO VÀ NGUYÊN TẮC HOẠT ĐỘNG (tiếp theo)
12
v1.0014103212
• 8259 là vi mạch khả trình.
• Việc lập trình cho PIC 8259 gồm 2 công đoạn:
Thiết lập chế độ làm việc của PIC 8259;
Lập trình truyền tin qua 8259.
• 8259 có 4 từ điều khiển khởi động: ICW1 – ICW4 và 3 từ điều khiển hoạt động
OCW1 – OCW3.
• Các thanh ghi của PIC 8259 được truy cập qua địa chỉ: 020h và 021h.
5.1.2. LẬP TRÌNH CHO PIC 8259A
13
v1.0014103212
5.1.2. LẬP TRÌNH CHO PIC 8259A
Không
• Khởi động PIC cùng PC theo lưu đồ sau:
VXL: Viết từ điều khiển khởi động ICW1.
VXL: Viết từ điều khiển khởi động ICW2.
Nếu có ghép tầng VXL ghi tiếp ICW3.
Nếu có đòi hỏi ICW4 thì sẽ viết tiếp từ
điều khiển khởi động ICW4.
Ghép
PIC?
Viết từ ICW1
Viết từ ICW1
Viết từ ICW3
Yêu cầu
ICW4
Viết từ ICW4
Không
Có
Có
14
v1.0014103212
Có 4 từ điều khiển khởi tạo
A0 Khởi tạo
0 0 ICW1
0 1 ICW2, ICW3, ICW4
1 X Không chọn 8259
CS
5.1.2. LẬP TRÌNH CHO PIC 8259A (tiếp theo)
15
v1.0014103212
5.1.2. LẬP TRÌNH CHO PIC 8259A (tiếp theo)
Cấu trúc các từ điều khiển ICW1 – ICW4
16
v1.0014103212
• ICW2: Xác định số hiệu ngắt
5.1.2. LẬP TRÌNH CHO PIC 8259A (tiếp theo)
17
v1.0014103212
5.1.2. LẬP TRÌNH CHO PIC 8259A (tiếp theo)
• ICW3: Làm việc ở chế độ chủ và khách
18
v1.0014103212
5.1.2. LẬP TRÌNH CHO PIC 8259A (tiếp theo)
• ICW4
19
v1.0014103212
• Định dạng các thanh ghi điều khiển hoạt động OCW1-OCW3
OCW1: Thanh ghi thiết lập và đọc trạng thái yêu cầu ngắt
5.1.2. LẬP TRÌNH CHO PIC 8259A (tiếp theo)
20
v1.0014103212
5.1.2. LẬP TRÌNH CHO PIC 8259A (tiếp theo)
OCW2: Xác định việc xử lí các yêu cầu ngắt của 8259
21
v1.0014103212
OCW3
Chọn các thanh ghi để đọc;
Thăm dò trạng thái yêu cầu ngắt;
Thao tác với thanh ghi mặt nạ.
D0D1D2D3D4D5D6D7A0
RISRRP10SMMESMM00
Đọc thanh ghi
IRR ở lần sau
Đọc thanh ghi
IRR ở lần sau
Không làm gì
1100
1010
Đăt mặt nạ đặc
biệt
Xóa mặt nạ đặc
biệt
Không làm gì
1100
1010
1 = thăm dò yêu cầu ngắt 0 = Không thăm dò
5.1.2. LẬP TRÌNH CHO PIC 8259A (tiếp theo)
22
v1.0014103212
5.1.2. LẬP TRÌNH CHO PIC 8259A (tiếp theo)
• Các chế độ ngắt: Có 4 chế độ
Chế độ Chức năng, Ý nghĩa
Ưu tiên cố định Mỗi ngắt được gán 1 mức ưu tiên cố định. Mức 0 là cao nhất, mức 7 là
thấp nhất.
Ưu tiên vòng tự
động
Ưu tiên đồng đều, mỗi mức sau khi được phục vụ trở thành mức thấp
nhất cho đến khi có ngắt tiếp theo xảy ra.
Ưu tiên vòng theo
quy định
Phần mềm của hệ quy định mức ưu tiên thấp nhất. Thứ tự ưu tiên
được lập dựa trên cơ sở quy định này.
Thăm dò ngắt Phần mềm của hệ đọc thanh ghi trạng thái của 8259, từ đó xác định
nguồn ngắt và quyết định phục vụ ngắt.
23
v1.0014103212
5.2.1. Cấu tạo và
nguyên tắc hoạt động
của 8255A
5.2.2 Lập trình với
8255A
5.2. CHIP GHÉP NỐI NGOẠI VI KHẢ TRÌNH PPI-8255A
24
v1.0014103212
• PPI-8255A (Programmable Peripheral Interface)
Là chip vào/ra lập trình được;
Truyền dữ liệu theo phương thức song song.
Hình 3: Sơ đồ khối và các chân của 8255A
5.2.1. CẤU TẠO VÀ NGUYÊN TẮC HOẠT ĐỘNG CỦA 8255A
25
v1.0014103212
5.2.1. CẤU TẠO VÀ NGUYÊN TẮC HOẠT ĐỘNG CỦA 8255A
• 24 chân cho 3 cổng vào/ra.
• PA0-PA7: 8 chân cho cổng A.
• PB0-PB7: 8 chân cho cổng B.
• PC0-PC7: 8 chân cho cổng C.
• Nhóm A: Gồm cổng A và 4 bit cao của cổng C.
• Nhóm B: Gồm cổng B và 4 bit thấp của cổng C.
• 8255 có thể hoạt động ở 3 chế độ (0,1,2).
26
v1.0014103212
• Chân chọn chip 8255A để làm việc cùng với bộ xử lý.
• Chân : Đọc dữ liệu từ 8255A.
• Chân : Ghi dữ liệu vào 8255A.
• Hai chân A0, A1 kết hợp với tín hiệu , và cho phép truy cập 1 trong 3 cổng
PA, PB, PC hoặc thanh ghi từ điều khiển.
CS
RD
WR
RD WR
A1 A0 Ý nghĩa
0 0 0 1 Đọc cổng A vào bus dữ liệu
0 1 0 1 Đọc cổng B vào bus dữ liệu
1 0 0 1 Đọc cổng C vào bus dữ liệu
1 1 0 1 Đọc từ điều khiển vào bus dữ liệu
0 0 1 0 Viết từ bus dữ liệu vào cổng A
0 1 1 0 Viết từ bus dữ liệu vào cổng B
1 0 1 0 Viết từ bus dữ liệu vào cổng C
1 1 1 0 Viết từ bus dữ liệu vào từ điều khiển
RD WR
5.2.1. CẤU TẠO VÀ NGUYÊN TẮC HOẠT ĐỘNG CỦA 8255A (tiếp theo)
27
v1.0014103212
5.2.1. CẤU TẠO VÀ NGUYÊN TẮC HOẠT ĐỘNG CỦA 8255A (tiếp theo)
• Chọn chế độ hoạt động cho 8255A
8255A có thể hoạt động ở 3 chế độ: Chế độ 0, 1, 2.
Tất cả các cổng của 8255A đều làm việc như cổng vào.
Để chọn chế độ cho 8255A ta ghi dữ liệu vào từ điều khiển của 8255A.
28
v1.0014103212
• Đặt/xóa các bit của cổng C
Các bit của cổng C có thể được đặt/xóa thông qua việc viết từ điều khiển với bit
D7=0.
5.2.2. LẬP TRÌNH VỚI 8255A (tiếp theo)
29
v1.0014103212
5.2.2. LẬP TRÌNH VỚI 8255A (tiếp theo)
• Các chế độ hoạt động của 8255A
Chế độ 0: Vào/ra một chiều không có móc nối
Vi mạch gồm 2 cổng 8 bit;
Các cổng có thể là cổng vào/ra;
Các tín hiệu ra được chốt;
Các tín hiệu vào không được chốt;
8255 có 16 cấu hình hoạt động vào/ra nhờ sử dụng từ điều khiển.
30
v1.0014103212
• Các chế độ hoạt động của 8255A
Chế độ 1: Vào/ra hai chiều có móc nối qua các bit cao của cổng C
Vi mạch hoạt động gồm 2 nhóm: Nhóm A và B;
Mỗi nhóm có 1 cổng 8 bit và 1 cổng điều khiển 4 bit;
Cổng 8 bit có thể là cổng vào/ra, chốt dữ liệu.
5.2.2. LẬP TRÌNH VỚI 8255A (tiếp theo)
31
v1.0014103212
5.2.2. LẬP TRÌNH VỚI 8255A (tiếp theo)
• Các chế độ hoạt động của 8255A
Chế độ 3: Vào/ra hai chiều qua cổng A có móc nối qua các bit cao của cổng C
Vi mạch chỉ có nhóm A hoạt động;
Cổng A là cổng vào/ra hai chiều 8 bit;
Các tín hiệu vào/ra đều được chốt lại;
5 bit của cổng C được sử dụng làm cổng điều khiển, trạng thái cho cổng A.
32
v1.0014103212
5.3.1. Cấu tạo và
nguyên tắc hoạt động
5.3.2 Lập trình với
8253
5.3. CHIP ĐỊNH THỜI KHẢ TRÌNH PIT-8253
33
v1.0014103212
5.3.1. CẤU TẠO VÀ NGUYÊN TẮC HOẠT ĐỘNG
34
v1.0014103212
5.3.1. CẤU TẠO VÀ NGUYÊN TẮC HOẠT ĐỘNG
• 3 bộ đếm C0, C1, C2: Các bộ đếm lùi, 16 bit.
• Bộ đệm số liệu: 8 bit, sử dụng để phối ghép với bus hệ thống của bộ VXL.
• Chân : Cho phép đọc dữ liệu từ 8253.
• Chân : Cho phép ghi dữ liệu vào 8253.
• Chân : Chọn chip 8253
RD
WR
CS
A1 A0 Ý nghĩa
0 0 0 1 Đọc bộ đếm 0
0 1 0 1 Đọc bộ đếm 1
1 0 0 1 Đọc bộ đếm 2
1 1 0 1 Đọc từ điều khiển
0 0 1 0 Viết vào bộ đếm 0
0 1 1 0 Viết vào bộ đếm 1
1 0 1 0 Viết vào bộ đếm 2
1 1 1 0 Viết từ điều khiển vào thanh ghi điều khiển
RD WR
35
v1.0014103212
• Địa chỉ các thanh ghi và định dạng từ điều khiển
Địa chỉ các cổng của PIT như sau:
Cổng 1 Cổng 2 Thanh ghi Hoạt động
040h 048h Bộ đếm 0 Đọc/viết
041h 049h Bộ đếm 1 Đọc/viết
042h 04ah Bộ đếm 2 Đọc/viết
043h 04bh Điều khiển Đọc/viết
5.3.2. LẬP TRÌNH CHO 8253
36
v1.0014103212
5.3.2. LẬP TRÌNH CHO 8253
• Địa chỉ các thanh ghi và định dạng từ điều khiển
Định dạng từ điều khiển
SC0, SC1: Chọn bộ đếm, 00: bộ đếm 0, 01: bộ đếm 1, 10: bộ đếm 2.
RW0, RW1: Phương thức đọc/ghi
00: Lệnh chốt bộ đếm;
01: Chỉ đọc/viết byte thấp;
10: Chỉ đọc/viết byte cao;
11: Đọc/viết byte thấp trước, byte cao sau.
SC1 SC0 RW1 RW0 M2 M1 M0 BCD
D0D1D2D3D4D5D6D7
37
v1.0014103212
• Các chế độ đếm
Chế độ 0: Phát ra tại một sườn xung lên khi kết thúc đếm.
Hình 5: Chế độ đếm 0 với số đếm là 4
5.3.2. LẬP TRÌNH CHO 8253 (tiếp theo)
38
v1.0014103212
5.3.2. LẬP TRÌNH CHO 8253 (tiếp theo)
Chế độ 1: Phát ra một xung đơn với thời gian tồn tại xung biến đổi được.
Hình 6: Chế độ đếm 1 với số đếm là 4
39
v1.0014103212
5.3.2. LẬP TRÌNH CHO 8253 (tiếp theo)
Chế độ 2: Các xung nhịp đưa vào bộ đếm được chia bởi giá trị nạp trong
thanh ghi bộ đếm.
Hình 7: Chế độ đếm 2 với số đếm là 4
40
v1.0014103212
5.3.2. LẬP TRÌNH CHO 8253 (tiếp theo)
Chế độ 3: Phát ra sóng hình vuông.
Hình 8: Chế độ đếm 3 với số đếm là 4
Chế độ 4: Tạo xung bằng phần mềm.
Chế độ 5: Tạo xung bằng xung của cửa GATE, giống như chế độ 2.
41
v1.0014103212
• Viết bộ đếm
Viết từ điều khiển để xác lập chế độ làm việc.
Nạp số đếm ban đầu.
Ví dụ sử dụng bộ đếm 2, phát xung hình vuông (chế độ 3), tần số 10KHz, tần số
Clock: 1.19318MHz, hệ số chia viết vào bộ đếm 2 là: 119.
MOV AL, 1001 0110 b; nạp từ điều khiển vào AL.
OUT 43h, AL; viết từ điều khiển qua cổng 43h vào thanh ghi điều khiển.
MOV AL, 119; nạp byte thấp vào AL.
OUT 42h, AL; viết giá trị đếm vào bộ đếm C2.
5.3.2. LẬP TRÌNH CHO 8253 (tiếp theo)
42
v1.0014103212
5.3.2. LẬP TRÌNH CHO 8253 (tiếp theo)
• Đọc bộ đếm
Nếu cần đọc giá trị tức thời của bộ đếm khi quá trình đếm chưa kết thúc thì phải
sử dụng các lệnh chốt bộ đếm hoặc lệnh đọc thanh ghi từ điều khiển.
Tại thời điểm lệnh chốt bộ đếm được viết vào thanh ghi từ điều khiển, giá trị đếm
được chốt vào thanh ghi đệm ra của PIT 8253.
SC1, SC0: 2 bit chọn bộ đếm được chốt.
00: Bộ đếm 0 được chọn.
01: Bộ đếm 1 được chọn.
10: Bộ đếm 2 được chọn.
X: Không có nghĩa.
SC1 SC0 0 0 x x x x
D0D1D2D3D4D5D6D7
43
v1.0014103212
5.3.2. LẬP TRÌNH CHO 8253 (tiếp theo)
• Các chức năng của bộ đếm trong máy vi tính
Cập nhật đồng hồ hệ thống:
Bộ đếm hoạt động ở chế độ 2;
Lối vào có xung nhịp: 1.19318MHz;
Lối vào cổng Gate đặt ở mức logic 1;
Giá trị ban đầu là 0 hoặc 65535.
Làm tươi bộ nhớ RAM;
Phát sóng âm với tần số biến đổi ra loa.
44
v1.0014103212
5.4.1. Phương pháp
truy nhập bộ nhớ
trực tiếp
5.4.2. Chip điều khiển
DMAC
5.4. CHIP TRUY NHẬP BỘ NHỚ TRỰC TIẾP DMA-8237
45
v1.0014103212
• Phương pháp vào/ra bằng ngắt đảm bảo thời gian vào/ra số liệu ngắn, nhưng phải
thực hiện bằng phần mềm Cần sự tham gia của bộ VXL.
• Khi cần chuyển lượng dữ liệu nhiều Không đủ nhanh để đáp ứng.
• Sử dụng một mạch phần cứng thực hiện việc truyền dữ liệu giữa bộ nhớ và các
TBNV không cần qua bộ VXL Gọi là phương pháp truy nhập bộ nhớ trực tiếp
(DMA – Direct MemoryAccess).
Hình 9: Các đường liên hệ trực tiếp trong quá trình DMA
Không gian
vào/ra
Vi xử lý
Không gian bộ
nhớ
DMAC
5.4.1. PHƯƠNG PHÁP TRUY NHẬP BỘ NHỚ TRỰC TIẾP
46
v1.0014103212
5.4.1. PHƯƠNG PHÁP TRUY NHẬP BỘ NHỚ TRỰC TIẾP
• DMAC chia sẻ thời gian sử dụng các bus dữ liệu, địa chỉ và điều khiển.
Hình 10: Sơ đồ phối ghép DMAC với bộ nhớ, TBNV, và bộ VXL
Thiết bị I/O
CPU
DMAC
HRQ
HACK
DRQ
DACK
DRQ
DACK
HOLD
HLDA
Bộ nhớ
47
v1.0014103212
• Sơ đồ nguyên lý của DMAC
5.4.2. CHIP ĐIỀU KHIỂN DMAC
48
v1.0014103212
5.4.2. CHIP ĐIỀU KHIỂN DMAC
• DMAC gồm 3 khối chính
Timing Control: Sinh ra các tín hiệu định thời bên trong và tín hiệu điều khiển bên
ngoài 8237.
Program Command Control
Giải mã các lệnh gửi tới 8237 trước khi phục vụ yêu cầu DMA.
Giải mã từ điều khiển chế độ xác định kiểu DMA trong khi phục vụ yêu
cầu DMA.
Priority Encoder: Giải quyết xung đột yêu cầu DMA đồng thời.
49
v1.0014103212
• Các chân tín hiệu của DMAC
: DMAC đang đọc tín hiệu từ thiết bị ngoại vi;
: DMAC đang viết dữ liệu ra thiết bị ngoại vi;
: Dữ liệu được đọc từ bộ nhớ chính;
: Dữ liệu được ghi vào bộ nhớ chính;
READY: Tín hiệu vào từ bộ nhớ hoặc thiết bị ngoại vi;
HLDA: CPU báo cho DMAC biết CPU đã rời khỏi bus, trao bus cho DMAC;
ADSTB: Nhận byte cao và chốt địa chỉ ngoài của DMA;
AEN: Kích hoạt chốt địa chỉ của DMA;
HRQ: Tín hiệu yêu cầu DMA từ chip 8237.
MEMW
MEMR
IOW
IOR
5.4.2. CHIP ĐIỀU KHIỂN DMAC (tiếp theo)
50
v1.0014103212
5.4.2. CHIP ĐIỀU KHIỂN DMAC (tiếp theo)
• Các chân tín hiệu của DMAC:
: Tín hiệu chọn chip;
CLK: Lối vào xung đồng hồ;
RESET: Khởi động lại chip;
: Chấp nhận DMA;
DREQ0-DREQ3: Đòi hỏi DMA từ TBNV;
DB0-DB7: Bus dữ liệu 2 chiều;
A0-A7: Tín hiệu địa chỉ;
: Kết thúc xử lí DMA.
CS
EOP
DACK 0 – DACK 3
51
v1.0014103212
5.4.2. CHIP ĐIỀU KHIỂN DMAC (tiếp theo)
• Hoạt động của 8237: Bao gồm 2 chu kỳ hoạt động
Chu kỳ rỗi
Kiểm tra các tín hiệu DREQ xem có thiết bị nào yêu cầu DMA;
Kiểm tra CS nếu CPU có yêu cầu đọc/ghi các thanh ghi bên trong.
Chu kỳ hoạt động
Diễn ra khi có yêu cầu DREQ từ thiết bị ngoại vi;
Gửi tín hiệu HRQ tới CPU;
Hoạt động 1 trong 4 chế độ: Chế độ chuyển từng từ, chế độ chuyển mảng,
chế độ chuyển theo nhu cầu, chế độ ghép tầng.
52
v1.0014103212
Trong bài này chúng ta đã tìm hiểu các nội dung sau:
• Các chip bổ trợ trong hệ thống máy tính;
• Cấu tạo và nguyên tắc hoạt động của các chip bổ trợ cơ
bản như: 8255, 8259, 8237,
TÓM LƯỢC CUỐI BÀI