Tải bản đầy đủ - 0 (trang)
PHẦN 1:GIỚI THIỆU CHUẨN GIAO TIẾP USB

PHẦN 1:GIỚI THIỆU CHUẨN GIAO TIẾP USB

Tải bản đầy đủ - 0trang

Đồ án hệ thống số



Hình 1.2: Mơ hình kết nối bus của USB



Hình 1.3: Mơ hình kết nối sao của một kết nối USB

1.3. Các kiểu truyền USB:

Dữ liệu trao đổi giữa thiết bị USB với máy tính sử dụng một trong bốn kiểu

truyền là: truyền điều khiển, truyền ngắt, truyền khối và truyền theo kiểu đồng

bộ.

1.3.1 Truyền điều khiển(Control Transfers):

Thường sử dụng để cài đặt phần cứng và đưa ra lệnh điều khiển thiết bị.Kiểu

này được làm việc ở mức ưu tiên cao với khả năng kiểm soát lỗi tự động.

1.3.2 Truyền ngắt (Interrupt Transfers):

Sử dụng cho các thiết bị cần cung cấp một lượng dữ liệu nhỏ(chỉ truyền theo

hướng vào) và tuần hoàn chẳng hạn như: chuột, bàn phím,…Khơng giống

như cơ chế ngắt, ở đây khơng có u cầu ngắt được gửi tới chủ USB mà máy

tính sẽ hỏi vòng theo chu kì.Thường thiết bị gửi tới máy chủ 8byte dữ liệu

trong một lần truyền.

1.3.3 Truyền theo khối(Bulk Transfers):



5



Đồ án hệ thống số



Khi có lượng dữ liệu lớn cần truyền và cần kiểm sốt lỗi truyền, nhưng lại

khơng có u cầu về mặt thời gian thì dữ liệu thường được truyền theo kiểu

khối.Kiểu này thường được áp dụng cho các thiết bị như máy in, máy quét.

1.3.4 Truyền đồng bộ (Isochronous Transfers):

Khi lượng dữ liệu cần truyền lớn với tốc độ dữ liệu đã được quy định sẵn,

chẳng hạn như dùng cho card âm thanh.Theo cách truyền này một tốc độ dữ

liệu xác định được duy trì, bỏ và các lỗi nhỏ.

1.4Giao diện vật lý

Bus USB có 2 kiểu đầu nối thông dụng: kiểu A và kiểu B.Bus USB sử

dụng một Cable bốn sợi dây để nối với các thiết bị, trong đó một cặp đường

truyền hai sợi xoắn được dùng làm các dữ liệu vi sai(D+ và D-) còn hai dây

làm nguồn ni 5V và nối đất(GND).



Hình 1.4



Giao diện vậy lý của USB



1.5 Giao thức truyền

1.5.1 Các trường trong truyền thông USB:

Thứ tự bit được truyền qua bus USB là bit có trọng số nhỏ nhất (LSB) được

truyền đầu tiên cho đến bit MSB, USB có 4 loại gói truyền trên bus là : gói nhận

dạng(Token), gói dữ liệu (Data), gói khởi đầu khung (Start Of Frame) và gói bắt

tay (Handshake).Trong mỗi gói lại gồm có nhiều trường:

 Trường đồng bộ (SYNC): tất cả các gói đều được bắt đầu bằng trường

SYNC, đó là chuỗi nhị phân mã NRZI (Non Return to Zero Inverted) của

chuỗi “KJKJKJ”.Tất cả các gói đều giới hạn giữa SOP (Start-Of-Packet) và

EOP (End-Of-Packet).

 Trường nhận dạng (PID): theo ngay sau trường SYNC trong mỗi gói của

USB, gói có chiều dài 8 bit gồm 4 bit thấp là 4 bit nhận dạng gói, 4 bit cao là

đảo của 4 bít thấp nhằm kiểm sốt lỗi khi truyền.Trường PID mơ tả loại gói

