مبرمج سيارات. من خلال المشقة إلى النجوم

صورة



المقدمة



التقطت الصورة أثناء زيارتي لمعرض BMW في ميونيخ.



مقال صغير عن الحياة وما الذي يتنفس في عالم السيارات الكبير والخرق. في عالم تطوير البرمجيات ، ما هي التقنيات المستخدمة ، والمهام التي يجب حلها ، كل شيء يعتمد فقط على التجربة الشخصية. نعم ، لن أكشف الحقيقة هنا ، فبرامج السيارات عادةً ما تستخدم تقنيات قديمة ودورات تطوير طويلة ، على الرغم من وجود استثناءات بالطبع - Tesla ، على سبيل المثال. على الرغم من أن هذه مجرد افتراضاتي مما يمكنني قراءته عن هذه الشركة على الإنترنت. يحتوي النص على إدخالات صغيرة لسيرة المؤلف.



وعلى الفور استطراد: في البداية كتبت هذا المقال بالكامل باللغة الروسية ، ولكن بعد ذلك قررت استبدال بعض المصطلحات والاختصارات باللغة الإنجليزية ، حيث يتم العثور عليها في كثير من الأحيان على الإنترنت. في النهاية تبين ما حدث.



أول مشروع سيارات. عام 2014



… , IT, , automotive . 2014 ., , Human-Machine Interface (HMI) . , , Head-Unit . , , . 2- ++ GPU Windows, ++.



: HMI — Head-Unit — , Digital Instrument Cluster, . , , Digital Instrument Cluster . Head-Unit , , , Infotainment . , ( ) . Head-Unit , (Alpine, Clarion, etc.) .



, , ++ framework, HMI , . , , , .. UI, Microsoft MFC, , . . - , . , . , (, , ...) , , .



, , - , hardware .



, UI, , engine .



Jam, CMake, , Jam . - QNX Linux, - . Flash.



HMI framework :





1.1. Adobe Photoshop. Photoshop, , .

1.2. PowerPoint , . .





2.1. PSD , UI

PowerPoint.

2.2. controllers, , , .



:) , .



UI NTG5 Mercedes

تم تصميم واجهة المستخدم لمنصة NTG5 في مرسيدس



: Automotive , (OEM) , . Tier 1, 2 .. . OEM, . software , automotive , , Tier , BMW. Tier .



, - Qt framework, . : Tier 1 , Harman, Daimler, Audi .. , , : - 2014 ., Qt -, , , - bug. , , . , .





- , , HTML, Java, Qt , / / HMI . Flash , Qt automotive . WebKit, .



Qt Automotive Suite:



عرض لإمكانيات مجموعة Qt Automotive Suite



, - . , , , UI, .



frontends JavaFX, QML Web, backend . , , , frontend. , ++, frontend .



, , web- HTML/CSS/JavaScript Qt/QML . R&D, -, , C++ . , web , JS .



, Automotive SPICE (ASPICE), SPICE (ISO 15504). . , . , .



: Automotive SPICE



? , , (SWE.1), (SWE.2). , . , , (SWE.3). , ( , , ). , Unit (SWE.4), (SWE.5) (SWE.6) .



Automotive SPICE V-:



نموذج V سبايس للسيارات



, — (traceability). ? , , / . , , , .



, . , . , Excel DOORS, , . , , Doxygen.



. , , . , , , .



, , , , , , . , , .





2016 , , . … , … , - , . (Head-Unit) , , (1 ). , , : Android Auto, CarPlay, SmartDeviceLink(SDL), Miracast. — Clarion, , , OEM.



hardware - Telechips, Board Support Package (BSP). BSP Yocto Project , CarPlay iAP2. , . Telechips reference board, Clarion , .



: Yocto Project BitBake , Linux. BitBake Python (recipes) . , Linux, . , , , , . Yocto Automotive Grade Linux, .



, user space , UI . BitBake, . , UI, , , , . , Eclipse, 3D, Functional Units.



, . , . , , GENIVI Alliance, , . 10 . , . — , , , , , , ( Clarion, ). , , , , :) , — , .



GENIVI :



العمارة المقترحة من قبل GENIVI



