Tải bản đầy đủ (.doc) (50 trang)

Tìm hiểu các vi mạch vào ra của 8088 các bộ vi xử lý tiên tiến hiện nay

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (682.79 KB, 50 trang )

Đề Tài: Tìm hiểu các vi mạch vào ra của 8088.Tìm hiểu
các bộ vi xử lý tiên tiến hiện nay
Bài làm
I . Tìm hiểu các vi mạch vào/ra của 8088
1. Giới thiệu về hệ thống vi xử lý
Hệ thống Vi xử lý bao gồm:bộ xử lý trung tâm , bộ nhớ và bộ giao tiếp thiết bị ngoại
vi.Các khối này liên lạc với nhau thông qua bus địa chỉ,bus dữ liệu và bus điều khiển.

 CPU đóng vai trò chủ đạo trong hệ vi xử lý,thực hiện các lệnh và mã lệnh ,chuyển
đổi thành các tín hiệu.
 Bộ nhớ là nơi lưu trữ chưowng trình điều khiển,các dữ liệu,kết quả trung gian
trong quá trình tính toán,xử lý.
 Bộ giao tiếp vào ra đây là chiếc cầu nối giữa CPU với thế giới bên ngoài.Một hệ
thống vi xử lý muốn đưa dữ liệu ra để điều khiển các thiết bị bên ngoài vào để xử
lý thì phải thông qua bộ giao tiếp vào ra.Các bộ giao tiếp còn được gọi là bộ vi xử
lý ngoại vi.
 Hệ thống các Bus đảm bảo cho sự liên lạc được thông suốt giữa CPU,các bộ nhớ
và bộ giao tiếp ngoại vi.

2. Giới thiệu về bộ vi xử lý 8088
Intel 8088 là một vi xử lý của Intel dựa trên 8086, với thanh ghi 16-bit 8-bit bus dữ liệu
ngoại tiếp. Nó có thể chứa tới 1 MB RAM. 8088 ra mắt vào ngày 1 tháng 7năm 1979 , và
được sử dụng trong máy IBM PC gốc.
Đích đến của 8088 là hướng tới các hệ thống tiết kiệm tiền sử dụng thiết kế 8-bit. Bus lớn
với chiều rộng chu vi của bảng mạch vẫn còn đắt khi nó ra mắt. Bộ đệm chờ của 8088 là
4 byte, trái ngược với của 8086 6 byte.


Biến thể của 8088 với tốc độ đồng hồ tối đa hơn 5MHz, bao gồm 8088-1 trong HMOS và
80C88-2 trong CMOS, cả 2 có tốc độ đồng hồ tối đa là 10MHz.
Kế thừa 8088 bao gồm 80188, 80186, 80286, 80386, và 80486 vẫn còn cho đến ngày


nay.

2.1 .Sơ đồ khối của 8088

2.2 .Nguyên lý hoạt động
BIU có nhiệm vụ đưa ra địa chỉ, đọc mã lệnh từ bộ nhớ, đọc/ghi dữ liệu từ/vào cổng
hoặc bộ nhớ. Bên trong BIU còn có bộ nhớ đệm lệnh (còn gọi là hàng đợi lệnh) với dung
lượng 4 byte dùng để chứa các lệnh đã đọc được nằm sẵn chờ EU xử lý. Đây là một cấu
trúc mới được cấy vào bộ vi xử lý 8086/88 để thực hiện cơ chế xử lý liên tục dòng mã
lệnh (instruction pipelining). Pipeline là một cơ chế đã được ứng dụng từ những năm 60
trong các máy tính lớn.


EU có nhiệm vụ cung cấp địa chỉ cho BIU để khối này đọc lệnh và dữ liệu, còn bản
thân
nó thì giải mã lệnh và thực hiện lệnh. Mã lệnh đọc vào từ bộ nhớ được đưa đến đầu vào
của bộ giải mã (nằm trong khối điều khiển CU), các thông tin thu được từ đầu ra của bộ
giải mã sẽ được đưa đến mạch tạo xung điều khiển để tạo ra các dãy xung khác nhau (tùy
từng lệnh) điều khiển hoạt động của các bộ phận bên trong và bên ngoài CPU. Trong EU
còn có khối tính toán số học và logic ALU dùng để thực hiện các thao tác khác nhau với
các toán hạng của lệnh.