sẽ được truyền sau nó.Cả bộ điều khiển USB và các thiết bị đều nhận biết

các mã trường nhận dạng đã được quy định.



6



Đồ án hệ thống số



Bảng 1.1: Các loại gói truyền trong USB

Loại PID



Tên PID

Out

In

SOF

SETUP

DATA0

DATA1

ACK

NAK



PID [3:0]

0001B

1001B

0101B

1101B

0011B

1011B

0010B

1010B



Handshake



STALL



1110B



Special



PRE



1100B



Token

Data



Mô tả



Chủ USB ghi ra.

Chủ USB đọc từ thiết bị.

Khởi đầu khung và số khung.

Chủ USB cài đặt thiết bị.

Gói dữ liệu data0

Gói dữ liệu data1

Trả lời xác nhận.

Thiết bị ngồi khơng chấp nhận dữ liệu

hay dữ liệu truyền bị hỏng.

Điểm cuối tạm ngưng hay không hỗ trợ.

Chủ USB đưa ra cho phép đường ra của

bus trao đổi với các thiết bị có tốc độ



 Trường địa chỉ (ADDR): là địa chỉ dành riêng để truy cập thiết bị.Thiết bị có

thể nhận dữ liệu hay truyền dữ liệu về máy chủ (phụ thuộc vào giá trị gói

nhận dạng PID) thơng qua địa chỉ của nó.Trường địa chỉ sử dụng 7 bit [A0 :

A6].Trường địa chỉ có trong các gói IN, SETUP, OUT. Mỗi địa chỉ chỉ định

cho một thiết bị đơn lẻ khi bắt đầu được cấp nguồn các thiết bị có địa chỉ mặc

định là zero và chủ USB nhận bảng mô tả của thiết bị thông qua địa chỉ mặc

định này.

 Trường đầu cuối (End point): một trường điểm cuối sử dụng 4 bit cho phép

lựa chọn điểm cuối trong thiết bị.Trừ điểm cuối zero, số điểm cuối là riêng

biệt cho từng thiết bị chức năng. Một điểm cuối là địa chỉ của một bộ đệm

trong thiết bị, trường địa chỉ được định nghĩa trong các gói IN, SETUP và

7



Đồ án hệ thống số



OUT. Từ điểm cuối tới chủ USB thiết lập một kênh trao đổi thông tin gọi là

đường ống.Tất cả các thiết bị chức năng đều hỗ trợ một đường ống mặc định

với điểm cuối là zero, chủ USB sẽ trao đổi với thiết bị mới gắn vào thông qua

đường ống này.

 Trường số khung: trường số khung có độ dài 11 bit, nó được gửi trong gói

SOF (Start Of Frame Packets). SOF được gửi bởi chủ USB theo chu kì nhất

định.

 Trường dữ liệu: trường dữ liệu có độ dài từ 0 đến 1023 byte, các byte được

gửi đi lần lượt. Trong mỗi byte dữ liệu bit dữ liệu nhỏ nhất được gửi trước và

cuối cùng là bít MSB.

1.6Các loại gói trong truyền thơng USB:

 Gói nhận dạng (Token Packets): chỉ cho biết loại truyền ngay sau nó.Có 3

loại gói nhận dạng:

o IN: Báo thiết bị biết chủ USB muốn đọc thông tin.

o OUT: Báo cho thiết bị rằng chủ USB muốn gửi thông tin.

o SETUP: được sử dụng để bắt đầu q trình truyền thơng tin điều

khiển.

Định dạng chung các gói nhận dạng:



Hình 1.5 Các gói nhận dạng

Mỗi gói đều có 4 trường PID (1byte) chỉ ra loại gói, 7 bit địa chỉ (Address), 4 bit

điểm cuối (End point) và cuối cùng là 5 bit kiểm tra lỗi truyền (CRC).

 Gói khởi đầu chung (Start Of Frame): gói khởi đầu khung được phát ra từ

