زیگ‌ بی یا ZigBee چیست؟ آشنایی با معماری، شبکه و دستورات ماژول XBee

به طور کلی بسیاری از افراد دو اصطلاح XBee و ZigBee را اشتباه می گیرند، بیشتر اوقات از آنها به صورت متناوب استفاده می کنند. اما در واقع اینگونه نیست؛ ZigBee پروتکل استاندارد برای شبکه های بی سیم است. در حالی که XBee محصولی است که از پروتکل های مختلف ارتباط بی سیم(ماژول ZigBee و WiFi) پشتیبانی می کند. در این مقاله از میکرو دیزاینر الکترونیک ما به طور عمده روی ماژول Xbee/Xbee-PRO ZB RF متشکل از سیستم عامل ZigBee متمرکز هستیم.

زیگ‌ بی یا ZigBee چیست؟

به یک ماشین حساب در رایانه فکر کنید، که در آن محاسبات پیچیده با رابط کاربر پسند انجام می‌شود. اگر فقط سخت‌افزار در دسترس باشد، این کار بسیار دشوار و خسته کننده خواهد بود. بنابراین، در بالاترین سطح، دسترسی به نرم افزار فرآیند حل مسئله را آسان تر می‌کند. این فرایند توسط سخت‌افزار فعلی به لایه‌های نرم‌افزار تقسیم می‌شود که توسط سطوح بالاتر فراخوانی شده است.

ما حتی در زندگی روزمره از مفهوم لایه‌ها استفاده می کنیم. به عنوان مثال، ارسال پیک یا ارسال نامه به خانه دوستتان، ارسال ایمیل از یک نقطه از جهان به نقطه دیگر. به همین ترتیب، بیشتر پروتکل های مدرن شبکه حتی از مفهومی از لایه ها استفاده می‌کنند تا مؤلفه‌های مختلف نرم افزار را به ماژول های مستقل تقسیم کنند که می توانند به روش های مختلفی اسمبل شوند. ممکن است فرد برای درک عمیق تر از معماری Xbee مسیر سختی در پیش داشته باشد، اما ما کارها را برای شما بسیار ساده خواهیم کرد.

بیایید با برخی اصطلاحات اساسی مانند مسیریابی (روتینگ)، عدم تداخل (کالیژن) و تأیید شروع کنیم. برای درک اصطلاح اول فقط به کلمه “مسیر” توجه کنید که به معنای ردیابی یا شناسایی مسیر است. در شبکه‌، مسیریابی به معنای فراهم آوردن مسیری برای داده ها از گره منبع تا گره مقصد است.

هنگامی که دو گره در شبکه سعی در انتقال همزمان دارند، وضعیتی به نام تداخل ایجاد می‌کنند. بنابراین، به طور کلی، تکنیک Carrier Sense Multiple Access) CSMA/CA) برای جلوگیری از تداخل است، شما می توانید با استفاده از این لینک اطلاعات بیشتری در مورد CSMA کسب کنید. اساساً در آن گره‌ها ارتباط به همان روشی است که انسان‌ها با هم گفتگو می‌کنند. بررسی مختصری قبل از ایجاد ارتباط انجام می‌شود تا هیچ کس در هنگام شروع ارسال اطلاعات در حال صحبت کردن نباشد.

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

معماری ZigBee

چهار لایه اصلی موجود، در استک ZigBee وجود دارد، لایه فیزیکی، لایه دسترسی به رسانه، لایه شبکه و لایه برنامه. اگر در مورد شبکه‌های کامپیوتری اطلاعاتی ندارید اینجا را بخونید.

