Sự cần thiết của một bộ đếm thời gian theo dõi bên ngoài


19

Sự cần thiết của một bộ đếm thời gian theo dõi bên ngoài cho một vi điều khiển là gì?

Hầu hết các bộ vi điều khiển được thiết kế với bộ đếm thời gian theo dõi nội bộ. Tuy nhiên, trong một số mạch họ đang sử dụng bộ đếm thời gian theo dõi bên ngoài (như PIC16F1824).

Câu trả lời:


10

Một số sản phẩm phải đáp ứng các yêu cầu an toàn, được xác định bởi nhà sản xuất hoặc để đáp ứng các tiêu chuẩn an toàn quốc tế như IEC 60730-1, hoặc UL1998 cũ vẫn đang được sử dụng ở Mỹ. Chức năng giám sát nội bộ trong bất kỳ vi điều khiển cụ thể nào có thể hoặc không đủ để sử dụng. Một WDT bên ngoài có thể được sử dụng kết hợp với WDT nội bộ trong một số trường hợp.

Một số bộ vi điều khiển như dòng Hercules của TI rất coi trọng các ứng dụng hệ thống quan trọng về an toàn và có nhiều khả năng đáp ứng các yêu cầu nghiêm ngặt, tuy nhiên chúng có thể không phù hợp với các ứng dụng nhạy cảm với chi phí.

Thông thường WDT là một trong những cách để giảm khả năng thất bại gây ra thiệt hại thảm khốc cho tài sản hoặc thương tích cho cuộc sống. Những thứ khác như bảo vệ bộ nhớ để phát hiện truy cập bất ngờ vào bộ nhớ MCU hoặc tìm nạp chương trình từ bộ nhớ không sử dụng thường được sử dụng cùng với WDT.

Ví dụ về các sản phẩm rẻ tiền thực hiện các chức năng quan trọng về an toàn là hệ thống phụ ô tô, bộ điều khiển cửa nhà để xe và bộ điều khiển đánh lửa gas (khí tự nhiên hoặc propan) được sử dụng trong lò nung, máy sấy và máy nước nóng. Tất nhiên nhiều sản phẩm y tế và hàng không vũ trụ cũng rất quan trọng về an toàn nhưng có thể có đủ chỗ để dự phòng và các phương pháp khác. Trong một số trường hợp, có thể không có trạng thái an toàn dễ tiếp cận - ví dụ, trong máy bay.

Lý tưởng nhất là bộ đếm thời gian theo dõi rất đơn giản, độc lập với MCU (ví dụ: nó nên có nguồn đồng hồ riêng và có lẽ là màn hình đồng hồ), không thể được đặt (bằng phần mềm) trong thời gian dài hơn sẽ gây ra thiệt hại do bất kỳ lỗi phần mềm nào, và sẽ khiến hệ thống trở về trạng thái an toàn nếu không được "chăm sóc" đúng giờ, trong thời gian chờ hoặc theo kiểu cửa sổ để có thể phát hiện quá nhiều thiết lập lại quá thường xuyên. Ví dụ, WDT trong ứng dụng điều khiển nhiệt có thể được đặt thành vài giây vì không thể làm hỏng nếu vi điều khiển khóa trong khoảng thời gian đó.

WDT là hữu ích nhất như là một phần của cách tiếp cận cấp hệ thống đối với độ tin cậy và an toàn.


33

Một bộ đếm thời gian theo dõi có thể bảo vệ chống lại các lỗi phần cứng trong lỗi ... vi điều khiển tiên tiến. Một cái mà chúng tôi đã sử dụng gần đây, từ một thương hiệu nổi tiếng, có các chân I / O đôi khi bị mất ngắt, đôi khi không khởi động chính xác và đôi khi cơ quan giám sát tích hợp đôi khi không thể thiết lập lại hệ thống ở trạng thái đã biết.

Điều này đã không xuất hiện cho đến khi chúng tôi bắt đầu với thử nghiệm độ tin cậy trong thời gian dài và việc thêm một bộ giám sát bên ngoài dễ dàng hơn là thay đổi bộ vi điều khiển.

Nếu bạn có nhiều IC trên PCB, bạn cũng có thể cần một IC đặt lại bên ngoài hoặc màn hình điện áp để làm cho mọi thứ khởi động đáng tin cậy. Nhiều trong số này cũng có thể phục vụ như một cơ quan giám sát.


9
"Cơ quan giám sát tích hợp đôi khi không thể thiết lập lại hệ thống ở trạng thái đã biết" - điều này tương đương về mặt chức năng với "không có cơ quan giám sát nội bộ".
Dmitry Grigoryev

32

Thật khó để tranh luận rằng đồng hồ bên trong của đồng hồ nội bộ thực sự độc lập với tất cả các đồng hồ khác và luôn chạy như bình thường.

Vì vậy, để chứng nhận, việc đặt một cơ quan giám sát bên ngoài lên bảng thường dễ dàng hơn nhiều và nói: hãy nhìn vào cơ quan giám sát của chúng tôi, nó phải được MCU kích hoạt trong khoảng thời gian đó, ngắn hơn thời gian của chúng tôi để thất bại, vì vậy thiết bị của chúng tôi an toàn như chúng tôi đã định nghĩa nó


