موتور آزمای ثمین

ابزارهای مورد استفاده برای توسعه نرم افزار هایECU خودرو

ایمیل پرینت PDF

تعداد نرم افزارهایی که در یک واحد کنترل الکترونیکی خودرو استفاده می شود، بستگی به پیچیدگی آن دارد. در پیچیده ترین نوع آن ابتدا سیستم عامل بی درنگReal Time Operation system) RTOS ) و نرم افزار های پایه مانند نرم افزارهای مدیریت شبکه، مدیریت حافظه و... بر روی میکرو کنترلر نصب می شوند و سپس برنامه کاربردی از خدمات ارائه شده به وسیله سیستم عامل و نرم افزارهای سیستمی سود می برد. بخش اساسی تکنولوژی واحد کنترل الکترونیکی خودرو مربوط به نرم افزار کاربردی است. این بخش نیروی محرکه اصلی نوآوری در صنعت خودروسازی است. نرم افزارهای مورد نیاز واحدهای کنترل الکترونیکی خودرو به وسیله تولید کنندگان معروف در سطح جهان مانندBOSCH ،ETAST ،AMD ،NEC  و MOTOROLA عرضه می شوند. بهبود کیفیت نرم افزار منوط به شیوه ها و ابزارهای مهندسی نرم افزار و استانداردهای نرم افزاری(AUTOSAR ) تولید کد برنامه از مدل، مستندسازی و تست نرم افزار است.
در این مقاله ابزارهای استفاده شده در پروسه توسعه نرم افزار ECU را در مراحل پشتیبانی، تجزیه و تحلیل، پیاده سازی، کدنویسی، آنالیز سخت افزار، ابزارهای تست و عیب یابی و استانداردهایی که به طور مشترک توسط سازندگان خودرو، تامين کنندگان قطعات وابسته و توسعه دهندگان ابزارهاي مربوطه تدوين شده است مورد بررسی قرار می دهیم.
امروزه سیستم های الکترونیکی خودرو در تمامی اجزای اصلی خودرو وارد شده و درصد بالایی از هزینه مربوط به طراحی خودرو را شامل می شود. این سیستم ها با استفاده از علم کنترل و قطعات الکترونیکی باعث افزایش کارایی، ایمنی، رضایتمندی و کاهش آلودگی و مصرف سوخت شده اند.
نرم افزارهای واحد کنترل الکتریکی خودرو به عنوان یکی از ارکان این سیستم ها ازپیچیدگی و دقت خاصی برخوردار بوده و همواره شامل نوآوری های فراوانی هستند. طبق تقسیم بندی کلی، نرم افزارهای ECU موتور از نوع نرم افزارهای تعبیه شده (Embedded System) هستند. این نرم افزارها مبتنی برمیکرو کنترلرهای مخصوص کاربرد خودرویی هستند.
محیط اجرای این نرم افزار می تواند براساس اتفاق (Event) و یا زمان(Real Time) باشد.
ماژول های اصلی نرم افزار براساس طراحی و نیازمندی های اعلام شده می تواند متغیر باشد. تعداد و نوع آنها وابسته به محیط اجرا و معماری کل نرم افزار است.
نرم افزار ECU جدا از معماری آن، دارای سه بخش اصلی به شرح ذیل است:
• ماژول کنترل  
• ماژول پروتکل 
• ماژول سیستم عامل
ماژول سیستم عامل می تواند توسط طراح پیاده سازی شود و یا از سیستم عامل های استاندارد خودرویی استفاده کند.

ECU واحد کنترل الکتریکی خودرو
مطابق شکل (1) واحد کنترل الکترونیکی به طور معمول داده های لازم را به وسیله حسگرها (Sensors) از محیط پیرامون می گیرد و پس از پردازش آنها، فرمان های مناسب را به عملگرها (Actuators) منتقل می کند. عملگرها به نوبه خود، مطابق فرمان هایی که از ECU می گیرند، ابزارهای مکانیکی، هیدرولیکی، پنوماتیکی یا الکتریکی قابل کنترل را هدایت می کنند.

  

