Mikrocomputertechnik


Prof. Jürgen Plate

7 Anhang

7.1 Literatur und Links

Literatur

Arnulf Wallrabe:
Mikrocontrollerpraxis
Einstieg mit dem 68HC11
Hanser Verlag

Dieses Buch beschreibt den Prozessor sehr viel ausführlicher als das Werk von Rose (s. u.) und bringt auch viele Beispiele. Dafür kommt hier die Beschreibung der einzelnen Befehle zu kurz. Aufgrund des Inhaltes und des Preises ist es nach meiner Ansicht noch am besten als Begleitung zur Vorlesung geeignet. Auch hier liegt eine Programmdiskette bei.

Michael Rose:
Mikroprozessor 68HC11
Architektur und Applikation
Hüthig Verlag

Das Buch beschreibt den Befehlssatz recht ausführlich, aber es gibt kaum kleinen Beispiele zu den Befehlen. Die umfangreicheren Beispiele im letzten Drittel des Buchs beziehen sich auf ein bestimmtes System. Das Buch ist relativ teuer, da neben einer Programmdiskette auch eine Platine für den Aufbau des Mustersystems beiliegt.

Ludwig Orgler:
MC68HC11 Microcontroller
Franzis Verlag

Sehr Hardware- und Schaltungsorientierte Anleitung. Auch hier fehlt die Beschreibung der Befehle. Das Buch ist eher etwas für Praktiker, die schon erste Erfahrungen mit dem Prozessor gesammelt haben. Auch hier liegt eine Diskette bei.

Rainer Bermbach:
Embedded Controller
Hanser Verlag

Dieses Buch macht mit dem Aufbau von Embedded Controllern auf INTEL-Basis vertraut (80186-Familie). Eine recht ordentliche Einführung in die Assembler-Programmierung. Auf der CD-ROM zum Buch gibt es eine komplette Entwicklungsumgebung, ein Tutorial und Datenblätter.

Rainer Kelch:
Rechnergrundlagen - Von der Binärlogik zum Schaltwerk
Fachbuchverlag Leipzig

Rainer Kelch:
Rechnergrundlagen - Vom Rechenwerk zum Universalrechner
Fachbuchverlag Leipzig

Beide Bücher fühen von der Digitaltechnik bis hin zum fertigen Prozessor und behandeln dabei auch Informationtheorie, Zahlendarstellung und binäres Rechnen. In jedem Buch steckt eine CD mit weiteren Infos und Lernprogrammen.

Ausserdem gibt es noch die englischen Referenz-Handbücher von Motorola, das nur von Motorola selbst bezogen werden kann:

M68HC11 Reference Manual und M68HC11 Technical Data

Das Reference-Manual ist hier abrufbar:

68HC11 Reference Manual (PDF, 3 MByte) und
68HC11 Reference Manual (PS, 0,9 MByte).

68HC11 Links

Freeware 68HC11 C Compilers

Commercial 68HC11 C Compilers

7.2 Tips zur Programmierung

Der eigentlichen Programmierung (=Codierung) geht eine Entwurfsphase voraus:

Durch Testen von Programmen kann man nur
deren Fehlerhaftigkeit feststellen
- aber niemals deren Korektheit!

Es ist unmöglich, ein Programm Narrensicher
zu machen, weil Narren zu erfindungsreich sind!

Grundlegende Prinzipien:

Programm-Dokumentation

Die Programmdokumentation besteht nicht nur aus dem kommentierten Listing, sondern aus:

7.3 ASCII-Tabelle

ASCII Tabelle (sedezimal)

