Érzékelők közötti kommunikáció – a SENT-protokoll bemutatása
A járműiparban tendenciózus, hogy menet közben egyre több a feldolgozandó információ, így az autón belüli kommunikációs sztráda egyre nagyobb keresztmetszetűvé kényszerül válni. Az analóg jelek folyamatos digitalizációja elkerülhetetlen, azonban itt még nincs vége a munkának – a következő lépés a digitális információáramlás hatékonyságának növelése, racionalizálása. Ehhez azonban új megoldásokat kellett választani – így született meg többek között a SENT-protokoll autóipari alkalmazása is.
Ebben a cikkben a módszer alapjait, dekódolását és használatát mutatjuk be.
Definíció, alapok
A SENT protokollt eredetileg autóipari hajtáslánc-alkalmazásokhoz fejlesztették, de alacsony megvalósítási költsége és a nagy felbontású szenzoradatok nagyobb integritásának megőrzése, valamint a zajjal szembeni robusztussága miatt vonzóvá vált más autóipari és nem autóipari alkalmazások számára is.
Írásunk tárgyát az SAE J2716 szabvány írja le, mely szerint a SENT (Single Edge Nibble Transmission), egy eseményvezérelt aszinkron üzenettípus, amely időtartammal dekódolható. Az üzenet jelentését két lefutó él közötti időtartam hossza határozza meg. A rövidítés azt jelenti, hogy a kommunikáció alaptézise, hogy az üzenetben két „él” közötti idő négy bitet, azaz nibble-t jelöl, és az üzenet egyirányú, valamint a továbbítás egyetlen vezetéken történik.
A digitális jel egyik fő jellemzője a frekvencia, ami döntő hatással bír az információáramlás sebességére. Az üzenet hossza függ a tartalomtól is, azaz kis érték továbbítása kevesebb időt emészt fel, mint egy nagyobb értéké.
A rendszer nagy előnye, hogy az üzenetek között nem kell szinkronizációs szünetet tartani, tehát egy adott időegység alatt több információ továbbítható.
Dekódolás
Ahogyan korábban is utaltunk rá, a SENT-protokoll működése idővezérelt, az időegység, vagyis az ütem meghatározása pedig a küldőtől függ. Ez a meghatározás az üzenet első részében zajlik le, a szabvány szerint ugyanis ez felel a szinkronizációért – ennek köszönhető, hogy a fogadó szünet nélkül is képes elválasztan az egymás után érkező szüneteket egymástól.
A szinkronizációs mező 56 ütem hosszú. Időegységet tekintve kiszámolható, hogy ha a szinkronizációs mező 560 mikroszekundom, akkor egy ütem hozza 10 mikroszekundum lesz.
Az üzenet második része a küldőről tartalmaz információt. Ez lehet bármilyen azonosító, ami alapján meghatározható a küldő.
A harmadik rész az üzenet törzse, ahol 4 bites csomagokban érkezik egymás után a továbbítandó adat. Két lefutó él közötti idő, azaz ütemszám definiál egy decimális számot, ami 0 és 15 közötti lehet. Ez onnan ered, hogy az adatmezőben két lefutó él között minimum 12, maximum 27 ütem telhet el, és a 12-höz társul a nullás decimális érték. Ezt át kell váltani bináris számrendszerbe, vagyis így 0000 és 1111 közötti értéket vesz majd fel. Ebből már a szükséges adatok ismeretében kiszámolható a két lefutó él között eltelt idő is.
Ami az üzenet hosszát illeti, a szabvány szerint legkevesebb egy, legfeljebb hat nibble küldhető egy üzenetben, ami azt jelenti, hogy az adatmező 4 és 24 bit közötti méretet vehet fel.
Az adatcsomag után a checksum üzenetrész következik, mely arra szolgál, hogy utólag ellenőrizze az adat továbbításának megfelelőségét. Ez az üzenet lezárása, innentől már csak egy esetleges szünet érkezhet, amíg az első lefutó él meg nem jelenik, és azzal kezdetét veszi a következő üzenet szinkronizálása.
Működés a gyakorlatban
Maga a tény, hogy a SENT egyvezetékes (legalábbis ami az adattovábbítást illeti), méginkább, hogy egyirányú kommunikációs protokoll, alapvetően determinálja a területeket, ahol érdemben hasznosítható. Ezek közül is az arra legalkalmasabb terület a szenzorika. Az érzékelők saját maguk küldhetnek adatot a feldolgozó egységnek, ráadásul mivel rugalmas a szabványos üzenet hossza, lehetővé teszi, hogy minden szenzor a saját mennyiségi tulajdonságainak megfelelően küldjön adatot. Az ütemidő szintén szenzorra szabható, felhasználástól függően gyakori és ritka adatküldés is beállítható 3 és 90 mikroszekundum közötti intervallumban. És ha ez nem lenne elegendő, még a szünet hossza is variálható.
Gyors és lassú csatorna
A SENT protokoll, bár valóban egy vezetéken továbbít adatot, összesen három vezetéket igényel: egy jelvezetéket (alacsony feszültség < 0,5 V, magas feszültség > 4,1 V), egy tápfeszültség vezetéket (5 V) és egy földelő vezetéket.
Az üzenetküldés átalános formája a gyors csatorna, melyet a dekódolás fejezetben is leírtunk: minden üzenetet egy szinkronizációs impulzus előz meg, mely után minden nibble fix szélességű alacsony jellel kerül továbbításra, amelyet egy változó hosszúságú magas periódus követ. Az alsó periódus 5 (vagy több) ütem hosszúságú, míg a felső periódus változhat.
Ez azonban nem az egyetlen működési forma. A fent leírt gyors csatornás (Fast Channel) érzékelő adatjelkeretén kívül a SENT lehetővé teszi a lassú csatorna üzenetek egyidejű továbbítását is, melyek sokféle egyéb információt tartalmazhatnak.
Ezeket az üzeneteket sorosan továbbítják, gyors csatorna üzenetenként egy bittel, az állapot nibble két legjelentősebb bitjébe kódolva. Ezt az üzenettípust jellemzően diagnosztikai információk továbbítására, vagy további lassan változó érzékelők, például hőmérsékleti értékek jelentésére használják fel. Ezt nevezzük lassú csatornának, azaz Slow Channelnek.
Egy ilyen üzenet a következőképp néz ki:
Egy 16 bites rövid, soros üzenetformátum 16 bites üzenetet továbbít 16 Fast Channel üzenet “kereten”, azaz frame-en. Az üzenet az alábbi összetevőkből áll: egy 4 bites üzenetazonosító, 8 bites adatmező és egy 4 bites Checksum mező. A státusz nibble 3. bitje (más néven MSB) kódolja, amely 1-es az üzenet első frame-jében, és nulla a következő 15 frame esetében. Ezután az üzenet átvitelre kerül, 1 bit keretenként, a 2. állapotbitben.