W zależności od wersji platformy przed, rozpoczęciem programowania pamięci EEPROM należy wprowadzić sterownik w odpowiedni tryb pracy - w platformach starszych niż 3000 jest to tryb programowania paczek czasowych, zaś w platformie 3000 i nowszych jest to specjalny tryb programowania pamięci EEPROM. Bez względu na wersję platformy, wprowadzenie sterownika w odpowiedni tryb pracy możliwe jest przy pomocy polecenia:
[0x02]X<?>[0x03]gdzie:
<?> - numer urządzenia (1..9).
Następnie należy przesyłać do sterownika nową zawartość pamięci EEPROM w formacie Intel HEX. Format ten składa się z wielu linii danych, z których każdą można podzielić na sześć części:
Kod startu składający się ze znaku ':'.
Dwucyfrowa liczba bajtów danych, które są przesyłane w danej linii (platformy stosowane w sterownikach nie obsługują ilości danych większej niż 64 bajty w linii).
Czterocyfrowy adres, pod który należy zapisać dane z aktualnej linii (platformy stosowane w sterownikach ignorują linie, których dane mają być zapisane pod adres poniżej 0x8000).
Dwucyfrowy typ rekordu przesyłanego w danej linii. Obsługiwane są dwa typy: 00 oznaczający rekord z danymi oraz 01 oznaczający rekord kończący przesyłanie pliku HEX. Ze względu na istniejące w systemie SZARP oprogramowanie, które mimo wysłania rekordu końca pliku potrafi nadawać po nim jeszcze dalsze dane, platformy w sterownikach są przygotowane na takie zachowanie i potrafią poprawnie zapisać dane do pamięci EEPROM nawet, jeśli zostaną one odebrane po rekordzie końca pliku.
Dane o długości podanej wcześniej (w postaci cyfr szesnastkowych).
Dwucyfrowa suma kontrolna, która jest najmniej znaczącym bajtem dwójkowego dopełnienia sumy wszystkich wcześniejszych pól oprócz kodu startu.
Format ten jest formatem typu <-ASCII_X-> (zobacz Rozdział 16).
Przykładowe dane w formacie Intel HEX:
:10010000214601360121470136007EFE09D2190140 :100110002146017EB7C20001FF5F16002148011988 :10012000194E79234623965778239EDA3F01B2CAA7 :100130003F0156702B5E712B722B732146013421C7 :00000001FF
Sterownik przesyła potwierdzenie poprawnego odebrania każdej z linii w postaci linii formatu Intel HEX o nieco zmodyfikowanej zawartości:
liczba bajtów danych zawsze wynosi 00,
nie występuje pole z danymi (co jest zgodne z punktem poprzednim),
wartość pola typu rekordu ma specjalną interpretację:
02 - potwierdzenie poprawnego przyjęcia linii o podanym adresie,
03 - odrzucenie linii o podanym adresie (występuje tylko w platformie 3000 i nowszych),
04 - potwierdzenie poprawnego przyjęcia linii oznaczającej koniec pliku HEX.
:008000027e
Uwaga: w platformach 3000 i nowszych programowanie zawartości pamięci EEPROM jest możliwe tylko za pośrednictwem pierwszego portu szeregowego. Starsze platformy nie posiadają takiego ograniczenia.
Poprzedni | Spis treści | Następny |
Programowanie zegara czasu rzeczywistego sterownika (tylko platforma 3000 i nowsze) | Początek rozdziału | Komunikacja z innymi sterownikami po magistrali RS-485 |