NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 1651 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید

نمایش نتیجه های نظرسنجی ها: به نظر شما لازمه در این مورد بحث یشه

رأی دهندگان
104. شما نمی توانید در این نظرسنجی رای دهید.
  • بله

    99 95.19%
  • خیر

    1 0.96%
  • راه راحتتر و ارزانتر هست

    4 3.85%
صفحه 1 از 5 12345 آخرینآخرین
نمایش نتایج: از 1 به 20 از 85

موضوع: آموزش پورت usb

  1. #1
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    Exclamation آموزش پورت usb

    با سلام
    در اینجا میخواهیم نحوه ی کار با پورت usb رو به صورت مستقیم و بدون هیچ واسطی مثل ft232 ، با همکاری همه ی دوستان آموزش بدیم
    برای این کار باید:
    زبان برنامه C#.net رو برای برنامه نویسی کامپیوتر یاد داشته باشین
    زبان C++ رو برای برنامه نویسی میکرو در محیط winavr یا avrstudio5 یاد داشته باشین
    بتونین از کلاسها و توابع در C# و C++ درک کاملی داشته باشین


    اگه نظری دارین بگین تا بزودی اگه از این موضوع استقبال کردین مطالب رو ادامه بدم

    ------------------------------------------------------------------------------------------------

    اگه تاپیک رو ادامه بدین (پست 23) یک برنامه visual C# نوشتم که مستقیما از LibUsbDotNet 1.0.1 استفاده میکنه
    با خود برنامه میکرو کنترلر در تاپیک کلاسی برای انتقالهای وقفه ای، کنترلی و توده ای usb کار میکنه و همون مدار.

    ------------------------------------------------------------------------------------------------

    در ادامه میتونین برنامه ی peripheral controler رو دریافت کنین. (پست 50)
    برنامه ای که توسط اون میتونین تمام رجیستر های میکرو mega32 رو توسط برنامه کامپیوتر کنترل کنین.
    مثلا سرعت موتور با چپ گرد راست گرد رو از طریق کامپیوتر کنترل کنین. چیز جدیدی باید باشه.
    ویرایش توسط esisafa : 19-05-2014 در ساعت 20:33


  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    مدیرکل سایت kavir آواتار ها
    تاریخ عضویت
    Jun 2007
    نام
    زارعی
    نوشته ها
    3,547
    تشکر
    1,218
    تشکر شده 5,684 بار در 1,801 پست

    پیش فرض

    سلام این مبحث خوبیه . فقط با avr میخواین توضیح بدین؟
    توی مجلهمیکرو یه بخش هایی استارت خورده بود ولی اون دوست عزیز ادامه نداد
    کویر ویدئو راه اندازی شد

    اگر چه دیر ولی برگشتم به جمع دوستان قدیمی....

  4. تشکرها از این نوشته :


  5. #3
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    فعلا چون میخوام از توابع سطح بالا استفاده کنم و این کتابخونه ها برای avr نوشته شدن، پس فعلا فقط avr
    ولی بعدا شاید با همکاری هم تعمیمش دادیم برای حتی arm . البته armها خودشون ابزار هایی برای usb دارن که کارشون فرق میکنه. این مطالب فعلا برای avr هایی هست که خودشون usb ندارن. من با pic هم تا حالا کار نکردم و احتمالا تا مجبور نشم هم کار نخواهم کرد.

    کدوم مجله ی میکرو؟ برم برسی کنم تا تکراری نباشه مطالب.
    ویرایش توسط esisafa : 30-09-2011 در ساعت 12:14

  6. تشکرها از این نوشته :


  7. #4
    مدیرکل سایت kavir آواتار ها
    تاریخ عضویت
    Jun 2007
    نام
    زارعی
    نوشته ها
    3,547
    تشکر
    1,218
    تشکر شده 5,684 بار در 1,801 پست

    پیش فرض

    نقل قول نوشته اصلی توسط esisafa نمایش پست ها
    فعلا چون میخوام از توابع سطح بالا استفاده کنم و این کتابخونه ها برای avr نوشته شدن، پس فعلا فقط avr
    ولی بعدا شاید با همکاری هم تعمیمش دادیم برای حتی arm . البته armها خودشون ابزار هایی برای usb دارن که کارشون فرق میکنه. این مطالب فعلا برای avr هایی هست که خودشون usb ندارن. من با pic هم تا حالا کار نکردم و احتمالا تا مجبور نشم هم کار نخواهم کرد.

    کدوم مجله ی میکرو؟ برم برسی کنم تا تکراری نباشه مطالب.
    کلاسی برای انتقالهای وقفه ای، کنترلی و توده ای usb - ایـــــــــران میـــــــکرو ™
    کویر ویدئو راه اندازی شد

    اگر چه دیر ولی برگشتم به جمع دوستان قدیمی....

  8. تشکرها از این نوشته :


  9. #5
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    خیلی خوب ممنون
    این دوستمون آقا بهنام الان سایت www.ceworld.ir رو راه انداختن. پس اگه کسی در این زمینه سوالی داشت ، میتونه هم در لینکی که قرار دادین و هم تو سایت دوستمون پیگیری کنه
    تو مجله ی 6-7 هم توضیح دادن
    از منم بهتر میدونن در مورد usb
    ویرایش توسط esisafa : 30-09-2011 در ساعت 16:24

  10. کاربران : 2 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  11. #6
    مدیرکل سایت kavir آواتار ها
    تاریخ عضویت
    Jun 2007
    نام
    زارعی
    نوشته ها
    3,547
    تشکر
    1,218
    تشکر شده 5,684 بار در 1,801 پست

    پیش فرض

    نقل قول نوشته اصلی توسط esisafa نمایش پست ها
    خیلی خوب ممنون
    این دوستمون آقا بهنام الان سایت www.ceworld.ir رو راه انداختن. پس اگه کسی در این زمینه سوالی داشت ، میتونه هم در لینکی که قرار دادین و هم تو سایت دوستمون پیگیری کنه
    تو مجله ی 6-7 هم توضیح دادن
    از منم بهتر میدونن در مورد usb
    اینکه شما تاپیک رو ندیده بودین این دوستمون اقا بهنام کلا تاپیک رو حذف کرده بود که بنده دوباره باز کردم
    ایشون برای سی شارپ چند تاdll گذاشتند که نیاز به باز بینی هست
    در ضمن اگر وقتتون ازاد هست یاعلی بگین بیاین رو usb آرم لااقل که توی هبچ سایتی درست و حسابی استارت نخوردهخوشحال میشیم توی این بخش کار بشه
    کویر ویدئو راه اندازی شد

    اگر چه دیر ولی برگشتم به جمع دوستان قدیمی....

  12. کاربران : 3 تشکر کرده اند از شما kavir برای ارسال این پست سودمند:


  13. #7
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    پس دوستمون نمیخوان تو این سایت در مورد مطالبشون بحث کنیم.
    اگه صلاح میدونین این تاپیک رو یک جور دیگه ادامه بدیم. یعنی با کمک دوستان با تجربه تو انجمن بیایم usb رو از بیخ و بنیان شروع کنیم و بررسی کنیم تا توابع usb رو قدم به قدم خودمون بنویسیم
    این کار باعث میشه که usbی مجهول و نفس گیر کاملا قابل فهم بشه تو تمام لایه هاش

    مایل هستین همکاری کنین که بسم الله از بیخ شروع کنیم

  14. کاربران : 5 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  15. #8
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    اینم اولین قدم:
    انواع usb
    low speed usb که حداکثر سرعت اون 1.5 مگابیت بر ثانیه میشه
    full speed usb که سرعت اون تا 12 مگابیت میرسه
    این دو مدل در استاندارد usb1.1 استفاده میشن و مثل مدولاسیون am دامنه ی ولتاژ در اینجا به عنوان سیگنال استفاده میشه
    high speed usb که در usb2 تعریف شد تا 480 مگابیت در ثانیه سرعت داره و در اینجا جریان به عنوان سیگنال استفاده میشه تا نویز کمتر بگیره همون طور که میدونین
    super speed usb هم که تازه اومده usb3 هست که سرعتش تا 6000 مگابیت میرسه

  16. کاربران : 8 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  17. #9
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    برای اینکه وسیله ی یو اس بی برای کامپیوتر به عنوان یک low speed شناخته بشه باید پایه ی دیتای منفی D- رو با یک مقاومت 1.5 کیلو به ولتاژ 3.3 ولت وصل کرد
    برای full و high speed باید پایه ی دیتای مثبت D+ رو پولاپ کنیم

    در مورد پایه های دیتا این نکته هم هست که به صورت تفاضلی عمل میکنن یعنی وقتی D+ یک باشه ، D- صفره و برعکس
    ولتاژ تغذیه ای که پورت usb داره 5 ولته ولی دیتا با 3.3 ولت کار میکنه

    اگه چیز دیگه ای هم در مورد سخت افزار پورت usb هست لطفا همکاری کنین

  18. کاربران : 11 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  19. #10
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    نحوه ی ارسال داده ها از طریق usb به روش NRZI هست . و داده به صورتی که هست ارسال نمیشه بلکه کد و دکود میشه
    این روش یعنی هر وقت بیتی که ارسال میکنیم صفر بود اونوقت سیگنال تغییر وضعیت میده و اگر بیت مورد نظر یک بود هیچ تغییری اتفاق نمیافته
    اگه بایت مورد نظر ما 00000001 باشه با NRZI تبدیل میشه به 01010100 یا یک همچین چیزی که با usb ارسال میشه

  20. کاربران : 7 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  21. #11
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    در مورد سیستم هماهنگ سازی کلاک usb بگم که تا اونجا که من فهمیدم هیچ تنظیمی برای تنظیم سرعتش وجود نداره مثل boad rate تو ارتباط uart یا مثل پایه ی clk تو ارتباطای دیگه
    اما چه جوری امکان داره کار کنه؟؟؟؟؟
    هر بار که داده ای فرستاده میشه اولین بایت اون 00000001 هست که با NRZI تبدیل میشه به 01010100 (یا متممش) بعد وسیله ی مقابل با این بایت خودشو هماهنگ میکنه. سرعت هم که در low speed 1.5 مگ هست.
    ویرایش توسط esisafa : 17-03-2012 در ساعت 15:24

  22. کاربران : 3 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  23. #12
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    بایت بعد نشون دهنده ی اینه که اطلاعاتی میخواد فرستاده بشه از چه نوعی هستن
    کنترلی اند یا داده اند یا ...

    تا اینجا دو تا از بایت ها ، نوعشون مشخص شده

    تا بعد

  24. کاربران : 5 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  25. #13
    مدیرکل سایت kavir آواتار ها
    تاریخ عضویت
    Jun 2007
    نام
    زارعی
    نوشته ها
    3,547
    تشکر
    1,218
    تشکر شده 5,684 بار در 1,801 پست

    پیش فرض

    نقل قول نوشته اصلی توسط esisafa نمایش پست ها
    بایت بعد نشون دهنده ی اینه که اطلاعاتی میخواد فرستاده بشه از چه نوعی هستن
    کنترلی اند یا داده اند یا ...

    تا اینجا دو تا از بایت ها ، نوعشون مشخص شده

    تا بعد
    ا
    مهندس Driver API - V-USB اینجا همه چیزش هست فقط یکی میخواد به زبان سادهب رای دوستان بگه تا همه بتونند استفاده کنند بهترین روش ارسال وقفه ای هست که باید روش کار بشه
    کویر ویدئو راه اندازی شد

    اگر چه دیر ولی برگشتم به جمع دوستان قدیمی....

  26. #14
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    منظور شما اینه که مستقیم برم کار با کتابخونه ی usbdrv رو توضیح بدم. مثل این:؟؟؟؟؟:::

    A short and complete API documentation can be found in the comments in the file usbdrv.h which ships with the driver. This document describes the most commonly used features.
    Please note that you should create your own usbconfig.h from the driver's usbconfig-prototype.h and go through all options when you start a new project.


    در انجا 3 تا کتابخونه معرفی شده usbdrv.h و usbconfig.h و usbconfig.prorotype.h که ابزار های مورد استفاده هستند. یک فایل main.c هم هست که برنامه ی اصلی رو اونجا مینویسیم و ... .

    به نظر شما اینجور ادامه بدم یا همون روش قبل یعنی از پایه

  27. کاربران : 5 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  28. #15
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    فعلا مطلب قبل رو تکمیل میکنم
    دو تا بایت اول در هر ارسال ،نوعش رو مشخص کردیم
    بایت اول sync بود
    نوع و تعداد بایت های بعد، با توجه به بایت دوم که اسمش pid بود تغییر میکنه.
    مثلا یا آدرس وسیله هست یا داده یا خالی و ... .
    بعد از این یک داده ی 5 یا 16 بیتی میاد که crc5و crc16 نامیده میشن و که محاسبه ی اون با توجه به قسمت قبل انجام میشه برای تشخیص ارسال صحیح داده ها
    بعد از همه و در آخر هم یک سیگنال به نام EOP-end of packet برای تشخیص پایان ارسال بسته فرستاده میشه

  29. کاربران : 9 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  30. #16
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    انجا یک نمونه از تبادل اطلاعات بین کاپیوتر و وسیله رو قرار میدم
    رنگ خاکستری رو کامپیوتر میفرسته و سفید رو وسیله
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست usb-packets1.jpg  

  31. کاربران : 2 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  32. #17
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    خوب. تا اینجا نحوه ی ردو بدل داده ها روی خطوط بررسی شده و میشه الگوریتم دزیافت و فرستادن اطلاعات رو فهمید
    اینجا یک محدودیت وجود داره که سرعت میکرو 12 مگا هرتزه و سرعت usb هست 1.5 مگاهرتز.
    یعنی بین هر بیت دریافتی از usb فقط و فقط 8 کلاک فرصت داریم تا بایت sync و EOP رو شناسایی کنیم و بیت ها رو ذخیره کنیم. بعد از شناسایی رسیدن EOP حالا باید بفهمیم که بسته ای که اومده چی هست که باشه بعدا؟؟؟؟....!!!!
    به خاطر این محدودیت در زمان ارسال و دریافت داده، پردازنده ی میکرو فقط مشغول دریافت و فرستادن بیت هاست و باید مواظب بود کار اشتباهی از ما سر نزنه مثل یک وقفه ی نابجا

    قسمت نحوه ی پردازش نوع داده های دریافتی باشه بعدا. فعلا دارم رو usbasp برای Xmega کار میکنم سرم شلوغه
    ویرایش توسط esisafa : 02-10-2011 در ساعت 18:57

  33. کاربران : 5 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  34. #18
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    کتابخونه های V-USB دارای یک فایل به نام main.c هست که چند تا تابع از قبیل usbFanctionSetup در اون تعریف شدن و ما برنامه های مورد نظرمون رو داخل این توابع آماده مینویسیم
    مثلا وقتی از طرف برنامه ی کاپیوتر بایت 0x2f فرستاده شد در داخل تابع بالا باید یک شرط بنویسیم که با دریافت 0x2f ، فلان کار رو انجام بده

  35. کاربران : 2 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  36. #19
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    در تمام مدار هایی که من دیدم از این کتابخونه استفاده شده از کریستال 12 مگاهرتز و int0 استفاده کردن
    ولی با کمی تغییر کوچک میتوان از int1 و int2 و کریستال های 15 و 16 و 16.5 و 20 مگاهرتز و پایه های دیگه ی میکرو برای تبادل داده استفاده کرد

  37. کاربران : 3 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  38. #20
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    [PHP]uchar usbFunctionSetup(uchar data[8]) {
    uchar len = 0;
    if (data[1] == 0x01)
    {
    replyBuffer[0] = 'e';
    replyBuffer[1] = 'h';
    replyBuffer[2] = 's';
    replyBuffer[3] = 'a';
    replyBuffer[4] = 'n';
    ledOn();
    len = 5;
    }
    else if (data[1] == 0x02)
    {
    replyBuffer[0] = 'H';
    replyBuffer[1] = 'e';
    replyBuffer[2] = 'l';
    replyBuffer[3] = 'l';
    replyBuffer[4] = '0';
    replyBuffer[5] = '!';
    ledOff();
    len = 6;
    }

    usbMsgPtr = replyBuffer;

    return len;
    }[/PHP]

    این یک نمونه از برنامه ی نوشته شده در تابع usbFunctionSetup هست
    ورودی این تابع یک آرایه ی 8 بایتی هست
    در انجا اگر data[1] که میاد 1 باشه یا 2 باشه کاره متفاوتی انجام میشه

    این برنامه دستکاری شده قسمتی از برنامه behnam6500 از یوزرای سایت هست
    ویرایش توسط esisafa : 17-03-2012 در ساعت 15:28

  39. کاربران : 6 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


صفحه 1 از 5 12345 آخرینآخرین

موضوعات مشابه

  1. پاسخ: 144
    آخرين نوشته: 26-10-2020, 20:22
  2. آموزش پورت سریال در c#
    توسط shahrivar88 در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 9
    آخرين نوشته: 18-03-2014, 09:08
  3. کتاب جامع آموزش کار با پورت ها آیاهست؟
    توسط alamdar در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 3
    آخرين نوشته: 01-02-2012, 22:31
  4. اموزشarm/ بخش دوم/ کار با keil و پورت ها
    توسط 1nafar در انجمن AT91 series (ATMEL)
    پاسخ: 5
    آخرين نوشته: 30-09-2009, 10:12

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •