PORT ADDRESSING AND PORT DECODING Hình (7-16)(TRANG 194)

Put your story text here...Trong hệ thống với bản đề bộ nhớ vào ra (Memỏy mapped I/O) các thiết bị cảng được đánh địa chỉ và được chọn bởi các bộ giải mã khi chúng là thiết bị bộ nhớ. Lợi ích chính của Memory mapped I/O là bất kỳ các lệnh nào mà đề cập tới bộ nhớ có thể về mặt lý thuyết mà nói (theoretically) được sử dụng để đọc, viết với cảng. Lệnh đơn giản ADD BH, DX : BYTE PTR[437A] có thể sử dụng để đọc 1 byte từ memory mapped port và cộng nó với thanh ghi BH. Sự bất lợi của memory mapped I/O là các cảng chiếm giữ (occupy) một phần không gian bộ nhớ hệ thống. Không gian này sau đó không được sử dụng cho việc chứa dữ liệu hoặc lệnh.

Ðể tránh (avoid) phải sử dụng một phần không gian bộ nhớ hệ thống cho các cảng, họ vi xử lý 8086 có 1 không gian địa chỉ riêng biệt cho các cảng gọi là direct I/O vì không gian địa chỉ này được truy nhập trực tiếp với lệnh IN và OUT. VD IN AL, 38H nó copy 1 byte từ cảng 38H tới thanh ghi AL. Với thao tác vào, ra với cảng có thể thay đổi được, địa chỉ cảng 16 bit trước hết được nạp vào thanh ghi DX với lệnh MOV DX, 0FFF8H. Lệnh IN AL, DX sau đó sẽ copy 1 byte từ cảng FFF8H tới thanh ghi AL.

Khi 8086 thực hiện lệnh IN or OUT để truy nhập 1 cảng, không có thanh ghi segment nào bị dính líu trong việc sinh ra địa chỉ vật lý được gửi ra ngoài bởi 8086. Ðịa cảng được gửi ra ngoài trực tiếp từ 8086 trên đường AD0-AD15 và 0 là đầu ra trên các đường A16-A19.

Trong 1 hệ thống 8086 sử dụng direct I/O tín hiệu M/IO sử dụng để kích hoạt bộ giải mã bộ nhớ hoặc bộ giải mã cảng. Khi M/IO cao nó sẽ là 1 trong những điều kiện để kích hoạt bộ giải mã ROM và RAM. Khi M/IO thấp nó sẽ kích hoạt một bộ giải mã cảng.

Trong khi thực hiện lệnh IN, tín hiệu RD từ 8086 thấp. Khi nó thực hiện lệnh OUT thì tín hiệu WR từ 8086 là thấp. Khi đó đầu ra của 8086 là 16 bit địa chỉ cho direct I/O, do đó nó có thể có 216 hay 65.535 cho địa chỉ cảng vào ra.

________________________________________________________________________

Hình (7-16)(TRANG 194) Ðể O1 thấp thì A5 - A15 cao, A4 thấp, A3 cao, BHE có thể thấp hoặc cao. Do chỉ có 8 đường dữ liệu thấp D0 - D7 được nối tới 8279A31. Do đó dữ liệu được gửi tới hoặc đọc ra từ 8279 tại 1 byte địa chỉ chẵn.

Ðịa chỉ cơ sở hệ thống cho thiết bị này là FFE8H. Ðường địa chỉ hệ thống A1 được nối tới 8279 để chọn 1 trong 2 địa chỉ bên trong của thiết bị. A1 thấp đưa ra địa chỉ FFE8H, A1 cao chọn 1 địa chỉ bên trong khác và đưa ra địa chỉ FFEAH.

Theo bảng sự thật 7-16 để O2 thấp thì A4 - A15 cao, A3 thấp, BHE thấp hoặc cao. Chỉ có 8 đường địa chỉ thấp được nối với 8251 USART (sheet 9 of 9), dữ liệu phải được gửi tới hoặc đọc ra thiết bị là 1 byte tại địa chỉ chắn. Ðường địa chỉ hệ thống A1 sử dụng để chọn 1 trong 2 địa chỉ bên trong của 8251A (FFF0H, FFF2H).

_____________________________________________________________________

Sheet 5 of 9 (TRANG 180): * 2 đầu ra O3, O4 của bộ giải mã PROM được nối tới 2 thiết bị cảng 8255A để kích hoạt chúng. Các thiết bị này chứa đựng 3 cảng song song 8bit và 1 thanh ghi điều khiển. Ðường A1 và A2 sử dụng để đánh địa chỉ thanh ghi hoặc cảng mong muốn trong thiết bị. 8 đường dữ liệu thấp D0 - D7 được nỗi tới thiết bị A40, 8 đường dữ liệu cao (D8-D15) được nối tới thiết bị A35. Ta cũng có thể đọc, ghi 1 Word (16 bit) với cảng 16 bit tạo bởi 2 cảng 8 bit là A40 và A35. Ðể nhập vào hoặc xuất ra 1 word thì A40 và A35 phải cùng được kích hoạt.

- A40 được kích hoạt bởi đầu ra O3 (LOW PORT SEL) của bộ giả mã PROM 3625 nếu các đường địa chỉ A3 - A15 cao, A0 thấp, A1 và A2 sử dụng để chọn cổng bên trong 8255A. 2 bit này thấp sẽ cho địa chỉ ddaafu tiên trong thiết bị. Ðể chọn cảng A trong A40 8255 thì A1 và A2 phải thấp. Ðịa chỉ hệ thống sẽ kích hoạt thiết bị này và chọn cảng A có địa chỉ FFF8H. Giá trị khác của A1 và A2 sẽ chọn các cảng khác hoặc thanh ghi điều khiển trong thiết bị. Các cảng trong A40 là 2A, 2B, 2C chúng đều có địa chỉ chẵn.

- A35 8255A chứa các cảng 1A, 1B, 1C được kích hoạt bởi O4 (đầu ra của bộ giải mã 3625). Nếu A3 - A15 cao và BHE thấp. Nếu 8255A được kích hoạt cho đọc hoặc viết thì A0 cao. A1 = 1, A2 = 0 sẽ chọn cảng 1A trong 8255A có địa chỉ FFF9H cổng 1B có địa chỉ FFFBH, 1C là FFFDH và thanh ghi điều khiển bên trong FFFFH.

Khi 8086 nhận một giá trị 16 bit (trong 1 thao tác) như MOV DX, FFF8H và IN AX, DX thì A0 và BHE thấp, đầu ra của 3625 O3 và O4 thấp nó sẽ kích hoạt cả 2 thiết bị A40 và A35. Byte dữ liệu trên cảng 2A đi vào 8086 trên các đường dữ liệu thấp, dữ liệu trên cảng 1A đi vào 8086 trên đường dữ liệu cao.

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: