5 / 5. 4

فهرست مطالب

فهرست مطالب

پشته بلوتوث (بلوتوث چگونه کار می کند؟)

1- بلوتوث چگونه کار می کند؟

بلوتوث چگونه کار می کند؟ چگونه چند دستگاه همزمان از طریق بلوتوث باهم ارتباط می گیرند؟ 

اینها سوالاتی هستند که ما هربار هنگام استفاده از بلوتوث از خودمان می پرسیم.

بنابراین در اینجا، ما شما را با پشته بلوتوث آشنا می کنیم تا بتوانید به نحوه عملکرد بلوتوث پی ببرید.

پشته بلوتوث کم مصرف
شکل 1 - پشته بلوتوث های کم مصرف

2- پشته بلوتوث های کم مصرف (Bluetooth Stack)

همانطور که میدانید، بلوتوث دارای ورژن های مختلفی میباشد. 

این روزها گوشی های هوشمند از بلوتوث 5 استفاده می کنند.

همانطور که میدانید، این روزها از بلوتوث های ورژن اولیه به ندرت استفاده می شود.

بنابراین، در اینجا به بلوتوث های کم مصرف می پردازیم و با عملکرد آن آشنا می شویم.

2.1- لایه فیزیکی (Phisycal Layer)

2.1.1- Bluetooth Radio

  • تعیین باند فرکانسی

یکی از وظایف اصلی لایه فیزیکی در پشته بلوتوث، تعیین باند فرکانسی می باشد.

از آن جایی که امواج رادیویی برای انتقالات بیسیم استفاده میشود، افراد و سازمان ها باید بدانند که از چه موج و چه فرکانسی باید استفاده کنند.

مثلا نیروی دریایی از امواج 3KHZ برای انتقال داده استفاده می کند، بنابراین ما نمی توانیم با این امواج برای انتقال داده های شخصی خود استفاده کنیم.

چون بدین ترتیب امواج ارسالی توسط ما، باعث اختلال در عملکرد نیروی دریایی میشود.

بنابراین اگر قصد داشته باشیم از امواج 3 کیلوهرتزی برای انتقالات استفاده کنیم، باید از سازمان مربوطه مجوز دریافت کنیم.

در نتیجه برای انتقال اطلاعات در شبکه های شخصی، از امواج رادیویی با فرکانس 2.4 تا 2.485 گیگاهرتز در باند ISM استفاده می کنند.

فرکانس ISM مخفف باند رادیویی صنعتی، علمی و پزشکی(industrial, scientific and medical) می باشد.

این باند به صورت بین المللی بر روی  فرکانس رادیویی(RF) جهت مقاصد صنعتی، علمی و پزشکی استوار شده است.

از این باند در کاربردهای مخابراتی و رادیویی(مثل تلویزیون و …) استفاده نمی شود.

برای انتقال داده روی این موج، نیاز به کسب مجوز از هیچ سازمانی نیست.

  • تعیین کانال فرکانسی

همانطور که قبلا گفتیم، لایه فیزیکی در پشته بلوتوث  از فرکانس بین 2.4 تا 2.48 برای ارسال استفاده می کند.

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

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

تکنیک پرش فرکانسی در مقاله “Frequency Hopping” به طور کامل شرح داده شده است.

به همین علت، قبل از استفاده از این کانال، آن را به 40 کانال باریک تر می تقسیم می کند(مطابق شکل1) که طول هر کانال 2 مگاهرتز می باشد.

لایه فیزیکی از کانال های 37، 38 و 39 برای Advertising استفاده می کند(مطابق شکل 2). 

Advertising (مربوط به لایه پیونده داده می شود) زمانی انجام می شود که شما دستگاه بلوتوث خود را روشن می کنید تا برای دیگر دستگاه ها قابل مشاهده شوید.

اما چرا این سه کانال برای Advertising استفاده میشوند؟

 چون این کانال ها در محدوده استفاده Wifi قرار نمیگیرند  و باعث می شود تا لایه پیوند داده، عملکرد بهتری داشته باشد.

 

همچنین، لایه فیزیکی از دیگر کانال های باقیمانده، برای ارسال داده استفاده می کند.

شکل 2 - کانال های فرکانسی در بلوتوث

