Projekt

Allgemein

Profil

TDT-Protocol on CAN » Historie » Version 67

Maximilian Seesslen, 13.02.2023 18:53

1 12 Maximilian Seesslen
h1. Intro
2 1 Maximilian Seesslen
3 17 Maximilian Seesslen
With the TDT-Protocol sensors can just send their values on the BUS without complex object catalogue.
4
An monitor-software is able to display values without knowing anything about the sensors or their configuration.
5 46 Maximilian Seesslen
The CANId cinsists of an function code and the node id. Like CANOpen the function code is 4 Bits and the Node-ID is 7 Bit.
6
In CAN2.0A there can only be 128 Nodes.
7 1 Maximilian Seesslen
8 35 Maximilian Seesslen
CAN 2.0A: 0..0x7FF
9
CANOpen: 4 Bit Function code, 7 Bit Node-ID
10
Node-Id: 0..0x7F
11 1 Maximilian Seesslen
Function-Code Mask: 0x780
12 46 Maximilian Seesslen
There are 14 or 28 Filters on STM32Fs
13
Some STM32 have an internal 96-bit unique ID.
14 1 Maximilian Seesslen
15 44 Maximilian Seesslen
h2. Function code
16
17 1 Maximilian Seesslen
|_. Code |_. Decription    |_. Examples             |
18 51 Maximilian Seesslen
| 0x0    | NMT-Write       |                        |
19
| 0x1    | NMT-Send        |                        |
20
| 0x2    | Alarms          |                        |
21 58 Maximilian Seesslen
| 0x3    | Write object    | Set Date, illumination |
22
| 0x4    | Read object     | Get product codes      |
23
| 0x5    | Send object     | Send temperature       |
24
| 0x6    | Resend object   | Replay recorded data   |
25
| 0x7    | data blob       |                        |
26
27 1 Maximilian Seesslen
28
h1. IDs, ranges and commands
29
30 46 Maximilian Seesslen
h2. Node IDs
31 1 Maximilian Seesslen
32 44 Maximilian Seesslen
* 11-Bit-Identifier, (CAN 2.0A); 2048; 0x0 ... 0x7F0; 0x0 ... 0x7F with function code
33 1 Maximilian Seesslen
* 29-Bit-Identifier, (CAN 2.0B); 0x20000000
34
35
|_. Range      |_. Decription           |_. Examples              |
36
| 0x01-0x0F    | Network Manager        | PC                      |
37
| 0x10-0x2F    | Active controller      | CANDis                  |
38
| 0x30-0x4F    | Actor                  | CANSwitch               |
39 47 Maximilian Seesslen
| 0x50-0x6F    | Sending sensors        | Sensemux, CANIO         |
40 1 Maximilian Seesslen
| 0x70-0x7F    | Passive Sensors        | CANRec                  |
41
42 45 Maximilian Seesslen
h2. Object structutre
43 1 Maximilian Seesslen
44 44 Maximilian Seesslen
|_. Size |_. Decription |_. Examples                                                       |
45
| 2      | Object       | Plain Sensor value; Set illumination                             |
46
| 1      | Data type    | Int, Float, Time, Date, Percent, Promil, Multipacket-String      |
47
| 1      | Unit         | Hz, °C, Time, Date, PWM, CAN-ID, Name, Description, Room         |
48
| 4      | Value        | 32Bit                                                            |
49 36 Maximilian Seesslen
50 44 Maximilian Seesslen
h2. Objects
51 36 Maximilian Seesslen
52 59 Maximilian Seesslen
|_. Code                  |_. Description             |
53
| none                    |                           |
54
| ambientLight            |                           |
55
| plantLight              |                           |
56
| multimediaSwitch        |                           |
57
| mainSwitch              |                           |
58
| date                    |                           |
59
| time                    |                           |
60
| dummy                   |                           |
61
| plantSensor             |                           |
62
| plantSensor [0-7]       |                           |
63
| firmwareVersion         |                           |
64
| firmwareDate            |                           |
65
| hardwareRevision        |                           |
66
| hardwareDate            |                           |
67
| temperatureIntern [0-7] |                           |
68 64 Maximilian Seesslen
| temperatureExtern [0-7] |                           |
69 59 Maximilian Seesslen
| humidity                |                           |
70
| VOC                     |                           |
71 60 Maximilian Seesslen
| Replay                  |                           |
72 63 Maximilian Seesslen
| Data-Dump (SD-Card)     |                           |
73 1 Maximilian Seesslen
74 44 Maximilian Seesslen
h2. Units
75 17 Maximilian Seesslen
76 44 Maximilian Seesslen
* Date: year 2B, month 1B, day 1B
77 1 Maximilian Seesslen
* Time: hour 1B, minute 1B, second 1B, subsecond 1B
78 17 Maximilian Seesslen
79 46 Maximilian Seesslen
h2. Example: Turn on the lights
80 1 Maximilian Seesslen
81 46 Maximilian Seesslen
|_.Data   |_.Size   |_.Description                              |
82
|0x300    | 29 Bits | Function code: Write Object; All objects. |
83
|0x0      | 2 Byte  | Message-Type: Global command              |
84
|0x1      | 1 Byte  | Data-Type: Permill                        |
85
|0x1      | 1 Byte  | PWM: PWM permilli                         |
86
|1000     | 4 Byte  | Value: Full Brightness                    |
87
88 1 Maximilian Seesslen
h1. Multipacket-Strings
89
90 46 Maximilian Seesslen
There should be the posssibillity to write the complete SPI-Flash even if it takes forever.
91
Not every slave needs to be able to send super big blocks. But every slave should be able to
92
send e.g. descriptions.
93 61 Maximilian Seesslen
There can not be multiple transfers at the same time from one node because there is no identification.
94 15 Maximilian Seesslen
95 46 Maximilian Seesslen
|_. Size    |_. Type                                           |
96
| 0x4       | Package number (0: Data contains package count)  |
97
| 0x4       | Data                                             |
98 61 Maximilian Seesslen
99
h2. Header
100
101
|_. Size    |_. Type           |
102
| 0x4       | Total size       |
103
| 0x4       | Type (1=SDCard)  |
104 62 Maximilian Seesslen
| 0x4       | Target node ID   |
105 1 Maximilian Seesslen
| 0x4       | CRC32 of data    |
106 62 Maximilian Seesslen
107 61 Maximilian Seesslen
108
h2. Example: CANRec
109
110
PC requests an complete dump from single Node. Node will just stream it out.
111
112
113 46 Maximilian Seesslen
114 54 Maximilian Seesslen
h1. NMT
115 48 Maximilian Seesslen
116
h2. Actuator introduction
117
118
When introduction is requested by system command, each device must send an description.
119
120
|_. Size |_. Decription |_. Examples                                                       |
121
| 2      | Object       | Object                                                           |
122
| 6      | MAC/Unique ID| 48Bit                                                            |
123
124 52 Maximilian Seesslen
h3. Objects
125 53 Maximilian Seesslen
126 57 Maximilian Seesslen
|_. Size |_. Decription          |
127
|1       | Request intoruction   |
128
|2       | MAC low               |
129
|3       | MAC high              |
130
|4       | Protocol versions     |
131
|5       | Firmware version      |
132
|6       | Product Code          |
133
|7       | Node-Id               |
134
135 55 Maximilian Seesslen
136
h3. Protocol versions
137
138
|_. Size |_. Decription            |
139
|1       | TDT Major               |
140 56 Maximilian Seesslen
|1       | TDT Minor               |
141
|1       | NMT Major               |
142
|1       | NMT Minor               |
143
|1       | Blob Major              |
144
|1       | Blob Minor              |
145 55 Maximilian Seesslen
146 25 Maximilian Seesslen
h1. V2
147
148
|_. Size |_. Decription |_. Examples                                                       |
149
| 1      | Packet type  | Standard TDT packet                                              |
150
| 1      | Sub-Id;      | Futher index; Sub-Sensor or more specifi kind of thing to be set |
151
| 1      | Data type    | Int, Float, Time, Date, Percent, Promil, Multipacket-String      |
152 31 Maximilian Seesslen
| 1      | Unit         | Hz, °C, Time, Date, PWM, CAN-ID, Name, Description, Room         |
153 1 Maximilian Seesslen
| 4      | Value        | 32Bit                                                            |
154 65 Maximilian Seesslen
155
h1. V3
156
157
|_. Size |_. Decription |_. Examples                                                               |
158
| 2      | Object       |                                                                          |
159
| 1      | Sub-Id;      | Flags, Subid                                                             |
160
| 1      | Unit/Type    | Hz_int, °C_centi, Time, Date, PWM_milli, CAN-ID, Name, Description, Room |
161
| 4      | Value        | 32Bit                                                                    |
162
163
h2. Flags
164 1 Maximilian Seesslen
165 67 Maximilian Seesslen
4 Bit multi message count
166
4 Bit multi message pos
167
168
Length in Bytes given via CAN?
169
Strings with max. 64 characters.
170
171 1 Maximilian Seesslen
h2. Multimessage package
172
173 67 Maximilian Seesslen
There should be the possibillity to write the complete SPI-Flash even if it takes forever.
174 1 Maximilian Seesslen
Not every slave needs to be able to send super big blocks. But every slave should be able to
175
send e.g. descriptions.