wersja mobilna
Online: 522 Sobota, 2017.11.18

Technika

Programowanie układów scalonych i pamięci w produkcji elektroniki

wtorek, 13 grudnia 2016 11:54

Można powiedzieć, że dzisiaj już praktycznie każde urządzenie sterowane jest przez mikroprocesor i wymaga programowania na etapie produkcji. Realizacja tego zadania możliwa jest do zrealizowania dwiema metodami: poprzez programowanie układów przed ich zamontowaniem na płytce PCB. Drugi sposób to programowanie chipów w gotowym i zmontowanym układzie elektronicznym. Obie metody mają swoje wady i zalety, które warto znać.

Fot. 1. Programator LumenX o szybkości zapisu ponad 80 MB/s

Podstawowa różnica użytkowa jest taka, że programowanie układów scalonych przed zamontowaniem charakteryzuje się większą szybkością niż proces programowania w gotowym urządzeniu. Producenci układów pamięci współpracują z firmami produkującymi urządzenia do programowania i bardzo często razem tworzą specjalne algorytmy pozwalające na zapis danych z dużo większą prędkością, niż wynosi nominalna prędkość zapisu. Algorytmy te ściśle opierają się na wewnętrznej budowie i architekturze układu i są dopracowane w szczegółach.

Zapewniające takie działanie programatory są wykonane jako ręczne oraz automatyczne. W przypadku małej liczby układów wymagających zapisu danych można je programować za pomocą programatorów ręcznych. Zaletą takiego rozwiązania jest wykorzystanie urządzeń, które stosując specjalne algorytmy zaprogramują te układy szybciej.

Ręczny programator wymaga jednak pracownika, który będzie go obsługiwał i w miarę wzrostu liczby programowanych chipów dochodzi się w końcu do momentu, gdy całość przestaje się opłacać.

Programatory automatyczne są w stanie zapisać dane do ogromnej ilości układów przy małym nakładzie pracy ze strony operatora, niestety nie są to rozwiązania tanie i nie każdy może sobie pozwolić na zakup takiego systemu. Z tego powodu na całym świecie powstały firmy tzw. programming centers, które mają takie urządzenia i świadczą usługę programowania układów scalonych dla klientów zewnętrznych. Dzięki specjalizacji firmy takie oferują relatywnie niski koszt jednostkowy programowania układu i to one ponoszą koszt inwestycji w wydajne urządzenie automatyczne.

Zagrożenia w usługach zewnętrznych

Fot. 2. Programator FlashPackIII

Niemniej zlecanie programowania układów niesie za sobą dwa podstawowe problemy. Po pierwsze poufność danych. W dzisiejszych czasach skopiować można wszystko i wiadomo, że wsad da procesora jest jedną z najważniejszych części aplikacji.

Bardzo często urządzenia zbudowane są z podobnych komponentów i mają podobne możliwości, a to, co je wyróżnia, to soft ware. Dobrze zrobione oprogramowanie może przełożyć się na sukces danego urządzenia, stąd firmy niekoniecznie chcą, żeby to oprogramowanie zwłaszcza w takiej postaci opuszczało firmę.

Drugim problemem jest długi czas niezbędny do zmiany wersji oprogramowania. W dzisiejszych czasach wszystko dzieje się bardzo szybko i nierzadko trzeba błyskawicznie reagować na pojawiające się błędy w oprogramowaniu lub specyficzne potrzeby klientów. Szybkie wypuszczenie "łatki" lub nowej wersji oprogramowania jest kluczowe dla utrzymania dobrych relacji z klientem.

W przypadku zlecania programowania układów na zewnątrz zawsze jakaś partia układów jest u podwykonawcy i czeka na zaprogramowanie. Z uwagi na koszt logistyki bywa, że od zakupu układów i wysłania ich do podwykonawcy do momentu, gdy trafią one zaprogramowane z powrotem na produkcję, potrzeba około dwóch tygodni.

Nie zawsze można sobie pozwolić na taką zwłokę, a po drugie, przy dużej skali produkcji oznacza to, że przy konieczności zmiany wersji firmware'u w magazynie zostanie kilka tysięcy chipów zaprogramowanych starą wersją oprogramowania. Nawet jeżeli układ można skasować i zaprogramować ponownie, podwykonawca nie zrobi tego za darmo, ale przynajmniej uratuje się układy przed wyrzuceniem. Ale to oznacza również następne tygodnie zwłoki, zanim przeprogramowane układy trafią na produkcję.

Trzecim wyjściem jest zakup automatu do programowania i wykonywanie tego we własnym zakresie.

Daje to pełną kontrolę nad tym, co pojawia się na płytkach, a czas reakcji na wypuszczenie nowej wersji oprogramowania jest bardzo krótki. Istnieją nawet rozwiązania, które umożliwiają nie kupowanie osobnego automatu do programowania układów scalonych, tylko zintegrowanie tego procesu w już istniejącą linię montażu SMT.