2.1.2- Base Band

  • تعیین نرخ انتقال داده

در بلوتوث های اولیه، ماکزیمم زمان انتقال یک بسته 3 میلی ثانیه در نظر گرفته شده بود.

اما برای کاهش مصرف انرژی در بلوتوث های 4 به بعد، زمان انتقال بسته ها ، 376 میکروثانیه در نظر گرفته شده است.

همچنین نرخ انتقال داده 1 مگاهرتز میباشد یعنی در هر میکروثانیه یک بیت انتقال می یابد.

در نتیجه طول بسته ها در بلوتوث ماکسیسم 376 بیت می باشد. همینطور بعد از ارسال هر بسته، 150 میکروثانیه ، باید فاصله وجود داشته باشد.

  • تعیین میزان انرژی

یکی از راه های کاهش مصرف انرژی، کنترل میزان قدرت و انرژی سیگنال های تولید شده ، می باشد.

به همین علت، سیگنال های تولید شده توسط لایه فیزیکی در ورژن های مختلف بلوتوث، مختلف می باشند.

2.2- لایه پیوند داده (Data Link Layer)در پشته بلوتوث

2.2.1- L2CAP (Logical Link Controller Adaptation Protocol)

  • بسته بندی یا فرمت بسته ها

لایه پیوند داده در پشته بلوتوث،برحسب اینکه چه کاری قرار است در شبکه انجام دهد،داده ها را بسته بندی میکند. 

بسته های Advertising :

بسته های advertising برای پیدا کردن یا متصل شدن به دستگاه های دیگر استفاده می شوند.  ساختار این بسته مطابق شکل می باشد.

بسته های داده ای :

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

پشته بلوتوث - فرمت بسته ها
شکل 3- فرمت بسته های در بلوتوث کم مصرف
بخش Access Address در بسته های بلوتوثی

این بخش از بسته که 32 بیت می باشد، شامل یک آدرس ثابت می باشد.

هردستگاه بلوتوثی، یک آدرس یکتا برای خود دارد که این آدرس به صورت 32 بیتی در بسته های قرار می گیرد.

البته این آدرس ها حتما باید در سامانه SIG ثبت شوند.

بخش Header در بسته های بلوتوثی

بخش Header شامل 8 بیت می باشد. این هشت بیت، خود به چند بخش تقسیم می شوند که عبارتند از:

PDU(4 بیت): بیانگر نوع بسته Advertising می باشد که به وسیله 4 بیت نشان داده می شود(شکل 4).

بخش رزرو شده(2بیت): از این 2 بیت فعلا استفاده ای نمی کنند.

نوع AccessAddress (2 بیت): آدرس های مورد استفاده ی بلوتوث به دو دسته عمومی و تصادفی تقسیم می شوند.

 

آدرس های عمومی

به آدرس هایی گفته می شوند که در سامانه SIG ثبت شده اند و توسط کارخانه بر روی دستگاه بلوتوثی قرار می گیرد.

همچنین، این آدرس ها قابل تغییر توسط کاربر یا برنامه ها نیستند.

آدرس های تصادفی

این آدرس ها توسط برنامه نویس ها ایجاد می شوند و ممکن است در حین کارکردن به طور مدام تغییر کنند.

 

پشته بلوتوث - PDU
شکل 4 - انواع PDU در پشته بلوتوث
بخش Length در بسته های بلوتوثی

این بخش از بسته در لایه پیوند داده ، 8 بیت را به خود اختصاص می دهد که نشان دهنده طول بخش Data در بسته می باشد.

بخش CRC در بسته های بلوتوثی

بخش CRC (Cyclick Redundancy Check) ، که 24 بیت را به خود اختصاص می دهد، مسئول جلوگیری از خطا و تداخل در داده های می باشد.

برای آن که بدانید CRC چگونه کار می کند، توصیه میکنم href=”https://unari.ir/crc-cyclic-redundancy-check/”>مقاله  CRC را مطالعه کنید.

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

البته این ارسال مجدد شامل بسته های Advertising نیست. 

چون بسته های Advertising تا زمانی که اتصالی برقرار نشده است ، در فواصل زمانی مختلف به طور اتوماتیک ارسال می شوند.

  • تجمیع داده

