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