DSHOT پروتکل ارتباطی جدید بین فلایت کنترل (FC) و اسپید کنترل(ESC) است که توسط شرکت Flyduino و با همکاری Betaflight ارتقاء پیدا کرده و دارای 4 زیر مجموعه اصلی DShot150 , DShot300 , DShot600 و DShot1200 میباشد.
این پروتکل نیز مانند سایر پروتکل های ارتباطی اسپید کنترل بر اساس طول پالس عمل می کند اما بر خلاف پروتکل های ONESHOT و MULTISHOT که آنالوگ هستند،پروتکل dshot دیجیتال می باشد.در پروتکل دیجیتال هر پالس نمایانگر یک بیت است.مدت زمانی که طول میکشد یک پالس فرستاده شود که با فاصله زمانی بین پالس ها نیز رابطه دارد صفر و یا یک بودن پالس را تعیین میکند.فلایت کنترلر با استفاده از DMA که مخفف direct memory access است و قابلیت ساعت میکروکنترلر ها توانایی ساخت این گونه پالس ها را دارد.
مزایای پروتکل Dshot
در مقایسه با پروتکل های PWM آنالوگ مانند multishot و oneshot ما پروتکل Dshot را به دلایل زیر برتر میدانیم
- عدم نیاز به کالیبره کردن اسپید کنترل(ESC).
- سیگنال دقیق تر و مقاوم تر در برابر نویز های الکتریکی.
- امنیت بالای سیگنال در تشخیص و رد اطلاعات ناقص.
تفاوت اصلی بین پروتکل های دیجیتال و آنالوگ
پروتکل های ارتباطی نظیر ، oneshot125 ، oneshot42 و Multishot همگی زیر مجموعه پروتکل های آنالوگ هستند. در پروتکل های آنالوگ،مقدار اطلاعات فرستاده شده بر اساس طول پالس های الکتریکی عمل میکند.سیگنال های آنالوگ دارای مشکلات زیادی هستند زیرا:
- با توجه به احتمال متغیر بودن سرعت نوسانگر ها در فلایت کنترل و اسپید کنترل،طول پالس ها ممکن است دقیق اندازه گیری نشود به این دلیل که سرعت انتقال داده در حد میکرو ثانیه می باشد و این مشکل مهم ترین دلیل جهت کالیبراسیون اسپید کنترل ها است.
- نویز های الکتریکی میتوانند بر سیگنال های آنالوگ تاثیر گذاشته و آن ها را خراب کنند.به به همین خاطر توصیه میشود برای افزایش عملکرد پرواز سرعت اپدیت مقدار ورودی به موتور را برای هر حلقه ضرایب pid بیشتر کنیم.به این خاطر که فرستادن چند باره مقدار های یکسان به موتور باعث کاهش مقدار میانگین خطا شده و دقت را افزایش میدهد.
اما با استفاده از پروتکل های دیجیتال این مشکلات به وجود نمی آیند و کالیبره کردن اسپید کنترل مورد نیاز نیست .این امر به دلیل خاصیت طبیعی سیگنال های دیجیتال است که بر پایه اعداد صفر و یک هستند وباعث میشوند این پروتکل بیشتر در برابر نویز های الکتریکی مقاومت کنند.
پروتکل dshot چقدر سریع است؟
پروتکل Dshot دارای 4 زیر مجموعه با سرعت های مختلف به نام های Dshot600 ، Dshot300 و Dshot150 و Dshot1200 است که سرعت انتقال داده در هرکدام به ترتیب زیر تعریف میشود.
- DShot1200 – 1,200,000 bits/Sec
- DShot600 – 600,000 bits/Sec
- DShot300 – 300,000 bits/Sec
- DShot150 – 150,000 bits/Sec
محاسبه تاخیر در انتقال داده
در وهله اول ما نیازداریم تا تعداد بیت های هر بخش را بدانیم.سپس این عدد را بر سرعت پروتکل تقسیم کنیم.به صورت نرمال هر بخش از اطلاعات پروتکل dshot از 16 بیت تشکیل شده است.11 بیت برای throttle که متشکل است از2048steps ، یک بیت برای تلمتری و 4 بیت برای CRC که مخفف cyclic redundancy check است .به عنوان مثال پروتکل dshot600 دارای سیگنال us 600/000 = 37500Hz = 37.5KHz میباشد.این عدد به این معنی است که برای انتقال داده throttle از فلایت کنترل به اسپید کنترل به 26.7uS زمان نیاز داریم.
مقایسه سرعت پروتکل های دیجیتال و آنالوگ
با مقایسه پروتکل های مختلف آنالوگ و دیجیتال در trotlle صد در صدی خواهیم داشت:
- Oneshot125 – 250 uS
- DShot150 – 106.7 uS
- Oneshot42 – 84 uS
- DShot300 – 53.3 uS
- DShot600 – 26.7 uS
- Multishot – 25 uS
- DShot1200 – 13 uS
سرعت بالای انتقال داده در پروتکل dshot از لحاظ تئوری به فلایت کنترل(FC) اجازه میدهد تا به سرعت انجام حلقه 33kHz برسد.البته نمیتواند به سرعت 37.5KHz برسد به این دلیل که نیاز است تا بین مقادیر کمی فضای خالی نیز وجود داشته باشد.
چه سخت افزاری پروتکل DSHOT را پشتیبانی میکند؟
اسپید کنترل(ESC)
در گذشته صرفا اسپید کنترل هایی که از فریمور BLHELI استفاده میکردند مانند Cicada, Racerstar V2, Aikon SEFM, TBS 25A, Lumenier 30Aو DYS XS30A قادر به پشتیبانی از پروتکل DSHOT150 و DSHOT300 بودند.
اما امروزه اکثر اسپید کنترل های موجود در بازار مانند kiss پروتکل dshot را به طور کامل پشیبانی میکنند اما همانطور که گفته شد برخی از انواع قدیمی آن که حد اقل یک سال پیش تولید شده باشند در پشتیبانی از این پروتکل دچار مشکل میشوند.در برخی از این اسپید های قدیمی خازنی به منظور فیلتر نویز های ورودی قرار داده شده که باعث فیلتر شدن پروتکل dshot به دلیل فرکانس بالای آن میشوند و شما میتوانید با حذف این خازن از فیلتر شدن فرکانس dshot جلوگیری کرده و از این پروتکل در اسپید استفاده کنید.
برای استفاده از پروتکل DShot1200 باید صرفا از Lumenier BLHeli_32 استفاده کنید.این اسپید کنترل که به تازگی عرضه شده است سرعتی بالاتر از سرعت Multishot دارد.
فلایت کنترل(FC)
برای استفاده از پروتکل DSHOT شما نیاز به فلایت کنترلی با پدازنده F3 ,F4 و یا F7 هستید.چرا که پردازنده هایی نظیر F1 که فلایت کنترل های NAZE و CC3D شامل آن میشود، دارای کانال های DMA کافی نیستند.