اطلاعیه

Collapse
No announcement yet.

مقایسه بین پروتکل های ارتباطی....؟؟

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

    مقایسه بین پروتکل های ارتباطی....؟؟

    با سلام
    یک سوال.
    شاید ساده باشد ولی بنده نا گاهم شرمنده دوستان...

    برای یک پروژه که یک ارتباط ساده یک master با چندین slave با مشخصات زیر:
    - سرعت معمولی باشد.( زیاد مهم نیست....)
    - فاصله تا 100 متر.( بیشتر بهتر :nerd
    - ارتباط بین master و Slave دو طرفه باشد.

    از کدام پروتکل استفاده کنم و به چه دلیلی :
    1- rs485
    2- i2c
    3-SPI

    در صورتیکه پروتکل دیگری را فراموش کردم شما یاد آوری کنید...
    ممنون از لطفتون. :nerd:

    ask One Question

    #2
    پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

    همون 1

    دیدگاه


      #3
      پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

      I2C و SPI محدودیت فاصله دارن.
      از همون RS485 باس استفاده کنی.
      http://en.wikipedia.org/wiki/RS-485
      http://en.wikipedia.org/wiki/I%C2%B2C
      http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus

      در ضمن اینکه ارتباط دو طرفت چطور باید باشه؟ Master Slave باشه یا هرکی هروقت دلش خواس اطلاعات رو بریزه روی خط؟
      در هر صورت، بهترین گزینه rs485ه

      «پشتکار» «پشتکار» «پشتکار»

      دیدگاه


        #4
        پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

        شما هر ارتباط دو طرفه ای چند slave رو میتونید استفاده کنید (SPI فکر میکنم فقط یه slave داره)
        در لایه فیزیکی هم میتونید سیگنالتون رو تبدیل به rs422 (دیفرانسیلی)کنید تا مشکل فاصلتون حل شه
        RS485 پیشنهاد خوبیه

        دیدگاه


          #5
          پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

          شما هر ارتباط دو طرفه ای چند slave رو میتونید استفاده کنید (SPI فکر میکنم فقط یه slave داره)
          SPI هم میتونه با تعداد زیادی Slave ارتباط برقرار کنه، ولی باید به تعداد هر Slave باید یه خط SS یا همون Slave Select داشته باشه.

          «پشتکار» «پشتکار» «پشتکار»

          دیدگاه


            #6
            پاسخ : پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

            نوشته اصلی توسط کنجکاو!
            در ضمن اینکه ارتباط دو طرفت چطور باید باشه؟ Master Slave باشه یا هرکی هروقت دلش خواس اطلاعات رو بریزه روی خط؟
            در هر صورت، بهترین گزینه rs485ه
            به این صورت که Slave هر گاه خواست دیتای خود را روی خط قرار داده و Master آن را بخواند و سپس به بقیه Slave ها آن دیتا را اعلام نماید...

            یک سوال مبتدیانه :icon_razz:: در صورتیکه که Slave اینکار را بخواهد انجام دهد حالت Master Slave که بهم نمی خورد؟ یعنی جابجا نمی شود که؟؟؟!!

            سوال دیگر اینکه : یک مثال در مورد اینکه برخی جا ها خواندم که در برخی پروتکل ها Slave می تواند Master هم شود و بالعکس... اینکه در چه جاهایی کاربرد دارد با یک مثال روشنم نمایید....

            ممنون
            ask One Question

            دیدگاه


              #7
              پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

              فقط rs485 که همون بهبود یافته rs232 هستش ولی برای افزایش برد از 15 متر به چیزی حدود 1200 متر از روش تفاضلی استفاده میکنه اینطوری فقط تفاضل دو سیگنال
              در خروجی تجزیه و تحلیل خواهد شد و چنانچه نویزی القا شود چون بر هر دو سیم اعمال خواهد شد در خروجی حذف خواهد شد و اینم بگم که بهتر هست از کابل نوع زوج به هم تابیده استفاده فرمایید تا تاثیر نویز رو هر دو سیم به یک اندازه باشد.

              دیدگاه


                #8
                پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

                ممنون از راهنمایی تمام دوستان.... :bye

                فقط اگه یک برنامه نمونه دارید راجع به کار با RS485 و ارتباط دو یا چند میکرو برام بگذارید... ممنون می شوم

                یا اینکه راهنمایی کنید .... :redface:

                به نظرتون از چه راهی استفاده کنم که مثلا وقتی master خواست یک چیزی برای یکی از slave ها بفرستم از

                کجا تشخیص بدهم کدوم slave می گیرد و اینکه کدام slave بفهمد که براش دیتا اومده و .... :smile:

                ظاهرا باید خودم یک پروتکل ارتباطی نرم افزاری بین میکرو ها بنویسم تا این ارتباط شکل بگیرد. اینکار رو 4-5 سال پیش کرده بودم اما یادم نمی آد....


                ask One Question

                دیدگاه


                  #9
                  پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

                  سلام

                  http://www.eca.ir/forum2/index.php?topic=71279.msg422248#msg422248
                  تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                  دیدگاه


                    #10
                    پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

                    نوشته اصلی توسط ask110
                    ممنون از راهنمایی تمام دوستان.... :bye

                    فقط اگه یک برنامه نمونه دارید راجع به کار با RS485 و ارتباط دو یا چند میکرو برام بگذارید... ممنون می شوم

                    یا اینکه راهنمایی کنید .... :redface:

                    به نظرتون از چه راهی استفاده کنم که مثلا وقتی master خواست یک چیزی برای یکی از slave ها بفرستم از

                    کجا تشخیص بدهم کدوم slave می گیرد و اینکه کدام slave بفهمد که براش دیتا اومده و .... :smile:

                    ظاهرا باید خودم یک پروتکل ارتباطی نرم افزاری بین میکرو ها بنویسم تا این ارتباط شکل بگیرد. اینکار رو 4-5 سال پیش کرده بودم اما یادم نمی آد....
                    البته لینکی که جناب mehdi_nxp دادن دیگه خیلی کامله!
                    ولی ساده ترین راه اینه که چند بیت اول رو اختصاص بدین به آدرس، چند بیت به فرمان
                    خیلی الگوریتم ها میشه پیاده کرد که از صحت و سقم دیتای فرستاده شده هم اطمینان حاصل کنید.

                    موفق باشید

                    «پشتکار» «پشتکار» «پشتکار»

                    دیدگاه


                      #11
                      پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

                      نوشته اصلی توسط mehdi_nxp
                      سلام

                      http://www.eca.ir/forum2/index.php?topic=71279.msg422248#msg422248
                      دست شما درد نکنه... ممنون از زحماتتون. :nice:
                      ولی من نمونه AVR رو می خوام....
                      :agree:
                      ask One Question

                      دیدگاه


                        #12
                        پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

                        نوشته اصلی توسط ask110
                        دست شما درد نکنه... ممنون از زحماتتون. :nice:
                        ولی من نمونه AVR رو می خوام....
                        :agree:
                        اگر الگوریتم اون برنامه رو متوجه بشید میتونین خودتون روی AVR پیاده سازی کنید!
                        میگم! راحت ترین راهش اینه که مثلاً بفرستید Add$Com حالا این $ که استفاده کردم برای اینه که متوجه بشید آدرس تموم شده و بیتهای دیگه ای که میاد مربوط به فرمانه! میتونید خودتون از یه علامت بخصوص و تعریف شده پیش خودتون استفاده کنید!
                        تمام Slave ها این داده ها رو میگیرن، چک می کنن اگه آدرس خودشون بود، فرمان رو اجرا می کنن در غیر اینصورت بیخیالش میشن

                        «پشتکار» «پشتکار» «پشتکار»

                        دیدگاه


                          #13
                          پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

                          سلام
                          دوستان پروتکلی تازه گی ها دیدم بنام CAN نمیدونم چی و چطور کار میکنه فقط میدونم که تقریبا مثل همون RS485 ! (فکر کنم :redface: )
                          اگه کسی اطلاعاتی داره لطفا راهنمایی کنه شاید بدرد این دوستمون هم بخوره !
                          - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

                          دیدگاه


                            #14
                            پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

                            دوباره سلام
                            یه سرچی زدم این رو پیدا کردم :biggrin:

                            یه نگاهی بیاندازید !

                            http://www.eca.ir/forum2/index.php?t...1462#msg291462
                            - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

                            دیدگاه


                              #15
                              پاسخ : مقایسه بین پروتکل های ارتباطی....؟؟

                              نوشته اصلی توسط ask110
                              ممنون از راهنمایی تمام دوستان.... :bye


                              به نظرتون از چه راهی استفاده کنم که مثلا وقتی master خواست یک چیزی برای یکی از slave ها بفرستم از

                              کجا تشخیص بدهم کدوم slave می گیرد و اینکه کدام slave بفهمد که براش دیتا اومده و .... :smile:

                              ظاهرا باید خودم یک پروتکل ارتباطی نرم افزاری بین میکرو ها بنویسم تا این ارتباط شکل بگیرد. اینکار رو 4-5 سال پیش کرده بودم اما یادم نمی آد....
                              با سلام .
                              اگه اشتباه نکنم شما هم avrکارین. :smile:
                              ببین دوست عزیز من زبان اسمبلی کار میکنم :twisted:.یوسارت رو در مد نه بیتی تنظیم میکنیم ومستر واسلاو رو هم که مشخص میکنیم .با این روش در اسلاو اطلاعاتی که بصورت 8 بیتی باشد رو ازشون میگذره و فقط به داده های 9 بیتی عکس العمل نشون میده بنابراین اگر وقفه دریافت در اسلاو فعال باشد با دریافت داده 9 بیتی که حامل ادرس اسلاو میباشد همه اسلاوها این ادرس را دریافت خواهند کرد و پس از دریافت ان را با ادرس تعیین شده توسط ما مقایسه خواهند کرد
                              در صورت تطابق ادرس اسلاو مورد نظر به مد هشت بیت تغییر مد میدهد و از این به بعد مستر اطلاعات رو به صورت 8 بیت ارسال میدارد بنابراین دیگر اسلاوها داده 8 بیت را دریافت نمی کنند وبه کار عادی خود ادامه میدهند.این را باید به یاد داشت که بعد از پایان ارسال داده مد ارسال در مستر واسلاو به مد9 بیتی تغییر باید یابد.

                              دیدگاه

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