Sulautetuissa sovelluksissa halutaan yhä useammin käyttää mobiilikomponentteja, kuten edullisempia näyttöjä. Mikro-ohjaimet pitää kuitenkin ensin saada keskustelmaan niiden kanssa. Lattice Semiconductorin FPGA-piireillä se onnistuu.
Kirjoittaja Ted Marena on Lattice Semiconductorin liiketoiminnan kehityksestä, partneriratkaisuista ja IP-tuotteista vastaav a markkinointijohtaja. Hänellä on yli 20 vuoden kokemus teknisestä myynnistä ja markkinoinnista. Tedillä on markkinoinnin tutkinto Connecticutin yliopistosta. |
1990-luvulla PC oli kiistämätön suurten volyymien arkkitehtuuri. Muille sektoreille laitteita kehittäneet ymmärsivät, että mikäli he ottaisivat PC-komponentteja käyttöön, he hyötyisivät näiden alhaisemmasta hinnasta ja hyvästä luotettavuudesta. Suuri määrä sulautettujen laitteiden suunnittelijoita hyödynsi tätä suunnitteluissaan, mistä hyötyivät tietenkin myös loppuasiakkaat.
Viime vuosina PC on menettänyt asemansa volyymialustana ja nyt älypuhelimet ja tabletit ovat kukkulan kuninkaita. Mutta samaan tapaan kuin edellinen suunnittelijasukupolvi hyödynsi edullisia PC-komponentteja, tämän päivän suunnittelija haluaa saavuttaa saman hyödyn käyttämällä komponentteja ja ratkaisuja, jotka on alun perin kehitetty älypuhelimiin ja tabletteihin.
MIPI jyllää mobiilissa
Valtaosa älypuhelimista ja tableteista käyttää MIPI-organisaation määrittelemiä väyliä ja liitäntöjä. Esimerkiksi näyttöliitäntä on nimeltään DSI (Display Serial Interface) ja kuva-anturin liitäntä CSI-2 (Camera Serial Interface). MIPI-järjestö määrittelee liitännän sovellusprosessorin ja oheislaitteiden välillä. Oheislaitteiden valikoima on laaja kattaen kamera-anturit, muistit, näytöt, RF-komponentit, anturit jne.
Jotkut sulautetun laitteen suunnittelijat haluavat jopa käyttää sovellusprosessoria koko järjestelmän ytimenä. Valitettavasti tämä ei ole useissakaan suunnitteluissa mahdollista, koska olemassaolevat ohjelmistot ja muut toiminnot, jotka onkehitetty tiettyjä sulautettavia prosessoreja varten, tekevät tällaisen laitteen kehityksestä kohtuuttoman kallista. Silti näissäkin laitteissa haluttaisiin käyttää älypuhelimista ja tableteista löytyviä muita komponentteja. Iso haaste tässä on siltaliitäntä, joka vaaditaan vanhan liitännän ja erilaisten MIPI-väylästandardien välille.
Tätä havainnollistaaksemme ajatelkaamme, että mikro-ohjaimen ohjelmistoon on panostettu paljon aikaa ja rahaa. Suunnittelija haluaa käyttää ohjainta, mutta lisätä järjestelmään mobiililaitteista löytyvän näytön. Näytön DSI-liitäntä on sarjamuotoinen SLVS-signalointia (Scalable Low-Voltage Signaling) hyödyntävä väylä. Ongelman muodostaa se, että valittu mikro-ohjain käyttää CMOS RGB- tai LVDS-väylää LCD-näytön liitäntään. Nämä väylät eivät ole yhteensopivia DSI-liitännän kanssa, joten laitteet eivät toimi oikein yhdessä.
Kuva 1 – LVDS- tai RGB-väylään nojaava mikro-ohjain ei keskustele DSI-näytön kanssa.
MIPI mukaan siltaratkaisulla
Vielä vähän aikaa sitten suunnittelija olisi joutunut hylkäämään ideansa edullisen DSI-liitäntäisen näytön käyttämisestä, mikäli ASIC-pohjaisen siltapiirin kehittämisen kustannuksia ei olisi voitu perustella esimerkiksi tulevien volyymien avulla. Valtaosassa suunnitteluja olisi täytynyt valita kalliimpi näyttö. Onneksi tänään on tarjolla edullisia, konfiguroitavia ratkaisuja tähän ongelmaan. Itse asiassa nyt lähes kaikissa sulautetuissa suunnitteluissa voidaan käyttää edullisia DSI-näyttöjä.
Jokin aika sitten julkistettiin joukko ratkaisuja, joissa ULD-luokan (Ultra Low Density) FPGA-piirejä käytetään siltaamaan MIPI DSI ja -CSI-2-liitäntä useisiin perinteisiin näyttöväyliin. Nämä edulliset, vähävirtaiset FPGA-piirit ja niillä toimimaan suunnitellut MIPI-referenssiratkaisut ovat ideaalinen ratkaisu yhdistää laaja valikoima sulautettuja mikro-ohjaimia DSI-näyttöön.
Olettakaamme esimerkiksi, että halutussa mikro-ohjaimessa on 24-bittinen CMOS RGB888-näyttöliitäntä. Ensimmäinen askel on määritellä, kuinka DSO-näytön konfigurointirekisterit ohjelmoidaan. Luultavimmin mikro-ohjain konfiguroi nämä I2C-väylän kautta. DSI ei kuitenkaan hyväksy I2C-väylää näytön konfigurointiin. DSI-liitäntä käyttää sarjadatalinkkiä D0 DSC-komennoille (Display Command Set). Siksi FPGA-piirin pitää muuntaa mikro-ohjaimen I2C-komennot sarjaksi DCS-komentoja, joila DSI-näyttö konfiguroidaan.
Kun näyttö on ohjelmoitu, FPGA pitää konfiguroida vastaanottamaan signaalia RGB888-liitännästä. Jos näytön resoluutio RGB888-väylässä on määritelty samaksi kuin halutussa DSI-näytössä, pitäisi seuraavaksi muuntaa rinnakkainen väylä sarjamuotoiseksi DSI-väyläksi. Mikäli näytön ja mikro-ohjaimen määritysten resoluutio olisi eri, voitaisiin kuvaa skaalata FPGA:lla suuremmaksi tai pienemmäksi. Kummassakin tapauksessa olisi välttämätöntä määritellä DSI-liitännältä tulevien datalinjojen määrä. Kun tämä on tehty, tuottaisi ULD-FPGA-piiri tarvittavan lähetysliitännän (transmit interface) DSI-näyttöä varten.
Kuva 2 – Latticen FPGA-piirillä toteutettu siltaratkaisu mikro-ohjaimen ja DSI-näytön välille. Lisätietoa räätälöidystä DSI-liitännästä löytyy osoitteesta www.latticesemi.com/dsitx.
Entäpä sellaiset suunnittelut, joissa halutaan käyttää sovellusprosessoria, mutta myöd LCD-näyttöä joka ei käytä DSI-väylästandardia? Vaikka joissakin sovellusprosessoreissa on tuki useammalle näyttöliitännälle, useimmat tulevat vain DSI-standardia. Siksi olemme samankaltaisen haasteen edessä kuin aiemmin. Sovellusprosessorin DSI-signaali pitää saada liittymään LCD-näyttöön – todennäköisesti LVDS-flatlink-väylänä. Nyt sama FPGA-piiri viodaan konfiguroida tähänkin siltaratkaisuun. Tällaisessa suunnittelussa DSI tulisi väylänä FPGA:lle ja LVDS-näyttöä ohjattaisiin FPGA-piirillä.
Kun suunnittelijat voivat edullisilla FPGA-piireillä toteuttaa liitännän DSI- tai CSI-2-väyläiseen näyttöön, he voivat harkita useita mobiilikomponentteja omiin suunnitteluihinsa. Samoin kuin PC-buumi auttoi monia sulautettujen laitteiden suunnittelijoita alentamaan kustannuksia PC-komponenteilla, nyt samaan voidaan päästä mobiilikomponentteja käyttämällä. Näyttöjä, sovellusprosessoreja ja kuva-antureita voidaan hyödyntää Lattice Semiconductorin edullisten FPGA-piirien sekä DSI- ja CSI-2-siltaratkaisujen avulla.