5. 2.1 Vi mạch đệm 74LS245:
6.4.6 Giao thức USB
Phần này ta sẽ mô tả về các lớp giao thức của USB Máy chủ USB sẽ giữ bus hoạt động liên tục bằng cách truyền đi một gói khởi đầu khung SOF ( start of Frame) trong chu kỳ 1ms . Nói chung mỗi lần truyền tin Máy chủ USB cần 3 gói
- Gói mã thông báo (Token packet) - Gói dữ liệu (Data packet)
- Gói bắt tay (Handshake packet)
Trước khi đi vào chi tiết các gói ta định nghĩa một số trường. Tuỳ thuộc vào từng gói mà được tạo thành bởi các trường khác nhau
• Các trường
- Trường Sync: Tất cả các gói đều bắt đầu bằng trường này, trường này gồm 8 bit . Nó được sử dụng để đồng bộ xung clock của việc thu với việc phát, 2 bit sau cùng được sử dụng để chỉ ở đâu trường PID bắt đầu và điểm kết thúc của trường Sync
- Trường định danh gói : Trường định danh gói (PID) được cho theo sau trường Sync của các gói USB
Bốn bit đầu của trường này cho ta biết kiểu gói,khuôn dạng của gói và kiểu phát hiện lỗi được áp dụng cho gói đó.
Bốn bit sau là bốn bit bù của 4 bit trước nó là các bit kiểm tra nó được sử dụng để đảm bảo quá trình giải mã là tin cậy. Nếu có một lỗi PID xảy ra thì 4 bit này không phải là 4 bit bù của 4 bit trước. Host và các thiết bị chức năng phải giải mã được tất cả các trường PID nhận được .Nếu một PID nào có lỗi xuất hiện lỗi này có thể là do: không giải mã được giá trị, hoặc mang đến một giá trị không được định nghĩa .Thì thông tin này bị cho là sai lệch và phía nhận sẽ bỏ qua. Sau đây là bảng các kiểu và giá trị PID với các gói khác nhau
Kiểu PID Tên PID Giá trị
PID Mô tả Token OUT IN SOF SETUP 0001 1001 0101 1101
Cho biết địa chỉ và điểm cuối trong giao tác từ Host tới chức năng Cho biết địa chỉ và điểm cuối trong giao tác từ chức năng tới Host
Gói khởi đầu khung và số khung
Cho biết địa chỉ và điểm cuối trong giao tác
SETUP từ host tới chức năng
Data DATA0
DATA1 00111011 Gói dữ liệu chẵnGói dữ liệu lẻ Handshake ACK
NAK
0010 1010
Bên nhận đã tiếp nhận được gói dữ liệu không có lỗi
Thiết bị nhận không tiếp nhận dữ liệu hoặc thiết bị phát không thể gửi giữ liệu đi được STALL
NYET
1110 0110
Điểm cuối bị dừng hoặc ống điều khiển không được hỗ trợ Không đáp ứng việc nhận Special PRE ERR SPLIT PING 1100 1100 1000 0100
Host đã ra tín hiệu cho phép cổng
downstream thực hiện truyền ở tốc độ thấp
- Trường địa chỉ.
Trường này có 7 bit địa chỉ do đó nó trỏ tới được 127 địa chỉ, địa chỉ 0 là không hợp lệ. Nó chỉ có ý nghĩa khi thiết bị vừa đấu nối vào và đây là địa chỉ mặc định .
Trường này chỉ ra nguồn hoặc nơi đến của gói dữ liệu - Trường điểm cuối
Trường điểm cuối (ENDP) có kích thước 4 bit trỏ được 16 điểm cuối. Trường này cho phép xác định các điểm cuối một cách linh hoạt trong các thiết bị có nhiều hơn một điểm cuối
- Trường dữ liệu
Trường dữ liệu của giao thức USB cho phép có kích thước từ 0 đến 1024 byte và phải là một số nguyên của byte
- Trường số khung
Có độ lớn 11 bit do host tăng thêm trên mỗi khung cơ sở, trường số khung lên tới con số cực đại là 7FFH và chỉ được gửi trong các mã thông báo SOF tại thời điểm khởi đầu của mỗi khung
- Trường kiểm tra dự phòng tuấn hoàn (CRC)
Được sử dụng để bảo vệ tất cả các trường NON-PID trong gói mã thông báo (token) và gói dữ liệu (data). Trường này được phát sinh thông qua các trường tương ứng của nó ở bộ phận phát trước khi thực hiện vệc nhồi bit. Tương tự vậy CRC được giải mã ở bộ phận nhận sau khi loại bỏ việc nhồi các bit. Nếu một CRC bị lỗi thì các trường tương ứng sẽ bị bỏ qua bên nhận
- Trường kết thuc gọi thúc gói :
Trường kết thúc gói EOP nó đánh dấu sự kết thúc của một gói