1 مقدمه
میکروکنترلرها به طور فزایندهای در دستگاههای کنترل خودکار، سیستمهای حفاظتی یکپارچه مبتنی بر ریزپردازنده{0}}برای شبکههای برق، و سایر زمینههای کنترل اتوماسیون صنعتی استفاده میشوند و پیچیدگی این دستگاهها به طور پیوسته در حال افزایش است. برای رسیدگی به خواستههای{2}}زمان واقعی و چند{3}}هدفهای توسعه، مدل توسعهدهنده واحد-CPU، تک-با یک رویکرد مشترک شامل چندین CPU از انواع مختلف و چندین توسعهدهنده جایگزین میشود. این پارادایم توسعه جدید یک چالش حیاتی را معرفی می کند: استانداردسازی سخت افزار و نرم افزار برای تبادل اطلاعات بین CPU ها در طول پیاده سازی. این استانداردسازی برای پذیرش موفقیت آمیز این مدل جدید بسیار مهم است. در میان روش های ارتباطی متعدد، پروتکل ارتباطی سریال مبتنی بر UART{9}} RS-485 به دلیل سیم کشی ساده، قابلیت اطمینان بالا و توانایی پشتیبانی از چندین CPU به طور گسترده ای مورد استفاده قرار گرفته است. در مورد پروتکل های ارتباطی نرم افزار، پروتکل Modbus به دلیل ماهیت جهانی و نرم افزار اشکال زدایی بالغ، مزایای قابل توجهی را برای کاربران ارائه می دهد. بنابراین، در طول توسعه دستگاه جدید حفاظت جامع موتور، روش ارتباط سریال RS-485 و پروتکل ارتباطی Modbus برای دستیابی به داده ها و کنترل تبادل اطلاعات فرمان بین چندین CPU اتخاذ شد. برای افزایش کارایی و هماهنگی ارتباط سریال، نویسنده اقدامات متعددی را در معماری سخت افزاری و نرم افزاری مکانیسم ارتباطی اجرا کرد و به نتایج عالی دست یافت. در طول مرحله اشکالزدایی ارتباطات سیستم، روشی به کار گرفته شد که در آن هر ماژول CPU ابتدا با نرمافزار تست استاندارد Modbus قبل از انجام اشکالزدایی اتصال متقابل ارتباط برقرار میکرد که به طور قابلتوجهی کارایی توسعه مشترک را بهبود میبخشد. تمرین ثابت کرده است که این فلسفه طراحی ساختار سیستم را ساده می کند و در عین حال کارایی عملیاتی و قابلیت اطمینان دستگاه را تا حد زیادی افزایش می دهد.
2 ویژگی دستگاه حفاظت جامع موتور
فراتر از عملکردهای حفاظتی جامع، دستگاه حفاظت موتور قابلیت های اندازه گیری، کنترل از راه دور و ارتباطات را یکپارچه می کند. صفحه نمایش بزرگ-نمایشگر ال سی دی با حروف چینی آن یک رابط کاربری-پسند را قادر می سازد. با استفاده از ارتباط گذرگاه CAN با میزبان مانیتورینگ، یک زیرسیستم را در یک سیستم اتوماسیون پست توزیع شده سلسله مراتبی تشکیل می دهد. برای بهینهسازی عملکرد سیستم برای الزامات چند کار-ش، یک معماری چند-CPU اتخاذ شد. یک CPU نمونه برداری و انتقال دوره ای پالس را انجام می دهد. ماژول اصلی CPU پردازش داده ها، محاسبه پارامترهای الکتریکی، تشخیص خطا و عملیات سوئیچینگ را مدیریت می کند. در حالی که CPU ماژول برد بر تعامل انسان-ماشین نظارت می کند و ارتباط با ماژول اصلی حفاظت و میزبان نظارت را تسهیل می کند. هر ماژول CPU وظایف مشخصی دارد که توسعه مشارکتی توسط چندین مهندس را در طول پیاده سازی تسهیل می کند. ارتباطات سریال CPU اصلی و CPU پنل را به هم متصل میکند و تعامل انسان{11}}ماشین را امکانپذیر میکند و بنابراین موقعیتی حیاتی را اشغال میکند. ایجاد یک مکانیسم ارتباط منطقی هسته اصلی بخش ارتباط سریال است که هماهنگی ارتباط و کارایی اشکال زدایی را در مراحل بعدی توسعه سیستم تعیین می کند.
3 مقدمه ای بر مکانیسم های ارتباطی
3.1 طراحی سخت افزاری مکانیزم ارتباطی
مکانیسم ارتباطی پیشنهادی برای این سیستم با هدف کارایی و قابلیت اطمینان بالا است. RS-485 از ساختار نیم-دوبلکس استفاده میکند، که اغلب در کاربردهای میدانی عملیتر از تمام دوبلکس است. در اینجا، یک اتصال ساده با استفاده از تنها دو خط سیگنال اتخاذ شده است. نمودار مدار رابط سیستم در شکل 1 نشان داده شده است. سطوح منطقی TTL خروجی توسط میکروکنترلر 8051 در ماژول حفاظتی اصلی به صورت اپتیکال ایزوله شده است، سپس توسط تراشه MAX485 به سطوح RS-495 تبدیل می شود. متعاقباً، تراشه MAX485 روی ماژول پنل، اینها را به سطوح منطقی TTL برای خواندن توسط میکروکنترلر 8031 تبدیل میکند. در سمت میکروکنترلر 8051، پین P2.7 پورت ورودی/خروجی موازی 2، پین فعال کننده ورودی MAX RE و پایه فعال خروجی DE را کنترل می کند. همانطور که در شکل 1 نشان داده شده است، زمانی که P2.7 سطح بالایی را خروجی می دهد، RE فعال می شود و به سمت میکروکنترلر اجازه می دهد تا داده ها را دریافت کند. وقتی P2.7 سطح پایینی را خروجی میدهد، DE فعال میشود و به سمت میکروکنترلر اجازه میدهد دادهها را منتقل کند. این رویکرد از دست دادن داده ها به دلیل همپوشانی ناشی از انتقال کور جلوگیری می کند و کیفیت ارتباط بالا و سرعت انتقال قابل اعتماد را تضمین می کند.

