Projekt

Allgemein

Profil

Aktionen

TDT-Protocol on CAN » Historie » Revision 71

« Zurück | Revision 71/104 (diff) | Weiter »
Maximilian Seesslen, 11.07.2023 11:36


Intro

With the TDT-Protocol sensors can just send their values on the BUS without complex object catalogue.
An monitor-software is able to display values without knowing anything about the sensors or their configuration.
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.
In CAN2.0A there can only be 128 Nodes.

CAN 2.0A: 0..0x7FF
CANOpen: 4 Bit Function code, 7 Bit Node-ID
Node-Id: 0..0x7F
Function-Code Mask: 0x780
There are 14 or 28 Filters on STM32Fs
Some STM32 have an internal 96-bit unique ID.

Bits Decription Examples
4 Function code Send object
7 NodeId Sensemux WZ

Function code

Code Decription Examples
0x0 NMT-Write
0x1 NMT-Send
0x2 Alarms
0x3 Write object Set Date, illumination
0x4 Read object Get product codes
0x5 Send object Send temperature
0x6 Resend object Replay recorded data
0x7 data blob

IDs, ranges and commands

Node IDs

  • 11-Bit-Identifier, (CAN 2.0A); 2048; 0x0 ... 0x7F0; 0x0 ... 0x7F with function code
  • 29-Bit-Identifier, (CAN 2.0B); 0x20000000
Range Decription Examples
0x01-0x0F Network Manager PC
0x10-0x2F Active controller CANDis
0x30-0x4F Actor CANSwitch
0x50-0x6F Sending sensors Sensemux, CANIO
0x70-0x7F Passive Sensors CANRec

Object structutre

Size Decription Examples
2 Object Plain Sensor value; Set illumination
1 Unit hz, Float, Time, Date, Percent, promilPwm, centiCelsius, canId, room, Multipacket-String
1 - Reserved
4 Value 32Bit

Objects

Code Description
none
ambientLight
plantLight
multimediaSwitch
mainSwitch
date
time
dummy
plantSensor
plantSensor [0-7]
firmwareVersion
firmwareDate
hardwareRevision
hardwareDate
temperatureIntern [0-7]
temperatureExtern [0-7]
humidity
VOC
Replay
Data-Dump (SD-Card)

Units

  • Date: year 2B, month 1B, day 1B
  • Time: hour 1B, minute 1B, second 1B, subsecond 1B

Example: Turn on the lights

Data Size Description
0x300 29 Bits Function code: Write Object; All objects.
0x0 2 Byte Message-Type: Global command
0x1 1 Byte Data-Type: Permill
0x1 1 Byte PWM: PWM permilli
1000 4 Byte Value: Full Brightness

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.

Size Type
0x4 Package number (0: Data contains package count)
0x4 Data

Header

Size Type
0x4 Total size
0x4 Type (1=SDCard)
0x4 Target node ID
0x4 CRC32 of data

Example: CANRec

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

NMT

Actuator introduction

When introduction is requested by system command, each device must send an description.

Size Decription Examples
2 Object Object
6 MAC/Unique ID 48Bit

Objects

Size Decription
1 Request intoruction
2 MAC low
3 MAC high
4 Protocol versions
5 Firmware version
6 Product Code
7 Node-Id

Protocol versions

Size Decription
1 TDT Major
1 TDT Minor
1 NMT Major
1 NMT Minor
1 Blob Major
1 Blob Minor

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.

Alarms/Alerts

Devices should indicate issues; e.g.:

  • Battery low
  • I2C problems

Object structutre

Size Decription Examples
2 Object I2C, VBat,
1 Unit hz, Float, Time, Date, Percent, promilPwm, centiCelsius, canId, room, Multipacket-String
1 Issue Whats wrong, Undervolts, Communication error
4 Value 32Bit

Von Maximilian Seesslen vor mehr als 1 Jahr aktualisiert · 71 Revisionen