Card giao tiếp sẽ được gắn vào Slot trên mainboard của máy tính, nên các bus của card phải tuân theo kích thước chuẩn.
Khi card được cắm vào máy, phải đảm bảo không được phá hủy các bus nội và các vi mạch trên mainboard của máy. Địa chỉ của card được chọn sao cho không bị trùng với địa chỉ của các ngoại vi khác để tránh hiện tượng tranh giành bus do giải mã địa chỉ gây ra.
Hãng IBM đã phát triển giao tiếpISA cho các máy tính AT dùng vi xử lý 80286. Bus ISA có dộ rộng bus số liệu 2 byte = 16 bit do đó có thể truyền dược hai byte này trong một nhịp đồng hồ hay tốc độ truyền tải tối đa có thể đạt được tới 16,66 Mbyte/giây. Bus địa chỉ cũng được mở rộng lên tới 24 bit do vậy có thể quản lý được tới 16 Mbyte địa chỉ bộ nhớ. Khe cắm ISA là một khe cắm PC cộng thêm một khe cắm hai hàng chân nữa gồm 32 tiếp điểm tương ứng 64 chân, bao gồm bus dữ liệu D0- D7, bus địa chỉ A0 - A19, các tín hiệu điều khiển IOR, IOW, MEMR, MEMW và một số tín hiệu điều khiển của board hệ thống và ngoại vi như DMA và bộ điều khiển ngắt. Trong đó được thêm vào 8 đường số liệu và 4 đường địa chỉ cao. Do vậy, một card PC bất kì hoàn toàn có thể
cắm và sử dụng trên khe cắm ISA. Các card ISA hiện nay không còn được dùng trong các loại máy vi tính vì tốc độ chúng không đáp ứng được các yêu cầu truyền dữ liệu hiện nay. Hình 2.3 là hình một bus ISA với hai nhóm tiếp điểm cho khe cắm PC và khe cắm mở rộng cho giao tiếp bus ISA. Bên phải là khe cắmvới các chân tín hiệu.
Hình 2.1 Sơ đồ chân Bus ISA
-SA0 - SA19 : là 20 đường địa chỉ dùng để xác định địa chỉ bộ nhớ hay thiết bị vào / ra thuộc hệ thống. Các đường địa chỉ này cùng với các đường LA17-LA23 cho phép truy nhập đến 16 MB bộ nhớ.
-SD 0 - SD 15 : các đường dữ liệu, dùng để di chuyển dữ liệu qua lại giữa các vùng của bộ nhớ hoặc các thiết bị ngoại vi .Với tác vụ truyền dữ liệu 8 bit, thì chỉ cần dùng D 0 - D 7.
-AEN : Đường này được sử dụng để phân cách vi xử lý và các thiết bị khác khỏi kênh vào / ra để thực hiện truyền dữ liệu DMA . Khi đường này tích cực mức cao, bộ điều khiển DMA sẽ chiếm quyền điều khiển bus : các đường địa chỉ ( A0 - A 19 ) , các đường dữ liệu ( D 0 - D15 ) và các đường điều khiển đọc, ghi bộnhớ và IO ( RD, WR, IOR, IOW ). Khi xây dựng cơ chế hoạt động của card AD cần chú y tới đường tín hiệu này để tránh hiện tượng tranh giành bus.
- BALE : Đường này thông báo cho các thiết bị thuộc hệ thống biết quá trình gởi tín hiệu địa chỉ đang thực hiện.
- CLK : Đây là xung đồng hồ hệ thống tần số 6 MHz, 50% mức cao, 50% mức thấp. - Reset DrV : Đường này được sử dụng để reset các mức logic của các thiết bị trong hệ thống khi khởi động máy. Đường này tích cực mức cao .
-IOR : chỉ thị đọc IO. Tín hiệu này ra lệnh cho thiết bị IO đưa dữ liệu của nó lên tuyến dữ liệu. IOR được tạo ra bởi bộ vi xử lý hoặc bộ điều khiển DMA. Đường này tích cực ở mức thấp.
-IOW : chỉ thị ghi IO . Tín hiệu này báo hiệu cho các thiết bị IO rằng CPU đang xuất dữ liệu ra ngoại vi. Tín hiệu IOW tích cực ở mức thấp.
-Smem R , Mem R : chỉ thị đọc bộ nhớ. Khi các đường này tích cực ở mức thấp, CPU ra lệnh cho ô nhớ được giải mã địa chỉ xuất dữ liệu của nó lên tuyến dữ liệu. SMemR tích cực khi ô nhớ cần đọc có địa chỉ trong phạm vi 1 MB bộ nhớ thấp, MemR tích cực cho tất cả các địa chỉ thuộc bộ nhớ .
- SMemW , MemW : chỉ thị ghi bộ nhớ. Khi các đường này tích cực ở mức thấp, CPU ra lệnh cho ô nhớ được giải mã địa chỉ ghi nhận dữ liệu đang tồn tại trên tuyến dữ liệu. SMemW tích cực khi ô nhớ cần nhận dữ liệu có địa chỉ trong phạm vi 1 MB, MemW tích cực cho tất cả các địa chỉ thuộc bộ nhớ.
-IO CHCK (IO channel check) : Đường này tích cực mức thấp, cung cấp cho board hệ thống thông tin lỗi parity về bộ nhớ hay thiết bị I/O . Nó chỉ ra một lỗi hệ thốngkhông thể sửa chữa được.
-IO CHRDY (IO channel ready) : Đây là một tín hiệu vào, dùng để tạo trạng thái chờ; trạng thái này kéo dài chu kỳ bus vi xử lý đối với bộ nhớ chậm hay thiết bị IO chậm (tốc độ).
- IRQ 3 - IRQ 7 ; IRQ 9 - IRQ 12 ; IRQ 14 - IRQ 15 : Các đường này dùng để báo cho CPU biết thiết bị vào ra có yêu cầu ngắt. Các yêu cầu ngắt có độ ưu tiên : Các đường IRQ 9 - IRQ 12 ; IRQ 14 - IRQ 15 có độ ưu tiên cao nhất (IRQ 9 có độ ưu tiên cao nhất trong các đường này). Các đường IRQ 3 - IRQ 7 có độ ưu tiên thấp hơn (IRQ3 có độ ưu tiêncao nhất trong các đường này). Một yêu cầu ngắt được tạo ra bằng cách nâng đường IRQ từ thấp lên cao. Đường này phải được giữ ở mức cao cho tới khi vi xử lý cho phép yêu cầu ngắt. IRQ13 được dùng cho board hệ thống nên không dùng được cho kênh vào ra. IRQ 8 dùng cho đồng hồ thời gian thực.
-DRQ0 - DRQ3 và DRQ5 - DRQ7 : yêu cầu DMA kênh 0 - 3 , 5 -7 là các yêu cầu kênh không đồng bộ. Thiết bị ngoại vi và vi xử lý kênh vào ra dùng những đường này để chiếm phục vụ DMA (hay quyền điều khiển hệ thống). DRQ0 có độ ưu tiên cao nhất và DRQ7 có độ ưu tiên thấp nhất. Một yêu cầu DMA được tạo bằng cách mang một đường DRQ lên mức tích cực . Đường DRQ được giữ ở mức cao cho tới khi đường “cho phép yêu cầu DMA”( DACK = DMA Request Acknowledge ) lên mức tích cực. DRQ0 - DRQ3 sẽ thực hiện việc truyền DMA 8 bit , còn DRQ5 – DRQ7 thực hiện việc truyền DMA 16 bit . DRQ 4 dùng cho board hệ thống và không dùng được cho kênh vào / ra.
- DACK0 - DACK3 ; DACK5 - DACK7 : Các đường này cho phép hay chấp nhận yêu cầu DMA. Chúng đuợc CPU xuất ra và đều tích cực mức thấp.
- Refresh : Tín hiệu này chỉ ra rằng chu kỳ làm tươi bộ nhớ RAM động bị điều khiển bởi một vi xử lý ở kênh vào ra.
- SBHE : Cho phép byte cao ở trong hệ thống. Tín hiệu này chỉ ra rằng việc truyền dữ liệu trênbyte cao của tuyến dữ liệu : D8 - D15. Thiết bị 16 bit dùng BHE để gia công đệm tuyến dữ liệu nối với D8 - D15.
-IOCS 16 : Tín hiệu vào tích cực mức thấp, các ngoại vi 16 bit dùng đường này để báo cho CPU biết rằng việc truyền dữ liệu là 16 bit.
- OSC : Xung đồng hồ tốc độ cao nhất với chu kỳ 70 ns. ( 14,31818 MHz ). Tín hiệu này không đồng bộ với đồng hồ hệ thống, có 50% chu kỳ làm việc.
Sơ đồ chân rãnh cắm ISA
Bảng 2.1 Sơ đồ chân rãnh cắm ISA trên mainboard của máy IBMPC – XT,AT.
Ground B1 A1 -I/O CHCK Reset DRV B2 A2 SD7 + 5VDC B3 A3 SD6 IRQ 9 B4 A4 SD5 -5 VDC B5 A5 SD4 DRQ2 B6 A6 SD3 -12 VDC B7 A7 SD2 -OWS B8 A8 SD1 + 12VDC B9 A9 SD0
Ground B10 A10 I/O CH RDY
-SMEMW B11 A11 AEN
-SMEMR B12 A12 SA19
-IOW B13 A13 SA18
-IOR B14 A14 SA17
-DACK 3 B15 A15 SA16
DRQ 3 B16 A16 SA15
-DACK 1 B17 A17 SA14
DRQ 1 B18 A18 SA13
-REFRESH B19 A19 SA12
CLK B20 A20 SA11
IRQ 7 B21 A21 SA10
IRQ 6 B22 A22 SA9
IRQ 5 B23 A23 SA8
IRQ 4 B24 A24 SA7
IRQ 3 B25 A25 SA6
-DACK 2 B26 A26 SA5
TC B27 A27 SA4
BALE B28 A28 SA3
+ 5VDC B29 A29 SA2
OSC B30 A30 SA1
Các địa chỉ vào ra của máy vi tính IBMPC - AT
Bảng 2.2 Các địa chỉ vào ra của máy vi tính IBMPC - AT
Địa chỉ ( Hex ) Thiết bị
000 - 01F Bộ điều khiển DMA 1 , 8237A - 5. 020 - 03F Bộ điều khiển ngắt 1 ( chính ) 8259A. 040 - 05F Bộ định thời, 8254 - 2.
060 - 06F Bộ điều khiển bàn phím, 8042.
070 - 07F Đồng hồ hệ thống thời gian thực, mặt nạ ngắt không che được NMI 080 - 09F Thanh ghi trang DMA, 74LS612.
0A0 - 0BF Bộ điều khiển ngắt 2, 8259A ( phụ ). 0C0 - 0DF Bộ điều khiển DMA 2 , 8237A - 5.
0F0 Xóa đường thông báo bộ đồng xử lý toán học đang bận. 0F1 Reset bộ đồng xử lý toán học.
0F8 - 0FF Bộ đồng xử lý toán học. 1F0 - 1F8 Điều khiển đĩa cứng.
200 – 207 Điều khiển trò chơi ( Game IO ).
278 - 27F Cổng giao tiếp máy in song song 2 ( LPT 2 ). 2F8 - 2FF Cổng truyền tin nối tiếp 2 ( COM 2 ).
300 - 31F Card thử nghiệm ( prototype card ). 360 - 36F Chưa sử dụng.
378 - 37F Cổng giao tiếp máy in song song 1 ( LPT 1). 380 - 38F Thông tin SDLC 2.
3A0 - 3AF Thông tin SDLC 1.
3B0 - 3BF Điều khiển màn hình mono và thiết bị máy in. 3C0 - 3CF Chưa sử dụng.
3D0 - 3DF Điều khiển màn hình graphic / màu. 3F0 - 3F7 Điều khiển đĩa mềm.
3F8 - 3FF Cổng truyền tin nối tiếp ( COM 1 ) .
Khi thiết kế hệ thống, các nhà sản xuất đã dành riêng vùng địa chỉ vào ra từ 300h - 31Fh để người sử dụng có thể phát triển thêm các ứng dụng thử nghiệm, vì vậy ta sẽ chọn vùng địa chỉ này để xây dựng card AD.
Trong 8 đường IRQ chính của hệ thống, nếu thiết bị ngoại vi tương ứng nào hiện diện thực sự thì chúng ta không được phép sử dụng đường IRQ đó nữa. Còn nếu các đường IRQ nào không có thiết bị thì card AD của ta có quyền sử dụng thoải mái. Để kiểm tra sự tồn tại của các thiết bị ngoại vi đã sử dụng IRQ, chúng ta có thể thực hiện bằng cách kiểm tra byte dữ liệu ở cổng vào ra số 21h ( trạng thái 8259A ). Nếu bit số n
là zero thì IRQ n tương ứng đã được sử dụng. Thông thường chúng ta có thể sử dụng được các đường IRQ3 ÷ IRQ7 . Khi thiết kế card AD và khi viết chương trình điều khiển ta phải chú ý cho phép người dùng khả năng chọn lựa IRQ để tương thích với các cấu hình máy khác nhau.
Hạn chế của Bus ISA:
- Đường dữ liệu bị hạn chế 16 bit, vì thế không thể phối hợp trực tiếp bus dữ liệu 32 bit của các bộ vi xử lý 486/Pentium
- Bus địa chỉ 24 bit giới hạn khả năng truy nhập bộ nhớ cực đại qua khe cắm mở rộng là 16 Mb, nên không thể phối hợp bus 32 bit trực tiếp được.
- Khe cắm loại này khá cồng kềnh có bề mặt tiếp xúc lớn, giới hạn tần số làm việc của khe cắm mở rộng bus ISA 8 Mhz.
- Mỗi ngắt chỉ có thể gán cho 1 thiết bị, ở các hệ thống tần số cao, ngắt bằng sườn xúc phát có thể dẫn đến kích hoạt sai do xung nhọn hoặc tạp nhiễu ở lối vào IRQ.
2.1.2.Giao tiếp qua rãnh cắm PCI
Rãnh cắm PCI (Peripheral Component Interconnect) có màu trắng trên mainboard cho phép giao tiếp ngoại vi 32 hay 64 bit vận tốc nhanh đến 132 Mbytes/s so với rãnh cắm ISA 16 bit có vận tốc 3 đến 5 Mbytes/s.
Rãnh PCI 64 bit có hai hàng tiếp điểm, mỗi bên 94 tiếp điểm phía A là phía linh kiện còn phía B là phía hàm. Do tính chất phức tạp của tuyến và vận tốc tín hiệu lớn nên việc tự ráp card giao tiếp PCI khó thực hiện mà phải dùng card chính hãng. Năm 1998 các hãng Compag, Hewlett-Packard, IBM phối hợp đưachuẩn PCI-X có đặc tính tốt hơn.
Tuyến PCI 32 bit sử dụng chung 32 đường địa chỉ data AD0-AD31, pha địa chỉ do tín hiệu FRAME# điều khiển, sau đó là một hay nhiều pha dữ liệu. Tuyến PCI 64 bit dùng 64 đường AD0-AD63 cho địa chỉ và dữ liệu.
Có hai loại tuyến PCI mức tín hiệu 5V và mức tín hiệu 3,3V. Sau đây là mô tả các tín hiệu của PCI:
CLK: xung nhịp 33 MHz, 66 Mhz.. RST#: tín hiệu reset.
AD0÷AD31: là tuyến địa chỉ khi FRAME# ở mức thấp.
C/BEO÷3# BUS(Command Bytes Enables) : cho biết loại của truyền dữ liệu (đọc/viết bộ nhớ, ngoại vi..).
PAR: kiểm tra parity của AD0÷AD31 và C/BEO÷3. IRDY# (initiator ready)
TRDY# (Target Ready): là hai dữ liệ bắt tay giữa bộ phát và bộ nhận dữ liệu trên tuyến PCI.
STOP#: là tín hiệu target báo cho initiator để chấm dứt giao dịch initiator là chủ của tuyến (bus master) còn target là bus slave. Việc truyền dữ liệu do initiator bắt đầu thông qua C/BE và IRDY còn target trả lời thông qua TRDY# và STOP#.
LOCK#: là tín hiệu initiator báo dành riêng một số địa chỉ của target. IDSEL(Initialigation Device Select): là tín hiệu chọn chip.
DEVSEL#(Device Select): của nó trên tuyến PCI do target điều khiển khi nó thấy địachỉ của nó trên tuyến PCI.
REQ#: yêu cầu dùng bus(request).
GNT#: cho biết yêu cầu REQ# đã được chấp nhận(grant). PERR#(System error): sai số hệ thống.
INTA#, INTB#, INTC#, INTD#: các tín hiệu ngắt. SBO#(Snoop Backoff) dùng cho card bộ nhớ. SDONE(Snoop done)
PRSNT 1÷2#: cho biết có board cắm vào slot và công suất tiêu thụ của board đó. CLKRUN#(Clock running): cho phép điều khiển xung nhịp CLK.
MGGEN(66 Mhz enable): cho biết xung nhịp 33 Mhz hay 66 Mhz. AD32÷63: 32 đường địa chỉ và dữ liệu cao trong PCI 64 bit.
C/BE 4÷7#: dùng khi truyền 64 bit kết hợp với REQ 64# và ACK 64#, PAR 64. REQ 64# (Request 64 bit transfer).
ACK 64# (Acknowledge 64 bit transfer).
Bảng 2.3 Cho vị trí các tín hiệu trên slot
TCK (Test clock)
TDI (Test data input) TDO (Test output)
TMS (Test mode Select) TRST# (Test reset)
Đặc điểm của các board cắm trên tuyến PCI là dữ liệu có thể truyền không thông qua CPU chủ do đó vận tốc xử lý tín hiệu nhanh hơn.
Card DT 300 của hãng Data Translation cho phép đổi 16 tín hiệu analog sang số phân giải 16 bit với vận tốc 250000 mẫu/sec, đổi số ra analog hai kênh 16 bit, xuất nhập digital 23 bit.
Bảng 2.4 Sơ đồ chân rãnh cắm PCI 64 bit
Pin Môi trường hệ thống 5v Pin Môi trường hệ thống 3,3v Ghi chú
Side B Side A Side B Side A
1 -12 V TRST# 1 -12 V TRST# 32 bit start
2 TCK +12 V 2 TCK + 12V
3 Ground TMS 3 Ground TMS
4 TDO TDI 4 TDO TDI
5 +5V +5V 5 +5V +5V
6 +5V INTA# 6 +5V INTA#
7 INTB# INTC# 7 INTB# INTC#
8 INTD# +5V 8 INTD# +5V
9 PRSNT1# Reserved 9 PRSNT1# Reserved
10 Reserved +5V(I/O) 10 Reserved +3,3V(I/O) 11 PRSNT2# Reserved 11 PRSNT2# Reserved
12 Ground Ground 12 Connector Key 3,3V key
13 Ground Ground 13 Connector Key 3,3V key
14 Reserved Reserved 14 Reserved Reserved
15 Ground RST# 15 Ground RST#
16 CLK +5V(I/O) 16 CLK
17 Ground GNT# 17 Ground +3,3V(I/O)
18 REQ# Ground 18 REQ# Ground
19 +5V(I/O) Reserved 19 +3,3V(I/O) Reserved
20 AD[31] AD[30] 20 AD[31] AD[30]
21 AD[29] +3,3V 21 AD[29] +3,3V
22 Ground AD[28] 22 Ground AD[28]
23 AD[27] AD[26] 23 AD[27] AD[26]
24 AD[25] Ground 24 AD[25] Ground
25 +3,3V AD[24] 25 +3,3V AD[24]
26 C/BE[3]# IDSEL 26 C/BE[3]# IDSEL
27 AD[23] +3,3V 27 AD[23] +3,3V
28 Ground AD[22] 28 Ground AD[22]
29 AD[21] AD[20] 29 AD[21] AD[20]
30 AD[19] Ground 30 AD[19] Ground
31 +3,3V AD[18] 31 +3,3V AD[18]
32 AD[17] AD[16] 32 AD[17] AD[16]
33 C/BE[2]# +3,3V 33 C/BE[2]# +3,3V
34 Ground FRAME# 34 Ground FRAME#
36 +3,3V TRDY# 36 +3,3V TRDY#
37 DESVEL# Ground 37 DESVEL# Ground
38 Ground STOP# 38 Ground STOP#
39 LOCK# 3,3V 39 LOCK# 3,3V
40 PERR# SDONE 40 PERR# SDONE
41 +3,3V SBO# 41 +3,3V SBO#
42 SERR# Ground 42 SERR# Ground
43 +3,3V PAR 43 +3,3V PAR
44 C/BE[1]# AD[15] 44 C/BE[1]# AD[15]
45 AD[14] +3,3V 45 AD[14] +3,3V
46 Ground AD[13] 46 Ground AD[13]
47 AD[12] AD[11] 47 AD[12] AD[11]
48 AD[10] Ground 48 AD[10] Ground
49 Ground AD[9] 49 M66EN AD[9]
50 Connector Key 50 Ground Ground 5V key
51 Connector Key 51 Ground Ground 5V key
52 AD[08] C/BE[0]# 52 AD[08] C/BE[0]#
53 AD[07] +3,3V 53 AD[07] +3,3V
54 +3,3V AD[06] 54 +3,3V AD[06]
55 AD[05] AD[04] 55 AD[05] AD[04]
56 AD[03] Ground 56 AD[03] Ground
57 Ground AD[02] 57 Ground AD[02]
58 AD[01] AD[00] 58 AD[01] AD[00]
59 +5V(I/O) +5V(I/O) 59 +3,3V(I/O) +3,3V(I/O)
60 ACK64# REQ64# 60 ACK64# REQ64#