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)

namqn 20-06-2008 12:42 AM

Trích:

Nguyên văn bởi lion (Post 16903)
bác nam ơi bác có bài lập trình thiết lập cho cổng USB của PIC ko nếu có thì post lên cho anh em học tập với

Microchip và mikroElektronika đã có nhiều ví dụ về sử dụng module USB của PIC. Những người thích dùng sẵn nên sử dụng các ví dụ này.

Những người có ý định tìm hiểu nghiêm túc về USB thì nên đọc những tài liệu đã được đề cập đến nhiều lần. Một điều rất quan trọng cần xác định ngay từ đầu: giao tiếp USB hoàn toàn khác với các giao tiếp thông thường như RS-232 hay cổng song song (máy in). Các cổng RS-232 hay LPT của máy tính đều có các thanh ghi điều khiển, thanh ghi dữ liệu để chúng ta thao tác, với chức năng của từng thanh ghi, chức năng của từng chân giao tiếp đã được định nghĩa sẵn. Còn USB là một giao thức, việc giao tiếp ra sao hoàn toàn do host và ngoại vi trao đổi và thống nhất. Cổng USB chỉ là một bus vật lý để ngoại vi nối với host, nó hoàn toàn không có địa chỉ, không có thanh ghi điều khiển hay thanh ghi dữ liệu như các loại cổng khác.

Do đó, với giao tiếp USB thì ngay cả bài toán đơn giản nhất là làm sao cho ngoại vi hoàn tất quá trình enumeration cũng đòi hỏi khối lượng công việc bằng khoảng 95% so với một ứng dụng giao tiếp USB hoàn chỉnh. Công việc này khó khăn nhưng không khủng khiếp với những người chịu khó tìm hiểu. Tuy nhiên, những ai muốn viết vài dòng ăn ngay thì chỉ có cách chỉnh sửa lại các code mẫu (đã được cung cấp khá nhiều trên mạng).

Những gì tôi có thể cung cấp cho các bạn cũng chỉ là một code mẫu, không khác với những code mẫu đã được cung cấp từ Microchip hay mikroElektronika. Vì vậy, tôi sẽ không làm việc này.

Thân,

vdt 24-08-2008 01:56 AM

Trích:

Nguyên văn bởi namqn (Post 16899)
"USB in a nutshell" có ở post #2 của luồng sau:
http://www.picvietnam.com/forum//showthread.php?t=467

Về "USB Complete", nó là sách có bản quyền, do đó bạn tự tìm trên mạng. Bạn tự thân vận động một chút đi, ai cũng yêu cầu gửi tài liệu qua email thì làm sao hoạt động có hiệu quả.

Thân,

Của bạn đây: http://www.4shared.com/file/60165915...rdEdition.html
Chúc vui

ThieuQP 03-01-2009 12:53 AM

Usb
 
Trích:

Nguyên văn bởi Ngoc Du (Post 4100)
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.

Em chào anh!
Em gặp được chủ đề USB trên diễn đàn hay quá, vì em đang có dự định làm đồ án tốt nghiệp về một vấn đề j đó liên wan đến USB. Vậy em xin anh tài liệu về USB như anh đã giới thiệu được không a?
Em cảm ơn anh nhiều!
ThieuQP@Gmail.com

vdtk3 03-01-2009 04:56 PM

Bạn vào trang www.lvr.com có nhiều tài liệu về giao tiếp máy tính.

hung_nguyen 03-01-2009 06:51 PM

một tài liệu chắc có thể giúp ích cho bạn
http://dientuvietnam.net/forums/showthread.php?t=20513
chúc bạn thành công. thân

lethanhhaibk 23-06-2009 03:29 PM

Trích:

Nguyên văn bởi Ngoc Du (Post 4100)
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.

anh có thể gửi bản dịch cho em nghiên cứu dc không. anh gửi vào lethanhhaibk@gmail.com cho em nhé. cảm ơn anh nhiều

average_1986 02-07-2009 06:57 AM

