Nhãn

20 tháng 1, 2013

651. USB OTG là cái giề!

Xem thêm: Thuật ngữ Android (updating)

From Wikipedia, the free encyclopedia (trích)

USB On-The-Go, thường được viết tắt là USB OTG, là 1 kỹ thuật cho phép thiết bị sử dụng USB như digital audio players hay mobile phones hoạt động như 1 host [máy chủ], cho phép các thiết bị sử dụng USB khác như USB flash drivemouse, hay keyboard có thể kết nối với nó. Không giống các hệ thống sử dụng USB thông thường, các hệ thống USB OTG có thể vừa đóng vai trò làm máy chủ [hosting] vừa hoạt động như thiết bị USB bình thường khi kết nối với 1 host khác. Tính năng này có thể được sử dụng để cho phép 1 mobile phone hoạt động như 1 host đối với 1 flash drive và đọc nội dung của nó, để tải nhạc chẳng hạn, rồi lại hoạt động như 1 flash drive khi được cắm vào 1 computer đóng vai trò máy chủ và cho phép máy chủ đó đọc toàn bộ nội dung mới.

Kiến trúc


USB tiêu chuẩn dùng kiến trúc master/slave; 1 host làm master device [thiết bị chủ] cho toàn bộ bus [đường truyền], và 1 thiết bị USB làm slave [tớ/phục vụ]. Các thiết bị mà được thiết kế ban đầu để hoạt động với 1 vai trò hoặc khác như computer nói chung được thiết lập làm host, trong khi printer (ví dụ thế) thường là slave.

Khi 1 thiết bị được cắm vào đường USB [USB bus], master device - host, sẽ thiết lập giao tiếp với thiết bị đó và điều khiển việc cung cấp dịch vụ. Host này đáp ứng tất cả sự truyền dẫn dữ liệu qua bus, với các thiết bị này chỉ đòi hỏi sự cẩn thận. Để truyền dữ liệu giữa 2 thiết bị, thí dụ từ 1 phone đến 1 printer, trước tiên host đọc dữ liệu từ 1 thiết bị sau đó ghi nó lên thiết bị khác. Điều này cho phép các thiết bị đó được đơn giản hóa rất nhiều so với host; 1 con chuột, thí dụ, có chứa rất ít logic nhưng dựa vào host để làm hầu hết mọi việc.

Trong khi sự bố trí master/slave làm việc trên 1 số thiết bị, thì rất nhiều thiết bị có thể muốn hoạt động như 1 master hay 1 slave tùy vào người chia sẻ đường truyền. Thí dụ, 1 printer nối với computer thường là 1 slave device, nhưng khi 1 ổ flash USB chứa ảnh được cắm vào cổng USB của printer mà không có sự hiện diện của computer (hay ít nhất là đang tắt) nó có thể lợi dụng printer làm host, cho phép nó giao tiếp trực tiếp với ổ flash và in ảnh từ nó.

USB On-The-Go đưa ra khái niệm 1 thiết bị có thể làm cả 2 vai trò master và slave, và tinh tế thay đổi thuật ngữ. Với OTG, 1 thiết bị có thể hoặc là 1 host khi hoạt động như master liên kết, hoặc như 1 peripheral [thiết bị ngoại vi] khi hoạt động như slave liên kết. Việc chọn là host hay là peripheral hoàn toàn được quyết định bởi đầu cuối cáp mà thiết bị được cắm vào. Thiết bị nối với đầu A cáp lúc đầu gọi là ‘thiết bị-A’, hoạt động như host mặc định, đầu B hoạt động như peripheral mặc định, gọi là ‘thiết bị-B’.

Sau khi khởi động lần đầu, thiết lập để vận hành đường truyền như nó làm với chuẩn USB thông thường, thiết bị-A thiết lập thiết bị-B và quản lý tất cả giao tiếp. Tuy nhiên, khi mà cùng thiết bị-A được cắm vào 1 hệ thống USB khác, hay 1 host chuyên dụng khả thi, có thể nó trở thành 1 slave.

