Projekt

Allgemein

Profil

Aktionen

TDT-Protocol on CAN » Historie » Revision 44

« Zurück | Revision 44/104 (diff) | Weiter »
Maximilian Seesslen, 20.01.2023 11:21


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 of sensors is actually their configurable ID or an global command.

CAN 2.0A: 0..0x7FF
CANOpen: 4 Bit Function code, 7 Bit Node-ID
Node-Id: 0..0x7F
Function-Code Mask: 0x780

Function code

Code Decription Examples
0x0 NMT
0x1 Alarms
0x6 Write object Set Date, illumination
0x7 Read object Get product codes
0x8 Send object Send temperature
0x9 data blob
0xC log

IDs, ranges and commands

CAN 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
0x70-0x7F Passive Sensors CANRec

Bbject structutre

Size Decription Examples
2 Object Plain Sensor value; Set illumination
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

Objects

Code Description
none
ambientLight
plantLight
multimediaSwitch
mainSwitch
date
time
dummy
plantSensor
plantSensor0
plantSensor1
plantSensor2
plantSensor3
plantSensor4
firmwareVersion
firmwareDate
hardwareRevision
hardwareDate
temperatureIntern
temperatureIntern1
temperatureIntern2
temperatureIntern3
temperatureIntern4
temperatureExtern
temperatureExtern1
temperatureExtern2
temperatureExtern3
temperatureExtern4
humidity
voc

Units

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

Multipacket-Strings

Address Type
0x0 Package count
0x1 Package number
0x2..0x3 Data

Actuator introduction

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

Example

Turn on the lights

Data Size Description
0x100 29 Bits CAN-Id: Global command
0x0 1 Byte Message-Type: Global command
0x0 1 Byte Sub-Id: Set ambient light
0x1 1 Byte Data-Type: Integer
0x1 1 Byte PWM: PWM permilli
1000 4 Byte Value: Full Brightness

Usecases

  • simple actors can filter message to "Global actuator" messages, at least "system commands"
  • There are 14 or 28 Filters on STM32Fs

ID Assigning

Some STM32 have an internal 96-bit unique ID.

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

Multimessage package

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.

  • Is order of messages an issue? Multiple Mailboxes.
Size Decription Examples
1 Packet type Multimessage package
1 count Number of packages
1 number 0: value=data length in bytes
4 Value 32Bit
Size Decription Examples
1 Packet type Multimessage package 2
1 id Mailbox
1 number 0: value=data length in bytes
1: value=number of messages
2..x: data
4 Value 32Bit

Diagnose

Von Maximilian Seesslen vor etwa 2 Jahren aktualisiert · 44 Revisionen