A valós idejű funkciók megvalósítása beágyazott rendszerek esetében
Megjelent: 2018. november 06.
Az egyes feladatok adott napon és időpontban való lefuttatási idejének ismeretére, illetve az események időbélyegzővel való ellátására vagy mindkettőre számos beágyazott alkalmazásban szükség van. Az ezt a feladatot megvalósító RTCC (valós idejű óra és naptár) chipek évtizedek óta elérhetőek, de a tervezők előtt ott a kihívás, hogy csökkentsék az alkatrészek számát és helyigényét, és egyúttal fogják minél kisebbre a fogyasztást és a tervezési időt.
A beépített RTCC eszközök és újszerű modulok megfelelnek a kihívásoknak
Ez a cikk azt ismerteti, hogyan kell kiválasztani az RTCC chipet, majd gyorsan betervezni egy beágyazott rendszerbe, a lehető legkisebbre csökkentve egyúttal a helyigényt és a fogyasztást. Bemutatásra kerülnek a cikkben az RTCC-kbe beépített mikrovezérlők (MCU-k) is, valamint az is, hogy a jelenleg kapható RTCC-modulok hogyan használhatók prototípus-készítésre felületszerelt valós idejű órák (RTC-k) és egyéb alkatrészek használatával.
A modulokba beépített RTCC chipeket jellemzően támogatják az Arduino-könyvtárak és a különféle Raspberry Pi Raspbian-illesztőprogramok, amelyek megkönnyíthetik az ezekkel az eszközökkel végzett, beágyazott elemekkel történő kísérletezést és a prototípus-készítést.
1. ábra Az Adafruit cég 255 Chronodot eszköze tartalmaz egy RTCC chipet és egy elemet egy furatszerelt modulon (A kép forrása: Adafruit)
Az RTCC-k szerepe
Számos beágyazott alkalmazásnak szüksége van arra, hogy minimális fogyasztással kövesse az időt a külvilághoz képest, és egyéb feladatokra szabadítsa fel a fő processzort.
Az RTCC önmagában voltaképpen nem sok mindenre képes. Kell hozzá egy pontos kristály az időméréshez – esetleg egy hőkompenzált kristály a nagyon pontos időméréshez – és egy tartalék telep (szárazelem vagy akkumulátor), hogy az időt akkor is mérni lehessen, amikor a beágyazott rendszer ki van kapcsolva. Ezek a kiegészítő alkatrészek határozzák meg az RTCC azon képességét, hogy végre tudja-e hajtani két fő feladatát:
-
Minden körülmények között következetesen mérje a pontos időt.
-
Minél kevesebbet fogyasszon, amikor a beágyazott rendszer többi része ki van kapcsolva.
1. táblázat Hat RTCC modullal szemléltetjük az RTCC modulok széles körű elérhetőségét és változatosságát (Az adatok forrása: Digi-Key Electronics)
Néhány mikrovezérlő tartalmaz RTCC-t
Néhány mikrovezérlő, mint például a Microchip Technology 32 bites PIC32MZ2064DAA288 mikrovezérlője, tartalmaz belső RTCC blokkot. A pontos időmérést igénylő rendszerek tervezéséhez jó ötletnek tűnik egy ilyen eszköz használata, főleg, hogy a PIC32MZ2064DAA288 mikrovezérlő automatikusan átkapcsolja belső táplálását a saját telepbemeneti lábára (VBAT), amikor a normál táplálási lábain (VDDCORE és VDDIO) nem elegendő a feszültség az eszköz táplálásához.
Van azonban néhány további olyan kihívás ezen eszközök esetében, amelyek közvetlenül az RTCC két fent említett alapfeladatához kapcsolódnak: a pontos időméréshez és a kis fogyasztással történő működéshez.
Először is a PIC32MZ2064DAA288 mikrovezérlő RTCC blokkjának egy 32 768 Hz-es kristályra van szüksége, amelyet az eszköz másodlagos oszcillátorának két lábára kell kötni, hogy akkor is mérje a pontos időt, amikor a mikrovezérlő ki van kapcsolva. Bár lehetőség van arra is, hogy a mikrovezérlő fő óraoszcillátorát használjuk az RTCC blokk működtetésére, de ez az oszcillátor leáll, amikor a mikrovezérlő mélyalvás-üzemmódba kerül.
A lapkán lévő RTCC tartalmaz egy kalibrációs regisztert, és a Microchip kínál egy olyan kalibrálási eljárást, amely képes havi 0,66 másodpercre csökkenteni az időmérési hibát az olyan kristályoszcillátor-frekvenciák esetében, amelyek a névleges értékhez képest akár 260 milliomodnyi (0,026%-nyi) értékkel el vannak tolódva. A helyesbített kalibráció azonban nem számol a hőmérséklet változásával, amely szintén befolyásolhatja az oszcillátor frekvenciáját és ezzel az időmérés pontosságát.
A másik gond az, hogy a mikrovezérlő a telepről történő táplálásra való átkapcsoláskor nem válik teljesen árammentessé, kivéve az RTCC blokkot. A mikrovezérlő más blokkjaiban működés esetén – a szoftveres vezérléstől függően – vagy lehet engedélyezni telepről az áramellátást, vagy nem. Itt az jelenti a kihívást, hogy a telep lemerülése és élettartama a szoftvertől függ.
Ez a probléma nem kizárólag a PIC32MZ2064DAA288 mikrovezérlőre jellemző. Minden olyan mikrovezérlőnél előfordul, amelyben van RTCC blokk. Külön RTCC használatával ez a probléma leküzdhető, mert így egyértelműen elválik az időmérési funkció a mikrovezérlőtől, ezenkívül tervezéskor ez az egyetlen választási lehetőség, amikor a mikrovezérlő nem tartalmaz RTCC-t.
2. ábra A Maxim Integrated cég DS1307 jelű RTCC áramköre automatikusan átkapcsol a VCC lábról a VBAT lábra, amikor a VCC lábon a feszültség nagyjából 4,5 V alá esik (A kép forrása: Maxim Integrated)
RTCC lapkák és modulok
A tervezőmérnökök évtizedekig külön RTCC chipeket használtak arra, hogy az időmérés a különféle beágyazott és számítási alkalmazásokban pontos maradjon. Miközben egyre több integráltáramkör-gyártó most már kínál ilyen lapkákat, a felületszerelési megoldás bonyolultabbá tette az RTCC lapkák értékelését, mert az eszközöket nem lehet egyszerűen kézzel beforrasztani vagy aljzatba dugni.
A jó megoldás az RTCC chipekre épülő olcsó modulok használata, mert így kiküszöbölhetők a kis méretű, felületszerelt integrált áramkörökkel kapcsolatos prototípuskészítési gondok. Ezek a modulok szintén tartalmazhatnak telepet (akkumulátort vagy szárazelemet), általában gombelemet, hogy az eszköz akkor is kapjon tápellátást, amikor a fő rendszer ki van kapcsolva.
Az ilyen modulokra kiváló példa az Adafruit cég 255 Chronodot eszköze (1. ábra). Ezek a modulok kiválóan megfelelnek az RTCC chipek kísérleti áramköreinek gyártása és prototípusok készítése, de sok esetben még tömeggyártás során is.
Az 1. táblázat két integráltáramkör-gyártótól származó, három különböző RTCC chipre épülő, hat különféle RTCC modul néhány adatát tartalmazza.
Az RTCC modulok, mint az 1. táblázatban szereplő hat típus, megkönnyítik az időmérés kialakítását a rendszerek prototípusain. Ha közelebbről megnézzük, hogyan vannak kialakítva ezek a modulok, hasznos információk birtokába jutunk RTCC chipet tartalmazó áramköri kártyák tervezéséhez.
3. ábra A 32 768 Hz-es kristály rezonanciafrekvenciája a hőmérséklet változásával megváltozik, ami befolyásolja az RTCC időmérési pontosságát (A kép forrása: IQD Frequency Products)
Az első figyelemre méltó tényező az 1. táblázatban az, hogy mindegyik RTCC modulban van egy közös elem, az I²C illesztőfelület. Az 1970-es évekből származó első RTCC chipek kis SRAM-okat emuláltak, párhuzamos címeket és adatsíneket használva. Az egy olyan korszak volt, amikor a párhuzamos sínek voltak hétköznapiak a mikroprocesszorokban, és a belső soros protokollok nem voltak még széleskörűen elterjedtek.
Napjainkban a lapkaközi soros protokollok, nevezetesen az I²C jelentik a viszonylag kis sávszélességet igénylő perifériákhoz választott illesztőfelületet. Az RTCC chipek ennek mindenképpen megfelelnek, mert alig néhány bájtra van szükség a dátum- és időadatok átviteléhez.
Az 1. táblázatban látható első két RTCC modul, a DFRobot cég DFR0151 jelű terméke és a SparkFun cég BOB-12708 jelű terméke, egyaránt a Maxim Integrated cég DS1307 jelű RTCC áramkörére épül, amely egy 8 lábú integrált áramkör. Népszerűsége miatt az ezen eszközre épülő modulokhoz Arduino-könyvtárak és különféle Raspberry Pi Raspbian-illesztőprogramok is elérhetők.
A DS1307 RTCC-nél külön láb van a tápellátási sínhez és a telephez, hogy áramkimaradás esetén automatikus átkapcsolási lehetőséget kínáljon a beágyazott rendszer tápellátási sínje és a telep, mint tartalék áramforrás között. (2. ábra).
A 2. ábra mutatja a DS1307 típusú RTCC és a kristály közötti kapcsolatot is. Az RTCC áramkörök esetében ez a kristály csaknem mindig valamilyen 32 768 Hz-es olcsó órakristály, amilyen az IQD Frequency Products cég WATCH-2X6 jelű terméke. Ez a kristály két olyan új tényezőt vezet be, amelyet az RTCC eszközök tervezésekor figyelembe kell venni.
Az első a kristály hőstabilitása. A legtöbb RTCC eredetileg karórákba tervezett „hangvilla”-kristályt használ. Ezek a kristályok a hőmérséklet változásával elhangolódnak a névleges frekvenciájuktól (3. ábra).
Az IQD cég WATCH-2X6 jelű kristályának rezonanciafrekvenciája a hőmérséklet változásával megváltozik, aminek hatására megváltozik az oszcillátor frekvenciája is, ami időmérési hibát okoz. Tájékoztatásul megjegyzem, hogy az oszcillátor frekvenciájának 20 milliomodnyi (0,002%-nyi) eltérése nagyjából havi egy perc időmérési hibát eredményez.
A második tényező a kristály és az RTCC közötti kapcsolat túlzott leegyszerűsítése miatt a 2. ábrán nem látható. Az RTCC kristálykimeneti lába jellemzően nagyon nagy impedanciájú, aminek következtében az órakristály vezetékei és a nyomtatott áramköri lapon lévő vezetőcsíkok antennaként viselkednek. Ez az „antenna” becsatolhatja a rendszer többi részéből származó nagyfrekvenciájú jeleket és zajt az RTCC beépített kristályoszcillátorába.
4. ábra Az alkatrészek nyomtatott áramköri lapon való elhelyezésének gondos megtervezésével és földelő réteg kialakításával kiküszöbölhető, hogy nem kívánt zaj befolyásolja az RTCC időmérési pontosságát (A kép forrása: Maxim Integrated)
Az órakristály és az RTCC közötti vezetőcsíkokon átcsatolt bármilyen zaj további tranziensjeleket vihet be az RTCC oszcillátor-áramkörébe, aminek hatására az óra sietni fog. A megoldás az alkatrész-elrendezés gondos megtervezése a nyomtatott áramköri lapon. Ilyenek például, hogy a kristályt a lehető legközelebb kell elhelyezni az RTCC oszcillátor lábaihoz, valamint, hogy földelő réteget kell kialakítani a kristálybemeneti lábak és a teljes órakristály alatt (4. ábra).
Ezenkívül a 4. ábrán látható egy csíkozott terület az RTCC tok alatt, ide nem szabad elhelyezni semmit, hogy a közel futó vezetőcsíkok ne csatolják a zajt az RTCC kristálybemeneti lábaira. Ha megoldható, helyezzen el egy olyan védőgyűrűt a nyomtatott áramköri lap alkatrészrétegén, amely körülveszi a kristályt és az RTCC kristálybemeneti lábait, ezzel is elősegíthető, hogy a zaj ne befolyásolja az időmérés pontosságát.
5. ábra Az STMicroelectronics cég M41T62 jelű RTCC áramköre (középen) a STEVAL-FET001V1 kiértékelő kártyán, 24 lábú, két lábsoros elrendezésű (DIP) integrált áramköri tokozásban (A kép forrása: STMicroelectronics)
Az órakristály levétele a nyomtatott áramköri lapról és a lapkába építése
A külső kristály használata esetén az alkatrészek nyomtatott áramköri lapon való elhelyezésével kapcsolatos problémák elkerüléséhez válassza az STMicroelectronics cég M41T62 jelű, beépített kristályt tartalmazó RTCC-jét. Az RTCC chip az STMicroelectronics cég STEVAL-FET001V1 típusú kiértékelő kártyáján található,
24 lábú, két lábsoros elrendezésű (DIP) integrált áramköri tokozásban. Ennek a kártyának a rajza az 5. ábrán látható. Az M41T62 jelű termékhez Arduino-könyvtár és különféle Raspberry Pi Raspbian-illesztőprogramok is elérhetőek.
Amint az ábrán is látható, az M41T62-nek csak VCC lába van. Külön VBAT lába nincs, amelyre a mindössze 1,5 mm × 3,2 mm méretű, főleg viselhető készülékekben és digitális fényképezőgépekben való használatra szánt fő tápellátási sín hibája esetén át lehetne kapcsolni. Ezekben a beágyazott alkalmazásokban a telep jellemzően az egyetlen áramforrás, mivel a hely nagyon értékes.
Érdemes tudni, hogy az M41T62 áramforrásaként szuperkondenzátor is használható. Beágyazott rendszerekben a rendszer áramforrása vagy a töltő egy D1 záróréteges diódán át köthető az M41T62 VCC lábára (6. ábra).
A diódának kis szivárgóáramú alkatrésznek kell lennie, amilyen például az 5. ábrán látható 1N4148WS jelű típus, hogy megakadályozza a szuperkondenzátor kisülését visszafelé, a rendszer áramforrásán át, amikor a rendszer többi része ki van kapcsolva.
6. ábra Az M41T62 RTCC áramforrásaként újratölthető szuperkondenzátor is használható (A kép forrása: STMicroelectronics)
A hőmérséklet-kompenzáció „megszelídíti” a kristályt
Az 1. táblázatban szereplő RTCC modulok közül három (az Adafruit 3013, az Adafruit 255 Chronodot és a Maxim DS3231MPMB1#) a Maxim cég DS3231 jelű RTCC áramkörén alapul (7. ábra). A beépített kristály mellett az eszköz hőérzékelőt is tartalmaz, amely magyarázza az eszköz hosszú hivatalos nevét: Extremely Accurate I²C-Integrated RTC/TCXO/Crystal (Rendkívül pontos, I²C-be beépített valós idejű óra/hőkompenzált kristályoszcillátor/kristály).
Amint a blokkvázlaton látható, a DS3231 hőkompenzált kristályoszcillátor (TXCO) egy belső kristályból, egy hőérzékelőből és egy kapcsolt kondenzátortömbből áll. A DS1307 RTCC-hez hasonlóan a DS3231 esetében is külön láb van a fő tápfeszültség (VCC) és a tartalék áramforrásként használt telep (VBAT) számára.
Akárcsak az STMicroelectronics M41T62 RTCC áramköre, a DS3231 RTCC is mentes a külső kristály használatával járó alkatrészelrendezési problémáktól. Hőkompenzált kristályoszcillátora csökkenti az időmérés hőingadozások miatti pontatlanságát. A DS3231 belső hőkompenzált kristályoszcillátora nagyon széles hőmérséklet-tartományban (–40 °C…+85 °C között) évi 2 percen belül tartja az eszköz időmérési pontosságát.
Népszerűsége miatt a DS3231 RTCC áramkörre épülő modulokhoz Arduino-könyvtárak és különféle Raspberry Pi Raspbian-illesztőprogramok is elérhetőek.
7. ábra A DS3231 típusú RTCC beépítve tartalmaz egy 32 768 Hz-es órakristályt, egy hőérzékelőt és egy kapcsolt kondenzátortömböt, hogy az eszköz időmérési pontosságát évi ±2 perc értéken tartsa (A kép forrása: Maxim Integrated)
Meddig bírja a telep?
A telepek olyan karbantartást igénylő alkatrészek, amelyek nem tartanak örökké. Amikor RTCC-t tervezünk egy beágyazott alkalmazásba, fontos tudni, mekkora áramot vesz fel az RTCC a telepből, hogy ennek megfelelően tudjuk méretezni a tartalék áramforrásként használt telepet (elemet vagy akkumulátort).
Azt, hogy az RTCC-alkalmazás mennyi ideig képes telepről működni, az RTCC lapka időmérés közbeni áramfelvétele és az RTCC lapka által igényelt minimális üzemi feszültség határozza meg, valamint az, hogy mennyi ideig tudja a kívánt erősségű áramot szolgáltatni a telep, mielőtt a kapocsfeszültsége a minimális üzemi feszültség alá esik (2. táblázat).
Az 1. táblázatban korábban már látott RTCC modulok esetében a tartalék áramforrásként használt telepek már kiválasztásra kerültek. Néhány modulgyártó megadja a telepek élettartamát is a modul adatlapján, ez szintén látható az 1. táblázatban. Ezekben a modulokban telepként jelenleg lítiumionos gombelemeket használnak. A gombelemek átmérője 10 mm, 12 mm vagy 16 mm. Minél nagyobb a telep kapacitása, annál nagyobb a mérete és a tömege is, egyértelmű előnye viszont, hogy adott áramfelvétel mellett hosszabb a telep élettartama is.
2. táblázat A telepek által az RTCC számára szolgáltatott áramerősség ismeretében könnyebb megtalálni a megfelelő méretű telepet tartalék áramforrás céljából (Az adatok forrása: Digi-Key Electronics)
Következtetés
A pontos működés érdekében az RTCC eszközök kiválasztását nagyon körültekintően kell végezni, akárcsak a hozzá kapcsolódó kristályét és telepét. Gondosan kell megtervezni az alkatrészek elrendezését is a nyomtatott áramköri lapon. A másik lehetőséget a jelenleg kapható, RTCC áramkörökre épülő modulok jelentik, amelyek lerövidítik a kísérleti áramkörök gyártását és a prototípuskészítést, nagymértékben csökkentve a fejlesztési időt.
Szerző: Rich Miron – Digi-Key Electronics