Thông báo

Collapse
No announcement yet.

Viết driver cho USB, ai có kinh nghiệm thì nhào dô

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

  • #16
    Chủ đề dùng cổng USB để kết nối các thiết bị là rất hây. Nhưng em cũng chưa tìm hiểu đến cách giao tiếp của nó. Em định sử dụng nguồn 5V của nó để cung cấp cho các mạch ứng dụng thôi. Nhưng em không biết khả năng cấp dòng nó là bao nhiêu, và có cách nào để nâng áp nó lên 12V không. Các bác giúp em với nhé.

    Comment


    • #17
      Nguyên văn bởi phan_it
      Chủ đề này hay đấy, tôi đang quan tâm. Nhưng ở VN có loại MCU nào của ATMEL hỗ trợ cổng USB không nhỉ ?
      Có :
      AT89C5131 full speed USB . ( nhưng giá thì đắt lắm : khoảng 160 ngàn )

      Các loại AVR của ATMEL đều có khả năng chạy USB bằng phần mềm ( tất nhiên là tốc độ không cao ) như USB ( " hỗ trợ phần cứng ").
      Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

      Comment


      • #18
        Nguyên văn bởi animo
        Chủ đề dùng cổng USB để kết nối các thiết bị là rất hây. Nhưng em cũng chưa tìm hiểu đến cách giao tiếp của nó. Em định sử dụng nguồn 5V của nó để cung cấp cho các mạch ứng dụng thôi. Nhưng em không biết khả năng cấp dòng nó là bao nhiêu, và có cách nào để nâng áp nó lên 12V không. Các bác giúp em với nhé.
        Khả năng cấp dòng của USB ( với các máy cá nhân ) , máy đặt bàn : thông thường 500mA .

        Đặc biệt có loại main của Gigabyte có dòng USB khoảng 1A.

        --- Để nâng điện áp từ 5 lên 12 V , bạn sử dụng mạch DC/DC ( VD : MC34063 , dòng max của con này là 1A ).
        ( bạn có thể cũng dùng các mạch DC/DC khác bất kỳ ).
        Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

        Comment


        • #19
          Phục hồi

          Nguyên văn bởi CHIBANG Xem bài viết
          Ngày nay, việc ghép nối qua công COM,LPT, qua khe cắm mở rộng đã quá quen thuộc với chúng ta, hầu như tài liệu nào cũng đề cập tới. Nhưng việc ghép nối qua cổng USB thì vẫn rất khó khăn với chúng ta. Vậy mong các bậc cao nhân chỉ cho thế hệ đi sau biết đôi điều kinh nghiệm?
          Tại sao chủ đề lại dừng ở đây thế này ạ ???

          Comment


          • #20
            Driver được viết dưới dạng giống như kịch bản thôi. Đầu tiên bạn viết các hàm xử lý các IRP (I/O request packet) như IRP_MJ_POWER (quản lý nguồn), IRP_MJ_PNP(quản lý plug and play), IRP_MJ_CREATE(xử lý mở cổng khi gọi hàm CreateFile), IRP_MJ_READ(xử lý hàm ReadFile), IRP_MJ_WRITE(xử lý hàm WriteFile),...
            Trong hàm DriverEntry (giống như hàm main, ngay sau khi bạn cắm thiết bị vào bus hệ thống sẽ load driver và hàm này được gọi đầu tiên) bạn đăng ký các hàm xử lý IRP đã viết ở trên với driver object... Sau đó mọi thứ sẽ diễn ra theo kịch bản mà bạn đã định sẵn rồi.
            Mặc dù bạn có thể ghi log nhưng nếu bạn code lỗi, win lập tức reset ngay ---> chú ý cẩn thận.
            Để tạo ra một cái driver cho USB, lập trình đơn giản như cổng com (đọc vào khi bộ đệm có data, ghi ra khi được phép --> điều khiển theo sự kiện) và tốc độ nhanh của USB (không phải USB2COM) thật không đơn giản. Chúc bạn thành công.
            Last edited by tond2203; 23-07-2009, 23:09.

            Comment


            • #21
              @Queduong : làm ơn cho hỏi con AT89C51 ở Việt Nam bán ở đâu vậy ? Đang nghiên về con này mà không biết chỗ nào bán . Thanks !!!

              Comment


              • #22
                Cuối cùng thì vấn đề dừng lại tại đây
                Bác nào chia sẻ với anh em với ạ.

                Comment


                • #23
                  Nguyên văn bởi kidteam Xem bài viết
                  Cuối cùng thì vấn đề dừng lại tại đây
                  Bác nào chia sẻ với anh em với ạ.
                  Vấn đề là gì nhỉ ???
                  Các cao thủ xưa thì toàn ... âm thầm tu luyện thôi ... bạn thích nghiên cứu thì tìm mấy cái tài liệu USB về , windriver , jungo ... đầy các phần mềm để có thể tạo driver .
                  Hiện tại phổ biến USB dùng Hid và Bulk ...
                  Hid thì không nói ( vì bản thân driver đã được win hỗ trợ) Tôi nghĩ có quá nhiều thư viện USB Bulk ... mà có trên mạng từ VB , C++ , .NET hay nhiều ngôn ngữ khác ... mà thường tìm về ứng dụng ... chứ mày mò viết mất công ( chắc gì đã hơn cái thư viện người ta viết qua bao năm rồi ) .
                  Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

                  Comment


                  • #24
                    Driver cho USB gồm 2 phần :
                    File.sys : để win nhận dạng và quản lý thiết bị khi nó được cắm vào.
                    File.dll hoặc trình điều khiển thiết bị gồm các lệnh điều khiển vào ra USB .

                    Comment


                    • #25
                      Vấn đề chả có tiến triển gì mới

                      Comment


                      • #26
                        Mình Bổ xung thêm :
                        Firmware cho chip : các khai báo gồm ID, VID,thông tin sản phẩm(hiển thị khi bạn cắm USB vào lần đầu hoặc khi cần đọc thông tin nầy),…

                        Comment


                        • #27
                          mọi người có thể vào link này

                          Freescale Search

                          download bản USB_STACK_V4.0.3 trong này có demo một số class usb viết cho chip arm của Freescale

                          Comment

                          Về tác giả

                          Collapse

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

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

                          Collapse

                          Đang tải...
                          X