Niniejszym artykułem chciałem przybliżyć ciekawą i mało znaną stosunkowo młodą platformę przeznaczoną dla niedużych komputerów mobilnych i przewoźnych. Moduły do niej produkowane są przez kilku renomowanych producentów: Adlink, Advantech, Axiomtek, Congatec, DFI, ISEE, Kontron, MSC, SECO, Tessolve, TQ-Group.
SMARC (“Smart Mobility ARChitecture”), jest opracowaniem wszechstronnego modułowego komputera w niewielkiej obudowie. Z założenia moduł jest przeznaczony do aplikacji wymagających stosunkowo niewielkiego poboru mocy, przy zachowaniu niskich kosztów i wysokiej wydajności.
Cechą charakterystyczną jest otwartość i darmowa dostępność specyfikacji standardu oraz sprzętu (np. specyfikacja COM Express jest płatna).
Pierwszy opis standardu w wersji 1.0 pojawił się 9 lipca 2013r., natomiast opis sprzętu rok później 29 maja 2014.
Obecnie jest dostępny opis standardu w wersji 2.0, z 23 marca 2017, oraz opis sprzętu w wersji 2.1.1 z 20 maja 2020r. Jest to wersja dojrzała pozbawiona niedogodności wcześniejszych i uwzględniająca przyszłe potrzeby.
Moduł został zdefiniowany w dwóch formatach: 82mm x 50mm i 82mm x 80mm (ten pierwszy jest częściej spotykany).
Wykorzystuje on złącze o 314 kontaktach w rastrze 0,5mm, z których 33 zostały wykorzystane na zasilanie i masę, a pozostałe 281 są wykorzystane jako linie interfejsów. Do modułu można maksymalnie dostarczyć 25W mocy, dla porównania moc modułu Qseven nie może przekraczać 12W. Jednak najczęściej stosuje się moduły pobierające moc kilku watów (ok. 6-7W). Standard przewiduje również możliwość zasilania z zewnętrznego akumulatora i obsługi ładowarki.
Pełen opis jest dostępny pod adresem:
https://sget.org/standards/smarc/
Jako jednostki obliczeniowe najczęściej można spotkać procesory z rodziny: x86 oraz ARM, ale są również dostępne w wersji z FPGA.
Poniżej zdjęcia wybranych modułów:
Moduł pełnowymiarowy z procesorem Intel Atom:
Moduł 1/2 rozmiaru z procesorem AMD Ryzen:
Moduł 1/2 rozmiaru z procesorem ARM i.MX8M:
Poniżej bogata lista zdefiniowanych interfejsów:
Interfejsy wyświetlacza
- LVDS LCD jeden lub dwa kanały 18 lub 24 bitowe
Obsługa sygnałów panela LCD: I2C, PWM i sygnał właczenia zasilania
Multipleksowany z eDP i MIPI DSI
- Port HDMI multipleksowany z DP++ z pełną implementacją
- Dodatkowy DisplayPort++ z pełną implementacją
Interfejsy kamery
- Szeregowy: MIPI CSI (2 linie) + MIPI CSI (2 lub 4 linie)
- Dwa dodatkowe interfejsy MIPI CSI dostępne na opcjonalnych złączach
Interfejs SDIO
- 4-ro bitowy interfejs kart SD
Interfejsy SPI
- Dwa interfejsy SPI
Jeden z nich może być zaimplementowany jako eSPI (x86) lub QSPI (ARM)
Interfejsy Audio
- Jeden interfejs I2S
- Jeden interfejs HDA multipleksowany z drugim interfejsem I2S
Interfejsy I2C
- Pięć interfejsów
Zarządzania zasilaniem
Ogólnego przeznaczenia
Dwa interfejsy kamer
Wykrywania ID wyświetlacza LCD
- Wyodrębniony od obsługi HDMI
Interfejsy asynchronicznych portów szeregowych
- Cztery porty szeregowe
Dwa dla danych oraz z kontrolą przepływu (RXD, TXD, RTS#, CTS#), poziomy logiczne
Dwa tylko dla danych ( RXD, TXD), poziomy logiczne
Interfejs CAN Bus
- Dwa interfejsy ( RXD, TXD), poziomy logiczne
Interfejsy USB
- Sześć portów
- Dwa jako USB 3.2, pozostałe USB 2.0
- Dwa porty USB OTG
- porty USB z obsługą sygnalizacji (VBUS enable / Przekroczenie prądu, sygnały OTG)
PCI Express
- Cztery linie PCIe
- PCIe Gen. 1, Gen. 2 lub Gen. 3 (uzależnione od modułu)
SERDES
- Alternatywne użycie PCIE_C i PCIE_D jako interfejsu SERDES
- Jeden interfejs MDIO
Interfejs SATA
- Jeden interfejs SATA
- Gen. 1, 2 lub 3 (uzależnione od modułu)
Porty Gigabitowe Ethernetowe
- Dwa analogowe interfejsy GBE MDI
- Brak transformatorów na module
- Dostępny sygnał synchronizacji IEEE1588
Sieć bezprzewodowa
- Dostępna opcjonalnie
Interfejs Timer’a Watchdog’a
Wejścia / Wyjścia ogólnego przeznaczenia
- 14x GPIO
- Dostępne funkcje specjalne
PWM / Tachometr (obsługa wentylatora)
Obsługa kamer
Reset HD Audio
Sygnały zarządzania systemem i zasilaniem
- Reset wyjście i Reset wejście
- Przycisk włączenia / wyłączenia zasilania
- Status zasilania modułu
- Sygnały obsługi baterii i ładowarki baterii
- Sygnał włączenia zasilania płyty bazowej
Opcje startu systemu
- Trzy piny umożliwiające wybór nośnika, którego uruchomiony będzie system
Z pamięci modułu na szynie SPI
Z pamięci modułu eMMC Flash
Z pamięci modułu NAND / NOR (definiowana przez dostawcę)
Zdalny rozruch z portu Ethernet lub szeregowego (definiowany przez dostawcę)
Z pamięci SPI na płycie bazowej
Z karty SD na płycie bazowej
Z portu SATA na płycie bazowej
Rozmiar pamięci RAM zawiera się zwykle w przedziale 0,5 - 8GB, zaś pamięci Flash to 4 - 64GB.
Jak widać w zależności od potrzeb można po zaprojektowaniu płyty bazowej dosyć elastycznie i precyzyjnie dokonać wyboru modułu pod ostateczną wersję urządzenia.
Często jest tak, że nie wszystkie są jednocześnie dostępne, zależy to od użytego procesora i wersji wykonania modułu, niektóre interfejsy mogą być w ogóle nie dostępne szczególnie w tańszych wersjach. Zdarza się, że w przypadku mniej wydajnych procesorów zamiast interfejsu USB 3.2 jest dostępny tylko USB 2.0 i tylko w postaci czterech portów, a nie sześciu.
Ceny modułów wahają się w zależności od wyposażenia, pamięci i mocy procesora od ok. 60€ do ok. 300€.
Ciekawym wykonaniem może pochwalić się f-ma ADLINK, która opracowała platformę uruchomieniową w standardzie przemysłowym o nazwie: I-Pi-SMARC-PX30 z procesorem Rockchip PX30 i deklarowanej dostępności przez 10 lat; aktualna cena to 125$ bez WiFi i 136$ z interfejsem WiFi.
https://www.ipi.wiki/
Poniżej zestawienie niektórych producentów i ich dystrybutorów w Polsce:
Adlink – Guru, Maritex
Advantech – CSI, Glyn, Rutronik
Axiomtek – Maritex
Congatec – CSI
DFI – ME Embedded
Kontron – Kontron
MSC Technologies – Avnet SILICA
SECO – CSI, Rutronik
Polecam zainteresowanie się tymi modułami szczególnie jeśli istnieje potrzeba zbudowania urządzenia o podwyższonej niezawodności oraz zapewnienia ciągłości dostaw przez dłuższy czas. Moduły są wykonywane w znakomitej większości na komponentach o długim wsparciu i wydłużonym okresie dostępności. Jak na sprzęt do zastosowań przemysłowych przystało oprócz wersji 0 – 70C, prawie wszystkie moduły mają również wersje na zakres temperatur -40 - +85C.
SMARC (“Smart Mobility ARChitecture”), jest opracowaniem wszechstronnego modułowego komputera w niewielkiej obudowie. Z założenia moduł jest przeznaczony do aplikacji wymagających stosunkowo niewielkiego poboru mocy, przy zachowaniu niskich kosztów i wysokiej wydajności.
Cechą charakterystyczną jest otwartość i darmowa dostępność specyfikacji standardu oraz sprzętu (np. specyfikacja COM Express jest płatna).
Pierwszy opis standardu w wersji 1.0 pojawił się 9 lipca 2013r., natomiast opis sprzętu rok później 29 maja 2014.
Obecnie jest dostępny opis standardu w wersji 2.0, z 23 marca 2017, oraz opis sprzętu w wersji 2.1.1 z 20 maja 2020r. Jest to wersja dojrzała pozbawiona niedogodności wcześniejszych i uwzględniająca przyszłe potrzeby.
Moduł został zdefiniowany w dwóch formatach: 82mm x 50mm i 82mm x 80mm (ten pierwszy jest częściej spotykany).
Wykorzystuje on złącze o 314 kontaktach w rastrze 0,5mm, z których 33 zostały wykorzystane na zasilanie i masę, a pozostałe 281 są wykorzystane jako linie interfejsów. Do modułu można maksymalnie dostarczyć 25W mocy, dla porównania moc modułu Qseven nie może przekraczać 12W. Jednak najczęściej stosuje się moduły pobierające moc kilku watów (ok. 6-7W). Standard przewiduje również możliwość zasilania z zewnętrznego akumulatora i obsługi ładowarki.
Pełen opis jest dostępny pod adresem:
https://sget.org/standards/smarc/
Jako jednostki obliczeniowe najczęściej można spotkać procesory z rodziny: x86 oraz ARM, ale są również dostępne w wersji z FPGA.
Poniżej zdjęcia wybranych modułów:
Moduł pełnowymiarowy z procesorem Intel Atom:

Moduł 1/2 rozmiaru z procesorem AMD Ryzen:

Moduł 1/2 rozmiaru z procesorem ARM i.MX8M:

Poniżej bogata lista zdefiniowanych interfejsów:
Interfejsy wyświetlacza
- LVDS LCD jeden lub dwa kanały 18 lub 24 bitowe
Obsługa sygnałów panela LCD: I2C, PWM i sygnał właczenia zasilania
Multipleksowany z eDP i MIPI DSI
- Port HDMI multipleksowany z DP++ z pełną implementacją
- Dodatkowy DisplayPort++ z pełną implementacją
Interfejsy kamery
- Szeregowy: MIPI CSI (2 linie) + MIPI CSI (2 lub 4 linie)
- Dwa dodatkowe interfejsy MIPI CSI dostępne na opcjonalnych złączach
Interfejs SDIO
- 4-ro bitowy interfejs kart SD
Interfejsy SPI
- Dwa interfejsy SPI
Jeden z nich może być zaimplementowany jako eSPI (x86) lub QSPI (ARM)
Interfejsy Audio
- Jeden interfejs I2S
- Jeden interfejs HDA multipleksowany z drugim interfejsem I2S
Interfejsy I2C
- Pięć interfejsów
Zarządzania zasilaniem
Ogólnego przeznaczenia
Dwa interfejsy kamer
Wykrywania ID wyświetlacza LCD
- Wyodrębniony od obsługi HDMI
Interfejsy asynchronicznych portów szeregowych
- Cztery porty szeregowe
Dwa dla danych oraz z kontrolą przepływu (RXD, TXD, RTS#, CTS#), poziomy logiczne
Dwa tylko dla danych ( RXD, TXD), poziomy logiczne
Interfejs CAN Bus
- Dwa interfejsy ( RXD, TXD), poziomy logiczne
Interfejsy USB
- Sześć portów
- Dwa jako USB 3.2, pozostałe USB 2.0
- Dwa porty USB OTG
- porty USB z obsługą sygnalizacji (VBUS enable / Przekroczenie prądu, sygnały OTG)
PCI Express
- Cztery linie PCIe
- PCIe Gen. 1, Gen. 2 lub Gen. 3 (uzależnione od modułu)
SERDES
- Alternatywne użycie PCIE_C i PCIE_D jako interfejsu SERDES
- Jeden interfejs MDIO
Interfejs SATA
- Jeden interfejs SATA
- Gen. 1, 2 lub 3 (uzależnione od modułu)
Porty Gigabitowe Ethernetowe
- Dwa analogowe interfejsy GBE MDI
- Brak transformatorów na module
- Dostępny sygnał synchronizacji IEEE1588
Sieć bezprzewodowa
- Dostępna opcjonalnie
Interfejs Timer’a Watchdog’a
Wejścia / Wyjścia ogólnego przeznaczenia
- 14x GPIO
- Dostępne funkcje specjalne
PWM / Tachometr (obsługa wentylatora)
Obsługa kamer
Reset HD Audio
Sygnały zarządzania systemem i zasilaniem
- Reset wyjście i Reset wejście
- Przycisk włączenia / wyłączenia zasilania
- Status zasilania modułu
- Sygnały obsługi baterii i ładowarki baterii
- Sygnał włączenia zasilania płyty bazowej
Opcje startu systemu
- Trzy piny umożliwiające wybór nośnika, którego uruchomiony będzie system
Z pamięci modułu na szynie SPI
Z pamięci modułu eMMC Flash
Z pamięci modułu NAND / NOR (definiowana przez dostawcę)
Zdalny rozruch z portu Ethernet lub szeregowego (definiowany przez dostawcę)
Z pamięci SPI na płycie bazowej
Z karty SD na płycie bazowej
Z portu SATA na płycie bazowej
Rozmiar pamięci RAM zawiera się zwykle w przedziale 0,5 - 8GB, zaś pamięci Flash to 4 - 64GB.
Jak widać w zależności od potrzeb można po zaprojektowaniu płyty bazowej dosyć elastycznie i precyzyjnie dokonać wyboru modułu pod ostateczną wersję urządzenia.
Często jest tak, że nie wszystkie są jednocześnie dostępne, zależy to od użytego procesora i wersji wykonania modułu, niektóre interfejsy mogą być w ogóle nie dostępne szczególnie w tańszych wersjach. Zdarza się, że w przypadku mniej wydajnych procesorów zamiast interfejsu USB 3.2 jest dostępny tylko USB 2.0 i tylko w postaci czterech portów, a nie sześciu.
Ceny modułów wahają się w zależności od wyposażenia, pamięci i mocy procesora od ok. 60€ do ok. 300€.
Ciekawym wykonaniem może pochwalić się f-ma ADLINK, która opracowała platformę uruchomieniową w standardzie przemysłowym o nazwie: I-Pi-SMARC-PX30 z procesorem Rockchip PX30 i deklarowanej dostępności przez 10 lat; aktualna cena to 125$ bez WiFi i 136$ z interfejsem WiFi.

https://www.ipi.wiki/
Poniżej zestawienie niektórych producentów i ich dystrybutorów w Polsce:
Adlink – Guru, Maritex
Advantech – CSI, Glyn, Rutronik
Axiomtek – Maritex
Congatec – CSI
DFI – ME Embedded
Kontron – Kontron
MSC Technologies – Avnet SILICA
SECO – CSI, Rutronik
Polecam zainteresowanie się tymi modułami szczególnie jeśli istnieje potrzeba zbudowania urządzenia o podwyższonej niezawodności oraz zapewnienia ciągłości dostaw przez dłuższy czas. Moduły są wykonywane w znakomitej większości na komponentach o długim wsparciu i wydłużonym okresie dostępności. Jak na sprzęt do zastosowań przemysłowych przystało oprócz wersji 0 – 70C, prawie wszystkie moduły mają również wersje na zakres temperatur -40 - +85C.
Cool! Ranking DIY