Projektbeskrivelse KBK 24.11.2009 Side 1 af 6 --- ooo --- Synopsis for IHA Kursus : ITJEM1, efterår 2009 Navn: Kåre Bach Kjeldsen Studienummer: AU9215 Oprettet den 24/11 2009 --- ooo --- Version Dato Tekst 1.00 24/11 2009 Oprindelig version.
Projektbeskrivelse KBK 24.11.2009 Side 2 af 6 1. Indledning Projektet er en del af et IHA kursus (ITJEM1), som handler om udvikling af JAVA applikationer på embeddede enheder. Dette projekt udgør den afsluttende afleveringsopgave, som danner grundlag for at vurdere kurset som bestået eller ikke bestået. For at kæde kurset sammen med de muligheder TOS har for at udnytte JAVA ME, udvikles en applikation som kan benyttes sammen med et eksisterende TOS produkt. Til dette er valgt at udvikle en bootloader, som trådløst kan hente en ny firmware fra en ekstern server, og trådløst programmere en Hardi Jobcomputer. 2. Målbeskrivelse Hovedformålet med projektet er at få udforsket mulighederne for at benytte Java ME i TOS. Derfor forsøges defineret et projekt som både kan bruges i praksis på eksisterende produkt, samt dækker så bred en del af mulighederne i Java ME som muligt. 3. Use case På en Hardi marksprøjte sidder en Jobcomputer, baseret på en H8 microcontroller med et stort antal udgange og indgange til at styre og overvåge udbringningsmængde, bom, datalogning osv. Der udvikles løbende på software til Jobcomputeren, da Hardi jævnligt udvider deres produktsortiment, specialfunktioner, bomtyper osv. Der er derfor ofte behov for at omprogrammere en sprøjte i marken. Det foregår i dag med en PC og et RS232 kabel. PC bruges også til at udlæse diverse debug data og konfigurationsprint. For at undgå at skulle have en sin PC med i marken hver gang, og for at lette servicefolkenes arbejde, udvikles en Java ME applikation som kan køre på en standard (moderne) mobiltelefon. Med dette program kan man stå ude i marken, oprette forbindelse til en server hvor den nye software version ligger, og hente den ned på telefonen. Herefter oprettes forbindelse med telefonens Bluetooth til et Bluetooth modul på Jobcomputeren, og Bootloader programmet starter, og programmerer Jobcomputeren med den nye version. I forbindelse med fejlsøgning, har servicefolkene brug for at udlæse samtlige konfigurationsparametre og debug data. En Java ME applikation på telefonen kan i nogle tilfælde undgå behovet for en PC, ved at lade mobiltelefonen agere terminal. På nedenstående skitse vises de komponenter dette setup består af:
Projektbeskrivelse KBK 24.11.2009 Side 3 af 6 Bluetooth Hardi Jobcomputer Til test af dette projekt laves to små testprogrammer, som blinker med nogle lysdioder for at kunne skelne forskel mellem de to versioner. Som udgangspunkt er Jobcomputeren programmeret med V1. Efter bootload med V2, kan man verificere det ved at V2 blinker på en anden måde end V1. RS232/Bluetooth converter: Jobcomputeren har kun en RS232 port til bootload. Der monteres derfor en RS232/Bluetooth converter på denne port. Der benyttes et færdigt modul fra ConnectBlue. Mobiltelefon: Til dette projekt benyttes en lidt ældre telefon, SonyEricsson K610i, med JP-7, som er en lidt ældre Java implementering end den der benyttes i dag. Server: TBD.
Projektbeskrivelse KBK 24.11.2009 Side 4 af 6 4. Begrænsninger Da der er begrænsede ressourcer til projektet, men jeg alligevel ønsker at prøve så meget som muligt af, vil der være en del begrænsninger: - Begrænset eller ingen sikkerhed/kryptering ved overførsel fra server. - Ingen CRC eller anden check af om bin filen er modtaget uden fejl. - Ingen CRC check på kommunikation med Jobcomputer. - Simple små programmer i Jobcomputer udelukkende til test formål. - Udvikles på, og testes kun med, SE K610i telefon. - Da projektets hovedformål er at få prøvet teknologierne af, fokuseres der på at få drivere til hardware op at køre. Dvs. at der fokuseres på det at oprette forbindelse til server, og hente og gemme en fil på telefonen, samt at få Bluetooth forbindelsen til at fungere, og kunne kommunikere med Jobcom på simpel vis. Først herefter vil selve bootloaderdelen blive implementeret, da det regnes for en stor men triviel programmeringsopgave. Hvis tiden ikke tillader det, vil bootloader ikke blive implementeret fuldstændig indenfor dette projekt. 5. Java applikationen Programmet implementerer tre hovedfunktioner: Hent fil fra server: Opretter forbindelse til server via http, og henter.bin filen der skal programmeres. Filen gemmes binært i en record (RMS). Status vises på skærm. Bootloader: Opretter Bluetooth forbindelse til Jobcomputer, som UART. Læser.bin filen, og udfører programmeringen. Viser status på skærm. Debug viewer: Opretter Bluetooth forbindelse til Jobcomputer, som UART. Læser telegram fra Jobcomputer som indeholder analog aflæsning af vinkelmåler. Viser værdi på skærm. Herudover implementeres en MIDlet som indeholder menunavigering og valg af views. Nedenstående skitse viser kort hvilke klasser der forventes implementeret. Det er på nuværende tidspunkt kun vejledende for at skabe overblik. Detaljeret beskrivelse af klasserne vil opdateres løbende før og under udviklingen, og placeres i desgnspecifikationen.
Projektbeskrivelse KBK 24.11.2009 Side 5 af 6 Main_MIDlet - listmenu - formbootload - formdebug - formget_file - Status Bootloader - Value Debug_view + StartBootload() + Get_status() - Read_file() + Get_value() - Read_telegram() - Telegram[] - RX_buffer[] - TX_buffer[] + Write_bytes() + Read_bytes() Bluetooth_UART + Read_file() - Open_connection() - GetFile() - Close_conection() HTTP_Connection 6. Jobcomputer software Udviklingen af denne software er som sådan ikke en del af projektet, men der beskrives her kort de funktioner som der benyttes til at teste Java applikationen med: Jobcom V1: - Blinker med grøn lysdiode. - Udskriver spændingen fra en påmonteret vinkelmåler på UART Jobcom V2: - Blinker med rød lysdiode. - Udskriver spændingen fra en påmonteret vinkelmåler på UART Bootloader kode ligger permanent i et beskyttet område af FLASH. Bootloaderen benyttes som den er, uden modifikationer.
Projektbeskrivelse KBK 24.11.2009 Side 6 af 6 7. Udviklingsværktøjer Projektet forventes at kunne udvikles med brug af følgende værdktøjer: - Java JDK SE V6 build 17 bundle incl. NetBeans IDE 6.7.1. NetBeans Visual MIDlets benyttes til GUI. - Java ME platform SDK 3.0, incl. Wireless Toolkit - Sony Ericsson ME SDK V2.5.0.6