نحوه نصب برنامه‌های نرم‌افزار و میان‌افزار بر روی بردهای PCB تصویر مقاله برای آموزش ساخت PCB و خریداران PCBA

تولید PCB

نحوه نصب برنامه‌های نرم‌افزار و میان‌افزار بر روی بردهای PCB

با نحوه بارگذاری نرم‌افزار و میان‌افزار بر روی میکروکنترلرهای PCB با استفاده از پیش فلاش، JTAG/SWD، بوت‌لودرها، و تجهیزات تست خودکار تولیدی آشنا شوید.

نکات کلیدی

  • نرم افزار بر روی یک PCB به عنوان سیستم عامل باینری کامپایل شده که مستقیماً روی حافظه فلش غیر فرار میکروکنترلرها یا آی سی های ذخیره سازی نوشته شده است، نصب می شود.
  • از چهار کانال اصلی نصب استفاده می‌شود: برنامه‌ریزی اولیه خارج از برد، برنامه‌نویسی درون سیستم (ISP از طریق JTAG/SWD)، انتقال بوت‌لودر، و تجهیزات تست pogo-pin.
  • طراحی نقاط تست اختصاصی با حداقل قطر پد 1.0 میلی‌متری و گام 1.27 میلی‌متر، برنامه‌ریزی خودکار سریع را در طول تولید انبوه EMS ممکن می‌سازد.
  • باقیمانده شار در نقاط آزمایش یا ریل های منبع تغذیه ناپایدار در طول چشمک زدن، دلایل اصلی خرابی برنامه نویسی و خرابی بیت در خطوط PCBA هستند.

پاسخ مستقیم

نرم افزار بر روی برد PCB با نوشتن سیستم عامل باینری کامپایل شده مستقیماً در حافظه فلش غیر فرار میکروکنترلرها یا آی سی های ذخیره سازی اختصاصی با استفاده از رابط های سخت افزاری برنامه نویسی مانند JTAG، SWD، یا UART نصب می شود.

در تولید سخت‌افزار، یک مجموعه برد مدار چاپی خالی (PCBA) نمی‌تواند نرم‌افزاری را مانند رایانه رومیزی اجرا کند. در عوض، کد نرم افزار نوشته شده به زبان های سطح بالا (مانند C یا C++) در کد ماشین (فایل های .bin یا .hex) کامپایل می شود. دیباگرهای سخت افزاری تخصصی یا وسایل برنامه نویسی خودکار این کد ماشین را از طریق اتصالات ردیابی فیزیکی مستقیماً به فضای آدرس داخلی فلش میکروکنترلرها (MCU)، سیستم روی تراشه (SoC) یا آی سی های حافظه خارجی منتقل می کنند.

---

روش‌های اصلی برای بارگذاری میان‌افزار بر روی مجموعه‌های مدار

بارگذاری نرم افزار بر روی برد به مرحله تولید، بسته مولفه و حجم کل بستگی دارد. محیط های تولید بر چهار روش برنامه نویسی متمایز متکی هستند.

1. Off-Board Pre-Programming (Pre-SMT Assembly)

برنامه نویسی خارج از برد، کد را روی تراشه های آی سی خالی قبل از قرار دادن آنها روی برد مدار چاپی نصب می کند. برنامه نویس های باند سوکت خودکار صدها میکروکنترلر یا تراشه های حافظه فلش SPI را به طور همزمان فلش می کنند.

  • مزایا: زمان چرخه را در خط مونتاژ نصب روی سطح اصلی کاهش می دهد زیرا تراشه ها به فیدرهای انتخاب و جاسازی می رسند که کاملاً چشمک می زند.
  • معایب: هر اشکال میان افزاری که پس از لحیم کاری مجدد کشف شود، نیاز به لحیم کاری یا فلاش مجدد در مدار دارد. حافظه‌های غیرفرار حساس به حرارت نیز باید پروفیل‌های حرارتی جریان مجدد استاندارد که توسط استانداردهای IPC-J-STD-020 کنترل می‌شوند را بدون تخریب داده‌ها تحمل کنند.

