Témakör:
Nem törlődő memóriaregiszterek a biztonságért és megbízhatóságért
Megjelent: 2018. május 08.
Gyakran csak a közérzetünk „ellenőrzése” kedvéért vagyunk kíváncsiak a hőmérsékleti adatokra. Máskor azonban ezek egyenes összefüggésben vannak egy készülék, rendszer vagy folyamat biztonságával. Ez utóbbi esetekben tesznek hasznos szolgálatot azok a regiszterek, amelyek még meghibásodást követően is őrzik például egy szenzor utolsó hasznos mért értékeit. Ezekről ad bővebb tájékoztatást a cikk.
Szinte naponta hallunk híreket elektronikus termékekről, amelyek túlmelegedése akár katasztrofális következményekkel is járhat (1. ábra). Ám ahogy egy túlmelegedett elektronikus eszköz – magától értetődően – problémák forrása lehet, a készülékek működése közben elkerülhetetlenül keletkező hőmennyiség helyes kezelése az okos, előrelátó készüléktervezés fontos részét képezi. Ez a cikk azokról a felhasználó által programozható belső regiszterekről ad tájékoztatást, amelyet a digitális kimenetű (I2C protokollon kommunikáló) hőmérsékletszenzorok tartalmaznak, valamint arról, hogyan lehet úrrá lenni a biztonság tervezési kihívásain azokkal a digitális hőmérsékletszenzorokkal, amelyek integrált, nem törlődő memóriaelemeket tartalmaznak.
1 ábra
A hőmérsékletszenzorok regiszterei
Kezdjük néhány alapvető háttérinformációval arról, hogyan lehet egy ipari szabvány szerint készült I2C hőmérsékletszenzor belső regisztereit programozni. Ezeket nevezzük gyakran „LM75-típusú” protokollal rendelkező érzékelőknek[1], amelyek négy alapvető belső regiszterrel rendelkeznek (2. ábra).
• Pointer regiszter
• Konfigurációs regiszter
• Felső hőmérséklethatár (THIGH) regiszter
• Alsó hőmérséklethatár (TLOW) regiszter
2. ábra Egy tipikus digitális kimenetű hőmérsékletszenzorban található regiszterek
Ezek a regiszterek teszik lehetővé, hogy a felhasználó – az eszköz bekapcsolása során végrehajtható alapérték-beállító folyamat során, a hoszt vezérlő segítségével a mérési feladathoz illessze a hőmérsékletszenzor működési beállításait. Ezek alól a hőmérséklet-regiszterek kivételt képeznek – ezekre később visszatérünk. A pointer (mutató) regiszter lehetővé teszi, hogy az általa tartalmazott értékkel indirekt módon megcímzett és kiválasztott regiszter tartalmához hozzáférjünk. A konfigurációs, a TLOW és a THIGH, valamint a mért hőmérsékleti adatot tartalmazó regészterhez közvetlenül, az I2C szoftverparancsokkal nem férhetünk hozzá, azokat csak a pointer regiszterrel megcímezve lehet elérni, amint azt az alábbiakban bővebben bemutatjuk majd. A konfigurációs regiszter a szenzor működésmódjának vezérlésére szolgál, továbbá olyan beállításokat tartalmaz, mint a hőmérséklet digitális konverziójának előírt felbontása, a hibatűrés várakozási sora, az ALERT (riasztás) kivezetés polaritása, a riasztási hőmérsékletszabályozási, valamint a kikapcsolási üzemmód beállítása. A piacon továbbá kapható néhány eszköz, amelyeknek a fentieken kívül „egyciklusú” (értsd, külső vezérlőjellel indítható egyetlen mérési ciklust végrehajtó) üzemmódja is van. Ez az indított üzemmód az energiatakarékos működtetés egyik módszere. Az eszköz a kis fogyasztású készenléti üzemmódból az indítójel hatására kilép, végrehajt egyetlen hőmérsékletmérési ciklust, az eredménnyel frissíti a hőmérséklet-regiszter tartalmát, majd visszatér a készenléti üzemmódba. A hőmérséklet-regiszter csak olvasható, amely a legutóbbi hőmérsékletmérő ciklus digitalizált mérési eredményét tartalmazza, és abból a legutóbb mért hőmérséklet értéke egyszerűen kiolvasható. A hőmérséklet-regiszter bármikor kiolvasható, és mivel a hőmérsékletmérés folyamata a „háttérben” fut, a hőmérséklet-regiszter kiolvasása nincs hatással semmilyen más, folyamatban levő műveletre. A TLOW és a THIGH határérték-regiszterek tárolják azokat a felhasználó által programozható alsó és felső határérték-adatokat, amelyek a hőmérséklethatár átlépésekor keletkező riasztást meghatározzák. A 3. ábra egy tipikus hőmérséklet-időfüggvényt mutat. Például, ha a felhasználó a TLOW regiszterbe 50, a THIGH regiszterbe pedig 85 °C hőmérsékletnek megfelelő digitális értéket ír be, a hőmérsékletszenzor aszerint állítja be a hoszt vezérlő által kiolvasható jelzőbitjeit, hogy melyik határértéket lépte át a mért hőmérséklet.
A törlődő memóriaregiszterek problémái
Miután megismertük az eszköz néhány alapfunkcióját, vizsgáljuk meg, milyen tipikus problémákkal találkozhatunk ezen regiszterek értékbeállítása során. Az első probléma, hogy ezek a felhasználó által programozható regiszterek „illékony” (volatile, törlődő) típusúak, azaz ha a tápfeszültségellátás megszűnik, a regiszterek tartalma nem mentődik és nem őrződik meg. Mivel ezeket a törlődő regisztereket minden egyes rendszerinduláskor, és rendszer-alapérték beállításakor újra be kell tölteni, ez nagy kockázatú, megbízhatatlan időzítésű események keletkezését teszi lehetővé, amelyek során előfordulhat, hogy ezeket a regisztereket – akaratlanul – helytelenül konfigurálják, azokba hibás értékek kerülnek, amely hőmérsékletszabályozási problémákat (pl. hőmegfutást) eredményezhet a készülékben. Gondolt Ön arra, hogy egy termék az életciklusa során hány bekapcsolási folyamaton megy keresztül? Ezek száma több száztól több ezerig terjedhet, amely jelentősen megnöveli annak valószínűségét, hogy valami elromoljon a bekapcsolási folyamat közben. Ez egy valóban kritikus biztonsági kérdés. A 3. ábra példájában a TLOW és a THIGH regisztereket 50 és 85 °C értékre állítottuk. De mi történik, ha a THIGH regiszter 85 helyett 185 °C-ra állítódik a rendszert ért zaj hatására keletkező egyetlen bithiba miatt? Ez a nem kívánatos esemény talán nem okozza a rendszer olyan mértékű túlmelegedését, hogy tűz keletkezzék, de a rendszer működésében legalábbis az optimálistól eltérő, kedvezőtlen esetben akár katasztrofális rendellenesség is bekövetkezhet. A jelenkor sok termékében sok olyan részegység van, amelynek a működését a bekapcsolási folyamat során kell konfigurálni beleértve a fő részegységek és alkatrészek időzítését is. Ezeknek a bekapcsolási folyamatoknak a helyes időzítése rendkívül fontos feltétele annak, hogy a végtermék rendeltetésszerűen működjön. Ez elvezet a következő kérdéshez: vajon hányszor történik meg, hogy a felhasználó visszaküldi a termékünket hibaanalízisre, és a hibás működést nem sikerül reprodukálni? A készülék az ismételt gyári tesztelés során teljesen működőképesnek tűnik, és azzal az állapotjelentéssel kísérve érkezik vissza a felhasználóhoz, hogy „nem találtunk hibát”. Az előrelátó terméktervezés fő célkitűzéseinek egyike a válasz lehetőségének megteremtése a „mi van, ha…” típusú kérdésekre azoknak a potenciális hibalehetőségeknek a tekintetében, amelyek a végfelhasználónál is előfordulhatnak, és amelyeket a tervezés során vagy erre vonatkozó képesség beépítésével megkísérelhetünk eleve kiküszöbölni, mielőtt a termék eljutna a végfelhasználóhoz. Ez a forgatókönyv tehát egy újabb „mi van, ha…” kérdést vet fel, amellyel foglalkozni kell, ha a következő tervezési munkánk során diszkrét hőmérsékletérzékelők alkalmazására kerül sor, a protokoll típusára vagy az alkalmazott technológiára való tekintet nélkül.
3. ábra A diagramon a mért hőmérséklet időfüggvénye látható, azokkal a pontokkal, ahol a mért hőmérséklet kívül kerül a TLOW és a THIGH regiszterekben tárolt határértékek által kijelölt sávon
A nem törlődő memóriaregiszterek megváltoztatják a játékszabályokat
Megoldást jelenthet az említett problémára az olyan hőmérsékletszenzorok alkalmazása, amelyek nem csupán törlődő regisztereket tartalmaznak, hanem egy olyan integrált, kikapcsoláskor nem törlődő regiszterkészletet is, amelyet a 4. ábra mutat. Amint az látható, a konfigurációs regiszter, valamint a felső és alsó hőmérséklet-határérték regiszterek mindegyikének van egy nem törlődő, integrált megfelelője. A nem törlődő regiszterek funkcionalitása ezzel jelentősen kibővül, amely egyszerű „plug-and-play” működést tesz lehetővé, amely előre meghatározott, alapértelmezett viselkedést valósít meg a tápfeszültség bekapcsolásakor. A nem törlődő regiszterek megőrzik a konfigurációs és a hőmérséklethatár-beállításokat még akkor is, ha időközben a tápfeszültség megszűnik, majd ismét megjelenik, és ezzel feleslegessé válik a hőmérsékletszenzorok újrakonfigurálása minden egyes tápfeszültség-bekapcsoláskor. Ez a megoldás tehát lehetővé teszi, hogy a hőmérsékletszenzor integrált, nem törlődő TLOW és THIGH regisztereinek tartalmát egyetlen alkalommal állítsuk csak be – a példánk szerint – 50 és 85 °C-os értékre. Ennek következtében a beállított értékek a nem törlődő memóriában tárolódnak, garantálva, hogy a törlődő regiszterek a következő bekapcsolási ciklus kezdetén a nem törlődő TLOW és THIGH regiszterekből automatikusan átmásolódva, külső beavatkozás nélkül biztosítják, hogy a TLOW és THIGH értékek az eredeti beállításnak megfelelők legyenek. Felvetődhet a kérdés, hogyan oldja meg ez a törlődő regiszterek értékének bizonytalanságából eredő problémát a tápfeszültség megjelenésekor. A válasz az, hogy nincs tovább szükség arra, hogy a hosztvezérlő az I2C kommunikációs buszon megvalósuló protokollal minden egyes bekapcsoláskor elküldje a regiszterek helyes értékeit, és ezzel megszünteti azt a kockázatot, amit a szoftver-protokoll lefutásának időzítése jelent. Ez egyben egyszerűsíti a teljes rendszer bekapcsolási szekvenciáját, csökkenti vagy kikü-szöböli a rendszer megbízhatóságának függését a hoszt kontroller konfigurációs műveleteitől. A hőmérsékletszenzor alkalmazásában pedig további lehetőséget nyit az, hogy a szenzor önállóan, hoszt kontroller nélkül is képes működni, anélkül, hogy rendszerindításkor igénybe kéne vennie annak konfigurációs szolgáltatását. Egy másik módszer is rendelkezésre áll, amellyel ez a javasolt megoldás még megbízhatóbbá tehető: a nem törlődő regiszterekre nézve létezik egy zároló (lock) funkció, amellyel visszafordíthatóan, de akár visszafordíthatatlanul is meg lehet akadályozni a nem törlődő regiszterek feltöltését helytelen konfigurációs értékekkel. Ez a regiszterzárolási képesség – amely az AT30TS750A hőmérsékletszenzor-modellben is megtalálható – lehetővé teszi a hőmérsékletszenzor végleges konfigurálását egy adott feladat igényeihez, és feleslegessé teszi a hőmérsékletszenzor védelmét az illetéktelen beavatkozásokkal szemben, csökkentve ezzel a termékfelelősségi problémáknak való kiszolgáltatottságot. Napjainkban bármi, ami növeli egy termék megbízhatóságát, miközben csökkenti a termékfelelősségi kitettségét, olyan „win-win” üzleti gyakorlat, amely a gyártónak és a végfelhasználónak egyaránt kedvező. Ennek következtében – lévén, hogy képesek vagyunk akár visszafordíthatóan, akár véglegesen megelőzni egy regiszter értékének megváltoztatását, a téves kezelés vagy a rosszhiszemű beavatkozás következményeit – jelentősen megnövekszik a nem törlődő regiszterek alkalmazása egy termékben, különösen, ha az a termék mergbízhatóságát és biztonságát növeli.
4. ábra A Microchip AT30TS750A digitális hőmérsékletszenzor hőmérséklethatár-regisztereinek értéke a készülék bekapcsolási folyamata során automatikusan felülíródik a nem törlőrdő regiszterekben tárolt értékekkel
Összefoglalás
Bízunk abban, hogy sikerült elősegítenünk egy készülék termikus tervezésével kapcsolatos tervezési megfontolások jobb megértését. Míg a törlődő memóriákkal éveken át vesződtek a mérnökök, az új digitális hőmérséklet-érzékelők, mint a Microchip AT30TS750A típusa is, nem törlődő memóriaregisztereket tartalmaznak, amelyek segítenek a tervezőmérnöknek elkerülni ezeket az időt rabló „kínszenvedéseket”, és ez jelentős előrelépés a termikus problémák kezelése területén.
Szerző: Bryce Morgan – Microchip Technology, Inc.
www.microchip.com
Még több Microchip
[1]A Maxim Integrated által gyártott LM75 „őstípus” belső felépítését, programozói modelljét és digitális interfészét követő, de egyéb tulajdonságaikban (a mintasebességben, a hőmérsékleti határokban és metrológiai tulajdonságokban) esetleg eltérő digitális hőmérsékletszenzor-modellek gyűjtőneve. – A szerk. megj.