موضوع مقاله: تکنولوژی SoC و کاربرد آن در PLC
چکیده :
پیشرفت تکنولوژی و نیاز صنعت بهسرعت، کیفیت و دقت بالا، باعث برجسته شدن نقش الکترونیک در این زمینه شده است. در این راستا و برای رسیدن به این اهداف، طرحها و ایدههای جدید در لبه تکنولوژی بکار گرفته شده است. دراین بین شرکتهای تولید کننده سیستمهای کنترل با دقت و ظرافتی خاص این ابزار قدرتمند را استفاده می کنند و با تغییرات بهینه، آن را به ابزاری مناسب و رقابتی برای اهداف صنعتی تبدیل کرده اند.
موضوع SoC که خلاصه شده System on Chip می باشد از جمله مدرنترین مباحث درزمینه الکترونیک است که شاید تاریخچهای کمتر از 15 سال را دارا میباشد. با توجه به بکارگیری این تکنولوژی توسط شرکت FATEK در PLCهای ساخت این شرکت که در واقع از مزیتهای رقابتی آن نیز می باشد، تصمیم به معرفی SoC در این مقاله نموده ایم.
مقدمه
با افزایش نیازها و پیشرفت تکنولوژی و همزمان نیاز بهسرعت بیشتر برای محاسبات و رسیدن به نتیجه منجر به آن شد که CPUهای معمولی به نظر ناتوان و کند به نظر برسند تقریباً حدود سالهای 1995 پیادهسازی پردازش موازی آغاز شد و با توجه به موفقیتهای که به دست آورد کلید محاسبات سریع و دقیق در آینده به شمار میآمد ولی مشکل اینجا بود که CPUهای معمول نمیتوانستند این کار را انجام دهند زیرا که بستر پیادهسازی آنها کاملاً برای اجرای دستورات بهصورت ترتیبی بود و اصلاً قابلیت اجرای فرامین بهصورت موازی را نداشت و اصلاً قرار نبود که موازی پیادهسازی شود و این موضوع اصلاً برای آینده ساخت پیشبینینشده بود با تدوین تئوری محاسبات موازی و ایضاً افزایش هستههای محاسباتی که کاربردهای خاص و ویژه داشتند و برای موارد ویژه طراحیشده بودند کاملاً مشخصشده که CPUها با تکنولوژی آن زمان قادر به پاسخگویی به این خواسته نیستند و عملاً غیرممکن است که در سطح CHIP اینچنین کاری را نیز انجام داد.
CPU چیست؟
CPU یا Central Processor Unit درواقع واحد پردازش اصلی هر کامپیوتر است. کامپیوترها یا ابزارهایی که نیاز به انجام امور محاسباتی دارند، بدون CPU قادر به انجام هیچ کاری نیستند. CPU اطلاعات را از حافظه دریافت نموده، سپس الگوریتمهای مختلف را در قالب ضرب و جمع یا عملیاتهای منطقی مانند and یا or یا not را بر روی آنها اعمال کرده و درنهایت محتوایی خروجی را ایجاد میکنند. هرچه پردازنده قویتر باشد، قادر به پردازش حجم بیشتری از اطلاعات خواهد بود و درنتیجه سرعت سیستم نیز بالاتر خواهد رفت اما بالاتر رفتن فرکانس واقعاً کلید حل مشکلات نیست زیرا را که فرکانس کاری CPU از یک حدی بالاتر نمیتواند برود و از حدی به بعد دیگر تولید آن بهصرفه نمیباشد.
در تصویر زیر دو معماری مشهور برای پیادهسازی و ساخت CPU ها را میبینید همانطور که در تصویر زیر مشخص است همه دیتا میبایست از یک BUS عبور کند تا از مبدأ به مقصد خود برسد و اصولاً به علت محدودیت، واحدهای مختلف زیادی در این نوع پیادهسازی وجود ندارد بلکه فقط واحدهای پایه مثل عملهای جمع و تمام اعمال منطقی و… را شامل میشود که ازنظر پیادهسازی عملاً همهچیز میبایست بهصورت نرمافزاری پیادهسازی شود در حقیقت اگر شما قصد داشته باشید که عمل ضرب را انجام دهید میبایست این عمل را با استفاده از جمع پیادهسازی کنید و یا حتی تقسیم نیز وضعیت بدتری به نسبت ضرب خواهد داشت که مدتزمان اجرای برنامه و کیفیت کار را افزایش میدهد همچنین در پیادهسازی عمل تقسیم در شرایطی میتوان با خطا همراه باشد و با توجه به اینکه محاسبه تقسیم و ممیز شناور پیادهسازی آن بر روی سختافزار غیرممکن است و نیاز به پیادهسازی نرمافزاری دارد که خود چالشی خاص خود را دارد.
همانطور که در تصویر مشخص است واحدهای مختلف برای ارتباط با یکدیگر از یک گذرگاه استفاده میکنند خصوصاً که وجود یک گذرگاه محدودیتهای ویژهای را برای سرعت ایجاد میکند و با افزایش واحد (نه دستورات و فقط افزایش واحدهای محاسباتی) خود این BUS عامل اصلی کاهش سرعت میشود همین وجود BUS باعث میشود که واحدهای محاسباتی کاهش یابند و قدرت اجرای سیستم بسیار کاهش یابد، اصلاً نیاز وجود سرعتبالا در محاسبات و دقیقتر شدن است که در CPUها معمولی امکانپذیر نیست در حقیقت نیاز عمده وجود واحدهای پردازشی جداگانه و انجام اعمال پردازش در حداقل زمان ممکن است.
بههرحال با پیشرفت تکنولوژی و نیاز بهسرعت و همچنین پیادهسازی واحدهای محاسباتی مختلف برای انجام امور ویژه واحدهای پردازشی ویژه معرفی شدند که میتوان به DSPchipها اشاره کرد این پردازندهها اعمالی چون ضرب و واحدهای محاسباتی که در بحث پردازش سیگنال موردنیاز است را پیادهسازی کردند و ازنظر سرعت عمل بسیار مفید و حتی در مصرف توان نیز صرفهجویی بسیار شده بود ولی نیازهای در حال گسترش بود و نیاز به واحدهای محاسباتی مختلف بیشتر میشد و حتی برای هر فرآیندی نیز نیاز به یک پردازنده خاص آن کار احساس میشد دیگر زمان نیاز به پردازندههای چندهستهای ویژه فرآیند خاص احساس میشود و هر فرآیند بر اساس حساسیت دقت و پیادهسازی دستهبندیشده و پردازنده آن معرفی شد ولی دراینبین نیز پردازندههای مثل ARM نیز برای استفاده عمومی و عامه و نه ویژه در شرایط حساس معرفی شدند.
تصویر 1. معماریهای هاروارد و نیومن برای ساختار یک CPU
نیاز به واحدهای محاسباتی ویژه منباب مثال پیادهسازی شمارندههای سرعتبالا (که درصورتیکه بهصورت نرمافزاری در سیکل برنامه پیاده شود دچار اختلال و خطای فاحش میشود) یا واحد ضرب کننده و محاسبات خاص مبحثی را معرفی کرد به نام SOC، در حقیقت SOC پیادهسازی تعداد زیادی واحد محاسباتی و miniCPU است که جداگانه فرآیند پردازش دیتای را انجام میدهند و در موارد لازم با یکدیگر ارتباط میگیرند و دیتا لازمه را بهصورت مستقیم با یکدیگر منتقل میکنند.
SoC چیست؟
پیادهسازی یک سیستم بر روی یک چیپ یا SoC درواقع یک مدار مجتمع یا IC است که قطعات یک کامپیوتر کامل یا یک سیستم الکتریکی را در یک تراشه جایداده است SoC در حقیقت پیادهسازی هر آنچه بر اساس فرآیند موردنیاز است بر روی یک چیپ میباشد، پیش از SoCهای نیاز بود که تمام قطعات بهصورت جداگانه بر روی یک برد پیادهسازی و لحیمکاری شوند که محدودیتهای چون سرعت، نویزی پذیر و بزرگ شدن محصول نهایی میشد ولی با توجه به فرآیند کافی است که تمام نیازهای پردازش را یکجا کرد و آن را در یک برد پیادهسازی کرد فرض کنید قرار است که میخواهید یک سروو موتور را درایو کنی و همزمان نیز در سیکلهای مشخصی با توجه به شرایط ورودیها یک وقفه را نیز اعمال کنید هنگامیکه در حال ارسال پالس برای سروو موتور درصورتیکه همزمان وقفهای اتفاق بیفتد و این وقفه از حد زمانی طولانی شود چه اتفاقی برای سیستم ارسال پالس میافتد یا مثال دیگری قرار است که تعداد 40 اینورتر را بر روی شبکهای کنترل کنید اگر قرار باشد شبکه سریال که بهخودیخود کند است با سیکل تایم CPU درگیر شود سرعت ارسال و دریافت اطلاعات در شبکه چقدر اوضاعش وخیمتر میشود اینهمه مثالهای از پیادهسازی بر بستر ترتیبی و نوبتی CPUهاست حال فرض کنید که همه این واحدهای جداگانه با یکدیگر شروع به فعالیت کنند یعنی بهصورت موازی و بدونِ تداخل با یکدیگر و یک واحد مرکز نیز وجود داشته باشد که براساس برنامه نوشته بر روی خود شروع به مدیریت این واحدها کنید قرار است سروو موتورهای پالسهای با فرکانس 1 مگاهرتز را دریافت کند و وقفهها نیز در صورت وقوع، آنی پاسخ داده شود و این پاسخ موجب اختلال در عملکرد پالسهای فرکانس بالا نشود، یا در مثال شبکه بجای نوشتن تعداد زیادی خط که سیکل تایم CPU را درگیر کند و کندی بیشتر را برای برنامه شما موجب شود کافی است که یک تابع فقط اطلاعات لازم را برای واحد موردنظر ارسال کند و آن واحد همهای امور را انجام دهد.
در تصویر زیر یک SoC تجاری را مشاهده میکنید که برای کاربردهای عمومی طراحیشده است. هدف اصلی از SoC پیادهسازی پردازندههای متناسب با نیاز فرآیند میباشد که در آن خواستههای فرآیند بهصورت کامل برآورده شود.
همانطور که گفته شد SoC اساسش مرتفع کردن نیازهای فرآیند است در این یک سری SoC عمومی نیز ارائهشده که میتواند به پردازندههای ARM اشاره کرد که این پردازندهها فقط برای امور عمومی و تقریباً تجاری قابلیت بهرهبرداری دارند ولی در برای امور و فرآیندهای خاص مانند مخابراتی، صنعتی و نظامی نیاز به پردازندههای خاص با SoCهای خاص میباشد تا نیازهای آنها مرتفع شود که در ادامه کاربرد SoC را در صنعت برای شما تشریح میکنیم.
SoC در صنعت
نیازهای صنعت بسیار متنوع هستند و راهاندازی یک فرآیند نیاز به زمانبندی دقیق و عملکرد صحیح دارد که نباید هیچی اختلالی منجر به فاجعه شود و هزینههای گزافی را به صنعت اعمال کند سالهای در صنعت با CPUهای ترتیبی جلو برده شد ولی امروزه نیاز بهسرعت و دقت بیشتر محک سیستمهای امروزی است و میبایست قابلیتهای خود را علاوه بر شرایط سخت صنعتی با سرعت و دقت بیشتر به نمایش بگذارند دراینبین راهحل کلیدی مناسب برای دسترسی به این قابلیتها استفاده از تکنولوژی SoC میباشد بر این منوال که هر قسمت از فرایند در یک واحد جداگانه ایجاد شود و جداگانه فرآیند را جلو ببرد و درنهایت یک سیستم بر روی آن مدیریت را اعمال کند راهکاری که کمپانی FATEK در طراحی جیپهای خود پیشگرفته است در این طراحی چیپهای براساس تکنولوژی و تحقیقات انجامگرفته در صنعت انجامشده است و براساس نیاز و حساسیت هر قسمت یک سختافزار برای آن در نظر گرفتهشده است در حقیقت نقاط حساسی که PLC نیاز است با آن درگیری شدید و توام با اختلال را داشته باشد آن قسمت در یک سختافزار جداگانه پیادهسازی شده است و فقط از طریق واحد مرکزی مدیریت میشود این موضوع باعث میشود که اولاً پردازش در سیستم درگیر قسمتهای پرهزینه نباشد و فقط امور عمومی و مدیریت را بر عهده داشته باشد از طرفی امکان اختلال و عدم دقت را بسیار کاهش میدهد.
تصویر 3. چیپ انحصاری FATEK مخصوص PLCهای این برند
اگر در پروژهای نیاز باشد که یک سروو بهصورت Close Loop کنترل شود 3 عملیات اصلی نیاز اولین عملیات پردازش عمومی برنامه اصلی شمارش پالسهای پرسرعت انکودر و ارسال پالس برای درایو سروو موتور واحد پردازنده است شمارش پالسهای ورودی پرسرعت بهخودیخود سرعت سیستم را بهشدت کاهش میدهد و همین مورد میتواند منجر به اختلال در فرآیند برنامه عمومی شود حال حتی اگر اولویتبندی نیز صورت پذیرد اولویت کدام قسمت بر دیگری بیشتر است ورودی پرسرعت میتواند بر خروجی پالس تأثیر بگذارد و عکس نیز مطمئناً بر همین شکل است و هرکدام که اولویت داشته باشد فرآیند عمومی برنامه را نیز تحت تأثیر گذاشته و عملاً فرآیند اجرای برنامه دچار اختلال میشود چیزی که در CPU تجاری و عمومی مثل ARM که در بعضی برندهای بر روی PLC نصب بشده است رخ میدهد ولی کمپانی FATEK با رعایت و واقف بودن بر این مسائل طراحی چیپ را بهشدت رعایت کرده است و بر این اساس هر بخش به واحد و سختافزار جداگانه محول شده است که منجر بهراحتی کاربر در برنامهنویسی شده است در حقیقت برنامهنویس در برنامه خود فرآیند مدیریت این واحدهای سختافزاری را مشخص میکند در مثال قبل با قرار دادن فقط دو تابع و با حداقل سیکل زمانی میتوان هر دو واحد شمارنده و ارسال پالس را مدیریت کرد بدون اینکه در هیچکدام اختلالی ایجاد شود در حقیقت توابعی که در قسمت شمارندههای پرسرعت معرفیشدهاند یا خروجی پالس فقط خواندن و نوشتن قسمتی از حافظه را دارند و فقط عملاً در هیچکدام از قسمتهای تولید و یا خواندن پالس کار خاصی انجام نمیدهند این امر همگی به سختافزار آن عملیات محول شده است.
تصویر 4. ساختار قسمتهای سختافزار
ساختار SoC علاوه بر مزیتهای افزایش سرعت پردازش مزایایی چون کاهش نویز پذیری و کاهش شدید مصرف توان را در پی داشته است که توانمندی استفاده در سیستمهای پورتال را به این PLC اضافه کرده است کاهش مصرف درعینحال قدرتمند از مزایایی Chipهای تولید کمپانی FATEK میباشد که انحصاری برای تولیدات خود مورداستفاده قرار میدهد در حقیقت این کمپانی FATEK اولین کمپانی است که برای فرآیندهای صنعتی پردازندهای ویژهای را در نظر گرفته است و طراحی آن را از پایه بهمنظور صنعت ایجاد کرده است.