پروگرامر (programmer) چیست؟
پروگرامر ( (programmerچیست؟
پروگرامر دستگاهی است که با کمک کامپیوتر یا به تنهایی قادر به انتقال برنامه یا تغییر تنظیمات یک قطعه الکترونیکی برنامه پذیر است.
انواع پروگرامر و تفاوتهای آنها؟
پروگرامرها در 2 گروه اصلی طبقه بندی می شوند پروگرامرهای تخصصی و عمومی (یونیورسال).
پروگرامرهای یونیورسال برای انواع قطعات استفاده می شوند.
پروگرامرهای تخصصی برای یک گروه خاص از قطعات از یک سازنده مشخص هستند و عموما از طرف شرکتهای سازنده همان قطعات ارائه می شوند.
چه کسانی نیاز به پروگرامر تخصصی دارند؟
در صورتیکه شما تنها با قطعه خاصی کار میکنید بهتر است پروگرامر تخصصی آن قطعه را تهیه کنید و در صورتیکه با قطعات مختلف کار می کنید نیاز به پروگرامر یونیورسال دارید.
در موارد معدود و فوق تخصصی اطلاعات پروگرام بعضی قطعات خاص در انحصار تولید کننده آن است و توسط پروگرامر های یونیورسال پشتیبانی نمیشوند در این موارد خاص نیز شما ناچار به خرید پروگرامر تخصصی آن هستید (مثلا بعضی قطعات DSP شرکت تگزاس و آنالوگ دیوایس).
پروگرامر مشابه سازی شده (clone) چیست؟
بعضی پروگرامرهای تخصصی قیمت بالای دارند ، شرکتهای چینی با کپی برداری عملکرد آنها ، پروگرامرهایی مشابه نمونه اصلی ارائه می کنند که مشابهت زیادی به نمونه اصلی دارند ولی قیمت آنها پایینتر است.
مشکلات پروگرامرهای کلون.
در بعضی موارد مثل پروگرامرهای STK یا بایت بلستر یا کابل پارالل شرکت xilinx ، چون نقشه پروگرامر توسط سازنده برای عموم به رایگان منتشر شده است ، اگر ساخت پروگرامر دقیقا مطابق مشخصات سازنده باشد مشکلی وجود ندارد البته معمولا این پروگرامرها قابلیت بالایی نداشته و از باسهای قدیمی مانند پارالل پورت و سریال پورت استفاده میکنند و نمونه های USB توسط رابطهای USB->Serial انجام میشود.
کلون مدلهای پیشرفته تر که نقشه آنها موجود نیست بر اساس شبیه سازی عملکرد آنهاست و ایراد آن اینست که ممکن است در آینده با ارائه نسخه های جدید نرم افزار توسط شرکت اصلی ، سخت افزار شبیه سازی شده در حالتهای خاص و روی قطعاتی که در آینده ارائه میشوند کار نکند.
پروگرامر های یونیورسال کپی شده (غیر اصلی).
بخش زیادی از قیمت پروگرامرهای یونیورسال را هزینه مهندسی و برنامه نویسی مداوم برای آی سی های جدید تشکیل می دهد . برخی شرکتهای چینی با کپی سخت افزار دستگاههای معروف و استفاده از نرم افزار این شرکتها قیمت دستگاهها مشابه دستگاه اصلی را به نصف کاهش داده اند و در اثر اینکار با کاهش فروش شرکت اصلی خسارات زیادی به شرکت مادر وارد کرده اند. برای مثال شرکت xeltek سازنده پروگرامر های سوپرپرو به علت کپی محصولاتش در ابتدای سال 2010 مجبور به قطع تولید پروگرامرهای 280Uو 580U و 3000U شده است و در یک اعلامیه از خریداران درخواست کرده که این مدلها را دیگر خریداری نکنند و اینکار به ضرر خریداران محصول اصلی نیز شده است چون به علت از رده خارج شدن ، اضافه کردن خانواده های جدید قطعات بعد از 2010 نیز دیگر برای این مدلها انجام نمی شود.
تفاوت پروگرامر اصلی با کپی در چیست؟
علاوه بر کیفیت پایین ساخت و قطعات غیر اوریجینال، مشکل اصلی در ترانزیستورهای راه انداز پایه هاست که معمولا از طرف سازندگان با مشخصات خاصی طراحی و ساخته میشود ولی در نمونه های کپی به علت نداشتن شماره اصلی و استفاده از ترانزیستور مشابه مشخصات کاری دستگاه از قبیل زمان صعود و نزول سیگنال و ظرفیت خازنی تغییر می کند و نتیجتا پروگرامر روی قطعات حساس یا دچار خطا شده یا به قطعه آسیب می رساند.
جی تگ (Jtag) چیست؟
جیتگ یک پروتکل استاندارد ارتباطی است که در ابتدا برای تست قطعات ابداع شد اما امروزه بیشتر برای پروگرام و دیباگ کردن قطعات استفاده میشود. این ارتباط از 4 سیگنال به نامهای TDO-TCK-TDI-TMS و یک سیم زمین تشکیل شده است.
دیباگر جیتگ چیست ؟
دیباگر سخت افزاری است که از طریق کانکتور جیتگ به میکروکنترلر وصل شده و با کمک نرم افزار درون PC میتوان به تعقیب برنامه و اشکال زدایی آن پرداخت.
آیا پروگرامر یونیورسال می تواند کار دیباگر را انجام دهد ؟
خیر دیباگر معمولا توسط سازنده خود قطعه ارائه میشود و تا بحال پروگرامر یونیورسالی که دیباگر هم باشد توسط هیچ شرکتی تولید نشده است.
کانکتور JTAG پروگرامر TNM چه استفاده ای دارد؟
این کانکتور علاوه بر استفاده برای حالتهای ISP در حالت JTAG برای پروگرام آی سی های CPLD و FPGA و ATXMEGA استفاده میشود.
آی سی تستر چیست و چه تفاوتی با پروگرامر دارد؟
آی سی تستر وسیله ایست که قادر به ارسال سیگنال به پایه ها ی آی سی و دریافت پاسخ آی سی و تشخیص سالم بودن آی سی است . آی سی تسترها معمولا قادر به تست آی سی های آنالوگ و دیجیتال هستند در حالیکه پروگرامر های یونیورسال تنها قادر به تست آی سی های دیجیتالند.
حافظه فلش چیست و چه انواعی دارد ؟
حافظه فلش حافظه ای است که به روش الکتریکی قابل پاک کردن و پروگرام مجدد است. فرق آن با اییپرام در اینست که هرخانه اییپرام را بدون پاک کردن میتوان پروگرام مجدد کرد ولی فلش ابتدا باید پاک شود و پاک شدن آن بصورت خانه به خانه نیست ، بلکه تعداد مشخصی خانه که تعداد آنها معمولا یکی از توانهای 2 است و سکتور نام دارد بطور همزمان پاک میشوند. حافظه فلش دارای 2 گروه اصلی Nor و Nand است. فلشهای Nor همان فلشی است که درون میکروکنترلرها و قطعات قابل پروگرام یافت میشوند و دارای قابلیت نگهداری اطلاعات به مدت 10 سال و قابلیت پروگرام مجدد به تعداد 100 هزار بار را دارند.اکثر حافظه های زیر 128 مگابایت فعلی نیز از این تکنولوژی استفاده میکنند. امتیاز آن ضریب اطمینان بالا و ایراد آن قیمت بالا نسبت به واحد حجم آن است.
حافظه های Nand نسبتا جدیدتر هستند و معمولا از ظرفیتهای 16 مگابایت به بالا تولید میشوند . این حافظه در فلش دیسکها و Mp3 پلیرها و هارد دیسکهای SSD یافت میشود . امتیاز آن قیمت پایینتر در واحد حجم و ایراد آن ضریب اطمینان پایین و استهلاک آن است. برای رفع این نقیصه این نوع حافظه نیاز به کنترل کننده پیچیده ای دارد که با الگوریتمهای تصحیح خطا و بررسی تعداد دفعات استفاده از هر بلوک حافظه جلوی خطا را بگیرد و بلوکهای بد را مارک کند.
از نظر شکل ظاهری و باس نیز فلشها به دو گروه پارالل و سریال تقسیم می شوند که با توجه به اینکه برای ظرفیتهای بالای 16 مگابایت برای فلشهای Nor در حالت موازی نیاز به 56 پایه است ولی فلشهای سریال در تمام ظرفیتها بسته بندی 8 پایه دارند و براحتی بجای هم نصب می شوند، در اکثر سیستمهای امروزی فلشهای رایج Nor از نوع سریال است.
پروگرامر 2000 قادر به پروگرام چه انواعی از فلش است؟
پروگرامر +2000 قادر به پروگرام همه نوع فلش است ولی برای فلشهای ناند دارای محدودیت 4 گیگابایتی است . برای فلشهای ناند بزرگتر از 4 گیگابایت باید از پروگرامر تخصصی +Nand استفاده کنید.
آیا حافظه با قابلیت محافظت در برابر کپی وجود دارد؟
بله سریال اییپرامهایی مانند سری AT88SC از شرکت Atmel دارای قابلیت دریافت پسورد قبل از خواندن و قابلیت پاک شدن و نابود کردن اطلاعات در اثر پسورد اشتباه هستند.
آیا قطعاتی وجود دارند که حافظه آنها قابل پاک کردن نباشد؟
بله غیر از میکروکنترلرهایی که Mask ROM هستند یعنی در هنگام تولید به سفارش مشتری داخل آنها برنامه حک می شوند ، انواعی از فلش نیز وجود دارد که One Time Programmable یا OTP هستند که فلش آنها تنها یکبار پروگرام میشود و دیگر قابل پاک کردن نیستند مانند میکروهای میکروچیپ سری 12C و 16C یا ایپرامهای سری 27C . قطعاتی نیز بنام PROM وجود دارند که تنها یکبار پروگرام می شوند.
برگه های اطلاعاتی قطعات را از کجا پیدا کنیم؟
بهترین جا سایت سازنده قطعه است . اگر از نام سازنده آی سی اطلاع ندارید یکی از بهترین سایتهای دریافت اطلاعات http://www.alldatasheet.com است.
آیا به همراه پروگرامر های TNM برگه اطلاعاتی یا فایل تعمیرات قطعات و دستگاه ها ارائه میشود؟
خیر . به همراه پروگرامر تنها نرم افزار و فیلم آموزشی ارائه میشود . مجموعه قطعات پشتیبانی شده چندین هزار عدد می باشد و مرتبا به روز میشوند و ارائه اطلاعات آنها به همراه دستگاه عملی نیست .بهترین جا برای دریافت اطلاعات اینترنت است. رشته های کاری و مدلهای دستگاهها یی که قابل تعمیر با پروگرامر می باشد نیز بیشمار است و هیچ پروگرامر دیگری نیز به همراه اینگونه اطلاعات ارائه نمی شود . فایلهای فلش و آپگرید دستگاه ها را می توانید از سایت سازنده دستگاه ( بخصوص مادربردهای کامپیوتر) یا از روی یک دستگاه سالم یا از سایتهای اینترنتی مثل http://www.irantk.ir تهیه کنید.
میکروکنترلر چیست و چه کاربردی دارد؟
میکروکنترلر قطعه ای است که معمولا دارای حافظه داخلی بوده و با ریختن برنامه در آن می تواند کارهای مورد نظر برنامه نویس را بصورت دیجیتال و حتی آنالوگ انجام دهد برای مثال می توان طوری قطعه را برنامه نویسی کرد که اگر ولتاژ روی پایه خاصی تغییر کرد ، عکس العمل دلخواه را از طریق فرمان به پایه های دیگر نشان دهد. فرق آن با CPU در اینست که حافظه کد (Flash)و داده(SRAM) آن داخلی است ، هرچند که میکروکنترلر قابلیت اتصال به حافظه کد وداده خارجی را نیز دارد. در نتیجه میکروکنترلر با حداقل مدار خارجی در حجم بسیار کم ( برای مثال ATTINY10 با بسته بندی 6 پایه و ابعاد 2 در 3 میلیمتر ) می تواند کنترل هوشمند مدارات را با قیمتی حتی کمتر از یک دلار به عهده بگیرد.
از چه میکروکنترلری استفاده کنیم؟
در بازارها جهانی پر فروشترین میکروکنترلر مربوط به شرکت موتورولا بوده که در تولیدات تجاری زیاد استفاده دارد (مانند موبایل و دوربین و ...) ولی در ایران بسیار کم کاربرد است و ابزارهای برنامه نویسی و پروگرام آنها نیز کم است. در تولیدات صنعتی جهانی در جاهایی که ضریب اطمینان بالا مورد نظر است معمولا از موتورولا و ST و NEC استفاده میشود .
بیشتر بازار میکروکنترلر ایران در اختیار دو شرکت ATMEL و MICROCHIP می باشد . رواج ATMEL در بازار بیشتر است و میکروچیپ مشهور به مقاومت بیشتر در برابر نویز است و در طراحیهای صنعتی بیشتر استفاده میشود اما به تجربه ما در مورد قطعات چندسال اخیر حداقل چنین تفاوتی دیده نمیشود. البته قطعات میکروچیپ تنها به روش ISP پروگرام میشوند و اشکالاتی که سری ميكروكنترلرهاي AVR در پروگرام ISP دارند ( مثل از کار افتادن در اثر پروگرام بعضی فیوزها ) را ندارد و تنوع بسیار زیادی در سریهای جدید آن دیده میشود بطوریکه تعداد شماره های میکروهای جدید این شرکت حداقل 4 برابر شرکت ATMEL است.
خانواده C51 که زمانی مشهورترین میکروکنترلر بازار ایران بود امروزه به علت مصرف برق نسبتا بالا ، سرعت پایین و امکانات جانبی ضعیف و محدودیت کد 64 کیلوبایتی، بیشتر جنبه آموزشی دارد و برای شروع طرحهای جدید توصیه نمی شود. اگر طرح قدیمی بروی C51 دارید و امکان برنامه نویسی مجدد را ندارید و امکانات بیشتری نیاز دارید می توانید از AT89C51RD2/ED2/AC2 استفاده کنید که دارای سرعت دوبرابر و AC2 درارای مبدل آنالوگ و دیجیتال می باشد. سری های جدید این میکرو (AT89LP) نیز با قابلیت اجرای هر دستورالعمل در یک سیکل ساعت، سرعتی حداقل 6 برابر سری های قدیمی دارند اما بعلت اینکه افزایش سرعت آن کاملا 6 برابر نیست و در بعضی دستورالعملها کندتر و در بعضی جاها تندتر عمل می کند برنامه هایی که زمانبندی دقیق دارند از طرحهای قدیمی باید با احتیاط منتقل شوند.
خانواده جدید ATXMEGA نیز جایگزین جدید شرکت ATMEL برای سری های AVR است که علاوه بر مصرف پایینتر دارای سرعت تا دوبرابر و مبدل آنالوگ به دیجیتال 12 بیتی تا فرکانس 2 مگاهرتز (بجای مبدل 10 بیتی سرعت پایین قدیمی) و مبدلهای DAC با دقت 12 بیت و کنترل کننده DMA و سنسور حرارت داخلی و امکانات زیاد دیگری می باشد و قیمت آن در برخی سریها حتی از AVR ها پایینتر آمده است. روش پروگرام این سری از روش سنتی SPI که ضعف زیادی داشته تغییر کرده و با پروتکل جدید 2 سیمه بنام PDI پروگرام میشوند که ایراد آن اینست که در حال حاضر پروگرامر ساده ای مثل STK برای پروگرام آن وجود ندارد. البته تمامی شماره های این قطعه توسط پروگرامر 2000 پشتیبانی می شود.
امنیت در میکروکنترلرها
میکروکنترلرها مجهز به فیوزهایی هستند که توسط پروگرامر لاک شده و دیگر قابل خواندن توسط پروگرامر ها نمی باشد و تنها می توان آنها را پاک کرد. در مورد اکثر میکروکنترلرها موجود ادعا میشود که قفل آنها به روشهای مختلف شکسته شده است. روش قدیمی برداشتن قفل ،تغییر ناگهانی ولتاژ تغذیه و تلاش برای خواندن اطلاعات در حالتی که قفل میکرو بعلت پرش تغذیه غیر فعال شده ، بوده است که در میکروهای جدید بعلت سیستم Brown out ( غیر فعال شدن میکرو در اثر افت تغذیه) تاثیری ندارد. روش دیگر بردن پردازنده به حالتهای خطا است که با ریختن برنامه خاصی که حاوی کدهای دارای خطا است در روی بوت لودر یا حافظه خارجی و اجبار میکرو به اجرای آن و پرش میکرو به نقاط غیر مجاز از حافظه ، به برنامه دست پیدا میکنند. البته سازندگان قطعه با پیدا کردن چنین نقاط ضعفی سریعا در قطعات جدیدتر این مشکل را برطرف کرده اند. روش دیگر که حالت تجاری نیز پیدا کرده و شرکتهایی در چین با دریافت هزینه چند صد دلاری تا چند هزار دلاری با برداشتن پوشش روی آی سی و سوزاندن لاک بیتها زیر میکروسکوپ با میکرو پروبها یا حتی لیزر قفل را باز میکنند. بنابراین می بینید که امنیت میکروکنترلر به تنهایی برای محافظت از مدار شما کافی نیست. برای امن کردن بیشتر طرح خود به قسمت چگونه از مدار خود در برابر کپی غیر مجاز محافظت کنیم؟ مراجعه کنید.
اصول پروگرام کردن در مدار (ISP)
پروگرام در مدار ، روشی است که با استفاده از کابل ، میکروکنترلر را درحالیکه تغذیه آن وصل است را می توان پاک ، پروگرام و پیکر بندی مجدد کرد و یا محتویات آن را خواند. بهتر است پینهایی که برای پروگرام ISP استفاده میشود در مدار استفاده دیگری نداشته باشد یا با یک جامپر جدا شوند و یا در مدار به قطعه ای وصل شده باشند که ورودی باشند. جزئیات پروگرام ISP را در دفترچه فارسی پروگرامر TNM می توانید پیدا کنید.
تبدیل یا آداپتور چیست؟
تبدیل وسیله ایست که قطعات مونتاژ سطحی درون آنها قرار گرفته و توسط پایه های آن روی سوکت زیف پروگرامر قرار میگیرد. برای دیدن تصویر انواع تبدیلها به دفترچه فارسی پروگرامر TNM رجوع کنید.
این وبلاگ درجهت جمع آوری ویکپارچه سازی اطلاعات مفید در زمینه برق، الکترونیک، شبکه و ... برای عزیزان و به اشتراک گذاشتن آنها راه اندازی شده است. در اين راستا لازم است نکاتی چند را به اطلاع عزيزان برسانيم: