از آنجایی که آی سی یا چیپ (Chip) که تحت عنوان تراشه نیز شناخته می شود یکی از المانهای اساسی در مدارات الکترونیکی به شمار رفته و تشکیل دهنده ساختار پردازنده مرکزی (CPU) است، باید وظایف خود را برای عملکرد درست سیستم، به خوبی انجام دهد. این شرح وظایف از طریق کدهایی که توسط برنامه نویس نوشته می شوند، به آی سی منتقل شده و دستورات لازم به آن داده شود. در این مقاله قصد داریم شما را با فرایند IC Programming آشنا کرده و اطلاعاتی درباره زبان های مورد استفاده در این فرایند در اختیار شما قرار دهیم.
چیپ یا IC چیست؟
آی سی به مجموعهای از مدارهای الکترونیکی اطلاق می گردد که روی یک صفحهی نازک و کوچکِ مسطح از جنس نیمه رسانا (عموما سیلیکون) ساخته میشود. این مدارات الکترونیکی شامل تعداد بسیار زیادی (امروزه در حد میلیون یا میلیارد) مقاومت، خازن و ترانزیستور هستند که روی این صفحه سیلیکونی ساخته میشوند. هر چیپ چندین ورودی و خروجی دارد؛ از اینرو با پردازش ورودیها، مقادیر خروجی را تولید کرده و در اختیار بخشهای خروجی خود قرار میدهد. از مهمترین قطعات یک کامپیوتر که براساس تکنولوژی IC ساخته شده است میتوان به واحد پردازش مرکزی یا همان سی پی یو اشاره کرد که میلیاردها ترانزیستور را در خود جای داده است.
برنامه نویسی IC به چه معنی است؟
برنامه نویسی آی سی فرآیند انتقال یک برنامه کامپیوتری به مدار مجتمعِ قابل برنامه ریزی است. به عبارتی برنامههای نوشته شده در نرم افزارهای خاصی بعد از کامپایل شدن، از کامپیوتر به IC منتقل میشوند.
آیسیهای قدیمیتر از جمله PROM و EPROM و برخی مدارهای منطقی قابل برنامهریزی (PLD) اولیه معمولاً از طریق گذرگاههای موازی برنامهریزی میشوند. در این روش از بسیاری از پینهای دستگاه استفاده میشود و نیاز به قرار دادن دستگاه در یک پروگرمر (دستگاهی که برنامه نوشته شده را از کامپیوتر به چیپ منتقل میکند) جداگانه است. تراشههای مدرن معمولاً در مدار از طریق یک پروتکل سریال (مانند JTAG) برنامه ریزی میشوند.
چطور می توان برای یک آی سی برنامه نوشت؟
همانطور که می دانید، ICها انواع مختلفی دارند. برخی از آنها خاص منظوره بوده و برای کاربردهای معینی طراحی شدهاند و قابل برنامه ریزی نیستند مانند تقویت کنندهها (Op-amp)، تایمرها و ... و برخی دیگر قابلیت برنامه ریزی دارند. در ادامهی این بخش به منظور درک بهتر لازم است به دو تعریف میکروپروسسور و میکروکنترلر بپردازیم.
با پیشرفتهتر شدن فناوریهای مدارهای مجتمع، ICهایی با عنوان میکروپروسسور (Microprocessor) یا ریز پردازنده ساخته شدند که قادر به انجام عملیات حسابی و منطقی هستند. این آی سیها (میکروپروسسورها) مغز اصلی سیستم بوده و وظیفهی آنها محاسبات، کنترل و اطلاع رسانی به سایر واحدها، جابهجایی اطلاعات و بیتها است. پس همانطور که گفته شد میکروپروسسور تنها دارای واحد پردازشگر مرکزی (CPU) است. اما این آی سیها برای انجام عملیاتشان نیازمند حافظه و دیگر المانها هستند که این واحدها را در داخل خود ندارند.
میکروکنترلر (Microcontroller) یک آی سی VLSI است که علاوه بر داشتن یک میکروپروسسور داخلی، دارای حافظه اصلی (RAM)، حافظه فقط خواندنی (ROM)، تایمر، پورتهای ورودی و خروجی (I/O) و پورت سریال (Serial Port) انواع مبدل ها و … درون خود تراشه است. در واقع یک ریزپردازنده درون میکروکنترلر قرار گرفتهاست که با استفاده از آن میتواند محاسبات منطقی و حسابی را انجام دهد.
میکروکنترلرها انواع مختلفی دارند اما از معروف ترین آنها میتوان به AVR و ARM اشاره کرد.
برای برنامه نویسی میکروکنترلرها نیاز است تا از نرم افزارهای مناسبی براي نوشتن برنامه استفاده شود. نرم افزارهایی تحت عنوان IDE به معنی محیط توسعۀ یکپارچه (Integrated Development Environment) وجود دارند که شامل محیط ویرایشگر کد، کامپایلر، نرم افزار پروگرمر، رابط گرافیکی و ابزارهایی برای توسعه نرم افزار میکروکنترلر هستند؛ یعنی بخش زیادی از نرم افزارهای مورد نیاز برای کار کردن با یک میکروکنترلر را در خود جای دادهاند. از جمله اين نرم افزارها ميتوان به موارد زير اشاره کرد:
- نرم افزار Keil
- نرم افزارAtmel Studio
- نرم افزار CodeVisionAVR
کامپایلر نرم افزاری است که متن برنامه نوشته شده را به زبان ماشین که همان 0 و 1 است تبدیل میکند تا قابل فهم برای سخت افزار و معماری کامپیوتری باشد. به عنوان مثال ما با زبان برنامه نویسی مانند C برنامه را مینویسیم و سپس کامپایلر برنامه را به زبان ماشین تبدیل میکند تا سخت افزار بتواند مفهوم آن را متوجه شود. پس از کامپایل شدن نرم افزار نوشته شده، فایل تولید شده توسط کامپایلر از طریق پروگرمر (Programmer) روی IC آپلود میشود. پروگرمر دستگاهی جهت نوشتن اطلاعات بر روی تراشههای سخت افزاری میباشد.
از ديگر نرم افزارهايي که براي کار با ميکروکنترلرها لازم است نرم افزار شبيه ساز است که قادر است مدارات را شبيه سازي کند. يکي از معروف ترين نرم افزارهاي شبيه ساز، نرم افزار Proteus است.
زبان های مورد استفاده در برنامه نویسی چیپ
آیتمهایی که در ادامه آورده شده اند برخی از زبانهای مورد استفاده در برنامه نويسی ICهاي ميکروکنترلر هستند. این موارد عبارتند از:
- Assembly
- C
- ++C
- Visual Basic
بهتر است در ابتدا زبان برنامه نویسی C براي اين منظور ياد گرفته شود و پس از آن، زبان C++ در اولويت يادگيري قرار گيرد زيرا این دو زبان برنامه نویسی برای کار با میکروکنترلرها کافی هستند.
جمع بندی
با توجه به پیشرفت تکنولوژی تولید ICها و کارایی آنها، امروزه در بسیاری از لوازم و وسایل زندگی انسان از مدارات مجتمع استفاده میشود. برنامه پذیر شدن آی سیها و در نتیجه ظهور میکروپروسسورها و میکروکنترلرها، تاثیر بسزایی در زندگی انسان گذاشته است به طوری که امروزه در سراسر دنیا میکروکنترلرها به طور گسترده در صنعت، وسایل خانگی و تجهیزات نظامی مورد استفاده قرار میگیرند در نتیجه نقش کاربردی آی سیها در زندگی امروز بشریت، بسیار مهم و غیر قابل انکار است.
این مقاله آکادمیک با هدف راهنمایی متخصصین کامپیوتر برای انتخاب روش و زبان درست برنامه نویسی آی سی، توسط تیم کنکور کامپیوتر بعنوان بزرگترین مرجع تحصیلات تکمیلی رشته های کامپیوتر گردآوری شده است.