chủ điều khiển USB, gồm các trường:

o 8 bit PID nhận dạng gói.

o 11 bit: số hiệu khung.

o 5 bit: kiểm tra lỗi CRC5.

Hình 1.6 Gói SOF

 Gói dữ liệu (Data Packets): Một gói dữ liệu bao gồm một trường PID (8

bit).Trường dữ liệu có chiều dài từ 0 đến 1023 byte và 16 bit CRC.Có 2 loại

8



Đồ án hệ thống số



gói dữ liệu được nhận biết qua trường PID là Data0 và Data 1, hai loại gói

này được định nghĩa để hỗ trợ trong truyền đồng bộ.



Hình 1.7: Gói dữ liệu

 Gói bắt tay (Handshake Packets): có 3 loại bắt tay

o ACK: trả lời dữ liệu đã nhận thành công.

o NAK: báo thiết bị không trả lời dữ liệu nhận hay nhận bị lỗi.Tất cả

các gói bắt tay đều được truyền theo kiểu ngắt để báo tin cho bộ điều

khiển USB chủ biết dữ liệu không được gửi.

o STALL: chỉ ra rằng thiết bị USB là khơng có khả năng truyền hoặc

nhận dữ liệu hay đường ống u cầu là khơng hỗ trợ.



Hình 1.8 Các gói bắt tay

1.7. Các q trình truyền USB

1.7.1 Truyền điều khiển:

Truyền điều khiển được thực hiện qua 3 giai đoạn:Setup, Data và Status. Đối với

thiết bị low-speed kích thước gói tin là 8 byte, còn đối với Full-speed kích thước

gói có thể là 8, 16, 32 hay 64 byte.

Giai đoạn 1(Setup): gồm 3 gói tin

 Gói nhận dạng: do bộ điều khiển USB chủ gửi tới thiết bị USB.Trong gói

này chủ USB gửi địa chỉ và điểm cuối của thiết bị.

 Gói dữ liệu được gửi ngay sau khi gói Setup kết thúc và trường PID của gói

ln là kiểu Data0.

 Gói bắt tay: gói cuối cùng do thiết bị USB trả lời: ACK nếu khơng có lỗi,

NAK nếu có lỗi xảy ra.



9



Đồ án hệ thống số



Hình 1.9: Các gói tin trong giai đoạn 1 của truyền điều khiển.

Giai đoạn 2 (Data): giai đoạn này cũng chưa 3 gói tin: nhận dạng, dữ liệu và bắt

tay:

 Gói dữ liệu: chỉ ra dữ liệu theo chiều vào (IN) hay ra (OUT).

 Gói dữ liệu: chứa dữ liệu cần truyền

o Trường hợp dữ liệu có chiều từ thiết bị USB vào chủ USB.Nếu

khơng có lỗi xảy ra, dữ liệu sẽ được gửi về chủ USB. Trường

hợp có lỗi xảy ra tùy theo lỗi mà thiết bị USB gửi trả lời bằng

“STALL” hoặc “NAK”.

o Trong trường hợp dữ liệu có chiều từ chủ USB đến thiết bị USB

thì gói dữ liệu sẽ được gửi tới thiết bị.

o Gói bắt tay: khi nhận được dữ liệu chủ USB sẽ trả lời bằng gói

ACK tới thiết bị.Trong trường hợp ra tùy theo dữ liệu mà thiết

bị USB nhận thấy có lỗi hay khơng mà nó gửi trả lời bộ diều

khiển USB bằng một trong các gói: ACK, NACK, STALL.



Hình 1.10: Các gói tin trong giai đoạn 2 của truyền điều khiển.

Giai đoạn 3 (Status Stage): trả về trạng thái tồn bộ q trình



10



Đồ án hệ thống số



 Chiều vào: tùy theo quá trình trao đổi có lỗi xảy ra hay khơng mà thiết bị

