Aplicaţiile în care căderea sistemului poate cauza pericol de rănire pentru om şi distrugeri importante, solicită o înaltă fiabilitate şi siguranţă. Mai mult, în asemenea situaţii, sistemul are nevoie să-şi poată reveni rapid şi perfect, fără intervenţie umană. Circuitele watchdog externe cu fereastră oferă cea mai mare putere de detectare a erorilor într-un circuit independent: ele pot reseta microprocesorul sistemului în cazul funcţionării defectuoase a MCU şi de asemenea inhibă toate acţiunile actuatorilor mecanici.
Circuitele watchdog cu fereastră recunosc nu numai erorile când programele se execută prea încet din diferite motive (aşa cum fac dispozitivele watchdog standard), ci şi atunci când programele se execută prea rapid. Un program se poate executa într-adevăr prea rapid atunci când există un conflict între microcontrolerele master şi slave, sau în cazul unei funcţionări defectuoase a ceasului. Un circuit watchdog cu fereastră va detecta un astfel de comportament nedorit şi va reseta microcontrolerul, pe când un circuit watchdog standard nu.
Unele circuite watchdog cu fereastră includ în aceeaşi capsulă şi monitorizarea sursei de putere şi un stabilizator de tensiune de 5V cu cădere mică de tensiune. Aceste circuite sunt foarte utile în aplicaţii auto, precum în cazul coloanei de direcţie, contactului de aprindere, control
spoiler, module uşă şi fereastră, controlul acoperişului decapotabil, sistemului de închidere al uşilor. Alte utilizări pot fi în aplicaţii medicale, industriale şi de control al proceselor.
Introducere
După cum tot mai multe funcţii ce implică siguranţa umană sunt preluate de sisteme controlate de microprocesor, importanţa monitorizării îndeaproape a performanţelor acestora este în creştere. Costul scăzut şi larga paletă de opţiuni pentru multe aplicaţii diferite a microprocesoarelor de astăzi, permite acestora să fie utilizate în multe aplicaţii, care în trecut puteau fi realizate numai cu hardware dedicat. În timp ce microprocesoarele reprezintă unelte foarte flexibile pentru soluţionarea problemelor, siguranţa lor în funcţionare este diminuată de apariţia unor erori în program. Punerea la punct a programelor se poate realiza prin tehnici de programare, precum umplerea memoriei ROM neutilizate cu instrucţiuni de HALT sau ilegale, pentru a bloca salturile ilegale în spaţiul de cod. Aceste tehnici pot asigura sprijin pentru o revenire elegantă, dar chiar şi în cazul celor mai atente şi complete teste nu pot fi identificate toate erorile, o acoperire de 100% neputând fi niciodată asigurată.
Înalta siguranţă în funcţionare este cerută mai ales pentru sistemele care pot cauza răniri dacă nu funcţionează corect, precum găsim în aplicaţii auto ca: sisteme de direcţie sau antiblocare a frânelor, instrumente medicale ca pompele de insulină, roboţi, control industrial şi uşi automate. Nu trebuie uitate sistemele de control din centralele nucleare şi aviaţie. Aceste sisteme trebuie să fie capabile să revină dintr-o cădere, fără asistenţă umană, de exemplu prin apăsarea unui buton. Intervenţia umană ar fi probabil prea lentă pentru evita avaria.
Temporizatorul watchdog (watchdog timer – WDT) este un subsistem ce poate cauza o resetare a programului sau NMI dacă microprocesorul nu reacţionează într-un interval dat de timp. Acesta poate detecta în multe cazuri comportarea necorespunzătoare a sistemelor cu microprocesor. Pentru aplicaţiile de înaltă sensibilitate, este recomandabil să fie utilizate temporizatoare watchdog cu fereastră (windowed watchdog timers – WWDT) care vor acţiona atunci când sistemul rulează prea repede sau prea lent. Acest lucru adaugă o altă clasă de erori de program sau comportamente incorecte ale hardware-ului, care vor fi identificate. Ideal, un sistem de monitorizare cu circuit watchdog este capabil să reintre în starea de funcţionare, iar utilizatorul nici nu va şti că a apărut o eroare. Pentru atingerea unui asemenea nivel de confort, sistemul trebuie să fie conceput şi software-ul programat să fie capabil să accepte un reset în orice moment şi să reia operarea normală fără intervenţia unui operator.
Multe microcontrolere oferă un circuit watchdog intern programabil, cu acest tip de funcţionare. Aceste circuite pot fi însă dezactivate de software şi nu oferă aceeaşi protecţie pentru aplicaţii critice din punct de vedere al siguranţei, precum un circuit de supraveghere independent extern. De aceea este puternic recomandată utilizarea pentru aplicaţii critice a unor circuite watchdog externe de supraveghere şi reset.
Modul de lucru a unui circuit watchdog cu fereastră
Circuitele watchdog standard (StdWDT) sunt numărătoare incrementale care îşi modifică ieşirea dacă este atinsă valoarea lor maximă. Microcontrolerul trebuie să reseteze (să golească) numărătorul înainte de a se întâmpla acest lucru, prin crearea unui front descrescător pe intrarea temporizatorului. Dacă executarea programului este incorectă datorită unei erori de program sau a unei perturbaţii externe, cauzând executarea mai lentă a programului, valoarea maximă a numărătorului va fi atinsă şi se va activa ieşirea acestuia. Aceasta va duce la identificarea problemelor de suspendare, precum bucle infinite. Nu vor fi însă determinate erori ce cauzează executarea mai rapidă a programelor.
Pentru o securitate sporită, un circuit watchdog cu fereastră cere ca frontul semnalului de golire a numărătorului să sosească într-o fereastră definită de timp, considerată corectă. Dacă semnalul ajunge înainte sau după această fereastră de temporizare, numărătorul va declanşa semnalul de ieşire pentru resetarea procesorului sau pentru activarea altor modalităţi de tratare a erorilor. Acest tip de circuit watchdog va acoperi efectiv ambele cazuri, şi anume cele în care programul se execută prea încet sau prea repede. O altă cauză observată a erorilor este saltul semnalului de ceas în mod greşit datorită unor şocuri externe. Chiar dacă în acest caz, după scurt timp ceasul va reveni la o comportare normală, procesorul poate fi în pericol de executare incorectă a programului. Circuitul watchdog cu fereastră poate determina şi acest comportament.
După cum poate fi observat în figura 1 a, temporizarea circuitului watchdog WWDT este ruptă în două perioade. Perioada când flancul scăzător /TCL (numit uneori WDI pentru intrarea în circuitul watchdog) semnalizează o eroare, este denumită fereastra interzisă. Perioada în care flancul scăzător al /TCL resetează număratorul este denumită fereastra permisă. În unele documentaţii se folosesc termenii de fereastră deschisă şi fereastră închisă. Perioada de după fereastra permisă este o pauză. În general, dispozitivele watchdog cu fereastră permit programarea perioadei TWD cu ajutorul unei rezistenţe sau condensator extern. Ca exemplu, pentru EM6151 versiunea V50 de la EM Microelectronic, fereastra permisă este de ±20% din timpul TWD. Fereastra înterzisă ocupă o perioadă de până la 80% din TWD. Pauza circuitului watchdog este la TWD + 20%. Dacă /TCL nu este primit până la sfârşitul perioadei permise circuitul va produce un puls de resetare. Un flanc descrescător /TCL pe perioada ferestrei interzise sau a pauzei după TWD+20% va cauza un semnal de reset. Trebuie notat că temporizarea pentru următoarea perioadă începe imediat de la flancul descrescător al /TCL.
Pentru a înţelege beneficiile utilizării unui WWDT faţă de un StdWDT în cazul unui sistem de înaltă siguranţă, este necesară referirea la figura 1b. Să considerăm următoarele 5 evenimente:
1. Reset după pauza circuitului watchdog
2. Reset cauzat de un /TCL apărut prea devreme, în timpul perioadei interzise
3. Temporizare OK
4. Reset cauzat de un /TCL apărut prea devreme, în timpul perioadei interzise
5. Activare impusă după 3 /TCL corecte
Pot fi observate următoarele: la 1. semnalul de resetare este generat (atât pentru StdWDT, cât şi pentru WWDT) deoarece TWD a trecut fără a apărea semnal pe intrarea /TCL. După aceasta se observă trei cicluri corecte ale circuitului watchdog, ceea ce duce la furnizarea unui semnal de activare. Apoi la 2. semnalul /TCL ajunge prea devreme, pe perioada ferestrei interzise a WWDT. Aceasta duce imediat la apariţia unui semnal de ieşire de resetare /RES, şi a unuia de revocare a activării pe ieşirea /EN. La 3. temporizarea este OK, dar la 4. semnalul /TCL cade din nou în fereastra interzisă a WWDT cauzând un alt semnal de resetare. Se poate observa că în fiecare caz, temporizarea circuitului watchdog este pornită de la flancul descrescător al ultimului semnal /TCL. De reţinut că, în cazurile 2. şi 4. un StdWDT nu detectează funcţionarea incorectă, prea rapidă a µP, spre deosebire de un WWDT care face acest lucru. La 5. sistemul s-a stabilizat din nou, iar semnalul de activare /EN este furnizat după 3 cicluri corecte ale circuitului watchdog.
Circuitele watchdog cu fereastră, precum EM6151 includ în general toate caracteristicile unui circuit standard de resetare, precum perioada de pauză de resetare sau prag de tensiune.
Aceste elemente pot fi fie pre-programate din fabrică sau pot fi reglate prin utilizarea unor componente externe, lucru care sporeşte flexibilitatea.
Sistemele distribuite în general sunt alte aplicaţii unde circuitele watchdog cu fereastră sunt de un real ajutor în menţinerea încrederii în sistem.
În sisteme în care un procesor master trimite semnale de temporizare sau de sincronizare către procesoare slave, un circuit watchdog standard poate detecta un master lipsă sau prea lent. Un circuit watchdog cu fereastră creşte plaja de detectare a erorilor şi la master prea rapid sau la alte conflicte pe magistrală.
Pentru aplicaţii care pot cauza accidente, ca de exemplu uşi şi ferestre automate pentru maşini, utilizarea unor circuite watchdog cu fereastră este foarte indicată, fiind cea mai bună soluţie la ora actuală. Multe alte aplicaţii pot profita de plusul de siguranţă pe care aceste circuite îl pot oferi.
Pentru a creşte siguranţa în aplicaţii de comandă de motoare sau actuatoare, circuitele pot utiliza o funcţie de ieşire formată dintr-un semnal de activare. Această funcţie poate fi folosită ca poartă (gate) pentru semnalele motorului, de exemplu, pentru oprirea imediată a mişcării motorului atunci când nu se poate avea încredere în comportarea procesorului, şi permiţând mişcarea imediat ce procesorul reîncepe să funcţioneze normal. Semnalul de activare va fi dat, după cum s-a văzut, numai după trei flancuri corecte ale semnalului /TCL şi este oprit simultan cu ieşirea /RES în cazul detectării unei funcţionări incorecte a procesorului.
Circuit watchdog cu fereastră şi LDO, consideraţii termice:
Circuitele WWDT sunt de asemenea disponibile cu una sau mai multe LDO încorporate pe un cip. Astfel de circuite, precum EM6152 sunt indicate în particular pentru sisteme descentralizate ca în cazul aplicaţiilor auto şi de automatizări industriale, pentru că ele pot monitoriza securitatea şi oferi stabilizarea sursei de tensiune într-o singură componentă. (Figura 2).
Este important de observat că, precum în cazul oricărui stabilizator de tensiune, layout-ul PCB este foarte important pentru succesul proiectării. La stabilirea traseelor condensatoarelor de decuplare la sursă sau a traseelor sau planelor de masă, acestea trebuie să fie îngrijite şi cât mai scurte. Căile circuitului cresc inductanţa acestuia şi este posibil să crească influenţele încrucişate dintre intrări şi ieşiri. O separare îngrijită între sursa de alimentare logică şi partea de putere a circuitului este foarte importantă în circuite de control a motoarelor electrice ce produc efecte tranzitorii mari pe liniile sursei de tensiune de putere.
Evacuarea termică trebuie de asemenea luată în calcul la realizarea layout-ului. Carcasa are un contact pentru radiator de căldură, aşa numit “miez termic” ce va trebui lipit pe PCB. PCB-ul trebuie să prevadă o suprafaţă ca radiator în jurul cipului. Este cel mai bine să existe plane de circuit pe ambele părţi ale plăcii conectate termic la miez pentru a transfera căldura cât mai eficient posibil. Rezistenţa termică obţinută în orice aplicaţie particulară este puternic dependentă de configuraţia fizică a modulului complet, de suprafeţele de răcire ale PCB, de grosime, de curentul de aer, de convecţie, de orientarea orizontală sau verticală etc.
Concluzii
Oferind o acoperire mult îmbunătăţită a situaţiilor de eroare comparativ cu un circuit watchdog standard, circuitul watchdog cu fereastră cu stabilizator de tensiune intern, soluţie de înaltă integrare incluzând şi supervizarea sursei de alimentare, se comportă admirabil pentru aplicaţii ce necesită supraveghere a securităţii sistemelor contemporane inteligente auto şi industriale. Asemenea aplicaţii auto pot include:
• control al motoarelor ferestrelor
• control al motoarelor acoperişurilor decapotabile
• sisteme computerizate ale tabloului de bord
• senzori unghiulari de direcţie
• sisteme de închidere a portbagajelor
• sisteme de cruise control
• spoiler automat
• control al uşilor glisante
• control automat al transmisiei
• control al motorului
Pe piaţă sunt disponibile şi sisteme watchdog ce funcţionează în sleep mode şi îşi adaptează comportarea reducând consumul de putere al sistemului fără a pierde din securitate. Acestea sunt ideale pentru aplicaţii de foarte mică putere, ca cele care utilizează comunicare pe magistrală CAN, unde unităţile funcţionale pot fi dezactivate sub control software.
Pentru aplicaţii critice de siguranţă, precum echipamente de distribuire de medicamente, sisteme medicale de monitorizare, roboţi, uşi şi ferestre automate etc, un sistem watchdog cu fereastră este componenta cea mai potrivită pentru a fi sigur de respectarea cerinţelor sistemelor de reglare în termeni de siguranţă umană.
Date despre autor:
Don Corson şi-a început cariera în
dezvoltarea de echipamente periferice la Philips în Germania, iar în ultimii 5 ani a lucrat la Swatch Group şi EM Microelectronic.
Don a fost responsabil cu sistemul de baterii pentru proiectul de maşină hibridă Swatch, şi lucrează la compania de proiectare şi fabricaţie de
semiconductoare a Swatch Group, EM Microelectronic, pe proiecte de joasă
putere şi joasă tensiune, pe baterii.
Don Corson poate fi găsit la adresa:
dcorson@emmicroelectronic.com.