a.Truyền điều khiển -Truyền điều khiển là truyền theo kiểu 2 chiều -Loại truyền này thường được sử dụng để cài đặt thiết bị ngoại vi -Giao thức truyền điều khiển được bắt đầu bằng một
Trang 1Tìm hiểu về chuẩn giao
tiếp usb
Sinh viên thực hiện: Nguyễn Bá Sỹ
Trang 2Nội dung:
• Giới thiệu chung về chuẩn USB.
• Mô hình luồng dữ liệu USB.
• Tầng giao thức USB
• Quá trình tìm hiểu của máychủ đối với thiết bị
• Ứng dụng
Trang 3I Giới thiệu chung về chuẩn USB
1.Định nghĩa: USB (Universal Serial Bus) là bus nối
tiếp đa năng cho phép thiết bị đầu cuối giao tiếp với máy chủ
Chuẩn truyền thông: nối tiếp
Trang 4-Năm 2007 USB 3.0 ra đời mang 1 bước đột phá
về tốc độ truyền dữ liệu
3.Các mục tiêu hướng tới khi sử dụng USB
-Dễ dàng mở rộng các thiết bị đầu cuối của PC
-Chi phí thấp nhưng tốc độ truyền dẫn cao,lên tới 480Mb/s với USB 2.0 và 3.2 đến 4 Gb/s đối với USB3.0
- Hỗ trợ thời gian thực như video,audio…
-Được windows và các hệ điều hành khác hỗ trợ
do đó không cần driver mức thấp nhất cho các
thiết bị
- Đa năng,độ tin cậy cao
Trang 6-USB host : là một máy chủ USB duy nhất trong hệ thống USB bất kỳ
-Thiết bị USB có thể là các thiết bị sau:
.Hub: cung cấp điểm lắp thêm vào USB
Các chức năng:cung cấp các khả năng cho hệ thống như kết nối ISDN,digital joystick, speakers .Thiết bị hiểu được giao thức USB
Trang 85.Giác cắm USB
Trang 10- D+ và D- dùng để truyền tín hiệu
-Vbus và GND để cấp nguồn cho thiết bị
-USB cho phép chiều dài các đoạn cáp có thể lên tới 2 mét
- Ở phía máy chủ host thì D+ và D- được nối đất qua các điện trở Rpd còn phía ngoại vi,các đầu dây D+ và D- được bảo vệ bởi điện trở
cuối Rpu
Trang 11II Mô hình luồng dữ liệu
1.Các thành phần trong việc thực hiện kết nối USB
Việc thực hiện kết nối USB gồm các thành phần:
-Thiết bị USB vật lý: một phần cứng ở đầu cuối của cáp USB thi hành một vài chức năng hữu dụng với người sử dụng
-Client Software: Phần mềm thi hành trên máy chủ.Phần
mềm này có thể được cung cấp bởi hệ điều hành hoặc được cung cấp cùng với thiết bị USB
Trang 12- USB system software: là phần mềm hỗ trợ
USB trong một hệ điều hành cụ thể.Phần mềm
hệ thống USB thường được cung cấp kèm với hệ điều hành, không phụ thuộc vào một thiết bị
USB cụ thể nào
- USB host cotroller: Bao gồm các thiết bị phần cứng và phần mềm cho phép các thiết bị USB
kết nối với host
- USB bus interface layer cung cấp kết nối vật lý,gói tin,báo hiệu giữa host và một thiết bị
-USB decive layer cho thấy hệ hệ điều hành hỗ trợ thiết bị USB cần có một phần mềm hệ thống
để thực hiện việc quản lý thiết bị USB logic
Trang 13Các vùng thực hiện trong việc kết nối USB
Trang 14-Function layer cung cấp khả năng được thêm vào cho host qua phần mềm khách
Trang 153.Luồng truyền thông USB
Trang 16-USB cung cấp sự sử dụng bus toàn diện hơn bằng cách tách các luồng truyền thông khác nhau tới một chức năng USB.
-Mỗi luồng truyền thông được kết thúc tại một điểm cuối trên một thiết bị
-Điểm cuối của thiết bị được dùng để xác định hướng của mỗi luồng truyền thông
Trang 174.Các loại truyền dữ liệu USB
-USB truyền dữ liệu qua một ống dẫn giữa một bên là
phần mềm khách một bên là một điểm cuối trên thiết
bị USB
-USB cung cấp 4 loại truyền dữ liệu:
.Truyền điều khiển
.Truyền ngắt
.Truyền đẳng thời
.Truyền khối
Trang 18a.Truyền điều khiển
-Truyền điều khiển là truyền theo kiểu 2 chiều
-Loại truyền này thường được sử dụng để cài đặt
thiết bị ngoại vi
-Giao thức truyền điều khiển được bắt đầu bằng một giai đoạn thông báo, tiếp theo là giai đoạn dữ liệu và kết thúc là giai đoạn bắt tay
-Mọi thiết bị ngoại vi USB đều phải xử lý được loại truyền này
Trang 19b.Truyền ngắt
-Truyền ngắt là kiểu truyền một chiều,sử dụng cho các thiết bị ngoại vi như chuột,bàn phím…
-Giao thức truyền ngắt khởi động khi máy
chủ(host)bắt đầu bằng 1 thông báo in(in token)
-Thiết bị trả lời bằng 1 gói NAK nếu không có ngắt -Khi có ngắt thiết bị ngoại vi trả lời bằng một gói
dữ liệu.Khi nhận hết dữ liệu máy chủ sẽ trả lời
bằng 1 gói ACK nếu không có lỗi
Trang 20-Nếu bị nghẽn ở điểm cuối của thiết bị ngoại vi,nó sẽ gủi đến máy chủ gói STALL và đợi phần mềm hệ thống trên máy chủ xử lý
c.Truyền đẳng thời
-Truyền đẳng thời là phương pháp truyền 1 chiều
Hướng truyền có thể truyền từ thiết bị ngoại vi về máy chủ hoặc ngược lại.
-Truyền đẳng thời không dùng gói bắt tay để để thông báo kết quả truyền thông tin nên thông tin có thể bị thất lạc (dùng cho điện thoại hay loa)
Trang 21
-d Truyền khối
-Truyền khối là phương pháp truyền một chiều Hướng truyền có thể từ điểm cuối về máy chủ hoặc ngược lại
-Giao thức truyền khối gồm 3 giai đoạn: Thông báo,dữ liệu và gói bắt tay
-Nếu thiết bị bị kẹt sẽ không có giai đoạn dữ
liệu mà chỉ có thông báo và bắt tay
Trang 22-Dữ liệu được truyền qua ống dẫn từ một vùng đệm dữ liệu trong bộ nhớ của chương trình
tương ứng tới một điểm cuối của thiết bị ngoại vi
Trang 23III Tầng giao thức USB
32 bit cho tốc độ cao
Trang 24-Hai bit cuối cùng của trường đồng bộ đánh dấu sự kết thúc của trường đồng bộ và sự bắt đầu của PID
Trang 253.Định dạng các trường của gói (Trình bày về
định dạng các trường của các loại gói trong USB là:Gói thông báo,gói dữ liệu,gói bắt tay và gói đặc biệt)
a.Trường nhận dạng gói
-Trường nhận dạng gói PID nằm ngay sau trường đồng bộ của các gói
Trang 26-Một PID(Packet Identifier Field) gồm một trường gói 4 bít và theo sau đó là 4 bit kiểm tra
-PID cho biết kiểu gói,định dạng của gói và kiểu phát hiện lỗi được áp dụng cho gói chữa nó
-Trường kiểm tra 4 bít của PID là để đảm bảo quá
trình giải mã là đúng đắn
-Mỗi lỗi PID xảy ra nếu 4 bít của trường kiểm tra PID không phải là những sự bổ sung đảo của các bít định dạng gói tương ứng
b.Trường địa chỉ
-Trường địa chỉ chức năng(ADDR) chỉ ra chức năng
là nguồn hay đích của một gói dữ liệu dựa vào giá trị của mã thông báo PID
Trang 27-Có tổng cộng 128 địa chỉ được xác định bởi ADDR
Trường địa chỉ(ADDR)
-Mỗi giá trị của trường địa chỉ chỉ ra địa chỉ của một chức năng duy nhất
-Khi hệ thống được cấp nguồn hoặc reset thì địa chỉ của chức năng được mặc đinh có giá trị là 0000000b
Trang 28
c.Trường điểm cuối
-Trường điểm cuối được thêm vào cho phép việc đánh địa chỉ chức năng mềm dẻo hơn khi có nhiều hơn một điểm cuối được cần đến
Trường điểm cuối
-Trường điểm cuối được định nghĩa cho các thông báo IN,SETUP,OUT và thông báo đặc biệt Ping
-Thiết bị tốc độ thấp hỗ trợ tối đa 3 ống dẫn cho một chức năng,các chức năng toàn tốc hay tốc độ cao có thể hỗ trợ tối đa tới 16 điểm cuối
Trang 29d.Trường số khung
Trường số khung là một trường 11 bit do host tăng thêm trên mỗi khung cơ sở.Trường số 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 bắt đầu của mỗi khung
e.Trường dữ liệu
-Trường dữ liệu của giao thức USB cho phép kích
thước từ 0 đến 1024 byte và phải là số nguyên lần của byte
Trang 30-các bit dữ liệu bên trong mỗi byte được chuyển ra
-Tất cả các CRC được tạo 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 việc nhồi bít.Các CRC được giải mã ở bộ phận nhận sau khi loại bỏ việc nhồi các bít
-Nếu 1 CRC bị hỏng thì các trường được bảo vệ bởi CRC sẽ bị bên nhận bỏ qua toàn bộ gói
Trang 314.Các định dạng gói
gồm có các loại gói:Gói thông báo(token packet),Gói
dữ liệu(data packet), Gói bắt tay(handshake
packet),Gói đặc biệt(special packet)
a.Các loại gói thông báo
Trang 32-Các gói thông báo gồm 1 trường PID chỉ rõ đây là gói IN,OUT hay SETUP.Ngoài ra còn có các
trường ADDR và ENDP
-Các gói thông báo có trường CRC 5bit để bảo vệ cho các trường ADDR và ENDP
b.Gói dữ liệu
Trang 33-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 đến 1024 byte) và cuối cùng là trường CRC 16 bit
-Kích thước tối đa cho phép đối với thiết bị tốc độ
thấp là 8byte, với thiết bị toàn tốc là 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
c.Các gói bắt tay
Trang 34-Các gói bắt tay chỉ có 1 trường PID.Các gói bắt tay này dùng để báo tình trạng của một giao tác dữ
liệu và có thể trả về những giá trị để biết quá trình tiếp nhận dữ liệu thành công,chấp nhận lệnh hay từ chối lệnh,điều khiển luồng và dừng hoạt động
-Có tất cả 5 loại gói bắt tay:
ACK : Tín hiệu này báo rằng gói dữ liệu nhận
được mà không có lỗi nhồi bít hoặc các lỗi CRC ở trường dữ liệu và PID của gói nhận được là đúng đắn
NAK: Tín hiệu 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
Trang 35STALL : Tín hiệu 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 giao tác out
NYET: đây chỉ là gói bắt tay cho truyền tốc độ
cao.Nó được trả về bởi một điểm cuối tốc độ cao như một phần của giao tác Ping.Nó 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
ERR: đây cũng là một gói bắt tay tốc độ cao được
trả về để cho phép 1 hub tốc độ cao thông báo một lỗi trên bus toàn tốc hoặc tốc độ thấp
Trang 365.Các chuối gói giao tác
-Các goi của một giao tác sẽ biến thiên dựa vào loại điểm cuối
-Có 4 loại điểm cuối là:khối(bulk), điều khiển
(control) ngắt(interrupt) và đẳng thời
(isochoronous)
a.Giao tác khối
Trang 38b.Giao tác truyền điều khiển
Trang 39c.Giao tác ngắt
Trang 40d.Giao tác đẳng thời
Trang 41IV Quá trình tìm hiểu của máychủ đối với
thiết bị
-Trước khi có thể giao tiếp với thiết bị,máy chủ
cần tìm hiểu thiết bị và gán cho thiết bị một bộ
điều khiển(driver)
-Những công việc cần được xử lý của quá trình
tìm hiểu bao gồm: Gán địa chỉ cho thiết bị, đọc các mô tả từ thiết bị, gán và tải một bộ điều khiển cho thiết bị, chọn một cấu hình phù hợp với
những yêu cầu về công suất của thiết bị, những yêu cầu của điểm cuối và một số đặc điểm khác
Trang 42để biết có hay không một thiết bị mới được căm vào hoặc vừa được tháo ra
Trang 432.Các bước của quá trình tìm hiểu
-Trong suốt quá trình tìm hiểu thì thiết bị trải qua 4
trạng thái: Được cấp nguồn,mặc định,đã gán địa
chỉ,đã được cấu hình Hai trạng thái còn lại là vừa được gán và treo
-Trong mỗi trạng thái thì thiết bị được chỉ định các
khả năng và cách làm việc tương ứng
a.Người sử dụng gắn thiết bị vào USB
Khi ngươi sử dụng gắn thiết bị vào cổng USB hoặc
khi khởi động với thiết bị USB được gắn sẵn thì hub
mà thiết bị gắn tới sẽ cấp nguồn tới cổng có thiết bị
và lúc này thiết bị ở vào trạng thái được cấp nguồn
Trang 44b.Hub phát hiện thiết bị vừa gắn vào hệ thống
-Hub giáp sát điện áp trên đường các đường dây tín hiệu tại mỗi cổng của nó để biết có hay không một thiết bị vừa được gán vào
-Hub có điện trở kéo nằm trong khoảng 14.25 đến
24.8 Kilo ôm cho mỗi đường tín hiệu của nó
-Còn thiết bị cũng có điện trở trở kéo lên có giá trị
khoảng 900-1575 ôm trên D+ đối với thiết bị tốc độ cao hoặc toàn tốc,trên D- đối với thiết bị tốc độ thấp-Hub phát hiện thiết bị được gắn vào khi thấy điện áp
chuyển từ mức thấp laaen mức cao trên một trong hai đường tín hiệu(D+ hoặc D-)
Trang 45c.Máy chủ tìm hiểu thiết bị mới
Mỗi hub sử dụng điểm cuỗi ngắt của nó để báo
cáo sự kiện xảy ra tại hub với máy chủ
d.Hub xác định xem tốc độ của thiết bị là thấp hay toàn tốc
-Hub xác định tốc độ của thiết bị bằng cách kiểm tra điện áp trên hai đường dây tín hiệu D+ và D- khi bus ở trạng thái rỗi
-Nếu tại trạng thái rỗi mà điện áp trên D- cao hơn D+ thì tốc độ của thiết bị là thấp còn ngược lại thì tốc độ của thiết bị là toàn tốc
Trang 46e.Hub reset thiết bị
- Khi máy chủ tìm hiểu về thiết bị mới thì bộ
điều khiển của máy chủ gửi tới hub một yêu
cầu Set_Port_Feature để yêu cầu hub reser
cổng có gắn thiết bị
- Hub reset thiết bị bằng cách đưa cả hai đường thiết bị tín hiệu D+ và D- về mức logic thấp
trong khoảng thời gian tối thiểu là 10 ms(ở
trạng thái bình thường thì hai đường tín hiệu có mức logic trái ngược nhau)
Trang 47f.Máy chủ tìm hiểu xem nếu một thiết bị là thiết
bị toàn tốc có hỗ trợ tốc độ cao không
-Nếu một thiết bị có hỗ trợ tốc độ cao thì trong quá trình reset nó sẽ gủi tới hub một chip K(tức làm
cho đường D- có điện áp cao hơn đường D+) dài trong khoảng thời gian từ 1 tới 7 ms
- Khi nhận được chip K máy chủ trả lời thiết bị bằng cách gủi một chuối chíp KJKJKJ tới thiết bị (Chip
J có điện áp trên đường D+ cao hơn D-)
-Khi thiết bị nhận được thì nó hiểu nó được làm việc
ở tốc độ cao
-Để làm việc ở tốc độ cao thì thiết bị phải vô hiệu
hóa điện trở kéo lên tại đường D+
Trang 48g.Hub thiết lập một đường truyền tín hiệu giữa
thiết bị và bus
- Máy chủ kiểm tra xem thiết bị đã thoát khỏi trạng thái reset hay chưa bằng cách gửi tới hub yêu cầu Get_Port_Status.Hub có nhiệm vụ trả lời lại yêu cầu này
- Khi hub gỡ bỏ trạng thái reset thì thiết bị được đưa vào trạng thái mặc định
h.Máy chủ tìm hiểu kích thước lớn nhất của gói đối với đường truyền mặc định
-Máy chủ gửi yêu cầu tới điểm cuối 0 của thiết bị có địa chỉ 0
Trang 49-Trong 8 byte của bộ mô tả thiết bị có chữa thông tin kích thước tối đa cho một gói tin mà điểm
cuối hỗ trợ
i.Máy chủ gán một địa chỉ cho thiết bị
- Máy chủ gán một địa chỉ cụ thể không trùng lặp với địa chỉ của thiết bị khác cho thiết bị bằng
cách gủi yêu cầu Set_Address tới thiết bị
- Thiết bị sẽ hoàn tất giai đoạn trạng thái của yêu cầu trên với địa chỉ mặc định là 0 và sau đó sẽ sử dụng địa chỉ mới mà máy chủ vừa gán cho nó để thực hiện giao tác tiếp theo(lúc này thiết bị ở vào trạng thái địa chỉ)
Trang 50- Địa chỉ mà máy chủ vừa gắn cho thiết bị sẽ có hiệu lực cho tới khi thiết bị được tháo ra hoặc hệ thống khởi động lại
j.Máy chủ tìm hiểu về các khả năng của thiết bị
-Máy chủ gủi yêu cầu Get_Descriptor tới thiết bị theo địa chỉ mà nó đã gán trước đó
- Trong lần gửi yêu cầu này thì máy chủ sẽ thu hồi toàn bộ nội dung của bộ mô tả thiết bị
- Bộ mô tả thiết bị có chữa các thông tin như kích
thước tối đa của gói tin cho điểm cuối 0,số lượng cấu hình mà thiết bị hỗ trợ và một số thông tin cơ bản khác
Trang 51k.Máy chủ gán và tải bộ điều khiển cho thiết bị.
- Sau khi tìm hiểu về thiết bị thông qua các bộ mô tả của nó,máy chủ tìm kiếm bộ điều khiển thiết bị phù hợp nhất cho thiết bị để quản lý việc giao tiếp với thiết bị
l.Bộ điều khiển thiết bị của máy chủ lựa chọn một cấu hình
-Sau khi tìm hiểu thiết bị thông qua các bộ mô tả,bộ điều khiển thiết bị yêu cầu một cấu hình nhờ việc gửi yêu cầu Set_Còniguratinon với chỉ số cấu hình tương ứng
Trang 52-Thiết bị đọc yêu cầu từ máy chủ và cho phép
một cấu hình tương ứng được tích cực(thiết bị
sẽ làm việc với cấu hình đó).Thiết bị lúc này đã được đưa tới trạng thái được cấu hình và giao diện của thiết bị đã bắt đầu được phép hoạt
Trang 53-Trang thái tháo ra: Nếu hub không cấp nguồn tới các đường Vbus của thiết bị thì thiết bị ở trạng thái đã tháo ra.Hiện tượng thiết bị không được cấp nguồn mặc dù vẫn đang gắn bào hub xảy ra khi hub nhận được yêu cầu từ máy chủ buộc nó cắt nguồn cấp cho thiết bị.
-Trạng thái treo: Thiết bị sẽ ở vào trạng thái treo khi nó phát hiện thấy đã 3ms trôi qua mà không thấy bất kỳ một tín hiệu nào trên bus.Thiết bị
phải có khả năng phát hiện khoảng thời gian 3
ms không tích cực của bus và đưa thiết bị vào trạng thái treo
Trang 54V.Ứng dụng