ฉันยังคงค้นหาคำตอบสำหรับคำถามนี้:
ทำไมในขณะที่ stm32 MCUs มีสุนัขเฝ้าบ้านที่สมบูรณ์ (ฉันหมายถึง Window watchdog (WWDG)) มีสุนัขเฝ้าบ้านที่เรียบง่าย (สุนัขเฝ้าบ้านอิสระ (IWDG))
ฉันพบหน้านี้ที่ได้กล่าว:
ST Microelectronics มีสายผลิตภัณฑ์ Cortex-M3 M3 ได้รับความนิยมอย่างมากสำหรับอุปกรณ์ฝังตัวระดับล่างและ STM32F ของ ST เป็นตัวแทนของชิ้นส่วนเหล่านี้ (แม้ว่า WDT เป็น Add-on ST และไม่จำเป็นต้องสะท้อนถึงการใช้งานของผู้ขายรายอื่น) STM32F มีสองกลไกการป้องกันที่แตกต่างกัน "Watchdog อิสระ" คือการออกแบบวานิลลาสวยที่มีน้อยไปสำหรับมันนอกเหนือจากความสะดวก แต่ Window Watchdog ของพวกเขาให้การป้องกันที่แข็งแกร่งกว่า เมื่อตัวจับเวลานับถอยหลังหมดอายุการรีเซ็ตจะถูกสร้างขึ้นซึ่งสามารถขัดขวางได้โดยการโหลดตัวจับเวลาอีกครั้ง ไม่มีอะไรพิเศษที่นั่น แต่ถ้าการโหลดเกิดขึ้นเร็วเกินไประบบก็จะรีเซ็ตเช่นกัน ในกรณีนี้ "เร็วเกินไป" ถูกกำหนดโดยค่าหนึ่งโปรแกรมในการลงทะเบียนควบคุม
อีกคุณสมบัติที่ยอดเยี่ยม: มันสามารถสร้างการขัดจังหวะก่อนที่จะรีเซ็ต เขียนโค้ดเล็กน้อยเพื่อขัดขวางการขัดจังหวะและคุณสามารถดำเนินการบางอย่างกับระบบให้อยู่ในสถานะที่ปลอดภัยหรือเพื่อถ่ายภาพข้อมูลเพื่อการดีบัก ST แนะนำให้ใช้ ISR เพื่อโหลดสุนัขเฝ้าบ้าน - นั่นคือเตะสุนัขเพื่อไม่ให้มีการรีเซ็ต อย่าใช้คำแนะนำของพวกเขา หากโปรแกรมขัดข้องตัวจัดการขัดจังหวะอาจทำงานต่อได้ตามปกติ และการใช้ ISR เพื่อโหลด WDT จะทำให้เหตุผลทั้งหมดสำหรับสุนัขเฝ้าบ้านไม่ทำงาน
และสิ่งนี้ :
ชุดใหม่ของ STMicroelectronics ของซีพียู STM32F4 Cortex ™ -M4 มีสุนัขเฝ้าบ้านอิสระสองคน หนึ่งรันจาก oscillator RC ภายในของตัวเอง นั่นหมายความว่าทุกสิ่งสามารถพังในซีพียูและ WDT จะยังคงทำงานอยู่ นอกจากนี้ยังมี“ window watchdog” (WWDT) ซึ่งต้องการรหัสเพื่อจี้มันบ่อย แต่ไม่บ่อยเกินไป นี่เป็นวิธีที่มีประสิทธิภาพมากในการประกันรหัสที่ผิดพลาดที่สุ่มเขียนไปยังกลไกการป้องกันที่ไม่ก่อให้เกิดการจี้ WDT และ WWDT สามารถสร้างการขัดจังหวะในไม่ช้าก่อนที่จะถูกรีเซ็ต
ตกลงเรามาดูคู่มืออ้างอิง :
STM32F10xxx มีอุปกรณ์ต่อพ่วงสุนัขเฝ้าบ้านในตัวสองตัวที่ให้การผสมผสานระหว่างระดับความปลอดภัยสูงความแม่นยำในการจับเวลาและความยืดหยุ่นในการใช้งาน อุปกรณ์จ้องจับผิดทั้งสอง (อิสระและหน้าต่าง) ทำหน้าที่ตรวจจับและแก้ไขความผิดปกติเนื่องจากความล้มเหลวของซอฟต์แวร์และเพื่อให้ระบบรีเซ็ตหรือขัดจังหวะ (หน้าต่างจ้องจับผิดเท่านั้น) เมื่อตัวนับถึงค่าการหมดเวลาที่กำหนด Watchdog อิสระ (IWDG) ถูกโอเวอร์คล็อกด้วยนาฬิกาความเร็วต่ำเฉพาะของตัวเอง (LSI) และยังคงทำงานแม้ว่านาฬิกาหลักจะล้มเหลว นาฬิกา window watchdog (WWDG) ถูกตั้งค่าล่วงหน้าจากนาฬิกา APB1 และมีหน้าต่างเวลาที่กำหนดค่าได้ซึ่งสามารถตั้งโปรแกรมให้ตรวจจับพฤติกรรมแอปพลิเคชันที่ช้าหรือผิดปกติ IWDG นั้นเหมาะสมที่สุดสำหรับแอพพลิเคชั่นที่ต้องการให้สุนัขเฝ้าบ้านทำงานเป็นกระบวนการอิสระโดยสิ้นเชิงนอกแอปพลิเคชันหลัก แต่มีข้อ จำกัด ด้านความแม่นยำของเวลาที่ต่ำกว่า WWDG เหมาะสมที่สุดสำหรับการใช้งานที่ต้องการสุนัขเฝ้าบ้านเพื่อตอบสนองภายในช่วงเวลาที่แม่นยำ
หน้าต่างจ้องจับผิดถูกใช้เพื่อตรวจจับการเกิดข้อผิดพลาดของซอฟต์แวร์ซึ่งมักเกิดจากการรบกวนจากภายนอกหรือจากเงื่อนไขทางลอจิคัลที่ไม่คาดฝันซึ่งทำให้โปรแกรมแอปพลิเคชันละทิ้งลำดับปกติ วงจร watchdog สร้างการรีเซ็ต MCU เมื่อหมดเวลาของช่วงเวลาที่โปรแกรมไว้เว้นแต่ว่าโปรแกรมจะรีเฟรชเนื้อหาของ downcounter ก่อนที่จะทำการล้าง bit bit T6 การรีเซ็ต MCU จะถูกสร้างขึ้นเช่นกันหากค่า downcounter 7 บิต (ในรีจิสเตอร์ควบคุม) ถูกรีเฟรชก่อนที่ downcounter จะถึงค่ารีจิสเตอร์หน้าต่าง นี่หมายความว่าต้องมีการรีเฟรชตัวนับในหน้าต่างที่ จำกัด
อย่างที่คุณเห็นไม่มีใครบอกว่าทำไมมีสุนัขเฝ้าบ้านสองคน ถ้าฉันถามว่าอะไรคือความแตกต่างระหว่างสุนัขเฝ้าบ้านทั้งสองคุณจะนับคุณสมบัติทั้งหมดที่คุณเห็นในข้างบนและถ้าคุณต้องการเปรียบเทียบทั้งสองอย่างแน่นอนสุนัขเฝ้าบ้าน (WWDG) จะเป็นผู้ชนะ! ถ้าเช่นนั้นทำไมมีสุนัขเฝ้าบ้านสองคน
ฉันอยากรู้ว่าฉันควรใช้ IWDG และ WWDG เมื่อใด
และมีเหตุผลอะไรบ้างที่บอกเราว่าทำไมพวกเขาถึงเรียกสายที่สองตามชื่อนี้ -> "Window watchdog"?