Để giải quyết một số ý kiến:

"Và luôn luôn chạy như nó nên" - Điểm tốt. Có thể khó chứng minh rằng phần mềm của bạn khởi tạo chính xác bộ giám sát nội bộ trong mọi trường hợp hơn là chỉ sử dụng chip giám sát và tham khảo bảng dữ liệu của nó.

Điều này thường được chứng minh bằng một bài kiểm tra chèn lỗi, mà bạn trình bày cho cơ quan chứng nhận. Vì vậy, bạn chỉ cho họ mã nơi khởi tạo của bạn xảy ra và nơi kích hoạt cơ quan giám sát xảy ra. Họ thường yêu cầu bạn sửa đổi mã theo cách mà việc kích hoạt bộ giám sát bị dừng sau một thời gian nhất định và kiểm tra xem bộ điều khiển có được đặt lại chính xác không.

Hoặc để chứng minh rằng mã của bạn không chứa lỗi vô tình vô hiệu hóa cơ quan giám sát nội bộ.

Ít nhất trên một số bộ điều khiển, bộ giám sát được gọi là độc lập và có nguồn đồng hồ riêng và không thể bị vô hiệu hóa bằng phương tiện phần mềm, chỉ có một thiết lập lại bộ điều khiển sẽ vô hiệu hóa bộ giám sát. Ít nhất là về mặt lý thuyết - thật dễ dàng để chứng minh rằng bạn không thể dừng nó bằng phần mềm nhưng khó để chứng minh rằng đồng hồ thực sự độc lập và sẽ không dừng lại dưới EMI.

Hoặc để chứng minh rằng mã của bạn không chạy tự động liên tục đặt lại bộ giám sát bên ngoài nhanh nhất có thể. Vấn đề được giải quyết. ;-)

Trong trường hợp đó, bạn sử dụng bộ theo dõi cửa sổ phải được kích hoạt theo các khoảng thời gian nhất định và nếu bạn không làm như vậy (kích hoạt nó quá thường xuyên hoặc quá ít) sẽ đặt lại mạch. STM32 tôi đang làm việc với một bộ giám sát cửa sổ bên trong, nhưng nó chạy từ PCLK1 có nguồn gốc từ đồng hồ chính, vì vậy tôi không nghĩ nó hữu ích như một bộ giám sát bên ngoài với nguồn đồng hồ riêng.

Hoặc một số thiên tài không đặt thói quen dịch vụ của cơ quan giám sát vào ISR hẹn giờ, do đó mã chính có thể bị sập nhưng ngắt tiếp tục bắn và phục vụ cơ quan giám sát một cách hoàn hảo ...

Điều đó chắc chắn là đúng, nhưng hy vọng một bài đánh giá sẽ đưa thiên tài đó trở lại ghế của mình - nhưng hey khi tôi bắt đầu, đó cũng là ý tưởng đầu tiên của tôi: D. Trong quá trình chứng nhận tôi đã tham gia, họ luôn xem phần giám sát của phần mềm.


4
"Và luôn luôn chạy như nó nên" - Điểm tốt. Có thể khó chứng minh rằng phần mềm của bạn khởi tạo chính xác bộ giám sát nội bộ trong mọi trường hợp hơn là chỉ sử dụng chip giám sát và tham khảo bảng dữ liệu của nó.
JimmyB

4
@JimmyB Hoặc để chứng minh rằng mã của bạn không chứa lỗi vô tình vô hiệu hóa cơ quan giám sát nội bộ.
TripeHound

2
@TripeHound Hoặc để chứng minh rằng mã của bạn không chạy tự động liên tục đặt lại cơ quan giám sát bên ngoài nhanh nhất có thể. Vấn đề được giải quyết. ;-)
JimmyB

2
Hoặc là một số thiên tài không đặt thói quen dịch vụ theo dõi trong ISR hẹn giờ, do đó mã chính có thể bị sập nhưng ngắt vẫn tiếp tục bắn và phục vụ cơ quan giám sát một cách hoàn hảo ...
John U

@ John, tuy nhiên, điều đó dường như không giống như một IC bên ngoài sẽ giúp được.
ilkkachu

12

Các cơ quan giám sát được xây dựng cho vi điều khiển có các thuộc tính đặc biệt có nghĩa là bản thân chúng có thể thất bại theo cách mà một cơ quan giám sát bên ngoài khác không thể.

Ví dụ, một thiết kế phổ biến là sử dụng bộ đếm thời gian theo dõi chạy từ bộ tạo dao động RC công suất thấp. Dao động đó có thể thất bại. Một bộ giám sát bên ngoài dựa trên sự phóng điện của tụ điện chứ không phải là bộ tạo dao động vẫn có thể thiết lập lại vi điều khiển trong nhiều trường hợp.

