Bài giảng Kỹ thuật Vi xử lý Phần 4

Khi các địa chỉ dành cho ROM được

phát lên A-Bus: A19 –A12 = 1 và

A11 = 1

„Khi các địa chỉ dành cho RWM được

phát lên A-Bus: A19 –A12 = 1 và

A11 = 0

pdf102 trang | Chia sẻ: thienmai908 | Lượt xem: 1245 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Kỹ thuật Vi xử lý Phần 4, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Kỹ thuật Vi xử lý Điện tử-Viễn thông Đại học Bách khoa Đà Nẵng Chương 4 4.1 Phân loại bộ nhớ bán dẫn 4.2 Hoạt động của các chip EPROM 4.3 Hoạt động của các chip SRAM 4.4 Bus hệ thống của hệ vi xử lý 8088 4.5 Bài toán thiết kế bộ nhớ Mục tiêu và biện pháp thiết kế „ Ghép nối các chip nhớ EPROM và SRAM với Bus hệ thống sao cho không xảy ra xung đột: Các chip nhớ bị cấm khi vi xử lý truy cập các cổng I/O Chỉ có một chip nhớ hoạt động khi vi xử lý truy cập bộ nhớ „ Thực hiện một mạch giải mã địa chỉ bộ nhớ dùng các chip giải mã hoặc các cổng logic hoặc kết hợp cả hai 4.1 Phân loại bộ nhớ bán dẫn Bộ nhớ bán dẫn (Semiconductor memory) SAM (Sequential Access Memory) RAM (Random Access Memory) ROM (Read Only Memory) RWM (Read Write memory) PROM EPROM EEPROM Flash ROM SRAM DRAM 4.2 Các chip EPROM EPROM A0 A1 A2 A3 A4 A5 A6 A7 A8 A p-1 Vpp D0 D1 D2 D3 D4 D5 D6 Dm-1 CE OE PGM p chân địa chỉ Các chân điều khiển m chân dữ liệu Điều khiển đọc Chọn chip Dung lượng của 1 chip nhớ „ Một chip nhớ được xem như một mảng gồm n ô nhớ. Mỗi ô nhớ lưu trữ được m-bit dữ liệu „ Dung lượng của chip thường được biểu diễn: nxm Ví dụ: Một chip có dung lượng 2Kx8 nghĩa là chip đó có 2048 ô nhớ và mỗi ô nhớ có thể lưu trữ được 1 byte dữ liệu „ m chính là số chân dữ liệu của chip „ log2(n) = p là số chân địa chỉ của chip Hoạt động ghi dữ liệu vào EPROM „ Việc ghi dữ liệu vào EPROM được gọi là lập trình cho EPROM „ Được thực hiện bằng thiết bị chuyên dụng gọi là Bộ nạp EPROM „ Chân Vpp được cấp điện áp tương ứng với từng loại chip gọi là điện áp lập trình „ Dữ liệu tại các chân dữ liệu sẽ được ghi vào một ô nhớ xác định nhờ các tín hiệu đưa vào ở các chân địa chỉ và một xung (thường gọi là xung lập trình) đưa vào chân PGM Hoạt động đọc dữ liệu từ một chip EPROM Để đọc dữ liệu từ 1 ô nhớ nào đó của 1 chip EPROM nào đó, Bộ vi xử lý cần phải: „ Chọn chip đó: 0 -----> CE „ Áp các tín hiệu địa chỉ của ô nhớ cần đọc vào các chân địa chỉ Ap-1 – A0 „ Đọc: 0 ------ > OE „ Kết quả là m bit dữ liệu cần đọc xuất hiện ở các chân dữ liệu Dm-1 – D0 Họ EPROM thông dụng 27x 64Kx827512 32Kx827256 16Kx827128 8Kx82764 4Kx82732 2Kx82716 Dung lượngSố hiệu của chip Bảng 4.1 Họ EPROM 27x „ Sơ đồ chân của 2716 và 2732 1 2 3 4 5 6 7 9 10 11 12 8 19 20 17 18 15 16 13 14 21 22 23 24 GND Vcc A0 D0 D1 D2 D7 D6 D5 D4 D3 A10 A1 A2 A3 A4 A5 A6 A7 A9 A8 Vpp A11 2716 2732 __ OE Vpp __ OE / CE/PGM __ EPROM EPROM 2764 Chọn chip Điều khiển đọc Các chân địa chỉ Các chân dữ liệu EPROM 2764 Lập trình cho 2764 „ Trước hết cần phải xoá • Xoá một chip tức là làm cho tất cả các bit = 1 „ Xoá một chip EPROM bằng tia cực tím „ Lập trình bằng cách: • VPP mắc ở mức 12.5V • E và P đều ở mức thấp TTL „ Các bit dữ liệu đưa vào các chân dữ liệu „ Các bit địa chỉ đưa vào các chân địa chỉ 4.3 Các chip SRAM SRAM A0 A1 A2 A3 A4 A5 A6 A7 A8 A p-1 D0 D1 D2 D3 D4 D5 D6 Dm-1 WE OE CS P chân địa chỉ m chân dữ liệu Điều khiển đọc Chọn chip Điều khiển ghi Đọc dữ liệu từ một chip SRAM Để đọc dữ liệu từ 1 ô nhớ nào đó của 1 chip SRAM nào đó, vi xử lý cần phải: „ Chọn chip đó: 0 -----------> CS „ Áp các tín hiệu địa chỉ vào Ap-1 – A0 „ Đọc: 0 ----------- > OE Kết quả là m bit dữ liệu cần đọc xuất hiện ở các chân dữ liệu Dm-1 – D0 Ghi dữ liệu vào một chip SRAM Để ghi m bit dữ liệu vào 1 ô nhớ nào đó của 1 chip SRAM nào đó, vi xử lý cần phải: „ Chọn chip đó: 0 --------> CS „ Áp các tín hiệu địa chỉ vào Ap-1 – A0 „ Áp m bit dữ liệu cần ghi vào các chân dữ liệu Dm-1 – D0 „ Ghi: 0 --------- > WE Kết quả là các bit dữ liệu ở các chân dữ liệu sẽ được ghi vào ô nhớ đã chọn SRAM 6264 „ Dung lượng 8Kx8 „ 8 chân dữ liệu „ 13 chân địa chỉ „ Hai chân chọn chip „ Chân điều khiển đọc „ Chân điều khiển ghi 6264 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 CS2 I/O0 I/O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7 CS1 OE WE 32K x 8 Static RAM 1 2 3 4 5 6 7 9 10 11 12 8 19 20 17 18 15 1613 14 21 22 23 24 25 26 27 28 GND Vcc A12 A0 D0 D1 D2 A1 A2 A3 A4 A5 A6 A7 D7 D6 D5 D4 D3 A10 A9 A8 A11 51256S CE __ A14 OE __ A13 WE __ Sơ đồ khối 6264 Chức năng của 6264 4.4 Bus hệ thống của 8088 „ Bus địa chỉ 20-bit: gồm các đường địa chỉ được ký hiệu từ A19 đến A0 „ Bus dữ liệu 8-bit: gồm các đường dữ liệu được ký hiệu từ D7 đến D0 „ Bus điều khiển gồm các đường điều khiển riêng lẽ phục vụ cho hoạt động truy cập bộ nhớ và các cổng I/O, mỗi đường thường được ký hiệu bằng tên của tín hiệu điều khiển „ Bus hệ thống không nối trực tiếp với các chân của 8088: thông qua các mạch đệm, chốt. 80x86 Microprocessors 8,16,3 2 32 64 64 64T 4GB 3M 273 60- 66+ BICMO S 1992 Pent. 8,16 24 16 16 1G 16M 130K 10- 16? NMOS 1982 8028 6 8,16 20 8 16 none 1M 133 29K 40 5-8 NMO S 1979 808 8 8,16,32 24,32 16,32 32 64T 16M4GB 275K 132 16-40 CMOS 1985 80386 8,16,3 2 32 32 32 64T 4GB 1.2M 168 66 CMOS 1989 80486 8,16,3 2 8,16888Data Types 362016168Address Bus 6416888External Data Bus 3216888Internal Data Bus 64TnonenonenonenoneVirtual Memory 64G1M64K64K16KPhysical Memory 13311311166Number of instructions 5.5M29K650045003000Number of transistors 38740404018Number of Pins 1505-103-82-30.5- 0.8 Clock Rate BICMO S NMO S NMO S NMO S PMOSTechnology 19951978197619741972Year Introduced Pent. Pro 808 6 808 5 808 0 8008Product 8088/8086 Microprocessor „ DIP 40 pin „ Data bus • Bus dữ liệu trong :16 bit • Bus dữ liệu ngoài của 8088: 8 bit dùng AD0-AD7 • Bus dữ liệu ngoài của 8086:16 bit dùng AD0-AD15 • ALE (Address Latch Enable) 8088/8086 Microprocessor „ Bus địa chỉ • ALE = 1 • Sử dụng 74LS373 để tách và chốt địa chỉ „ Đầu vào: AD0-AD7 (8088) hoặc AD0-AD15 (8086) và ALE „ Đầu ra: A0-A7 (8088) hoặc A0-A15 (8086) Sơ đồ chân của 8088 Sơ đồ chân 8088/8086 (Min Mode) Minimum/Maximum Mode „ Ảnh hưởng đến các chân 24-31 „ Minimum Mode • Các chân 24-31 là các tín hiệu điều khiển I/O và bộ nhớ • Các tín hiệu điều khiển đều từ 8088/8086 • Tương tự với 8085A „ Maximum Mode • Một số tín hiệu điều khiển được tạo ra từ ngoài • Một số chân có thêm chức năng mới • Khi có dùng bộ đồng xử lý toán 8087 Sơ đồ chân của 8088 8088 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 A16 / S3 A17 / S4 A18 / S5 A19 / S6 SSO DEN DT / R IO / M RD WR ALE INTA MN / MX READY CLK RESET TEST HLDA HOLD NMI INTR Tín hiệu ở các chân của 8088 8088 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 A16 / S3 A17 / S4 A18 / S5 A19 / S6 SSO DEN DT / R IO / M RD WR ALE INTA MN / MX READY CLK RESET TEST HLDA HOLD NMI INTR Các chân Địa chỉ/Dữ liệu Cho phép chốt Địa chỉ Các chân địa chỉ Các chân Địa chỉ/Trạng thái Các chân Địa chỉ/Dữ liệu „ Các chân AD7 đến AD0 „ Kỹ thuật Multiplexing: Tín hiệu ở các chân này lúc này là tín hiệu địa chỉ, lúc khác là tín hiệu dữ liệu phụ thuộc vào tín hiệu điều khiển ALE (Address Latch Enable): „ ALE = 1: AD7 đến AD0 = A7 đến A0 „ ALE = 0: AD7 đến AD0 = D7 đến D0 Các chân Địa chỉ và Các chân Địa chỉ/Trạng thái „ Các chân địa chỉ: A15 đến A8 „ Tín hiệu ở các chân này luôn là tín hiệu địa chỉ „ Các chân địa chỉ/trạng thái: A19/S6 đến A16/S3: „ ALE = 1: A19 đến A16 „ ALE = 0: S6 đến S3 Processor Timing Diagram of 8088 (Minimum Mode) for Memory or I/O Read (with 74245) ALE T1 CLOCK T2 T3 T4 AD7 - AD0 A15 - A8 A19/S6 - A16/S3 DT/R __ IO/M __ ____ RD DEN ______ A19 - A0 from 74LS373 to memory S6 - S3A19 - A16 A19 - A0 from 74LS373 if I/O ACCESS this is HIGH, if MEMORY ACCESS this is LOW D7 - D0 from memory to 74LS245 D7 - D0 (from memory) D7 - D0 from 74LS245garbageA7 - A0 A15 - A8 74LS373 74LS373 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 D0 D1 D2 D3 D4 D5 D6 D7 OE LE 74LS373 Dùng 74LS373 để tách và chốt địa chỉ Mô tả chân – Min „ DEN „ Data Enable „ Dữ liệu có nghĩa Mô tả chân – Min „ DT/R „ Điều khiển hướng của tín hiệu dữ liệu: „ 1: Tín hiệu dữ liệu đi ra từ 8088 „ 0: Tín hiệu dữ liệu đi vào 8088 Mô tả chân – Min „ IO/M „ Phân biệt: truy cập I/O hay Bộ nhớ • 1: 8088 truy cập I/O • 0: 8088 truy cập bộ nhớ Mô tả chân – Min „ WR „ 0: Tín hiệu trên bus dữ liệu được ghi vào bộ nhớ hoặc I/O „ Ghi bộ nhớ: ? „ Xuất dữ liệu ra cổng: ? Mô tả chân – Min „ HLDA „ Hold Acknowledge „ 0: Chấp nhận yêu cầu DMA ở HOLD • Báo cho Bộ điều khiển DMA được phép sử dụng bus hệ thống Mô tả chân – Min „ HOLD „ Nhận tín hiệu yêu cầu DMA từ Bộ điều khiển DMA (DMAC) „ DMAC muốn sử dụng bus hệ thống Mô tả chân – Min „ SSO „ 8088 „ Dùng với IO/M và DT/R để xác định trạng thái của chu kỳ bus hiện thời Các tín hiệu điều khiển „ Có thể sử dụng các cổng logic để tạo ra các tín hiệu điều khiển khác từ các tín hiệu điều khiển sẵn có • 3 Tín hiệu: „ RD, WR and IO/M Never happens X00 IOW101 IOR110 MEMW001 MEMR010 SignalIO/MW R RD Tạo ra các tín hiêụ điều khiển (Min Mode) Tạo ra các tín hiêụ điều khiển (Min Mode) 8088 Bus – Min Mode 74LS245 74LS245 B0 B1 B2 B3 B4 B5 B6 B7 A0 A1 A2 A3 A4 A5 A6 A7 E DIR Bus hệ thống của hệ 8088 ở Mode Minimum MEMORY D7 - D0 Q7 - Q0 OE LE 74LS373 D7 - D0 Q7 - Q0 OE LE 74LS3738088 AD7 - AD0 A15 - A8 A19/S6 - A16/ S3 DEN DT / R IO / M RD WR ALE D7 - D4 Q7 - Q4 OE LE 74LS373 D3 - D0 Q3 - Q0 GND GND GND D7 - D0A7 - A0 B7 - B0 E DIR 74LS245 A7 - A0 A15 - A8 A19 - A16 RD WR MEMR MEMW Bus địa chỉ Bus dữ liệu Minimum Mode 8088 MEMORY D7 - D0 A19 - A0 RD WR 8088 Minimum Mode D7 - D0 A19 - A0 MEMR MEMW Bộ nhớ được chọn khi nào? Minimum Mode 8088 MEMORY D7 - D0 A19 - A0 RD WR 8088 Minimum Mode D7 - D0 A19 - A0 MEMR MEMW CS 220 ô nhớ (1MB) Không gian địa chỉ bộ nhớ 1M 0000000000000000000000000 11111111111111111111FFFFF AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) Ví dụ: Một địa chỉ bất kỳ 34FD0h 0011 0100 11111 1101 0000 Bộ nhớ đầy đủ 1MB 2300000 00001 10000 10001 10002 10003 10004 10005 10006 10007 10008 95 : : 45 98 27 39 42 88 07 F4 8A : : 20020 20021 20022 20023 FFFFD FFFFE FFFFF 29 12 7D 13 19 25 36 : : : : : : : :A19 A0 : D7 D0 : RD WR A19 A0 : D7 D0 : MEMR MEMW XXXX BP ES DS SS CX BX AX XXXX XXXX XXXX 2000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI CS Nếu chỉ cần bộ nhớ có dung lượng nhỏ hơn 1MB thì giải quyết như thế nào? „ Phụ thuộc vào các chip nhớ sẵn có „ Phụ thuộc yêu cầu phân bố địa chỉ cho các loại bộ nhớ vật lý khác nhau „ … 512K đầu tiên của không gian địa chỉ bộ nhớ (Các địa chỉ có bit cao nhất A19 = 0) 0000000000000000000000000 111111111111111101117FFFF AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A18 đến A0 (HEX) 512K tiếp theo của không gian địa chỉ bộ nhớ (Các địa chỉ có bit cao nhất A19 = 1) 0000000000000000100080000 11111111111111111111FFFFF AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A18 đến A0 (HEX) Bộ nhớ 512KB A18 A0 : D7 D0 : MEMR MEMWXXXX BP ES DS SS CX BX AX XXXX XXXX XXXX 2000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI 2300000 00001 95 : : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF 29 12 7D 13 19 25 36 : : : : : : A18 A0 : D7 D0 : RD WR CS A19 Làm gì với A19? Điều gì xảy ra nếu 8088 đọc ô nhớ A0023h? A18 A0 : D7 D0 : MEMR MEMWXXXX BP ES DS SS CX BX AX XXXX XXXX XXXX A000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI 2300000 00001 95 : : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF 29 12 7D 13 19 25 36 : : : : : : A18 A0 : D7 D0 : RD WR CS A19 MOV AH, [BX] Điều gì xảy ra nếu 8088 đọc ô nhớ A0023h? 00110010000000001010A0023 AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) A19 không được nối đến bộ nhớ nên nếu 8088 phát logic “1” trên A19 thì bộ nhớ cũng không nhận biết được. Điều gì xảy ra nếu 8088 đọc ô nhớ 20023h? 0011001000000000001020023 AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A18 đến A0 (HEX) Với bộ nhớ tình hình không có gì khác! Nếu Bộ nhớ gồm 2 khối 512KB như thế này? A18 A0 : D7 D0 : MEMR MEMW XXXX BP ES DS SS CX BX AX XXXX XXXX XXXX 2000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI A19 2300000 00001 95 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF 29 12 7D 13 19 25 36 : : : A18 A0 : D7 D0 : RD WR CS 9700000 00001 D4 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF A3 92 45 33 2C 98 12 : : : A18 A0 : D7 D0 : RD WR CS Có vấn đề !!! „ Vấn đề là: Xung đột Bus. Hai khối nhớ sẽ cung cấp dữ liệu cùng một lúc khi 8088 đọc bộ nhớ „ Giải pháp: Dùng A19 làm “người phân xử” để giải quyết xung đột trên bus. Nếu A19 ở mức logic “1” thì khối nhớ trên hoạt động (khối nhớ dưới bị cấm) và ngược lại Bộ nhớ gồm hai khối nhớ 512KB A18 A0 : D7 D0 : MEMR MEMW XXXX BP ES DS SS CX BX AX XXXX XXXX XXXX 2000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI A19 2300000 00001 95 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF 29 12 7D 13 19 25 36 : : : A18 A0 : D7 D0 : RD WR CS 9700000 00001 D4 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF A3 92 45 33 2C 98 12 : : : A18 A0 : D7 D0 : RD WR CS Không gian địa chỉ bộ nhớ 1M 111111111111111101117FFFF 0000000000000000100080000 11111111111111111111FFFFF 0000000000000000000000000 AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) A18 A0 : D7 D0 : MEMR MEMW XXXX BP ES DS SS CX BX AX XXXX XXXX XXXX 2000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI A19 2300000 00001 95 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF 29 12 7D 13 19 25 36 : : : A18 A0 : D7 D0 : RD WR CS 9700000 00001 D4 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF A3 92 45 33 2C 98 12 : : : A18 A0 : D7 D0 : RD WR CS Bộ nhớ gồm hai khối nhớ 512KB Khi µP xuất một địa chỉ từ 80000h to FFFFFh, Bộ nhớ này hoạt động 0 đến 7 Bộ nhớ gồm hai khối nhớ 512KB A18 A0 : D7 D0 : MEMR MEMW XXXX BP ES DS SS CX BX AX XXXX XXXX XXXX 2000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI A19 2300000 00001 95 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF 29 12 7D 13 19 25 36 : : : A18 A0 : D7 D0 : RD WR CS 9700000 00001 D4 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF A3 92 45 33 2C 98 12 : : : A18 A0 : D7 D0 : RD WR CS Thiết kế Bộ nhớ cho Hệ vi xử lý A18 A0 : D7 D0 : MEMR MEMW XXXX BP ES DS SS CX BX AX XXXX XXXX XXXX 2000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI A19 2300000 00001 95 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF 29 12 7D 13 19 25 36 : : : A18 A0 : D7 D0 : RD WR CS 9700000 00001 D4 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF A3 92 45 33 2C 98 12 : : : A18 A0 : D7 D0 : RD WR CS A18 A0 : D7 D0 : RD WR A19 Ghép nối các chip nhớ riêng lẽ với Bus hệ thống sao cho không xảy ra xung đột nhờ mạch giải mã địa chỉ bộ nhớ A18 A0 : D7 D0 : MEMR MEMW XXXX BP ES DS SS CX BX AX XXXX XXXX XXXX 2000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI A19 2300000 00001 95 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF 29 12 7D 13 19 25 36 : : : A18 A0 : D7 D0 : RD WR CS 9700000 00001 D4 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF A3 92 45 33 2C 98 12 : : : A18 A0 : D7 D0 : RD WR CS Nếu bỏ đi khối nhớ bên dưới? Nếu bỏ đi khối nhớ bên dưới thì … A18 A0 : D7 D0 : MEMR MEMW XXXX BP ES DS SS CX BX AX XXXX XXXX XXXX 2000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI A19 2300000 00001 95 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF 29 12 7D 13 19 25 36 : : : A18 A0 : D7 D0 : RD WR CSKhi µP xuất ra một địa chỉ từ 80000h đến FFFFFh, Chip nhớ này hoạt động Khi µP xuất ra một dịa chỉ từ 00000h đến 7FFFFh, Không có chip nhớ nào hoạt động! ! Giải mã đầy đủ và không đầy đủ „ Giải mã đầy đủ (Full Decoding) • Tất cả các đường địa chỉ có nghĩa đều được sử dụng vào mạch giải mã • Mỗi ô nhớ chỉ có một địa chỉ vật lý duy nhất „ Giải mã không đầy đủ (Partial Decoding) • Không phải tất cả các đường địa chỉ có nghĩa đều được sử dụng vào mạch giải mã • Một ô nhớ có hơn một địa chỉ vật lý Giải mã đầy đủ A18 A0 : D7 D0 : MEMR MEMW XXXX BP ES DS SS CX BX AX XXXX XXXX XXXX 2000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI A19 2300000 00001 95 : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF 29 12 7D 13 19 25 36 : : : A18 A0 : D7 D0 : RD WR CS Giải mã đầy đủ 0000000000000000100080000 11111111111111111111FFFFF AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) A19 phải ở mức “1” thì chip nhớ mới hoạt động (được chọn) Giải mã đầy đủ 0000000000000000000000000 111111111111111101117FFFF AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) Do đó, nếu vi xử lý phát ra một địa chỉ từ 00000h đến 7FFFFh (A19 ở mức logic “0”) chip nhớ sẽ không được chọn. Giải mã không đầy đủ A18 A0 : D7 D0 : MEMR MEMWXXXX BP ES DS SS CX BX AX XXXX XXXX XXXX 2000 0000 0023 3F1C FCA1 SP DX XXXX CS SI XXXX XXXXIP XXXXDI 2300000 00001 95 : : 20020 20021 20022 20023 7FFFD 7FFFE 7FFFF 29 12 7D 13 19 25 36 : : : : : : A18 A0 : D7 D0 : RD WR CS A19 Giải mã không đầy đủ 0000000000000000100080000 111111111111111101117FFFF 0000000000000000000000000 11111111111111111111FFFFF AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) A19 không có ý nghĩa với chip nhớ Giải mã không đầy đủ 0000000000000000100080000 111111111111111101117FFFF 0000000000000000000000000 11111111111111111111FFFFF AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) Địa chỉ thực tế Giải mã không đầy đủ 0000000000000000100080000 111111111111111101117FFFF 0000000000000000000000000 11111111111111111111FFFFF AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) Địa chỉ thực tế Bộ nhớ gồm 2 chip 512Kx8 8088 Minimum Mode A18 A0 : D7 D0 : MEMR MEMW A19 512KB #2 A18 A0 : D7 D0 : RD WR CS 512KB #1 A18 A0 : D7 D0 : RD WR CS Bộ nhớ chỉ có một chip 512Kx8 (Ver. 1) 8088 Minimum Mode A18 A0 : D7 D0 : MEMR MEMW A19 512KB A18 A0 : D7 D0 : RD WR CS Bộ nhớ chỉ có một chip 512Kx8 (Ver. 2) 8088 Minimum Mode A18 A0 : D7 D0 : MEMR MEMW A19 512KB A18 A0 : D7 D0 : RD WR CS Bộ nhớ chỉ có một chip 512Kx8 (Ver. 3) 8088 Minimum Mode A18 A0 : D7 D0 : MEMR MEMW A19 512KB A18 A0 : D7 D0 : RD WR CS Bộ nhớ gồm 4 chip 256Kx8 8088 Minimum Mode A17 A0 : D7 D0 : MEMR MEMW A18 256KB #3 A17 A0 : D7 D0 : RD WR CS A19 256KB #2 A17 A0 : D7 D0 : RD WR CS 256KB #1 A17 A0 : D7 D0 : RD WR CS 256KB #4 A17 A0 : D7 D0 : RD WR CS Bộ nhớ gồm 4 chip 256Kx8 8088 Minimum Mode A17 A0 : D7 D0 : MEMR MEMW A18 256KB #3 A17 A0 : D7 D0 : RD WR CS A19 256KB #2 A17 A0 : D7 D0 : RD WR CS 256KB #1 A17 A0 : D7 D0 : RD WR CS 256KB #4 A17 A0 : D7 D0 : RD WR CS Dải địa chỉ của chip #1 ------------------------- ------------------------- AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) Dải địa chỉ của chip #2 ------------------------- ------------------------- AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) Dải địa chỉ của chip #3 ------------------------- ------------------------- AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) Dải địa chỉ của chip #4 ------------------------- ------------------------- AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) Bộ nhớ gồm 4 chip 256Kx8 dùng các cổng logic 8088 Minimum Mode A17 A0 : D7 D0 : MEMR MEMW A18 256KB #3 A17 A0 : D7 D0 : RD WR CS A19 256KB #2 A17 A0 : D7 D0 : RD WR CS 256KB #1 A17 A0 : D7 D0 : RD WR CS 256KB #4 A17 A0 : D7 D0 : RD WR CS Bộ nhớ gồm 4 chip 256Kx8 dùng các cổng logic 8088 Minimum Mode A17 A0 : D7 D0 : MEMR MEMW A18 256KB #3 A17 A0 : D7 D0 : RD WR CS A19 256KB #2 A17 A0 : D7 D0 : RD WR CS 256KB #1 A17 A0 : D7 D0 : RD WR CS 256KB #4 A17 A0 : D7 D0 : RD WR CS Bộ nhớ gồm 4 chip 256Kx8 dùng một chip giải mã 2-4 8088 Minimum Mode A17 A0 : D7 D0 : MEMR MEMW A18 256KB #3 A17 A0 : D7 D0 : RD WR CS A19 256KB #2 A17 A0 : D7 D0 : RD WR CS 256KB #1 A17 A0 : D7 D0 : RD WR CS 256KB #4 A17 A0 : D7 D0 : RD WR CSI1I0 O3 O2 O1 O0 Ghép nối các chip nhớ 8Kx8 với µP 8088 8088 Minimum Mode A12 A0 : D7 D0 : MEMR MEMW A13 A14 8KB #2 A12 A0 : D7 D0 : RD WR CS 8KB #1 A12 A0 : D7 D0 : RD WR CS 8KB #? A12 A0 : D7 D0 : RD WR CS A15 A16 A17 A18 A19 : : 8088 Minimum Mode A12 A0 : D7 D0 : MEMR MEMW A13 A14 8KB #2 A12 A0 : D7 D0 : RD WR CS 8KB #1 A12 A0 : D7 D0 : RD WR CS 8KB #128 A12 A0 : D7 D0 : RD WR CS A15 A16 A17 A18 A19 : : Bộ nhớ gồm 128 chip 8Kx8 8088 Minimum Mode A12 A0 : D7 D0 : MEMR MEMW A13 A14 8KB #2 A12 A0 : D7 D0 : RD WR CS 8KB #1 A12 A0 : D7 D0 : RD WR CS 8KB #128 A12 A0 : D7 D0 : RD WR CS A15 A16 A17 A18 A19 : : Bộ nhớ gồm 128 chip 8Kx8 Dải địa chỉ của Chip #__ ------------------------- ------------------------- AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) 8088 Minimum Mode A12 A0 : D7 D0 : MEMR MEMW A13 A14 8KB #2 A12 A0 : D7 D0 : RD WR CS 8KB #1 A12 A0 : D7 D0 : RD WR CS 8KB #128 A12 A0 : D7 D0 : RD WR CS A15 A16 A17 A18 A19 : : Bộ nhớ gồm 128 chip 8Kx8 Phát biểu bài toán „ Thiết kế bộ nhớ cho hệ vi xử lý 8088 thoả mãn các yêu cầu: „ ROM có dung lượng 2Kx8 chiếm dụng các địa chỉ từ FFFFFh trở xuống „ RWM có dung lượng 2Kx8 chiếm dụng các địa chỉ tiếp theo ngay sau ROM „ Chỉ được phép sử dụng: EPROM 2716 2Kx8, SRAM 4016 2Kx8 Chip giải mã 74LS138 và các cổng logic Bước 1: Vẽ bản đồ bộ nhớ cần thiết kế FFFFFh 00000h FF800h FF000h FF7FFh ROM RWM Chưa sử dụng 2K 2K Các Địa chỉ biên Bước 2: Chuyển các địa chỉ biên từ H sang B 00000000100011111111FF800 11111111111111111111FFFFF AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) Bước 2: Chuyển các địa chỉ biên từ H sang B 00000000000011111111FF000 11111111011111111111FF7FF AAAA 3210 AAAA 7654 AAAA 1198 1000 AAAA 1111 5432 AAAA 1111 9876 A19 đến A0 (HEX) Nhận xét „ Khi các địa chỉ dành cho ROM được phát lên A-Bus: A19 – A12 = 1 và A11 = 1 „ Khi các địa chỉ dành cho RWM được phát lên A-Bus: A19 – A12 = 1 và A11 = 0 Bước 3: Vẽ mạch giải mã địa chỉ bộ nhớ „ Ghép các chân dữ liệu của các chip nhớ với D-Bus „ Ghép các chân địa chỉ và các chân điều khiển: Khi vi xử lý truy cập các cổng I/O thì các chip nhớ bị cấm (Khi IO/M = 1) Khi vi xử lý truy cập bộ nhớ (IO/M = 0) thì chỉ có một chip nhớ làm việc „ Có thể có nhiều lời giải khác nhau 74LS138: Một chip giải mã 3-8 74LS138 C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B 74LS138 A2 A1 A0 E3 E2 E1 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 U1 74LS138 Bộ nhớ cần thiết kế 8088 Minimum Mode A17 A0 : D7 D0 : MEMR MEMW A18 A19 2Kx8 4016 A10 A0 : D7 D0 : OE WE CS 2Kx8 2716 A10 A0 : D7 D0 : OE CE 74LS138 C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B

Các file đính kèm theo tài liệu này:

  • pdfvixulychuong4.pdf
Tài liệu liên quan