| 00 nul| 01 soh| 02 stx| 03 etx| 04 eot| 05 enq| 06 ack| 07 bel|
| 08 bs | 09 ht | 0a nl | 0b vt | 0c np | 0d cr | 0e so | 0f si |
| 10 dle| 11 dc1| 12 dc2| 13 dc3| 14 dc4| 15 nak| 16 syn| 17 etb|
| 18 can| 19 em | 1a sub| 1b esc| 1c fs | 1d gs | 1e rs | 1f us |
| 20 sp | 21  ! | 22  " | 23  # | 24  $ | 25  % | 26  & | 27  ' |
| 28  ( | 29  ) | 2a  * | 2b  + | 2c  , | 2d  - | 2e  . | 2f  / |
| 30  0 | 31  1 | 32  2 | 33  3 | 34  4 | 35  5 | 36  6 | 37  7 |
| 38  8 | 39  9 | 3a  : | 3b  ; | 3c  < | 3d  = | 3e  > | 3f  ? |
| 40  @ | 41  A | 42  B | 43  C | 44  D | 45  E | 46  F | 47  G |
| 48  H | 49  I | 4a  J | 4b  K | 4c  L | 4d  M | 4e  N | 4f  O |
| 50  P | 51  Q | 52  R | 53  S | 54  T | 55  U | 56  V | 57  W |
| 58  X | 59  Y | 5a  Z | 5b  [ | 5c  \ | 5d  ] | 5e  ^ | 5f  _ |
| 60  ` | 61  a | 62  b | 63  c | 64  d | 65  e | 66  f | 67  g |
| 68  h | 69  i | 6a  j | 6b  k | 6c  l | 6d  m | 6e  n | 6f  o |
| 70  p | 71  q | 72  r | 73  s | 74  t | 75  u | 76  v | 77  w |
| 78  x | 79  y | 7a  z | 7b  { | 7c  | | 7d  } | 7e  ~ | 7f del|

ASCII Tabelle (oktal)

|000 nul|001 soh|002 stx|003 etx|004 eot|005 enq|006 ack|007 bel|
|010 bs |011 ht |012 nl |013 vt |014 np |015 cr |016 so |017 si |
|020 dle|021 dc1|022 dc2|023 dc3|024 dc4|025 nak|026 syn|027 etb|
|030 can|031 em |032 sub|033 esc|034 fs |035 gs |036 rs |037 us |
|040 sp |041  ! |042  " |043  # |044  $ |045  % |046  & |047  ' |
|050  ( |051  ) |052  * |053  + |054  , |055  - |056  . |057  / |
|060  0 |061  1 |062  2 |063  3 |064  4 |065  5 |066  6 |067  7 |
|070  8 |071  9 |072  : |073  ; |074  < |075  = |076  > |077  ? |
|100  @ |101  A |102  B |103  C |104  D |105  E |106  F |107  G |
|110  H |111  I |112  J |113  K |114  L |115  M |116  N |117  O |
|120  P |121  Q |122  R |123  S |124  T |125  U |126  V |127  W |
|130  X |131  Y |132  Z |133  [ |134  \ |135  ] |136  ^ |137  _ |
|140  ` |141  a |142  b |143  c |144  d |145  e |146  f |147  g |
|150  h |151  i |152  j |153  k |154  l |155  m |156  n |157  o |
|160  p |161  q |162  r |163  s |164  t |165  u |166  v |167  w |
|170  x |171  y |172  z |173  { |174  | |175  } |176  ~ |177 del|

7.4 I/O-Register

The following quick-reference table shows all control registers and bits. The addresses are those resulting from a hardware reset. The registers are generally grouped according to the device they are associated with. Some registers are input/output registers while other perform only control functions. Reference appropriate text material before using these registers.
19881019/wj van ganswijk

1000 porta
1001 reserved
1002 pioc
      w 1....... staf: strobe a flag, set at active edge of stra pin/inactive
      w .1...... stai: hardware interrupt request when STAF=1
      w ..1..... cwom: port c open-drain
      w ...1.... hnds: handshake/simpel strobe mode
      w ....1... oin:  output/input handshake select
      w .....1.. pls:  STRB pulse/level active
      w ......1. ega:  rising/falling edge select for STRA
      w .......1 invb: STRB active high/low
1003 portc
1004 portb
1005 portcl
1006 reserved
1007 ddrc: data direction register for port c (1=output)
1008 portd (b0..b5)
     rw 1....... mode0 or boot: strb
     rw 1....... mode1 or test: r/w
     rw .1...... mode0 or boot: stra
     rw .1...... mode1 or test: as
     rw ..1..... pd5/ss*
     rw ...1.... pd4/sck
     rw ....1... pd3/mosi
     rw .....1.. pd2/miso
     rw ......1. pd1/txd
     rw .......1 pd0/rxd
1009 ddrd: data direction register for port d (1=output) (b0..b5)
100a porte: port e data register
100b cforc: timer compare force register
      w 1....... foc1
      w .1...... foc2
      w ..1..... foc3
      w ...1.... foc4
      w ....1... foc5
      w 11111111 force compare(s)
      w .....xxx reserved
