اطلاعیه

Collapse
No announcement yet.

ماژول SRF485

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

    ماژول SRF485


    مسافت یاب ماوراء صوت SRF485
    مشخصات تکنیکی


    مشخصات
    ولتاژ – 12 vdc ( 8 – 14 ولت DC )
    جریان – 10 mA (آ‌ میلی آمپر )
    مسافت – 30cm - 5 m ( متر )
    جبران دما - -30 تا +50 درجه سانتیگراد
    اندازه – 38 میلیمتر x 38 میلیمتر ( 1.5 اینچ x 1.5 اینچ )
    پایه نصب – 30.5 میلیمتر x 30.5 میلیمتر ( 1.2 اینچ x 1.2 اینچ )
    مبدل – 16 میلیمتر dia نصب شده در مرکز

    مرور اجمالی
    SRF485 یک مسافت یاب ما فوق صوت ِ تک مبدل می باشد که مبتنی بر طراحی اصلی SRF02 ما می باشد. SRF485 از استاندارد RS485 برای مخابره کردن تا 127 مدول روی هر باس RS485 استفاده می کند. SRF485 دارای یک رگولاتور توان 5 ولتی می باشد که می تواند از 8 ولت dc تا 14 ولت dc تغذیه شود. هر دو سیگنال های توان و RS485 به وسیله ی یک کانکتور IDC با 10 پین به مدول تغدیه می شود، که امکان سیم بندی تعداد زیادی مدول را به سادگی فراهم می نماید. برد SRF485 از 30 سانتی متر تا 5 متر می باشد.
    مخابره ( ارتباطات ) RS485
    مدول های SRF485 با استفاده از باس RS485 متصل شده اند. می توان تا 128 مبدل را به یک باس متصل نمود، لذا می توان تا 127 مدول SRF485 به اضافه یک کنترلر را استفاده نمود. دیتای پیوسته بر روی 38400 باود ( علامت در ثانیه ) 1 استارت،آ‌ 2 استاپ و هیچ بیت توازن تنظیم شده است. کنترل SRF485 با ارسال فریم های دیتا به مدول و گوش دادن به پاسخ انجام می شود. هر SRF485 دارای یک ادری 24 بیتی منحصر به فرد می باشد که ما در طول فرایند تولید آن را برنامه ریزی می نماییم و بر روی مدول نوشته شده است. فریم دیتا که شما به SRF485 ارسال می کنید به این صورت است:
    توقف ( انفصال) دستور ادرس H ادرس M ادرس L دیتا چک مجموع

    توقف ( انفصال ) – به عنوان یک low پیوسته با تناوب بیش از 22 بیت تعریف می شود، که به دنبال آن یک high با تناوب 2 بیت می آید. هر بیت 26 میکرو ثانیه و با 38400 باود می باشد، لذا 22* 26uS= 572 uS ، گر طولانی تر باشد مشکلی نیست.
    دستور ( فرمان )- یکی از چندین فرمانی است که SRF485 به آن پاسخ می دهد. برای جزئیات بیشتر قسمت پایین را ملاحظه کنید.
    آدرس H، M، L – آدرس 24 بیتی مدولی است که شما می خواهید با آن ارتباط بر قرار نمایید.
    دیتا- همان دیتایی است که می خواهید به مدول بفرستید، برابر با صفر در زمانی ( 0X00 ) که در دستور چیزی نیامده باشد.
    چک مجموع – متمم 1 برای مجموع تمامی بیت های قبل ( بدون احتساب بیت وقفه یا انفصال ).

    مدول با استفاده از بیت های گوناگونی پاسخ خواهد داد، که از 0 تا 4 متغیر بوده و بستگی به دستور دارد، اما فریم انتقال همواره یکسان است، یک انفصال همراه با 6 بیت. برای دریافت جزئیات بیشتر بخش دستور را در قسمت زیر ملاحظه کنید.
    اتصالات
    اتصالات به SRF485 در شکل زیر نشان داده شده است. 4 پین برای منبع تغذیه 12 ولت DC وجود دارد، این پین ها بر روی PCB به یکدیگر متصل شده اند. دو پین در وسط عبارت هستند از سیگنال های RS485 + نزدیک ترین لبه PCB و – در داخل قرار گرفته اند. 4 پین آخر همان اتصال زمین 0 ولت می باشد که بر روی PCB به یکدیگر متصل شده اند. یک کانکتور با 4 پین نیز وجوئ ئارد که برای متصل کردن LED ها طراحی شده است. قطب مثبت یا آنود به پین Led(x) متصل شده و کاتود یا قطب منفی به زمین وصل می شود. یک مقاومت 390 اهمی برای هر Led نیز روی PCB قرار دارد.



    دستورات
    برای ارسال دستورات به SRF485 ،آ‌ شما باید یک فریم دیتا به صورتی که که در بالا توصیف شد، ارسال کنید. سه دستور برای آغاز یک مسافت یابی وجود دارد ( 80 تا 82 ( ، برای اعلام نتیجه بر حسب اینچ، سانتی متر یا میکرو ثانیه. این سه دستور نتیجه را به کنترلر شما باز نمی گردانند. شما باشد 70 میلی ثانیه صبر کرده و سپس از دستور 94 برای دریافت نتیجه ی مسافت یابی استفاده کنید. مجموعه دیکری از سه دستور ( 83 تا 85 ) نیز وجود دارند که همین کار را انجام می دهند، همچنین نتیجه جبران دما را در مسافت یابی به کنترلر شما ارسال می نماید. در مجموع،آ‌ این شش دستور ( 80 تا 85 ) به عنوان " حقیقی " نامیده می شوند زیرا یک مسافت یابی کامل را ارائه می دهند. مجموعه ی شش تایی دیگری از دستورات نیز وحود دارد ( 86 تا 91 ) که به عنوان "آ‌ جعلی " ( غیر واقعی ) نامیده می شوند. این دستورات همانند دستورات " واقعی " هستند به جز این که 8 سیکل پیام را ارسال نمی کنند. این دستورات زمانی مورد استفاده قرار می گیرند که پیام توسط یک سونار ِآ‌ دیگر منتقل ( مخابره ) شده است. این به شما بستگر دارد که دستورات را در دو سونار سنکرون نمایید. یک دستور ( 92 ) برای انتقال یا مخابره یک پیام بدون انجام مسافت یابی وجود دارد.
    دستور 93 برای دریافت نسخه ی SRF485 مورد استفاده قرار می گیرد. این دستور 4 بایت را باز می گرداند:
    بیت 1 عبارتست از نوع مدول ، 0x01 برای SRF485.
    بیت 2 نسخه ی سخت افزار می باشد، 0x03 برای PCB
    بیت 3 عبارتست از نسخه ی نرم افزار، در این جا 10 می باشد.
    بیت 4 شماره گروه مدول می باشد، این در محدوده ی 0x00 تا 0x7F ( 0-127 ) می باشد.
    دستور 94 دو بیت را از آخرین مسافت یابی باز می گرداند ( بیت high در ابتدا ). آن ها را در کنار هم بگذارید تا یک نتیجه ی 16 بیتی حاصل شود.
    دستور بیتهای بازگردانده شده عمل
    اعشار hex
    80 0x50 0 حالت مسافت یابی واقعی – نتیجه بر حسب اینچ
    حالت مسافت یابی واقعی نتیجه بر حسب سانتی متر
    حالت مسافت یابی واقعی – نتیجه بر حسب میکر ثانیه
    حالت مسافت یابی واقعی- نتیجه بر حسب اینچ، به محض کامل شدن مسافت یابی مسافت TX به طور اتوماتیک به کنترلر باز می گردد.
    حالت مسافت یابی واقعی – نتیجه بر حسب سانتی متر، به محض کامل شدن مسافت یابی مسافت TX به طور اتوماتیک به کنترلر باز می گردد
    حالت مسافت یابی واقعی – نتیجه بر حسب میکرو ثانیه به محض کامل شدن مسافت یابی مسافت TX به طور اتوماتیک به کنترلر باز می گردد
    86 0x56 0 حالت مسافت یابی غیر واقعی – نتیجه بر حسب اینچ
    حالت مسافت یابی غیر واقعی – نتیجه بر حسب سانتی متر
    حالت مسافت یابی غیر واقعی – نتیجه بر حسب میکرو ثانیه
    حالت مسافت یابی غیر واقعی – نتیجه بر حسب اینچ، به محض کامل شدن مسافت یابی مسافت TX به طور اتوماتیک به کنترلر باز می گردد
    حالت مسافت یابی غیر واقعی – نتیجه بر حسب سانتی متر به محض کامل شدن مسافت یابی مسافت TX به طور اتوماتیک به کنترلر باز می گردد
    حالت مسافت یابی غیر واقعی – نتیجه بر حسب میکرو ثانیه به محض کامل شدن مسافت یابی مسافت TX به طور اتوماتیک به کنترلر باز می گردد
    92
    93
    94 0x5C
    Ox5D
    0x5E 0
    4
    2 مخابره ی پیام 8 سیکل 40 کیلوهرتزی
    دریافت نسخه – ارسال 4 بایت به کنترلر
    دریافت مسافت غیر جبرانی، بازگشت دو بیت از آخرین مسافت یابی
    100

    101

    102 0x64

    0x65

    0x66
    1

    0

    0 یا 1
    ست Led – بیت 0 کنترل کننده Led 1 – بیت ست شود و Led روشن می شود. بیت 1 کنترل کننده Led2 .بیت 2 کنترل کننده Led3.
    ست حالت جستجو – مورد استفاده برای جستجوی SRF485 روی باس
    کم تر از- مورد استفاده برای جستجوی SRF485 روی باس

    ست گروه- تنظیم شماره گروهی که این سونار متعلق به آن است ( 0 تا 127 ).
    دریافت دما – بازگرداندن دما بر حسب درجه سانتیگراد به شکل عبارت 16 بیتی ، بیت high در ابتدا
    دریافت محدوده جبرانی دما، بازگردانده دو بیت از آخرین مسافت یابی ( بیت high در ابتدا ).



    در زیر مثالی از ارسال یک دستور مسافت یابی را به یک SRF485 مشاهده می کنید که در آدرس 0189AB مشاهده می کنید.
    وقفه دستور آدرس H آدرس M آدرس L دیتا چک مجموع
    600 میکرو ثانیه LOW
    50 میکرو ثانیه High 0x51 0x01 0x89 0xAB 0x00 0x79

    دستور SET LEDS یک بیت را باز خواهد گرداند 0x01، که به عنوان تایید می باشد.
    آدرس دهی
    هر SRF485 دارای یک آدرس 24 بیتی منحصر به فرد می باشد که در زمان تولید در آن برنامه نویسی شده است. این ادرس بر روی مدول نوشته شده است و همچنین با انجام یک جستجو یافته شود، قسمت زیر را مشاهده کنید و تعدادی آدرس وجود دارد که دستورات انتخاب شده به آن ها پاسخ می دهند. این آدرس ها عبارتند از:
    آدرس منحصر به فرد، SRF485 اغلب دستورات را به آدرس خودش پاسخ می دهد. آدرس 0x000000، زمانی استفاده می شود که شما مایل هستند تا تمام SRF485 به یک دستور پاسخ دهد، مانند آغاز مسافت یابی، یا تنظیم حالت جستجو آدرس 0x000001 زمانی استفاده می شود که می خواهد تمام SRF485های متعلق به یک گروه به یک دستور پاسخ دهند، مانند آغاز مسافت یابی، هر آدرس، تنها دستور کمتر از به این آدرس پاسخ می دهد، و تنها در صورتی که آدرس داخلی آن کم تر از چیزی باشد که شما ارسال کرده اید.

    گروه ها
    در صورتی که به مشخصه ی گروه نیازی ندارید می توانید از مشخصه ی گروه صرف نظر کنید.
    هر سونار SRF485 می تواند متعلق به یک گروه باشد. هدف این است که یک محدوده انتخابی از SRF485 ها همگی در یک زمان واحد شروع به مسافت یابی نمایند. این مشابه با ارسال دستور مسافت یابی به آدرس صفر می باشد، که موحب می شود تا تمام SRF485 ها شروع به مسافت یابی نمایند. یک مساله ی بالقوه در مورد این روش آن است که اگر SRF485 بیش از اندازه به یکدیگر نزدیک باشند، ممکن است با یکدیگر تداخل نمایند. با آرایش دادند SRF485 ها به گونه ای که هر یک در یک گروه متفاوت قرار گیردند، شما می توانید به عنوان مثال، گروه های 1و 3 و 5 و 7 و غیره را داشته باشید که در آن واحد مسافت یابی می نمایند و در مرحله ی بعدی واحد های 2 و 4 و 6 و 8 مسافت یابی را انجام می دهند.
    حتی اگر SRF485 های شما آن قدر نزدیک نیستند که تداخل داشته باشند، گروه بندی این مزیت را دارد که بتوانید مسافت یابی را در یک گروه انجام دهید، در حالی که مسافت ها را از گروه قبلی دریافت می کنید، که کار برد موثر تری را از پهنای باند باس ها تضمین خواهد نمود. برای تنظیم شماره ی گروه، دستور SET _ GROUP ( 0x67 ) را به آدرس واقعی SRF485 بفرستید. شماره ی گروه در EEPROM ذخیره می شود، و لازم است تنها یک بار فرستاده شود. در این مثال شماره ی گروه سونار را در آدرس 0x0189AB به 0x01 تنظیم می نماییم.
    وقفه دستور آدرس H آدرس M آدرس L دیتا چک مجموع
    600 میکرو ثانیه LOW
    50 میکرو ثانیه High 0x67 0x01 0x89 0xAB 0x01 0x62

    برای راه اندازی تمام SRF485 ها در گروه 0x01 و شروع مسافت یابی، دستور انتخابی ِ مسافت یابی خود را به آدرس 0x000001 بفرستید همراه با شماره ی گروه در بیت دیتا،آ‌ به این صورت :
    وقفه دستور آدرس H آدرس M آدرس L دیتا چک مجموع
    600 میکرو ثانیه LOW
    50 میکرو ثانیه High 0x51 0x00 0x00 0x01 0x01 0xAC

    پیش فرض شماره گروه عبارتست از 0x00، لذا توصیه می نمایم که از استفاده از آن در عملیات خود اجتناب نمایید.
    جستجوی باس RS485 برای سونار
    دستور SET_ SEARCH ( 0x65 ) برای قرر دارد تمامی SRF485 ها روی حالت جستجو می باشد، و برای انجام این کار باید در آدرس صفر مورد استفاده قرار گیرد ( 0x000000 ).تنها SRF485 هایی که در حالت جستجو هستند به دستور LESS_ THAN ( کمتر از ) پاسخ می دهند. در ادامه تمامی SRF485 ها را در حالت جستجو قرار می دهیم.
    وقفه دستور آدرس H آدرس M آدرس L دیتا چک مجموع
    600 میکرو ثانیه LOW
    50 میکرو ثانیه High 0x65 0x00 0x00 0x00 0x00 0x9A

    دستور LESS THAN برای جستجو و یافتن آدرس های تمامی SRF485 های موجود روی باس است. هر SRF485 که آدرس داخلی منحصر به فرد ِ آن کمتر از آدرس ارائه شده در دستور باشد، با ارسال یک تک بیت پاسخ خواهد داد ( 0x00 ). آن ها این کار را در آن واحد انجام می دهند،آ‌ لذا شما تنها یک بیت دریافت خواهید نمود. آن SRF485 هایی که آدرس آن ها مساوی با بزرگ تر از آدرس ارائه شده در دستور باشد، پاسخ نخواهد داد و برای مثال اگر این فریم دستوری را ارسال کنید :
    وقفه دستور آدرس H آدرس M آدرس L دیتا چک مجموع
    600 میکرو ثانیه LOW
    50 میکرو ثانیه High 0x66 0x80 0x00 0x00 0x00 0x19

    در این صورت تمامی SRF485 هایی که آدرس داخلی آن ها در محدوده ی 0x000000 تا 0x7FFFFF می باشد، بیت پاسخ را ارسال خواهند نمود. ارزش بیت پاسخ آ‌0x00 می باشد، اما این خارج از موضوع کنونی می باشد. چیزی که اهمیت دارد وجود داشتن و یا عدم پاسخ می باشد. پاسخ، در صورتی که وجود داشته باشد، فوری و بلا فاصله خواهد بود لذا اگر پس از 2 میلی ثانیه چیزی دریافت نکردید، پس از این مدت زمان نیز دریافت نخواهید کرد. اطمینان یابید که در روال دریافت وقفه ایجاد نمایید.
    پس چطور از این روش برای یافتن تمامی SRF485 ها روی باس استفاده می کنید؟
    ابتدا، دستور SET_SEARCH باید به آدرس oxoooooo ارسال شود لذا تمامی SRF485 ها در حالت جستجو قرار می گیرند.
    در این مرحله است که ادامه کمی مشکل تر می شود:
    دستور LESS_THAN را با آدرس 0x800000 ارسال کنید. اگر پاسخی دریافت کردید در این صورت یک یا چند SRF485 دارید که آدرس آن ها بین 0x000000 و 0x7FFFFF می باشد. اکنون می توانید بیشتر باریک شوید و دستور LESS_THAN را با آدرس 0x400000 ارسال کنید. اگر پاسخی دریافت کردید در این صورت می دانید که یک یا چند SRF485 وجود دارند که بین آدرس های 0x000000 و 0x3FFFFF می باشند. اگر پاسخی دریافت نکردید در این صورت آدرس باید بین 0x400000 و 0x7FFFFF باشد. اگر پاسخی دریافت کردید، مجددا این کار را انجام دهید و این بار آدرس 0x200000 را بدهید. در غیر این صورت آدرس 0x600000 را بدهید. این مشابه با روشی است که یک مبدل آنالوگ به دیجیتال کار می کند، با تقریب های متوالی. با استفاده از این تکنیک هر آدرسی می تواند در 24 مرحله پیدا شود.SRF485 یافت شده باید SRF485 با پایین ترین آدرس باشد. زمانی که یافت شد، باید نسخه ی مربوط به آن SRF485 را با استفاده از دستور GET_VER بخوانید. این کار موجب ریست حالت جستجو برای آن SRF485 می شود، لذا این SRF485 دیگر در فرایند جستجو شرکت نخواهد کرد.
    اکنون شما می توانید فرایند را تکرار کنید تا SRF485 بعدی را بیابید و الی آخر...
    بیان کردن ِ این مطلب از انجام دادن آن مشکل تر است، کد مذکور بسیار ساده می باشد. در این جا به روال اصلی برای انجام این کار اشاره می شود که به زبان إ¾C نوشته شده است. در این جا فرض می شود که دستور SET_SEARCH از پیش فرستاده شده است.




    long Find_SRF485(void)
    {
    long Walk = 0x800000; // used as a bit walker to calc next address to search
    long Addr = 0x800000; // start by looking for 0-7fffff range
    char x;

    do {
    SendFrame(LESS_THAN, Addr, 0); // All SRF485's whose address is less than Addr, will respond
    x = serin485(); // this times out after 1mS and returns 0xFF
    if(x==0) Addr ^= Walk; // Must be greater or equal to Walk, so merge
    Walk >>= 1; // shift the bit walker
    Addr |= Walk; // and generate next test address
    }
    while(Walk); // repeat until the full address of SRF485 is found

    SendFrame(GET_VER, Addr, 0); // Get the version of this SRF485 to reset its search mode.
    serin485(); // module id - just get and discard these.
    serin485(); // hardware version
    serin485(); // software version
    serin485(); // group number
    return Addr; // Return the SRF485's address, it will be 0xFFFFFF if none found
    }

    همچنین مثالی داریم برای PC که به زبان VC++V6 نوشته شده است. برای استفاده از آن به مدول USB-RS485 نیاز خواهید داشت.

    #2
    پاسخ : ماژول SRF485

    سلام دوستان
    نظرتون راجع به این ماژول چیه؟ ایا میتونم تو محیط صنعتی که گرد و خاکه استفاده کنم؟

    دیدگاه

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