از دریافت یک بسته تا اعتماد به فرستنده
برد RFM69HCW آدافروت با شناسه ۳۰۷۰ یک فرستنده و گیرنده بستهای برای ساخت لینک رادیویی میان گرههای تعبیهشده است. نسخه مورد بحث برای تنظیم در محدوده ۸۶۸ یا ۹۱۵ مگاهرتز عرضه شده و با نسخه ۴۳۳ مگاهرتزی یا ماژول LoRa یکسان نیست. در یک آزمایش امنیت محصول میتوانید دو دستگاه تحت کنترل خود بسازید، پیام معینی بفرستید و بررسی کنید گیرنده درباره ترتیب، تکرار و اعتبار پیام چگونه تصمیم میگیرد. یک لپتاپ معمولی بدون رادیوی سازگار، نقش طرف دوم این ارتباط را انجام نمیدهد.
یک کاربرد ملموس، حسگر آزمایشگاهی است که هر دقیقه دما و شمارنده نمونه را میفرستد. ابتدا فقط میخواهید دریافت یک پیام صحیح را ثابت کنید. بعد پرسشها دقیقتر میشوند: آیا نمونه قبلی دوباره پذیرفته شده است؟ آیا بستهای گم شده یا حسگر واقعاً اندازهگیری نکرده؟ آیا شناسه نوشتهشده داخل پیام برای اعتماد به دستگاه کافی است؟ انتخاب این ابزار زمانی ارزش دارد که بتوانید پاسخ این سه پرسش را جدا کنید و هر کدام را با یک تغییر قابل کنترل در میز آزمایش بیازمایید.
دو گره همسان آماده کنید
هر دو طرف باید نسخه فرکانسی و تنظیمات ارتباطی سازگار داشته باشند. آدافروت این برد را یک رادیوی بستهای FSK معرفی میکند. یکسان بودن حدود فرکانس به تنهایی کافی نیست؛ نوع مدولاسیون، سرعت داده، تنظیمات بسته و پیکربندی کتابخانه نیز باید هماهنگ باشند. برای اولین آزمون، دو برد هممدل با همان نسخه مثال نرمافزار انتخاب کنید و نقش فرستنده و گیرنده را واضح بنویسید. اگر دو نسخه متفاوت برنامه را همزمان تغییر دهید، پیدا کردن نخستین اختلاف بسیار دشوارتر میشود.
باند و توان مناسب را مطابق شرایط محل آزمایش انتخاب کنید. صفحات محصول نام چند باند رایج منطقهای را میآورند، اما مجاز بودن هر تنظیم به کشور، کاربرد و مقررات محلی بستگی دارد. برای آزمون بردها نیازی به ایجاد پوشش گسترده نیست. از توان متناسب، فاصله کوتاه و تجهیزات آزمایشگاهی خودتان آغاز کنید. اگر محیط شلوغ است، ثبت زمان و کانال آزمایش به تفکیک مشکلات تداخل از خطاهای نرمافزار کمک میکند. هدف اولیه ارسال موفق در محیط کنترلشده است، نه پیدا کردن بیشترین فاصله ممکن.
مسیر برق، آنتن و رابط SPI
برد آدافروت رگولاتور و تبدیل سطح برای اتصال به میزبانهای سازگار سه یا پنج ولتی دارد. این مشخصه مربوط به همین برد آماده است و نباید به ماژول خامی با همان تراشه تعمیم داده شود. سازنده برای توان ارسال بالا جریان بیشتری از حالت دریافت ذکر میکند. منبعی که در حالت انتظار ولتاژ مناسبی نشان میدهد، ممکن است هنگام ارسال افت کند. در پرونده آزمایش بنویسید برد چگونه تغذیه شده، سیمها چقدر بلند هستند و ولتاژ هنگام فعال شدن فرستنده چه رفتاری دارد.
این مدل از SPI برای ارتباط با میکروکنترلر استفاده میکند. مسیر انتخاب تراشه، پایههای مربوط به وقفه و بازنشانی را با مثال همان کتابخانه تطبیق دهید. اگر برنامه اصلاً رادیو را تشخیص نمیدهد، نخست کلاک، انتخاب تراشه و زمین را بررسی کنید. مشکل آنتن معمولاً توضیحی برای شکست خواندن ثبات روی باس محلی نیست. آنتن را بر اساس باند انتخابشده و راهنمای محصول وصل کنید. پیش از ارسال از اتصال مناسب آن مطمئن شوید و دو گره را برای مقایسه آزمایشها در موقعیت ثابت نگه دارید.
نخستین تبادل قابل اندازهگیری
برای پیام نخست، یک عبارت ثابت همراه با شماره ترتیبی بفرستید. گیرنده باید زمان محلی، شماره دریافتی و نتیجه بررسی قالب را ثبت کند. فرستنده نیز زمان درخواست ارسال و شماره مورد انتظار را نگه دارد. از ثبت عبارت کلی «پیام رسید» بپرهیزید؛ بدون شماره نمیتوان تشخیص داد دو خط مشابه مربوط به دو پیام جدیدند یا یک بسته دوباره تحویل داده شده است. پس از چند پیام، نقش بردها را عوض کنید تا مسیر ارسال و دریافت هر دو نمونه مستقلاً امتحان شود.
اکنون یک دوره آزمایشی با تعداد پیام معلوم اجرا کنید. مثلاً اگر صد شماره متفاوت ارسال شده، تعداد شمارههای یکتای دریافتشده، شمارههای گمشده و تعداد تکرارها را جدا بشمارید. تعداد خطوط لاگ ممکن است بیشتر از تعداد نمونه واقعی باشد. اگر پاسخ تأیید هم دارید، رسیدن پاسخ را جداگانه بشمارید؛ فرستندهای که تأیید نگرفته الزاماً به معنی نرسیدن پیام اصلی نیست. ممکن است پیام رسیده و پاسخ برگشت از دست رفته باشد. همین تفاوت، پایه طراحی درست ارسال مجدد و جلوگیری از اجرای دوباره عمل است.
معنای قدرت سیگنال و برد
عدد قدرت سیگنال دریافتی برای مقایسه نسبی در یک چیدمان مفید است، ولی به تنهایی کیفیت سرویس را تعیین نمیکند. نویز، جهت آنتن، بازتاب محیط و تنظیمات بسته میتوانند روی نرخ تحویل اثر بگذارند. برای مقایسه، ابتدا فاصله و توان را ثابت نگه دارید و جهت یکی از آنتنها را تغییر دهید. سپس نرخ تحویل و الگوی خطا را با وضعیت پیشین بسنجید. یک پیام موفق در دورترین نقطه نشان نمیدهد سامانه در آن فاصله ارتباط قابل اتکایی دارد.
در آزمون محیط واقعی، مسیر باز و مسیر دارای دیوار را جدا گزارش کنید. اگر جابهجایی اندک یک گره نتیجه را عوض میکند، ثبت یک مقدار میانگین ممکن است تغییرات مهم را پنهان کند. تعداد نمونه، مدت اندازهگیری و نرخ ارسال در کنار نتیجه ضروریاند. عدد برد ذکرشده در معرفی سازنده به شرایط آنتن و محیط وابسته است و تضمین عملکرد نصب شما نیست. تصمیم محصول را بر اساس سناریویی بگیرید که با ارتفاع، محفظه، منبع برق و محل نصب مورد انتظار خودتان انطباق دارد.
رمزگذاری سختافزاری و معنای پیام معتبر
در معرفی محصول از موتور بسته با AES-128 نام برده شده است. پشتیبانی رمزگذاری کمک میکند محتوای بسته در پیکربندی سازگار به سادگی خوانده نشود، اما پرسشهایی مانند اصالت فرستنده، تازگی پیام و مدیریت کلید باید در طراحی پروتکل پاسخ داشته باشند. برچسب شناسه گره در سرآیند به تنهایی هویت قابل اتکا ایجاد نمیکند. برای کاربردی مانند نمایش دما تفاوت پیام قدیمی و تازه شاید فقط گزارش را خراب کند، اما برای یک فرمان کنترلی میتواند اثر عملی مهمی داشته باشد.
در محیط آزمایش، یک بار کلید دو طرف را به طور کنترلشده متفاوت کنید و رفتار دریافت را بنویسید. نتیجه باید در لایه برنامه به عنوان داده معتبر پذیرفته نشود، حتی اگر گیرنده رخدادی در رادیو مشاهده کرده باشد. کلید آزمایش را با کلید محصول واقعی مشترک نگذارید و آن را در خروجی عمومی چاپ نکنید. اگر کاربرد نیازمند اصالت قوی پیام است، از طرح استاندارد و مرورشده متناسب با آن نیاز استفاده کنید. افزودن یک عدد ثابت یا جمع ساده به پیام، جای اعتبارسنجی رمزنگاریشده را نمیگیرد.
جلوگیری از اجرای دوباره
فرض کنید پیام فرمان به گیرنده میگوید شمارنده عملیات را یک واحد افزایش دهد. فرستنده به علت نرسیدن پاسخ، همان پیام را دوباره ارسال میکند. اگر گیرنده هر دریافت را یک فرمان تازه بداند، شمارنده دو بار تغییر میکند. برای حل این مسئله، شناسه عملیات و سیاست تشخیص تکرار تعریف کنید. گیرنده میتواند نتیجه اجرای قبلی را برای بازه مناسب نگه دارد و در دریافت مجدد همان عملیات، پاسخ قبلی را بدهد. اندازه پنجره و رفتار پس از راهاندازی دوباره باید با نیاز محصول هماهنگ باشد.
این سناریو را عمداً با حذف پاسخ سمت آزمایش و حفظ دریافت پیام اول بازسازی کنید. پس از تلاش دوباره، تعداد ارسالها باید بیشتر از تعداد اجرای عملیات باشد. اگر واحد بعد از قطع برق همه شناسههای اخیر را فراموش میکند، مشخص کنید این رفتار برای کاربرد قابل قبول است یا نگهداری وضعیت پایدار لازم دارد. شماره ترتیبی کوچک نیز سرانجام دور میزند. برنامه باید برای این حالت تعریف روشنی داشته باشد و پیام بسیار قدیمی را به خاطر برابری ظاهری شماره با پیام تازه اشتباه نگیرد.
مصرف انرژی و زمان گوش دادن
در یک گره باتریخور، زمان فعال بودن گیرنده ممکن است به اندازه توان ارسال مهم باشد. بردی که پیوسته منتظر فرمان میماند انرژی مصرف میکند حتی اگر بستهای دریافت نشود. یک چرخه نمونه را به خواب، بیدار شدن، ارسال، انتظار پاسخ و بازگشت به خواب تقسیم کنید. مدت هر بخش و تعداد تلاش مجدد را ثبت کنید. کاهش توان ارسال وقتی موجب چند برابر شدن تلاشها شود ممکن است مصرف نهایی برای تحویل یک پیام موفق را بیشتر کند. معیار مناسب انرژی به ازای انجام موفق کار است.
برای بررسی، دو تنظیم را با ورودی و مسیر یکسان مقایسه کنید و تعداد پیامهای واقعاً تحویلشده را کنار مصرف بگذارید. بازه گوش دادن بسیار کوتاه ممکن است پاسخ دیررس را از دست بدهد. بازه بسیار بلند نیز باتری را مصرف میکند. اگر گرهها طبق برنامه زمانی بیدار میشوند، خطای ساعت و زمان راهاندازی رادیو را در آزمون طولانی لحاظ کنید. موفقیت چند تبادل بلافاصله پس از روشن شدن، نشان نمیدهد زمانبندی دو گره پس از چند ساعت همچنان با هم منطبق خواهد بود.
تشخیص علت یک ارتباط ناپایدار
اگر ارسال از یک جهت موفق و جهت عکس ناموفق است، نقش دو برد را عوض کنید. اگر مشکل همراه نقش نرمافزاری جابهجا شد، پیکربندی ارسال یا انتظار دریافت را بررسی کنید. اگر همراه برد فیزیکی ماند، اتصال آنتن، تغذیه و سیمبندی همان نمونه در اولویت قرار میگیرد. اگر هر دو در فاصله کوتاه کار میکنند ولی پس از نصب داخل محفظه مشکل دارند، آزمون بیرون و داخل محفظه را با شرایط یکسان تکرار کنید. این مقایسه عملی از تعویض همزمان همه پارامترها روشنتر است.
گزارش نهایی باید مدل فرکانسی، تنظیمات مشترک، آنتن، توان انتخابشده، نسخه کتابخانه، تعداد پیام و رفتار کاربرد در برابر تکرار را داشته باشد. یک جفت ثبت همزمان از فرستنده و گیرنده را همراه نمونه موفق و نمونه خطا نگه دارید. RFM69HCW در چنین میزی وسیلهای برای سنجیدن کل زنجیره تحویل پیام است؛ از توان و کیفیت لینک تا تصمیم نرمافزار درباره اعتبار و تازگی داده. این تفکیک به مهندس اجازه میدهد هر اصلاح را روی همان لایهای انجام دهد که واقعاً مشکل دارد.