Sulautetut järjestelmät USB-pohjaisissa sovelluksissa
Loikkanen, Jori (2015)
Loikkanen, Jori
Tampereen ammattikorkeakoulu
2015
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201505158288
https://urn.fi/URN:NBN:fi:amk-201505158288
Tiivistelmä
Työn tavoitteeksi asetettiin USB-teknologian ymmärtäminen, toimivan USB-laitteen suunnitteleminen ja rakentaminen ja laiteohjelmistoon tutustuminen. Laite päätettiin rakentaa PIC18F2550-mikrokontrollerin ympärille, johtuen sen integroidusta USB-piiristöstä. Lisäksi pyrittiin toteuttamaan yksinkertainen isäntäohjelma, joka yhdistettynä suunniteltuun USB-laitteeseen mahdollistaisi käyttöjärjestelmän toimintojen ohjaamisen USB-laitteen painikkeita painamalla. Työn tavoitteiden saavuttamiseksi luettiin USB-dokumentteja ja –kirjallisuutta ja tutustuttiin valmiisiin USB-projekteihin. Laiteohjelmiston ja isäntäohjelman pohjana käytettiin valmiita projekteja, jotta työn määrä ei kasvaisi liian suureksi. Molempia muokattiin lisäominaisuuksien lisäämiseksi ja työn tavoitteiden saavuttamiseksi
USB-väylän toimintaa onnistuttiin selvittämään sekä elektroniikan että ohjelmoinnin näkökulmasta. USB standardin asettamat vaatimukset määräävät muun muuassa käytettävien ylösvetovastusten ja kytkentäkondensaattoreiden suuruuden ja esimerkiksi kuinka pitkä USB-kaapeli voi olla ja näitä tietoja käytettiin hyväksi laitetta suunniteltaessa. Erilaisten pakettityyppien toimintaa tutkittiin, ja ylösvetovastusten merkitys USB-laitteen nopeuden valinnassa opittiin ymmärtämään. Laite saatiin suunniteltua ja rakennettua koekytkentäalustaan ja laiteohjelmisto saatiin ladattua laitteen mikrokontrollerille. Laiteohjelmiston raporttikuvailutietuetta muokattiin työhön sopivaksi. Isäntäohjelmaan lisättiin ominaisuus, joilla useamman painikkeen käyttäminen laitteessa ei tuottaisi ongelmia. Lisäksi ohjelmoitiin funktiot kolmelle painikkeelle, jolloin äänenvoimakkuuden ohjaaminen käyttöjärjestelmässä onnistui USB-laitteen painikkeita painamalla.
USB-väylän ja -ohjelmoinnin monimutkaisuudesta johtuen ei ollut mahdollista tuottaa niin paljon alkuperäistä koodia, kuin oli tarkoitus. Lisäksi ohjauskonsoli jäi todella yksinkertaiseksi HID-laitteeksi, jossa oli vain neljä painiketta ja ohjattava LED. Laiteohjelmistoon ja isäntäohjelmaan tehdyt lisäykset kuitenkin toimivat hyvin ja kyseisellä laitteella voidaan jo nyt tehdä mahdollisesti monia asioita Windows-käyttöjärjestelmässä. Tulevaisuudessa on mahdollista lisätä LCD-näyttö laitteeseen ja yrittää käyttää mikrokontrollerin A/D-muunninta, jotta laitteeseen saadaan lisää ominaisuuksia. Myös laiteohjelmistoa on mahdollista kehittää vielä pitemmälle.
USB-väylän toimintaa onnistuttiin selvittämään sekä elektroniikan että ohjelmoinnin näkökulmasta. USB standardin asettamat vaatimukset määräävät muun muuassa käytettävien ylösvetovastusten ja kytkentäkondensaattoreiden suuruuden ja esimerkiksi kuinka pitkä USB-kaapeli voi olla ja näitä tietoja käytettiin hyväksi laitetta suunniteltaessa. Erilaisten pakettityyppien toimintaa tutkittiin, ja ylösvetovastusten merkitys USB-laitteen nopeuden valinnassa opittiin ymmärtämään. Laite saatiin suunniteltua ja rakennettua koekytkentäalustaan ja laiteohjelmisto saatiin ladattua laitteen mikrokontrollerille. Laiteohjelmiston raporttikuvailutietuetta muokattiin työhön sopivaksi. Isäntäohjelmaan lisättiin ominaisuus, joilla useamman painikkeen käyttäminen laitteessa ei tuottaisi ongelmia. Lisäksi ohjelmoitiin funktiot kolmelle painikkeelle, jolloin äänenvoimakkuuden ohjaaminen käyttöjärjestelmässä onnistui USB-laitteen painikkeita painamalla.
USB-väylän ja -ohjelmoinnin monimutkaisuudesta johtuen ei ollut mahdollista tuottaa niin paljon alkuperäistä koodia, kuin oli tarkoitus. Lisäksi ohjauskonsoli jäi todella yksinkertaiseksi HID-laitteeksi, jossa oli vain neljä painiketta ja ohjattava LED. Laiteohjelmistoon ja isäntäohjelmaan tehdyt lisäykset kuitenkin toimivat hyvin ja kyseisellä laitteella voidaan jo nyt tehdä mahdollisesti monia asioita Windows-käyttöjärjestelmässä. Tulevaisuudessa on mahdollista lisätä LCD-näyttö laitteeseen ja yrittää käyttää mikrokontrollerin A/D-muunninta, jotta laitteeseen saadaan lisää ominaisuuksia. Myös laiteohjelmistoa on mahdollista kehittää vielä pitemmälle.