Link die roi. Pac up lai giup duoc khong? Thanks
 
Trích:

Nguyên văn bởi ngoc du (Post 4234)
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

link die roi. Pac up lai giup duoc khong? Thanks

tkpro 02-07-2009 04:42 PM

tan so trong pic
 
cac anh e dien dan cho e hoi ty. Gia su e lap thach anh tren mach dao dong cua pic (pic 18F4550) la 8 Mhz va e muon cho no hoat dong o che do full speed trong giao tiep usb, dong thoi pic hoat dong de doc va ghi du lieu o tan so cao nhat co the thi e nen cau hinh nhu the nao? cam on anh e truoc.

Chú ý: Bạn phải gõ có dấu, nếu không sẽ bị xóa bài

bien_van_khat 03-07-2009 11:23 AM

Trích:

Nguyên văn bởi tkpro (Post 27338)
cac anh e dien dan cho e hoi ty. Gia su e lap thach anh tren mach dao dong cua pic (pic 18F4550) la 8 Mhz va e muon cho no hoat dong o che do full speed trong giao tiep usb, dong thoi pic hoat dong de doc va ghi du lieu o tan so cao nhat co the thi e nen cau hinh nhu the nao? cam on anh e truoc.

Tùy vào trình dịch sử dụng nếu sử dụng C18
Code:

#pragma config FOSC = HSPLL_HS
#pragma config PLLDIV = 2
#pragma config CPUDIV = OSC1_PLL2

Nếu sử dụng CCS C
Code:

#fuses HSPLL, PLL2, CPUDIV2, USBDIV
[/code]

thaithien 02-08-2009 03:25 AM

Em đã nạp được firmware và máy tính đã nhận.Dùng chương trình tạo sẵn của Windriver để kiểm tra kết nối,và send vài dữ liệu được rồi nhưng vẫn chưa hiểu lắm.Bây giờ em muốn làm một cái như thế này :viết một chương trình giao tiếp trên máy tính (bằng vb6 hoặc VC6 hoặc Vb.hôặc VC.net) gồm các ô check box tương ứng với các port b của PIC.Khi ô được check thì led nối với box đó sẽ sáng.Em đang tìm hiểu nhưng gặp rất nhiều khó khăn.Các anh đi trước gợi mở cho em vài ý tưởng được không ?
Em xin cảm ơn !!!

bien_van_khat 03-08-2009 09:40 AM

Trích:

Nguyên văn bởi thaithien (Post 28283)
Em đã nạp được firmware và máy tính đã nhận.Dùng chương trình tạo sẵn của Windriver để kiểm tra kết nối,và send vài dữ liệu được rồi nhưng vẫn chưa hiểu lắm.Bây giờ em muốn làm một cái như thế này :viết một chương trình giao tiếp trên máy tính (bằng vb6 hoặc VC6 hoặc Vb.hôặc VC.net) gồm các ô check box tương ứng với các port b của PIC.Khi ô được check thì led nối với box đó sẽ sáng.Em đang tìm hiểu nhưng gặp rất nhiều khó khăn.Các anh đi trước gợi mở cho em vài ý tưởng được không ?
Em xin cảm ơn !!!

Mình không sử dụng windriver. Nhưng ý tưởng chung là trên windows mọi thứ đều là file và do đó có thể mở bằng hàm CreateFile, truy xuất bằng WriteFile hoặc ReadFile.

Các driver như microchip generic driver, HID, winusb đều cung cấp cơ chế truy xuất thiết bị qua các hàm file I/O.

Windriver có thể tuơng tự như vậy. Để giao tiếp với driver bạn cần kiểm tra code mẫu trên PC mà nó tạo ra dựa vào đó tìm ra cách truy xuất thiết bị.

Công việc còn lại chỉ còn gửi/nhận vài byte, kiểm tra, đóng mở LED.

tucn87 04-08-2009 04:14 PM

[/QUOTE]
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.[/QUOTE]


Anh Ngọc Du có thể gửi 2 cuốn sách cho em được không? link trên em không down được. Thanks anh!

