Thông báo

Collapse
No announcement yet.

Usb

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Usb

    Thế mạnh của USB là truyền dữ liệu tốc độ cao. Nhưng với yêu cầu truyền dữ liệu tốc độ thấp thì USB lại không hợp chút nào. Do hoạt động của bus là đơn công ( Pc làm chủ bus. Khi hoạt động đọc hoặc ghi này kết thúc thì hoạt động đọc ghi khac mới tiếp tục điễn ra ) gây ra nhiều khó khăn khi lập trình. Trong trường hợp bạn yêu cầu đọc một khối dữ liệu lớn, nhưng nguồn dữ liệu không đáp ứng đủ -> gây timeout, dữ liệu đọc được trước đó sẽ mất. Một các để giải quyết vấn đề này là chèn dữ liệu đệm vào ( dữ liệu không có thông tin ) như vậy sẽ gây lãng phí băng thông.
    Mong các bạn đóng góp ý kiến.

  • #2
    bác nói về USB em khoái quá, thực sự cái này em cũng thích lâu rồi mà em thì chả biết gì về nó. Bác có cái gì về USB share cho em với. Em cám ơn bác trước nhé (tiếng anh cũng đươc, tiếng việt thì tốt quá)
    Nếu tôi chết đi, hãy chôn tôi với R,L,C...

    Bùi Đức Thọ
    (ductho0409@gmail.com)

    Comment


    • #3
      Nguyên văn bởi Tonduy Xem bài viết
      Thế mạnh của USB là truyền dữ liệu tốc độ cao. Nhưng với yêu cầu truyền dữ liệu tốc độ thấp thì USB lại không hợp chút nào. Do hoạt động của bus là đơn công ( Pc làm chủ bus. Khi hoạt động đọc hoặc ghi này kết thúc thì hoạt động đọc ghi khac mới tiếp tục điễn ra ) gây ra nhiều khó khăn khi lập trình. Trong trường hợp bạn yêu cầu đọc một khối dữ liệu lớn, nhưng nguồn dữ liệu không đáp ứng đủ -> gây timeout, dữ liệu đọc được trước đó sẽ mất. Một các để giải quyết vấn đề này là chèn dữ liệu đệm vào ( dữ liệu không có thông tin ) như vậy sẽ gây lãng phí băng thông.
      Mong các bạn đóng góp ý kiến.
      Nếu chưa sữ lý kịp hoặc chờ dữ liệu thì chỉ cần send cho host một cái "NAK", cần gì phải dữ liệu đệm nhỉ !

      NVT2
      Tín đồ AVR giáo.

      Comment


      • #4
        Nguyên văn bởi nvt2 Xem bài viết
        Nếu chưa sữ lý kịp hoặc chờ dữ liệu thì chỉ cần send cho host một cái "NAK", cần gì phải dữ liệu đệm nhỉ !

        NVT2
        Trong trường hợp bạn yêu cầu đọc một gói tin có kích thước 64kbyte (Kích thước bộ đệm cho hàm API) nhưng nguồn cung cấp dữ liệu chỉ có vài kbyte thôi. Như vậy, luông đọc sẽ phải chờ để đọc đủ. Nều trong thời gian Timeout mà không đọc đủ 64kbyte thì vài kbyte bạn đọc được trước đó cũng không có giá trị. Do USB hoạt động đơn công, nếu đợi lâu quá cho quá trình đọc sẽ làm chậm quá trình ghi. Không đáp ứng được điều khiển -> thời gian thực. Như vậy phải chèn dữ liệu trống vào gói tin đọc để kết thúc nhanh quá trình đọc, tạo điều kiện cho quá trình ghi tiếp theo.

        Comment


        • #5
          Nguyên văn bởi Tonduy Xem bài viết
          Trong trường hợp bạn yêu cầu đọc một gói tin có kích thước 64kbyte (Kích thước bộ đệm cho hàm API) nhưng nguồn cung cấp dữ liệu chỉ có vài kbyte thôi. Như vậy, luông đọc sẽ phải chờ để đọc đủ. Nều trong thời gian Timeout mà không đọc đủ 64kbyte thì vài kbyte bạn đọc được trước đó cũng không có giá trị. Do USB hoạt động đơn công, nếu đợi lâu quá cho quá trình đọc sẽ làm chậm quá trình ghi. Không đáp ứng được điều khiển -> thời gian thực. Như vậy phải chèn dữ liệu trống vào gói tin đọc để kết thúc nhanh quá trình đọc, tạo điều kiện cho quá trình ghi tiếp theo.
          Thế bác chuyển sang xài firewire hay PCI Express cho nó lẹ

          NVT2
          Tín đồ AVR giáo.

          Comment


          • #6
            Nguyên văn bởi Tonduy Xem bài viết
            Trong trường hợp bạn yêu cầu đọc một gói tin có kích thước 64kbyte (Kích thước bộ đệm cho hàm API) nhưng nguồn cung cấp dữ liệu chỉ có vài kbyte thôi. Như vậy, luông đọc sẽ phải chờ để đọc đủ. Nều trong thời gian Timeout mà không đọc đủ 64kbyte thì vài kbyte bạn đọc được trước đó cũng không có giá trị. Do USB hoạt động đơn công, nếu đợi lâu quá cho quá trình đọc sẽ làm chậm quá trình ghi. Không đáp ứng được điều khiển -> thời gian thực. Như vậy phải chèn dữ liệu trống vào gói tin đọc để kết thúc nhanh quá trình đọc, tạo điều kiện cho quá trình ghi tiếp theo.
            Driver kiểu này chắc cái công ty viết ra nó phá sản rùi quá !

            NVT2
            Tín đồ AVR giáo.

            Comment


            • #7
              Khi bạn muốn truyền thông tốc độ cao, bạn phải đọc hoặc ghi gói có kích thước lơn. Chèn dữ liệu trống là giải pháp tôi đưa ra, bạn có thể có cách khác để tránh timeout và đáp ứng thời gian thực. Theo tôi biết thì lớp HID chỉ cho tốc độ tối đa 64kbyte/s cái Driver tôi dùng tốc độ lên quá 1Mbyte/s.

              Comment

              Về tác giả

              Collapse

              Tonduy Tìm hiểu thêm về Tonduy

              Bài viết mới nhất

              Collapse

              Đang tải...
              X