2.3 Sơ đồ khối và các chân chức năng 8088
Trong máy vi tính ,đóng vai trò trung tâm điều khiển mọi hoạt động của toàn bộ hệ thống
là bộ vi xử lý trung tâm CPU ( Central Processing Unit ) . Bộ vi xử lý 8088 trong máy vi
tính IBM PC/XT là bộ vi xử lý 16 bit có nhiệm vụ điều khiển các hoạt động cơ bản của
máy bằng cách gửi đi hoặc thu nhận các tín hiệu điều khiển , các địa chỉ bộ nhớ và các dữ
liệu từ phần này sang phần khác của máy tínhthông qua các mạng lưới các đường liên lạc
điện từ gọi là bus. Ðể nối bộ nhớ và các chip hỗ trợ khác nhau vào bus có các cổng vào ra
(I/O port ) đặt dọc theo bus . Dữ liệu đi qua các cổng vào /ra để đến hoặc rời CPU tới các

phần khác của máy vi tính .
Bộ vi xử lý 8088 có hai chế độ hoạt động là chế độ MIN và chế độ MAX nên một số
chân sẽ có các chức năng khác nhau đối với từng chế độ hoạt động khác nhau của bộ vi
xử lý .


Sơ đồ khối và các chân chức năng của 8088
*Các chân chức năng
- AD0 - AD7 : Các chân địa chỉ dữ liệu phân đường chứa 8 bít dữ liệu hoặc 8 bit thấp của
địa chỉ bộ nhớ hoặc I/O .
- A8 - A15 : Các chân địa chỉ xác định 8 bit cao của địa chỉ bộ nhớ ,I/O ,trong suốt quá
trính HLDA hoạt động các chân này ở trạng thái trở kháng cao .
- A16 /S 3 ,A17/S 4 ,A18/S 5 , A19 /S 6 : Các chân địa chỉ /trạng thái ba trạng thái , các
chân này ở trạng thái trở kháng cao trong suốt quá trình HLDA .Bít trạng thái S6 luôn
=0 ,S5 chỉ trạng thái cờ IF . S4,S3 xác định đoạn nhớ đang được thâm nhập :

S4

S3

Ðoạn nhớ thâm nhập

0

0

Ðoạn dữ liệu

0


1

Ðoạn ngăn xếp

1

0

Ðoạn lệnh hoặc không có đoạn

1

1

Ðoạn dứ liệu

S4 ,S3 xác định đoạn nhớ đang được thâm nhập
- RD : Tín hiệu điều khiển đọc dữ liệu từ bộ nhớ ,cổng I/O
- READY :tín hiệu vào thông báo bộ nhớ hoặc cổng I/O sẵn sàng làm việc .
- INTR : (interupt request ) tín hiệu vào yêu cầu ngắt che được bằng phần mềm .
- TEST : tín hiệu vào để kiểm tra bộ VXL bằng lệnh WAIT .
- NMI : đầu vào tín hiệu ngắt không che được .
- RESET : tín hiệu vào để khởi động bộ VXL ,địa chỉ khởi động FFFF0h


- CLK : Tín hiệu nhịp đưa vào cho bộ VXL lấy từ bộ phát xung nhịp 8284
- Vcc : Ðiện áp nguồn 5V.
- GND : Ground -đất .
- MN / MX : minimum/maximum mode .Tín hiệu vào điều khiển chế độ ,tín hiệu này
được xác lập cố định

MN/MX nối với +5V - chế độ min ,nối với đất -chế độ max
* Các chân ở chế độ MIN
- M/IO : Chỉ ra rằng CPU đang thâm nhập bộ nhớ hay cổng I/O .
- WR : Tín hiệu ra 3 trạng thái báo ghi dữ liệu bộ nhớ ,I/O
INTA (Interupt acknowledge ) : Tín hiệu ra chấp nhận ngắt .
- ALE ( Address latch enable ) : Tín hiệu thông báo rằng bus địa chỉ dữ liệu có chứa địa
chỉ.
DT/R ( Data trasmit / Receiver ) : Tín hiệu ra 3 trạng thái chỉ chiều chuyển động của dữ
liệu , DT/ R = 0 dữ liệu đi ra từ CPU , DT/ R = 1 dữ liệu đi vào CPU .
- DEN (Data enable ) : Tín hiệu ra ba trạng thái để mở các bộ đệm dữ liệu ,khi DEN =0 có dữ liệu .
- HOLD : Tín hiệu vào yêu cầu treo (thả nổi ) CPU .
- HLDA (Hold acknowledge ) : báo ra bộ vi xử lý chấp nhận thả nổi .
- SS0 : Tín hiệu trạng thái ,hoạt động theo bảng sau :

