前書き
写真は、ミュンヘンのBMWショールームを訪れているときに私が撮ったものです。
大きくて不器用な自動車の世界での生活とその呼吸についての小さな記事。ソフトウェア開発の世界、使用されているテクノロジー、解決しなければならないタスク、すべては個人的な経験にのみ基づいています。はい、ここでは真実を明らかにしません。自動車用ソフトウェアは通常、時代遅れのテクノロジーとかなり長い開発サイクルを使用しますが、もちろん例外はあります。たとえば、テスラです。これらは私がインターネットでこの会社について読むことができるものからの私の仮定にすぎませんが。テキストには、著者の伝記の小さな挿入物が含まれています。
そしてすぐに逸脱しました。最初はこの記事を完全にロシア語で書きましたが、インターネットでよく見られ、言及されることが多いため、一部の用語と略語を英語に置き換えることにしました。結局、何が起こったのかがわかりました。
最初の自動車プロジェクト。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 ( デモ)。
今日これは私の現在のプロジェクトです... 2020年。