Nó thường được dùng trong các card cắm thêm vào máy tính để kết nối giao tiếp song song giữa Vi xử lý và thiết bị điều khiển bên ngoài... Chế độ này kéo dài tới khi chương trình ứng dụn
Trang 1Chương 3:
Giới thiệu vi mạch 8255A
Vi mạch 8255A là vi mạch giao tiếp ngoại vi lập trình được
PPI (Programmable Peripheral Interfacer) Nó thường được
dùng trong các card cắm thêm vào máy tính để kết nối giao tiếp song song giữa Vi xử lý và thiết bị điều khiển bên ngoài
1 Sơ đồ chân của 8255A:
Sơ đồ chân và sơ đồ logic của vi mạch 8255A
8255A
D 0 -D 7
RD\
WR\
RESET
A 0
A 1
CS\
PA 0 -PA 7
PB 0 -PB 7
PC 0 -PC 3
PC 4 -PC 7
PA 3
PA 2
PA 1
PA 0
RD\
CS\
GND
A1
A0
PC 7
PC 6
PC5
PC 4
PC 0
PC 1
PC 2
PC 3
PB 0
PB1
PB 2
PA 4
PA5
PA 6
PA 7
WR\
RESET
D 0
D 1
D 2
D3
D 4
D 5
D6
D 7
V cc
PB 7
PB 6
PB 5
PB 4
PB3
8255A
Trang 2Bảng trạng thái của 8255A
2 Cơ chế hoạt động của 8255A:
Khi chân RESET ở mức [1], 8255A sẽ được khởi động, nó sẽ thả nổi tất cả 24 chân liên quan tới các cửa vào/ra Chế độ này kéo dài tới khi chương trình ứng dụng viết từ điều khiển vào thanh ghi điều khiển để xác định chế độ làm việc của 8255A
Ba chế độ hoạt động cơ bản của 8255A là:
- Chế độ 0: vào/ra thông thường
- Chế độ 1: chốt vào/ra
- Chế độ 2: bus hai chiều
Từ điều khiển dùng để định nghĩa chế độ làm việc cho 8255A
Cấu trúc từ điều khiển của 8255A:
D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0
Nhóm B
Port C (thấp)
1 = nhập
0 = xuất Port B
1 = nhập
0 = xuất Chọn chế độ
0 = chế độ 0
1 = chế độ 1
Nhóm A
Port C (cao)
1 = nhập
0 = xuất Port A
1 = nhập
0 = xuất Chọn chế độ
Trang 3Chế độ 0:
Từ điều khiển
Chế độ 0 xác lập hai port 8 bit (A và B) và hai port 4 bit (nửa cao và nửa thấp của port C) Bất kỳ port nào cũng có thể nhập hoặc xuất dữ liệu tùy theo các bit D4, D3, D1 và D0 Dữ liệu được chốt khi nhập (còn khi xuất thì không)
Chế độ 1:
Từ điều khiển
Chế độ này cả hai port A và B làm việc ở chế độ xuất/nhập có chốt Port A và B hoạt động độc lập nhau, mỗi port có 4 bit điều khiển/dữ liệu được hình thành từ 4 bit cao và 4 bit thấp của port C
Nhóm A được cấu hình ở chế độ 1:
Trang 4* Port A là port nhập dữ liệu:
Từ điều khiển
- STBA\ (PC4): mức 0 tại ngõ vào này sẽ làm cho dữ liệu được chốt vào port A Thiết bị ngoại vi dùng tín hiệu này để báo cho 8255A biết dữ liệu vào đã sẵn sàng
- IBFA (PC5): ngõ ra này lên mức 1 để báo rằng bộ đệm đã đầy Khi chân này ở mức 0 thì thiết bị ngoại vi có thể gởi dữ liệu mới tới 8255A
- INTRA (PC3): tín hiệu ở ngõ ra này được dùng như một yêu cầu ngắt Ngõ ra này lên mức 1 khi STBA ở mức 0, IBFA và cờ hiệu INTRA ở mức 1 Tín hiệu INTEA tự động được xóa khi CPU nhập từ 8255A Cờ hiệu cho phép ngắt (INTE) được điều khiển bằng cách đặt hoặc xóa bit PC4
- Các bit PC6 và PC7 là các bit xuất nhập bình thường phụ thuộc vào bit D3 trong từ điều khiển
* Port A là port xuất dữ liệu:
PC4
PC5
PC3
INTE A
RD\
PC6,7
PA0-PA7
I/O INTRA
IBFA STBA\
PC 6,7
1 = nhập
0 = xuất
Trang 5Từ điều khiển
- OBFA\ (PC7): ngõ ra này sẽ xuống mức 0 khi bộ đệm xuất đầy để báo cho thiết bị ngoại vi biết port A đang xuất ra dữ liệu mới
- ACKA\ (PC6): ngõ vào này được thiết bị ngoại vi đặt mức 0 để báo cho 8255A biết dữ liệu port A được chấp nhận
- INTRA (PC3): ngõ ra này có cùng mục đích như trong trường hợp nhập Cờ cho phép ngắt được điều khiển bằng cách đặt hoặc xóa bit PC6
- Các bit PC4 và PC5 là các bit xuất nhập bình thường phụ thuộc vào bit D3 trong từ điều khiển
Nhóm B được cấu hình ở chế độ 1:
* Port B là port nhập dữ liệu:
Từ điều khiển
PC6
PC7
PC3
INTE A
WR\
PC4, 5
PA0-PA7
I/O INTRA
ACKA\ OBFA\
PC 4, 5
1 = nhập
0 = xuất
PC2
PC1
PC0
INTE B
RD\
PC4,5
PB0-PB7
I/O INTRB IBFB STBB\
Trang 6- STBB\ (PC2), IBFB (PC1) và INTRB (PC0) có chức năng tương tự như trong trường hợp port A nhập Cờ hiệu cho phép ngắt (INTE) được điều khiển bằng cách đặt hoặc xóa bit PC2
* Port B là port xuất dữ liệu:
Từ điều khiển
Chế độ 2:
Chế độ này là chế độ xuất/nhập hai chiều được chốt Trong chế độ này, port A được dùng cho xuất và nhập, 5 bit của port C được dùng để chỉ trạng thái và điều khiển port A
Từ điều khiển
PC2
PC1
PC0
INTE B
WR\
PC4, 5
PB0-PB7
I/O INTRB
ACKB\ OBFB\
PC7
PC6
PC4
INTE 1
PA0-PA7
STBA\
ACKA\ OBFA\
PC3 INTRA\
PC0-2
Port B
1 = nhập
0 = xuất
Chế độ nhóm B
0 = chế độ 0
1 = chế độ 1
Trang 7- OBFA\ (PC6): bộ đệm ngõ ra đã đầy.
- ACKA\ (PC7): tín hiệu báo chấp nhận dữ liệu
- IBFA (PC5): bộ đệm ngõ vào đầy
- STBA\ (PC4): dữ liệu đang sẵn sàng ở ngõ vào
- INTRA (PC3): tín hiệu yêu cầu ngắt, được sử dụng cho xuất/nhập
Khi nhóm A ở chế độ 2 thì nhóm B chỉ có thể ở chế độ 0 hoặc 1 Tuy nhiên, nếu nhóm B ở chế độ 0 thì chỉ có 3 bit PC0
-PC2 được sử dụng cho xuất/nhập vì nhóm A đã mượn bit PC3 để sử dụng như một yêu cầu ngắt Thông thường, nếu nhóm A ở chế độ 2 thì các bit PC0-PC2 sẽ được nối với các chân trạng thái và điều khiển của thiết bị nối với port A Port B cũng có thể được dùng cho mục đích này
Việc đặt/xóa bit đối với port C
Ta có khả năng lập và xóa từng bit Nếu bit 7 của từ điều khiển là 0, 8255A sẽ hiểu là lệnh đặt/xóa bit port C có nghĩa, cho phép lập/xóa bất kỳ bit nào của port C Khả năng đặt/xóa
Trang 8từng bit riêng lẻ là rất thuận tiện cho ứng dụng khi các bit riêng rẽ được dùng để điều khiển tách biệt các chức năng bên ngoài Từ điều khiển đặt/xóa bit
Đặt/xóa bit
1 = đặt (set)
0 = xóa (reset) Chọn bit
0 1 2 3 4 5 6 7
0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1 Cờ đặt/xóa bit
0 = tích cực