حسن روشن زاده
مدیر بازنشسته
نرم افزارهایی که در یک واحد کنترل الکترونیکی خودرو استفاده می شود بستگی به پیچیدگی آن دارد. در پیچیده ترین نوع آن ابتدا سیستم عامل بی درنگReal Time Operation system) RTOS ) و نرم افزار های پایه مانند نرم افزارهای مدیریت شبکه، مدیریت حافظه و... بر روی میکرو کنترلر نصب می شوند و سپس برنامه کاربردی از خدمات ارائه شده به وسیله سیستم عامل و نرم افزارهای سیستمی سود می برد. بخش اساسی تکنولوژی واحد کنترل الکترونیکی خودرو مربوط به نرم افزار کاربردی است. این بخش نیروی محرکه اصلی نوآوری در صنعت خودروسازی است. نرم افزارهای مورد نیاز واحدهای کنترل الکترونیکی خودرو به وسیله تولید کنندگان معروف در سطح جهان مانندBOSCH ،ETAST ،AMD ،NEC و MOTOROLA عرضه می شوند. بهبود کیفیت نرم افزار منوط به شیوه ها و ابزارهای مهندسی نرم افزار و استانداردهای نرم افزاری(AUTOSAR ) تولید کد برنامه از مدل، مستندسازی و تست نرم افزار است.
در این مقاله ابزارهای استفاده شده در پروسه توسعه نرم افزار ECU را در مراحل پشتیبانی، تجزیه و تحلیل، پیاده سازی، کدنویسی، آنالیز سخت افزار، ابزارهای تست و عیب یابی و استانداردهایی که به طور مشترک توسط سازندگان خودرو، تامين کنندگان قطعات وابسته و توسعه دهندگان ابزارهاي مربوطه تدوين شده است مورد بررسی قرار می دهیم.
امروزه سیستم های الکترونیکی خودرو در تمامی اجزای اصلی خودرو وارد شده و درصد بالایی از هزینه مربوط به طراحی خودرو را شامل می شود. این سیستم ها با استفاده از علم کنترل و قطعات الکترونیکی باعث افزایش کارایی، ایمنی، رضایتمندی و کاهش آلودگی و مصرف سوخت شده اند.
نرم افزارهای واحد کنترل الکتریکی خودرو به عنوان یکی از ارکان این سیستم ها ازپیچیدگی و دقت خاصی برخوردار بوده و همواره شامل نوآوری های فراوانی هستند. طبق تقسیم بندی کلی، نرم افزارهای ECU موتور از نوع نرم افزارهای تعبیه شده (Embedded System) هستند. این نرم افزارها مبتنی برمیکرو کنترلرهای مخصوص کاربرد خودرویی هستند.
محیط اجرای این نرم افزار می تواند براساس اتفاق (Event) و یا زمان(Real Time) باشد.
ماژول های اصلی نرم افزار براساس طراحی و نیازمندی های اعلام شده می تواند متغیر باشد. تعداد و نوع آنها وابسته به محیط اجرا و معماری کل نرم افزار است.
نرم افزار ECU جدا از معماری آن، دارای سه بخش اصلی به شرح ذیل است:
• ماژول کنترل
• ماژول پروتکل
• ماژول سیستم عامل
ماژول سیستم عامل می تواند توسط طراح پیاده سازی شود و یا از سیستم عامل های استاندارد خودرویی استفاده کند.
ECU واحد کنترل الکتریکی خودرو
مطابق شکل (1) واحد کنترل الکترونیکی به طور معمول داده های لازم را به وسیله حسگرها (Sensors) از محیط پیرامون می گیرد و پس از پردازش آنها، فرمان های مناسب را به عملگرها (Actuators) منتقل می کند. عملگرها به نوبه خود، مطابق فرمان هایی که از ECU می گیرند، ابزارهای مکانیکی، هیدرولیکی، پنوماتیکی یا الکتریکی قابل کنترل را هدایت می کنند.
(AUTOSAR(AUTomotive Open System ARchitecture
نرم افزار ECU در محدوده عملکردي خودرو کار مي کند بنابراین باید از یک استاندار خاص پيروي کند. با رشد و تنوع سیستم هاي مختلف نرم افزاري و سخت افزاري در اين عرصه و پيچيدگي و حساسيت موجود در نحوه صحه گذاري در عملکرد کل سیستم، ايجاد يک رويه استاندارد در اين زمينه بين سازندگان خودرو و سازندگان قطعات مربوطه لازم شد.
AUTOSARمعماري نرم افزار استاندارد شده و قابل توسعه خودرویي را تشکيل می دهد که با مشارکت متخصصاني از PSA Peugeot Citroën، Toyota Motor Corporation،Volkswagen، BMW Group،Ford Motor Company، General Motors، Opel، automotive suppliers Bosch، Continentalو Siemens VDO تهيه و استانداردسازي شده است. مطابق شکل (2)، استاندارد برنامه نویسی AUTOSAR قواعد مربوط به برنامه نویسی نرم افزار پایه در ECU را با نرم افزارهای کاربردی تعمیم داده و ارتباط بین آنها را تعیین می کند.
شکل 2: AUTOSAR قواعدمربوط به برنامه نویسی نرم افزار درECU
بررسی فنی اجزای AUTOSAR
AUTOSAR اهداف فنی زير را دنبال مي کند:
• قابليت استفاده مجدد از توابع وکلاس های نوشته شده
• قابليت تقسيم پذيري(Function Library در شکل 3)
• قابليت انتقال پذيري آسان
• قابليت استفاده در حوزه گسترده ای از محصولات ( Function Integrationدر شکل 3)
شکل 3 : اهداف AUTOSARزنجیره ابزارها (ToolsChain)
مطابق شکل (4) یکی ازمواردی که باید در استفاده از نرم افزارهای خودرو به آن توجه شود، سازگاری ابزارهای استفاده شده با یکدیگراست بطوریکه خروجی یک مرحله با ورودی مرحله بعد سازگار باشد. زنجیره ابزار و عملیات کشف عیب و عیب زدایی در هر مرحله باید کاملا شفاف و تعریف شده باشد.
شکل 4: سازگاری ابزارها با یکدیگرمعرفی ابزارهای استفاده شده در فرایند توسعه نرم افزار ECU
• ابزارهای پشتیبانی نرم افزار
1. Doors
2. QFD/Capture• ابزارهای تجزیه وتحلیل نرم افزار
1. SDL(State Diagram language)
2. State flow
3. State mate• ابزارهای پیاده سازی نرم افزار
1. ASCET
2. Matlab/Simulink
3. MatrixX• ابزارهای کدنویسی نرم افزار
1. Real-time Studio
2. C
3. Borland C++ Builder,Visual C++
4. Visual C#• ابزارهای تست و عیب یابی
1. Hitexابزارهای پشتیبانی نرم افزار (Doors, QFD/Capture)
نرم افزارهای Doorsو QFD/Capture برای کنترل و شبیه سازی پروژه ها به کار می روند. در صنعت خودرو نرم افزارdoors کاربرد بیشتری دارد. Doors یک نرم افزار تحت ویندوز و با کاربری آسان است که در صنعت خودرو برای مدیریت کنترل دسترسی های پروژه به کار می رود. این نرم افزار شامل 256 مرحله است که پیش نیاز ورود به هر مرحله، کامل شدن مرحله قبل
است. این نرم افزار ساختار کل پروژه را دریافت و مرحله به مرحله شبیه سازی و کنترل می کند.
از قابلیت های نرم افزار doors می¬توان به موارد ذیل اشاره کرد:
• اجرا تحت ویندوز 95,98,2000,XP
• دربردارنده توابع کامل Drag &Drop
• امکان باز کردن همزمان چند فرم
• اجرا تحت شبکه
• تعریف در چند لایه
ابزارهای تجزیه و تحلیل(StateFlow,SDL)
ابزارهای تجزیه و تحلیل با استفاده از نمادهاي گرافيكي براي نمايش فرآيند به کار می روند. درصنعت خودرو استفاده از State Diagram ها برای توسعه نرم افزار ECU متداول است.
مزایای استفاده از State Diagram:
1. فرآيند*هاي بزرگ و پيچيده را ملموس و قابل درك مي*كند.
2. كمك مي*كند تا فرآيند بطور جامع و سيستمي مشاهده شود.
3. زمينه*ساز بهبود فرآيند است.
4. از قوت فرآيند اطمينان ایجاد مي*کند.
5. ارتباطات بين اعضاي تيم را تسهيل مي*كند.
6. باعث كاهش هزينه، تسريع توسعه و اصلاح فرآيند مي*شود.
ابزارهای کدنویسی نرم افزار(C, C++, Visual C# )
اولین واحد کنترل الکترونیکی خودرو ( ECUدیجیتالی) توسط شرکت Boschدر دهه 70 به بازارعرضه شدکه نرم افزار آن با زبان C توسعه یافته بود. در آن زمان اين زبان از کاملترین زبان ها محسوب می شد. زبان C توسط شركت هاي متعددي طراحي و ساخته شده است، از جمله اين شركت ها Borland و Microsoft هستند. ویژگی های این زبان اجرا شدن آن تحت سیستم عامل های مهم جهان مانند UNIX, Linux, Windows و تبعیت از استاندارد ANSI C است. با آمدنVisual C++،Borland C++ Builder و Visual C#شرکت های خودرو سازی از این زبان ها هم برای کد نویسی استفاده کردند. یکی از مشخصه های بارز این ابزارها شی گرا بودن آنها است. برنامه*هاي شي*گرا، منظم، ساخت*يافته و قابل بروزرسانی هستند، به سهولت تغيير و بهبود مي*يابند و قابليت اطمينان و پايداري بيشتري دارند. ابزارهای Ascet و سیستم عامل OSEK به وسیله زبان C و ++ Cکد شده اند.
ابزارهای پیاده سازی (ASCET, Matlab/Simulink, MatrixX)
ASCET يکي از محصولات شرکت ETAS است که در سال 1997 توسعه یافته و می توان با استفاده از يک محيط طراحی و بدون داشتن نگراني از مسلط نبودن طراح الگوريتم به زبان هاي برنامه نويسي سطح مياني، توابع اين بخش را پياده سازي و با استفاده از يک مفسر الگوريتم، طرح ها را به زبان C ترجمه کرد تا براي ترجمه نهایي و عمليات بارگذاري در حافظه ECU قرار گيرد. زمان نوشتن نرم افزار با ابزار های ASCETحداقل 30 درصد کم می شود.
اين نرم افزار داراي سه نسخه به شرح زير است:
• ASCET-SE
• ASCET-MD
• ASCET-RP
اعضای خانواده ابزار ASCETبرای پشتیبانی همه مراحل فرآیند توسعه نرم افزار ECU طراحی شده اند. آنها متدلوژی، مکانیزم، و بهترین روش های روز را با هم ادغام می کنند.
در این مقاله ابزارهای استفاده شده در پروسه توسعه نرم افزار ECU را در مراحل پشتیبانی، تجزیه و تحلیل، پیاده سازی، کدنویسی، آنالیز سخت افزار، ابزارهای تست و عیب یابی و استانداردهایی که به طور مشترک توسط سازندگان خودرو، تامين کنندگان قطعات وابسته و توسعه دهندگان ابزارهاي مربوطه تدوين شده است مورد بررسی قرار می دهیم.
امروزه سیستم های الکترونیکی خودرو در تمامی اجزای اصلی خودرو وارد شده و درصد بالایی از هزینه مربوط به طراحی خودرو را شامل می شود. این سیستم ها با استفاده از علم کنترل و قطعات الکترونیکی باعث افزایش کارایی، ایمنی، رضایتمندی و کاهش آلودگی و مصرف سوخت شده اند.
نرم افزارهای واحد کنترل الکتریکی خودرو به عنوان یکی از ارکان این سیستم ها ازپیچیدگی و دقت خاصی برخوردار بوده و همواره شامل نوآوری های فراوانی هستند. طبق تقسیم بندی کلی، نرم افزارهای ECU موتور از نوع نرم افزارهای تعبیه شده (Embedded System) هستند. این نرم افزارها مبتنی برمیکرو کنترلرهای مخصوص کاربرد خودرویی هستند.
محیط اجرای این نرم افزار می تواند براساس اتفاق (Event) و یا زمان(Real Time) باشد.
ماژول های اصلی نرم افزار براساس طراحی و نیازمندی های اعلام شده می تواند متغیر باشد. تعداد و نوع آنها وابسته به محیط اجرا و معماری کل نرم افزار است.
نرم افزار ECU جدا از معماری آن، دارای سه بخش اصلی به شرح ذیل است:
• ماژول کنترل
• ماژول پروتکل
• ماژول سیستم عامل
ماژول سیستم عامل می تواند توسط طراح پیاده سازی شود و یا از سیستم عامل های استاندارد خودرویی استفاده کند.
ECU واحد کنترل الکتریکی خودرو
مطابق شکل (1) واحد کنترل الکترونیکی به طور معمول داده های لازم را به وسیله حسگرها (Sensors) از محیط پیرامون می گیرد و پس از پردازش آنها، فرمان های مناسب را به عملگرها (Actuators) منتقل می کند. عملگرها به نوبه خود، مطابق فرمان هایی که از ECU می گیرند، ابزارهای مکانیکی، هیدرولیکی، پنوماتیکی یا الکتریکی قابل کنترل را هدایت می کنند.
http://www.megamotor.ir/_DouranPortal/images/%D8%A8%DB%8C%D8%B1%D8%AC%D9%86%D8%AF%DB%8C/2.jpg |
http://www.megamotor.ir/_DouranPortal/images/%D8%A8%DB%8C%D8%B1%D8%AC%D9%86%D8%AF%DB%8C/3.jpg |
نرم افزار ECU در محدوده عملکردي خودرو کار مي کند بنابراین باید از یک استاندار خاص پيروي کند. با رشد و تنوع سیستم هاي مختلف نرم افزاري و سخت افزاري در اين عرصه و پيچيدگي و حساسيت موجود در نحوه صحه گذاري در عملکرد کل سیستم، ايجاد يک رويه استاندارد در اين زمينه بين سازندگان خودرو و سازندگان قطعات مربوطه لازم شد.
AUTOSARمعماري نرم افزار استاندارد شده و قابل توسعه خودرویي را تشکيل می دهد که با مشارکت متخصصاني از PSA Peugeot Citroën، Toyota Motor Corporation،Volkswagen، BMW Group،Ford Motor Company، General Motors، Opel، automotive suppliers Bosch، Continentalو Siemens VDO تهيه و استانداردسازي شده است. مطابق شکل (2)، استاندارد برنامه نویسی AUTOSAR قواعد مربوط به برنامه نویسی نرم افزار پایه در ECU را با نرم افزارهای کاربردی تعمیم داده و ارتباط بین آنها را تعیین می کند.
http://www.megamotor.ir/_DouranPortal/images/%D8%A8%DB%8C%D8%B1%D8%AC%D9%86%D8%AF%DB%8C/4-4.jpg |
بررسی فنی اجزای AUTOSAR
AUTOSAR اهداف فنی زير را دنبال مي کند:
• قابليت استفاده مجدد از توابع وکلاس های نوشته شده
• قابليت تقسيم پذيري(Function Library در شکل 3)
• قابليت انتقال پذيري آسان
• قابليت استفاده در حوزه گسترده ای از محصولات ( Function Integrationدر شکل 3)
http://www.megamotor.ir/_DouranPortal/images/%D8%A8%DB%8C%D8%B1%D8%AC%D9%86%D8%AF%DB%8C/5%20copy.jpg |
شکل 3 : اهداف AUTOSARزنجیره ابزارها (ToolsChain)
مطابق شکل (4) یکی ازمواردی که باید در استفاده از نرم افزارهای خودرو به آن توجه شود، سازگاری ابزارهای استفاده شده با یکدیگراست بطوریکه خروجی یک مرحله با ورودی مرحله بعد سازگار باشد. زنجیره ابزار و عملیات کشف عیب و عیب زدایی در هر مرحله باید کاملا شفاف و تعریف شده باشد.
http://www.megamotor.ir/_DouranPortal/images/%D8%A8%DB%8C%D8%B1%D8%AC%D9%86%D8%AF%DB%8C/6-6.jpg |
شکل 4: سازگاری ابزارها با یکدیگرمعرفی ابزارهای استفاده شده در فرایند توسعه نرم افزار ECU
• ابزارهای پشتیبانی نرم افزار
1. Doors
2. QFD/Capture• ابزارهای تجزیه وتحلیل نرم افزار
1. SDL(State Diagram language)
2. State flow
3. State mate• ابزارهای پیاده سازی نرم افزار
1. ASCET
2. Matlab/Simulink
3. MatrixX• ابزارهای کدنویسی نرم افزار
1. Real-time Studio
2. C
3. Borland C++ Builder,Visual C++
4. Visual C#• ابزارهای تست و عیب یابی
1. Hitexابزارهای پشتیبانی نرم افزار (Doors, QFD/Capture)
نرم افزارهای Doorsو QFD/Capture برای کنترل و شبیه سازی پروژه ها به کار می روند. در صنعت خودرو نرم افزارdoors کاربرد بیشتری دارد. Doors یک نرم افزار تحت ویندوز و با کاربری آسان است که در صنعت خودرو برای مدیریت کنترل دسترسی های پروژه به کار می رود. این نرم افزار شامل 256 مرحله است که پیش نیاز ورود به هر مرحله، کامل شدن مرحله قبل
است. این نرم افزار ساختار کل پروژه را دریافت و مرحله به مرحله شبیه سازی و کنترل می کند.
از قابلیت های نرم افزار doors می¬توان به موارد ذیل اشاره کرد:
• اجرا تحت ویندوز 95,98,2000,XP
• دربردارنده توابع کامل Drag &Drop
• امکان باز کردن همزمان چند فرم
• اجرا تحت شبکه
• تعریف در چند لایه
ابزارهای تجزیه و تحلیل(StateFlow,SDL)
ابزارهای تجزیه و تحلیل با استفاده از نمادهاي گرافيكي براي نمايش فرآيند به کار می روند. درصنعت خودرو استفاده از State Diagram ها برای توسعه نرم افزار ECU متداول است.
مزایای استفاده از State Diagram:
1. فرآيند*هاي بزرگ و پيچيده را ملموس و قابل درك مي*كند.
2. كمك مي*كند تا فرآيند بطور جامع و سيستمي مشاهده شود.
3. زمينه*ساز بهبود فرآيند است.
4. از قوت فرآيند اطمينان ایجاد مي*کند.
5. ارتباطات بين اعضاي تيم را تسهيل مي*كند.
6. باعث كاهش هزينه، تسريع توسعه و اصلاح فرآيند مي*شود.
ابزارهای کدنویسی نرم افزار(C, C++, Visual C# )
اولین واحد کنترل الکترونیکی خودرو ( ECUدیجیتالی) توسط شرکت Boschدر دهه 70 به بازارعرضه شدکه نرم افزار آن با زبان C توسعه یافته بود. در آن زمان اين زبان از کاملترین زبان ها محسوب می شد. زبان C توسط شركت هاي متعددي طراحي و ساخته شده است، از جمله اين شركت ها Borland و Microsoft هستند. ویژگی های این زبان اجرا شدن آن تحت سیستم عامل های مهم جهان مانند UNIX, Linux, Windows و تبعیت از استاندارد ANSI C است. با آمدنVisual C++،Borland C++ Builder و Visual C#شرکت های خودرو سازی از این زبان ها هم برای کد نویسی استفاده کردند. یکی از مشخصه های بارز این ابزارها شی گرا بودن آنها است. برنامه*هاي شي*گرا، منظم، ساخت*يافته و قابل بروزرسانی هستند، به سهولت تغيير و بهبود مي*يابند و قابليت اطمينان و پايداري بيشتري دارند. ابزارهای Ascet و سیستم عامل OSEK به وسیله زبان C و ++ Cکد شده اند.
ابزارهای پیاده سازی (ASCET, Matlab/Simulink, MatrixX)
ASCET يکي از محصولات شرکت ETAS است که در سال 1997 توسعه یافته و می توان با استفاده از يک محيط طراحی و بدون داشتن نگراني از مسلط نبودن طراح الگوريتم به زبان هاي برنامه نويسي سطح مياني، توابع اين بخش را پياده سازي و با استفاده از يک مفسر الگوريتم، طرح ها را به زبان C ترجمه کرد تا براي ترجمه نهایي و عمليات بارگذاري در حافظه ECU قرار گيرد. زمان نوشتن نرم افزار با ابزار های ASCETحداقل 30 درصد کم می شود.
اين نرم افزار داراي سه نسخه به شرح زير است:
• ASCET-SE
• ASCET-MD
• ASCET-RP
اعضای خانواده ابزار ASCETبرای پشتیبانی همه مراحل فرآیند توسعه نرم افزار ECU طراحی شده اند. آنها متدلوژی، مکانیزم، و بهترین روش های روز را با هم ادغام می کنند.