270 likes | 387 Views
WPAM W3 – Anatomia urządzenia mobilnego. Piotr Gawrysiak pgawrysiak@supermedia.pl Politechnika Warszawska Instytut Informatyki Zakład Systemów Informacyjnych. 2010. Projekt! Projekt! Projekt!. Uprasza się o zapisywanie się na projekt Na razie jest 9 tematów, mało…
E N D
WPAMW3 – Anatomia urządzenia mobilnego Piotr Gawrysiak pgawrysiak@supermedia.pl Politechnika Warszawska Instytut Informatyki Zakład Systemów Informacyjnych 2010
Projekt! Projekt! Projekt! • Uprasza się o zapisywanie się na projekt • Na razie jest 9 tematów, mało… • Zapisy najlepiej poprzez zgłoszenie się poprzez arkusz Google Docs: • https://spreadsheets.google.com/ccc?key=0Akf_Zh8XRxAkdDVjei0tWHd4czB0SktScFlTUC1nTlE&hl=en&authkey=CJn40qkO • Dla osób zainteresowanych platformą BADA firmy SAMSUNG – istnieje możliwość wypożyczenia telefonów na czas realizacji projektu z działu R&D Samsunga
Intermedium - Dlaczego sprzęt jest istotny? • W przypadku urządzeń stacjonarnych rozwój sprzętu „prześcignął” rozwój oprogramowania – jak dawno? • Tworząc oprogramowanie dla tych urządzeń często zastanawiamy się jak wykorzystać w pełni możliwości sprzętu – i często nam się to nie udaje • Przypomnienie – „Prawo” Moore’a • Urządzenia mobilne w dalszym ciągu jeszcze są projektowane na zasadzie kompromisu zasobów – wydajność kluczowych technologii bowiem nie wzrasta eksponencjalnie
Intermedium - Leaking abstractions… • Druga przyczyna istotności (przynajmniej potencjalnej) cech sprzętu to niedoskonałe ich „przesłanianie” przez API i paradygmaty języków programowania „All non-trivial abstractions are leaky” Joel Spolsky Przykłady: • TCP/IP – teoretycznie gwarancja dostarczenia danych, ale… • SQL – struktura bazy danych nie jest widoczna z poziomu zapytania, ale… • GPRS/WiFi – z poziomu API zapewniają podobną funkcjonalność, ale… • itd.
System on a chip • Większość układów elektronicznych niezbędnych do realizacji funkcjonalności współczesnego telefonu (w szczególności – smartphone) realizowane jest w postaci pojedynczego bloku SoC • Najbardziej popularna platforma (2010) – ARM Cortex A8, zestaw instrukcji ARM v7, za chwilę pewnie Cortex A9 (wielordzeniowy) wykorzystana m.in. w Nvidia Tegra 2. Przykłady nazw kodowych producentów: • Nvidia - Tegra • Qualcomm - Snapdragon • Texas Instruments – OMAP • Marvell – PXA (ale tu mamy architekturę XScale, czyli ARMv5) • Apple - Apple A4 (ale i tak produkowane przez Samsunga - Hummingbird) • Nb. np. w iPhone 3GS Samsung APL0298C05
System on a chip Przykład nieco starszej platformy (rodzina ARM11) ale bardzo popularnej (m.in. Nokia E90, Zune, HTC TyTN II, HTC Dream itp.)
System on a chip … i nowszej (ale referencyjnej) dla ARM Cortex A9
Procesor • W większości przypadków mieć będziemy do czynienia z procesorem o architekturze ARM (choć pretendent – Intel Atom). Powody są raczej historyczne niż technologiczne… • 1983 – firma Acorn Computer Ltd. (producent komputera BBC Micro) potrzebuje koprocesora dla nowej generacji urządzeń – zamiast kupować decyduje się spróbować zaprojektować taki procesor samemu. Aby było to możliwe musi być prosty – stąd wybór architektury RISC • 1985 – we współpracy z VLSI Technologies powstaje procesor ARM2 (Acorn RISC Machine) – być może najbardziej prymitywny procesor 32 bitowy na świecie (tylko 30 tyś. tranzystorów, brak cache, brak mikroinstrukcji) – ale dzięki temu jest on bardzo energooszczędny • 1986 – pierwszy komputer wykorzystujący ARM2 jako „główny” procesor (Acorn Archimedes) • Lata 90-te – partnerstwo Apple, VLSI i Acorn – opracowane kolejne wersje procesora dla potrzeb urządzeń „wbudowanych” (ARM3), powstaje spin-off Advanced RISC Machines, kolejne wersje architektury (ARM6 – Apple Newton) tylko są produkowane, ale zaczynają być licencjonowane (pierwszy licencjobiorca ARM6 – firma DEC, która na tej podstawie opracowuje platformę StrongARM)
Procesor • Prosta procedura licencyjna oraz dostępność IP w postaci łatwej do integracji z innymi komponentami (np. VHDL) ułatwia tworzenie systemów SoC – pojawia się coraz więcej firm licencjonobiorców (m.in. Intel – XScale), a tym samym potencjalny producent sprzętu może wybierać wśród wielu różniących się ceną i możliwościami, ale wysoce kompatybilnych urządzeń • Specjalizacja nawet w ramach pojedynczej rodziny (np. w ramach ARM Cortex mamy wersje A – application, M - microcontroller, oraz R – real time). • Nb. dlaczego wciąż produkowane są urządzenia wyposażone w starsze wersje architektury ARM (np. ARMv5)? Otóż koszt licencji starszych wersji jest dużo niższy niż najnowszych. • Do stycznia 2008 roku wyprodukowano ponad 10 miliardów rdzeni procesorów z rodziny ARM… • Wybrane cechy architektury: • load/store – brak bezpośrednich operacji na komórkach pamięci, tylko na rejestrach • rejestrów jest dużo (po 12 rejestrów 32bit dla każdego trybu pracy procesora) • dedykowany 32 bitowy rejestr przesuwny (dla operacji arytmetycznych) • prawie każda instrukcja może być wykonana warunkowo • większość instrukcji wykonywana w jednym cyklu maszynowym
Akceleratory • Podobnie jak to ma miejsce w urządzeniach typu „desktop” procesor „główny” współpracuje z różnego rodzaju akceleratorami, wspierającymi wykonanie specjalizowanych obliczeń: • Akceleracja grafiki trójwymiarowej • Główny gracz na rynku: Imagination Technologies Ltd. Firma produkowała dedykowane karty graficzne dla komputerów stacjonarnych i wczesnych konsolach (np. Dreamcast) w latach 90-tych (m.in. konkurując z 3dfx i Nvidia) ale tą konkurencję przegrała, koncentrując się w zamian na rynku urządzeń mobilnych. Obecnie nie produkuje własnego sprzętu, ale licencjonuje rozwiązania firmom trzecim (brzmi znajomo?) • Typowy akcelerator: Imagination Technologies PowerVR SGX – pixel & vertex shaders, Open GL 2.0, używany m.in. w iPhone 4, Samsung Galaxy S, Motorola Droid (oczywiście jako część platformy SoC) • Inne: dekodowanie dźwięku i wideo (codec), bezpośredni dostęp do DSP itd. • To, iż mamy wbudowany akcelerator nie wystarcza – potrzebne są jeszcze sterowniki (vide casus HTC TyTN, HTC Diamond – Windows Mobile)
Pamięć operacyjna i masowa • Procesor potrzebuje pamięci operacyjnej – będzie to przede wszystkim typowa pamięć DRAM, obecnie zwykle 512MB (Nexus One, iPhone4), wcześniej typowo 128MB (iPhone 3G) • Potrzebujemy jednak także pamięci masowej. Obecnie najbardziej popularnym (właściwie jedynym…) rodzajem stosowanej pamięci jest pamięć typu flash używana zarówno do przechowywania danych, jak też i firmware • NAND flash – duża pojemność i szybkość zapisu/odczytu, ale dostęp sekwencyjny – konceptualnie może być traktowana jako dysk twardy • NOR flash – stosunkowo mała pojemność i szybkość zapisu, ale dostęp typu „random access” – możliwe wykonanie execute in place • Obie technologie są podatne na „zużywanie” (typowo ok. 100 tyś. zapisów / blok komórek) – typowo „wear levelling” realizowany przez kontroler pamięci, choć niektóre systemy operacyjne dodatkowo stosują system plików dedykowany dla pamięci flash (np. Android – YAFFS, ale np. Windows CE – Windows Mobile i – zapewne – Windows Phone 7 – Transactional FAT) /dev/block/mtdblock0 /system yaffs2 ro 0 0/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
Pamięć masowa • Wbudowanej (czytaj – przylutowanej do płyty głównej urządzenia) pamięci flash może być dużo albo mało - wszystko zależy od strategii producenta urządzenia, a ta zależna jest od względów ekonomicznych, ale także od tego, czy użytkownikowi pozwolić należy na korzystanie z zewnętrznych nośników danych. I tak np.: • iPhone 3 – 8 lub 16 GB • iPhone 4 – 16 lub 32 GB • HTC Dream (G1) – 256 MB + slot microSD • Nexus One – 512 MB + slot microSD • Nokia N900 – 32 GB + slot microSD • HTC Athena – 8GB (dysk twardy) + slot miniSD • Slot kart pamięci (obecnie właściwie wyłącznie microSD, w starszych modelach urządzeń czasem miniSD) może mieć różne ograniczenie pojemności obsługiwanych kart (np. HTC Dream 16GB, Nexus One 32GB) i może być (lub nie) typu hot-swap (czytaj – czy trzeba wyłączać urządzenie żeby wymienić kartę…) • Pamięć masowa może (jeśli pozwala na to system operacyjny) zostać udostępniona urządzeniu hosta USB. Oznacza to jednak zwykle jej ukrycie przed aplikacjami działającymi na urządzeniu mobilnym.
Wyświetlacz • Obecnie właściwie wyłącznie wyświetlacz AMOLED (nie wymagający podświetlania – poszczególne piksele generują swiatło) lub TFT LCD pracujący w świetle przechodzącym (czytaj – podświetlany). Niektóre wcześniejsze urządzenia bywały wyposażone w wyświetlacz transreflective (np. Compaq iPaq). • Obie powyższe technologie są właściwie bezużyteczne w bezpośrednim świetle słonecznym. Najbardziej spektakularne efekty obserwować można na urządzeniach typu tablet (Apple iPad) • Alternatywa #1 – wyświetlacze typu eInk – stosowane w czytnikach książek elektronicznych. Jak na razie jedynie czarno-białe (istnieją prototypy wyświetlaczy kolorowych), czas odświeżania ~1s, ale nie wymagają zasilania do podtrzymania wyświetlania obrazu statycznego • Alternatywa #2 – wyświetlacze typu PixelQi – hybryda klasycznego wyświetlacza LCD, oraz wyświetlacza transreflective (nawet o wyższej rozdzielczości) ale czarno-białego • Typowe rozdzielczości – 320x240 (QVGA), 320x480 (HVGA), 640x480 (VGA), 800x480 (WVGA) – np. Nexus One, 960x640 iPhone („retina display” – 326 dpi) • Do powyższych rozdzielczości „standardowych” czasami producenci dodają pasek kilkunastu-kilkudziesięciu pikseli (np. Moto Droid – 854x480) • DPI obecnie zwykle > 200 dpi == przeciętny człowiek nie zauważa poszczególnych pikseli
Touchscreen • Dwa podstawowe (w przypadku urządzeń mobilnych – samych technologii „dotykowych” jest więcej”) rozwiązania: • Panel rezystancyjny (ang. resistive): • Wysoka rozdzielczość • Prosta konstrukcja • Odporność na ekstremalne warunki środowiskowe (np. oświetlenie) • Trudność w realizacji urządzeń typu „multi-touch” • Konieczność wywarcia sporego nacisku na ekran („touch and press”) i tym samym zwykle zastosowania rysika (to zaleta czy wada?) • Panel pojemnościowy (ang. capacitive): • Niska rozdzielczość i dokładność • Wystarczy muśnięcie ekranu opuszkiem palca • Niemożliwość wykorzystania klasycznego rysika • Niezbędny kontakt elektryczny ze skórą – niemożliwość pracy np. w rękawiczkach • Stosunkowo prosta implementacja • W obydwu powyższych przypadkach otrzymujemy zwykle informację o współrzędnych dotkniętego punktu – które należy w przypadku ekranu pojemnościowego traktować jedynie jako przybliżone
Multi touch • Możliwość rozpoznania więcej niż jednego miejsca dotknięcia ekranu jest podstawą wielu współczesnych rozwiązań mobilnych interfejsów użytkownika (gestures, w tym w szczególności słynne pinch-to-zoom którego zresztą nie wymyślił nikt z Apple tylko Myron Krueger w 1983 roku • Głowny dostawca kontrolerów multitouch – Synaptics – technologia powoli znajduje także zastosowanie w urządzeniach klasycznych (np. touchpady) • Większość urządzeń nie będzie dysponowała możliwością jednoczesnego rozpoznania więcej niż kilku dotkniętych punktów (np. iPhone – 5) • W wielu przypadkach mamy do czynienia jedynie z „udawaną” technologią multi-touch np. GEST (Gesture Enhanced Single Touch) – np. Nexus One • Do efektów takich jak np. reklamowane przez PerceptivePixel jeszcze trochę brakuje…
Komunikacja – „modem” komórkowy • W większości urządzeń będziemy mieli do czynienia z oddzielnym procesorem (z własnym firmware, pamięcią RAM itd.) który komunikować będzie się z infrastrukturą sieci komórkowej. • W szczególności możliwe jest (a raczej powinno być) wyłączenie tego modułu („airplane mode”), co nie powinno wpływać na działanie pozostałych komponentów urządzenia • Do firmware tego właściwie nie mamy dostępu, możemy komunikować się wyłącznie poprzez API (nb. słowo „modem” jest tu trochę niewłaściwe – chodzi także o rozmowy głosowe) • Kwestia nazewnictwa – firmware modemu komórkowego bywa nazywany „baseband” (vide Apple iOS), ale u większości innych producentów ta nazwa określa całość firmware urządzenia • Technologie komunikacji (data) • (H)CSD – właściwie już nieużywana, max. 43/14,4 kbit/s • GPRS – max 80/40 kbit/s • EDGE – max 230/60 kbit/s • UMTS (HSDPA/HSUPA) – max 7,2/1,9 Mbit/s • Wciąż bałagan dot. częstotliwości – Europa 2100 MHz, USA 850, 1900 i 1700 MHz (T-Mobile) • Komunikacja 3G w niektórych wypadkach może być bardziej energochłonna niż WiFi
Komunikacja - WiFi • Drugą podstawową technologią komunikacji jest WiFi – zwykle 802.11b/g (ostatnio także 802.11n) • Dość nieefektywna jeśli chodzi o energochłonność – przynajmniej podczas transmisji danych, samo skanowanie dostępnych sieci bezprzewodowych może być wykonywane tak, aby zminimalizować straty energii (ew. posłużyć można się tu rozwiązaniami lokalizacyjnymi typu Y5 Battery Saver) • Potencjalnie niebezpieczna (dla zdrowia…) jako medium transmisji danych przy rozmowach VoIP • Niektóre platformy (np. Android) miewają spore problemy z przełączeniem transmisji pomiędzy GPRS a WiFi, szczególnie na granicy zasięgu • Nie zawsze API systemu operacyjnego pozwala nam na pełną kontrolę modułu 802.11 – przykład Android / iPhone i dzielenie połączenia 3G (tzw. phone tethering) niemożliwe do zrealizowania w nieodblokowanym (non-rooted) telefonie • W najbliższym czasie zapewne do pewnego stopnia będzie zastępować Bluetooth (np. przy transmisji plików) - WiFi-Direct (dawniej WiFi Peer-To-Peer)
Komunikacja – Bluetooth, Irda • Technologie komunikacji na niewielką odległość (Bluetooth – kilkanaście metrów, Irda – kilkadziesiąt centymetrów) służące przede wszystkim do transmisji plików pomiędzy urządzeniem mobilnym a komputerem stacjonarnym, oraz do podłączania urządzeń zewnętrznych (np. zestaw słuchawkowy) • Irda – transmisja w podczerwieni, właściwie wyparta już całkowicie przez Bluetooth z oczywistych powodów (choć ma i zalety – wysokie bezpieczeństwo transmisji, niski pobór energii) • Sama obecność chipsetu Bluetooth w urządzeniu nie oznacza, iż będzie ono zapewniało pełną funkcjonalność porównywalną z funkcjonalnością urządzenia stacjonarnego • Przykłady zastosowań (profile Bluetooth): • Transmisja dźwięku wysokiej jakości (A2DP) • Transmisja danych pakietowych (DUN) • Podłączanie urządzeń interfejsu użytkownika (klawiatury, myszy itp.) (HID) • Transmisja dźwięku niskiej jakości i obsługa połączeń telefonicznych (HSP) • Dzielenie połączenia internetowego, sieć osobista (PAN) • Wymiana kontaktów z książki adresowej (PBA) • Itd. • Podstawowy protokół transmisji danych (OBEX) jest taki sam dla Irda i Bluetooth
GPS, A-GPS • Odbiornik GPS pozwala na lokalizację z dokładnością wystarczającą do celów nawigacji miejskiej • Aby był efektywny musi „widzieć” przynajmniej 3 satelity – co oznacza iż jest zupełnie nieefektywny w pomieszczeniach (ale nie tylko – np. nie działa także w lesie, szczególnie po deszczu) • Zanim otrzymamy informację o położeniu (fix) musi upłynąć pewien czas (nawet kilka minut) niezbędny na odebranie danych od satelitów • Powyższy czas można zminimalizować poprzez wstępne obliczenie (czy też raczej pobranie z serwera) spodziewanej pozycji satelitów, czy też dokładne określenie czasu w danej lokalizacji – A-GPS • Dodatkowo możliwe jest określenie „zgrubnej” lokalizacji użytkownika dzięki triangulacji stacji bazowych sieci GSM, lub namierzeniu sygnałów WiFi (np. SkyHook)
Kamera • Cyfrowy aparat fotograficzny • Dostęp do funkcji aparatu uzależniony od systemu operacyjnego, od pełnej kontroli (Android) aż do jedynie możliwości wyzwolenia „migawki” (Windows Phone 7) • Jakość zdjęć uzależniona od jakości matrycy (np. 5 Mpix – iPhone 4, 3Mpix – iPhone 3GS) ale przede wszystkim od jakości układu optycznego, dostępności funkcji autofocus, oraz dodatkowego oświetlenia (LED/Xenon) • Jakość filmów uzależniona dodatkowo od mocy procesora oraz sprzętowego wspomagania kompresji wideo – dość rzadko wciąż spotykana możliwość nagrywania wideo ~25 fps / 720p • Układ optyczny bywa wbudowany „na stałe” (iPhone, Nexus One) lub też chroniony przez mechaniczną zaślepkę, której przesunięcie / odblokowanie jest niezbędne do uruchomienia aparatu (Nokia N900) • Możliwe jest także wyposażenie urządzenia w drugą kamerę „przednią” do celów wideokonferencji, zwykle o rozdzielczości ograniczonej do VGA i bez funkcji autofocus
Drobiazgi • To oczywiście nie wszystko Inne elementy sprzętu, warte wymienienia, obejmują m.in. • Czujniki – akcelerometr (3-osiowe określenie pozycji urządzenia w polu grawitacyjnym Ziemii oraz ew. przyspieszenia – zwykle w postaci urządzeń typu MEMS), magnetometr – tj. kompas, czujnik zbliżeniowy (proximity sensor) – pozwala na wyłączenie ekranu, oraz przede wszystkim panelu dotykowego po przysunięciu urządzenia do policzka (podczas rozmowy telefonicznej), czujnik światła otaczającego – do automatycznej regulacji jasności ekranu • Złącza JTAG – zwykle nie wyprowadzane na zewnątrz, pozwalają na debugging sprzętu, wprowadzanie elementów w tryb serwisowy, bezpośredni dostęp do pamięci (np. reflash „umarłego” urządzenia) itp. • Czytniki kodów kreskowych, RFID i/lub NFC – stosowane rzadko, przede wszystkim w urządzeniach przemysłowych • Znaczniki wilgoci - • Złącze USB – zwykle w postaci miniUSB lub microUSB • Złącze zestawu słuchawkowego – standalone (ze sprzętowym, lub programowym odłączaniem głośników urządzenia) lub zintegrowane z miniUSB (HTC) • Złącze TVOut – przede wszystkim HDMI, zwykle współpracujące tylko z wybranymi aplikacjami (możliwość odtwarzania filmów / oglądania zdjęć)
Zasilanie (bateria) • Główne (i obecnie właściwie jedyne) źródło zasilania – akumulator Li-on • Typowe pojemności – 1150mAh (HTC Dream), 1400mAh (Nexus One), 1420mAh (iPhone 4) • Parametry - czas pracy ciągłej / czas standby / czas rozmów • Zwykle standby nie przekracza 1-2 dni, czas pracy ciągłej 5-6 godzin (Nokia N900 – „whole day computing”) • Nie zanosi się tu na znaczący przełom (przede wszystkim gdyż większe ekrany == większy pobór energii) • Metody oszczędzania energii – wyłączanie najbardziej „energożernych” podsystemów, zwykle sterowane poprzez timery • Podświetlenie ekranu (przyciemnienie) • Wyłączenie ekranu • Wyłączenie modułu komunikacji WiFi (GSM pozostaje zasilany właściwie zawsze) • Ograniczenie taktowania procesora (np. Nexus One – 245MHz – 998MHz) • Ładowanie – obecnie trend standaryzacji w stronę microUSB, przynajmniej wśród producentów obecnych na rynku europejskim
Form factor i klawiatura • Urządzenie mobilne musimy jeszcze zapakować do jakiejś obudowy – zwykle plastikowej (ABS), choć zdarzają się, szczególnie ostatnio, przypadki wykorzystywania aluminium (HTC – Nexus One, HTC Legend) albo szkła (Apple iPhone 4) • Jeśli nie będzie ono wyposażone w „sprzętową” klawiaturę, to właściwie jedynym stosowanym rozwiązaniem jest forma „candy bar” • Gdy jednak pokusimy się o klawiaturę sprzętową (warto?) to mamy do wyboru: • Clamshell (także z możliwością obrócenia ekranu) – np. HTC Universal • Slider w poziomie (także z możliwością odchylenia ekranu) – np. HTC Diamond, SE Xperia • Slider w pionie – np. większość „niedotykowych” smartphone’ów – np. Nokia E66 • Klawiaturę nieruchomą (zwykle w pionie) – większość modeli RIM Blackberry • Ew. kombinację powyższych w bardziej egzotycznych modelach
To ile to wszystko razem kosztuje…? Apple iPhone 3G S 16GB Suma: 178.95 USD (ad 2009) Źródło: prof. Myungchul Kim