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