Chương 1 : GIAO TIẾP USB (UNIVERSAL SERIAL BUS) 1.1 Các phiên bản USB Cổng USB (Universal Serial Bus) là một bus nối tiếp được phát triển bởi các công ty: Compad, DEC, IBM, Microsoft, NEC và Nortel. Việc xây dựng và phát triển cổng USB nhằm mục đích có thể kết nối dễ dàng đến nhiều thiết bị mở rộng khác nhau. Bus USB có các phiên bản sau đây: - USB 1.0: Đây là phiên bản bus USB đầu tiên, được giới thiệu vào năm 1996. Tốc độ truyền dữ liệu giữa máy tính và thiết bị kết nối có thể đạt tới 12Mbit/s.1: Phiên bản kế thừa của USB 1.0 và được giới thiệu trong năm 1997.
Phiên bản này mang đầy đủ các tính năng của USB 1.0 và ngoài ra nó còn hỗ trợ 2 tốc độ truyền là 12 Mbit/s cho thiết bị toàn tốc và 1,5 Mbit/s cho thiết bị tốc độ thấp.0: Được giới thiệu vào năm 200, nó tương thích với các phiên bản trước đó và thêm lựa chọn tốc độ cao 480 Mbit/s. Tháng 12 năm 2000 công ty ECN đưa ra chuẩn đầu nối kiểu mới (kiểu đầu nối B).0 : Phiên bản này ra đời năm 2008, tốc độ có thể gấp hàng chục lần tốc độ của phiên bản USB 2.1 : Biểu tượng của bus USB (a), cáp và cổng kết nối (b) 1.2 Đặc điểm của giao tiếp USB Giao tiếp USB là giải pháp cho các vấn đề của các giao tiếp truyền thống. Giao tiếp USB giải quyết được những thiếu sót của các giao tiếp truyền thống cho các thiết bị ngoại vi tới các máy tính. Các vần đề được giải quyết là: Giới hạn số cổng trên các máy tính: Trước khi có cổng USB hầu hết các máy tính chỉ được trang bị một cổng máy in và hai cổng nối tiếp.
-------------------------------------------------------------------------------------------------- SVTH: NGUYỄN THỊ HẢI 3 Thiết kế bộ điều khiển USB cho FPGA ----------------------------------------------------------------------------------------------------- Vấn đề một vài thiết bị ngoại vi modern cần các kết nối tốc độ cao tới máy tính cũng được khắc phục với cổng USB. Việc gắn các thiết bị ngoại vi mới lần đầu tiên cần cấu hình bằng tayqua cổng USB. Giao tiếp USB là một chuẩn riêng lẻ, được chuẩn hóa và dễ sử dụng để kết nối, có thể kết nối tới 127 thiết bị với một máy tính. Mỗi thiết bị có thể dùng tới băng thông tối đa 6Mb/s, nó đủ nhanh cho rất nhiều thiết bị ngoại vi mà hầu hết mọi người muốn kết nối tới máy tính của họ.
Tất cả các giao tiếp tới máy tính dần được thay thế bằng cổng USB. Hầu hết các máy tính bàn đều được trang bị các cổng USB. Người sử dụng mong muốn việc cài đặt và sử dụng các thiết bị ngoại vi USB không có lỗi. Đó là vấn đề chính đặt ra cho các nhà thiết kế.
Để làm được như vậy, khi một thiết bị được cắm vào, bộ điều khiển thiết bị của nó có thể được cài đặt rõ ràng cho người sử dụng. Về mặt phần mềm từ phiên bản OEM 2.1 của Windows 95 bắt đầu có hỗ trợ một số tính năng. Trong phiên bản Windows 98 một số thiết bị được cung cấp trình điều khiển thiết bị (Device Driver) kèm theo Windows. Các gói phần mềm hỗ trợ cho cổng USB tiếp tục được xây dựng và tích hợp trong các phiên bản Windows Me, Windows 2000 và Windows XP.
làm cho cổng USB trở lên thông dụng Thực tế bus USB với đã khẳng định được các lợi ích đem lại tạo nên các đặc điểm của nó: - Dễ dàng sử dụng: Người dùng không phải quan tâm nhiều tới cấu hình và cài đặt chi tiết cho thiết bị. Giao tiếp USB điều khiển luồng dữ liệu thông qua bộ đệm bằng việc quản lý giao thức đặt sẵn bên trong. - Nhanh: giao diện không bị thắt “cổ chai” với các thiết bị truyền thông chậm. - Tin cậy: ít có lỗi do có cơ chế tự động sửa lỗi.
- Mềm dẻo: có thể kết nối nhiều loại thiết bị với giao tiếp này. - Cung cấp nguồn trên bus: điều này rất thuận tiện cho các thiết bị xách tay với dòng tiêu thụ nhỏ có thể được cung cấp thông qua bus. - Được hỗ trợ bởi hệ thống: Khi một thiết bị được đấu nối vào hệ thống USB, hệ thống tự phát hiện và gọi phần mềm cài đặt cho chúng. Đặc tính này gọi là cắm nóng (Plug and Play) là một trong những đặc tính mà các cổng USB trước đó không như LPT hay RS 232 không có được.
- Kết nối nhiều nhiết bị: có thể kết nối với đến 127 thiết bị có cấu hình và tốc độ khác nhau trên một hệ thống bus USB. -------------------------------------------------------------------------------------------------- SVTH: NGUYỄN THỊ HẢI 4 Thiết kế bộ điều khiển USB cho FPGA ----------------------------------------------------------------------------------------------------- * Các thiết bị kết nối được bằng giao thức USB: - Máy in - Máy quét - Chuột - Joystick (cần điều khiển của máy bay) - Flight yoke - Camera số - Webcam - Các thiết bị thu dữ liệu kỹ thuật cao - Modem - Loa - Điện thoại - Video Phone - Các thiết bị lưu trữ như bộ điều khiển Zip - Các kết nối mạng như mạng ở nhà AnyPoint của Intel. So sánh giao tiếp USB với các giao tiếp thông dụng trên máy tính.1: so sánh gaio tiếp USB với các giao tiếp thông dụng trên máy tính Số thiết bị Chiều dài Tốc độ lớn Thiết bị sử Dạng truyền Giao tiếp lớn nhất (m) nhất (bit/s) dụng Chuột, bàn Nối tiếp không 1.5,12, USB 127 5m phím, bộ điều đồng bộ 480MB khiển đĩa Modem, chuột, Nối tiếp không các thiết bị RS 232 2 9- 30.5 20-115K đồng bộ điều khiển khác Hệ thống thu Nối tiếp không RS 485 32-256 1200 10M dữ liệu và điều đồng bộ khiển Nối tiếp hồng Máy in, kết nối IrDA 8 1.8 115M ngoại mạng -------------------------------------------------------------------------------------------------- SVTH: NGUYỄN THỊ HẢI 5 Thiết kế bộ điều khiển USB cho FPGA ----------------------------------------------------------------------------------------------------- Truyền thông Nối tiếp đồng MicroWire 8 3 2M với vi điều bộ khiển Truyền thông Nối tiếp đồng SPI 40 3 2.1M với vi điều bộ khiển Truyền thông Nối tiếp đồng IC 664 5.4M với vi điều bộ khiển Nối tiếp (Fire Video, Mass IEEE 1394 15 4.5 400M Wire) Storage Các thiết bị Song song IEEE 488 1024 18 8M khoa học Máy tính đã Nối tiếp Ethernet 2 480 10M-1G được kết nối mạng Vòng nối tiếp Nhạc, Show MIDI 2 15 31.5K hiện hành Control Máy in, máy Cổng Song song 2 3-9 8M quét, điều Parallel khiển đĩa 1.2 Các thuật ngữ chung trong giao tiếp USB Chủ USB (host): phần cứng trên máy tính có nhiệm vụ thực hiện việc truyền dữ liệu bằng giao tiếp USB. Thiết bị ngoại vi (device): có hai dạng thiết bị ngoại vi là thiết bị được kết nối tới máy chủ và hub dùng để mở rộng số lượng thiết bị.
Đầu cuối (Endpoint) Các thiết bị USB phải được hỗ trợ bởi một hoặc nhiều đầu cuối. Tất cả các giao tiếp với một thiết bị là liên kết với một đầu cuối riêng trên thiết bị đó. Tất cả các gói tin token bao gồm thiết bị và đầu cuối cụ thể mà chúng đang hướng tới. -------------------------------------------------------------------------------------------------- SVTH: NGUYỄN THỊ HẢI 6 Thiết kế bộ điều khiển USB cho FPGA ----------------------------------------------------------------------------------------------------- Số đầu cuối có thể thay đổi từ 00h tới 0Fh.
Tất cả các thiết bị phải có đầu cuối 0. Đầu cuối này cho việc truyền đặc biệt gọi là truyền điều khiển. Các đầu cuối cho việc truyền điều khiển dùng chủ yếu cho cài đặt và đọc các thông số cấu hình khác nhau. Tất cả các giao tiếp tới và từ thiết đầu cuối của thiết bị chạy qua các ống dẫn.
Một ống dẫn đại diện cho một dòng giao tiếp được thiết lập giữa chủ USB và một đầu cuối riêng biệt hay một thiết bị. Một bộ điều khiển thiết bị phải có một ống dẫn để thiết lập một kết nối tới đầu cuối của thiết bị. Tải xuống-downstream: truyền dữ liệu từ chủ USB tới một hub hoặc thiết bị. Tải lên-upstream : truyền dữ liệu từ một thiết bị hoặc hub tới chủ USB.
Tốc độ truyền (Transfer rate) Chuẩn USB 1.1 định rõ băng thông cho 2 loại thiết bị ngoại vi: các thiết bị tốc độ thấp truyền dữ liệu 1.5 Mb/s và thiết bị tốc độ cao có băng thông của dữ liệu là 12Mb/s. Bộ điều khiển USB IP được thiết kế cho đồ án dùng cho các thiết bị tốc độ thấp.Tốc độ thấp cung cấp cho các thiết bị cần băng thông thấp như: chuột, bàn phím. Mã hóa NRZI Một trong những nhiệm vụ của bộ điều khiển USB là thực thiện mã hóa và giải mã NRZI. NRZI là kiểu mã hóa chuỗi bit được sử dụng bởi chuẩn USB cho giao tiếp giữa chủ USB và các thiết bị đi kèm.
NRZI là chữ viết tắt của Non Return to Zero – Inverted. Dữ liệu phải được mã hóa NRZI trước khi tiếp tục được truyền qua bus USB và được giải mã nhờ vào phía thu từ bus. Trong chuỗi bit mã hóa NRZI thì bit dữ liệu ‘0’ đại diện cho một chuyển tiếp cho bit trước (‘0’ tới ‘1’ hay ‘1’ tới ‘0’) và bit dữ liệu ‘1’ đại diên cho không có chuyển tiếp. Ví dụ : chuỗi bit “00000001” có mã hóa NRZI là “01010100”.
Đây là chuỗi nhị phân này đại diện cho phần khởi đầu của gói tin giao thức USB (Start Of Packet – SOP). Vì mã hóa NRZI đề cập tới việc chuyện tiếp trong các bit nên chuỗi bit 10101011 cũng là mã NRZI đúng của dữ liệu trong ví dụ trên. Mỗi bit mã hóa NRZI phụ thuộc vào bit mã hóa trước đó. Giá trị của bit mã hóa đầu tiên phụ thuộc vào giá trị khởi đầu.
Trong giao tiếp USB trạng thái rảnh có mức logic cao ‘1’. Điều này có nghĩa gói tin giao thức USB được tách riêng bởi các chuỗi bit ‘1’. Bởi vậy, mã hóa NRZI của bit đầu tiên cơ bản phụ thuộc vào giả định ban đầu. Mà bit trước đó trước khi phía thu nhận byte là -------------------------------------------------------------------------------------------------- SVTH: NGUYỄN THỊ HẢI 7 Thiết kế bộ điều khiển USB cho FPGA ----------------------------------------------------------------------------------------------------- một mức logic ‘1’.
Do đó chuỗi bit mã hóa NRZI phù hợp trong hệ thống USB cho chuỗi bit ở trên là “01010100”. Lợi ích của việc sử dụng mã hóa NRZI là nó dễ dàng và ít lỗi dễ tìm ra các chuyển tiếp trong tín hiệu hơn là so sánh với các mức điện áp. Khung (Frame) Giao thức USB sử dụng các khung cho việc lập chương trình và đồng bộ giao tiếp USB. Một khung có chiều dài 1ms +/- 0.
Nếu một thiết bị giao tiếp USB được tìm ra như một thiết bị tốc độ cao một gói tin SOF chỉ định một khung mới sẽ được gửi tới thiết bị đó. Gói tin SOF bao gồm một số các khung 11 bit, số khung này sẽ được tăng dần cho mỗi khung. Điều này cho phép thiết bị tìm ra được các khung thiếu.