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