Autóipari beágyazott rendszerek CCP és XCP 1
Hibakeresés és kalibráció Fejlesztés közben szükség van A vezérlőegység állapotának megfigyelésére Szabályzó paraméterek online kalibrációjára Hibainjektálásra (változók átírása) Miközben az egység a járműben működik Nem lehet megbontani (vízállóság) Messze van a felhasználótól (motortér) 2
Hibakeresés és kalibráció Hagyományos megoldás JTAG nyomkövető Rövid távon működik Nincs kivezetve az egység házából Megoldás A kommunikációs busz felhasználása Hátrány Sávszélesség igény A kontrollerben külön SW modulra van szükség 3
CCP CAN Calibration Protocol Egyszerű protokoll CAN felett Funkciók Memória írása/olvasása Ciklikus mintavételezés beállítása Flash programozás Hozzáférés védelem ASAM szabvány (Association for Standardisation of Automation- and Measuring Systems) 4
XCP extensible Calibration Protocol A CCP-re építve több hordozó protokollt támogat hordozó CAN FlexRay Ethernet USB Aszinkron soros Szinkron soros ASAM szabvány (Association for Standardisation of Automation- and Measuring Systems) 5
XCP kommunikáció 6
XCP kommunikáció A mester eszköz a fejlesztői számítógép, mely tartalmaz egy XCP meghajtót, illetve XCP kommunikációra képes szoftvert 7
XCP kommunikáció A szolga eszköz a kommunikációban a vezérlőegység. Ezen meg kell valósítani a protokollt. 8
XCP kommunikáció A vezérlési csomagok (CTO Command Transfer Object) feldolgozását általában egy egyszerű interpreter valósítja meg 9
XCP kommunikáció Az adatcsomagok (DTO Data Transfer Object) kezelését külön rész végzi a szolga által küldött csomagokat az adatgyűjtő modul állítja össze 10
XCP kommunikáció A mester felől érkező stimulációs csomagokat pedig a stimuláció feldolgozó modul kezeli. 11
XCP csomagformátum 12
XCP csomagformátum A csomag koncepció fej és fázisában farok része hordozó protokoll kialakulnak függő. a Általában vevői azonosító, hossz, követelmények üzenetszámláló, és a és ellenőrző biztonsági összeg koncepció kap benne helyet. 13
XCP csomagformátum A PID (packet ID) azonosítja az XCP csomagot. CTO esetén előre meghatározott értékkészlete van CMD csomagban 0xc0..0xff parancskód RES csomagban 0xff ERR csomagban 0xfe EVT csomagban 0xfd SERV csomagban 0xfc DTO esetén a DAQ listát azonosítja a következő mezővel együtt 14
XCP csomagformátum A DAQ azonosítja (a PID-del együtt) a mintavételi listát. Csak DTO-ban szerepel. 15
XCP csomagformátum A kitöltő byte-ok akkor szükségesek, ha az azonosító mezőt n (2,4) byte-ra kívánjuk igazítani 16
XCP csomagformátum A DTO-kban lehet időbélyeget elhelyezni, az adatok mintavételi idejének meghatározásához 17
XCP csomagformátum Az adatmező csomag függő byte-okat tartalmaz, mint a parancsok paraméterei, vagy a mintavételezett adatok. 18
Mintavételezés és stimuláció Cél Kijelölt adatok mintavételezése vagy átírása Bizonyos ECU események bekövetkeztekor Egy taszk indulása Egy megszakítás bekövetkezte Periodikus időzítő Futásidejű konfigurálhatóság 19
Konfiguráció - mintavételezés 20
Konfiguráció - mintavételezés A konfiguráció alapegysége az ODT (Object Description Table) entry. Ez egy memória címet és hosszt tartalmaz, így azonosítja a cél memóriaterületet. 21
Konfiguráció - mintavételezés Az ODT ilyen bejegyzésekből áll. A bejegyzések száma nem limitált, de a teljes azonosított adatméretnek bele kell férnie egyetlen DTO-ba. 22
Konfiguráció - mintavételezés Az adatok küldésekor a PID mező azonosítja az ODT, amiből az adatokat kinyertük. 23
Konfiguráció - mintavételezés Az ODT-ket DAQ listába szervezhetjük. Az egyes ODT-k függetlenek, de a DQA listához rendelt esemény mindegyiket triggereli. 24
Konfiguráció - mintavételezés A DTO-k itt is ODT-nként külön kerülnek elküldésre. 25
XCP üzemmódok 26
XCP üzemmódok Induláskor a szolga ellenőrzi, hogy van-e olyan DAQ listája, amit automatikusan el kell indítani 27
XCP üzemmódok Ha nincs, akkor DISCONNECTED módba vált, és a csatlakozás parancson kívül semmi mást nem fogad el. 28
XCP üzemmódok Ha van elindítandó DAQ lista, RESUME módba kapcsol, és elindítja a mintavételezést. Innen is csak csatlakozás parancs hatására lép tovább, de a mintavételezést nem állítja le. 29
XCP üzemmódok A csatlakozás parancs hatására CONNECTED módba kerül a modul. Itt már az összes parancs kiadható 30
XCP Parancsok - Connect Kód: 0xFF Kapcsolatot létesít a vezérlőegységgel Minden más parancs előtt kell kiadni Válasz Információk a szolga protokoll verziójáról A támogatott leghosszabb CTO és DTO üzenetekről Elérhető szolgáltatások (DAQ, STIM, CAL/PAG, PGM) A szolga byte sorrendje, címfelbontása 31
XCP Parancsok - Disconnect Kód: 0xFE Bontja a kapcsolatot a szolgával Több parancs kiadására nincs lehetőség Válasz Csak hiba esetén van válasz 32
XCP Parancsok Get current session status Kód: 0xFD Lekérdezi az aktuális kapcsolat státuszt Válasz Információ az erőforrás védelem státuszáról Szükséges-e azonosítás a használathoz Információ az üzemmódról Van-e mintavétel folyamatban Folyamatban van-e DAQ konfiguráció mentése Folyamatban van-e DAQ konfiguráció törlése Folyamatban van-e a kalibrációs adatok mentése Folyamatban van-e a kalibrációs adatok törlése Resume módban indult-e az egység 33
XCP Parancsok Get slave identification Kód: 0xFA Azonosítja a szolga csomópontot Kérés Megadja a kért azonosítás módját ASCII szöveg ASAM-MC2 fájl neve (elérési úttal, vagy anélkül) ez a szolga memória térképét tárolja ASAM-MC2 fájl letöltése a szolgáról ASAM-MC2 fájl URL-je Válasz A kért információ, ha elérhető 34
XCP Parancsok Request to save ton NvM Kód: 0xF9 A DAQ és CAL konfiguráció mentése nem felejtő tárba Opciók DAQ mentése DAQ törlése CAL mentése Válasz Aszinkron eseményként érkezik 35
XCP Parancsok Get seed for unprotecting resources Kód: 0xF8 Kér egy kihívást (véletlen számot) az azonosításhoz Válasz A véletlen szám 36
XCP Parancsok send key for unprotecting resources Kód: 0xF7 Visszaküldi a seed alapján generált kulcsot az erőforrások védelmének kikapcsolására 37
XCP Parancsok SET_MTA Kód: 0xF6 Beállítja a szolgában levő memória cím mutatót Ezt a mutatót több parancs is használja Letöltést Feltöltés Programozás Stb. 38
XCP Parancsok Upload Adatok feltöltése a szolgáról a mesterre Több formája van Normál (0xF5) Az MTA-tól indul Rövid (0xF4) A parancsban megadott címről indul Minden formában meghatározzuk a kért adathosszúságot A válasz tartalma az adatcsomag 39
XCP Parancsok Download Adatok letöltése a mesterről a szolgára Több formája van Normál (0xF0) Az MTA-tól indul Blokk mód (0xEF) Nagyobb adatméret esetén, több egymás utáni parancsba ágyazva tölt le egy memóriablokkot Fix hosszúságú (0xEE) Pontosan akkora csomagot tölt le, amekkora a CTO-ba belefér Rövid (0xED) A parancsban megadott címről indulva tölt le adatokat Minden formában meghatározzuk a kért adathosszúságot 40
XCP Parancsok Page commands Ezen parancsok a kalibrációt teszik egyszerűvé Több kalibrációs lap hozható létre Mindegyik tartalmazza a kalibrálható paraméterek értékét Az egyiket a vezérlőegység szoftvere használja A másikat az XCP módosíthatja A szerep egyetlen utasítással megcserélhető Mindig konzisztens paraméterkészlet áll a szoftver rendelkezésére A szerepel állítására és lekérdezésére vannak parancsok Set calibration page (0xEB) Get calibration page (0xEA) Konfigurációs információk lekérése Get page processor info (0xE9) hány lap van? Get segment info (0xE8) a szegmens mérete, címe,.. 41
XCP Parancsok PGM Memória programozás parancsok Program_start (0xD2) a programozás elindítása Program_clear (0xD1) a memória egy részének törlése Külön a kód, NVM, kalibrációs területeket Program (0xD0) programozási adatok letöltése Az MTA-tól kezdődően Program_reset (0xCF) jelzi a programozás végét. A szolga bontja a kapcsolatot. Program_format (0xCB) a letöltendő adatok formátumát (tömörítés, rejtjelezés) állítja be 42
XCP Parancsok Statikus DAQ kezelése Előre beállított DAQ listák kezelése Parancsok ClearDaqList (0xE3) kitörli a megadott ldaq listák konfigurációját (tól-ig) SetDaqPointer (0xE2) beállítja a mutatót egy adott ODT elemre a további műveletekhez WriteDaq (0xE1) - beírja az ODT elem adatait a mutató által jelölt helyre ReadDaq (0xDB) - kiolvassa a mutató által jelölt ODT elem adatait SetDaqListMode (0xE0) - beállítja a DAQ lista konfigurációját Timestamp, id küldés, prioritás, hozzárendelt esemény csatorna GetDaqListMode (0xDF) - visszaolvassa az előző paranccsal beállított adatokat StartStopDaqList (0xDE) elindítja, kiválasztja vagy leállítja a DAQ listát StartStopSync (0xDD) elindítja vagy leállítja az összes kiválasztott listát 43
XCP Parancsok Dinamikus DAQ kezelése Ezekkel a parancsokkal dinamikusan hozhatunk létre DAQ listákat Parancsok FeeDaq (0xD6) Töröl minden DAQ listát és felszabadítja a dinamikusan létrehozottakat AllocDaq (0xD5) adott számú DAQ listát hoz létre AllocODT (0xD4) Az adott DAQ listában létrehoz megadott számú ODT listát AllocODTEntry (axd3) Az adott ODT listában létrehoz megadott számú ODT bejegyzést 44
XCP eszközök 45