USB On-The-Go cũng có thể sử dụng USB hub, nhưng nó mô tả việc hoán đổi vai trò host/thiết bị ngoại vi chỉ cho trường hợp kết nối one-to-one (1 nối 1) ở nơi 2 thiết bị OTG được kết nối trực tiếp. Việc hoán đổi vai trò không hoạt động thông qua 1 hub tiêu chuẩn, khi 1 thiết bị sẽ làm host và cái kia làm peripheral cho đến khi chúng ngắt kết nối.

Đặc tính kỹ thuật

USB OTG là 1 phần bổ sung[1] cho chuẩn Universal Serial Bus (USB) 2.0 được chấp nhận đầu tiên vào cuối 2001 và được sửa đổi sau đó [2]. Phiên bản mới nhất của sự bổ sung này cũng định nghĩa tập tính cho 1 Embedded Host cái mà có những khả năng được nhắm đến và giống với cổng USB chuẩn-A dùng trên PC.

Các thiết bị OTG siêu tốc, Embedded Host và peripheral được hỗ trợ thông qua USB OTG và phần Embedded Host Supplement trên USB 3.0.

Giao thức

USB On-The-Go và Embedded Host Supplement trong chuẩn USB 2.0 đã đưa ra 3 giao thức mới: Attach Detection Protocol (ADP), Session Request Protocol (SRP) và Host Negotiation Protocol (HNP).

ADP cho phép 1 thiết bị OTG, host Embedded hay thiết bị USB xác định trạng thái gắn kết khi không có nguồn điện trên đường truyền USB. Điều này kích hoạt cả hành vi dựa vào sự chèn và khả năng thiết bị hiển thị trạng thái gắn kết. Nó làm việc này bằng cách đo định kỳ điện dung trên cổng USB để đánh giá có hay không 1 thiết bị gắn vào, 1 cáp mềm hay không có cáp. Khi điện dung thay đổi, đủ lớn để chỉ ra gắn vào được phát hiện thì 1 thiết bị A sẽ cấp điện tới USB bus và tìm kiếm sự kết nối thiết bị. Thiết bị B sẽ phát ra SRP và chờ USB bus được cấp nguồn.

SRP cho phép cả 2 thiết bị giao tiếp để điều khiển khi tác vụ nguồn của link được kích hoạt; trong USB tiêu chuẩn, chỉ host có khả năng làm điều này. Điều đó cho phép điều khiển chính xác qua mức tiêu thụ năng lượng, cái rất quan trọng cho các thiết bị vận hành bằng pin như camera và mobile phone. OTG hoặc host Embedded có thể cho phép ngắt nguồn của link USB cho đến khi peripheral (có thể là 1 OTG hay thiết bị USB tiêu chuẩn) yêu cầu bắt đầu cấp nguồn. OTG và host Embedded có thể không có nhiều năng lượng để dự trữ từ pin của chúng, và việc cho phép ngắt nguồn USB giúp kéo dài thời gian pin.

HNP cho phép 2 thiết bị chuyển đổi vai trò host/peripheral của chúng, miễn là cả hai đều là thiết bị vai trò kép OTG. Bằng cách sử dụng HNP để đảo chiều host/peripheral, thiết bị USB OTG có khả năng điều khiển được việc lập lịch truyền dữ liệu. Theo cách này, bất kỳ thiết bị OTG nào cũng có khả năng khởi sự truyền dữ liệu qua USB OTG bus. Phiên bản mới nhất bổ sung cũng giới thiệu ý tưởng HNP polling [kiểm soát vòng HNP] nhờ đó thiết bị đang làm host định kỳ thu được peripheral, trong phiên kích hoạt, để xác định nó có muốn chuyển thành host hay không.

