Tài liệu Vi xử lý - Chương 4: Tổ chức nhập/xuất - Phạm Hùng Kim Khánh

1. Các mạch phụ trợ 8284 và 8288

1.1. Mạch tạo xung nhịp 8284

Mạch tạo xung nhịp dùng để cung cấp xung nhịp cho µP

CSYNC (Clock Synchronisation): ngõ vào xung đồng bộ chung khi hệ thống có

các 8284 dùng dao động ngoài tại chân EFI. Khi dùng mạch dao động trong thì phải

nối đất.

PCLK (Peripheral Clock): xung nhịp f = fX/6 (fX là tần số thạch anh)

AEN1, AEN2 (Address Enable): cho phép chọn các chân RDY1, RDY2 báo

hiệu trạng thái sẵn sàng của bộ nhớ hay thiết bị ngoại vi

pdf30 trang | Chuyên mục: Vi Xử Lý – Vi Điều Khiển | Chia sẻ: yen2110 | Lượt xem: 349 | Lượt tải: 1download
Tóm tắt nội dung Tài liệu Vi xử lý - Chương 4: Tổ chức nhập/xuất - Phạm Hùng Kim Khánh, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 Chỉ đến vị trí chứa các ký tự 
MOV SI, DX 
ADD SI,2 
next: LODSB ; Lấy ký tự từ bộ nhớ 
 CMP AL,0 ; Nếu không còn ký tự nào 
 JNE cont ; thì kết thúc 
 JMP exit 
cont: MOV AH,AL ; Lưu ký tự vừa đọc 
 MOV DX,0FEh 
status: IN AL,DX ; Đọc vào từ Port C 
 AND AL,02h ; Chỉ nhận PC1 
 JE status ; Nếu máy in không sẵn sàng thì chờ 
 MOV AL,AH 
 MOV DX,0FDh ; Xuất ký tự đã nhận ra 
 OUT DX,AL ; máy in (Port B) 
 JMP next ; Xử lý ký tự kế tiếp 
