CHƯƠNG I.
TỔNG QUAN CÁC GIAO DIỆN TRONG
MÁY TÍNH PC
1.1. Giao diện tốc độ thấp.
1.1.1. Cổng giao tiếp song song.
Cổng song song là cổng thông dụng nhất cho các ứng dụng văn phòng. Nó
có 4 đường tín hiệu điều khiển (tín hiệu ra), 5 đường tín hiệu trạng thái (tín
hiệu ra) và 8 đường tín hiệu dữ liệu đều tương thích mức TTL, tương thích
với 3 nhóm đường tín hiệu trên là 3 thanh ghi: thanh ghi điều khiển, thanh ghi
trạng thái và thanh ghi dữ liệu. Địa chỉ cơ sở của cổng song song là 378H.
Thanh ghi dữ liệu có địa chỉ 378H, thanh ghi trạng thái có địa chỉ 379H và
thanh ghi điều khiển có địa chỉ 37AH.
1.1.2. Cổng giao tiếp nối tiếp.
So với cổng song song thì cổng nối tiếp được dùng ít hơn. Trong hầu hết
các trường hợp, bất kì thiết bị nào nối vào cổng nói tiếp cũng cần phải chuyển
dữ liệu nối tiếp thành song song thì mới dùng được và có thể dùng UART để
thực hiện việc này. Vì thế cần phải có nhiều thanh ghi điều khiển hơn kiểu
truyền song song. Tuy nhiên, truyền nối tiếp có ưu điểm mà truyền song song
không có như :
• Cáp truyền nối tiếp dài hơn cáp truyền song song. Vì cổng nối tiếp
truyền mức ‘1’ với điện áp từ –3V đến mức –25V và mức ‘0’ với
điện áp từ 3V đến 25V trong khi cổng truyền song song truyền với
mức TTL.
• Cáp truyền không cần nhiều sợi như cáp truyền song song;
• Khả năng chống nhiễu cao.
4
1.1.3. Giao tiếp theo chuẩn ISA.
Chuẩn ISA là giao diện phổ biến nhất trong thế giới của máy vi tính.
Chuẩn ISA nguyên bản truyền 8 bit dữ liệu và chay với tần số 4.77MHz
(tương ứng với bộ xử lý 8 bit 8088).
Năm 1984 thế hệ máy tính IBM AT ra đời dùng bộ vi xử lý 16 bit 80286
ISA Bridge
(Optional)
USB
Ports
INTR
ISA Slots
PCI Bus
Firmware
Hub
IDE
AC’97 Link
Modem
Codec
Audio
Codec
Hình 1.1: Sơ đồ ghép nối trong máy tính
PC
IRQs
rãnh phụ nằm thẳng hàng với 8 bit cũ. Trên bus ISA có tập hợp các đường địa
chỉ, dữ liệu và điều khiển cho phép thiết kế Card giao tiếp 8/16 bit có địa chỉ
300H đến 31FH cắm trên rãnh này. Sau này mặc dù các bộ vi xử lý có tốc độ
cao hơn, kênh dữ liệu lớn hơn nhưng chuẩn ISA còn tồn tại để tương thích với
những thiết bị ngoại vi cũ nối với máy tính qua giao diện ISA. Ngày nay rãnh
cắm ISA không còn phù hợp và hầu như không xuất hiện trên bảng mạch chủ
của máy tính thế hệ mới. Và thiết bị ngoại vi nói chung thường sử dụng giao
diện tốc độ cao USB hoặc PCI.
1.1.4. Giao tiếp theo chuẩn EISA.
Chuẩn EISA là sự mở rộng của chuẩn ISA, hoàn toàn tương thích với
chuẩn ISA (Card thiết kế theo chuẩn ISA chạy được trên rãnh cắm EISA).
Chuẩn EISA có tính năng tiên tiến hơn như:
tiếp công trong nghiệp có hiệu suất cao, mức tiêu thụ năng lượng thấp. Ngày
nay, chuẩn PCI tạo ra bộ mặt mới trong lĩnh vực nối ghép máy tính với thiết
bị ngoại vi và quan trọng là nó là chuẩn giao diện mới đáp ứng những nhu cầu
của những hệ thống đa nền tảng và đa cấu trúc. Hình 1.2 cho ta các kích thước
có thể của bus cục bộ PCI.
Thành phần PCI và các Card giao tiếp được xử lý hoàn toàn độc lập với
nhau, cho phép một quá trình trao đổi dữ liệu cố định và có thể sử dụng với
cấu trúc đa xử lý. Xử lý độc lập cho phép bú cục bộ PCI tối ưu hóa với các
chức năng vào/ra, các hệ thống nhớ, các thiết bị ngoại vi có hiệu suất cao như
hình ảnh động, LAN, SCSI, FDDI, ổ cứng…nâng cao hình ảnh và hiển thị đa
phương tiện (đồ họa 3 chiều). Phần đuôi mở rộng của bus địa chỉ và dữ liệu
7
32 bit được làm tăng gấp đôi độ rộng băng thông có tác động hồi tiếp và
chuyển tiếp phù hợp với những thiết bị ngoại vi theo chuẩn PCI.
Chuẩn của bus cục bộ PCI có tác dụng bảo vệ đối với những ứng dụng của
PCI cơ bản. Thanh ghi cấu hình được dụng riêng cho các thành phần điều
khiển PCI và card bổ sung. Một hệ thống phần mềm cấu hình tự động rất dễ
cho sử dụng bởi việc định cấu hình tự động được thực hiện tại thời điểm khởi
động hệ thống. Các dặc tính của bus cục bộ PCI là:
• Tốc độ 33MHz (phiên bản đầu).
• Đường dữ liệu 32 bit và 64 bit mở rộng.
• Hỗ trợ truyền dữ liệu dạng khối.
• Hỗ trợ việc làm chủ bus, cho phép thực hiện đa xử lý mà bất kì bộ xử lý
nào cũng có thể trở thành thiết bị chủ và nắm quyền điều khiển bus.
• Hỗ trợ card mở rộng 3.3V hoặc 5V, cho phép chuyển dễ dàng từ
hệ thống 5V sang 3.3V bằng việc sử dụng các lẫy điện áp.
• Có tính tương thích với các chuẩn cũ ISA, EISA…do sử dụng cầu nối
bus (PCI-to-PCI Bridge). Bus PCI độc lập với bộ vi xử lý, nó là bus
tầng dưới, không trực tiếp nối vào bus hệ thống, giữa bộ vi xử lý và bus
PCI là thiết bị điều khiển PCI- một vi mạch có nhiệm vụ đồng bộ các
Graphics
Other I/O
Functions
SCSILAN
Hình 1.2: Sơ đồ khối hệ thống PCI
PCI-to-PCI
Bridge
PCI local bus #1
1.2.2. Giao diện AGP.
Cổng tăng tốc độ đồ họa là cổng tốc độ cao cho phép hiển thị đồ họa 3
chiều. Nó được dành riêng cho card kết nối thiết bị hiển thị. Giao diện AGP
dưa trên tập hợp các thao tác mở rộng và cải tiến của bus PCI.
Nói chung biến đổi 3 chiều đòi hỏi rất lớn về dung lượng và dải thông bộ
nhớ, khi phần mềm và phần cứng trở nên càng phức tạp thì yêu cầu này càng
tăng nhanh, hai đòi hỏi này sẽ làm tăng chi phí sản xuất. Việc khống chế giá
thành mà vẫn cải thiện được tính năng là mục đích ra đời của AGP. Bằng
cách cải tiến độ lớn băng thông giữa bộ tăng tốc đồ họa và bộ nhớ hệ thống
một số cấu trúc dữ liệu biến đổi 3 chiều có thể chuyển vào bộ nhớ trung tâm
một cách hữu hiệu và giảm áp lực về chi phí bộ nhớ đồ họa cục bộ.
Dữ liệu đồ họa (Texture) là cấu trúc đầu tiên được dịch chuyển vào bộ nhớ
hệ thống vì 4 lý do sau:
+ Texture chỉ để đọc và vì vậy nó không cần có việc định thứ tự truy cập
đặc biệt và các vấn đề kèm theo.
+ Dịch chuyển Texture cân bằng tải băng thông giữa bộ nhớ hệ thống và
bộ nhớ đồ họa cục bộ, vì bộ nhớ Cache có đòi hỏi về băng thông bộ nhớ thấp
hơn nhiều so với bộ biến đổi 3 chiều.
+ Dung lượng Texture phụ thuộc vào chất lượng ứng dụng chứ không
phụ thuộc vào độ phân giải hiển thị và bởi vậy nó là đối tượng chịu áp lực lớn
nhất khi tăng và cải thiện chất lượng.
+ Dữ liệu đồ họa không tồn tại lâu dài, nó thường trú trong bộ nhớ chỉ
LFB
I/O I/O I/O
AGP
PCI
Hình 1.3: Sơ đồ khối mối quan hệ AGP và PCI
ở mặt sau máy tính, thay vì có quá nhiều đầu nối vào máy tính cho bàn phím,
chuột, máy in, modem, thiết bị multimedia, máy ảnh số... Chuẩn USB cho
phép tất cả nối vào cổng duy nhất trên bảng mạch máy chủ của máy tính.
Chuẩn USB loại trừ nhiều rắc rối trên khi cài đặt thiết bị ngoại vi, chẳng hạn
như phải tháo máy để cài đặt card nối ghép, thay đổi các chuyển mạch, khai
báo ngắt...
Ở trên cho thấy hình ảnh của hệ thống USB được thực hiện trên nền tảng
cơ sở của bus PCI-khối điều khiển chủ USB nằm trên bus PCI. USB được
phát triển theo yêu cầu chính sau:
12
PCI Bus
SCSI Host
Bus Adapter
LAN
Adapter
Card Bus
Bridge
Graphics
Adapter
Host/
PCI
Cache/
Bridge
Memory
Bus
tiêu thụ năng lượng thấp, vì thế nên có nhiều thiết bị tốc độ cao cùng được
kết nối qua bus này.
Trên bảng mạch chủ máy vi tính chỉ có duy nhất một khối điều khiển cho
giao diện này, cho phép đồng thời quản lý 127 thiết bị ngoại vi bằng cách chia
sẻ băng thông cho tất cả các thiết bị trên kênh trong cùng một thời điểm. Nó
có 4 đường tín hiệu: 2 đường cho nguồn và 2 đường cho truyền dữ liệu. Mỗi
khi cắm một thiết bị vào giao diện USB, nó sẽ phát hiện và gán cho một địa
chỉ tương thích với chíp điều khiển giao diện USB (trên PC).
Đặc tính của USB xác định kết nối và truyền tin giữa hai thành phần cơ
bản: khối điều khiển USB và thiết bị USB. Chỉ có một khối điều khiển USB,
nó thực hiện các kết hợp phần cứng, chương trình cơ sở hoặc phần mềm. Có
hai kiểu thiết bị USB: USB Hub và USB Functions. USB Hub cho phép mở
rộng số jack nối USB vào hệ thống còn USB Functions cho phép nối hệ thống
với các thiết bị ngoại vi như: bàn phím, chuột…
Chuẩn USB hiện có hai phiên bản là USB 1.1 và USB 2.0. Phiên bản USB
1.1 có 2 tốc độ: 12MHz và 1.5MHz, tốc độ 1.5 MHz chậm hơn và ít ảnh
hưởng của nhiễu nên giảm chi phí sản xuất. Phiên bản USB 2.0 ngày nay có
thể đạt tới tốc độ 480 Mb/s.
Qua việc tìm hiểu về giao diện tốc độ cao ta nhận thấy giao diện PCI là cơ
sở để xây dựng các chuẩn giao tiếp khác. Vì vậy trước khi tìm hiểu chuẩn
giao diện USB ta sẽ nghiên cứu những vấn đề cơ bản nhất của giao diện PCI .
13
1.3. Chuẩn giao diện Peripheral Component Interconnect - PCI.
1.3.1. Mô tả chân tín hiệu trên Slot PCI.
Các chân tín hiệu được phân chia theo nhóm và tổ chức như sau :
+ Nhóm các
chân hệ thống:
- CLK: Là chân vào, cung cấp đồng hồ thời gian cho mọi thực thi trên
bus PCI. Tất cả tín hiệu, trừ RST#, INTA#, INTB#, INTC#, INTD#, PME# và
CKLRUN# đều kích phát ở sườn dương xung CLK và các thông số thời gian
PERR#
SERR#
Error
Reporting
REQ#
GNT#
CLK
RST#
System
AD[63::32]
C/BE[7::4]#
PAR64
REQ64
#
ACK64
#
64-Bit
Extension
LOCK#
SMBCL
K
SMBDAT
(DWORD) địa chỉ vật lý. Một chu kỳ Bus bao gồm một nhịp địa chỉ và một
hay nhiều nhịp dữ liệu.
- C/BE3-C/BE0: Là các chân ba trạng thái, lệnh Bus _Command và
Byte_enable được kết hợp trên các chân tín hiệu này.
* Trong nhịp địa chỉ, C/BE3-C/BE0 định nghĩa lệnh Bus_Command.
* Trong nhịp dữ liệu C/BE3-C/BE0 được sử dụng như các lệnh Byte_enable.
- PAR: Chân ba trạng thái, là chân kiểm tra chẵn lẻ.
+ Nhóm các chân điều khiển giao diện.
- FRAME#: Là chân ba trạng thái liên tục, được điều khiển bởi đối tượng
chủ hiện hành nhằm chỉ ra điểm bắt đầu và thời gian có hiệu lực của sự truy cập.
- IRDY#: Là chân ba trạng thái liên tục chỉ ra khả năng của đối tượng
khởi đầu giao dịch có thể hoàn thành pha dữ liệu hiện hành của một nhịp trao
đổi dữ liệu.
- TRDY#: Là chân ba trạng thái chỉ ra khả năng của đối tượng đích có thể
hoàn thành pha dữ liệu hiện hành của một nhịp trao đổi dữ liệu. Hai tín hiệu
TRDY# và IRDY# thường được dùng kết hợp với nhau.
- STOP#: Là chân ba trạng thái liên tục, chỉ ra đối tượng hiện tại yêu cầu
đối tượng khởi đầu giao dịch ngưng sự thực thi hiện hành.
- LOCK#: Là chân ba trạng thái dùng khi cầu PCI phục vụ nhiều đối
tượng thực hiện trao đổi dữ liệu.
- IDSEL#: Là chân vào lựa chọn thiết bị khởi tạo, chân này được sử dụng
như một chân chọn chíp trong khi đặt khởi tạo sự thực hiện đọc và ghi dữ liệu.
- DEVSEL#: Là chân ba trạng thái liên tục, lựa chọn thiết bị khi điều khiển
hoạt động, nó chỉ ra đối tượng điều khiển mà địa chỉ của nó được giải mã như
15
đối tượng đích của sự truy cập hiện hành. Như một chân vào, tín hiệu
DEVSEL# chỉ ra thiết bị nào trên Bus đã được lựa chọn.
+ Nhóm các chân báo lỗi: Được dùng để báo và sửa các lỗi về địa chỉ và dữ
liệu trong khi trao đổi dữ liệu, gồm có chân SERR và PERR.
- PERR#: Dùng báo lỗi chẵn lẻ của dữ liệu trong tất cả các thao tác trên
- AD63-AD32: Các chân địa chỉ và dữ liệu tương ứng được kết hợp trên
cùng một chân tín hiệu cung cấp 32 bit bổ xung. Trong một nhịp địa chỉ thì 32
bit cao của địa chỉ 64 bit được truyền đi. Trong nhịp dữ liệu, 32 bit dữ liệu bổ
xung được truyền đi khi tác vụ thực thi 64 bit được xác nhận bởi hai tín hiệu
REQ64# và ACK64#.
- CBE7-CBE4: Có chức năng giống như các tín hiệu CBE3-CBE0.
- REQ66#: Tín hiệu yêu cầu truyền 64 bit.
- ACK66#: Tín hiệu chấp nhận truyền 64 bit.
- PAR64#: Chân tín hiệu chẵn lẻ 32 bit phần cao trong tổng số 64 bit dữ
liệu. Trong nhịp địa chỉ và ghi dữ liệu được điều khiển bởi bộ điều khiển bus,
trong nhịp đọc dữ liệu được điều khiển bởi đối tượng nhập dữ liệu.
+ Nhóm các chân quét đường biên/JTAG (tuỳ chọn).
- TCK: Chân tín hiệu vào, để kiểm tra dữ liệu vào/ra của thiết bị.
- TDI: Chân tín hiệu vào, kiểm tra dữ liệu và lệnh vào thiết bị.
- TDO: Chân tín hiệu ra, kiểm tra dữ liệu và lệnh ra thiết bị.
- TMS: Chân tín hiệu vào, điều khiển trạng thái quá trình kiểm tra thiết bị.
17
- TRST#: Chân tín hiệu vào dùng khởi tạo một cách đồng bộ quá trình
kiểm tra thiết bị.
+ Nhóm các chân giao tiếp quản lí hệ thống bus (tuỳ chọn).
- SMBCLK: Chân lựa chọn xung tín hiệu clock cho giao diện bus.
- SMBDAT: Chân chọn dữ liệu cho giao diện bus.
Tiếp theo ta sẽ nghiên cứu các yếu tố cơ bản nhất để có thể trao đổi dữ
liệu trên bus PCI, bắt đầu từ lệnh điều khiển bus, giao thức trao đổi, tổ chức
không gian địa chỉ, các thao tác cơ bản trên bus, sự kết thúc quá trình trao đổi
dữ liệu và đồ hình trạng thái bus PCI.
1.3.2 Các lệnh Bus.
Các lệnh bus chỉ ra thao tác, thiết bị đích của một thực thi truyền dữ liệu
được yêu cầu bởi thiết bị chủ. Các lệnh Bus được mã hoá đầy đủ trên các chân
C/BE3...C/BE0 và được phát đi trong pha địa chỉ. Chúng gồm:
Khi hai tín hiệu FRAME# và IRDY# không ở mức tích cực (mức cao) thì
Bus PCI ở trạng thái trống. Tại chu kỳ Clock đầu tiên, nếu tín hiệu FRAME# ở
mức tích cực thì trên bus có thông tin địa chỉ (ADxx) và mã lệnh (C/BE). Trong
những chu kỳ Clock tiếp theo nhịp dữ liệu đầu tiên và các nhịp dữ liệu trong
khối dữ liệu sẽ được trao đổi khi cả hai tín hiệu IRDY# và TRDY# đều ở mức
tích cực (mức thấp). Trạng thái đợi có thể được chèn vào trong quá trình trao đổi
dữ liệu nếu một trong hai tín hiệu IRDY# hoặc TRDY# không ở mức tích cực.
Trong khi đang trao đổi một nhịp dữ liệu thì sự thay đổi của các tín hiệu điều
khiển không có tác dụng cho đến khi hoàn thành nhịp dữ liệu này. Sau khi hoàn
thành nhịp dữ liệu cuối cùng thì Bus PCI trở về trạng thái trống.
1.3.4. Định địa chỉ trên Bus PCI.
19
Bus PCI xác định 3 không gian địa chỉ vật lý: Bộ nhớ, không gian địa chỉ
vào/ra và không gian địa chỉ cấu hình (dùng hỗ trợ cấu hình phần cứng PCI).
+ Định địa chỉ bộ nhớ: Các tín hiệu AD31 – AD02 cung cấp địa chỉ
DWORD, còn tín hiệu AD1 và AD0 không tham gia định địa chỉ bộ nhớ mà
được đối tượng điều khiển dùng thông báo dạng trao đổi dữ liệu.
AD1 AD0 Thứ tự truyền khối
0 1 Tăng tuyến truyền
0 1 Dành cho người sử dụng
1 0 Chế độ bảo vệ
1 1 Dành cho người sử dụng
+ Định địa chỉ vào/ra: Cả 32 bit AD31 – AD0 được sử dụng, trong khi
đó tín hiệu AD1 và AD0 có ý nghĩa nhất với đối tượng điều khiển để khởi đầu
quá trình trao đổi dữ liệu.
+ Định địa chỉ cấu hình: Trong không gian địa chỉ cấu hình có 256 byte
chứa thông tin không gian địa chỉ vào/ra hoặc bộ nhớ.
1.3.5. Tổ chức không gian cấu hình bus PCI.
20
00h
Cardbus CIS Poiter
Base Address Registers
Subsystem Vendor ID
Subsystem ID
Expansion ROM Base Address
Reserved
Capabilities
Pointer
Reserved
Max Lat
Min Gnt
Interrupt
Pin
Interrupt
Line
Hình 1.6: Đoạn đầu không gian cấu hình
Tất cả các đối tượng phải cung cấp đầy đủ thông số cho thiết bị điều khiển
bus PCI, thông tin này đặt trong 64 byte đầu tiên của 256 byte cấu hình và
được mô tả trong hình 1.6.
Một trong những thanh ghi quan trọng là thanh ghi trạng thái và thanh ghi
lệnh, hai thanh ghi này đều là các thanh ghi 16 bit và cùng nằm tại địa chỉ 04h
trong không gian cấu hình của bus PCI.
1.3.5.1. Thanh ghi lệnh.
Thanh ghi lệnh cho ta biết phần điều khiển thô trên những thiết bị có khả
năng tạo và đáp ứng với một chu kỳ hoạt động của bus PCI. Khi “0” được ghi
vào thanh ghi này thì thiết bị sẽ ngưng kết nối logic từ bus PCI với tất cả mọi
sự truy cập chỉ ngoại trừ sự truy cập cấu hình. Mỗi bit riêng lẻ trong thanh ghi
lệnh có hoặc không được thi hành và phụ thuộc vào chức năng của thiết bị. Ta
có ví dụ như sau: Các thiết bị không thi hành tại không gian I/O và không
gian I/O này sẽ không thực hiện một thành phần khả ghi tại vị trí bit “0” trên
* Mức ‘1’: Thì thiết bị chủ có thể tạo lệnh.
* Mức ‘0’: Thì bộ nhớ ghi được sử dụng thay cho thiết bị chủ.
- Bit 5: Điều khiển card VAG tương thích với thiết bị đồ hoạ điều khiển
tới thanh ghi bảng màu.
* Mức ‘1’: Bảng màu được cho phép sử dụng.
* Mức ‘0’: Thì thiết bị nên xem xét ghi bảng màu cho mọi sự truy cập.
- Bit 6: Điều khiển sự phản ứng của thiết bị với sai số chẵn lẻ. Khi bit này
có mức ‘1’ thì thiết bị hoạt động ở mức bình thường và khi đó một sai số chẵn
lẻ được phát hiện.
- Bit 8: Là bit cho phép cho bộ điều khiển SERR#.
* Mức ‘0’: Không cho điều khiển tín hiệu SERR#.
* Mức ‘1’: Thì cho phép điều khiển SERR#.
- Bit 9: Điều khiển tuỳ chọn đọc, ghi một thiết bị chủ có sự giao dịch kiểu
Back-to-Back đối với thiết bị khác. Phần mềm khởi tạo sẽ được thiết lập nếu
thiết bị đích cũng có khả năng giao dịch kiểu back-to-back.
- Bit 10: Cho phép xác nhận INTx#.
22
- Bit 7 và bit 11÷15: Để dành.
1.3.5.2. Thanh ghi trạng thái.
Dùng để ghi thông tin trạng thái để bus PCI liên hệ các sự kiện.
- Bit 0 - bit 2: Dành riêng cho người sử dụng.
- Bit 3: Chỉ cho phép đọc, nó phản ánh trạng thái ngắt trong thiết bị.
- Bit 4: Tuỳ chọn mà chỉ đọc nó biểu thị có hay không có thiết bị thi hành
con trỏ cho khả năng mới tại offset 34h.
* Mức ‘0’: Hiển thị không có khả năng mới.
* Mức ‘1’: Hiển thị giá trị đang được đọc tại địa chỉ 34h.
- Bit 5: Là bit chỉ đọc (tuỳ chọn) nó hiển thị có hay không các thiết bị này
có khả năng chạy tại tần số 66 Mhz.
23
15 14 13 12 11 10 9 8 7 6 5 4 3 0
* Bit điều khiển phản ứng với sai số chẵn lẻ (bit 6 thanh ghi lệnh) được thiết lập.
- Bit 9 và bit 10: Là những bit mã hoá định thời của tín hiệu DEVSEL#.
* ‘00b’ ứng tốc độ nhanh.
* ‘01b’ ứng tốc độ trung bình.
* ‘10b’ ứng tốc độ chậm.
* ‘11b’ dùng để dành.
- Bit 11: Bit này phải được thiết lập bởi thiết bị đích.
- Bit 12: Bit này phải được thiết lập bởi thiết bị chủ, mỗi khi kết thúc quá
trình trao đổi dữ liệu của thiết bị chủ theo kiểu bỏ qua vai trò thiết bị đích.
- Bit 13: Bit này phải được thiết lập bởi thiết bị chủ mỗi khi có sự kết thúc
quá trình trao đổi dữ liệu theo kiểu bỏ qua vai trò thiết bị chủ.
- Bit 14: Bit này phải được thiết lập mỗi khi thiết bị xác nhận tín hiệu SERR#.
24
- Bit 15: Bit này phải được thiết lập bởi thiết bị đích mỗi khi thiết bị đó
phát hiện ra một sai số chẵn lẻ (như bit thứ 6 trên thanh ghi lệnh).
1.3.6. Các thao tác cơ bản trên bus PCI.
Các giao diện trên bus PCI có nhiều thao tác rất phức tạp, ta sẽ phân tích
hai thao tác quan trọng nhất là đọc và ghi dữ liệu 32 bit trên bus PCI, và sau
đó ta tìm hiểu về cách để các đối tượng kết thúc một giao dịch Bus.
1.3.6.1. Chu kỳ đọc dữ liệu với bus PCI 32 bit.
Đồ thị thời gian của chu kỳ đọc dữ liệu thể hiện như sau:
Chu kỳ đọc bắt đầu với một nhịp địa chỉ và quá trình giao dịch đọc chỉ xảy ra
khi FRAME# chuyển thành mức tích cực lần đầu tiên và xảy ra trên xung clock
thứ hai mở đầu cho nhịp địa chỉ. Trong suốt nhịp địa chỉ các tín hiệu AD31-
25
Hình 1.9: Chu kỳ đọc dữ liệu.
1 2
3 4
5 6 7 8
9
đọc và ghi) từ chu kỳ clock đầu tiên của nhịp dữ liệu đến điểm cuối cùng của
quá trình giao dịch. Điều này đảm bảo C/BE # không được dịch trái khoảng
dài. Các tín hiệu C/BE chứa Byte –Enable hợp lệ trong toàn bộ nhịp dữ liệu
độc lập với trạng thái của tín hiệu IRDY#. Các tín hiệu C/BE# chứa thông tin
về Byte-Enable cho (N+1) nhịp dữ liệu trong cả khối dữ liệu.
Nhịp dữ liệu đầu tiên trên một quá trình giao dịch đọc quy định một
chu kỳ quay vòng (làm cho hiệu lực bởi thiết bị đích qua TRDY#) trong
trường hợp này nhịp địa chỉ hợp lệ trên xung clock thứ hai và sau đó đối
tượng điều khiển các tín hiệu AD sớm nhất thì thiết bị đích có thể cung
cấp dữ liệu hợp lệ trên xung clock thứ tư. Đối tượng đích phải điều khiển
các tín hiệu AD và thông báo chu kỳ quay vòng khi tín hiệu DEVSEL#
được xác nhận.
Một nhịp dữ liệu được hoàn tất khi dữ liệu đã được truyền. Điều này xảy
ra khi cả hai tín hiệu IRDY# và TRDY# được xác nhận trên cùng một mức
sườn dương của xung clock. Tín hiệu TRDY# không được điều khiển cho tới
khi tín hiệu DEVSEL# được xác nhận. Khi đó nếu tín hiệu IRDY# hoặc
TRDY# không được xác nhận (do không đáp ứng kịp) thì một chu kỳ đợi
được chèn vào và dữ liệu không được truyền. Dữ liệu được truyền trên chu kỳ
clock 4, 6, 8 và chu kỳ đợi được chèn vào trên xung clock 3, 5, 7.
Trên hình 1.9 nhịp dữ liệu đầu tiên được hoàn tất trong bộ định thời
cho một quá trình giao dịch đọc. Nhịp dữ liệu thứ hai được mở rộng trên
chu kỳ clock 5 bởi vì tín hiệu TRDY# không tích cực. Và nhịp dữ liệu
26
cuối cùng được mở rộng trên chu kỳ clock thứ 7 vì tín hiệu IRDY#
không tích cực.
Đối tượng điều khiển cho biết tại chu kỳ clock thứ 7 thì nhịp dữ liệu tiếp theo
là nhịp dữ liệu cuối cùng. Tuy nhiên bởi vị nó không sẵn sàng để hoàn thành
nhịp truyền dữ liệu cuối cùng (tín hiệu IRDY# không tích cực tại xung clock thứ
7) và tín hiệu FRAME# ở mức tích cực. Chỉ khi tín hiệu IRDY# ở mức tích cực,
tín hiệu FRAME# không ở mức tích cực tại xung lock thứ 8 chỉ cho đối tượng
IRDY#
TRDY#
DEVSEL#
Hình 1.10: Chu kỳ ghi dữ liệu.
Data-1
Data-2
BE#’s-1
BE#’s-2
BE#’s-3
Chu kỳ ghi bắt đầu khi tín hiệu FRAME# được xác nhận tại xung clock
thứ 2. Quá trình giao dịch ghi tương tự như quá trình giao dịch đọc ngoại trừ
không có chu kỳ quay vòng vì đối tượng điều khiển cung cấp cả địa chỉ và dữ
liệu. Nhịp dữ liệu đầu tiên và nhịp dữ liệu thứ hai hoàn thành không có trạng
thái đợi. Tuy nhiên trong nhịp dữ liệu thứ 3 có 3 trạng thái đợi được chèn vào.
Chu kỳ này kết thúc khi tín hiệu IRDY# phải ở mức tích cực và tín hiệu
FRAME# không ở mức tích cực.
Dữ liệu bị giữ chậm bởi đối tượng điểu khiển tại chu kỳ clock thứ 5 vì tín
hiệu IRDY # không ở mức tích cực, nhịp dữ liệu cuối cùng được báo hiệu tại
chu kỳ clock thứ 6 và nó được hoàn thành tại chu kỳ clock thứ 8.
1.3.7. Sự kết thúc quá trình trao đổi dữ liệu.
Sự kết thúc của giao dịch PCI có thể được bắt đầu bởi đối tượng điều
khiển hoặc đối tượng bị điều khiển. Trong thực tế không thể dừng quá trình
giao dịch đơn phương. Phần còn lại của đối tượng điều khiển trong sự điều
khiển cuối cùng và mang lại tất cả các quá trình giao dịch có thứ tự và có tính
hệ thống. Tất cả quá trình giao dịch sẽ được kết thúc khi tín hiệu FRAME# và
IRDY# được chuyển về mức không tích cực.
1.3.7.1. Đối tượng điều khiển bắt đầu sự kết thúc quá trình giao dịch.
Cơ cấu kỹ thuật sử dụng trong đối tượng điều khiển bắt đầu kết thúc quá
trình giao dịch trong khi tín hiệu FRAME# ở mức không tích cực và tín hiệu
IRDY# ở mức tích cực. Những tín hiệu này chỉ cho đối tượng bị điều khiển