PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 27-03-2009, 10:26 PM   #16
trandaihai2003
Nhập môn đệ tử
 
Tham gia ngày: Aug 2006
Bài gửi: 4
:
Trích:
Nguyên văn bởi namqn View Post
Trong USB 2.0, chỉ có 2 dây dữ liệu để truyền tín hiệu dạng vi sai, làm gì có đường interrupt từ ngoại vi về host. Còn nếu bạn định nói về interrupt của host gửi về CPU của máy tính thì tôi cho rằng nó chẳng có liên quan gì đến việc cập nhật trạng thái của ngoại vi nhanh hay chậm.

Cần chú ý rằng USB là giao tiếp thuộc loại host-concentric, nghĩa là mọi sự truyền thông trên bus đều do host khởi đầu. Do đó, nếu sử dụng hi-speed mode (mà hiện nay chưa được bất kỳ vi điều khiển PIC nào hỗ trợ), thì bạn cũng chỉ có thể yêu cầu cập nhật trạng thái từ ngoại vi sau mỗi 125 us.

Thân,
Sorry. Rất tiếc bạn hông hiểu ý của tôi, mà bạn còn đặt điều này điều kia ... rất là tiếc ! Làm rõ ý người khác bằng cách như vậy thì ... không tốt chút nào.

Tôi chỉ nhắc tới khả năng sử dụng interrupt ở cả Host function và device function, ví dụ sau mỗi transaction/micro-frame sẽ có interrupt .. đó là một hướng.

Regards,
trandaihai2003 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-03-2009, 12:07 AM   #17
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi trandaihai2003 View Post
Sorry. Rất tiếc bạn hông hiểu ý của tôi, mà bạn còn đặt điều này điều kia ... rất là tiếc ! Làm rõ ý người khác bằng cách như vậy thì ... không tốt chút nào.

Tôi chỉ nhắc tới khả năng sử dụng interrupt ở cả Host function và device function, ví dụ sau mỗi transaction/micro-frame sẽ có interrupt .. đó là một hướng.

Regards,
Xin lỗi bạn nếu như tôi giải thích sai ý của bạn.

Tôi muốn nhắc nhở bạn rằng đây là diễn đàn về PIC/dsPIC, nên bạn chú ý đến khả năng thực sự của những chip này khi đưa ra ý kiến. Vì nếu bạn đưa ra những giải pháp mà không áp dụng được với PIC/dsPIC thì có thể khiến người khác mất thời gian một cách vô ích. Nếu bạn nêu ra một giải pháp mà không có PIC/dsPIC nào đáp ứng được thì đề nghị bạn giới thiệu cụ thể một vài chip khác có khả năng đó, để tránh cho người đọc đi vào ngõ cụt.

Cụ thể trong trường hợp này, dùng interrupt ở phía device có lẽ chỉ giúp device đáp ứng với các sự kiện bus nhanh hơn, chứ không tăng được tần suất trao đổi dữ liệu giữa host và device. Và với các PIC/dsPIC hiện nay thì không thể dùng microframe.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-03-2009, 08:52 AM   #18
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Có thể mình cũng ko hiểu ý bạn, nhưng

Nếu bạn nói đến Interrupt Transfer của USB protocol thì chữ Interrupt hoàn toàn ko có nghĩa là ngắt, nó chỉ mang ý nghĩa rằng: Host đảm bảo với các Interrupt EP rằng bọn này sẽ được host phục vụ liên tục cứ sau 1 khoảng thời gian mà thiết bị yêu cầu (1, 2, 4... frame/micro frame). Mức ưu tiên phục vụ của các loại transfer là Control > Interrupt > Isochronous > Bulk.

Nhưng host phục vụ ngay khi cần, ko có nghĩa là software của bạn cũng được báo cáo ngay lập tức. Windows ko phải là HDH thời gian thực, do đó, thời gian trễ giữa 2 sự kiện này là hoàn toàn ko thể biết trước.

Trích:
Nguyên văn bởi trandaihai2003 View Post
Ta có thể đặt ngưỡng để xảy ra interrupt là từ 1 tới 8 micro-frame trong frame sẽ xảy ra interrupt.