2.2.2- L2CAP (Link Manager Protocol)

  • برقراری ارتباط بین Master با Slave

بعد از ارسال بسته های Advertising توسط Slave و پیدا شدن آن دستگاه توسط Master حالا وقت اتصال دستگاه Master با  Slave می باشد.

برای این کار، لایه پیونده داده در سمت Master ابتدا یک بسته “درخواست اتصال” به Slave ارسال می کند که بسته از طریق لایه فیزیکی به دستگاه مقصد ارسال می شود.

این بسته شامل موارد زیر می باشد:

  • Access Address : تعیین کننده آدرس دستگاهی می باشد که قصد اتصال به آن را دارد.
  • CRC: تعیین نحوه انجام CRC
  • Transmitted window size : تعیین کننده اندازه بسته هایی که باید بین دو دستگاه انتقال یابند.

2.3- لایه میان افزار(Middleware Layer)در پشته بلوتوث

2.3.1- SMP (Security Management Protocol)

همانطور که از اسم این لایه مشخص است، این لایه مستقیما با مسائل امنیتی سر و کار دارد.

لایه SMP باید مطمئن شود که اتصالات برقرار شده و بسته های رسیده مطمئن و امن هستند.

2.3.2- GAP (Generic Access Profile)

این لایه سطح دسترسی لایه پیوند داده ، نقش دستگاه (Master یا Slave ) و نوع اتصال (بلند مدت یا کوتاه مدت) را مشخص می کند. 

لایه پیوند داده برحسب اینکه پروتکل GAP بر روی چه حالتی است، بسته ها را فرمت می کند.

 

لایه GAAP شامل 4 حالت می باشد:

  • Broadcaster : این حالت نشان می دهد که دستگاه از قبل به یک دستگاه مشخصی متصل است و همچنان قصد ادامه اتصال به آن دستگاه (برای ارسال داده) را دارد.

  • Observer : در این حالت دستگاه هنوز به هیچ دستگاه بلوتوثی دیگری متصل نیست و فقط قصد اسکن کردن دستگاه های بلوتوثی مجاور خودش را دارد. بنابراین در این حالت، دستگاه فقط قصد خواندن بسته های Advertising را دارد.

  • Central : زمانی که شما بلوتوث های مجاور را اسکن کردید و یکی از بلوتوث ها را انتخاب و تایید می کنید، این لایه به لایه پیوند داده دستور می دهد تا بسته “درخواست اتصال” را به لایه فیزیکی ارسال کند.

  • Peripheral : مثلا زمانی که شما با گوشی خود، یک دستگاه هندزفری بلوتوثی را تایید می کنید، لایه GAP مربوط به هندز فری بر روی این حالت قرار می گیرد و به لایه پیوند داده نشان می دهد که خواستار اتصال به دستگاه گوشی شما می باشد.

2.3.3- GAAT (Generic Attribute Profile)

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

به عبارت دیگر، این لایه زمانی فعال می شود که از قبل اتصالات توسط لایه GAAP مشخص شده باشد.

لایه GAAT از پروتکل ATT (Attribute) برای انتقال داده استفاده می کند. این لایه در واقع از چندین پروفایل تشکیل شده است.

مثلا یک مچ بند بلوتوثی را در نظر بگیرید که می خواهد علائم حیاتی بدن شما (مثل ضربان قلب، سرعت حرکت، مسافت طی شده و …) را به گوشیتان ارسال کند.

پشته بلوتوث - لایه GAT
شکل 5 - لایه GAAT

در این دستگاه، لایه GAAT از دو پروفایل تشکیل شده است: یک پروفایل مربوط به علائم حیاتی است و پروفایل دیگر مربوط به سرعت و مسافت .

هر پروفایل دارای یک سرویس و چندین ویژگی(در این مثال ویژگی ها همان سنسور ها هستند) می باشد که در واقع یک قطعه سخت افزاری است. 

2.3- لایه کاربرد(Application Layer) در پشته بلوتوث

بالاترین لایه در هر مدل شبکه ای، لایه کابرد می باشد. این لایه شامل دستوراتی می باشد که از طرف کاربر یا از طرف نرم فزارها ایجاد می شود. 

مطالب مرتبط و تکمیلی: