zastosowanie mechanizmu zegarowego do wykrywania anomalii

Transkrypt

zastosowanie mechanizmu zegarowego do wykrywania anomalii
Pomiary Automatyka Robotyka 2/2010
dr inĪ. Magdalena Szymczyk, dr inĪ. Piotr Szymczyk
Akademia Górniczo-Hutnicza, Katedra Automatyki
ZASTOSOWANIE MECHANIZMU ZEGAROWEGO DO
WYKRYWANIA ANOMALII ZACHOWANIA KOMPUTEROWEGO
SYSTEMU STEROWANIA
Projektowanie niezawodnego, nieczuáego na zakáócenia, wbudowanego systemu
sterowania jest jednym z podstawowych aspektów tworzenia systemu sterowania.
Artykuá ten przybliĪa ideĊ systemu monitorującego pracĊ systemu wbudowanego.
OkreĞla podstawowe zaáoĪenia i wymagania dotyczące takiego mechanizmu,
opisuje moĪliwe rozwiązania pewnych problemów.
WATCHDOG TIMER MECHANIZM FOR DETECTING EXECUTION
COMPUTER ANOMALIES IN CONTROL SYSTEMS
Designing reliable embedded control systems is one of the basic aspects of control
systems. In this paper the idea of monitoring embedded system is presented.
The main assumptions and requirements for such system are explained. Possible
solutions of these problems are presented.
1. WPROWADZENIE
Gwaátowny postĊp myĞli technicznej zarówno w zakresie sprz
Ċtu komputerowego jak
i oprogramowania spowodowaá, Īe systemy uruchamiane na duĪych i drogich konfiguracjach
sprzĊtowych mogą byü aktualnie urucham iane na pojedynczym ukáadzie scalonym
wykonującym specyficzne zadania. Mo
ĪliwoĞci wydajnoĞciowe takich system ów
wbudowanych, są porównywalne do tych system ów bazujących na kom puterach klasy PC
sprzed 5 laty. Mo ĪliwoĞci jak i z áoĪonoĞü takich system ów stale ro Ğnie, konieczne jest
zapewnienie ich odporno Ğci na b áĊdy. Systemy wbudowane m ogą doĞwiadczaü róĪnego
rodzaju báĊdnych dziaáaĔ, ale ogólnie moĪna je okreĞliü jako twarde i miĊkkie. Twarde awarie
prowadzą do nieodwracalnych uszkodze Ĕ w system ie (na przyk áad wpáyw wysokiej
temperatury na uk áady scalone), a awarie m iĊkkie wynikające na przyk áad z uszkodzenia
danych zawartych w pam
iĊci są odwracalne. Pojawienie si
Ċ mikroprocesorów
zrewolucjonizowaáo takĪe ukáady sterowania. Zbieranie danych z róĪnego rodzaju czujników,
skomplikowane przetwarzanie tych inform acji, wypracowywanie odpowiedniego sygna áu
sterowania, optymalizacja wydajnoĞci zamkniĊtego ukáadu sterowania, nie by áoby moĪliwe
bez obecnoĞci ukáadu mikroprocesorowego. Od ich poprawnego dzia áania niejednokrotnie
zaleĪy nasze Īycie (rozruszniki serca, uk áady podtrzymujące podstawowe funkcje Īyciowe)
czy w wi Ċkszej skali, bezpieczne dzia áanie elektrowni atom owych. Są to zazwyczaj
dedykowane ukáady mikroprocesorowe, wykonujące specyficzne dzia áania. Systemy
wbudowane znacznie lepiej toleruj ą báĊdnie dziaáający program niĪ ukáady typu desktop, nie
wynika to jednakĪe z faktu, Īe oprogramowanie nie zawodzi, lecz z obecno Ğci mechanizmu
umoĪliwiającego powrót do norm alnej pracy, gdy z jakich Ğ przyczyn oprogram owanie Ĩle
funkcjonuje. CzĊstym rozwiązaniem w tego typu system ach jest zastosowanie niezale Īnego
mechanizmu monitorującego przebieg sterowania programem.
Mechanizm taki zwany ”watchdog” (skrót W DT) jest konieczny przy budowaniu odpornych
na báĊdy systemów wbudowanych, (przyk áad misja Pathfinder na Marsa). Je
Ğli
oprogramowanie systemu zawiesi si Ċ, przy pom ocy odpowiednio zaprojektowanego
mechanizmu, który zajm uje siĊ detekcją nieprawidáowego stanu oprogram owania, moĪliwe
684
automation 2010
Pomiary Automatyka Robotyka 2/2010
jest zresetowanie ca áego systemu. Wydaje siĊ, Īe tego typu rozwi ązane jest ostatni ą linią
obrony przed báĊdami, gdy wszystkie inne rozwiązania zawiodą. Mechanizm WDT znany jest
od lat i stosowany na przyk áad w program owalnych sterownikach logicznych (PLC). Tylko
niektóre procesory znanych producentów s ą zabezpieczone przed przek áamaniami na
poziomie bitów (spowodowanych na przyk áad promieniowaniem kosmicznym). JednakĪe
wiĊkszoĞü systemów wbudowanych nie posiada m oĪliwoĞci resetowania systemu z zewnątrz.
MoĪna wyróĪniü nastĊpujące typy m echanizmu WDT: wewnĊtrzne, zewnĊtrzne, Ğledzące
zmienne stanu program u, resetujące lub nie zewn Ċtrzne urządzenia. WDT moĪe
charakteryzowaü siĊ róĪnym stopniem záoĪonoĞci, a w swej najprostszej wersji jest to zwyk áy
licznik zliczający w dó á, od pewnej warto Ğci początkowej do zera. Na rys. 1 przedstawiono
typowe rozwiązanie, a z kolei rysunek 2 pokazuje jego przebiegi czasowe. Mechanizm WDT
moĪe byü wbudowanym elementem procesora lub uk áadem dziaáającym niezaleĪnie. Taki
prosty WDT daje moĪliwoĞü stwierdzenia czy dane CPU funkcjonuje poprawnie, to znaczy,
czy w okreĞlonych odcinkach czasu wysyáa sygnaá resetujący licznik (oznacza to, Īe CPU jest
„Īywe”).
Rys.1. Koncepcja mechanizmu WDT [4]
Rys. 2. Diagram czasowy dla mechanizmu WDT z rys. 1
2. WEWNĉTRZNY WDT
WewnĊtrzny WDT to taki, który jest wbudowany w uk
áad scalony procesora (Maxim a
MAXQ2000). Wysoko zintegrowane procesory zawieraj ą w sobie wiele dodatkowych
ukáadów, w których z kolei cz Ċsto wbudowane s ą proste m echanizmy WDT (np. Toshiba
TPM96141), elementy te generują NMI, gdy ich licznik przekroczy limit czasu, co nie zawsze
jest rozwiązaniem najlepszym [5]. Korzystne jest, gdy po wygenerowaniu przerwania NMI,
system odczeka przez chwil Ċ i dopiero potem wykonywany jest jego reset (czego procesor
Toshiby nie potrafi zrealizowa ü). Czas ten potrzebny jest do wykonania pewnych
automation 2010
685
Pomiary Automatyka Robotyka 2/2010
pomocniczych operacji zwi ązanych z zapisaniem informacji o stanie procesora, co jest
niezbĊdne do póĨniejszego okreĞlenia przyczyny problemu. Aby WDT pracowaá poprawnie,
konieczny jest sprz Ċtowy reset um oĪliwiający powrót procesora do ponownej, poprawnej
pracy. Ustawienie sam ego licznika instrukcji (rejestr PC) m oĪe nie zainicjowa ü poprawnej
pracy CPU. Dobr ą cechą WDT jest tak Īe to, Īe dopiero dwie, bezpo Ğrednio nastĊpujące po
sobie operacje zapisu danych o warto Ğciach na przyk áad 0x55 i 0xaa, m ogą dezaktywowaü
timer, tak Īe przypadkowe operacje pisania program u gáównego do pam iĊci z m aáym
prawdopodobieĔstwem mogą wyáączyü ten m echanizm. Ze szczególn ą ostroĪnoĞcią naleĪy
podchodziü do takich WDT, których rejestry sterujące mogą zostaü zmodyfikowane w trakcie
wykonywania programu, a to takĪe grozi wyáączeniem watchdoga. JeĪeli przekroczenie limitu
czasu WDT nie powoduje ustawienia odpowiedniego stanu na nodze procesora, to konieczne
jest doáoĪenie sprzĊtu resetującego kaĪde urządzenie zewnĊtrzne. Bez tego, taki reset
przywróci tylko CPU do Īycia, lecz niepoprawnie dzia áające peryferia spowoduj ą dalszą
niepoprawną pracĊ systemu.
3. ZEWNĉTRZNE WDT
CzĊĞü urządzeĔ nadzorujących pracĊ procesora i zrz ądzających sygnaáem resetu posiada
wbudowane mechanizmy WDT. Nie wszystkie jednak zawsze zadzia áają poprawnie (np. chip
TI UCC3946, SMT czy te Ī Maxim MAX 823), dlatego nale Īy byü Ğwiadomym ich zalet
i wad [5]. Dobrze jest, gdy W DT dziaáają w pewnym oknie czasowym. Oznacza to, Īe sygnaá
Ğwiadczący o poprawnej pracy procesora jest przyjm owany w ĞciĞle okreĞlonym odcinku
czasu i b áĊdnie dziaáający program raczej z m aáym prawdopodobieĔstwem przeĞle
prawidáowo w jego trakcie, dwie
ĞciĞle okreĞlone wartoĞci, co z kolei spowoduje
wyzerowanie licznika. Takim procesorem jest Maxim a MAX6752, posiada on zewn Ċtrzne
kondensatory do ustawiania czasu trwania okresu watchdoga oraz odpowiedniego
dostosowania czasu trwania sygna áu resetującego. CzĊsto WDT muszą zostaü nieaktywne
podczas startu pracy system u (boot procesora). Procesor MAX 6369 jest wzbogacony
o mechanizm wyczekiwania dodatkowy dáuĪszy odcinek czasu podczas inicjalizacji system u.
Dodatkowo zewnĊtrzne WDT mogą monitorowaü poziom napiĊcia zasilającego i resetowa ü
system w przypadku przekroczenia zbyt niskiej wartoĞci. Niektóre z nich posiadają kodowane
wejĞcia sygnaáu resetującego.
4. CECHY DOBREGO WDT
Podstawowym wymaganiem dla system u sprawdzającego poprawnoĞü pracy system u
wbudowanego jest koniecznoĞü jego dalszej pracy, niezale Īnie od tego, co sta áo siĊ z kodem
gáównego systemu, a w konsekwencji i z wspó ápracującymi urządzeniami zewnĊtrznymi.
Gdyby báĊdnie dziaáający kod modyfikowaá kod czy rejestry watchdoga, to taki system nie ma
szans na powrót do norm alnej pracy. Stworzenie nawet prostego m echanizmu WDT nie jest
zatem zadaniem prostym. Mechanizm taki nie powinien robi ü Īadnych zaáoĪeĔ co do
aktualnego stanu oprogram owania czy sprz Ċtu. JeĪeli coĞ poszáo Ĩle, to jego zadaniem jest
przywróciü system do norm alnej pracy lub ewentualnie wprowadzi ü w stan bezpiecznej
pracy. Watchdog powinien dawa ü moĪliwoĞü zapisania pewnych inform acji, które
umoĪliwiáyby póĨniej odtworzenie przyczyny báĊdu. Dobry mechanizm WDT jest niezaleĪny
od systemu gáównego. Jest jeden poprawny sposób interwencji W DT, a mianowicie wysáanie
sygnaáu resetu do procesora oraz do wszystkich pod áączonych urządzeĔ zewnĊtrznych, a nie
wysáanie tylko przerwania NMI. W niektórych rozwi ązaniach stosuje si Ċ sygnaá NMI, aby
686
automation 2010
Pomiary Automatyka Robotyka 2/2010
zapisaü informacje pomocne do odtworzenia przyczyny problem u jak i przes áaü wiadomoĞü
do urządzeĔ zewnĊtrznych o tym, Īe CPU przestaje pracowa ü na krótką chwilĊ. Natychmiast
po tych operacjach wysy áany jest sygna á resetu. Czas zw áoki pomiĊdzy stwierdzeniem
báĊdnego dziaáania systemu wbudowanego, a odpowiedzi ą watchdoga powinien by ü jak
najkrótszy. NaleĪy pamiĊtaü o tym, Īe system wbudowany powinien pozostaü po uszkodzeniu
w takim modzie pracy, aby by á nieszkodliwy dla otoczenia, zatem sprzĊt powinien zosta ü
przywrócony do Īycia lub wprowadzony w stan bezpiecznej pracy. Zegar licznika powinien
byü niezaleĪny od zegara system u wbudowanego, a zatem kaĪdy WDT wbudowany w CPU
systemu gáównego nie jest bezpieczny. Tworz ąc watchdoga trzeba by ü pewnym, Īe Īadne
okolicznoĞci związane z prac ą oprogramowania systemu wbudowanego nie spowoduj ą
przeprogramowania WDT (jego rejestrów, pinów). Prawidáowo zbudowany mechanizm WDT
monitoruje pracĊ caáego systemu, a nie tylko przyjm uje sygnaáy „jest Īywy” (w dom yĞle
procesor) pochodzące z pĊtli gáównej (moĪe okazaü siĊ, Īe jest wiĊcej procesów wysyáających
te sygnaáy, a któryĞ aktualnie zostaá zawieszony). UĪytkownik powinien byü poinformowany
w jakiĞ sposób o fakcie resetu systemu (Ğwiecąca dioda, komunikat).
W przypadku tworzenia wewn Ċtrznego WDT (dla bardzo tanich system ów wbudowanych)
istnieje kilka praktycznych rad daj ących moĪliwoĞü tworzenia bardziej niezawodnego
rozwiązania opartego w g áównej mierze o rozwiązania programistyczne. Dobrym zwyczajem
jest tworzenie tak zwanych punktów kontrolnych w program ie watchdoga, które m odyfikują
pewne zmienne w program ie pĊtli gáównej. W przypadku, gdy warto Ğü sprawdzana
w watchdogu róĪni siĊ od tej w program ie, nastĊpuje wzbudzenie W DT, w przeciwnym
przypadku wysyáany jest sygnaá Īycia.
Do budowy zewn Ċtrznych WDT moĪna uĪyü prostych m ikroprocesorów, tak aby system
monitorujący pracĊ systemu wbudowanego m iaá niezaleĪny zegar, w áasną pamiĊü
i wbudowane liczniki. Nie wydaje si Ċ sensowne wykorzystanie caáego komputera do budowy
WDT innego system u, choü moĪna uĪyü procesorów jako m onitorów poprawnej pracy
pozostaáych, na przykáad w systemie wieloprocesorowym.
Rys. 3. WDT dla systemu z dwoma procesorami wzajemnie sprawdzającymi siĊ
automation 2010
687
Pomiary Automatyka Robotyka 2/2010
5. WNIOSKI
Coraz wiĊksza liczba system ów wbudowanych stosowanych w urz ądzeniach o znaczeniu
krytycznym ze wzgl Ċdu na bezpiecze Ĕstwo powoduje, Īe wymagania dotyczące ich
odpornoĞci na uszkodzenia stale ro Ğną. DoĞü znaczącym elementem tego typu aplikacji staje
siĊ monitor, który obserwuje sposób wykonywania si Ċ programu oraz stan pracy system u po
báĊdzie. Prosty licznik stosowany jest ju Ī od lat, lecz wspó áczesne rozwiązania mechanizmu
WDT stają siĊ coraz bardziej odporne na b áĊdy. Analizując zebrane informacje, zewnĊtrzne
WDT powinny by ü uĪywane dla system ów krytycznych, czyli takich, które potrzebuj ą
wyĪszych wartoĞci wspóáczynnika niezawodnoĞci. Ale pod áączenie pinu resetowania
zewnĊtrznego WDT do m ikroprocesora (czyli W DT moĪe zostaü zresetowany
programistycznie) powoduje, Īe obniĪa siĊ jego niezawodno Ğü. Rozwiązania oparte na
wewnĊtrznych WDT stosuje siĊ w aplikacjach niekrytycznych i dla redukcji kosztów.
Mechanizm WDT daje moĪliwoĞü znacznego zwiĊkszenia niezawodnoĞci systemu sterowania
przy naprawdĊ niewielkim nakáadzie kosztów.
6. LITERATURA
[1] BARANOWSKI R.: Mikrokontrolery AVR ATmega w praktyce, 2005, BTC
[2] BARR M.: Introduction to Watchdog Timers, Embedded Systems Design, 2001,
http://www.embedded.com/columns/beginerscorner/9900324?_requestid=301900
[3] BERGER A.: Embedded System Design, 2002,CMP Books
[4] CHAKRAVARTY S., TOMAR R., ARORA M.: Need a watchdog for improved system fault
tolerance? Freescale Semiconductor, CommsDesign , 2008
http://www.commsdesign.com/showArticle.jhtml;jsessionid=G0N4FX04LDO5QQSNDLR
SKHSCJUNN2JVN?articleID=211600055
[5] LABROSSE J. [ET AL.]: Embedded Software, 2008, Elsevier
[6] LAPLANTE P.:Real-Time Systems Design and Analysis, IEEE Press, W iley-Interscience,
2004
[7] MURPHY N.: Watchdog Timers, Embedded Systems Design, 2003,
http://www.embedded.com/columns/beginerscorner/9900324?_requestid=301900
[8] SZYMCZYK M. Projektowanie wbudowanych systemów sterowania odpornych na
zakáócenia, PAR kwiecieĔ 2009
688
automation 2010