PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Giao tiếp USB, CAN, I2C, SPI, USART... (http://www.picvietnam.com/forum/forumdisplay.php?f=45)
-   -   USB có khủng khiếp như bạn nghĩ không? (http://www.picvietnam.com/forum/showthread.php?t=472)

pham_dinh_hung83 20-07-2006 09:07 PM

cac bac cu noi hoai ve USB.VAY bac nao lam duoc cai nao hoan chinh day do cho anh em di ,en dc hoai may cai tai lieu cac bac dua thay mu qua ,co le tai em mau len nao cham,bac bien_van_khat cho y kien di chu

pham_dinh_hung83 20-07-2006 09:07 PM

cac bac cu noi hoai ve USB.VAY bac nao lam duoc cai nao hoan chinh day do cho anh em di ,en dc hoai may cai tai lieu cac bac dua thay mu qua ,co le tai em mau len nao cham,bac bien_van_khat cho y kien di chu

bien_van_khat 21-07-2006 01:13 AM

Này nhé, để bắt đầu, bạn kiếm 1 con PIC USB 2.0 như 18F2455, 2550, 4455, 4550, về lắp mạch phát triển. Xong nạp firmware có sẵn của microchip chạy thử để đảm bảo là mạch của bạn ok. Sau đó bạn có thể tự viết firmware cho riêng bạn = c18 chẳng hạn, nếu ko có thể dùng thư viện có sẵn của CCS C (cái này dùng cực kỳ dễ so với xây dựng từ con số 0) để phát triển ứng dụng.

Một cái khó gặp phải khi bạn tự viết firmware là debug, bạn hầu như ko thể biết firmware của bạn sẽ hoạt động hay ko, cho tới khi bạn đã viết 1 đống code, mà lúc này thì cực kỳ khó để dò lỗi.

Ý định của tôi chỉ là thảo luận cùng các bạn để tạo thành 1 tut chứ ko phải tôi viết tut, vì kiến thức tôi còn lỗ chỗ, nhiều thành viên khác đã làm về vấn đề này, chẳng qua tôi chỉ là người kêu gọi mà thôi, hơn nữa tôi cũng ko có nhiều thời gian dành cho diễn đàn.

Lúc ban đầu khi bắt đầu tìm hiểu, tôi cũng đã lục tung internet để kiếm tut nhưng hoàn toàn ko có (hoặc tìm ko ra). Cuối cùng tôi bắt đầu bằng cách phân tích code mẫu để giải thích những gì tôi đọc được từ usb spec, tiếp theo là hỏi, hỏi rất nhiều, ở cả nhiều nơi, nhiều câu giờ nghĩ lại tôi thấy chuối vô cùng (vì ko đọc kỹ mà). Đến giờ tôi nhận định thật ra USB phức tạp chứ ko khó, do đó nếu bạn muốn tìm hiểu nó bạn nên bắt đầu, và những thành viên ở picvietnam đã biết ít nhiều sẽ sẵn sàng giúp bạn nếu có thể.

dohoangnam 21-07-2006 11:49 AM

Tôi thấy USB này thực sự khó, các anh em nào làm rồi làm ơn chia sẻ kinh nghiệm quý báu cho mọi người nhé! Cảm ơn các anh em nhiều!!!
Thân.

dohoangnam 21-07-2006 11:53 AM

Tôi có dự định làm thử 1 con ổ USB Flash khoảng 64 MB. Không biết có quá khó khăn không nhỉ. Chip thì đương nhiên là PIC, còn Flash có thể là NAND. Anh em nào có thể giúp tôi với, hay cùng tôi làm vậy!

Ngoc Du 21-07-2006 07:44 PM

Trích:

Nguyên văn bởi dohoangnam
Tôi có dự định làm thử 1 con ổ USB Flash khoảng 64 MB. Không biết có quá khó khăn không nhỉ. Chip thì đương nhiên là PIC, còn Flash có thể là NAND. Anh em nào có thể giúp tôi với, hay cùng tôi làm vậy!

Chào bạn Nam
Bạn làm thử nghiệm về USB là điều rất quý (hiện nay cái khoản giao tiếp này có vẻ ít người theo đuổi). Nhưng mình xin góp ý thế này. Một đề tài sẽ có ý nghĩa hơn nếu sau khi ta thực hiện thì ngoài việc nắm được kiến thức cho bản thân, cái sản phẩm của đề tài nó có khả năng thương mại hóa hay ít ra là nó có thể gần với thực tiễn để có thể áp dụng vào trong một số sản phẩm khác. Nếu làm một ổ USB thì tuy cũng có thể làm phần lưu trữ cho một vài ứng dụng song nó sẽ khó có hy vọng thương mại hóa khi bạn dùng PIC bởi sản phẩm bạn làm ra chắc chắn sẽ có giá thành đắt gấp mấy lần cái USB 64M mà ta mua ngoài thì trường. Bạn nên đi theo hướng làm các thiết bị đo lường, điều khiển kết nối với PC qua cổng USB thì sẽ thực tế hơn. Hiện nay chuẩn USB đã định nghĩa lớp thiết bị đo lường vì thế nếu làm loại thiết bị này thì có khả năng (chỉ là có khả năng thôi đó) bỏ qua khâu viết driver cho thiết bị. Việc không phải viết driver cho thiết sẽ làm giảm gánh nặng với một người mới nghiên cứu về USB, mình nghĩ là như vậy.
Về tài liệu thì mình có thể gửi cho bạn bản dịch một phần của hai cuốn USB specification và USB complete do mình dịch, có thể là không đúng lắm hoặc khó hiểu song mình tin là nếu mới tìm hiểu về USB thì nó sẽ giúp bạn nắm được một vài thuật ngữ của USB. Thế nhé, nếu thấy cần thì cho mình địa chỉ email mình gửi cho.

bachelor1979 21-07-2006 08:28 PM

Trích:

Nguyên văn bởi Ngoc Du
Chào bạn Nam
Bạn làm thử nghiệm về USB là điều rất quý (hiện nay cái khoản giao tiếp này có vẻ ít người theo đuổi). Nhưng mình xin góp ý thế này. Một đề tài sẽ có ý nghĩa hơn nếu sau khi ta thực hiện thì ngoài việc nắm được kiến thức cho bản thân, cái sản phẩm của đề tài nó có khả năng thương mại hóa hay ít ra là nó có thể gần với thực tiễn để có thể áp dụng vào trong một số sản phẩm khác. Nếu làm một ổ USB thì tuy cũng có thể làm phần lưu trữ cho một vài ứng dụng song nó sẽ khó có hy vọng thương mại hóa khi bạn dùng PIC bởi sản phẩm bạn làm ra chắc chắn sẽ có giá thành đắt gấp mấy lần cái USB 64M mà ta mua ngoài thì trường. Bạn nên đi theo hướng làm các thiết bị đo lường, điều khiển kết nối với PC qua cổng USB thì sẽ thực tế hơn. Hiện nay chuẩn USB đã định nghĩa lớp thiết bị đo lường vì thế nếu làm loại thiết bị này thì có khả năng (chỉ là có khả năng thôi đó) bỏ qua khâu viết driver cho thiết bị. Việc không phải viết driver cho thiết sẽ làm giảm gánh nặng với một người mới nghiên cứu về USB, mình nghĩ là như vậy.
Về tài liệu thì mình có thể gửi cho bạn bản dịch một phần của hai cuốn USB specification và USB complete do mình dịch, có thể là không đúng lắm hoặc khó hiểu song mình tin là nếu mới tìm hiểu về USB thì nó sẽ giúp bạn nắm được một vài thuật ngữ của USB. Thế nhé, nếu thấy cần thì cho mình địa chỉ email mình gửi cho.

Bạn có thể post bản dịch lên diễn đàn được ko ? Để mọi người cùng dùng. Tôi cũng đang muốn tìm hiểu về USB, nếu có thể bạn hãy gửi bản dịch cho tôi theo địa chỉ: vivabachelor@yahoo.com , xin cảm ơn trước !

ntc 22-07-2006 11:08 PM

Oạch.

Dịch cả hai cuốn USB Complete và USB specification?

Bó tay.

:D.

Bạn có thể up lên host free của PICVIETNAM mà.

Còn về vấn đề tìm hiểu USB theo qui trình như thế nào, mình có một vài ý kiến như thế này:

Các bước tiến hành:

Bước 1: nắm môt số khái niệm cơ bản (endpoint, pipe, descriptor, qui trình kết nối, các dạng truyền... )

Bước 2: kiếm một cái firmware có sẵn, sau đó đọc cho bằng hiểu cái firmware đó được viết như thế nào.

Bước 3: vào www.comvon.com để hiểu thêm về thư viện dll và cách sử dụng thư viện "mpusbapi.dll".

Bước 4: dựa vào các hàm trong thư viện "mpussbapi.dll" để xây dựng chương trình ứng dụng trên máy tính.

Có lẽ đây là các bước tìm hiểu đơn giản nhất.

Theo mình thì lúc nào cũng phải kè kè cuốn "USB specification" mới được. Chú ý cái phần protocol, phải nắm được nó tương đối kĩ.

Ngoc Du 23-07-2006 01:58 AM

Trích:

Nguyên văn bởi ntc
Oạch.

Dịch cả hai cuốn USB Complete và USB specification?

Bó tay.

Mình đâu có thừa hơi mà đi dịch hết cả hai cuốn USB Complete và USB specification. Mình đã nói là chỉ dịch một phần thôi mà (kết hợp với một vài tài liệu khác). Cái đó nếu mình học để biết thì thường mình cũng chẳng dịch để làm gì, đọc hiểu cho nhàn thân, lí do là phải gõ phần lý thuyết về USB vào đồ án nên mình mới dịch. Mà mình nói thật với mọi người là nếu có đọc tài liệu dịch thì chỉ là đọc tham khảo thôi, đọc để lấy vài cái khái niệm khái quát, đọc để hiểu qua loa. Chứ muốn làm sản phẩm giao tiếp USB thì phải đọc nguyên gốc bản tiếng Anh của nó (đọc tiếng Việt dễ bị tam sao thất bản lắm).
Cái tình tự nghiên cứu về USB mà ntc nêu ra ở trên thì mình thấy cũng hợp lý rồi chỉ xin bổ xung với mọi người một điều thế này để mọi người có thể nhanh chóng cho ra sản phẩm USB. Mình thấy nghiên cứu về USB thì có một phần mà mình cho là rất quan trọng đó là các lớp thiết bị được định nghĩa. Phần này sẽ giúp ta hình dung ra sản phẩm của mình sẽ trao đổi dữ liệu với host bằng kiểu truyền gì? Dùng loại điểm cuối nào? Định dạng của gói dữ liệu ra sao? Có cần phải viết driver cho sản phẩm hay không? có phải viết phần mềm ứng dụng trên host hay không?...Tuy phần này quan trọng như vậy song trong USB specification lại gần như không đả động đến còn USB complete thì dành nhiều thời gian để nói về lớp có ứng dụng mạnh nhất là lớp HID (Human Interface Device). Chính vì vậy để làm sản phẩm USB thì hai trang web sau nên là địa chỉ thăm hỏi thường xuyên của mọi người: www.usb.org ; www.lvr.com . Một chút xíu nữa muốn góp ý là nếu ai định dùng chip USB có lõi vi điều khiển họ MCS51 thì nên đọc cuốn USB Design by Example còn nếu không dùng chíp họ này thì cũng không cần đọc quyển đó làm gì cho mất thời gian.
Có một điều an ủi để mọi người tự tin tìm hiểu USB là chíp USB có khá nhiều chủng loại. Có loại thì chỉ là một bộ USB transceiver và một tập các thanh ghi để cho một con vi điều khiển nào đó truy cập điều khiển nó. Vi điều khiển có thể giao tiếp với USB tranceiver bằng rất nhiều chuẩn phổ biến như I2C , parallel. Có loại thì là vi điều khiển hỗ trợ giao tiếp USB (loại này là đa dạng phong phú lắm đấy). Ngoài ra với những ai chỉ có mục đích truyền một mảng dữ liệu lên máy tính chủ (host) sau đó trên máy tính có phần mềm để nhận, gửi và xử lí dữ liệu thì lại không cần nắm rõ chuẩn USB lắm đâu, chỉ cần mua con FT232BM chẳng hạn (con này thấy bảo hàng Mai Khanh có bán với giá 85k thì phải) sau đó tập trung vào khâu viết phần mềm trên máy tính thôi còn phần từ vi điều khiển hướng lên thì thành RS232 mất rồi. Chíp USB không chỉ nhiều chủng loại như mình vừa nói mà đi kèm với mỗi con chíp đó bạn còn được chăm sóc đến tận chân răng. Nói túm lại là có rất nhiều sample code, application notes, rồi có khi là cả những Project ngon lành chỉ việc đem về mà tham khảo. Các project này nó còn hướng dẫn tỉ mỉ là nếu áp dụng vào trường hợp của mình thì có thể phải sửa phần nào và tận dụng được phần nào. Chính vì vậy anh em cứ tự tin mà làm thôi!

ntc 23-07-2006 03:43 PM

Trích:

Mình thấy nghiên cứu về USB thì có một phần mà mình cho là rất quan trọng đó là các lớp thiết bị được định nghĩa. Phần này sẽ giúp ta hình dung ra sản phẩm của mình sẽ trao đổi dữ liệu với host bằng kiểu truyền gì? Dùng loại điểm cuối nào? Định dạng của gói dữ liệu ra sao? Có cần phải viết driver cho sản phẩm hay không? có phải viết phần mềm ứng dụng trên host hay không?...Tuy phần này quan trọng như vậy song trong USB specification lại gần như không đả động đến còn USB complete thì dành nhiều thời gian để nói về lớp có ứng dụng mạnh nhất là lớp HID (Human Interface Device).
Về định nghĩa device, các vấn đề này cũng được đề cập đó chứ bạn. Nó nằm trong cái phần nói về các descriptor. Các descriptor sẽ là cơ sở để định nghĩa các lớp device. Tuy nhiên, nếu chỉ đọc trong cuốn "USB specification" thì khó mà hình dung ra được các vấn đề, thậm chí không hiểu được nó đang nói về cái gì nữa. Cái này, nếu đọc hiểu một firmware có sẵn, thì sẽ hình dung rõ ràng hơn, coi thử cái firrmware nó định nghĩa như thế nào, mình học theo để làm thì sẽ dễ dàng hơn. Mình nghĩ là như vậy.

Về định dạng của gói dữ liệu, chắc chắn tài liệu nào cũng sẽ đề cập. Ý của bạn muốn nói định dạng gói dữ liệu cho mục đích sử dụng? Cái đó sẽ tùy theo ứng dụng của mình để xây dựng cho phù hợp. Gói dữ liệu phục vụ cho mục đích ứng dụng sẽ phải có được sự thống nhất giữa chương trình trên máy tính (nếu có) và firmware.

USB Comlpete thì đưa ra các ví dụ về ứng dụng sơ sài quá, đúng là chỉ tập trung vào HID, mà mình thấy cũng chẳng đâu vào đâu. Trong khi USB specification thì tập trung nhiều vào việc mô tả USB, và phải nói là thực sự hết sức chi tiết.

Nếu chỉ dựa vào hai cuốn này thì việc xây dựng một ứng dụng USB cũng còn rất mơ hồ. Mình chọn cách tiếp cận các ứng dụng đã có sẵn, và dựa vào các tài liệu này để giải thích, và tìm hiểu tại sao ứng dụng lại được xây dựng như vầy, như vầy, firrmware tại sao lại viết như vầy, như vầy, ... từ đó các vấn đề về USB dần dần hiện lên rõ ràng hơn, và việc xây dựng các ứng dụng sẽ thuận lợi hơn.

Sau đó, nếu thích, có thể viết lại firmware, viết lại driver, ... Lúc đó các kiến thức đã được liên kết lại với nhau, và dễ tiến hành hơn.

bien_van_khat 25-07-2006 01:13 AM

He he, bất cứ tài liệu nào mà có thêm cái đuôi là specification thì chỉ đáng dùng để tra cứu, nó quá đầy đủ + cô đọng tới mức chẳng biết sử dụng thông tin trong đó làm sao.

Trích:

Nguyên văn bởi ntc
Nếu chỉ dựa vào hai cuốn này thì việc xây dựng một ứng dụng USB cũng còn rất mơ hồ. Mình chọn cách tiếp cận các ứng dụng đã có sẵn, và dựa vào các tài liệu này để giải thích, và tìm hiểu tại sao ứng dụng lại được xây dựng như vầy, như vầy, firrmware tại sao lại viết như vầy, như vầy, ... từ đó các vấn đề về USB dần dần hiện lên rõ ràng hơn, và việc xây dựng các ứng dụng sẽ thuận lợi hơn.

Giống tui :D, mất cả buổi ngồi xóa từng dòng code để rút ra được những đoạn code mấu chốt.
Trích:

Sau đó, nếu thích, có thể viết lại firmware, viết lại driver, ... Lúc đó các kiến thức đã được liên kết lại với nhau, và dễ tiến hành hơn.
Tuy nhiên tui ko hề có ý định viết driver, dù tui viết chương trình nhiều hơn thiết kế board :D. Theo ý tui, tốt nhất nên chọn HID hoặc dùng driver open source như tui giới thiệu (cẩn thận nếu xài cái này, nó theo giấy phép GNU).

Ngoc Du 01-08-2006 02:12 AM

Trích:

Nguyên văn bởi ntc
Bạn có thể up lên host free của PICVIETNAM mà.

Mình đã up lên host của Tailieuvietnam tài liệu nói sơ lược về USB. Các bạn có thể download tại: http://tailieuvietnam.net/download/u...uoc ve usb.rar

ntc 01-08-2006 02:04 PM

Bạn thử up lại xem sao. Mình không thấy tài liệu của bạn trên host.

Cũng muốn đọc tài liệu của bạn, nếu được, mình sẽ cùng nhau thảo luận về USB từ các tài liệu này, cho nó cụ thể hơn một chút.

Ngoc Du 01-08-2006 07:20 PM

Trích:

Nguyên văn bởi ntc
Bạn thử up lại xem sao. Mình không thấy tài liệu của bạn trên host.

Cũng muốn đọc tài liệu của bạn, nếu được, mình sẽ cùng nhau thảo luận về USB từ các tài liệu này, cho nó cụ thể hơn một chút.

Minh Up lên rồi nhưng vừa rồi vào xem lại thì thấy thư mục của mình bị xóa. Không rõ là vì lí do gì? Mình đã up lại rồi. Bạn có thể down về bằng link ở bài viết ngay trên của mình.

pham_dinh_hung83 20-09-2006 01:14 AM

các bác ơi AD 4550 qua HID dùng vb ngon lành,kết quả hiện thị dạng số
bây giờ vẽ nó dạng đồ thị hiện sóng trên vb6.o thế nào đây
bác biển vẫn khát chỉ giáo tiếp nhé,cảm ơn bác về lời chỉ giáo lần trước nhé


Múi giờ GMT. Hiện tại là 05:27 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam