ما را در شبکههای اجتماعی دنبال کنید:
مروری بر استاندارد ARINC 661: معماری نسل جدید نمایشگرهای کابین
در اواخر قرن بیستم، طراحی و ساخت نمایشگرهای کابین خلبان به دلیل انتشار استاندارد DO-178B دشوارتر شد. در این شرایط بسیاری از توسعهدهندگان سیستمهای کابین خلبان به دلیل عدم وجود سندهای راهنما و ضمیمههای کمکی، از روشهای ابتکاری خودشان برای طراحی نمایشگرها و اصول عوامل انسانی در رابطهای کاربری آن استفاده کردهاند. این فقدان استاندارد و یکپارچگی بین طراحیها باعث میشد تا هر شرکت سیستمهایی با ساختار و قالب تعیین شده از سوی خود تولید کنند. در این شرایط کار برای شرکتهایی که توسعهدهنده اپلیکیشنها و برنامههای نرمافزاری نمایشگرهای کابین خلبان هستند، دشوارتر میشد. چرا که آنها باید در صورت تغییر سختافزار از سوی شرکت سازنده دستگاه یا تغییراتی در برنامه نرمافزاری خود، فرایند اخذ گواهینامه را مجدد طی کنند. این مسئله از دید سازندگان نهایی هواپیما نیز یک چالش بزرگ محسوب میشود. چرا که تغییرات مداوم سیستمها یا استفاده از دیگر تولیدکنندگان تجهیزات در طول چرخه عمر یک هواپیما، ضعف بزرگی است.
در دهه 1990 میلادی کمیتهای از نمایندگان صنعت هوایی برای مقابله با این نگرانیها و ایجاد یک معماری استاندارد و انعطافپذیر تشکیل شد. نتیجه بررسیها و راهحلهای پیشنهادی از سوی آنها توسعه و انتشار استاندارد ARINC 661 بود. این استاندارد با عنوان «رابطهای سیستم نمایش کابین با سیستم های کاربر[1]» از سال 2001 بهطور رسمی در اختیار تولیدکنندگان نمایشگرها و توسعهدهندگان اپلیکیشنهای کابین خلبان قرار گرفت. از اولین نمونه پروژههایی که از استاندارد ARINC 661 در سیستمهای نمایشگر خود استفاده کردهاند میتوان به ایرباس A380 و A400M، بوئینگ 787 و همچنین نسخه ارتقاء یافته بالگرد AgustaWestland AW101 اشاره کرد.
مروری بر ساختار و معماری استاندارد ARINC 661
در ابتدای این استاندارد عنوان شده است که هدف از توسعه آن تعریف یک چارچوب و قاعده مشخص برای رابط سیستم نمایشگر کابین ([2]CDS) در انواع هواپیماها است. هدف اصلی سند این است که بهصورت مستقیم یا غیرمستقیم هزینههای شرکتهای هواپیمایی را با انجام موارد زیر، به حداقل برساند:
- حداقلرسانی هزینههای خرید سیستمهای اویونیک جدید با کاهش هزینههای توسعه CDS
- حداقلرسانی هزینه اضافه کردن توابع و قابلیتهای جدید به نمایشگرهای کابین در طول عمر یک هواپیما
- حداقلرسانی هزینه مدیریت منسوخشدگی سختافزار برای مناطقی که در آنها فناوری با سرعت زیاد رشد میکند.
- معرفی سیستمهای تعاملی به کابین خلبان. از اینرو زمینهای برای تولیدکنندگان نهایی هواپیما به منظور استاندارد کردن رابط انسان- ماشین (HMI) در کابین خلبان فراهم می شود.
بر خلاف نرمافزار نمایشگرهای کابین قدیمی که بهصورت یک برنامه اجرایی واحد دادهها، قوانین و منطق را بهصورت گرافیکی ارائه میکردند، استاندارد ARINC 661 بهصورت واضح بین کد ترسیمکننده گرافیکها و کد مدیریت منطق و وضعیت همه عناصر گرافیکی تفکیک ایجاد میکند. در سند مذکور این دو بخش با نام CDS و UA (اپلیکیشن کاربر) عنوان میشوند. به عبارت سادهتر CDS یک موتور تفسیر (Rendering) است که به منظور ارائه اطلاعات گرافیکی استفاده میشود و UA نیز بخش منطق را برای نمایشگر، کنترل میکند. استاندارد ARINC 661 یک پروتکل رابط برای تسهیل ارتباطات بین CDS و UA تعریف میکند. البته باید یادآور شد که استاندارد مذکور یک ساختار گذرگاه داده خاص را برای انجام تبادل داده بین CDS و UA معرفی نمیکند. این بدان معناست که طراح سیستم میتواند متناسب با نیاز سیستم و ابزار خود، از پروتکلهایی مانند ARINC 429، اترنت یا ARINC 664 برای این ارتباط استفاده کند.
استاندارد ARINC 661 به مجموعهای از اشیاء رابط کاربری گرافیکی متکی است که با نام ابزارک (widget) شناخته میشوند. استفاده از کتابخانه ابزارکها، امکان تفکیک بین کد ترسیمکننده گرافیکها و کد مدیریت منطق را فراهم میکند.
شکل 1 رابطه بین CDS و UA همراه با محیط اجرای معمول آنها را نشان میدهد. این تصویر بیان میکند که بیش از یک UA میتواند با CDS ارتباط داشته باشد. در این شرایط، هر اپلیکیشن کاربری میتواند بهطور کاملا جداگانه و توسط شرکت متفاوت توسعه یافته باشد. همچنین هر اپلیکیشن تنها مسئولیت بروزرسانی و واکنش به رویدادهای یک بخش خاص از نمایشگر را دارد.
شکل 1- ارتباطات بین اجزای اصلی (CDS و UA) در معماری استاندارد ARINC 661
یک مزیت مهم در این معماری این است که در صورت نیاز برای بروزرسانی روی فریمهای صفحه نمایش، کافیست یک فایل طرح جدید ایجاد شود. این در حالی است که در معماریهای قدیم، تغییرات باید روی کدهای اپلیکیشن انجام میشد. این بدان معناست که برای ایجاد تغییر در چیدمان عنصرهای گرافیکی صفحه نمایش مانند جابجایی موقعیت یک ابزارک یا تغییر اسامی، نیازی به کامپایل مجدد و اخد گواهینامه برای کدهای UA و CDS نیست. این مزیت برای ایجاد تغییرات در بخش اپلیکیشن نیز وجود دارد. زیرا تغییرات روی یک اپلیکیشن کاربری خاص تنها روی خود آن اثرگذار است و نیازی به ایجاد تغییر در کدهای CDS یا سایر اپلیکیشنهای کاربری نخواهد بود. فراتر از بحث ایجاد فضای ایزوله بین بخشهای مختلف، این معماری امکان توزیع فرایند توسعه برنامهها را بین گروههای مختلف یک شرکت یا حتی شرکتهای پیمانکار فرعی سادهتر میکند.
در معماری تعیین شده برای استاندارد ARINC 661، سیستم CDS ابزارکها را بر اساس یک یا چند فایل طرحبندی که در اصطلاح فایل تعریف (DF[3]) نامیده میشوند، بارگیری و نمایش میدهد. هر DF دربردارنده یک یا چند لایه است که شامل لیست سلسلهمراتبی از تمام ابزارکهایی میشود که باید همراه با پارامترهای اولیه خود مانند موقعیت، ابعاد و وضوح بارگیری شوند. این فایلها معمولا در فرمت باینری ذخیره و در هنگام اجرا، توسط CDS بارگیری میشوند. این استاندارد همچنین فرمت XML را برای بازرسی، کنترل نسخههای جدید و اشتراکگذاری DFها تعریف کرده است.
نرمافزار CDS از یک هسته (kernel) تشکیل شده است که میتواند سلسله مراتب رابط کاربری گرافیکی مشخص شده در DF را هنگام تنظیمات اولیه ایجاد کند، بنابراین در صورت تغییر تعریف GUI، نیازی به کامپایل مجدد نیست.
شکل 2- معماری کامل استاندارد ARINC 661
در یک سطح پایینتر، نمایشگر فیزیکی متصلشده به CDS به چند زیربخش تقسیم میشود که با نام پنجره شناخته میشوند. هر پنجره میتواند شامل یک یا چند لایه باشد. این پنجرهها ماهیتی مشابه با پنجرههای سیستمعامل ویندوز دارند، اما محدودیتهای بیشتری در اینجا وجود دارد. به عنوان مثال بر خلاف ویندوز، طبق استاندارد ARINC 661 در نمایشگرهای کابین پنجرهها امکان همپوشانی ندارند. شکل 3 سلسله مراتب پنجره و لایهها را در CDS نشان میدهد.
شکل 3- سلسله مراتب پنجرهها، لایهها و ابزارکها در CDS
در هنگام اجرا، CDS بهطور مداوم ورودیهای خلبان را کنترل میکند. در صورت وجود یک ورودی، ابتدا بررسی میشود که آیا لازم به اجرای یک عکسالعمل در خود CDS هست یا خیر. سپس دستور ورودی در صورت لزوم برای UA ارسال میشود. به عنوان مثال یک دکمه را روی نمایشگر در نظر بگیرید. در صورتی که خلبان آن را لمس کند، ابتدا نمایشگر به نحوی (تغییر رنگ یا تغییر ابعاد) فعال شدن آن را برای خلبان نمایش دهد و سپس این رویداد را برای اعمال تغییرات به UA ارسال کند. سپس ممکن است UA لازم باشد متناسب با این رویداد، دستور یک تغییر را در صفحه نمایش به CDS ایجاد کند. علاوه بر این UAها بهطور معمول پیامهای ثابتی به CDS ارسال میکنند تا موقعیت همه عناصر صفحه نمایش را بروزرسانی کنند.
هنگام درخواست گواهینامه برای سیستمهای مبتنی بر این معماری، ایجاد نیازمندیهای سطح بالا و سطح پایین بسیار ساده خواهد بود. همچنین استفاده از فرمت استاندارد مبادله XML برای فایلهای تعریف، انعطافپذیری بالایی به توسعهدهندگان نرمافزار میدهد تا بتوانند از سیستمهای CDS فروشندگان مختلف که سازگار با استاندارد ARINC 661 هستند، استفاده کنند؛ البته قابلیت مهم دیگر این است که با تغییرات ظاهری کم ابزارکها داخل کتابخانه CDS، میتوان از فایلهای تعریف و اپلیکیشنهای کاربری (UA) یک سیستم در پروژههای جدید استفاده کرد.
کتابخانه ابزارکهای استاندارد
استاندارد ARINC 661 به جای محدودکردن طراحان سیستم به مجموعهای از عناصر سازنده برنامه یا ساخت یک معماری سفارشی در هر پروژه، تعداد 42 ابزارک (در اولین نسخه استاندارد) را معرفی میکند که میتواند برای ایجاد طرح صفحه نمایشها استفاده شوند. در نسخههای بعدی استاندارد، تعداد ابزارکها افزایش یافته است. به عنوان مثال در نسخه 2013، شاهد 79 ابزارک و همچنین 10 افزونه ابزارک هستیم. افزونهها ویژگیهای جدیدی را به ابزارکهای موجود اضافه میکنند. همچنین از نسخه 2016 قابلیت انیمیشن به برخی از عناصر ابزارکها افزوده شده است.
پیچیدگی کار با ابزارکها تنوع زیادی دارد. به عنوان مثال ابزارک ترسیم یک خط (GpLine) یا ترسیم یک مستطیل (GpRectangle) بسیار ساده هستند، اما کار با ابزارک مدیریت نقشه (MAPHORZ) که وظیفه جمعآوری اطلاعات از منابع مختلف و نمایش موقعیت آنها روی نقشه را دارد، ممکن است پیچیده باشد.
برخی از ابزارکها ممکن است هیچ نمای گرافیکی مستقلی ارائه ندهند و تنها در ترکیب با سایر ابزارکها موثر واقع شوند. به عنوان مثال یک ابزارک میتواند برای ایجاد گروه بین چند عنصر استفاده شود و در هر لحظه یکی از این عناصر را برای خلبان نمایش دهد.
شکل 4- نمونههایی از ابزارکهای ساده گرافیکی تعریف شده در استاندارد ARINC 661
انواع ابزارکها
طبق نسخه سال 2010 استاندارد ARINC 661، بهطور کلی 8 دستهبندی برای ابزارکها وجود دارد که بشرح زیر هستند:
- کانتینر: یک ابزارک که میتواند شامل تعدادی ابزارک دیگر برای تعریف سلسله مراتب یا ارائه عملکردهای آنها باشد.
- ارائهدهنده گرافیک: ابزارکهایی که ترسیم گرافیک هستند.
- رشته متنی: ابزارکی برای نمایش متنهای ساده
- تعاملی: ابزارکهایی که برای تعامل با کاربر در نظر گرفته میشوند. مانند دکمههای لمسی
- مدیریت نقشه: ابزارکهایی برای تفسیر و مدیریت نمایش نقشه روی نمایشگرهای سازگار با استاندارد
- ابزاری: شامل ابزارکهایی که گرافیکی را روی نمایشگر ارائه نمیدهند و توابع خاصی را در رابطه با عملکرد مجموعه ارائه میدهند. مانند ابزارک بافر دادهها
- اعتبارسنجی اپلیکیشن کاربری: ابزارکهایی که لازم است رویدادهایشان توسط UA تایید شود.
شکل 5- مثالهایی از ابزارکهای مختلف در دستهبندیهای تعریف شده توسط استاندارد ARINC 661
هرچند استاندارد ARINC 661 برای سازگاری هر چه بیشتر سختافزار و نرمافزار سیستمهای نمایشگر کابین نحوه عملکرد ابزارکها و پارامترهای آنها را توصیف میکند، اما در مورد ظاهر گرافیکی آنها محدودیتی قائل نشده است. این باعث میشود تا تولیدکنندگان نمایشگرها آزادی عمل بیشتری برای ایجاد خلاقیت در طرحهای گرافیکی محصولات خود داشته باشند. البته در استاندارد یک قانون وجود دارد که به توسعهدهندگان اجازه ساخت ابزارکهای سفارشی با قید رعایت پارامترها و عملکردی متناسب با الگوی ابزارکهای عمومی، را میدهد.
داشتن مجموعهای از ابزارکهای استاندارد برای توسعه یک نمایشگر، به طراحان در درک سریع و صحیح خواستههای استاندارد ARINC 661 و چگونگی توسعه یک نمایشگر جدید کمک میکند. این مجموعه استاندارد از ابزارکها همچنین به جمعآوری آسانتر مستندات طراحی و نیازمندیهای سیستم در سطح پایین پروژه و تسهیل فرایند اخذ گواهینامهها کمک میکند.
فصل سوم استاندارد بهطور اختصاصی به بحث ابزارکها، چگونگی استفاده از آن و پارامترهای مربوط به هر ابزارک میپردازد. توضیحات این بخش بهطور کامل به توسعهدهندگان نحوه بکارگیری ابزارکها را در اپلیکیشنها میدهد.
نسخه جدید استاندارد
سپتامبر سال 2020 نسخه جدیدی از استاندارد منتشر شد. در این نسخه 11 ابزارک جدید در رابطه با نقشههای سه بعدی و 7 افزونه ابزارک جدید به کتابخانه اضافه شده است.
پلتفرمهای طراحی سیستمهای مبتنی بر استاندارد ARINC 661
از شرکت PRESAGIS میتوان به عنوان یکی از پیشتازان توسعه ابزار طراحی نرمافزارهای گرافیکی کابین خلبان نام برد. یکی از محصولات این شرکت پلتفرم توسعه UA و CDS مبتنی بر استاندارد ARINC 661 است. طراحان با استفاده از این پلتفرم میتوانند به راحتی از ابزارکهای استاندارد یا ابزارکهای سفارشیسازی شده استفاده کنند. در بخش توسعه اپلیکیشنهای کاربری نیز طراح میتواند با استفاده از ابزارهایی مانند MathWorks Simulink یا IBM Rational به راحتی برنامه خود را پیادهسازی کند.
در نسخه شماره 40 مجله اویونیک بهطور کامل یکی دیگر از پلتفرمهای نرمافزاری این شرکت با نام VAPS XT اشاره کردیم که برای طراحی اپلیکیشنهای مربوط به صفحات نمایش در کابین هواپیما و خودروها کاربرد دارد. ترکیب این دو پلتفرم نرمافزاری و افزونههای دیگری که توسط شرکت PRESAGIS ارائه میشوند، ابزارهای کاملی در اختیار توسعهدهندگان سیستمهای کابین خلبان قرار میدهد. یکی از مهمترین مزایای استفاده از این مجموعهها، سهولت در جمعآوری مدارک طراحی از مرحله تعریف نیازمندیها تا تهیه نسخه نهایی برنامههای نرمافزاری و اپلیکیشنها است.
شکل 6- معماری پلتفرم VAPS XT مبتنی بر استاندارد ARINC 661
از دیگر ابزارهای طراحی سیستمهای کابین خلبان مبتنی بر استاندارد ARINC 661 میتوان به IData محصولی از شرکت ENSCO اشاره کرد. این پلتفرم نیز قابلیتهای زیادی در اختیار طراحان قرار میدهد تا در کمترین زمان و با استفاده از ابزارکهای زیبا، طرح سیستمهای نمایشگر کابین را پیادهسازی کنند. افزونههای جانبی این پلتفرم نیز امکانات زیادی را در اختیار کاربران میگذارد. به عنوان مثال افزونه IDataMap امکان نمایش نقشههای دو بعدی و سه بعدی متحرک را برای کاربردهای نظامی و تجاری و همچنین ساخت شبیهسازهای پرواز فراهم میکند.
شرکت ANSYS نیز یک نسخه از پلتفرم SCADE خود را متناسب با استاندارد ARINC 661 ارائه کرده است. این پلتفرم یک ابزار شبیهسازی است که مهندسان را قادر به طراحی و ساخت نمونههای اولیه سیستمهای مبتنی بر این استاندارد میکند. این ابزار شامل امکانات کامل برای طراحی نرمافزار CDS و همچنین اپلیکیشنهای کاربردی میشود.
یک منبع باز برای آموزش و شروع کار با استاندارد ARINC 661
یک گروه تحقیقاتی از شرکت فرانسوی Dassault در سال 2007 پروژهای را برای آموزش کار با استاندارد ARINc 661 آغاز کردند. کلیه محتوای آموزشی آنها به همراه کدهای نمونه در آدرس http://j661.sourceforge.net بهصورت رایگان و منبع باز در دسترس قرار دارد. این پروژه شامل معرفی استاندارد مذکور و مفاهیم بنیادی آن، معرفی ابزارکهای مختلف و کدهای نمونه برای پروژههای کوچک میشود.
اختصارات
[1] Cockpit Display System Interfaces to User Systems
[2] Cockpit Display System
[3] Definition File