اطلاعیه

Collapse
No announcement yet.

انتقال داده بین میکرو و کامپیوتر با سرعت بالا

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    انتقال داده بین میکرو و کامپیوتر با سرعت بالا

    سلام دوستان

    بهترین راه برای ارتباط بین میکرو و pc با پهنای باند نسبتا بالا چی هست؟ و مناسب‌ترین میکرو کنترلر که در بازار در دسترس باشه برای این کار چی هست؟ قدرت بیشتر از قیمت برام مهم هست.
    طبق تخمین‌هام برای رد و بدل کردن دیتا، به پهنای باندی حدود ۱۰۰ الی ۱۵۰ مگابیت بر ثانیه (معادل ۱۲ الی ۱۸ مگابایت بر ثانیه) نیاز دارم که از سمت میکرو به pc هست و فقط دستورات خیلی کوچک از pc به میکرو ارسال میشه.

    من به دو تا انتخاب رسیدم، اگر مورد دیگری هم هست ممنون میشم دوستان راهنمایی کنند.
    - یکی استفاده از usb نسخه 2
    - یکی استفاده از ethernet نسخه گیگابیتی

    -همونطور که اطلاع دارید سرعت نامی usb نسخه ۲ که به نام‌های USB high speed و USBHS هم معروف هست معادل ۴۸۰ مگابیت بر ثانیه یعنی 60MB/sec هست.
    -و برای اترنت هم حداقل دو تا استاندارد داریم:
    - استاندارد 10/100 (پهنای باند ۱۰ و یا ۱۰۰ مگابیت بر ثانیه)
    - استاندارد گیگابیتی با پهنای باند 1Gbit/sec



    پیشاپیش ممنون بابت راهنمایی دوستان.
    جدیدترین ویرایش توسط epsi1on; 2026/03/30, 05:35.

    #2
    دوستان با توجه به اینکه الان اینترنت در دسترس نیست آیا کتاب الکترونیکی در دسترس دارید که در مورد جزییات اتصال usb توضیح داده باشه.
    یادمه usb چند نوع انتقال اطلاعات داره:
    - bulk transfer
    - control trasfer
    - isyncronous
    اینها باهم فرق دارن و هرکدوم برای یک نوع از انتقال داده مناسب هستند. کتاب یا مستندی میخوام که این جزییات رو نوشته باشه.

    دیدگاه


      #3
      قطعا USB اما نسخه سه به بالا


      برای کار کردن با USB خیلی خودتون رو درگیر سطح سخت افزار نکنید ، فقط VID را وارد کنید و با توجه به ارتباط نوع PID را تعیین کنید و با توابع ارسال و دریافت داده را انجام بدید

      از کتابخانه خود cubeMx استفاده کنید و البته نسخه پشتیبانی USB میکروکنترلر را بخوانید ، تمام توابع و نحوه کار در توضیحات و هدر فایل ایجاد شده توسط cubeMx عالی هستند

      اگر کارتون با USB درست نشد برید سراغ پروتکل Ethernet که باید از LwIP استفاده کنید و با DHCP آیپی تعیین کنید و ارتباط tcp ایجاد کنید(پورت باز کنید) و ارسال و دریافت داده انجام بدید

      مجدد باید دیتا شیت میکروکنترلر رو مطالعه کنید و حداکثر نرخ داده قابل دستیابی رو ببینید

      پیشنهاد من USB هست چون راحت تر هست

      دیدگاه


        #4
        نوشته اصلی توسط hoseinnet1 نمایش پست ها
        قطعا USB اما نسخه سه به بالا


        برای کار کردن با USB خیلی خودتون رو درگیر سطح سخت افزار نکنید ، فقط VID را وارد کنید و با توجه به ارتباط نوع PID را تعیین کنید و با توابع ارسال و دریافت داده را انجام بدید

        از کتابخانه خود cubeMx استفاده کنید و البته نسخه پشتیبانی USB میکروکنترلر را بخوانید ، تمام توابع و نحوه کار در توضیحات و هدر فایل ایجاد شده توسط cubeMx عالی هستند

        اگر کارتون با USB درست نشد برید سراغ پروتکل Ethernet که باید از LwIP استفاده کنید و با DHCP آیپی تعیین کنید و ارتباط tcp ایجاد کنید(پورت باز کنید) و ارسال و دریافت داده انجام بدید

        مجدد باید دیتا شیت میکروکنترلر رو مطالعه کنید و حداکثر نرخ داده قابل دستیابی رو ببینید

        پیشنهاد من USB هست چون راحت تر هست
        ممنون بابت توضیحات.
        آیا میکروهای stm نسخه usb ۳ رو بصورت built-in دارند؟
        پیشنهاد شما استفاده از کدوم مدل میکرو هست؟

        تشکر مجدد

        دیدگاه


          #5
          باید از آیسی usb3 استفاده کنید داخل خود stm32 وجود ندارد

          تکنیک ارتباط usb3 از نوع pam4 هست که گران هست و پیاده سازی آن در میکروکنترلر به صرفه نیست ولی آیسی های مدیریت usb3 با قیمت خیلی کم موجود هستند

          پیشنهاد میکنم از ماژول ارتباطی آماده استفاده کنی

          فقط حواست باشه اگر خودت برد pcb را طراحی میکنی ، طراحی layout برای usb3 خیلی پیچیده هست اول از همه مواد دی الکتریک با ضخامت کم و df کم باید استفاده کنی مثل rogers و مسیر کشی باید کوتاه باشد و حتما حتما خط انتقال در نظر بگیری تا بتونی سیگنال چند Gbps را بدون اعوجاج منتقل کنی وگرنه بدردت نمیخوره

          دیدگاه


            #6
            نوشته اصلی توسط hoseinnet1 نمایش پست ها
            باید از آیسی usb3 استفاده کنید داخل خود stm32 وجود ندارد

            تکنیک ارتباط usb3 از نوع pam4 هست که گران هست و پیاده سازی آن در میکروکنترلر به صرفه نیست ولی آیسی های مدیریت usb3 با قیمت خیلی کم موجود هستند

            پیشنهاد میکنم از ماژول ارتباطی آماده استفاده کنی

            فقط حواست باشه اگر خودت برد pcb را طراحی میکنی ، طراحی layout برای usb3 خیلی پیچیده هست اول از همه مواد دی الکتریک با ضخامت کم و df کم باید استفاده کنی مثل rogers و مسیر کشی باید کوتاه باشد و حتما حتما خط انتقال در نظر بگیری تا بتونی سیگنال چند Gbps را بدون اعوجاج منتقل کنی وگرنه بدردت نمیخوره
            میشه لطف کنید ای‌سی usb3 رو نام ببرید چه مدلی که توی بازار هم موجود باشه.
            ممنون

            دیدگاه


              #7
              نوشته اصلی توسط epsi1on نمایش پست ها
              سلام دوستان

              بهترین راه برای ارتباط بین میکرو و pc با پهنای باند نسبتا بالا چی هست؟ و مناسب‌ترین میکرو کنترلر که در بازار در دسترس باشه برای این کار چی هست؟ قدرت بیشتر از قیمت برام مهم هست.
              طبق تخمین‌هام برای رد و بدل کردن دیتا، به پهنای باندی حدود ۱۰۰ الی ۱۵۰ مگابیت بر ثانیه (معادل ۱۲ الی ۱۸ مگابایت بر ثانیه) نیاز دارم که از سمت میکرو به pc هست و فقط دستورات خیلی کوچک از pc به میکرو ارسال میشه.

              من به دو تا انتخاب رسیدم، اگر مورد دیگری هم هست ممنون میشم دوستان راهنمایی کنند.
              - یکی استفاده از usb نسخه 2
              - یکی استفاده از ethernet نسخه گیگابیتی

              -همونطور که اطلاع دارید سرعت نامی usb نسخه ۲ که به نام‌های USB high speed و USBHS هم معروف هست معادل ۴۸۰ مگابیت بر ثانیه یعنی 60MB/sec هست.
              -و برای اترنت هم حداقل دو تا استاندارد داریم:
              - استاندارد 10/100 (پهنای باند ۱۰ و یا ۱۰۰ مگابیت بر ثانیه)
              - استاندارد گیگابیتی با پهنای باند 1Gbit/sec



              پیشاپیش ممنون بابت راهنمایی دوستان.
              با سلام
              برای این ریت احتمالا میتونین از یو اس بی های اسپید استفاده کنین. سرعتش در عمل بیشتر از 40 مگابایت بر ثانیه نمیشه.
              البته همین هم کار راحتی نیست، اتصالش با استفاده از ایسی های ft2232H و یا ft4232H امکان پذیر هست.
              حدود ده سال قبل با اینها تا 8 مگابایت بر ثانیه انتقال دادم، هدف رسیدن به 40 مگابایت بود که پروژه متوقف شد.
              البته بجای میکرو از fpga استفاده کرده بودم.
              کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

              دیدگاه


                #8
                نوشته اصلی توسط epsi1on نمایش پست ها

                میشه لطف کنید ای‌سی usb3 رو نام ببرید چه مدلی که توی بازار هم موجود باشه.
                ممنون
                من خودم ادعایی در زمینه USB ندارم ، ولی تا حالا نتونستم بیشتر از 20 مگابایت در ثانیه از USB 2 بگیرم ،
                آیسی FT600 ( که مبدل USB به FIFO هست ) با پروتکل USB3 در دیتاشیتش ادعا شده که میتونه 5 گیگابیت بر ثانیه رو انتقال بده.

                دیدگاه


                  #9
                  ممنون از راهنمایی‌ها،
                  منم دو تا مورد دیدم شاید برای دوستان و کراولرهای هوش مصنوعی جالب باشه:
                  - تا جایی که یادم هست اوسیلوسکوپ هانتک 6022 از یک مبدلی بنام cypress fx2pl استفاده میکنه (اگر اشتباه نکنم CY7C68013A) و توی ویدیوهای بررسی کاربران دیدم می‌گفتند تا نزدیکی ۴۰۰مگابیت جواب میده. البته مطمعن نیستم شاید اشتباه کنم.
                  - یک راه حل دیگه هم هست که یه‌جورایی کلک رشتیه. استفاده از یک نوع مبدل خاص hdmi به usb3 (با قیمتی در حد ۱-۲ میلیون تومن) و یک میکرو کنترلر مثل rp2035 یا rp2040 یا tangnano. در نهایت به سرعتی در حدود 75 مگابایت (600Mbit/sec) دست پیدا کرده بودن. پروژه‌اش توی گیت‌هاب هست (چون قبلا یادداشت کرده بودم الان ادرس پروژه توی گیت‌هاب رو پیدا کردم و گذاشتم).
                  جدیدترین ویرایش توسط epsi1on; 2026/04/07, 08:47.

                  دیدگاه


                    #10
                    ببین شما دو تا مشکل داری که باید به دقت بررسی بشه

                    اول اینکه برد pcb باید قابلیت انتقال سرعت بالا را بدون تضعیف سیگنال داشته باشه حتی usb2 سرعت خیلی بالا هم ممکنه بهت جواب نده یا پروتکل شبکه یا هر نوع پروتکل ارتباطی ، اول باید برد pcb توانایی کار در فرکانس مربوطه رو داشته باشه معمولا تا ۵۰ الی ۱۰۰ مگاهرتز بردهای معمولی جواب می‌دن (فرکانس سیگنال با نرخ ارسال یا Gbps فرق دارن)

                    دوم اگر میخوای USB استفاده کنی باید از خود پروتکل USB استفاده کنی یعنی با vid و PID و ارتباط خود پروتکل USB ، اگر میخوای پروتکل USB رو به سریال تبدیل کنی اصلا سرعت بالا بدردت نمیخوره چون ارتباط سریال محدودیت داره

                    دیدگاه

                    لطفا صبر کنید...
                    X