Khái quát, sơ lược về USB gồm khái niệm, ưu điểm của USB, mô tả hệ thống USB và cáp
Trang 1Đồ án tốt nghiệpMở đầu
Chương 0: Mở đầu
Trong thời đại bùng nổ công nghệ thông tin như hiện nay, tin học đã,đang và sẽ được ứng dụng rộng rãi trong rất nhiều lĩnh vực của đời sống xã hội.Không nằm ngoài tầm ảnh hưởng mạnh mẽ của tin học là những người làmcông tác giảng dạy, đào tạo, nghiên cứu, Khi nói đến họ thì ta có thể thấyngay rằng công việc của họ sẽ thật khó suôn sẻ khi thiếu chiếc máy tính cánhân và các phần mềm đi kèm như bộ Microsoft office với Word, Excel,PowerPoint và nhiều những ứng dụng khác Bên cạnh Word và Excel đã tỏ rõsức mạnh từ lâu thì thời gian gần đây, PowerPoint cùng với chiếc máy chiếucàng ngày càng cho thấy ưu điểm vượt trội của nó trong việc tăng hiệu quả diễnđạt cho một vấn đề bất kỳ Như vậy đi kèm với các gói phần mềm thì để sửdụng chúng một cách hiệu quả còn có những thiết bị đầu cuối Các thiết bị đầucuối làm tăng đáng kể khả năng cho chiếc máy tính cá nhân Trước đây cácthiết bị đầu cuối được ghép nối với máy tính thông qua rất nhiều giao diện nhưcổng com, cổng máy in, PS/2 Hiện nay thì dường như đã dần quy về một mối,đó chính là ghép nối thiết bị đầu cuối với máy tính thông qua cổng USB CổngUSB với đường truyền đa năng đúng như tên gọi của nó (Universal Serial Bus),có khả năng cung cấp nhiều phương thức truyền dẫn cũng như tốc độ truyềnkhác nhau cho các ứng dụng khác nhau Chính vì vậy đồ án này sẽ tập trungtìm hiểu về chuẩn USB 2.0 và ứng dụng chuẩn USB để thiết kế điều khiển từxa cho trình diễn PowerPoint.
Sản phẩm bao gồm: Một bộ phát là thiết bị cầm tay dùng pin, có 3 nútbấm Nút Up giúp người sử dụng trở lại slide ngay trước slide hiện hành, nútDown giúp đi tới slide ngay sau slide hiện hành còn nút light thì bật đèn lasertạo ra đốm sáng nhỏ giúp cho việc trình diễn đạt hiệu quả diễn đạt cao hơn.
Đồ án
Trang 2tốt nghiệp
Mở đầu
Không thể thiếu là một bộ thu ghép nối với máy tính thông qua cổng USB Bộthu này nhận lệnh từ bộ phát và truyền đạt lại lệnh đó tới máy tính Bộ thu dễsử dụng, không cần driver và lấy nguồn từ máy tính.
Hiện nay để thiết kế thành công sản phẩm trên thì có khá nhiều phươngán như: Bộ phát có thể dùng sóng cao tần hoặc năng lượng hồng ngoại đểtruyền lệnh điều khiển tới bộ thu Về phía bộ thu, để thực hiện chức năng giaotiếp USB với máy tính thì cần có một bộ điều khiển USB Để thực hiện bộ điềukhiển này thì có thể dùng các công nghệ như:C; PSoC; SPLD; CPLD;FPGA
Phương án thì có nhiều như vậy nên vấn đề ở đây là lựa chọn phương ánnào cho hợp lý và khả thi nhất Sau một thời gian tìm hiểu, phương án đã đượclựa chọn cho đề tài là: bộ phát sử dụng sóng cao tần để truyền lệnh điều khiển,về phía bộ thu sẽ thực hiện bộ điều khiển USB bằng vi điều khiển có tích hợpmột bộ điều khiển USB chưa được cấu hình.
Với những gì đã được giới thiệu ở trên thì có thể thấy rằng để thực hiệnđề tài cần có kiến thức cơ bản về một số mảng chính sau: Chuẩn USB 2.0, họ viđiều khiển PIC (vì vi điều khiển mà ta sử dụng trong đề tài là vi điều khiển PICcủa hãng MicroChip), truyền tín hiệu điều khiển sử dụng sóng cao tần Chínhvì vậy mà trong khuôn khổ của đồ án này sẽ tập trung trình bày các nội dungsau:
Phần I: Sơ lược về chuẩn USB (gồm 6 chương): Chương 1: Giới thiệu chung về chuẩn USB
Chương này sẽ đưa ra cái nhìn khái quát, sơ lược về USBgồm khái niệm, ưu điểm của USB, mô tả hệ thống USB và cápUSB.
Chương 2: Mô hình luồng dữ liệu USB
Chương này mô tả cách thực hiện một kết nối USB, cáchmà theo đó dữ liệu được truyền qua USB.
Đồ án
Trang 3tốt nghiệp
Mở đầu
Chương 3: Tầng giao thức USB
Chương này đem lại một cái nhìn từ dưới lên trên của giaothức USB, bắt đầu với các định nghĩa trường và gói, sau đó làmô tả các giao tác và cuối cùng là việc đồng bộ và thử lại. Chương 4: Các lớp thiết bị được định nghĩa
Chương này giới thiệu các lớp thiết bị được định nghĩa,giúp những người thiết kế thiết bị đầu cuối USB nhận định xemsản phẩm của mình có thuộc lớp thiết bị được định nghĩa haykhông (nếu thuộc lớp thiết bị được định nghĩa thì có thể bỏ quakhâu viết driver cho sản phẩm).
Chương 5: Lớp thiết bị giao diện người sử dụng
Chương này sẽ trình bày về lớp HID với mục đích giúpngười đọc nhận định xem một thiết bị nào đó có phù hợp để gánvào lớp HID hay không Chỉ ra các yêu cầu đối với vi chươngtrình (firmware) để định nghĩa một thiết bị thuộc lớp HID vàcho phép nó trao đổi dữ liệu với máy tính chủ.
Chương 6: Quá trình tìm hiểu của máy chủ đối với thiết bịChương này mô tả những bước xử lý của máy chủ để máychủ có thể tìm hiểu các thông tin về thiết bị như: Tốc độ củathiết bị, các bộ mô tả của thiết bị Và việc gán một bộ điềukhiển (driver) cho thiết bị.
Phần II: Thiết kế sản phẩm (gồm 2 chương): Chương 7: Thiết kế bộ phát
Chương này sẽ trình bày một số lưu ý khi thiết kế điềukhiển từ xa sử dụng sóng cao tần (RF), sơ đồ khối hệ thống chosản phẩm của đề tài và phần thiết kế bộ phát của sản phẩm. Chương 8: Thiết kế bộ thu
Chương này sẽ giới thiệu sơ qua về họ vi điều khiển loại vi điều khiển mà ta sử dụng cho sản phẩm của đề tài vàphần phân tích thiết kế bộ thu.
Đồ án
Trang 4tốt nghiệp
Mở đầu
Trong phần I thì các kiến thức về chuẩn USB mới chỉ được trình bàyvắn tắt và còn thiếu một số kiến thức đáng quan tâm của chuẩn USB Do yêucầu về sự súc tích của nội dung đồ án cũng như lý do là các phần đó không liênquan trực tiếp đến việc thiết kế sản phẩm nên không trình bày ở đây.
Đồ án tốt nghiệp
Trang 5Sơ lược về chuẩn USB 2.0
PHẦN I: SƠ LƯỢC VỀ CHUẨNUSB 2.0
Trang 6Chương 1: Giới thiệu chung về USB
Chương này sẽ đưa ra cái nhìn khái quát, sơ lược về USB gồm kháiniệm, ưu điểm của USB, mô tả hệ thống USB và cáp USB.
1.1 Khái niệm về USB
USB (Universal Serial Bus) là bus nối tiếp đa năng cho phép các thiết bịđầu cuối giao tiếp với máy tính chủ (Host Computer).
1.2 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.
- Cung cấp giải pháp chi phí thấp song vẫn hỗ trợ truyền dẫn với tốc độlên đến 480Mb/s.
- Hỗ trợ ứng dụng thời gian thực như voice, audio, video,
- Giao thức linh hoạt cho các chế độ hỗn hợp: isochronous data transfersvà asynchronous messaging.
- Tích hợp công nghệ thiết bị tiện nghi.
- Được Windows và các hệ điều hành khác hỗ trợ do đó có thể khôngcần driver mức thấp cho các thiết bị USB.
- Đa năng do đó nhiều thiết bị có thể ghép nối với PC thông qua chuẩnUSB.
- Độ tin cậy cao.
Trang 71.3 Mô tả hệ thống USB
Một hệ thống USB được mô tả bởi ba định nghĩa:-
-Kết nối USBCác thiết bị USBUSB host
Kết nối USB được hiểu là kiểu kết nối mà trong đó các thiết bị USBđược kết nối và giao tiếp với máy tính chủ Kết nối USB bao gồm các vấn đềsau:
+ Kiến trúc Bus: Mô hình kết nối giữa các thiết bị USB và Host.
+ Những mối quan hệ Inter-layer : Dưới dạng một tập khả năng, các tácvụ USB được thực hiện tại mỗi lớp trong hệ thống.
+ Các mô hình luồng dữ liệu: Là hình thức mà trong đó dữ liệu dichuyển trong hệ thống qua USB.
+ Lập trình USB: USB cung cấp một sự kết nối dùng chung Việc truycập tới kết nối được lập trình theo thứ tự để hỗ trợ truyền dữ liệu đẳng thời vàkhử sự phân xử ban đầu.
1.3.1 Kiến trúc Bus
Bus tuần tự đa năng nối các thiết bị USB với Host USB Về mặt kết nốivật lý USB đó là một kiến trúc tầng sao Một Hub ở tại trung tâm của mỗi sao.mỗi đoạn dây là một kết nối từ điểm tới điểm giữa Host và một Hub hoặc mộtchức năng nào đó, hoặc một Hub nối tới Hub khác hoặc chức năng khác Với 7bit địa chỉ, ngoài máy chủ USB ra nó có thể quản lý tối đa 127 thiết bị ngoại vi.Hình 1.1 sẽ minh hoạ kiến trúc của USB.
Trang 8Hình 1.1: Kiến trúc Bus [1]
1.3.1.1 Máy chủ USB (USB Host)
Chỉ có duy nhất một Host trong một hệ thống USB bất kỳ Giao diệnUSB tới hệ thống máy chủ được xem như bộ điều khiển Host Bộ điều khiểnHost có thể được thực hiện trong một kết hợp gồm phần cứng, vi chương trình(firmware) hoặc phần mềm Một Hub gốc (root hub) được tích hợp chỉ trong hệthống Host để cung cấp một hoặc nhiều điểm lắp thêm.
Trang 9Có 3 tốc độ truyền dữ liệu:
-USB tốc độ cao (USB high-speed): 480Mb/s.-USB toàn tốc (USB full-speed): 12Mb/s.-USB tốc độ thấp (USB low-speed): 1.2Mb/s.
Hình 1.2: USB Cable [1]
Cáp USB bao gồm 4 dây, D+ và D- được dùng để truyền tín hiệu, Vbusvà GND để cấp nguồn cho thiết bị ( Thường thì Vbus =5V còn GND=0V tạinguồn) USB cho phép chiều dài các đoạn cáp có thể thay đổi lên tới vài mét.
Ở phía máy chủ Host thì D+ và D- được nối đất qua các điện trở Rpd cònvề phía thiết bị ngoại vi, các đầu dây D+, D- được bảo vệ bởi điện trở cuối (đóchính là các điện trở Rpu Thiết bị tốc độ cao hoặc toàn tốc cần có điện trở nối+3.3 V cho đầu D+, thiết bị tốc độ thấp cần có điện trở nối lên 3.3 V cho đầuD- Những điện trở này tạo nên các mức điện thế khác nhau giữa D+ và D-giúp cho máy chủ phát hiện được việc cắm vào hay rút ra của thiết bị cũng nhưtốc độ truyền dữ liệu của thiết bị.
Trang 10Chương 2: Mô hình luồng dữ liệu USB
Chương này mô tả cách thực hiện một kết nối USB, cách mà dữ liệuđược truyền qua USB.
2.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:-
USB System Software: Là phần mềm hỗ trợ USB trong một hệ điềuhành cụ thể Phần mềm hệ thống USB thường được cung cấp kèmvới hệ điều hành, nó không hề phụ thuộc vào một thiết bị USB cụ thểnào cũng như phần mềm client cụ thể nào.
USB Host Cotroller: Bao gồm phần cứng và phần mềm cho phép cácthiết bị USB kết nối tới Host.
Hình 2.1 sau sẽ chỉ ra sự tương tác giữa một số lớp và thực thể trongmột kết nối đơn giản giữa host và thiết bị.
Trang 11Hình 2.1: Các vùng thực hiện trong một kết nối USB [1]
-USB Bus interface Layer cung cấp kết nối vật lý, gói tin, báo hiệu giữaHost và một thiết bị.
-USB Decive Layer cho thấy 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.
-Function Layer cung cấp khả năng được thêm vào cho Host qua phầnmềm khách (client software) Chính client software sẽ giúp thể hiện chức năngcủa thiết bị USB trên Host.
2.2 Bus topology
Bus topology có 4 thành phần chính:-
Mối liên quan giữa chức năng và phần mềm khách (client software).
-Bộ điều khiển Host.
Phần mềm hệ thống USB đã được gộp chung (thực chất nó gồm:USB Driver, Host Controller Driver và Host software).
Phần mềm khách (client software).
Trang 12Hình 2.2: Kết cấu Host [1]2.2.2 Các thiết bị USB
Kết cấu logic của một thiết bị USB vật lý được chỉ ra trong hình 2.3gồm :
- Giao diện bus USB.- Thiết bị USB logic.- Chức năng.
Trang 13Hình 2.3: Kết cấu thiết bị vật lý [1]
Các thiết bị USB vật lý cung cấp các chức năng bổ sung cho Host Cácthiết bị USB khác nhau thì cung cấp các chức năng khác nhau Mặc dù vậy thìcác thiết bị USB logíc có nối ghép tới Host cơ bản giống nhau.
2.2.3 Kiến trúc bus vật lý (Physical Bus Topology)
Kết nối vật lý của các thiết bị USB thông qua kiến trúc tầng sao (tieredstar topology) như ở hình 2.4 Các điểm nối USB được thông qua bởi một lớpthiết bị USB đặc biệt được hiểu là Hub Các điểm nối bổ sung được kết nốithông qua Hub được gọi là các cổng Host bao gồm cả một Hub được nối vớinó gọi là Hub gốc (root hub) Các kết nối được thực hiện tại các cổng của Hubgốc Các thiết bị cung cấp các chức năng bổ sung cho Host được hiểu là cácchức năng (function).
Hình 2.4: Kiến trúc bus vật lý USB [1]
Trang 142.2.4 Kiến trúc bus logic
Trong khi các thiết bị vật lý được kết nối tới Host theo kiến trúc tầng saothì quá trình truyền thông giữa Host với mỗi thiết bị logic được xem như là kếtnối trực tiếp tới cổng gốc (root port) Trong trường hợp này thì bản thân cáchub cũng là các thiết bị logic, nhưng hình 2.5 dưới đây không vẽ ra để cho hìnhvẽ đơn giản dễ hiểu.
Hình 2.5: Kiến trúc bus logic USB [1]2.2.5 Mối quan hệ giữa chức năng và phần mềm khách
Trong quá trình hoạt động, phần mềm khách nên độc lập với các thiết bịkhác có thể được gắn tới USB.
2.3 Luồng truyền thông USB
USB cung cấp một dịch vụ truyền thông giữa phần mềm trên Host vàchức năng USB của nó Các chức năng có thể có yêu cầu luồng truyền thôngkhác nhau cho các tương tác client-to-function khác nhau 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ớimộ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ốitrên trên một thiết bị Điểm cuối của thiết bị được sử dụng để xác định hướngcủa mỗi luồng truyền thông Hình 2.6 thuyết minh cách các luồng thông tinđược truyền qua các ống dẫn (đường truyền) giữa các điểm cuối và các bộ nhớđệm phía Host Phần mềm trên Host giao tiếp với một thiết bị logic qua một tậpcác luồng truyền thông Tập các luồng truyền thông được chọn bởi các nhà
Trang 15thiết kế phần cứng/phần mềm để đáp ứng một cách có hiệu quả các nhu cầu củathiết bị tới đặc tính truyền tải được cung cấp bởi USB.
Hình 2.6: Luồng truyền thông USB [1]2.4 Các loại truyền dữ liệu USB
USB truyền dữ liệu qua một ống dẫn (đường truyền) giữa một bên là bộnhớ đệm được liên kết với một phần mềm khách trên máy chủ với một bên làmột điểm cuối trên thiết bị USB USB cung cấp các dạng truyền tải khác nhauđã được tối ưu hoá để đáp ứng một cách thích hợp nhất các nhu cầu của phần
mềm khách và chức năng USB cung cấp 4 loại truyền dữ liệu: truyền điềukhiển (control transfer); truyền ngắt (interrupt transfer); truyền đẳng thời(isochronous transfer) và truyền khối (bulk transfer).
2.4.1 Truyền điều khiển
Truyền điều khiển là truyền theo kiểu hai 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 (token stage), tiếp theo là giai đoạn dữ liệu(data stage) và kết thúc là giai đoạn bắt tay (handshake stage) Mọi thiết bịngoại vi USB đều phải xử lý được loại truyền này.
2.4.2 Truyền ngắt
Trang 16Truyền ngắt là kiểu truyền một chiều Loại truyền này được dùng chocác thiết bị ngoại vi như bàn phím, chuột, joystick Vì Host không thể ngắt nêncác ngắt từ thiết bị ngoại vi được xử lý trong vòng đợi Người lập trình hệthống có nhiệm vụ xử lý vòng đợi này Giao thức truyền ngắt khởi động khimáy chủ (Host) bắt đầu bằng một thông báo IN (IN Token) Thiết bị ngoại vitrả lời bằng một gói NAK nếu không có ngắt Trong trường hợp có ngắt thì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 một gói ACK nếu dữ liệu không có lỗi hoặc không trả lời gì nếu cólỗi 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óiSTALL và đợi phần mềm hệ thống trên máy chủ xử lý.
2.4.3 Truyền đẳng thời
Truyền đẳng thời là phương pháp truyền một chiều, hướng cuộc truyềncó thể từ thiết bị ngoại vi về máy chủ hoặc ngược lại Vì thế cuộc truyền cầnhai điểm cuối ở thiết bị ngoại vi hoặc hai đường ống dẫn phần mềm ở phía máychủ nếu thiết bị cần dùng kiểu truyền này để thông tin 2 chiều Giao thức
truyền đẳng thời bắt đầu bằng gói IN hoặc OUT từ máy chủ tuỳ thuộc vàohướng truyền và loại điểm cuối Ví dụ trong trường hợp gói IN, thiết bị truyền
dữ liệu về máy chủ Trong trường hợp OUT, máy chủ tiếp tục bằng cách truyềndữ liệu Truyền đẳng thời không dùng gói bắt tay để thông báo kết quả truyềnnên thông tin có thể bị thất lạc Loại truyền này thường được dùng cho điệnthoại hay loa.
2.4.4 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ủ hay ngược lại Như vậy một thiết bị ngoại vi cần cả haichiều dữ liệu sẽ cần có hai điểm cuối Giao thức truyền khối gồm có 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 Dữ liệu sẽ được truyền qua ốngdẫ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 17Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN
Chương 3: Tầng giao thức USB
Chương này đem lại một cái nhìn từ dưới lên trên của giao thức USB,bắt đầu với các định nghĩa trường và gói, sau đó là mô tả các giao tác và cuốicùng là việc đồng bộ và thử lại.
3.1 Thứ tự Byte/Bit
Các bit trong một Byte truyền trên bus sẽ được truyền lần lượt từ bitLSB cho đến MSB Trong các mục dưới đây thì các gói sẽ được biểu diễn bởi
Trang 18các bit và các trường sắp xếp theo thứ tự từ trái qua phải, đó cũng chính là thứtự mà chúng được gửi qua bus.
3.2 Trường đồng bộ
Tất cả các gói đều bắt đầu bởi trường đồng bộ Nó được sử dụng bởimạch đầu vào để căn chỉnh dữ liệu vào với xung đồng hồ nội Trường đồng bộđược định nghĩa có độ dài 8 bit cho truyền tốc độ toàn tốc hoặc tốc độ thấp và32 bit cho truyền tốc độ cao 2 bít 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 (Packet Identifier Field).Hình 3.1 sau sẽ cho thấy khuôn mẫu của trường đồng bộ với truyền tốc độ thấphoặc toàn tốc.
Hình 3.1: Mẫu đồng bộ [1]
Mẫu đồng bộ 32 bit cho truyền tốc độ cao có dạng hoàn toàn tương tựnhư sau: 01010101010101010101010101010100 Trường đồng bộ chỉ đượcdùng như một cơ chế đồng bộ nên trong các biểu đồ của các gói được trình bàysau đây sẽ không chỉ ra trường này nữa ( ta ngầm hiểu là nó nằm ở đầu mỗigói).
3.3 Định dạng các trường của gói
Phần này sẽ trình bày về định dạng các trường của các loại gói trongUSB là: Gói thông báo (token), gói dữ liệu (data), gói bắt tay (handshake) vàgói đặc biệt (special).
3.3.1 Trường nhận dạng gói
Trường nhận dạng gói PID (Packet Identifier Field) theo ngay sautrường đồng bộ của các gói Một PID gồm một trường dạng gói 4 bit và theosau đó là trường 4 bit kiểm tra như hình 3.2 PID cho biết kiểu gói, định dạng
Trang 19củ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 4bit của PID là để đảm bảo quá trình giải mã là đúng đắn Một lỗi PID xảy ranếu 4 bit của trường kiểm tra PID không phải là những sự bổ sung đảo của cácbít định dạng gói tương ứng.
Hình 3.2: Định dạng PID [1]
Host và tất cả các chức năng phải thực hiện quá trình giải mã một cáchđầy đủ đối với tất cả các trường PID nhận được Bất kỳ PID nào nhận được vớitrường kiểm tra sai hoặc là kết quả giải mã đem đến một giá trị không đượcđịnh nghĩa thì cho rằng PID hỏng và phía nhận sẽ bỏ qua Nếu chức năng nhậnđược PID là hoàn toàn đúng đắn đối với kiểu giao tác hoặc hướng của giaothức mà nó không hỗ trợ thì chức năng không trả lời lại Các kiểu PID và mô tảcủa nó được liệt kê trong bảng 3.1 trang sau.
Bảng 3.1: Các kiểu PID [1]
L
Trang 20PIDTên PID
4 bit thấpcủaPID(Q3→Q0)
Mô tả
Địa chỉ của chức năng và số điểm cuốicủa chức năng trong giao tác truyền từhost tới chức năng
Địa chỉ của chức năng và số điểm cuốicủa chức năng trong giao tác truyền từchức năng tới host
Đánh dấu sự khởi đầu của một khungvà số khung
Địa chỉ của chức năng và số điểm cuốicủa chức năng trong giao tác thiết lậptừ host tới chức năng qua một ốngđiều khiển
Dữ liệu
PID của gói dữ liệu chẵnPID của gói dữ liệu lẻ
PID của gói dữ liệu tốc độ cao, giaotác đẳng thời băng tần cao trong mộtvi khung
PID gói dữ liệu tốc độ cao cho giaotác phân chia và giao tác đẳng thờibăng tần cao.
Bắt tay
Bên thu có thể nhận và đã nhận đượcgói dữ liệu không có lỗi
Thiết bị thu chưa thể nhận dữ liệuhoặc thiết bị phát chưa thể gửi dữ liệuĐiểm cuối bị dừng hoặc yêu cầu vềống điều khiển không được hỗ trợChưa có đáp ứng từ phía thu
Đoạn thông báo khởi đầu được phát rabởi host cho phép lưu lượng
downstream bus truyền tới các thiết bịtốc độ thấp
Gói bắt tay cho phép một hub tốc độcao thông báo có lỗi trên bus toàn tốchoặc bus tốc độ thấp
Thông báo giao tác phân chia tốc độcao
Thông báo rằng luồng tốc độ cao điềukhiển thăm dò một điểm cuối điềukhiển hoặc khôi
PID dự trữ
ê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN
Ghi chú: Các bit của PID được chỉ ra trong bảng theo thứ tự từ trái quaphải tương ứng với MSb đến LSb do đó khi truyền trên bus thì sẽ được truyền
Trang 21theo thứ tự phải trước trái sau.
3.3.2 Các loại trường địa chỉ
Chức năng điểm cuối được địa chỉ hoá bằng cách sử dụng hai trường:trường địa chỉ chức năng và trường điểm cuối Đối với chức năng thì nó cầnphải giải mã hoàn toàn cả trường địa chỉ lẫn trường điểm cuối Nếu địa chỉhoặc điểm cuối mà chưa được cho phép hoặc có một sự không phù hợp ở mỗitrường thì gói mã thông báo (token packet) sẽ bị bỏ qua Việc truy nhập tới cácđiểm cuối mà các điểm cuối đó không được khởi tạo thì gói mã thông báo cũngsẽ bị bỏ qua.
3.3.2.1 Trường địa chỉ
Trường địa chỉ chức năng (ADDR) chỉ ra chức năng là nguồn hay đíchcủa một gói dữ liệu dựa vào giá trị của mã thông báo PID Hình 3.3 cho thấytổng cộng có 128 địa chỉ được xác định bởi ADDR (7 bit) Mỗi giá trị củatrường địa chỉ chỉ ra địa chỉ của một chức năng duy nhất Khi hệ thống đượccấp nguồn hoặc reset thì địa chỉ của chức năng được mặc định có giá trị
0000000b (tức Host và thiết bị sẽ cùng coi 0000000b là địa chỉ của thiết bị khikhởi tạo) do đó nó cần được lập trình bởi host để cung cấp cho chức năng mộtđịa chỉ mới để tiện trao đổi sau này khi có nhiều chức năng USB cùng đượcgắn với Host Cũng từ đây ta thấy rằng địa chỉ 0000000b chỉ nên dùng với mụcđích cung cấp địa chỉ khởi tạo mặc định mà không nên dùng vào mục đích khác.
Hình 3.3: Trường địa chỉ (ADDR Field) [1]
3.3.2.2 Trường điểm cuối
Một trường điểm cuối được thêm vào như trong hình 3.4 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
Trang 22đến Trường điểm cuối được định nghĩa cho các thông báo IN, SETUP, OUTvà thông báo đặc biệt PING Tất cả các chức năng phải hỗ trợ một ống điềukhiển tại điểm cuối 0 (the Default Control Pipe) 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ới16 điểm cuối.
Hình 3.4: Trường điểm cuối [1]3.3.3 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 khungcơ 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 (Start Of Frame) bắt đầu của mỗi khung.
3.3.4 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 đến1024 Byte và phải là một số nguyên lần của Byte Hình 3.5 cho thấy khuôndạng cho nhiều Byte Các bit dữ liệu bên trong mỗi Byte được chuyển ra ngoàitheo thứ tự từ LSb cho đến MSb.
Hình 3.5: Định dạng trường dữ liệu [1]
3.3.5 Các trường kiểm độ dư vòng (Cyclic Redundancy Checks)
Các trường kiểm độ dư vòng được dùng để bảo vệ tất cả các trườngkhông phải là trường PID trong các gói mã thông báo và gói dữ liệu Tất cả cácCRC được tạo thông qua các trường tương ứng của nó ở bộ phận phát trước khi
Trang 23thực hiện việc nhồi các bit Tương tự như vậy, các 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ị hỏng thì cáctrường được bảo vệ bởi CRC đó sẽ bị bên nhận bỏ qua Trong đa số trường hợpthì bên nhận sẽ bỏ qua toàn bộ gói.
3.3.5.1 Token CRCs
Một trường CRC 5 bit được cung cấp cho các trường ADDR và điểmcuối của các thông báo IN, SETUP và OUT hoặc cho trường nhãn thời gian củathông báo SOF Các thông báo đặc biệt PING và SPLIT cũng được bảo vệtrong một trường CRC 5 bit Đa thức sinh có dạng:
Các trường trong mỗi gói sẽ được thể hiện trong các hình vẽ theo đúng thứ tựmà chúng được dịch ra bus.
3.4.1 Các loại gói thông báo
Hình 3.6 chỉ ra khuôn dạng các trường cho một gói thông báo Các gói
Trang 24thông báo bao gồm 1 trường PID chỉ rõ đây là loại gói IN, OUT hay SETUP,ngoài ra còn có các trường ADDR và ENDP Gói thông báo đặc biệt PINGcũng có khuôn dạng tương tự như trên Đối với các giao tác OUT và SETUPthì các trường địa chỉ và điểm cuối chỉ để chỉ ra điểm cuối sẽ nhận gói dữ liệutheo sau Đối với giao tác IN thì các trường này sẽ chỉ ra điểm cuối nào sẽ gửimột gói dữ liệu tới Host Còn đối với giao tác PING thì các trường này chỉ rađiểm cuối sẽ đáp ứng lại với một gói bắt tay Chỉ có Host mới có thể phát racác gói thông báo Một IN PID chỉ ra một giao tác dữ liệu từ chức năng tơiHost Các PID loại OUT và SETUP chỉ ra giao tác dữ liệu từ Host tới chứcnăng Một PID loại PING chỉ ra một giao tác bắt tay từ chức năng gửi tới Host.
Hình 3.6: Khuôn dạng gói thông báo [1]
Các gói thông báo có trường CRC 5 bit để bảo vệ cho các trường ADDRvà ENDP như hình trên Trường CRC không bảo vệ cho trường PID bởi trườngPID đã có một trường kiểm tra riêng cho chính bản thân nó.
3.4.2 Các loại gói thông báo đặc biệt của giao tác phân chia
USB định nghĩa một gói thông báo đặc biệt cho giao tác phân chia đó làSPLIT Đây là một gói thông báo 4 byte khác với 3 byte của một gói thông báothông thường Gói thông báo giao tác phân chia cung cấp các dạng giao tác bổsung với thông tin chỉ rõ giao tác được thêm vào Thông báo giao tác phân chia
được sử dụng để hỗ trợ việc phân biệt giữa quá trình giao tiếp của bộ điềukhiển host với hub tại tốc độ cao với quá trình giao tiếp của hub với các thiết bịtoàn tốc hoặc tốc độ thấp gắn với hub Do việc giao tiếp giữa bộ điều host vàhub thường được đảm nhiệm bởi chip trên main board nên ở đây ta không đềcập sâu thêm vấn đề này (chi tiết về vấn đề này có thể tham khảo tại mục 8.4.2của tài liệu [1]).
Trang 253.4.3 Gói bắt đầu khung SOF (Start-of-Frame Packet)
Các gói SOF được phát ra bởi máy chủ host với tốc độ thường là khoảng1 ms0.0005ms một lần cho bus toàn tốc và khoảng 125s0.0625s chobus tốc độ cao Các gói SOF gồm một PID chỉ ra loại gói và theo sau đó làtrường số khung 11 bit, cuối cùng là CRC 5 bit.
Hình 3.7: Khuôn dạng gói SOF
Thông báo SOF bao hàm một giao tác đánh dấu điểm bắt đầu khung vàsố khung đáp ứng khoảng cách thời gian chính xác để bắt đầu một khung khác.Các chức năng toàn tốc và tốc độ cao bao gồm cả hub sẽ là nơi nhận gói SOFvà dù nhận được hay không, đúng hay sai thì cũng sẽ không có bất kỳ thông tinphản hồi nào về việc đó tới Host.
3.4.4 Gói dữ liệu
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 CRCchỉ được tạo từ trường dữ liệu mà không tính cả trường PID Kích thước tải tintố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à
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ình 3.8: Khuôn dạng gói dữ liệu [1]
Trang 263.4.5 Các loại gói bắt tay
Các gói bắt tay (handshake packets) chỉ có một trường PID Các gói bắttay này được 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ị để cho biết quá trình tiếp nhận dữ liệu thành công, chấp nhận lệnhhoặ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 taythườ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ếuviệ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ạikhô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 thuphải đồng bộ lại lẫn nhau Một gói ACK chỉ được ứng dụng trong các giao tácmà dữ liệu đã được truyền đi và đang mong chờ tín hiệu bắt tay trả lời ACK có
thể được trả về bởi host trong giao tác IN và được trả về bởi chức năng cho cácgiao 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ăngtrong pha dữ liệu của giao tác IN hoặc pha bắt tay của giao tác OUT hoặcPING Host có thể không bao giờ phát NAK Ngoài ra, tín hiệu bắt tay NAKcòn được sử dụng cho những mục đích điều khiển luồng để báo rằng một chứcnăng tạm thời không thể truyền hoặc nhận dữ liệu, nhưng chức năng đó sẽ dần
Trang 27dần có khả năng để truyền hoặc nhận dữ liệu mà không cần sự can thiệp củahost.
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đáp ứng một giao tác PING STALL chỉ ra rằng chức năng chưa cho phéptruyề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 địnhnghĩ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 hainguyên nhân sau:
-Nguyên nhân thứ nhất được gọi là “Functional Stall”, đặc tính dừngnày liên quan đến việc thiết lập điểm cuối của cuộc truyền Mộttrường hợp đặc biệt của function stall là “Commanded stall”, nó xảyra 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 taySTALL 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 truyền điều
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ộtphầ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ànthành hay khi hub không có khả năng điều khiển giao tác phân chia.
ERR: Đây cũng là một gói bắt tay tốc độ cao được trả về để cho phép
một 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 28Thông báođược nhận bị
Đặc tính dừngđiểm cuối
3.4.6.1 Đáp ứng của chức năng đối với giao tác IN
Bảng 3.2 chỉ ra các đáp ứng có thể có của một chức năng với một thôngbáo IN Nếu chức năng không có khả năng gửi dữ liệu thì dựa vào nguyên nhânlà tình trạng dừng hay ống điều khiển không được hỗ trợ mà nó phát một
STALL hay một NAK Nếu thông báo nhận được bị hỏng thì chức năng sẽkhông trả lại một gói bắt tay nào.
Bảng 3.2: Đáp ứng của chức năng cho giao tác IN [1]
3.4.6.2 Đáp ứng của host cho giao tác IN
Bảng 3.3 chỉ ra đáp ứng của host cho giao tác IN Host chỉ có thể trả lạimột loại gói bắt tay duy nhất đó là ACK Nếu host nhận được một gói dữ liệuhỏng nó sẽ loại bỏ và không đưa ra đáp ứng Nếu host không thể nhận dữ liệutừ một chức năng (ví dụ như do tràn bộ đệm) thì tình trạng này được coi như làmột lỗi và host cũng sẽ không đưa ra đáp ứng nào Nếu host có thể nhân dữ liệuvà gói dữ liệu mà nó nhận được không có lỗi thì host chấp nhận dữ liệu và phát
Trang 29Gói dữ liệu bịhỏng
Host có thể nhận dữliệu
Gói bắt tay được trả lại bởiHost
Có Không quan tâm Huỷ dữ liệu, không trả lại đápứng bắt tay nào cả
Bảng 3.3: Đáp ứng của host cho giao tác IN [1]
3.4.6.3 Đáp ứng của chức năng cho giao tác OUT
Đáp ứng bắt tay của chức năng cho một giao tác OUT được chỉ ra trongbảng 3.4 Giả thiết rằng việc giải mã đối với mã thông báo thành công thì chứcnăng sẽ dựa trên các gói dữ liệu nhận được mà có thể trả lại bất kỳ một trong baloại gói bắt tay Nếu gói dữ liệu bị hỏng thì không trả lại bắt tay Nếu gói dữliệu nhận được không có lỗi và điểm cuối của chức năng nhận bị dừng thì chứcnăng sẽ trả lại tín hiệu bắt tay STALL Nếu giao tác đang duy trì chuỗi bit đồngbộ và phát hiện ra sự không phù hợp thì chức năng đáp ứng bằng một gói ACKvà huỷ bỏ dữ liệu Nếu chức năng có thể nhận dữ liệu và dữ liệu nhận đượckhông có lỗi thì nó trả lại một gói ACK Nếu chức năng không thể nhận dữ liệuvì lý do điều khiển luồng nó sẽ đáp trả gói NAK.
Bảng 3.4: Đáp ứng của chức năng cho giao tác OUT [1]
3.4.6.4 Đáp ứng của chức năng cho giao tác SETUP
Trang 30Gói dữliệu bịhỏng
Đặc tínhdừng phíathu
Sự phù hợpcủa bit tuầntự
Chức năngcó thể nhậndữ liêu
Loại bắt tayđược trả về bởichức năng
Không quantâm
Không quantâm
Không trả lại bắttay
Không Thiết lập Khôngquan
Không Không thiếtlập
ACKKhông Không thiết
Không Không thiếtlập
SETUP được định nghĩa là một dạng đặc biệt của giao tác dữ liệu từHost tới chức năng SETUP cho phép host khởi tạo một đồng bộ bít tới cácđiểm cuối của host Từ việc nhận một thông báo SETUP một chức năng nào đóbuộc phải chấp nhận dữ liệu Một chức năng có thể không đáp ứng thông báoSETUP bởi một gói bắt tay STALL hay NAK song chức năng đang có nhiệmvụ nhận dữ liệu thì phải chấp nhận gói dữ liệu theo sau thông báo SETUP Nếumột điểm cuối đang không chịu điều khiển nhận một thông báo SETUP nó phảibỏ qua giao tác và không đưa ra đáp ứng bắt tay nào cả.
3.5 Các chuỗi gói giao tác
Các gói 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(isochronous).
3.5.1 Các giao tác khối
Các loại giao tác khối được đặc trưng bởi khả năng bảo đảm phân phátdữ liệu không có lỗi giữa host và một chức năng bằng cách bắt lỗi và thử lại.Các giao tác khối sử dụng một giao tác ba pha gồm gói thông báo, gói dữ liệu,
gói bắt tay như được trình bày trong hình 3.10 Trong những điều kiện dừng vàđiều khiển luồng nào đó thì pha dữ liệu có thể được thay thế bởi pha bắt tay kếtquả là có một giai tác 2 pha và sẽ không có dữ liệu được truyền Các gói PINGvà NYET chỉ được sử dụng với các thiết bị tốc độ cao.
Trang 31Hình 3.10: Khuông dạng giao tác khối [1]
Khi host sẵn sàng để nhận dữ liệu khối lớn thì nó phát ra một thông báoIN Điểm cuối chức năng đáp ứng lại bằng một gói dữ liệu hoặc sẽ đáp ứng lạibằng gói bắt tay NAK hay STALL nếu chức năng chưa có khả năng đáp ứng lạibằng dữ liệu Gói NAK chỉ ra rằng chức năng tạm thời chưa có khả năng trả vềdữ liệu (ví dụ: chưa có dữ liệu để truyền tới host), trong khi STALL chỉ ra rằngđiểm cuối thường xuyên bị dừng và yêu cầu có sự can thiệp của phần mềm hệthống USB Nếu host nhận được một gói dữ liệu hợp lệ nó sẽ đáp ứng với mộtgói bắt tay ACK Nếu host phát hiện thấy lỗi khi nhận dữ liệu thì nó không đưara đáp ứng tới chức năng.
Khi host sẵn sàng để phát một khối dữ liệu thì ban đầu nó phát ra mộtgói thông báo OUT và theo ngay sau là một gói dữ liệu ( ngoài ra ban đâu nócòn có thể phát một gói thông báo đặc biệt PING) Nếu chức năng nhận dữ liệumà không có lỗi thì nó sẽ trả lời bằng một trong ba (hoặc là 4 bao gồm NYETđối với thiết bị làm việc ở tốc độ cao) gói bắt tay:
ACK để cho biết gói dữ liệu nhận được không có lỗi và host có thể gửigói tiếp theo.
NAK để chỉ ra rằng gói dữ liệu đã nhận không có lỗi nhưng host nêngửi lại dữ liệu vì chức năng đang tạm thời ở trong tình trạng không cho phépnhận dữ liệu (ví dụ như tràn bộ đệm).
Nếu điểm cuối bị dừng thì STALL được trả về để báo cho host rằngkhông nên cố thử lại giao tác bởi vì có tình trạng lỗi tại chức năng.
Nếu gói dữ liệu đã nhận có lỗi CRC hoặc lỗi nhồi bít thì sẽ không có đápứng nào từ phía chức năng.
Hình 3.11 cho thấy chuỗi đọc và ghi dữ liệu truyền khối Host luôn bắtđầu giao tác đầu tiên bằng một DATA0 PID giao tác tiếp theo sẽ là một
DATA1 PID nếu bên phát dữ liệu nhận được gói ACK Còn về phía thu thì khinhận một gói dữ liệu thành công nó sẽ hiểu là gói dữ liệu tiếp theo sẽ có DATAPID trái với DATA PID của gói nó vừa nhận.
Trang 32Hình 3.11: Đọc và ghi truyền khối [1]3.5.2 Các giao tác truyền điều khiển
Các giao tác truyền điều khiển có tối thiểu hai giai đoạn giao tác làSetup và Status Truyền điều khiển có thể tuỳ chọn có hay không một giai đoạndữ liệu ở giữa giai đoạn Setup và giai đoạn Status Trong suốt giai đoạn Setup,một giao tác Setup được sử dụng để truyền thông tin tới điểm cuối điều khiểncủa một chức năng Hình 3.12 cho thấy khuôn dạng giao tác Setup Một giaotác Setup luôn sử dụng một DATA0 PID cho trường dữ liệu của giao tác Setup.Một chức năng có nhiệm vụ nhận một giao tác Setup phải chấp nhận dữ liệucủa gói Setup và đáp ứng lại một gói ACK Nếu dữ liệu bị hỏng thì huỷ bỏ dữliệu và không trả lại đáp ứng bắt tay.
Hình 3.12: Giao tác SETUP điều khiển [1]
Trong giai đoạn dữ liệu, nếu nó được diễn ra thì đối với truyền điềukhiển sẽ gồm một hay nhiều giao tác IN hoặc OUT và có luật giao thức tươngtự như truyền khối Tất cả các giao tác trong giai đoạn dữ liệu phải có cùnghướng (hoặc tất cả dữ liệu là IN hoặc tất cả dữ liệu là OUT) Số lượng dữ liệuđược gửi trong giai đoạn dữ liệu và hướng của nó đã được chỉ rõ trong giai
Trang 33đoạn Setup Nếu lượng dữ liệu vượt quá kích thước cho phép của một gói dữliệu thì dữ liệu sẽ được gửi trong nhiều giao tác IN hoặc OUT.
Giai đoạn Status của truyền điều khiển là giao tác cuối cùng của chuỗicác giao tác Giai đoạn Status cho các thiết bị làm việc ở tốc độ cao còn baogồm giao thức PING Giai đoạn Status được chỉ ra bởi một sự thay đổi vềhướng của luồng dữ liệu so với giai đoạn trước đó và luôn sử dụng mộtDATA1 PID Ví dụ nếu giai đoạn dữ liệu bao gồm các giao tác OUT thì giaiđoạn Status sẽ là một giao tác IN Nếu chuỗi điều khiển không có giai đoạn dữliệu thì nó bao gồm một giai đoạn Setup được theo sau bởi một giai đoạn Statusgồm một giao tác IN.
Hình 3.13 cho thấy thứ tự các giao tác, giá trị chuỗi bit dữ liệu và loạiPID dữ liệu cho chuỗi đọc và ghi điều khiển.
Hình 3.13: Chuỗi điều khiển đọc và ghi [1]
Khi một gói bắt tay STALL được gửi bởi một điểm cuối điều khiểntrong giai đoạn dữ liệu cũng như giai đoạn Status của một truyền điều khiển thìgói bắt tay STALL phải được trả lại trên tất cả các truy cập thành công tới điểmcuối cho đến khi một SETUP PID được nhận Điểm cuối không bị yêu cầu trảlại một gói bắt tay STALL sau khi nó nhận một SETUP PID Một mặc định đốivới điểm cuối đó là nếu một gói bắt tay ACK được trả lời cho giao tác SETUPthì host chờ đợi điểm cuối tự động khôi phục để thoát khỏi trạng thái gây raSTALL và điểm cuối phải làm việc một cách bình thường.
Trang 343.5.3 Các giao tác ngắt
Các giao tác ngắt có thể gồm giao tác IN hoặc OUT Dựa trên việc nhậnmột thông báo IN, thì một chức năng có thể trả lời bằng một gói dữ liệu, mộtNAK hay một STALL Nếu điểm cuối không có thông tin ngắt mới để trả lờithì chức năng trả lời bằng một gói bắt tay NAK trong pha dữ liệu Nếu trạngthái dừng được thiết lập cho điểm cuối ngắt thì chức năng sẽ trả lại một gói bắttay STALL Nếu một ngắt chưa quyết định thì chức năng sẽ trả lại thông tinngắt như một gói dữ liệu Host trong đáp ứng nhận gói dữ liệu sẽ trả lời bằngmột gói ACK nếu dữ liệu được nhận không có lỗi và trả lời một gói bắt tay nàonếu dữ liệu nhận được có lỗi Hình 3.14 cho thấy khuôn dạng giao tác ngắt.
Hình 3.14: Khuôn dạng giao tác ngắt [1]3.5.4 Các giao tác đẳng thời
Các giao tác đẳng thời có một pha thông báo và một pha dữ liệu, khôngcó pha bắt tay như được thấy trong hình 3.15 Host phát ra một thông báo INhoặc OUT và theo sau là pha dữ liệu trong pha dữ liệu thì điểm cuối (đối vớigiao tác IN) hoặc host (đối với giao tác OUT) sẽ phát dữ liệu Các giao tác
Trang 35đẳng thời không hỗ trợ pha bắt tay cũng như khả năng thử lại
Hình 3.15: Khuông dạng giao tác đẳng thời [1]
Các điểm cuối tốc độ cao, các điểm cuối ngắt và đẳng thời độ rộng băngtần lớn hỗ trợ kỹ thuật đồng bộ dữ liệu tương tự song khác so với đồng bộ lậtdữ liệu gọi là kỹ thuật xử lý tuần tự PID dữ liệu.
3.6.1 Khởi tạo thông qua thông báo SETUP