NIER Ingegneria è diventata Società Benefit →

Come sviluppare internamente competenze in sviluppo AUTOSAR: progetto NIERobotCar.

Brief

NIER, pertinentemente all’Ingegneria del Software, risultava storicamente senza spiccate competenze per sviluppare software in ambito automotive in modo conforme agli standard e ai framework di riferimento (AUTOSAR) richiesti dal settore. Con un approccio distintivo, NIER ha stanziato un budget R&D per maturare internamente solide competenze necessarie per potersi proporre a clienti in ambito Automotive con nozione di causa e non solo con un “attacco commerciale” che non fosse motivato da consapevolezza tecnica.

 

 

Sfide di progetto

In ambito Automotive, il Software è fondamentale per l’esperienza a bordo ed è un elemento chiave in termini di costo del veicolo, data la crescita notevole del numero di linee di codice richieste. Questo aspetto include il software di controllo delle centraline, così come dell’infotainment e della sensoristica ADAS. La spinta di voler maturare competenze verticali in questo contesto ci ha portato con grande entusiasmo a sviluppare un progetto pilota interno di R&D che ci permettesse di specializzare le nostre competenze di sviluppo software acquisite in settori altamente normati e inerenti i sistemi Safety related (Railways, Biomedicale, industriale) anche nel settore Automotive.

Il progetto è denominato NRC, ovvero NIERobotCar, e si promette di rappresentare un incubatore di problematiche reali e che si basi su strumenti reali utilizzati in questo dominio. Nel dominio Automotive, il Software viene sviluppato seguendo un framework SW specifico e una architettura SW standardizzata che prende il nome AUTOSAR (AUTomotive Open System ARchitecture), definito da 9 grandi partner (BOSCH, Continental, Ford, BMW, Daimler, PSA, TOYOTA, GM, Wolkswagen).

 

Soluzione

NRC è un basilare prototipo, su piattaforma commerciale, reso piattaforma Automotive reale, sia a livello HW che SW utilizzando processore presente nelle centraline delle auto moderne, AURIX TC375 della Infineon, su cui implementare la logica ADAS (Line tracking, Emergency brake, Adaptive Cruise Control), compliant con il framework AUTOSAR ed utilizzando semplici sensori commerciali. Il prototipo sarà pilotato via Mobile tramite una applicazione sviluppata internamente specificamente per lo scopo (tecnologia Flutter).

Lo standard AUTOSAR definisce tre layer principali che l’architettura SW deve possedere:

  • Application layer
  • Real Time Environment (RTE)
  • Basic Software

A livello di Application Layer, sono stati definiti Software Component (SWC), a volte raggruppati in Compositions. Fondamentalmente i SWC eseguono gli algoritmi opportuni in base alle modalità attive e allo stato dei sensori (con SWC anche multi-istanziabili), determinando i comandi da inviare agli attuatori. Tali comandi sono inviati al nodo esterno su CAN bus. Tra i SWC, l’algoritmo per ACC è stato implementato tramite un approccio Model Based, ed il relativo codice C generato (AUTOSAR compliant) importato nel progetto generale.

Per la configurazione del Basic Software, è stato necessario inserire nell’architettura, quindi configurare, i seguenti moduli:

  • ComM, PduR, CanTp, CanIf per gestione CAN bus;
  • BswM e EcuM per startup/shutdown ECU Mode Management;
  • IoHwAbstraction per gestione dei Digital I/O con cui i sensori si interfacciano al micro;
  • OS: anche il sistema operativo deve soddisfare requisiti forniti dallo standard AUTOSAR e deve essere configurato in base all’

 

Si è reso necessario lo sviluppo di due Complex Device Driver (CDD), ovvero di moduli che permettono di gestire periferiche non standardizzate da AUTOSAR: CDD Comm, CDD US Time.

E’ infine stato necessario configurare alcuni componenti dell’Abstraction Layer MCAL, che è parte del Basic Software, in particolare:

  • Can, per gestione periferica CAN bus;
  • Gpt e Icu per gestione timer;
  • Mcu, per gestione generale micro;DIO e Port per gestione pin.

NIER ha introdotto e utilizzato per lo sviluppo e configurazione dei moduli e funzionalità di NRC una tool chain composta da:

  • ETAS ISALAR A: per Application Software
  • ETAS ISOLAR B: per configurazione BSW
  • Tresos studio: per configurazione MCAL per AURIX TC37x
  • Microsoft VS Code: per sviluppo SWC, CDD, codice startup micro, etc.
  • HITECH: per compilatore C per AURIC TCT375 e ambiente di debug

Fasi di esecuzione

FASE 1

Analisi degli User Needs del progetto NRC.

FASE 2

Stesura di Systems e Software Requirements.

 

FASE 3

Coaching con ETAS.

FASE 4

Messa a punto dei tools necessari alla Toolchain.

 

FASE 5

Sviluppo del codice per NRC, sia C AUTOSAR che model Based (ACC).

FASE 6

Fase di test e messa in servizio del prototipo.

 

Risultati ottenuti

Il progetto NIERobotCar ha permesso di sviluppare in NIER competenze verticali tipiche del settore automotive, quali:

  • Approfondimento del framework AUTOSAR CLASSIC;
  • Utilizzo pratico dei tool di Authoring e configurazione moduli AUTOSAR (ASW, BSW, Mcal);
  • Progettazione di componenti model-based ed integrazione del codice-auto generato in architetture SW AUTOSAR compliant;
  • Gestione di schede a microcontrollore automotive-grade;
  • Conoscenza degli standard tipici automotive (es. CAN bus);
  • Sviluppo di un algoritmo in Model Based con generazione codice AUTOSAR Compliant.

autosar

Il prototipo NRC, sul quale sono state implementate e testate le funzionalità che abbiamo descritto in questo articolo, si presta poi a innumerevoli improvements, ad esempio introduzione di moduli AUTOSAR aggiuntivi quali a es. Memory Stack e Diagnostica, e gestione di più core del microcontrollore AURIX TC375.

NRC rappresenta quindi un Laboratorio Automotive che NIER potrà sfruttare per proseguire con la crescita interna all’azienda sulle competenze relative al settore, necessarie per garantire che NIER rappresenti un fornitore di servizi di sviluppo SW in ambito automotive credibile e affidabile.

 

 

 

 

 

Iscriviti alla Newsletter .