Tài liệu Đề tài Tổng quan các giao diện trong máy tính pc: MỤC LỤC
LỜI NÓI ĐẦU.
Chương I. TỔNG QUAN CÁC GIAO DIỆN TRONG MÁY TÍNH PC..... 4
1.1. Giao diện tốc độ thấp. ......................................................................... 4
1.1.1. Cổng giao tiếp song song...................................................................... 4
1.1.2. Cổng giao tiếp nối tiếp.......................................................................... 4
1.2.3. Giao tiếp theo chuẩn ISA...................................................................... 5
1.2.4. Giao tiếp theo chuẩn EISA ................................................................... 5
1.2. Giao diện tốc độ cao ............................................................................ 7
1.2.1. Giao diện PCI........................................................................................ 7
1.2.2. Giao diện AGP.................................................................................... 10
1.2.3. Giao diện USB .................................
67 trang |
Chia sẻ: hunglv | Lượt xem: 1011 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Tổng quan các giao diện trong máy tính pc, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
LỜI NÓI ĐẦU.
Chương I. TỔNG QUAN CÁC GIAO DIỆN TRONG MÁY TÍNH PC..... 4
1.1. Giao diện tốc độ thấp. ......................................................................... 4
1.1.1. Cổng giao tiếp song song...................................................................... 4
1.1.2. Cổng giao tiếp nối tiếp.......................................................................... 4
1.2.3. Giao tiếp theo chuẩn ISA...................................................................... 5
1.2.4. Giao tiếp theo chuẩn EISA ................................................................... 5
1.2. Giao diện tốc độ cao ............................................................................ 7
1.2.1. Giao diện PCI........................................................................................ 7
1.2.2. Giao diện AGP.................................................................................... 10
1.2.3. Giao diện USB .................................................................................... 11
1.3. Chuẩn giao diện Peripheral Component Interconnect - PCI....... 13
1.3.1. Mô tả chân tín hiệu trên Slot PCI ....................................................... 13
1.3.2. Các lệnh Bus. ...................................................................................... 18
1.3.3. Giao thức cơ bản của Bus PCI. ........................................................... 19
1.3.4. Định địa chỉ trên Bus PCI. .................................................................. 19
1.2.5. Tổ chức không gian cấu hình bus PCI. ............................................... 20
1.2.6. Các thao tác cơ bản trên bus PCI. ....................................................... 25
1.2.7. Sự kết thúc quá trình trao đổi dữ liệu. ................................................ 28
1.2.8. Đồ hình trạng thái bus PCI.................................................................. 34
Chương II. CHUẨN GIAO DIỆN USB.................................................. 36
2.1. Giao diện USB. .................................................................................. 36
2.1.1. Bộ kết nối USB ................................................................................... 37
2.1.2. Đặc tính điện của cổng USB............................................................... 38
2.1.3. Giao thức truyền USB......................................................................... 39
2.1.4. Cấu trúc gói USB. ............................................................................... 40
2.1.5. Các kiểu gói USB................................................................................ 41
2.1.6. Các kiểu truyền USB .......................................................................... 42
2.1.7. Điều khiển truyền dữ liệu ................................................................... 43
2.2. Hệ thống USB 2.0. ............................................................................. 45
4
CHƯƠNG III. THIẾT KẾ GIAO DIỆN USB (PC) SỬ DỤNG CHIP
FT245BM. ...................................................................................................... 46
3.1. Giới thiệu chung. ............................................................................... 46
3.2. Những ưu điểm nổi bật ..................................................................... 46
3.3. Sơ đồ khối .......................................................................................... 50
3.4. Sơ đồ chân tín hiệu............................................................................ 53
3.5. Gi¶n ®å thêi gian – Chu kú ®äc FIFO............................................. 58
3.6. Gi¶n ®å thêi gian – Chu kú ghi FIFO. ........................................... 58
3.7. Các mạch sử dụng chip FT245BM. ................................................ 59
3.7.1. Mạch tạo dao động.............................................................................. 59
3.7.2. CÊu h×nh với EEPROM....................................................................... 60
3.7.3. Cấp nguồn từ Bus USB....................................................................... 62
3.7.4. Kết cấu tự cấp nguồn USB.................................................................. 63
3.7.5. Mạch tạo nguồn cho Bus với mức lôgic 3.3v / nguồn nuôi................ 65
3.7.6. Mạch cấp nguồn (≤100mA) với nguồn điều khiển............................. 66
3.7.7. CÊu h×nh với bộ vi điều khiển (MCU) ................................................ 68
KẾT LUẬN.
TÀI LIỆU THAM KHẢO.
5
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.
6
IRQs
Audio
Codec
Modem
Codec
AC’97 Link
IDE
Firmware
Hub
PCI Bus
ISA Slots
INTR
USB
Ports
ISA Bridge
(Optional)
8259
Interrrupt
Controller
USB
Controller
Com 1
Com 2
Super
IO
I/O
Controller
Hub
(ICH)
PCI Slots
Local
Video
Memory
LPC
DRAM
Memory
Controller
Hub
(MCH)
Monitor
A
G
P
CPU
Hình 1.1: Sơ đồ ghép nối trong máy tính
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
do đó bus ISA cũng được mở rộng thành bus 16 bit bàng cách ghép thêm một
7
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ư:
- Độ rộng kênh dữ liệu 32 bit;
- Card thiết kế theo chuẩn EISA có hiệu quả làm việc cao.
- Tự đông cài đặt cấu hình cho Card tương tự như chuẩn Plug and Play.
Tuy nhiên chuẩn EISA không phải là thông dụng vì thiết bị theo chuẩn
này có giá thành đắt hơn và đặc biệt tốc độ (8MHz) của chuẩn EISA chậm
hơn nhiều so với các chuẩn giao tiếp bus cục bộ sau này được nhiều người ưu
chuộng.
Ngoài ra còn một số chuẩn giao diện nữa như: MCA (Micro Channel
Architecture bus) do IBM phát triển với sự bố trí chân và các đặc tính tín hiệu
hoàn toàn khác với ISA, EISA nhừm làm việc với các bộ xử lý 80386. Một số
đặc tính có thể kể đến là: các đường dữ liệu và địa chỉ 32 bit có thể chuyển dữ
liệu với card mở rộng dạng 8/16/32 bit. Các chuyển mạch DIP và chân cắm
được thay thế bằng cách sử dụng các thanh ghi điều khiển bằng phần mềm để
thiết lập cấu hình cho các card mở rộng. trên lý thuyết MCA có thể làm việc
8
với tần số 30MHz, các chân tín hiệu được xen với các chân đất và chân nguồn
làm giảm nhiễu xuyên âm, tổn hao, có mạch phân phối bus cho phép tổ chức
thiết bị chủ đa bus…tuy vậy sự độc quyền của IBM trong việc sử dụng MCA
đối với các hãng sản xuất thiết bị chuẩn này không được sử dụng rộng rãi.
Song song với sự ra đời các bộ vi xử lý 32 bit hoạt động với tốc độ cao,
các phần mềm đồ họa ra đời đã dẫn tới việc CPU phải xử lý và truyền đi một
lượng dữ liệu đồ họa lớn qua video card đến màn hình. Điều này làm cho các
bus nêu trên trở thành nguyên nhân gây cản trở, làm chậm tốc độ hệ thống vì
chúng làm việc với tốc độ thấp, băng thông hẹp. Những yêu cầu thực tế đó đã
thúc đẩy các phát triển chuyển sang sử dụng bus cục bộ. Mục đích xây dựng
bus cục bộ là nhằm truy cập bus hệ thống với tốc độ xấp xỉ tốc độ bộ vi xử lý,
cải thiện băng thông, nâng cao độ tin cậy và giảm giá thành nhờ chuẩn hóa.
1.2. Giao diện tốc độ cao.
1.2.1. Giao diện PCI.
Bus cục bộ PCI ra đời với mục đích đầu tiên là thiết lập một chuẩn giao
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
9
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
tín hiệu hệ thống và tín hiệu bus, làm cho chúng hiểu nhau.
• Cung cấp khả năng tạo cấu hình tự động, người dùng không cần đặt
lại chuyển mạch DIP hoặc chân cắm và lựa chọn ngắt, phần mềm đặt
cấu hình sẽ tự động chọn các địa chỉ và các ngắt chưa sử dụng để
tránh xung đột.
• Trên slot PCI giữa hai chân tín hiệu thường có chân Vcc hoặc Gnd để
ghim nhiễu xuyên âm và bức xạ vô tuyến;
• Thực hiện các ngắt mức khởi phát và hỗ trợ việc chia sẻ ngắt.
10
Bridge
Memory
Controller
Cache
Dram Audio
PCI local bus #0
Graphics
Other I/O
Functions
SCSI
PCI local bus #1
LAN
PCI-to-PCI
Bridge
Motion
Video
Processor
Hình 1.2: Sơ đồ khối hệ thống PCI
Ở sơ đồ trên ta thấy bộ vi xử lý, cache, bộ nhớ được nối tới bus PCI qua
một cầu PCI, nó cho phép bộ vi xử lý truy cập trực tiếp tới các thiết bị
truyền theo chuẩn PCI khác như bộ nhớ, không gian địa chỉ I/O. Đồng thời
cầu PCI tạo ra đường truyền băng thông rộng và có nhiều tính năng khác
nhau. Bus PCI cho phép ghép thêm 4 card trên các Slot PCI để kết nối tới
thiết bị ngoại vi.
Phương thức trao đổi dữ liệu chủ yếu của bus PCI là truyền khối (Bus
PCI cho phép truyền khối đối với cả bộ nhớ và không gian địa chỉ cổng
vào ra). Với phương thức này thì trên các đường tín hiệu ADxx bắt đầu
là thông tin địa chỉ tiếp theo là một hoặc nhiều các nhịp dữ liệu (32/64
bit) trong khối đó.
11
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ỉ
khi chạy ứng dụng. Bởi vậy phần bộ nhớ để lưu nó được trả về heap bộ nhớ
trống khi kết thúc ứng dụng. Việc giảm chi phí bằng cách chuyển dữ liệu đồ
họa vào bộ nhớ trung tâm là mục đích chính của AGP, nó được thiết kế để
cho tạo quá trình chuyển đổi trơn cho những nhà cung cấp đồ họa dựa trên
chuẩn PCI để phát triển các thiết bị có chức năng cao hơn trong tương lai.
12
Chipset Gfx
Accel
LFB
I/O I/O
AGP
PCI
I/O
Sys
Mem
Processor
Hình 1.3: Sơ đồ khối mối quan hệ AGP và PCI
AGP không thay thế và không hủy bỏ chuẩn PCI trong hệ thống. Cổng tốc
độ cao AGP độc lập với bus PCI về mặt vật lý, lôgic và điện. Nó là điểm kết
nối bổ xung trong hệ thống như hình trên. Nó dành riêng cho việc sử dụng các
thiết bị hiển thị, tất cả các thiết bị vào/ra khác sẽ vẫn ở trên bus PCI. Khe cắm
dành cho AGP sử dụng đầu nối mới không tương thích với đầu nối PCI, bảng
mạch PCI và AGP không thể hoán đổi cho nhau được. Đặc tính AGP được
phát triển bởi hãng Intel, độc lập với PCI của Special Interst Group.
Giao diện AGP sử dụng PCI 66Mhz như là thao tác cơ bản với mục đích
tối ưu hóa các ứng dụng đồ họa 3 chiều tốc độ cao bằng cách:
- Can thiệp sâu vào không gian nhớ.
- Phân kênh địa chỉ và dữ liệu trên bus vì thế bus đạt hiệu suất gần 100%.
- Với điện áp cung cấp 3.3V cho phép truyền dữ liệu một hoặc hai lần
trong một nhịp xung clock 66MHz. Vì thế tốc độ truyền có thể đến
1GBps.
1.2.3. Giao diện USB.
USB là một chuẩn truyền dữ liệu cho thiết bị ngoại vi được hãng Intel và
Microsoft phát triển. Đây là sự thay thế cho việc có quá nhiều đầu nối và cổng
ở 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
13
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...
Keyboard
(Hub)
Monitor
(Hub)
USB
Host Controller
(Root Hub)
Video
Frame
Buffer
Main Memory
16-Bit
PC Card
CardBus
PC Card
Mouse Speaker Disk
Tape
CD
ROM
CPU Local
Bus CPU
Memory
Bus
Host/
PCI
Cache/
Bridge
Graphics
Adapter
Card Bus
Bridge
LAN
Adapter
SCSI Host
Bus Adapter
PCI Bus
Hình 1.4: Sơ đồ khối mối quan hệ USB và PCI
Ở 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:
• Dễ sử dụng: nối thiết bị mà không cần mở hộp PC, USB sẽ nối ngay
thiết bị đó và bổ sung thông tin về thiết bị đó như kiểu loại, số hiệu, nhà
sản xuất... Nếu như rút một thiết bị USB ra khỏi PC thì chíp điều khiển
14
giao diện USB sẽ nhận ra và thông báo cho phần mềm điều khiển thiết bị,
do đó PC biết thiết bị đó đã được rút ra.
• Mở rộng cổng giao tiếp: các thiết bị theo chuẩn USB thường có mức
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 .
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.
15
Các chân tín hiệu được phân chia theo nhóm và tổ chức như sau :
Arbitration
(maslers only)
PCI
Compliant
Device
AD[31::0]
C/BE[3::0]#
Address
and Data
PAR
FRAME#
TRDY#
IRDY#
STOP#
DEVSEL#
IDSEL#
Interface
Control
PERR#
SERR#
Error
Reporting
REQ#
GNT#
C
RSystem
AD[63::32]
C/BE[7::4]#
PAR64
REQ64
ACK64
64-Bit
Extension
LOCK#
SMBCL
SMBDAT
PME#
CLKRUN#
Interface
Control
INTA#
INTC#
INTB#
INTD#
Interrupts
JTAG
+ Nhóm các chân hệ
- CLK: Là chân
bus PCI. Tất cả tín hiệ
CKLRUN# đều kích p
khác đều được xác địn
- RST#: Là chân
trạng thái ban đầu.
+ Nhóm các chân đị
- AD31-AD0: Là
ứng trên cùng một ch
vào/ra thì đó là byte LK
TDI
TDO
TCK ST# TMS
TRST#
(IEEE 1149.1)
Hình 1.5: Tổ chức chân Bus PCI
thống:
vào, cung cấp đồng hồ thời gian cho mọi thực thi trên
u, trừ RST#, INTA#, INTB#, INTC#, INTD#, PME# và
hát ở sườn dương xung CLK và các thông số thời gian
h thông qua tín hiệu này.
vào, để đặt lại các thanh ghi và các tín hiệu khác về
a chỉ và dữ liệu:
các chân 3 trạng thái, kết hợp dữ liệu và địa chỉ tương
ân tín hiệu. Trong nhịp địa chỉ, nếu truy cập địa chỉ
địa chỉ vật lý còn nếu truy cập bộ nhớ thì đó là hai từ
16
(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ư
đố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.
17
+ 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
bus, được điều khiển bởi đối tượng nhận dữ liệu.
- SERR#: Dùng báo lỗi chẵn lẻ của dữ liệu và địa chỉ trong tất cả các
thao tác trên bus.
+ Nhóm chân phân phối bus: Gồm chân REQ#, GNT# phục vụ cho việc
chuyển quyền điều khiển bus giữa các đối tượng khởi đầu giao dịch.
+ Nhóm các chân ngắt: Ngắt trong bus PCI là tuỳ chọn với mức tích cực
thấp. Một đối tượng yêu cầu ngắt khi nó đòi hỏi sự đáp ứng ngay của thiết bị
điều khiển. Tín hiệu báo ngắt tồn tại cho đến khi thiết bị điều khiển xoá yêu
cầu ngắt. Có 4 tín hiệu ngắt sau.
- INTA#: Dùng yêu cầu ngắt.
- INTB#: Dùng yêu cầu ngắt và chỉ dùng cho thiết bị đa chức năng.
- INTC#: Dùng yêu cầu ngắt và chỉ dùng cho thiết bị đa chức năng.
- INTD#: Dùng yêu cầu ngắt và chỉ dùng cho thiết bị đa chức năng.
+ Nhóm các chân bổ xung:
- PRSNT1 và PRSNT2: là chân tín hiệu vào. Các card cắm trên slot
dùng các tín hiệu này để báo cho bộ điều khiển PCI biết sự tồn tại của mình
để cung cấp nguồn theo yêu cầu của card. Những tín hiệu này là bắt buộc đối
với card bổ sung nhưng là tuỳ chọn đối tượng với board hệ thống.
- CLKRUN#: Là chân tín hiệu vào tuỳ chọn được sử dụng như một tín
hiệu vào cho thiết bị nhằm xác định trạng thái xung CLK.
- M66EN#: Chân vào, chân này chỉ ra một thiết bị hay một phân đoạn
bus sẽ thao tác ở tần số 66 MHz hay 33 MHz.
18
- PME#: Tín hiệu này là một tuỳ chọn mà có thể được sử dụng bởi một
thiết bị nhằm yêu cầu một sự thay đổi trạng thái năng lượng của hệ thống
hoặc thiết bị.
- 3.3 Vaux: Là chân tín hiệu vào, một tuỳ chọn 3.3V hỗ trợ nguồn năng
lượng cung cấp năng lượng cho một card bổ xung PCI.
+ Nhóm các chân mở rộng Bus 64 bit: Nếu sử dụng Bus mở rộng 64 bit thì
tất cả các chân này đều được sử dụng.
- 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ị.
- 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ị.
19
+ 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:
C/BE3...C/BE0 Tên lệnh
0000 Nhận ngắt
0001 Chu kỳ nhịp đặc biệt
0010 Đọc cổng vào/ra
0011 Viết cổng vào/ra
0100 Để dành
0101 Để dành
0110 Đọc bộ nhớ
0111 Ghi bộ nhớ
1000 Để dành
1001 Để dành
1010 Đọc cấu hình
1011 Ghi cấu hình
1100 Đọc bộ nhớ (theo khối)
1101 Hai chu kỳ địa chỉ
1111 Đọc bộ nhớ (theo khối)
20
1.3.3. Giao thức cơ bản của Bus PCI.
Phương thức trao đổi dữ liệu chủ yếu của bus PCI là truyền khối (Bus
PCI cho phép truyền khối đối với cả bộ nhớ và không gian địa chỉ cổng
vào ra). Với phương thức này thì trên các đường tín hiệu ADxx bắt đầu
là thông tin địa chỉ tiếp theo là một hoặc nhiều các nhịp dữ liệu (32/64
bit) trong khối đó.
Sự truyền dữ liệu trên bus PCI được điều khiển bởi 3 tín hiệu chính sau:
- FRAME#: Do đối tượng điều khiển Bus PCI khống chế để chỉ ra thời
điểm bắt đầu và kết thúc quá trình trao đổi dữ liệu.
- IRDY#: Do đối tượng điều khiển Bus PCI khống chế để chỉ ra nó có sẵn
sàng trao đổi dữ liệu hay không.
- TRDY#: Do đối tượng nhận dữ liệu khống chế để chỉ ra nó có sẵn sàng
trao đổi dữ liệu hay không.
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.
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).
21
+ Đị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.
00h
04h
08h
0Ch
10h
14h
18h
1Ch
20h
24h
28h
2Ch
30h
34h
38h
Interrupt
Line
Interrupt
Pin Min GntMax Lat
Reserved
Capabilities
Pointer
Reserved
Expansion ROM Base Address
Subsystem ID Subsystem Vendor ID
Base Address Registers
Cardbus CIS Poiter
Device ID Vendor ID
Command Status
BIST Cacheline
Size
Revision ID
Latency Timer Header
Type
Class Code
0 15 16 31
3Ch
Hình 1.6: Đoạn đầu không gian cấu hình
22
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
thanh ghi lệnh.
Interrupt Disable
Fast Back-to-Back Enable
SERR# Enable
Reserved
Parity Error Response
VGA Palette Snoop
Memory Write and Invalidate Enable
Special Cycles
Bus Master
Memory Space
I/O Space
15 10 9 8 7 6 5 4 3 2 1 0
Reserved
Hình 1.7: Tổ chức thanh ghi lệnh
- Bit 0: Điều khiển một phản ứng của thiết bị tới sự truy cập không gian I/O.
* Mức ‘0’: Không cho phép thiết bị phản ứng lại.
* Mức ‘1’: Cho phép thiết bị đáp ứng tới sự truy cập không gian I/O.
23
- Bit 1: Điều khiển một phản ứng của thiết bị tới sự truy cập không nhớ.
* Mức ‘0’: Không cho phép.
* Mức ‘1’: Thì cho phép thiết bị đáp ứng tới việc truy cập không gian nhớ.
- Bit 2: Điều khiển một thiết bị hoạt động như một thiết bị chủ trên bus PCI.
* Mức ‘0’: Không cho phép.
* Mức ‘1’: Thì cho phép thiết bị hoạt động như một bus chủ.
- Bit 3: Điều khiển hoạt động của thiết bị trên một chu kỳ đặc biệt.
* Mức ‘0’: Thì thiết bị lờ đi tất cả sự thực hiện trên một chu kỳ.
* Mức ‘1’: Cho phép thiết bị giám sát mọi chu kỳ.
- Bit 4: cho ta sử dụng bộ nhớ ghi và các lệnh không định sẵ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#.
- Bit 7 và bit 11÷15: Để dành.
24
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.
15 14 13 12 11 10 9 8 7 6 5 4 3 0
Reserved
Interrupt Status
Capabilities List
66MHz Capable
Reserved
Fast Back-to-Back Capable
Master Data Parity Error
DEVSEL Timing
00 - fast
01 - medium
10 - slow
Signaled Target Abort
Received Target Abort
Received Master Abort
Signaled System Error
Detected Parity Error
Hình 1.8: Tổ chức thanh ghi trạng thái
- 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.
* Mức ‘0’: Là tại tần số 33Mhz.
* Mức ‘1’: Là tại tần số 66Mhz.
25
- Bit 6: Là bit để dành.
- Bit 7: Là bit chỉ đọc (tuỳ chọn) nó chỉ cho biết có hay không thiết bị đích
có thể chấp nhận sự giao dịch kiểu back-to-back khi sự giao dịch đó không có
cùng các tác nhân.
* Mức ‘1’: Là chấp nhận.
* Mức ‘0’: Không chấp nhận.
- Bit 8: Chỉ được thực hiện bởi thiết bị điều khiển bus. Nó được thiết lập
theo ba điều kiện sau:
* Tác nhân bus phải đặt tín hiệu PERR# ở mức tích cực.
* Thiết lập tác nhân như thiết bị điều khiển bus cho sự thiết lập này với
những sai số đã xảy ra.
* 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#.
- 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).
26
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:
BE#’s
DEVSEL#
TRDY#
IRDY#
C/BE#
Data-2 Data-3 Data-1
Bus CMD
AD
Bus transaction
Data
Phase
Data
Phase
Data
Phase
Address
Phase
Address
D
at
a
tr
an
fe
r
D
at
a
tr
an
fe
r
W
ai
t W
ai
t
D
at
a
tr
an
fe
r
W
ai
t
FRAME#
CLK
9 8 7 6 5 4 3 21
Hình 1.9: Chu kỳ đọc dữ liệu.
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-
AD00 chứa thông tin địa chỉ còn các tín hiệu C/BE3-C/BE0 chứa lệnh bus tương
ứng. Xung clock đầu tiên của nhịp dữ liệu đầu tiên là xung clock thứ 3. Một nhịp
dữ liệu có thể có gồm một chu kỳ đợi và một chu kỳ truyền dữ liệu.
27
Tín hiệu trên các chân C/BE phải được giữ nguyên (cho cả hai quá trình
đọ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
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
28
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
đích biết rằng đã hoàn tất nhịp dữ liệu cuối cùng của quá trình giao dịch.
1.3.6.2. Chu kỳ ghi dữ liệu với bus PCI 32 bit.
Đồ thị thời gian của chu kỳ ghi dữ liệu thể hiện :
BE#’s-3 BE#’s-2 BE#’s-1
Data-2
DEVSEL#
TRDY#
IRDY#
C/BE#
Data-3
Bus CMD
AD
Bus transaction
Data
Phase
Data
Phase
Data
Phase
Address
Phase
Data-1 Address
D
at
a
tr
an
fe
r
D
at
a
tr
an
fe
r
W
ai
t
W
ai
t
D
at
a
tr
an
fe
r
W
ai
t
FRAME#
CLK
9 8 7 6 5 4 3 21
Hình 1.10: Chu kỳ ghi dữ liệu.
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.
29
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
biết rằng giai đoạn dữ liệu cuối cùng được tiến hành. Quá trình trao đổi dữ
liệu cuối cùng xảy ra khi cả 2 tín hiệu IRDY# và TRDY# ở mức tích cực. Quá
trình giao dịch hoàn thành khi cả 2 tín hiệu FRAME# và IRDY# ở mức không
tích cực (trạng thái bus rỗi). Đối tượng điều khiển bắt đầu thực hiện quá trình
giao dịch cuối cùng với 2 lý do sau:
* Một là: Sự hoàn thành quá trình giao dịch khi đối tượng điều khiển có sự
kết thúc giao dịch như mong muốn.
* Hai là: Thời gian ấn định cho sự kết thúc giao dịch khi tín hiệu GNT# của đối
tượng điều khiển ở mức không tích cực và bên trong bộ định thời trễ mất hiệu lực.
Ở hình 1.11 ta thấy giai đoạn dữ liệu cuối cùng được hoàn tất khi tín hiệu
FRAME# ở mức không tích cực và cả hai chân tín hiệu IRDY#, TRDY# ở
mức tích cực. Như vậy, bus có trạng thái rỗi khi tín hiệu IRDY# không ở mức
30
tích cực, điều đó chỉ xảy ra ở xung clock thứ 4. Lưu ý: Tín hiệu TRDY#
không được yêu cầu ở mức tích cực tại xung clock thứ 3. Trên hình bên trái
tín hiệu FRAME# ở mức không tích cực tại xung clock thứ 3 bởi vì bộ định
thời mất hiệu lực và đối tượng điều khiển sẵn sàng cho quá trình truyền dữ
liệu cuối cùng.
T.O
T.O
1 2 3 4 1 2 3 4
CLK
GNT#
FRAME#
IRDY#
TRDY#
Hình 1.11: Đối tượng điều khiển bắt đầu kết thúc trao đổi.
Tín hiệu FRAME# và IRDY# có quan hệ mật thiết với nhau trong tất cả
các quá trình giao dịch. Tín hiệu FRAME# có thể ở mức không tích cực trước
khi tín hiệu IRDY# ở mức tích cực.
Cầu nối bus chủ trong hệ thống PC tương thích phải trở về xung thứ nhất
trên một quá trình giao dịch đọc và loại bỏ dữ liệu trên một quá trình giao
dịch khi đã kết thúc với Master - abort.
1.3.7.2. Đối tượng bị điều khiển bắt đầu sự kết thúc quá trình giao dịch.
Có 3 kiểu đối tượng bị điều khiển bắt đầu sự kết thúc giao dịch:
+ RETRY: Nó được đưa vào kết thúc yêu cầu trước khi bất kỳ dữ liệu nào
được truyền đi bởi đối tượng bị điều khiển và tạm thời không cho phép tiến
hành giao dịch. Điều kiện này có thể xảy ra bởi vì đối tượng bị điều khiển
không có độ trễ ban đầu như yêu cầu. Retry là một trường hợp đặc biệt của sự
31
ngưng kết nối không cần quan tâm đến quá trình trao đổi dữ liệu cuối cùng đã
kết thúc hay chưa.
+ DESCONET: Yêu cầu cuối cùng sau khi dữ liệu được truyền tại giai
đoạn dữ liệu đầu bởi vì đối tượng bị điều khiển không cho phép đáp ứng trong
phạm vi độ trễ được yêu cầu. Lưu ý là Disconect # Retry.
+ TAGERT - ABORT: Là yêu cầu kết thúc bất thường bởi vì đối tượng bị
điều khiển đã tìm ra một sai số tiền định hoặc nó không cho phép hoàn thành yêu
cầu của đối tượng điều khiển. Ví dụ khi đối tượng điều khiển yêu cầu đọc dạng
DWORD tất cả các Byte trong không gian địa chỉ vào/ra, nhưng đối tượng bị
điều khiển được thiết kế chỉ để trao đổi dạng byte. Từ đó đối tượng bị điều khiển
không thể hoàn thành yêu cầu, nó kết thúc yêu cầu với Tagert - abort.
1.3.7.3. Ngưng kết nối không cần sự kết thúc nhịp dữ liệu.
1 2 3 4 5 6 7 8
D
at
a
tr
an
fe
r
D
at
a
tr
an
fe
r
Data
Phase
Data
Phase
Data
Phase
Data
Phase
CLK
FRAME#
IRDY#
TRDY#
STOP#
DEVSEL#
Hình 1.12: Ngưng kết nối dạng thứ 1
Hình 1.12 chỉ ra cho ta thấy một quá trình giao dịch bị chấm dứt với việc
ngưng kết nối không cần đến sự kết thúc nhịp dữ liệu. Một quá trình giao dịch
bắt đầu khi tín hiệu FRAME# ở mức tích cực trên xung clock thứ 2 và chân
IRDY# ở mức tích cực trên xung clock thứ 3.
32
Đối tượng điều khiển đang yêu cầu truyền khối dữ liệu bởi vì cả hai tín
hiệu FRAME# và IRDY# đều được ở mức tích cực trên xung clock thứ 3. Đối
tượng bị điều khiển khẳng định sự giao dịch thông qua tín hiệu DEVSEL# tại
xung clock thứ 4. Nhịp dữ liệu đầu tiên hoàn thành trên xung clock thứ 4 và
nhịp thứ hai hoàn thành trên xung clock thứ 5.
Tại xung clock thứ 6 đối tượng điều khiển muốn tiếp tục truyền dữ liệu
bởi vì cả 2 tín hiệu FRAME# và IRDY# vẫn còn ở mức tích cực. Tuy nhiên
đối tượng bị điều khiển không thể hoàn thành bất cứ nhịp dữ liệu nào nữa
và tại xung clock thứ 6 thì chân STOP# ở mức tích cực còn chân TRDY#
không ở mức tích cực. Khi đó thì chân IRDY# và STOP# đều ở mức tích
cực tại xung clock thứ 6, lúc đó nhịp dữ liệu thứ 3 hoàn thành. Đối tượng
bị điều khiển vẫn tiếp tục giữ tín hiệu STOP# ở mức tích cực vì tín hiệu
FRAME# vẫn còn ở mức tích cực tại xung clock thứ 6. Nhịp thứ 4 và là
nhịp dữ liệu cuối cùng được hoàn thành tại xung clock thứ 7. Bus quay trở
lại trạng thái nhàn rỗi tại xung clock thứ 8. Trong ví dụ này, hai nhịp dữ
liệu đầu tiên hoàn thành sự truyền dữ liệu trong khi hai nhịp cuối cùng thì
không. Đối tượng bị điều khiển có thể hoàn thành hai nhịp dữ liệu đầu tiên
nhưng nhịp thứ ba thì không được hoàn thành.
1 2 3 4 5 6 7 8
D
at
a
tr
an
fe
r
D
at
a
tr
an
fe
r
Data
Phase
Data
Phase
Data
Phase
CLK
FRAME#
IRDY#
TRDY#
STOP#
DEVSEL#
Hình 1.13: Ngưng kết nối dạng thứ 2
33
Với hình 1.13, ta thấy rằng quá trình giao dịch cũng được mô tả như trên
hình 1.12 ngoại trừ đối tượng điều khiển chèn thêm một trạng thái đợi ở xung
clock thứ 6. Khi đó tín hiệu FRAME# đã được ở mức tích cực tại xung clock
thứ 5, đối tượng điều khiển đưa vào ít nhất một nhịp dữ liệu và phải hoàn
thành nó. Đối tượng điều khiển hoàn toàn không cho phép để chuyển tiếp bus
tới trạng thái nhàn rỗi bởi tín hiệu FRAME# không ở mức tích cực và giữ tín
hiệu IRDY# không ở mức tích cực. Khi đối tượng điều khiển sẵn sàng để xác
nhận IRDY#, nó chỉ ra sự không xác nhận tín hiệu FRAME# tại nhịp dữ liệu
cuối cùng và nhịp dữ liệu cuối cùng sẽ hoàn thành tại xung clock thứ 7, khi đó
tín hiệu STOP# ở mức tích cực. Trong ví dụ này chỉ gồm có 3 nhịp dữ liệu
trong khi đó ở ví dụ trước là 4, bởi vì đối tượng điều khiển đã chèn thêm một
trạng thái đợi nên đã cho phép đối tượng điều khiển hoàn thành quá trình giao
dịch bus với 3 nhịp dữ liệu.
1.3.7.4. Sự giao dịch bị bãi bỏ bởi đối tượng bị điều khiển.
1 2 3 4
CLK
FRAME#
IRDY#
TRDY#
STOP#
DEVSEL#
Hình 1.14: Sự giao dịch bị bãi bỏ bởi đối tượng bị điêu khiển.
34
Hình trên chỉ cho biết là đối tượng bị điều khiển yêu cầu một quá trình
giao dịch để ngưng và không muốn đối tượng bị điều khiển lặp yêu cầu một
lần nữa. Đôi lúc trước xung clock thứ 1 đối tượng điều khiển đã xác nhận tín
hiệu FRAME# để khởi đầu sự yêu cầu và đối tượng bị điều khiển yêu cầu truy
cập bởi sự xác nhận DEVSEL#. Nhịp dữ liệu có thể hoặc không thể hoàn
thành trước xung clock 1.
Tại xung clock thứ 2, đối tượng bị điều khiển xác định rằng đối tượng điều
khiển có yêu cầu một quá trình giao dịch mà với quá trình giao dịch đó thì đối
tượng bị điều khiển không có khả năng để hoàn thành hoặc xác định rằng có
một lỗi không thể sửa được đã xảy ra. Tín hiệu DEVSEL# phải ở mức tích
cực cho một hoặc nhiều hơn một xung clock. Đối với tín hiệu Target-abort thì
TRDY# phải ở mức không tích cực khi tín hiệu DEVSEL# ở mức không tích
cực và tín hiệu STOP# ở mức tích cực.
Nếu bất cứ dữ liệu nào đã được truyền trong suốt nhịp dữ liệu trước đó
của quá trình giao dịch hiện thời, vì tín hiệu STOP# đã ở mức tích cực tại
xung clock thứ 2 và đối tượng điều khiển có thể xác nhận tín hiệu IRDY#
tại xung clock thứ 3, nó không xác nhận FRAME# tại xung clock thứ 3.
Quá trình giao dịch có thể hoàn thành tại xung clock thứ 3 bởi vì tín hiệu
IRDY# và STOP# ở mức tích cực.
Tại xung clock thứ 4, đối tượng điều khiển không xác nhận tín hiệu
IRDY# và đối tượng bị điều khiển cũng không xác nhận tín hiệu STOP#.
1.3.7.5. Sự giao dịch trễ.
Sự giao dịch trễ được thực hiện bởi đối tượng bị điều khiển và nó không
thể hoàn thành nhịp dữ liệu ban đầu.
Có hai kiểu thiết bị sẽ sử dụng thực hiện sự giao dịch trễ: Bộ điều khiển
vào/ra và cầu nối (đây là cầu PCI-to-PCI). Một cách tổng quát bộ điều khiển
vào/ra sẽ điều khiển sự giao dịch trễ đơn (delayed transaction) tại một thời
35
điểm, trong khi đó cầu nối có thể chọn để điều khiển sự truyền khối để cải
thiện sự thực thi hệ thống.
Một thuận lợi của sự giao dịch trễ đó là bus không được giữ ở trạng thái
đợi trong khi hoàn thành một truy cập tới thiết bị thấp hơn trong khi đối tượng
điều khiển gốc tái phân giải cho bus.
1.3.8. Đồ hình trạng thái bus PCI.
Vì bus PCI đồng bộ hoàn toàn nên tất cả các thao tác đều hoạt động theo
đồng hồ hệ thống. Hình 2.12 mô tả sự chuyển biến trạng thái trên bus PCI.
Kết thúc một chu kỳ
Bus trống
Bắt đầu chu kỳ đọc
Bắt đầu chu kỳ ghi
Reset
7
6
5
2
3
4
0
Hình 1.15: Đồ hình trạng thái bus PCI
Trạng thái 4: Bus đang ở trạng thái nghỉ, điểm đầu của 1 chu kỳ bus được
phát hiện theo điều kiện này. Nó chuyển sang trạng thái 2 hoặc trạng thái 5
khi chu kỳ I/O được khởi hoạt cho thiết bị đích. Nó chuyển sang trạng thái 0
nếu chu kỳ bus bắt đầu mà không liên quan đến thiết bị này.
36
Trạng thái 0: Bus ở trạng thái nghỉ, bất kỳ một tác vụ nào khác cũng được
thực hiện. Nó đợi cho đến khi có điều kiện nghỉ thì từ trạng thái này nó không
chuyển về trạng thái mới.
Trạng thái 2: Một chu kỳ bus I/O được thực hiện cho thiết bị này. Thiết bị
này sẽ xác nhận tín hiệu DEVSEL# và đáp ứng chu kỳ bus. Trong cùng thời
gian thiết bị đích xác nhận tín hiệu TRDY# và báo rằng nó có thể nhận dữ
liệu, lúc này nó khoá dữ liệu và chuyển về trạng thái 3 khi tín hiệu IRDY#
được xác nhận và tín hiệu FRAME# không ở mức tích cực.
Trạng thái 3: Các tín hiệu DEVSEL# và TRDY# không ở mức tích cực.
Thông thường tín hiệu DEVSEL# và TRDY# được phát ở xung clock tiếp
theo và chuyển về trạng thái nghỉ. Nhưng nó chuyển trực tiếp về trạng thái 2
hoặc trạng thái 5 mà không phải đi qua trạng thái chờ khi nó gặp thiết bị ở
trạng thái này và lệnh đọc ghi I/O được đưa ra một lần nữa (trở nhanh về tác
vụ ngược).
Trạng thái 5: Bắt đầu chu kỳ đọc.
Trạng thái 6: Chu kỳ đọc đang được thực hiện. Thiết bị đích xác nhận tín
hiệu DEVSEL# và đáp trả chu kỳ đọc. Cùng lúc đó nó xuất dữ liệu đọc tới
các đường tín hiệu AD và xác nhận tín hiệu TRDY#. Lúc này, nó chuyển về
trạng thái 7 khi tín hiệu IRDY# được đặt mức tích cực (bộ khởi hoạt có thể
tiếp nhận dữ liệu đọc) và tín hiệu FRAME# không có mức tích cực (nhịp dữ
liệu cuối cùng).
Trạng thái 7: Chu kỳ đọc kết thúc. Thiết bị đích bỏ các tín hiệu
DEVSEL#, TRDY#. Sau đó phát tín hiệu DEVSEL#, TRDY# ở clock tiếp
theo và nó chuyển về trạng thái nghỉ.
Trạng thái 1: Không được xác định ngay cả khi nó gặp trạng thái này vì lý
do lỗi thì nó cũng chuyển về trạng thái 0.
37
CHƯƠNG II .
CHUẨN GIAO DIỆN USB.
2.1. Giao diện USB.
Chuẩn Bus tuần tự đa năng USB (Universal Serial Bus) được các hãng
lớn như Intel, Microsoft, IBM, HP-Compaq, NEC, Philip cùng tham gia xây
dựng. Chuẩn này đề xuất một giải phát giao diện chuẩn hóa cho tất cả các
thiết bị ngoại vi có thể dùng một cổng I/O và như vậy giúp giảm đi nhiều
cổng I/O cho các thiết bị ngoại vi như hiện nay.
Universal Serial Bus là một giao thức truyền dư liệu tuần tự giữa máy tính
PC (hay chủ USB – USB Host) với các thiết bị ngoại vi. Máy tính PC được
coi như chủ của hệ thống bus. Nguyên tắc kết nối này hoàn toàn tương tự
cách trao đổi thông tin trong mạng máy tính. Dữ liệu được truyền trên giao
USB theo hai chế độ :
• Chế độ Full speed với tốc độ 12 Mbs.
• Chế độ Low speed với tốc độ 1.5 Mbs.
Hình 2.1: Sơ đồ cấu trúc ghép nối tầng của các thiết bị ngoại vi dùng USB
38
Với chuẩn giao diện USB có thể kết nối tối đa 127 thiết bị bằng cách nối
nối tiếp nhau hoặc dùng bộ Hub trung tâm. Bẩy thiết bị ngoại vi có thể nối tới
1 hub, trong đó bao gồm cả thiết bị hub để có thể nối tiếp với 7 thiết bị tiếp
theo nữa. Như vậy thiết bị ngoại vi có thể được nối trực tiếp với máy chủ hay
gián tiếp qua bộ tiếp nối Hub.
Ưu điểm chính của USB là: y Ghép nối đơn giản do ổ cắm được chuẩn hóa.
y Linh hoạt trong sử dụng.
y Dễ chiển khai và chi phí thấp.
Một ưu điểm nữa của USB là tính năng cắm-là-chạy “nóng” (Hot Plug-
and- play). Tức là người sử dụng có thể cắm thêm hoặc tháo ra một thiết bị
ngoại vi mà không cần tắt máy chủ hay cài đặt lại hệ thống.
2.1.1. Bộ kết nối USB
Tất cả các thiết bị USB có một sự kết nối ngược chiều tới các máy chủ và
tất cả máy chủ có một sự kết nối ngược chiều tới các thiết bị khác. Sự kết nối
ngược chiều và thuận chiều thì không thể thay thế cho nhau một cách máy
móc. Có hai kiểu khá phổ biến cho bộ kết nối USB, gọi là kiểu A và B.
Kiểu “A “ Kiểu “B “
Hình 2.2: Hai kiểu nối của chuẩn USB
39
Kiểu A cắm mặt ngược chiều. Lỗ cắm kiểu A là loại lỗ cắm phổ biến
trong bảng mạch chủ của máy tính. Lỗ cắm kiểu B luôn luôn được kết nối
thuận chiều và chính vì vậy lỗ cắm kiểu B luôn luôn được thiết lập trên thiết
bị. Kiểu A có dây nối kiểu dây thẳng và một ma trận của USB có một vài sự
thay đổi trong một vài trạng thái lưu trữ của máy tính. Với lỗ cắm kiểu B có
miền kết nối rộng và dễ dàng kết nối với các thiết bị ngoại vi khác.
Cáp USB gồm có 4 dây dẫn, hai dây dẫn điện và hai dây truyền tín hiệu.
Hinh 2.3: Cap USB
Thường kiểu màu của các dây dùng cho cáp USB quy định như sau:
Pin Number Cable Colour Funtion
1 Red VBUS (5 volts)
2 White D-
3 Green D+
4 Black Ground
Bảng chức năng của chân tín hiệu trong bộ nối USB
Với bảng này có thể cho biết nhận dạng các dây nối qua cổng USB.
2.1.2. Đặc tính điện của cổng USB.
USB sử dụng một cặp biến đổi sai phân cho dữ liệu. Trên một thiết bị giao
tiếp có tốc độ thấp và đầy đủ, nếu tín hiệu sai phân là "1" thì dữ liệu được
truyền qua chân D+ với mức điện áp trên 2,8 V với một điện trở 15Ω kéo
xuống mặt đất và qua chân D- (chân 2) có mức điện áp dưới 0,3 V cùng một
40
điện trở 1,5 Ω lên tới 3,6V,. Nếu tín hiệu sai phân là "0" thì trên một kênh
điều khiển khác chân D- lớn hơn 2,8V và chân D+ ít hơn 0,3V cùng một giới
hạn điện trở thích hợp.
Thiết bị thu xác định một tín hiệu sai phân "1" khi D+ là 200mV lớn hơn
D- và là "0" khi D+ ít hơn D-. Cực tính của tín hiệu bị đảo ngược tín hiệu phụ
thuộc vào tốc độ của bus.
Máy phát USB có cả tín hiệu sai phân và một tín hiệu ra. Tất nhiên trạng
thái bus được chỉ ra bởi một tín hiệu trên D+ , D- hoặc cả hai.
Bus có tốc độ thấp hoặc cao có đặc tính trở kháng 90Ω+/15%. Đặc tính
này rất quan trọng để quan sát dạng dữ liệu khi chọn trở kháng thoả mãn
chuỗi điện trở cho D+ và D-.
Ở chế độ tốc độ cao (480Mb/s) có dòng điện cố định 17,78 mA cho việc
truyền tín hiệu để giảm nhiễu.
Chế độ trì hoãn tạm thời có tính bắt buộc với mọi thiết bị. Dòng hoãn có
gía trị tối đa tương ứng với một đơn vị tải được mặc định là 500µA. Tại máy
truy cập chủ cả D+ và D- có điện trở ngược là 15KΩ và tại thiết bị ngoại vi
có điện trở 1,5 KΩ.
Rất nhiều thiết bị USB hoạt động với mức điện áp 3,3 V. Một thiết bị USB
có chế độ hoãn khi ở thiết bị đó không hoạt động trên bus. Sự duy trì kết nối
tới chế độ hoãn của máy truy cập chủ hoặc máy chủ thì thiết bị USB vẫn phải
cung cấp nguồn để nó tăng cường sự lựa chọn điện trở trong suốt chế độ hoãn.
2.1.3. Giao thức truyền USB.
Không giống như giao thức truyền nối tiếp thông thường, mỗi giao dịch
USB bao gồm:
• Gói dấu hiệu : chứa địa chỉ.
41
• Gói tính chất dữ liệu.
• Gói trạng thái.
Máy USB chủ sẽ giữ bus hoạt động liên tục bằng cách truyền một gói
khởi động khung SOF trong chu kỳ 1ms (1KHz). Gói dấu hiệu được tạo ra
bởi thiết bị chủ để mô tả gói tiếp theo và thao tác đối với dữ liệu là gì (đọc
hay ghi). Gói tiếp theo thường là gói dữ liệu mang dung lượng. Và cuối cùng
là gói trạng thái dùng để bắt tay, thông báo dữ liệu đã được nhận thành công
hay có lỗi khi giao dịch.
2.1.5. Cấu trúc gói USB.
Cấu trúc 1 gói thông thường bao gồm các trường:
• Đồng bộ (SYNC): tất cả các gói đều bắt đầu bằng trường SYNC có độ dài 8
bit, (ở chế độ high-speed trong USB 2.0 là 32 bit) dùng đồng bộ của đối tượng
truyền và nhận dữ liệu.
• Mã gói: được mã hoá bởi 4 bit trong thanh ghi PID (packet identifier) 8 bit.
Mã gói cho ta biết các kiểu cấu trúc gói như sau:
Group Pro Value Packet Identifier
0001 OUT Token
1001 IN Token
0101 SOF Token
Token
1101 SETUP Token
0011 DATA0
1011 DATA1
0111 DATA2
Data
1111 MDATA
42
0010 ACK Handshake
1010 NAK Handshake
1110 STALL Handshake
Handshake
0110 NYET (No Response Yet)
1100 PREamble
1100 ER
1000 Split
0100 Ping
Special
0000 Reserved
• Trường địa chỉ (ADDR) : dùng 7 bit để định địa chỉ cho 127 thiết bị ngoại vi.
• Trường dữ liệu (DATA) : có độ dài từ 0 byte đến 1023 byte.
Và các trường khác như: định điểm cuối ENDP, kiểm tra chu kỳ thừa
CRC, kết thúc gói EOP. Tùy vào từng kiểu gói mà các trường trên có hoặc
không có trong gói.
2.1.5. Các kiểu gói USB.
Có 4 kiểu gói khác nhau:
- Gói dấu hiệu: chỉ thông báo kiểu giao dịch:
+ Vào: thông báo thiết bị USB HOST muốn đọc thông tin.
+ Ra: thông báo thiết bị USB HOST muốn gửi thông tin.
43
+ Thiết lập: Bắt đầu điều khiển sự trao đổi.
Định dạng của gói như sau:
Sync PID ADDR ENDP CRC5 EOP
- Gói dữ liệu: có 2 kiểu, mỗi kiểu có thể truyền 0 đến 1023 Byte dữ liệu đều
có định dạng
Sync PID Data CRS16 EOP
- Gói bắt tay: có 3 kiểu
• ACK: thông báo gói đã được nhận thành công.
• NAK: boá thiết không thể trao đổi dữ liệu.
• STALL: thiết bị yêu cầu sự can thiệp của thiết bị điều khiển USB.
Sync PID EOP
- Gói bắt đầu của khung: gồm 11 bit được thiết bị điều khiển USB gửi mỗi
1ms, có định dạng sau:
Sync PID Frame Number CRS5 EOP
2.1.6. Các kiểu truyền USB.
Thông tin có thể đi theo hai chiều hay một chiều. Máy chủ xử lý việc trao
đổi dữ liệu với từng thiết bị ngoại vi một cách độc lập. Có 4 kiểu truyền:
- Truyền đẳng thời: là phương pháp truyền 1 chiều. Giao thức bắt đầu khi
có mã thông báo và một nhịp dữ liệu. Nếu thiết bị điều khiển USB đưa ra thông
báo IN thì thiết bị USB đưa dữ liệu tới thiết bị điều khiển USB. Nếu thiết bị USB
nhận dữ liệu từ thiết bị điều khiển USB ngay sau khi có mã thông báo OUT.
Không có sự bắt tay trong cách truyền này, vì vậy thông tin có thể bị thất lạc.
44
- Truyền khối: Giống như truyền đẳng thời nhưng nó có sự bắt tay sau
khi nhận dữ liệu, để khẳng định dữ liệu đã được thu, phát một cách chính xác.
Tín hiệu ACK sẽ được phát bởi thiết bị USB hoặc thiết bị điều khiển USB nếu
dữ liệu nhận không lỗi. Cho nên nó là phương pháp truyền hai chiều.
Thiết bị USB có 2 tín hiệu báo lỗi:
• NAK báo tạm thời không thực hiện yêu cầu của thiết bị điều khiển USB.
• STALL báo có 1 điều kiện sai cần đến sự can thiệp của thiết bị điều khiển USB.
- Truyền dẫn có điều khiển: là truyền một chiều. Giao thức truyền có 2
hoặc 3 trạng thái: cài đặt, trạng thái và dữ liệu (tuỳ chọn). Mọi thiết bị ngoại
vi USB đều phải xử lý được loại truyền này.
- Truyền có ngắt: tương tự như truyền khối nhưng nó chỉ có một mã
thông báo IN. Thiết bị USB cho phép truyền lại dữ liệu, nếu không có ngắt dữ
liệu mới thì sẽ thực hiện bắt tay bằng tín hiệu NAK. Nếu thiết bị USB cần đến
sự can thiệp của thiết bị điều khiển thì nó sẽ lại bắt tay bằng tín hiệu STALL.
2.1.7. Điều khiển truyền dữ liệu.
Máy chủ gửi thẻ khoá SETUP bảo cho hàm biết rằng gói tiếp theo sẽ nằm
trong gói SETUP. Trường địa chỉ giữ địa chỉ của thiết bị mà máy chủ đang
yêu cầu bộ mô tả từ đó. Số thứ tự của điểm kết thúc là Zero để xác định ống
mặc định. Khi đó máy chủ sẽ gửi gói Data0. Nó có tác dụng lượng hữu ích 8
byte. Hàm USB xác nhận gói SETUP đã được đọc đúng. Nếu gói được nhận
là sai thì thiết bị nhận sẽ bỏ qua gói này. Khi đó máy chủ sẽ gửi lại gói sau
một khoảng thời gian trễ nhỏ.
1. Setup Token Sync PID ADRR ENDP CRC5 EOP Address & Endpoint Number
2.Data0 Packet Sync PID Data0 CRC16 EOP Device Device Discriptor
3 A k H d h k
Sync PID EOP Device Ack Setup Packet
45
Ba gói trên mô tả tác vụ thứ nhất của USB. Thiết bị USB sẽ giải mã 8 byte
nhận được và xác định xem đó có phải là yêu cầu cảu thiết bị hay không. Lúc
đó thiết bị sẽ gửi bộ mô tả thiết bị đó và đó là tác vụ tiếp theo của USB.
1. In Token Sync PID ADRR ENDP CRC5 EOP Address & Endpoint Number
2.Data0 Packet Sync PID Data0 CRC16 EOP First 8 byte of Device Discriptor
3. Ack Handshake Sync PID EOP Host Acknowledges Packet
1 I T k
Sync PID ADRR ENDP CRC5 EOP Address & Endpoint Number
2.Data1 Packet Sync PID Data1 CRC16 EOP Second 8 byte of Device Discriptor
3. Ack Handshake Sync PID EOP Host Acknowledges Packet
1. In Token Sync PID ADRR ENDP CRC5 EOP Address & Endpoint Number
2.Data0/1 Packet Sync PID Data0/1 CRC16 EOP Last 8 byte of Device Discriptor
3. Ack Handshake Sync PID EOP Host Acknowledges Packet
Trong trường hợp này, giả sử dữ liệu hữu ích là 8 byte. Máy chủ gửi thẻ
khoá IN để đảm bảo cho thiết bị nó có thể gửi dữ liệu cho điểm cuối này. Vì
kích thước gói dữ liệu lớn nhất là 8 byte nên ta có thể phân chia bộ mô tả thiết
bị 12 byte ra để gửi.
Khi bộ mô tả thiết bị đã được gửi thì tiếp theo sẽ là tác vụ trạng thái. Nếu
tất cả các tấc vụ đã thành công thì máy chủ sẽ gửi 1 gói có chiều dài bằng
không để báo toàn bộ tác vụ đã thành công.
1. Out Token Sync PID ADRR ENDP CRC5 EOP Address & Endpoint Number
2.Data0 Packet Sync PID Data0 CRC16 EOP Zero Length Packet
3. Ack Handshake Sync PID EOP Host Acknowledges Packet
46
2.2. Hệ thống USB 2.0.
USB 2.0 tương thích ngược với thiết bị USB 1.x và cả hai có một số đặc
trưng giống nhau như:
• Sử dụng cùng đầu nối.
• Dùng cáp tốc độ đầy đủ cho thiết bị tốc độ cao.
• Tận dụng cùng một mô hình truyền thông.
• Sử dụng cùng sự dự đoán đi kèm thiết bị.
• Sử dụng cùng kiểu cấu hình thiết bị.
Hệ thống cơ sở USB 2.0 được thiết kế để hỗ trợ thiết bị tốc độ cao (high-
speed), thiết bị tốc độ đầy đủ (full-speed) và thiết bị tốc độ thấp (low-speed).
Phiên bản USB 2.0 có tốc độ truyền dữ liệu nhanh gấp 30 ÷ 40 lần so với
phiên bản 1.1 ban đầu. Tốc độ truyền của nó có thể đạt tới 360 ÷ 480 Mbit/s,
và bảo đảm được cho các hệ ngoại vi tốc độ lớn sau này.
Hình 2.4: Cấu hình hệ thống USB 2.0 trong tương lai.
47
CHƯƠNG III.
THIẾT KẾ GIAO DIỆN USB (PC) SỬ DỤNG
CHIP FT245BM
3.1. Giới thiệu chung.
IC FT245BM là cách thức truyền dữ liệu dễ dàng và hiệu quả với ngoại vi và
chủ PC, nó đạt tới tốc độ 1MB/s. Với thiết kế FIFO tạo một cho nó có thể dễ
dàng để tương thích với bất kỳ bộ vi điều khiển hay vi xử lý thông qua cổng IO.
Để gửi dữ liệu từ thiết bị ngoại vi tới máy chủ, đơn giản ta chỉ cần ghi
byte dữ liệu vào mođun khi mà TXE# ở mức thấp. Nếu bộ đệm phát (384)
byte đầy hay bận lưu trữ byte đã ghi trước đây thì thiết bị sẽ đưa chân TXE#
lên mức cao cho phép ngừng quá trình dữ liệu được ghi cho đến khi một số dữ
liệu FIFO được truyền qua USB tới chủ.
Khi chủ gửi dữ liệu tới thiết bị ngoại vi, thì thiết bị sẽ đưa chân RXF# ở
mức thấp để cho biết thiết bị ngoại vi có ít nhất 1 byte sẵn sàng. Sau đó thiết
bị ngoại vi đọc dữ liệu cho đến khi RXF# ở mức cao để chỉ rằng không có
thêm dữ liệu được đọc vào.
3.2. Những ưu điểm nổi bật:
3.2.1. Tích hợp mạch Power-On-Reset(POR).
IC FT245BM được tích hợp chức năng POR bên trong. Chân RESET hiện
tại có chức năng cho phép bên ngoài reset lại IC nếu cần thiết, tuy nhiên với
nhiều ứng dụng chân này có thể được bỏ qua N/C hoặc gắn cố định với Vcc.
Thêm vào đó, một chân ra reset (RSTO#) có thể cho phép mạch POR mới
cung cấp một chức năng reset ổn định tới MCU (MicroController) bên ngoài
và cho các thiết bị khác. RSTO# là chân TEST ở các chíp thế hệ trước.
3.2.2. Tích hợp mạch RCCLK.
48
Ở các thế hệ trước, yêu cầu phải có một mạch RC bên ngoài để bảo đảm
cho bộ tạo dao động và đồng hồ nhân tần số PLL ổn định trước khi cho phép
tác động của đồng hồ bên trong tới IC. Mạch này bây giờ đã được đưa vào
trong chip – chân thực hiện chức năng này được thiết kế như chân TEST và
được nối đất khi hoạt động bình thường.
3.2.3. Tích hợp bộ chuyển đổi mức trong mạch tương thích FIFO và tín hiệu
điều khiển.
Trước đây có thể điều khiển FIFO và tín hiệu điều khiển ở mức lôgic 5V
CMOS. Thế hệ này có một chân VccIO riêng biệt cho phép IC có thể tương thích
trực tiếp với 3.3V và các họ lôgíc khác mà không cần đến bộ chuyển đổi bên ngoài.
3.2.4. Bộ điều khiển nguồn cho Bus USB, dòng điện của thiết bị cao.
Một tín hiệu PWREN# mới có thể dùng để điều khiển trực tiếp một
transistor hoặc MOSFET kênh P để ứng dụng cho yêu cầu chuyển mạch
nguồn của mạch lôgic bên ngoài. Một EEPROM mới dựa vào tuỳ chọn làm
cho IC được nối qua dây của mạch FIFO tương thích khi tắt nguồn (PWREN#
ở mức cao). Trong chế độ này, điện áp còn dư ở mạch ngoài chạy xuống
GND khi mà nguồn khác biệt vì vậy phải bảo đảm rằng mạch ngoài điều
khiển bằng chân PWREN# reset chính xác khi mà nguồn được hồi phục lại.
3.2.5. Tín hiệu Send Immediate/WakeUp (SI/WU).
Tín hiệu mới Send Immediate/WakeUp kết hợp 2 chức năng trên 1 chân.
Nếu USB ở chế độ ngắt (và chế độ đánh thức được cho phép trong EEPROM),
chốt chân này ở mức thấp sẽ làm IC yêu cầu hồi phục lại từ chế độ ngắt
(WakeUp) trên Bus USB. Thông thường, nó có thể được dùng để “đánh thức”
PC chủ. Khi hoạt động bình thường, nếu chân này được chốt ở mức thấp thì bất
kỳ dữ liệu nào ở buffer RX của IC sẽ được gửi qua USB tại yêu cầu Bulk-IN tiếp
theo từ Driver mà không quan tâm đến kích thước của gói tin. Nó có thể được sử
dụng để đánh giá tốc độ truyền của USB trong một vài ứng dụng.
49
3.2.6. Dòng điện ngắt thấp hơn.
Việc tích hợp RCCLK và việc cải tiến thiết kế bên trong IC là giảm dòng
điện khi ngắt của FT245BM, thông thường dưới 100µA (trừ khi điện trở 1.5k
cấp nguồn nối với chân USB DP) ở chế độ ngắt USB. Nó cho phép lượng dư
lớn hơn để ngoại vi có thể nối với USB ở giới hạn dòng điện ngắt 500µA
3.2.7. Hỗ trợ truyền đẳng thời USB.
Khi mà truyền khối USB luôn là lựa chọn tốt nhất cho truyền dữ liệu thì
thời gian sắp xếp dữ liệu không bảo đảm. Với các ứng dụng để sắp xếp thì
góc trễ (của ổ đĩa) sẽ ưu tiên cho dữ liệu toàn vẹn như là truyền audio và dữ
liệu video dải thông hẹp, với IC thế hệ mới cung cấp một lựa chọn của truyền
dữ liệu đẳng thời USB qua bit lựa chọn trong EEPROM.
3.2.8. Có thể chương trình hóa thời gian chờ của bộ đệm FIFO TX.
Trong các IC trước, bộ đệm TX thường đưa các dữ liệu còn trong bộ đệm
TX ở thời gian chờ khoảng 16ms. Thời gian chờ bây giờ đã được chương
trình hóa qua USB trong 1ms gia tăng trị số từ 1ms tới 255ms, vì vậy cho
phép IC trở nên tối ưu hơn cho các giao thức đòi hỏi thời gian đáp ứng nhanh
hơn từ các gói dữ liệu ngắn.
3.2.9. Giảm các cấu trúc hỗ trợ bên ngoài.
Cũng như đã loại bỏ hệ thống RCCLK và với hầu hết các ứng dụng cần
thiết cho mạch reset bên ngoài, nhà sản xuất cũng loại bỏ điện trở 100k nối tới
nguồn ở EECS để chọn hoạt động 6Mhz. Khi FT245BM được sử dụng không
có kết cấu EEPROM thì EECS, EESK và EEDATA có thể loại bỏ. Với mạch
yêu cầu thời gian reset dài (Khi mà thiết bị được reset từ bên ngoài sử dụng
IC tạo tín hiệu reset, hoặc reset được điều khiển bởi cổng IO của MCU…) thì
một mạch transistor cũng không cần thiết nữa giống như một điện trở 1.5k ở
chân USB DP có thể nối với chân RESETO# thay cho 3.3V.
50
Chú ý: RESETO# ra ở mức 3.3V, không phải ở mức 5 V. Kết cấu này
thích hợp cho thiết kế mới. Trong một vài cấu trúc, RSTO# có thể được sử
dụng để reset mạch bên ngoài hay MCU.
3.2.10. Hỗ trợ EEPROM bên ngoài.
Ở các thế hệ trước chỉ hỗ trợ loại EEPROM 93C46 (128x16 bit). Thế
hệ này có thể làm việc được với cả EEPROM loại 93C56 (256x16 bit) và
93C66 (512x16 bit). Không gian mở rộng không sử dụng bởi IC này mà
nó để sử dụng cho các MCU, các hệ bên ngoài khi mà FT245BM bị giữ ở
chế độ Reset.
3.2.11. USB 2.0 (tuỳ chọn tốc độ).
Một khối EEPROM lựa chọn sẽ cho phép FT245BM trở lại thiết bị USB
2.0 khi xung đột với USB 1.1. Chú ý: IC nên ở chế độ Full Speed USB 2.0
(12Mb/s) khi xung đột với chế độ High Speed USB 2.0 (480Mb/s).
3.2.12. Hỗ trợ nhiều thiết bị mà không có EEPROM.
Khi không có EEPROM (hay EEPROM trắng hoặc lỗi) được gắn vào IC
thì FT245BM không cần phải thông báo số Seri (như một phần trong nhận
dạng) nữa. Nó cho phép nhiều thiết bị được nối đồng thời tới cùng một PC.
Tuy nhiên các nhà sản xuất vẫn khuyến cáo rằng nên sử dụng EEPROM, khi
không có số Seri thì thiết bị chỉ được nhận dạng bởi cổng Hub trong cây USB
được kết nối tới, nó có thể thay đổi nếu người sử dụng sau cắm lại thiết bị vào
cổng khác.
3.2.13. EEREQ#/EEGNT#.
Các chân này ở FT245AM không có trong FT245BM. Chúng được thay
thế bởi tín hiệu mới SI/WU và PWREN#.
51
3.3 Sơ đồ khối.
Chip FT245BM bao gồm các khối chức năng chính sau :
Chức năng cụ thể của các khối:
• 3.3V LDO Regulator: Khối 3.3V LDO Regulator cấp điện áp 3.3V để
điều khiển bộ đệm ra của khối thu phát USB. Nó yêu cấu phải có một tụ
điện ở ngoài được gắn với chân ra 3.3V OUT của bộ điều chỉnh. Nó cũng
có tác dụng cấp nguồn 3.3 V cho chân RSTOUT#. Nhiệm vụ chính của
khối này là cấp nguồn cho bộ thu phát USB (USB Transceiver) và khối
Reset Generator, ngoài ra nó còn có thể cấp nguồn cho một số mạch ngoài.
Tuy nhiên có một số mạch ngoài yêu cầu 3.3V với dòng điện không vượt
quá 5mA tại chân 3.3V OUT.
• Bộ thu phát USB (USB Transceiver): Khối USB Transceiver cho phép
USB 1.1/USB 2.0 tương thích về mặt tốc độ vật lý cao nhất đối với cáp USB.
52
Bộ điều khiển ra cấp mức 3.3V cho điều khiển tín hiệu tốc độ chậm, khi mà
một bộ thu vi sai và 2 đường dây đơn bộ thu cung cấp dữ liệu USB vào, SEO
và điều kiện Reset USB được nhận biết.
• USB DPLL: Khối này khoá đối với dữ liệu USB NRZI tới, cấp mạch
đồng hồ xung nhịp riêng và tín hiệu dữ liệu tới khối SIE.
• Bộ tạo dao động 6Mhz: Khối tạo dao động 6Mhz cấp xung đồng bộ
6Mhz tới đầu vào của bộ X8 Clock Multiplier.
• X8 Clock Multiplier: Lấy xung nhịp 6Mhz từ khối tạo dao động 6Mhz
và cấp dao động 12Mhz cho SIE, USB Protocol Engine và khối điều khiển
FIFO. Nó cũng cung cấp cho khối USB DPLL dao động 48Mhz.
• Serial Interface Engine (SIE): biến đổi dữ liệu USB từ nối tiếp thành
song song và ngược lại. Tương ứng với cấu trúc kĩ thuật của USB 1.1, nó cho
phép nén hoặc không nén bit và phát CRC5/CRC16 (mã kiểm tra quay vòng
dư) để kiểm tra luồng dữ liệu USB.
• USB Protocol Engine: quản lý luồng dữ liệu từ thiết bị USB nhờ điều
khiển điểm cuối. Nó sử dụng giao thức USB ở mức thấp, yêu cầu được phát
ra bởi mạch điều khiển USB chủ và nhờ các lệnh để điều khiển các tham số
chức năng FIFO.
• Bộ đệm thu FIFO (128 byte): dữ liệu gửi từ chủ USB tới FIFO qua
điểm cuối của dữ liệu ra USB, nó được lưu vào trong bộ đệm thu FIFO và
được đưa ra khỏi bộ đệm bằng cách đọc nội dung FIFO sử dụng chân RD#.
• Bộ đệm phát FIFO(384 byte) : Dữ liệu ghi vào FIFO sử dụng chân
WR# được lưu vào trong bộ đệm phát FIFO . Thiết bị chủ USB chuyển dữ
liệu khỏi dữ liệu phát FIFO bằng cách gửi một yêu cầu USB về dữ liệu từ
khối dữ liệu thiết bị ở điểm cuối.
53
• Bộ điều khiển FIFO: bộ điều khiển FIFO điều khiển quá trình truyền
dữ liệu giữa các chân giao diện FIFO mở rộng và bộ đệm thu phát FIFO.
• Reset Generator: khối này cung cấp một khả năng reset ổn định tới
mạch trong của thiết bị khi đang hoạt động. Với chân RESET đưa vào và
chân ra RSTOUT# cho phép nhiều thiết bị có thể Reset FT245BM hoặc
FT245BM reset các thiết bị khác theo thứ tự định sẵn. Khi Reset, RSTOUT#
ở trở kháng cao nếu không thì nó điều khiển ra tại 3.3V được cấp bởi bộ điều
chỉnh trên bảng mạch. RSTOUT# có thể được sử dụng để Reset các thiết bị
khác. RSTOUT# sẽ ở trạng thái trở kháng cao trong khoảng 5ms khi Vcc vượt
quá 3.5V và thiết bị tạo dao động đang hoạt động và chân RESET# đang ở
mức cao. Chân RESET# có thể được đặt lên ở mức cao trừ khi nó là một yêu
cầu để Reset lại thiết bị từ bên ngoài hay từ một nguồn reset ở bên ngoài.
• Giao diện EEPROM: Cho dù FT245BM không bắt buộc phải làm việc
với EEPROM, nhưng một EEPROM bên ngoài 93C46(93C56, 93C66) có thể
được sử dụng để điều chỉnh USB VID, PID, số Seri … của FT245BM.
EEPROM cũng cần thiết cho những ứng dụng mà có nhiều FT245BM kết nối
với 1 PC đơn nhờ các bộ điều khiển dựa vào một số Seri duy nhất cho mỗi
thiết bị để gắn với một cổng COM ảo cho mỗi thiết bị riêng. Các tham số
được điều khiển nhờ EEPROM bao gồm “Đánh thức từ xa” (Remote Wake
Up), chế độ truyền đẳng thời (Isochronous Transfer mode), Soft Pull Down
on Power-Off và chế độ nhận diện USB2.0. EEPROM có thể có cấu hình
16bit giống như MicroChip 93LC46B hay tương đương với tốc độ đồng hồ
1Mb/s tại điện áp Vcc = 4,4V tới 5,25V. Nếu không có EEPROM được gắn
vào (hoặc EEPROM trắng) thì FT245BM sẽ sử dụng VID, PID,… ngầm định.
Trong trường hợp thiết bị sẽ không có số seri giống như phần nhận diện USB.
54
3.4 Sơ đồ chân tín hiệu.
Chức năng cụ thể của các chân tín hiệu FT245BM:
• Nhóm chân dữ liệu:
Chân Tín hiệu Vào – Ra Chức năng
25 D0 I/O Bit dữ liệu FIFO 0
24 D1 I/O Bit dữ liệu FIFO 1
23 D2 I/O Bit dữ liệu FIFO 2
22 D3 I/O Bit dữ liệu FIFO 3
21 D4 I/O Bit dữ liệu FIFO 4
20 D5 I/O Bit dữ liệu FIFO 5
19 D6 I/O Bit dữ liệu FIFO 6
18 D7 I/O Bit dữ liệu FIFO 7
55
• Nhóm chân điều khiển giao diện FIFO:
Chân Tín hiệu Vào – Ra Chức năng
16 RD# IN
Ở mức thấp cho phép byte dữ liệu FIFO xuất ra
tại D0..D7. Đưa byte dữ liệu FIFO tiếp theo
(nếu có) từ bộ đệm thu FIFO ra khi chân RD#
từ mức thấp lên mức cao. (Chú ý 1)
15 WR IN
Ghi byte dữ liệu vào bộ đệm phát khi chân WR
từ mức cao xuống mức thấp. (Chú ý 1)
14 TXE# OUT
Ở mức cao, không cho phép ghi dữ liệu vào
FIFO. Khi ở mức thấp thì dữ liệu có thể được
ghi vào FIFO bằng cách chốt chân WR từ cao
xuống thấp. (Chú ý 2)
12 RXF# OUT
Khi ở mức cao, không cho phép đọc dữ liệu từ
FIFO. Khi ở mức thấp, dữ liệu nếu có ở FIFO
có thể đọc ra bằng cách chốt chân RD# từ thấp
lên cao lần nữa. (Chú ý 2)
• Nhóm chân giao diện USB:
Chân Tín hiệu Vào – Ra Chức năng
7 USBDP I/O Chân tín hiệu D+ của USB (yêu cầu có trở 1.5k
ở chân 3.3V OUT hoặc RSTOUT#).
8 USBDM I/O Chân tín hiệu D- của USB.
• Nhóm chân giao diện của EEPROM:
Chân Tín hiệu Vào – Ra Chức năng
32 EECS I/O
Chọn chíp EEPROM. ở 48Mhz quá trình làm
việc nối EECS xuống GND bằng một điện trở
10K. Ở 6Mhz thì không cần điện trở. Chân này
56
là dạng 3 trạng thái, nhưng ở mức cao sử dụng 1
điện trở trong 200K khi thiết bị reset.
1 EESK OUT
Đồng hồ tín hiệu cho EEPROM. Là cổng 3
trạng thái khi thiết bị reset hoặc điều khiển ra.
2 EEDATA I/O
Dữ liệu vào-ra của EEPROM. Được nối trực
tiếp với Data-In của EEPROM và nối với Data-
Out của EEPROM thông qua điện trở 2.2k.
Data-Out của EEPROM cũng được nối tới Vcc
thông qua điện trở 10K. Nó trở thành 3 trạng
thái khi thiết bị reset.
• Nhóm chân cấp nguồn:
Chân Tín hiệu Vào – Ra Chức năng
10
PWREN
#
OUT
Xuống mức thấp sau khi thiết bị được định cấu
hình qua USB, sau đó lên mức cao khi USB
ngắt. Nó có thể được sử dụng để điều khiển
nguồn cho thiết bị bên ngoài nhờ sử dụng khoá
chuyển đổi mức Lôgic kênh P của MOSFET.
11 SI/WU IN
Tín hiệu Send Immediate/WakeUp phối hợp 2
chức năng trong cùng một chân. Nếu USB ở chế
độ ngắt (PWREN# = 1) và chế độ “đánh thức từ
xa” được tạo lập trong EEPROM, thì ở mức thấp
chân này sẽ tác động vào thiết bị để yêu cầu khôi
phục hoạt động trên USB bus. Thông thường nó
có thể được sử dụng để kích hoạt chủ PC. Khi
hoạt động bình thường (PWREN# = 0) nếu chân
này chốt ở mức thấp thì bất cứ dữ liệu nào trong
bộ đệm RX của thiết bị sẽ được gửi ra qua USB
trong yêu cầu Bulk-IN tiếp theo từ bộ điều khiển
mà không chú ý tới kích thước gói dữ liệu sắp tới.
57
Nó có thể được sử dụng để tối ưu tốc độ truyền
dữ liệu USB trong một vài ứng dụng. Đặt chân
này lên mức cao nếu không sử dụng.
• Nhóm tín hiệu hỗn hợp:
Chân Tín hiệu Vào – Ra Chức năng
4 RESET# IN
Có thể được sử dụng bởi một thiết bị bên ngoài
để reset FT245BM. Nếu không cần thiết hãy nối
nó với Vcc.
5 RSTOUT# OUT
Từ đầu ra của bộ Reset Generator. ở mức trở
kháng cao trong khoảng 2ms sau khi Vcc>3,5V
và đồng hồ bên trong khởi động, sau đó giữ đầu
ra của nó như đầu ra 3.3V của bộ điều chỉnh
(3.3V LDO..). Đưa RESET xuống thấp sẽ làm
cho RSTOUT# ở trở kháng cao. RSTOUT#
không có hiệu lực khi Reset USB Bus.
27 XTIN IN
Là đầu vào của bộ tạo dao động 6Mhz. Chân
này có thể được điều chỉnh bởi một đồng hồ
6Mhz bên ngoài nếu cần thiết. Chú ý là giới hạn
chân này là Vcc/2, do vậy nếu điều chỉnh bằng
một nguồn bên ngoài thì nguồn phải được điều
khiển ở mức 5V CMOS hoặc nguồn xoay chiều
với trung bình là Vcc/2.
28 XTOUT OUT
Là đầu ra của bộ dao động tinh thể 6Mhz.
XTOUT ngừng dao động khi USB ngắt, do vậy
cần phải thận trọng nếu sử dụng tín hiệu này để
định thời cho thiết bị ngoài.
31 TEST IN
Đặt các bộ phận trong IC ở chế độ test – Khi
hoạt động bình thường thì phải nối với GND.
58
• Nhóm chân tín hiệu nguồn và đất:
Chân Tín hiệu Vào – Ra Chức năng
6 3V3 OUT OUT
Đầu ra 3.3 V từ bộ điều chỉnh LDO tích
hợp. Chân này nên được ngăn với GND
bằng một tụ điện gốm 33nF. Mục đích
quan trọng nhất của nó là cấp nguồn bên
trong 3.3V cho bộ thu phát USB và chân
RSTOUT. Nó có thể cấp nguồn cho thiết
bị ngoài với dòng điện nhỏ hơn 5mA nếu
cần thiết.
3,26 VCC PWR
Cấp nguồn 4.4V tới 5.25V Vcc cho thiết
bị lõi, giao diện LDO và các chân không
thuộc giao diện FIFO.
13 VCCIO PWR
Cấp nguồn 3V tới 5.25V Vcc cho các chân
giao diện FIFO 10..12, 14..16 và 18..25.
Khi ghép với thiết bị ngoài 3.3V thì nối
VCCIO với nguồn 3.3V của thiết bị ngoài,
còn không thì kết nối với Vcc để điều
khiển ra tại mức điện áp CMOS 5V.
9,17 GND PWR Chân đất.
30 AVCC PWR Nguồn tín hiệu Analog cho bộ nhân tần x8.
29 AGND PWR Chân đất Analog cho bộ nhân tần x8.
Chú ý 1: Ở chế độ vào, các chân này được nối tới VCCIO thông qua điện
trở trong 200k. Chúng có thể được chương trình hoá để hạ xuống thấp một
cách dễ dàng hơn khi USB bị ngắt (PWREN# = 1) bằng cách đặt chế độ cho
EEPROM.
Chú ý 2: Khi thiết bị reset, các chân này là 3 trạng thái nhưng nối lên
VCC thông qua điện trở 200K.
59
3.5. Giản đồ thời gian – Chu kỳ đọc FIFO.
Giản đồ thời gian chu kỳ đọc FIFO của chip FT245BM được biểu diễn ở
hình dưới đây:
Hình 3.1: Giản đồ thời gian – chu kỳ đọc FIFO.
Trong đó các
Th Min Max Đơn vị
thời gian T thể hiện các trạng thái :
ời gian Trạng thái
T1 RD ở mức tích cực 50 ns
T2 RD ở mức không tích cực 50 ns
T3
RD ở mức tích cực, chuẩn bị có dữ liệu
3
truyền trên Bus
0 ns
Dữ liệu còn khi
cực.
T5 RD ở mức không tích cực tới RXF# 25 5 ns
RXF ở mức không tích cực khi kết thúc
chu kì đọc
T4
RD đã ở mức không tích
10 ns
T6 80 ns
3.6. Giản đồ thời gian – Chu kỳ ghi FIFO.
FT245BM được biểu diễn ở
hình dưới đây:
Giản đồ thời gian chu kỳ đọc FIFO của chip
60
Hình 3.2: Giản đồ thời gian – chu kỳ ghi FIFO.
Trong đó các thời gian T thể hiện các trạng thái :
Thời gian Trạng thái Min Max Đơn vị
T7 WR ở mức tích cực 50 Ns
T8 WR ở mức không tích cực 50 Ns
T9
Thời gian có dữ liệu trước khi WR ở mức
2
không tích cực
0 Ns
T10
Dữ liệu vẫn còn khi WR đã ở mức không
tích cực
10 Ns
Thời gian từ WR không tích cực tới TXE#
T12 TXE ở mức không tích cực sau chu kì ghi 80 Ns
T11 5 25 Ns
61
62
Hình 3.9: Sơ đồ mạch kết nối với MCU.
3.7. Các mạch sử dụng chip FT245BM.
3.7.1. Mạch tạo dao động.
Sử dụng bộ tạo dao động nội 6 MHz của chip FT245BM ta mắc mạch dao
động ngoài để tạo các dao động mà ta cần.
Hình 3.3: Sơ đồ mạch tạo dao động
Trên hình vẽ chỉ ra cách nối FT245BM với các bộ cộng hưởng để tạo dao
động. Gồm cách nối với bộ tạo dao động 3 chân và 2 chân.
3.7.2. CÊu h×nh với EEPROM.
Ta có thể ghép nối chip FT245BM với EEPROM như sau :
Hình trên minh hoạ cách kết nối FT245BM tới EEPROM 93C46 (93C56
hoặc 93C66). Chân select (CS) của
EEP
điều kiện cùng thoả mãn thì FT245BM sẽ sử dụng dữ liệu
tron
ộng bus 16 bit ví dụ
như
hế độ 8/16 bit hoặc để kiểm tra. Do
vậy
y chỉ được thực hiện khi
EECS (32) được nối trực tiếp tới chân chip
ROM. Chân EEDATA (2) được nối trực tiếp tới chân Data In (Din) của
EEPROM. Nhờ có cùng điều kiện điện thế nên cả chân Data Output (Dout) của
EEPROM có thể được điều khiển đồng thời bởi chân EEDATA của FT245BM.
Để tránh điện thế dữ liệu xung đột trong trường hợp này, chân Dout của
EEPROM được nối tới EEDATA của FT245BM thông qua điện trở 2.2k.
Sau khi nguồn được reset hoặc USB reset thì FT245BM sẽ kiểm tra
EEPROM để xét:
a) Nếu EEPROM được nối với thiết bị và b) nếu dữ liệu trong thiết bị là
hợp lệ. Khi cả hai
g EEPROM, nếu không thì nó sẽ sử dụng trị số ngầm định có sẵn. Nếu
một lệnh hợp lệ được phát tới EEPROM từ FT245BM thì EEPROM sẽ báo
cho biết đã nhận được lệnh bằng cách đưa chân Dout của nó xuống mức thấp.
Để kiểm tra điều kiện này, cần thiết phải đưa Dout lên mức cao bằng cách sử
dụng điện trở 10K (nối với Vcc). Nếu không nhận được lệnh thì EEDATA sẽ
ở mức cao do điện trở 10K nối với Vcc trong mỗi phần của chu kì và thiết bị
sẽ nhận một lệnh không hợp lệ hoặc không có EEPROM.
Có 2 loại EEPROM trên thị trường – một loại có dung lượng bus 16 bits
và loại kia là 8 bits. FT245BM đòi hỏi EEPROM với độ r
loại 93LC46B. EEPROM phải có khả năng đọc dữ liệu với tốc độ đồng
hồ 1Mb với nguồn nuôi 4.4V tới 5.25V.
Hãy xét chân 6 và 7 của EEPROM. Một số thì ghi rõ nó không để kết nối
gì cả, còn một số lại sử dụng nó để chọn c
cần phải xem xét cẩn thận các chế độ của nó.
Ta hoàn toàn có thể “chia sẻ” EEPROM giữa FT245BM với các thiết bị
ngoại vi khác như là MCU. Tuy nhiên điều nà
63
Hình 3.5: Sơ đồ mạch cấp nguồn.
ạch mô tả một cách cấp nguồn thông dụng cho bus USB. Các nguyên
FT2
tắc cơ bản của cấp nguồ
ng không vượt quá 500µA.
45BM ở chế độ Reset, tương ứng với EEPROM ở chế độ 3 trạng thái tại
thời điểm đó. Với một kết cấu thông thường có thể sử dụng 4 bit của một
cổng I/O của MCU. Một bit có thể sử dụng để giữ cho FT245BM sử dụng chế
độ Reset khi đang hoạt động, 3 bít còn lại có thể kết nối tới chân EECS,
EESK và EEDATA của FT245BM để cho phép đọc/ghi dữ liệu vào
EEPROM tại thời điểm đó. Khi mà MCU đọc/ghi dữ liệu vào EEPROM thì
nó có thể đặt chân RESET# lên mức cao và cho phép FT245BM tự định dạng
và đếm thông qua USB.
3.7.3. Cấp nguồn từ Bus USB.
M
n từ Bus USB là:
a) Khi cắm vào thì thiết bị phải có dòng không vượt quá 100mA.
b) Khi ngắt USB thì thiết bị phải có dò
64
c) Cấp nguồn qua Bus ở chế độ cao (vượt quá 100mA) nên sử dụ
Hình 3.6: Sơ đồ mạch tự cấp nguồn.
ạch trên cho ta một cách tự cấp nguồn thông dụng cho USB, nó l
ng chân
PW µA khi
US
ừ Bus USB.
ối tiếp với nguồn USB để chống lại tạp âm từ thiết bị
và rị của lõi Ferrit
tuỳ thuộc vào dòng điện yêu cầu cho mạch.
ấy
nguồn từ bản thân ng iện từ Bus USB.
Các nguyên tắc cơ bản của tự cấp nguồn USB là:
REN# để giữ cho dòng điện dưới 100mA khi cắm thiết bị và 500
B ngắt.
d) Thiết bị có dòng điện vượt quá 100mA không được phép cắm vào Hub
của nguồn t
e) Không được phép có dòng 500mA trên Bus USB.
Lõi Ferit được mắc n
kết hợp với mạch toả nhiệt cho cáp USB nối tới Chủ. Giá t
3.7.4. Kết cấu tự cấp nguồn USB:
M
uồn nuôi của nó mà không bằng dòng đ
65
a) Một thiết bị tự cấp nguồn không được làm cho dòng điện chạy trên Bus
USB khi mà Chủ USB hoặc Bộ điều khiển Hub tắt nguồn.
b) Một thiết bị tự cấp nguồn có thể đạt dòng
Hình 3.7: Sơ đồ mạch tự cấp nguồn thứ 2.
điện lớn như nó đạt được
tron
t cứ Chủ USB nào
và c
DP phải được điều chỉnh
để
thể gây cho một số chủ USB hay bộ điều
khi
g khi hoạt động bình thường và khi USB ngắt
c) Một thiết bị tự cấp nguồn có thể được sử dụng với bấ
ả với USB và Hub tự cấp USB.
Để đạt yêu cầu a) thì mạch điện trở 1.5k tại USB
ngăn không cho dòng điện chạy trên dây USB DP qua điện trở 1.5k khi mà
Chủ hoặc Hub tắt nguồn. Lỗi này có
ển Hub bật lên một cách bất thường. Có thể dùng một transistor (2N3906)
để tạo nguồn cho Bus USB. Nó được nối dạng emitơ lặp lại do đó khi có
nguồn trên bus USB thì transistor sẽ bão hoà và điện trở 1.5k được nối trực
tiếp với RSTOUT#. Khi nguồn USB tắt thì Transistor cũng tắt theo do đó
chặn không cho dòng điện chạy vào dây USB DP.
66
H
Hình 3.8: Sơ đồ mạch tạo ngu n mức lôgic 3.3v / nguồn nuôi.
ình trên mô tả một cách mạch cấp nguồn tương tự. Lúc này điện trở 1.5k ở
chân USB DP đươc nối với RSTOUT# như ở mạch cấp nguồn cho Bus. Tuy
nhiên, cấp nguồn cho bus USB được sử dụng để điều khiển chân RESET# của
FT2
Trong 2 kết cấu trên, việc sử dụng phụ thuộc vào thiết kế của thiết bị
ngoại vi. Với kết cấu đầu tiên thì FT245BM là “Live” – khi cổng USB tắt thì
sẽ không có hoạt động trên USB bus và thiết bị sẽ ở trạng thái nghỉ trong một
vài
3.7.5. Mạch tạo nguồn cho Bus với mức lôgic 3.3v / nguồn nuôi.
45BM. Khi Chủ USB hay nguồn Hub tắt, RESET# sẽ ở mức thấp và thiết bị
sẽ được giữ ở trạng thái Reset. Reset ở mức thấp làm cho RSTOUT cũng ở mức
thấp, do vậy không có dòng điện chạy trên dây USB DP qua điện trở 1.5k.
Chú ý: Khi FT245BM ở chế độ RESET thì các chân ghép nối FIFO đều là
dạng 3 trạng thái. Các chân này có điện trở trong 200k nối tới Vcc-IO, do vậy
nó sẽ ở mức cao trừ khi được điều khiển bởi một số thiết bị bên ngoài.
ms. ở kết cấu này thì chân RESET# có thể vẫn hoạt động nếu cần thiết.
Ở kết cấu thứ hai, FT245BM giữ ở trạng thái RESET khi mà USB tắt. Khi
Reset, bộ tạo dao động 6Mhz của FT245BM vẫn hoạt động và thiết bị sẽ
không ở trạng thái nguồn thấp.
ồ
67
Hiện nay hầu hết các thiết bị USB đ ạt động với mức logic 3.3V. Do
vậy mạc t bị
mức lôgic 3.3V. Trong mạch này, một bộ phát 3.3V riêng biệt được sử dụng
để tạo mức lôgíc 3.3V từ nguồn nuôi USB. VccIO được nối với đầu ra của bộ
điều chỉnh 3.3V, khi hoạt động có thể làm cho các chân IO của giao diện
FIFO điều chỉnh ra ở mức 3.3V. Với mạch cấp nguồn cho Bus USB, cần phải
cân nhắc khi chọn bộ điều chỉnh.
iều chỉnh LDO (Low Drop Out)
giản V ị ngoài. Dòng điện ngắt không được
quan tâm trong thiết kế tự cấp nguồn.
h gắn liền của FT245BM để cấp nguồn
3.3
thấp nguồn trong chế độ
ồm cả ngoại vi
lôg
không thể tự hạ thấp nguồn thì FT245BM cung cấp một cách đơn giản nhưng
hiệu quả để tắt nguồn mạch ngoại vi khi USB ngắt.
ều ho
h trên cho biết cách kết cấu FT245BM để tương thích với thiế
1. Bộ điều chỉnh phải có khả năng duy trì điện áp đầu ra với điện áp đầu
vào là 4.4V. Phải chọn bộ đ
2. Dòng điện tĩnh của bộ điều chỉnh phải thấp để khi USB ngắt, dòng điện
tổng yêu cầu của USB ≤ 500µA.
Khi sử dụng FT245BM với thiết kế tự cấp nguồn USB, thì chỉ nối đơn
ccIO với nguồn 3.3V của thiết b
Trong một số trường hợp, khi chỉ yêu cầu một dòng điện nhỏ (<5mA), nó
có thể hoàn toàn sử dụng bộ điều chỉn
V mà không yêu cầu bất kỳ một thành phần thêm nào. Trong trường hợp
này, nối VccIO với chân 3.3V OUT của FT245BM.
3.7.6 Mạch cấp nguồn (≤100mA) với nguồn điều khiển:
Mạch cấp nguồn cho Bus USB cần để có thể hạ
ngắt USB nhằm đạt được dòng điện ngắt yêu cầu ≤500µA (g
ic). Một số ngoại vi lôgíc có thể tự hạ thấp nguồn xuống trạng thái dòng
điện thấp bằng cách điều chỉnh chân POWEREN#. Với các ngoại vi lôgic
68
Hình 3.9: Sơ đồ mạch cấp nguồn (≤100mA) với nguồn điều khiển.
Hình trên cho thấy cách sử dụng một MOSFET kênh P để điều khi
nguồn của mạch ngoại vi lôgic. Thiết bị hợp lý có thể là Fairchild NDT456P
ển
hay tươ à
dòn
t.
2.
ối chuyển
goại vi lôgic 3.3V hoặc
nguồn VccIO từ chân 3.3V OUT của FT245BM nếu thích hợp.
ng đương. Kết cấu này phù hợp để cấp nguồn cho ngoại vi lôgic m
g điện của nguồn nuôi bình thường ≤100mA và được điều khiển không
phát ra dòng điện đáng kể khi tăng nguồn. Để bật nguồn ngoại vi lôgíc mà
vượt quá 100mA hay phát ra dòng đáng kể khi bật, thì nên thiết kế IC bật
nguồn chuyên dụng với chế độ “Soft-Start” gắn liền thay cho sử dụng
MOSFET (Chẳng hạn IC: MIC2025-2BM hoặc tương đương).
Hãy chú ý đến những điểm sau khi kết nối với nguồn điều khiển:
1. Thiết bị lôgíc được điều khiển phải có mạch Reset cho nó mà nó sẽ tự
động reset nó khi mà nguồn được ứng dụng lại không có ngắ
Đặt lựa chọn nối đất cho EEPROM của FT245BM
3. Với mạch điều khiển nguồn 3.3V VccIO không được phép nối qua mạch
ngoại vi (chân PWREN# lấy nguồn Vcc từ VccIO). Có thể n
mạch nguồn với đầu ra của bộ điều chỉnh 3.3V và n
69
Hình 3.9: Sơ đồ mạ h kết nối với MCU.
Hình trên mô tả một cách ghép nối thông dụng giữa FT245BM và m
vi điều khiển (MCU). Ví dụ này sử dụng 2 cổng IO của MCU, 1 cổng 8 bit
truyền dữ liệu và cổng còn lại (4/5 bit) định các bit trạng thái TXE# và
3.7.7. CÊu h×nh với bộ vi điều khiển (MCU):
Chip FT245BM có thể ghép nối với MCU theo mạch sau :
ột bộ
để
RFE# và phát lệnh cần thiết. Chân
SI/W
c
để
chốt chân RD# và WR tới FT245BM nếu
U có thể nối với chân IO khác tuỳ ý nếu chức năng yêu cầu. Nếu chân
SI/WU không cần thiết thì đặt nó lên mức cao. Nếu MCU đảm nhiệm chức
năng quản lý nguồn thì PWREN# nên nối với chân IO của MCU. 8 bit dữ liệu
của cổng 1 có thể được chia sẻ với thiết bị ngoại vi khác khi MCU không truy
cập FT245BM.
70
Các file đính kèm theo tài liệu này:
- X-GDMT.pdf