Yanıtlar:
Bazı ürünler, üretici tarafından belirlenen veya IEC 60730-1 veya ABD'de kullanılmakta olan daha eski UL1998 gibi uluslararası güvenlik standartlarını karşılayacak güvenlik gereksinimlerini karşılamalıdır. Herhangi bir mikrodenetleyicideki dahili gözlemci işlevselliğinin kullanılması yeterli olabilir veya olmayabilir . Harici WDT, bazı durumlarda dahili WDT ile birlikte kullanılabilir.
TI'nin Hercules serisi gibi bazı mikrodenetleyiciler güvenlik açısından kritik sistem uygulamalarını çok ciddiye alır ve katı gereksinimleri karşılamaları daha olasıdır, ancak maliyete duyarlı uygulamalar için uygun olmayabilir.
Tipik olarak WDT, mülkte yıkıcı bir hasara veya can kaybına neden olan bir arıza olasılığını azaltmanın çeşitli yollarından biridir. MCU belleğine beklenmedik erişimi tespit etmek için bellek koruması veya kullanılmayan bellekten program getirme gibi diğer şeyler genellikle bir WDT ile birlikte kullanılır.
Güvenlik açısından kritik işlevleri yerine getiren ucuz ürünlere örnek olarak otomotiv alt sistemleri, garaj kapısı kontrolörleri ve fırınlarda, kurutucularda ve su ısıtıcılarında kullanılan gaz (doğal gaz veya propan) ateşleme kontrol cihazları verilebilir. Tabii ki birçok tıbbi ve havacılık ürünü de güvenlik açısından kritik öneme sahiptir, ancak artıklık ve diğer yaklaşımlar için yeterli alan olabilir. Bazı durumlarda, kolay ulaşılabilir güvenli bir durum olmayabilir - örneğin bir uçakta.
İdeal olarak, gözlemci zamanlayıcısı MCU'dan bağımsız olarak çok basittir (örneğin, kendi saat kaynağına ve belki de bir saat monitörüne sahip olmalıdır), herhangi bir yazılım hatasından zarar görmekten daha uzun bir süreye (yazılım tarafından) ayarlanamaz, ve zaman aşımına uğramadan veya pencereli bir şekilde zamanında "evcilleştirilmezse" sistemi güvenli duruma getirir, böylece çok sık sıfırlama algılanabilir. Örneğin, bir termal kontrol uygulamasındaki bir WDT birkaç saniyeye ayarlanabilir, çünkü mikrodenetleyici bu süre boyunca kilitlenirse hiçbir zarar verilemez.
WDT en çok güvenilirlik ve güvenlik için sistem düzeyinde bir yaklaşımın bir parçası olarak kullanışlıdır.
Bir bekçi zamanlayıcısı, son teknoloji mikrodenetleyicilerin buggy parçasındaki donanım hatalarına karşı ... Son zamanlarda ünlü bir markadan kullandığımız, ara sıra kesintilerini kaçıran, bazen doğru başlamayan ve entegre gözlemcinin bazen sistemi iyi bilinen bir durumda sıfırlayamadığı I / O pinleri vardı.
Bu, uzun süre güvenilirlik testiyle başlayana kadar ortaya çıkmadı ve harici bir gözlemci eklemek mikrodenetleyiciyi değiştirmekten daha kolaydı.
PCB'de birden fazla IC'niz varsa, her şeyin güvenilir şekilde başlatılması için harici bir sıfırlama IC veya voltaj monitörüne de ihtiyacınız olabilir. Bunların birçoğu bir bekçi köpeği olarak da hizmet edebilir.
İç gözlemcinin iç saatinin aslında diğer tüm saatlerden bağımsız olduğunu ve her zaman olması gerektiği gibi çalıştığını iddia etmek zor.
Bu nedenle sertifikasyon için panoya harici bir bekçi köpeği yerleştirmek ve şunları söylemek çok daha kolaydır: bak bizim bekçi köpeğimiz var, bu aralıkta MCU tarafından tetiklenmeli, bu da arıza zamanımızdan daha kısa, bu nedenle cihazımız güvende tanımladığımız gibi.
Bazı yorumları ele almak için:
"ve her zaman olması gerektiği gibi çalışıyor" - İyi bir nokta. Yazılımınızın dahili bekçi köpeğini her durumda doğru bir bekçi köpeği yongası kullanmak ve veri sayfasına bakmaktan doğru şekilde başlattığını kanıtlamak daha zor olabilir.
Bu genellikle sertifikasyon kuruluşuna sunduğunuz bir hata ekleme testi ile kanıtlanır. Böylece onlara başlatmanızın gerçekleştiği yeri ve bekçi köpeğinin tetiklenmesinin gerçekleştiği kodu gösterirsiniz. Genellikle kodu belirli bir süre geçtikten sonra bekçinin tetiklenmesi durdurulacak şekilde değiştirmenizi ve kontrolörün doğru şekilde sıfırlanıp sıfırlanmadığını kontrol etmenizi isterler.
Veya kodunuzun dahili bekçi köpeğini yanlışlıkla devre dışı bırakan bir hata içermediğini kanıtlamak için.
En azından bazı kontrolörlerde bekçi köpeği bağımsız olarak adlandırılır ve kendi saat kaynağına sahiptir ve yazılım araçlarıyla devre dışı bırakılamaz, sadece denetleyicinin sıfırlanması bekçi köpeğini devre dışı bırakır. En azından teoride - bunu yazılımla durduramayacağınızı göstermek kolaydır, ancak saatin gerçekten bağımsız olduğunu ve EMI altında durmayacağını kanıtlamak zordur.
Veya kodunuzun çılgınca çalışmadığını kanıtlamak için harici bekçi köpeğini olabildiğince hızlı bir şekilde sıfırlayın. Sorun çözüldü. ;-)
Bu durumda belirli aralıklarla tetiklenmesi gereken bir pencere gözlemcisi kullanırsınız ve bunu başaramazsanız (çok sık veya çok daha az tetikleyin) devreyi sıfırlar. Çalıştığım STM32, dahili bir pencere bekçi köpeğine sahip, ancak ana saatten türetilen PCLK1'den çalışıyor, bu yüzden kendi saat kaynağına sahip harici bir bekçi köpeği kadar kullanışlı olduğunu düşünmüyorum.
Ya da bazı dehalar, bekçi köpeği servis rutinini bir zamanlayıcı ISR'sine koymaz, bu nedenle ana kod çökebilir, ancak kesinti tetikleyiciyi ateşlemeye ve mükemmel bir şekilde bakım yapmaya devam eder ...
Bu kesinlikle doğrudur, ama umarım bir inceleme bu dehayı sandalyesine geri koyacaktır - ama hey başladığımda, ilk fikrim de buydu: D. Katıldığım sertifika işlemleri sırasında, yazılımın bekçi köpeği bölümüne her zaman baktılar.
Mikrodenetleyicilere yerleştirilen bekçi köpekleri, farklı bir dış bekçi köpeğinin yapamayacakları şekilde başarısız olabilecekleri anlamına gelen belirli özelliklere sahiptir.
Örneğin, ortak bir tasarım, düşük güçlü bir RC osilatöründen çalışan bir gözlemci zamanlayıcı kullanmaktır. Osilatör arıza yapabilir. Bir osilatör yerine kapasitör deşarjına dayanan harici bir gözlemci, çoğu durumda mikrodenetleyiciyi hala sıfırlayabilir.
Başka bir neden, harici bekçi köpeğinin daha sağlam olabilmesidir. Bir mikrodenetleyici sadece belirli bir voltaj aralığında güvenilir bir şekilde çalışabilir ve karmaşık bir cihaz olmak, kendi dahili gözlemcisini etkisiz hale getirecek şekilde kilitlenmeye maruz kalabilir. Harici bir bekçi köpeği daha geniş kabul edilebilir bir besleme aralığına sahip olabilir ve elektrik gürültüsüne maruz kaldığında sorunlara daha az eğilimli olabilir.
Harici bekçiler genellikle çok daha geniş bir zaman aşımı değeri aralığı sunar. Sık kullandığım bir mikrodenetleyici olan XMEGA'nın maksimum zaman aşımı süresi yaklaşık 7 saniyedir. Bir ürün için, 2 saatlik zaman aşımı ile ek bir harici bekçi köpeği ekledim. Bu, mikrodenetleyiciyi birkaç saniyede bir yerine saatte bir kez uyandırmamı sağladı ve pille çalışan bir cihazdaki güç tüketimini azalttı.
Harici gözlemcilerin bazen zamanlayıcı ve voltaj izleme / sıfırlama kontrolü gibi birden fazla işlevi vardır. Yine, bunlar mikrodenetleyicinin yerleşik sisteminden daha düşük güç olabilir.
Harici bir bekçi köpeğinin bir diğer ilginç avantajı, mikrodenetleyici dışındaki cihazları sıfırlamak için kullanılabilmesidir. Örneğin, bir voltaj regülatörünün etkinleştirme pimini kontrol edebilir, aynı anda birden fazla cihazı sıfırlamak için tüm devrenin gücünü kesebilir. Basit bir mantık kullanarak , birden fazla kaynaktan gelen bekçi köpeği sıfırlama sinyali birleştirilebilir, bu da bekçi köpeğinin birkaç cihazın sürekli olarak sıfırlanmasını gerektirmesini sağlar.
Bir bekçi köpeği bu açıdan bir MCU'da bulduğunuz diğer yerleşik çevre birimlerden gerçekten farklı değildir. MCU'lar zamanlayıcılar, RTC'ler, ADC'ler, EEPROM ve sıfırlama denetleyicileriyle birlikte gelir, ancak tüm bu işlevler ayrı IC'ler olarak da bulunur. Mevcut yerleşik bloklar gereksinimlerinizi karşılamıyorsa, harici blokları kullanmanız gerekir. Veya var olmayan veya kodunuzu taşımak için çok pahalı veya zor olabilecek tüm doğru bloklara sahip bir MCU bulmaya çalışabilirsiniz.
Bir bekçi bir zamanlayıcıdır ve IC bir süre için bir giriş darbesini kaybettiğinde çıkışını etkinleştirir.
Bir yapı taşıdır ve herhangi bir uygulama için kullanılabilir.
Böylece, herhangi bir uygulamada kullanılabilir, örneğin, arıza korumalı modda veri yönlendirmesini değiştirmek . Mikrodenetleyici saati başarısız olduğunda, bazı kritik çıkışları devre dışı bırakamayız.
Harici bir gözlemci mikrodenetleyicinin karmaşık saat alanı ile ilgili değildir ve bazılarının analog RC şarj zamanlaması veya dahili saati vardır.
Radyasyondaki dijital devreler, şarj flip-floplarına çarptığında çıkışları tetikleyebilir. Ancak bazı analog devreler daha güvenlidir, çünkü yükü bir kapasitöre entegre ederler ve entegre ettiğimizde güvenlidir.