DT/ R

SS0

--Chu kỳ bus --

0

0

0

Báo nhận lệnh ngắt

0


0

1

Ðọc bộ nhớ

IO/M


0

1

0

Ghi bộ nhớ

0

1

1

Dừng

1

0

0


Nhận lệnh

1

0

1

Ðọc cổng I/O

1

1

0

Ghi cổng I/O

1

1

1

Dừng

*/ Các chân ở chế độ MAX
- S2 ,S1 ,S0 : Cho biết trạng thái của chu kỳ bus .


S2

S1

S0

Chu kỳ bus

0

0

0

Trả lời ngắt

0

0

1

Ðọc cổng I/O

0

1

0


Ghi cổng I/O

0

1

1

Dừng

1

0

0

Nhận lệnh

1

0

1

Ðọc bộ nhớ


1

1


0

Ghi bộ nhớ

1

1

1

Thụ động

- RQ/ GT0 ,RQ/ GT1 (Request /Grant ) :Tín hiệu hai chiều RQ -yêu cầu treo bus ,GT tín hiệu báo ra rằng CPU chấp nhận treo .
- LOCK : Tín hiệu ra cấm các mạch điều khiển khác sử dụng bus .
- QS1 ,QS0 (Queu status): Cho biết trạng thái của hàng đợi lệnh .
Bảng trạng thái :

QS1

QS0

Trạng thái

0

0

không hoạt động


0

1

Byte thứ nhất của mã lệnh

1

0

Hàng đợi lệnh rỗng

1

1

Các byte tiếp theo

2.4 Các chế độ hoạt động của 8088
2.4.1/Chế độ tối thiểu : ( chân MN/ MX nối với nguồn +5V ).


Trong chế độ này bộ vi xử lý 8088 trực tiếp gửi tín hiệu điều khiển cho hệ thống . Ðây là
chế độ hoạt động đơn giản nhất của 8088 ,tín hiệu điều khiển được thực hiện ngay trong
bộ vi xử lý . Cấu hình này cho phép các thiết bị ngoại vi của 8085A hoạt động một cách
tương thích với 8088 mà không cầncác mạch phụ bên ngoài . Hình vẽ trên minh hoạ hệ
thống 8088 hoạt động với chế độ MIN .

2.4.2 Chế độ MAX ( chân MN /MX nối thẳng với đất )
Khác biệt so với chế độ Min ,trong chế độ 8088 này cần các mạch phụ bên ngoài để

chuyển đổi tín hiệu điều khiển Các mạch phụ này chuyển đổi tín hiệu các bit trạng thái S0
,S1 ,S2 thành tín hiệu trao đổi I/O và bộ nhớ để điều khiển sự truyền dữ liệu .Trong chế
độ này 8088 cần có thêm bộ điều khiển bus 8288 bởi vì không có đủ các chân tín hiệu
đầu ra do các chức năng mới đã thay thế các chức năng của một số chân như minh hoạ
trong Chế độ MAX được sử dụng khi trong hệ thống có chứa một bộ đồng xử lý như bộ
đồng xử lý toán học 8087.


3. Mạch tạo xung nhịp 8284
Cho dù làm việc trong chế độ Min hay Max. CPU 8088 luôn cần xung nhịp từ mạch tạo
xung nhịp 8284. Mạch tạo xung nhịp không những cung cấp xung nhịp với tần số thích
hợp cho toàn hệ mà nó còn có ảnh hưởng tới việc đồng bộ tín hiệu Reset và tín hiệu
Ready của CPU.

3.1.Sơ đồ khối và chức năng của 8284


