Trang chủ Liên hệ

Watchdog Timer là gì? Vai trò của Watchdog với PC công nghiệp

CÔNG TY TNHH THIẾT BỊ ĐO LƯỜNG VÀ ĐIỀU KHIỂN 14/03/2023

Watchdog Timer là gì?

Watchdog timer (WDT) là bộ đếm thời gian hoạt động liên tục nhằm tự động thực hiện một nhiệm vụ nào đó. Sau một khoảng thời gian được định trước nếu bộ đếm không được dừng hoặc refresh nó sẽ kích hoạt tác vụ đã được định sẵn ví dụ như reset thiết bị, tắt màn hình, phát tín hiệu cảnh báo, … Trong quá trình đếm nếu bộ đếm được refresh nó cứ thế tự động đếm tiếp nhưng bắt đầu lại với thời gian là 0.

Bộ đếm thời gian Watchdog Timer (WDT) sẽ đặt lại CPU hoặc tạo ra một ngắt nếu quá trình xử lý thuộc về Watchdog bị đình trệ vì bất kỳ lý do gì. Tính năng này giúp đảm bảo độ tin cậy của hệ thống trong môi trường độc lập hoặc không cần người giám sát trong công nghiệp. Dịch vụ đặt lại hoặc ngắt có thể đánh thức ứng dụng nếu nó đi vào vòng lặp vô tận mà không có phản hồi.

Thông thường có 2 đầu vào và 1 đầu ra trong WDT:

Khách hàng phải viết chương trình WDT dưới dạng dịch vụ thuộc “bên trong” chương trình ứng dụng công nghiệp, hoặc một chương trình cá nhân khác có hệ điều hành chạy nền. Sau khi bật dịch vụ WDT, chương trình đó cần “thường xuyên xóa” bộ đếm thời gian của chip WDT để chip WDT không gửi kích hoạt ra ngoài. Khi phần mềm còn hoạt động, WDT luôn được xóa để bắt đầu lại từ đầu (ví dụ: 63 giây) sau đó đếm ngược.

Nếu CPU bị treo làm cho nó không thể thực hiện tốt chương trình, chip WDT không thể nhận được tín hiệu rõ ràng nên nó tiếp tục đếm ngược về “0”. Đó là thời điểm để gửi tín hiệu kích hoạt để thiết lập lại toàn bộ hệ thống hoặc gửi IRQ. Tính năng này được sử dụng để đánh thức hệ thống máy tính, sau đó thực thi các chương trình ứng dụng chuyên dụng.

Các lý do có thể khiến CPU không thể phản hồi như sau:

1. Trục trặc phần cứng.

2. CPU bị kẹt do các vấn đề phần mềm không xác định (ví dụ: vi rút tấn công, hết thời gian phản hồi trong chương trình ứng dụng làm kẹt quá trình xử lý của CPU …).

Vai trò của Watchdog với máy tính công nghiệp

Đối với những hệ thống nhúng không thể được con người theo dõi liên tục như Máy tính công nghiệp, Watchdog Timer có thể là giải pháp. Hầu hết các hệ thống nhúng cần phải tự chủ. Thông thường, không thể đợi ai đó khởi động lại nếu phần mềm bị treo. Một số thiết kế nhúng, chẳng hạn như thăm dò không gian, chỉ đơn giản là không thể tiếp cận được với người vận hành. Nếu phần mềm của họ bị treo, các hệ thống đó sẽ bị vô hiệu hóa vĩnh viễn. Trong các trường hợp khác, tốc độ mà người vận hành có thể thiết lập lại hệ thống sẽ quá chậm để đáp ứng các yêu cầu về thời gian hoạt động của sản phẩm.

Bộ đếm thời gian WDT là một phần cứng có thể được sử dụng để tự động phát hiện các bất thường của phần mềm và đặt lại bộ xử lý nếu có. Nói chung, một bộ WDT dựa trên một bộ đếm đếm ngược từ một số giá trị ban đầu đến 0. Phần mềm nhúng sẽ chọn giá trị ban đầu của bộ đếm và định kỳ khởi động lại nó. Nếu bộ đếm về 0 trước khi phần mềm khởi động lại, phần mềm được coi là đang hoạt động sai và tín hiệu đặt lại của bộ xử lý được khẳng định. Bộ xử lý (và phần mềm nhúng mà nó đang chạy) sẽ được khởi động lại như thể người vận hành đã ngắt nguồn.

Hình 1 cho thấy một cách sắp xếp điển hình. Như đã trình bày, bộ đếm thời gian của cơ quan giám sát là một con chip bên ngoài bộ xử lý. Tuy nhiên, nó cũng có thể được bao gồm trong cùng một con chip với CPU. Điều này được thực hiện trong nhiều bộ vi điều khiển. Trong cả hai trường hợp, đầu ra từ bộ đếm thời gian của cơ quan giám sát được gắn trực tiếp với tín hiệu đặt lại của bộ xử lý.

Hình 1: Cài đặt Watchdog điển hình

Ở đây chúng ta có một vòng lặp vô hạn duy nhất điều khiển toàn bộ hành vi của hệ thống. Kiến trúc phần mềm này phổ biến trong nhiều hệ thống nhúng với các bộ xử lý cấp thấp và các hành vi dựa trên một tần số hoạt động duy nhất. Việc triển khai phần cứng của cơ quan giám sát này cho phép đặt giá trị bộ đếm thông qua một thanh ghi ánh xạ bộ nhớ.

Bài viết liên quan