اطلاعیه

Collapse
No announcement yet.

ساخت تعدادی دستگاه slave و یک master

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

    ساخت تعدادی دستگاه slave و یک master

    با سلام خدمت اساتید عزیز
    من باید یه پروژه ای رو تحویل بدم که شرحش به این صورته.
    تعدادی دستگاه slave داریم که اینا باید یه سری دیتا بگیرن و برای master بفرستن.دیتا ها ممکنه تعدادشون زیاد بشه مثلا 50تا
    master باید این دیتاهارا چاپ کنه.من دیتاهارو می گیرم و برای ارسال و چاپ مشکلی ندارم.فقط مشکل من اینجاست که اگه slaveها باهم دیتا بفرستن master هنگ می کنه
    و دیگه دیتاهارو چاپ نمی کنه و می خوام اینقد slave ها دیتاها را به صورت لوپ بفرستن تا اینکه master به اون slave بگه که دیتاهای تورو گرفتم.
    برای این کار از Atmega 32 استفاده کردم و با بسکام کد می نویسم.
    تو الگوریتم موندم.ممنون می شم راهنماییم کنید
    با تشکر
    "لحظه پيروزي از آن جهت برايم شيرين است که ملت کشورم را در آرامش و شادي ببينم"
    نادر شاه

    #2
    پاسخ : ساخت تعدادی دستگاه slave و یک master

    نوشته اصلی توسط احمد سمیعی
    با سلام خدمت اساتید عزیز
    من باید یه پروژه ای رو تحویل بدم که شرحش به این صورته.
    تعدادی دستگاه slave داریم که اینا باید یه سری دیتا بگیرن و برای master بفرستن.دیتا ها ممکنه تعدادشون زیاد بشه مثلا 50تا
    master باید این دیتاهارا چاپ کنه.من دیتاهارو می گیرم و برای ارسال و چاپ مشکلی ندارم.فقط مشکل من اینجاست که اگه slaveها باهم دیتا بفرستن master هنگ می کنه
    و دیگه دیتاهارو چاپ نمی کنه و می خوام اینقد slave ها دیتاها را به صورت لوپ بفرستن تا اینکه master به اون slave بگه که دیتاهای تورو گرفتم.
    برای این کار از Atmega 32 استفاده کردم و با بسکام کد می نویسم.
    تو الگوریتم موندم.ممنون می شم راهنماییم کنید
    با تشکر
    سلام
    من گیج شدم و متوجه نشدم که منظورتون از slave مستر هست یا نه ...
    ولی فکر کنم که شما اشتباه متوجه شدید !!!
    slave دستگاهی هست که از master فرمان میگیره ... پس نباید Slave ها به مستر داده ای ارسال کنند ...
    =======================
    دوم اینکه شما مشخص نکردید که با چه پروتکلی میخواهید کار کنید ...
    ولی به نظر من با TWI کار کنید خیلی بهتره ... البته نباید فاصله و فرکانس زیاد باشه ...
    این از این .......
    خوب حالا اول من یه توضیح کوچیکی در رابطه با TWI بدم بهتره ...
    توی پروتکل TWI مستر همه کاره هست ... البته این رو مد نظر داشته باشید که اگر خواستید داده ای از سوی slave ها دریافت کنید ، باید master با دستور خواندن از روی slaveها داده ها را بخواند ...
    پس اگر میخواهید که از slave به master داده ای بفرستید حتما باید master از slave درخواست داده کند ...
    حالا چون نمیشه slave به master داده ای ارسال کرد پس باید master تک تک slave ها را بررسی کند و بخواند ...
    به عنوان مثال اگر 20 دستگاه داشته باشیم باید هر 20 دستگاه را بررسی کنیم و از آنها داده بگیریم ...

    فکر کنم کافی باشه
    موفق باشید
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    دیدگاه


      #3
      پاسخ : ساخت تعدادی دستگاه slave و یک master

      اول اینکه تعداد slave ها چندتاست.
      دوم اینکه در برنامه ای که خودتون نوشتید از چه پروتکل ارتباطی استفاده کردید؟؟؟
      ... و (بدانيد) گرفتن تصميمهاى محكم (براى رسيدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگين سازگار نيست و چه بسيار كه خواب شبانه تصميمهاى محكم روز را از ميان برده و تاريكيآ‌ها، خاطره همتآ‌هاى بلند را از يادها محو كرده است. (نهجآ‌البلاغه، خطبه211)

      امام علي (ع):کسي که به وقت ياري رهبرش در خواب باشد، با لگد دشمنش بيدار مي شود (غررالحکم،ص 422)

      دیدگاه


        #4
        پاسخ : ساخت تعدادی دستگاه slave و یک master

        من توی یه پروژه میخواستم این کار رو انجام بدم تصمیم گرفتم داده های هر slave رو روی یه مموری ذخیره کنم بعدش سر موقعی که خودم تنظیم کردم برای master ارسال کنم .با این روش تداخلی نخواهی داشت.ولی راه دیگه ای هست مثل rs485 که اطلاعات رو روی باس بریزی و master اون رو بگیره.

        دیدگاه


          #5
          پاسخ : ساخت تعدادی دستگاه slave و یک master

          نوشته اصلی توسط reza965
          من توی یه پروژه میخواستم این کار رو انجام بدم تصمیم گرفتم داده های هر slave رو روی یه مموری ذخیره کنم بعدش سر موقعی که خودم تنظیم کردم برای master ارسال کنم .با این روش تداخلی نخواهی داشت.ولی راه دیگه ای هست مثل rs485 که اطلاعات رو روی باس بریزی و master اون رو بگیره.
          یکی از راه های دیگه ارتباط دوستمون اشاره کردند ... :agree:
          ممنون
          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
          معرفی نرم افزار Codewizard PWM
          با من بیشتر آشنا شوید

          دیدگاه


            #6
            پاسخ : ساخت تعدادی دستگاه slave و یک master

            ممنون از جواب همه ی دوستان
            من از RS232 استفاده کردم (ماژول HM-TRP)
            خب پس بیشتر توضیح می دم که اگه اشتباه نام گذاری کردم دوستان راهنمایی کنن.
            یه برد داریم که به پرینتر وصله من اسمشو گذاشتم master چون بقیه باید برای این دیتا بفرستن.
            و 50 تا برد دیگه که قراره دیتا هارو از مشتری بگیره و برای master بفرسته که بعد پرینت بشن.
            شما فرض کنین یه سفره خونه که هر کسی یه چیزی می خواد.سفارشات و تعداد هرکدوم رو مشتری انتخاب می کنه و در آخر برای master فرستاده میشه که چاپ می کنه و مسئول اینکار سفارش رو برای مشتری می بره.حالا مشکلی که پیش میاد اینه که ممکنه 10 تا مشتری هم زمان دیتاهارو بفرستن.
            من الان با یه مشتری مشکلی ندارم و برنامه هاشو نوشتم و وقتی دوتا دستگاه سفارشگیرنده باهم دیتا می فرستن نتیجه ی مطلوب نمی گیرم.
            اینجاست که من هنگ می کنم :angry: :angry:
            "لحظه پيروزي از آن جهت برايم شيرين است که ملت کشورم را در آرامش و شادي ببينم"
            نادر شاه

            دیدگاه


              #7
              پاسخ : ساخت تعدادی دستگاه slave و یک master

              نوشته اصلی توسط احمد سمیعی
              ممنون از جواب همه ی دوستان
              من از RS232 استفاده کردم (ماژول HM-TRP)
              خب پس بیشتر توضیح می دم که اگه اشتباه نام گذاری کردم دوستان راهنمایی کنن.
              یه برد داریم که به پرینتر وصله من اسمشو گذاشتم master چون بقیه باید برای این دیتا بفرستن.
              و 50 تا برد دیگه که قراره دیتا هارو از مشتری بگیره و برای master بفرسته که بعد پرینت بشن.
              شما فرض کنین یه سفره خونه که هر کسی یه چیزی می خواد.سفارشات و تعداد هرکدوم رو مشتری انتخاب می کنه و در آخر برای master فرستاده میشه که چاپ می کنه و مسئول اینکار سفارش رو برای مشتری می بره.حالا مشکلی که پیش میاد اینه که ممکنه 10 تا مشتری هم زمان دیتاهارو بفرستن.
              من الان با یه مشتری مشکلی ندارم و برنامه هاشو نوشتم و وقتی دوتا دستگاه سفارشگیرنده باهم دیتا می فرستن نتیجه ی مطلوب نمی گیرم.
              اینجاست که من هنگ می کنم :angry: :angry:
              یک لیوان آب خنک بنوش تا جیگرت حال بیاد ...
              با همون روشی که گفتم کار کن ...
              مستر باید تک تک اسلیوها رو صدا کنه و اگر داده ای داشتند به مستر خبر بده که من میخوام داده بفرستم و اگر جواب منفی بود ، مستر باید اسلیو دیگری را صدا کند ...
              برای اینکار ابتدا باید به هر کدام از اسلیوها یک آدرس اختصاص دهید . حتما آدرس را دو بایتی انتخاب کنید ...
              بعد باید یک بایت دستور را بفرستید و بعد داده و بعد پایان بسته اطلاعاتی که معمولا دوبایتی است ...
              پس بسته اطلاعاتی ما به این شکل است

              برای Master :
              1. آدرس دستگاه(شروع بسته اطلاعاتی)
              2. پایان بسته اطلاعاتی (میتواند Enter باشد : ارسال بایتهای 10و13)

              برای Slaveها :
              1. آدرس دستگاه
              2. دستور
              3. داده (در صورت داشتن داده اطلاعاتی)
              4. پایان بسته اطلاعاتی (میتواند Enter باشد : ارسال بایتهای 10و13)

              اینجا لازمه که یه چیزی رو بگم
              اگر Slaveها داده ای نداشتند باید دستور را چیزی قرار دهیم که مستر بداند آدرس مورد نظر داده ای ندارد .
              بنابراین بعد از ارسال دستور منفی باید بایتهای پایان بسته اطلاعاتی ارسال شود .

              در مورد Master :
              باید پس از دریافت آدرس منتظر بماند تا بسته پایان یابد ... بعد از پایان بسته اطلاعاتی اول باید slave دوم را صدا کند ... و به همین روال شبکه کنید ...
              برای اطمینان بیشتر میتوانید از کدهای خطایابی استفاده کنید ...
              امیدوارم خوب توضیح داده باشم ...
              موفق باشید
              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
              معرفی نرم افزار Codewizard PWM
              با من بیشتر آشنا شوید

              دیدگاه


                #8
                پاسخ : ساخت تعدادی دستگاه slave و یک master

                نوشته اصلی توسط Saman.Asadi
                یک لیوان آب خنک بنوش تا جیگرت حال بیاد ...
                با همون روشی که گفتم کار کن ...
                مستر باید تک تک اسلیوها رو صدا کنه و اگر داده ای داشتند به مستر خبر بده که من میخوام داده بفرستم و اگر جواب منفی بود ، مستر باید اسلیو دیگری را صدا کند ...
                برای اینکار ابتدا باید به هر کدام از اسلیوها یک آدرس اختصاص دهید . حتما آدرس را دو بایتی انتخاب کنید ...
                بعد باید یک بایت دستور را بفرستید و بعد داده و بعد پایان بسته اطلاعاتی که معمولا دوبایتی است ...
                پس بسته اطلاعاتی ما به این شکل است

                برای Master :
                1. آدرس دستگاه(شروع بسته اطلاعاتی)
                2. پایان بسته اطلاعاتی (میتواند Enter باشد : ارسال بایتهای 10و13)

                برای Slaveها :
                1. آدرس دستگاه
                2. دستور
                3. داده (در صورت داشتن داده اطلاعاتی)
                4. پایان بسته اطلاعاتی (میتواند Enter باشد : ارسال بایتهای 10و13)

                اینجا لازمه که یه چیزی رو بگم
                اگر Slaveها داده ای نداشتند باید دستور را چیزی قرار دهیم که مستر بداند آدرس مورد نظر داده ای ندارد .
                بنابراین بعد از ارسال دستور منفی باید بایتهای پایان بسته اطلاعاتی ارسال شود .

                در مورد Master :
                باید پس از دریافت آدرس منتظر بماند تا بسته پایان یابد ... بعد از پایان بسته اطلاعاتی اول باید slave دوم را صدا کند ... و به همین روال شبکه کنید ...
                برای اطمینان بیشتر میتوانید از کدهای خطایابی استفاده کنید ...
                امیدوارم خوب توضیح داده باشم ...
                موفق باشید
                مطمئنترین روش برای ارتباط master با چند slave همینه

                دیدگاه


                  #9
                  پاسخ : ساخت تعدادی دستگاه slave و یک master

                  ممنون از همه ی دوستانی که منو راهنمایی می کنن
                  برناممو تغییر می دم و اگه به مشکلی برخوردم نیاز مند یاری سبزتون می شم :smile:
                  "لحظه پيروزي از آن جهت برايم شيرين است که ملت کشورم را در آرامش و شادي ببينم"
                  نادر شاه

                  دیدگاه


                    #10
                    پاسخ : ساخت تعدادی دستگاه slave و یک master

                    نوشته اصلی توسط احمد سمیعی
                    ممنون از همه ی دوستانی که منو راهنمایی می کنن
                    برناممو تغییر می دم و اگه به مشکلی برخوردم نیاز مند یاری سبزتون می شم :smile:
                    با چه کامپایلری کار میکنید؟
                    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                    معرفی نرم افزار Codewizard PWM
                    با من بیشتر آشنا شوید

                    دیدگاه


                      #11
                      پاسخ : ساخت تعدادی دستگاه slave و یک master

                      نوشته اصلی توسط Saman.Asadi
                      با چه کامپایلری کار میکنید؟
                      من با بسکام کار می کنم
                      "لحظه پيروزي از آن جهت برايم شيرين است که ملت کشورم را در آرامش و شادي ببينم"
                      نادر شاه

                      دیدگاه


                        #12
                        پاسخ : ساخت تعدادی دستگاه slave و یک master

                        سلام
                        همین پروژه رو کسی به زبان برنامه نویسی c داره؟ اینجا بذاره؟ممنون
                        هیچ چیز غیر ممکن نیست مگر شما آنرا غیر ممکن سازید.

                        دیدگاه


                          #13
                          پاسخ : ساخت تعدادی دستگاه slave و یک master

                          نوشته اصلی توسط mohamad_musavi69
                          سلام
                          همین پروژه رو کسی به زبان برنامه نویسی c داره؟ اینجا بذاره؟ممنون
                          سلام
                          اگر زبان سی بلد باشید میتوانید همین مراحلی که گفتم رو تک تک اجرا کنید و نتیجه بگیرید ...
                          زیاد سخت نیست ولی با کمی حوصله تمامی کدها را میتوانید بنویسید ...

                          موفق باشید
                          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                          معرفی نرم افزار Codewizard PWM
                          با من بیشتر آشنا شوید

                          دیدگاه


                            #14
                            پاسخ : ساخت تعدادی دستگاه slave و یک master

                            نوشته اصلی توسط احمد سمیعی
                            من با بسکام کار می کنم
                            بسکام که خوراک rs485
                            اگه دیدی خیلی اذیتت میکنه با 485 کار کن
                            اطلاعات خیلی راحت فرستاده میشن
                            نیاز به مستر اسلیوهم نداری دوست عزیز

                            دیدگاه


                              #15
                              پاسخ : ساخت تعدادی دستگاه slave و یک master

                              نوشته اصلی توسط rezash86
                              بسکام که خوراک rs485
                              اگه دیدی خیلی اذیتت میکنه با 485 کار کن
                              اطلاعات خیلی راحت فرستاده میشن
                              نیاز به مستر اسلیوهم نداری دوست عزیز
                              دوستمون می خواستند با ماژولهای HM_TR کار کنند ...
                              با 485 میشه کار کنه ؟؟؟
                              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                              معرفی نرم افزار Codewizard PWM
                              با من بیشتر آشنا شوید

                              دیدگاه

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