Uporaba mikrokontrolerjev, ki združujejo krmilnik grafičnega zaslona s podporo za kapacitivno zaznavanje dotika za zaslon, ki je občutljiv na dotik in USB periferne naprave. HMI (human-machine interface) načrtovanje na področju ugnezdenih sistemov se hitro razvija z zmanjševanjem stroškov proizvodnje modernih in bolj elegantnih vmesnikov. Nekatere aplikacije že združujejo na dotik občutljive vmesnike, kot so stikala, drsniki na dotik in povratne informacije, ki jih zaznavamo s tipom, skupaj z bogatim grafičnim prikazom in pri tem uporabljajo najnovejše generacije mikrokontrolerjev, ki vključujejo grafični krmilnik zaslona s periferijo za kapacitivno zaznavanje dotika, krmilnike zaslonov, ki so občutljivi na dotik in USB v istem čipu.
Novi mikrokontrolerji obljubljajo nižje stroške sistema ob istočasni širši paleti možnosti za večje sistemske integracije. Kljub temu, da so oblikovalcem omogočila znižanje stroškov strojne opreme, proizvodnjo in zaloge, se lahko poveča kompleksnost razvoja programske opreme, ki vpliva na čas, ki je potreben za razvoj izdelka in zahteva robustno vključitev zaznavanja dotika in drugih vmesnikov za komunikacijo med napravo in človekom, ki morajo delovati na enem samem mikrokontrolerju.
Najprej malo razmislimo o tem. Vzemimo na primer kapacitivno zaznavanje dotika. Ko so bile na dotik občutljive tipke prvič predstavljene, so načrtovalci kmalu spoznali, da njihova uporaba ni tako preprosta kot pri tradicionalnih tipkah. Na dotik občutljive tipke je treba obravnavati na enak način kot analogne senzorje: lastne motnje ali motnje, ki lahko prihajajo iz okoliških virov, kot so skupne naprave, kompaktne fluorescentne sijalke, napajalniki, mobilni telefoni in motorji zahtevajo skrbno upravljanje. Da dosežemo zanesljive in odzivne tipke, je potrebno uporabiti programske tehnike, kot so odkrivanje ovojnice, filtriranje, odskakovanje (debounce) in filtrska stopnja in to poleg zagotavljanja dobrega načrtovanja vezja za zajemanje signala. Potrebno je dodati tudi osveževanje segmentnega ali grafičnega LCD prikazovalnika, ko je bil zaznan dotik na vhodu vmesnika med človekom in napravo. Za prikaz grafičnih konstrukcij, kot so geometrijske oblike ali besedila na zaslonih kot sta TFT ali OLED, je bilo vedno potreben večji del procesorske pasovne širine. Prav tako si lahko predstavljamo aplikacijo z vmesnikom med človekom in napravo, ki uporablja vhod prek zaslona na dotik in ima poleg prikaza grafike tudi na dotik občutljive tipke, kot je to v primeru termostata na sliki 1. Na koncu bo ponavadi potreben tudi kakšen od komunikacijskih vmesnikov, kot je na primer USB.
Izziv je torej obdelava vhodov v realnem času, branje na dotik občutljivih tipk, senzor z zaslonom na dotik in izmenjava podatkov prek USB vodila kot tudi posodabljanje zaslona. Rešitev spada v dve kategoriji, ki sta osrednjega pomena za določanje osnovne strojne in programske opreme.
Izvedba strojne opreme
Obstajajo številni mikrokontrolerji, ki združujejo LCD krmilnik in na dotik občutljivo periferijo na enem samem čipu, vendar, LCD gonilnik tipično upravlja segmentni zaslon namesto grafičnega LCD prikazovalnika.
Najnovejša generacija mikrokontrolerjev, kot je na primer PIC24FJ256DA210, prikazan na sliki 2, postavlja integracijo na novo raven z združitvijo krmilnika grafičnega zaslona, USB 2.0 periferije in posebno analogno periferijo, ki jo lahko uporabimo za zaznavanje dotika. Za podporo prikazovanju grafike ima PIC24FJ256DA210 vgrajeno barvno iskalno tabelo, 96kB RAM pomnilnika, grafično procesno enoto (GPU) in neposreden priklop na STN, TFT in OLED zaslone. Velika količina vgrajenega RAM pomnilnika omogoča, da se 256-barvna grafika za 320×240 QVGA zaslon shranjuje z osmimi biti na piko v vgrajeni RAM. Barvne palete, ki se uporabljajo v barvni iskalni tabeli, lahko tudi preklapljamo za uporabo različnih naborov 256 barv v različnih slikovnih okvirih. GPU omogoča prikaz enostavnih objektov, kot so črte, pravokotniki, besedilo ASCII in razširjanje PNG formatu podobnih stisnjenih z enim samim ukazom. To zmanjšuje porabo procesorskega časa na 0%.
Slika 2 prikazuje tudi analogno enoto za merjenje časa polnjenja (CTMU). Kapacitivno zaznavanje dotika je le ena od številnih možnosti, ki jih podpira CTMU periferija. CTMU zagotavlja konstanten tokovni vir z uro, ki se lahko uporablja za polnjenje panela. Napetost na panelu se lahko meri z vgrajenim analogno-digitalnim pretvornikom (ADC). Ko se uporabnik s prstom dotakne panela, je sprememba kapacitivnosti na senzorskem panelu se sprememba odraža tudi na napetosti, ki jo zazna ADC. V najpreprostejši izvedbi se lahko vsak ADC kanal priključi na dotik občutljiv vhod tipke. PIC24FJ256DA210 s 24-timi ADC kanali zagotavlja dovolj vhodov za kapacitivno zaznavanje dotika za potrebe večine aplikacij.
Še ena vgrajena funkcija si zasluži pozornost: Če v neki aplikaciji uporabljamo istočasno oba, uporovno zaznavanje dotika in na dotik občutljive tipke, se za funkcijo bližnjic menija grafični LCD prekrije z uporovnim senzorjem dotika. Če je krmilnik zaslona na dotik integriran v glavnem mikrokontrolerju, so lahko izhodi senzorja, ki so tipično 4 ali 5 žični, priključeni na analogne vhode mikrokontrolerja. V tem primeru se ADC vhodi mikrokontrolerja delijo med na dotik občutljivimi tipkami in funkcijo branja dotika na zaslonu. Meritev napetosti se uporabi za oceno X in Y koordinat dotika na zaslonu.
Programska izvedba
Običajno bosta firmware za krmilnik grafičnega zaslona in kapacitivno zaznavanje dotika na voljo kot samostojni knjižnici. Za učinkovito vključevanje teh knjižnic je potrebna glavna rutina, ki deluje kot osnovni operacijski sistem v realnem času (RTOS), za upravljanje s prioritetami in pogostostjo servisiranja posameznih nalog. Za naloge, ki delijo skupne vire strojne opreme, potrebuje glavna rutina pred preklapljanjem med nalogami tudi mehanizem za posodobitev registrov nadzora in podatkov za skupen vir, ki skrbi za to, da pri tem ne pride do zmede. V zgornjem primeru so na ADC priključeni senzorji tipk na dotik in na dotik občutljiv zaslon. Pogostost vzorčenja ADC, kanali, ki se vzorčijo in število potrebnih vzorcev so drugačni pri zaslonu, ki zaznava dotik in spet drugačni pri tipkah, ki zaznavajo dotik. Zato je treba v glavni rutini zagotoviti shranjevanje teh parametrov preden preklopimo med tema dvema nalogama.
Ker lahko uporabnik kadarkoli povzroči nek dogodek, bodisi prek zaslona, ki zaznava dotik ali preko na dotik občutljivih tipk, se lahko pojavi potreba, da glavna rutina skeniranje časovno razporedi dovolj pogosto. Na zaslonu bo morda potrebno redno obveščati, če program na primer obdeluje animirano grafiko na zaslonu. Če je zaslon posodobljen le takrat, ko uporabnik dostopa do menijev, potem s stališča mikrokontrolerskih virov ni spora med funkcijama zaznavanja dotika in krmiljenja zaslona. Če vzamemo za primer PIC24FJ256DA210, ki ima v ta namen grafični pospeševalnik na strojnem nivoju, odpade časovno razporejanje procesorskega časa med zaznavanjem dotika in obdelavo grafičnih funkcij. Pri tem vezju obdelava prikaza nekega lika, črte ali ASCII besedila zahtevajo en sam ukaz mikrokontrolerja. Predstavitveni projekt, ki prikazuje združevanje na dotik občutljive tipke, zaslona, ki je občutljiv na dotik in grafičnega zaslona z uporabo osnovne knjižnice programske opreme. Brezplačen prenos je mogoč skupaj z mTouch ™ knjižnico kapacitivnega zaznavanja dotika, ki se lahko izvaja na PIC24FJ256DA210 razvojni ploščici, ki je prikazana na sliki 3.
Obstajajo še druge funkcije, ki se lahko vključijo v en sam čip skupaj z zaznavanjem dotika. CTMU periferija se na primer lahko uporablja za zaznavanje temperature, medicinske instrumente, merjenje časa ali druge funkcije. V aplikaciji, kjer deluje kot termostat, je mogoče s pomočjo zunanje diode uporabiti CTMU periferijo za zaznavanje temperature poleg zaznavanja dotika. Ker je merjenje temperature potrebno izvajati v daljših časovnih intervalih, je periferijo mogoče deliti med tema dvema funkcijama.
USB komunikacije
Povezovanje funkcij USB komunikacije z zaznavanjem dotika je relativno enostavno, če upoštevamo nekaj preprostih pravil. Ko napravo povežemo z USB vmesnikom, se začne izvajati faza oštevilčenja, v kateri se lahko večji del procesorskega časa namenjen izvajanju funkcije USB. Funkcija zaznavanja dotika se lahko ponovno začne čez nekaj časa, po končani fazi oštevilčenja. Ko je ta faza končana, celotna USB funkcija porabi zelo malo procesorske pasovne širine, ponavadi pod 2%. Od te točke dalje lahko glavna rutina skrbi za funkcijo rednega preverjanja USB sprejemnika, na primer vsako milisekundo, ali pa se izbere obravnava v prekinitvenih rutinah.
Vse več aplikacij, ki uporabljajo vmesnike občutljive na dotik, ponujajo tudi povratne informacije, ki jih zaznavamo s tipom. Vključevanje te možnosti je bolj mehanski izziv. Značilno za takšno povratno informacijo je, da je potreben le enostaven pulzno-širinski modulator (PWM), s katerim napajamo majhen vibrator ali motor. Ni izključena niti uporaba vgrajene PWM periferije za pogon avdio zvočnika. V takih primerih lahko učinkovita integracija zahteva ločene časovne baze za posamezni PWM kanal, kjer prvi krmili motor za človekovo zaznavanje povratnih informacij s tipom, drugi pa avdio zvočnik.
Zaključek
Medtem ko vgrajene funkcije grafičnega zaslona in zaznavanja dotika lahko zmanjšajo stroške sistema, lahko kompleksnosti programske opreme podaljšajo čas razvoja neke naprave. Izvedba je poenostavljena z izbiro takšne mikrokontrolerske platforme, ki podpira grafiko, komunikacijo prek USB in programske knjižnice za zaznavanje dotika, ki so bile izdelane in preizkušene za interoperabilne in zanesljive integracije, kar smo tudi dokazali.
Povečevanje stopnje integracije v vgrajenih HMI vmesnikih