اطلاعیه

Collapse
No announcement yet.

آموزش و نمونه برنامه پروتکل rs485

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

    آموزش و نمونه برنامه پروتکل rs485

    با سلام کسی آموزش و برنامه نمونه ای برای ارتباط 2 میکرو به هم با آیسی max485 داره ؟؟؟
    دنیا بر پایه برنامه هایی هست که خدا با زبان برنامه نویسی خودش مینویسد . کامپایل شده آن این جهان و قوانین آن است . start آن تولد است و end آن مرگ . پر از گزینه های شرطی و دستورات حلقه و تکرار ...

    #2
    پاسخ : آموزش و نمونه برنامه پروتکل rs485

    برای اتصال دو میکرو نیازی به تبدیل ttl با rs485 نداری
    rs485 تا جایی که من میدونم برای اتصال به com کامپیوتر استفاده میشه
    واسه ارتباط بین دو میکرو میتونی txd و rxd میکرو ها رو برعکس به همدیگه وصل کنی و تمام .

    دیدگاه


      #3
      پاسخ : آموزش و نمونه برنامه پروتکل rs485

      نوشته اصلی توسط kaveh.s
      برای اتصال دو میکرو نیازی به تبدیل ttl با rs485 نداری
      rs485 تا جایی که من میدونم برای اتصال به com کامپیوتر استفاده میشه
      واسه ارتباط بین دو میکرو میتونی txd و rxd میکرو ها رو برعکس به همدیگه وصل کنی و تمام .
      شما که همه چیزو برعکس گفتی ؟؟؟؟
      rs485 برای ارتباط دو میکرو تو فاصله های زیاده . از rs232 برای ارتباط با کامپیوتر استفاده می کنند . :eek:
      دنیا بر پایه برنامه هایی هست که خدا با زبان برنامه نویسی خودش مینویسد . کامپایل شده آن این جهان و قوانین آن است . start آن تولد است و end آن مرگ . پر از گزینه های شرطی و دستورات حلقه و تکرار ...

      دیدگاه


        #4
        پاسخ : آموزش و نمونه برنامه پروتکل rs485

        سلام دوست عزیز
        سوالی که فرمودید اشکال بنده هم بود و در این انجمن مطرح کردم و خوشبختانه هیچ کس کمکی نکرد(اصلا نمی دونم چرا وقتی یک نفر در مورد rs485 سوالی می پرسه جدی گرفته نمی شه و پاسخ خوبی داده نمی شه) و بنده شخصا آستینا رو بالا زدم.
        rs485 معرکه هست البته اگر چند نکته رو رعایت کنی
        این rs485 ما یک ارتباط نیمه دوطرفه ایجاد میکنه که تا حدود 1200 متر میتونه دیتا رو ارسال کنه.
        اگر بخوای 2 میکرو رو از طریق rs485 با هم ارتباط بدی باید از 2 تا rs485 استفاده کنی.
        فرض کن یکی از میکروها mega 8 و یکی دیگه mega128 هست.(برای این مثال دلیل دارم .چون mega 128 دو تا کانال rx tx داره و دستورات فرق میکنه.
        حالا شما باید تصمیم بگیری که ارتباط یک جهته باشه یعنی اینکه یکی فقط ارسال کنه و یکی دیگه فقط دریافت کنه یا اینکه هر دو هم ارسال کنن هم دریافت
        پایه ی 2 و 3 rs485 رو باید به هم وصل کنی و بعد بزنی به یکی از I/o ها ی میکرو (برای انتخاب جهت ارسال) پایه ی 1 باید وصل بشه به rx و پایه ی 4 باید وصل بشه به tx پایه ی 6 هردو rs485 باید به هم و پایه ی 7 هر دو rs485 باید به هم وصل شن (یعنی a<===a و b<====b) خب سخت افزار تمومه
        توی برنامه ی mega 8 این طور می نویسی

        $regfile = "m8def.dat"
        $crystal = 8000000
        $baud = 1200

        Config Portd.7 = Output
        Portd.7 = 1

        Dim Temp As String * 10
        Dim Temp2 As String * 10

        Temp = "1234"
        Temp2 = "85"
        ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''

        Do

        Print Temp

        Wait 1

        Print Temp2
        Wait 1

        Loop

        End
        Portd.7 = 1 (پایه ی 2و3 rs485 برای تعیین جهت ارسال.وقتی 1 باشه یعنی تو مد ارسال هست)
        وقتی یکی تو مد ارسال هست یکی دیگه باید تو مد دریافت باشه) پس توی mega128 داریم
        $regfile = "m128def.dat"
        $crystal = 8000000
        $baud = 1200
        $baud1 = 1200

        Config Portd.7 = Output
        Portd.7 = 0

        Dim Temp As String * 10
        Dim Temp2 As String * 10
        Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
        Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
        Open "com2:" For Binary As #1
        ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''

        Do

        input #1,temp

        Waitms 100

        input #1, Temp2
        Waitms 200

        Loop
        خب پردازیم به توضیح
        Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
        Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
        برای mega128 همین دو خط رو کپی پیست کن. اینجا ما com1 و com2 رو کانفیگ کردیم
        Open "com2:" For Binary As #1 تو این خط ما می آیم com2 رو open می کنیم. اگر از rx0 و tx0 استفاده کردی باید com1 رو open کنی ولی اگر rx1 و tx1 رو استفاده کردی باید com2 رو open کنی.
        input #1,temp با این خط ما دیتایی که به com2 میرسه رو تو متغیر temp می ریزیم.
        خیلی نکته ها دیگه می مونه اگه خواستی بگو تا اونجایی که بلد باشم راهنمایی می کنم.
        زکات علم رو باید داد.
        مهندسای عزیز
        من می دونم شما زکات خمس فطریه عیدی و همه و همه رو دادید ولی ما بی سوادا رو لطفا کمک کنید








        به امید ظهور مولامون که صد البته نزدیک است

        دیدگاه


          #5
          پاسخ : پاسخ : آموزش و نمونه برنامه پروتکل rs485

          نوشته اصلی توسط majidrt27
          سلام دوست عزیز
          سوالی که فرمودید اشکال بنده هم بود و در این انجمن مطرح کردم و خوشبختانه هیچ کس کمکی نکرد(اصلا نمی دونم چرا وقتی یک نفر در مورد rs485 سوالی می پرسه جدی گرفته نمی شه و پاسخ خوبی داده نمی شه) و بنده شخصا آستینا رو بالا زدم.
          rs485 معرکه هست البته اگر چند نکته رو رعایت کنی
          این rs485 ما یک ارتباط نیمه دوطرفه ایجاد میکنه که تا حدود 1200 متر میتونه دیتا رو ارسال کنه.
          اگر بخوای 2 میکرو رو از طریق rs485 با هم ارتباط بدی باید از 2 تا rs485 استفاده کنی.
          فرض کن یکی از میکروها mega 8 و یکی دیگه mega128 هست.(برای این مثال دلیل دارم .چون mega 128 دو تا کانال rx tx داره و دستورات فرق میکنه.
          حالا شما باید تصمیم بگیری که ارتباط یک جهته باشه یعنی اینکه یکی فقط ارسال کنه و یکی دیگه فقط دریافت کنه یا اینکه هر دو هم ارسال کنن هم دریافت
          پایه ی 2 و 3 rs485 رو باید به هم وصل کنی و بعد بزنی به یکی از I/o ها ی میکرو (برای انتخاب جهت ارسال) پایه ی 1 باید وصل بشه به rx و پایه ی 4 باید وصل بشه به tx پایه ی 6 هردو rs485 باید به هم و پایه ی 7 هر دو rs485 باید به هم وصل شن (یعنی a<===a و b<====b) خب سخت افزار تمومه
          توی برنامه ی mega 8 این طور می نویسی

          $regfile = "m8def.dat"
          $crystal = 8000000
          $baud = 1200

          Config Portd.7 = Output
          Portd.7 = 1

          Dim Temp As String * 10
          Dim Temp2 As String * 10

          Temp = "1234"
          Temp2 = "85"
          ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''

          Do

          Print Temp

          Wait 1

          Print Temp2
          Wait 1

          Loop

          End
          Portd.7 = 1 (پایه ی 2و3 rs485 برای تعیین جهت ارسال.وقتی 1 باشه یعنی تو مد ارسال هست)
          وقتی یکی تو مد ارسال هست یکی دیگه باید تو مد دریافت باشه) پس توی mega128 داریم
          $regfile = "m128def.dat"
          $crystal = 8000000
          $baud = 1200
          $baud1 = 1200

          Config Portd.7 = Output
          Portd.7 = 0

          Dim Temp As String * 10
          Dim Temp2 As String * 10
          Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
          Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
          Open "com2:" For Binary As #1
          ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''

          Do

          input #1,temp

          Waitms 100

          input #1, Temp2
          Waitms 200

          Loop
          خب پردازیم به توضیح
          Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
          Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
          برای mega128 همین دو خط رو کپی پیست کن. اینجا ما com1 و com2 رو کانفیگ کردیم
          Open "com2:" For Binary As #1 تو این خط ما می آیم com2 رو open می کنیم. اگر از rx0 و tx0 استفاده کردی باید com1 رو open کنی ولی اگر rx1 و tx1 رو استفاده کردی باید com2 رو open کنی.
          input #1,temp با این خط ما دیتایی که به com2 میرسه رو تو متغیر temp می ریزیم.
          خیلی نکته ها دیگه می مونه اگه خواستی بگو تا اونجایی که بلد باشم راهنمایی می کنم.
          زکات علم رو باید داد.
          مهندسای عزیز
          من می دونم شما زکات خمس فطریه عیدی و همه و همه رو دادید ولی ما بی سوادا رو لطفا کمک کنید
          مرسی و ممنون .

          فقط سه تا سوال :
          1- شما زمین های رو یکی کردید ؟؟؟

          2- دومی اینکه در اصل من می خوام یک آرایه 190 کراکتری از نوع string را بفرستم .بهتره جدا جدا (کاراکتر کاراکتر) بفرستم یا یکباره ؟؟؟؟

          3 - تو شماتیک از یک مقاومت حرف زده بین پل های ارتباطی دوتا آیسی ؟؟ این چیه حتما لازم ؟؟؟
          دنیا بر پایه برنامه هایی هست که خدا با زبان برنامه نویسی خودش مینویسد . کامپایل شده آن این جهان و قوانین آن است . start آن تولد است و end آن مرگ . پر از گزینه های شرطی و دستورات حلقه و تکرار ...

          دیدگاه


            #6
            پاسخ : آموزش و نمونه برنامه پروتکل rs485

            توی پروتکل rs485 نیازی نیست که زمین ها یکی بشه فقط کافیه a به a و b به b وصل بشه
            در مورد کارکتر که حتما جدا جدا بفرست زیر 32 بیت
            در مورد مقاومت ها هم باید خدمتت عرض کنم اگه از max485 استفاده می کنی نیازی به مقاومت نیست.در کل این مقاومت برای حذف دیتاهای گم شده در خط باس هست .اگه خواستی تست بگیر.برای مسافت بالا ازش استفاده کنی بهتر هست.من که تا الان حدود 150 تا مدار باهاش ساختم فقط توی 3-4 تای اول بین a و b مقاومت 120 اهمو گذاشتم ولی بقیه رو اصلا مقاومت نزدم
            به امید ظهور مولامون که صد البته نزدیک است

            دیدگاه


              #7
              پاسخ : آموزش و نمونه برنامه پروتکل rs485

              با سلام

              میشه این پروتکل را تو پروتئوس شبیه سازی کرد ؟؟؟

              من با MAX478 که شبیه همون 485 هست نتونستم شبیه سازی کنم .
              دنیا بر پایه برنامه هایی هست که خدا با زبان برنامه نویسی خودش مینویسد . کامپایل شده آن این جهان و قوانین آن است . start آن تولد است و end آن مرگ . پر از گزینه های شرطی و دستورات حلقه و تکرار ...

              دیدگاه


                #8
                پاسخ : آموزش و نمونه برنامه پروتکل rs485

                آره خیلی راحت هست .من واست شبیه سازی می کنم.بگو چی می خوای؟
                به امید ظهور مولامون که صد البته نزدیک است

                دیدگاه


                  #9
                  پاسخ : آموزش و نمونه برنامه پروتکل rs485

                  نوشته اصلی توسط majidrt27
                  آره خیلی راحت هست .من واست شبیه سازی می کنم.بگو چی می خوای؟
                  مرسی و ممنون

                  اگه دوتا دیگه مثل شما تو الکترونیک بودن الان دیگه ما تازه کارا غمی نداشتیم .

                  من فقط می خخوام دوتا MEGA32 به هم وصل شن . این یکی بفرسته مثلا ACTION=3

                  گیرنده هم بگیره و بگه اگه ACTION=3 بود مثلا SET PORTD,.7
                  من شبیه سازی کردن . تو گیرنده این ارورا میده

                  RX FRAME ERROR
                  دنیا بر پایه برنامه هایی هست که خدا با زبان برنامه نویسی خودش مینویسد . کامپایل شده آن این جهان و قوانین آن است . start آن تولد است و end آن مرگ . پر از گزینه های شرطی و دستورات حلقه و تکرار ...

                  دیدگاه


                    #10
                    پاسخ : آموزش و نمونه برنامه پروتکل rs485

                    سلام. ممنون از موارد مفید تجربی که ذکر میکنید . منم دارم با RS485 کار میکنم. منتها با یک میکرویی که حداکثر ولتاژ قابل قبول اون 3.3 ولت هستش . اگه ولتاژ پایه Tx مربوط به rs485 مستقیم بهش وصل بشه ، احتمال داره بسوزه یا سطح سیگنال رو درست تشخیص نده . خود آی سی RS485 هم که نمیتونه با ولتاژ 3.3 ولت درست کار کنه (طبق گفته دیتاشیت ) من گفتم بیام پایه Tx رو که به میکرو میره رو با یک تقسیم مقاومتی به سطح 0 و 3.3 ولت تبدیل کنم . یا با یه ترانزیستور که بیسش با یه مقاومت 10 کیلو به پایه Tx از آی سی rs485 وصل شده و کلکتور اون به 3.3 ولت وصل شده و امیتر اون به پایه Rx میکرو میره ، درست کنم. به نظر شما این روش خوبیه ؟ توی سرعت های پایین یا بالا مشکل نداره ؟
                    دیدم پایا یک آی سی داره به نام MAX3490 که با 3.3 ولت هم کار میکنه ولی گرونه . میخواستم ببینم روشی که گفتم مشکلی نداره ؟

                    ممنون میشم راهنمایی بفرمایید
                    "در عجبم از مردمی که خود زیر شلاق ظلم و ستم زندگی می کنند و بر حسینی می گریند که آزادنه زیست" شریعتی
                    در جهان روشنایی هایی وجوددارد که در عمیق ترین ظلمات نهانند.

                    دیدگاه


                      #11
                      پاسخ : آموزش و نمونه برنامه پروتکل rs485

                      شما لطف دارید . وظیفه ی منه اگر بتونم کمکی کرده باشم.ولی از مهندسای سایت انتظار کمک بیشتر میشه
                      این هم فایل شبیه سازی شده به همراه برنامه ی مستر و اسلیو در بسکام
                      http://www.4shared.com/rar/CSS0wmUR/Majidrt27-rs485test.html?
                      فقط اگر کسی بلده بگه چه طور میشه یه جا در همین سایت upload کرد تا لینک مستقیم بشه
                      فقط یک نکته
                      اولین دیتایی که فرستاده میشه عادی هست ولی از دومی به بعد بهدیتای شما یک کارکتر به نام کارکتر نویز اضافه میشه که در lcd slave کاملا مشخص هست
                      بعضی وقت ها به صورت space هست و بعضی وقت ها به صورت ... .
                      به امید ظهور مولامون که صد البته نزدیک است

                      دیدگاه


                        #12
                        پاسخ : آموزش و نمونه برنامه پروتکل rs485

                        نوشته اصلی توسط majidrt27
                        شما لطف دارید . وظیفه ی منه اگر بتونم کمکی کرده باشم.ولی از مهندسای سایت انتظار کمک بیشتر میشه
                        این هم فایل شبیه سازی شده به همراه برنامه ی مستر و اسلیو در بسکام
                        http://www.4shared.com/rar/CSS0wmUR/Majidrt27-rs485test.html?
                        فقط اگر کسی بلده بگه چه طور میشه یه جا در همین سایت upload کرد تا لینک مستقیم بشه
                        فقط یک نکته
                        اولین دیتایی که فرستاده میشه عادی هست ولی از دومی به بعد بهدیتای شما یک کارکتر به نام کارکتر نویز اضافه میشه که در lcd slave کاملا مشخص هست
                        بعضی وقت ها به صورت space هست و بعضی وقت ها به صورت ... .
                        واسه پلود تو این سایت حتما باید مدیر باشید . من واسه پلودام به صورت مستقیم تو پرشین گیگ PERSIANGIG.COM عضو شدم .
                        دنیا بر پایه برنامه هایی هست که خدا با زبان برنامه نویسی خودش مینویسد . کامپایل شده آن این جهان و قوانین آن است . start آن تولد است و end آن مرگ . پر از گزینه های شرطی و دستورات حلقه و تکرار ...

                        دیدگاه


                          #13
                          پاسخ : آموزش و نمونه برنامه پروتکل rs485

                          این لینک جدید
                          http://upload.rozblog.com/?uploadmbID=1345833987&srv=www&filename=Ma jidrt27-rs485test.rar
                          به امید ظهور مولامون که صد البته نزدیک است

                          دیدگاه


                            #14
                            پاسخ : آموزش و نمونه برنامه پروتکل rs485

                            نوشته اصلی توسط tictactoe
                            سلام. ممنون از موارد مفید تجربی که ذکر میکنید . منم دارم با RS485 کار میکنم. منتها با یک میکرویی که حداکثر ولتاژ قابل قبول اون 3.3 ولت هستش . اگه ولتاژ پایه Tx مربوط به rs485 مستقیم بهش وصل بشه ، احتمال داره بسوزه یا سطح سیگنال رو درست تشخیص نده . خود آی سی RS485 هم که نمیتونه با ولتاژ 3.3 ولت درست کار کنه (طبق گفته دیتاشیت ) من گفتم بیام پایه Tx رو که به میکرو میره رو با یک تقسیم مقاومتی به سطح 0 و 3.3 ولت تبدیل کنم . یا با یه ترانزیستور که بیسش با یه مقاومت 10 کیلو به پایه Tx از آی سی rs485 وصل شده و کلکتور اون به 3.3 ولت وصل شده و امیتر اون به پایه Rx میکرو میره ، درست کنم. به نظر شما این روش خوبیه ؟ توی سرعت های پایین یا بالا مشکل نداره ؟
                            دیدم پایا یک آی سی داره به نام MAX3490 که با 3.3 ولت هم کار میکنه ولی گرونه . میخواستم ببینم روشی که گفتم مشکلی نداره ؟

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

                            دیدگاه


                              #15
                              پاسخ : آموزش و نمونه برنامه پروتکل rs485

                              شاید دارید از xmega استفاده می کنید.من فکر کنم مشکلی نباشه اگه مستقیم وصل کنید به هر حال چنین چیزایی براش تعریف شده دیگه حتما.ولی خودم باهاشون کار نکردم
                              به امید ظهور مولامون که صد البته نزدیک است

                              دیدگاه

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