75_77.pdf

(321 KB) Pobierz
Heksadecymalne formaty plików danych
N O T A T N I K P R A K T Y K A
Heksadecymalne formaty
plików danych
W artykule przedstawiamy
szczegó³owy opis kilku
najpopularniejszych formatów zbiorów,
u¿ywanych do przenoszenia danych
pomiêdzy ró¿nymi urz¹dzeniami
cyfrowymi.
Informacje zawarte w artykule
umo¿liwiaj¹ zarówno analizê zbiorów
tworzonych przez kompilatory, jak
i samodzieln¹ ich obróbkê.
Ka¿dy, kto choæ raz zetkn¹³ siê
w praktyce z technik¹ mikroproceso-
row¹, spotka³ siê z pojêciem pliku
kodu wynikowego (lub koñcowego)
programu lub danych. Zbiory takie
s¹ najczêciej wynikiem kompilacji
i operacji linkowania (³¹czenia z in-
nymi opcjonalnymi modu³ami) zbio-
ru ród³owego do postaci akcepto-
wanej przez urz¹dzenia koñcowe
(np. programatory pamiêci EPROM,
programatory mikroprocesorów, ró¿-
nego rodzaju emulatory oraz gotowe
mikrosterowniki, przystosowane do
przyjmowania informacji, b¹d to
w postaci programu lub tabel da-
nych).
W ka¿dym przypadku na etapie
koñcowym istnieje potrzeba przes³a-
nia danych ze ród³a, którym naj-
czêciej jest komputer PC lub ze-
wnêtrzny inteligentny mikrosterow-
nik do urz¹dzenia odbiorczego. Do
transmisji, ze sprzêtowego punktu
widzenia, u¿ywa siê najczêciej ³¹-
cza szeregowego (RS232C) lub rów-
noleg³ego (Centronics), które s¹ obec-
nie najpopularniejsze.
Najprostszym sposobem przesy³a-
nia danych jest transmisja w postaci
binarnej, bajt po bajcie - od pier-
wszego do ostatniego bajtu informa-
cji. Sposób ten jest prosty, lecz
posiada kilka powa¿nych wad. Pier-
wsza - to brak kontroli poprawnoci
przesy³ania danych (np. w postaci
sumy kontrolnej). Inn¹ wad¹ jest
brak mo¿liwoci bezporedniego ad-
resowania wybranych obszarów pa-
miêci, do których odebrane dane s¹
³adowane przez urz¹dzenie odbior-
cze. Aby zaradziæ tym wadom op-
racowano kilka standardowych for-
matów danych, dziêki którym wy-
eliminowano wady typowego binar-
nego sposobu przesy³ania danych.
Najogólniej rzecz ujmuj¹c, dane
zapisywane s¹ w postaci heksadecy-
malnej (szesnastkowej), przy u¿yciu
znaków ASCII: 0...9, A...F,
w standardowych zbiorach teksto-
wych, bezporednio czytelnych tak¿e
dla operatora. Dane zapisywane s¹
w rekordach, w których oprócz pew-
nej umownej liczby bajtów danych
znajduj¹ siê dodatkowe informacje,
takie jak: adres, pod który maj¹
zostaæ za³adowane dane znajduj¹ce
siê w rekordzie, czy suma kontrolna.
Obecnie najczêciej stosowane
w praktyce formaty to:
- Intel-Hex,
- Motorola,
- Tektronix.
Formaty INTEL
Format Intel 1
Charakterystyka: 16-bitowe pole
adresu, u¿ywany dla zbiorów danych
o wielkoci do 64kB. Najbardziej roz-
powszechniony format wród narzê-
dzi i sterowników opartych na mik-
roprocesorach 8-bitowych.
Struktura rekordów:
a) rekord danych
Nr Opis
znaku
1 nag³ówek = znak :
(dwukropek)
2,3 liczba bajtów danych
4,5 MSB adresu ³adowania
rekordu
6,7 LSB adresu ³adowania
rekordu
8,9 typ rekordu, zawsze 00
10...x dane, x = (liczba bajtów
danych -1)*2+11.
x+1, x+2 suma kontrolna
x+3, x+4 znaki CR+LF (koniec
linii)
b) rekord koñcowy
Nr Opis
znaku
1 nag³ówek = znak :
(dwukropek)
2,3 liczba bajtów danych=00
4...7 adres = 0000
8,9 typ rekordu, musi byæ 01
10,11 suma kontrolna rekordu
12,13 znak koñca linii : CR+LF
Suma kontrolna jest dope³nie-
niem (kod U2) 8-bitowej sumy (bez
przeniesienia) wszystkich bajtów
w rekordzie. Dla rekordu koñcowego
suma wynosi FF (255).
Format Intel 2
Charakterystyka: format rozpo-
wszechniony dla programowania ste-
rowników opartych na rodzinie
MCS86, u¿ywa 20-bitowego pola ad-
resowego, stosowany dla zbiorów
o wielkoci danych powy¿ej 64kB.
Format znany tez pod nazwa Intel-
Extended.
Elektronika Praktyczna 10/97
75
30483925.009.png
N O T A T N I K P R A K T Y K A
Struktura rekordów:
a) rekord danych - taki sam jak
w formacie Intel-1
b) rekord rozszerzenia adresu (ang.
Extended Address Record)
Nr Opis
znaku
1 nag³ówek = znak :
(dwukropek)
2,3 liczba bajtów danych,
zawsze 02
4...7 adres rekordu, zawsze
0000
8,9 typ rekordu, musi byæ 02
10,11 MSB offsetu adresu
³adowania
12,13 LSB offsetu adresu
³adowania
14,15 suma kontrolna
16,17 znaki koñca linii: CR+LF
c) rekord adresu startowego (dla
kodu procesorów 8086
i pochodnych)
Nr Opis
znaku
1 nag³ówek = znak :
(dwukropek)
2,3 liczba bajtów danych,
zawsze 04
4...7 adres rekordu, zawsze
0000
8,9 typ rekordu, musi byæ 03
10...13 wartoæ rejestru CS
14...17 wartoæ rejestru IP
18, 19 suma kontrolna
20,21 znaki koñca linii: CR+LF
Rys. 1. Przyk³adowy rekord danych i rozszerzenia adresu w formacie Intel 2.
Rys. 2. Przyk³adowy rekord danych w formacie Motorola S2.
Na rys.1 przedstawiono przyk³a-
dow¹ strukturê rekordu danych i re-
kordu rozszerzenia adresu w forma-
cie Intel 1 i 2
Formaty MOTOROLA
Format Motorola S1
Charakterystyka: format z 16-bito-
wym adresem, u¿ywany dla plików
o wielkoci danych do 64kB.
Struktura rekordów:
a) rekord danych
Nr Opis
znaku
1,2 nag³ówek, dwa znaki=S1
3,4 liczba bajtów danych + 3
5,6 MSB adresu ³adowania
rekordu
7,8 LSB adresu ³adowania
rekordu
9...x dane: x = (liczba bajtów
danych -1)*2 + 10
x+1, x+2 suma kontrolna
X+3, x+4 znak koñca linii: CR+LF
Rys. 3. Przyk³adowy rekord danych w formacie Tektronix 1.
Format Motorola S2
Charakterystyka: format z 24-bito-
wym adresem, u¿ywany w zbiorach
o wielkoci danych powy¿ej 64kB.
Struktura rekordów:
a) rekord danych
Nr Opis
znaku
1,2 nag³ówek, dwa znaki=S2
3,4 liczba bajtów danych + 4
5,6 MSB 24-bitowego adresu
rekordu
7,8 rodkowy bajt 24-bitowego
adresu rekordu
9,10 LSB 24-bitowego adresu
rekordu
11...x dane: x = (liczba bajtów
danych - 1)*2 +12
x+1, x+2 suma kontrolna
x+3, x+4 znak koñca linii:
CR+LF
Liczba bajtów danych zawiera
tak¿e bajty adresu i sumê kontroln¹.
b) rekord koñcowy
Nr Opis
znaku
1,2 nag³ówek, dwa znaki=S9
3,4 znak koñca linii: CR+LF
Suma kontrolna dla ka¿dego re-
kordu jest 8-bitow¹ sum¹ (bez prze-
niesienia), w kodzie U1, bajtów da-
nych oraz adresu ³adowania.
c) dodatkowy rekord komentarza
Nr Opis
znaku
1,2 nag³ówek, dwa znaki=S0
2...x+1 komentarz o d³ugoci x
znaków
x+2, x+3 znak koñca linii: CR+LF
b) rekord koñcowy
Nr Opis
znaku
1,2 nag³ówek, dwa znaki=S9
3,4 znak koñca linii: CR+LF
76
Elektronika Praktyczna 10/97
30483925.010.png 30483925.011.png 30483925.012.png 30483925.001.png 30483925.002.png 30483925.003.png 30483925.004.png 30483925.005.png 30483925.006.png
N O T A T N I K P R A K T Y K A
Na rys.2 przedstawiono przyk³a-
dowy rekord w zapisie Motorola S2.
6,7 liczba bajtów danych
8,9 suma kontrolna = sumie
bajtów adresu i liczby
bajtów danych
10...x dane: x = (liczba bajtów
danych -1 )*2 +11
x+1, x+2 suma kontrolna = 8-
bitowej sumie (modulo 256)
bajtów danych
x+3, x+4 znak koñca linii: CR+LF
(4 znaki) - maksymalnie do 16
znaków, co oznacza 8 bajtów opisu-
j¹cych adres +1 znak na pocz¹tku
mówi¹cy, z ilu bajtów sk³ada siê
adres.
Format Motorola S3
Charakterystyka: format z 32-bito-
wym adresem. Opisano tylko rekord
danych, pozosta³e takie jak dla for-
matu Motorola S2.
a) rekord danych
Nr Opis
znaku
1 nag³ówek, znak = %
2,3 d³ugoæ bloku: liczba
znaków w rekordzie (nie
licz¹c znaku %)
4 typ rekordu, dla danych=6
5,6 suma kontrolna = sumie
wszystkich po³ówek
bajtów w rekordzie, poza
znakiem % (wliczaj¹c
sam¹ sumê)
7...x adres ³adowania rekordu
(obiektu), o zmiennej
d³ugoci, zawiera maks. 17
znaków, z których pierwszy
okrela d³ugoæ adresu
z cyfr¹ 0, oznaczaj¹c¹
d³ugoæ 16.
x+1 dane: obiekt, 2 znaki na
bajt
a) rekord danych
Nr Opis
znaku
1,2 nag³ówek, dwa znaki=S3
3,4 liczba bajtów danych + 5
5,6 MSB 32-bitowego adresu
rekordu
7...10 2 rodkowe bajty adresu
rekordu
11,12 LSB 32-bitowego adresu
rekordu
13...x dane: x = (liczba bajtów
danych - 1)*2 +14
x+1, x+2 suma kontrolna
X+3, x+4 znak koñca linii: CR+LF
b) rekord koñcowy
Nr Opis
znaku
1 nag³ówek, znak=/ (slash)
2...5 adres ³adowania rekordu
(0000)
6,7 liczba bajtów danych=00
8,9 suma kontrolna = sumie
bajtów adresu i liczby
bajtów danych (00)
10,11 znak koñca linii: CR+LF
c) rekord komentarza (zwany
tak¿e abort block)
Nr Opis
znaku
1 nag³ówek, znak=/ (slash)
2 znak / (slash)
3...x+2 komentarz: maksymalnie
69 znaków, x = liczba
znaków
x+3, x+4 znak koñca linii: CR+LF
W formacie tym rekord koñcowy
mo¿e mieæ tak¿e dodatkowe bajty
danych, np. S9030000FC, zawsze
jednak znacznik S9 okrela ten re-
kord jako zakoñczenie danych. Ostat-
nie dwa znaki takiego rekordu s¹
zawsze sum¹ kontroln¹ bajtów po-
przedzaj¹cych, w tym przypadku:
03+00+00+FC = FF mod FF = 0.
b) rekord koñcowy
Nr Opis
znaku
1 nag³ówek, znak = %
2,3 d³ugoæ bloku: liczba
znaków w rekordzie (nie
licz¹c znaku %)
4 typ rekordu, dla koñcowego=8
5,6 suma kontrolna = sumie
wszystkich po³ówek
bajtów w rekordzie, poza
znakiem % (wliczaj¹c
sam¹ sumê)
Formaty TEKTRONIX
Format Tektronix 1
Format u¿ywany przy transferze
danych o wielkoci do 64kB (16-
bitowy adres).
Uwaga: wszystkie sumy kontrolne
u¿ywane w formacie Tektronix s¹
obliczane jako 8-bitowe sumy (mo-
dulo 256) poszczególnych po³ówek
bajtów, czyli w³aciwie samych zna-
ków: 0..9, A..F u¿ywanych do zapisu
poszczególnych bajtów.
Na rys.3 przedstawiono przyk³a-
dowy rekord danych w formacie Tek-
tronix 1.
a) rekord danych
Nr Opis
znaku
1 nag³ówek, znak=/ (slash)
2,3 MSB adresu ³adowania
rekordu
4,5 LSB adresu ³adowania
rekordu
S³awomir Surowiñski, AVT
Format Tektronix 2
Format o zmiennej d³ugoci adre-
su. Wielkoæ adresu ³adowania re-
kordu mo¿e byæ wiêksza ni¿ 2 bajty
MSB ang. Most Significant Byte - bajt
najbardziej znacz¹cy.
LSB ang. Least Significant Byte - bajt
najmniej znacz¹cy.
Oprogramowanie do konwersji plików binarnych i HEX znajduje siê na p³ycie
CD-EP1. Zamówienia mo¿na sk³adaæ na kuponie kartonowym.
Elektronika Praktyczna 10/97
77
30483925.007.png 30483925.008.png
Zgłoś jeśli naruszono regulamin