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

ppt 155 trang ngocly 1400
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 - Phạm Ngọc Nam", để 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 - Phạm Ngọc Nam

  1. © DHBK 2005 1 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 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 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 q Các tín hiệu của 8086 q Phân kênh và việc đệm cho các bus q Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 q 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 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 q Phân kênh và việc đệm cho các bus q Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 q 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 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 Các chân tín hiệu của 8086 • AD0-AD15: q ALE =1: 16 chân địa chỉ cho bộ nhớ hoặc I/O q ALE=0: 16 đường dữ liệu • A19/S6-A16/S3 q 4 bit địa chỉ cao S4 S3 q 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, q 0 => vi xử lý vào trạng thái đợi q 1: has no effect • INTR: interrupt request q IF=1 và INTR=1=> cho phép ngắt • TEST q nếu =0, CPU ở trạng thái đợi và thực hiện lệnh NOP q =1, lệnh WAIT đợi đến khi TEST=0
  7. © DHBK 2005 7 Các chân tín hiệu của 8086 • NMI (Non-maskable interrupt) q NMI=1 => thực hiện INT 2 • RESET q 1: khởi động lại hệ thống và thực hiện lệnh tại ô nhớ FFFF0H • MN/MX q 1: chế độ min q 0: chế độ max • BHE/S7: q 0: cho phép truy cập byte cao dữ liệu q Trạng thái S7 luôn bằng 1 • RD q 0: CPU đọc dữ liệu từ bộ nhớ hoặc thiết bị ngoại vi • Các chân ở chế độ min q M/IO ð 1: truy cập bộ nhớ ð 0: truy cập thiết bị ngoại vi I/O q 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 Các chân tín hiệu của 8086 • Các chân ở chế độ min q INTA: interrupt acknowledge ð 0: khi INTR=1 và IF=1 q ALE: address latch enable q 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 q DEN: Data enable ð 0: kích hoạt đệm dữ liệu ngoài q 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 q HLDA (Hold Acknowledge) ð khi HOLD=1, HLDA=1
  9. © DHBK 2005 9 Các chân tín hiệu của 8086 • Các chân ở chế độ Max q 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 Các chân tín hiệu của 8086 • Các chân ở chế độ Max q 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 q LOCK ð 0: cấm các bộ vi xử lý khác dùng bus q 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 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 q Các tín hiệu của 8086 þ Phân kênh và việc đệm cho các bus q Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 q 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 Phân kênh và đệm cho các bus • Vì sao phải phân kênh và khuyếch đại đệm: q Các bus địa chỉ và dữ liệu dùng chung chân q Nâng cao khả năng tải của bus • Các vi mạch phân kênh và đệm: q 74LS373: phân kênh q 74LS245: đệm dữ liệu 2 chiều q 74LS244: đệm 3 trạng thái theo 1 chiều
  13. © DHBK 2005 13 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 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 q Các tín hiệu của 8086 q 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 q 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. © DHBK 2005 15 Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
  16. © DHBK 2005 16 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 q Các tín hiệu của 8086 q Phân kênh và việc đệm cho các bus q 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 Biểu đồ thời gian
  18. © DHBK 2005 18 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 Biểu đồ thời gian • Một chu kỳ ghi/đọc của CPU (chu kỳ bus): 4 chu kỳ xung nhịp T q 5 MHz: 4*200 ns=800 ns q T1: ðCPU đưa ra địa chỉ của bộ nhớ hoặc I/O, DT/R, M/IO, ALE q 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 q 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 q 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 Biểu đồ thời gian
  21. © DHBK 2005 21 Biểu đồ thời gian
  22. © DHBK 2005 22 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ớ q Các loại bộ nhớ bán dẫn q Giải mã địa chỉ cho bộ nhớ q 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 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 q Giải mã địa chỉ cho bộ nhớ q 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 Các loại bộ nhớ bán dẫn • Bộ nhớ không bị mất dữ liệu (non-volatile) q ROM (Read Only Memory) q PROM (Programmable ROM) q EPROM (Electrically programmable ROM) q Flash q EEPROM (Electrically Erasable Programmable ROM) q FeRAM (Ferroelectric Random Access Memory) q MRAM (Magnetoelectronic Random Access Memory) • Bộ nhớ bị mất dữ liệu (volatile) q SRAM (Static RAM) q SBSRAM (Synchronous Burst RAM) q DRAM (Dynamic RAM) q FPDRAM (Fast Page mode Dynamic RAM) q EDO DRAM (Extended Data Out Dynamic RAM) q SDRAM (Synchronous Dynamic RAM) q DDR-SDRAM (Double Data Rate SDRAM) q RDRAM (Rambus Dynamic RAM)
  25. © DHBK 2005 25 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 EPROM Isolator Floating Gate Gate Source Drain n+ n+ p
  27. © DHBK 2005 27 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 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 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 EPROM: reading Vcc Vcc Vcc Vcc Address 2-to-4 Decoder 2 MSB 4 2 LSB 2-to-4 Mux Data
  31. © DHBK 2005 31 Read(0x6) EPROM: reading Vcc Vcc Vcc Vcc 0110 2-to-4 Decoder 01 4 10 2-to-4 Mux 0
  32. © DHBK 2005 32 Read(0x8) EPROM: reading Vcc Vcc Vcc Vcc 1000 2-to-4 Decoder 10 4 00 2-to-4 Mux 1
  33. © DHBK 2005 33 EPROM: erasing UV light Vcc Vcc Vcc Vcc Address 2-to-4 Decoder 2-to-4 Decoder 2 MSB 4 2 LSB 2-to-4 Mux Data
  34. © DHBK 2005 34 Write 1 at 0x2 EPROM: writing 12V Vcc Vcc Vcc Vcc Address0010 2-to-4 Decoder 2 00 MSB 4 2 10 LSB 2-to-4 Mux Data
  35. © DHBK 2005 35 EPROM • Ghi vào EPROM q Dùng mạch nạp với điện áp 12 V q 1 ms một bit • Xoá EPROM q 20 phút dưới tia tử ngoại q Số lần ghi 3 lần • Đọc EPROM q 100 ns • EPROM họ 27xxx q 2708 (1K*8), 2716 (2K*8), 2732 (4K*8), 2764 (8K*8) q 27128 (16K*8), 27256 (32K*8), 27512 (64K*8)
  36. © DHBK 2005 36 EPROM • Ví dụ: 2716 EPROM Address CE Output 120 100 450
  37. © DHBK 2005 37 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 SRAM One row of cells is read out at once MUX selects one out of these cells 0110 1bit 1bit 1bit 1bit 2-to-4 Decoder 2-to-4 Decoder cell cell cell cell 01 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 SRAM bit cell Bit line Bit line inverse Word Vcc Acts as a resistor
  40. © DHBK 2005 40 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 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 Reading of a ‘1’SRAM bit cell Bit line Bit line inverse Word Vcc R 5V 0V Current 1 0
  43. © DHBK 2005 43 Reading of a ‘0’SRAM bit cell Bit line Bit line inverse Word Vcc R 0V 5V Current 0 1
  44. © DHBK 2005 44 Writing of a ‘1’ SRAM bit cell Vcc Vcc Word VVcccc Bit line R Bit line inverse 0V5V 5V0V Current Current Current W.D’ W.D
  45. © DHBK 2005 45 SRAM • Đặc điểm: q 6 transistors 1 bit: đắt! q Bị mất dữ liệu khi mất nguồn q nhanh: thời gian đọc và ghi 5 ns q Liên tục tiêu thụ năng lượng q Kích thước: 16 Mbit • ứng dụng: q Bộ nhớ nhỏ và nhanh (cache) q 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 Bit DRAM Word line line Address 1bit 1bit 1bit 1bit 2-to-4 Decoder cell cell cell cell 2 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 DRAM One row of cells is read out at once MUX selects one out of these cells 0110 1bit 1bit 1bit 1bit 2-to-4 Decoder 2-to-4 Decoder cell cell cell cell 01 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. © DHBK 2005 48 DRAM bit cell Vcc/2 1 bit Pre- cell charge Word line R Vcc/2 Vcc/2 Vcc/2 Bit line e f r e s Sense h amplifier MUX
  49. © DHBK 2005 49 Storage DRAM bit cell Vcc/2 Pre- charge Word line 5V 0V 5V 0V 5V 5V R Vcc/2 Vcc/2 Vcc/2 e 30 fF in f r .2 mm e s Stores h .5 M e- MUX
  50. © DHBK 2005 50 Read DRAM bit cell Vcc/2 Pre- charge Word line 2.55V5V 2.45V0V 2.55V5V 2.55V2.5V5V 0V 5V 5V R R R R R R Vcc/2 Vcc/2 Vcc/2 e e e e e e f f f f f f r r r r r r e e e e e e s s s s s s h h h h h h MUX
  51. © DHBK 2005 51 DRAM bit cell • Chu kỳ đọc q 1. Precharge q 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 q 3. Khuếch đại tín hiệu trên các cột tương ứng q 4.a CAS (Column Address Select): chọn 1 cột và đưa dữ liệu ra ngoài q 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. © DHBK 2005 52 Write DRAM bit cell Vcc/2 Pre- charge Word line 2.55V5V 2.45V0V5V 2.55V5V 0V 5V 5V R R R R R Vcc/2 Vcc/2 Vcc/2 e e e e e f f f f f r r r r r e e e e e s s s s s h h h h h MUX
  53. © DHBK 2005 53 DRAM bit cell • Chu kỳ ghi q 1. Precharge q 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 q 3. Khuếch đại tín hiệu trên các cột tương ứng q 4.a CAS (Column Address Select): chọn 1 cột và đưa giá trị cần ghi vào cột đó q 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. © DHBK 2005 54 Refresh DRAM bit cell Vcc/2 Pre- charge Word line 2.51V3V5V 2.49V2V0V 2.51V3V5V 2.49V2V0V 2.51V5V3V 2.51V5V3V R R R R R Vcc/2 Vcc/2 Vcc/2 e e e e e f f f f f r r r r r e e e e e s s s s s h h h h h MUX
  55. © DHBK 2005 55 DRAM bit cell • Chu kỳ làm tươi q 1. Precharge q 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 q 3. Khuếch đại tín hiệu trên các cột tương ứng q 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 DRAM • Đặc điểm: q 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 q Chỉ tiêu thụ năng lượng trong quá trình làm tươi và truy nhập q Tương đối nhanh: thời gian đọc và ghi 50 ns q 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 q 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 ố ị ỉ OE WE RAS: cho phép ch t đ a ch hàng CAS RAS
  57. © DHBK 2005 57 DRAM • Đặc điểm: q 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 q Chỉ tiêu thụ năng lượng trong quá trình làm tươi và truy nhập q Tương đối nhanh: thời gian đọc và ghi 50 ns q 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 q 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 ố ị ỉ OE WE RAS: cho phép ch t đ a ch hàng CAS RAS
  58. © DHBK 2005 58 DRAM • Examples of DRAM: q SIMM (Single Inline Memory Module): 72 pins q DIMM (Dual Inline Memory Module): 168 pins 72-Pin SIMM
  59. © DHBK 2005 59 SRAM - DRAM Cost SRAM DRAM Refresh controller Size
  60. © DHBK 2005 60 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ớ q 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) q 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. © DHBK 2005 61 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: q 2716: 11 đường địa chỉ A10-A0 q 8088: 20 đường địa chỉ A20-A0 q 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. © DHBK 2005 62 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. © DHBK 2005 63 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: q Địa chỉ bắt đầu F0000H => địa chỉ kết thúc: FFFFFH q 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. © DHBK 2005 64 Giải mã địa chỉ bộ nhớ dùng bộ giải mã • Dùng bộ giải mã 3-8 74LS138
  65. © DHBK 2005 65 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-D7A0-A10 D0-D72764A0-A10 RD OE D0-D72764 OE D0-D72764A0-A10 A13 CS OE 2764A0-A10 D0-D7A0-A10 CS OE D0-D72764 A14 CS A0-A10 A15 OE D0-D72764 CS OE D0-D72764 CS OE 2764 A16 CS OE IO/M CS A17 CS A18 A19
  66. © DHBK 2005 66 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. © DHBK 2005 67 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-D7A0-A10 D0-D72764A0-A10 RD OE D0-D72764 OE D0-D72764A0-A10 A0-A10 A13 A0 O0 CS OE 2764 D0-D7A0-A10 A14 A1 O1 CS OE A15 D0-D72764A0-A10 A2 O2 CS OE D0-D72764 A16 A3 CS O3 OE D0-D72764 A17 A4 TPB28L42 CS OE 2764 O4 A18 A5 CS OE O5 A19 A6 CS O6 A7 CS A O 8 G 7 IO/M
  68. © DHBK 2005 68 Giải mã địa chỉ bộ nhớ dùng PAL
  69. © DHBK 2005 69 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ớ q Các loại bộ nhớ bán dẫn q 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 Ghép nối 8088 với bộ nhớ • Nguyên tắc: q 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ỉ q 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 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-D7A0-A10 D0-D72732A0-A10 RD OE D0-D72764 OE D0-D72764A0-A10 A12 F8000-F8FFF CS OE 2764A0-A10 D0-D7A0-A10 F9000-F9FFF CS OE D0-D72764 A13 CS A0-A10 A14 OE D0-D72764 CS OE D0-D72764 CS OE 2764 A15 CS OE IO/M CS A16 FF000-FFFFF CS A17 A18 Bộ tạo Tw A19 Tới chân RDY1 của 8284
  72. © DHBK 2005 72 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-D7A0-A10 D0-D762256A0-A10 RD OE D0-D72764 WR W OEE D0-D72764A0-A10 A15 00000-07FFF CS OE 2764A0-A10 D0-D7A0-A10 08000-0FFFF CS OE D0-D72764 A16 10000-17FFF CS A0-A10 A17 OE D0-D72764 CS OE D0-D72764 A18 CS OE 2764 CS OE IO/M CS 38000-3FFFF CS A19
  73. © DHBK 2005 73 Ghép nối 8088 với DRAM • Cần có DRAM controller: q 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 q Cung cấp tín hiệu việc ghi đọc bộ nhớ q Làm tươi bộ nhớ trong thời gian thích hợp q Đả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 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 RAS1 2x4464 CLK CLK RAS A17 A18 CAS A19 CS IO/M
  75. © DHBK 2005 75 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 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 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 q 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 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 Ghép nối 8086 với bộ nhớ BHE HRD RD A1-A11 A0-A10 D0-D7 D0-D7 LRD A0 2716 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 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 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 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 q Các kiểu giao tiếp giữa vi xử lý và thiết bị ngoại vi q Các kiểu ghép nối vào/ra q Giải mã địa chỉ cho các thiết bị vào/ra q Mạch ghép nối vào ra song song lập trình được 8255A q Mạch điều khiển bàn phím/màn hình lập trình được 8279 q Bộ định thời lập trình được 8254 q Giao tiếp truyền thông lập trình được 16550 q Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  83. © DHBK 2005 83 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 q Các kiểu giao tiếp giữa vi xử lý và thiết bị ngoại vi q Các kiểu ghép nối vào/ra q Giải mã địa chỉ cho các thiết bị vào/ra q Mạch ghép nối vào ra song song lập trình được 8255A q Mạch điều khiển bàn phím/màn hình lập trình được 8279 q Bộ định thời lập trình được 8254 q Giao tiếp truyền thông lập trình được 16550 q Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  84. © DHBK 2005 84 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. © DHBK 2005 85 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 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 q Giải mã địa chỉ cho các thiết bị vào/ra q Mạch ghép nối vào ra song song lập trình được 8255A q Mạch điều khiển bàn phím/màn hình lập trình được 8279 q Bộ định thời lập trình được 8254 q Giao tiếp truyền thông lập trình được 16550 q Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  87. © DHBK 2005 87 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 Định thời (8253) OUT F0H, AL 0040 OUT DX, AX Điều khiển ngắt 0020 0000 Điều khiển DMA
  88. © DHBK 2005 88 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 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 Các kiểu ghép nối vào ra • Ví dụ cổng vào đơn giản: Tới bus dữ liệu của CPU Từ giải mã địa chỉ cổng
  91. © DHBK 2005 91 Các kiểu ghép nối vào ra • Ví dụ cổng ra đơn giản: Từ bus dữ liệu của CPU Từ giải mã địa chỉ cổng
  92. © DHBK 2005 92 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 q 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 q Mạch ghép nối vào ra song song lập trình được 8255A q Mạch điều khiển bàn phím/màn hình lập trình được 8279 q Bộ định thời lập trình được 8254 q Giao tiếp truyền thông lập trình được 16550 q Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  93. © DHBK 2005 93 Giải mã địa chỉ cho các thiết bị vào/ra • 8 bit địa chỉ hay 16 bit? q Tổng số thiết bị 256: 16 bit A0-A15: 0000H-FFFFH • 8 bit dữ liệu hay 16 bit? q Nếu cổng là 8 bit: chọn 1 trong 2 bank q 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 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 q 07H= 0000 0111 A 0 A0 A D0-D7 D8-D15 1 A1 A D0-D7 D0-D7 2 A2 A 3 A3 A4 CS WE A4 A CS WE 5 A5 A 6 A6 A7 A WR 7 WR IO/M M/IO BHE 8088 8086
  95. © DHBK 2005 95 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 q 64H= 0110 0100 q 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 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 q 10H=0001 0000 q 12H=0001 0010 q q 1EH=0001 1110 A1 10H 12H A2 14H A3 16H 18H A0 1AH M/IO 1CH A4 1EH A5 A6 A7
  97. © DHBK 2005 97 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 q Các kiểu ghép nối vào/ra q 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 q Mạch điều khiển bàn phím/màn hình lập trình được 8279 q Bộ định thời lập trình được 8254 q Giao tiếp truyền thông lập trình được 16550 q Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  98. © DHBK 2005 98 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 Cấu trúc của 8255A
  100. © DHBK 2005 100 Cấu trúc của 8255A
  101. © DHBK 2005 101 Cấu trúc của 8255A RD WR
  102. © DHBK 2005 102 Các chế độ làm việc của 8255A
  103. © DHBK 2005 103 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 Chế độ 0 RD WR
  105. © DHBK 2005 ; Lập trình cho 8255 105 MOV AL, 10000000B ; Port A, Port B mode 0, output MOV DX, 703H ế ộ OUT DX, AL Ch đ 0 ; 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 ccá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 Chế độ 0
  107. © DHBK 2005 107 Chế độ 0
  108. © DHBK 2005ROWS EQU 4 ; 4 hàng 108 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 Chế độ 1 • Port A và B làm việc ở chế độ cổng vào có chốt: q dữ liệu sẽ được giữ tại cổng A, B cho đến khi CPU sẵn sàng q 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 Chế độ 1
  111. © DHBK 2005 111 Chế độ 1 PA0-PA7 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 Chế độ 1 • Port A và B làm việc ở chế độ cổng ra có chốt: q tương tự như cổng ra ở chế độ 0 q 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 Chế độ 1
  114. © DHBK 2005 114 Chế độ 1 PB0-PB7 ASCII D0-D7 ACK PC2 ACK PC4 DS 82C55 Printer DS: data strobe
  115. © DHBK 2005 115 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 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 Chế độ 2
  118. © DHBK 2005 118 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 q Các kiểu ghép nối vào/ra q Giải mã địa chỉ cho các thiết bị vào/ra q 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 q Bộ định thời lập trình được 8254 q Giao tiếp truyền thông lập trình được 16550 q Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  119. © DHBK 2005 119 Mạch điều khiển 8279 • Điều khiển bàn phím và màn hiển thị 8279: q 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ự q Đ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: q A0: chọn giữa chế độ dữ liệu hoặc điều khiển q BD: xoá trắng màn hiển thị q CLK: tín hiệu xung nhịp vào q CN/ST (control/Strobe): cổng vào nối với phím điều khiển của bàn phím q CS : chip select q DB7-DB0: bus dữ liệu 2 chiều q IRQ: =1 khi có phím bấm q OUTA3-OUTA0: dữ liệu tới màn hiển thị (bit cao) q OUTB3-OUTB0: dữ liệu tới màn hiển thị (bit thấp) q RD: cho phép đọc dữ liệu từ thanh ghi điều khiển hoặc trạng thái q RL7-RL0: xác định phím được nhấn q SHIFT: nối với phím shift của bàn phím q SL3-SL0: tín hiệu quét màn hình và màn hiển thị q 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 Ghép nối 8279 với 8088
  121. © DHBK 2005 121 Ghép nối 8279 với bàn phím
  122. © DHBK 2005 122 Ghép nối 8279 với màn hiển thị
  123. © DHBK 2005 123 Lập trình cho 8279 • Từ điều khiển: D7D6D5D4D3D2D1D0
  124. © DHBK 2005 124 Lập trình cho 8279
  125. © DHBK 2005 125 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 q Các kiểu ghép nối vào/ra q Giải mã địa chỉ cho các thiết bị vào/ra q Mạch ghép nối vào ra song song lập trình được 8255A q 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 q Giao tiếp truyền thông lập trình được 16550 q Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  126. © DHBK 2005 126 Bộ định thời lập trình được 8254
  127. © DHBK 2005 127 Bộ định thời lập trình được 8254
  128. © DHBK 2005 128 Bộ định thời lập trình được 8254
  129. © DHBK 2005 129 Bộ định thời lập trình được 8254
  130. © DHBK 2005 130 Bộ định thời lập trình được 8254
  131. © DHBK 2005 131 Bộ định thời lập trình được 8254
  132. © DHBK 2005 132 Bộ định thời lập trình được 8254
  133. © DHBK 2005 133 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 q Các kiểu ghép nối vào/ra q Giải mã địa chỉ cho các thiết bị vào/ra q Mạch ghép nối vào ra song song lập trình được 8255A q Mạch điều khiển bàn phím/màn hình lập trình được 8279 q Bộ định thời lập trình được 8254 þ Giao tiếp truyền thông lập trình được 16550 q Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  134. © DHBK 2005 134 Giao tiếp truyền thông lập trình được 16550
  135. © DHBK 2005 135 Giao tiếp truyền thông lập trình được 16550
  136. © DHBK 2005 136 Giao tiếp truyền thông lập trình được 16550
  137. © DHBK 2005 137 Giao tiếp truyền thông lập trình được 16550
  138. © DHBK 2005 138 Giao tiếp truyền thông lập trình được 16550
  139. © DHBK 2005 139 Giao tiếp truyền thông lập trình được 16550
  140. © DHBK 2005 140 Giao tiếp truyền thông lập trình được 16550
  141. © DHBK 2005 141 Giao tiếp truyền thông lập trình được 16550
  142. © DHBK 2005 142 Giao tiếp truyền thông lập trình được 16550
  143. © DHBK 2005 143 Giao tiếp truyền thông lập trình được 16550
  144. © DHBK 2005 144 Giao tiếp truyền thông lập trình được 16550
  145. © DHBK 2005 145 Giao tiếp truyền thông lập trình được 16550
  146. © DHBK 2005 146 Giao tiếp truyền thông lập trình được 16550
  147. © DHBK 2005 147 Giao tiếp truyền thông lập trình được 16550
  148. © DHBK 2005 148 Giao tiếp truyền thông lập trình được 16550
  149. © DHBK 2005 149 Giao tiếp truyền thông lập trình được 16550
  150. © DHBK 2005 150 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 q Các kiểu ghép nối vào/ra q Giải mã địa chỉ cho các thiết bị vào/ra q Mạch ghép nối vào ra song song lập trình được 8255A q Mạch điều khiển bàn phím/màn hình lập trình được 8279 q Bộ định thời lập trình được 8254 q 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 Bộ biến đổi số tương tự DAC
  152. © DHBK 2005 152 Bộ biến đổi số tương tự DAC
  153. © DHBK 2005 153 Bộ biến đổi tương tự số ADC
  154. © DHBK 2005 154 Bộ biến đổi tương tự số ADC
  155. © DHBK 2005 155 Bộ biến đổi tương tự số ADC