Chương 2: GIAO DIỆN GHÉP NỐI VỚI MÁY TÍNH
I. Sự giải mã đòa chỉ và kết nối bus dữ liệu:
Vùng vào/ra của máy tính PC đã chiếm giữ 64KByte của bộ
nhớ tổng cộng với dung lượng hàng vài MByte trở lên. Vì vậy
vùng vào/ra của một card mở rộng không được phép bao trùm
lên vùng đòa chỉ vào/ra của máy tính. Khi đưa một card mở rộng
vào sử dụng thì việc đầu tiên phải lưu ý chính là đòa chỉ hoạt
động của card này. Dưới đây là sự sắp xếp của vùng đòa chỉ
vào/ra của máy tính PC/AT.
Đòa chỉ vào/ra
(HEX)
Chức năng
000 – 01F Bộ điều khiển DMA 1 (8237)
020 – 03F Bộ điều khiển ngắt 1 (8259)
040 – 047 Bộ phát thời gian (8254)
060 – 06F Bộ kiểm tra bàn phím (8042)
070 – 07F Thanh ghi mặt nạ NMI (non
maskable interrupt)
080 – 09F Thanh ghi trang DMA (74LS612)
0A0 – 0BF Bộ điều khiển ngắt 2 (8259)
0C0 – 0DF Bộ điều khiển DMA 2 (8237)
0E0 – 0EF Dự trữ cho main board
0F8 – 0FF Bộ đồng xử lý toán học 80x87
1F0 – 1F8 Bộ điều khiển đóa cứng
200 – 20F Cổng dùng cho trò chơi (Joystick)
278 – 27F Cổng song song 2 (LPT2)
2B0 – 2DF Card EGA 2
2E8 – 2EF Cổng nối tiếp 4 (COM4)
2F8 – 2FF Cổng nối tiếp 2 (COM2)
300 – 31F Dùng cho card mở rộng
320 – 32F Đóa cứng
360 – 36F Cổng nối mạng (LAN)
378 – 37F Cổng song song 1 (LPT1)
380 – 38F Cổng nối tiếp đồng bộ 2
3A0 –3AF Cổng nối tiếp đồng bộ 1
3B0 – 3B7 Màn hình đơn sắc (Hercule)
3C0 – 3CF Card EGA
3D0 – 3DF Card CGA
3E8 – 3EF Cổng nối tiếp 3 (COM3)
3F0 – 3F7 Bộ điều khiển đóa mềm
3F8 – 3FF Cổng nối tiếp 1 (COM1)
Từ bảng trên ta thấy các đòa chỉ 300
H
đến 31F
H
đã được dự
đònh để dùng cho các card mở rộng. Các đường đòa chỉ được sử
dụng đối với vùng này là A0 đến A9. Thông thường thì các đòa
chỉ này là cố đònh và tại các đòa chỉ này máy tính trao đổi dữ
liệu với card mở rộng. Nhiệm vụ của card được gắn vào là so
sánh các đường dẫn đòa chỉ ở máy tính với các đòa chỉ đã được
thiết lập xem có thống nhất không và thông báo sự đánh giá ở
một bộ điều khiển logic. Chỉ khi có sự thống nhất đòa chỉ một
cách chính xác mới có thể tiến hành việc trao đổi dữ liệu với
máy tính.
Thông thường thì trên một card mở rộng có nhiều khối chức
năng như: bộ biến đổi A/D, bộ biến đổi D/A, khối xuất/nhập dữ
liệu số, các khối này được trao đổi dưới những đòa chỉ khác
nhau từ máy tính. Dưới đây là một mạch giải mã điển hình
thường gặp trên các card mở rộng:
Bộ giải mã đòa chỉ 74HC688 so sánh các đườnng dẫn đòa chỉ
A2 đến A9 xem có thống nhất với các đòa chỉ cơ bản được thiết
lập trên card mở rộng bằng chuyển mạch DIP. 74HC688 so sánh
hai trong số 8 bit xem có giống nhau không và khi các bit xếp kề
sát đồng nhất sẽ tạo ra một tín hiệu [0] ở chân 19 (P = Q). Ngoài
sự so sánh đó, nó còn qui đònh về quyền sử dụng một lối vào
được kích hoạt /G. Chừng nào mà chân này còn ở mức [1] thì tín
hiệu lối ra của bộ so sánh vẫn giữ nguyên mức [1] độc lập với
mức logic xếp kề sát. Bình thường thì chân này được nối với tín
hiệu AEN. Chỉ khi tín hiệu này ở mức [0] thì các dữ liệu có giá
trò mới nằm trên bus. Do được chế tạo bằng công nghệ CMOS
các đường
dữ liệu
/CS0
/CS1
/CS2
/CS3
/CS4
/CS5
/CS6
/CS7
đọc
viết
thì đối với các tín hiệu của bus PC, linh kiện này thực tế tỏ ra là
không tải.
Mạch logic của bộ giải mã sinh ra từ các đường đòa chỉ A0
và A1, tín hiệu đánh giá của bộ so sánh đòa chỉ và hai tín hiệu
/IOR, /IOW các tín hiệu lựa chọn đối với các đòa chỉ A0 và A1
cho phép trao đổi với bốn chức năng khác nhau khi đọc vào
hoặc khi ghi, card mở rộng cũng chiếm bốn đòa chỉ.
Mạch logic của bộ giải mã có chứa hai vi mạch 74HC00 và
74HC138. Ba cổng NAND làm cho bộ đệm bus 74HC245 sau
đấy chỉ được kích hoạt (/G = [0]) khi các điều sau được thực
hiện: thứ nhất là card mở rộng cắm thêm vào đã trao đổi được
(chân 19 của của vi mạch 74HC688 bằng [0]) và thứ hai là một
chu trình đọc hoặc là chu trình ghi được thực hiện (/IOR = [0]
hoặc là /IOW = [0]). Khi mà chỉ một điều kiện không được thực
hiện thì chân ra /G của 74HC245 giữ nguyên là [1] và bộ đệm
bus dừng lại trong trạng thái điện trở cao.
Ngoài ra, mạch logic của bộ giải mã còn có chứa một linh
kiện đặc biệt làm đơn giản đáng kể cho bộ mã. Vi mạch
74HC138 có chứa một bộ giải mã 1 trong 8 với ba tín hiệu lựa
chọn chip. Nhờ một con số nhò phân, ở linh kiện này ta có thể
lựa chọn đúng lối ra từ trong số tám lối ra. Lối ra đã được lựa
chọn sau đó sẽ nhận mức [0], trong khi tất cả các lối khác vẫn
giữ nguyên mức logic [1]. Trong mạch điện được minh họa trên,
các bit đòa chỉ A0 và A1 cũng như tín hiệu /IOR đặt đến các lối
vào đòa chỉ A, B và C.
Bộ giải mã logic đảm nhiệm đồng thời sự điều khiển của bộ
đệm bus hai chiều 74HC245, bộ này nối các đường dữ liệu của
rãnh cắm PC với các đường của card mở rộng. Sự nối ghép này
là rất quan trọng, nhờ vậy mà các mức tín hiệu trên đường dữ
liệu không bò ảnh hưởng lẫn nhau. Nó chứa 8 bộ đệm với các lối
ra ba trạng thái (Tri-state) để trao đổi thông tin giữa các đường
dữ liệu theo hai hướng. Hướng được xác đònh bằng mức logic ở
ngõ vào DIR: DIR = [0]: chuyển dữ liệu B
A, và ngược lại
khi DIR = [1]: chuyển dữ liệu A
B. Việc chuyển hướng dữ
liệu cho phép quản lý một cách đơn giản nhất bằng tín hiệu
/IOR, ta có thể nối trực tiếp đến chân DI R. Dó nhiên là cổng dữ
liệu A được nối với các đường dữ liệu của rãnh cắm PC và cổng
dữ liệu B với đường dẫn dữ liệu của card mở rộng. Vì thế đảm
bảo rằng bộ đệm bus 74HC245 chỉ sắp xếp những dữ liệu trên
bus dữ liệu của máy tính PC.
Các tín hiệu lựa chọn chip CS0 đến CS7 có thể được sử
dụng để lựa chọn các khối chức năng khác nhau. Bằng bốn tín
hiệu CS0 đến CS3 có thể điều khiển các khối ngoại vi để đọc
các dữ liệu. Cũng tương tự như vậy các tín hiệu CS4 đến CS7
đóng vai trò kích hoạt khối ngoại vi cần nhập các dữ liệu từ máy
tính PC.
. đóa cứng
20 0 – 20 F Cổng dùng cho trò chơi (Joystick)
27 8 – 27 F Cổng song song 2 (LPT2)
2B0 – 2DF Card EGA 2
2E8 – 2EF Cổng nối tiếp 4 (COM4)
2F8 – 2FF Cổng. (74LS6 12)
0A0 – 0BF Bộ điều khiển ngắt 2 ( 825 9)
0C0 – 0DF Bộ điều khiển DMA 2 ( 823 7)
0E0 – 0EF Dự trữ cho main board
0F8 – 0FF Bộ đồng xử lý toán học 80x87
1F0