سلام خدمت تمام سروران گرانقدر و دوستان سیسوگی!
من دایدالوس هستم و پس از مدتها وقفه، دوباره بازگشتهام.
تا چند سال پیش، میکروکنترلرهای خانواده AVR، بهویژه سری Mega، بهعنوان میکروکنترلرهایی ۸ بیتی با امکانات مناسب، محبوبیت بسیار زیادی داشتند.
با ورود بردها و ماژولهای آردوینو، این میکروکنترلرهای اقتصادی بیش از پیش فراگیر شدند و راه خود را به پروژههای آموزشی، سرگرمی و صنعتی باز کردند.
اما پیش از محبوبشدن این خانواده، فعالان دنیای سیستمهای امبدد از چه میکروکنترلرهایی استفاده میکردند؟
یکی از گزینههای پرکاربرد، میکروکنترلرهای سری 16 شرکت Microchip بودند؛ خانوادهای که در بسیاری از پروژههای الکترونیکی و صنعتی حضور پررنگی داشت. پس از آن، سری 18F میکروچیپ نیز با توان پردازشی بیشتر و پریفرالهای داخلی متنوع، به انتخابی قدرتمندتر برای طراحان تبدیل شد.
از سوی دیگر، خانواده بزرگ MCS-80 نیز جایگاه ویژهای در تاریخ سیستمهای امبدد دارد. میکروکنترلر 8051، که میتوان آن را فرزند موفق این خانواده دانست، هنوز هم در ذهن بسیاری از مهندسان قدیمی زنده است. حتی امروزه نیز میکروکنترلرهای اقتصادی و صنعتی متعددی با معماری 8051 تولید و استفاده میشوند؛ از جمله محصولات هولتک، برخی کنترلرهای بهکاررفته در کارتهای کامپیوتری، تجهیزات پوشیدنی و دستگاههای صوتی.
در شرق آسیا نیز شرکتهایی مانند NEC و توشیبا محصولات متنوعی در این حوزه عرضه میکردند و سهم قابلتوجهی از بازار تجهیزات الکترونیکی و صنعتی داشتند.
در اواخر دهه ۱۹۸۰ میلادی، تجهیزات رایج بهتدریج به سمت الکترونیکیشدن حرکت کردند و استفاده از کنترلرها در صنایع مختلف افزایش یافت. استانداردهای صنعتی بهروز شدند، ضوابط ایمنی جدیتر شد و تجهیزات الکترومکانیکی کمکم جای خود را به ادوات الکترونیکی دادند.
بسیاری از وسایلی که امروز در اطراف ما قرار دارند، بهشکل خودکار، هوشمند یا الکترونیکی فعالیت میکنند؛ از یخچال و پنکه گرفته تا ماشین لباسشویی، چرخ خیاطیهای مدرن و دوربینهای دیجیتال.
امروزه تقریباً در هر وسیلهای، ردپایی از یک پردازنده یا میکروکنترلر دیده میشود.
اما حالا که صحبت از AVR شد…
سالها پیش، در پروندهای مربوط به یک تخلف صنفی، از من برای انجام کارشناسی بیطرفانه دعوت شد.
ماجرا مربوط به مالک یک جرثقیل سنگین بتنریزی بود که برای دستگاه خود یک ریموت کنترل مخصوص سفارش داده بود. ریموت و تابلو گیرنده آن نیز در مسیر فرمان هیدرولیک جرثقیل قرار داشتند.
تا اینکه روزی، ریموت بهصورت ناگهانی روی یکی از فرمانها قفل کرد. جرثقیل در وضعیت خطرناکی قرار گرفت و در نهایت واژگون شد.
خوشبختانه این حادثه تلفات جانی نداشت.
با سازنده سیستم تماس گرفتم و از توضیحاتی که شنیدم، واقعاً شوکه شدم.
او گفت:
من دیدم مدارها و ریموتهای مخصوص جرثقیل خیلی گران هستند و داخلشان هم کلی مدار اضافی وجود دارد. برای همین با یک AVR، چند رله و یک ماژول فرستنده 433 مگاهرتز، یک ریموت طراحی کردم. مدار هم خیلی خوب کار میکند و از قطعات باکیفیت استفاده کردهام.
با شنیدن این توضیحات، بیشتر نگران شدم. سعی کردم با چند سؤال، موضوع را برای او روشن کنم.
از او پرسیدم:
متأسفانه طراح این سیستم، بسیاری از جوانب مهم را در نظر نگرفته بود. او تازه در همان زمان متوجه شد که قیمت بالای ریموتهای صنعتی جرثقیل، فقط به دلیل قطعات گرانتر یا مدارهای پیچیدهتر نیست؛ بلکه بخش بزرگی از این هزینه به طراحی ایمن، کنترل خطا، افزونگی، استانداردها و الزامات حفاظتی مربوط میشود.
پاسخهای آن مهندس جوان قانعکننده نبود. به او گفتم:
مهندس عزیز، شما برای کیفیت قطعات و عملکرد عادی مدار فکر کردهاید؛ اما ایمنی عملکرد سیستم را در نظر نگرفتهاید.
نتیجه چه بود؟
آن مهندس محصولی ساخته بود که شاید در شرایط عادی عملکرد قابل قبولی داشت، اما اصول ایمنی عملکردی یا Functional Safety در طراحی آن رعایت نشده بود.
در گزارش کارشناسی اعلام کردم که محصول طراحی شده برای چنین کاربری حساسی مناسب نیست و به علت ناآشنایی سازنده با ضوابط، استانداردها و الزامات ایمنی، برخی اصول حیاتی بهصورت ناخواسته نادیده گرفته شدهاند.
در نهایت، سازنده ملزم به پرداخت خسارت شد و مالک جرثقیل نیز به دلیل استفاده از تجهیزات غیراستاندارد، جریمه شد.
بسیاری از طراحان جوان برای اثبات کیفیت یک مدار، از عبارتهایی مانند این استفاده میکنند:
«این مدار صنعتی است!»
«این میکروکنترلر ضدنویز و صنعتیتر است!»
«مدار من نویز میگیرد و درست کار نمیکند!»
«از قطعات ژاپنی و آمریکایی استفاده شده؛ مرگ ندارد!»
«PLC خیلی صنعتیتر از میکروکنترلرهاست!»
اما جای عبارتهای مهمتری در بسیاری از این گفتگوها خالی است:
«این میکروکنترلر برای کاربردهای خاص طراحی شده است.»
«این میکروکنترلر برای استفاده در صنعت خودرو مناسبسازی و تأیید شده است.»
«این تراشه برای کنترل موتور طراحی شده و الزامات کاربردی مشخصی دارد.»
«این مدار با شرایط محیطی و عملیاتی یک کارخانه صنعتی سازگار است و استانداردهای لازم را دریافت میکند.»
«در این طراحی، ملاحظات EMC رعایت شده و اثر تداخلات الکترومغناطیسی تا حد ممکن کاهش یافته است.»
به زبان خیلی ساده، ایمنی عملکردی یا Functional Safety یعنی مطمئن شویم که یک سیستم در زمان بروز خطا یا خرابی، بهجای ایجاد خطر، وارد یک وضعیت امن شود.
برای مثال، ممکن است یک خطای نرمافزاری رخ دهد، یک مقاومت بسوزد، ارتباط یک سنسور قطع شود یا یک رله در حالت وصل گیر کند. در چنین شرایطی، سیستم نباید باعث آتشسوزی، آسیب به تجهیزات یا صدمه به انسان شود. بلکه باید بهگونهای طراحی شده باشد که یا بهصورت ایمن از کار بیفتد، یا عملکرد خود را محدود کند، یا وارد حالتی شود که خطر به حداقل برسد.
تفاوت اصلی Functional Safety با مفهوم «کیفیت» یا Quality در همینجاست:
کیفیت میگوید:
«سیستم باید کمتر خراب شود.»
اما ایمنی عملکردی میگوید:
«اگر سیستم خراب شد، نباید باعث خسارت یا آسیب جدیتر شود.»
پیش از ورود به بحث پیادهسازی، لازم است با سه مفهوم مهم که در استانداردهای ایمنی کاربرد دارند آشنا شویم:
چرخه عمر ایمنی یا Safety Lifecycle یک چارچوب کاری برای طراحی، پیادهسازی و نگهداری سیستمهای ایمن است. در یک پروژه واقعی، صرفاً طراحی یک مدار خوب یا نوشتن چند خط کد مطمئن کافی نیست. ایمنی باید از همان ابتدای پروژه، یعنی زمان تحلیل نیازها، در نظر گرفته شود و تا پایان عمر محصول ادامه پیدا کند.
بهطور کلی، چرخه عمر ایمنی شامل مراحل زیر است:
1. تحلیل خطر و ریسک (Hazard & Risk Analysis) در این مرحله، تمام رویدادها و شرایطی که میتوانند باعث خطر شوند شناسایی میشوند. برای مثال: قطع ارتباط سنسور، خرابی رله، خطای نرمافزاری، اتصال کوتاه، عملکرد اشتباه اپراتور یا قطع ناگهانی تغذیه.
2. تعیین اهداف ایمنی و سطح موردنیاز SIL یا ASIL پس از شناسایی خطرها، باید مشخص شود که سیستم در برابر هر خطر چه واکنشی باید داشته باشد. همچنین سطح ایمنی موردنیاز، مانند SIL یا ASIL، تعیین میشود.
3. طراحی سیستم ایمنی در این مرحله، ساختار سختافزار و نرمافزار بر اساس اهداف ایمنی طراحی میشود. ممکن است از مدارهای افزونه، سنسورهای دوگانه، کنترل خطا، Watchdog، قطعکن اضطراری یا مکانیزمهای Fail-safe استفاده شود.
4. پیادهسازی (Implementation) در این مرحله، مدار ساخته میشود، نرمافزار نوشته میشود و اجزای طراحیشده به محصول واقعی تبدیل میشوند.
5. تأیید و اعتبارسنجی (Verification & Validation) در این بخش باید ثابت شود که سیستم واقعاً الزامات ایمنی تعریفشده را برآورده میکند. این کار میتواند با تستهای مختلف، بازبینی طراحی، تست تزریق خطا و شبیهسازی شرایط غیرعادی انجام شود.
برای نمونه، ممکن است عمداً ارتباط سنسور قطع شود، یک ورودی اشتباه شبیهسازی شود یا خرابی یک قطعه بررسی شود تا مشخص شود سیستم در شرایط خطا، وارد وضعیت ایمن میشود یا خیر.
6. نصب، راهاندازی، بهرهبرداری و نگهداری ایمنی فقط مربوط به زمان طراحی و تولید نیست. پس از تحویل سیستم نیز باید نصب صحیح، تنظیمات درست، آموزش اپراتور، سرویس دورهای و نگهداری اصولی انجام شود.
7. خارجکردن ایمن از سرویس (Decommissioning) در پایان عمر سیستم نیز باید تجهیز بهصورت ایمن از کار خارج شود تا در زمان جمعآوری، تعویض یا اسقاط، خطری برای افراد، تجهیزات یا محیط ایجاد نکند.
چون بدون این چرخه، ممکن است مشکلات مهمی تا پایان پروژه باقی بمانند.
برای مثال، اگر در ابتدای طراحی سطح SIL یا ASIL بهدرستی تعیین نشود، کل طراحی ممکن است بر پایهای اشتباه شکل بگیرد و این خطا تا مرحله تولید و بهرهبرداری ادامه پیدا کند؛ همانطور که گفتهاند: «خشت اول چون نهد معمار کج، تا ثریا میرود دیوار کج.»
همچنین بدون مستندسازی و طیکردن این مراحل، نمیتوان به نهادهای نظارتی، کارفرما یا سازمانهای استاندارد ثابت کرد که محصول از نظر ایمنی بررسی شده است.
از طرف دیگر، در مرحله نگهداری نیز ممکن است یک تعمیرکار یا اپراتور ناآگاه، برای رفع سریع یک مشکل، بخشی از مدار ایمن را حذف یا دور بزند. چرخه عمر ایمنی کمک میکند چنین تغییراتی کنترلشده، مستند و قابل ارزیابی باشند.
در واقع، ایمنی عملکردی یک ویژگی اضافه در انتهای پروژه نیست؛ بلکه باید از اولین مرحله طراحی تا پایان عمر محصول، بخشی از فرایند توسعه باشد.
پیادهسازی فقط یک مدار یا کد نیست، بلکه یک فرآیند سیستماتیک است. مراحل اصلی آن عبارتند از:
اولین پرسش در طراحی ایمن این است:
اگر این قطعه یا سیستم خراب شود، بدترین اتفاقی که ممکن است رخ دهد چیست؟
برای مثال، در یک خودروی برقی اگر سیستم مدیریت باتری یا BMS دچار خطا شود و ولتاژ سلولها را بهدرستی اندازهگیری نکند، ممکن است باتری بیشازحد شارژ شود و در نهایت به آتشسوزی منجر شود.
خروجی این مرحله، تعیین یک هدف ایمنی یا Safety Goal است. برای نمونه:
«شارژ باتری نباید از حد مجاز تجاوز کند؛ حتی اگر یکی از سنسورهای ولتاژ دچار خطا شود.»
پس از مشخصشدن خطرها و اهداف ایمنی، نوبت به طراحی معماری سختافزار و نرمافزار میرسد. در این مرحله چند اصل مهم وجود دارد:
برای مثال، ممکن است در یک سیستم ترمز ABS از دو سنسور مجزا برای بررسی سرعت چرخ استفاده شود.
برای نمونه، میتوان از یک سنسور هال و یک سنسور مقاومتی برای اندازهگیری موقعیت یا سرعت استفاده کرد. هدف این است که یک خطای مشترک، هر دو مسیر را همزمان از کار نیندازد.
مثال معروف آن، سیستم سیگنالدهی راهآهن است. اگر ارتباط سیگنال قطع شود یا خرابی رخ دهد، چراغ باید قرمز شود، نه سبز. قرمز بودن ممکن است باعث توقف قطار و تأخیر شود، اما سبز شدن اشتباه میتواند به حادثه منجر شود.
سیستم باید بتواند برخی خطاها را تشخیص دهد. برای مثال:
هشدار مهم: نرمافزار در بسیاری از سیستمها میتواند خطرناکترین بخش طراحی باشد. در سیستمهای دارای سطح ایمنی بالا، نمیتوان نرمافزار را مانند یک پروژه عادی توسعه داد. برنامه باید در برابر خطاهای ورودی، خرابی حافظه، رفتار غیرمنتظره سختافزار و خطاهای منطقی مقاوم باشد.
در بسیاری از کاربردهای خودرویی، از زیرمجموعهای کنترلشده از زبان C استفاده میشود؛ مانند MISRA C.
هدف این محدودیتها، جلوگیری از استفاده از ساختارهای خطرناک است؛ مانند:
در این روش، نرمافزار همیشه احتمال خطا را در نظر میگیرد.
برای مثال:
در برخی سیستمها باید بررسی شود که برنامه همیشه مسیر درست خود را طی میکند و وارد بخشهای غیرمجاز یا غیرمنتظره نمیشود. این کار با روشهایی مانند Control Flow Monitoring انجام میشود.
در بسیاری از میکروکنترلرهای ایمن، واحدهای سختافزاری ویژهای برای کنترل خطا وجود دارد؛ مانند:
در این روش، دو هسته پردازنده بهطور همزمان یک کد مشابه را اجرا میکنند و خروجی آنها با یکدیگر مقایسه میشود.
اگر یکی از هستهها خروجی متفاوتی تولید کند، سیستم متوجه بروز خطا میشود و میتواند وارد حالت امن شود یا ریست شود.
یکی از دلایل استفاده از دو هسته در برخی میکروکنترلرهای صنعتی و خودرویی، همین موضوع است.
Watchdog یک تایمر مستقل است که باید در بازههای زمانی مشخص توسط نرمافزار فعال یا تغذیه شود. اگر نرمافزار قفل کند، وارد حلقه بینهایت شود یا نتواند در زمان مقرر Watchdog را ریست کند، Watchdog فرض میکند که سیستم دچار خطا شده و میتواند پردازنده یا کل سیستم را ریست کند.
برای مثال، میتوان ولتاژ خروجی یک مدار را با یک ولتاژ مرجع مقایسه کرد. اگر ولتاژ از محدوده مجاز خارج شود، مدار سختافزاری بدون وابستگی به نرمافزار واکنش نشان میدهد و خروجی را قطع میکند.
در این روش، برای فعالماندن یک خروجی مهم، مانند رله یا کنتاکتور، باید چند شرط بهصورت همزمان برقرار باشد. برای مثال، ممکن است فعالبودن یک رله نیازمند دریافت دو سیگنال مستقل از میکروکنترلر باشد. با قطعشدن هر یک از این سیگنالها، خروجی غیرفعال میشود.
این روش کمک میکند خرابی یک مسیر بهتنهایی باعث فعالماندن خروجی خطرناک نشود.
در این مرحله فقط عملکرد عادی سیستم بررسی نمیشود.
هدف اصلی این است که مشخص شود سیستم در زمان خرابی، چگونه رفتار میکند و آیا میتواند وارد وضعیت ایمن شود یا خیر.
در این روش، عمداً برخی خطاها در سیستم ایجاد میشوند.
برای مثال:
سپس بررسی میشود که آیا سیستم در بازه زمانی مجاز، خطا را تشخیص میدهد و به وضعیت امن میرود یا خیر. برای مثال، ممکن است مشخص شود که سیستم باید حداکثر ظرف ۱۰۰ میلیثانیه پس از تشخیص خطا، خروجی موتور را قطع کند.
فرض کنید سنسور سرعت یک پلهبرقی خراب شود.
اگر سنسور سرعت خراب شود و سیستم متوجه این خرابی نشود، پلهبرقی ممکن است با سرعت غیرمجاز حرکت کند و باعث زمینخوردن یا آسیبدیدن افراد شود.
نتیجه این است که پلهبرقی متوقف میشود؛ توقف ممکن است باعث اختلال در سرویس شود، اما ادامه حرکت با سرعت خطرناک، احتمال آسیبدیدن افراد را افزایش میدهد.
در پروازهای تجاری، معمولاً خلبان و کمکخلبان وعدههای غذایی متفاوتی دریافت میکنند. دلیل این کار ساده است: اگر یکی از وعدههای غذایی آلوده یا مسموم باشد، احتمال اینکه هر دو نفر همزمان دچار مشکل شوند کاهش پیدا میکند.
همین مفهوم در طراحی سیستمهای ایمن نیز استفاده میشود. دو مسیر افزونه نباید کاملاً مشابه باشند، زیرا ممکن است یک خطای مشترک هر دو مسیر را همزمان از کار بیندازد.
اگر قصد دارید یک سیستم نسبتاً ساده با سطح ایمنی متوسط، مانند SIL 1 یا ASIL-B، طراحی کنید، حداقل باید به موارد زیر توجه داشته باشید:
ایمنی عملکردی با امنیت سایبری یکسان نیست.
Functional Safety با خطاهای تصادفی، خرابی قطعات، خطای نرمافزار و شرایط غیرعادی سروکار دارد. اما Cybersecurity به مقابله با حملات عمدی، نفوذ، دستکاری دادهها، خرابکاری نرمافزاری و دسترسی غیرمجاز مربوط میشود.
با این حال، در محصولات امروزی این دو موضوع بهشدت به هم مرتبط هستند و باید همزمان در نظر گرفته شوند.
استانداردهای ایمنی عملکردی در صنایع مختلف، بسته به نوع کاربرد، سطح خطر و محیط عملیاتی متفاوت هستند.
جدول زیر دستهبندی کلی برخی از استانداردهای رایج جهانی را نشان میدهد:
| صنعت | استانداردهای اصلی | کاربرد و توضیح مختصر |
|---|---|---|
| عمومی | IEC 61508 | استاندارد پایه ایمنی عملکردی برای تجهیزات الکتریکی، الکترونیکی و قابلبرنامهریزی |
| پزشکی | IEC 60601، IEC 62304، ISO 14971 | ایمنی تجهیزات الکترومدیسن، توسعه نرمافزار پزشکی و مدیریت ریسک |
| هوایی | DO-178C، DO-254، ARP4754A | استانداردهای نرمافزار، سختافزار و توسعه سیستم در هواپیماهای تجاری و نظامی |
| هستهای | IEC 61513، IEEE 7-4.3.2، IEC 60880 | سیستمهای کنترل، ابزار دقیق و نرمافزارهای ایمنی نیروگاه هستهای |
| خودرو | ISO 26262 | استاندارد ایمنی عملکردی خودرو با سطوح ASIL A تا ASIL D |
| ریلی | EN 50126، EN 50128، EN 50129 | سیستمهای قطار، مترو، سیگنالدهی، کنترل درب و ترمز |
| صنایع فرایندی | IEC 61511 | سیستمهای ابزار دقیق ایمن در نفت، گاز، پتروشیمی و صنایع فرایندی |
| ماشینآلات صنعتی | ISO 13849، IEC 62061 | ایمنی ماشینآلات، رباتهای صنعتی، پرسها و نوار نقالهها |
| لوازم خانگی | IEC 60730 | بردهای کنترل لوازم خانگی مانند یخچال، ماشین لباسشویی و کولر |
استاندارد IEC 61508 با عنوان کامل:
Functional Safety of Electrical/Electronic/Programmable Electronic Safety-Related Systems
توسط کمیسیون بینالمللی الکتروتکنیک یا IEC منتشر شده است.
هدف این استاندارد، ارائه یک چارچوب جامع و مستقل از فناوری برای طراحی، توسعه، تأیید و نگهداری سیستمهای ایمنی مبتنی بر برق، الکترونیک و نرمافزار است.
هدف نهایی IEC 61508، کاهش ریسک به یک سطح قابلقبول است؛ بدون اینکه به یک صنعت یا فناوری خاص محدود باشد.
این استاندارد از هفت بخش اصلی تشکیل شده است:
| بخش | عنوان | محتوای اصلی |
| Part 1 | General Requirements | چرخه عمر ایمنی، سطحهای SIL و مدیریت ایمنی |
| Part 2 | Requirements for E/E/PE Systems | الزامات سختافزاری، تشخیص خطا و تحمل خطا |
| Part 3 | Software Requirements | چرخه توسعه نرمافزار ایمن، کدنویسی و تست |
| Part 4 | Definitions and Abbreviations | واژهنامه و مفاهیم پایه |
| Part 5 | Examples of Methods for Determining SIL | روشهای تعیین سطح SIL مانند نمودار ریسک و LOPA |
| Part 6 | Guidelines on Part 2 and Part 3 | راهنمای پیادهسازی بخشهای سختافزار و نرمافزار |
| Part 7 | Overview of Techniques and Measures | مجموعه روشها و تکنیکهای ایمنی مانند Watchdog، Voting و MISRA |
برای درک عملی این استاندارد، معمولاً بخشهای 1، 2 و 3 اهمیت بیشتری دارند؛ زیرا مفاهیم پایه، الزامات سختافزار و روشهای توسعه نرمافزار ایمن را پوشش میدهند.
SIL مخفف Safety Integrity Level است و نشان میدهد یک سیستم ایمنی تا چه اندازه باید قابلاعتماد و مقاوم باشد.
سطوح SIL از 1 تا 4 تعریف میشوند:
هرچه سطح SIL بالاتر باشد، احتمال خرابی خطرناک سیستم باید کمتر باشد.
دو شاخص اصلی برای تعیین SIL وجود دارد:
PFH مخفف Probability of Failure per Hour است و برای سیستمهایی استفاده میشود که بهصورت مداوم یا پرتکرار فعال هستند.
این شاخص، احتمال خرابی خطرناک در هر ساعت را نشان میدهد.
PFDavg مخفف Probability of Failure on Demand است و برای سیستمهایی کاربرد دارد که فقط هنگام وقوع یک شرایط خاص فعال میشوند.
برای مثال، یک سیستم خاموشکننده اضطراری ممکن است فقط هنگام بروز حادثه وارد عمل شود.
| SIL | PFH برای عملکرد پیوسته | PFDavg برای عملکرد کمتقاضا | مثال تقریبی |
| SIL 1 | ≥10⁻⁶ تا <10⁻⁵ | ≥10⁻² تا <10⁻¹ | سنسور دما در یک کوره ساده صنعتی |
| SIL 2 | ≥10⁻⁷ تا <10⁻⁶ | ≥10⁻³ تا <10⁻² | سیستم ترمز اضطراری یک جرثقیل |
| SIL 3 | ≥10⁻⁸ تا <10⁻⁷ | ≥10⁻⁴ تا <10⁻³ | سیستم تشخیص نشت گاز در پالایشگاه |
| SIL 4 | ≥10⁻⁹ تا <10⁻⁸ | ≥10⁻⁵ تا <10⁻⁴ | کاربردهای بسیار حساس مانند نیروگاه هستهای |
در عمل، رسیدن به SIL 4 با تجهیزات الکترونیکی معمولی بسیار دشوار و پرهزینه است. به همین دلیل، در چنین کاربردهایی معمولاً از ترکیب راهکارهای الکترونیکی، مکانیکی و افزونه استفاده میشود.
IEC 61508 یک چرخه عمر ایمنی جامع تعریف میکند که از تحلیل اولیه خطرها تا بهرهبرداری، نگهداری و خارجکردن تجهیز از سرویس را در بر میگیرد.
مراحل کلیدی آن عبارتاند از:
الزامات مهم سختافزاری
سیستم باید بتواند در برابر برخی خطاهای سختافزاری مقاومت کند.
برای مثال، در یک سیستم SIL 3 ممکن است نیاز باشد که سیستم با خرابی یک قطعه، همچنان بتواند وارد وضعیت ایمن شود.
نمونههایی از این روش عبارتاند از:
Diagnostic Coverage نشان میدهد که سیستم چه درصدی از خطاهای احتمالی را میتواند تشخیص دهد.
هرچه سطح SIL بالاتر باشد، نیاز به پوشش تشخیص خطای بالاتری وجود دارد.
گاهی ممکن است دو مسیر افزونه بهدلیل یک عامل مشترک همزمان از کار بیفتند.
برای مثال، افزایش بیشازحد دما، نوسان شدید تغذیه یا نفوذ رطوبت ممکن است هر دو سنسور یا هر دو پردازنده را تحتتأثیر قرار دهد.
به این موضوع Common Cause Failure یا CCF گفته میشود.
در طراحی ایمن باید تلاش شود که مسیرهای افزونه تا حد ممکن از نظر فیزیکی، الکتریکی و فناوری مستقل باشند.
در بخش نرمافزار، چند اصل اساسی مطرح میشود:
در سیستمهای با سطح ایمنی بالاتر، هر خط کد باید قابلردیابی به یک نیاز مشخص باشد.
بسیاری از استانداردهای تخصصی صنایع مختلف، از مفاهیم IEC 61508 الهام گرفتهاند.
برای مثال:
IEC 61508 یک استاندارد صرفاً مربوط به کیفیت نیست. این استاندارد بر رفتار سیستم در زمان خرابی تمرکز دارد. ممکن است یک سیستم از نظر کیفیت، خرابیهای کمی داشته باشد؛ اما اگر در زمان خرابی باعث آسیب جدی به انسان، تجهیزات یا محیط زیست شود، نمیتوان آن را یک سیستم ایمن دانست.
به زبان ساده:
ممکن است سیستم شما خراب شود، اما طراحی باید بهگونهای باشد که خرابی آن، خطر غیرقابلقبول ایجاد نکند.
IEC 61508 یکی از مهمترین استانداردهای ایمنی عملکردی برای کاربردهای صنعتی است.
این استاندارد بر دو مفهوم اساسی تکیه دارد:
چرخه عمر ایمنی، تمام مراحل طراحی، توسعه، تست، بهرهبرداری و نگهداری یک سیستم را پوشش میدهد.
SIL نیز مشخص میکند که سیستم تا چه سطحی باید در برابر خرابیهای خطرناک مقاوم باشد. امروزه بسیاری از سازندگان تراشه، میکروکنترلرهایی با قابلیتها و مستندات مرتبط با SIL 2 و SIL 3 عرضه میکنند. این محصولات معمولاً دارای ویژگیهایی مانند ECC، Watchdog مستقل، واحدهای تشخیص خطا، Lockstep، کنترل حافظه و مکانیزمهای نظارت داخلی هستند.
استفاده از چنین میکروکنترلرهایی میتواند هزینه توسعه را کاهش دهد و پیادهسازی سیستمهای ایمن را سادهتر کند؛ اما باید توجه داشت که داشتن یک MCU دارای قابلیتهای ایمنی، بهتنهایی به معنی ایمنبودن کل محصول نیست. طراح باید مستندات ایمنی تراشه، Safety Manual، محدودیتهای کاربرد، روشهای تست و الزامات پیادهسازی را بهدقت بررسی کند. همچنین استفاده از ابزارهای نرمافزاری، کتابخانههای تأییدشده، تستهای تزریق خطا و مستندسازی دقیق، نقش مهمی در رسیدن به یک طراحی قابلاعتماد دارند.
در بخشهای بعدی این مقاله، اصول عملی پیادهسازی ایمنی عملکردی، محصولات و راهکارهای سازندگان مختلف تراشه، اسناد پیشنهادی و برخی استانداردها و ضوابط ملی و بینالمللی را بررسی خواهیم کرد.
ادامه دارد!
دایدالوس هستم... عاشق خلاقیت و نو آوری.
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.