100c oc1m: set bits to enable oc1 to control corresponding pin(s) of port a
      w 1....... oc1m7
      w .1...... oc1m6
      w ..1..... oc1m5
      w ...1.... oc1m4
      w ....1... oc1m3
      w .....xxx reserved
      w 11111111 force compare(s)
100d oc1d: if oc1mx is set, data in oc1dx is output to port a bit-x
           on successful oc1 compares
      w 1....... oc1d7
      w .1...... oc1d6
      w ..1..... oc1d5
      w ...1.... oc1d4
      w ....1... oc1d3
      w .....xxx reserved
      w 11111111 force compare(s)
100e tcnt: timer counter register
1010 tic1: timer input capture register
1012 tic2: timer input capture register
1014 tic3: timer input capture register
1016 toc1: timer output compare register
1018 toc2: timer output compare register
101a toc3: timer output compare register
101c toc4: timer output compare register
101e toc5: timer output compare register
1020 tctl1: timer control register 1
      w 1....... om2
      w .1...... ol2
      w ..1..... om3
      w ...1.... ol3
      w ....1... om4
      w .....1.. ol4
      w ......1. om5
      w .......1 ol5
     for all pairs:
      w 00...... timer disconnected from output pin logic
      w 01...... ocx output line: toggle
      w 10...... ocx output line: 0
      w 11...... ocx output line: 1
1021 tctl2: timer control register 2
      w xx...... reserved
      w ..1..... edg1b
      w ...1.... edg1a
      w ....1... edg2b
      w .....1.. edg2a
      w ......1. edg3b
      w .......1 edg3a
     for all pairs:
      w ..00.... capture: disabled
      w ..01.... capture: on rising edge only
      w ..10.... capture: on falling edge only
      w ..11.... capture: on any edge
1022 tmsk1: main timer interrupt mask reg 1
      w 1....... oc1l: output compare 1 interrupt enable
      w .1...... oc2l: output compare 2 interrupt enable
      w ..1..... oc3l: output compare 3 interrupt enable
      w ...1.... oc4l: output compare 4 interrupt enable
      w ....1... oc5l: output compare 5 interrupt enable
      w .....1.. ic1l: input compare 1 interrupt enable
      w ......1. ic2l: input compare 2 interrupt enable
      w .......1 ic3l: input compare 3 interrupt enable
1023 tflg1: main timer interrupt flag reg 1
      w 1....... oc1f: clear output compare flag 1
      w .1...... oc2f: clear output compare flag 2
      w ..1..... oc3f: clear output compare flag 3
      w ...1.... oc4f: clear output compare flag 4
      w ....1... oc5f: clear output compare flag 5
      w .....1.. ic1f: clear input capture flag 1
      w ......1. ic2f: clear input capture flag 2
      w .......1 ic3f: clear input capture flag 3
1024 tmsk2: misc timer interrupt mask reg 2
      w 1....... toi:   timer overflow interrupt enable
      w .1...... rtii:  interrupt enable
      w ..1..... paovi: pulse accumulator overflow interrupt enable
      w ...1.... paii:  pulse accumulator input interrupt enable/disable
      w ....xx.. reserved
      w ......00 pr1,pr0: timer prescale factor  1
      w ......01 pr1,pr0: timer prescale factor  4
      w ......10 pr1,pr0: timer prescale factor  8
      w ......11 pr1,pr0: timer prescale factor 16
1025 tflg2: misc timer interrupt flag reg 2
      w 1....... tof:   clear timer overflow flag
      w .1...... rtif:  clear real time (periodic) interrupt flag
      w ..1..... paovf: clear pulse accumulator overflow flag
      w ...1.... paif:  clear paif pulse accumulator input edge flag
      w ....xxxx reserved
1026 pactl: pulse accumulator control register
      w 1....... ddra7: data direction for port a bit7 is output/input
      w .1...... paen:  enable/disable pulse accumulator system enable
      w ..1..... pamod: pulse acc mode: gated time accumulation/event counter
      w ...1.... pedge: pulse acc edge ctrl: rising/falling edges
      w ....xx.. reserved
      w ......00 rtr1,rtr0: interrupt rate divide by 2^13
      w ......01 rtr1,rtr0: interrupt rate divide by 2^14
      w ......10 rtr1,rtr0: interrupt rate divide by 2^15
      w ......11 rtr1,rtr0: interrupt rate divide by 2^16