تراشه های از پیش برنامه ریزی شده مستقیماً در نوارهای حامل یا سینی بارگذاری می شوند و به عنوان بخشی از جریان کار مونتاژ استاندارد به دستگاه های انتخاب و جاسازی فرستاده می شوند. برای درک اینکه چگونه این اجزا در ساخت برد کامل قرار می گیرند، توضیح داده شده است: مراحل اسمبلی SMT چیست؟ را مرور کنید.

2. In-System Programming (ISP) via Debug Interfaces

برنامه‌نویسی درون سیستمی به مهندسان و ابزارهای تولید اجازه می‌دهد تا قطعات را پس از لحیم شدن به PCB فلاش کنند. رابط های اشکال زدایی فیزیکی اختصاصی مستقیماً به رجیسترهای داخلی و کنترلرهای فلش متصل می شوند.

  • JTAG (استاندارد IEEE 1149.1): از یک رابط 4 یا 5 سیمه (TCK, TMS, TDI, TDO, TRST) برای برنامه‌ریزی، اشکال‌زدایی و انجام تست‌های اسکن مرزی روی پردازنده‌های پیچیده، FPGA و آی سی‌های شبکه استفاده می‌کند.
  • SWD (اشکال‌زدایی سیم سریال): یک پروتکل 2 سیمه مخصوص ARM (SWCLK، SWDIO) که تعداد پین‌های مورد نیاز را کاهش می‌دهد و در عین حال قابلیت‌های فلش سریع و اشکال‌زدایی هم‌زمان را حفظ می‌کند.
  • ICSP / SPI / I2C: پروتکل های کم پین که معمولاً در میکروکنترلرهای کوچکتر 8 بیتی یا 16 بیتی و حافظه های فلش سریال خارجی استفاده می شود.

3. Bootloader-Based Flashing Over Communications Interfaces

یک بوت لودر یک بخش کد کوچک و از پیش بارگذاری شده در کارخانه است که در ناحیه حافظه حفاظت شده سیستم میکروکنترلر ذخیره می شود. هنگامی که برد روشن می شود، بوت لودر قبل از پرش به کد برنامه اصلی، داده های ورودی را در خطوط ارتباطی محیطی بررسی می کند.

رابط های بوت لودر رایج عبارتند از:

  • UART / RS-232 / RS-485: پیوندهای سریال استاندارد متصل به برنامه نویس های محلی یا آی سی های پل USB-to-UART.
  • USB: خطوط D+/D- با استفاده از پروتکل‌های ارتقاء میان‌افزار دستگاه USB (DFU).
  • CAN Bus یا Ethernet: در خودروها، کنترل‌های صنعتی و الکترونیک پزشکی استفاده می‌شود که در آن بردها در داخل محفظه‌های بزرگ‌تر به شبکه متصل می‌شوند.

4. Automated Mass Production Fixtures (Bed of Nails)

در طول تولید با حجم بالا، وصل کردن هدر دستی بسیار کند است و باعث آسیب فیزیکی پین می شود. شرکای تولید، تجهیزات تست مدار عملکردی سفارشی (FCT) را می‌سازند که حاوی پین‌های pogo با فنر آرایه‌شده است.

وقتی یک PCBA تکمیل شده به فیکسچر چسبانده می‌شود، پین‌های pogo روی نقاط تست مسی در لایه پایین یا بالای تخته فشار می‌دهند. تجهیزات تست خودکار (ATE) برق را اعمال می‌کند، جریان منبع را بررسی می‌کند، آی سی هدف را از طریق SWD/JTAG برنامه‌ریزی می‌کند، جمع‌های کنترلی حافظه را تأیید می‌کند، و بیت‌های حفاظتی خواندنی را در یک توالی خودکار به مدت 5 تا 15 ثانیه قفل می‌کند.

---

PCB قوانین طراحی برای چشمک زدن قابل اعتماد در مدار (DFM و DFT)

برای اجازه نصب نرم افزار قابل اطمینان در تولید، مهندسان طراحی سخت افزار باید قوانین سختگیرانه Design for Test (DFT) و Design for Manufacturability (DFM) را در طول طرح بندی اجرا کنند.

