اطلاعیه

Collapse
No announcement yet.

واسط rs485

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

    واسط rs485

    سلام دوستان میخواستم از دوستان راجب این واسط بپرسم

    در حد کلی میدونم واسط سخت افزاری هست به صورت دیفرانسیلی کار میکنه و تا هزار متر میتونه بدون نویز پذیری کار کنه

    این واسط به صورت مثلا 2 تا آیسی میتونه چه نوع پروتکل های سریالی رو دیفرانسیلی کنه ؟ مثلا به این صورت میشه استفاده کرد 2 تا آیسی مربوطه رو در خروجی و ورودی های ارتباط سریالمون قرار بدیم و سبب کاهش نویز پذیری و افزایش برد سیم واسطشون بشه ؟


    تاحالا اصلا باهاش کار نکردم پروژه ای لینکی مطلب پیاده سازی شده با avr و rs485 دارین لطف کنید


    تشکر
    اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است

    #2
    پاسخ : واسط rs485

    نوشته اصلی توسط mehran901
    این واسط به صورت مثلا 2 تا آیسی میتونه چه نوع پروتکل های سریالی رو دیفرانسیلی کنه ؟
    این آی سی برای استفاده در پروتکل های سریال از نوع Uart و Usart بکار میره

    نوشته اصلی توسط mehran901
    مثلا به این صورت میشه استفاده کرد 2 تا آیسی مربوطه رو در خروجی و ورودی های ارتباط سریالمون قرار بدیم و سبب کاهش نویز پذیری و افزایش برد سیم واسطشون بشه ؟
    دقیقا به همین صورت استفاده میکنند به این صورت که انتهای هر باس یه آی سی 485 میزارن و میشه چندین NODE دیگه هم بهش متصل کرد که سر خرود هر node هم یه آی سی قرار میگیره به صورت عکس زیر

    برای نمونه کد هم می توند از مثال های کار با usart در avr استفاده کنید با در نظ گرفتن این نکته که قبل از ارسال یا دریافت دیتا پین مربوطه رو در آی سی صفر و یک کنید

    دیدگاه


      #3
      پاسخ : واسط rs485

      نوشته اصلی توسط mohammadfa91

      برای نمونه کد هم می توند از مثال های کار با usart در avr استفاده کنید با در نظ گرفتن این نکته که قبل از ارسال یا دریافت دیتا پین مربوطه رو در آی سی صفر و یک کنید
      ممنون راجب قسمت آخر این جملتون بیشتر توضیح میدین ؟

      آیسی مربوطش max485 هست ؟ مثالی ازش دارید ؟
      تشکر

      اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است

      دیدگاه


        #4
        پاسخ : واسط rs485

        این آی سی یک طرفه هستش. یعنی یا فرستنده هستش یا گیرنده واسه همین دو تا پایه داره که مشخص می کنه توی کدوم مد باشه. از اون دو تا پایه کنترلی یکی با صفر بودن فعاله و یکی با یک بودن. تو عمل هر دو تا رو به یک پایه میکرو وصل می کنند و با صفر و یک کردن اون پایه میکرو، مشخص میشه آی سی فرستنده هستش یا گیرنده.
        پروتکل RS485 هستش و آی سی هاش بسته به شرکت سازنده متفاوته. دو تا از پر استفاده ها : MAX485 و ADM485 .
        طرز استفاده هم سخت نیست. به صورت سخت افزاری دو تا آی سی به سمت فرستنده و گیرنده متصل میشه که پیکربندیش معلومه. به صورت نرم افزاری هم همون USART هستش و هیچ فرقی نداره. فقط کنترل یک پایه هم به برنامه اضافه میشه که در زمان مناسب باید صفر و یک بشه.
        ---------
        .
        .
        ...........

        دیدگاه


          #5
          پاسخ : واسط rs485

          نوشته اصلی توسط ajapyy
          این آی سی یک طرفه هستش. یعنی یا فرستنده هستش یا گیرنده واسه همین دو تا پایه داره که مشخص می کنه توی کدوم مد باشه. از اون دو تا پایه کنترلی یکی با صفر بودن فعاله و یکی با یک بودن. تو عمل هر دو تا رو به یک پایه میکرو وصل می کنند و با صفر و یک کردن اون پایه میکرو، مشخص میشه آی سی فرستنده هستش یا گیرنده.
          پروتکل RS485 هستش و آی سی هاش بسته به شرکت سازنده متفاوته. دو تا از پر استفاده ها : MAX485 و ADM485 .
          طرز استفاده هم سخت نیست. به صورت سخت افزاری دو تا آی سی به سمت فرستنده و گیرنده متصل میشه که پیکربندیش معلومه. به صورت نرم افزاری هم همون USART هستش و هیچ فرقی نداره. فقط کنترل یک پایه هم به برنامه اضافه میشه که در زمان مناسب باید صفر و یک بشه.
          ممنون
          طبق شماتیک max485 در زیر

          DE و DI رو توضیح میدین ؟ و خلاصه ای از اتصالات کاربردی رو بفرمایید؟

          تشکر
          اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است

          دیدگاه


            #6
            پاسخ : واسط rs485

            DI رو به پایه TX میکرو و RO رو به پایه RX میکرو وصل کنید RE و DE رو هم به هم وصل کنید و به میکرو بدین و موقع دریافت صفر و موقع ارسال یک کنید.

            دیدگاه


              #7
              پاسخ : واسط rs485

              شماتیک اتصالات توی پروتئوس با max487 رو قرار دادم. با max485 یک تفاوت جزئی دارند که توی دیتاشیت هست. فقط چون پروتئوس 485 رو نداره این رو گذاشتم.
              تایع ارسال و دریافت اطلاعات رو هم قرار میدم.
              نمیدونم کلا برنامه ارتیاط سریال با usart رو بلد هستید یا نه. اول باید رجیسترهاش رو مقدار دهی کنید و پایه ای که DE , RE بهش متصل هستند رو خروجی تعریف کنید :
              کد:
              // USART initialization
              // Communication Parameters: 8 Data, 1 Stop, No Parity
              // USART Receiver: On
              // USART Transmitter: On
              // USART Mode: Asynchronous
              // USART Baud Rate: 9600
              UCSRA=0x00;
              UCSRC=0x06;
              UBRRH=0x00;
              UBRRL=0x33;
              
              DDRD.2=1;
              تابع ارسال و دریافت اطلاعات :
              کد:
              void Send_Packet(void)
              {
                UCSRB=0x48; // TXCIE & TXEN == 1
                PORTD.2 =1; // Transfer Enable
                delay_ms(100);
                itoa(Packet_Data,Packet); 
                delay_ms(100);
                puts(Packet); 
              }
              
              void Get_Sample(void)
              {
                UCSRB=0x90; // RXCIE & RXEN == 1
                PORTD.2 =0; // Reciever Enable
                delay_ms(100);
              
                scanf("%s",&str);  
              }
              میتونید وقفه های ارسال و دریافت اطلاعات رو فعال نکنید که مقدار رجیستر UCSRB هم تغییر میکنه. ولی توصیه میکنم استفاده کنید. چون در غیر این صورت خیلی با مشکلات همزمانی مواجه میشید.
              اگر با کدویژن برنامه مینویسید و همچنان ابهام دارید ، بفرمایید تا کد کامل رو قرار بدم.

              دیدگاه

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