汽车程序员。通过艰辛的星星

图片



介绍



这张照片是我在慕尼黑宝马展厅时拍摄的。



一篇小文章,讲述了在笨拙的汽车世界中生活如何以及呼吸的方式。在软件开发领域中,所使用的技术,必须解决的任务,所有内容都完全基于个人经验。是的,在这里我不会透露真相,汽车软件通常使用过时的技术并且开发周期较长,尽管当然也有例外,例如特斯拉。尽管这些只是我的假设,但我可以从Internet上了解到这家公司。文本中包含作者传记的一些小插页。



马上就离题了:起初,我完全用俄语撰写了这篇文章,但是后来我决定替换一些英语中的术语和缩写,因为它们在Internet上越来越常见和提及。最后,事实证明发生了什么。



第一个汽车项目。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平台设计的UI



: 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汽车套件的功能



, - . , , , 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-:



汽车SPICE 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:



Sygic导航SDL应用程序如何工作的示例



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