Watchdog Timer là gì? Ví dụ và cách thức hoạt động

Watchdog Timer là gì? Chúng có các cách thức hoạt động như thế nào và làm sao để sử dụng? Mời bạn xem qua bài viết bên dưới để trả lời các câu hỏi này nhé!

Khi làm việc với vi điều khiển, có thể bạn sẽ gặp các tình trạng như treo chip, do nhiều nguyên nhân khác nhau như bị nhiễu phóng tĩnh điện, nhiễu điện từ trường, việc lập trình bị sai, chương trình không thoát ra khỏi được vòng lặp,… Khi đó, chúng ta sẽ dùng đến Watchdog Timer để khắc phục tình trạng này.

Khái niệm Watchdog Timer

Watchdog Timer được hiểu đơn giản là 1 bộ đếm có cách hoạt động hoàn toàn độc lập với CPU, chỉ số này có thể tăng hoặc giảm tùy vào dòng chip bạn đang dùng là gì. Khi Watchdog Timer đếm đến một giá trị cụ thể nào đó do chính chúng ta đặt, thì hệ thống sẽ tự động reset chip.

Nhờ vào các tính năng này, Watchdog Timer có thể được ứng dụng trong nhiều ứng dụng khác nhau như:

  • Dùng để reset chip tự động, chẳng hạn như khi bộ đếm Watchdog Timer được đếm từ 1 đến 69. Khi tới giá trị này thì chip sẽ tự reset. Để chip không bị reset, chúng ta sẽ dùng một vòng lặp while() để Watchdog Timer đếm lại từ giá trị đầu tiên, đảm bảo Watchdog Timer không thể đếm đến 69.
  • Nếu chương trình bị treo, Watchdog Timer sẽ không thể quay lại đếm giá trị đầu tiên như trong vòng lặp. Khi đó, chip sẽ được reset để giải quyết tình trạng này.

Ví dụ về cách dùng Watchdog Timer

Dưới đây là một đoạn code mẫu, để bạn hiểu hơn về khái niệm Watchdog Timer là gì rõ hơn:

void main()
{
watchdog_init(); // Khởi tạo bộ đếm watchdog timer
while(1)
{
//do something here :))
watchdog_reload(); // Reload giá trị mới cho watchdog timer
}
}

Bạn có thể sử dụng dòng code này để thử. Tuy nhiên, biện pháp khuyên dùng tốt nhất là bạn nên sử dụng phần cứng có khả năng chống nhiễu và chất lượng tốt để tránh tình trạng này. Ngoài ra, khi lập trình thì bạn cũng nên chú ý đến các vòng lặp.

Cách hoạt động của Watchdog Timer là gì?

Quy trình hoạt động của Watchdog Timer bao gồm 3 bước chính, bao gồm:

Bộ phận giám sát khởi động lại

Việc khởi động lại bộ đếm trong Watchdog Timer còn có thể gọi là “kicking”, chúng được thực hiện bằng cách ghi dữ liệu vào cổng điều khiển trong bộ giám sát.

Với các chip máy tính có chạy hệ điều hành, chúng ta có thể thiết lập Watchdog thông qua các trình điều khiển thiết bị. Đây là các thiết bị phục vụ cho việc trừu tượng hóa phần cứng, cho phép chúng ta cấu hình thời gian chờ, khởi động và dừng bộ hẹn giờ.

Cách hoạt động của Watchdog Timer là gì?
Cách hoạt động của Watchdog Timer là gì?

Cơ quan giám sát một giai đoạn

Cơ quan này chịu trách nhiệm giúp Watchdog Timer có thể thay đổi cấu hình giám sát. Tại đây, các cơ quan giám sát trong chip sẽ kết nối trực tiếp với CPU. CPU và bộ giám sát sẽ cùng nhau chia sẻ các tín hiệu đồng hồ chung hoặc tín hiệu độc lập.

Cách hoạt động của cơ quan giám sát một giai đoạn trong Watchdog Timer là gì

Cơ quan giám sát nhiều tầng

Đây là khu vực cho phép bộ đếm theo dõi nhiều tuần, mỗi một bộ định có thể gọi là giai đoạn hẹn giờ. Đơn giản hơn, ta có thể hiểu đó là mỗi giai đoạn khác nhau.

Để hiểu hơn về cấu tạo này trong Watchdog Timer là gì, mời bạn cùng xem qua ví dụ sau:

1 cơ quan giám sát có 4 giai đoạn khác nhau là Timer Stage 1, 2, 3 và 4. Timer Stage 1 là giai đoạn duy nhất chịu trách nhiệm xử lý. Sau đó, các giai đoạn sau sẽ tiến hành cho đến khi giai đoạn này kết thúc. Cứ mỗi giai đoạn kết thúc thì sẽ kích hoạt các hành động tương ứng để bắt đầu giai đoạn khác, cứ thế mãi cho đến khi giai đoạn cuối cùng kết thúc.

Cách hoạt động của cơ quan giám sát nhiều tầng trong Watchdog Timer là gì
Cách hoạt động của cơ quan giám sát nhiều tầng trong Watchdog Timer là gì

Thông thường, trong máy tính thì cơ quan giám sát nhiều tầng sẽ kích hoạt lần lượt các hoạt động (như ví dụ trên).

Lời kết

Qua bài viết trên, hy vọng bạn đã hiểu hơn về khái niệm Watchdog Timer là gì, cấu tạo cũng như ví dụ về cách sử dụng của chúng. Đừng quên theo dõi các bài viết tại IoTZone để cập nhật thêm kiến thức mới về lập trình điện tử và IoT nhé!

IoTZone – Chuyên cung cấp thiết bị điện tử & tài liệu cho Makers

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *