Gói dữ liệu

Một phần của tài liệu Đồ án tìm hiểu về chuẩn USB 2.0 (Trang 50 - 56)

Một gói dữ liệu bao gồm một trường PID 8 bit, tiếp là trường dữ liệu (có

thể từ 0 byte tới 1024 byte) và cuối cùng là trường CRC 16 bit. Trường CRC

chỉ được tạo từ trường dữ liệu mà không tính cả trường PID. Kích thước tải tin

tối đa cho phép đối với thiết bị tốc độ thấp là 8 byte, với thiết bị toàn tốc là

Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0

1023 byte và với thiết bị tốc độ cao là 1024 byte. Kích thước của phần tải tin (DATA) phải là một số nguyên lần của một byte. H ì n h 3 . 8 : K h u ô n d n g g ó i d li u [ 1 ] 3.4.5 Các loại gói bắt tay

dữ liệu và có thể trả về

những giá trị để cho biết quá trình tiếp nhận dữ liệu thành công, chấp nhận lệnh

hoặc từ chối lệnh, điều khiển luồng và dừng hoạt động. Các tín hiệu bắt tay

thường được trả về trong các pha bắt tay của một giao tác hoặc có thể được trả

về ngay trong pha dữ liệu bằng cách gửi thông tin bắt tay thay vì gửi dữ liệu.

Các gói bắt tay được phân định bởi một EOP theo ngay sau chỉ một byte. Nếu

việc giải mã PID bắt tay đem lại giá trị hợp lệ cho một gói bắt tay song lại

không kết thúc bởi một EOP thì phía thu coi như gói không hợp lệ và bỏ qua.

Hình 3.9: Gói bắt tay [1] Có tất cả là 5 loại gói bắt tay:

ACK: Tín hiệu bắt tay này báo rằng gói dữ

liệu nhận được mà không

có lỗi nhồi bit hoặc các lỗi CRC ở trường dữ liệu và PID của gói nhận được là

đúng đắn. ACK có thể được phát ra khi chuỗi bit phù hợp và bên nhận có thể

nhận dữ liệu, cũng như khi chuỗi bit không phù hợp và bên phát và bên thu

phải đồng bộ lại lẫn nhau. Một gói ACK chỉ được ứng dụng trong các giao tác

mà dữ liệu đã được truyền đi và đang mong chờ tín hiệu bắt tay trả lời. ACK có

Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0

thể được trả về bởi host trong giao tác IN và được trả về bởi chức năng cho các giao tác OUT, SETUP hoặc PING. • NAK: Tín hiệu bắt tay này chỉ ra rằng một chức năng chưa cho phép nhận dữ liệu từ host trong giao tác OUT hoặc một chức năng không có dữ liệu để gửi tới Host trong giao tác IN. NAK có thể chỉ được trả về bởi chức năng

trong pha dữ liệu của giao tác IN hoặc pha bắt tay của giao tác OUT hoặc

PING. Host có thể không bao giờ phát NAK. Ngoài ra, tín hiệu bắt tay NAK còn được sử dụng cho những mục đích điều khiển luồng để báo rằng một chức

năng tạm thời không thể truyền hoặc nhận

host.

STALL: tín hiệu bắt tay này được trả về bởi

một chức năng trong đáp

ứng một thông báo IN hoặc sau pha dữ liệu của một giao tác OUT hoặc trong (adsbygoogle = window.adsbygoogle || []).push({});

đáp ứng một giao tác PING. STALL chỉ ra rằng chức năng chưa cho phép

truyền hay nhận dữ liệu hoặc một nhu cầu ống điều khiển không được hỗ trợ.

Trạng thái của một chức năng sau khi trả về một gói STALL không được định

nghĩa (đối với bất kỳ một điểm cuối nào trừ điểm cuối mặc định). Host không

được phép trả lại một gói STALL trong bất kỳ tình huống nào.

Gói bắt tay STALL được sử dụng bởi một thiết bị do một trong hai

nguyên nhân sau: -

-

Nguyên nhân thứ nhất được gọi là “Functional Stall”, đặc tính dừng

này liên quan đến việc thiết lập điểm cuối của cuộc truyền. Một

trường hợp đặc biệt của function stall là “Commanded stall”, nó xảy

ra khi mà host dứt khoát thiết lập đặc tính dừng trên điểm cuối. Một

điểm cuối của chức năng mà bị dừng thì nó liên tục trả về gói bắt tay

STALL cho đến khi tình trạng đó chấm dứt nhờ sự can thiệp của host.

Nguyên nhân thứ hai được gọi là “Protocol Stall”. Protocol stall chỉ

liên quan tới các ống điều khiển. Một protocol STALL được trả về

trong giai đoạn dữ liệu hoặc giai đoạn trạng thái của

Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN

Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0 khiển và trạng thái STALL kết thúc tại thời điểm bắt đầu của truyền điều khiển tiếp theo (trong giao tác SETUP). • NYET: Đây chỉ là gói bắt tay cho truyền tốc độ cao và được trả về trong hai trường hợp. Nó được trả về bởi một điểm cuối tốc độ cao như một phần của giao thức PING. NYET cũng có thể được trả về bởi một hub trong đáp ứng giao tác phân chia khi giao tác tốc độ thấp hoặc toàn tốc chưa hoàn

thành hay khi hub không có khả năng điều khiển giao tác phân chia.

hoặc tốc độ thấp.

Một phần của tài liệu Đồ án tìm hiểu về chuẩn USB 2.0 (Trang 50 - 56)