انتخاب نقطه تست و هندسه

  • قطر پد: نقاط آزمایشی که توسط پین‌های پوگو بستر میخ هدف قرار می‌گیرند باید قطر هدف 1.0 میلی‌متر (0.040 اینچ) و حداقل مطلق 0.8 میلی‌متر (0.031 اینچ) برای چیدمان‌های با چگالی بالا داشته باشند.
  • فاصله گام: حداقل 1.27 میلی متر (0.050 اینچ) فاصله مرکز به مرکز بین نقاط تست را برای قرار دادن مخزن های محکم پین پوگو 50 میلی متری حفظ کنید.
  • انتخاب پایان سطح: سطوح را با توپوگرافی صاف و مقاومت در برابر اکسیداسیون انتخاب کنید. طلای غوطه‌وری نیکل الکترولس (ENIG) یا نقره‌ای غوطه‌وری، قوام تماس برتری نسبت به سطح‌بندی لحیم‌کاری با هوای داغ (HASL) دارند، که تاج‌های مسی ناهمواری را تشکیل می‌دهند که باعث لیز خوردن پین‌های پوگو می‌شوند.
  • قرار دادن یک طرفه: تمام نقاط تست برنامه نویسی را در صورت امکان در لایه پایینی تخته قرار دهید. این امر باعث می شود که تجهیزات آزمایشی یک طرفه، هزینه ساخت وسایل را 40٪ تا 60٪ در مقایسه با وسایل تاشوی دو طرفه کاهش دهد.

هنگام طراحی تخته های پیچیده انعطاف پذیر سخت یا اتصالات با چگالی بالا، مسیریابی نقطه آزمایش به برنامه ریزی مکانیکی اضافی نیاز دارد. درباره محدودیت‌های ردیابی انعطاف‌پذیر در Flex PCB Process Manufacturing Process: An Overview for Beginners بیاموزید.

یکپارچگی خط برق و تحویل نیرو

در طول برنامه نویسی حافظه فلش، پمپ های شارژ داخلی داخل میکروکنترلر داده ها را با استفاده از پالس های ولتاژ بالا محلی می نویسند. اگر ریل منبع تغذیه در حین عملیات نوشتن بیفتد، خرابی بیت رخ می دهد و آی سی را آجر می کند.

> Manufacturing Rule-of-Thumb: Decoupling capacitors (0.1 µF ceramic) must be placed within 2.0 mm of the target MCU VCC/VDD power pins. Dedicated ground return test points must be located adjacent to programming signal groups (SWD/JTAG) to prevent ground bounce and clock glitches during high-speed flash writes.

برای طراحی‌های مسی با توان یا سنگین، جرم حرارتی بالا می‌تواند ردیابی سیگنال و مسیرهای زمین را در صورتی که امداد حرارتی به درستی طراحی نشده باشد، مخدوش کند. برای جزئیات بیشتر در مورد مدیریت تعادل مس، به شکست‌های رایج در مس سنگین PCB و نحوه اجتناب از آنها در مرحله طراحی مراجعه کنید.

---

وسایل تولید، تمیزی تماس و قابلیت اطمینان

کد چشمک زن در محیط کارخانه به اتصالات الکتریکی فیزیکی پایدار نیاز دارد. یکی از دلایل اصلی خرابی های برنامه ریزی متناوب در تولید قراردادی، مقاومت در برابر تماس در پد تست است.

تأثیر باقیمانده شار بر تماس برنامه نویسی

در طول جریان مجدد یا لحیم کاری موجی، شار برای تمیز کردن اکسیدهای مس فعال می شود. اگر بقایای شار روی پدهای تست باقی بماند، یک مانع عایق بین نوک پین پوگو و هدف مسی ایجاد می‌کند. یک نوک کاوشگر که به شار غیر رسانا برخورد می کند، مقاومت تماس موضعی بالای 5 اهم را تجربه می کند و باعث افت ولتاژ می شود که ارتباط با برنامه نویس چشمک زن را قطع می کند.

برای اطمینان از برنامه‌ریزی خودکار قابل اطمینان، بردها باید تحت تمیز کردن کامل پس از لحیم کاری قرار گیرند یا از شارهای بدون تمیز کردن معتبر برای کاوش استفاده کنند. برای انتخاب فرآیند تمیز کردن مناسب، How I Remove the Flux After Soldering the PCB Board? را بخوانید.

