Bài giảng Kỹ thuật vi xử lý (Microprocessors) - Chương 4: Tổ chức vào ra dữ liệu
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật vi xử lý (Microprocessors) - Chương 4: Tổ chức vào ra dữ liệu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_ky_thuat_vi_xu_ly_microprocessors_chuong_4_to_chuc.ppt
Nội dung text: Bài giảng Kỹ thuật vi xử lý (Microprocessors) - Chương 4: Tổ chức vào ra dữ liệu
- © DHBK 2005 1/Chapter4 Nội dung môn học 1. Giới thiệu chung về hệ vi xử lý 2. Bộ vi xử lý Intel 8088/8086 3. Lập trình hợp ngữ cho 8086 4. Tổ chức vào ra dữ liệu 5. Ngắt và xử lý ngắt 6. Truy cập bộ nhớ trực tiếp DMA 7. Các bộ vi xử lý trên thực tế
- © DHBK 2005 2/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi
- © DHBK 2005 3/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 ❑ Các tín hiệu của 8086 ❑ Phân kênh và việc đệm cho các bus ❑ Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 ❑ Biểu đồ thời gian của các lệnh ghi/đọc • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi
- © DHBK 2005 4/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 Các tín hiệu của 8086 ❑ Phân kênh và việc đệm cho các bus ❑ Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 ❑ Biểu đồ thời gian của các lệnh ghi/đọc • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi
- © DHBK 2005 5/Chapter4 Các chân tín hiệu của 8086 M/IO (S2) 16 đường địa chỉ thấp/dữ liệu DT/R(S1) AD0-AD15 RD Tín hiệu điều A16/S3 WR (LOCK) khiển hệ thống A17/S4 DEN (S0) 4 đường A18/S5 SS0 bus C/ địa chỉ cao A19/S6 READY BHE/S7 NMI 8086 INTR Tín hiệu điều RESET HOLD(RQ/GT0) khiển CPU MN/MX HLDA(RQ/GT1) Tín hiệu điều INTA(QS1) khiển bus TEST CLK ALE(QS0) đồng hồ Vcc và nguồn GND GND
- © DHBK 2005 6/Chapter4 Các chân tín hiệu của 8086 • AD0-AD15: ❑ ALE =1: 16 chân địa chỉ cho bộ nhớ hoặc I/O ❑ ALE=0: 16 đường dữ liệu • A19/S6-A16/S3 ❑ 4 bit địa chỉ cao S4 S3 ❑ 4 bit trạng thái: S6 luôn bằng 1 0 0 ES S5: trạng thái của IF 0 1 SS S4, S3: bit trạng thái về thanh ghi đoạn đang truy cập 1 0 CS or No 1 1 DS • READY: input pin, ❑ 0 => vi xử lý vào trạng thái đợi ❑ 1: has no effect • INTR: interrupt request ❑ IF=1 và INTR=1=> cho phép ngắt • TEST ❑ nếu =0, CPU ở trạng thái đợi và thực hiện lệnh NOP ❑ =1, lệnh WAIT đợi đến khi TEST=0
- © DHBK 2005 7/Chapter4 Các chân tín hiệu của 8086 • NMI (Non-maskable interrupt) ❑ NMI=1 => thực hiện INT 2 • RESET ❑ 1: khởi động lại hệ thống và thực hiện lệnh tại ô nhớ FFFF0H • MN/MX ❑ 1: chế độ min ❑ 0: chế độ max • BHE/S7: ❑ 0: cho phép truy cập byte cao dữ liệu ❑ Trạng thái S7 luôn bằng 1 • RD ❑ 0: CPU đọc dữ liệu từ bộ nhớ hoặc thiết bị ngoại vi • Các chân ở chế độ min ❑ M/IO 1: truy cập bộ nhớ 0: truy cập thiết bị ngoại vi I/O ❑ WR 0: dữ liệu hợp lệ tại bus dữ liệu để đưa ra bộ nhớ hoặc thiết bị ngoại vi
- © DHBK 2005 8/Chapter4 Các chân tín hiệu của 8086 • Các chân ở chế độ min ❑ INTA: interrupt acknowledge 0: khi INTR=1 và IF=1 ❑ ALE: address latch enable ❑ DT/R: data transmit/receive 1: bus dữ liệu đang truyền dữ liệu đi 0: bus dữ liệu đang nhận dữ liệu ❑ DEN: Data enable 0: kích hoạt đệm dữ liệu ngoài ❑ HOLD 1: CPU tạm dừng hoạt động để nhường quyền điều khiển cho DMA, các bus được đặt ở trạng thái trở kháng cao ❑ HLDA (Hold Acknowledge) khi HOLD=1, HLDA=1
- © DHBK 2005 9/Chapter4 Các chân tín hiệu của 8086 • Các chân ở chế độ Max ❑ S2, S1, S0 ghép nối với điều khiển bus 8288 S2 S1 S0 chu kỳ điều khiển của bus 0 0 0 chấp nhận yêu cầu ngắt 0 0 1 đọc thiết bị ngoại vi 0 1 0 Ghi thiết bị ngoại vi 0 1 1 Dừng 1 0 0 đọc mã lệnh 1 0 1 đọc bộ nhớ 1 1 0 ghi bộ nhớ 1 1 1 bus rỗi
- © DHBK 2005 10/Chapter4 Các chân tín hiệu của 8086 • Các chân ở chế độ Max ❑ RQ/GT0 và RQ/GT1: Request/Grant Tín hiệu yêu cầu dùng bus của các bộ vi xử lý khác/chấp nhận treo bus của CPU GT0 có mức ưu tiên cao hơn GT1 ❑ LOCK 0: cấm các bộ vi xử lý khác dùng bus ❑ QS0 và QS1: trạng thái của hàng đợi lệnh QS1 QS0 Trạng thái hàng đợi lệnh 0 0 không hoạt động 0 1 đọc byte mã lệnh đầu tiên 1 0 hàng đợi rỗng 1 1 đọc byte tiếp theo
- © DHBK 2005 11/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 ❑ Các tín hiệu của 8086 Phân kênh và việc đệm cho các bus ❑ Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 ❑ Biểu đồ thời gian của các lệnh ghi/đọc • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi
- © DHBK 2005 12/Chapter4 Phân kênh và đệm cho các bus • Vì sao phải phân kênh và khuyếch đại đệm: ❑ Các bus địa chỉ và dữ liệu dùng chung chân ❑ Nâng cao khả năng tải của bus • Các vi mạch phân kênh và đệm: ❑ 74LS373: phân kênh ❑ 74LS245: đệm dữ liệu 2 chiều ❑ 74LS244: đệm 3 trạng thái theo 1 chiều
- © DHBK 2005 13/Chapter4 Phân kênh và đệm cho các bus M/IO M/IO RD ‘244 RD WR WR BHE/S7 BHE A19/S6 74LS373 A19 A16/S3 G A16 A15 A 8 A 7 8086 A 0 ALE G 74LS373 G 74LS373 AD15 D15 ‘245 AD8 G DIR D8 AD7 D7 ‘245 AD0 G DIR D0 DEN DT/R
- © DHBK 2005 14/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 ❑ Các tín hiệu của 8086 ❑ Phân kênh và việc đệm cho các bus Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 ❑ Biểu đồ thời gian của các lệnh ghi/đọc • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi
- 15/Chapter4 © DHBK 2005 Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
- © DHBK 2005 16/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 ❑ Các tín hiệu của 8086 ❑ Phân kênh và việc đệm cho các bus ❑ Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 Biểu đồ thời gian của các lệnh ghi/đọc • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi
- © DHBK 2005 17/Chapter4 Biểu đồ thời gian
- © DHBK 2005 18/Chapter4 Biểu đồ thời gian • Các ký hiệu trong biểu đồ thời gian: Min max Units CS 1 CS hold time 60 ns 1 2 CS to data 30 ns Data valid 3 Data hold time 5 10 ns 2 3
- © DHBK 2005 19/Chapter4 Biểu đồ thời gian • Một chu kỳ ghi/đọc của CPU (chu kỳ bus): 4 chu kỳ xung nhịp T ❑ 5 MHz: 4*200 ns=800 ns ❑ T1: CPU đưa ra địa chỉ của bộ nhớ hoặc I/O, DT/R, M/IO, ALE ❑ T2: CPU đưa ra RD hoặc WR, DEN và dữ liệu trên D0-D15 nếu là lệnh ghi CPU đọc tín hiệu READY tại cuối chu kỳ của T2 để xử lý trong chu kỳ tiếp theo khi nó làm việc với bộ nhớ hay I/O chậm ❑ T3: Nếu READY=0 => T3 trở thành chu kỳ đợi: Tw=n*T Tại cuối T3, CPU sẽ đọc dữ liệu nếu là lệnh đọc dữ liệu ❑ T4: Các tín hiệu trên bus được giải phóng WR chuyển từ 0 lên 1 kích hoạt quá trình ghi của bộ nhớ
- © DHBK 2005 20/Chapter4 Biểu đồ thời gian
- © DHBK 2005 21/Chapter4 Biểu đồ thời gian
- © DHBK 2005 22/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ ❑ Các loại bộ nhớ bán dẫn ❑ Giải mã địa chỉ cho bộ nhớ ❑ Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi
- © DHBK 2005 23/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ Các loại bộ nhớ bán dẫn ❑ Giải mã địa chỉ cho bộ nhớ ❑ Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi
- © DHBK 2005 24/Chapter4 Các loại bộ nhớ bán dẫn • Bộ nhớ không bị mất dữ liệu (non-volatile) ❑ ROM (Read Only Memory) ❑ PROM (Programmable ROM) ❑ EPROM (Electrically programmable ROM) ❑ Flash ❑ EEPROM (Electrically Erasable Programmable ROM) ❑ FeRAM (Ferroelectric Random Access Memory) ❑ MRAM (Magnetoelectronic Random Access Memory) • Bộ nhớ bị mất dữ liệu (volatile) ❑ SRAM (Static RAM) ❑ SBSRAM (Synchronous Burst RAM) ❑ DRAM (Dynamic RAM) ❑ FPDRAM (Fast Page mode Dynamic RAM) ❑ EDO DRAM (Extended Data Out Dynamic RAM) ❑ SDRAM (Synchronous Dynamic RAM) ❑ DDR-SDRAM (Double Data Rate SDRAM) ❑ RDRAM (Rambus Dynamic RAM)
- © DHBK 2005 25/Chapter4 Các loại bộ nhớ bán dẫn A0 D0 D1 Tín hiệu A1 Dữ liệu địa chỉ A2 D2 Am Dn WR WE CS OE WR: write WE: Write enable chọn chip RD OE: Output enable CS: Chip Select RD: read
- © DHBK 2005 26/Chapter4 EPROM Isolator Floating Gate Gate Source Drain n+ n+ p
- © DHBK 2005 27/Chapter4 EPROM No charges on floating gate Infinite number of free electrons Vss Vss Vss Many free Many free electrons electrons n+ n+ p D=Vss Hardly any G=Vss free electrons: no conducting path between Source and Drain S=Vss
- © DHBK 2005 28/Chapter4 EPROM No charges on floating gate Vcc Vss Vss n+ n+ p D=Vss Many free electrons attracted by positive G=Vcc gate voltage: conducting channel between Source S=Vss and Drain
- © DHBK 2005 29/Chapter4 EPROM Many electrons trapped on floating gate Vcc Vss Vss n+ n+ p D=Vss No free electrons: positive gate voltage is shielded by G=Vcc negative floating gate: no conducting channel between S=Vss Source and Drain
- © DHBK 2005 30/Chapter4 EPROM: reading Vcc Vcc Vcc Vcc Address 2 - to - 2 Decoder 4 MSB 4 2 LSB 2-to-4 Mux Data
- © DHBK 2005 31/Chapter4 Read(0x6) EPROM: reading Vcc Vcc Vcc Vcc 0110 2 - to - 01 Decoder 4 4 10 2-to-4 Mux 0
- © DHBK 2005 32/Chapter4 Read(0x8) EPROM: reading Vcc Vcc Vcc Vcc 1000 2 - to - 10 Decoder 4 4 00 2-to-4 Mux 1
- © DHBK 2005 33/Chapter4 EPROM: erasing UV light Vcc Vcc Vcc Vcc Address 2 2 - - to to - - 4 Decoder 4 2 Decoder 4 MSB 4 2 LSB 2-to-4 Mux Data
- © DHBK 2005 34/Chapter4 Write 1 at 0x2 EPROM: writing 12V Vcc Vcc Vcc Vcc Address0010 2 2 2 - - - to to to - - - 4 Decoder Decoder 4 4 2 Decoder 4 00 MSB 4 2 10 LSB 2-to-4 Mux Data
- © DHBK 2005 35/Chapter4 EPROM • Ghi vào EPROM ❑ Dùng mạch nạp với điện áp 12 V ❑ 1 ms một bit • Xoá EPROM ❑ 20 phút dưới tia tử ngoại ❑ Số lần ghi 3 lần • Đọc EPROM ❑ 100 ns • EPROM họ 27xxx ❑ 2708 (1K*8), 2716 (2K*8), 2732 (4K*8), 2764 (8K*8) ❑ 27128 (16K*8), 27256 (32K*8), 27512 (64K*8)
- © DHBK 2005 36/Chapter4 EPROM • Ví dụ: 2716 EPROM U2 8 9 Address 7 A0 O0 10 6 A1 O1 11 5 A2 O2 13 4 A3 O3 14 3 A4 O4 15 CE 2 A5 O5 16 1 A6 O6 17 23 A7 O7 22 A8 19 A9 A10 Output 20 18 OE 120 100 CE 21 VPP 450 2716
- © DHBK 2005 37/Chapter4 So sánh các loại ROM Loại ROM Thời gian ghi Thời gian đọc số lần ghi Kích thước ROM NA 35 ns 0 Mbits PROM 1s/bit 35 ns 1 128 Kbits EPROM 1ms/bit 45 ns 3 16 Mbits Flash 1s/2 KB 35 ns 1 triệu GBits EEPROM 10 ms/page 200 ns 10000 Mbit FeRAM 60 ns 50 ns 1000 tỉ 32 Mbits MRAM 5ns 5ns 1015 4 Mbits
- © DHBK 2005 38/Chapter4 SRAM One row of cells is read out at once MUX selects one out of these cells 0110 1bit 1bit 1bit 1bit 2 2 - - cell cell cell cell to to - - 4 Decoder 4 01 Decoder 4 1bit 1bit 1bit 1bit cell cell cell cell 1bit 1bit 1bit 1bit 4 cell cell cell cell 1bit 1bit 1bit 1bit cell cell cell cell 10 2-to-4 Mux
- © DHBK 2005 39/Chapter4 SRAM bit cell Bit line Bit line inverse Word Vcc Acts as a resistor
- © DHBK 2005 40/Chapter4 Storage SRAM bit cell Bit line Bit line inverse Word Vcc R 5V 0V Current Assumption Stable situation; stores a ‘1’ Dissipates continuously
- © DHBK 2005 41/Chapter4 Storage SRAM bit cell Bit line Bit line inverse Word Vcc R 0V 5V Current Assumption Stable situation; stores a ‘0’ Dissipates continuously
- © DHBK 2005 42/Chapter4 Reading of a ‘1’SRAM bit cell Bit line Bit line inverse Word Vcc R 5V 0V Current 1 0
- © DHBK 2005 43/Chapter4 Reading of a ‘0’SRAM bit cell Bit line Bit line inverse Word Vcc R 0V 5V Current 0 1
- © DHBK 2005 44/Chapter4 Writing of a ‘1’ SRAM bit cell V cc Vcc Word Vcccc BitBit lineline RR Bit line inverseinverse 0V5V5V 5V0V CurrentCurrent Current Current W.D’ W.DW.D
- © DHBK 2005 45/Chapter4 SRAM • Đặc điểm: ❑ 6 transistors 1 bit: đắt! ❑ Bị mất dữ liệu khi mất nguồn ❑ nhanh: thời gian đọc và ghi 5 ns ❑ Liên tục tiêu thụ năng lượng ❑ Kích thước: 16 Mbit • ứng dụng: ❑ Bộ nhớ nhỏ và nhanh (cache) ❑ Không dùng cho các thiết bị chạy pin • Ví dụ: 4016 (2K*8), 250 ns A0-A10 D0-D7 OE WE CS
- © DHBK 2005 46/Chapter4 Bit DRAM Word line line Address 1bit 1bit 1bit 1bit 2 - cell cell cell cell to - 2 Decoder 4 MSB 1bit 1bit 1bit 1bit cell cell cell cell 1bit 1bit 1bit 1bit 4 cell cell cell cell 1bit 1bit 1bit 1bit cell cell cell cell 2 LSB 2-to-4 Mux Data
- © DHBK 2005 47/Chapter4 DRAM One row of cells is read out at once MUX selects one out of these cells 0110 1bit 1bit 1bit 1bit 2 2 - - cell cell cell cell to to - - 4 Decoder 4 01 Decoder 4 1bit 1bit 1bit 1bit cell cell cell cell 1bit 1bit 1bit 1bit 4 cell cell cell cell 1bit 1bit 1bit 1bit cell cell cell cell 10 2-to-4 Mux Data
- 48/Chapter4 © DHBK 2005 DRAM bit cell Vcc/2 1 bit Pre- cell charge Word line Refresh Vcc/2 Vcc/2 Vcc/2 Bit line Sense amplifier MUX
- 49/Chapter4 © DHBK 2005 Storage DRAM bit cell Vcc/2 Pre- charge Word line 5V 0V 5V 0V 5V 5V Refresh V /2 V /2 V /2 cc cc cc 30 fF in .2 m Stores .5 M e- MUX
- 50/Chapter4 © DHBK 2005 Read DRAM bit cell Vcc/2 Pre- charge Word line 2.55V5V 2.45V0V 2.55V5V 2.55V2.5V5V 0V 5V 5V RefreshRefreshRefreshRefreshRefreshRefreshRefreshRefreshRefreshRefresh Refresh Vcc/2 Vcc/2 Vcc/2 MUX
- © DHBK 2005 51/Chapter4 DRAM bit cell • Chu kỳ đọc ❑ 1. Precharge ❑ 2. RAS (Row Address Select): đọc tất cả các bit trong hàng được chọn. Việc đọc này làm giá trị điện áp trên tụ điện bị thay đổi ❑ 3. Khuếch đại tín hiệu trên các cột tương ứng ❑ 4.a CAS (Column Address Select): chọn 1 cột và đưa dữ liệu ra ngoài ❑ 4.b Refresh: khôi phục lại dữ liệu ban đầu của hàng đã được chọn ở bước 2.
- 52/Chapter4 © DHBK 2005 Write DRAM bit cell Vcc/2 Pre- charge Word line 2.55V5V 2.45V0V5V 2.55V5V 0V 5V 5V RefreshRefreshRefreshRefreshRefresh Refresh Vcc/2 Vcc/2 Vcc/2 MUX
- © DHBK 2005 53/Chapter4 DRAM bit cell • Chu kỳ ghi ❑ 1. Precharge ❑ 2. RAS (Row Address Select): đọc tất cả các bit trong hàng được chọn. Việc đọc này làm giá trị điện áp trên tụ điện bị thay đổi ❑ 3. Khuếch đại tín hiệu trên các cột tương ứng ❑ 4.a CAS (Column Address Select): chọn 1 cột và đưa giá trị cần ghi vào cột đó ❑ 4.b Refresh: khôi phục lại dữ liệu ban đầu của hàng đã được chọn ở bước 2 trừ bit vừa mới được ghi vào.
- 54/Chapter4 © DHBK 2005 Refresh DRAM bit cell Vcc/2 Pre- charge Word line 2.51V5V3V 2.49V0V2V 2.51V5V3V 2.49V0V2V 2.51V5V3V 2.51V5V3V RefreshRefreshRefreshRefreshRefreshRefreshRefresh Refresh Vcc/2 Vcc/2 Vcc/2 MUX
- © DHBK 2005 55/Chapter4 DRAM bit cell • Chu kỳ làm tươi ❑ 1. Precharge ❑ 2. RAS (Row Address Select): đọc tất cả các bit trong hàng được chọn. Việc đọc này làm giá trị điện áp trên tụ điện bị thay đổi ❑ 3. Khuếch đại tín hiệu trên các cột tương ứng ❑ 4. Refresh: khôi phục lại dữ liệu ban đầu của hàng đã được chọn ở bước 2.
- © DHBK 2005 56/Chapter4 DRAM • Đặc điểm: ❑ 1 transistor 1 bit: rẻ, tuy nhiên việc điều khiển quá trình làm tươi làm tăng giá thành của DRAM ❑ Chỉ tiêu thụ năng lượng trong quá trình làm tươi và truy nhập ❑ Tương đối nhanh: thời gian đọc và ghi 50 ns ❑ Mỗi một hàng phải được làm tươi sau 4 ms Nếu có 1024 hàng, chu kỳ làm tươi sẽ là 4 s ❑ Kích thước: 4 Gbits • Được dùng làm bộ nhớ chính trong các hệ vi xử lý • Ví dụ: TMS 4464 (64K*4) A0-A7 D0-D3 CAS: cho phép chốt địa chỉ cột RAS: cho phép ch t đ a ch hàng OE WE ố ị ỉ CAS RAS
- © DHBK 2005 57/Chapter4 DRAM • Đặc điểm: ❑ 1 transistor 1 bit: rẻ, tuy nhiên việc điều khiển quá trình làm tươi làm tăng giá thành của DRAM ❑ Chỉ tiêu thụ năng lượng trong quá trình làm tươi và truy nhập ❑ Tương đối nhanh: thời gian đọc và ghi 50 ns ❑ Mỗi một hàng phải được làm tươi sau 4 ms Nếu có 1024 hàng, chu kỳ làm tươi sẽ là 4 s ❑ Kích thước: 4 Gbits • Được dùng làm bộ nhớ chính trong các hệ vi xử lý • Ví dụ: TMS 4464 (64K*4) A0-A7 D0-D3 CAS: cho phép chốt địa chỉ cột RAS: cho phép ch t đ a ch hàng OE WE ố ị ỉ CAS RAS
- © DHBK 2005 58/Chapter4 DRAM • Examples of DRAM: ❑ SIMM (Single Inline Memory Module): 72 pins ❑ DIMM (Dual Inline Memory Module): 168 pins 72-Pin SIMM
- © DHBK 2005 59/Chapter4 SRAM - DRAM Cost SRAM DRAM Refresh controller Size
- © DHBK 2005 60/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ ❑ Các loại bộ nhớ bán dẫn Giải mã địa chỉ cho bộ nhớ Dùng cổng NAND Dùng bộ giải mã 74LS138, 74LS139 Dùng PROM Dùng PAL (Programmable Array Logic) ❑ Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi
- 61/Chapter4 © DHBK 2005 Giải mã địa chỉ bộ nhớ dùng cổng NAND • Ví dụ: Ghép EPROM 2716 (2K * 8) với 8088 • Phân tích: ❑ 2716: 11 đường địa chỉ A10-A0 ❑ 8088: 20 đường địa chỉ A20-A0 ❑ Chọn vùng nhớ 2K trong 1M? EPROM: 00000H-003FFH: không được phép chọn: FF800H-FFFFFH: chứa đoạn khởi động FFFF0H-FFFFFH A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0 • FF800: 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 • FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
- 62/Chapter4 © DHBK 2005 Giải mã địa chỉ bộ nhớ dùng cổng NAND A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0 • FF800: 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 • FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 A19 A18 8088 A A0-A10 A17 Bus 8088 D D0-D7 A16 Bus A15 A14 CS OE A13 A12 A 11 RD IO/M
- 63/Chapter4 © DHBK 2005 Giải mã địa chỉ bộ nhớ dùng bộ giải mã • Ví dụ: Dùng EPROM 2764 (8K*8) để ghép thành bộ nhớ 64 K cho 8088 bắt đầu từ địa chỉ F0000H • Phân tích: ❑ Địa chỉ bắt đầu F0000H => địa chỉ kết thúc: FFFFFH ❑ Cần ghép 8 EPROM 2764 vì 64=8*8K A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0 • F0000: 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IC 1 • F1FFF: 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 • F2000: 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 IC 2 • F3FFF: 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 • F4000: 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IC 3 • F5FFF: 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 • FE000: 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 • FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 IC 8
- 64/Chapter4 © DHBK 2005 Giải mã địa chỉ bộ nhớ dùng bộ giải mã • DùngU1 bộ giải mã 3-8 74LS138 1 15 C B A G2B G2A G1 y0 y1 y2 y3 y4 y5 y6 y7 2 A Y0 14 x x x 1 x x 1 1 1 1 1 1 1 1 B Y1 3 13 x x x x 1 x 1 1 1 1 1 1 1 1 C Y2 12 6 Y3 11 x x x x x 0 1 1 1 1 1 1 1 1 4 G1 Y4 10 0 0 0 0 0 1 0 1 1 1 1 1 1 1 G2A Y5 5 9 0 0 1 0 0 1 1 0 1 1 1 1 1 1 G2B Y6 7 Y7 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 74LS138 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0
- 65/Chapter4 © DHBK 2005 Giải mã địa chỉ bộ nhớ dùng bộ giải mã • Dùng bộ giải mã 3-8 74LS138 A0-A12 A0-A12 A0-A10 D0-D7 D0-D7 2764A0-A10 D0-A0D7-A10 U1 RD OE D02764-D7 OE D02764A0-D7-A10 A13 1 15 CS OE 2764A0-A10 A Y0 D0-A0D7-A10 A14 2 14 CS OE D02764-D7 3 B Y1 13 CS A0-A10 A15 C Y2 OE D02764-D7 12 CS OE D02764-D7 6 Y3 11 2764 A16 G1 Y4 CS OE 4 10 CS OE G2A Y5 IO/M 5 9 CS G2B Y6 7 CS A17 Y7 A18 A19 74LS138
- 66/Chapter4 © DHBK 2005 Giải mã địa chỉ bộ nhớ dùng bộ giải mã • Dùng bộ giải mã kép 2-4 74LS139 1A 1Y0 1B 1Y1 1Y2 1G 1Y3 2A 2Y0 2B 2Y1 2Y2 2G 2Y3 • Ví dụ: Dùng EPROM 27128 (16K*8) để ghép thành bộ nhớ 64 K cho 8088 bắt đầu từ địa chỉ F0000H
- 67/Chapter4 © DHBK 2005 Giải mã địa chỉ bộ nhớ dùng PROM • Dùng PROM TPB28L42 (512*8) A0-A12 A0-A12 A0-A10 D0-D7 D0-D7 2764A0-A10 D0-A0D7-A10 RD OE D02764-D7 OE D02764A0-D7-A10 A13 A O A0-A10 0 0 CS OE D02764-D7 A14 A O A0-A10 1 1 CS OE D02764-D7 A15 A O A0-A10 2 2 CS OE D02764-D7 A16 A3 CS O3 OE D02764-D7 A A17 4 TPB28L42 CS OE 2764 A O4 A18 5 CS OE A O5 A19 6 CS A O6 7 CS A O 8 G 7 IO/M
- 68/Chapter4 © DHBK 2005 Giải mã địa chỉ bộ nhớ dùng PAL
- © DHBK 2005 69/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ ❑ Các loại bộ nhớ bán dẫn ❑ Giải mã địa chỉ cho bộ nhớ Ghép nối 8088 với bộ nhớ Ghép nối 8088 với ROM Ghép nối 8088 với SRAM Ghép nối 8088 với DRAM • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi
- © DHBK 2005 70/Chapter4 Ghép nối 8088 với bộ nhớ • Nguyên tắc: ❑ Ghép trực tiếp: Thời gian truy cập bộ nhớ của CPU > thời gian truy cập của bộ nhớ + thời gian giải mã địa chỉ ❑ Ghép có chèn thêm thời gian đợi của CPU Thời gian truy cập bộ nhớ của CPU < thời gian truy cập của bộ nhớ + thời gian giải mã địa chỉ 8088 hoạt động ở 5 MHz có thời gian truy cập bộ nhớ 420 ns
- © DHBK 2005 71/Chapter4 Ghép nối 8088 với ROM • Ví dụ: ghép nối 8088 với EPROM 2732-450 ns A0-A11 A0-A11 A0-A10 D0-D7 D0-D7 2732A0-A10 D0-A0D7-A10 U1 RD OE D02764-D7 OE D02764A0-D7-A10 A12 1 15 F8000-F8FFF CS OE 2764A0-A10 A Y0 D0-A0D7-A10 A13 2 14 F9000-F9FFF CS OE D02764-D7 3 B Y1 13 CS A0-A10 A14 C Y2 OE D02764-D7 12 CS OE D02764-D7 6 Y3 11 2764 A15 G1 Y4 CS OE 4 10 CS OE G2A Y5 IO/M 5 9 CS A16 G2B Y6 7 FF000-FFFFF CS A17 Y7 A18 Bộ tạo Tw A19 74LS138 Tới chân RDY1 của 8284
- © DHBK 2005 72/Chapter4 Ghép nối 8088 với SRAM • Ví dụ: ghép nối 8088 với SRAM 62256 (32K*8) để được bộ nhớ 256 KB, bắt đầu từ địa chỉ 00000H A0-A14 A0-A14 A0-A10 D0-D7 D0-D7 62256A0-A10 D0-A0D7-A10 U1 RD OE D02764-D7 WR WOEE D02764A0-D7-A10 A15 1 15 00000-07FFF CS OE 2764A0-A10 A Y0 D0-A0D7-A10 A16 2 14 08000-0FFFF CS OE D02764-D7 3 B Y1 13 10000-17FFF CS A0-A10 A17 C Y2 OE D02764-D7 12 CS OE D02764-D7 6 Y3 11 2764 A18 G1 Y4 CS OE 4 10 CS OE G2A Y5 IO/M 5 9 CS G2B Y6 7 38000-3FFFF CS Y7 A19 74LS138
- © DHBK 2005 73/Chapter4 Ghép nối 8088 với DRAM • Cần có DRAM controller: ❑ Dồn kênh 2 loại tín hiệu địa chỉ cho mỗi mạch nhớ và cung cấp xung cho phép chốt địa chỉ RAS và CAS ❑ Cung cấp tín hiệu việc ghi đọc bộ nhớ ❑ Làm tươi bộ nhớ trong thời gian thích hợp ❑ Đảm bảo không có xung đột trong hoạt động ghi đọc với công việc làm tươi
- © DHBK 2005 74/Chapter4 Ghép nối 8088 với DRAM • Ví dụ: ghép 8088 với TMS 4464 (64K*4) DRAM để được bộ nhớ 128 KB, bắt đầu tại địa chỉ 00000H A0-A7 RA0-RA7 MA0-MA7 A0-A7 A8-A15 CA0-CA7 2x4464 RAS0 RAS ALE ALE CAS CAS A16 REN1 RD ACR TMS 4500A WR ACW A0-A7 RDY RDY 2x4464 RAS1 CLK CLK RAS A17 A18 CAS A19 CS IO/M
- © DHBK 2005 75/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi
- © DHBK 2005 76/Chapter4 Ghép nối 8086 với bộ nhớ FFFFF FFFFE 8088 8086 FFFFD FFFFC FFFFB FFFFA 8 bit 16 bit IO/M M/IO BHE 00005 00004 00003 00002 BHE A0 Chức năng 00001 00000 Bank cao Bank thấp 0 0 chọn cả 2 bank (bank lẻ) (Bank chẵn) 0 1 chọn bank cao 1 0 chọn bank thấp 1 1 không chọn bank nào
- © DHBK 2005 77/Chapter4 Ghép nối 8086 với bộ nhớ • Ví dụ: Ghép EPROM 2716 (2K * 8) với 8086 để được vùng bộ nhớ FF000H-FFFFFH ❑ Cần 2 IC vì 4KB=2*2KB A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0 • FF000: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 Bank thấp • FFFFE: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 • FF001: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 Bank cao • FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
- © DHBK 2005 78/Chapter4 Ghép nối 8086 với bộ nhớ A19 A18 A A1-A11 A0-A10 17 D0-D7 A D0-D7 16 2716 A15 A14 CS OE A13 A12 M/IO RD A0 A19 A18 A A1-A11 A0-A10 17 D8-D15 A D0-D7 16 2716 A15 A14 CS OE A13 A12 M/IO RD BHE
- © DHBK 2005 79/Chapter4 Ghép nối 8086 với bộ nhớ BHE HRD RD A1-A11 A0-A10 D0-D7 D0-D7 LRD 2716 A0 CS OE LRD A19 A18 A A1-A11 A0-A10 17 D8-D15 A D0-D7 16 2716 A15 A14 CS OE A13 A12 M/IO HRD
- © DHBK 2005 80/Chapter4 Ghép nối 8086 với bộ nhớ • Ví dụ: ghép nối 8086 với SRAM 62256 (32K*8) để được bộ nhớ 256 KB, bắt đầu từ địa chỉ 00000H BHE HWR WR LWR A0
- © DHBK 2005 81/Chapter4 Ghép nối 8086 với bộ nhớ • Ví dụ: thiết kế hệ thống nhớ cho 8086 với 64 KB EPROM và 128 KB SRAM sử dụng SRAM 62256 (32K*8) và EPROM 27128 (16K*8)
- © DHBK 2005 82/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi ❑ Các kiểu giao tiếp giữa vi xử lý và thiết bị ngoại vi ❑ Các kiểu ghép nối vào/ra ❑ Giải mã địa chỉ cho các thiết bị vào/ra ❑ Mạch ghép nối vào ra song song lập trình được 8255A ❑ Mạch điều khiển bàn phím/màn hình lập trình được 8279 ❑ Bộ định thời lập trình được 8254 ❑ Giao tiếp truyền thông lập trình được 16550 ❑ Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
- © DHBK 2005 83/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi ❑ Các kiểu giao tiếp giữa vi xử lý và thiết bị ngoại vi ❑ Các kiểu ghép nối vào/ra ❑ Giải mã địa chỉ cho các thiết bị vào/ra ❑ Mạch ghép nối vào ra song song lập trình được 8255A ❑ Mạch điều khiển bàn phím/màn hình lập trình được 8279 ❑ Bộ định thời lập trình được 8254 ❑ Giao tiếp truyền thông lập trình được 16550 ❑ Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
- 84/Chapter4 © DHBK 2005 Các kiểu giao tiếp giữa vi xử lý và thiết bị ngoại vi Memory bus CPU Memory Bus Adapter I/O Bus I/O I/O I/O Controller Controller Controller I/O I/O I/O Device Device Device
- 85/Chapter4 © DHBK 2005 Các kiểu giao tiếp giữa vi xử lý và thiết bị ngoại vi • Giao tiếp kiểu thăm dò, móc nối (handshaking) 1. CPU kiểm tra trạng thái của thiết bị ngoại vi 2. Nếu thiết bị ngoại vi sẵn sàng trao đối dữ liệu việc trao đối sẽ được thực hiện bởi tín hiệu móc nối 3. Nếu thiết bị ngoại vi chưa sẵn sàng, CPU sẽ thực hiện công việc khác và quay lại bước 1 • Giao tiếp bằng ngắt (Interrupt) 1. Thiết bị ngoại vi muốn trao đổi dữ liệu với CPU, nó sẽ gửi tín hiệu yêu cầu ngắt tới chân INTR của CPU 2. CPU chấp nhận yêu cầu ngắt bằng cách gửi tín hiệu INTA tới thiết bị ngoại vi 3. CPU thực hiện chương trình con phục vụ ngắt • Giao tiếp bằng truy cập bộ nhớ trực tiếp (DMA) 1. Thiết bị ngoại vi muốn truy cập trực tiếp bộ nhớ không thông qua CPU, nó đưa tín hiệu yêu cầu tới chân HOLD của CPU thông qua khối điều khiển DMA 2. CPU chấp nhận và gửi tín hiệu HLDA tới khối điều khiển DMA và treo các bus 3. Khối điều khiển DMA sẽ điều khiển việc trao đổi dữ liệu giữa thiết bị ngoại vi và bộ nhớ
- © DHBK 2005 86/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi Các kiểu ghép nối vào/ra ❑ Giải mã địa chỉ cho các thiết bị vào/ra ❑ Mạch ghép nối vào ra song song lập trình được 8255A ❑ Mạch điều khiển bàn phím/màn hình lập trình được 8279 ❑ Bộ định thời lập trình được 8254 ❑ Giao tiếp truyền thông lập trình được 16550 ❑ Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
- © DHBK 2005 87/Chapter4 Các kiểu ghép nối vào ra • Thiết bị vào ra có không gian địa chỉ cách biệt: FFFF Địa chỉ: 0000H-FFFFH M/IO=0 Vùng mở rộng 03FF Vào ra dữ liệu bằng lệnh IN, OUT COM1 03F8 Điều khiển đĩa mềm 03F0 Ví dụ: CGA adapter IN AX, 00H 03D0 LPT1 IN AL, F0H 0378 Điều khiển ổ cứng IN AX, DX 0320 COM2 02F8 8255 OUT 00H, AX 0060 OUT F0H, AL Định thời (8253) 0040 OUT DX, AX Điều khiển ngắt 0020 0000 Điều khiển DMA
- © DHBK 2005 88/Chapter4 Các kiểu ghép nối vào ra • Thiết bị vào ra có không gian địa chỉ cách biệt:
- © DHBK 2005 89/Chapter4 Các kiểu ghép nối vào ra • Thiết bị vào/ra có cùng không gian địa chỉ với bộ nhớ FFFFF M/IO=1 Vào ra dữ liệu bằng bất kỳ lệnh di chuyển dữ liệu nào giữa I/O CPU và bộ nhớ Ví dụ: MOV AX, [0FF3H] 00000 Memory + I/O
- © DHBK 2005 90/Chapter4 Các kiểu ghép nối vào ra • Ví dụ cổng vào đơn giản: VCC 1 2 3 4 5 6 7 8 10K 16 15 14 13 12 11 10 9 U1 2 18 4 A1 Y1 16 6 A2 Y2 14 8 A3 Y3 12 Tới bus dữ liệu 11 A4 Y4 9 13 A5 Y5 7 của CPU 15 A6 Y6 5 17 A7 Y7 3 A8 Y8 1 19 1OE 2OE 74ALS244 SEL Từ giải mã địa chỉ cổng
- © DHBK 2005 91/Chapter4 Các kiểu ghép nối vào ra • Ví dụ cổng ra đơn giản: VCC 330 U2 3 2 4 D0 Q0 5 7 D1 Q1 6 Từ bus dữ liệu 8 D2 Q2 9 13 D3 Q3 12 của CPU 14 D4 Q4 15 17 D5 Q5 16 18 D6 Q6 19 D7 Q7 11 CLK 1 OE SEL 74ALS374 Từ giải mã địa chỉ cổng
- © DHBK 2005 92/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi ❑ Các kiểu ghép nối vào/ra Giải mã địa chỉ cho các thiết bị vào/ra ❑ Mạch ghép nối vào ra song song lập trình được 8255A ❑ Mạch điều khiển bàn phím/màn hình lập trình được 8279 ❑ Bộ định thời lập trình được 8254 ❑ Giao tiếp truyền thông lập trình được 16550 ❑ Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
- © DHBK 2005 93/Chapter4 Giải mã địa chỉ cho các thiết bị vào/ra • 8 bit địa chỉ hay 16 bit? ❑ Tổng số thiết bị 256: 16 bit A0-A15: 0000H-FFFFH • 8 bit dữ liệu hay 16 bit? ❑ Nếu cổng là 8 bit: chọn 1 trong 2 bank ❑ Nếu cổng là 16 bit: chọn cả 2 bank BHE A0 FFFF FFFE FFFD FFFC FFFB FFFA D8-D15 D0-D7 0005 0004 0003 0002 0001 0000 Bank cao Bank thấp (bank lẻ) (Bank chẵn)
- © DHBK 2005 94/Chapter4 Giải mã địa chỉ cho các thiết bị vào/ra • Ví dụ: Giải mã địa chỉ cho thiết bị ra 8 bit với địa chỉ 07H ❑ 07H= 0000 0111 A 0 A0 A D0-D7 D8-D15 1 A1 A D0-D7 2 A2 D0-D7 A 3 A3 A4 A CS WE 4 A CS WE 5 A5 A 6 A6 A7 A WR 7 WR IO/M M/IO BHE 8088 8086
- © DHBK 2005 95/Chapter4 Giải mã địa chỉ cho các thiết bị vào/ra • Ví dụ: Giải mã địa chỉ cho thiết bị ra 16 bit với địa chỉ cổng 64H và 65H ❑ 64H= 0110 0100 ❑ 65H= 0110 0101 D8-D15 D8-D15 CS WE A1 A2 WR A3 A4 A5 D7-D0 A6 D0-D7 A7 M/IO CS WE
- © DHBK 2005 96/Chapter4 Giải mã địa chỉ cho các thiết bị vào/ra • Ví dụ: Giải mã địa chỉ cho các cổng vào ra 8 bit ở bank thấp với các địa chỉ 10H, 12H, 14H, 16H, 18H, 1AH, 1CH, 1EH ❑ 10H=0001 0000 ❑ 12H=0001 0010 ❑ ❑ 1EH=0001 1110 U1 A1 1 15 10H A Y0 A2 2 14 12H 3 B Y1 13 14H A3 C Y2 12 16H Y3 A0 6 11 18H 4 G1 Y4 10 1AH M/IO G2A Y5 1CH A4 5 9 G2B Y6 7 1EH A5 Y7 A6 A7 74LS138
- © DHBK 2005 97/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi ❑ Các kiểu ghép nối vào/ra ❑ Giải mã địa chỉ cho các thiết bị vào/ra Mạch ghép nối vào ra song song lập trình được 8255A Cấu trúc của 8255A Các chế độ làm việc của 8255A Lập trình cho 8255A ❑ Mạch điều khiển bàn phím/màn hình lập trình được 8279 ❑ Bộ định thời lập trình được 8254 ❑ Giao tiếp truyền thông lập trình được 16550 ❑ Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
- © DHBK 2005 98/Chapter4 Cấu trúc của 8255A • Giao tiếp các thiết bị tương thích TTL với vi xử lý • Thường được dùng để giao tiếp bàn phím và máy in trong các may tính PC (dưới dạng là một khối trong chíp tích hợp) • Cần chèn trạng thái đợi khi làm việc với vi xử lý >8 Mhz • Có 24 đường vào ra và có 3 chế độ làm việc • Trong các máy PC, địa chỉ cổng của 8255 là 60H- 63H
- © DHBK 2005 99/Chapter4 Cấu trúc của 8255A
- © DHBK 2005 100/Chapter4 Cấu trúc của 8255A
- © DHBK 2005 101/Chapter4 Cấu trúc của 8255A RD WR
- © DHBK 2005 102/Chapter4 Các chế độ làm việc của 8255A
- © DHBK 2005 103/Chapter4 Các chế độ làm việc của 8255A • Chế độ 0: Chế độ vào ra đơn giản: các cổng có thể làm việc như là cổng vào có đệm hoặc cổng ra có chốt đệm. • Chế độ 1: Chế độ này cho phép cổng A và B làm việc như các thiết bị vào hoặc ra có tín hiệu móc nối (handshaking) do các bit tương ứng của cổng C trong cùng nhóm đảm nhiệm • Chế độ 2: chế độ này cho phép cổng A làm việc 2 chiều với các tín hiệu móc nối do cổng PCH đảm nhiệm. Cổng B có thể làm việc ở chế độ 1 hoặc 0
- © DHBK 2005 104/Chapter4 Chế độ 0 RD WR
- © DHBK 2005 ; Lập trình cho 8255 105/Chapter4 MOV AL, 10000000B ; Port A, Port B mode 0, output MOV DX, 703H Ch đ 0 OUT DX, AL ế ộ ; Thủ tục hiển thị LED từ dữ liệu chứa trong bộ nhớ DISP PROC NEAR • Giả thiết địaPUSHF chỉ của các cổng; cất c cácủ thanha ghi8255 vào ngăn xếp là 0700H- PUSH AX 0703H PUSH BX PUSH DX PUSH SI ; Thiết lập các thanh ghi để hiển thị MOV BX, 8 ;số LED MOV AH, 7FH ;chọn LED đầu tiên 0111 1111 MOV SI, OFFSET MEM-1 ; địa chỉ chứa dữ liệu MOV DX,701H ; địa chỉ cổng B ;Hiển thị 8 số DISP1: MOV AL, AH ;chọn 1 số OUT DX, AL DEC DX ; địa chỉ cổng A MOV AL, [BX+SI] ; dữ liệu của 7 đoạn led OUT DX, AL CALL Delay ; trễ 1 ms ROR AH, 1 ;số tiếp theo INC DX ; địa chỉ cổng B DEC BX ;giảm chỉ số JNZ DISP1 ; lặp lại 8 lần ;khôi phục lại các thanh ghi POP SI POP DX POP BX POP AX POPF RET DISP ENDP
- © DHBK 2005 106/Chapter4 Chế độ 0
- © DHBK 2005 107/Chapter4 Chế độ 0
- © DHBK 2005ROWS EQU 4 ; 4 hàng 108/Chapter4 COLS EQU 4 ; 4 cột PORTA EQU 50H Chế độ 0 PORTB EQU 51H KEY PROC NEAR USES CX CALL SCAN ;test all keys SCAN PROC NEAR USES BX JNZ KEY ; if key closed MOV CL, ROWS ;form row mask CALL DELAY ; đợi 10 ms MOV BH, OFFH CALL SCAN SHL BH, CL JNZ KEY MOV CX, COLS ;load column count KEY1: MOV BL, OFEH ;get selection mode CALL SCAN SCAN1: JZ KEY1 ; if no key closed MOV AL, BL ;select column CALL DELAY OUT PORTB, AL CALL SCAN ROL BL, 1 JZ KEY1 IN AL, PORTA; read rows PUSH AX ;cất mã hàng OR AL,BH MOV AL, COLS ;cal starting row key CMP AL, 0FFH ;test for a key SUB AL, CL JNZ SCAN2 MOV CH, ROWS LOOP SCAN1 MUL CH MOV CL, AL SCAN2: DEC CL RET POP AX SCAN ENDP KEY2: ROR AL,1 ;find row position DELAY PROC NEAR USES CX INC CL MOV CX, 5000 ;10ms (8MHZ) JC KEY2 DELAY1: MOV AL,CL ;move code to AL LOOP DELAY1 RET RET KEY ENDP DELAY ENDP
- © DHBK 2005 109/Chapter4 Chế độ 1 • Port A và B làm việc ở chế độ cổng vào có chốt: ❑ dữ liệu sẽ được giữ tại cổng A, B cho đến khi CPU sẵn sàng ❑ cổng C làm cổng điều khiển và cấp tín hiệu móc nối
- © DHBK 2005 110/Chapter4 Chế độ 1
- © DHBK 2005 111/Chapter4 Chế độ 1 PA 0-PA 7 ASCII D0-D7 STB PC4 DAV 82C55 Keyboard Bit5 EQU 20H PortC EQU 22H PortA EQU 20H Read PROC NEAR IN AL, PortC ; read PortC Test AL, Bit5 ; test IBF JZ READ ; if IBF=0 IN AL, PortA ; read data RET Read Endp
- © DHBK 2005 112/Chapter4 Chế độ 1 • Port A và B làm việc ở chế độ cổng ra có chốt: ❑ tương tự như cổng ra ở chế độ 0 ❑ cổng C làm cổng điều khiển và cấp tín hiệu móc nối 1
- © DHBK 2005 113/Chapter4 Chế độ 1
- © DHBK 2005 114/Chapter4 Chế độ 1 PB0-PB7 ASCII D0-D7 ACK PC2 ACK PC4 DS 82C55 Printer DS: data strobe
- © DHBK 2005 115/Chapter4 Chế độ 1 BIT1 EQU 2 PORTC EQU 62H PORTB EQU 61H CMD EQU 63H PRINT PROC NEAR ;check printer ready IN AL,PORTC ;get OBF TEST AL, BIT1 ;test OBF JZ PRINT ;if OBF=0 ;send character to printer MOV AL, AH ;get data OUT PORTB, AL ;print data ;send data strobe to printer MOV AL, 8 ;clear DS OUT CMD,AL MOV AL, 9 ;set DS OUT CMD, AL RET PRINT ENDP
- © DHBK 2005 116/Chapter4 Chế độ 2 • Chỉ cho phép đối với cổng A • Cổng A là cổng 2 chiều, dùng để giao tiếp giữa 2 máy tính hoặc dùng trong chuẩn giao tiếp IEEE-488 GPIB
- © DHBK 2005 117/Chapter4 Chế độ 2
- © DHBK 2005 118/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi ❑ Các kiểu ghép nối vào/ra ❑ Giải mã địa chỉ cho các thiết bị vào/ra ❑ Mạch ghép nối vào ra song song lập trình được 8255A Mạch điều khiển bàn phím/màn hình lập trình được 8279 ❑ Bộ định thời lập trình được 8254 ❑ Giao tiếp truyền thông lập trình được 16550 ❑ Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
- © DHBK 2005 119/Chapter4 Mạch điều khiển 8279 • Điều khiển bàn phím và màn hiển thị 8279: ❑ quét và mã hoá cho bàn phím tới 64 phím bộ đệm FIFO có thể chứa 8 ký tự ❑ Điều khiển màn hiển thị tới 16 số 16*8 RAM để chứa thông tin về 16 số hiển thị • Các tín hiệu chính: ❑ A0: chọn giữa chế độ dữ liệu hoặc điều khiển ❑ BD: xoá trắng màn hiển thị ❑ CLK: tín hiệu xung nhịp vào ❑ CN/ST (control/Strobe): cổng vào nối với phím điều khiển của bàn phím ❑ CS : chip select ❑ DB7-DB0: bus dữ liệu 2 chiều ❑ IRQ: =1 khi có phím bấm ❑ OUTA3-OUTA0: dữ liệu tới màn hiển thị (bit cao) ❑ OUTB3-OUTB0: dữ liệu tới màn hiển thị (bit thấp) ❑ RD: cho phép đọc dữ liệu từ thanh ghi điều khiển hoặc trạng thái ❑ RL7-RL0: xác định phím được nhấn ❑ SHIFT: nối với phím shift của bàn phím ❑ SL3-SL0: tín hiệu quét màn hình và màn hiển thị ❑ WR: viết dữ liệu vào thanh ghi điều khiển hoặc thanh ghi dữ liệu
- © DHBK 2005 120/Chapter4 Ghép nối 8279 với 8088
- © DHBK 2005 121/Chapter4 Ghép nối 8279 với bàn phím
- © DHBK 2005 122/Chapter4 Ghép nối 8279 với màn hiển thị
- © DHBK 2005 123/Chapter4 Lập trình cho 8279 • Từ điều khiển: D7D6D5D4D3D2D1D0
- © DHBK 2005 124/Chapter4 Lập trình cho 8279
- © DHBK 2005 125/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi ❑ Các kiểu ghép nối vào/ra ❑ Giải mã địa chỉ cho các thiết bị vào/ra ❑ Mạch ghép nối vào ra song song lập trình được 8255A ❑ Mạch điều khiển bàn phím/màn hình lập trình được 8279 Bộ định thời lập trình được 8254 ❑ Giao tiếp truyền thông lập trình được 16550 ❑ Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
- © DHBK 2005 126/Chapter4 Bộ định thời lập trình được 8254
- © DHBK 2005 127/Chapter4 Bộ định thời lập trình được 8254
- © DHBK 2005 128/Chapter4 Bộ định thời lập trình được 8254
- © DHBK 2005 129/Chapter4 Bộ định thời lập trình được 8254
- © DHBK 2005 130/Chapter4 Bộ định thời lập trình được 8254
- © DHBK 2005 131/Chapter4 Bộ định thời lập trình được 8254
- © DHBK 2005 132/Chapter4 Bộ định thời lập trình được 8254
- © DHBK 2005 133/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi ❑ Các kiểu ghép nối vào/ra ❑ Giải mã địa chỉ cho các thiết bị vào/ra ❑ Mạch ghép nối vào ra song song lập trình được 8255A ❑ Mạch điều khiển bàn phím/màn hình lập trình được 8279 ❑ Bộ định thời lập trình được 8254 Giao tiếp truyền thông lập trình được 16550 ❑ Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
- 134/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 135/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 136/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 137/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 138/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 139/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 140/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 141/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 142/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 143/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 144/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 145/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 146/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 147/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 148/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- 149/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
- © DHBK 2005 150/Chapter4 Chương 4: Tổ chức vào ra dữ liệu • Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 • Ghép nối 8088 với bộ nhớ • Ghép nối 8086 với bộ nhớ • Ghép nối với thiết bị ngoại vi ❑ Các kiểu ghép nối vào/ra ❑ Giải mã địa chỉ cho các thiết bị vào/ra ❑ Mạch ghép nối vào ra song song lập trình được 8255A ❑ Mạch điều khiển bàn phím/màn hình lập trình được 8279 ❑ Bộ định thời lập trình được 8254 ❑ Giao tiếp truyền thông lập trình được 16550 Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
- © DHBK 2005 151/Chapter4 Bộ biến đổi số tương tự DAC
- © DHBK 2005 152/Chapter4 Bộ biến đổi số tương tự DAC
- © DHBK 2005 153/Chapter4 Bộ biến đổi tương tự số ADC
- © DHBK 2005 154/Chapter4 Bộ biến đổi tương tự số ADC
- © DHBK 2005 155/Chapter4 Bộ biến đổi tương tự số ADC