USB sẽ trả lời chủ USB một trong các gói tin: ACK, STALL hay NACK

(hình a).

 Chiều ra: chủ gửi các gói trả lời đến thiết bị USB



Hình 1.11: Các gói tin trong giai đoạn 3 của quá trình điều khiển.

1.7.2 Truyền ngắt:

Không giống với phương thức trao đổi tin theo các gọi chương trình ngắt, truyền

ngắt trong USB hồn tồn do chủ USB hỏi vòng.Nếu một thiết bị USB chủ động

yêu cầu nó phải đợi đến khi chủ USB hỏi tới và đáp ứng.Quá trình truyền ngắt diễn

ra tương đối đơn giản chỉ có 3 gói trong mỗi lần truyền.Truyền ngắt thường được

sử dụng trong các thiết bị truyền thơng có tính dị bộ, các thiết bị nhỏ và đơn giản.

Truyền ngắt quy định kích thước các gói tùy thuộc vào tốc độ thiết bị:

 Với thiết bị Low-speed: kích thước tối đa là 8byte

 Với thiết bị Full-Speed: tối đa 64 byte.

 Với thiết bị High-Speed: tối đa lên đến 1024 byte



11



Đồ án hệ thống số



Hình 1.12 : Các giai đoạn truyền ngắt

a) Interrupt IN: chủ USB sẽ hỏi các điểm cuối ngắt theo chu kì. Tốc độ qt

hỏi vòng cụ thể đặt trong gói mơ tả điểm cuối của mỗi thiết bị. Mỗi khi

hỏi vòng yêu cầu chủ phải gửi một IN Token.Nếu IN Token bị hỏng, thiết

bị bỏ qua gói này và tiếp tục giám sát bus cho các IN Token mới.

Nếu có yêu cầu thiết bị gửi một gói dữ liệu tới chủ USB và chờ trả

lời.Nếu khơng có ngắt thiết bị trả lời chủ bằng NACK hay STALL.

b) Interrupt OUT:

Khi chủ muốn gửi dữ liệu tới thiết bị ngắt, nó phát ra một OUT Token và

theo sau là một gói dữ liệu ngắt (Interrupt Data). Nếu OUT Token hoặc

gói dữ liệu (Data Packet) bị hỏng, thiết bị USB sẽ bỏ qua gói này. Nếu

bộ đệm cuối ngắt của thiết bị bỏ trống nó sẽ trả về gói ACK cho chủ

USB.Trong trường hợp bộ đệm điểm cuối trống do dữ liệu nhận trước

đó, thì thiết bị USB sẽ trả về NAK.Tuy nhiên nếu một lỗi xảy ra với một

điểm cuối, nó sẽ trả về STALL..

1.7.3 Truyền đồng bộ (Isochronous Transfers)

Sử dụng khi dữ liệu cần truyền lớn và tốc độ dữ liệu đã được quy định như: audio,

video stream.Trong cách truyền này một giá trị tốc độ dữ liệu dược duy trì và

khơng kiểm tra lỗi.Truyền đồng bộ cũng được hỗ trợ cả 2 chiều: truyền đồng bộ

theo chiều vào (Isochronous IN) và truyền đồng bộ theo chiều ra (Isochronous

OUT).Kích thước lớn nhất của gói dữ liệu trong truyền kiểu này.

 Thiết bị Full-Speed: 1023 byte

 Thiết bị High-Speed: 1024 byte



12



Đồ án hệ thống số



Hình 1.13: Truyền đồng bộ

1.7.4 Truyền khối (Bulk Transfers)

Sử dụng khi có lượng dữ liệu lớn cần truyền và cần kiểm soát lỗi truyền, nhưng

lại khơng có u cầu thúc ép về thời gian truyền .Kiểu truyền này thường được áp

dụng cho các thiết bị như máy in, máy quét,v.v…Truyền khối chỉ hỗ trợ cho các

thiết bị Full-Speed và High-Speed.Kích thước gói dữ liệu lớn nhất mà thiết bị hỗ