exit: RET 
™ Mô tả chương trình: 
- Ta sử dụng 8255A trong phần thiết kế này cho phép 2 hoạt động: xuất ra 
máy in và lấy dữ liệu vào từ bàn phím. Giao tiếp với máy in dùng kiểm 
tra trạng thái và giao tiếp bàn phím dùng ngắt. 
- Trong chương trình con PRINT, ký tự được đặt trong thanh ghi tích luỹ 
A và trạng thái đọc từ Port C. Ban đầu Port B trống, bit PC1 ( BOBF ) ở 
mức cao. Ta thực hiện lệnh OUT gởi dữ liệu ra Port B. Tín hiệu BOBF 
sẽ xuống mức thấp do tác động cạnh lên của tín hiệu WR , xác định rằng 
dữ liệu đã gởi ra máy in. Sau khi nhận byte dữ liệu, máy in gởi trở lại tín 
hiệu ACK xác định đã nhận. Tín hiệu ACK làm cho BOBF ở mức cao 
xác định máy in sẵn sàng nhận ký tự kế tiếp và chương trình con PRINT 
tiếp tục thực hiện cho đến khi không còn ký tự nào trong vùng nhớ. 
- Nếu một phím được nhấn khi chương trình con PRINT đang thực thi, 
byte dữ liệu truyền tới Port A và ASTB xuống mức thấp, đặt IBFA lên 
mức cao. Khi ASTB trở lại mức cao thì sẽ tạo ra INTRA. Tín hiệu này 
tạo ngắt đến µP và điều khiển được chuyển đến chương trình phục vụ 
ngắt. Chương trình này sẽ đọc nội dung Port A, cho phép ngắt và quay 
về chương trình con PRINT. 
Tài liệu vi xử lý Tổ chức nhập / xuất 
Phạm Hùng Kim Khánh Trang 97 
2.4.7.3. Truyền dữ liệu giữa hai microprocessor trong 
xử lý phân bố dùng 8255A ở Mode 2 
Ta thiết kế mạch giao tiếp để truyền dữ liệu hai chiều dạng chủ – tớ (master – 
slave) giữa hai µP. 
Hình 4.18 chỉ sơ đồ khối thiết lập thông tin hay chiều giữa chủ và tớ . Sơ đồ 
khối chỉ hai data bas hai chiều – chủ và tớ – được nối với nhau thông qua 8225A, 
trong đó 8225A làm việc như thiết bị giao tiếp của µP chủ. Port A của 8225A được 
dùng để truyền dữ liệu hai chiều và 4 tín hiệu từ port C được dùng để bắt tay. Quá 
trình truyền dữ liệu tương tự như Mode 1 của 8225A. Khi µP chủ ghi 1 byte dữ liệu 
vào 8225A tín hiệu OBF xuống mức thấp để báo cho µP tớ biết là đã gởi dữ liệu vào, 
µP tớ sẽ báo nhận được khi nó đọc byte dữ liệu này. Tương tự, hai tín hiệu bắt tay 
khác được dùng khi µP tớ truyền 1 byte dữ liệu đến µP chủ. 
µP chủ đòi hỏi các port I/O dùng để đọc và ghi dữ liệu và kiểm tra trạng thái 
của các tín hiệu bắt tay. Tương tự, µP tớ cần các port I/O để thực hiện Đọc và Ghi. 
Truyền dữ liệu có thể được thực hiện bằng cách kiểm tra trạng thái hay dùng ngắt. Tốc 
độ xử lý dữ liệu đối với µP chủ quan trọng hơn nên thường dùng µP chủ ở chế độ ngắt 
và µP tớ ở chế độ kiểm tra trạng thái. Ở ví dụ này, ta sẽ dùng cả 2 µP ở chế độ kiểm 
trạng thái. 
Các hoạt động truyền dữ liệu giữa 2 I/O kiểm tra trạng thái có thể liệt kê như 
sau: 
™ Truyền dữ liệu từ µP chủ đến µP tớ: 
1. µP chủ đọc trạng thái của OBF để kiểm tra xem µP tớ đã đọc dữ liệu chưa. 
Đây là chức năng nhập cho µP chủ. 
2. µp chủ ghi dữ liệu vào Port A và 8225A báo cho µP tớ biết bằng cách đưa 
tín hiệu OBF xuống mức thấp. Đây là chức năng xuất của µP chủ. 
Hình 4.18 – Thông tin 2 chiều giữa 2 µP dùng 8255A 
PA7 ÷ PA0
PC4
PC5
PC3
PC7
PC6
STB 
IBF 
INTR 
OBF 
ACK 
CS
RD
WR
µP chủ 
Giải 
mã 
µP tớ 
Tài liệu vi xử lý Tổ chức nhập / xuất 
Phạm Hùng Kim Khánh Trang 98 
3. µP tớ kiểm tra tín hiệu OBF (từ µP chủ) để xác định tính sẵn sàng của dữ 
liệu. Đây là chức năng nhập đối với µP tớ. 
4. µP tớ đọc dữ liệu từ Port A và báo cho biết đã nhận được bằng cách đưa tín 
hiệu ACK xuống mức thấp . Đây là chức năng nhập đối với µP tớ. 
™ Truyền dữ liệu từ µP tớ dến µp chủ: 
1. µP tớ kiểm tra tín hiệu bắt tay IBF để xem port A có sẵn sàng truyền dữ liệu 
hay không để truyền 1 byte . Đây là chức năng nhập đối với µP tớ . 
2. µP đặt byte dữ liệu lên data bus và báo cho 8225A biết rằng sẵn sàng gởi dữ 
liệu bằng cách dùng tín hiệu STB . Đây là chức năng xuất đối vói µP tớ. 
3. 8225A đưa IBF lên mức cao, µP chủ đọc tín hiệu này để xác định dữ liệu 
sẵn sàng chưa . Đây là chức năng nhập đối với µP chủ . 
4. µP chủ đọc byte dữ liệu . Đây là chức năng nhập đối với µP chủ. 
™ Kết nối phần cứng: 
Hình 4.19 cho thấy sơ đồ kết nối các port cần thiết và logic chọn chip cho 
8255A. µP chủ thực hiện giải mã chọn 8255A dùng cổng NAND 8 ngõ vào nên 8255A 
được chọn khi tất cả các ngõ vào của cổng NAND đều ở mức 1. Từ đó, ta có các địa 
chỉ Port của 8255A đối với µP chủ là: 
 PA: FCh 
 PB: FDh 
 PC: FEh 
 CR: FFh 
