In-System Programming (ISP), nebo také označované jako In-Circuit Serial Programming (ICSP), je schopnost některých programovatelných logických zařízení, mikrokontrolérů, čipových sad a dalších vestavěných zařízení naprogramovat při instalaci do kompletního systému. než vyžadovat naprogramování čipu před instalací do systému. Umožňuje také doručovat aktualizace firmwaru do paměti na čipu mikrokontrolérů a přidružených procesorů bez nutnosti speciálního programování desek plošných spojů a zjednodušuje konstrukční práci.
Recenze
Neexistuje žádný standard pro in-systémové programovací protokoly pro programování mikrokontrolérových zařízení. Tuto funkci podporují téměř všichni výrobci mikrokontrolérů, ale všichni implementovali své vlastní protokoly, které se často liší i pro různá zařízení od stejného výrobce. Obecně platí, že moderní protokoly mají tendenci udržovat počet použitých pinů nízký, typicky pod 2 piny. Některá rozhraní ISP dokážou dosáhnout toho samého pouze s jedním pinem, jiná používají až 4 k implementaci rozhraní JTAG.
Hlavní výhodou in-systémového programování je to, že umožňuje výrobcům elektronických zařízení integrovat programování a testování do jediné výrobní fáze a ušetřit peníze, spíše než vyžadovat samostatný programovací krok před vytvořením systému. To by mohlo výrobcům umožnit programovat čipy na výrobní lince jejich vlastního systému namísto nákupu předem naprogramovaných čipů od výrobce nebo distributora, což by umožnilo změny kódu nebo designu uprostřed výrobního cyklu. Další výhodou je, že ve výrobě lze vždy použít nejnovější firmware a nové funkce a opravy chyb mohou být implementovány a uvolněny do výroby bez zpoždění, které přicházejí s předprogramovanými mikrokontroléry.
Mikrokontroléry jsou obvykle připájeny přímo na PCB a obvykle nemají obvody ani místo pro připojení velkého externího programovacího kabelu k jinému počítači.
Integrované obvody s podporou ISP mají obvykle vnitřní obvody pro generování libovolného programového napětí z normálního napájecího napětí systému a komunikaci s programátorem prostřednictvím sériového protokolu. Většina programovatelných logických zařízení používá ISP variantu protokolu JTAG pro zjednodušení integrace s automatizovanými testovacími postupy. Ostatní zařízení obvykle používají proprietární protokoly nebo protokoly definované staršími standardy. V systémech, které jsou dostatečně složité na to, aby vyžadovaly středně velkou logiku lepidla, mohou vývojáři implementovat softwarový subsystém řízený JTAG pro zařízení bez JTAG, jako jsou flash paměti a mikrokontroléry, což umožňuje veškeré programování a testování provádět v rámci jediného protokolu.
Příběh
Od počátku 90. let došlo v architektuře mikrokontrolérů k důležitému technologickému vývoji. Nejprve byly implementovány ve dvou možných řešeních: s OTP (jednorázové programování) nebo s pamětí EPROM. V těchto technologiích proces mazání paměti vyžaduje, aby byl čip vystaven ultrafialovému záření přes speciální okénko nad obalem. V roce 1993 představila společnost Microchip Technology první mikrokontrolér s pamětí EEPROM: PIC16C84. Paměť EEPROM lze elektricky vymazat. Tato funkce snížila náklady na implementaci odstraněním výmazového okna nad tělem a inicializací technologie programování v systému. S ISP lze proces blikání provést přímo na desce na konci výrobního procesu. Tento vývoj umožnil spojit fázi programování a funkčního testování v produkčních prostředích a zahájit předvýrobu desek, i když vývoj vestavěného softwaru ještě nebyl dokončen. Tímto způsobem by bylo možné opravit chyby nebo provést změny později. Ve stejném roce Atmel vyvinul první flashový mikrokontrolér, který je jednodušší a rychlejší na programování a má mnohem delší životnost než EEPROM.
Mikrokontroléry s podporou ISP mají typicky piny používané periferií pro sériovou komunikaci k rozhraní s programátorem, pamětí flash/EEPROM a obvody používané k napájení napětí potřebného k programování mikrokontroléru. Komunikační periferie je zase připojena k programovací periferii, která poskytuje příkazy pro provoz na paměti flash nebo EEPROM.
Při navrhování desek elektronických obvodů pro ISP je třeba mít na paměti několik pokynů, aby fáze programování byla co nejspolehlivější. Některé mikrokontroléry s malým počtem pinů sdílejí programovací linky s I/O linkami. To se může stát problémem, pokud se při návrhu desky nevezmou v úvahu nezbytná opatření; během programování může zařízení poškodit I/O komponenty. Dále je důležité připojit linky ISP k obvodům s vysokou impedancí, a to jak proto, aby nedošlo k poškození součástek programátorem, tak proto, že mikrokontrolér často nemůže dodávat dostatek proudu pro napájení linky. Mnoho mikrokontrolérů vyžaduje pro vstup do programovacího režimu speciální resetovací řetězec. Věnujte pozornost proudu dodávanému pro napájení linky a zkontrolujte, zda nejsou k lince RESET připojeny hlídací jednotky, které mohou způsobit nechtěný reset a tím vést k selhání programování. Některé mikrokontroléry navíc vyžadují pro vstup do programovacího režimu vyšší napětí, a proto je nutné kontrolovat, zda tato hodnota není zeslabena a zda se toto napětí nepřenáší na další komponenty desky.
Průmyslová aplikace
Proces programování v systému probíhá v konečné fázi výroby produktu a lze jej provést dvěma různými způsoby v závislosti na objemech výroby.
V první metodě je konektor ručně připojen k programátoru. Toto řešení zahrnuje účast osoby v procesu programování, která musí programátor připojit k elektronické desce pomocí kabelu. Proto je toto řešení určeno pro malé objemy výroby.
Druhá metoda používá body přerušení na desce. Jedná se o speciální oblasti umístěné na desce s plošnými spoji neboli PCB, které jsou elektricky spojeny s některými elektronickými součástkami desky. Testovací body slouží k provádění funkčních testů na součástkách nainstalovaných na desce, a protože jsou připojeny přímo k některým pinům mikrokontroléru, jsou pro ISP velmi efektivní. Pro střední až vysoké objemy výroby je nejlepším řešením použití bodů přerušení, protože umožňuje integraci programovacího kroku do montážní linky.
Ve výrobních linkách jsou desky naskládány na podpěru hřebíků nazývanou spojovací materiál. Ty jsou v závislosti na objemu výroby integrovány do poloautomatických nebo automatických testovacích systémů nazývaných ATE – Automatic Test Equipment. Zařízení jsou speciálně navržena pro každou desku – nebo nanejvýš několik modelů podobných desce, pro kterou byla navržena – takže jsou zaměnitelná v systémovém prostředí, ve kterém jsou integrována. Jakmile jsou deska a přípravek na svém místě, testovací systém má mechanismus pro uvedení jehel přípravku do kontaktu s testovacími body na testovací desce. Systém, ke kterému je připojen nebo přímo integrován do ISP programátoru. Tento programátor musí naprogramovat zařízení nebo zařízení nainstalovaná na desce: například mikrokontrolér a/nebo sériovou paměť.