Raspberry Pi Compute Module dla profesjonalistów
Dla osób śledzących na bieżąco rynek elektroniki jasne jest, że w planowaniu architektury urządzeń coraz częściej liczy się już nie tylko wydajność obliczeniowa czy niski pobór mocy, ale także czas, w którym nowe rozwiązanie może trafić do klienta końcowego. Ten ostatni parametr znalazł swoje zgrabne określenie w angielszczyźnie technicznej – time-to-market. Oczywiście ze względów tak finansowych, jak i strategicznych, każda firma chce jak najszybciej wprowadzić swoje urządzenia na rynek. Projektanci Raspberry Pi postanowili odpowiedzieć na potrzeby zawodowych projektantów systemów wbudowanych. Ich ukłonem w stronę profesjonalnych odbiorców jest linia modułów Raspberry Pi Compute Module.
Małe jest piękne…
… a jeszcze mniejsze jest nie tylko piękne, ale i efektywne. Raspberry Pi Compute Module stanowi bardzo dobry przykład właściwej odpowiedzi na rosnące potrzeby rynku. Dzięki modułom z tej linii produktowej, projektanci systemów nie muszą wybierać pomiędzy gotowymi, najczęściej bardzo kosztownymi komputerami do zabudowy, a ścieżką prowadzącą przez projektowanie dedykowanej płyty z procesorem, pamięciami i interfejsami. Nie da się ukryć, że zaprojektowanie systemu cyfrowego, pracującego na częstotliwościach od kilkuset megaherców do pojedynczych gigaherców jest nie tylko procesem skomplikowanym i prowadzonym zazwyczaj przez wąską grupę wyspecjalizowanych projektantów PCB – ale także przedsięwzięciem drogim pod względem logistyki. Prototypowanie oraz produkcja wielowarstwowych obwodów drukowanych dla miniaturowych układów BGA zawsze wiąże się z wysokimi kosztami, zarówno samej produkcji płytek, jak i specjalistycznego montażu. To wszystko sprawia, że w mniejszych partiach produkcyjnych często trzeba decydować się na kompromis, stosując albo tańsze układy o mniejszej wydajności obliczeniowej, albo gotowe rozwiązania, podnoszące koszt jednostkowy urządzenia za cenę krótkiego czasu wprowadzania gotowego produktu na rynek. I właśnie w takich zastosowaniach z pomocą przychodzą rozwiązania typu SoM (System On Module), na czele których stoi bohater tego artykułu – Raspberry Pi Compute Module.
Łączność ze światem, czyli interfejsy Raspberry Pi Compute Module
Zacznijmy od strony technicznej – Raspberry Pi Compute Module oferuje wszystko to, co nowoczesny system wbudowany mieć powinien. Oprócz klasycznych interfejsów komputerowych – takich, jak złącze HDMI i USB z obsługą OTG – na płytce znalazł się szereg lokalnych interfejsów szeregowych (dwie szyny I2C, dwie magistrale SPI, dwa interfejsy UART oraz dwa SDIO). Do dyspozycji projektantów są też interfejsy: równoległy DPI do obsługi wyświetlaczy LCD z protokołem RGB, szeregowe DSI (2- oraz 4-liniowe), a także 2- i 4-liniowe szyny CSI do obsługi modułów kamer. Jak to w Raspberry Pi bywa, nie zabrakło także wyprowadzeń GPIO, których w Raspberry Pi Compute Module mamy do dyspozycji aż 48. Co ciekawe, Raspberry Pi Compute Module obsługuje także wyjście wideo, zgodne z popularnymi dawniej standardami PAL oraz NTSC. Jeżeli zabraknie pamięci – choć o to w Raspberry Pi dość trudno – z pomocą przyjdzie interfejs SMI, pozwalający na dołączenie dodatkowej pamięci zewnętrznej NAND.
Implementacja w systemie docelowym
Ogromną zaletą modułów Raspberry Pi Compute Module jest łatwość integracji z płytą docelowego urządzenia. Ponieważ wszystkie niezbędne połączenia pomiędzy procesorem, a pamięciami są już gotowe, do projektanta końcowego należy wyłącznie wyprowadzenie potrzebnych interfejsów na złącza – a to zadanie jest już znacznie uproszczone, gdyż sprowadza się najczęściej do ułożenia jednej lub kilku par różnicowych, np. linii danych USB czy HDMI. Kontrola impedancji jest w takim projekcie nieporównanie prostsza, niż w przypadku procesora i pamięci umieszczonych bezpośrednio na głównej płycie urządzenia. Sam moduł natomiast pasuje rozmiarem do 200-pinowego slotu SODIMM – stąd implementacja najprostszego środowiska pracy dla Raspberry Pi Compute Module wymaga wmontowania dosłownie pojedynczych elementów dodatkowych.
Wersje Raspberry Pi Compute Module
Linia modułów SoM od fundacji Raspberry doczekała się już kilku edycji: oprócz pierwszej, wydanej w 2014 roku (z 1-rdzeniowym procesorem ARM o taktowaniu 700 MHz), pojawiły się też wersje Raspberry Pi Compute Module 3 oraz Raspberry Pi Compute Module 3 Lite – wyposażone już w mocniejszy, 4-rdzeniowy procesor ze wsparciem 64 bitów i taktowaniem 1,2 GHz, a w roku 2019 – kolejne dwie wersje, oznaczone 3+ oraz 3+ Lite (główna różnica to procesor BCM2837B0 zamiast poprzednika – BCM2837). Istotna różnica pomiędzy wersjami z dopiskiem „Lite” względem wersji podstawowych polega na zastosowanym rodzaju pamięci systemowej – wersja Lite może pracować tylko z zewnętrzną kartą pamięci (podłączoną do slotu na płycie docelowej urządzenia, poprzez GPIO), podczas gdy wersja „główna” ma wbudowaną pamięć eMMC (w wersjach 3+ dostępne pojemności to 8, 16 i 32 GB).
Zastosowania Raspberry Pi Compute Module
Miniaturowe komputery SoM od Raspberry są dedykowane przede wszystkim do zabudowy w urządzeniach końcowych – nie ma tutaj szczególnych ograniczeń co do rodzaju urządzeń, warto tylko wspomnieć, że z „malinowych” modułów korzystają już dziś przeróżne branże, od elektroniki codziennego użytku po zastosowania przemysłowe. Ciekawostką jest fakt, że moduł spotkał się z aktywnym zainteresowaniem branży kosmicznej – ze względu na małe wymiary, wysoką jakość i efektywność obliczeniową, trafił do miniaturowych satelitów (słusznie zwanych mianem CubeSat) – w tym do projektu AAReST, którego wystrzelenie w przestrzeń kosmiczną może stanowić znakomitą próbę niezawodności Raspberry Pi. Trzeba bowiem szczerze przyznać, że biorąc pod uwagę niewyobrażalne koszty umieszczenia urządzeń na orbicie okołoziemskiej – testy, które muszą przejść wszystkie podsystemy satelitarne przed startem mogą być przebyte pozytywnie jedynie przez najwyższej klasy urządzenia. Na koniec powiedzmy o jeszcze jednym potwierdzeniu poważnego podejścia producentów Raspberry Pi Compute Module do profesjonalnych zastosowań. W oficjalnych materiałach deklarują oni utrzymanie produkcji modułów w najnowszej wersji 3+ aż do stycznia 2026. A to szczególnie ważne, gdy na module mają bazować naprawdę doniosłe projekty.