1027 pacnt: pulse accumulator count register
1028 spcr: spi control register
      w 1....... spie: spi interrupt enable
      w .1...... spe:  spi system enable
      w ..1..... dwom: port d: open-drain/normal
      w ...1.... mstr: master/slave mode
      w ....1... cpol: clock polarity
      w .....1.. cpha: clock phase
      w ......00 spr1,spr0: spi e-clock divided by  2
      w ......01 spr1,spr0: spi e-clock divided by  4
      w ......10 spr1,spr0: spi e-clock divided by  8
      w ......11 spr1,spr0: spi e-clock divided by 16
1029 spsr: spi status register
     r  1....... spif: spi interrupt request
     r  .1...... wcol: write collision status flag
     r  ...1.... modf: spi mode error interrupt status flag
     r  ..x.xxxx reserved
102a spdr: spi data register
102b baud: sci baud rate control register
      w 1....... tclr: clear baud counter chain (test only)
      w .x...... reserved
      w ..00.... scp1,scp0: serial prescaler select: divide e-clock by  1
      w ..01.... scp1,scp0: serial prescaler select: divide e-clock by  2
      w ..10.... scp1,scp0: serial prescaler select: divide e-clock by  4
      w ..11.... scp1,scp0: serial prescaler select: divide e-clock by 13
      w ....1... rckb: sci baud rate clock test (test only)
      w .....000 scr2,scr1,scr0: prescaler output divide by   1
      w .....001 scr2,scr1,scr0: prescaler output divide by   2
      w .....010 scr2,scr1,scr0: prescaler output divide by   4
      w .....011 scr2,scr1,scr0: prescaler output divide by   8
      w .....100 scr2,scr1,scr0: prescaler output divide by  16
      w .....101 scr2,scr1,scr0: prescaler output divide by  32
      w .....110 scr2,scr1,scr0: prescaler output divide by  64
      w .....111 scr2,scr1,scr0: prescaler output divide by 128
102c sccr1: sci control register 1
      w 1....... r8:   receive bit 8
      w .1...... t8:   transmit bit 8
      w ...1.... m:    ninth data bit
      w ....1... wake: wake up by address mark/idle line (msb/no low)
      w ..x..xxx reserved
102d sccr2: sci control register 2
      w 1....... tie:  transmit interrupt enable
      w .1...... tcie: transmit complete interrupt enable
      w ..1..... rie:  receiver interrupt enable
      w ...1.... ilie: enable/disable idle line interrupts
      w ....1... te:   transmitter enable (toggle to queue idle character)
      w .....1.. re:   receiver enable on/off
      w ......1. rwu:  receiver asleep/normal
      w .......1 sbk:  send break
102e scsr: sci status register
     r  1....... tdre: transmit data register empty flag
     r  .1...... tc:   transmit complete flag
     r  ..1..... rdrf: receive data register full flag
     r  ...1.... idle: idle line detected flag
     r  ....1... or:   over-run error flag
     r  .....1.. nf:   noise error flag
     r  ......1. fe:   framing error flag
     r  .......x reserved
102f scdr: sci data register
1030 adctl: a/d control/status register
     r  1....... ccf:  conversions complete flag (sets after fourth conversion)
     rw .x...... reserved
      w ..1..... scan: convert continuously/4 conversions and stop
      w ...1.... mult: convert four channel group/single channel
     rw ....0000 cd,cc,cb,ca: ad0 port e bit0
     rw ....0001 cd,cc,cb,ca: ad1 port e bit1
     rw ....0010 cd,cc,cb,ca: ad2 port e bit2
     rw ....0011 cd,cc,cb,ca: ad3 port e bit3
     rw ....0100 cd,cc,cb,ca: ad4 port e bit4
     rw ....0101 cd,cc,cb,ca: ad5 port e bit5
     rw ....0110 cd,cc,cb,ca: ad6 port e bit6
     rw ....0111 cd,cc,cb,ca: ad7 port e bit7
     rw ....10xx cd,cc,cb,ca: reserved
     rw ....1100 cd,cc,cb,ca: Vref hi
     rw ....1101 cd,cc,cb,ca: Vref low
     rw ....1110 cd,cc,cb,ca: Vref hi/2
     rw ....1111 cd,cc,cb,ca: test/reserved