Mạch tạo xung đồng hồ 8284 cho CPU 8088
*/Chức năng các chân
8284 là vi mạch 18 chân được thiết kế chuyên dùng ,có nhiệm vụ tạo xung nhịp điều
khiển hoạt động của 8088 .
- AEN1 và AEN2 (Address enable ) : xác định trạng thái sẵn sàng của bus tương ứng với
hai tín hiệu RDY1 và RDY2 dùng để tạo trạng thái chờ .
- RDY1 và RDY2 (Bus ready ): Ðầu vào kết hợp với AEN1 và AEN2 tạo trạng thái chờ
trong hệ thống 8088
- READY : Ðầu ra nối với chân READY của 8088 ,tín hiệu này đồng bộ với tín hiệu của
hai chân RDY1 và RDY2 .
- ASYNC - Ready synchronization select :Ðầu vào chọn đồng bộ một hoặc hai giai đoạn
cho các đầu vào RDY1 và RDY2 .
- X1 và X2 (Crystal input) : chân nối với nguồn dao động thạch anh bên ngoài tạo xung

nhịp cho 8284A và các hoạt động của nó .
- F/C - Frequency /Crystal : chọn nguồn xung nhịp cho 8284A ,nếu tín hiệu này ở mức
cao thì nguồn xung nhịp bên ngoài cung cấp xung qua chân EFI ,nếu tín hiệu này ở mức
thấp nguồn xung bên trong 8284 sẽ đảm nhận nhiệm vụ này .
- EFI - external Frequency Input : đầu vào sử dụng khi F/C ở mức cao .
- CLK - clock : Ðầu ra cung cấp xung nhịp cho bộ VXL 8088 ,và các thành phần khác
trong hệ thống . Tín hiệu ra CLK bằng 1 phần 3 nguồn dao độngngoài hoặc tần số vào tại
chân EFI và ở mức cao trong 33% chu kỳ làm việc quyết định bởi 8088 .
- PCLK -Peripheral Clock : Tín hiệu bằng 1 phần 6 tần số của nguồn dao động ngoài
hoặc tần số cấp vào chân EFI và ở mức cao trong 50% chu kỳ làm việc .Ðầu ra PCLK
này cung cấp xung nhịp cho các thiết bị ngoại vi trong hệ thống .
- OSC - Oscillato output : Tín hiệu mức TTL có tần số bằng tần số đưa vào đầu EFI .Ðầu
ra này cung cấp xung nhịp cho các vi mạch 8284A khác trong hệ thống .
- RES- Reset input : Tín hiệu vào hoạt động ở mức thấp reset đầu vào 8284A .
- RESET - reset output : Ðầu ra nối với chân RESET của 8088 .
- CSYNC - Clock Syncronization :Chân này được sử dụng khi đầu vào EFI được sử dụng
để


thực hiện đồng bộ trong hệ thống có nhiều bộ VXL . Nếu nguồn dao động nội được sử
dụng chân này phải được nối xuống đất .
- GND -ground :
- Vcc - Power supply input : chân nối với điện áp +5V � 10% .

3.2. Hoạt động của 8284
3.2.1Hoạt động của khối CLOCK
Nửa trên của sơ đồ logic là khối đồng bộ xung nhịp và reset của 8284 .Theo hình vẽ
nguồn dao động có hai đầu vào X1 và X2 nếu mạch dao động thạch anh được nối với X1
và X2 phần dao động sẽ tạo ra xung vuông có bằng tần số dao động của thạch anh . Tín
hiệu xung vuông này được đưa vào mạch NAND đảo cực tính và được đưa ra đầu

OSC .Tín hiệu ra OSC đôi khi còn được sử dụng làm đầu vào EFI cho mạch 8284A
khác . Tín hiệu ra từ bộ chia 3 tạo nhịp cho sự đồng bộ đầu ra READY ,tạo tín hiệu vào
cho mạch chia 2 ,tín hiệu CLK cho 8088 .Hai bộ đếm chia 3 và chia 2 tạo ra xung nhịp
cho đầu ra PCLK .

3.2.2 Hoạt động của khối Reset
Khối RESET của 8284A rất đơn giản ,nó bao gồm một bộ đệm trriger Schmitt và một
mạch lật kiểu D . Mạch lật này đảm bảo nhịp cấp cho chân RESET của 8088 .Mạch này
đưa tín hiệu vào RESET của VXL theo sườn âm ( chuyển từ 1sang 0 ) , 8088 lấy mẫu tín
hiệu RESET tại sườn dương (chuyển từ 0 sang 1 ) .

