Giao thức truyền USB

Một phần của tài liệu Tổng quan giao diện máy tính - Thiết kế giao diện USB sử dụng chip FT245BM (Trang 38)

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ỉ.

• 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.

+ 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.

- 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

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

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.

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.

Ở 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.

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.

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#.

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.

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

Một phần của tài liệu Tổng quan giao diện máy tính - Thiết kế giao diện USB sử dụng chip FT245BM (Trang 38)

Tải bản đầy đủ (PDF)

(67 trang)