شراکت با یک سازنده با تجربه تضمین می کند که ساخت و مونتاژ تخته نیازهای آزمایش اولیه را در نظر می گیرد. برای دستورالعمل‌های انتخاب شرکای ساخت، Double Sided PCB Fabrication: How to Choose the Right Manufacturer را مرور کنید.

---

مقایسه فنی: روش‌های نصب میان‌افزار

انتخاب روش برنامه نویسی بهینه به حجم تولید، اهداف هزینه واحد، الزامات امنیتی و انعطاف پذیری طراحی سخت افزار بستگی دارد.

Evaluation MetricOff-Board IC Pre-ProgrammingDedicated ISP Pin HeaderBed-of-Nails Pogo Pin FixtureBootloader over Main Bus (UART/CAN)
Equipment Setup CostLow (Standard gang programmer)Very Low (Standard cable debuggers)Medium to High ($1,500 - $6,000 fixture)Low (Software interface tool)
Unit Cycle Time0 sec (Done before SMT line)High (15 - 60 sec per unit manual connection)Fast (3 - 10 sec automated press)Moderate (10 - 30 sec per unit)
PCB Area FootprintZero PCB space requiredHigh (2.54 mm or 1.27 mm male headers)Low (Exposed 1.0 mm flat test pads)Zero (Uses existing network connector)
In-Field Update AbilityNoneLow (Requires opening product enclosure)NoneHigh (Allows firmware updates in field)
Ideal Production VolumeMedium to Very HighLow Volume / Prototype R&DMedium to Mass ProductionField Servicing / Lifecycle Maintenance

---

بررسی عملی: فلش کردن دروازه دو پردازنده PCBA

برای درک اینکه چگونه نصب نرم افزار در یک محیط تولید واقعی کار می کند، فرآیند چشمک زدن گام به گام برای یک دروازه هوشمند IoT صنعتی PCBA را بررسی کنید.

مرحله 1: آماده سازی فایل و تحویل

The engineering team delivers a production software package to the Electronic Manufacturing Services (EMS) team containing: 1. Main Application Binary: gateway_v1.2.4_release.hex 2. Wireless Module Firmware: esp32_ble_v0.9.1.bin 3. Checksum File: sha256_verification.txt 4. Configuration Settings: Fuse values, Option Bytes, and Read-Out Protection Level 1 (ROP1) activation flags.

مرحله 2: بستن مکانیکی و بررسی قدرت

اپراتور PCBA مونتاژ شده را در فیکسچر سفارشی وارد می کند و گیره نگهدارنده پنوماتیکی را درگیر می کند. پین های پوگو با سی پد تست مجزا در لایه زیرین تماس می گیرند.

  • سیستم ATE +5.0 ولت DC را به پدهای تست برق ورودی عرضه می کند.
  • یک مولتی متر دیجیتال درون خطی قبل از فعال کردن پین های سیگنال، تأیید می کند که جریان منبع خاموش کمتر از 35 میلی آمپر است، و اطمینان حاصل می کند که هیچ اتصال کوتاهی روی ریل های برق وجود ندارد.

مرحله 3: کنترل‌کننده اصلی SWD چشمک می‌زند

An automated programmer (such as a Segger Flasher or ST-LINK/V3) connects to the target MCU via SWCLK, SWDIO, NRST, and GND pogo pins. 1. The programmer sends a Hardware Reset pulse on NRST. 2. The programmer sends the target chip un-erase command to clear flash sectors. 3. The binary image gateway_v1.2.4_release.hex is streamed into flash address space starting at 0x08000000 at a SWD clock speed of 10 MHz. 4. The system reads back memory blocks and compares calculated SHA-256 signatures against sha256_verification.txt.

مرحله 4: بوت لودر پردازنده ثانویه چشمک می زند

With the primary host microcontroller programmed, the fixture pulls the IO0 pin of the secondary ESP32 wireless module LOW while cycling its RESET line. This places the secondary chip into its serial UART bootloader mode. 1. The programmer transfers esp32_ble_v0.9.1.bin over UART TX/RX test pads at 921,600 baud. 2. The module completes internal flash verification and responds with confirmation frames.