Một lý do khác là cơ quan giám sát bên ngoài có thể mạnh mẽ hơn. Một bộ vi điều khiển chỉ có thể hoạt động đáng tin cậy trong một phạm vi điện áp nhất định và là một thiết bị phức tạp có thể bị khóa theo cách khiến cho bộ giám sát bên trong của nó không hiệu quả. Một cơ quan giám sát bên ngoài có thể có phạm vi cung cấp rộng hơn chấp nhận được và ít gặp vấn đề hơn khi bị nhiễu điện.

Cơ quan giám sát bên ngoài thường cung cấp một phạm vi giá trị hết thời gian rộng hơn nhiều. Một bộ vi điều khiển tôi sử dụng thường xuyên, XMEGA, có thời gian chờ tối đa khoảng 7 giây. Đối với một sản phẩm, tôi đã thêm một cơ quan giám sát bên ngoài bổ sung với thời gian chờ là 2 giờ. Điều đó cho phép tôi đánh thức vi điều khiển mỗi giờ một lần thay vì cứ sau vài giây, giảm mức tiêu thụ năng lượng trong một thiết bị chạy bằng pin.

Cơ quan giám sát bên ngoài đôi khi có nhiều chức năng, chẳng hạn như bộ hẹn giờ và điều khiển thiết lập / giám sát điện áp. Một lần nữa, đây có thể là công suất thấp hơn hệ thống tích hợp của vi điều khiển.

Một lợi thế thú vị khác của bộ giám sát bên ngoài là nó có thể được sử dụng để đặt lại các thiết bị khác ngoài vi điều khiển. Ví dụ, nó có thể điều khiển chân kích hoạt của bộ điều chỉnh điện áp, cấp nguồn cho toàn bộ mạch để đặt lại nhiều thiết bị cùng một lúc. Sử dụng một số logic đơn giản, tín hiệu đặt lại watchdog từ nhiều nguồn có thể được kết hợp, cho phép cơ quan giám sát yêu cầu một số thiết bị liên tục đặt lại nó.


Dựa trên kinh nghiệm của tôi về các wdog bên ngoài, tôi muốn nói rằng chúng kém mạnh mẽ hơn nhiều so với bên trong, đơn giản vì một mạch bên ngoài khác là một thứ khác có thể phá vỡ. Hàn, EMI, ESD và như vậy. Nếu bạn quản lý để rút ngắn đầu vào đồng hồ vào một cái gì đó, thì wdog bên ngoài bị vô hiệu hóa một cách hiệu quả. Vì vậy, tôi không thực sự mua khía cạnh an toàn gia tăng. Nếu bạn có cả hai cùng một lúc, thì chắc chắn, bạn sẽ tăng độ an toàn lên một chút.
Lundin

@Lundin hầu hết trong số họ sử dụng bộ tạo dao động RC bên trong hoặc xả tụ điện, thay vì đồng hồ bên ngoài. Trong thực tế, tôi không thể nghĩ ra bất kỳ tay nào sử dụng đồng hồ bên ngoài. Ngoài ra các thất bại không phải là phụ gia, nếu bạn có một cơ quan giám sát bên ngoài và bên trong và một thất bại rõ ràng vẫn tốt hơn là chỉ có một.
người dùng

3

Một số chứng chỉ, chẳng hạn như UL , có thể yêu cầu bảo vệ khỏi hai điểm thất bại. Một bộ đếm thời gian theo dõi bên ngoài sẽ được coi là bảo vệ khỏi điểm thất bại đầu tiên, vi điều khiển.


2

Một cơ quan giám sát thực sự không khác về vấn đề này so với bất kỳ thiết bị ngoại vi tích hợp nào khác mà bạn tìm thấy trong MCU. MCU đi kèm với bộ định thời, RTC, ADC, EEPROM và bộ điều khiển đặt lại, tuy nhiên tất cả các chức năng này cũng tồn tại dưới dạng các IC riêng biệt. Nếu các khối tích hợp sẵn có không đáp ứng yêu cầu của bạn, bạn phải sử dụng các khối bên ngoài. Hoặc bạn có thể thử tìm MCU với tất cả các khối phù hợp, có thể không tồn tại hoặc quá đắt hoặc khó chuyển mã của bạn sang.


1

Watchdog là một bộ đếm thời gian và kích hoạt đầu ra của nó khi IC mất một xung đầu vào trong một khoảng thời gian.

Nó là một khối xây dựng và có thể được sử dụng cho bất kỳ ứng dụng nào.

Vì vậy, chúng có thể được sử dụng trong bất kỳ ứng dụng nào, ví dụ, thay đổi định tuyến dữ liệu ở chế độ không an toàn . Khi đồng hồ vi điều khiển bị lỗi, chúng ta không thể vô hiệu hóa một số đầu ra quan trọng.

Một bộ giám sát bên ngoài không liên quan đến miền đồng hồ phức tạp của vi điều khiển và một số trong số chúng có thời gian sạc RC tương tự hoặc đồng hồ bên trong.

Các mạch kỹ thuật số trong bức xạ có thể kích hoạt đầu ra khi điện tích chạm vào flip-flop của chúng. Nhưng một số mạch tương tự an toàn hơn vì chúng tích hợp điện tích trong một tụ điện, và nó an toàn khi chúng ta tích hợp nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.