1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

USB for everyone

Chủ đề trong 'Điện - Điện tử - Viễn thông' bởi Quen_mang_kinh, 20/10/2003.

  1. 0 người đang xem box này (Thành viên: 0, Khách: 0)
  1. Quen_mang_kinh

    Quen_mang_kinh Thành viên quen thuộc

    Tham gia ngày:
    23/05/2002
    Bài viết:
    542
    Đã được thích:
    1
    v.                 Cơ khí
     
            USB định nghĩa 4 loại connectors:
    1. Series A: đầu cắm hình chữ nhật (15.7mm x 7.5 mm) và luôn luôn hướng đến host. Series A cũng cho phép function như là ngõ ra từ hosts và/hoặc hubs.
    2. Series B: đầu cắm gần hình vuông (11.5 mmx 10.5mm) và luôn luôn hướng đến thiết bị. Series B chấp nhận functions như là ngõ vào đến hubs hoặc thiết bị.
    3. Series mini-B: đầu cắm gần hình chữ nhật nhỏ (6.8 mmx 10.5mm) và luôn luôn hướng đến thiết bị. Series mini-B chấp nhận functions như là ngõ vào đến hubs hoặc thiết bị.
    4. Captive cable assembly: là bất kì đầu cắm phi chuẩn nào nối đến thiết bị nó phải sử dụng một phía đầu nối Series A cắm vào host hoặc hub.
    Những đầu nối này đề phòng sắp xếp dây nối sai thứ tự.
    Bản mô tả kĩ thuật này không khuyến khích nối dài dây vì nó chỉ có thể cho phép nối từ điểm đến điểm không quá giới hạn là 5m.
     
    vi.               Giao thức Bus
     
            USB là một bus hỏi vòng [polled bus]; Bộ điều khiển host khởi tạo tất cả các dữ liệu giao dịch [transaction] chuyển qua. Phần lớn các giao dịch liên quan đến 3 gói:
    1. Bộ điều khiển Host gửi một "token packet" [gói đánh dấu] mô tả loại và hướng của hành vi giao dịch, địa chỉ thiết bị và số điểm kết thúc [endpoint number].
    - Device Address: A seven-bit value representing the address of a device on the USB. Devices are assigned a unique device address by the USB System Software.
    - Device Endpoint: A uniquely addressable portion of a USB device that is the source or sink of information in a communication flow between the host and device.
    2. Nguồn của giao dịch gửi gói dữ liệu hoặc một gó "no data" [dữ liệu trống].
    3. Đích sẽ gửi gói bắt tay [handshacking packet] mà chỉ ra dữ liệu truyền thành công.
            Giao dịch giữa bộ điều khiển host và một hub sử dụng 4 gói để quản lý dữ liệu ở tốc độ thấp và tốc độ đầy đủ.
            Giao thức bao gồm những CRC ( error check) khác nhau và trường dữ liệu của mỗi gói. CRC cho 100% bao hàm trên lỗi bit đơn và lỗi bit kép. Phục hồi lỗi có thể thực hiện bằng phần cứng (thử lại 3 lần) và phần mềm (thực hiện theo chỉ dẫn ở client).
            Dữ liệu kết nối dữ phần mềm host và một điểm kết thúc riêng gọi là ống [pipe]. Mỗi ống hoạt động độc lập và một thiết bị đơn có thể có nhiều hơn một ống.
    Một ống hỗ trợ chỉ một trong các kiểu truyền sau đây tại một thời điểm:
    1. Control Transfer [Truyền điều khiển]: được dùng để cấu hình một thiết bị và có thể sử dụng cho các thiết bị có mục đích tương tự khác bao gồm điều khiển các ống khác trong thiết bị.
    2. Bulk Data Transfer [Truyền dữ liệu trọng tải lớn] : tạo ra hoặc tiêu thụ một lượng số liệu tương đối lớn và theo khối [burst] mà không có những định hạn quét.
    3. Interrupt Data Transfers [Truyền dữ liệu gián đoạn]: được sử dụng cho dữ liệu cần nhận đúng thời điểm và có độ tin cậy. Ví dụ: chuột, game pad.
    4. Isochoronous Data Transfers [] (còn gọi là truyền luồng dữ liệu thời gian thực) giữ và dàn xếp trước [prenegotiated] một số băng thông USB với một hệ thống phân phát ngầm thỏa thuận trước [prenegotiated delivery latency]. Dữ liệu thì liên tục và thời gian thực trong quá trình tạo ra, phân phát và tiêu thụ.
  2. Quen_mang_kinh

    Quen_mang_kinh Thành viên quen thuộc

    Tham gia ngày:
    23/05/2002
    Bài viết:
    542
    Đã được thích:
    1
    Hôm nay chỉ có thế.
    Đấy là những kiến thức cơ bản về USB. Tất nhiên là tớ dịch rồi.
    Sau đây là giải thích một số khái niệm còn chưa rõ lắm ở đoạn dịch trên:
    - USB Hub thường ít gặp trong các thiết bị vì hai lý do: Nếu một thiết bị có thêm hub sẽ tăng giá thành - phần mềm sẽ phức tạp hơn. Bạn nghe nói đến những bàn phím có thể gắn chuột vào, rồi màn hình có thể gắn loa và bàn phím vào... nhưng ít gặp vì lý do trên. Hub phổ biến nhất chính là root hub đi kèm với host nói nôm na là hai hay bốn cái lỗ USB ở trên máy tính mà mình cắm thiết bị vào đấy.
    - Function hơi khác với device một chút. Một device có thể có một hoặc nhiều function. Những thiết bị có nhiều function thì gọi là thiết bị phức hợp. Ví dụ như một điện thoại IP cắm qua cổng USB sẽ có function: audio stream, button input...
    - Khái niệm endpoint từa tựa như khái niệm địa chỉ trong các bus khác nhưng mà endpoint là một khái niệm hoàn toàn logic. Bạn không đơn thuần đọc ghi một địa chỉ vật lý nào đó để truy xuất đến cổng USB. Nếu bạn sử dụng cổng song song hoặc nối tiếp chẳng hạn bạn sẽ đọc ghi dữ liệu vào một vùng đệm có địa chỉ đọc từ BIOS hình như là 278h với LPT1 và 3F8 với COM1 (đúng ko nhỉ). Bạn thao tác với cổng tức là bạn thao tác với địa chỉ này. Endpoint cũng gần như vậy tức là khi đã cấu hình xong bạn sẽ truyền nhận với thiết bị qua những endpoint. Nhưng khác với các cổng COM/LPT (địa chỉ không phụ thuộc vào thiết bị) endpoint là do thiết bị qui định, mọi thiết bị đều có một endpoint zero để cấu hình và truyền nhận dữ liệu, sau đó chính phần mềm sẽ yêu cầu tạo ra một pipe để truyền dữ liệu đến endpoint.
    - USB có 3 lớp phần mềm và 3 lớp phần cứng khác nhau như trên hình. Rõ ràng so với COM hay LPT USB phức tạp hơn nhiều nhưng sử dụng lại cực kì đơn giản
    Có vài điều nhỏ muốn các bạn tranh luận thêm:
    - Bạn đã hiểu USB có những chức năng gì, hiểu qua host, hub và funtions vậy nếu là người thiết kế bạn sẽ xây dựng hệ thống USB như thế nào để đáp ứng chức năng đấy ??? (Cả nec, intel, compag va ms... cãi nhau mãi mới đưa ra USB chắc nó sẽ phức tạp rồi)
    - USB là serial bus theo bạn thế nào mới là một bus ??? (Cái này tôi cũng muốn các bạn tranh luận thêm)
    Còn đây là một hình vẽ để bạn nào quan tâm đến USB tìm hiểu mình sẽ giải thích sau:
    [​IMG]
  3. Quen_mang_kinh

    Quen_mang_kinh Thành viên quen thuộc

    Tham gia ngày:
    23/05/2002
    Bài viết:
    542
    Đã được thích:
    1
    Hôm nay chỉ có thế.
    Đấy là những kiến thức cơ bản về USB. Tất nhiên là tớ dịch rồi.
    Sau đây là giải thích một số khái niệm còn chưa rõ lắm ở đoạn dịch trên:
    - USB Hub thường ít gặp trong các thiết bị vì hai lý do: Nếu một thiết bị có thêm hub sẽ tăng giá thành - phần mềm sẽ phức tạp hơn. Bạn nghe nói đến những bàn phím có thể gắn chuột vào, rồi màn hình có thể gắn loa và bàn phím vào... nhưng ít gặp vì lý do trên. Hub phổ biến nhất chính là root hub đi kèm với host nói nôm na là hai hay bốn cái lỗ USB ở trên máy tính mà mình cắm thiết bị vào đấy.
    - Function hơi khác với device một chút. Một device có thể có một hoặc nhiều function. Những thiết bị có nhiều function thì gọi là thiết bị phức hợp. Ví dụ như một điện thoại IP cắm qua cổng USB sẽ có function: audio stream, button input...
    - Khái niệm endpoint từa tựa như khái niệm địa chỉ trong các bus khác nhưng mà endpoint là một khái niệm hoàn toàn logic. Bạn không đơn thuần đọc ghi một địa chỉ vật lý nào đó để truy xuất đến cổng USB. Nếu bạn sử dụng cổng song song hoặc nối tiếp chẳng hạn bạn sẽ đọc ghi dữ liệu vào một vùng đệm có địa chỉ đọc từ BIOS hình như là 278h với LPT1 và 3F8 với COM1 (đúng ko nhỉ). Bạn thao tác với cổng tức là bạn thao tác với địa chỉ này. Endpoint cũng gần như vậy tức là khi đã cấu hình xong bạn sẽ truyền nhận với thiết bị qua những endpoint. Nhưng khác với các cổng COM/LPT (địa chỉ không phụ thuộc vào thiết bị) endpoint là do thiết bị qui định, mọi thiết bị đều có một endpoint zero để cấu hình và truyền nhận dữ liệu, sau đó chính phần mềm sẽ yêu cầu tạo ra một pipe để truyền dữ liệu đến endpoint.
    - USB có 3 lớp phần mềm và 3 lớp phần cứng khác nhau như trên hình. Rõ ràng so với COM hay LPT USB phức tạp hơn nhiều nhưng sử dụng lại cực kì đơn giản
    Có vài điều nhỏ muốn các bạn tranh luận thêm:
    - Bạn đã hiểu USB có những chức năng gì, hiểu qua host, hub và funtions vậy nếu là người thiết kế bạn sẽ xây dựng hệ thống USB như thế nào để đáp ứng chức năng đấy ??? (Cả nec, intel, compag va ms... cãi nhau mãi mới đưa ra USB chắc nó sẽ phức tạp rồi)
    - USB là serial bus theo bạn thế nào mới là một bus ??? (Cái này tôi cũng muốn các bạn tranh luận thêm)
    Còn đây là một hình vẽ để bạn nào quan tâm đến USB tìm hiểu mình sẽ giải thích sau:
    [​IMG]
  4. Quen_mang_kinh

    Quen_mang_kinh Thành viên quen thuộc

    Tham gia ngày:
    23/05/2002
    Bài viết:
    542
    Đã được thích:
    1
    Xin phục vụ các bác một số bài viết về các thiết bị sử dụng USB từ Web của anh P.H.Phước:
    Nối cổng USB:
    http://www.phphuoc.htmedsoft.com/huongdan_02/cap_usb/index.htm
    Tạo ổ chứng cơ động USB:
    http://www.phphuoc.htmedsoft.com/reviews/usb20_hdd_box/index.htm
    Kết nối máy in với máy tính qua cổng USB:
    http://www.phphuoc.htmedsoft.com/reviews/parallel_to_usb/index.htm
    PCMCA và USB:
    http://www.phphuoc.htmedsoft.com/reviews/usb20_cardbus/index.htm
    VCD và USB:
    http://www.phphuoc.htmedsoft.com/reviews/snazzi_usb/index.htm
    Truyền hình và USB
    http://www.phphuoc.htmedsoft.com/reviews/pctv_usb/index.htm
    Cuối cùng là cái này có thể hữu ích cho ai đó:
    http://www.phphuoc.htmedsoft.com/huongdan_02/mbyte_mbit/index.htm
  5. Quen_mang_kinh

    Quen_mang_kinh Thành viên quen thuộc

    Tham gia ngày:
    23/05/2002
    Bài viết:
    542
    Đã được thích:
    1
    Xin phục vụ các bác một số bài viết về các thiết bị sử dụng USB từ Web của anh P.H.Phước:
    Nối cổng USB:
    http://www.phphuoc.htmedsoft.com/huongdan_02/cap_usb/index.htm
    Tạo ổ chứng cơ động USB:
    http://www.phphuoc.htmedsoft.com/reviews/usb20_hdd_box/index.htm
    Kết nối máy in với máy tính qua cổng USB:
    http://www.phphuoc.htmedsoft.com/reviews/parallel_to_usb/index.htm
    PCMCA và USB:
    http://www.phphuoc.htmedsoft.com/reviews/usb20_cardbus/index.htm
    VCD và USB:
    http://www.phphuoc.htmedsoft.com/reviews/snazzi_usb/index.htm
    Truyền hình và USB
    http://www.phphuoc.htmedsoft.com/reviews/pctv_usb/index.htm
    Cuối cùng là cái này có thể hữu ích cho ai đó:
    http://www.phphuoc.htmedsoft.com/huongdan_02/mbyte_mbit/index.htm
  6. Quen_mang_kinh

    Quen_mang_kinh Thành viên quen thuộc

    Tham gia ngày:
    23/05/2002
    Bài viết:
    542
    Đã được thích:
    1
    Giới thiệu
    Qua hơn 2 năm, MS đã làm việc với các thành viên trong ngành công nghiệp với dự án USB2.0. Driver USB 2.0 sẽ có sẵn cho Microsoft Windows XP qua Windowws Update vào đầu nằm 2002. USB 2.0 Driver hỗ trợ cho Win 2000 vẫn đang được phát triển và sẽ có vào quí một năm 2002.
    Ms không cung cấp hỗ trợ USB 2.0 cho Win98 và WinNT.
    Bài viết này cung cấp chi tiết kế hoạch hỗ trợ cuả Ms cho USB 2.0. Phần kiến trúc USB mô tả cấu trúc của ngăn xếp USB 2.0 trên Win2000 và so sánh nó với WinXP và Windows Server 2003.
    Phần cuối thảo luận kế hoạch của Windows Hardware Quality Lad [WHDL] để hỗ trợ việc kiểm tra các bộ điều khiển host USB 2.0, thiết bị và hub.
    Kiến trúc USB trong Windows
    Những phần sau mô tả ngăn xếp driver USB trên Windows XP và so sánh nó với Win2000.
    WinXP USB Driver Stack
    Hình một mô tả WDM driver stack mà được tạo trong WinXP cho hai thiết bị USB, một kết hợp  [composte] và hai không kết hợp. Thiết bị kết hợp có hai giao thức, mỗi giao thức được điều khiển bởi một client driver riêng.][​IMG]
  7. Quen_mang_kinh

    Quen_mang_kinh Thành viên quen thuộc

    Tham gia ngày:
    23/05/2002
    Bài viết:
    542
    Đã được thích:
    1
    Giới thiệu
    Qua hơn 2 năm, MS đã làm việc với các thành viên trong ngành công nghiệp với dự án USB2.0. Driver USB 2.0 sẽ có sẵn cho Microsoft Windows XP qua Windowws Update vào đầu nằm 2002. USB 2.0 Driver hỗ trợ cho Win 2000 vẫn đang được phát triển và sẽ có vào quí một năm 2002.
    Ms không cung cấp hỗ trợ USB 2.0 cho Win98 và WinNT.
    Bài viết này cung cấp chi tiết kế hoạch hỗ trợ cuả Ms cho USB 2.0. Phần kiến trúc USB mô tả cấu trúc của ngăn xếp USB 2.0 trên Win2000 và so sánh nó với WinXP và Windows Server 2003.
    Phần cuối thảo luận kế hoạch của Windows Hardware Quality Lad [WHDL] để hỗ trợ việc kiểm tra các bộ điều khiển host USB 2.0, thiết bị và hub.
    Kiến trúc USB trong Windows
    Những phần sau mô tả ngăn xếp driver USB trên Windows XP và so sánh nó với Win2000.
    WinXP USB Driver Stack
    Hình một mô tả WDM driver stack mà được tạo trong WinXP cho hai thiết bị USB, một kết hợp  [composte] và hai không kết hợp. Thiết bị kết hợp có hai giao thức, mỗi giao thức được điều khiển bởi một client driver riêng.][​IMG]
  8. chuongcv

    chuongcv Thành viên mới

    Tham gia ngày:
    03/11/2003
    Bài viết:
    7
    Đã được thích:
    0
    Gia nhu ai biet cach lap trinh cho cong USB ma tiet lo cho anh em thi tuyet day. Hoac la biet tai lieu nao day cach lap trinh cung duoc, anh em se tham khao. Anh em se rat biet on day!
  9. chuongcv

    chuongcv Thành viên mới

    Tham gia ngày:
    03/11/2003
    Bài viết:
    7
    Đã được thích:
    0
    Gia nhu ai biet cach lap trinh cho cong USB ma tiet lo cho anh em thi tuyet day. Hoac la biet tai lieu nao day cach lap trinh cung duoc, anh em se tham khao. Anh em se rat biet on day!
  10. Quen_mang_kinh

    Quen_mang_kinh Thành viên quen thuộc

    Tham gia ngày:
    23/05/2002
    Bài viết:
    542
    Đã được thích:
    1
    Lập trình cho cổng USB?
    Đầu tiên bạn phải chế tạo một thiết bị cắm vào cổng USB. Tuân theo giao thức USB.
    Sau đấy viết driver cho nó.
    Sau đó viết phần mềm sử dụng các API mà Driver mà USB cung cấp để sử dụng thiết bị đó.
    Để làm những việc đó bạn phải hiểu về USB và hệ điều hành. Tôi sẽ từ từ cung cấp kiến thức để cuối cùng cả tôi và bạn có thể làm được những việc trên. Tuy nhiên thời gian viết bài cuả tôi có hạn nên sẽ lâu đấy.
    Có cách hiểu nào khác:
    Nếu thiết bị của bạn tuân theo một số giao thức chuẩn thiết bị của microsoft cung cấp thì bạn có thể được hỗ trợ phần viết driver bởi MS. Ví dụ:
    Nếu bạn tuân theo giao thức USB solid state disk của Microsoft thì thiết bị của bạn sẽđược de tech bởi WINXP và lúc đấy dữ liệu của bạn sẽ được truy xuất như file.
    Nhưng nếu thiết bị bạn có những tính năng khác thì bạn vẫn phải học các viết mini driver thôi.

Chia sẻ trang này