مرحله 5: تهیه قفل امنیتی

هنگامی که هر دو تصویر نرم افزار از بررسی بازخوانی عبور کردند، برنامه نویس دستورات پیکربندی نهایی را صادر می کند:

  • بایت های گزینه را تنظیم می کند تا دسترسی اشکال زدایی JTAG/SWD را برای همیشه قفل کند یا حفاظت ROP1 را فعال می کند.
  • شماره سریال دستگاه های کارخانه و آدرس های MAC منحصر به فرد را در بانک های فلش محافظت شده OTP (یک بار برنامه ریزی شده) می نویسد.
  • سیگنال های پین pogo را جدا می کند و برق را قطع می کند.

---

حالت‌های شکست متداول و مشکلات فلش کردن میان‌افزار

هنگامی که نصب سیستم عامل در طول تولید حجمی ناموفق باشد، بازده خط به سرعت کاهش می یابد. مهندسان سازنده چهار حالت خرابی اصلی را نظارت می کنند:

1. Clock Line Jitter and Signal Crosstalk

خطوط ساعت برنامه‌نویسی پرسرعت (SWCLK یا TCK که از 4 مگاهرتز تا 25 مگاهرتز کار می‌کنند) که به موازات ردپای منبع تغذیه حالت سوئیچینگ پر سر و صدا (SMPS) مسیریابی می‌شوند، نویز همراه را دریافت می‌کنند. این تداخل باعث می شود لبه ساعت مضاعف فعال شود و در نتیجه بایت های داده کاهش یافته و توالی چشمک زن قطع شود.

  • *پیشگیری:* خطوط ساعت اشکال زدایی را با محافظ زمین همسطح مسیریابی کنید یا طول ردیابی را زیر 50 میلی متر از پین های MCU تا پدهای تست pogo-pin نگه دارید.

2. Brownout Resets During Flash Writes

نوشتن داده در حافظه فلش NOR باعث افزایش مختصر جریان می شود زیرا پمپ های شارژ داخلی آتش می گیرند. اگر سیم‌کشی‌های بلند برنامه‌نویس میز باعث افت ولتاژ IR در خط VCC شود، مدار بازنشانی قهوه‌ای داخلی (BOR) MCU فعال می‌شود و تراشه را در اواسط نوشتن خاموش می‌کند.

  • *پیشگیری:* اطمینان حاصل کنید که تجهیزات آزمایشی دارای خازن‌های توده‌ای موضعی (10 میکروفارن تا 47 میکروفارن تانتالیوم یا سرامیک) هستند که مستقیماً روی اهداف برق پین پوگو فیکسچر قرار می‌گیرند.

3. Mismatched Fuse and Security Bit Configuration

نوشتن کد برنامه بدون تنظیم فیوزهای پیکربندی صحیح سیستم (مانند انتخاب تایمر نگهبان، کالیبراسیون اسیلاتور داخلی، یا بیت‌های امنیتی فلاش) می‌تواند دستگاه را غیرقابل استفاده یا آسیب‌پذیر در برابر مهندسی معکوس کند.

  • *پیشگیری:* بسته‌های نرم‌افزاری را با استفاده از فرمت‌های یکپارچه «.hex» یا «.s12» S-record Intel که تنظیمات فیوز، داده‌های فلش، و بردارهای حافظه را در یک فایل تأیید شده جاسازی می‌کنند، استاندارد کنید.

---

یادداشت‌های فیلد برای ادغام سیستم‌افزار Flashing در تولید EMS

نصب موفق نرم افزار بر روی مجموعه های PCB نیازمند هماهنگی اولیه بین تیم های طراحی و شرکای تولیدی است.

  • تعریف Clear Checksums: همیشه هش های محاسبه شده CRC-32 یا SHA-256 را در کنار تصاویر باینری ارائه دهید. هرگز برای تایید یکپارچگی تصویر فقط به اندازه فایل تکیه نکنید.
  • استاندارد کردن چیدمان نقطه آزمایش: از تراز شبکه ثابت 50 میل یا 100 میلی برای برنامه نویسی پدهای تست در تمام پروژه های سخت افزاری شرکت استفاده کنید تا هزینه های ساخت وسایل سفارشی را کاهش دهید.
  • ایزوله کردن ریل های برق: مطمئن شوید که میکروکنترلر هدف می تواند به طور مستقل توسط دستگاه برنامه نویسی بدون تغذیه بارهای خروجی با جریان بالا مانند موتورها، رله ها یا LED های پرقدرت در طول بارگذاری نرم افزار تغذیه شود.
  • برنامه به روز رسانی فیلد: یک بوت لودر اولیه قابل اعتماد را در مرحله اولیه فلش کارخانه قرار دهید تا به کاربران نهایی یا تکنسین های میدانی اجازه دهد به روز رسانی های نرم افزار را از طریق USB، پورت های سریال یا پیوندهای بی سیم نصب کنند.

