Lastnosti dokumenta
- Naslov
- Informacijski zaslon
- Del
- -
- Datum vsebine
- 12. 01. 2009
- Original
- InformacijskiZaslon.pdf
- Vrsta
- seminarska naloga
- Jezik
- slovenščina
- Različica
- 1.0
- Ustanova
- Fakulteta za računalništvo in informatiko, Univerza v Ljubljani
- Študij
- Računalništvo in informatika, Logika in sistemi, 5. letnik
- Predmet
- Seminar
- Mentor
- prof. dr. Dušan Kodek
- Avtor
- Tine Lesjak
- Ocena
- 10 od 1-10
Posebnost te seminarske naloge je bila v tem, da je bilo treba narediti tako programski kot strojni del.
Priloge
- seminar_predlog.pdf
- Predlog seminarske naloge.
- izvorna_koda.zip
- Izvorna koda za mikrokrmilnik PIC16F690 v HI-TECH PICC C-ju za okolje HI-TIDE.
- uc322.sch
- Shema GPS bakrene ploščice za program Eagle.
- uc322.brd
- Specifikacija GPS bakrene ploščice za program Eagle.
Uvod
V pričujoči seminarski nalogi bom predstavil lastnoročno narejen izdelek z imenom informacijski zaslon. V predlogu[PRDLG], 24. 9. 2008, sem predstavil, česa bo izdelek zmožen. Moram povedati, da je bil cilj sicer zelo uporabno zastavljen, vendar preveč za moje znanje brez izkušenj na tem področju, zato sem raje začel z manjšim. Informacijski zaslon v končni obliki ima tako samo GPS sprejemnik brez dodatnih senzorjev. Zaslon je preprost dvovrstični segmentni.
Informacijski zaslon izmenično prikazuje naslednje podatke:
- trenuten srednjeevropski čas
- trenutno nadmorsko višino v metrih
- trenutno pozicijo v geografskih stopinjah
- trenutno hitrost premikanja v km/h
- trenutno smer premikanja v kotnih stopinjah
Delovanje
Informacijski zaslon se priključi na električno napajanje prek lastnega pretvornika z Mini-B USB konektorjem. Vir energije je lahko računalnik (prek navadnega USB kabla) ali pa avtomobil (prek posebnega USB avtomobilskega napajalnega kabla ali adapterja). Naprava nima lastne zaloge energije v obliki akumulatorja.
Ko napravo priključimo na napajanje se nemudoma vključi, na zaslonu pa se prikaže moje ime za 3 sekunde. Po tem času se prikaže napis "Searching satellites". Vgrajen GPS sprejemnik takoj prične iskati GPS satelite. To lahko traja nekaj minut, zelo odvisno od signala oz. prostora, v katerem se nahaja naprava. Če je naprava v hiši, morda nikoli ne bo dobila signalov od zadostnega števila satelitov, če je zunaj oz. pod vetrobranskim steklom avtomobila, lahko prikaže natančno lokacijo že po 35 sekundah (cold start[GSC3LT]).
Ključno pri uporabi GPS sistema je izračun lokacije. GPS sateliti oddajajo podatke, sprejemnik na Zemlji glede na oddaljenost satelitov lahko izračuna točen položaj sebe. Matematično se metoda imenuje trilateracija[WPTRIL], ko iz signalov treh satelitov lahko izračunamo x, y, in z koordinate lokacije. Vendar mora biti meritev, zaradi skoraj svetlobne hitrosti potovanja signalov od satelitov do sprejemnika, opravljena izredno natančno. Da je čas v sprejemniku kar najbolj natančen, je potreben signal še četrtega satelita.
Med iskanjem satelitov je poleg napisa "Searching satellites" desno spodaj na LCD zaslonu izpisano tudi število najdenih satelitov.
Ko GPS sprejemnik najde signale vsaj štirih satelitov, lahko izračuna pravilno lokacijo (t. i. GPS fix). Takrat se na zaslonu začnejo prikazovati podatki. GPS sprejemnik pošilja osrednjemu mikrokrmilniku NMEA stavke prek UART protokola. NMEA stavki vsebujejo standardizirane, lahko berljive podatke v obliki ASCII znakov.
NMEA 0183[WPNMEA] specificira preprosto zaporedno ASCII komunikacijo med različnimi napravami.
Uporabil sem dva stavka, ki vsebujeta uporabne podatke in sta videti takole:
$GPGGA,002153.000,3342.6618,N,11751.3858,W,1,10,1.2,27.0,M,-34.2,M,,0000*5E
Prvi podatek predstavlja čas, drugi zemljepisno širino, tretji zemljepisno dolžino itd.
$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598, ,*10
Mikrokrmilnik prebere dve vrsti NMEA stavkov: GPGGA in GPRMC, vsakega od GPS sprejemnika dobi vsako sekundo ([FASTRAX], Table 3). Iz prvega pridobi čas, lokacijo in nadmorsko višino, iz drugega datum, hitrost in smer gibanja. Vse to se prikaže na zaslonu v dveh straneh. Na prvi strani prikaže:
- V zgornji vrstici levo datum v obliki "yyyy-mm-dd", ali drugače "leto-mesec-dan". Primer: 9. januar 2009 bi prikazal kot 2009-01-09.
- V spodnji vrstici levo srednjeevropski čas v 24 urni obliki "HH:mm:ss", ali drugače "ura:minuta:sekunda". GPS sprejemnik sicer poda UTC čas, ki mu dodam eno uro tako, da je čas (zimski) srednjeevropski (CET).
- V spodnji vrstici desno višino pod/nad geoidom. Geoid predstavlja površino povprečne morske gladine (mean sea level) [WPGEOID]. Ta je, zanimivo, zaradi gravitacijskih anomalij Zemlje rahlo različna od WGS 84 elipsoida. V mojem kraju, na primer, je geoid za 43,5 m višji od elipsoida. Oba podatka, višino pod/nad geoidom in razliko med elipsoidom in geoidom sta podana v GPGGA stavku, tako da bi bilo prikazovanje enega ali drugega enostavno. Glede na to, da v naših atlasih prikazujemo višino nad geoidom, sem se sam tudi odločil za to. Opazil pa sem, da nekatere druge naprave prikazujejo višino glede na elipsoid.
Na drugi strani prikaže:
- V zgornji vrstici levo zemljepisno dolžino (longitude) v geografskih stopinjah (od -180° do 180°), minutah in polobli. Zemljepisna dolžina 15° in 21,2 minuti vzhodno se na zaslonu prikaže kot 15*21.2'E.
- V zgornji vrstici desno relativno hitrost glede na tla (speed over ground) v km/h. Stavek GPRMC poda hitrost v vozlih, ki jo naprava preračuna v km/h.
- V spodnji vrstici levo zemljepisno širino (latitude) v geografskih stopinjah (od -90° do 90°), minutah in polobli. Zemljepisna širina 46° in 15,4 minute severno se na zaslonu prikaže kot 46*15.4'N.
- V spodnji vrstici desno smer gibanja glede na tla (course over ground) v kotnih stopinjah (od 0° do 360°). 0° in 360° predstavljata sever, 90° vzhod, 180° jug in 270° zahod.
Preklop med obema stranema se zgodi vsakih 5 sekund.
Kadar GPS sprejemnik izgubi signale vsaj štirih satelitov (GPS fix postane neveljaven), se namesto nenatančnih podatkov na LCD zaslonu izpiše "Searching satellites" in število najdenih satelitov. To se lahko v praksi zgodi marsikje: med visokimi stavbami, v garaži, v predoru, v gostem gozdu, v hiši itd.
Informacijski zaslon nima nobenih tipk in lučk, resetira se tako, da se izključi iz električnega napajanja in ponovno vključi. Žal tudi zaslon ni osvetljen.
Zgradba
Informacijski zaslon je zelo enostavno zgrajen. Vsebuje tri glavne komponente:
- mikrokrmilnik vrste PIC,
- GPS sprejemnik z anteno,
- dvovrstični segmentni enobarvni LCD zaslon
in nekaj pomožnih komponent.
Mikrokrmilnik in GPS sprejemnik sta med seboj povezana z eno samo linijo. Komunikacija poteka po zaporednem vmesniku UART ([PICSHEET], 12.0 Enhanced Universal Synchronous Asynchronous Receiver Transmitter (EUSART)) s hitrostjo 4800 b/s, in sicer samo v eno smer: od sprejemnika do mikrokrmilnika. GPS sprejemnik namreč samodejno ob dodelitvi električne energije prične pošiljati podatke.
LCD zaslon komunicira v 4 bitnem načinu, kar pomeni, da je potrebno za prikaz enega znaka ali ukaza poslati podatke dvakrat. Do mikrokrmilnika je povezan prek 3 krmilnih in 4 podatkovnih linij.
Posebnost informacijskega zaslona je v tem, da je mogoče mikrokrmilnik neposredno programirati. Za to se uporablja 6 nožni konektor, ki je povezan z mikrokrmilnikom. Programator, ki se priključi na ta konektor, oddaja tudi električno energijo, zato se lahko naprava napaja tudi prek tega. Naredil sem tudi dodaten pretvornik iz vtikača, ki se natakne na 6 nožni konektor, na USB konektor, ki je bolj standarden in se lahko nanj natakne USB kabel, ta pa dovaja električno energijo od druge naprave (avtomobil, računalnik ipd.).
Vse komponente so prispajkane na ploščico, ki je namenjena ljubiteljskemu ročnemu spajkanju. Ploščico sem obrezal tako, da sede v ohišje navigacijske naprave Garmin Nüvi 680.
GPS sprejemnik je prispajkan na posebno bakreno ploščico skupaj z upori in kondenzatorjem. Je namreč tako majhen in ima nestandardno razporejene kontakte, da sem moral prositi kolega, da jo je izdelal s CNC strojem.
Seznam komponent:
- mikrokrmilnik Microchip PIC16F690, DIP 20 nožno ohišje [PICSHEET]
- GPS sprejemnik Fastrax UC322 [FASTRAX] s SiRFstarIII GSC3LT [GSC3LT] sredico
- LCD zaslon Display Elektronik DEM 16213 SYH [LCDSHEET], dvovrstični 16 znakovni (2x16) enobarvni segmentni
- Mini-B USB konektor
- 6 nožna letvica (za programator in električno napajanje)
- 7 nožna letvica (za GPS ploščico)
- Schottky dioda Discrete Semiconductors (Philips) BAT85, DO-34 [BAT85]
- elektrolitski kondenzator 100 µF
- elektrolitski kondenzator 4,7 µF
- dva keramična kondenzatorja 100 nF
- keramični kondenzator 10 nF, SMD
- 8 uporov 220 Ohm, SMD
- upor 10 kOhm
Mikrokrmilnik sem tako programsko nastavil, da izrablja svoj lastni vgrajen oscilator, ki teče pri 4 MHz. Zunanji ni potreben.
Celoten program je dokaj enostaven, kratek in jedrnat. Napisan je v jeziku C. Za prevajalnik sem vzel HI-TECH-ovega. Vsa koda se izvaja zaporedno. Tudi čakanje na podatke od GPS sprejemnika. Znaki prihajajo s hitrostjo 4800 b/s, ali drugače eden vsako 208. mikrosekundo (1.000.000 µs / 4800 b/s). Mikrokrmilnik za skoraj vsak ukaz porabi 4 cikle ([PICSHEET], stran 217), kar pomeni, da načeloma izvrši en ukaz na mikrosekundo (1 / 4 MHz * 4). Na grobo povedano, lahko med vsakim prejetim znakom GPS sprejemnika izvrši 200 ukazov.
Program je sicer napisan malce drugače. Vsebuje 80 znakovni medpomnilnik (buffer), kamor se najprej zapiše celoten NMEA stavek (zadnji znak je 0x0A (line feed)), potem se šele opravi branje in prikazovanje podatkov.
Program je razdeljen na dva dela. Prvi je pomožni s tematskimi komponentami:
- inicializacijo (init.h in init.c), kjer se nastavi sam mikrokrmilnik skupaj s primerjalnikom,
- LCD knjižnico (lcd.h in lcd.c), ki vsebuje preproste metode za inicializacijo in delo z LCD zaslonom in
- UART knjižnico (uart.h in uart.c), ki aktivira PIC-ov vgrajen EUSART ter vsebuje metode za sprejem znakov GPS sprejemnika in omenjeni medpomnilnik.
Drugi del je glavni program, kjer sem implementiral parser, prikaže pa obdelane podatke na LCD zaslon. Pri tem sem izrabil eno zanimivost: implementiral sem putch metodo tako, da prikaže posredovani znak na LCD zaslon. S tem sem omogočil uporabo že priložene printf metode, ki je v C-ju nadvse zmogljiva - oblikovane podatke prikaže na LCD zaslonu tako, kot smo drugače vajeni v konzoli na računalniku!
Izdelava
Pri izdelavi sem naletel na nekaj zanimivih težav. Najprej moram povedati, da še nisem nikoli spajkal in mehansko vezal komponente, medtem ko imam s programiranjem že nekaj izkušenj. Zato sem se moral pozanimati tudi o preprostih stvareh, ki so vsakemu elektrotehniku samoumevne. Začel sem tako rekoč iz nič. Na primer, kolega Gregor Mavrič mi je razložil, zakaj so potrebni kondenzatorji.
Velika težava so bile same komponente. Kako jih dobiti, predvsem pa katere? V eni izmed naših največjih trgovin z elektronskimi komponentami, IC elektronika, mi niso imeli časa pomagati. Navajeni so, da stranke naročijo artikle kar po kataloški številki, kar pomeni, da je treba prej natančno razmisliti o ustreznosti komponente.
Vse skupaj sem pravzaprav začel uresničevati pri mikrokrmilniku. Zelo sem se ogrel za odprto zasnovo projekta Arduino[ARDUINO], ki ponuja na svoji spletni strani navodila za izdelavo in programiranje platforme, namenjene bolj za hobi. Da se jo tudi že narejeno kupiti. Platforma vsebuje Atmelov ATmega8 ali ATmega168 mikroprocesor. Ker je informacijski zaslon zelo specifične narave, sem se raje odločil za znano rešitev podjetja Microchip, PIC. Kupil sem komplet PICkit 2 [PICKIT], ki vsebuje preprost programator skupaj s PIC16F690 mikrokrmilnikom. Komplet je bilo treba naročiti pri Farnellu[FARNELL].
Kolega Jure Lenče si je vzel precej časa, da mi je pomagal načrtovati in izdelati ploščico za GPS sprejemnik. Dizajn sva naredila v programu Eagle[EAGLE]. Na računalnik sva priključila njegovo CNC napravo za rezanje, ki je izrezala ploščico in vse potrebne linije.
Vmes sem se pridno učil veščin programiranja PIC mikrokrmilnika. Samo programiranje je res preprosto, vendar je potrebno v zbirniku (assembler) precej napora in pazljivosti. Programiral sem v Microchipovem MPLAB IDE-ju [MPLAB]. Kasneje, ko sem prišel do branja oz. parsanja NMEA stavkov, se mi je naenkrat ustavilo. Posegel sem po zmogljivejšem in veliko bolj varnem jeziku C. Da, PIC-e se da programirati tudi v C-ju. Obstaja kar nekaj prevajalnikov. Izbral sem HI-TECH-ovo HI-TIDE okolje skupaj s PICC prevajalnikom. Kot zanimivost naj povem, da sem vso prejšnjo kodo v zbirniku spravil v C v nekaj več kot eni uri. Nato je programiranje teklo kot namazano.
Veliko sem si pomagal tudi s knjižnicami, ki jih je v spletu ogromno, a pravzaprav nobene nisem neposredno uporabil. Iz njih sem črpal le ideje in si z njimi, zanimivo, razlagal dokumentacijo.
Med sestavljanjem naprave sem naletel na izzivalno težavo. GPS sprejemnikov visok električni nivo na oddajni liniji je le 1,8 V [FASTRAX], kar za PIC pomeni nedovoljeno napetost oz. raje nizek nivo [PICSHEET]. Težavo sem elegantno odpravil s PIC-ovim vgrajenim analognim primerjalnikom (comparator). Mejo med visokim in nizkim nivojem sem nastavil na 0,6 V, izhod primerjalnika pa sem neposredno povezal z UART vhodom. Vse to programsko.
Seznam opreme za izdelavo:
- Microchip PICkit 2 Starter Kit [PICKIT]
- Microchip PICkit 2 Programmer 2.55.01 [PICKIT]
- Microchip MPLAB IDE 8.10 [MPLAB]
- HI-TECH HI-TIDE 3.15 [HITECH]
- HI-TECH C PRO for PIC10/12/16 9.60 [HITECH]
- CadSoft Eagle 5.3.0 [EAGLE]
Slika 1: Prototip informacijskega zaslona. Zgoraj je viden programator PICkit 2, desno spodaj je GPS sprejemnik na bakreni ploščici.
Slika 2: Prednja stran plošče informacijskega zaslona. Na tej strani je pritrjen LCD zaslon.
Slika 3: Zadnja stran informacijskega zaslona. Čisto na levi je 6 nožna letvica, kamor se priključi programator ali napajanje; levo je PIC mikrokrmilnik v podnožju, desno je GPS sprejemnik z anteno na dodatni bakreni ploščici.
Slika 4: Informacijski zaslon tik preden sem prispajkal še LCD zaslon, Desno je viden pretvornik za USB kabel.
Slika 5: Končna podoba informacijskega zaslona, popolnoma v ohišju.
Sklep
Priznati moram, da je bila izdelava informacijskega zaslona naporna, predvsem pa je trajala bistveno dlje, kot sem si predstavljal. Razlog za to so vsekakor izkušnje, ki sem jih sedaj šele prvič pridobil. To pa je bilo pravzaprav bistvo tega predmeta.
Izdelava naslednjega izdelka bo precej lažja; mimogrede, o podobnem izdelku že razmišljam za diplomsko nalogo.
Vesel sem, da mi je napravo uspelo pripeljati do uporabnosti, vendar ji do prave uporabne vrednosti manjka še nekaj malenkosti. Na prvem mestu bi izpostavil zaslon. Ta bi moral biti precej večji, da bi zadostil prvotnemu načrtu: vsi podatki vidni naenkrat. Predvsem pa bi moral biti osvetljen. Naprave ravno zaradi tega zelo verjetno ne bom uporabljal, saj sem zadnji čas nabavil telefon, ki to vse zmore. Morda pa bo komu drugemu koristila.
Med izdelovanjem sem naletel na nekaj napak, nedoslednosti, ali slabe dokumentacije, ki so me rahlo negativno presenetili.
Prvo hudo napako sem odkril v dokumentaciji LCD ekrana izdelovalca [LCDSHEET], saj je pri enem ukazu zamenjan bit. To sem na srečo opazil v originalni dokumentaciji od gonilnika LCD zaslona [LCDDRV].
Veliko čudnih stvari sem našel med prebiranjem dokumentacije o PIC-u. Kolega Jure mi je sicer zagotovil, da je dokumentacija za PIC-e res vrhunska. Strinjam se, vendar bi moral poleg dokumentacije, ki bi jo moral prebrati res podrobno in celotno, imeti še precej več izkušenj glede mikrokrmilnikov in prebrati še kup dodatnih dokumentov, kot sta popravki in namigi.
LCD zaslon ima poleg napajanja in ozemljitve poseben kontakt, ki se imenuje V0. Poznavalci seveda takoj vedo, čemu je namenjen, sam pa sem imel kar nekaj težav, preden sem ugotovil, da napačna vezava tega lahko povzroči nemalo sivih las. Gre namreč za kontakt, ki nastavlja kontrast zaslona. Če je povezan na ozemljitev je kontrast največji, če je povezan na napajanje, se na zaslonu čisto nič ne vidi.
Posebno vlogo ima nožica #MCLR (reset) na PIC-u. Ta lahko ima več funkcij. Ključno vlogo pa igra pri programiranju mikrokrmilnika. Nožico sem programsko izklopil in mikrokrmilnik deluje normalno. Pri programiranju pa mora biti nožica povlečena na napajalno napetost (pull-up), drugače programator ne zazna čipa.
Žal sem moral čisto na koncu pristati na kompromis. Pri zadnjem popravku je namreč odstopil vgrajen Mini-B USB konektor. Konektor je bil neposredno prispajkan na ploščici, vendar ga zaradi izredno majhnih kontaktov nisem uspel dovolj čvrsto in zanesljivo pritrditi. Namesto tega sem zadevo poenostavil in raje naredil pretvornik z dvema žičkama, ki se natakne na 6 nožno letvico, sicer namenjeno programiranju. Pretvornik je sicer malce neroden, vendar veliko bolj zanesljiv.
Ne morem se znebiti občutka, da sem pri vsem tem imel nekaj sreče, da vse skupaj le deluje.
Rad bi se zahvalil kolegu Gregorju Mavriču, ki me je z uvodom popeljal v svet elektronike. Veliko zaslugo izrekam svojemu direktorju podjetja Autronic d.o.o., Saši Albertu, ki mi je priskrbel GPS sprejemnik in predstavitveno ohišje. Saša me je tudi spoznal z Juretom Lenčetom, ki mi je pomagal izdelati ploščico za GPS sprejemnik, izdal pa mi je tudi ogromno elektronskih trikov.
Viri
- PRDLG
- Lesjak T. Predlog: Informacijski zaslon. 24. september 2008.
- GSC3LT
- SiRFstarIII GSC3LT and GSC3LTf. SiRF Technology, Inc., 2007. http://www.sirf.com/products/GSC3LTProductInsert.pdf
- SRFNMEA
- NMEA Reference Manual. SiRF Technology, Inc., Revision 2.2, november 2008. http://www.fastraxgps.com/showfile.cfm?guid=9de68fec-1d95-4fd3-8809-f068c9aaf220
- WPTRIL
- Wikipedia contributors. Trilateration. Wikipedia, The Free Encyclopedia, 5. december 2008. http://en.wikipedia.org/w/index.php?title=Trilateration&oldid=256118411
- WPNMEA
- Wikipedia contributors. NMEA 0183. Wikipedia, The Free Encyclopedia, 12. december 2008. http://en.wikipedia.org/w/index.php?title=NMEA_0183&oldid=257453577
- BERNMEA
- December 2008. http://gpsd.berlios.de/NMEA.txt
- DALENMEA
- DePriest D. NMEA Data. http://gpsinformation.org/dale/nmea.htm
- FASTRAX
- Technical description. Fastrax UC322 OEM GPS Receiver module. Fastrax Ltd., Rev 1.2, 1. februar 2008. http://www.fastraxgps.com/showfile.cfm?guid=79d150e2-38f5-47f5-a2c1-096306b02874
- WPGEOID
- Wikipedia contributors. Geoid. Wikipedia, The Free Encyclopedia, 6. december 2008. http://en.wikipedia.org/w/index.php?title=Geoid&oldid=256281075
- PICSHEET
- PIC16F631/677/685/687/689/690 Data Sheet: 20-Pin Flash-Based, 8-Bit CMOS Microcontrollers with nanoWatt Technology (DS41262E). Microchip Technology Inc., 2008. http://ww1.microchip.com/downloads/en/DeviceDoc/41262E.pdf
- LCDSHEET
- Data Sheet LCD Module DEM 16213 SYH: Product specification. Display Elektronik GmbH, 4. april 2003. http://www.display-elektronik.de/DEM16213SYH.PDF
- BAT85
- Data Sheet BAT85 Schottky barrier diode: Product specification. Discrete Semiconductors, 25. maj 2000. http://www.nxp.com/acrobat/datasheets/BAT85_4.pdf
- ARDUINO
- Arduino - HomePage. December 2008. http://www.arduino.cc
- PICKIT
- PICkit 2 Development Programmer/Debugger. Microchip Technology Inc., december 2008. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805
- FARNELL
- Farnell / Electronic Component Distributors / Suppliers / Electronics, Electrical Parts, Electrical Components and Wholesale Electronics. Premier Farnell plc, december 2008. http://www.farnell.com
- EAGLE
- CadSoft Online: Home of the EAGLE Layout Editor. CadSoft Computer GmbH, december 2008, http://www.cadsoftusa.com/index.htm
- MPLAB
- MPLAB Integrated Development Environment. Microchip Technology Inc., december 2008. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002
- HITECH
- HI-TECH C PRO for the PIC10/12/16 MCU Family compiler and embedded software tools for the Microchip PICMicro. HI-TECH Software, december 2008. http://www.htsoft.com/microchip/products/compilers/piccprocompiler.php
- LCDDRV
- 16COM / 80SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD (KS0070B). Samsung Electronics.
- WPUSB
- Wikipedia contributors. Universal Serial Bus. Wikipedia, The Free Encyclopedia, december 2008. http://en.wikipedia.org/wiki/Usb
- ICE
- Spletna trgovina. IC elektronika d.o.o., december 2008. http://www.ic-elect.si/trgovina.aspx
- AN774
- Asynchronous Communications with the PICmicro® USART (DS00774A). Microchip Technology Inc., 2003. http://ww1.microchip.com/downloads/en/AppNotes/00774a.pdf
- PIC
- PIC16F690. Microchip Technology Inc., december 2008. http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en023112
- NUVI
- Dismantling the Nüvi 3xx series. December 2008. http://homepage.ntlworld.com/webspace8