Tài liệu môn học: Ghép nối và ñiều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 31
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:
* Ðồ thị thời gian của chế ñộ hoạt ñộng này như sau :
Tài liệu môn học: Ghép nối và ñiều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 32
Ðồ thị thời gian quá trình ghi.
Trong chế ñộ 1, hai cổng A và B có thể ñược lập trình một cách riêng biệt là cổng vào
hoặc cổng ra ñể hoạt ñộng trong các ứng dụng vào /ra có hội thoại khác nhau. Các từ lệnh
hoạt ñộng trong chế ñộ này như sau:
3. Chế ñộ 2
Chế ñộ hoạt ñộng này cung cấp khả năng trao ñổi dữ liệu với các thiết bị ngoại vi sử
dụng một ñường truyền 8 bit ñể vừa truyền vừa nhận dữ liệu (Bus vào/ra hai chiều). Các
tín hiệu hội thoại ñược dùng trong chế ñộ này ñể ñiều khiển việc truyền dữ liệu cũng
tương tự như chế ñộ 1.
Các chức năng cơ bản của chế ñộ 2:
Tài liệu môn học: Ghép nối và ñiều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 33
- Trong chế ñộ này chỉ có nhóm A ñược sử dụng .
- Cổng A là cổng vào/ ra hai chiều 8 bit .
- Các tín hiệu vào/ra ñều ñược chốt lại.
- 5 bit của cổng C ñược sử dụng làm cổng ñiều khiển ,trạng thái cho cổng A 8 bit.
Các tín hiệu ñiều khiển ra
.
• OBF( Output buffer full )
Tín hiệu ra OBF ở mức thấp thông báo CPU khi dữ liệu ra cổng A.
• ACK (Acknowledge)
Mức thấp của tín hiệu vào này cho phép bộ ñệm ra bus dữ liệu của cổng A
gửi dữ liệu. Ngược lại, bộ ñệm ra này sẽ ở trạng thái trở kháng cao .
• INTE 1 ( Tín hiệu INTE phối hợp với tín hiệu OBF ).
Ðiều khiển bởi việc lập bit hoặc xoá bit PC4 .
Các tín hiệu ñiều khiển vào .
• STB (Srobe input ).
Mức thấp của tín hiệu vào này ñọc dữ liệu vào cổng vào chốt .
• IBF ( Input bufer Full ).
Mức cao của tín hiệu ra này chỉ ra rằng tín hiệu ñã ñược ghi vào cổng vào
chốt .
• INTE2 ( Tín hiệu INTE phối hợp với tín hiệu IBF)
Ðiều khiển bởi việc xoá /lập bit của PC4
Các từ lệnh hoạt ñộng trong chế ñộ này như sau :
Tài liệu môn học: Ghép nối và ñiều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 34
4. Chế ñộ kết hợp
Ngoài việc hoạt ñộng riêng rẽ theo từng chế ñộ, 8255 còn có khả năng hoạt ñộng ñồng
thời kết hợp các chế ñộ khi không phải tất cả các bit trong cổng C ñược sử dụng ñể ñiều
khiển hoặc dành cho trạng thái. Các bit còn lại có thể ñược sử dụng ñể thực hiện các chức
năng sau :
Khi ñược lập trình là các ñường vào tín hiệu
Tất cả các ñường vào tín hiệu ñều có thể ñược truy cập trong suốt quá trình ñọc cổng
C thông thường. Như trong hình vẽ minh hoạ sau :
Tài liệu môn học: Ghép nối và ñiều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 35
Khi ñược lập trình là các ñường tín hiệu ra
Các bit trong số các bit cao của cổng C ( PC7- PC4) phải ñược truy cập một cách riêng
rẽ bằng cách sử dụng chức năng xoá /lập bit.
Các bit trong số các bit thấp của cổng C có thể truy cập bằng chức năng xoá /lập bit
hoặc dùng 3 bit tương ứng ghi ra cổng C .
* Ðọc trạng thái cổng C.
Trong mode 0, cổng C truyền dữ liệu tới hoặc từ thiết bị ngoại vi. Khi 8255 ñược lập
trình hoạt ñộng trong mode 1 hoặc mode 2, cổng C ñược sử dụng ñể tạo ra hoặc nhận tín
hiệu hội thoại trao ñổi với thiết bị ngoại vi. Ðọc nội dung của cổng C cho phép người lập
trình kiểm tra trạng thái của các thiết bị ngoại vi và ñiều khiển quá trình trao ñổi dữ liệu.
Không có lệnh ñặc biệt nào dùng ñể ñọc thông tin trạng thái từ cổng C mà chỉ có thao tác
ñọc thông thường thực hiện chức năng này.
Tài liệu môn học: Ghép nối và ñiều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 36
5. 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:
Tài liệu môn học: Ghép nối và ñiều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 37
6. Chức năng ñiều khiển ngắt (Interrupt control )
Khi 8255 ñược lập trình hoạt ñộng ở chế ñộ 1 hoặc chế ñộ 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 .
2.3.3 Ghép nối với 8255A
Hình 2.9 trình bày một ví dụ một mạch GN 8255A với máy in, máy ñọc băng ở chế ñộ
0. Nửa thấp cửa C là cửa vào, dùng ñể ñọc các trạng thái
- PC
1
cho trạng thái bận của máy in.
- PC
0
cho trạng thái sẵn sàng của máy ñọc băng.
Nửa cao cửa C là cửa ra, dùng ñể ñưa ra tín hiệu ñiều khiển:
- PC
5
ñưa tín hiệu chốt số liệu cho máy in (qua bộ ñảo).
- PC
4
ñể dịch chuyển băng giấy ñi 1 vị trí về bên phải (qua bộ khuếch ñại ñảo).
Hình 2.10 mô tả mạch ghép nối với máy in ở chế ñộ 1. Các tín hiệu ñối thoại gồm:
- PC
4
tín hiệu ra ñể chốt số liệu, có thể dùng PC
7
(
A
OBF ) thay thế.
- PC
6
tín hiệu vào cho
ACK
, xác nhận ñã in số liệu.
- PC
3
dùng ñể yêu cầu ngắt chương trình, ñưa vào chân INTR của VXL.
Nhờ sử dụng chế ñộ 1, các tín hiệu PC
6,
PC
7
sẽ tự ñộng thu phát mà không cần lệnh
của chương trình, trừ PC
4
phải ñưa lệnh. Với việc nối vào INTR của VXL, chương trình
phục vụ ngắt không cần lệnh kiểm tra trạng thái của PC
6
.
Hình 2.9: Ví dụ GN 8255 ở chế ñộ 0.
VXL
Reset
0 7
D D÷
RD
WR
0
A
1
A
2 19
A A÷
8255
Reset
0 7
D D÷
RD
WR
0
A
1
A
Giải
mã ñịa
chỉ
Máy
in
0 7
PA PA÷
CS
5
PC
1
PC
Máy
ñục
băng
Data strobe
Busy
Busy
driver right
0 7
PB PB÷
0
PC
4
PC
Tài liệu môn học: Ghép nối và ñiều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 38
Hình 2.10: Ví dụ GN 8255 ở chế ñộ 1.
Hình 2.11: Ví dụ GN 8255 ở chế ñộ kết hợp.
Hình 2.11 mô tả ví dụ ghép nối 8255A ở chế ñộ 2 của cửa PA và chế ñộ 0 của cửa PB.
.
2.3.4 Lập trình cho 8255A
Vi mạch cổng song song lập trình ñược PPI 8255 có khả năng hoạt ñộng trong các chế
ñộ hoạt ñộng khác nhau các chế ñộ hoạt ñộng này có thể kết hợp ñược với nhau tạo khả
năng lập trình ñiều khiển hoạt ñộng một cách linh hoạt.
Khi viết chương trình cho 8255A hoạt ñộng, ta phải :
- Viết lưu ñồ thuật toán.
- Xác ñịnh từ ñiều khiển chế ñộ cho thanh ghi ñiều khiển, từ trạng thái cho từng
mạch cụ thể.
- Chương trình khởi phát bằng lệnh ghi vào thanh ghi ñiều khiển.
- ðưa nội dung các bít cho các cửa dùng ñể ñiều khiển TBNV.
- ðọc và kiểm tra trạng thái : là thanh ghi trạng thái nếu 8255 dùng ở chế ñộ 1,2; là
một cửa ghi trạng thái TBNV nếu ở chế ñộ 0.
- ðưa số liệu vào hay ghi số liệu ra các cửa.
VXL
Reset
0 7
D D÷
RD
WR
0
A
1
A
2 19
A A÷
8255
Reset
0 7
D D÷
RD
WR
0
A
1
A
Giải
mã ñịa
chỉ
DAC
0 7
PA PA÷
CS
ADC
2
PB
3
PB
0 7
D D÷
Chốt số liệu
Cho phép ñưa ra
Chốt số liệu
Cho phép trích mẫu
0 7
D D÷
0
PB
1
PB
Lối ra
tương tự
Lối vào
tương tự
VXL
0 7
D D÷
8255
0 7
D D÷
ACK
Máy in
0 7
PA PA÷
4
PC
6
PC
Data strobe
7
PC
3
PC
INTR
INTR
A
INTA
A
OBF