2012-10-15 61 views
9

Giả sử tôi đang phát triển một cơ chế không an toàn cho Arduino (Hoặc bất kỳ vi điều khiển nào khác). Nói cách khác, một vi điều khiển phụ hoặc một bảng riêng biệt sẽ nhận được trách nhiệm khi bộ điều khiển chính thất bại.Cơ chế an toàn không an toàn Arduino

Hai cơ chế có thể có như sau.

Phương pháp 1 - Client Server Cơ chế

  • Có 2 hệ thống giống hệt nhau mà được cung cấp riêng rẽ.
  • Hệ thống phụ gửi yêu cầu định kỳ và hệ thống chính trả lời.
  • Nếu hệ thống chính không trả lời (nhiều lần) hệ thống phụ sẽ trở thành phụ trách.

Phương pháp 2 - Heart Beat Cơ chế

  • Có 2 hệ thống giống hệt nhau mà được cung cấp riêng rẽ.
  • Hệ thống chính gửi thông báo nhịp tim định kỳ.
  • Nếu nhịp tim là có nút phụ biết rằng nút chính là lên.
  • Khi không có nhịp tim, nút chính được giả định là đã chết. Nút phụ được điều khiển.

Các bạn có biết cơ chế nào tốt hơn để triển khai tính năng này không?

Trả lời

12

Thông thường trong các hệ thống nhúng thương mại, watchdog timer sẽ được sử dụng để đặt lại bộ xử lý trong trường hợp nó không phản hồi theo định kỳ "đá chó". Tất cả các vi điều khiển AVR (và nhiều nếu không phải là hầu hết các thương hiệu khác cũng) có một bộ đếm thời gian watchdog nội bộ. Mặc dù thiết kế với bộ đếm thời gian giám sát độc lập, bên ngoài thường mạnh mẽ hơn và đáng tin cậy hơn. Giống như this:

external watchdog setup

Đối với hệ thống đòi hỏi một mức độ cao hơn của khả năng chịu lỗi, cho các ứng dụng ví dụ hàng không vũ trụ, ba thừa hoặc triple modular redundant kiến ​​trúc được sử dụng.

Trong hệ thống dự phòng ba lần, ba thành phần xử lý giống nhau thực hiện cùng một tác vụ cùng một lúc. Kết quả sau đó được gửi đến một mạch biểu quyết hoặc những gì John von Neumann gọi là "majority organ" (Mục 4.2.2). Đầu ra của mạch biểu quyết là đa số ý kiến ​​của ba thành phần xử lý.

triple redundancy

Điều này cho phép một trong những thành phần xử lý thất bại mà không ảnh hưởng đến hoạt động của hệ thống. Tuy nhiên, nếu mạch biểu quyết không thành công, thì toàn bộ hệ thống sẽ bị lỗi. Một hệ thống dự phòng ba mô-đun không đồng thời với điểm thất bại duy nhất này bằng cách thực hiện ba mạch biểu quyết.

triple modular redundant

Cuối cùng, mặc dù ba đầu ra sẽ cần phải được kết hợp thành một kết quả lại dẫn đến một điểm duy nhất của thất bại.Ngay cả khi điểm thất bại đó là con người nhìn vào ba đồng hồ đo, mỗi cái đều theo dõi cùng một nhiệt độ.

Điều bạn cần xác định chỉ là cách fault-tolerant bạn cần hệ thống của mình và loại mean time between failures (MTBF) hệ thống của bạn có thể xử lý. Sau đó, thiết kế hệ thống dự phòng của bạn xung quanh đó.

+0

+1 cho con trỏ :) –

+0

câu trả lời tuyệt vời :) –

+0

Biểu đồ đẹp chết tiệt! Bạn đã sử dụng cái gì? – drozzy