3.2.3 READY và trạng thái chờ (WAIT STATE )
Ðầu vào READY tạo trạng thái chờ dành cho các các thiết bị nhớ , thiết bị vào ra có tốc
độ chậm hơn CPU. Trạng thái chờ là một khoảng xung nhịp thêm vào giữa T2 và T3 để
kéo dài chu kỳ bus .Nếu trạng thái chờ được xen vào thì thời gian truy cập bộ nhớ thông
thường là 460ns với tần số 5MHz sẽ kéo dài thêm một chu kỳ xung (200ns ) và tới
660ns .

4. Ghép nối 8284 với 8088
Trong mainboard của máy vi tính vi mạch 8284 được ghép nối với bộ vi xử lý 8088 ,cung
cấp tín hiệu nhịp CLOCK ( CLK ) có tần số bằng một phần 3 tần số cung cấp của bộ dao
động thạch anh (15 MHz) nối qua chân X1 và X2 , cùng tín hiệu Reset cho 8088 .


Bộ tạo xung nhịp 8284 có vai trò quan trọng ,cung cấp xung nhịp cho bộ vi xử lý 8088 và
đồng thời cung cấp xung nhịp cho các phần tử khác trong hệ thống đảm bảo sự đồng bộ
trong mọi hoạt động của máy vi tính .

1.4. Mạch điều khiển bus 8288


Như đã giới thiệu ở phần trước, vi mạch 8288 là mạch điều khiển bus,
nó lấy 1 số tín hiệu điều khiển của CPU và cung cấp tất cả các tín hiệu
điều khiển cần thiết cho hệ vixử lý khi CPU 808àm việc ở chế độ
MAX.Sơ đồ chân và các tín hiệu của 8288 được thể hiện trên hình
5.7.Các tín hiệu chính của 8288 bao gồm

+/S 1 S 2, S 3 [I, I, I] : là các tín hiệu trạng thái lấy thẳng từ CPU. Tuỳ theo các tín
hiệu này mà mạch 8288 sẽ tạo ra các tín hiệu điều khiển khác nhau tại các chân ra củanó


để điều khiển hoạt động của các thiết bị nối với CPU. Bảng trên mô tả các tín hiệu vàovà
ra đó.
+ CLK [I] : Đây là đầu vào nối với xu ng đồng hồ hệ thống (từmạch8284)
vàdùng để đồng bộ toàn bộ các xung điều khiển đi ra từ mạch 8288.
+ CEN[I] : Là tín hiệu đầu vào để cho phép đưa ra tín hiệu DEN và các tín hiệuđiều khiển
khác của 8288.
+ IOB [I] : tín hiệu để điều khiển mạch 8288 làm việc ở các chế độ
b u s k h á c nhau.
Khi IOB =1 mạch 8288 làm việc ở chế độ bus vào/ra. Khi IOB=0 mạch 8288 làm việc ở
chế độ bus hệ thống
+ MRDC[O]: Tín hiệu điều khiển đọc bộ nhớ. Nó kích hoạt bộ nhớ đưa dữ liệu ra bus
+ MWTC[O],AMWC[O]: Là các tín hiệu điều khiển ghi bộ nhớ hoặc ghi bộ nhớ kéo dài
+IORC[O]:Tín hiệu điều khiển đọc thiết bị ngoại vi. Nó kích hoạt các thiết bị được chọn
để các thiết bị này đưa dữ liệu ra bus
+IOWCO[O],AIOWC[O]:là các tín hiệu điều khiển đọc thiết bị ngoại vi hoặc đọc các
thiết bị ngoại vi kéo dài
+ILTA[O]:là đầu ra thông báo là CPU chấp nhận yêu cầu ngắt của thiết bị ngoại vi và lúc
này các thiết bị ngoại vi sẽ phải đưa số hiệu ngắt ra bus để CPU đọc
+DT/R[O]:là tín hiệu để điều khiển hướng đi của dữ liệu trong hệ vào hay ra so với CPU
+DEN[O]:đây là tín hiệu để điều khiển bus dữ liệu trở thành bus cục bộ hay bus hệ thống

+MCE/PDEN[O]: đây là tín hiệu dùng định độ làm việc cho mạch điều khiển ngắt PIC
8259 để nó làm việc ở chế độ chủ
+ALE[O]: đây là tín hiệu cho phép chốt địa chỉ có tại các chân dồn kênh địa chỉ-dữ liệu
AD0-AD7,tín hiệu này thường được nối với chân G của mạch 47LS373 để điều khiển
mạch này chốt lấy địa chỉ.

