Giao thức truyền

Một phần của tài liệu THIẾT KẾVÀ CHẾTẠO MÁY PHÂN TÍCH ĐA KÊNH (1024 kênh) GHÉP VỚI MÁY VI TÍNH QUA CỔNG USB (Trang 37 - 39)

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, truyền thông USB có các loại trường sau:

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”. Việc sử dụng SYNC làm khởi đầu cho một gói nó giống như bit Start trong RS 232. 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 sau ngay trường SYNC trong mỗi gói của USB, gói có chiều dài 8bit gồm 4bit thấp là 4bit nhận dạng gói, 4bit cao là đảo của 4bit thấp nhằm kiểm soát lỗi khi truyền. Trường PID mô tả loại gói sẽ được truyền sau nó. Cả chủ USB và các thiết bị USB đều nhận biết được các mã trường nhận dạng đã được qui định. Nếu mã nhận được là không nằm trong các mã đã qui định chủ USB sẽ không hỗ trợ. Sau đây là bảng danh sách mã trường nhận dạng của các loại gói trong USB.

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

Loại PID Tên PID PID [3:0] Mô tả

Out 0001B Chủ USB ghi ra.

Token In 1001B Chủ USB đọc từ thiết bị.

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

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

Data DATA0 0011B Gói dữ liệu data0

DATA1 1011B Gói dữ liệu data1

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

NAK 1010B Thiết bị ngoài không chấp nhận dữ liệu

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

Handshake STALL 1110B Điểm cuối tạm ngưng hay không hỗ trợ. Special PRE 1100B bus trao Chủ USB đổi vđưa ra cho phép ới các thiết bị có tđườốc ng ra cđộ thấp. ủa

Trường địa chỉ (ADDR): là địa chỉ riêng để truy cập tới 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 điểm 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à 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 11bit, nó được gửi trong gói SOF (Start Of Frame Packets). SOF được gửi bởi chủ USB theo chu kỳ 1ms  0.005ms.

Trường dữ liệu: trường dữ liệu có độ dài từ 0 đến 1023byte, 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à bit bit có trong số lớn nhất (Msb).

2) Cá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 trong truyền điều khiển. Dạng chung các gói nhận dạng như hình sau:

Hình 3.11 Gói nhận dạng

Các gói nhận dạng mà USB sử dụng là một trong các gói IN, OUT, Setup. Mỗi gói đều có 4 trường: PID có chiều dài 1 byte 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 khung (Start Of Frame): gói khởi đầu khung được phát ra từ chủ USB theo chu kỳ 1.00ms 0.005ms, gói khởi đầu khung (SOF) bao gồm các trường:

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

o 11bit: số khung.

o 5bit: kiểm tra lỗi CRC5. (adsbygoogle = window.adsbygoogle || []).push({});

Hình 3.12 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 (8bit). Trường dữ liệu có chiều dài nằm trong khoảng 0  1023byte và 16bit CRC. Có hai loại gói dữ liệu được nhận biết qua trường PID là Data 0 và Data 1, hai loại gói này được định nghĩa để hỗ trợ trong truyền dữ liệu đồng bộ.

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

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

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 chủ USB biết dữ liệu không được gửi.

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 yêu cầu là không hỗ trợ.

Hình 3.14 Gói bắt tay

Một phần của tài liệu THIẾT KẾVÀ CHẾTẠO MÁY PHÂN TÍCH ĐA KÊNH (1024 kênh) GHÉP VỚI MÁY VI TÍNH QUA CỔNG USB (Trang 37 - 39)