Programator jako część linii produkcyjnej?

Fot. 3. Programator automatyczny PSV7000

Programatory, które można zintegrować z automatem pick & place wyglądają jak podajnik elementów i programują układ bezpośrednio przed położeniem na płytkę PCB. Taki pomysł jest bardzo ciekawy, bo nie mamy w tym przypadku żadnego bufora zaprogramowanych układów przed montażem.

Każda zmiana wersji oprogramowania jest natychmiastowa. Po drugie unika się pomyłek, że w produkcji zostały na płytkach zamontowane nie te układy (nie z tą wersją oprogramowania co trzeba). Niemniej wadą jest to, nie są to rozwiązania tanie i trzeba naprawdę produkcji realizowanej w dużej skali, żeby to się opłacało.

Z tego powodu bardzo wiele firm skłania się jednak do drugiej metody, a więc programowania gotowych układów na płytkach PCB.

Programowanie układów na już zmontowanych płytkach może być wykonane w trakcie testowania i uruchamiania zmontowanej płytki PCB. Nie wymaga (teoretycznie) zbyt dużych nakładów na pracownika, który tę pracę wykona, gdyż odbywa się to w trakcie uruchamiania układu, które ktoś i tak musi wykonać.

Niesie to jednak za sobą pewne uwarunkowania. Po pierwsze, projekt płytki musi uwzględniać taką możliwość. Po drugie, ze względu na to, że pamięć znajduje się już w gotowym układzie (z kontrolerami pamięci, innymi podłączonymi układami naokoło), nie da się tą metodą zaprogramować szybciej niż wynosi prędkość nominalna, a to zajmuje czas. Jednak koszt takiego rozwiązania jest relatywnie niski i najczęściej w tym kierunku podążali producenci układów elektronicznych.

IoT i większa złożoność funkcjonalna

Fot. 4. Programator RoadRunner

W ostatnich latach pojawiły się jednak nowe trendy, które diametralnie zmieniły równowagę sił w tym obszarze. Liczba produkowanych inteligentnych urządzeń z obszaru Internet of Th ings (IoT) już jest duża, a zgodnie z prognozami będzie jeszcze większa. Wszystko, co nas otacza, ma być bardziej inteligentne, programowalne, połączone ze sobą i ze światem.

Elektronizacja i automatyzacja dotyka procesów produkcyjnych, włączając w to testy i pomiary, opiekę zdrowotną, oświetlenie lub wytwarzanie energii plus wszelkie aplikacje konsumenckie takie jak Smart TV lub "elektronika ubieralna (smatwatche) oraz "connected cars". Liczba mikrokontrolerów w sprzęcie elektronicznym szybko rośnie i wszystkie te urządzenia muszą być w ten czy inny sposób zaprogramowane, aby mogły spełniać swoje funkcje.

Coraz więcej funkcji w jednym urządzeniu, coraz bardziej złożona inteligencja urządzeń, które nas otaczają, powodują, że czasy sterowania za pomocą kilku przycisków i skromnego wyświetlacza odchodzą do historii. Dzisiaj nawet mikrofalówki i kuchenki mają duże, dotykowe ekrany LCD, na których wyświetlany jest graficzny interfejs użytkownika.

Możliwość podłączenia kuchenki do Internetu, przeglądanie zdjęć na ekranie lodówki nie jest już też dzisiaj science fiction. Zmiana ta powoduje, że ilość danych, które trzeba zaprogramować, rośnie w szybkim tempie. Ze względu na mnogość funkcji oraz grafikę interfejsów GUI objętość danych sięga już nierzadko gigabajtów.

Zjawiska te powodują, że programowanie układów na zmontowanych płytkach zaczyna zajmować ogromną ilość czasu i czynność ta staje się wąskim gardłem w procesie produkcji. Co z tego, że koszt takiego stanowiska jest relatywnie niski, jeżeli uruchomienie jednego urządzenia wraz z zaprogramowaniem trwa czasami 20 a nawet więcej minut?

Nie da się zwiększać liczby takich stanowisk w nieskończoność, zwłaszcza że potrzeba pracowników, którzy obsłużą proces, a powierzchnia, na której trzeba taką produkcję zorganizować, też nie jest za darmo. Zewnętrzne centra programowania również odnotowują niespotykane dotąd wzrosty liczby programowanych układów. Pomimo inwestycji w nowe maszyny ich możliwości przerobowe stają się ograniczone.

Wszystkie te zjawiska powodują, że producenci elektroniki coraz częściej zaczynają interesować się automatycznym procesem programowania układów u siebie. Aktualny rozwój elektroniki i kierunek, w którym ona podąża, wskazują, że raczej się to nie zmieni, a wręcz przeciwnie - będzie to w najbliższych latach dominujący kierunek zmian.

Jan Tomaszewski
PB Technik Sp. z o.o.

www.pbtechnik.com.pl