Introduction
The photo was taken by me while visiting the BMW showroom in Munich.
A small article about how life is and what it breathes in the big and clumsy Automotive world. In the world of software development, what technologies are used, what tasks have to be solved, everything is entirely based on personal experience. Yes, here I will not reveal the truth, automotive software usually uses outdated technologies and rather long development cycles, although of course there are exceptions - Tesla, for example. Although these are just my assumptions from what I can read about this company on the Internet. The text contains small inserts of the author's biography.
And right away a digression: initially I wrote this article entirely in Russian, but then I decided to replace some of the terms and abbreviations in English, as they are more often found and mentioned on the Internet. In the end it turned out what happened.
First automotive project. Year 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
: 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:
, - . , , , 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-:
, β (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 :
, -, () IPC. IPC CommonAPI ( GENIVI). CommonAPI Franca IDL, ++ - , D-Bus. CommonAPI C++, D-Bus SOME/IP, . D-Bus , .
CommonAPI ++:
: 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:
AndroidAuto CarPlay , SmartDeviceLink (SDL) . . Ford SYNC AppLink, Open-Source . , , .
SmartDeviceLink:
, HU , SDL Core. SDL. , , , . , - Head-Unit. , .
Sygic, HU .
SDL Sygic:
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 ( demo ).
Today this is my current project ... Year 2020.