Note: Interrupt này là đường interrupt của USB về Interrupt controller của CPU.
Làm cách nào bạn đặt được "ngưỡng để xảy ra interrupt" của USB host controller?
Làm cách nào bạn phục vụ ngắt của Host controller về CPU trong phần mềm của bạn?

Mình nghĩ ý tưởng của bạn là cho máy tính boot từ bootloader của bạn, load phần mềm của bạn. Phần mềm của bạn bây giờ chạy hoàn toàn ko dựa trên bất kỳ hệ điều hành nào, lúc đó, với toàn quyền truy xuất phần cứng bạn có thể viết driver cho cả USB Host controller, VGA, Sound, ethernet..., tha hồ thao túng hệ thống, sound cool,
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]

thay đổi nội dung bởi: bien_van_khat, 28-03-2009 lúc 08:58 AM.
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-05-2009, 12:24 AM   #19
mgdaubo
Đệ tử 1 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 19
:
cũng đang làm 1 device update data lên máy tính liên tục, nhưng em chỉ cần tần suất khoảng 1 lần/1ms là được. Em định dùng usb_cdc của CCS làm, usb->rs232 có baud tối đa đến 921600bps, ko biết với baud rate đó thì có phải là truyền 1 byte sẽ chỉ mất khoảng 10.85us ?? (8bit data, start bit, stop bit) và liệu có thể truyền liên tục các byte ?? nếu được như vậy thì nếu khung data chỉ 1 byte thì ta có thể có tần suất update data lên PC đạt gần 100000 lần/s (chỉ xét đến truyền data, chưa xét đến vđk còn phải làm việc khác) ??
Em chỉ mới trong giai đoạn thiết kế mạch chứ chưa thi công phần cứng nên chưa thử được, xin hỏi mấy anh có kinh nghiệm là với baud đó thì update data lên PC nhanh nhất được bao nhiêu?
mgdaubo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-05-2009, 09:25 AM   #20
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi mgdaubo View Post
cũng đang làm 1 device update data lên máy tính liên tục, nhưng em chỉ cần tần suất khoảng 1 lần/1ms là được. Em định dùng usb_cdc của CCS làm, usb->rs232 có baud tối đa đến 921600bps, ko biết với baud rate đó thì có phải là truyền 1 byte sẽ chỉ mất khoảng 10.85us ?? (8bit data, start bit, stop bit) và liệu có thể truyền liên tục các byte ?? nếu được như vậy thì nếu khung data chỉ 1 byte thì ta có thể có tần suất update data lên PC đạt gần 100000 lần/s (chỉ xét đến truyền data, chưa xét đến vđk còn phải làm việc khác) ??
Em chỉ mới trong giai đoạn thiết kế mạch chứ chưa thi công phần cứng nên chưa thử được, xin hỏi mấy anh có kinh nghiệm là với baud đó thì update data lên PC nhanh nhất được bao nhiêu?
Baud rate nào thì bạn vẫn chỉ có thể gửi loạt dữ liệu mới sau mỗi ms. Tuy nhiên, nếu việc lấy mẫu dữ liệu là đều đặn và bạn chỉ gửi dữ liệu từ thiết bị lên máy tính thì bạn có thể dùng thuật toán để có tốc độ cập nhật dữ liệu trên PC cao hơn 1 lần/ms (các dao động ký PC-based là ví dụ cho trường hợp này).

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-05-2009, 11:52 PM   #21
ngocduc3000
Nhập môn đệ tử
 
Tham gia ngày: Oct 2008
Bài gửi: 6
:
Mấy anh ơi em tìm hiểu thử về USB nhưng lại không hiểu enumerate và endpoint là gì ? Mong các anh hổ trợ em với ! chuối quá..
ngocduc3000 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-05-2009, 12:03 AM   #22
phungtung
Đệ tử 1 túi
 
Tham gia ngày: Mar 2008
Bài gửi: 14
:
Tìm lớp dạy thêm đi thì hiểu ngay thôi.
phungtung vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam