Bài giảng Kỹ thuật vi xử lý (Microprocessors) - Chương 4: Tổ chức vào ra dữ liệu

ppt 155 trang phuongnguyen 7040
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:

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

  1. © 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ế
  2. © 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
  3. © 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
  4. © 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
  5. © 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
  6. © 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
  7. © 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
  8. © 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
  9. © 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
  10. © 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
  11. © 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
  12. © 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
  13. © 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
  14. © 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. 15/Chapter4 © DHBK 2005 Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
  16. © 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
  17. © DHBK 2005 17/Chapter4 Biểu đồ thời gian
  18. © 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
  19. © 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ớ
  20. © DHBK 2005 20/Chapter4 Biểu đồ thời gian
  21. © DHBK 2005 21/Chapter4 Biểu đồ thời gian
  22. © 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
  23. © 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
  24. © 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)
  25. © 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
  26. © DHBK 2005 26/Chapter4 EPROM Isolator Floating Gate Gate Source Drain n+ n+ p
  27. © 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
  28. © 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
  29. © 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
  30. © 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
  31. © 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
  32. © 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
  33. © 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
  34. © 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
  35. © 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)
  36. © 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
  37. © 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 1s/bit 35 ns 1 128 Kbits EPROM 1ms/bit 45 ns 3 16 Mbits Flash 1s/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
  38. © 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
  39. © DHBK 2005 39/Chapter4 SRAM bit cell Bit line Bit line inverse Word Vcc Acts as a resistor
  40. © 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
  41. © 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
  42. © DHBK 2005 42/Chapter4 Reading of a ‘1’SRAM bit cell Bit line Bit line inverse Word Vcc R 5V 0V Current 1 0
  43. © DHBK 2005 43/Chapter4 Reading of a ‘0’SRAM bit cell Bit line Bit line inverse Word Vcc R 0V 5V Current 0 1
  44. © 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
  45. © 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
  46. © 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
  47. © 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. 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. 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. 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
  51. © 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. 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
  53. © 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. 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
  55. © 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.
  56. © 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
  57. © 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
  58. © 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
  59. © DHBK 2005 59/Chapter4 SRAM - DRAM Cost SRAM DRAM Refresh controller Size
  60. © 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. 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. 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. 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. 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. 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. 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. 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. 68/Chapter4 © DHBK 2005 Giải mã địa chỉ bộ nhớ dùng PAL
  69. © 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
  70. © 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
  71. © 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
  72. © 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
  73. © 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
  74. © 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
  75. © 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
  76. © 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
  77. © 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
  78. © 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
  79. © 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
  80. © 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
  81. © 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)
  82. © 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
  83. © 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. 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. 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ớ
  86. © 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
  87. © 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
  88. © 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:
  89. © 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
  90. © 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
  91. © 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
  92. © 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
  93. © 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)
  94. © 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
  95. © 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
  96. © 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
  97. © 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
  98. © 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
  99. © DHBK 2005 99/Chapter4 Cấu trúc của 8255A
  100. © DHBK 2005 100/Chapter4 Cấu trúc của 8255A
  101. © DHBK 2005 101/Chapter4 Cấu trúc của 8255A RD WR
  102. © DHBK 2005 102/Chapter4 Các chế độ làm việc của 8255A
  103. © 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
  104. © DHBK 2005 104/Chapter4 Chế độ 0 RD WR
  105. © 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
  106. © DHBK 2005 106/Chapter4 Chế độ 0
  107. © DHBK 2005 107/Chapter4 Chế độ 0
  108. © 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
  109. © 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
  110. © DHBK 2005 110/Chapter4 Chế độ 1
  111. © 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
  112. © 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
  113. © DHBK 2005 113/Chapter4 Chế độ 1
  114. © DHBK 2005 114/Chapter4 Chế độ 1 PB0-PB7 ASCII D0-D7 ACK PC2 ACK PC4 DS 82C55 Printer DS: data strobe
  115. © 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
  116. © 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
  117. © DHBK 2005 117/Chapter4 Chế độ 2
  118. © 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
  119. © 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
  120. © DHBK 2005 120/Chapter4 Ghép nối 8279 với 8088
  121. © DHBK 2005 121/Chapter4 Ghép nối 8279 với bàn phím
  122. © DHBK 2005 122/Chapter4 Ghép nối 8279 với màn hiển thị
  123. © DHBK 2005 123/Chapter4 Lập trình cho 8279 • Từ điều khiển: D7D6D5D4D3D2D1D0
  124. © DHBK 2005 124/Chapter4 Lập trình cho 8279
  125. © 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
  126. © DHBK 2005 126/Chapter4 Bộ định thời lập trình được 8254
  127. © DHBK 2005 127/Chapter4 Bộ định thời lập trình được 8254
  128. © DHBK 2005 128/Chapter4 Bộ định thời lập trình được 8254
  129. © DHBK 2005 129/Chapter4 Bộ định thời lập trình được 8254
  130. © DHBK 2005 130/Chapter4 Bộ định thời lập trình được 8254
  131. © DHBK 2005 131/Chapter4 Bộ định thời lập trình được 8254
  132. © DHBK 2005 132/Chapter4 Bộ định thời lập trình được 8254
  133. © 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. 134/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  135. 135/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  136. 136/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  137. 137/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  138. 138/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  139. 139/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  140. 140/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  141. 141/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  142. 142/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  143. 143/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  144. 144/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  145. 145/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  146. 146/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  147. 147/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  148. 148/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  149. 149/Chapter4 © DHBK 2005 Giao tiếp truyền thông lập trình được 16550
  150. © 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
  151. © DHBK 2005 151/Chapter4 Bộ biến đổi số tương tự DAC
  152. © DHBK 2005 152/Chapter4 Bộ biến đổi số tương tự DAC
  153. © DHBK 2005 153/Chapter4 Bộ biến đổi tương tự số ADC
  154. © DHBK 2005 154/Chapter4 Bộ biến đổi tương tự số ADC
  155. © DHBK 2005 155/Chapter4 Bộ biến đổi tương tự số ADC