III. Cấu Trúc Bên Trong và Hoạt Động Của Vi Mạch 8255
3. Từ Điều Khiển
Từ điều khiển là dữ liệu được gởi tới thanh ghi điều khiển. Giá trị của từ điều khiển sẽ xác định cấu hình làm việc cho các cổng của 8255A, đó là việc lựa chọn chức năng nhập hay xuất của các cổng.
a. Cấu trúc của từ điều khiển:
Do các cổng của 8255A được chia làm hai nhóm nên từ điều khiển cũng được chia làm hai nhóm điều khiển tương ứng.
Các bit D3, D4, D5, D6 dùng để xác định cấu hình cho nhóm A: - Bit D3 dùng để thiết lập 4 bit cao của cổng C.
D3 = 0 cổng C là cổng xuất dữ liệu. D3 = 1 cổng C là cổng nhập dữ liệu. - Bit D4 dùng để thiết lập cổng A.
D4 = 0 cổng A là cổng xuất dữ liệu. D4 = 1 cổng A là cổng nhập dữ liệu.
D6D5 = 00 : nhóm A hoạt động ở mode 0. D6D5 = 01 : nhóm A hoạt động ở mode 1. D6D5 = 1x : nhóm A hoạt động ở mode 2.
Các bit D0, D1, D2 dùng để xác định cấu hình cho nhóm B. - Bit D0 dùng để thiết lập 4 bit thấp của cổng C.
D0 = 0 cổng C là cổng xuất dữ liệu. D0 = 1 cổng C là cổng nhập dữ liệu. - Bit D1 dùng để thiết lập cổng B.
D1 = 0 cổng B là cổng xuất dữ liệu. D1 = 1 cổng B là cổng nhập dữ liệu.
- Bit D2 dùng thiếp lập mode điều khiển của nhóm B. D2 = 0 : nhóm B hoạt động ở mode 0.
D2 = 1 : nhóm B hoạt động ở mode 1.
GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng
D7D6D5D4D3D2D1D0 Đặt trạng thái cờ. Nhóm B Nhóm A Cổng C (4 bit thấp) 1 = Input 0 = OutputCổng B 1 = Input 0 = OutputMode select 1 = mode 0 0 = mode 1 Cổng C (4 bit cao) 1 = Input 0 = OutputCổng A 1 = Input 0 = OutputMode select 00 = mode 0 01 = mode 1 1x = mode 2
b. Cơ chế hoạt động các cổng của 8255A ở các trạng thái.
* Nhóm A và Nhóm B cấu hình ở mode 0.
Khi được định ơ cấu hình này, các cổng của hai nhóm hoạt động xuất hoặc nhập dữ liệu độc lập với nhau.
Từ điều khiển:
1 0 0 D4 D3 0 D1 D0
Với D0, D1. D3, D4 tùy chọn theo yêu cầu của người sử dụng.
* Nhóm A được cấu hình ở mode 1.
Ở mode 1, các cổng làm việc có chốt (Strobed I/O), thiết bị giao tiếp muốn 8255A nhận dữ liệu thì thiết bị đó phải tạo ra một tín hiệu yêu cầu 8255A nhận dữ liệu và ngược lại, 8255A muốn gởi dữ liệu cho một thiết bị khác thì nó phải gởi 1 tín hiệu yêu cầu thiết bị đó nhận dữ liệu, tín hiệu đó gọi là tín hiệu chốt.
+ Khi cổng A được cấu hình là cổng nhập dữ liệu, chức năng các đường tín hiệu được trình bày như hình vẽ:
Từ điều khiển :
1 0 1 1 D3 x x x
Hình 6.4 : Chức năng các đường tín hiệu khi cổng A là cổng nhập dữ liệu
Các đường tín hiệu của cổng C trở thành các đường điều khiển của cổng A.
Trong đó :
Bit INTEA(Interrupt Enable) được thiết lập mức logic dưới sự điều khiển của phần mềm dùng cấu trúc Set/Reset của 8255A.
Bit PC4 trở thành bit STBA (Strobed Input, tác động mức thấp), được dùng để chốt các dữ liệu ở các ngõ vào PA0 – PA7 vào mạch chốt bên trong.
RD\ PC4 PC5 PC3 PC6,7 PA0–PA7 INTE A STBA\ IBFA INTRA I/O
Bit PC5 trở thành bit IBFA (Input Buffer Full, tác động mức cao), dùng để báo cho bên ngoài biết dữ liệu đã được chốt bên trong.
Bit PC3 trở thành bit INTRA (Interrupt Request, tác động mức cao), bit này có mức logic 1 khi bit STRA = 1, bit IBFA = 1 và bit INTEA = 1. Thông thường bit này dùng để tác động vào ngõ vào ngắt của vi xử lý để báo cho vi xử lý biết : dữ liệu mới đã xuất hiện ở ngõ vào.
Các bit PC6, PC7của cổng C là các bit xuất/ nhập bình thường tùy thuộc vào từ điều khiển trong thanh ghi điều khiển. Còn cổng B được điều khiển bằng các bit D0 – D2 trong thanh ghi điều khiển (nếu cổng B hoạt động ở mode 1 thì các bit PC0 – PC2 là các bit điều khiển).
+ Cổng A được cấu hình là cổng xuất dữ liệu.
Chức năng các đường tín hiệu được trình bày ở hình vẽ: Từ điều khiển :
1 0 1 0 D3 X x x
Hình 6.5 : Chức năng các đường tín hiệu khi cổng A là cổng xuất dữ liệu
Bit PC7trở thành bit OBFA (Output Buffer Full, tác động mức thấp), khi có dữ liệu từ vi xử lý gởi ra cổng A, tín hiểu OBF sẽ yêu cầu thiết bị bên ngoài nhận dữ liệu.
Bit PC6 trở thành bit ACKA (Acknowledge Input, tác động mức thấp), thiết bị nhận dữ liệu dùng tín hiệu này để báo cho 8255A biết dữ liệu đã được nhận và sẵn sàng nhận dữ liệu mới.
Bit PC3 trở thành bit INTRA (Interrupt Request, tác động mức cao), bit này có mức logic bằng 1 khi bit OBFA = 1, ACKA = 1 và bit INTEA = 1. Tín hiệu INTRA tác động đến ngõ vào ngắt của vi xử lý để báo cho vi xử lý biết thiết bị bên ngoài đã nhận dữ liệu từ cổng A.
Các bit PC4, PC5 vẫn là bit nhập/ xuất dữ liệu bình thường tùy thuộc vào từ điều khiển. Các bit D0 – D2 trong thanh ghi điều khiển dùng để thiết lập cấu hình cho cổng B.
* Nhóm B được cấu hình ở mode 1.
WR\ PC7 PC6 PC3 PC4,5 PA0–PA7 INTE A OBFA\ ACKA\ INTRA I/O
+ Cổng B được cấu hình là cổng nhập dữ liệu.
WR\ PC1 PC2 PC0 PB0–PB7 INTE B OBFB\ ACKB\ INTRB Từ điều khiển : 1 x x x X 1 1 x
Hình 6.6 : Chức năng các đường tín hiệu khi cổng B là cổng nhập dữ liệu
Chức năng của các bit điều khiển giống như khi nhóm A hoạt động ở mode 1 và cổng A được cấu hình là cổng nhập dữ liệu.
+ Cổng B được cấu hình là cổng xuất dữ liệu.
Chức năng các đường tín hiệu được trình bày như hình vẽ :
Từ điều khiển:
1 x X x x 1 0 x
Hình 6.7 : Chức năng các đường tín hiệu khi cổng B là cổng xuất dữ liệu
Chức năng của các từ điều khiển giống như khi nhóm A hoạt động ở mode 1 và cổng A được cấu hình là cổng xuất dữ liệu.
* Nhóm A được cấu hình ở mode 2.
Mode 2 là kiểu hoạt động strobed bi-directional IO : có hai chức năng nhập xuất dữ liệu.
Từ điều khiển khi nhóm A được cấu hình ở mode 2 và chức năng của các đường tín hiệu được trình bày ở hình vẽ:
RD\ PC2 PC1 PC0 PB0–PB7 INTE B STBB\ IBFB INTRB
Từ điều khiển :
1 0 1 1 D3 x x x
Hình 6.8: Chức năng các đường tín hiệu khi nhóm A hoạt động ở mode 2
Các đường tín hiệu của cổng C trở thành các đường điều khiển của cổng A.
Bit PC7trở thành bit OBFA, PC6 trở thành bit ACKA, PC4 trở thành bit STBA, PC5 trở thành bit IBFA và bit PC3 trở thành bit INTRA, chức năng của các bit điều khiển giống như ở mode 1, chỉ khác tín hiệu INTRA = 1 khi OBFA = 1 và INTE1 = 1 hoặc IBFA = 1 và INTE2 = 1.
Các bit PC0 – PC2 là các bit nhập xuất dữ liệu bình thường tùy thuộc vào từ điều khiển trong thanh ghi điều khiển.
Một chú ý cần thiết là khi nhóm A được cấu hình ở mode 2 thì nhóm B chỉ được cấu hình ở mode 0.