tucn87@gmail.com

thaithien 04-08-2009 08:39 PM

Mình đang đọc hai cuốn đó bằng tiếng anh.Cũng tương đối.Vậy bạn cho mình xin đi.Thanks trước nhé.
@anh bien_van_khat :anh giải thích thêm cho em một chút được không ?Em chưa hiểu nguyên lý lắm :giả sử như trên giao diện của chương trình giao tiếp xảy ra sự kiện checked của checkbox thì làm sao có thể bật tắt các led trên các port,làm sao chương trình biết các chân của vi điều khiển.Phải chăng chương trình giao tiếp chỉ thực hiện việc truyền các dữ liệu đến vi điều khiển (các endpoint).Còn việc bật hay tắt led thì là nhiệm vụ của chương trình firmware đã nạp cho endpoint.Chẳng hạn mình sẽ viết thế này có được không :
- Phía endpoint :giả sử khi endpoint nhận từ host giá trị là 34 thì nó sẽ bật led Port_B1,nhận giá trị 35 thì bật led Port_B2...
-Còn phía chương trình giao tiếp thì thế này :khi xảy sự kiện checked ở checkbox thì truyền cho endpoint giá trị 34,35.....
Em nghĩ vậy không biết có đúng không nữa.Anh bien_van_khat chỉ dùm em nghen.Em cảm ơn anh nhiều !!!!

bien_van_khat 04-08-2009 08:57 PM

Trích:

Nguyên văn bởi thaithien (Post 28356)
@anh bien_van_khat :anh giải thích thêm cho em một chút được không ?Em chưa hiểu nguyên lý lắm :giả sử như trên giao diện của chương trình giao tiếp xảy ra sự kiện checked của checkbox thì làm sao có thể bật tắt các led trên các port,làm sao chương trình biết các chân của vi điều khiển.Phải chăng chương trình giao tiếp chỉ thực hiện việc truyền các dữ liệu đến vi điều khiển (các endpoint).Còn việc bật hay tắt led thì là nhiệm vụ của chương trình firmware đã nạp cho endpoint.Chẳng hạn mình sẽ viết thế này có được không :
- Phía endpoint :giả sử khi endpoint nhận từ host giá trị là 34 thì nó sẽ bật led Port_B1,nhận giá trị 35 thì bật led Port_B2...
-Còn phía chương trình giao tiếp thì thế này :khi xảy sự kiện checked ở checkbox thì truyền cho endpoint giá trị 34,35.....
Em nghĩ vậy không biết có đúng không nữa.Anh bien_van_khat chỉ dùm em nghen.Em cảm ơn anh nhiều !!!!

Đúng, ý tưởng là vậy.

Tuy nhiên, endpoint không phải là các vi điều khiển.

Endpoint (điểm đầu cuối) là khái niệm về logic.

Nếu kết nối giữa thiết bị và host được xem như 1 sợi dây hay 1 đường ống, thì ở mỗi đầu của đường ống đó là các endpoint. Thiết bị hoặc host đọc/ghi vào các đầu của ống.

Đối với USB, các đường ống này là 1 chiều, nên có endpoint OUT và endpoint IN. In hay out là hướng dữ liệu xét từ phía host. Đôi khi người ta cũng gộp 1 cặp EP OUT và EP IN thành 1 cặp và gọi chung là EP.

Một thiết bị có thể có nhiều endpoint. Tuy nhiên EP0 (gồm EP0 OUT + EP0 IN) là bắt buộc, đây là control EP.

Cứ thêm mỗi 1 hoặc 1 cặp EP mới thì thiết bị có thêm 1 interface. Ví dụ với 1 con PIC bạn có thể làm cả chuột và bàn phím.

bien_van_khat 04-08-2009 10:15 PM

Securing Your USB Transmission, topic của một kỹ sư của Microchip

http://www.embedded.com/design/testi...8900582?pgno=1


Múi giờ GMT. Hiện tại là 04:33 AM.

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