ecu picture

car ecu picture
 

 

(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 را با نرم افزارهای کاربردی تعمیم داده و ارتباط بین آنها را تعیین می کند.
 

ecu hardware

شکل 2: AUTOSAR قواعدمربوط به برنامه نویسی نرم افزار درECU

  
بررسی فنی اجزای AUTOSAR
AUTOSAR اهداف فنی زير را دنبال مي کند:
• قابليت استفاده مجدد از توابع وکلاس های نوشته شده
• قابليت تقسيم پذيري(Function Library  در شکل 3)
• قابليت انتقال پذيري آسان
• قابليت استفاده در حوزه گسترده ای از محصولات ( Function Integrationدر شکل 3)

autosar targets

 
 شکل 3 : اهداف AUTOSAR

زنجیره ابزارها (ToolsChain)
مطابق شکل (4) یکی ازمواردی که باید در استفاده از نرم افزارهای خودرو به آن توجه شود، سازگاری ابزارهای استفاده شده با یکدیگراست بطوریکه خروجی یک مرحله با ورودی مرحله بعد سازگار باشد. زنجیره ابزار و عملیات کشف عیب و عیب زدایی در هر مرحله باید کاملا شفاف و تعریف شده باشد.

 

tools chain


شکل 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 طراحی شده اند. آنها متدلوژی، مکانیزم، و بهترین روش های روز را با هم ادغام می کنند.

(ASCET-SEٍ( Software Engineering
یک ابزار حرفه ای برای طراحی اولیه (مهندسی نرم افزار) خودرو است. این ابزار شامل محصولات مهم کلیدی برای خودرو است. بررسی نیازهای اولیه، بررسی توابع و ماژول های اولیه، ارتباط بین ماژول ها، بررسی کیفیت خودرو، برآورد هزینه ها، آماده سازی مشتریان برای رویارویی با هزینه های خودرو و مفاهیم مرتبط با زمان بازاریابی است. اين نسخه از نرم افزار (Software Engineering) براي ايجاد کدهاي برنامه نويسي براي ترجمه براساس مدل ايجاد شده توسط نسخه ASCET MD و براي يک ريزپردازنده خاص به کار مي رود. به اين ترتيب که ابتدا مدل نهایي شده به عنوان ورودي به اين نسخه داده شده و سپس کدهاي برنامه نويسي براساس زبان C براي ترجمه ايجاد شده که قابل استفاده براي ريزپردازنده مربوط به سخت افزار ECU  خواهد بود. اين نسخه داراي مشخصات زير است:

• نمايش دهنده مدل نهایي شده توابع
• پشتيباني کننده انواع مختلف ريزپردازنده ها
• قابليت يکپارچگي با انواع مترجم ها
• انعطاف بالا در کد سازي و توابع محاسباتي
• ايجاد کد براساس يک ساختار ساخت يافته
• ايجاد فايل توضيح داده ها براي ساير استانداردهاي ارتباطي
• انطباق با ريزپردازنده هایي که مشتري سفارش داده است.

ريزپردازنده هایي که اين نسخه پشتيباني مي کند:
• Infineon C16x – STMicrocontroller
• MOTOROLA M68HC12 ، MC9S12
• MOTOROLAMPC5xx
• Hitachi SH70xx
• Texas Instrument TMS470
• Infineon TriCore
• NEC V85x
 
(ASCET-MD (Modeling & Design
ASCET-MD  بر مبنای معماری شی گرا است. معماری شی گرا بطور انعطاف پذیری اجازه می دهد اجزای ویژه مدل با notation های مختلف ترکیب شوند و مدل های سلسله مراتبی بسازند. Ascet –MD کارکردهای مورد نیاز برای پشتیبانی از وظایف مهندسی را به روش ماژولار، کامل و موثر تعریف کرده و کاربردهای مختلفی به منظور نمایش وابستگی های داخلی در یک مدل و راهنمایی کردن کاربر در تمرکز بر وظایف اصلی اش از جمله تعیین و طراحی الگوریتم های کنترل و عیب یابی دارد.
اجزای این نسخه عبارتند از:
• بلوک دیاگرام
• ماشین های وضعیت
• مشخصه های سیستم عامل
• محیط تجربه و آزمایش
• مولد کد یکپارچه برای محاسبات ریاضی با ممیز شناور و ثابت

(ASCET-RP ( Rapid Prototyping
اين نسخه از نرم افزار براي نمونه سازي اوليه مدار ECU موتور به کار مي رود. به اين ترتيب که مدل نهایي را براي يک سیستم سخت افزاري از پيش طراحي شده کد سازي کرده و مي توان با ارتباط با آن سیستم، نتايج اوليه عملکرد توابع را بررسي کند که شامل مشخصات زير است:
• نمايش دهنده مدل هاي ايجاد شده توسط ASCET MD
• پشتيباني کننده سخت افزارهاي طراحي شده براي نمونه سازي اوليه با کاربرد خودرویي
• داراي يک محيط انعطاف پذير مناسب براي کاربر
• پشتيباني کننده نرم افزار کاليبراسيون INCA
• قابليت هدف گذاري براي محصول نهایي خاص
توابع و امکانات ASCET:
• ایجاد خودکار تولید کد نرم افزار ECU
• پذیرش کدهای  MISRA_C(قوانین کد نویسی C)
• ابزارهای ذخیره سازی مبنی بر  XMLباز
• تبادل اطلاعات با مطلب
• پشتيباني از سيستم عامل OSEK (اين سيستم عامل براي روابط تعريف شده بين توابع وتعیین اولویت  taskها است)
• حمل توابع و مدل ها
• مستند سازي

 
 
براي عمليات توسعه نرم استفاده از نسخه هاي ASCET- MD وASCET- SE  توصيه مي شود زيرا نسخه  ASCET-RP فعلا کاربردي ندارند.

مطلب (Matlab/Simulink)
واژه MATLAB، عبارت مختصر شده Matrix Laboratory (يعني آزمايشگاه ماتريس) است. محاسبات داخلي اين زبان، قبل از انجام به فرمت ماتريس تبديل شده و سپس مورد استفاده قرار می گيرد. شرکت های خودرو سازی برای پشتیبانی از وظایف مهندسی به روش ماژولار، کامل و موثر از این نرم افزار استفاده می کنند. از جمله امتيازات اين زبان، امكان پياده كردن الگوريتم برنامه اصلي، عيب يابي و ارتقاي آن است. به اين مدل، مدل Prototype گفته مي شود كه از آن قبل از نوشتن برنامه در زبان اصلي (C و DELPHI ،JAVA) براي رفع خطا و ایجاد ارتقاء استفاده می شود. اين زبان برنامه نويسي گسترده شامل توابع مفيد متعددي است.
مطلب 2010 در حال حاضر آخرین ورژن مطلب است که بر روی ویندوز 7 قابل اجرا است و شامل توابع و قابلیت های ذیل است:
• نمونه سازي اوليه با کاربرد خودرویي
• طراحی گرافيکي و متني براي مدل کردن توابع نرم افزار در سطح فيزيکي
• طراحي اختصاصي نرم افزار براي کاربرد در خودرو
• ساختار شي گرا در طراحي مدل
• اختصاص المان هاي مربوط به مدل سازي براي ايجاد محصولاتي که نياز به رعايت محدوديت حافظه و زمان اجرا نیاز دارند.
• شبيه سازي و نمايش مدل هاي طراحي شده
• حمل توابع و مدل ها
• مستند سازي

معرفی سیستم عامل OSEK
از آنجا که براي کنترل اجزاي خودرو (موتور، جعبه دنده، شاسي و... ) به نرم افزاری با قابليت پردازش همزمان و پاسخگویي سريع به درخواست هاي منابع مختلف سخت افزاري نیاز دارد. بنابراین ايجاد يک سیستم که داراي توابع و سرويس هاي مشخصي براي مديريت منابع، اجراي به موقع درخواست هاي مختلف و ساير وظايفي که يک سیستم عامل بر عهده دارد ضروري به نظر مي رسد. از اينرو طراحان و توسعه دهندگان اين نوع نرم افزارها برای اطمينان از انجام به موقع اين وظايف، سيستم عامل OSEK را پيشنهاد کردند. OSEKیک سیستم عامل استاندارد برای صنایع خودروسازی است که توسط سازندگان اروپایی خودرو تعیین شده و دارای چهار کلاس مختلف استاندارد است که طراح به تناسب سیستم خود می تواند یکی را انتخاب کرده و بر اساس آن سیستم خود را طراحی کند. هر کلاس یک مدل پردازه، تخصیص اولویت و الگوی فعالیت را تعریف می کند. بنابراین  OSEK را می توان جزو  خانواده سیستم عامل (با چهار عضو) به حساب آورد. توابع  OSEKبا زبان C++ نوشته شده است.

توابع OSEK
• راه اندازي تمام ورودي و خروجي هاي مربوط به ريزپردازنده اعم از آنالوگ، ديجيتال و PWM
• راه اندازي تمام زمان سنج هاي ريزپردازنده
• راه اندازي تمام وقفه های نرم افزاري و سخت افزاري
• مديريت و اختصاص حافظه هاي مورد نياز توابع
• اختصاص زمان اجرای ريزپردازنده به هريک از دستورالعمل ها بر اساس الويت (Priority) و حد زمان تعيين شده
 

osek


شکل5: ساختار سیستم عامل و ارتباط آن با باقی سیستم ها

ابزارهای تست و عیب یابی( Hitex)
خطا يابي در ابزارهای تست و عیب یابی در دو سطح انجام مي شود. يکي سطح استاندارد که در مرحله توليد انجام مي شود و شامل خطايابي کلي بر روي خودرو جهت عدم اجراي وظايف کنترلي است. ديگري سطح پيشرفته که در مرحله توسعه و طراحي انجام مي شود و شامل خطايابي در هنگام فراخواني سرويس هاي مختلف سيستم عامل است. در مرحله توسعه سیستم های عیب یابی که شامل سخت افزار و نرم افزار است، می توان با پروتکل های استاندارد شده مانند  KWP-2000یا CARB با ECU ارتباط برقرار کرد و عملیات ذیل را انجام داد:
1. خواندن مشخصات ECU
2. خواندن خطاها
3. پاک کردن خطاها
4. تست عملگرها
5. نمایش پارامترها
این سیستم ها در انتهای خطوط تولید برای شرکت های نهایی خودرو و خدمات پس از فروش مورد استفاده قرار می گیرند.
رقابت در صنعت خودروسازي برای توسعه نرم افزارهای کاربردی ECU از يك سو و تلاش براي كاهش هزينه‌ها، افزايش كارآیی و نمونه سازی سریع (Rapid prototyping) از سوی دیگر، نشان می دهد که در انتخاب ابزارها برای تولید نرم افزار کاربردی، باید به سازگاری ابزارها با یکدیگر، امکانات، هزینه ها و قابلیت به روز رسانی این ابزارها توجه کرد. امید است واحد تحقیقات الکترونیک مرکز تحقیق و توسعه شرکت مگاموتور با بهره گیری از این ابزارها، پاسخگوی الزامات قانونی و استاندارد های زیست محیطی باشد.

منبع: سایت شرکت مگاموتور
آخرين به روز رسانی ( جمعه ، 12 مهر 1392 ، 23:16 )  
صفحه اصلي