2011 Technická univerzita v Liberci Ing. Přemysl Svoboda ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE V Liberci dne 16. 12. 2011
Obsah Obsah... 1 Úvod... 2 Funkce zařízení... 3 Režim sběru dat s jejich ukládáním a odesílání uložených dat v intervalech... 3 Popis činnosti zařízení... 3 Režim okamžitého odesílání sbíraných dat... 4 Popis činnosti zařízení... 4 Firmware... 5 Vývoj firmware... 5 Prostředky pro vývoj... 5 Popis firmware... 5 Balíček epsnet... 5 Balíček Logging... 6 Balíček Helper... 6 Balíček ChunkIO... 6 Balíček Server... 6 Balíček ChannelRepeater... 7 Nasazení firmware... 7 Konfigurace zařízení... 8 Schéma zařízení... 9
Úvod Tento dokument se zabývá popisem firmware (program ovládající elektronické zařízení) pro zařízení sloužící ke vzdálenému sběru a odesílání dat na server (Obr. 1 Zařízení s HW modulem TC65i, schéma zapojení je na obrázku v kapitole Schéma zařízení). Zařízení je založeno na funkčnosti HW modulu TC65i, který umožňuje komunikaci GPRS protokolem TCP/IP. Firmware je program pro modul TC65i a využívá jeho schopnosti automaticky spouštět mobilní Java aplikace. Obr. 1 Zařízení s HW modulem TC65i V dokumentu je jednoduše popsána funkce firmware v zařízení. Detailní funkci popisují samotné zdrojové kódy. Kromě firmware byla za účelem testovacího provozu naprogramována jednoduchá serverová aplikace. Ta využívá zdrojového kódu firmware (pro různé režimy běhu) díky přenositelnosti kódu jazyka Java. Zařízení bylo s touto aplikací testováno v obou režimech běhu. Aplikace je součástí balíku zdrojových kódů.
Funkce zařízení Funkce zařízení spočívá v odesílání dat měřených v určité lokalitě na databázový server, kde proběhne jejich uložení. Jednotlivá měřící zařízení v lokalitě jsou k tomuto zařízení připojená přes společnou sběrnici RS485. Odesílací zařízení pak z jednotlivých měřících zařízení sbírá data a odesílá na server. V průběhu realizace bylo zařízení naprogramováno (jeho firmware) pro funkci ve dvou režimech: Režim sběru dat s jejich ukládáním a odesílání uložených dat v intervalech. Režim okamžitého odesílání sbíraných dat. Server DB RS485 HW s TC65i Měřící zařízení Obr. 2 Zapojení zařízení (HW s TC65i) v řetězci Režim sběru dat s jejich ukládáním a odesílání uložených dat v intervalech V tomto režimu se využívá toho, že modul TC65i má vnitřní paměť o velikosti cca 1MB. Pravidelně sbíraná data z měřících zařízení jsou ukládána do této paměti v podobě souboru a v několikanásobně delších intervalech než samotné sbírání dat z jednotlivých zařízení je tento soubor odesílán. Spojení na server se otevírá pouze pro odeslání balíku dat z paměti. Jednotlivá měřící zařízení jsou po sběrnici dotazována na naměřená data. Popis činnosti zařízení Činnost zařízení (firmware) je popsána v následujících krocích, je to popis základních bodů funkcionality firmware. Po spuštění zařízení (přívodu napájení, restartu zařízení) se postupně provádí následující činnosti: 1. Krátké časové zpoždění činnosti zajistí čas pro přechod HW do předpokládaného stavu. 2. Inicializace měření času v případě nesouladu reálného času zařízení s předpokládaným datem se provede synchronizace času pomocí SMS. 3. Kontrola intervalu skenování sběrnice na dostupná zařízení pokud je dosaženo intervalu provede se bod 4, jinak se pokračuje na bod 5.
4. Skenování dostupných zařízení na sběrnici 485 v rozsahu adres uložených v konfiguraci v případě úspěšného skenování nastaví čas dalšího skenování podle konfigurace a pokračuje k bodu 5, jinak se bod 4 po krátké pauze opakuje. 5. Kontrola intervalu měření podle konfigurace pokud bylo dosaženo intervalu měření, provede se bod 6, jinak se opakuje bod 5. 6. Vyčtení dat ze všech nalezených zařízení v bodu 4, nastavení času dalšího vyčtení dat. 7. Kontrola intervalu odeslání dat na server podle konfigurace pokud bylo dosaženo intervalu, provede se bod 8, jinak se přejde na bod 5. 8. Odeslání dat z paměti na server. 9. Přechod na bod 3. Režim okamžitého odesílání sbíraných dat Režim využívá trvalého spojení se serverem. Příchozí data okamžitě odesílá přes trvalé spojení. Dále se využívá toho, že jednotlivá zařízení nevyčkávají na příkaz k vyčtení dat, ale posílají sběrnému zařízení data bez vyzvání, v pravidelných intervalech. Popis činnosti zařízení Činnost zařízení (firmware) je popsána v následujících krocích, je to popis základních bodů funkcionality firmware. Po spuštění zařízení (přívodu napájení, restu zařízení) se postupně provádí následující činnosti: 1. Krátké časové zpoždění činnosti zajistí čas pro přechod HW do předpokládaného stavu. 2. Inicializace měření času v případě nesouladu reálného času zařízení s předpokládaným datem se provede synchronizace času pomocí SMS. 3. Navázání spojení se serverem pokud se nepodaří navázat spojení, bod 3 se opakuje, jinak se pokračuje bodem 4. 4. Čtení dat ze sběrnice a odesílání na server data přijímaná po sběrnici jsou odesílána okamžitě na server, pokud dojde k přerušení spojení či jiné chybě, přejde se na bod 3.
Firmware Firmware je naprogramován v jazyce Java ve formě souboru Java Archive (soubor s příponou *.jar). Je to archiv překompilovaných souborů tříd (soubor s příponou *.class) a pomocných zdrojů aplikace. Vývoj firmware pro zařízení s komunikačním modulem TC65i je vázán na specifickou platformu a jazyk Java (viz. kapitola Vývoj firmware). Výsledný soubor BTMobile.jar se jako firmware nahrává do zařízení nástrojem Siemens AG Module Exchange Suite (viz. kapitola Nasazení firmware). Vývoj firmware Firmware je naprogramován jako MIDlet v jazyce Java pro platformu Cinterion IMP-NG TC65i Wireless Toolkit resp. Siemens IMP-NG TC65 R2.8 Wireless Toolkit a profil zařízení IMP-NG v konfiguraci pro zařízení CLDC-1.1. Prostředky pro vývoj Následující prostředky byly použity pro vývoj firmware. Lze využít novější verze vývojových prostředků, musí být ale vzájemně kompatibilní (zejména platformy integrované do vývojových prostředí). Vývojové prostředí NetBeans IDE 5.5.1. Java Platform (JDK). Platforma Cinterion IMP-NG TC65i Wireless Toolkit / Siemens IMP-NG TC65 R2.8 Wireless Toolkit (IMP-NG, CLDC-1.1) standardně dodávané s modulem TC65i. Ovladače a aplikace Siemens AG Module Exchange Suite pro TC65i. Popis firmware Popis firmware je ve formě orientačního popisu jednotlivých balíčků a tříd jazyka Java. Balíček epsnet Připojená měřící zařízení komunikují po sběrnici RS485 protokolem EPSNET. Balíček obsahuje třídy pro práci s tímto protokolem. EPSNetCommand základní třída reprezentující příkaz pro protokol EPSNET. Využívá se při příjmu dat od zařízení a při ukládání či odesílání dat na server. EPSNETCommandReceivedEvent třída pro objekt události příjmu paketu od měřícího zařízení. EPSNETCommandReceivedListener posluchač pro příjem dat. InvalidChecksumException objekt výjimky pro chybu EPSNET paketu.
Balíček Logging Logování pro účely ladění a pozdějších provozních záznamů. Obsahuje rozhraní a třídy pro logování na různé zdroje (na textový výstup konzole, do souboru). Balíček Helper Pomocné třídy pro práci s polem hodnot a výpočet kontrolního součtu. Balíček ChunkIO Obsahuje třídy pro vyšší vrstvu komunikace se serverem pro režim sběru dat s ukládáním a odloženým odesíláním na server. Soubor uložený v paměti zařízení je odesílán po částech každá část dat je označena identifikátorem a dalšími informacemi. Na straně serveru je pak soubor z jednotlivých částí skládán zpět do původní podoby. Pokud by některá z částí nedorazila na server je možné ze zbylých obdržených částí soubor zrekonstruovat (dojde tak k zachování alespoň některých dat). Důležité třídy balíčku: ChunkIOChannel třída spravující komunikační kanál nad vrstvou TCP/IP. ChunkInfo třída reprezentující stav části dat. Sender třída pro odeslání datového souboru (samostatné vlákno). Balíček Server Obsahuje třídy pro běh firmware v režimu sběru dat s ukládáním a odesíláním uložených dat v intervalech na server. Důležité třídy balíčku: Midlet třída obsahuje hlavní smyčku programu (viz. Popis činnosti zařízení v kapitole Režim sběru dat s jejich ukládáním a odesílání uložených dat v intervalech). TimeSync třída pro synchronizaci hodin reálného času pomocí SMS. TC65Connection třída pro inicializaci komunikace po RS485. BusDeviceInfo třída reprezentující informace o zařízení na sběrnici RS485. BusScanInfo třída pro uložení výčtu zařízení na sběrnici. Command rozhraní příkazu. Configuration třída pro čtení konfiguračního souboru. Connection rozhraní pro komunikační kanál. DataAcquisition třída pro čtení paketů protokolu EPSNET ze zařízení po RS485. DataFileManager třída pro práci s datovým souborem. DataPacket pomocná třída pro ukládání dat do souboru. ATCommandEventHandler třída pro zachycení události AT příkazu. ATStrings třída pro práci s AT příkazy modulu. AsyncCommandReader třída pro čtení dat na sběrnici RS485.
Balíček ChannelRepeater Obsahuje třídy pro běh firmware v režimu okamžitého odesílání sbíraných dat na server. Důležité třídy balíčku: Midlet obsahuje hlavní smyčku programu (viz. Popis činnosti zařízení v kapitole Režim okamžitého odesílání sbíraných dat). ServerConnection třída pro inicializaci spojení na server. PacketRepeater třída pro čtení EPSNET příkazů ze zařízení na sběrnici RS485 a jejich přeposílání na server. Nasazení firmware Firmware se ve formě souboru *.jar do zařízení instaluje pomocí nástroje Siemens AG Module Exchange Suite. Tento nástroj si při instalaci zavede vlastní ovladače a vystupuje pak v roli dalšího zařízení v operačním systému, které je prezentováno jako Systémová složka (Obr.3 Siemens AG Systémová složka). Otevřením této složky se otevře přístup do paměti modulu uspořádané pomocí známého souborového systému zobrazí se složka A:\. Do této složky se nakopíruje soubor BTMobile.jar. Po restartu zařízení se načte nový firmware. Zařízení se k počítači připojuje do USB vytvoří se virtuální sériový port. V nastavení nástroje lze pak vybrat číslo portu (Obr.4 Siemens AG Nastavení). Pro správné načtení firmware musí být modul TC65i správně nakonfigurován. Pomocí AT příkazů se nastaví spuštění *.jar souboru následujícími příkazy (např. pomocí hyperterminálu v systému windows): AT^SCFG="Userware/Autostart/AppName","",A:/BTMobile.jar AT^SCFG="Userware/Autostart/Delay","", 300 AT^SCFG="Userware/Autostart","",1 Obr.3 Siemens AG Systémová složka Obr.4 Siemens AG Nastavení
Konfigurace zařízení Funkcionalita zařízení je konfigurovatelná parametrizováním běhu firmware. Firmware si za běhu načítá konfigurační údaje ze souboru uloženého v paměti zařízení. Soubor konfigurace se do zařízení instaluje stejným způsobem jako firmware (viz. kapitola Nasazení firmware). Nová konfigurace je platná až po restartu zařízení. Soubor je textový a musí mít název Config.txt. Má jednoduchý formát řádek s názvem parametru je následován řádkem s hodnotou. Seznam parametrů je v následující tabulce. Název parametru SERVER PORT CHUNK_SIZE LOG_SEVERITY MAX_FILE_SIZE ID_LOW ID_HIGH BUS_SCAN_CYCLE DATA_READOUT_CYCLE DATA_UPLOAD_CYCLE Popis IP adresa serveru, na který budou odesílána data. Tvar: xxx.xxx.xxx.xxx. Port serveru. Velikost datového balíku v bajtech při odesílání na server. Úroveň logu číselná hodnota v rozsahu 0 až 3 (0 DEBUG, 1 ERROR, 2 WARNING, 3 INFO) Maximální velikost souboru pro ukládání v kb. Po dosažení maximální velikosti datového souboru jsou data odeslána na server. Nižší hodnota rozsahu identifikátorů měřících zařízení. Skenování zařízení na sběrnici probíhá v rozsahu od ID_LOW do ID_HIGH. Vyšší hodnota rozsahu identifikátorů měřících zařízení. Skenování zařízení na sběrnici probíhá v rozsahu od ID_LOW do ID_HIGH. Interval skenování zařízení na sběrnici v minutách. Interval čtení dat z měřících zařízení. Interval odesílání dat ze souboru na server v minutách. UPLOAD_ON_CYCLE Příznak povolení/zakázání odesílání dat na server. Hodnota 0 pro zákaz, 1 pro povolení. PHONE_NUMBER Tel. číslo SIM karty umístěné v modulu. Slouží k odesílání synchronizační SMS.
Schéma zařízení