1031 adr1
1032 adr2
1033 adr3
1034 adr4
1035 reserved
1036 reserved
1037 reserved
1038 reserved
1039 option: system configuration options
      w 1....... adpu: a->d system powered up/down
      w .1...... csel: a->d and ee use an internal-r-c/system-e clock
      w ..1..... irqe: irq configured for falling edges/low level
      w ...1.... dly:  enable/disable oscillator start-up delay (from stop)
      w ....1... cme:  slow or stopped clocks cause reset/disabled
      w .....x.. reserved
      w ......00 cr1,cr0: e/2^15 divided by  1
      w ......01 cr1,cr0: e/2^15 divided by  4
      w ......10 cr1,cr0: e/2^15 divided by 16
      w ......11 cr1,cr0: e/2^15 divided by 64
103a coprst: arm/reset cop timer circuitry,
             write $55 and $aa to reset cop watchdog timer
103b pprog: eeprom programming register
      w 1....... odd:   program  odd rows in half of eeprom (test only)
      w .1...... even:  program even rows in half of eeprom (test only)
      w ..x..... reserved
      w ...1.... byte:  erase only one byte/row or all of eeprom
      w ....1... row:   erase only one 16 byte row/all 512 bytes of eeprom
      w .....1.. erase: erase/normal read of program mode
      w ......1. eelat: eeprom busses configured for program or erase/read
      w .......1 eepgm: program or erase power switched on/off
                        to program eeprom:
                        - set eelat
                        - write data to desired address
                        - set eepgm for the required programming time
                        to erase eeprom:
                        - select row = 1/0
                        - select byte = 1/0
                        - set erase and eelat = 1
                        - write to an eeprom address to be erased
                        - set eepgm for the required erase time period