3.2 پروتکل ارتباطی
برای اطمینان از انتقال دقیق داده ها بین دو ماژول در دستگاه حفاظتی، مجموعه ای از مشخصات حاکم بر انتقال اطلاعات-شامل حالت های انتقال، قالب های داده و محتوا{1}} ضروری است. این پروتکل یا پروتکل ارتباطی را تشکیل می دهد. بدون نرمافزار اشکالزدایی بالغ و در دسترس، ماژول اصلی CPU اساساً بهعنوان یک جعبه سیاه عمل میکند که منجر به غلبه بر چالشهای متعدد و دشوار-در طول آزمایش یکپارچهسازی سیستم میشود. بنابراین، پروتکل ارتباطی Modbus که به طور گسترده پذیرفته شده است، انتخاب و ساده شده است تا با نیازهای خاص دستگاه مطابقت داشته باشد، و ارتباط بین ماژولها را با اثربخشی اثبات شده ممکن میسازد. Modbus از یک مدل ارتباطی اصلی-استفاده میکند. Master ابتدا یک فرمان درخواست ارتباط را برای Slave ارسال می کند. سپس Slave با دادههای مبتنی بر کد تابع در دستور درخواست به master پاسخ میدهد. هر برده دارای یک آدرس منحصر به فرد است. هر دو فریم درخواست ارسال شده توسط master و فریم پاسخ ارسال شده توسط slave با آدرس Slave شروع می شوند. برده ها فقط دستورات خطاب به خودشان را می خوانند و پیام هایی که با آدرس های برده دیگر شروع می شوند را نادیده می گیرند. این عملکرد با استفاده از حالت 2 یا حالت 3 پورت سریال 8051 پیاده سازی می شود. این مدل{19}}و{20}}ارتباطاتی به طور قابل توجهی دقت ارتباط را افزایش می دهد. حالت انتقال RTU Modbus در این دستگاه پذیرفته شده است.
4 اقدام برای افزایش قابلیت اطمینان ارتباطات
دو بایت پایانی یک پیام Modbus به عنوان بایت جمع کنترلی عمل می کند. ارتباطات RTU از بررسی افزونگی چرخه ای CRC-16 برای تشخیص خطا استفاده می کند. مکانیسم رمزگذاری/رمزگشایی آن نسبتاً ساده با نرخ خطای کم است که از طریق روش های محاسباتی یا برنامه نویسی قابل دستیابی است. چندین رویکرد در زیر بیان شده است:
4.1 الگوریتم پایه (محاسبه دستی)
با استفاده از CRC16-CCITT به عنوان مثال: جمع کنترلی CRC 16 بیت است و چند جمله ای تولید کننده 17 بیت است. فرض کنید جریان داده 4 بایت است: BYTE، BYTE، BYTE، BYTE[0];
جریان داده را 16 بیت به سمت چپ تغییر دهید، به طور موثر آن را با ضریب 256×256 گسترش دهید. سپس با استفاده از تقسیم غیر قرضی (معادل XOR بیتی) تقسیم را با چند جمله ای مولد 0x11021 انجام دهید. باقیمانده حاصل جمع کنترلی CRC است. جریان داده ارسالی شامل 6 بایت است: BYTE، BYTE، BYTE، BYTE[0]، CRC، CRC[0].
4.2 الگوریتم کامپیوتر 1 (الگوریتم نوع بیت-)
1) 16 بیت بالایی (BYTE، BYTE) جریان داده گسترش یافته (6 بایت) را در یک ثبات 16 بیتی قرار دهید.
2) اگر مهم ترین بیت رجیستر 1 باشد، رجیستر را یک بیت به سمت چپ جابجا کنید (کمترین بیت را از بایت بعدی بدست آورید)، سپس یک عملیات XOR را با شکل ساده شده چند جمله ای مولد انجام دهید. در غیر این صورت، به سادگی رجیستر را با یک بیت به سمت چپ تغییر دهید (به دست آوردن کمترین بیت از بایت بعدی).
3) مرحله 2 را تکرار کنید تا کل جریان داده (6 بایت) به رجیستر منتقل شود.
4) مقدار موجود در رجیستر، CRC checksum CRC، CRC[0] است.
4.3 الگوریتم کامپیوتر 2 (بایت-الگوریتم نوع) (256^n نشان دهنده 256 افزایش به توان n است)
بایت{0}}جریان داده مرتب شده را به عنوان یک چند جمله ای ریاضی نمایش دهید. اجازه دهید جریان داده BYTE[n] BYTE[n-1] BYTE[n-2] باشد ... BYTE[0] به عنوان عبارت ریاضی نشان داده می شود
BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0]، که در آن "+" نشان دهنده عملیات XOR است. بگذارید چند جمله ای مولد G17 (17 بیتی) باشد، سپس کد CRC CRC16 است.
CRC16=(BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0]) × 256^2 / G17
این شامل جابجایی جریان داده به سمت چپ با 16 بیت و سپس تقسیم بر چند جمله ای ژنراتور G17 است.
اشتقاق نشان می دهد که کد بررسی CRC برای BYTE[n-1] با نتیجه XOR 8 بیت بالای کد بررسی CRC Y[n] (YH8[n]) و بایت فعلی BYTE[n-1] برابر است.
الگوریتم نوع بایت-به شرح زیر است:
1) گروه ثبت CRC را به همه "0" (0x0000) راه اندازی کنید.
2) گروه رجیستر CRC را 8 بیت به سمت چپ منتقل کرده و در گروه ثبت CRC ذخیره کنید.
3) یک عملیات XOR بین 8 بیت بالای گروه رجیستر CRC اصلی (8 بیت به سمت راست منتقل شده) و بایت داده را برای به دست آوردن شاخصی که به جدول مقدار اشاره می کند، انجام دهید.
4) یک عملیات XOR بین مقدار جدول نشان داده شده توسط ایندکس و گروه ثبت CRC انجام دهید.
5) نشانگر داده را افزایش دهید. اگر پردازش داده ها کامل نشد، مرحله 2 را تکرار کنید).
6) CRC را دریافت کنید.
5 اقدام برای بهبود کارایی ارتباطات
5.1 ارتباطات جداگانه وظایف دریافت و انتقال
میکروکنترلر 8051 می تواند داده ها را از طریق پورت سریال با استفاده از وقفه ها ارسال و دریافت کند. کنترلر پورت سریال SCON از مقداردهی اولیه و آدرس دهی بیت پشتیبانی می کند. هنگامی که یک درخواست وقفه درگاه سریال رخ می دهد، دو بیت پایینی SCON وقفه های ارسال و دریافت را قفل می کند. هنگامی که CPU داده یا یک کاراکتر را در بافر انتقال SUBF پورت سریال می نویسد (دستورالعمل: MOV SUBF, A) فرستنده شروع به ارسال می کند. پس از تکمیل یک فریم داده، سخت افزار پرچم TI را روی "1" تنظیم می کند، که نشان می دهد پورت سریال درخواست وقفه از CPU برای ارسال فریم داده بعدی دارد. به طور مشابه، اگر گیرنده پورت سریال برای دریافت فعال باشد، پس از دریافت یک فریم از داده، پرچم RI روی 1 تنظیم می شود که نشان می دهد پورت سریال درخواست وقفه از CPU برای خواندن داده ها از بافر داده دریافت می کند.
5.2 کاهش مدت زمان وقفه
از آنجایی که وقفههای متعدد در طراحی معماری نرمافزار به کار میرود، برای اطمینان از عملکرد مطمئن برنامه و به حداقل رساندن احتمال تداخل بین وظایف مختلف، پیادهسازی نرمافزار باید تلاش کند تا وظایف وقفههای مختلف را ساده کرده و زمان اجرای آنها را کوتاه کند. در زیربرنامه وقفه ارتباطی، هنگام ورود به وقفه، کارهای ضروری را انجام دهید، مانند: پاک کردن بیت های وضعیت متناظر در رجیستر کنترل پورت سریال، خواندن کاراکترهای دریافتی یا نوشتن کاراکترهایی که باید از/به بافر ارسال شوند، تعداد کاراکترهای دریافتی یا ارسالی را افزایش دهید و... سپس فوراً از وقفه خارج شوید. سایر وظایف، مانند اعتبارسنجی فریم ها، پاسخ به دستورات فریم دریافتی (تلمتری/فرمان از راه دور)، و آماده سازی فریم های انتقال، باید در برنامه اصلی انجام شوند.
5.3 تشخیص پایان قاب کارآمد برای جلوگیری از رکود ارتباطات
استفاده از تایمر نرمافزاری اختصاصی برای تشخیص انتهای فریم دریافتی، در صورت دریافت ناقص فریم، از طولانی شدن وظایف ارتباطی جلوگیری میکند و در نتیجه دریافت به موقع فریمهای بعدی را تضمین میکند. از آنجایی که فاصله زمانی بین بایت ها در یک فریم بسیار کمتر از فاصله فریم-تا-فریم است، تایمر نرم افزار هر بار که بایت جدیدی دریافت می شود شروع می شود. تایمر روی حداقل فاصله فریم-تا-فریم تنظیم شده است. این فاصله با نرخ های باود مختلف متفاوت است. اگر بایت بعدی قبل از سپری شدن زمان از پیش تعیین شده دریافت شود، نشان دهنده ناقص بودن فریم است و تایمر دوباره راه اندازی می شود. اگر تایمر با موفقیت شمارش معکوس را برای زمان از پیش تعیین شده انجام دهد، شماره وقفه مربوطه را فعال می کند. در زیربرنامه وقفه تایمر، بایت پرچم پایان فریم تنظیم شده است، که نشان می دهد دریافت فریم کامل شده است. پس از اینکه برنامه اصلی تکمیل دریافت فریم را تشخیص داد، یکپارچگی فریم را با تأیید آدرس برده و بایت بررسی افزونگی چرخه ای (CRC) تأیید می کند. اگر به عنوان یک فریم معتبر در نظر گرفته شده برای master تأیید شود، دستور فریم را بر اساس کد عملکرد خود پردازش می کند و برای ارسال یک فریم آماده می شود. هنگامی که Slave پیام نادرستی دریافت می کند، یک فریم خطا را ارسال می کند. اگر پیام دریافتی دارای CRC نادرست باشد، برده ممکن است تصمیم بگیرد که پاسخ ندهد. اگر Master در مدت زمان مشخص شده پاسخی از Slave دریافت نکند، پیام درخواست را مجددا ارسال می کند. اگر چندین ارسال مجدد نتواند پاسخی از Slave دریافت کند، یک نقص ارتباط گزارش می شود.
5.4 تعیین سرعت ارتباط
از آنجایی که همه دستگاه ها در یک شاسی قرار دارند، فاصله بین ماژول ها حداقل است. Modbus بر روی RS485 برای ارتباطات از راه دور کار میکند و نیازی به در نظر گرفتن اثرات فاصله بر نرخ باد را از بین میبرد. علاوه بر این، حالت ارتباط اصلی-از ازدحام خط جلوگیری میکند. بنابراین، از منظر کارایی ارتباط، تا زمانی که نرخ باود تنظیم شده از حداکثر حد نرخ باود تراشه مورد استفاده در ماژول تجاوز نکند، نرخ باود بالاتر باعث تبادل اطلاعات سریعتر و بازده ارتباطی بالاتر می شود. تنظیم نرخ باود دقیقاً برای هر دو طرف ارتباط یکسان باشد، اطمینان حاصل می کند که گیرنده از هر بیت داده در نقطه میانی چرخه بیت نمونه برداری می کند و در نتیجه به ارتباط قابل اعتمادی دست می یابد.
5.5 روش های معقول اشکال زدایی
در حین اشکال زدایی، ابتدا ارتباط بین هر ماژول CPU و میکروکامپیوتر از طریق ماژول تبدیل داده RS485/RS232 را آزمایش کنید. پس از آزمایش فردی موفقیت آمیز، به اشکال زدایی بین ماژول- ادامه دهید، که کارایی کلی اشکال زدایی را به طور قابل توجهی بهبود می بخشد. در طول اشکال زدایی ارتباط ماژول-به-رایانه، رایانه از نرم افزار اشکال زدایی Modbus برای شبیه سازی فرآیند ارتباط استاد استفاده می کند و به طور فعال اطلاعات را از Slave درخواست می کند. این باعث می شود که کل فرآیند دریافت و ارسال شفاف و واضح باشد و امکان حل به موقع مسائل ماژول را فراهم کند. در طول اشکال زدایی مشترک، نرم افزار نظارت اتوبوس داده ها را از هر دو طرف مشاهده می کند تا به سرعت مشکلات را شناسایی و حل کند.
6 نکته نوآوری این مقاله
ابتدا، این مقاله از Modbus، یک استاندارد صنعتی جهانی، در دستگاه حفاظت استفاده می کند. نرم افزار ابزار مورد نیاز را می توان مستقیماً از وب سایت های مربوطه بدون متحمل شدن هزینه های مالکیت معنوی دریافت کرد. دوم، دستگاه حفاظتی چندوظیفهای را پیادهسازی میکند و از پروتکل Modbus برای ایجاد یک مکانیسم اشکالزدایی مشترک معقول بین ماژولهای CPU استفاده میکند که کارایی توسعه سیستم مشترک را تا حد زیادی بهبود میبخشد.




