Tim boi : Báo cáo thực tập tốt nghiệp
Phần I Tìm hiểu một số linh kiện
8255
1. Cấu trúc của 8255
Vi mạch 8255 là vi mạch cỡ lớn LSI, thờng đợc gọi là mạch phối ghép vào/ra
song song lập trình đợc. Do khả năng mềm dẻo trong các ứng dụng thực tế nó là
mạch phối ghép đợc dùng rất phổ biến cho các hệ vi xử lý 8, 16, 32 bit, Vi mạch 40
chân này có các chân nh sau:
U1
8255
34
33
32
31
30
29
28
27
5
36
9
8
35
6
4
3
2
1
40
39
38
37
18
19
20
21
22
23
24
25
14
15
16
17
13
12
11
10
D0
D1
D2
D3
D4
D5
D6
D7
RD
WR
A0
A1
RESET
CS
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
Có 24 đờng dẫn lối vào/ra xếp thành 3 cổng song song ( portA, portB, portC).
Một nửa cổng C ( PC4 PC7) thuộc nhóm A, còn nửa kia thuộc nhóm B.
Chân Reset phải đợc nối với tín hiệu Reset chung của toàn hệ thống (khi Reset
các cổng đợc định nghĩa là cổng vào để không gây ra sự cố cho các mạch điều
khiển).
Tín hiệu
CS
đợc nối cới mạch tạo xung chọn thiết bị để đặt mạch 8255 vào một
địa chỉ cơ sở nào đó. Các tín hiệu địa chỉ A0, A1 sẽ chọn ra 4 thanh ghi bên trong
8255: một thanh ghi để ghi từ điều khiển (CWR control word register) cho hoạt
động của 8255 và 3 thanh ghi khác ứng với các cổng là PA, PB, PC để ghi đọc dữ
liệu theo bảng:
A1 A0
CS RD WR
Lệnh (của VXL)
Hớng chuyển số liệu với
VXL
0 0 0 0 1 Đọc PortA
PortA D0 ữ D7
0 1 0 0 1 Đọc PortB
PortB D0 ữ D7
1 0 0 0 1 Đọc PortC
PortC D0 ữ D7
1 1 0 0 1 Không có giá trị
0 0 0 1 0 Ghi PortA
D0 ữ D7 PortA
0 1 0 1 0 Ghi PortB
D0 ữ D7 PortB
1 0 0 1 0 Ghi PortC
D0 ữ D7 PortC
1 1 0 1 0 Ghi thanh ghi
điều khiển
D0 ữ D7 Thanh ghi
điều khiển
x X 1 x X Vi mạch ở trạng
thái trở kháng
cao
Không có trao đổi số liệu
Tìm hiểu một số linh kiện
3
Tim boi : Báo cáo thực tập tốt nghiệp
Tính linh hoạt của vi mạch này thể hiện ở khả năng lập trình. Ta có thể đặt các
mode hoạt động thông qua thanh ghi điều khiển. Các chân D0 ữ D7 tạo nên kênh dữ
liệu 2 hớng có độ rộng 8 bit. Tất cả dữ liệu khi truy nhập ghi hoặc đọc đợc dẫn qua
kênh dữ liệu này.
Trạng thái logic ghi/đọc đợc nhận biết qua các tín hiệu điều khiển
CS
,
RD
,
WR
.
Trao đổi thông tin với 8255 chỉ có thể đợc tiến hành khi
CS
= 0. Khi
RD
= 0 dữ liệu
của cổng đợc chọn đợc đa ra kênh dữ liệu và có thể đợc sử dụng bởi các vi mạch
khác. Khi
WR
= 0, thì moi việc xảy ra ngợc lại. Các bit địa chỉ A0 và A1 cùng với
các tín hiệu ghi đọc báo cho biết sẽ truy nhập lên cổng nào.
Sơ đồ khối mô tả chức năng của 8255:
D0ữD7
RD
WR
A1
A0
Reset
2. Các chế độ làm việc của 8255
Có 2 loại từ điều khiển cho 8255:
Từ điều khiển định nghĩa cấu hình cho các cổng PA, PB, PC.
Từ điều khiển lập/xoá từng bit đầu ra của PC.
Tuỳ theo lệnh ghi vào thanh ghi điều khiển khi khởi động vi mạch mà ta có
các PortA,B,C hoạt động ở:
Các chế độ 0, 1, 2 khác nhau.
Tìm hiểu một số linh kiện
4
PortA
(8)
PortC
nửa
cao (4)
PortC
nửa
thấp
(4)
PortB
(8)
Điều
khiển
nhóm
A
Điều
khiển
nhóm
B
Đệm
số liệu
Logic
điêù
khiển
đọc
ghi
PA0ữPA7
PC7ữPC4
PC3ữPC0
8
4
4
8
PB0ữPB7
CS
Tim boi : Báo cáo thực tập tốt nghiệp
Chiều trao đổi số liệu khác nhau.
2.1. Từ điều khiển định nghĩa cấu hình cho các cổng
Dạng thức từ điều khiển để định nghĩa cấu hình cho 8255:
D7 D6 D5 D4 D3 D2 D1 D0
Cờ =1 MA1 MA0 A CA MB B CB
Nhóm A
Chọn chế độ
00: mode 0
01: mode 1
1x: mode 2
2.2. Từ điều khiển lập xoá bit ra PC
i
Dạng thức của từ điều khiển dể lập xoá PC
i
:
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 S/R
1 1 1 1 0 0 0 0
1 1 0 0 1 1 0 0
1 0 1 0 1 0 1 0
Các chế độ làm việc của 8255 có thể đợc định nghĩa bằng từ điều khiển
CWR. 8255 có 3 chế độ làm việc:
Mode 0: Vào/ra cơ sở. Trong chế độ này mỗi cổng PA, PB, PC
H
và PC
L
đều có thể đợc định nghĩa là các cổng vào hoặc ra.
Mode 1: Vào/ra có xung cho phép. Trong chế độ này mỗi cổng
PA,PB có thể đợc định nghĩa thành cổng vào hoặc ra với các tín
hiệu móc nối ( handshaking ) do các bit tơng ứng của cổng PC
trong cùng nhóm đảm nhận.
Mode 2: Vào/ra 2 chiều. Trong chế độ này chỉ riêng cổng PA có
thể đợc định nghĩa thành cổng vào ra 2 chiều với các tín hiệu móc
Tìm hiểu một số linh kiện
5
PA:
1: vào
0: ra
PC
H
:
1: vào
0: ra
Nhóm B
PC
L
(thấp):
1: vào
0: ra
PB:
1: vào
0: ra
Chọn chế độ:
1: vào
0: ra
1: Lập PC
i
0: Xoá PC
i
PC7PC6 PC5PC4 PC3 PC2PC1 PC0
3 bit địa chỉ
của 8 bit PC
Tim boi : Báo cáo thực tập tốt nghiệp
nối do các bit của cổng PC đảm nhiệm. Lúc này cổng PB có thể
làm việc trong chế độ 0 hoặc 1.
Trong chế độ 0, ngời ta có thể dùng các bit của PC để lập xoá để điều khiển
hoặc đối thoại với các thiết bị ngoại vi, chế độ này còn gọi là chế độ lập xoá
từng bit của PC:
Ghép nối 8255 với hệ vi xử lý
8255 làm việc ở mode 0
Trong chế độ 0, 8255 cho một khả năng xuất và nhập dữ liệu đơn giản qua 3
cổng A,B,C. PA, PB, PC đợc sử dụng độc lập với nhau, 3 đờng dây đều đợc dùng để
trao đổi số liệu hoặc thông tin về điều khiển và trạng thái một cách bình đẳng với
nhau và tuỳ ý lựa chọn:
Tìm hiểu một số linh kiện
6
Mode 1
PA0ữ PA7
PA0ữ PA7
PA0ữ PA7
RDWR,
D0ữ D7
A0,A1,
B
C
A
PB0ữ PB7
PC0ữ PC3 PC4ữ PC7
PA0ữ PA7
Mode 0
B
A
PC0 PC1 PC2 PC3
PC4 PC5
PC6
PC7
PB0ữ PB7
PB0ữ PB7
INTR
B
IBF
B
STB
B
INTR
A
STB
A
IBF
A
I/O I/O
B
OBF
B
ACK
I/O
I/O
A
ACK
A
OBF
Mode 2
B
A
PB0ữ PB7
PC0
PC1
PC2
PC3 PC4
PC5 PC6
PC7
INTR
A
STB
A
A
ACK
A
OBF
IBF
A
Cửa vào
Cửa ra
I/O ( mode 0)
Đối thoại (mode 1)
Cửa B ở mode 0 hoặc 1
Đối thoại cửa A
Đối thoại cửa A
Đối thoại cửa B
8255
PA0 ữ PA7
PC0 ữ PC3
PC4 ữ PC7
PB0 ữ PB7
Tim boi : Báo cáo thực tập tốt nghiệp
8255 làm việc ở mode 1
Là chế độ vào/ra có chốt, tức là có sự đối thoại giữa ngoại vi và hệ vi xử lý thông
qua các bit PortC. Có 2 nhóm:
Nhóm A: gồm PortA dùng để trao đổi số liệu và nửa PortC cao( PC4 ữ PC7 ) để
đối thoại giữa vi xử lý và ngoại vi.
Nhốm B: gồm PortB dùng để trao đổi số liệu và nửa PortC thấp( PC0 ữ PC3 ) để
đối thoại giữa vi xử lý và ngoại vi.
Hớng và chế độ 1 của PortA, PortB do từ lệnh điều khiển quyết định, các tín hiệu
đối thoại PC
i
phụ thuộc hớng cổng vào hay ra.
Xuất dữ liệu ra trong mode 1
Cổng PA, PB có tín hiệu đối thoại tơng tự nhau. Tín hiệu
OPFBOBFA,
báo rằng
bộ đệm ra đã đầy cho ngoại vi biết CPU đã ghi dữ liệu vào cổng để chuẩn bị đa ra.
Tín hiệu này thờng nối với tín hiệu
STR
của thiết bị nhận.
Tín hiệu
ACKBACKA,
là tín hiệu của ngoại vi cho biết nó đã nhận đợc dữ liệu từ
các cổng PA, PB.
Tín hiệu INTRA, ITRB là tín hiệu yêu cầu ngắt từ PA, PB.
INTEA, INTEB là tín hiệu của một mạch lật bên trong 8255 để cho phép hoặc
cấm yêu cầu ngắt INTRA hoặc INTRB của PA hoặc PB.
INTEA đợc lập/xoá thông qua bit PC6
INTEB đợc lập/xoá thông qua bit PC2
Khi làm việc ở chế độ xuất thông tin mode 1, thanh ghi trạng thái của 8255 cung
cấp các thông tin phản ánh trạng thái hiện hành của mình
Sơ đồ ghép nối của 8255 ở mode 1
OBFA
(Output Bufer A full) Cổng A có dữ liệu rồi
Tìm hiểu một số linh kiện
7
PC6
PC3
PC1
PC2
PC0
PC7
PA0 ữ PA7
PB0 ữ PB7
PC4,5
INTEA
INTEB
OBFA
ACKA
OBFB
INRA
ACKB
INRB
I/O
RA
PC5
PC3
PC2
PC1
PC0
PC4
PA0 ữ PA7
PB0 ữ PB7
PC6,7
INTEA
INTEB
STBA
INTE
INRB
VàO
IBFA
STBB
IBFB
I/O
Tim boi : Báo cáo thực tập tốt nghiệp
OBFB
(Output Bufer B full) Cổng B có dữ liệu rồi
INTEA ( Interrupt Enable For PortA) cho phép PA chạy ở chế độ ngắt.
INTEB ( Interrupt Enable For PortB) cho phép PB chạy ở chế độ ngắt.
INTRA ( Interrupt PortA ) PA ngắt
INTRB ( Interrupt PortB ) PB ngắt
Nội dung thanh ghi trạng thái của 8255 ở mode 1 cho hớng ra:
D7 D6 D5 D4 D3 D2 D1 D0
OBFA
INTEA IO IO INTRA INTEB
OBFB
INTRB
Nhận dữ liệu vào trong mode 1
Khi nhận dữ liệuvào trong mode 1 các cổng PA, PB có tín hiệu đối thoại tơng tự
nhau:
STB
( cho phép chốt dữ liệu). Khi dữ liệu đã sẵn sàng trên kênh PA, PB ngoại vi
phải dung
STB
để báo cho 8255 biết để chốt dữ liệu vào cổng PA hoặc PB.
Sau khi 8255 chốt đợc dữ liệu do thiết bị ngoại vi đa đến, nó đa ra tín hiệu IBF
(In Buffer full) để báo cho ngoại vi biết.
Nội dung thanh ghi trạng thái của 8255 ở mode 1 cho hớng vào:
D7 D6 D5 D4 D3 D2 D1 D0
IO IO
OBFA
INTEA INTRA INTEB
OBFB
INTRB
8255 làm việc ở mode 2
Chế độ này chỉ dùng cho cổng PA với vào/ra 2 chiều các bit PC3 ữ PC7 dùng
làm tín hiệu đối thoại.
Mạch logic của 8255 ở mode 2 và các tín hiệu đối thoại:
Tìm hiểu một số linh kiện
8
PC3
PC7
PC6
PC5
PC4
PA0 ữ PA7
PB0 ữ PB7
PC0,2
ACKA
OBFA
INRA
I/O
Vào
INTE 1
INTE 2
IBFA
STBA
PC3
PC7
PC6
PC5
PC4
PA0 ữ PA7
PB0 ữ PB7
PC1
PC2
PC0
ACKA
OBFA
INRA
Ra
INTE 1
INTE 2
IBFA
STBA
INTRB
ACKA
OBFB
Tim boi : Báo cáo thực tập tốt nghiệp
Cổng PB có thể làm việc ở mode 1 hoặc mode 0 tuỳ theo bit điều khiển trong
thanh ghi CWR.
INTRA: yêu cầu ngắtcho dữ liệu 2 chiều vào/ra.
INTE 1, INTE 2: là là 2 tín hiệu của 2 mạch lật bên trong 8255 để cho phép hoặc
cấm yêu cầu ngắt của PA, các bit này đợc lập xoá bởi PC6 và PC4.
Khi dùng 8255 trong chế độ bus 2 chiều để trao đổi dữ liệu theo cách thăm dò,
phải kiểm tra xem bit IBFA có bằng 0 (đệm vào rỗng) hay không trớc khidùng lệnh
IN để nhận dữ liệu từ cổng PA.
Khi làm việc ở chế độ truyền thông tin 2 chiều của mode 2, thanh ghi trạng thái
của 8255 cung cấp các thông tin phản ánh trạng thái hiện hành của mình.
Nội dung thanh ghi trạng thái:
D7 D6 D5 D4 D3 D2 D1 D0
OBFA
INTE1 IBFA INTE2 INTRA x x x
Tìm hiểu một số linh kiện
9
Nhóm A
Nhóm B
Tim boi : Báo cáo thực tập tốt nghiệp
8254( 8253 )
Mạch định thời gian lập trình đợc 8254/8253 là một mạch phụ rất quan trọng
trong các hệ vi xử lý của Intel. Nó có thể đáp ứng đợc các yêu cầu ứng dụng khác
nhau trong hệ vi xử lý: đếm thời gian, đếm sự kiện, chia tần số, tạo ra dãy xung
Đặc điểm của 8254/8253:
Hoạt động ở tần số cực đại là 8MHz.
Nhờ dựa trên công nghệ CMOS nên đạt đợc tốc độ cao và tiêu thụ năng lợng
thấp.
Hoạt động ở chế độ hoàn toàn tĩnh.
Có 3 bộ đếm lùi ( Down- counter ) độc lập 16 bit.
Nguồn cung cấp từ 3Vữ 6V.
Có thể đếm nhị phân hoặc thập phân.
MSM82C53-2RS có 24 chân.
MSM82C53-2JS có 28 chân.
MSM82C53-2GS-VK có 32 chân.
Sơ đồ khối chức năng:
Chân chọn vỏ (CS) của vi mạch 8254/8253 phải đợc nối với đầu ra của một bộ
giải mã để định địa chỉ cơ bản cho mạch. Cùng với địa chỉ cơ bản, các chân địa chỉ
A1 và A0 sẽ cung cấp các địa chỉ cụ thể của các thanh ghi bên trong 8254/8253 khi
ghi ( lập trình ) hoặc đọc thông tin của mạch. Đó là thanh ghi cho 3 bộ đếm và một
thanh ghi cho từ điều khiển. Nội dung ban đầu của mỗi bộ đếm đều có thể lập trình
từ CPU để thay đổi đợc. Ngoài ra còn có thể điều khiển hoạt động của các bộ đếm
bằng tín hiệu từ bên ngoài qua các chân cửa ( GATE ) để cho phép bắt đầu đếm
( GATE = 1) hay để kết thúc quá trình đếm ( GATE = 0). Giá trị của bộ đếm có thể
đặt bằng byte hoặc word.
Truyền dữ liệu giữa bus dữ liệu( data bus ) và thanh ghi bên trong đợc mô tả bởi
bảng sau:
Tìm hiểu một số linh kiện
10
Counter
#0
Counter
#1
Counter
#2
Control
word
regisrer
Read/
Write logic
Data bus
buffer
CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 OUT2GATE2CLK2
Vcc GND
D7ữ D0
8
RDWR
A0 A1
CS
8