4.Phối ghép 8088 với các thiết bị ngoại vi
4.1 Mạch phối ghép vào/ra song song lập trình được 8255A
4.1.1 Sơ đồ khối và các chân chức năng


Sơ đồ khối cấu trúc bên trong của 8255A
8255A-5 là vi mạch giao tiếp song song rất thông dụng trong toàn các hệ thống .Vi mạch
này có 24 chân cho thiết bị I/O có thể lập trình hoạt động trong 3 mode khác nhau .
8255A-5 có thể nối ghép bất kỳ thiết bị vào ra kiểu TTL và tương thích với 8088 .8255A5 thường được sử dụng để ghép nối với bàn phím và cổng máy in song song trong các
máy PC . Ba cổng vào ra của nó được lập trình thành các nhóm 12 chân .Nhóm A bao
gồm cổng A ( PA7 - PA0 ) và nửa cao của cổng C (PC7 - PC4 ) , nhóm B bao gồm cổng
B (PB7 - PB0 ) và nửa thấp của cổng C ( PC3 - PC0 ). 8255A-5 được chọn bằng chân CS
của nó để lập trình và phục vụ việc ghi đọc ra cổng I/O . Hai chân A1,A0 chọn thanh ghi
nội để lập trình hoặc hoạt động .Trong máy PC 8255A-5 được giải mã tại địa chỉ 60h-63h
. Ðể 8255A-5 có thể đọc ghi thì chân CS phải ở mức logic 0 và địa chỉ I/O phải được nối
với chân A1 và A0 ,không cần quan tâm đến các chân địa chỉ cổng còn lại và được giải
mã bên ngoài để chọn 8255A-5 .

A1

A2

Chức năng



0

0

Cổng A

0

1

Cổng B

1

0

Cổng C

1

1

Thanh ghi lệnh

Bảng chọn địa chỉ I/O cho 8255A

4.1.2Chức năng các khối .
* Khối đệm bus dữ liệu .
Ðây là bộ đệm 8 bit ,hai chiều được sử dụng để nối ghép 8255 với bus hệ thống . Dữ liệu

được gửi đi hay được tiếp nhận vào buffer(đệm) thông qua việc thực hiện lệnh IN (Input )
hoặc OUT (output )của CPU .Các từ điều khiển và thông tin trạng thái cũng được vận
chuyển qua bộ đệm bus dữ liệu .
* Khối logic điều khiển ghi/đọc .
Chức năng của khối này là điều khiển việc trao đổi bên trong và bên ngoài của các từ dữ
liệu , từ điều khiển hay thông tin trạng thái .
- CS = 0: tín hiệu chọn mạch cho phép CPU điều khiển 8255
- RD =0 : Tín hiệu cho phép 8255 gửi dữ liệu hay thông tin trạng thái cho CPU thông qua
bus dữ liệu .Nghĩa là CPU đọc thông tin này từ 8255 .
- WR = 0 : Tín hiệu cho phép CPU ghi thông tin trạng thái (dữ liệu hoặc từ điều khiển
vào 8255 ).
- A0, A1 : Các tín hiệu vào này chọn một trong ba cổng làm việc , hoặc thanh ghi điều
khiển kết hợp với các tín hiệu RD ,WR thực hiện thao tác đọc ghi các cổng hoặc thanh
ghi điều khiển . Bình thường các bit này được nối với các bit thấp nhất của bus địa chỉ
(A0 - A1 ) .


- RESET =1 : Xoá tất cả các thanh ghi bên trong của 8255 ,kể cả thanh ghi điều khiển
(control register) và tất cả các cổng (A,B,C ) được đặt về chế độ các cổng vào .
* Khối điều khiển nhóm A và nhóm B.
Mỗi cổng trong số các cổng của vi mạch (cổng A ,B,C ) đều hoạt động theo chương trình
điều khiển . Quá trình như sau, CPU 8088 gửi một từ điều khiển cho 8255 . Từ điều khiển
này chứa các thông tin như : chế độ hoạt động ,xác lập hoặc khởi tạo các bit...điều khiển
hoạt động của 8255 . Mỗi một khối điều khiển ( nhóm A và nhóm B ) tiếp nhận lệnh từ
khối logic điều khiển đọc /ghi và nhận từ điều khiển từ bus dữ liệu bên trong vi mạch và
tạo ra các lệnh tương ứng cho các cổng .
Nhóm A bao gồm cổng A và cổng C ( 4 bit cao C7 - C4 ).
Nhóm B bao gồm cổng B và cổng C ( 4 bit thấp C3 - C0 ).
Ðối với thanh ghi từ điều khiển ( control word register ) , chúng ta chỉ có thể ghi mà
thôi ,nghĩa là không thể đọc được nội dung của nó .