2
3
1
74LS30
1
2
3
4
5
6
11
12
8
+5V
+5V
uP-Master
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
IOR
IOW
2
3
1
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
uP-Slav e
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
IOR
IOW
74LS365
2
4
6
10
12
14
1
15
3
5
7
9
11
13
A1
A2
A3
A4
A5
A6
G1
G2
Y1
Y2
Y3
Y4
Y5
Y6
2
3
1
74LS138
1
2
3
6
4
5
15
14
13
12
11
10
9
7
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
+5V
Hình 4.19 – Thông tin hai chiều giữa µP chủ và µP tớ 
Ph
ạm
 H
ùng Kim
 K
hánh 
Trang 99 
Tài liệu vi xử l ý 
T
ổ chức nhập / xuất 
Tài liệu vi xử lý Tổ chức nhập / xuất 
Phạm Hùng Kim Khánh Trang 100 
Port A được sử dụng ở Mode 2 dùng 4 tín hiệu từ Port C. µP chủ kiểm tra các 
tín hiệu ACK và STB bằng cách đọc các bit trạng thái OBF và IBF ở Port C. 
Hai tín hiệu bắt tay khác - OBF và IBF – được nối tương ứng với các bit D7 và 
D0 của data bus của µP tớ thông qua bộ đệm 3 trạng thái 74LS365. Logic giải mã cho 
các đường tín hiệu tại Port C chính là bộ giải mã 3 sang 8 74LS138. Giả sử các đường 
logic không sử dụng (A3 và A4) ở mức 0, 8 đường ra của bộ giải mã sẽ cho phép vùng 
địa chỉ 80h ÷ 87h (Bảng 4.6). Hai đường ra của bộ giải mã được kết hợp với tín hiệu 
điều khiển IOR để tạo ra 2 xung chọn thiết bị nhận (85h và 87h). Xung chọn thiết bị 
nhập 87h được dùng để đọc trạng thái ở các đường dữ liệu D7 và D0. Đường giải mã 
có địa chỉ 80h được kết hợp với IOW để tạo tín hiệu STB . 
Bảng 4.6: 
A7 A6 A5 A4 A3 A2 A1 A0 Chân giải mã Địa chỉ hex 
1 0 0 0 0 0 
0 
0 
0 
1 
1 
1 
1 
0 
0 
1 
1 
0 
0 
1 
1 
0 
1 
0 
1 
0 
1 
0 
1 
Y0 
Y1 
Y2 
Y3 
Y4 
Y5 
Y6 
Y7 
80h 
81h 
82h 
83h 
84h 
85h 
86h 
87h 
™ Từ điều khiển mode 2: 
D7 D6 D5 D4 D3 D2 D1 D0 
1 1 0 0 0 0 0 0 = C0h 
I/O Mode 2 Không sử dụng 
™ Từ trạng thái mode 2: 
Trạng thái của hoạt động I/O ở Mode 2 có thể kiểm rta bằng cách đọc nội dung 
Port C. 
D7 D6 D5 D4 D3 D2 D1 D0 
AOBF INTE1 IBFA INTE2 INTRA X X X 
Trạng thái của tín hiệu OBF được kiểm tra bằng cách đọc bit D7 và trang thái 
của IBF kiểm tra bằng bit D0. 
™ Các tác vụ Đọc và Ghi của µP tớ: 
Một byte dữ liệu có thể được đọc bởi µP tớ từ Port A bằng cách gởi một xung 
chọn thiết bị tác động mức thấp đến tín hiệu ACK , không cần xây dựng Port nhập. 
Tương tự, một byte dữ liệu có thể được ghi vào µP bằng cách đưa tín hiệu STB xuống 
thấp. 
Tài liệu vi xử lý Tổ chức nhập / xuất 
Phạm Hùng Kim Khánh Trang 101 
™ Lưu đồ giải thuật: 
™ Chương trình: 
¾ Đoạn chương trình chủ: (Master program) 
MOV SP,stack1 
MOV SI,master ; Địa chỉ các byte cần xuất 
MOV CX,byte_no ; Số byte cần xuất 
MOV AL,0C0h ; Từ điều khiển 
MOV DX,0FFh ; Địa chỉ thanh ghi điều khiển 
OUT DX,AL 
Begin 
Khởi động 8255A 
Xác định vị trí các ô nhớ 
Đọc Port C xác định OBF 
OBF cao? 
Xuất byte 
Đã truyền hết? 
Đọc byte 
End 
Y 
N 
Y 
N 
Chương trình chủ 
Begin 
Khởi động 8255A 
Xác định vị trí các ô nhớ 
Đọc Port C xác định OBF 
OBF thấp? 
Cất byte 
Đã nhận hết? 
Đọc byte 
End 
Y 
N 
Y 
N 
Chương trình tớ 
Tài liệu vi xử lý Tổ chức nhập / xuất 
Phạm Hùng Kim Khánh Trang 102 
next: MOV DX,0FEh ; Địa chỉ Port C 
wait: IN AL,DX ; Đọc vào từ Port C 
 AND AL,80h ; Kiểm tra OBF 
 JNE wait ; Chờ đến khi OBF = 0 
 LODSB ; Đọc byte 
 MOV DX,0FCh ; Xuất byte vừa đọc 
 OUT DX,AL ; ra Port A 
 LOOP next ; Nếu còn byte truyền thì tiếp tục 
 END 
