Projekt

Allgemein

Profil

Aktionen

Multipacket-Strings

There should be the posssibillity to write the complete SPI-Flash even if it takes forever.
Not every slave needs to be able to send super big blocks. But every slave should be able to
send e.g. descriptions.
There can not be multiple transfers at the same time from one node because there is no identification.
All slaves should be able to send description to multicast. Receiver should be able to sort messages.
First packet can contain flags so information about acknowledge is given.

Size Type
0x1 Package number (0: Data contains package count), overflowing
0x3 Source
0x4 Data

Header

Size Type
0x4 Object
0x4 Total size
0x4 Flags
0x4 CRC32 of data

Example: CANRec

PC requests an complete dump from single Node. Node will just stream it out.

V2

Size Decription Examples
1 Packet type Standard TDT packet
1 Sub-Id; Futher index; Sub-Sensor or more specifi kind of thing to be set
1 Data type Int, Float, Time, Date, Percent, Promil, Multipacket-String
1 Unit Hz, °C, Time, Date, PWM, CAN-ID, Name, Description, Room
4 Value 32Bit

V3

Size Decription Examples
2 Object
1 Sub-Id; Flags, Subid
1 Unit/Type Hz_int, °C_centi, Time, Date, PWM_milli, CAN-ID, Name, Description, Room
4 Value 32Bit

Flags

4 Bit multi message count
4 Bit multi message pos

Length in Bytes given via CAN?
Strings with max. 64 characters.

Multimessage package

There should be the possibillity to write the complete SPI-Flash even if it takes forever.
Not every slave needs to be able to send super big blocks. But every slave should be able to
send e.g. descriptions.

V4

Single block max.262144 bytes.

Size Decription Examples
2 Object
2 Counter
4 Value 32Bit

The data has to be stored in memory anyways. So one block can not be infinite large.
Flash has to be written block by block. One erase sektor can be 2K. Limiting the packet size to 64K is ok for writing to flash.
Object: theoretically multiple blocks could be written at the same time. A slave could just send its whole SD-card.

Header

First 0x20 Bytes / 0x8 packages are the Block-Header.

Size Type
0x2 Type; MMP1
0x1 Flags
0x1 Reserved
0x4 Total Size of this block
0x4 CRC32 of data
0x4 Header version code
0x4 Command
0x4 Address
0x4 Operation Size (e.g. erase)
0x4 -
... Data

Commands:
- readout data
- erase application flash
- erase flash sector
- erase external flash
- erase external flash sector
- write data
- Describtion

Subaddress: e.g. flash page
Type: MMP1

Usecase

Write to flash

Data size is 0x100.
Count of blocks: 1
Number of blocks: 1

Von Maximilian Seesslen vor 5 Monaten aktualisiert · 14 Revisionen