* Các cổng A ,B,C .
Cổng A : Ðây là cổng ra đệm và chốt 8 bit dữ liệu ,và là cổng vào chốt (latch).
Cổng B: Ðây là cổng vào/ra chốt/đệm 8 bit dữ liệu và đệm vào 8 bit dữ liệu
Cổng C : Ðầu ra 8 bit dữ liệu chốt /đệm và đầu vào đệm 8 bit.Cổng này có thể được chia
thành hai cổng chốt 4 bit riêng biệt và được sử dụng để đưa ra tín hiệu điều khiển và nhận
vào tín hiệu trạng thái phối hợp với cổng A và cổng B.

4.1.3 Các chế độ hoạt động cơ bản của 8255A
Vi mạch 8255 có ba chế độ hoạt động cơ bản (Mode) ,có thể chọn các chế độ hoạt động
như sau.
Mode 0 : Chế độ vào ra cơ bản
Mode 1 : Chế độ vào ra có hội thoại (Strobe Input/Output )
Mode 2 : Chế độ vào ra bus hai chiều .
Hình vẽ sau minh hoạ các chế độ hoạt động cơ bản của 8255 :


Khi tín hiệu RESET bằng 1 tất cả các cổng được đưa về trạng thái là các cổng vào (Input
port) nghĩa là tất cả 24 đường của ba cổng đều ở trạng thái trở kháng cao ). Sau khi tín
hiệu RESET bằng 0 thì 8255 có thể duy trì trạng thái trên nếu như không có sự thiết lập
trạng thái bổ xung nào nữa . Trong quá trình thực hiện chương trình của hệ thống ,bất kỳ
một chế độ nào khác có thể được chọn nhờ sử dụng lệnh máy OUT.
Cấu trúc từ lệnh điều khiển ( control word ) như sau:


Các chế độ của cổng A và cổng B có thể được định nghĩa một cách riêng biệt ,trong khi
đó cổng C được chia thành hai phần vì lý do các định cho cổng A và cổng B . Tất cả các
thanh ghi nội và thông tin trạng thái sẽ được xoá khi chế độ thay đổi . Nhóm B ( Group
B) có thể được lập trình ở mode 0 để điều khiển các chuyển mạch đơn giản hoặc hiển thị
các kết quả tính toán .. Nhóm A có thể được lập trình hoạt động trong mode1 để điều
khiển bàn phím hoặc bộ đọc băng từ hoặc một bộ điều khiển ngắt cơ bản .

* Chức năng xoá bit và lập bit (single bit set/reset )
Bất cứ bit nào trong 8 bit của cổng C đều có thể được thiết lập hoặc được xoá nhờ sử
dụng các lệnh ghi ra thanh ghi điều khiển các bit phù hợp.Như vậy khi cổng C đang được
dùng để điều khiển , ghi trạng thái cho cổng A hoặc cổng B thì những bit của cổng C có
thể được xoá hoặc được thiết lập nhờ sử dụng các lệnh xoá ,thiết lập bit như khi cổng C
là cổng ra dữ liệu .
- Từ lệnh hoạt động trong chế độ như sau :


* Chức năng điều khiển ngắt .(Interrupt control )

Khi 8255 được lập trình hoạt động ở mode 1 hoặc mode 2 các tín hiệu điều khiển của nó
có thể được sử dụng như yêu cầu ngắt tới CPU .Tín hiệu yêu cầu ngắt tạo bới cổng C có
thể bị cấm hay được phép nhờ xoá hay xác lập mạch lật INTE sử dụng chức năng lập xoá
bit như đã nêu trên.
Chức năng này cho phép người lập trình có thể cho phép hoặc không cho phép một thiết
bị I/O ngắt CPU mà không gây ảnh hưởng tới bất kỳ một thiết bị nào khác trong cấu trúc
ngắt .
a/ Mode 0.( Basic input/output).