¾ Đoạn chương trình tớ: (Slave program) 
MOV ES,stack2 
MOV DI,slave ; Địa chỉ các byte sẽ lưu 
MOV CX,byte_no ; Số byte cần nhận 
next: MOV DX,87h 
wait: IN AL,DX ; Đọc OBF 
 AND AL,80h ; Kiểm tra OBF 
 JE wait ; Chờ đến khi OBF = 1 
 MOV DX,85h 
 IN AL,DX ; Đọc dữ liệu 
 STOSB ; Cất vào ô nhớ 
 LOOP next ; Nếu còn byte truyền thì tiếp tục 
 END 
- Ta thấy rằng cả hai chương trình sẽ kiểm tra trạng thái OBF. Chương 
trình chủ đợi cho đến khi OBF lên mức cao sẽ ghi một byte vào Port A. 
Ngược lại, chương trình tớ đợi cho đến khi OBF xuống mức thấp thì sẽ 
đọc dữ liệu. 
- Khi µP chủ ghi một byte dữ liệu, nó sẽ chốt tại Port A và byte dữ liệu 
được đặt trên data bus của µP tớ khi ACK xuống mức thấp. 
- Hai chương trình trên chỉ cho phép truyền một khối dữ liệu từ µP chủ 
đến µP tớ nhưng không thể truyền ngược lại. Để chuyển một khối dữ 
liệu từ µP tớ đến µP chủ, cần phải đọc tín hiệu IBF. µP chủ đợi cho đến 
khi IBF = 1 thì sẽ đọc một byte dữ liệu còn µP tớ đợi cho đến khi IBF = 
0 thì ghi một byte dữ liệu. 
- Giản đồ thời gian ở hình 3.4.16 cho thấy tín hiệu INTR dùng để truyền 
dữ liệu bằng ngắt. Trong ví dụ này, ta không sử dụng ngắt. 
Tài liệu vi xử lý Tổ chức nhập / xuất 
Phạm Hùng Kim Khánh Trang 103 
WR 
OBF 
ACK 
STB 
RD 
INTR 
IBF 
Bus ngoại 
vi 
Data từ ngoại 
vi đến 8255A Data từ 8255A đến 
ngoại vi 
Data từ 8255A 
đến µP 
Hình 4.20 – Giản đồ thời gian ở Mode 2 

File đính kèm:

  • pdftai_lieu_vi_xu_ly_chuong_4_to_chuc_nhapxuat_pham_hung_kim_kh.pdf