در Omini، تیم مهندسی ما در طول بررسی های اولیه DFM و DFT مستقیماً با طراحان کار می کند تا محل تست را بهینه کند، جریان های کاری چشمک زن را ایجاد کند، و تأیید برنامه خودکار را در خطوط مونتاژ استاندارد ادغام کند.

پرسش‌های متداول

چه تفاوتی بین نصب نرم افزار روی کامپیوتر و فلش کردن سیستم عامل در PCB وجود دارد؟

رایانه‌ها سیستم‌عامل‌های سطح بالایی را اجرا می‌کنند که برنامه‌های کاربردی را از حافظه ثانویه به RAM اجرا می‌کنند. یک میکروکنترلر خام PCB فاقد سیستم عامل در هنگام بوت است. سیستم عامل کد سطح پایینی است که مستقیماً در فضای آدرس حافظه فلش جاسازی شده از طریق رابط های سخت افزاری مانند JTAG یا SWD برای کنترل تجهیزات جانبی سخت افزاری بلافاصله پس از دریافت برق نوشته می شود.

آیا نرم افزار را می توان قبل از لحیم شدن قطعات الکترونیکی روی PCB نصب کرد؟

بله. قبل از مونتاژ SMT، از طریق برنامه‌ریزی اولیه خارج از برد، آی‌سی‌های قابل برنامه‌ریزی لخت (میکروکنترلر، EEPROM، حافظه فلش) در دستگاه‌های برنامه‌نویسی خودکار سوکت قرار می‌گیرند. با این حال، حرارت لحیم کاری بعدی نباید از حداکثر درجه حرارت قطعه تجاوز کند تا از خراب شدن حافظه جلوگیری شود.

چه اتصالات سخت افزاری در PCB برای برنامه ریزی یک میکروکنترلر لازم است؟

برنامه‌نویسی سخت‌افزار به برق (VCC)، زمین (GND)، خط بازنشانی (NRST)، سیگنال‌های ساعت (SWCLK/TCK) و خطوط داده (SWDIO/TMS/TDI/TDO) نیاز دارد. این پین‌ها به‌عنوان هدر پین‌های استاندارد، ردپای اتصال برچسب، یا نقاط تست اختصاصی سمت پایین برای دسترسی به پین ​​pogo در معرض دید قرار می‌گیرند.

وسایل خودکار کارخانه چگونه سیستم عامل را در طول تولید با حجم بالا بارگیری می کنند؟

امکانات با حجم بالا از تجهیزات تست مدار عملکردی Bed-of-Nails (FCT) استفاده می کنند. پین‌های pogo با فنر با نقاط تست PCB در معرض قرار می‌گیرند، تماس الکتریکی را برای تامین برق، ارسال دستورات چشمک‌زن، نوشتن تصاویر دودویی هگزا، و بررسی جمع‌های کنترل حافظه در چند ثانیه برقرار می‌کنند.

یک مهندس طراح باید چه فایل‌هایی را برای فلش کردن سیستم عامل به شریک EMS ارائه کند؟

طراحان باید فایل‌های باینری (.bin)، هگزا (hex.) یا ELF آماده تولید، دستورالعمل‌های برنامه‌ریزی واضحی که ولتاژ و سرعت ساعت هدف را مشخص می‌کند، مقادیر جمع کنترلی حافظه مورد انتظار (CRC/SHA-256)، گزینه‌های بیت قفل حافظه، و نقشه‌های نقطه آزمایشی را ارائه دهند.

منابع مرتبط