Ðây là chế độ vào ra cơ bản của vi mạch, nó đảm bảo dữ liệu được đưa ra hoặc ghi vào
các cổng riêng biệt .
Trong chế độ này , vi mạch có các chức năng sau :
- Vi mạch hoạt động gồm hai cổng 8 bit và hai cổng 4 bit
- Các cổng có thể là cổng vào hoặc cổng ra.
- Các tín hiệu ra được chốt lại .
- Các tín hiệu vào không được chốt .
- Trong chế độ này 8255 có 16 cấu hình hoạt động vào/ra như sau :





* Ðồ thị thời gian đọc /ghi của 8255 trong chế độ này như sau :

Ðồ thị thời gian đọc .


Ðồ thị thời gian quá trình ghi .

b/Mode 1( Strobe input/output).

Trong chế độ này cổng A và cổng B sử dụng các đường dây tín hiệu của cổng C để tạo
hoặc tiếp nhận tín hiệu hội thoại ( hanshaking signal ) nghĩa là mọi quá trình trao đổi dữ
liệu của từng cổng đều dùng các tín hiệu hội thoại.

Các chức năng cơ bản của Mode 1.
- Vi mạch hoạt động gồm hai nhóm ,nhóm A và nhóm B.
- Mỗi nhóm chứa một cổng 8 bit và một cổng điều khiển 4 bit.
- Cổng 8 bit có thể là cổng vào , hoặc cổng ra ,cả hai cổng vào ra đều là cổng chốt .
- Các cổng 4 bit được sử dụng để điều khiển và xác định trạng thái của các cổng 8 bit.

- Các tín hiệu điều khiển vào được dùng trong chế độ vào :
- STB (Strobe input)
Mức thấp của tín hiệu vào này cho phép dữ liệu được đọc vào .


- IBF (Input Buffer Full)
Mức cao của tín hiệu ra này chỉ ra rằng dữ liệu đã được ghi vào cổng chốt ,về bản chất
đây là một tín hiệu xác nhận . Tín hiệu IBF được xác lập khi tín hiệu STB đang ở mức
thấp và được khởi tạo lại khi có sườn dương củ đầu vào RD .

- INTR ( Interrupt Request )
Mức cao của tín hiệu ra này có thể được sử dụng để yêu cầu ngắt tới CPU . Khi một thiết
bị vào yêu cầu phục vụ , tín hiệu INTR được xác lập bởi tín hiẹu STB =1 . Tín hiệu
IBF=1 và INTE =1 .Tín hiệu này được khởi tạo lại khi ở sườn sau của tín hiệu RD . Chức
năng này cho phép các thiết bị vào yêu cầu ngắt tới CPU một cách đơn giản bằng cách
dưa dữ liệu của nó ra cổng .

Các từ lệnh điều khiển và đồ thị thời gian của chế độ này như sau :


:
* Các tín hiệu điều khiển ra được dùng trong chế độ ra .
- OBF ( Output Bufer Full F/F).
Tín hiệu ra OBF chuyển về mức thấp để thông báo rằng CPU đã ghi dữ liệu ra một cổng
xác định .Tín hiệu OBF F/F sẽ được xác lập ở sườn lên của tín hiệu WR và bị xoá khi tín
hiệu vào ACK ở mức thấp .
- ACK (Acknowledge Input ).
Mức thấp của tín hiệu vào này thông báo cho 8255 rằng dữ liệu từ cổng A hoặc cổng B
đã được chấp nhận .Về bản chất đây là tín hiệu phúc đáp từ thiết bị ngoại vi thông báo nó
đã nhận được dữ liệu gửi tới từ CPU .
- INTR (Interrupt Request )
Mức cao của tín hiệu ra này được sử dụng để yêu cầu ngắt CPU khi một thiết bị ngoài đã
nhận được dữ liệu truyền từ CPU.. Tín hiệu INTR xác lạp khi tín hiệu ACK = "1" ,OBF =
"1" và INTE ="1" . Tín hiệu này được khởi tạo lại ở sườn xuống của tín hiệu WR .

Các từ lệnh của chế độ này như sau :


×