103c hprio: highest priority interrupt and misc.
      w 1....... rboot: boot rom enabled/not in map (normal)
      w .00..... smod,mda: single chip mode
      w .01..... smod,mda: expanded multiplexed mode
      w .10..... smod,mda: special bootstrap
      w .11..... smod,mda: special test
      w ...1.... irv:      data from internal reads visible/not
                           on external bus
                           reset to in test/boot mode: 1, in normal modes: 0
     r  ....0000 psel3,2,1,0: timer overflow
     r  ....0001 psel3,2,1,0: pulse accum. overflow
     r  ....0010 psel3,2,1,0: puls accum. input edge
     r  ....0011 psel3,2,1,0: spi serial xfer complete
     r  ....0100 psel3,2,1,0: sci serial system
     r  ....0101 psel3,2,1,0: reserved (default to irq)
     r  ....0110 psel3,2,1,0: irq (ext pin or parallel i/o
     r  ....0111 psel3,2,1,0: real time interrupt
     r  ....1000 psel3,2,1,0: timer input capture 1
     r  ....1001 psel3,2,1,0: timer input capture 2
     r  ....1010 psel3,2,1,0: timer input capture 3
     r  ....1011 psel3,2,1,0: timer output compare 1
     r  ....1100 psel3,2,1,0: timer output compare 2
     r  ....1101 psel3,2,1,0: timer output compare 3
     r  ....1110 psel3,2,1,0: timer output compare 4
     r  ....1111 psel3,2,1,0: timer output compare 5
103d init: ram and i/o mapping register
      w xxxx.... ram3,2,1,0: ram      block position (x000..x0ff)
      w ....xxxx reg3,2,1,0: register block position (x000..x03f)
        00000001 at reset
103e test1: factory test register
      w 1....... tilop: test illegal opcode
      w .x...... reserved
      w ..1..... occr:  output condition code register status to timer port
      w ...1.... cbyp:  timer divider chain bypass
      w ....1... disr:  disable resets from cop and clock monitor
      w .....1.. fcm:   force clock monitor failure
      w ......1. fcop:  force cop watchdog failure
      w .......1 tcon:  test configuration
103f config: configuration control register
      w ....1... nosec: dis/enable security mode
                        (security only if mask option)
      w .....1.. nocop: dis/enable cop system
      w ......1. romon: en/disable    rom at $e000..$ffff
      w .......1 eeon:  en/disable eeprom at $b600..$b7ff
      note: The bits of this register are implemented with eeprom cells.
            programming and erasure follow normal eeprom procedures.
            The erased state of this location is $0f. A new value
            programmed into this register is not readable until after a
            subsequent reset sequence.

7.5 Interrupt-Adressen

SCIINT     EQU   $FFD6     ; SCI serial system
SPIINT     EQU   $FFD8     ; SPI serial system
PAIINT     EQU   $FFDA     ; Pulse Accumulator Input Edge
PAOVINT    EQU   $FFDC     ; Pulse Accumulator Overflow
TOINT      EQU   $FFDE     ; Timer Overflow
TOC5INT    EQU   $FFE0     ; Timer Output Compare 5
TOC4INT    EQU   $FFE2     ; Timer Output Compare 4
TOC3INT    EQU   $FFE4     ; Timer Output Compare 3
TOC2INT    EQU   $FFE6     ; Timer Output Compare 2
TOC1INT    EQU   $FFE8     ; Timer Output Compare 1
TIC3INT    EQU   $FFEA     ; Timer Input Capture 3
TIC2INT    EQU   $FFEC     ; Timer Input Capture 2
TIC1INT    EQU   $FFEE     ; Timer Input Capture 1
RTIINT     EQU   $FFF0     ; Real Time Interrupt
IRQINT     EQU   $FFF2     ; IRQ External Interrupt
XIRQINT    EQU   $FFF4     ; XIRQ External Interrupt
SWIINT     EQU   $FFF6     ; Software Interrupt
BADOPINT   EQU   $FFF8     ; Illegal Opcode Trap Interrupt
NOCOPINT   EQU   $FFFA     ; COP Failure (Reset)
CMEINT     EQU   $FFFC     ; COP Clock Monitor Fail (Reset)
RESETINT   EQU   $FFFE     ; RESET Interrupt

7.6 Das Motorola-S-Format

Eine Datei im Motorola-S-Format ist eine Textdatei mit beliebig vielen Zeilen, die Sedezimalziffern in ASCII-Darstellung enthalten. Die Zeilen werden mit CR, LF abgeschlossen. Diese Datei enthält Binärcode in ASCII-Form.

Die Datei kann (muß aber nicht) mit einer Einleitungszeile beginnen, dem Sign-On-Record. Man erkennt ihn am einleitenden S0 (Ziffer Null). Er enthält einen Kommentar, z. B. den Programmnamen (im Beispiel unten "DATA I/O"). S-Records enthalten pro Zeile eine Adresse, an der die Daten abgelegt werden sollen.

Jede Datenzeile beginnt mit zwei Startzeichen "S" und einer Ziffer. Die nächsten beiden Zeichen geben die hexadezimale Anzahl der Datenbytes in der Zeile an, wobei auch die Adreßangabe (2 Bytes) und die Prüfsumme mitgezählt werden (also Zahl der "echten" Datenbytes + 3). Darauf folgen vier Zeichen, welche die hexadezimale Adresse des ersten Bytes des Datenrecords angeben. Nun folgen die Datenbytes zweistellig hexadezimal. Leerzeichen werden überlesen. Zum Schluß folgt ein Byte Prüfsumme (zweistell. Hex.). Die Prüfsumme ist das Einerkomplement aus der Summe von Längenangabe, Adresse und Datenbytes. Der Typ des Records wird durch eine Ziffer bezeichnet:

Der Typ sorgt für die Unterscheidung der Adreßlänge:

Die letzte Zeile der Datei beginnt mit den Startzeichen "S" und der Ziffer 9, 8 oder 7. Er bildet den End-Of-File-Record. Ein Enderecord enthält keine Daten, aber die Adresse in diesem Record stellt die Startadresse des Programms dar.

Beispiel:

S0 0B 0000 44 41 54 41 20 49 2F 4F F4 <CR><LF>
S1 13 0000 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FC <CR><LF>
S1 13 0010 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF EC <CR><LF>
S1 13 0020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF DC <CR><LF>
S1 13 0030 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF CC <CR><LF>
S1 13 0040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF BC <CR><LF>
S9 03 0000 FC <CR><LF>                                     
                                                       
        Datenbytes                                      Prüfsumme
    Adresse
  Längenangabe (Datenbytes + 3)
Record-Markierung

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt


Copyright © FH München, FB 04, Prof. Jürgen Plate