Mục đính chính của HNP là giúp người dùng khi kết nối 2 thiết bị A và B (xem ở dưới) mà bị sai hướng tác vụ họ muốn tiến hành. Thí dụ, 1 printer được kết nối làm thiết bị A (host), nhưng nó không có chức năng của host đối với 1 camera nhất định, khi đó nó không hiểu sự diễn giải công việc in của camera. Khi đó camera biết làm cách nói với printer đó, printer sẽ sử dụng HNP để chuyển sang vai trò slave, chuyển camera thành host để in nhờ đó các bức hình của người sử dụng sẽ được in không cần đảo cáp [juggling cables]. Các giao thức OTG mới này không thể hoạt động với 1 hub USB tiêu chuẩn vì chúng làm việc dựa vào tín hiệu điện vật lý.

USB On-The-Go và Embedded Host Supplement trong chuẩn USB 3.0 đưa ra 1 giao thức gia tăng, Role Swap Protocol (RSP). Điều này đạt được mục đích giống với HNP (nghĩa là hoán chuyển vai trò) bằng cách mở rộng cơ cấu tiêu chuẩn được cung cấp bởi chuẩn USB 3.0. Các sản phẩm có USB On-The-Go và Embedded Host Supplement theo chuẩn USB 3.0 cũng yêu cầu đáp ứng chuẩn bổ sung USB 2.0 nhằm mục đích tính tương thích ngược. Các thiết bị OTG siêu tốc (SuperSpeed OTG hay SS-OTG) được yêu cầu hỗ trợ RSP. Các thiết bị OTG ngoại vi siêu tốc (SuperSpeed Peripheral Capable OTG hay SSPC-OTG) thì không yêu cầu hỗ trợ RSP vì chúng chỉ có thể vận hành siêu tốc khi là 1 peripheral; chúng không có host siêu tốc và do đó chỉ có thể hoán chuyển vai trò khi dùng HNP tại tốc độ truyền dữ liệu chuẩn USB 2.0.

Vai trò của thiết bị

USB OTG định nghĩa 2 vai trò của thiết bị: thiết bị A OTG và thiết bị B OTG. Thuật ngữ này định nghĩa bên nào cấp nguồn cho link, và bên nào lúc đầu là host.

Thiết bị A OTG là 1 bên cấp nguồn, và thiết bị B OTG là 1 bên nhận nguồn. Cấu hình link mặc định là thiết bị A hoạt động như USB Host và thiết bị B là 1 USB peripheral. Các chế độ host và peripheral có thể được chuyển đổi sau bằng cách sử dụng HNP. Vì mọi bộ điều khiển OTG đều hỗ trợ cả 2 vai trò, chúng hay được gọi là bộ điều khiển "Dual-Role" hơn là "OTG controllers".

Đối với các kỹ sư thiết kế mạch tích hợp (integrated circuit - IC), USB OTG là khả năng có được nhiều hơn khả năng của USB với nhiều cổng hơn. 1 cách tiếp cận “truyền thống” gồm 4 bộ điều khiển:

- Bộ điều khiển [controller] host tốc độ cao USB dựa trên EHCI (1 giao diện đăng ký).
- Bộ điều khiển host tốc độ thấp [full/low] dựa trên OHCI (1 giao diện đăng ký khác).
- Bộ điều khiển thiết bị USB, hỗ trợ cả 2 tốc độ high và full.
- Bộ điều khiển thứ 4 để chuyển cổng gốc OTG giữa host và bộ điều khiển thiết bị.

Điều này có nghĩa là nhiều cửa để test và debug [gỡ lỗi]. Cũng vậy, hầu hết các gadget [tool nhỏ] bắt buộc chỉ là host, hoặc chỉ là 1 thiết bị. Thiết kế phần cứng của OTG trộn tất cả các bộ điều khiển này vào trong 1 dộ điều khiển dual-role có phần phức tạp hơn so với 1 bộ điều khiển thiết bị đơn lẻ.

Không có nhận xét nào:

Đăng nhận xét