پیشنویس:سیفال
"این مقاله در حال ترجمه از ویکی انگلیسی است لطفا حذف نشود."
سیفال (Cyphal) یک پروتکل سبک است که برای ارتباطات قابل اعتماد درون-وسیله نقلیه با استفاده از انواع مختلف انتقالهای ارتباطی طراحی شده است. این پروتکل در ابتدا برای استفاده در CAN bus طراحی شده بود اما در نسخههای بعدی، هدف آن انواع مختلف شبکهها است. OpenCyphal یک پروژه منبع باز است که هدف آن ارائه پیادهسازیهای پروتکل سیفال تحت مجوز ام آی تی (MIT) است. این پروژه پیش از تغییر نام در مارس 2022، به عنوان UAVCAN (محاسبات و شبکهسازی سطح کاربردی ساده برای وسایل نقلیه) شناخته میشد.
تاریخچه
[ویرایش]اولین RFC که به طور کلی اصول طراحی اصلی سایفال (با نام تجاری UAVCAN در آن زمان) را بیان میکرد، در اوایل سال ۲۰۱۴ منتشر شد. این مستند به واکنش نسبت به کمبود فناوری مناسب منتشر شد که میتوانست تبادل دادههای بین اجزای توزیعشده واقعی زمان واقعی درون وسایل هوشمند مدرن (به طور اصلی هواپیماهای بدون سرنشین) را تسهیل کند.
از زمان انتشار اولین RFC، این پروتکل سه بار اصلاحراحی کرده و در نهایت در سال 2020 (شش سال بعد) با نام UAVCAN v1.0 نسخه پایدار بلندمدت اولیه را منتشر کرد. در این مدت، این پروتکل در انواع مختلفی از سیستمها ام از وسایل پرواز بدون سرنشین، فضاپیماها رباتهای زیرآبی، ماشینهای مسابقه، سیستمهای رباتیک عمومی و وسایل میکروموبیلیتی به کار گرفته شده است. در سال 2022، این پروتکل با نام سایفال معرفی مجدد شد.
توسط توسعه دهندگان خود، سایفال به عنوان یک جایگزین بسیار قطعی و بهینهشده از چارچوبهای انتشار-اشتراک بالاردهی سطح بالا مانند DDS یا گراف محاسباتی ROS معرفی شده است که کافی جمع و ساده است تا بتواند در برنامههای عالی-اطمینان عمیقاً تعبیهشده قابل استفاده باشد. نشان داده شده است که سایفال با استفاده از کنترلکنندههای میکروبارهای آهنگر خام بههمراه 32K ROM و 8K RAM قابل استفاده است.
این پروتکل باز و میتوان بدون نیاز به تأیید یا هزینههای مجوزی به آزادی مجدد استفاده کرد. توسعه استاندارد هسته و پیادهسازیهای مرجع آن به صورت باز، به منظور هماهنگی از طریق انجمن بحث عمومی انجام میشود. از سال 2020، این پروژه توسط چند سازمان بزرگ از جمله NXP Semiconductors و پروژه Dronecode حمایت میشود.
تاریخچه سایفال در راستای پروتکلهای سریال دیگر
[ویرایش]a. مودباس (MODBUS) اغلب از طریق RS-232 اجرا میشود.
b. DDS از زبان تعریف رابط (IDL) CORBA الهام گرفته است.
c. مودباس از طریق پورت 502 TCP انتقال مییابد.
d. ایرباس به ARINC مراجعه کرده و درخواست توسعه یک استاندارد جدید CAN را مطرح میکند. مایکل استاک تجربیات خود در توسعه CAN Aerospace را ارائه میدهد. نتیجه ARINC-825-1 است.
e. اولین استاندارد AVB توسط گروه کاری AVB از گروه کاری 802.1 از سازمان IEEE منتشر میشود. IEEE1722-2011 منتشر میشود.
f. گروه کاری AVB به گروه کاری TSN تغییر نام میدهد.
g. ROS2 بر اساس DDS ساخته شده است. رسانه معمول برای سیستمهای توزیعشده ROS2 اترنت است.
h. 802.1Qbv و 802.1Qbu منتشر میشوند که اجازه میدهد شبکههای اترنت کاملاً تعیینپذیر تعریف شوند.
i. پاول کیرینکو رهبری تلاش متنبازی را برای تعریف UAVCAN v0 به عهده میگیرد. ابتدا، فقط از CAN 2.0B پشتیبانی میکند.
k. ARINC 825-4 پشتیبانی از CAN-FD را اضافه میکند و تونلینگ روی ARINC-664 را تعریف میکند.
m. 10 BASE T1S به IEEE 802.3 اضافه میشود که اترنت نیمهدوپلکس، دوسیمه، چندگیتی با اجتناب از تصادف در سطح فیزیکی (PLCA) را تعریف میکند. این مشخصه برای موارد استفاده اتومبیلی و صنعتی هدفمند شده است (مانند جایگزینی MODBUS).
n. Airbus A380 پایان تولید مییابد.
o. UAVCAN v1 به وضعیت بتا میرسد.
p. DroneCAN مسئولیت نگهداری مشخصه UAVCAN v0/v0.5 را بر عهده میگیرد و پیشرفتهای لازم را در آن ایجاد میکند.
q. UAVCAN v1 به نام Cyphal تغییر نام میدهد.
طرح
[ویرایش]Cyphal فراهم میکند واژههای بدون هزینه که قابل دسترس و آشنا برای مهندسان نرمافزار هستند و بدون تخلف از ایمنی تابعیتی و قطعیت استفاده میکنند. به عنوان یک فناوری جدید، بدون بار وراثتی است و به طور چشمگیری از پیشرفتهای اخیر در زمینه فناوری اطلاعات عمومی الهام میگیرد. این پروتکل یک مدل ارتباطی publish-subscribe بدون وعیت ارائه میدهد که یک گره میتواند فورا پس از اتصال به شبکه به عملیات خود شروع کند تا به بنامههای با کیفیت بالا منطبق شود.
این پروتکل دارای دو اجزای اصلی کاملاً جدا از هم است: لایه حمل و نقل که بر روی شبکههای موثر خودرویی مانند اترنت یا CAN FD عمل میکند، و لایه ارائه (سریالسازی) غیر وابسته به حمل و نقل بر اساس زبان توضیح ساختار داده (DSDL) مشهور است. نشان داده شده است که این پروتکل قابل پیادهسازی در کمتر از 1000 خط منطقی کد است.
اصول اصلی
[ویرایش]این پروتکل بر اساس اصول طراحی اصلی زیر ساخته شده است که هدف آن اطمینان از این است که راهحل مناسب برای سیستمهای خودرویی پیچیده و کریتیک ایمن مدرن باشد.
شبکه دموکراتیک - هیچ گره اصلی وجود ندارد. تمام گرهها در شبکه حقوق ارتباطی یکسانی دارند؛ هیچ نقطه تکیلی وجود ندارد.
تسهیل ایمنی عملکردی - طراحان سیستمهای Cyphal تضمینات و ابزارهای لازم برای تجزیه و تحلیل سیستم و اطمینان از رفتار صحیح آن را در اختیار دارند.
ابسترکشنهای ارتباطی سطح بالا - این پروتکل انتشار/اشتراک و فراخوانی از روشهای ارتباطی با انواع دادههای تعریف شده و بررسی شده به صورت استاتیک (اسکیما) را پشتیبانی میکند. انواع دادههای استفاده شده برای ارتباط به صورت واضح و بدون وابستگی به پلتفرم تعریف شدهاند که به راحتی توسط هم ماشینها و هم انسانها قابل فهم است.
تسهیل تعاملات مشترک انبوهسازی - Cyphal پایهای مشترک را فراهم میکند که تولیدکنندگان مختلف میتوانند بر آن ساخته و اطمینان حاصل کنند که تجهیزاتشان تعاملی دارند. Cyphal مجموعهای عمومی از انواع دادههای ارتباطی استاندارد و بیوابسته به برنامه را ارائه میدهد.
توابع سطح بالایی عمومی خوب تعریف شده - Cyphal خدمات و پیامهای استاندارد را برای توابع عمومی سطح بالا مانند: کشف شبکه، پیکربندی گره، بهروزرسانی نرمافزار گره، نظارت بر وضعیت گره، همگامسازی زمان سراسری شبکه، پشتیبانی از گرههای پلاگ-اند-پلی و غیره تعریف میکند.
ابسترکشنهای داده اتمی - گرهها قادر به تبادل ساختارهای دادهای بزرگتر از ظرفیت یک فریم حمل و نقل تکی هستند. Cyphal اجرای تجزیه و ترکیب دادهها به صورت خودکار در سطح پروتکل را انجام میدهد و پیچیدگی مربوطه را از برنامه مخفی میکند.
نرخ انتقال بالا، تاخیر پایین، قطعیت - Cyphal هزینه بسیار پایینی به پروتکل حمل و نقل پایه اضافه میکند که اطمینان از نرخ انتقال بالا و تاخیر پایین را فراهم میکند. این ویژگیها باعث میشود Cyphal برای برنامههای زمان واقعی سخت مناسب باشد.
پشتیبانی از رابطها و گرههای تکراری - Cyphal برای برنامههایی که نیاز به تکراریته ماژولار دارند مناسب است.
منطق ساده، نیازهای محاسباتی پایین - Cyphal هدفمند به انواع گستردهای از سیستمهای تعبیه شده از رایانههای برد داخلی با عملکرد بالا تا کنترلکنندههای میکروکنترلری منابع بسیار محدود میرسد. این ارزان در حمایت از نیروی محاسباتی و ساعتهای مهندسی است و ویژگیهای پیشرفته به صورت تدریجی و به اندازه نیاز قابل پیادهسازی است.
ابسترکشنهای داده و رابط گنریک تعریف شده - یک زبان توصیف رابط بخشی اصلی از فناوری است که به زیرسیستمهای تعبیه شده به صورت مستقیم (و به شکل قابل نگهداری) امکان تعامل با سیستمهای سطح بالاتر را فراهم میکند، در حالی که شبیهسازی و آزمون عملکردی را ممکن میسازد.
پشتیبانی از انواع پروتکلهای حمل و نقل - Cyphal با چندین حمل و نقل مختلف قابل استفاده است و میتواند برای پشتیبانی از سایر پروتکلهای حمل و نقل در آینده گسترده شود.
استاندارد بیوابسته به API - برخلاف برخی استانداردهای شبکهسازی دیگر، Cyphal تلاشی برای توصیف رابط برنامه کاربردی (API) نمیکند. هر جزئیاتی که بر رفتار یک پیادهسازی قابل مشاهده توسط سایر شرکتکنندگان در شبکه تأثیری نگذارد، خارج از دامنه مشخصات فنی است.
مشخصات باز و اجراهای مرجع - مشخصات Cyphal باز و رایگان برای همه استفادهکنندگان است و همواره زیر مجوز MIT اجازهنامهای یا به دامنه عمومی منتشر میشود.
لایه حمل و نقل
[ویرایش]Cyphal/CAN
[ویرایش]حمل و نقل CAN بر روی CAN و CAN FD با استفاده از شناسههای 29 بیتی ساخته شده است. بارگذاری CAN شامل یک هدف کردن اندازه ثابت یک بایت برای نیازهای لایه حمل و نقل است.
Cyphal/UDP
[ویرایش]حمل و نقل Cyphal/UDP برای شبکههای وسایل نقلیه مبتنی بر اترنت زمان واقعی پیشنهاد شده است. طراحی این حمل و نقل تحت تأثیر AFDX، DDS/RTPS و SOME/IP قرار دارد.
انواع داده های استاندارد
[ویرایش]مانند دیگر فناوریهای مشابه، Cyphal یک کتابخانه از انواع دادههای مشترک ارائه میدهد که توسط نگهدارندگان پروتکل مدیریت و نظارت میشود و برای حل مسائل مشترک در برنامههای محبوب ایجاد شدهاند. این انواع دادهها انواع دادههای مخصوص تولیدکنندگان یا برنامههای خاص توسط افرادی که آنها را انتخاب میکنند، تکمیل میکنند، مانند یک زبان برنامهنویسی که به طور معمول یک کتابخانه استاندارد را تعریف میکند که توسط نرمافزار توسط کاربر توسعه داده شده باید برای استفاده از آن مورد اعتماد قرار گیرد. مشخصات پروتکل مجموعهای از قوانین را فراهم میکند که هدفش جلوگیری از تداخل و بهبود تعامل انواع دادههایی است که توسط تولیدکنندگان مستقل تعریف شدهاند.