اصول طلایی مدارهای میکروکنترلری صنعتی – قسمت 2
طراحی مدارهای مبتنی بر میکروکنترلر برای محیطهای صنعتی با طراحی مدارهای آموزشی یا مصرفی تفاوت جدی دارد. در محیط صنعتی، مدار فقط نباید «کار کند»، بلکه باید در برابر نویز، تغییرات ولتاژ، خطاهای انسانی، شرایط محیطی سخت، قطع و وصل تغذیه، بارهای القایی، تخلیه الکترواستاتیکی و خطاهای ارتباطی پایدار بماند. بنابراین طراحی یک سیستم صنعتی موفق، ترکیبی از طراحی صحیح سختافزار، نرمافزار، حفاظت الکتریکی، EMC، تست و مستندسازی دقیق است.
در کاربرد صنعتی، نرمافزار باید طوری نوشته شود که سیستم در برابر خطاها مقاوم باشد. استفاده از Delayهای طولانی، حلقههای Blocking و ساختارهای نامنظم میتواند باعث کاهش قابلیت اطمینان شود. بهتر است نرمافزار بر اساس State Machine، زمانبندی غیرمسدودکننده و ساختار ماژولار طراحی شود. Watchdog Timer باید فعال باشد، اما نه به عنوان راهحل مشکلات نرمافزاری، بلکه به عنوان آخرین لایه حفاظت. برنامه باید فقط زمانی Watchdog را Reset کند که بخشهای اصلی سیستم واقعاً سالم کار کرده باشند. اگر برنامه هنگ کند، Watchdog باید سیستم را ریست کند. همچنین باید برای خطاهای ارتباطی، قطع سنسور، مقادیر غیرمجاز، خرابی EEPROM، خطای CRC، قطع تغذیه و وضعیتهای غیرمنتظره برنامهریزی شود. سیستم صنعتی نباید با دیدن یک خطا وارد رفتار نامعلوم شود؛ باید به حالت ایمن یا Safe State برود. برای مثال، اگر ارتباط با سنسور دما قطع شد، خروجی هیتر نباید روشن باقی بماند. اگر ارتباط RS485 قطع شد، خروجیهای خطرناک باید خاموش شوند یا در حالت از پیش تعریفشده قرار بگیرند.
در بسیاری از سیستمهای صنعتی لازم است پارامترها، تنظیمات، شمارندهها یا وضعیتها در حافظه غیر فرار ذخیره شوند. استفاده از EEPROM داخلی، Flash، FRAM، RTC RAM یا حافظه خارجی باید با دقت انجام شود. EEPROM تعداد سیکل نوشتن محدودی دارد. بنابراین نباید در هر حلقه برنامه یا با فواصل بسیار کوتاه بدون مدیریت صحیح روی آن نوشت. بهتر است از تکنیکهایی مانند Wear Leveling، ذخیرهسازی دورهای، بررسی تغییر مقدار قبل از نوشتن و CRC برای اعتبارسنجی دادهها استفاده شود. برای دادههای مهم، بهتر است دو نسخه از تنظیمات ذخیره شود تا اگر یکی خراب شد، نسخه سالم قابل بازیابی باشد. همچنین بعد از Reset، برنامه باید صحت دادهها را بررسی کند و در صورت خرابی، مقدار پیشفرض امن را بارگذاری کند.
رفتار سیستم هنگام روشن شدن، قطع برق، افت ولتاژ یا Reset بسیار مهم است. خروجیها نباید در زمان Boot به صورت ناخواسته فعال شوند. پایههایی که به رله، MOSFET یا خروجی صنعتی متصل هستند باید Pull-up یا Pull-down مناسب داشته باشند تا قبل از راهاندازی نرمافزار در وضعیت امن باقی بمانند. برنامه باید در ابتدای اجرا همه خروجیها را به حالت امن ببرد، سپس ورودیها، ارتباطات، تایمرها، ADC و سایر بخشها را مقداردهی اولیه کند. اگر سیستم از بوتلودر استفاده میکند، باید بررسی شود که در زمان اجرای بوتلودر پایهها چه وضعیتی دارند. همچنین باید مشخص شود پس از قطع و وصل برق، سیستم از ابتدا شروع کند یا وضعیت قبلی را بازیابی کند. این موضوع در ماشینآلات صنعتی اهمیت ایمنی دارد. در بسیاری از موارد، بهتر است خروجیهای خطرناک پس از روشن شدن مجدد به صورت خودکار فعال نشوند و نیاز به تأیید کاربر یا شرایط ایمن داشته باشند.
ارتباطات در سیستمهای صنعتی باید پایدار، قابل تشخیص خطا و مقاوم در برابر نویز باشد. پروتکلهایی مانند RS485، CAN، Modbus RTU، Ethernet، Modbus TCP و گاهی IO-Link در صنعت رایج هستند. در RS485 باید به ترمینیشن، Biasing، توپولوژی باس، طول کابل، سرعت Baudrate، ایزولاسیون و حفاظت ESD توجه شود. در CAN نیز ترمینیشن 120Ω در دو انتهای باس، طراحی صحیح مسیر دیفرانسیل و انتخاب Transceiver مناسب اهمیت زیادی دارد. در سطح نرمافزار، فقط ارسال و دریافت داده کافی نیست. باید Timeout، CRC، شماره فریم، بررسی خطا، Retry، تشخیص قطع ارتباط و مدیریت وضعیت ارتباطی طراحی شود. اگر ارتباط قطع شد، سیستم باید بداند چه رفتاری انجام دهد.
در کاربرد صنعتی، کانکتور ضعیف میتواند کل محصول را غیرقابل اعتماد کند. کانکتورها باید متناسب با جریان، ولتاژ، تعداد دفعات اتصال، لرزش، شرایط محیطی و استانداردهای صنعتی انتخاب شوند. ترمینالهای پیچی، Spring Terminal، کانکتورهای قفلدار و کانکتورهای صنعتی مانند M8 و M12 گزینههای رایج هستند. همچنین باید به فاصله بین کانکتورهای قدرت و سیگنال، جهت نصب، دسترسی کاربر، برچسبگذاری، خطای اتصال و استحکام مکانیکی توجه شود. اگر کاربر ممکن است سیم را اشتباه وصل کند، طراحی باید تا حد امکان در برابر این خطا مقاوم باشد. PCB نیز باید از نظر مکانیکی درست طراحی شود. محل پیچها، فاصله از لبه برد، تحمل لرزش، ضخامت PCB، فاصله قطعات گرم از قطعات حساس و تهویه حرارتی اهمیت زیادی دارد.
در محیط صنعتی ممکن است دمای داخل تابلو بالا باشد. بنابراین نباید طراحی فقط در دمای اتاق تست شود. قطعاتی مانند رگولاتورها، MOSFETها، مقاومتهای توان، رلهها و دیودهای حفاظتی میتوانند حرارت قابل توجهی تولید کنند. باید توان تلفاتی هر قطعه محاسبه شود. برای رگولاتور خطی، تلفات برابر است با اختلاف ولتاژ ورودی و خروجی ضربدر جریان. برای MOSFET، تلفات هدایتی تقریباً برابر است با I²RDS(on). برای مقاومتهای شنت یا سری نیز توان برابر I²R یا V²/R است. در PCB باید سطح مس کافی برای دفع حرارت، Via حرارتی، فاصله مناسب قطعات و در صورت نیاز هیتسینک در نظر گرفته شود. قطعهای که روی کاغذ توان کافی دارد، ممکن است روی PCB کوچک و بدون مس کافی بیش از حد داغ شود.
یک محصول صنعتی باید قابل تست و تولید باشد. بنابراین از همان ابتدای طراحی باید Test Point برای تغذیهها، GND، Reset، UART، SWD/JTAG/ISP، خطوط ارتباطی و سیگنالهای مهم در نظر گرفته شود. برای تولید، باید برنامهریزی شود که میکروکنترلر چگونه پروگرام میشود، شماره سریال چگونه وارد میشود، تست عملکردی چگونه انجام میشود و خطاها چگونه ثبت میشوند. طراحی باید طوری باشد که مونتاژ، تست و تعمیر آن زمان زیادی نگیرد. همچنین بهتر است LEDهای وضعیت، پورت Debug یا لاگ نرمافزاری برای تشخیص سریع خطاها وجود داشته باشد. البته این امکانات باید به گونهای طراحی شوند که در محصول نهایی باعث افزایش نویز یا کاهش امنیت نشوند.
در پروژههای صنعتی، مستندسازی بخشی از خود طراحی است. شماتیک، PCB، BOM، Firmware، نسخه نرمافزار، تنظیمات فیوزها، روش پروگرام، نقشه سیمکشی، پروتکل ارتباطی و دستورالعمل تست باید دقیق ثبت شوند. اگر بعد از چند ماه یا چند سال محصول نیاز به اصلاح داشته باشد، نبود مستندات باعث اتلاف زمان و هزینه زیاد میشود. همچنین اگر قرار است محصول تولید شود، BOM باید شامل قطعات جایگزین، پکیج، ولتاژ، توان، تلرانس و شماره قطعه دقیق باشد. مدیریت نسخه نیز اهمیت زیادی دارد. باید مشخص باشد هر برد با کدام نسخه سختافزار و کدام نسخه Firmware تولید شده است.
طراحی میکروکنترلر برای کاربرد صنعتی فقط انتخاب یک MCU و نوشتن چند خط برنامه نیست. یک طراحی صنعتی موفق باید از نظر تغذیه، حفاظت ورودی و خروجی، EMC، زمین، ارتباطات، ایزولاسیون، نرمافزار، مدیریت خطا، حرارت، تست و مستندسازی به صورت کامل بررسی شود. اصل کلیدی این است که سیستم باید در شرایط واقعی صنعت پایدار بماند، نه فقط روی میز آزمایشگاه. اگر از ابتدا طراحی با نگاه صنعتی انجام شود، محصول نهایی قابل اعتمادتر، قابل تولیدتر، قابل تعمیرتر و از نظر تجاری موفقتر خواهد بود.

دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.