Chương 4
G
G
I
I
A
A
O
O
T
T
I
I
E
E
Á
Á
P
P
N
N
G
G
O
O
A
A
Ï
Ï
I
I
V
V
I
I
8
8
2
2
5
5
5
5
A
A
PPI 8255A (PROGRAMABLE PARALLEL INTERFACE)
I – TỔNG QUÁT:
1 – Bộ đệm truyền dữ liệu:
Bộ đệm 8 Bits, 2 chiều, 3 trạng thái dùng để giao tiếp 8255
với CPU.
Dữ kiện được phát hay nhận bởi bộ đệm khi thực hiện lệnh
IN, OUT bởi CPU.
Các từ điều khiển cũng truyền qua dữ kiện.
I/O
PA0-DA7
I/O
PC4-PC7
I/O
PC0-PO3
I/O
PB0-PB7
Hình 3.1 Cấu trúc khối của 8255
Đệm
dữ
kiện
Điều khiển
Nhóm A
Nhóm A
Cửa A
Nhóm A
Cửa C
Phần cao
Nhóm B
Cửa C
Phần thấp
Nhóm B
Cửa B
Kiểm
soát
đọc
ghi
Điều khiển
nhóm B
2 – Phần kiểm soát đọc ghi:
Chức năng của khối này là kiểm soát tất cả các sự truyền
đạt bên trong và bên ngoài của từ điều khiển và dữ kiện. Nó
nhận ngõ vào từ tuyến đòa chỉ và sự điều khiển của CPU, phát ra
các lệnh cần thiết cho cả hai nhóm A và B.
CS: ngõ vào = 0 cho phép truyền tin giữa 8255 và CPU.
RD: = 0 cho phép 8255 gởi dữ kiện đến CPU trên tuyến dữ
kiện chủ yếu là cho phép CPU đọc dữ kiện từ 8255.
WR=0 – CPU từ điều khiển hay dữ kiện ra 8255.
A0 A1 Chọn cửa
0 0 Cửa A
0 1 Cửa B
1 0 Cửa C
1 1 Cửa điều khiển
RESET: =1 xóa các thanh ghi bên trong gồm thanh ghi
điều khiển và các cửa A, B, C ở mode nhận.
3 – Điều khiển nhóm A và B:
Cấu hình hoạt động của mỗi nhóm được lập trình bởi phần
mềm, chủ yếu là CPU xuất phát từ điều khiển đến 8255. Từ
điều khiển gồm các thông tin như chế độ (mode), bit set, bit
reset, v.v … sẽ khởi động cấu hình hoạt động của 8255. Thanh
ghi từ điều khiển chỉ có thể viết vào mà không đọc ra.
4 – Các cửa A, B, C:
8255 gồm 3 cửa A, B và C. Mỗi cửa gồm 8 bits. Các cửa
này có thể được lập trình bởi phần mềm để có thể hoạt động ở
chế độ thích hợp.
Cửa A: gồm bộ đệm, cài ngõ ra 8 bits và cài ngõ vào 8
bits.
Cửa B: gồm bộ đệm, cài ngõ ra 8 bits và cài ngõ vào 8 bits.
Cửa C: đệm và cài ngõ ra 8 bits và đệm 8 bits ngõ vào
(không cài).
Cửa C có thể chia làm 2 phần, mỗi phần 4 bits cho điều
khiển mode.
Mỗi phần được dùng kết hợp với cửa A hay B tạo nên các
tín hiệu điều khiển.
II – MÔ TẢ CHI TIẾT:
1 – Chọn chế độ (Mode):
Có 3 chế độ hoạt động cơ bản thích hợp cho phần mềm:
Mode 0 : Vào/ra cơ bản
Mode 1 : Vào/ra “bắt tay” (chỉ cho phép 1 trong chiều)
Mode 2 : Truyền dữ kiện hai chiều
Khi RESET, tất cả các cửa được thiết lập ở chế độ nhập
(input), tức là cả 24 đường đều ở 3 trạng thái. Sau khi RESET
8255 có thể duy trì ở chế độ nhập mà không cần khởi động gì
thêm. Trong khi thực hiện chương trình hệ thống, có thể chọn
bất kỳ mode nào bằng cách xuất đến 8255 từ điều khiển. Điều
này cho phép chỉ cần một 8255 mà có thể phục vụ nhiều kiểu
thiết bò ngoại vi.
Các chế độ cửa A và B có thể đònh nghóa riêng biệt. Còn
của C được chia làm hai phần cho hai nhóm tùy yêu cầu đònh
nghóa chế độ cửa A và B. Ta có từ điều khiển cho 8255 như sau:
(trang sau).
2 – Đặc tính xóa/thiết lập bit cho cửa C khi nó dùng làm tín
hiệu trạng thái/điều khiển cho cửa A/B:
Ta dùng lệnh OUT xuất ra từ một điều khiển, trong đó bit
D7 = 0.
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
Nhóm B 1:in
Mode set flag Cửa C(phần thấp) 0:
out
1-active Cửa B
1:in
0:out
Chọn chế độ
0:mode 0
1: mode 1
NhómA
Cửa C 1:in
(phần cao) 0:out
Cửa A 1: in
0: out
00: mode 0
Chọn mode 01: mode 1
1X: mode 2
Hình 3.2
Khi chọn mode cho port A, các bit D3, D4, D5 không còn ý
nghóa nữa. Lúc đó cửa A là hai chiều, còn phần cao cửa C sẽ
làm tín hiệu điều khiển và trạng thái cho cửa A. (Bitset và reset
flag), phần còn lại của điều khiển có ý nghóa như sau:
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
x x x Bit set /
Reset
0: Reset
1:set
Bit select
Bit set / Reset fleg
0 - active
01010101
00110011
00001111
01234567
Hình 3.3
Mỗi lần xuất ra một từ điều khiển đến 8255 với D7 = 0, chỉ
tác động đến 1 bit của cửa C (được chọn bởi Bit select).
3 – Chức năng kiểm soát ngắt quãng:
Khi 8255 được lập trình ở mode 1 hay 2, các tín hiệu điều
khiển được cung cấp có thể được dùng để yêu cầu ngắt quãng
CPU. Tín hiệu yêu cầu ngắt quãng phát ra từ cửa C có thể bò
cấm hay cho phép bằng cách set hay reset flip-flop INTE tương
ứng, dùng chức năng set/reset bit của cửa C.
Chức năng này cho phép CPU cấm hay cho phép các thiết
bò I/O đã xác đònh ngắt quãng CPU mà không làm ảnh hưởng
các thiết bò khác trong cấu trúc ngắt quãng.
III – CHẾ ĐỘ HOẠT ĐỘNG:
1 – Mode 0 (Vào/ra cơ bản)
Không có “bắt tay”, dữ kiện được ghi và đọc một cách dơn
giản đến phức tạp hay từ 1 cửa đã chỉ ra. Các đặc tính cơ bản ở
mode 0:
2 cửa 8 bits và 2 cửa 4 bits
Bất kỳ cửa nào cũng có thể là ra hay vào
Ngõ ra được cài
Ngõ vào không cài
Cho phép 16 dạng vào / ra ở mode
Ví dụ : Từ điều khiển 83h xáx đònh cửa A ra, B vào.
Phần cao của C : ra, phần thấp của C : vào.
2 – Mode 1 (Vào/ra có bắt tay):
Ở mode 1, cửa A và B dùng những đường ở cửa C để phát
hay nhận các tín hiệu bắt tay.
Đònh nghóa các tín hiệu bắt tay cho phần nhập:
STB (Strobe Input): mức thấp ở ngõ vào này nạp dữ liệu vào
8255.
IBF (Input Buffer Full): ngõ ra =1 để thông báo dữ kiện đã
được nạp vào mạch cài nhập
Nói cách khác, mức thấp của STB sẽ thiết lập IBF = 1, và
IBF bò xóa bởi cạnh lên RD.
* INTR (Interput Request): ngõ ra = 1 để yêu cầu ngắt
khoảng CPU, INTR được set bởi STB = 1 và IBF = 1,
INTR = 1.
INTR bò reset bởi cạnh xuống RD
INTR A kiểm soát bởi bit set / reset PC 4
INTR B kiểm soát bởi bit set / reset PC 2