در مقاله قبلی راجع به LoRa و LoRaWAN چیست؟ | تفاوت، کاربرد و مزایا در IOT صحبت کردیم در این مقاله در مورد کلاسهای دستگاه های LoRaWAN صحبت می کنیم. راجع به استاندارد LoRaWAN سه نوع دستگاه تعریف کرده: کلاس A، کلاس B و کلاس C. همه دستگاههای LoRaWAN باید حتماً از کلاس A پشتیبانی کنن، در حالی که کلاس B و C در واقع یک جور افزونه یا توسعه روی همون مشخصات کلاس A به حساب میان.
هر سه کلاس امکان ارتباط دوطرفه رو فراهم میکنن؛ یعنی هم میتونن داده رو به سمت شبکه بفرستن (uplink) و هم از سمت شبکه دریافت کنن (downlink). اما تفاوت اصلیشون در اینه که دستگاه چه زمانی و با چه الگویی به پیامهای شبکه گوش میده.
نکته مهم اینه که وقتی بخوایم آپدیت نرمافزاری از راه دور (FUOTA) روی دستگاهها انجام بدیم، دیگه کلاس A به تنهایی کافی نیست. در این شرایط دستگاه باید به کلاس B یا C تغییر حالت بده تا امکان دریافت پایدارتر و بهموقع پیامها فراهم بشه.
ویژگی | کلاس A | کلاس B | کلاس C |
---|---|---|---|
الزام پشتیبانی | همه دستگاهها | اختیاری | اختیاری |
مدل دریافت پیام | فقط بعد از هر uplink، دو پنجره کوتاه RX1 و RX2 | مثل کلاس A + پنجرههای منظم Ping Slot هماهنگ با Beacon شبکه | پنجره دریافت تقریباً همیشه باز، بهجز حین uplink |
تأخیر Downlink | زیاد | متوسط | خیلی کم (تقریباً آنی) |
مصرف انرژی | خیلی کم (سالها با باتری) | متوسط | زیاد (نیاز به برق مستقیم) |
کاربردها | سنسورهای کممصرف، پایش محیط | کنتورهای هوشمند، کنترل نیمهسریع | فرمانهای سریع و بدون تأخیر مثل کنترل لحظهای |
FUOTA مناسب؟ | ❌ خیر، نیاز به B یا C | ✔ بله | ✔ بله |
همه دستگاههای LoRaWAN موظف هستن که از کلاس A پشتیبانی کنن. توی این حالت، دستگاه میتونه در هر زمانی یک پیام uplink (یعنی داده رو به سمت شبکه) ارسال کنه. درست بعد از اینکه این ارسال تموم شد، دستگاه دو بازهی کوتاه برای دریافت پیام از شبکه باز میکنه. به این بازهها همون پنجرههای دریافت یا Receive Windows گفته میشه.
بین پایان ارسال uplink و شروع هر کدوم از این پنجرههای دریافت، یه تأخیر مشخص وجود داره که بهش RX1 Delay و RX2 Delay میگن. اگر سرور شبکه نتونه در این دو پنجره به دستگاه پاسخ بده، اون پیام downlink به تعویق میافته و در اولین فرصت بعد از uplink بعدی ارسال میشه.
به زبان ساده، کلاس A بیشترین صرفهجویی انرژی رو داره چون دستگاه فقط وقتی پیام میفرسته یا بلافاصله بعدش گوش میده، و بقیهی زمان رو در حالت خواب (Sleep) باقی میمونه. به همین دلیل برای سنسورهایی که فقط گاهی وقتها داده میفرستن (مثل دما، رطوبت یا موقعیت) عالیه.
سرور شبکه میتونه پاسخ رو توی یکی از دو پنجره دریافت بده؛ یا توی پنجره اول (RX1) یا توی پنجره دوم (RX2)، اما هیچوقت هر دو رو همزمان استفاده نمیکنه. برای همین وقتی درباره پیامهای downlink صحبت میکنیم، سه حالت مختلف پیش میاد:
به این ترتیب، زمانبندی دریافت در کلاس A همیشه قابل پیشبینی میمونه، چون دستگاه فقط دو بار کوتاه گوش میده و بعد دوباره میره توی حالت خواب.
دستگاههای کلاس A مصرف انرژی فوقالعاده پایینی دارن و به همین دلیل میتونن سالها فقط با باتری کار کنن. بیشتر زمانشون رو در حالت خواب میگذرونن و فقط هر از گاهی برای ارسال داده بیدار میشن. فاصله بین این پیامها (uplink) معمولاً زیاده. نکتهای که باید در نظر گرفت اینه که کلاس A تا زمانی که یک uplink نفرسته، نمیتونه پیام downlink دریافت کنه. همین موضوع باعث میشه تأخیر دریافت پیامها در این کلاس نسبتاً بالا باشه.
این ویژگیها باعث میشه کلاس A بهترین انتخاب برای سناریوهایی باشه که نیاز به مصرف انرژی بسیار کم دارن و دادهها هم فقط گاهی وقتها ارسال میشن. نمونههایی از کاربردهای رایج کلاس A عبارتند از: پایش محیط زیست، ردیابی حیوانات، تشخیص آتشسوزی در جنگل، شناسایی نشت آب، مدیریت پارکینگ هوشمند، ردیابی داراییها و همینطور مدیریت پسماند.
دستگاههای کلاس B در واقع تواناییهای کلاس A رو گسترش میدن. تفاوت اصلی اینجاست که این دستگاهها بهطور دورهای پنجرههایی به نام Ping Slot باز میکنن تا بتونن پیامهای downlink رو دریافت کنن. برای اینکه این کار هماهنگ انجام بشه، شبکه هر چند وقت یکبار از طریق گیتویها یک سیگنال همزمانسازی به نام Beacon پخش میکنه (بهصورت تکبهتک یا گروهی). دستگاههای انتهایی این بیکنها رو دریافت میکنن و ساعت داخلی خودشون رو با شبکه هماهنگ میکنن.
این هماهنگی زمانی باعث میشه سرور شبکه دقیقاً بدونه چه موقع باید یک پیام downlink رو به یک دستگاه خاص یا حتی یک گروه از دستگاهها بفرسته. فاصله زمانی بین دو بیکن هم بهش Beacon Period گفته میشه.
البته درست مثل کلاس A، بعد از هر uplink دو پنجرهی کوتاه RX1 و RX2 هم باز میشن. اما مزیت کلاس B اینه که علاوه بر اونها، بهطور منظم زمانهای مشخصی برای گوش دادن به پیامهای شبکه داره، و این باعث میشه تأخیر دریافت پیامها نسبت به کلاس A خیلی کمتر بشه.
دستگاههای کلاس B نسبت به کلاس A تأخیر خیلی کمتری در دریافت پیامهای downlink دارن، چون بهطور منظم پنجرههای Ping Slot رو باز میکنن. با این حال، هنوز هم از نظر سرعت واکنش خیلی عقبتر از دستگاههای کلاس C هستن. بیشتر دستگاههای کلاس B هم با باتری کار میکنن. البته عمر باتریشون نسبت به کلاس A کوتاهتره، چون زمان بیشتری رو در حالت فعال میمونن؛ هم برای دریافت بیکنها و هم به خاطر باز بودن پنجرههای Ping Slot.
این کاهش عمر باتری در عوض یه مزیت مهم داره: دستگاه میتونه با تأخیر خیلی کمتر پیامهای کنترلی رو دریافت کنه. به همین دلیل کلاس B معمولاً در کاربردهایی استفاده میشه که به واکنش نسبتاً سریع نیاز دارن، اما نه در حد آنی؛ مثلاً کنتورهای هوشمند (برق، آب و گاز) یا سیستمهای روشنایی خیابانی.
نکته جالب اینجاست که دستگاههای کلاس B میتونن در صورت نیاز مثل کلاس A هم عمل کنن. این انعطاف باعث میشه بشه بسته به سناریو مصرف انرژی یا سرعت واکنش رو اولویت داد.
دستگاههای کلاس C نیز در واقع تواناییهای کلاس A رو گسترش میدن، با این تفاوت که پنجرههای دریافتشون همیشه بازه؛ مگر وقتی که دارن یک پیام uplink ارسال میکنن. به همین خاطر این دستگاهها میتونن تقریباً در هر لحظه پیامهای downlink رو دریافت کنن و همین ویژگی باعث میشه تأخیر دریافت پیامها (latency) خیلی پایین باشه. این قابلیت برای فرمانهایی مثل کاهش شدت نور چراغهای خیابانی یا فعال کردن شیر قطعکننده آب در کنتورهای هوشمند فوقالعاده کاربردیه.
در کلاس C هم درست مثل کلاس A دو پنجره RX1 و RX2 وجود دارن، اما تفاوت بزرگ اینجاست که پنجره RX2 تقریباً همیشه باز میمونه تا زمانی که uplink بعدی ارسال بشه. روند کار اینطوریه: دستگاه یک پیام uplink میفرسته، بعد یک RX2 کوتاه باز میشه و به دنبال اون یک RX1 کوتاه. بعد از اون دوباره RX2 باز میشه و این بار تا uplink بعدی بهطور پیوسته باز باقی میمونه. uplink جدید هم فقط وقتی ارسال میشه که هیچ پیام downlink در حال دریافت نباشه.
به خاطر همین معماری، کلاس C بهترین گزینه برای سناریوهایی هست که نیاز دارن فرمانها با کمترین تأخیر ممکن اجرا بشن؛ جایی که زمان پاسخ خیلی مهمتر از مصرف انرژی باشه.
دستگاههای کلاس C در مقایسه با کلاس A و B کمترین میزان تأخیر رو دارن، چون تقریباً همیشه آماده دریافت پیامهای downlink هستن. اما همین ویژگی باعث میشه مصرف انرژی بالایی داشته باشن؛ چون باید پنجره دریافتشون بهطور مداوم باز بمونه. به همین دلیل این دستگاهها معمولاً نمیتونن مدت طولانی فقط با باتری کار کنن و اغلب به برق مستقیم (mains power) وصل میشن.
کلاس C بیشتر برای کاربردهایی به کار میره که فرمانها باید سریع و بدون تأخیر اجرا بشن. البته درست مثل کلاس B، دستگاههای کلاس C هم میتونن در صورت نیاز در حالت کلاس A عمل کنن تا مصرف انرژی پایینتر بیاد.
نویسنده شو !
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.