trợ

 Full-Speed: 8, 16, 32 hay 64 byte.

 High-Speed: 512 byte

Truyền khối cũng tương đối đơn giản, chỉ gồm 3 gói: gói nhận dạng, gói dữ

liệu và bắt tay.



Hình 1.14: Các gói trong truyền khối

a) Chiều vào: khi chủ USB đã sẵn sàng nhận dữ liệu, nó phát ra một IN

Token. Nếu thiết bị nhận được một IN Token với một lỗi nó sẽ bỏ qua

gói.Nếu IN Token nhận được khơng có lỗi thì thiết bị USB trả về gói dữ

liệu cần truyền.Trường hợp lỗi xảy ra thiết bị gửi về NACK hoặc STALL.

b) Chiều ra: khi chủ USB muốn gửi tới thiết bị chức năng một gói dữ liệu, nó

gửi tới thiết bị OUT Token, dữ liệu bị hỏng hay bộ đệm thiết bị đang đầy nó

sẽ gửi trả lời bằng gói NACK.Trường hợp khơng có lỗi xảy ra, khi nhận



13



Đồ án hệ thống số



xong dữ liệu thiết bị USB trả lời bằng gói ACK.Trong trường hợp điểm

cuối bị lỗi nó sẽ trả lời bằng STALL.



PHẦN 2: THIẾT KẾ BỘ TRUYỀN DỮ LIỆU USB

2.1 Giới thiệu mơ hình truyền nhận USB:

Bộ truyền nhận dữ liệu USB hay còn gọi là UTMI (USB Transceiver Macrocell

Interface) đứng vai trò trung gian giữa giao diện thiết bị nối tiếp và đường truyền

vật lý.Mơ hình dưới đây thể hiện mối quan hệ giữa các thanh phần trong khối

chức năng của một thiết bị ASIC.Hệ thống được chia thành 3 thành phần chính:

UTMI, giao diện điều khiển nối tiếp và thiết bị giao tiếp.



Hình 2.1: Các khối chức năng giao tiếp USB của một thiết bị ASIC

2.1.1 Khối truyền nhận USB (UTMI):

Khối này có chức năng điều khiển các giao thức USB cấp thấp bên dưới cũng

nhưng các tín hiệu điều khiển.Nó bao gồm các chức năng như: chuyển đổi dữ liệu

giữa nối tiếp và song song, xử lý bit stuff, đồng bộ hóa cũng như khả năng xử lý

lỗi.



14



Đồ án hệ thống số



2.1.2 Khối điều khiển giao diện nối tiếp (Serial Interface Engine)



Khối này có thể chia làm 2 khối nhỏ hơn: khối điều khiển logic SIE (Serial

Interface Endpoint) và khối logic đầu cuối (Endpoint logic).Khối điều khiển logic

SIE chứa USB PID và các địa chỉ nhận dạng logic cùng với các máy trạng thái để

điều khiển các gói tin USB cũng như các q trình giao tiếp, bắt tay.Khối logic

đầu cuối (Endpoint) logic chứa các đơn vị logic đặc biệt như: số hiệu nhận dạng

điểm cuối, FIFO, và bộ điều khiển FIFO.Trong đó bộ điều khiển logic SIE là phần

quan trọng nhất, cần thiết cho mọi thiết kế liên quan đến USB, các endpoint còn

lại được tùy biến nhiều chức năng tùy theo ứng dụng và yêu cầu.

2.2 Khối giao diện truyền nhận USB (UTMI):

2.2.1 Sơ đồ các khối chức năng của UTMI:

Hình dưới đây mơ tả các khối chức năng của bộ truyền nhận USB.Các khối sẽ

được trình bày chi tiết ở phần dưới:



15



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

PHẦN 1:GIỚI THIỆU CHUẨN GIAO TIẾP USB

Tải bản đầy đủ ngay(0 tr)

×