اطلاعیه

Collapse
No announcement yet.

استفاده توامان از RS232 و RS485 در یک میکرو

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

    استفاده توامان از RS232 و RS485 در یک میکرو

    تو یه پروژه نیاز دارم که دیتا رو از طریق شبکه RS485 بین چند میکرو و کامپیوتر انتقال بدم. تا اینجا مشخصه که نیاز به ارتباط سریال و آیسی های شبکه مثل Max485, Max486 و ADM485 دارم.
    اما نکته ای که هست اینه که تو پروسه مورد نظر نیاز به ارتباط با یک اسکنر هم وجود داره. این اسکنر با منطق RS232 کار می کنه و با توجه به شرایط موجود و نحوه عملکرد سیستم باید از وقفه سریال استفاده کنم.
    با این شرایط باید هم MAX232 (برای اسکنر) و هم ADM485 ( برای شبکه) رو به پایه های RX و TX میکرو وصل کنم(میکروی مورد نظر هم ATMEGA32 هست که یک USART داره ). حالا مشکل همون تطبیق امپدانس و اثر بارگذاری پیش میاد(البته فکر می کنم ).

    با تحلیل های خیلی پیچیده ای که کردم به این نتیجه رسیدم که یک بافر سر راه MAX232 بذارم.

    حالا سوال:
    حرفایی که زدم و تحلیل هایی که کردم درسته یا نه؟
    • اگه درسته چه بافری بذارم و چجوری؟
    • اگه درست نیست باید چه تغییری تو کار بدم و منطق و الگوریتم برنامه نویسی رو چطور پیش بینی می کنین؟

    مرسی از توجهتون.

    #2
    پاسخ : استفاده توامان از RS232 و RS485 در یک میکرو

    اسکنرتون بارکدریدره یا اسکنر گرافیکی؟
    There is nothing so practical as a good theory. — Kurt Lewin, 1951

    دیدگاه


      #3
      پاسخ : استفاده توامان از RS232 و RS485 در یک میکرو

      اسکنر بارکد ریدر هست.

      دیدگاه


        #4
        پاسخ : استفاده توامان از RS232 و RS485 در یک میکرو

        راه های پیشنهادی:

        1. استفاده از ATmega64 یا 128 به علت داشتن دو USART
        2. استفاده از یک میکروی کوچک (ATtiny) به عنوان Slave میکروی اصلی و ارتباط با آن از طریق پورت SPI (میکروی Slave با اسکنر در ارتباط است و ATmega32 با باس 485)
        3. ایجاد یک باس 485 که اسکنر و وسایل دیگر بر روی آن قرار می گیرند و باید برای اسکنر یک Host Controller (با یک میکروی کوچک) درست کنید که در نقش یک Bridge بین اسکنر و باس عمل کند.
        4. راه پیشنهادی خودتون: فکر می کنم عملیاتی نباشه چون اسکنر فرستنده است و Direction آیسی Max485 رو شما دارید کنترل می کنید. از اونجایی که معلوم نیست کی یک کد توسط اسکنر ارسال میشه ممکنه Direction تنظیم نباشه و داده از دست بره. اگر برای حل این مشکل از RS422 استفاده کنید بازهم مشکلاتی در برنامه نویسی براتون پیش میاد که اگر یه مقدار روی موضوع دقیق بشید، متوجه خواهید شد :smile:
        There is nothing so practical as a good theory. — Kurt Lewin, 1951

        دیدگاه


          #5
          پاسخ : استفاده توامان از RS232 و RS485 در یک میکرو

          مرسی از پیشنهادها.
          1و2و3- به علت صرفه جویی در هزینه و تعداد زیاد از این دستگاه از MEGA128 یا میکروی اضافی نمی تونم استفاده کنم(البته باید بررسی کنم)
          3- پیشنهاد جالبی به نظر میرسه.
          4- یعنی به هیچ صورت نمیشه هم یک کانال 485 داشت و یک کانال 232 ؟ مثلا مثل دستگاه های کارت خوان که کانال های RS232 و RS422 و RS485 دارند؟

          دیدگاه


            #6
            پاسخ : استفاده توامان از RS232 و RS485 در یک میکرو

            نوشته اصلی توسط حامد جعفری
            مرسی از پیشنهادها.
            1و2و3- به علت صرفه جویی در هزینه و تعداد زیاد از این دستگاه از MEGA128 یا میکروی اضافی نمی تونم استفاده کنم(البته باید بررسی کنم)
            3- پیشنهاد جالبی به نظر میرسه.
            4- یعنی به هیچ صورت نمیشه هم یک کانال 485 داشت و یک کانال 232 ؟ مثلا مثل دستگاه های کارت خوان که کانال های RS232 و RS422 و RS485 دارند؟
            فکر می کنم کارت ریدرهایی که چند خروجی دارند معمولا به طور همزمان همه ی خروجی هاشون فعال نیست. ممکنه شما با یک روش ابتکاری بتونی این کار رو انجام بدی اما باید مراقب بود یه جا باگ ایجاد نشه چون رفتار اسکنر قابل پیش بینی نیست و درضمن فریم های 232 هم یه بیت کمتر از 485 است.

            There is nothing so practical as a good theory. — Kurt Lewin, 1951

            دیدگاه


              #7
              پاسخ : استفاده توامان از RS232 و RS485 در یک میکرو

              یه کار جالب دیگه هم میشه کرد:

              خروجی اسکنر رو وصل کنید به یکی از خطوط IRQ و حساسیت اش رو روی لبه ی پایین رونده تنظیم کنید (بیت شروع). با تریگر شدن وقفه، در ISR از پایه نمونه برداری کنید و داده ی اعمال شده روی پایه ی وقفه را دریافت کنید. از اونجایی که حجم داده ی ارسالی اسکنر بالا نیست می تونید بادریت اون رو روی یه مقدار کم تنظیم کنید (مثل 9600) تا CPU فرصت کافی برای نمونه برداری از پین رو داشته باشه.
              البته بعضی از کامپایلرها مثل BASCOM و MikroBasic خودشون UART نرم افزاری دارند که نمی دونم میشه ازش در ISR استفاده کرد یا خیر.

              There is nothing so practical as a good theory. — Kurt Lewin, 1951

              دیدگاه


                #8
                پاسخ : استفاده توامان از RS232 و RS485 در یک میکرو

                salam man mikham e 2 ta micro ro ba rs 485 be ham vasl konam moshkel kod daram komak mi****d ?

                دیدگاه

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