Sunteți pe pagina 1din 24

Învață AUTOSAR Simplu Și Eficient

DESIGNED AND CREATED BY MIHAI SUCIU 1


Curs3. Diagnostic Stack și AUTOSAR_CDD

Definirea depedinţelor dintre AUTOSAR_CDD şi Diagnostic Stack

DESIGNED AND CREATED BY MIHAI SUCIU 2


Curpins
• Recapitulare
• Definirea arhitecturii
• Introducere în Diagnostic Stack:
• DEM
• DCM
• Studiu de caz
• Requirement-uri pentru componenta AUTOSAR_CDD
• Conectarea componentei cu Diagnostic Stack
• Temă de casă
DESIGNED AND CREATED BY MIHAI SUCIU 3
Recapitulare
• AUTOSAR Big Picture
• Memory Stack:
• NvM
• Fee / EA
• Fls / Eep
• System Stack:
• OS
• BswM
• EcuM
DESIGNED AND CREATED BY MIHAI SUCIU 4
Recapitulare
• Temă de casă System Stack
• Completează spațiile libere din proiect:
• BswM.c
• Rte.c
• EcuM.c

DESIGNED AND CREATED BY MIHAI SUCIU 5


Definirea arhitecturii
• Arhitectura completă a integrării componentei AUTOSAR_CDD

DESIGNED AND CREATED BY MIHAI SUCIU 6


Definirea arhitecturii, care este scopul
• Arhitectura este definită pentru un ECU din mașină
• AUTOSAR_CDD trebuie să salveze un istoric al mașinii
• AUTOSAR_CDD trebuie să citească viteza roților, kilometrajul și turația
motorului
• AUTOSAR_CDD trebuie să ofere informații de istoric către Tester/Service
• AUTOSAR_CDD trebuie să ofere informații altor ECU-uri din mașină

DESIGNED AND CREATED BY MIHAI SUCIU 7


Definirea arhitecturii, care este scopul

DESIGNED AND CREATED BY MIHAI SUCIU 8


Definirea arhitecturii, curs 3
• Arhitectura necesară pentru interacțiunea cu Diagnostic Stack-ul

DESIGNED AND CREATED BY MIHAI SUCIU 9


Introducere in Diagnostic Stack

• DEM – Diagnostic Event Manager


• DCM – Diagnostic Communication Manager

DESIGNED AND CREATED BY MIHAI SUCIU 10


Introducere in Diagnostic Stack, DEM
• Cele mai inportante interfețe/funcții
• Dem_PreInit(void)
• Dem_Init(void)
• Dem_SetOperationCycleState(OperationCycleId, CycleState)
• Dem_MainFunction (void)
• Dem_Shutdown(void)

DESIGNED AND CREATED BY MIHAI SUCIU 11


Introducere in Diagnostic Stack, DEM
• Principalele noţiuni de bază
• DEM EVENT (Diagnostic Event Manager) este un ‘event’ care este raportat când apare o
problemă de un anumit tip – Ex: problemă HW/SW, scurt circuit, eroare pe bus.
• DEM EVENT-ul poate să fie de tip SWC sau BSW având un ID unic. Diferenţa este că
SWC-ul este raportat folosind Dem_SetEventStatus(), iar cel BSW folosind
Dem_ReportErrorStatus().
• DTC (Diagnostic Trouble Code) – conţine statusul ‘eventului’, dacă a fost raportat cu Failed
sau Passed, fiind salvat imediat in memorie . DTC are un ID unic, definit de client bazându-
se pe standard UDS sau OBD. Pentru exemplu din temă, avem DTC ID 0xD12244.

DESIGNED AND CREATED BY MIHAI SUCIU 12


Introducere in Diagnostic Stack, DCM
• Cele mai inportante interfețe/funcții
• Dcm_Init(void)
• Dcm_MainFunction (void)
• UDS Dcm_Services:
• 0x10 DiagnosticSessionControl
• 0x22 ReadDataByIdentifier
• 0x2E WriteDataByIdentifier
• 0x19 ReadDTCInformation
• 0x11 ECUReset

DESIGNED AND CREATED BY MIHAI SUCIU 13


DESIGNED AND CREATED BY MIHAI SUCIU 14
Introducere in Diagnostic Stack, DCM
• Pricipalele noţiuni de bază
• DID – DATA IDENTIFIER -este o secvenţă de date care vor fi scrise sau citite.
• Fiecare DID are un ID care este unic.
Exemplu:
0x 22 AA BB- read viteza maxina
0x 22 AA CC- read turatia maxima
0x 2E AA DD- write kilometraj
Legend: green – Serviciu de DCM
blue – DID ID

DESIGNED AND CREATED BY MIHAI SUCIU 15


Introducere in DCM , Stări Generale

DESIGNED AND CREATED BY MIHAI SUCIU 16


Introducere in DEM , Stări Generale

DESIGNED AND CREATED BY MIHAI SUCIU 17


Interacţiune DiagStack cu MemStack - Stare generală

DESIGNED AND CREATED BY MIHAI SUCIU 18


Introducere in Diagnostic Stack, Status Operație

DESIGNED AND CREATED BY MIHAI SUCIU 19


Studiu de caz
• Cum se poate modifica Kilometrajul:
• Folosind DCM-ul, folosind un DID de scriere în NvM
• Modificând direct blocul de NvM, dacă se ştie blocul ID-ul de Kilometraj
• Modificând direct blocul de NvM, dacă se ştie adresa blocului de Kilometraj

DESIGNED AND CREATED BY MIHAI SUCIU 20


Studiu de caz
• Cum se poate proteja Kilometrajul:
• Folosind Cyber Security, DID-urile de scriere în NvM sunt blocate atunci când maşina iese din fabrică
• Definind mai multe ECU-uri care să stocheze informaţiile despre Kilometraj.
• Neoferind acees la blocul de Kilometraj, blocul se poate seta ca şi protejat.
• Integrând componenta AUTOSAR_CDD într-un ECU şi supravegherea constantă a Kilometrajului 

DESIGNED AND CREATED BY MIHAI SUCIU 21


Requirement-uri AUTOSAR_CDD, Part3
•Folosind serviciul de citire (0x22) din DCM pentru DID-urile definite, se va citi
viteza si turaţia maximă la un moment T.
• Pentru a citi viteza maxima se foloseşte DID-ul 0xAABB, configurat in DCM
• Pentru a citi turatia maxima se foloseşte DID-ul 0xAACC, configurat in DCM
• Pentru a citi kilometrajul se foloseşte DID-ul 0xAADD, configurat in DCM
•Dacă valoarea citită a kilometrajului prin semnal este mai mică cu 100 km decât
valoarea scrisă în memoria non-volatilă, atunci AUTOSAR_CDD va seta o eroare.
• Eroare setata va avea Id-ul 0xD12244, configurat in DEM

DESIGNED AND CREATED BY MIHAI SUCIU 22


Conectarea AUTOSAR_CDD cu DiagStack

DESIGNED AND CREATED BY MIHAI SUCIU 23


Temă de casă
• Descarcă specificația de Diagnostic Stack și citește despre Dem și Dcm.

• Completează spațiile libere din proiect:


• Autosar_CDD.c
• Dcm.c
• Dem.c
• Fee.c
• Fls.c
• Eep.c
• Ea.c

DESIGNED AND CREATED BY MIHAI SUCIU 24

S-ar putea să vă placă și