معماری ZigBee

  • لایه برنامه: آدرس اجزای مختلفی از جمله پروفایل‌ها، کلاستر‌ها و نقاط نهایی را تعریف می‌کند. می توانید لایه های استک ZigBee را در شکل بالا مشاهده کنید.
  • لایه شبکه: قابلیت مسیریابی را ایجاد می کند که به بسته های داده RF اجازه می دهد تا چندین دیوایس (چندین «هاپ») را طی کنند تا داده ها را از مبدأ به مقصد دیگر (peer to peer هدایت کنند.
  • لایه MAC: انتقال داده RF را بین دیوایسهای مجاور مدیریت می کند (نقطه به نقطه). MAC شامل خدماتی مانند آزمایش مجدد انتقال و مدیریت تایید و تکنیک های جلوگیری از عدم تداخل است.
  • لایه فیزیکی: نحوه اتصال دیوایس ها برای ایجاد شبکه را تعریف می کند. توان خروجی، تعداد کانال‌ها و میزان انتقال را تعیین می کند. بیشتر برنامه های ZigBee در باند ISM با فرکانس 2.4 گیگاهرتز با سرعت داده 250 kbps کار می‌کنند.

یک نکته مهم در مورد ماژول‌‌های خانواده XBee

بیشتر خانواده های XBee دارای کنترل جریان،  I/O ،  A/D و شاخص های خطی هستند که می‌توان آن‌ها را با استفاده از دستورات مناسب پیاده سازی کرد. نمونه‌های آنالوگ به عنوان مقادیر 10 بیتی بازگردانده می‌شوند. در آنالوگ 0x0000 نمایانگر 0 ولت و 0x3ff نماینگر 1.2v است. (ورودی های آنالوگ در ماژول نمی‌توانند بیش از v1.2 بخوانند)

برای تبدیل مقدار A/D به mV ، قسمت زیر را انجام دهید:

مطلب پیشنهادی:  آموزش LCD کاراکتری 2 *16 برای مبتدیان (قسمت1)

AD (mV) = (A/D reading * 1200mV) / 1023

انتقال داده در ZigBee

می توانید به وسیله ترکیبی از نرم‌افزار و سخت افزار با یک شبکه تماس بگیرید که قادر به ارسال اطلاعات از یک مکان به مکان دیگر است. سخت افزار وظیفه حمل سیگنال ها از یک نقطه به شبکه دیگر را بر عهده دارد. این نرم افزار از مجموعه دستورالعمل هایی تشکیل شده است که وظایفی را که انتظار می رود امکان پذیر می سازد. به طور کلی انتقال داده توسط بسته های ZigBee به دو روش unicast و broadcast انجام می شود.

انتقال broadcast

به عبارت ساده Broadcast یعنی اطلاعات یا برنامه‌ای که از طریق رادیو یا تلویزیون منتقل می‌شود. به عبارت دیگر  broadcast ارسال داده به تمام یا بسیاری از دیوایس های شبکه است. انتقال Broadcast با پروتکل ZigBee در کل شبکه توزیع می شود به گونه ای که همه گره ها اطلاعات را دریافت می‌کنند. برای دستیابی به این هدف، کوردیناتور و کلیه روترهایی که یک انتقال broadcast را دریافت می‌کنند، سه بار بسته را مجدداً ارسال می‌کنند.

انتقال داده در ZigBee به روش انتقال broadcast

انتقال  Unicast

انتقال Unicast در ZigBee مسیریاب دیتا از یک دیوایس منبع به دیوایس مقصد می باشد. دیوایس مقصد می تواند در مجاورت دیوایس منبع باشد، یا می تواند چندین هاپ را در بین راه داشته باشد. مثالی در شکل زیر توضیح داده شده است که مکانیسمی برای اطمینان از قابلیت پیوند دو جهته است.

انتقال داده در ZigBee به روش انتقال  Unicast

مبانی شبکه برای روترهای Xbee و کوردیناتور

برای رسیدن به خانه دوستتان، به چه چیزی نیاز دارید؟ شما فقط به آدرس او نیاز دارید. به همین ترتیب، برای ارسال اطلاعات از یک ماژول Xbee به دیگری، به آدرس منحصر به فرد آن نیاز دارید. درست مانند مردم ، Xbee نیز حتی چندین آدرس دارد، که هرکدام نقش خاصی در شبکه سازی دارد. دو نوع آدرس وجود دارد یکی استاتیک (آدرس 64 بیتی) و دیگری آدرس پویا (آدرس 16 بیتی).

 آدرس یکتا در ماژول‌های ZigBee

آدرس 64 بیتی جهانی بی نظیر است. که در داخل ماژول Xbee توسط سازنده درج شده است. هیچ رادیو ZigBee دیگری بر روی زمین این آدرس استاتیک را ندارد ، در پشت هر ماژول xbee می توانید این آدرس را همانطور که در شکل زیر مشاهده می کنید ، ببینید ، و مشخصاً قسمت بالاتر آدرس “0013A200” برای هر ماژول xbee یکسان است.

 آدرس یکتا در ماژول‌های ZigBee

یک دیوایس هنگام پیوستن به یک شبکه ZigBee، آدرسی 16 بیتی را که باید منحصر به فرد باشد را دریافت می کند. آدرس 16 بیتی 0x0000 برای کوردیناتور محفوظ است. سایر دیوایس های دیگر به صورت تصادفی آدرس تولید شده‌ای را از روتر یا کوردیناتور دیوایس دریافت می کنند که به آن ها اجازه پیوستن به شبکه را می دهد. آدرس 16 بیتی زمانی می تواند تغییر یابد که دو دیوایس دارای آدرس 16 بیتی یکسان باشند یا یک دیوایس شبکه را ترک کرده و بعداً به آن بپیوندد (می تواند آدرس متفاوتی را دریافت کند).

شناسه گره

همیشه برای مغز ما آسانتر است که رشته ها را به جای اعداد بخاطر بسپاریم. از این رو، هر ماژول Xbee در یک شبکه را می توان با یک شناسه گره معین کرد. شناسه گره مجموعه ای از کاراکترها یعنی رشته ها است که می تواند یک روش معقول و روان تر برای آدرس دهی به یک گره در یک شبکه باشد.

شبکه های شخصی ZigBee

شبکه ای که توسط این ماژول های Xbee توسه داده شده است به نام شبکه های شخصی یا PAN نامیده می شوند. هر شبکه با یک شناسه PAN منحصر به فرد (PAN ID) تعریف می شود. این شناسه در بین همه دیوایس های یک شبکه مشترک است. ZigBee از هر دو PAN ID یا شناسه 64 بیتی و 16 بیتی پشتیبانی می‌کند. هر دو آدرس PAN برای شناسایی یک شبکه منحصر به فرد استفاده می‌شوند. دیوایس های موجود در همان شبکه ZigBee باید همان ID PAN یا شناسه 64 بیتی و 16 بیتی را به اشتراک بگذارند. اگر چندین شبکه ZigBee در محدوده یکدیگر کار می‌کنند، هر یک باید ID PAN منحصر به فرد داشته باشند.

PAN ID شانزده بیتی برای لایه  MACآدرس در کلیه انتقال داده های RF بین دیوایس های یک شبکه استفاده می‌شود. اما با توجه به فضای محدود آدرس دهی PAN ID شانزده بیتی (65535 حالت) ، این احتمال وجود دارد که شبکه های چندگانه  ZigBee (در محدوده یکدیگر) بتوانند دارایPAN ID  شانزده بیتی یکسان باشند. برای برطرف کردن این تلاقی‌ها، توافقات ZigBee یک PAN ID یا شناسه 64 بیتی ایجاد کرد. ZigBee سه نوع دیوایس مختلف را تعریف می کند: کوردیناتور، روتر و دیوایس‌نهایی(End-device).

مطلب پیشنهادی:  استفاده از پلتفرم Arduino IoT Cloud در پروژه‌های اینترنت اشیا

برای راه اندازی شبکه همیشه یک کوردیناتور لازم است. بنابراین، هرگز نمی تواند غیر فعال باشد. همچنین مسئول انتخاب کانال و PAN ID شصت و چهار بیتی و شانزده بیتی برای آغاز به کار شبکه است. همچنین می تواند به روترها و دیوایس های نهایی اجازه دهد تا به شبکه بپیوندند. و نیز می تواند در مسیریابی داده ها در یک شبکه کمک کند.

می تواند چندین روتر در یک شبکه وجود داشته باشد. یک روتر می تواند از سایر روتر ها/Eps (نقاط پایانی) سیگنال ها را دریافت کند. همچنین هرگز نمی‌تواند غیر فعال باشد. قبل از انتقال، دریافت یا مسیر‌یابی داده‌ها باید به یک PAN Zigbee بپیوندد. پس از پیوستن، می تواند به روترها و دیوایس‌های نهایی اجازه دهد به شبکه ملحق شوند. پس از پیوستن، می تواند در مسیریابی داده‌ها نیز کمک کند. همچنین می تواند بسته های داده RF را برای غیر فعال سازی (حالت استراحت) دیوایس های نهایی بافر کند.

می تواند چندین نقطه پایانی نیز داشته باشد. برای صرفه جویی در مصرف برق می تواند در حالت استراحت باشد. قبل از انتقال یا دریافت داده باید به یک PAN ZigBee بپیوندد و حتی نمی‌تواند به سایر دیوایس ها اجازه الحاق به شبکه را بدهد. برای انتقال/دریافت داده به دیوایس های اصلی وابسته است.

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

توپولوژی ها در شبکه ZigBee

توپولوژی شبکه به شیوه طراحی شبکه اشاره دارد. در اینجا توپولوژی ، نمایش هندسی از روابط همه پیوندها و دیوایس های پیوند دهنده (کوردیناتور، روتر و دیوایس های نهایی) با یکدیگر است. در اینجا ما چهار توپولوژی اساسی شامل مش، ستاره ای، هایبرید و درختی داریم.

توپولوژی ها در شبکه ZigBee

  • در توپولوژی مش، هر گره به یکدیگر متصل است و گره انتهایی را انتظار دارید زیرا دیوایس های نهایی نمی توانند مستقیماً ارتباط برقرار کنند. برای فعال کردن ارتباطات ساده بین دو رادیو ZB، باید یکی از آنها را با فریمور کوردیناتور و دیگری را با روتر یا فریمور نهایی کانفیگ (پیکر بندی) کنید. مزیت اصلی شبکه مش این است که اگر یکی از لینک ها غیرقابل استفاده شود، کل سیستم را ناتوان نمی کند.
  • در یک توپولوژی ستاره، هر دیوایس دارای یک اتصال نقطه به نقطه به یک کنترلر مرکزی (کوردیناتور) است. همه دیوایس ها به طور مستقیم با یکدیگر مرتبط نیستند. برخلاف توپولوژی مش، در توپولوژی ستاره یک دیوایس نمی تواند چیزی را مستقیماً به دیوایس دیگری ارسال کند. بلکه کوردیناتور یا هاب برای تبادل وجود دارد: اگر یك دیوایس بخواهد داده هایی را به دیگری ارسال كند، داده ها را به کوردیناتور ارسال می‌كند، كه این اطلاعات را به دیوایس مقصد می فرستد.
  • شبکه هایبرید همان شبکه هایی است که شامل دو یا چند نوع استاندارد ارتباطی است. در اینجا، شبکه هایبرید، ترکیبی از ستاره و شبکه درخت است، تعداد کمی از دیوایس های نهایی به طور مستقیم به گره کوردیناتور متصل می شوند و سایر دیوایس های نهایی به کمک گره اصلی برای دریافت داده ها نیاز دارند.
  • در شبکه درختی، روترها ستون فقرات را تشکیل می دهند و دیوایسهای نهایی در اطراف هر روتر به صورت خوشه ای قرار میگیرند. با پیکربندی مش تفاوت چندانی ندارد به جز این واقعیت که روترها به هم وصل نیستند می توانید این شبکه ها را با استفاده از شکل نشان داده شده در بالا تجسم کنید.

فریمور Xbee

ماژول قابل برنامه ریزی XBee  به یک پردازنده قابل برنامه ریزی‌مجهز شده است. این پردازنده کاربردی با یک بوت لودر عرضه شده ارائه می شود. این فریمور XBee ZV بر اساس استک Embernet 3.x.x ZigBee-PRO است، می توان ماژول های XBee-Znet 2.5 را به این قابلیت ارتقا داد. می توانید با استفاده از دستور ATVR فریمور را بررسی کنید که بعدا در این بخش در مورد آنها بحث خواهیم کرد. شماره ورژن XBee دارای 4 رقم معنی دار خواهد بود. همچنین می توانید با استفاده از دستور ATVR تعداد ورژن را مشاهده کنید. پاسخ 3 یا 4 عدد را در بر می‌گیرد. همه اعداد بر مبنای هگزا دسیمال هستند و می توانند از 0 تا 0xF باشند. ورژنی با عنوان  “ABCD”  گزارش شده است. ارقام ABC شماره ورژن اصلی و رقم D ورژن تجدید نظر از نسخه اصلی است. مبحث API در فصل 4 و دستور AT همیشه برای فریمور Znet 2.5 و ZB یکسان است.

مطلب پیشنهادی:  NB-IoT یا اینترنت اشیا کم پهنا – نسل بعدی ارتباطات شبکه برای اینترنت اشیا

در ارتباطات از راه دور، دستور کلی Hayes یک زبان دستوری خاص توسعه یافته برای مودم هوشمند هایس است، در 1981 این فرمان ها یک سری کلمات کوتاه برای کنترل ارتباطات مودم و راه اندازی یک مودم ساده در آن روزها بودند.

XBee همچنین روی حالت فرمان کار می کند و دستورات AT  را تنظیم می کند که مخفف ATTENTION است، این دستورات می توانند از طریق ترمینال های XBee و AT  به  Xbee ارسال شوند و رادیوهای AT کانفیگ شده با XBee دارای دو حالت ارتباطی هستند.

  • شفاف: رادیو اطلاعات دریافتی خود را فقط به آدرس رادیویی که در آن کانفیگ شده است منتقل می کند. داده ارسال شده از طریق پورت سریال همانطور که هست توسط XBee دریافت می‌شود.
  • فرمان: از این حالت برای صحبت با رادیو و کانفیگ برخی از حالت های از پیش تنظیم شده استفاده می شود، در حالی که در این حالت ها هستیم با ماژول ها ارتباط برقرار می کنیم و کانفیگ را تغییر می دهیم.

می توانید +++ را تایپ کنید و بدون فشار دادن دکمه های دیگر، یک ثانیه صبر کنید، سپس پیام OK باید به عنوان تصویر ترمینال در بالا ظاهر شود. خوب ، XBee به ما می گوید که او در حالت فرمان قرار دارد و آماده دریافت پیام های کانفیگ است.

اگر بیش از 10 ثانیه بدون فشار دادن یک دکمه صبر کنید، XBee به حالت شفاف بر می گردد. برای بازگشت به حالت فرمان نیز، باید +++ را دوباره تایپ کنید.

دستورات XBee

  • AT: این دستور تست است. که بررسی می کند آیا ماژول در حال پاسخگویی به OK است یا همان جواب را تایید می کند.
  • ATDH: آدرس مقصد  HIGH. برای کانفیگ 32 بیت بالای، آدرس مقصد 64 بیتی DL و DH ترکیب شده که به شما آدرس مقصد 64 بیتی می دهد.
  • ATDL: آدرس مقصد LOW . برای کانفیگ 32 بیت پایین، آدرس مقصد 64 بیتی.
  • ATID این دستور PAN ID را تغییر می دهد PersThe ID چهار بایتی هگزا دسیمال است و می تواند از 0000 تا FFFF باشد.
  • ATWR: نوشتن. مقادیر پارامتر را روی حافظه غیر متغیر بنویسید تا تغییرات پارامتر از طریق ریست بعدی ادامه یابد.

توجه: پس از انتشار WR، هیچ کاراکتر دیگری نباید به ماژول ارسال شود تا پس از دریافت پاسخ “OK/r”

  • ATRE(بازیابی پیش فرض) : بازیابی تنظیمات کارخانه در ماژول، در صورت عدم پاسخگویی ماژول، بسیار مفید است.

برای پیکربندی ماژول خود با استفاده از دستور AT پس از وارد کردن حالت فرمان (یعنی فشار دادن +++) باید (AT(XY را به عنوان مثال ATID 1001 تایپ کنید (این مقدار می تواند از 0 تا FFFF باشد، دستورات XBee همیشه از مقادیر هگزا دسیمال استفاده می کنند) اینتر را بزنید اگر پاسخ OK بود سپس می توانید ATID در ترمینال به سرعت تایپ کنید تا ببینید آیا این مقدار تغییر کرده است، در نهایت فقط پس از استفاده از ATWR در این زمان نوشتن انجام می شود ، اگر ATWR استفاده نشده باشد، مقادیر نوشته شده به محض خاموش شدن ماژول از بین می رود.

منبع: ترجمه از وب‌سایت circuitdigest

امیدواریم مقاله معرفی ZigBee و ماژول‌های خانواده XBee براتون مفید واقع شده باشه. در ادامه اگر علاقمند بودید مقالات اینترنت اشیا را مطالعه کنید و اگر هم نظری داشتین در قسمت کامنت‌ها ⇓ مطرح کنید.

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *