Hala bu soru için bir cevap bulmak için arıyorum:
Neden stm32 MCU'lar mükemmel bir bekçi köpeğine sahipken (yani Window bekçi köpeği (WWDG)), basit bir bekçi köpeği (Bağımsız bekçi köpeği (IWDG)) var mı?
Bu sayfayı şöyle buldum :
ST Microelectronics bir dizi Cortex-M3 cihazına sahiptir. M3, alt uç gömülü aygıtlar için son derece popüler hale geldi ve ST'nin STM32F'si bu parçaları temsil ediyor (WDT bir ST eklentisi olmasına rağmen, diğer satıcıların uygulamalarını yansıtmayabilir). STM32F'nin iki farklı koruma mekanizması vardır. Bir "Bağımsız Bekçi köpeği", kullanım kolaylığı dışında pek bir şey yapmayan güzel bir vanilya tasarımıdır. Ancak Pencere Gözcüleri daha sağlam koruma sağlar. Bir geri sayım zamanlayıcının süresi dolduğunda, zamanlayıcının yeniden yüklenmesi ile engellenebilecek bir sıfırlama oluşturulur. Orada özel bir şey yok. Ancak yeniden yükleme çok hızlı gerçekleşirse, sistem de sıfırlanır. Bu durumda, "çok hızlı" bir değer kontrol programına programlanan bir değer tarafından belirlenir.
Başka bir harika özellik: sıfırlamadan hemen önce bir kesme oluşturabilir. Kesmeyi saptamak için biraz kod yazın ve örneğin sistemi güvenli duruma getirmek veya hata ayıklama amacıyla verileri anlık görüntüye koymak için bazı işlemler yapabilirsiniz. ST, bekçi köpeğini yeniden yüklemek için ISR'yi kullanmanızı önerir - yani köpeği tekmeleyin, böylece sıfırlama gerçekleşmez. Onların tavsiyelerini alma. Program çökerse kesme işleyicileri normal şekilde çalışmaya devam edebilir. WDT'yi yeniden yüklemek için bir ISR kullanmak, bir pencere bekçi köpeğinin tüm nedenini geçersiz kılar.
ve bu :
STMicroelectronics'in yeni STM32F4 Cortex ™-M4 CPU serisinde iki bağımsız bekçi köpeği vardır. Biri kendi dahili RC osilatöründen çalışır. Bu, CPU'da her türlü şeyin çökebileceği ve WDT'nin hala tetikleneceği anlamına gelir. Kodun sık sık, ancak çok sık gıdıklamamasını gerektiren bir “pencere gözlemcisi” (WWDT) de vardır. Bu, koruma mekanizmasına rastgele yazılan çökmüş kodun WDT gıdıklamasına neden olmamasını sağlamak için çok etkili bir yoldur ve WWDT sıfırlama yapılmadan kısa bir süre önce bir kesme oluşturabilir.
tamam, referans kılavuzuna bir göz atalım :
STM32F10xxx, yüksek güvenlik seviyesi, zamanlama doğruluğu ve kullanım esnekliği kombinasyonu sunan iki adet gömülü bekçi köpeği çevre birimine sahiptir. Her iki bekçi çevre birimi (Bağımsız ve Pencere), yazılım hatası nedeniyle oluşan arızaları tespit etmeye ve gidermeye ve sayaç belirli bir zaman aşımı değerine ulaştığında sistem sıfırlamasını veya bir kesmeyi (yalnızca pencere gözcü) tetiklemeye yarar. Bağımsız bekçi köpeği (IWDG) kendi özel düşük hızlı saati (LSI) ile saatlenir ve böylece ana saat başarısız olsa bile aktif kalır. Pencere gözlemcisi (WWDG) saati APB1 saatinden önceden ayarlanmıştır ve anormal geç veya erken uygulama davranışını algılamak için programlanabilen yapılandırılabilir bir zaman penceresine sahiptir. IWDG, bekçi köpeğinin ana uygulama dışında tamamen bağımsız bir süreç olarak çalışmasını gerektiren uygulamalar için en uygunudur, ancak daha düşük zamanlama doğruluğu kısıtlamalarına sahiptir. WWDG, gözlemcinin doğru bir zamanlama penceresinde tepki vermesini gerektiren uygulamalara en uygun olanıdır.
Pencere gözlemcisi, genellikle harici girişim veya öngörülemeyen mantıksal koşullar tarafından üretilen ve uygulama programının normal sırasını terk etmesine neden olan bir yazılım hatasının ortaya çıkmasını tespit etmek için kullanılır. Watchdog devresi, program T6 biti temizlenmeden önce alt sayacın içeriğini yenilemediği sürece, programlanmış bir sürenin bitiminde bir MCU sıfırlaması oluşturur. Aşağı doğru sayıcı pencere kayıt değerine ulaşmadan önce (kontrol kaydında) 7 bit aşağı sayıcı değeri yenilenirse bir MCU sıfırlaması da oluşturulur. Bu, sayacın sınırlı bir pencerede yenilenmesi gerektiği anlamına gelir.
Gördüğünüz gibi, hiçbiri neden iki bekçi var demedi. Eğer her iki bekçi arasındaki farklar nelerdir diye sorarsam, yukarıda görebileceğiniz tüm özellikleri sayarsınız ve ikisini karşılaştırmak istiyorsanız, açıkçası Pencere bekçisi (WWDG) kazanan olacaktır! o zaman neden iki bekçi var?
IWDG'yi ne zaman ve WWDG'yi kullanmam gerektiğini bilmek istiyorum.
ve bize ikinci adı neden bu isimle çağırıyorlar -> "Pencere gözlemcisi" diye bir sebep var mı?