, -, () IPC. IPC CommonAPI ( GENIVI). CommonAPI Franca IDL, ++ - , D-Bus. CommonAPI C++, D-Bus SOME/IP, . D-Bus , .



CommonAPI ++:



CommonAPI C ++



: Franca Interface Definition Language (IDL) — , , . .



HU. HU, , - , .



  • UI , , . , , ;
  • , (12 ) , ( );
  • , ;
  • CarPlay AndroidAuto UI;
  • 20 , , .


:



  • . , , , . , , , , , . , ;
  • , RAM, . , , hardware;
  • snapshot , , Linux . , snapshot , , , RAM. snapshot ;
  • UI, Apple , ;
  • non-volatile memory (NVM) Persistence. , - , . , Persistence RAM . , .


HU Nissan Datsun Cross:



صالون التصوير مع HU في نيسان داتسون كروس



AndroidAuto CarPlay , SmartDeviceLink (SDL) . . Ford SYNC AppLink, Open-Source . , , .



SmartDeviceLink:



هندسة SmartDeviceLink



, HU , SDL Core. SDL. , , , . , - Head-Unit. , .



Sygic, HU .



SDL Sygic:



مثال على كيفية عمل تطبيق SDL Sygic navigation



Happy End' , automotive, . , . , , . , , . , Nissan, Datsun Cross . UI . - Perodua.





. automotive , OEM. Automotive SPICE, MISRA, ISO 26262.



: Safety ISO 26262 — , , (, , ) . , , . .



MISRA C/C++ — C/C++ . automotive safety ISO 26262. — ( ) , - code style. — switch default . , , . , Axivion, .



, MISRA , C++14, MISRA . C++14? ? ( ) Adaptive AUTOSAR. ++14. AUTOSAR (AUTomotive Open System ARchitecture).



, , Classic AUTOSAR. , , , . - 4. — , . ( ), . , , , , . In-Vehicle Infotainment (IVI) .



, , Adaptive AUTOSAR. POSIX PSE51 . , , Classic, C++ POSIX ( , ). , Classic , , . Classic, ARXML , , , XML , . , , XML AUTOSAR TPS SoftwareComponentTemplate 4- Classic, 800 .



:



مثال على أنظمة المركبات المختلفة



, AUTOSAR, . , . — (sensors), (actuators) / (ECUs) , (CAN, LIN, FlexRay, Ethernet). OBD , ( ) - .



Ethernet atuomotive — 100BASE-T1, 10BASE-T.



, ARXML ( , ). , . , (communication matrix) , , (ECUs) , .



, ( ) .



HW AUTOSAR .



( , AUTOSAR ), ARXML . HW AUTOSAR , , .



.



, AUTOSAR ( VECTOR Informatik Elektrobit), . :



  • , AUTOSAR . .
  • . , - . , 4.3.0, 4.4.0


— , , . , , , .



— ARXML 10- , :)



. Adaptive AUTOSAR , , . , , . , .



, Adaptive AUTOSAR VECTOR ( Elektrobit). , . , Unified Diagnostic Services (UDS). , (TCP/IP, CAN). AUTOSAR : Persistence NVM, (COM) runtime ( CommonAPI). Execution Manager , . Diagnostic Manager (DM). , ( /). AUTOSAR DM , Diagnostic over IP (DoIP), UDS .



: Unified Diagnostic Services — , . :



  • / ;
  • ;
  • , Diagnostic Trouble Codes (DTC);
  • ;
  • .


CAN Ethernet DoCAN DoIP.



Volkswagen MEB VW.OS, , Automotive, .



VW :



محاولة فولكس فاجن تحويل السيارة إلى هاتف محمول



VW.OS — , Volkswagen, . - , , . . , / . - , BMW CarPlay :)





, , :) , location , . , - 7 , . , , OEM , , - . (, ). ? .



? Linux ARM , Classic AUTOSAR . ( ), tools automotive . Ruby, Rust, Electron/TypeScript. Classic AUTOSAR , Ruby, Java, . ARXML , , , ARXML ( تجريبي ).



اليوم هذا هو مشروعي الحالي ... عام 2020.




All Articles